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 @@ - +