From bebabbb2aa8d4e2b65ffb5a1983cf320af288114 Mon Sep 17 00:00:00 2001 From: "oskar.wiksten" Date: Sat, 30 Jul 2011 19:50:53 +0000 Subject: [PATCH] Introduced a setting for whether d-pad should be minimizable or not. Added skills for resistance of actor conditions. (thanks Samuel) Remove duplicate items (but give back gold) whose store price has increased, to prevent exploiting the newer item prices. Changes to code comments, display texts. (thanks Samuel) git-svn-id: https://andors-trail.googlecode.com/svn/trunk@146 08aca716-68be-ccc6-4d58-36f5abd142ac --- .../gen/com/gpl/rpg/AndorsTrail/R.java | 163 ++++++++++-------- .../res/values-de/content_itemlist.xml | 16 +- .../res/values-fr/content_itemlist.xml | 16 +- .../res/values-it/content_itemlist.xml | 16 +- AndorsTrail/res/values/content_droplist.xml | 28 +-- AndorsTrail/res/values/content_itemlist.xml | 16 +- AndorsTrail/res/values/strings.xml | 11 ++ AndorsTrail/res/xml/preferences.xml | 5 + .../AndorsTrail/AndorsTrailApplication.java | 2 +- .../AndorsTrail/AndorsTrailPreferences.java | 3 + .../activity/BulkSelectionInterface.java | 1 - .../AndorsTrail/activity/MainActivity.java | 20 ++- .../activity/SkillInfoActivity.java | 8 +- .../controller/ActorStatsController.java | 5 +- .../controller/SkillController.java | 24 +++ .../model/ability/SkillCollection.java | 46 +++-- .../AndorsTrail/model/ability/SkillInfo.java | 4 +- .../rpg/AndorsTrail/model/item/Inventory.java | 3 + .../AndorsTrail/model/item/ItemContainer.java | 26 +++ .../rpg/AndorsTrail/model/item/ItemType.java | 6 +- .../gpl/rpg/AndorsTrail/model/item/Loot.java | 2 + .../AndorsTrail/view/SkillListAdapter.java | 8 + .../rpg/AndorsTrail/view/VirtualDpadView.java | 3 + AndorsTrailEdit/editor.html | 2 +- 24 files changed, 280 insertions(+), 154 deletions(-) diff --git a/AndorsTrail/gen/com/gpl/rpg/AndorsTrail/R.java b/AndorsTrail/gen/com/gpl/rpg/AndorsTrail/R.java index 24ef442ba..1eff0f289 100644 --- a/AndorsTrail/gen/com/gpl/rpg/AndorsTrail/R.java +++ b/AndorsTrail/gen/com/gpl/rpg/AndorsTrail/R.java @@ -409,10 +409,10 @@ public final class R { Translated as: affliction / statuseffect / temporary effect */ public static final int actorcondition_info_removes_all=0x7f050127; - public static final int actorconditioninfo_category=0x7f05018a; - public static final int actorconditioninfo_constant_effect=0x7f050143; - public static final int actorconditioninfo_effect_every_full_round=0x7f050145; - public static final int actorconditioninfo_effect_every_round=0x7f050144; + public static final int actorconditioninfo_category=0x7f050195; + public static final int actorconditioninfo_constant_effect=0x7f050145; + public static final int actorconditioninfo_effect_every_full_round=0x7f050147; + public static final int actorconditioninfo_effect_every_round=0x7f050146; public static final int actorconditions_v069=0x7f050001; public static final int actorconditions_v069_bwm=0x7f050002; public static final int actorinfo_attack=0x7f0500c8; @@ -437,11 +437,11 @@ public final class R { public static final int actorinfo_movecost=0x7f0500cb; public static final int actorinfo_movesperturn=0x7f0500c7; public static final int app_name=0x7f05006d; - public static final int bulkselection_select_all=0x7f050148; - public static final int bulkselection_sell_confirmation=0x7f05014a; - public static final int bulkselection_sell_confirmation_title=0x7f050149; - public static final int bulkselection_totalcost_buy=0x7f050146; - public static final int bulkselection_totalcost_sell=0x7f050147; + public static final int bulkselection_select_all=0x7f05014a; + public static final int bulkselection_sell_confirmation=0x7f05014c; + public static final int bulkselection_sell_confirmation_title=0x7f05014b; + public static final int bulkselection_totalcost_buy=0x7f050148; + public static final int bulkselection_totalcost_sell=0x7f050149; public static final int combat_attack=0x7f050099; public static final int combat_begin_flee=0x7f05009f; public static final int combat_endturn=0x7f05009d; @@ -485,7 +485,7 @@ public final class R { public static final int conversation_rewardgold=0x7f0500ee; public static final int conversation_rewarditem=0x7f0500f0; public static final int conversation_rewarditems=0x7f0500f1; - public static final int conversation_title=0x7f05018e; + public static final int conversation_title=0x7f050199; public static final int conversationlist_alynndir=0x7f050026; public static final int conversationlist_ambelie=0x7f05002a; public static final int conversationlist_blackwater_harlenn=0x7f05003d; @@ -671,7 +671,7 @@ public final class R { public static final int itemlist_v069_2=0x7f050059; public static final int itemlist_v069_questitems=0x7f05005a; public static final int itemlist_weapons=0x7f05004e; - public static final int key_required=0x7f05018d; + public static final int key_required=0x7f050198; public static final int levelup_add_attackchance=0x7f050101; public static final int levelup_add_attackchance_description=0x7f050102; public static final int levelup_add_attackdamage=0x7f050103; @@ -680,13 +680,13 @@ public final class R { public static final int levelup_add_blockchance_description=0x7f050106; public static final int levelup_add_health=0x7f0500ff; public static final int levelup_add_health_description=0x7f050100; - public static final int levelup_adds_new_skillpoint=0x7f050186; + public static final int levelup_adds_new_skillpoint=0x7f050191; public static final int levelup_buttontext=0x7f0500fe; public static final int levelup_description=0x7f0500fd; public static final int levelup_title=0x7f0500fc; - public static final int loadsave_save_overwrite_confirmation=0x7f050189; - public static final int loadsave_save_overwrite_confirmation_title=0x7f050188; - public static final int loadsave_save_to_new_slot=0x7f050187; + public static final int loadsave_save_overwrite_confirmation=0x7f050194; + public static final int loadsave_save_overwrite_confirmation_title=0x7f050193; + public static final int loadsave_save_to_new_slot=0x7f050192; public static final int loadsave_selectslot=0x7f050078; public static final int loadsave_slot_empty=0x7f050079; public static final int loadsave_title_load=0x7f050077; @@ -729,6 +729,8 @@ public final class R { public static final int preferences_display_scaling_factor=0x7f05013b; public static final int preferences_display_scaling_factor_title=0x7f05013a; public static final int preferences_movement_category=0x7f050123; + public static final int preferences_movement_dpad_minimizeable=0x7f050144; + public static final int preferences_movement_dpad_minimizeable_title=0x7f050143; public static final int preferences_movement_dpad_position=0x7f050142; /** =========================================== Added in v0.6.10 @@ -757,65 +759,74 @@ public final class R { public static final int shop_sell=0x7f0500f5; public static final int shop_sellitem=0x7f0500f8; public static final int shop_yourgold=0x7f0500f9; - public static final int skill_current_level=0x7f05017f; - public static final int skill_current_level_with_maximum=0x7f050180; - public static final int skill_longdescription_barkskin=0x7f050171; - public static final int skill_longdescription_barter=0x7f05016f; - public static final int skill_longdescription_better_criticals=0x7f050173; - public static final int skill_longdescription_cleave=0x7f050177; - public static final int skill_longdescription_coinfinder=0x7f050175; - public static final int skill_longdescription_dodge=0x7f050170; - public static final int skill_longdescription_eater=0x7f050178; - public static final int skill_longdescription_evasion=0x7f05017a; - public static final int skill_longdescription_fortitude=0x7f050179; - public static final int skill_longdescription_lower_exploss=0x7f05017c; - public static final int skill_longdescription_magicfinder=0x7f05017d; - public static final int skill_longdescription_more_criticals=0x7f050172; - public static final int skill_longdescription_more_exp=0x7f050176; - public static final int skill_longdescription_regeneration=0x7f05017b; - public static final int skill_longdescription_speed=0x7f050174; - public static final int skill_longdescription_weapon_chance=0x7f05016d; - public static final int skill_longdescription_weapon_dmg=0x7f05016e; - public static final int skill_number_of_increases_one=0x7f050184; - public static final int skill_number_of_increases_several=0x7f050185; - public static final int skill_prerequisite_level=0x7f050182; - public static final int skill_prerequisite_other_skill=0x7f050181; - public static final int skill_prerequisite_stat=0x7f050183; - public static final int skill_shortdescription_barkskin=0x7f050160; - public static final int skill_shortdescription_barter=0x7f05015e; - public static final int skill_shortdescription_better_criticals=0x7f050162; - public static final int skill_shortdescription_cleave=0x7f050166; - public static final int skill_shortdescription_coinfinder=0x7f050164; - public static final int skill_shortdescription_dodge=0x7f05015f; - public static final int skill_shortdescription_eater=0x7f050167; - public static final int skill_shortdescription_evasion=0x7f050169; - public static final int skill_shortdescription_fortitude=0x7f050168; - public static final int skill_shortdescription_lower_exploss=0x7f05016b; - public static final int skill_shortdescription_magicfinder=0x7f05016c; - public static final int skill_shortdescription_more_criticals=0x7f050161; - public static final int skill_shortdescription_more_exp=0x7f050165; - public static final int skill_shortdescription_regeneration=0x7f05016a; - public static final int skill_shortdescription_speed=0x7f050163; - public static final int skill_shortdescription_weapon_chance=0x7f05015c; - public static final int skill_shortdescription_weapon_dmg=0x7f05015d; - public static final int skill_title_barkskin=0x7f05014f; - public static final int skill_title_barter=0x7f05014d; - public static final int skill_title_better_criticals=0x7f050151; - public static final int skill_title_cleave=0x7f050155; - public static final int skill_title_coinfinder=0x7f050153; - public static final int skill_title_dodge=0x7f05014e; - public static final int skill_title_eater=0x7f050156; - public static final int skill_title_evasion=0x7f050158; - public static final int skill_title_fortitude=0x7f050157; - public static final int skill_title_lower_exploss=0x7f05015a; - public static final int skill_title_magicfinder=0x7f05015b; - public static final int skill_title_more_criticals=0x7f050150; - public static final int skill_title_more_exp=0x7f050154; - public static final int skill_title_regeneration=0x7f050159; - public static final int skill_title_speed=0x7f050152; - public static final int skill_title_weapon_chance=0x7f05014b; - public static final int skill_title_weapon_dmg=0x7f05014c; - public static final int skillinfo_action_levelup=0x7f05017e; + public static final int skill_current_level=0x7f05018a; + public static final int skill_current_level_with_maximum=0x7f05018b; + public static final int skill_longdescription_barkskin=0x7f050179; + public static final int skill_longdescription_barter=0x7f050177; + public static final int skill_longdescription_better_criticals=0x7f05017b; + public static final int skill_longdescription_cleave=0x7f05017f; + public static final int skill_longdescription_coinfinder=0x7f05017d; + public static final int skill_longdescription_dodge=0x7f050178; + public static final int skill_longdescription_eater=0x7f050180; + public static final int skill_longdescription_evasion=0x7f050182; + public static final int skill_longdescription_fortitude=0x7f050181; + public static final int skill_longdescription_lower_exploss=0x7f050184; + public static final int skill_longdescription_magicfinder=0x7f050185; + public static final int skill_longdescription_more_criticals=0x7f05017a; + public static final int skill_longdescription_more_exp=0x7f05017e; + public static final int skill_longdescription_regeneration=0x7f050183; + public static final int skill_longdescription_resistance_blood_disorder=0x7f050188; + public static final int skill_longdescription_resistance_mental=0x7f050186; + public static final int skill_longdescription_resistance_physical_capacity=0x7f050187; + public static final int skill_longdescription_speed=0x7f05017c; + public static final int skill_longdescription_weapon_chance=0x7f050175; + public static final int skill_longdescription_weapon_dmg=0x7f050176; + public static final int skill_number_of_increases_one=0x7f05018f; + public static final int skill_number_of_increases_several=0x7f050190; + public static final int skill_prerequisite_level=0x7f05018d; + public static final int skill_prerequisite_other_skill=0x7f05018c; + public static final int skill_prerequisite_stat=0x7f05018e; + public static final int skill_shortdescription_barkskin=0x7f050165; + public static final int skill_shortdescription_barter=0x7f050163; + public static final int skill_shortdescription_better_criticals=0x7f050167; + public static final int skill_shortdescription_cleave=0x7f05016b; + public static final int skill_shortdescription_coinfinder=0x7f050169; + public static final int skill_shortdescription_dodge=0x7f050164; + public static final int skill_shortdescription_eater=0x7f05016c; + public static final int skill_shortdescription_evasion=0x7f05016e; + public static final int skill_shortdescription_fortitude=0x7f05016d; + public static final int skill_shortdescription_lower_exploss=0x7f050170; + public static final int skill_shortdescription_magicfinder=0x7f050171; + public static final int skill_shortdescription_more_criticals=0x7f050166; + public static final int skill_shortdescription_more_exp=0x7f05016a; + public static final int skill_shortdescription_regeneration=0x7f05016f; + public static final int skill_shortdescription_resistance_blood_disorder=0x7f050174; + public static final int skill_shortdescription_resistance_mental=0x7f050172; + public static final int skill_shortdescription_resistance_physical_capacity=0x7f050173; + public static final int skill_shortdescription_speed=0x7f050168; + public static final int skill_shortdescription_weapon_chance=0x7f050161; + public static final int skill_shortdescription_weapon_dmg=0x7f050162; + public static final int skill_title_barkskin=0x7f050151; + public static final int skill_title_barter=0x7f05014f; + public static final int skill_title_better_criticals=0x7f050153; + public static final int skill_title_cleave=0x7f050157; + public static final int skill_title_coinfinder=0x7f050155; + public static final int skill_title_dodge=0x7f050150; + public static final int skill_title_eater=0x7f050158; + public static final int skill_title_evasion=0x7f05015a; + public static final int skill_title_fortitude=0x7f050159; + public static final int skill_title_lower_exploss=0x7f05015c; + public static final int skill_title_magicfinder=0x7f05015d; + public static final int skill_title_more_criticals=0x7f050152; + public static final int skill_title_more_exp=0x7f050156; + public static final int skill_title_regeneration=0x7f05015b; + public static final int skill_title_resistance_blood_disorder=0x7f050160; + public static final int skill_title_resistance_mental=0x7f05015e; + public static final int skill_title_resistance_physical_capacity=0x7f05015f; + public static final int skill_title_speed=0x7f050154; + public static final int skill_title_weapon_chance=0x7f05014d; + public static final int skill_title_weapon_dmg=0x7f05014e; + public static final int skillinfo_action_levelup=0x7f050189; public static final int startscreen_about=0x7f0500ea; public static final int startscreen_continue=0x7f0500e7; public static final int startscreen_enterheroname=0x7f0500eb; @@ -829,8 +840,8 @@ public final class R { public static final int traitsinfo_attack_chance=0x7f0500cf; public static final int traitsinfo_attack_cost=0x7f0500ce; public static final int traitsinfo_attack_damage=0x7f0500d0; - public static final int traitsinfo_base_max_ap=0x7f05018c; - public static final int traitsinfo_base_max_hp=0x7f05018b; + public static final int traitsinfo_base_max_ap=0x7f050197; + public static final int traitsinfo_base_max_hp=0x7f050196; public static final int traitsinfo_criticalhit_chance=0x7f0500d1; public static final int traitsinfo_criticalhit_multiplier=0x7f0500d2; public static final int traitsinfo_defense_chance=0x7f0500d3; diff --git a/AndorsTrail/res/values-de/content_itemlist.xml b/AndorsTrail/res/values-de/content_itemlist.xml index de51ac63a..d63038c01 100644 --- a/AndorsTrail/res/values-de/content_itemlist.xml +++ b/AndorsTrail/res/values-de/content_itemlist.xml @@ -81,11 +81,11 @@ [searchTag|iconID|name|category|displaytype|hasManualPrice|baseMarketCost|hasEquipEffect|equip_boostMaxHP|equip_boostMaxAP|equip_moveCostPenalty|equip_attackCost|equip_attackChance|equip_criticalChance|equip_criticalMultiplier|equip_attackDamage_Min|equip_attackDamage_Max|equip_blockChance|equip_damageResistance|equip_conditions[condition|magnitude|]|hasUseEffect|use_boostHP_Min|use_boostHP_Max|use_boostAP_Min|use_boostAP_Max|use_conditionsSource[condition|magnitude|duration|chance|]|hasHitEffect|hit_boostHP_Min|hit_boostHP_Max|hit_boostAP_Min|hit_boostAP_Max|hit_conditionsSource[condition|magnitude|duration|chance|]|hit_conditionsTarget[condition|magnitude|duration|chance|]|hasKillEffect|kill_boostHP_Min|kill_boostHP_Max|kill_boostAP_Min|kill_boostAP_Max|kill_conditionsSource[condition|magnitude|duration|chance|]|]; {apple_green|items_tiles:2|Grüner Apfel|21|||9||||||||||||||1|4|4|||||||||||||||||}; {apple_red|items_tiles:3|Roter Apfel|21|||15||||||||||||||1|6|6|||||||||||||||||}; -{meat|items_tiles:25|Fleisch|21|||29||||||||||||||1|12|12|||||||||||||||||}; -{meat_cooked|items_tiles:27|Braten|21|||78||||||||||||||1|21|21|||||||||||||||||}; +{meat|items_tiles:25|Fleisch|21||1|29||||||||||||||1|12|12|||||||||||||||||}; +{meat_cooked|items_tiles:27|Braten|21||1|78||||||||||||||1|21|21|||||||||||||||||}; {strawberry|items_tiles:8|Erdbeere|21|||1||||||||||||||1|1|1|||||||||||||||||}; {carrot|items_tiles:15|Karotte|21|||9||||||||||||||1|4|4|||||||||||||||||}; -{bread|items_tiles:21|Brot|21|||6||||||||||||||1|5|5|||||||||||||||||}; +{bread|items_tiles:21|Brot|21||1|6||||||||||||||1|5|5|||||||||||||||||}; {mushroom|items_tiles:19|Pilz|21|||1||||||||||||||1|1|1|||||||||||||||||}; {pear|items_tiles:9|Birne|21|||9||||||||||||||1|4|4|||||||||||||||||}; {eggs|items_tiles:20|Eier|21|||8||||||||||||||1|3|3|||||||||||||||||}; @@ -98,9 +98,11 @@ {vial_empty2|items_tiles:57|Leere Ampulle|31||1|4|||||||||||||||||||||||||||||||||}; {vial_empty3|items_tiles:59|Leeres Fläschchen|31||1|6|||||||||||||||||||||||||||||||||}; {vial_empty4|items_tiles:58|Leere Flasche|31||1|11|||||||||||||||||||||||||||||||||}; -{health_minor|items_tiles:35|Kleiner Trank der Gesundheit|20|||5||||||||||||||1|5|5|||||||||||||||||}; +{health_minor|items_tiles:35|Kleiner Trank der Gesundheit|20||1|5||||||||||||||1|5|5|||||||||||||||||}; +{health_minor2|items_tiles:35|Kleiner Trank der Gesundheit|20|||18||||||||||||||1|5|5|||||||||||||||||}; {health|items_tiles:49|Trank der Gesundheit|20|||40||||||||||||||1|10|10|||||||||||||||||}; -{health_major|items_tiles:28|Großer Trank der Gesundheit|20|||210||||||||||||||1|40|40|||||||||||||||||}; +{health_major|items_tiles:28|Großer Trank der Gesundheit|20||1|210||||||||||||||1|40|40|||||||||||||||||}; +{health_major2|items_tiles:28|Großer Trank der Gesundheit|20|||280||||||||||||||1|40|40|||||||||||||||||}; {mead|items_tiles:51|Met|20|||15||||||||||||||1|1|1|||||||||||||||||}; {milk|items_tiles:55|Milch|20|||21||||||||||||||1|2|2|||||||||||||||||}; {bonemeal_potion|items_tiles:34|Knochenmehltrank|20||1|45||||||||||||||1|40|40|||||||||||||||||}; @@ -150,8 +152,8 @@ {vacor_spell|items_tiles:248|Teil von Vacor\'s Zauberspruch|31|1|1|0|||||||||||||||||||||||||||||||||}; {ring_unzel|items_tiles:266|Unzel\'s Ring|31|1|1|0|||||||||||||||||||||||||||||||||}; {ring_vacor|items_tiles:266|Vacor\'s Ring|31|1|1|0|||||||||||||||||||||||||||||||||}; -{boots_unzel|items_tiles:197|Unzel\'s Abwehrstiefel|5|4||185|1||||||||||8||||||||||||||||||||||}; -{boots_vacor|items_tiles:197|Vacor\'s Angriffsstiefel|5|4||185|1|||||9|||||2||||||||||||||||||||||}; +{boots_unzel|items_tiles:197|Unzel\'s Abwehrstiefel|5|3||185|1||||||||||8||||||||||||||||||||||}; +{boots_vacor|items_tiles:197|Vacor\'s Angriffsstiefel|5|3||185|1|||||9|||||2||||||||||||||||||||||}; {necklace_flagstone|items_tiles:272|Flagstone Warden\'s Halskette|31|1|1|0|||||||||||||||||||||||||||||||||}; {packhide|items_tiles:183|Wolfpack\'s Fell|3|3|1|121|1|||||-15|||||2|1|||||||||||||||||||||}; {sword_flagstone|items_tiles:77|Flagstone\'s Stolz|0|3||169|1||||4|21|10|2|1|6|||||||||||||||||||||||}; diff --git a/AndorsTrail/res/values-fr/content_itemlist.xml b/AndorsTrail/res/values-fr/content_itemlist.xml index 5972cd352..2844ed356 100644 --- a/AndorsTrail/res/values-fr/content_itemlist.xml +++ b/AndorsTrail/res/values-fr/content_itemlist.xml @@ -80,11 +80,11 @@ [searchTag|iconID|name|category|displaytype|hasManualPrice|baseMarketCost|hasEquipEffect|equip_boostMaxHP|equip_boostMaxAP|equip_moveCostPenalty|equip_attackCost|equip_attackChance|equip_criticalChance|equip_criticalMultiplier|equip_attackDamage_Min|equip_attackDamage_Max|equip_blockChance|equip_damageResistance|equip_conditions[condition|magnitude|]|hasUseEffect|use_boostHP_Min|use_boostHP_Max|use_boostAP_Min|use_boostAP_Max|use_conditionsSource[condition|magnitude|duration|chance|]|hasHitEffect|hit_boostHP_Min|hit_boostHP_Max|hit_boostAP_Min|hit_boostAP_Max|hit_conditionsSource[condition|magnitude|duration|chance|]|hit_conditionsTarget[condition|magnitude|duration|chance|]|hasKillEffect|kill_boostHP_Min|kill_boostHP_Max|kill_boostAP_Min|kill_boostAP_Max|kill_conditionsSource[condition|magnitude|duration|chance|]|]; {apple_green|items_tiles:2|Pomme verte|21|||9||||||||||||||1|4|4|||||||||||||||||}; {apple_red|items_tiles:3|Pomme rouge|21|||15||||||||||||||1|6|6|||||||||||||||||}; -{meat|items_tiles:25|Viande|21|||29||||||||||||||1|12|12|||||||||||||||||}; -{meat_cooked|items_tiles:27|Viande préparée|21|||78||||||||||||||1|21|21|||||||||||||||||}; +{meat|items_tiles:25|Viande|21||1|29||||||||||||||1|12|12|||||||||||||||||}; +{meat_cooked|items_tiles:27|Viande préparée|21||1|78||||||||||||||1|21|21|||||||||||||||||}; {strawberry|items_tiles:8|Fraise|21|||1||||||||||||||1|1|1|||||||||||||||||}; {carrot|items_tiles:15|Carotte|21|||9||||||||||||||1|4|4|||||||||||||||||}; -{bread|items_tiles:21|Pain|21|||6||||||||||||||1|5|5|||||||||||||||||}; +{bread|items_tiles:21|Pain|21||1|6||||||||||||||1|5|5|||||||||||||||||}; {mushroom|items_tiles:19|Champignon|21|||1||||||||||||||1|1|1|||||||||||||||||}; {pear|items_tiles:9|Poire|21|||9||||||||||||||1|4|4|||||||||||||||||}; {eggs|items_tiles:20|Œufs|21|||8||||||||||||||1|3|3|||||||||||||||||}; @@ -97,9 +97,11 @@ {vial_empty2|items_tiles:57|Flacon vide|31||1|4|||||||||||||||||||||||||||||||||}; {vial_empty3|items_tiles:59|Flasque vide|31||1|6|||||||||||||||||||||||||||||||||}; {vial_empty4|items_tiles:58|Potion vide|31||1|11|||||||||||||||||||||||||||||||||}; -{health_minor|items_tiles:35|Potion mineure de santé|20|||5||||||||||||||1|5|5|||||||||||||||||}; +{health_minor|items_tiles:35|Potion mineure de santé|20||1|5||||||||||||||1|5|5|||||||||||||||||}; +{health_minor2|items_tiles:35|Potion mineure de santé|20|||18||||||||||||||1|5|5|||||||||||||||||}; {health|items_tiles:49|Potion normale de santé|20|||40||||||||||||||1|10|10|||||||||||||||||}; -{health_major|items_tiles:28|Potion supérieure de santé|20|||210||||||||||||||1|40|40|||||||||||||||||}; +{health_major|items_tiles:28|Potion supérieure de santé|20||1|210||||||||||||||1|40|40|||||||||||||||||}; +{health_major2|items_tiles:28|Potion supérieure de santé|20|||280||||||||||||||1|40|40|||||||||||||||||}; {mead|items_tiles:51|Hydromel|20|||15||||||||||||||1|1|1|||||||||||||||||}; {milk|items_tiles:55|Lait|20|||21||||||||||||||1|2|2|||||||||||||||||}; {bonemeal_potion|items_tiles:34|Potion d\'os|20||1|45||||||||||||||1|40|40|||||||||||||||||}; @@ -149,8 +151,8 @@ {vacor_spell|items_tiles:248|Article du sort de Vacor|31|1|1|0|||||||||||||||||||||||||||||||||}; {ring_unzel|items_tiles:266|Anneau d\'Unzel|31|1|1|0|||||||||||||||||||||||||||||||||}; {ring_vacor|items_tiles:266|Anneau de Vacor|31|1|1|0|||||||||||||||||||||||||||||||||}; -{boots_unzel|items_tiles:197|Bottes défensive d\'Unzel|5|4||185|1||||||||||8||||||||||||||||||||||}; -{boots_vacor|items_tiles:197|Bottes d\'attaque de Vacor|5|4||185|1|||||9|||||2||||||||||||||||||||||}; +{boots_unzel|items_tiles:197|Bottes défensive d\'Unzel|5|3||185|1||||||||||8||||||||||||||||||||||}; +{boots_vacor|items_tiles:197|Bottes d\'attaque de Vacor|5|3||185|1|||||9|||||2||||||||||||||||||||||}; {necklace_flagstone|items_tiles:272|Collier du garde de Flagstone|31|1|1|0|||||||||||||||||||||||||||||||||}; {packhide|items_tiles:183|Peau de la meute de loups|3|3|1|121|1|||||-15|||||2|1|||||||||||||||||||||}; {sword_flagstone|items_tiles:77|Fierté de Flagstone|0|3||169|1||||4|21|10|2|1|6|||||||||||||||||||||||}; diff --git a/AndorsTrail/res/values-it/content_itemlist.xml b/AndorsTrail/res/values-it/content_itemlist.xml index d1505fa90..0cd1a958f 100644 --- a/AndorsTrail/res/values-it/content_itemlist.xml +++ b/AndorsTrail/res/values-it/content_itemlist.xml @@ -81,11 +81,11 @@ [searchTag|iconID|name|category|displaytype|hasManualPrice|baseMarketCost|hasEquipEffect|equip_boostMaxHP|equip_boostMaxAP|equip_moveCostPenalty|equip_attackCost|equip_attackChance|equip_criticalChance|equip_criticalMultiplier|equip_attackDamage_Min|equip_attackDamage_Max|equip_blockChance|equip_damageResistance|equip_conditions[condition|magnitude|]|hasUseEffect|use_boostHP_Min|use_boostHP_Max|use_boostAP_Min|use_boostAP_Max|use_conditionsSource[condition|magnitude|duration|chance|]|hasHitEffect|hit_boostHP_Min|hit_boostHP_Max|hit_boostAP_Min|hit_boostAP_Max|hit_conditionsSource[condition|magnitude|duration|chance|]|hit_conditionsTarget[condition|magnitude|duration|chance|]|hasKillEffect|kill_boostHP_Min|kill_boostHP_Max|kill_boostAP_Min|kill_boostAP_Max|kill_conditionsSource[condition|magnitude|duration|chance|]|]; {apple_green|items_tiles:2|Mela verde|21|||9||||||||||||||1|4|4|||||||||||||||||}; {apple_red|items_tiles:3|Mela rossa|21|||15||||||||||||||1|6|6|||||||||||||||||}; -{meat|items_tiles:25|Carne|21|||29||||||||||||||1|12|12|||||||||||||||||}; -{meat_cooked|items_tiles:27|Carne cotta|21|||78||||||||||||||1|21|21|||||||||||||||||}; +{meat|items_tiles:25|Carne|21||1|29||||||||||||||1|12|12|||||||||||||||||}; +{meat_cooked|items_tiles:27|Carne cotta|21||1|78||||||||||||||1|21|21|||||||||||||||||}; {strawberry|items_tiles:8|Fragola|21|||1||||||||||||||1|1|1|||||||||||||||||}; {carrot|items_tiles:15|Carota|21|||9||||||||||||||1|4|4|||||||||||||||||}; -{bread|items_tiles:21|Pane|21|||6||||||||||||||1|5|5|||||||||||||||||}; +{bread|items_tiles:21|Pane|21||1|6||||||||||||||1|5|5|||||||||||||||||}; {mushroom|items_tiles:19|Fungo|21|||1||||||||||||||1|1|1|||||||||||||||||}; {pear|items_tiles:9|Pera|21|||9||||||||||||||1|4|4|||||||||||||||||}; {eggs|items_tiles:20|Uova|21|||8||||||||||||||1|3|3|||||||||||||||||}; @@ -98,9 +98,11 @@ {vial_empty2|items_tiles:57|Fiala vuota|31||1|4|||||||||||||||||||||||||||||||||}; {vial_empty3|items_tiles:59|Fiasco vuoto|31||1|6|||||||||||||||||||||||||||||||||}; {vial_empty4|items_tiles:58|Pozione vuota|31||1|11|||||||||||||||||||||||||||||||||}; -{health_minor|items_tiles:35|Pozione curativa piccola|20|||5||||||||||||||1|5|5|||||||||||||||||}; +{health_minor|items_tiles:35|Pozione curativa piccola|20||1|5||||||||||||||1|5|5|||||||||||||||||}; +{health_minor2|items_tiles:35|Pozione curativa piccola|20|||18||||||||||||||1|5|5|||||||||||||||||}; {health|items_tiles:49|Pozione curativa normale|20|||40||||||||||||||1|10|10|||||||||||||||||}; -{health_major|items_tiles:28|Pozione curativa grande|20|||210||||||||||||||1|40|40|||||||||||||||||}; +{health_major|items_tiles:28|Pozione curativa grande|20||1|210||||||||||||||1|40|40|||||||||||||||||}; +{health_major2|items_tiles:28|Pozione curativa grande|20|||280||||||||||||||1|40|40|||||||||||||||||}; {mead|items_tiles:51|Idromele|20|||15||||||||||||||1|1|1|||||||||||||||||}; {milk|items_tiles:55|Latte|20|||21||||||||||||||1|2|2|||||||||||||||||}; {bonemeal_potion|items_tiles:34|Pozione farina d\’ossa|20||1|45||||||||||||||1|40|40|||||||||||||||||}; @@ -150,8 +152,8 @@ {vacor_spell|items_tiles:248|Pezzo di incantesimo di Vacor|31|1|1|0|||||||||||||||||||||||||||||||||}; {ring_unzel|items_tiles:266|Anello di Unzel|31|1|1|0|||||||||||||||||||||||||||||||||}; {ring_vacor|items_tiles:266|Anello di Vacor|31|1|1|0|||||||||||||||||||||||||||||||||}; -{boots_unzel|items_tiles:197|Stivali difensivi di Unzel|5|4||185|1||||||||||8||||||||||||||||||||||}; -{boots_vacor|items_tiles:197|Stivali dell\’attacco di Vacor|5|4||185|1|||||9|||||2||||||||||||||||||||||}; +{boots_unzel|items_tiles:197|Stivali difensivi di Unzel|5|3||185|1||||||||||8||||||||||||||||||||||}; +{boots_vacor|items_tiles:197|Stivali dell\’attacco di Vacor|5|3||185|1|||||9|||||2||||||||||||||||||||||}; {necklace_flagstone|items_tiles:272|Collana del Guardiano di Flagstone|31|1|1|0|||||||||||||||||||||||||||||||||}; {packhide|items_tiles:183|Wolfpack\'s animal hide|3|3|1|121|1|||||-15|||||2|1|||||||||||||||||||||}; {sword_flagstone|items_tiles:77|Flagstone\'s pride|0|3||169|1||||4|21|10|2|1|6|||||||||||||||||||||||}; diff --git a/AndorsTrail/res/values/content_droplist.xml b/AndorsTrail/res/values/content_droplist.xml index 098f30cf8..fb11befee 100644 --- a/AndorsTrail/res/values/content_droplist.xml +++ b/AndorsTrail/res/values/content_droplist.xml @@ -8,7 +8,7 @@ {startitems2|{{gold|12|12|100|}}|}; {shop_thief|{{shirt1|1|1|100|}{shirt2|1|1|100|}{gem1|5|5|100|}{gem2|5|5|100|}{gem3|5|5|100|}{ring_dmg5|1|1|100|}{ring_dmg6|1|1|100|}}|}; -{shop_priest|{{health_minor|10|10|100|}{health|10|10|100|}{health_major|10|10|100|}{ring_dmg1|1|1|100|}{ring_dmg2|1|1|100|}{ring_block1|1|1|100|}{ring_atkch1|1|1|100|}}|}; +{shop_priest|{{health_minor|10|10|100|}{health|10|10|100|}{health_major2|10|10|100|}{ring_dmg1|1|1|100|}{ring_dmg2|1|1|100|}{ring_block1|1|1|100|}{ring_atkch1|1|1|100|}}|}; {shop_smith|{{club1|1|1|100|}{club3|1|1|100|}{ironsword0|1|1|100|}{hammer0|1|1|100|}{hammer1|1|1|100|}{dagger0|1|1|100|}{dagger1|1|1|100|}{dagger2|1|1|100|}{shortsword1|1|1|100|}{ironsword1|1|1|100|}{ironsword2|1|1|100|}{broadsword1|1|1|100|}{broadsword2|1|1|100|}{steelsword1|1|1|100|}{axe1|1|1|100|}{axe2|1|1|100|}{armor1|1|1|100|}{armor2|1|1|100|}{armor3|1|1|100|}{shield1|1|1|100|}{shield3|1|1|100|}{shield4|1|1|100|}{shield5|1|1|100|}{boots1|1|1|100|}{boots5|1|1|100|}{hat3|1|1|100|}{hat4|1|1|100|}}|}; {gold200|{{gold|200|200|100|}}|}; {rat|{{gold|2|4|100|}{rat_tail|1|1|30|}}|}; @@ -26,11 +26,11 @@ [id|items[itemID|quantity_Min|quantity_Max|chance|]|]; -{cavemonster|{{gold|4|12|70|}{gem2|1|1|25|}{hammer0|1|1|5|}{health_minor|1|1|25|}}|}; +{cavemonster|{{gold|4|12|70|}{gem2|1|1|25|}{hammer0|1|1|5|}{health_minor2|1|1|25|}}|}; {snake|{{gold|3|6|70|}{meat|1|1|30|}{gland|1|1|5|}}|}; {haunt|{{vial_empty1|1|1|25|}{gem1|1|1|25|}}|}; {cavecritter|{{gold|4|8|70|}{gem1|1|1|25|}{claws|1|1|30|}}|}; -{lich1|{{gold|5|15|70|}{gem2|1|1|25|}{health_minor|1|1|25|}}|}; +{lich1|{{gold|5|15|70|}{gem2|1|1|25|}{health_minor2|1|1|25|}}|}; {irogotu|{{neck_irogotu|1|1|100|}{ring_gandir|1|1|100|}{health|1|1|100|}}|}; {canineboss|{{gold|7|10|70|}{hair|1|1|30|}{gem1|1|1|25|}{meat|1|1|30|}{boots1|1|1|25|}}|}; {snakemaster|{{gold|9|9|70|}{dagger_venom|1|1|100|}{gem3|1|1|100|}{health|1|1|100|}}|}; @@ -42,12 +42,12 @@ {skeleton|{{gold|16|23|70|}{gem2|1|1|25|}{health|1|1|25|}{bone|1|1|30|}}|}; {ganos|{{ring1|1|1|100|}{ring2|1|1|100|}{shirt1|1|1|100|}{shirt2|1|1|100|}{gem1|5|5|100|}{gem2|5|5|100|}{gem3|5|5|100|}{quickdagger1|1|1|100|}}|}; {skeletonmaster|{{gold|16|30|70|}{gem3|1|1|25|}{health|1|1|25|}{bone|1|1|100|}{shield1|1|1|25|}}|}; -{luthor|{{gold|1|5|70|}{gem1|1|1|100|}{key_luthor|1|1|100|}{health_major|1|1|100|}}|}; +{luthor|{{gold|1|5|70|}{gem1|1|1|100|}{key_luthor|1|1|100|}{health_major2|1|1|100|}}|}; {thoronir|{{bonemeal_potion|10|10|100|}}|}; {larcal|{{gold|4|12|70|}{club1|1|1|100|}{calomyran_secrets|1|1|100|}{milk|1|1|100|}}|}; {catacombguard|{{gold|4|12|70|}{gem2|1|1|25|}{health|1|1|25|}{vial_empty2|1|1|25|}{gloves1|1|1|5|}}|}; {fallhaven_clothes|{{shirt1|1|1|100|}{shirt2|1|1|100|}{shirt_dmgresist|1|1|100|}{ring1|1|1|100|}{ring2|1|1|100|}{boots3|1|1|100|}{gloves_attack1|1|1|100|}{gloves_attack2|1|1|100|}{jewel_fallhaven|1|1|100|}{ring_dmg1|1|1|100|}{ring_dmg2|1|1|100|}{ring_block1|1|1|100|}{ring_atkch1|1|1|100|}{necklace_shield1|1|1|100|}{necklace_shield2|1|1|100|}}|}; -{fallhaven_potions|{{vial_empty1|10|10|100|}{vial_empty2|10|10|100|}{vial_empty3|10|10|100|}{vial_empty4|10|10|100|}{health_minor|10|10|100|}{health|10|10|100|}{health_major|10|10|100|}{milk|10|10|100|}{rat_tail|5|5|100|}{Radish|5|5|100|}{Strawberry|5|5|100|}}|}; +{fallhaven_potions|{{vial_empty1|10|10|100|}{vial_empty2|10|10|100|}{vial_empty3|10|10|100|}{vial_empty4|10|10|100|}{health_minor2|10|10|100|}{health|10|10|100|}{health_major2|10|10|100|}{milk|10|10|100|}{rat_tail|5|5|100|}{Radish|5|5|100|}{Strawberry|5|5|100|}}|}; {nocmar|{{gem1|1|1|25|}}|}; @@ -76,7 +76,7 @@ [id|items[itemID|quantity_Min|quantity_Max|chance|]|]; {vg_armorer|{{boots1|1|1|100|}{boots2|1|1|100|}{boots3|1|1|100|}{boots5|1|1|100|}{armor1|1|1|100|}{armor2|1|1|100|}{armor3|1|1|100|}{armor_chain1|1|1|100|}{armor_chain2|1|1|100|}{hat3|1|1|100|}{hat4|1|1|100|}{hat_leather1|1|1|100|}{gloves1|1|1|100|}{gloves2|1|1|100|}{gloves3|1|1|100|}{gloves4|1|1|100|}{gloves_attack1|1|1|100|}{gloves_attack2|1|1|100|}}|}; -{jolnor|{{health_minor|10|10|100|}{health|10|10|100|}{health_major|10|10|100|}{ring_dmg1|1|1|100|}{ring_dmg2|1|1|100|}{ring_block1|1|1|100|}{ring_atkch1|1|1|100|}}|}; +{jolnor|{{health_minor2|10|10|100|}{health|10|10|100|}{health_major2|10|10|100|}{ring_dmg1|1|1|100|}{ring_dmg2|1|1|100|}{ring_block1|1|1|100|}{ring_atkch1|1|1|100|}}|}; {sleepingmead|{{sleepingmead|1|1|100|}}|}; {ff_outsideguard|{{ffguard_qitem|1|1|100|}{vial_empty1|1|1|100|}{shield1|1|1|100|}{ironsword1|1|1|100|}}|}; {vg_smith|{{hammer0|1|1|100|}{hammer1|1|1|100|}{club_wood1|1|1|100|}{club_wood2|1|1|100|}{club1|1|1|100|}{club3|1|1|100|}{ironsword1|1|1|100|}{ironsword2|1|1|100|}{broadsword1|1|1|100|}{broadsword2|1|1|100|}{shield4|1|1|100|}{shield5|1|1|100|}{shield6|1|1|100|}{shield7|1|1|100|}}|}; @@ -133,13 +133,13 @@ }|}; {birgil|{ {mead|10|10|100|} - {health_minor|10|10|100|} + {health_minor2|10|10|100|} {health|10|10|100|} {radish|5|5|100|} }|}; {prim_priest|{ {health|10|10|100|} - {health_major|10|10|100|} + {health_major2|10|10|100|} {pot_poison_weak_antidote|10|10|100|} {pot_bleeding_ointment|10|10|100|} {pot_speed_1|10|10|100|} @@ -162,7 +162,7 @@ }|}; {mazeg|{ {health|10|10|100|} - {health_major|10|10|100|} + {health_major2|10|10|100|} {bwm_brew|10|10|100|} {pot_poison_weak|10|10|100|} {pot_blind_rage|10|10|100|} @@ -174,7 +174,7 @@ {kazaul_1|{ {gold|3|19|70|} {gem4|1|1|10|} - {health_minor|1|1|10|} + {health_minor2|1|1|10|} {rock|1|1|5|} }|}; {kazaul_2|{ @@ -187,7 +187,7 @@ {restless_dead_1|{ {gold|20|29|70|} {gem3|1|1|10|} - {health_minor|1|1|10|} + {health_minor2|1|1|10|} {bone|1|1|10|} }|}; {restless_dead_2|{ @@ -221,13 +221,13 @@ {gold|1|30|70|} {bone|1|1|10|} {vial_empty1|1|1|25|} - {health_minor|1|1|10|} + {health_minor2|1|1|10|} }|}; {wyrm_2|{ {gold|1|40|70|} {bone|1|1|10|} {vial_empty1|1|1|25|} - {health_minor|1|2|10|} + {health_minor2|1|2|10|} }|}; {wyrm_3|{ {gold|1|60|70|} @@ -241,7 +241,7 @@ {bone|1|2|10|} {vial_empty1|1|1|25|} {pot_poison_weak|1|3|5|} - {health_minor|1|2|10|} + {health_minor2|1|2|10|} {elytharan_redeemer|1|1|1/10000|} }|}; {aulaeth|{ diff --git a/AndorsTrail/res/values/content_itemlist.xml b/AndorsTrail/res/values/content_itemlist.xml index b5ff792a3..1102ca716 100644 --- a/AndorsTrail/res/values/content_itemlist.xml +++ b/AndorsTrail/res/values/content_itemlist.xml @@ -81,11 +81,11 @@ [searchTag|iconID|name|category|displaytype|hasManualPrice|baseMarketCost|hasEquipEffect|equip_boostMaxHP|equip_boostMaxAP|equip_moveCostPenalty|equip_attackCost|equip_attackChance|equip_criticalChance|equip_criticalMultiplier|equip_attackDamage_Min|equip_attackDamage_Max|equip_blockChance|equip_damageResistance|equip_conditions[condition|magnitude|]|hasUseEffect|use_boostHP_Min|use_boostHP_Max|use_boostAP_Min|use_boostAP_Max|use_conditionsSource[condition|magnitude|duration|chance|]|hasHitEffect|hit_boostHP_Min|hit_boostHP_Max|hit_boostAP_Min|hit_boostAP_Max|hit_conditionsSource[condition|magnitude|duration|chance|]|hit_conditionsTarget[condition|magnitude|duration|chance|]|hasKillEffect|kill_boostHP_Min|kill_boostHP_Max|kill_boostAP_Min|kill_boostAP_Max|kill_conditionsSource[condition|magnitude|duration|chance|]|]; {apple_green|items_tiles:2|Green apple|21|||9||||||||||||||1|4|4|||||||||||||||||}; {apple_red|items_tiles:3|Red apple|21|||15||||||||||||||1|6|6|||||||||||||||||}; -{meat|items_tiles:25|Meat|21|||29||||||||||||||1|12|12|||||||||||||||||}; -{meat_cooked|items_tiles:27|Cooked meat|21|||78||||||||||||||1|21|21|||||||||||||||||}; +{meat|items_tiles:25|Meat|21||1|29||||||||||||||1|12|12|||||||||||||||||}; +{meat_cooked|items_tiles:27|Cooked meat|21||1|78||||||||||||||1|21|21|||||||||||||||||}; {strawberry|items_tiles:8|Strawberry|21|||1||||||||||||||1|1|1|||||||||||||||||}; {carrot|items_tiles:15|Carrot|21|||9||||||||||||||1|4|4|||||||||||||||||}; -{bread|items_tiles:21|Bread|21|||6||||||||||||||1|5|5|||||||||||||||||}; +{bread|items_tiles:21|Bread|21||1|6||||||||||||||1|5|5|||||||||||||||||}; {mushroom|items_tiles:19|Mushroom|21|||1||||||||||||||1|1|1|||||||||||||||||}; {pear|items_tiles:9|Pear|21|||9||||||||||||||1|4|4|||||||||||||||||}; {eggs|items_tiles:20|Eggs|21|||8||||||||||||||1|3|3|||||||||||||||||}; @@ -98,9 +98,11 @@ {vial_empty2|items_tiles:57|Empty vial|31||1|4|||||||||||||||||||||||||||||||||}; {vial_empty3|items_tiles:59|Empty flask|31||1|6|||||||||||||||||||||||||||||||||}; {vial_empty4|items_tiles:58|Empty potion|31||1|11|||||||||||||||||||||||||||||||||}; -{health_minor|items_tiles:35|Minor potion of health|20|||5||||||||||||||1|5|5|||||||||||||||||}; +{health_minor|items_tiles:35|Minor potion of health|20||1|5||||||||||||||1|5|5|||||||||||||||||}; +{health_minor2|items_tiles:35|Minor potion of health|20|||18||||||||||||||1|5|5|||||||||||||||||}; {health|items_tiles:49|Regular potion of health|20|||40||||||||||||||1|10|10|||||||||||||||||}; -{health_major|items_tiles:28|Major potion of health|20|||210||||||||||||||1|40|40|||||||||||||||||}; +{health_major|items_tiles:28|Major potion of health|20||1|210||||||||||||||1|40|40|||||||||||||||||}; +{health_major2|items_tiles:28|Major potion of health|20|||280||||||||||||||1|40|40|||||||||||||||||}; {mead|items_tiles:51|Mead|20|||15||||||||||||||1|1|1|||||||||||||||||}; {milk|items_tiles:55|Milk|20|||21||||||||||||||1|2|2|||||||||||||||||}; {bonemeal_potion|items_tiles:34|Bonemeal potion|20||1|45||||||||||||||1|40|40|||||||||||||||||}; @@ -150,8 +152,8 @@ {vacor_spell|items_tiles:248|Piece of Vacor\'s spell|31|1|1|0|||||||||||||||||||||||||||||||||}; {ring_unzel|items_tiles:266|Unzel\'s ring|31|1|1|0|||||||||||||||||||||||||||||||||}; {ring_vacor|items_tiles:266|Vacor\'s ring|31|1|1|0|||||||||||||||||||||||||||||||||}; -{boots_unzel|items_tiles:197|Unzel\'s defensive boots|5|4||185|1||||||||||8||||||||||||||||||||||}; -{boots_vacor|items_tiles:197|Vacor\'s boots of attack|5|4||185|1|||||9|||||2||||||||||||||||||||||}; +{boots_unzel|items_tiles:197|Unzel\'s defensive boots|5|3||185|1||||||||||8||||||||||||||||||||||}; +{boots_vacor|items_tiles:197|Vacor\'s boots of attack|5|3||185|1|||||9|||||2||||||||||||||||||||||}; {necklace_flagstone|items_tiles:272|Flagstone Warden\'s necklace|31|1|1|0|||||||||||||||||||||||||||||||||}; {packhide|items_tiles:183|Wolfpack\'s animal hide|3|3|1|121|1|||||-15|||||2|1|||||||||||||||||||||}; {sword_flagstone|items_tiles:77|Flagstone\'s pride|0|3||169|1||||4|21|10|2|1|6|||||||||||||||||||||||}; diff --git a/AndorsTrail/res/values/strings.xml b/AndorsTrail/res/values/strings.xml index 6c7b7345f..c21f15e33 100644 --- a/AndorsTrail/res/values/strings.xml +++ b/AndorsTrail/res/values/strings.xml @@ -342,6 +342,8 @@ Virtual d-pad Enables a virtual on-screen directional pad to guide movement + Minimizable d-pad + If the virtual d-pad is enabled, this setting allows the d-pad to be minimized by pressing its center. Disabled @@ -392,6 +394,9 @@ Regeneration Failure Mastery Magic Finder + Strong Mind + Enduring Body + Pure Blood Increased attack chance Increased attack damage @@ -410,6 +415,9 @@ Gain health every round Decrease amount of lost experience when dying Increased chance of finding magic items + Resistance against mental conditions + Resistance against physical capacity conditions + Resistance against blood disorders Increases attack chance by %1$d for each skill level. Increases min and max damage by %1$d for each skill level. @@ -428,6 +436,9 @@ Gain +%1$d health points (HP) on every round per skill level. For every skill level, reduces the amount of lost experience caused by death by %1$d %% (percentage of existing exp loss value, not percentage points). %2$d levels will remove all experience loss caused by death. Increases the chance of finding non-ordinary items by %1$d %% for every skill level. + Lowers the chance of being afflicted with mental conditions by %1$d %% for every skill level, up to a maximum of %2$d %%. This includes conditions caused by monster attacks such as Dazed or Weapon Feebleness. + Lowers the chance of being afflicted with conditions affecting your physical capacity by %1$d %% for every skill level, up to a maximum of %2$d %%. This includes conditions caused by monster attacks such as Fatigue. + Lowers the chance of being afflicted with disorders of the blood by %1$d %% for every skill level, up to a maximum of %2$d %%. This includes conditions caused by monster attacks such as Poison or bleeding wounds. Level up Current level: %1$d diff --git a/AndorsTrail/res/xml/preferences.xml b/AndorsTrail/res/xml/preferences.xml index 0f32f0edc..96c8feb6c 100644 --- a/AndorsTrail/res/xml/preferences.xml +++ b/AndorsTrail/res/xml/preferences.xml @@ -61,5 +61,10 @@ android:defaultValue="0" android:entries="@array/preferences_movement_dpad_positions" android:entryValues="@array/preferences_movement_dpad_positions_values" /> + diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/AndorsTrailApplication.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/AndorsTrailApplication.java index 047d65be7..eb3e64474 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/AndorsTrailApplication.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/AndorsTrailApplication.java @@ -19,7 +19,7 @@ public final class AndorsTrailApplication extends Application { public static final boolean DEVELOPMENT_DEBUGBUTTONS = true; public static final boolean DEVELOPMENT_VALIDATEDATA = true; public static final boolean DEVELOPMENT_DEBUGMESSAGES = true; - public static final int CURRENT_VERSION = 22; + public static final int CURRENT_VERSION = 23; public static final String CURRENT_VERSION_DISPLAY = "0.6.10dev"; public final WorldContext world = new WorldContext(); diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/AndorsTrailPreferences.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/AndorsTrailPreferences.java index 0f16c9d81..4d841d03a 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/AndorsTrailPreferences.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/AndorsTrailPreferences.java @@ -32,6 +32,7 @@ public class AndorsTrailPreferences { public int movementAggressiveness = MOVEMENTAGGRESSIVENESS_NORMAL; public float scalingFactor = 1.0f; public int dpadPosition; + public boolean dpadMinimizeable = true; public static void read(final Context androidContext, AndorsTrailPreferences dest) { try { @@ -44,6 +45,7 @@ public class AndorsTrailPreferences { dest.movementMethod = Integer.parseInt(prefs.getString("movementmethod", Integer.toString(MOVEMENTMETHOD_STRAIGHT))); dest.scalingFactor = Float.parseFloat(prefs.getString("scaling_factor", "1.0f")); dest.dpadPosition = Integer.parseInt(prefs.getString("dpadposition", Integer.toString(DPAD_POSITION_DISABLED))); + dest.dpadMinimizeable = prefs.getBoolean("dpadMinimizeable", true); // This might be implemented as a skill in the future. //dest.movementAggressiveness = Integer.parseInt(prefs.getString("movementaggressiveness", Integer.toString(MOVEMENTAGGRESSIVENESS_NORMAL))); @@ -57,6 +59,7 @@ public class AndorsTrailPreferences { dest.movementAggressiveness = MOVEMENTAGGRESSIVENESS_NORMAL; dest.scalingFactor = 1.0f; dest.dpadPosition = DPAD_POSITION_DISABLED; + dest.dpadMinimizeable = true; } } diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/BulkSelectionInterface.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/BulkSelectionInterface.java index 81fe72579..90a2ca6b4 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/BulkSelectionInterface.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/BulkSelectionInterface.java @@ -35,7 +35,6 @@ public class BulkSelectionInterface extends Activity implements TextWatcher { final public static int BULK_INTERFACE_SELL = 1; final public static int BULK_INTERFACE_DROP = 2; - // TODO: determine good values for the BUTTON_REPEAT constants / I currently cannot test them on the phone final private static int BUTTON_REPEAT_FIRST_TIME = 300; // Delay after the touch before the counting starts final private static int BUTTON_REPEAT_FURTHER_TIMES = 50; // Delay between two count events final private static int BUTTON_REPEAT_DOUBLE_AFTER = 10; // after how many count events the countValue doubles? diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/MainActivity.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/MainActivity.java index 42426349b..393a6cfb6 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/MainActivity.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/MainActivity.java @@ -112,8 +112,8 @@ public final class MainActivity extends Activity { world.model.currentMap.TEST_spawnInArea(world.model.currentMap.spawnAreas[0], type); } } - }) - ,*/new DebugButton("dmg=99", new OnClickListener() { + })*/ + new DebugButton("dmg=99", new OnClickListener() { @Override public void onClick(View arg0) { world.model.player.traits.damagePotential.set(99, 99); @@ -122,8 +122,8 @@ public final class MainActivity extends Activity { updateStatus(); showToast("DEBUG: damagePotential=99, chance=200%, cost=1", Toast.LENGTH_SHORT); } - })/* - ,new DebugButton("dmg=1", new OnClickListener() { + }) + /*,new DebugButton("dmg=1", new OnClickListener() { @Override public void onClick(View arg0) { world.model.player.traits.damagePotential.set(1, 1); @@ -150,12 +150,13 @@ public final class MainActivity extends Activity { showToast("DEBUG: added items", Toast.LENGTH_SHORT); } })*/ - /*,new DebugButton("skills+=20", new OnClickListener() { + /*new DebugButton("skills++", new OnClickListener() { @Override public void onClick(View arg0) { int N = 1; + world.model.player.availableSkillIncreases += N * SkillCollection.NUM_SKILLS; for(int j = 0; j < N; ++j) { - for(int i = 0; i < Skills.NUM_SKILLS; ++i) { + for(int i = 0; i < SkillCollection.NUM_SKILLS; ++i) { world.model.player.addSkillLevel(i); } } @@ -180,8 +181,8 @@ public final class MainActivity extends Activity { view.movementController.placePlayerAt(MapObject.MAPEVENT_NEWMAP, "blackwater_mountain45", "south", 0, 0); } - }) - ,new DebugButton("prim", new OnClickListener() { + })*/ + /*,new DebugButton("prim", new OnClickListener() { @Override public void onClick(View arg0) { view.movementController.placePlayerAt(MapObject.MAPEVENT_NEWMAP, "blackwater_mountain29", "south", 0, 0); @@ -222,7 +223,10 @@ public final class MainActivity extends Activity { ,new DebugButton("hp=max", new OnClickListener() { @Override public void onClick(View arg0) { + world.model.player.traits.maxHP = 200; + world.model.player.health.max = world.model.player.traits.maxHP; world.model.player.health.setMax(); + world.model.player.conditions.clear(); updateStatus(); showToast("DEBUG: hp set to max", Toast.LENGTH_SHORT); } diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/SkillInfoActivity.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/SkillInfoActivity.java index 4cb931802..1db736134 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/SkillInfoActivity.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/SkillInfoActivity.java @@ -131,6 +131,9 @@ public final class SkillInfoActivity extends Activity { case SkillCollection.SKILL_REGENERATION: return R.string.skill_title_regeneration; case SkillCollection.SKILL_LOWER_EXPLOSS: return R.string.skill_title_lower_exploss; case SkillCollection.SKILL_MAGICFINDER: return R.string.skill_title_magicfinder; + case SkillCollection.SKILL_RESISTANCE_MENTAL: return R.string.skill_title_resistance_mental; + case SkillCollection.SKILL_RESISTANCE_PHYSICAL_CAPACITY: return R.string.skill_title_resistance_physical_capacity; + case SkillCollection.SKILL_RESISTANCE_BLOOD_DISORDER: return R.string.skill_title_resistance_blood_disorder; default: return -1; } @@ -153,8 +156,11 @@ public final class SkillInfoActivity extends Activity { case SkillCollection.SKILL_FORTITUDE: return res.getString(R.string.skill_longdescription_fortitude, SkillCollection.PER_SKILLPOINT_INCREASE_FORTITUDE_HEALTH); case SkillCollection.SKILL_EVASION: return res.getString(R.string.skill_longdescription_evasion, SkillCollection.PER_SKILLPOINT_INCREASE_EVASION_FLEE_CHANCE_PERCENTAGE, SkillCollection.PER_SKILLPOINT_INCREASE_EVASION_MONSTER_ATTACK_CHANCE_PERCENTAGE); case SkillCollection.SKILL_REGENERATION: return res.getString(R.string.skill_longdescription_regeneration, SkillCollection.PER_SKILLPOINT_INCREASE_REGENERATION); - case SkillCollection.SKILL_LOWER_EXPLOSS: return res.getString(R.string.skill_longdescription_lower_exploss, SkillCollection.PER_SKILLPOINT_INCREASE_EXPLOSS_PERCENT, 100 / SkillCollection.PER_SKILLPOINT_INCREASE_EXPLOSS_PERCENT); + case SkillCollection.SKILL_LOWER_EXPLOSS: return res.getString(R.string.skill_longdescription_lower_exploss, SkillCollection.PER_SKILLPOINT_INCREASE_EXPLOSS_PERCENT, SkillCollection.MAX_LEVEL_LOWER_EXPLOSS); case SkillCollection.SKILL_MAGICFINDER: return res.getString(R.string.skill_longdescription_magicfinder, SkillCollection.PER_SKILLPOINT_INCREASE_MAGICFINDER_CHANCE_PERCENT); + case SkillCollection.SKILL_RESISTANCE_MENTAL: return res.getString(R.string.skill_longdescription_resistance_mental, SkillCollection.PER_SKILLPOINT_INCREASE_RESISTANCE_CHANCE_PERCENT, SkillCollection.PER_SKILLPOINT_INCREASE_RESISTANCE_CHANCE_PERCENT * SkillCollection.MAX_LEVEL_RESISTANCE); + case SkillCollection.SKILL_RESISTANCE_PHYSICAL_CAPACITY: return res.getString(R.string.skill_longdescription_resistance_physical_capacity, SkillCollection.PER_SKILLPOINT_INCREASE_RESISTANCE_CHANCE_PERCENT, SkillCollection.PER_SKILLPOINT_INCREASE_RESISTANCE_CHANCE_PERCENT * SkillCollection.MAX_LEVEL_RESISTANCE); + case SkillCollection.SKILL_RESISTANCE_BLOOD_DISORDER: return res.getString(R.string.skill_longdescription_resistance_blood_disorder, SkillCollection.PER_SKILLPOINT_INCREASE_RESISTANCE_CHANCE_PERCENT, SkillCollection.PER_SKILLPOINT_INCREASE_RESISTANCE_CHANCE_PERCENT * SkillCollection.MAX_LEVEL_RESISTANCE); default: return ""; } diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ActorStatsController.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ActorStatsController.java index 1ac3ae875..1804ab84e 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ActorStatsController.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ActorStatsController.java @@ -196,7 +196,10 @@ public class ActorStatsController { } private static void rollForConditionEffect(Actor actor, ActorConditionEffect conditionEffect) { - if (!Constants.rollResult(conditionEffect.chance)) return; + int chanceRollBias = 0; + if (actor.isPlayer) chanceRollBias = SkillController.getActorConditionEffectChanceRollBias(conditionEffect, (Player) actor); + + if (!Constants.rollResult(conditionEffect.chance, chanceRollBias)) return; addActorCondition(actor, conditionEffect); recalculateActorCombatTraits(actor); } diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/SkillController.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/SkillController.java index f9233c1a2..f50b332a7 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/SkillController.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/SkillController.java @@ -4,6 +4,8 @@ import android.content.res.Resources; import android.widget.ImageView; import com.gpl.rpg.AndorsTrail.R; +import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionEffect; +import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionType; import com.gpl.rpg.AndorsTrail.model.ability.SkillCollection; import com.gpl.rpg.AndorsTrail.model.ability.SkillInfo; import com.gpl.rpg.AndorsTrail.model.actor.Player; @@ -76,4 +78,26 @@ public final class SkillController { public static void setSkillIcon(ImageView iconImageView, int skillID, Resources res) { iconImageView.setImageResource(R.drawable.ui_icon_skill); } + + public static int getActorConditionEffectChanceRollBias(ActorConditionEffect effect, Player player) { + if (effect.chance.isMax()) return 0; + + int skill; + switch (effect.conditionType.conditionCategory) { + case ActorConditionType.ACTORCONDITIONTYPE_MENTAL: + skill = SkillCollection.SKILL_RESISTANCE_MENTAL; break; + case ActorConditionType.ACTORCONDITIONTYPE_PHYSICAL_CAPACITY: + skill = SkillCollection.SKILL_RESISTANCE_PHYSICAL_CAPACITY; break; + case ActorConditionType.ACTORCONDITIONTYPE_BLOOD_DISORDER: + skill = SkillCollection.SKILL_RESISTANCE_BLOOD_DISORDER; break; + default: + return 0; + } + + int skillLevel = player.getSkillLevel(skill); + if (skillLevel <= 0) return 0; + + // Note that the bias should be negative, making it less likely that the chance roll will succeed + return effect.chance.current * skillLevel * -SkillCollection.PER_SKILLPOINT_INCREASE_RESISTANCE_CHANCE_PERCENT / 100; + } } diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/ability/SkillCollection.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/ability/SkillCollection.java index 5cfdcc944..e2cd7c415 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/ability/SkillCollection.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/ability/SkillCollection.java @@ -26,11 +26,11 @@ public final class SkillCollection { public static final int SKILL_REGENERATION = 14; // +N hp per round public static final int SKILL_LOWER_EXPLOSS = 15; public static final int SKILL_MAGICFINDER = 16; - //public static final int SKILL_BERSERKER = 17; // <=20%hp increases AC and DMG + public static final int SKILL_RESISTANCE_MENTAL = 17; // lowers chance to get negative active conditions by monsters (Mental like Dazed) + public static final int SKILL_RESISTANCE_PHYSICAL_CAPACITY = 18; // lowers chance to get negative active conditions by monsters (Physical Capacity like Minor fatigue) + public static final int SKILL_RESISTANCE_BLOOD_DISORDER = 19; // lowers chance to get negative active conditions by monsters (Blood Disorder like Weak Poison) - public static final int NUM_SKILLS = SKILL_MAGICFINDER+1; - - //public static final int BERSERKER_STARTS_AT_HEALTH_PERCENT = 20; + public static final int NUM_SKILLS = SKILL_RESISTANCE_BLOOD_DISORDER + 1; public static final int PER_SKILLPOINT_INCREASE_WEAPON_CHANCE = 12; public static final int PER_SKILLPOINT_INCREASE_WEAPON_DAMAGE_MAX = 1; @@ -47,16 +47,22 @@ public final class SkillCollection { public static final int PER_SKILLPOINT_INCREASE_MORE_EXP_PERCENT = 5; public static final int PER_SKILLPOINT_INCREASE_CLEAVE_AP = 3; public static final int PER_SKILLPOINT_INCREASE_EATER_HEALTH = 1; - public static final int PER_SKILLPOINT_INCREASE_FORTITUDE_HEALTH = 2; + public static final int PER_SKILLPOINT_INCREASE_FORTITUDE_HEALTH = 1; public static final int PER_SKILLPOINT_INCREASE_EVASION_FLEE_CHANCE_PERCENTAGE = 5; public static final int PER_SKILLPOINT_INCREASE_EVASION_MONSTER_ATTACK_CHANCE_PERCENTAGE = 5; public static final int PER_SKILLPOINT_INCREASE_REGENERATION = 1; public static final int PER_SKILLPOINT_INCREASE_EXPLOSS_PERCENT = 20; - /*public static final int PER_SKILLPOINT_INCREASE_BERSERKER_WEAPON_CHANCE = 15; - public static final int PER_SKILLPOINT_INCREASE_BERSERKER_WEAPON_DAMAGE_MAX = 1; - public static final int PER_SKILLPOINT_INCREASE_BERSERKER_WEAPON_DAMAGE_MIN = 1; - public static final int PER_SKILLPOINT_INCREASE_BERSERKER_DODGE = 9;*/ - + public static final int PER_SKILLPOINT_INCREASE_RESISTANCE_CHANCE_PERCENT = 10; + + public static final int MAX_LEVEL_BARTER = (int) Math.floor((float) Constants.MARKET_PRICEFACTOR_PERCENT / PER_SKILLPOINT_INCREASE_BARTER_PRICEFACTOR_PERCENTAGE); + public static final int MAX_LEVEL_BARKSKIN = 5; + public static final int MAX_LEVEL_SPEED = 2; + public static final int MAX_LEVEL_EVASION = Math.max( + Constants.FLEE_FAIL_CHANCE_PERCENT / PER_SKILLPOINT_INCREASE_EVASION_FLEE_CHANCE_PERCENTAGE + ,Constants.MONSTER_AGGRESSION_CHANCE_PERCENT / PER_SKILLPOINT_INCREASE_EVASION_MONSTER_ATTACK_CHANCE_PERCENTAGE + ); + public static final int MAX_LEVEL_LOWER_EXPLOSS = 100 / PER_SKILLPOINT_INCREASE_EXPLOSS_PERCENT; + public static final int MAX_LEVEL_RESISTANCE = 70 / PER_SKILLPOINT_INCREASE_RESISTANCE_CHANCE_PERCENT; private final HashMap skills = new HashMap(); private void initializeSkill(SkillInfo skill) { @@ -65,18 +71,18 @@ public final class SkillCollection { public void initialize() { initializeSkill(new SkillInfo(SKILL_WEAPON_CHANCE, SkillInfo.MAXLEVEL_NONE, false, null)); initializeSkill(new SkillInfo(SKILL_WEAPON_DMG, SkillInfo.MAXLEVEL_NONE, false, null)); - initializeSkill(new SkillInfo(SKILL_BARTER, (int) Math.floor((float)Constants.MARKET_PRICEFACTOR_PERCENT / PER_SKILLPOINT_INCREASE_BARTER_PRICEFACTOR_PERCENTAGE), false, null)); + initializeSkill(new SkillInfo(SKILL_BARTER, MAX_LEVEL_BARTER, false, null)); initializeSkill(new SkillInfo(SKILL_DODGE, SkillInfo.MAXLEVEL_NONE, false, null)); - initializeSkill(new SkillInfo(SKILL_BARKSKIN, 5, false, new SkillLevelRequirement[] { - SkillLevelRequirement.requireExperienceLevels(10) + initializeSkill(new SkillInfo(SKILL_BARKSKIN, MAX_LEVEL_BARKSKIN, false, new SkillLevelRequirement[] { + SkillLevelRequirement.requireExperienceLevels(10, 0) ,SkillLevelRequirement.requireCombatStats(CombatTraits.STAT_COMBAT_BLOCK_CHANCE, 15, 0) })); initializeSkill(new SkillInfo(SKILL_MORE_CRITICALS, SkillInfo.MAXLEVEL_NONE, false, null)); initializeSkill(new SkillInfo(SKILL_BETTER_CRITICALS, SkillInfo.MAXLEVEL_NONE, false, new SkillLevelRequirement[] { SkillLevelRequirement.requireOtherSkill(SKILL_MORE_CRITICALS, 1) })); - initializeSkill(new SkillInfo(SKILL_SPEED, 2, false, new SkillLevelRequirement[] { - SkillLevelRequirement.requireExperienceLevels(15) + initializeSkill(new SkillInfo(SKILL_SPEED, MAX_LEVEL_SPEED, false, new SkillLevelRequirement[] { + SkillLevelRequirement.requireExperienceLevels(15, 0) })); initializeSkill(new SkillInfo(SKILL_COINFINDER, SkillInfo.MAXLEVEL_NONE, false, null)); initializeSkill(new SkillInfo(SKILL_MORE_EXP, SkillInfo.MAXLEVEL_NONE, false, null)); @@ -88,16 +94,18 @@ public final class SkillCollection { SkillLevelRequirement.requireActorStats(ActorTraits.STAT_ACTOR_MAX_HP, 20, 20) })); initializeSkill(new SkillInfo(SKILL_FORTITUDE, SkillInfo.MAXLEVEL_NONE, false, new SkillLevelRequirement[] { - SkillLevelRequirement.requireExperienceLevels(5) + SkillLevelRequirement.requireExperienceLevels(15, -10) })); - initializeSkill(new SkillInfo(SKILL_EVASION, Constants.FLEE_FAIL_CHANCE_PERCENT / PER_SKILLPOINT_INCREASE_EVASION_FLEE_CHANCE_PERCENTAGE, false, null)); + initializeSkill(new SkillInfo(SKILL_EVASION, MAX_LEVEL_EVASION, false, null)); initializeSkill(new SkillInfo(SKILL_REGENERATION, SkillInfo.MAXLEVEL_NONE, false, new SkillLevelRequirement[] { SkillLevelRequirement.requireActorStats(ActorTraits.STAT_ACTOR_MAX_HP, 30, 0) ,SkillLevelRequirement.requireOtherSkill(SKILL_FORTITUDE, 1) })); - initializeSkill(new SkillInfo(SKILL_LOWER_EXPLOSS, 100 / PER_SKILLPOINT_INCREASE_EXPLOSS_PERCENT, false, null)); + initializeSkill(new SkillInfo(SKILL_LOWER_EXPLOSS, MAX_LEVEL_LOWER_EXPLOSS, false, null)); initializeSkill(new SkillInfo(SKILL_MAGICFINDER, SkillInfo.MAXLEVEL_NONE, false, null)); - //initializeSkill(new SkillInfo(SKILL_BERSERKER, SkillInfo.MAXLEVEL_NONE, false, null)); + initializeSkill(new SkillInfo(SKILL_RESISTANCE_MENTAL, MAX_LEVEL_RESISTANCE, false, null)); + initializeSkill(new SkillInfo(SKILL_RESISTANCE_PHYSICAL_CAPACITY, MAX_LEVEL_RESISTANCE, false, null)); + initializeSkill(new SkillInfo(SKILL_RESISTANCE_BLOOD_DISORDER, MAX_LEVEL_RESISTANCE, false, null)); } public SkillInfo getSkill(int skillID) { diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/ability/SkillInfo.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/ability/SkillInfo.java index cdcee5843..31491faaf 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/ability/SkillInfo.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/ability/SkillInfo.java @@ -53,8 +53,8 @@ public class SkillInfo { public static SkillLevelRequirement requireOtherSkill(int skillID, int everySkillLevelRequiresThisAmount) { return new SkillLevelRequirement(REQUIREMENT_TYPE_SKILL_LEVEL, everySkillLevelRequiresThisAmount, 0, skillID); } - public static SkillLevelRequirement requireExperienceLevels(int everySkillLevelRequiresThisAmount) { - return new SkillLevelRequirement(REQUIREMENT_TYPE_EXPERIENCE_LEVEL, everySkillLevelRequiresThisAmount, 0, 0); + public static SkillLevelRequirement requireExperienceLevels(int everySkillLevelRequiresThisAmount, int initialRequiredAmount) { + return new SkillLevelRequirement(REQUIREMENT_TYPE_EXPERIENCE_LEVEL, everySkillLevelRequiresThisAmount, initialRequiredAmount, 0); } public static SkillLevelRequirement requireCombatStats(int statID, int everySkillLevelRequiresThisAmount, int initialRequiredAmount) { return new SkillLevelRequirement(REQUIREMENT_TYPE_COMBAT_STAT, everySkillLevelRequiresThisAmount, initialRequiredAmount, statID); diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/Inventory.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/Inventory.java index f5165d777..67e16dfba 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/Inventory.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/Inventory.java @@ -31,6 +31,9 @@ public final class Inventory extends ItemContainer { public Inventory(DataInputStream src, WorldContext world, int fileversion) throws IOException { super(src, world, fileversion); gold = src.readInt(); + + if (fileversion < 23) this.gold += ItemContainer.SavegameUpdate.refundUpgradedItems(this); + final int size = src.readInt(); for(int i = 0; i < size; ++i) { if (src.readBoolean()) { diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/ItemContainer.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/ItemContainer.java index a9bc782a6..90d6fddc0 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/ItemContainer.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/ItemContainer.java @@ -5,7 +5,9 @@ import java.io.DataOutputStream; import java.io.IOException; import java.util.ArrayList; +import com.gpl.rpg.AndorsTrail.AndorsTrailApplication; import com.gpl.rpg.AndorsTrail.context.WorldContext; +import com.gpl.rpg.AndorsTrail.util.L; public class ItemContainer { public final ArrayList items = new ArrayList(); @@ -112,4 +114,28 @@ public class ItemContainer { e.writeToParcel(dest, flags); } } + + public static class SavegameUpdate { + public static int refundUpgradedItems(ItemContainer container) { + int removedCost = 0; + for (ItemEntry e : container.items) { + if (e.quantity >= 2 && isRefundableItem(e.itemType)) { + if (AndorsTrailApplication.DEVELOPMENT_DEBUGMESSAGES) { + L.log("INFO: Refunding " + (e.quantity-1) + " items of type \"" + e.itemType.searchTag + "\" for a total of " + ((e.quantity-1) * e.itemType.fixedBaseMarketCost) + "gc."); + } + removedCost += (e.quantity-1) * e.itemType.fixedBaseMarketCost; + e.quantity = 1; + } + } + return removedCost; + } + + private static boolean isRefundableItem(ItemType itemType) { + if (itemType.hasManualPrice) return false; + if (itemType.isQuestItem()) return false; + if (itemType.displayType == ItemType.DISPLAYTYPE_EXTRAORDINARY) return false; + if (itemType.displayType == ItemType.DISPLAYTYPE_LEGENDARY) return false; + return itemType.baseMarketCost > itemType.fixedBaseMarketCost; + } + } } diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/ItemType.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/ItemType.java index 8b99e0aea..c5d58303d 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/ItemType.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/ItemType.java @@ -38,6 +38,7 @@ public final class ItemType { public final int actionType; public final boolean hasManualPrice; public final int baseMarketCost; + public final int fixedBaseMarketCost; public final String searchTag; public final int displayType; @@ -46,7 +47,7 @@ public final class ItemType { public final ItemTraits_OnUse effects_hit; public final ItemTraits_OnUse effects_kill; - public ItemType(int id, int iconID, String name, String searchTag, int category, int displayType, boolean hasManualPrice, int baseMarketCost, ItemTraits_OnEquip effects_equip, ItemTraits_OnUse effects_use, ItemTraits_OnUse effects_hit, ItemTraits_OnUse effects_kill) { + public ItemType(int id, int iconID, String name, String searchTag, int category, int displayType, boolean hasManualPrice, int fixedBaseMarketCost, ItemTraits_OnEquip effects_equip, ItemTraits_OnUse effects_use, ItemTraits_OnUse effects_hit, ItemTraits_OnUse effects_kill) { this.id = id; this.iconID = iconID; this.name = name; @@ -55,7 +56,8 @@ public final class ItemType { this.actionType = getActionType(category); this.displayType = displayType; this.hasManualPrice = hasManualPrice; - this.baseMarketCost = hasManualPrice ? baseMarketCost : calculateCost(category, effects_equip, effects_hit); + this.baseMarketCost = hasManualPrice ? fixedBaseMarketCost : calculateCost(category, effects_equip, effects_hit); + this.fixedBaseMarketCost = fixedBaseMarketCost; this.effects_equip = effects_equip; this.effects_use = effects_use; this.effects_hit = effects_hit; diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/Loot.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/Loot.java index 7edcfac7d..629360975 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/Loot.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/Loot.java @@ -51,6 +51,8 @@ public final class Loot { this.exp = src.readInt(); this.gold = src.readInt(); this.items = new ItemContainer(src, world, fileversion); + if (fileversion < 23) this.gold += ItemContainer.SavegameUpdate.refundUpgradedItems(this.items); + this.position = new Coord(src, fileversion); if (fileversion <= 15) { this.isVisible = true; diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/SkillListAdapter.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/SkillListAdapter.java index c070bc90c..07d81c6a5 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/SkillListAdapter.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/SkillListAdapter.java @@ -79,6 +79,11 @@ public final class SkillListAdapter extends ArrayAdapter { return result; } + @Override + public long getItemId(int position) { + return getItem(position).id; + } + private static int getSkillShortDescriptionResourceID(int skill) { switch (skill) { case SkillCollection.SKILL_WEAPON_CHANCE: return R.string.skill_shortdescription_weapon_chance; @@ -98,6 +103,9 @@ public final class SkillListAdapter extends ArrayAdapter { case SkillCollection.SKILL_REGENERATION: return R.string.skill_shortdescription_regeneration; case SkillCollection.SKILL_LOWER_EXPLOSS: return R.string.skill_shortdescription_lower_exploss; case SkillCollection.SKILL_MAGICFINDER: return R.string.skill_shortdescription_magicfinder; + case SkillCollection.SKILL_RESISTANCE_MENTAL: return R.string.skill_shortdescription_resistance_mental; + case SkillCollection.SKILL_RESISTANCE_PHYSICAL_CAPACITY: return R.string.skill_shortdescription_resistance_physical_capacity; + case SkillCollection.SKILL_RESISTANCE_BLOOD_DISORDER: return R.string.skill_shortdescription_resistance_blood_disorder; default: return -1; } diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/VirtualDpadView.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/VirtualDpadView.java index 84d2ab085..f67d85f1f 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/VirtualDpadView.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/VirtualDpadView.java @@ -30,6 +30,7 @@ public final class VirtualDpadView extends ImageView implements OnClickListener private boolean isMinimized = false; private int lastTouchPosition_dx; private int lastTouchPosition_dy; + private boolean isMinimizeable = true; public VirtualDpadView(final Context context, AttributeSet attr) { super(context, attr); @@ -101,6 +102,7 @@ public final class VirtualDpadView extends ImageView implements OnClickListener } setVisibility(View.VISIBLE); + isMinimizeable = preferences.dpadMinimizeable; RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); if (dpadPosition == AndorsTrailPreferences.DPAD_POSITION_LOWER_RIGHT) { @@ -140,6 +142,7 @@ public final class VirtualDpadView extends ImageView implements OnClickListener setMaxHeight(full_height); } else { if (lastTouchPosition_dx != 0 || lastTouchPosition_dy != 0) return; + if (!isMinimizeable) return; isMinimized = true; setMaxWidth(one_third_width); setMaxHeight(one_third_height); diff --git a/AndorsTrailEdit/editor.html b/AndorsTrailEdit/editor.html index a803ba930..333ae17c1 100644 --- a/AndorsTrailEdit/editor.html +++ b/AndorsTrailEdit/editor.html @@ -357,7 +357,7 @@ - +