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-padEnables 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 @@
RegenerationFailure MasteryMagic Finder
+ Strong Mind
+ Enduring Body
+ Pure BloodIncreased attack chanceIncreased attack damage
@@ -410,6 +415,9 @@
Gain health every roundDecrease amount of lost experience when dyingIncreased chance of finding magic items
+ Resistance against mental conditions
+ Resistance against physical capacity conditions
+ Resistance against blood disordersIncreases 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 upCurrent 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 @@
-
+