From 58c89023de9137139fbf5987c7d288a463c68574 Mon Sep 17 00:00:00 2001 From: "oskar.wiksten@gmail.com" Date: Tue, 18 Oct 2011 18:02:21 +0000 Subject: [PATCH] Update monster HP before running the attack animation. Spelling corrections to conversations. Prevent FC when running maploader on maps that have exits that do not specify a destination map (such as south of Prim). Reuse loaded graphics tiles in shopactivity. Do not use android.util.Pair (since it's not available in Android v1.6) Updated German translation (thanks Samuel) git-svn-id: https://andors-trail.googlecode.com/svn/trunk@186 08aca716-68be-ccc6-4d58-36f5abd142ac --- .../res/values-de/content_actorconditions.xml | 30 ++++ .../res/values-de/content_itemlist.xml | 4 +- AndorsTrail/res/values-de/strings.xml | 158 +++++++++++++++++- .../res/values/content_conversationlist.xml | 20 +-- AndorsTrail/res/values/strings.xml | 2 +- AndorsTrail/res/xml/crossroads.tmx | 4 +- .../AndorsTrail/activity/DebugInterface.java | 8 +- .../AndorsTrail/activity/ShopActivity.java | 10 +- .../controller/CombatController.java | 9 +- .../resource/ResourceFileTokenizer.java | 3 +- .../parsers/ActorConditionsTypeParser.java | 3 +- .../parsers/ConversationListParser.java | 3 +- .../resource/parsers/DropListParser.java | 3 +- .../resource/parsers/ItemTypeParser.java | 3 +- .../resource/parsers/MonsterTypeParser.java | 3 +- .../resource/parsers/QuestParser.java | 3 +- .../resource/tiles/TileManager.java | 13 +- .../com/gpl/rpg/AndorsTrail/util/Pair.java | 11 ++ .../view/ShopItemContainerAdapter.java | 5 +- 19 files changed, 242 insertions(+), 53 deletions(-) create mode 100644 AndorsTrail/res/values-de/content_actorconditions.xml create mode 100644 AndorsTrail/src/com/gpl/rpg/AndorsTrail/util/Pair.java diff --git a/AndorsTrail/res/values-de/content_actorconditions.xml b/AndorsTrail/res/values-de/content_actorconditions.xml new file mode 100644 index 0000000..268e237 --- /dev/null +++ b/AndorsTrail/res/values-de/content_actorconditions.xml @@ -0,0 +1,30 @@ + + + + +[id|name|iconID|category|isStacking|hasRoundEffect|round_visualEffectID|round_boostHP_Min|round_boostHP_Max|round_boostAP_Min|round_boostAP_Max|hasFullRoundEffect|fullround_visualEffectID|fullround_boostHP_Min|fullround_boostHP_Max|fullround_boostAP_Min|fullround_boostAP_Max|hasAbilityEffect|boostMaxHP|boostMaxAP|moveCostPenalty|attackCost|attackChance|criticalChance|criticalMultiplier|attackDamage_Min|attackDamage_Max|blockChance|damageResistance|]; +{bless|Segen|actorconditions_1:41|0||||||||||||||1|||||5|||||||}; +{poison_weak|Schwaches Gift|actorconditions_1:60|3||1|2|-1|-1|||||||||||||||||||||}; +{str|Stärke|actorconditions_1:70|2||||||||||||||1||||||||2|2|||}; +{regen|Regeneration der Schatten|actorconditions_1:35|0||1|1|1|1|||||||||0||||||||||||}; + + + +[id|name|iconID|category|isStacking|hasRoundEffect|round_visualEffectID|round_boostHP_Min|round_boostHP_Max|round_boostAP_Min|round_boostAP_Max|hasFullRoundEffect|fullround_visualEffectID|fullround_boostHP_Min|fullround_boostHP_Max|fullround_boostAP_Min|fullround_boostAP_Max|hasAbilityEffect|boostMaxHP|boostMaxAP|moveCostPenalty|attackCost|attackChance|criticalChance|criticalMultiplier|attackDamage_Min|attackDamage_Max|blockChance|damageResistance|]; +{speed_minor|Geringe Geschwindigkeit|actorconditions_1:87|2||||||||||||||1||2||||||||||}; +{fatigue_minor|Geringe Ermüdung|actorconditions_1:14|2||0||||||0||||||1|||2|2||||-1|-1|||}; +{feebleness_minor|Geringe Schwächung der Waffen|actorconditions_1:74|1||||||||||||||1||||||||-9|-9|||}; +{bleeding_wound|Blutende Wunde|actorconditions_2:0|3|1|1|0|-1|-1|||||||||||||||||||||}; +{rage_minor|Geringe Berserkerwut|actorconditions_1:90|1||0|-1|||||||||||1|35||||60|||||-90|-1|}; +{blackwater_misery|Blackwater\'s Elend|actorconditions_1:58|3||||||||||||||1||||1|-50|-50||||||}; +{intoxicated|Betäubung|actorconditions_2:1|1||||||||||||||1|15|||1|-30|||4|4|||}; +{dazed|Benommenheit|actorconditions_1:65|1||||||||||||||1||||||||||-40||}; + + + +[id|name|iconID|category|isStacking|hasRoundEffect|round_visualEffectID|round_boostHP_Min|round_boostHP_Max|round_boostAP_Min|round_boostAP_Max|hasFullRoundEffect|fullround_visualEffectID|fullround_boostHP_Min|fullround_boostHP_Max|fullround_boostAP_Min|fullround_boostAP_Max|hasAbilityEffect|boostMaxHP|boostMaxAP|moveCostPenalty|attackCost|attackChance|criticalChance|criticalMultiplier|attackDamage_Min|attackDamage_Max|blockChance|damageResistance|]; +{chaotic_grip|Chaotischer Griff|actorconditions_1:96|1||0||||||||||||1||||||||||-10|-1|}; +{chaotic_curse|Chaotischer Fluch|actorconditions_1:89|1||0||||||||||||1||-1||||||-1|-1|-10|-1|}; + + + diff --git a/AndorsTrail/res/values-de/content_itemlist.xml b/AndorsTrail/res/values-de/content_itemlist.xml index 611f0fe..4f43302 100644 --- a/AndorsTrail/res/values-de/content_itemlist.xml +++ b/AndorsTrail/res/values-de/content_itemlist.xml @@ -98,10 +98,10 @@ {vial_empty2|items_consumables:57|Leere Ampulle|31||1|4|||||||||||||||||||||||||||||||||}; {vial_empty3|items_consumables:59|Leeres Fläschchen|31||1|6|||||||||||||||||||||||||||||||||}; {vial_empty4|items_consumables:58|Leere Flasche|31||1|11|||||||||||||||||||||||||||||||||}; -{health_minor|items_consumables:35|Kleiner Trank der Gesundheit|20||1|5||||||||||||||1|5|5|||||||||||||||||}; +{health_minor|items_consumables:35|Kleine Ampulle der Gesundheit|20||1|5||||||||||||||1|5|5|||||||||||||||||}; {health_minor2|items_consumables:35|Kleiner Trank der Gesundheit|20|||18||||||||||||||1|5|5|||||||||||||||||}; {health|items_consumables:49|Trank der Gesundheit|20|||40||||||||||||||1|10|10|||||||||||||||||}; -{health_major|items_consumables:28|Großer Trank der Gesundheit|20||1|210||||||||||||||1|40|40|||||||||||||||||}; +{health_major|items_consumables:28|Große Flasche der Gesundheit|20||1|210||||||||||||||1|40|40|||||||||||||||||}; {health_major2|items_consumables:28|Großer Trank der Gesundheit|20|||280||||||||||||||1|40|40|||||||||||||||||}; {mead|items_consumables:51|Met|20|||15||||||||||||||1|1|1|||||||||||||||||}; {milk|items_consumables:55|Milch|20|||21||||||||||||||1|2|2|||||||||||||||||}; diff --git a/AndorsTrail/res/values-de/strings.xml b/AndorsTrail/res/values-de/strings.xml index f20d729..71095f9 100644 --- a/AndorsTrail/res/values-de/strings.xml +++ b/AndorsTrail/res/values-de/strings.xml @@ -2,6 +2,7 @@ Andor\'s Trail + Questgetriebenes Fantasy-Rollenspiel Beenden Zum Menü @@ -44,7 +45,7 @@ Übersicht Inventar Angelegt - Fähigkeiten + Skills Zauber Aufstieg Level @@ -67,7 +68,7 @@ AP: %1$d LP: %1$s greift an. - + %1$s verfehlt! %1$s trifft dich und nimmt dir %2$d LP! %1$s macht einen kritischen Treffer (%2$d LP)! @@ -89,6 +90,7 @@ Alles einsammeln Du findest %1$d Gold. + Du hebst einen Gegenstand auf. Du hebst %1$d Gegenstände auf. Gegenstände Du hast ein paar Dinge gefunden. @@ -112,7 +114,7 @@ Krit. Treffer: Abwehr: Bewegungskosten (AP): - Kampfeigenschaften (ohne Ausrüstung) + Basiskampfeigenschaften (ohne Ausrüstung und Skills) Kampfeigenschaften (aktuell) Angriffskosten (AP): @@ -121,7 +123,7 @@ Kritische Treffer: Faktor bei krit. Treffern: Abwehrchance: - Widerstand: + Schadensresistenz: @@ -200,13 +202,11 @@ <br /> Wir sollten hier wirklich einmal ein paar Informationen anzeigen, wie man das Spiel spielt :)<br /> - + Willkommen Vielen Dank, dass Du Andor\'s Trail heruntergeladen hast!\n\n Bedenke bitte, dass diese Version von Andor\'s Trail noch IN DER ENTWICKLUNG ist und somit noch nicht alle Karten komplett fertig sind.\n - Es steht dir frei, alle bestehenden Städte und Dungeons ausgiebig zu erforschen.\n - Diese Entwicklungsversion kann Fehler enthalten und das Spiel ist noch nicht gut ausbalanciert. Mit dieser Programmversion sollen Fehler aufgespürt werden, bevor weitere Inhalte hinzugefügt werden.\n Bitte besuche das Projekt-Forum für weitere Informationen oder wenn du mithelfen willst (siehe "Über").\n \n Danke für alle bisherigen Rückmeldungen! @@ -230,12 +230,12 @@ Bestätige Ausruhen Fragt nach, ob man ausruhen will, wenn ein Bett berührt wird. Ansonsten ruht man automatisch aus. Bestätige Angriff - Aktiviert den \'Angreifen..?\' Dialog beim Berühren von Monstern. + Aktiviert den \'Angreifen..?\' Dialog beim Angreifen von Gegnern. Beute anzeigen Auswahl wie das Ergebnis eines Kampfes angezeigt werden soll (Gold, Erfahrung, Gegenstände). Kampf Kampfgeschwindigkeit - Bestimmt, wie schnell Monster angreifen. + Bestimmt, wie schnell Gegner angreifen. Beute-Dialog anzeigen @@ -319,4 +319,144 @@ Quickslot 3 Quickslot aufheben + + + + virtuelles D-Pad + Aktiviert ein virtuelles D-Pad auf dem Bildschirm zur Steuerung + Minimierbares D-Pad + Wenn das virtuelle D-Pad aktiviert ist, erlaubt diese Einstellung die Minimierung des D-Pads durch einen Klick auf die Mitte. + + + Deaktiviert + Untere rechte Ecke + Untere linke Ecke + Unten in der Mitte + Links in der Mitte + Rechts in der Mitte + Obere linke Ecke + Obere rechte Ecke + Oben in der Mitte + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + + + andauernder Effekt + Jede Runde + Jede volle Runde + Gesamtkosten: %1$d Gold + Gesamtkosten: %1$d Gold + Alles + Wirklich verkaufen? + Soll %1$s wirklich verkauft werden? Dieser Gegenstand ist %2$s und du könntest ihn nicht zurückerlangen können. + + Waffen Präzision + Kräftiger Schlag + Kaufmann + Ausweichen + Rindenhaut + Mehr kritischer Schaden + Besserer kritischer Schaden + Kampfgeschwindigkeit + Schatzjäger + Guter Lehrling + Cleave + Leichenesser + wachsende Standhaftigkeit + Umgehen + Regeneration + Fehlschläge meistern + Magischer Schatzsucher + Starker Verstand + Ausdauernder Körper + Reines Blut + + Erhöhte Angriffschance + Erhöhter Angriffsschaden + Bessere Händlerpreise + Erhöhte Abwehrchance + Schadensresistenz + Erhöhte kritische Chance + Erhöhter kritischer Schaden + Erhöhte maximale Aktionspunkte + Größere Chance Gold zu finden + Größere Erfahrung von Gegnern + Regeneriere Aktionspunkte von besiegten Gegnern + Regeneriere Lebenspunkte von besiegten Gegnern + Erlange Leben bei jedem Aufstieg + Erhöhte Chance zu Fliehen + Regeneriere jede Runde Lebenspunkte + Verringere den Verlust an Erfahrungspunkten beim Sterben + Größere Chance magische Gegenstände zu finden + Widerstand gegen mentale Effekte + Widerstand gegen physische Effekte + Widerstand gegen Blutstörungen + + Erhöht die Angriffschance bei jeder Stufe um %1$d. + Erhöht den minimalen und maximalen Schaden bei jeder Stufe um %1$d. + Verringert bei jeder Stufe den Auf- und Abschlag von An- und Verkäufen um %1$d Prozentpunkte. + Erhöht die Abwehrchance bei jeder Stufe um %1$d. + Erhöht die Schadensresistenz bei jeder Stufe um %1$d. + Erhöht bei jeder Stufe die durch die Ausrüstung bestehende kritische Chance um %1$d %% (prozentualer Anteil an der bestehenden kritischen Chance, es handelt sich nicht um zusätzliche Prozentpunkte). + Erhöht bei jeder Stufe den durch die Ausrüstung bestehenden kritischen Faktor um %1$d %%. + Erhöht die maximalen Aktionspunkte (AP) bei jeder Stufe um %1$d. + Erhöht bei jeder Stufe die Chance bei einem Gegner Gold zu finden um %1$d %%. Auch die Menge des gefundenen Goldes erhöht sich jeweils um %2$d %% (bis zu der für den Gegnertyp maximalen Menge). + Erhöht bei jeder Stufe die Menge der beim besiegen von Gegnern erhaltenen Erfahrung um %1$d %%. + Für besiegte Gegner erhält man bei jeder Stufe +%1$d Aktionspunkte (AP). + Für besiegte Gegner erhält man bei jeder Stufe +%1$d Lebenspunkte (LP). + Für jeden nachfolgenden Level Aufstieg werden die maximalen Lebenspunkte (LP) um %1$d erhöht. Das wird nicht rückwirkend angewand, nur nachfolgende Level Aufstiege sind betroffen. + Verringert bei jeder Stufe sowohl die Chance eines fehlgeschlagenen Fluchtversuches um %1$d %% als auch die Chance das ein benachbarter Gegner dich angreift um %2$d %%. + Bei jeder Stufe erhält man pro Runde +%1$d Lebenspunkte (LP). + Verringert bei jeder Stufe die Menge der durch den Tod verursachten verlohrenen Erfahrung um %1$d %% (prozentualer Anteil an dem bestehenden Erfahrungsverlust, es handelt sich nicht um Prozentpunkte). Durch %2$d Stufen werden alle Erfahrungsverluste, die durch den Tod verursacht werden, entfernt. + Erhöht bei jeder Stufe die Chance ungewöhnliche Gegenstände zu finden um %1$d %%. + Verringert bei jeder Stufe die Chance von mentalen Effekten geplagt zu werden um %1$d %%, bis hin zu einem Maximum von %2$d %%. Das beinhaltet von Gegnern hinzugefügte Effekte wie Benommenheit oder Schwächung der Waffen. + Verringert bei jeder Stufe die Chance von physischen Effekten geplagt zu werden um %1$d %%, bis hin zu einem Maximum von %2$d %%. Das beinhaltet von Gegnern hinzugefügte Effekte wie Ermüdung. + Verringert bei jeder Stufe die Chance von Blutstörungen geplagt zu werden um %1$d %%, bis hin zu einem Maximum von %2$d %%. Das beinhaltet von Gegnern hinzugefügte Effekte wie Gift oder Blutende Wunden. + + Erlernen + Aktuelle Stufe: %1$d + Aktuelle Stufe: %1$d / %2$d + Um diesen Skill zu erlernen, wird mindestens die %1$d. Stufe des Skills %2$s benötigt. + Um diesen Skill zu erlernen, wird mindestens das Erfahrungslevel %1$d benötigt. + Um diesen Skill zu erlernen, wird mindestens %1$d %2$s benötigt (Basiskampfeigenschaften). + Du kannst einen Skillpunkt ausgeben. + Du kannst %1$d Skillpunkte ausgeben. + In diesem Level erhälst du einen neuen Skillpunkt! + + Neuen Speicherplatz anlegen + Speicherplatz überschreiben? + Dieser Speicherplatz enthält einen anderen Spielernamen (%1$s) als den aktuellen Spielernamen (%2$s). Soll dieser Spielstand wirklich überschrieben werden? + + + Gewöhnlich + Quest Gegenstand + Legendär + Außergewöhnlich + Selten + + + Condition category: %1$s + + Geistig + Mental + Physisch + Blutstörungen + + + Max LP: + Max AP: + Das Spiel kann während des Kampfes nicht gespeichert werden. + + Optimierter Bildschirmaufbau + Deaktiviere diese Option wenn du Grafikfehler siehst. Wenn diese Einstellung aktiv ist, werden bei jedem Frame nur die geänderten Teile des Bildschirms neu gezeichnet. + diff --git a/AndorsTrail/res/values/content_conversationlist.xml b/AndorsTrail/res/values/content_conversationlist.xml index 59b729e..1c65441 100644 --- a/AndorsTrail/res/values/content_conversationlist.xml +++ b/AndorsTrail/res/values/content_conversationlist.xml @@ -864,7 +864,7 @@ {ambelie_7|Don\'t you know of Nor City? I will take note that the savages here haven\'t even heard of the city.|||{{N|ambelie_8||||}}|}; {ambelie_8|I am beginning to be even more certain that Nor City will never, even in my wildest dreams, be comparable to the great city of Feygard.|||{{Good luck on your excursion.|ambelie_10||||}}|}; {ambelie_9|All the noblewomen in Feygard keep talking about the mysterious Shadow in Nor City. I just have to see it myself.|||{{Nor City, where is that?|ambelie_7||||}{Good luck on your excursion.|ambelie_10||||}}|}; -{ambelie_10|Thank you. Now please leave before someone sees me talking to a commoner like you.|||{{Commoner? Are you trying to insult me? Goodbye.|X||||}{Whatever, you probably wouldn’t even survive a forest wasp.|X||||}}|}; +{ambelie_10|Thank you. Now please leave before someone sees me talking to a commoner like you.|||{{Commoner? Are you trying to insult me? Goodbye.|X||||}{Whatever, you probably wouldn\'t even survive a forest wasp.|X||||}}|}; @@ -2101,9 +2101,9 @@ [id|message|progressQuest|rewardDropListID|replies[text|nextPhraseID|requires_Progress|requires_itemID|requires_Quantity|]|]; {woodcutter_0|Stupid wasps..||||}; -{woodcutter_2|Stay away from the road to the west, for it leads to Carn Tower. And you most certainly do not want to go there.|||{{N|woodcutter_1||||}}|}; +{woodcutter_2|Stay away from the road to the west, for it leads to Carn Tower. You most certainly do not want to go there.|||{{N|woodcutter_1||||}}|}; {woodcutter_1|When travelling, keep to the roads. Veer off course and you might find yourself in danger.||||}; -{woodcutter_3|Maybe we shouldn\'t have cut down all the trees over there. Those wasps really seemed upset.||||}; +{woodcutter_3|Maybe we shouldn\'t have cut down all the trees over there. Those wasps really seem upset.||||}; {woodcutter_4|I can still feel the sting from those wasps in my legs. Good thing we are done with all the trees now.||||}; {woodcutter_5|Hello there, welcome to our encampment. You should talk to Hadracor over there.||||}; @@ -2288,7 +2288,7 @@ {benbyr_story_3_4|Then I will surely disappoint you. Return to me once you are ready for my task.||||}; {benbyr_story_3_3|The noble adventurer. He he, I like that. Yes, you will do fine.|||{{N|benbyr_story_4||||}}|}; {benbyr_story_4|A while ago, I did some business with a certain man called Tinlyn, over here at this Crossroads guardhouse.|||{{N|benbyr_story_5||||}}|}; -{benbyr_story_5|As to the nature of our business, I can\'t really tell you. But let\'s just say that our business was of the kind that it was be beneficial for us both that the guards did not know about it.|||{{N|benbyr_story_6||||}}|}; +{benbyr_story_5|As to the nature of our business, I can\'t really tell you. Let\'s just say that our business was of the kind that it was be beneficial for us both that the guards did not know about it.|||{{N|benbyr_story_6||||}}|}; {benbyr_story_6|We were ready to finish the big deal, me and Tinlyn. That\'s when he decided to turn on me.|||{{N|benbyr_story_7||||}}|}; {benbyr_story_7|He reported me to the guards, and made me take the whole blame for our business.|||{{N|benbyr_story_8||||}}|}; {benbyr_story_8|I was sent to Feygard prison, while he himself was set free for reporting me.|||{{N|benbyr_story_8_1||||}}|}; @@ -2348,7 +2348,7 @@ {crossroads_guard_3|Go away, kid.||||}; {cr_loneford_st_1|Didn\'t you hear? They have all gotten ill.|||{{N|cr_loneford_st_2||||}}|}; -{cr_loneford_st_2|It all started a few days ago. As the story goes, someone found one of the farmers passed out on one of the fields, completely white face and shivering.|||{{N|cr_loneford_st_3||||}}|}; +{cr_loneford_st_2|It all started a few days ago. As the story goes, someone found one of the farmers passed out in one of the fields, completely white faced and shivering.|||{{N|cr_loneford_st_3||||}}|}; {cr_loneford_st_3|A few days later, the same symptoms started to show on a lot more people.|||{{N|cr_loneford_st_4||||}}|}; {cr_loneford_st_4|Then, all people showed the symptoms in one way or another.|||{{N|cr_loneford_st_5||||}}|}; {cr_loneford_st_5|Some old people even died.|||{{N|cr_loneford_st_6||||}}|}; @@ -2408,7 +2408,7 @@ {minarra_first_6_1|See this wide road that goes outside this guardhouse? That\'s the Duleian road. It goes all the way from the glorious city of Feygard up in the northwest down to the wretched Nor City in the southeast.|||{ {You mentioned some problems in Loneford, what problems are that?|cr_loneford_st_1||||} }|}; -{minarra_story_1|I saw a band of rough looking men on travelling up the Duleian road. Usually, a band of rough looking men is not something that\'s worth getting all excited about.|||{{N|minarra_story_2||||}}|}; +{minarra_story_1|I saw a band of rough looking men travelling up the Duleian road. Usually, a band of rough looking men is not something that\'s worth getting all excited about.|||{{N|minarra_story_2||||}}|}; {minarra_story_2|But these men matched the description of some people that are wanted by the Feygard patrol.|||{{N|minarra_story_3||||}}|}; {minarra_story_3|If I saw correctly, these men were the band of rogues led by a man called Rogorn, that we are looking to apprehend for several ruthless cases of murder and theft.|||{{N|minarra_story_4||||}}|}; {minarra_story_4|Their leader, Rogorn, is a particularly savage man according to the reports from Feygard that I have read.|||{{N|minarra_story_5||||}}|}; @@ -2729,7 +2729,7 @@ {What is this place?|gallain_cr_1||||} }|}; {gallain_cr_1|As I said, this is the Crossroads guardhouse. The guards from Feygard are using this place as a place to rest and gear up.|||{{N|gallain_cr_2||||}}|}; -{gallain_cr_2|Because of this, it is also a safe haven for merchants travelling through here. And we get at lot of those.|||{{N|gallain_1||||}}|}; +{gallain_cr_2|Because of this, it is also a safe haven for merchants travelling through here. We get at lot of those.|||{{N|gallain_1||||}}|}; {gallain_trade_1|Here, have a look.|||{{Trade|S||||}}|}; {gallain_rest_1|The guards have set up some beds downstairs. Go check with them.|||{{N|gallain_1||||}}|}; @@ -2905,7 +2905,7 @@ {buceth_gold_no|Hrmpf. Thanks for the gold, but I am not interested in talking to you. Now, please leave.||||}; {buceth_gold_yes|You seem to realize the true value of the Shadow. Yes, this will do fine, thank you.|loneford:41||{{N|buceth_story_1||||}}|}; {buceth_5|Let\'s assume you live in a village that, for the most part, keeps to itself. Your village is self-sustainable and the crops have been good for some years.|||{{N|buceth_6||||}}|}; -{buceth_6|With the few exceptions of a some fights here and there between villagers because of misunderstandings, on the whole, your village is a friendly peaceful village.|||{{N|buceth_7||||}}|}; +{buceth_6|With the few exceptions of some fights here and there between villagers because of misunderstandings, on the whole, your village is a friendly, peaceful village.|||{{N|buceth_7||||}}|}; {buceth_7|You work in the same profession as your parents, which in turn worked in the same professions as their parents.|||{{N|buceth_8||||}}|}; {buceth_8|Let\'s also assume that the way you conduct your business is the same way that the people in the village have been conducting their business for generations past.|||{{N|buceth_9||||}}|}; {buceth_9|Everyone respects one another in the village, and your appointed leader does a good job at keeping everyone\'s interests satisfied, while at the same time being reasonably fair.|||{{N|buceth_10||||}}|}; @@ -2996,7 +2996,7 @@ {Do you have anything to trade?|S||||} }|}; {talion_1|The people of Loneford are very keen on following the will of Feygard, whatever it may be.|||{{N|talion_2||||}}|}; -{talion_2|Normally, this would not be a problem. But Lord Geomyr seems to have something against the Shadow. He will do almost anything to oppose all actions that in some way are extend the reach of the Shadow.|||{{N|talion_3||||}}|}; +{talion_2|Normally, this would not be a problem. But Lord Geomyr seems to have something against the Shadow. He will do almost anything to oppose all actions that in some way extend the reach of the Shadow.|||{{N|talion_3||||}}|}; {talion_3|Because of this, the people of Loneford are now actively abolishing the thought of the Shadow guiding them through their lives.|||{{N|talion_4||||}}|}; {talion_4|People around here would rather follow the law of Feygard than follow the old ways.|||{{N|talion_5||||}}|}; {talion_5|My feeling is that this illness is caused by the Shadow, as punishment to all of us here in Loneford.|loneford:23||{{N|loneford_ill_c_1||||}}|}; @@ -3122,7 +3122,7 @@ {I have some Izthiel claws to sell you.|gauward_sell_1|nondisplay:20|||} }|}; {gauward_1|This place used to be a safe house for travellers between Loneford and Brimhaven, before they had finished the road between the villages.|||{{N|gauward_2||||}}|}; -{gauward_2|But nowadays, no one rarely comes here - because of those cursed creatures from the river.|||{{N|gauward_3||||}}|}; +{gauward_2|But nowadays, anyone rarely comes here - because of those cursed creatures from the river.|||{{N|gauward_3||||}}|}; {gauward_3|Izthiel, they call them.|||{{N|gauward_4||||}}|}; {gauward_4|Ack, if it wasn\'t for those things out there, I am sure a lot of people would come by here more often.|||{ {Would you like me to kill the creatures for you?|gauward_5||||} diff --git a/AndorsTrail/res/values/strings.xml b/AndorsTrail/res/values/strings.xml index 5100a1c..5a62197 100644 --- a/AndorsTrail/res/values/strings.xml +++ b/AndorsTrail/res/values/strings.xml @@ -89,7 +89,7 @@ You equipped %1$s. Pick up all - You found %1$d gold. + You found %1$d gold. You picked up an item. You picked up %1$d items. Items diff --git a/AndorsTrail/res/xml/crossroads.tmx b/AndorsTrail/res/xml/crossroads.tmx index d586ae5..f744459 100644 --- a/AndorsTrail/res/xml/crossroads.tmx +++ b/AndorsTrail/res/xml/crossroads.tmx @@ -65,7 +65,7 @@ - eJzFlNkNwDAIQ7MC+y/b3xYFbHOoSKhSDh4OFDtfs5d7M7CvWHQfxd7iIrbXfvMK117fijbEZ2Le7k/pqpxjuVkdEL/KzfJhzmRc1FPsGpObyo2YUextbsS8nUN9knGj/Cr9rM42pSen7qr/QfefYeoS1bNjyuyetg6Xybu6p+SgrHs2qnl3Jqpsxb3WjmZUS2YmTnCz90fxOtzoDoqZ6VXXVb1RH2Q5dfUqfc+8FZOr0qfb7HN29Uz5H+xp5gNZ3hpe + eJzFlF0KwDAIg3uF3v+ye91KYxJ/mCADW/10Wvf6yj5UPXMF+bPYU1zGPmu/aYa7X99MbYyvxGS9Zr6K3bmncqM+MH6WG+Wj3GFvSnl/zKbk5nIRE8We5iLm7R6bk4iL8svMs7vbnJns8nXfQfXNKH1B/ayIs7u7pcJV8s6eOTk49pPNel7diS7b0bPWSs2sl8pO7OBG/5/Fq3CRD4sZ1eva3XrRHEQ5Vet15l75V0quzpxOs9earadL/2B3Mx9HIRpv @@ -87,7 +87,7 @@ - + diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/DebugInterface.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/DebugInterface.java index f5da0ab..a249786 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/DebugInterface.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/DebugInterface.java @@ -11,7 +11,6 @@ import com.gpl.rpg.AndorsTrail.AndorsTrailApplication; import com.gpl.rpg.AndorsTrail.R; import com.gpl.rpg.AndorsTrail.context.ViewContext; import com.gpl.rpg.AndorsTrail.context.WorldContext; -import com.gpl.rpg.AndorsTrail.model.map.MapObject; public final class DebugInterface { private final ViewContext viewContext; @@ -48,7 +47,7 @@ public final class DebugInterface { mainActivity.showToast("DEBUG: damagePotential=1", Toast.LENGTH_SHORT); } })*/ - ,new DebugButton("items", new OnClickListener() { + /*,new DebugButton("items", new OnClickListener() { @Override public void onClick(View arg0) { world.model.player.inventory.addItem(world.itemTypes.getItemType("elytharan_redeemer")); @@ -67,7 +66,7 @@ public final class DebugInterface { mainActivity.updateStatus(); mainActivity.showToast("DEBUG: added items", Toast.LENGTH_SHORT); } - }) + })*/ /*new DebugButton("skills++", new OnClickListener() { @Override public void onClick(View arg0) { @@ -133,6 +132,7 @@ public final class DebugInterface { mainActivity.showToast("DEBUG: added 10k exp", Toast.LENGTH_SHORT); } }) + /* ,new DebugButton("cg", new OnClickListener() { @Override public void onClick(View arg0) { @@ -169,6 +169,8 @@ public final class DebugInterface { viewContext.movementController.placePlayerAt(MapObject.MAPEVENT_NEWMAP, "roadtocarntower1", "left3", 0, 0); } }) + */ + }); } diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/ShopActivity.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/ShopActivity.java index b796d3b..66faaed 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/ShopActivity.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/ShopActivity.java @@ -1,5 +1,7 @@ package com.gpl.rpg.AndorsTrail.activity; +import java.util.HashSet; + import android.app.Activity; import android.app.TabActivity; import android.content.Intent; @@ -20,6 +22,7 @@ import com.gpl.rpg.AndorsTrail.model.actor.Player; import com.gpl.rpg.AndorsTrail.model.item.ItemContainer; import com.gpl.rpg.AndorsTrail.model.item.ItemType; import com.gpl.rpg.AndorsTrail.model.item.Loot; +import com.gpl.rpg.AndorsTrail.resource.tiles.TileCollection; import com.gpl.rpg.AndorsTrail.view.ShopItemContainerAdapter; import com.gpl.rpg.AndorsTrail.view.ShopItemContainerAdapter.OnContainerItemClickedListener; @@ -70,8 +73,11 @@ public final class ShopActivity extends TabActivity implements OnContainerItemCl npc.dropList.createRandomLoot(merchantLoot, player); container_buy = merchantLoot.items; - buyListAdapter = new ShopItemContainerAdapter(this, world.tileManager, player, container_buy, this, false); - sellListAdapter = new ShopItemContainerAdapter(this, world.tileManager, player, player.inventory, this, true); + HashSet iconIDs = world.tileManager.getTileIDsFor(container_buy); + iconIDs.addAll(world.tileManager.getTileIDsFor(player.inventory)); + TileCollection tiles = world.tileManager.tileCache.loadTilesFor(iconIDs, res); + buyListAdapter = new ShopItemContainerAdapter(this, tiles, world.tileManager, player, container_buy, this, false); + sellListAdapter = new ShopItemContainerAdapter(this, tiles, world.tileManager, player, player.inventory, this, true); shoplist_buy.setAdapter(buyListAdapter); shoplist_sell.setAdapter(sellListAdapter); diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/CombatController.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/CombatController.java index c57e08b..6a76c8b 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/CombatController.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/CombatController.java @@ -195,6 +195,11 @@ public final class CombatController implements VisualEffectCompletedCallback { } message(msg); + if (lastAttackResult.targetDied) { + playerKilledMonster(currentlyAttackedMonster); + } + context.mainActivity.updateStatus(); + startAttackEffect(attack, model.uiSelections.selectedPosition, this, CALLBACK_PLAYERATTACK); } else { message(r.getString(R.string.combat_result_heromiss)); @@ -204,7 +209,6 @@ public final class CombatController implements VisualEffectCompletedCallback { private void playerAttackCompleted() { if (lastAttackResult.targetDied) { - playerKilledMonster(currentlyAttackedMonster); Monster nextMonster = getAdjacentMonster(); if (nextMonster == null) { exitCombat(true); @@ -225,7 +229,6 @@ public final class CombatController implements VisualEffectCompletedCallback { killedMonster.createLoot(loot, player); model.currentMap.remove(killedMonster); - context.mainActivity.redrawAll(MainView.REDRAW_ALL_MONSTER_KILLED); player.ap.add(player.getSkillLevel(SkillCollection.SKILL_CLEAVE) * SkillCollection.PER_SKILLPOINT_INCREASE_CLEAVE_AP, false); player.health.add(player.getSkillLevel(SkillCollection.SKILL_EATER) * SkillCollection.PER_SKILLPOINT_INCREASE_EATER_HEALTH, false); @@ -244,6 +247,8 @@ public final class CombatController implements VisualEffectCompletedCallback { ItemController.updateLootVisibility(context, loot); if (model.uiSelections.isInCombat) killedMonsterBags.add(loot); } + + context.mainActivity.redrawAll(MainView.REDRAW_ALL_MONSTER_KILLED); } private void maybeAutoEndTurn() { diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/ResourceFileTokenizer.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/ResourceFileTokenizer.java index e26f9c1..0ad46ba 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/ResourceFileTokenizer.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/ResourceFileTokenizer.java @@ -7,10 +7,9 @@ import java.util.HashSet; import java.util.regex.Matcher; import java.util.regex.Pattern; -import android.util.Pair; - import com.gpl.rpg.AndorsTrail.AndorsTrailApplication; import com.gpl.rpg.AndorsTrail.util.L; +import com.gpl.rpg.AndorsTrail.util.Pair; public class ResourceFileTokenizer { private static final Pattern rowPattern = Pattern.compile("\\{(.+?)\\};", Pattern.MULTILINE | Pattern.DOTALL); diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/ActorConditionsTypeParser.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/ActorConditionsTypeParser.java index 4989bd1..f618051 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/ActorConditionsTypeParser.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/ActorConditionsTypeParser.java @@ -1,10 +1,9 @@ package com.gpl.rpg.AndorsTrail.resource.parsers; -import android.util.Pair; - import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionType; import com.gpl.rpg.AndorsTrail.resource.DynamicTileLoader; import com.gpl.rpg.AndorsTrail.resource.ResourceFileTokenizer.ResourceParserFor; +import com.gpl.rpg.AndorsTrail.util.Pair; public final class ActorConditionsTypeParser extends ResourceParserFor { diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/ConversationListParser.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/ConversationListParser.java index 5c98f9c..ef6245f 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/ConversationListParser.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/ConversationListParser.java @@ -2,13 +2,12 @@ package com.gpl.rpg.AndorsTrail.resource.parsers; import java.util.ArrayList; -import android.util.Pair; - import com.gpl.rpg.AndorsTrail.conversation.Phrase; import com.gpl.rpg.AndorsTrail.conversation.Phrase.Reply; import com.gpl.rpg.AndorsTrail.model.quest.QuestProgress; import com.gpl.rpg.AndorsTrail.resource.ResourceFileTokenizer; import com.gpl.rpg.AndorsTrail.resource.ResourceFileTokenizer.ResourceParserFor; +import com.gpl.rpg.AndorsTrail.util.Pair; public final class ConversationListParser extends ResourceParserFor { diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/DropListParser.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/DropListParser.java index 56a0ae8..f1747f9 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/DropListParser.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/DropListParser.java @@ -2,8 +2,6 @@ package com.gpl.rpg.AndorsTrail.resource.parsers; import java.util.ArrayList; -import android.util.Pair; - import com.gpl.rpg.AndorsTrail.AndorsTrailApplication; import com.gpl.rpg.AndorsTrail.model.item.DropList; import com.gpl.rpg.AndorsTrail.model.item.ItemTypeCollection; @@ -11,6 +9,7 @@ import com.gpl.rpg.AndorsTrail.model.item.DropList.DropItem; import com.gpl.rpg.AndorsTrail.resource.ResourceFileTokenizer; import com.gpl.rpg.AndorsTrail.resource.ResourceFileTokenizer.ResourceParserFor; import com.gpl.rpg.AndorsTrail.util.L; +import com.gpl.rpg.AndorsTrail.util.Pair; public final class DropListParser extends ResourceParserFor { diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/ItemTypeParser.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/ItemTypeParser.java index b834bc0..06e09da 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/ItemTypeParser.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/ItemTypeParser.java @@ -1,13 +1,12 @@ package com.gpl.rpg.AndorsTrail.resource.parsers; -import android.util.Pair; - import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionTypeCollection; import com.gpl.rpg.AndorsTrail.model.item.ItemTraits_OnEquip; import com.gpl.rpg.AndorsTrail.model.item.ItemTraits_OnUse; import com.gpl.rpg.AndorsTrail.model.item.ItemType; import com.gpl.rpg.AndorsTrail.resource.DynamicTileLoader; import com.gpl.rpg.AndorsTrail.resource.ResourceFileTokenizer.ResourceParserFor; +import com.gpl.rpg.AndorsTrail.util.Pair; public final class ItemTypeParser extends ResourceParserFor { diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/MonsterTypeParser.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/MonsterTypeParser.java index e77ee3a..ddf8f95 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/MonsterTypeParser.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/MonsterTypeParser.java @@ -1,7 +1,5 @@ package com.gpl.rpg.AndorsTrail.resource.parsers; -import android.util.Pair; - import com.gpl.rpg.AndorsTrail.controller.Constants; import com.gpl.rpg.AndorsTrail.model.CombatTraits; import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionTypeCollection; @@ -10,6 +8,7 @@ import com.gpl.rpg.AndorsTrail.model.item.DropListCollection; import com.gpl.rpg.AndorsTrail.model.item.ItemTraits_OnUse; import com.gpl.rpg.AndorsTrail.resource.DynamicTileLoader; import com.gpl.rpg.AndorsTrail.resource.ResourceFileTokenizer.ResourceParserFor; +import com.gpl.rpg.AndorsTrail.util.Pair; import com.gpl.rpg.AndorsTrail.util.Size; public final class MonsterTypeParser extends ResourceParserFor { diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/QuestParser.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/QuestParser.java index 16acea7..bc92956 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/QuestParser.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/QuestParser.java @@ -4,12 +4,11 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; -import android.util.Pair; - import com.gpl.rpg.AndorsTrail.model.quest.Quest; import com.gpl.rpg.AndorsTrail.model.quest.QuestLogEntry; import com.gpl.rpg.AndorsTrail.resource.ResourceFileTokenizer; import com.gpl.rpg.AndorsTrail.resource.ResourceFileTokenizer.ResourceParserFor; +import com.gpl.rpg.AndorsTrail.util.Pair; public final class QuestParser extends ResourceParserFor { private int sortOrder = 0; diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/tiles/TileManager.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/tiles/TileManager.java index 8b60fa3..1abd823 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/tiles/TileManager.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/tiles/TileManager.java @@ -54,18 +54,19 @@ public final class TileManager { public TileCollection loadTilesFor(ItemContainer container, Resources r) { + return tileCache.loadTilesFor(getTileIDsFor(container), r); + } + + public HashSet getTileIDsFor(ItemContainer container) { HashSet iconIDs = new HashSet(); for(ItemEntry i : container.items) { iconIDs.add(i.itemType.iconID); } - return tileCache.loadTilesFor(iconIDs, r); + return iconIDs; } public TileCollection loadTilesFor(Inventory inventory, Resources r) { - HashSet iconIDs = new HashSet(); - for(ItemEntry i : inventory.items) { - iconIDs.add(i.itemType.iconID); - } + HashSet iconIDs = getTileIDsFor(inventory); for(ItemType t : inventory.wear) { if (t != null) iconIDs.add(t.iconID); } @@ -150,12 +151,14 @@ public final class TileManager { HashSet adjacentMapNames = new HashSet(); for (MapObject o : nextMap.eventObjects) { if (o.type != MapObject.MAPEVENT_NEWMAP) continue; + if (o.map == null) continue; adjacentMapNames.add(o.map); } HashSet tileIDs = new HashSet(); for (String mapName : adjacentMapNames) { PredefinedMap adjacentMap = world.maps.findPredefinedMap(mapName); + if (adjacentMap == null) continue; LayeredTileMap adjacentMapTiles = TMXMapTranslator.readLayeredTileMap(res, tileCache, adjacentMap); tileIDs.addAll(getTileIDsFor(adjacentMap, adjacentMapTiles, world)); } diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/util/Pair.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/util/Pair.java new file mode 100644 index 0000000..663dc10 --- /dev/null +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/util/Pair.java @@ -0,0 +1,11 @@ +package com.gpl.rpg.AndorsTrail.util; + +// Should really use android.util.Pair<> instead, but it is not available for API level 4 (Android 1.6). +public final class Pair { + public final T1 first; + public final T2 second; + public Pair(T1 a, T2 b) { + this.first = a; + this.second = b; + } +} diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/ShopItemContainerAdapter.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/ShopItemContainerAdapter.java index 8a073c2..d1fb9de 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/ShopItemContainerAdapter.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/ShopItemContainerAdapter.java @@ -27,10 +27,10 @@ public final class ShopItemContainerAdapter extends ArrayAdapter { private final Resources r; private final Player player; - public ShopItemContainerAdapter(Context context, TileManager tileManager, Player player, ItemContainer items, OnContainerItemClickedListener clickListener, boolean isSelling) { + public ShopItemContainerAdapter(Context context, TileCollection tileCollection, TileManager tileManager, Player player, ItemContainer items, OnContainerItemClickedListener clickListener, boolean isSelling) { super(context, 0, items.items); this.tileManager = tileManager; - this.tileCollection = tileManager.loadTilesFor(items, context.getResources()); + this.tileCollection = tileCollection; this.player = player; this.clickListener = clickListener; this.isSelling = isSelling; @@ -39,7 +39,6 @@ public final class ShopItemContainerAdapter extends ArrayAdapter { @Override public View getView(final int position, View convertView, ViewGroup parent) { - //return new InventoryItemView(getContext(), getItem(position)); final ItemEntry item = getItem(position); final ItemType itemType = item.itemType; -- 2.49.0