mirror of
https://github.com/OMGeeky/andors-trail.git
synced 2026-01-24 20:31:07 +01:00
Updated ResourceLoader fpr actorconditions and items to read the extended resource files (not done) from the new editor.
git-svn-id: https://andors-trail.googlecode.com/svn/trunk@69 08aca716-68be-ccc6-4d58-36f5abd142ac
This commit is contained in:
@@ -293,418 +293,510 @@ public final class R {
|
||||
public static final int inventoryitem=0x7f090000;
|
||||
}
|
||||
public static final class string {
|
||||
public static final int about_button1=0x7f0500f0;
|
||||
public static final int about_button2=0x7f0500f1;
|
||||
public static final int about_button3=0x7f0500f2;
|
||||
public static final int about_contents1=0x7f0500f3;
|
||||
public static final int about_contents2=0x7f0500f4;
|
||||
public static final int about_contents3=0x7f0500f5;
|
||||
public static final int about_button1=0x7f0500f1;
|
||||
public static final int about_button2=0x7f0500f2;
|
||||
public static final int about_button3=0x7f0500f3;
|
||||
public static final int about_contents1=0x7f0500f4;
|
||||
public static final int about_contents2=0x7f0500f5;
|
||||
public static final int about_contents3=0x7f0500f6;
|
||||
/** Translated as: affliction / statuseffect / temporary effect
|
||||
*/
|
||||
public static final int actorcondition_info_removes_all=0x7f05010e;
|
||||
public static final int actorinfo_attack=0x7f0500ae;
|
||||
public static final int actorinfo_attacksperturn=0x7f0500ac;
|
||||
public static final int actorinfo_basetraits=0x7f0500b2;
|
||||
public static final int actorinfo_class=0x7f0500a9;
|
||||
public static final int actorinfo_criticalhit=0x7f0500af;
|
||||
public static final int actorcondition_info_removes_all=0x7f05010f;
|
||||
public static final int actorconditions_v069=0x7f050000;
|
||||
public static final int actorinfo_attack=0x7f0500af;
|
||||
public static final int actorinfo_attacksperturn=0x7f0500ad;
|
||||
public static final int actorinfo_basetraits=0x7f0500b3;
|
||||
public static final int actorinfo_class=0x7f0500aa;
|
||||
public static final int actorinfo_criticalhit=0x7f0500b0;
|
||||
/** ===========================================
|
||||
Added in v0.6.9
|
||||
*/
|
||||
public static final int actorinfo_currentconditions=0x7f05010d;
|
||||
public static final int actorinfo_currenttraits=0x7f0500b3;
|
||||
public static final int actorinfo_defense=0x7f0500b0;
|
||||
public static final int actorinfo_difficulty=0x7f0500aa;
|
||||
public static final int actorinfo_health=0x7f0500ab;
|
||||
public static final int actorinfo_movecost=0x7f0500b1;
|
||||
public static final int actorinfo_movesperturn=0x7f0500ad;
|
||||
public static final int app_name=0x7f050053;
|
||||
public static final int combat_attack=0x7f05007f;
|
||||
public static final int combat_begin_flee=0x7f050085;
|
||||
public static final int combat_endturn=0x7f050083;
|
||||
public static final int actorinfo_currentconditions=0x7f05010e;
|
||||
public static final int actorinfo_currenttraits=0x7f0500b4;
|
||||
public static final int actorinfo_defense=0x7f0500b1;
|
||||
public static final int actorinfo_difficulty=0x7f0500ab;
|
||||
public static final int actorinfo_health=0x7f0500ac;
|
||||
public static final int actorinfo_movecost=0x7f0500b2;
|
||||
public static final int actorinfo_movesperturn=0x7f0500ae;
|
||||
public static final int app_name=0x7f050054;
|
||||
public static final int combat_attack=0x7f050080;
|
||||
public static final int combat_begin_flee=0x7f050086;
|
||||
public static final int combat_endturn=0x7f050084;
|
||||
/** <string name="combat_endcombat">End combat</string>
|
||||
<string name="combat_endcombat">End combat</string>
|
||||
<string name="combat_endcombat">End combat</string>
|
||||
*/
|
||||
public static final int combat_flee=0x7f050084;
|
||||
public static final int combat_flee_failed=0x7f050086;
|
||||
public static final int combat_hero_dies=0x7f050092;
|
||||
public static final int combat_monsteraction=0x7f050089;
|
||||
public static final int combat_monsterhealth=0x7f050088;
|
||||
public static final int combat_move=0x7f050080;
|
||||
public static final int combat_not_enough_ap=0x7f050091;
|
||||
public static final int combat_result_herohit=0x7f05008e;
|
||||
public static final int combat_result_herohitcritical=0x7f05008f;
|
||||
public static final int combat_result_herokillsmonster=0x7f050090;
|
||||
public static final int combat_result_heromiss=0x7f05008d;
|
||||
public static final int combat_result_monsterhit=0x7f05008b;
|
||||
public static final int combat_result_monsterhitcritical=0x7f05008c;
|
||||
public static final int combat_flee=0x7f050085;
|
||||
public static final int combat_flee_failed=0x7f050087;
|
||||
public static final int combat_hero_dies=0x7f050093;
|
||||
public static final int combat_monsteraction=0x7f05008a;
|
||||
public static final int combat_monsterhealth=0x7f050089;
|
||||
public static final int combat_move=0x7f050081;
|
||||
public static final int combat_not_enough_ap=0x7f050092;
|
||||
public static final int combat_result_herohit=0x7f05008f;
|
||||
public static final int combat_result_herohitcritical=0x7f050090;
|
||||
public static final int combat_result_herokillsmonster=0x7f050091;
|
||||
public static final int combat_result_heromiss=0x7f05008e;
|
||||
public static final int combat_result_monsterhit=0x7f05008c;
|
||||
public static final int combat_result_monsterhitcritical=0x7f05008d;
|
||||
/** <string name="combat_cannotexitcombat">You cannot exit combat since there are adjacent monsters. You first have to move by longclicking a place with no adjacent monster, before you may end the combat.</string>
|
||||
<string name="combat_cannotexitcombat">You cannot exit combat since there are adjacent monsters. You first have to move by longclicking a place with no adjacent monster, before you may end the combat.</string>
|
||||
<string name="combat_cannotexitcombat">You cannot exit combat since there are adjacent monsters. You first have to move by longclicking a place with no adjacent monster, before you may end the combat.</string>
|
||||
*/
|
||||
public static final int combat_result_monstermiss=0x7f05008a;
|
||||
public static final int combat_spell=0x7f050082;
|
||||
public static final int combat_status_ap=0x7f050087;
|
||||
public static final int combat_use=0x7f050081;
|
||||
public static final int conversation_leave=0x7f0500d9;
|
||||
public static final int conversation_lostgold=0x7f0500d5;
|
||||
public static final int conversation_next=0x7f0500d8;
|
||||
public static final int combat_result_monstermiss=0x7f05008b;
|
||||
public static final int combat_spell=0x7f050083;
|
||||
public static final int combat_status_ap=0x7f050088;
|
||||
public static final int combat_use=0x7f050082;
|
||||
public static final int conversation_leave=0x7f0500da;
|
||||
public static final int conversation_lostgold=0x7f0500d6;
|
||||
public static final int conversation_next=0x7f0500d9;
|
||||
/** <string name="conversation_title">%1$s says</string>
|
||||
*/
|
||||
public static final int conversation_rewardexp=0x7f0500d3;
|
||||
public static final int conversation_rewardgold=0x7f0500d4;
|
||||
public static final int conversation_rewarditem=0x7f0500d6;
|
||||
public static final int conversation_rewarditems=0x7f0500d7;
|
||||
public static final int conversation_title=0x7f050124;
|
||||
public static final int conversationlist_alynndir=0x7f050024;
|
||||
public static final int conversationlist_ambelie=0x7f050028;
|
||||
public static final int conversationlist_crossglen=0x7f050003;
|
||||
public static final int conversationlist_crossglen_gruil=0x7f050005;
|
||||
public static final int conversationlist_crossglen_leonid=0x7f050006;
|
||||
public static final int conversationlist_crossglen_leta=0x7f050002;
|
||||
public static final int conversationlist_crossglen_odair=0x7f050007;
|
||||
public static final int conversationlist_crossglen_tharal=0x7f050004;
|
||||
public static final int conversationlist_debug=0x7f050000;
|
||||
public static final int conversationlist_fallhaven=0x7f050009;
|
||||
public static final int conversationlist_fallhaven_arcir=0x7f05000f;
|
||||
public static final int conversationlist_fallhaven_athamyr=0x7f050011;
|
||||
public static final int conversationlist_fallhaven_bucus=0x7f05000a;
|
||||
public static final int conversationlist_fallhaven_church=0x7f050010;
|
||||
public static final int conversationlist_fallhaven_drunk=0x7f05000b;
|
||||
public static final int conversationlist_fallhaven_gaela=0x7f050014;
|
||||
public static final int conversationlist_fallhaven_larcal=0x7f050012;
|
||||
public static final int conversationlist_fallhaven_nocmar=0x7f05000d;
|
||||
public static final int conversationlist_fallhaven_oldman=0x7f05000c;
|
||||
public static final int conversationlist_fallhaven_south=0x7f050019;
|
||||
public static final int conversationlist_fallhaven_tavern=0x7f05000e;
|
||||
public static final int conversationlist_fallhaven_unnmir=0x7f050013;
|
||||
public static final int conversationlist_fallhaven_unzel=0x7f050016;
|
||||
public static final int conversationlist_fallhaven_vacor=0x7f050015;
|
||||
public static final int conversationlist_fallhaven_warden=0x7f05001d;
|
||||
public static final int conversationlist_farrik=0x7f05001c;
|
||||
public static final int conversationlist_flagstone=0x7f050018;
|
||||
public static final int conversationlist_foamingflask=0x7f050027;
|
||||
public static final int conversationlist_foamingflask_guards=0x7f050029;
|
||||
public static final int conversationlist_foamingflask_outsideguard=0x7f05002a;
|
||||
public static final int conversationlist_jan=0x7f050008;
|
||||
public static final int conversationlist_jolnor=0x7f050023;
|
||||
public static final int conversationlist_kaori=0x7f05001f;
|
||||
public static final int conversationlist_maelveon=0x7f05002e;
|
||||
public static final int conversationlist_mikhail=0x7f050001;
|
||||
public static final int conversationlist_ogam=0x7f050026;
|
||||
public static final int conversationlist_oluag=0x7f05002c;
|
||||
public static final int conversationlist_shops=0x7f050025;
|
||||
public static final int conversationlist_signs_pre067=0x7f05001a;
|
||||
public static final int conversationlist_signs_v068=0x7f05002d;
|
||||
public static final int conversationlist_thievesguild_1=0x7f05001b;
|
||||
public static final int conversationlist_umar=0x7f05001e;
|
||||
public static final int conversationlist_vilegard_erttu=0x7f050021;
|
||||
public static final int conversationlist_vilegard_tavern=0x7f050022;
|
||||
public static final int conversationlist_vilegard_villagers=0x7f050020;
|
||||
public static final int conversationlist_wilderness=0x7f050017;
|
||||
public static final int conversationlist_wrye=0x7f05002b;
|
||||
public static final int dialog_close=0x7f050065;
|
||||
public static final int dialog_confirmexit_message=0x7f050067;
|
||||
public static final int dialog_confirmexit_title=0x7f050066;
|
||||
public static final int dialog_groundloot_message=0x7f05009f;
|
||||
public static final int dialog_groundloot_title=0x7f05009e;
|
||||
public static final int dialog_loading_failed_incorrectversion=0x7f050064;
|
||||
public static final int dialog_loading_failed_message=0x7f050063;
|
||||
public static final int dialog_loading_failed_title=0x7f050062;
|
||||
public static final int dialog_loading_message=0x7f050061;
|
||||
public static final int dialog_loot_foundgold=0x7f05009c;
|
||||
public static final int dialog_loot_pickall=0x7f05009b;
|
||||
public static final int dialog_loot_pickedupitems=0x7f05009d;
|
||||
public static final int dialog_monsterencounter_info=0x7f05006d;
|
||||
public static final int dialog_monsterencounter_message=0x7f05006c;
|
||||
public static final int dialog_monsterencounter_title=0x7f05006b;
|
||||
public static final int dialog_monsterloot_gainedexp=0x7f0500a2;
|
||||
public static final int dialog_monsterloot_message=0x7f0500a1;
|
||||
public static final int dialog_monsterloot_title=0x7f0500a0;
|
||||
public static final int dialog_newversion_message=0x7f0500f7;
|
||||
public static final int dialog_newversion_title=0x7f0500f6;
|
||||
public static final int dialog_paused_message=0x7f050069;
|
||||
public static final int dialog_paused_resume=0x7f05006a;
|
||||
public static final int dialog_paused_title=0x7f050068;
|
||||
public static final int dialog_rest_confirm_message=0x7f0500ee;
|
||||
public static final int dialog_rest_message=0x7f0500ef;
|
||||
public static final int dialog_rest_title=0x7f0500ed;
|
||||
public static final int droplists_crossglen=0x7f050030;
|
||||
public static final int droplists_crossglen_outside=0x7f050031;
|
||||
public static final int droplists_debug=0x7f05002f;
|
||||
public static final int droplists_fallhaven=0x7f050032;
|
||||
public static final int droplists_v068=0x7f050034;
|
||||
public static final int droplists_wilderness=0x7f050033;
|
||||
public static final int exit=0x7f050054;
|
||||
public static final int exit_to_menu=0x7f050055;
|
||||
public static final int heroinfo_actionpoints=0x7f05007d;
|
||||
public static final int heroinfo_char=0x7f050072;
|
||||
public static final int heroinfo_gold=0x7f05007c;
|
||||
public static final int heroinfo_inv=0x7f050073;
|
||||
public static final int heroinfo_inventory=0x7f05007b;
|
||||
public static final int heroinfo_level=0x7f050078;
|
||||
public static final int heroinfo_levelup=0x7f050077;
|
||||
public static final int heroinfo_quests=0x7f05007e;
|
||||
public static final int heroinfo_skill=0x7f050075;
|
||||
public static final int heroinfo_spell=0x7f050076;
|
||||
public static final int heroinfo_totalexperience=0x7f050079;
|
||||
public static final int heroinfo_wear=0x7f050074;
|
||||
public static final int heroinfo_wornequipment=0x7f05007a;
|
||||
public static final int inventory_drop=0x7f050097;
|
||||
public static final int inventory_equip=0x7f050094;
|
||||
public static final int inventory_info=0x7f050093;
|
||||
public static final int inventory_item_dropped=0x7f050099;
|
||||
public static final int inventory_item_equipped=0x7f05009a;
|
||||
public static final int inventory_item_used=0x7f050098;
|
||||
public static final int inventory_unequip=0x7f050095;
|
||||
public static final int inventory_use=0x7f050096;
|
||||
public static final int itemcategory_money=0x7f0500c2;
|
||||
public static final int itemcategory_other=0x7f0500cc;
|
||||
public static final int itemcategory_potion=0x7f0500cb;
|
||||
public static final int itemcategory_shield=0x7f0500c4;
|
||||
public static final int itemcategory_weapon=0x7f0500c3;
|
||||
public static final int itemcategory_wearable_body=0x7f0500c6;
|
||||
public static final int itemcategory_wearable_feet=0x7f0500c8;
|
||||
public static final int itemcategory_wearable_hand=0x7f0500c7;
|
||||
public static final int itemcategory_wearable_head=0x7f0500c5;
|
||||
public static final int itemcategory_wearable_neck=0x7f0500c9;
|
||||
public static final int itemcategory_wearable_ring=0x7f0500ca;
|
||||
public static final int iteminfo_action_equip=0x7f0500bd;
|
||||
public static final int iteminfo_action_equip_ap=0x7f0500c0;
|
||||
public static final int iteminfo_action_unequip=0x7f0500be;
|
||||
public static final int iteminfo_action_unequip_ap=0x7f0500c1;
|
||||
public static final int iteminfo_action_use=0x7f0500bc;
|
||||
public static final int iteminfo_action_use_ap=0x7f0500bf;
|
||||
public static final int conversation_rewardexp=0x7f0500d4;
|
||||
public static final int conversation_rewardgold=0x7f0500d5;
|
||||
public static final int conversation_rewarditem=0x7f0500d7;
|
||||
public static final int conversation_rewarditems=0x7f0500d8;
|
||||
public static final int conversation_title=0x7f050125;
|
||||
public static final int conversationlist_alynndir=0x7f050025;
|
||||
public static final int conversationlist_ambelie=0x7f050029;
|
||||
public static final int conversationlist_crossglen=0x7f050004;
|
||||
public static final int conversationlist_crossglen_gruil=0x7f050006;
|
||||
public static final int conversationlist_crossglen_leonid=0x7f050007;
|
||||
public static final int conversationlist_crossglen_leta=0x7f050003;
|
||||
public static final int conversationlist_crossglen_odair=0x7f050008;
|
||||
public static final int conversationlist_crossglen_tharal=0x7f050005;
|
||||
public static final int conversationlist_debug=0x7f050001;
|
||||
public static final int conversationlist_fallhaven=0x7f05000a;
|
||||
public static final int conversationlist_fallhaven_arcir=0x7f050010;
|
||||
public static final int conversationlist_fallhaven_athamyr=0x7f050012;
|
||||
public static final int conversationlist_fallhaven_bucus=0x7f05000b;
|
||||
public static final int conversationlist_fallhaven_church=0x7f050011;
|
||||
public static final int conversationlist_fallhaven_drunk=0x7f05000c;
|
||||
public static final int conversationlist_fallhaven_gaela=0x7f050015;
|
||||
public static final int conversationlist_fallhaven_larcal=0x7f050013;
|
||||
public static final int conversationlist_fallhaven_nocmar=0x7f05000e;
|
||||
public static final int conversationlist_fallhaven_oldman=0x7f05000d;
|
||||
public static final int conversationlist_fallhaven_south=0x7f05001a;
|
||||
public static final int conversationlist_fallhaven_tavern=0x7f05000f;
|
||||
public static final int conversationlist_fallhaven_unnmir=0x7f050014;
|
||||
public static final int conversationlist_fallhaven_unzel=0x7f050017;
|
||||
public static final int conversationlist_fallhaven_vacor=0x7f050016;
|
||||
public static final int conversationlist_fallhaven_warden=0x7f05001e;
|
||||
public static final int conversationlist_farrik=0x7f05001d;
|
||||
public static final int conversationlist_flagstone=0x7f050019;
|
||||
public static final int conversationlist_foamingflask=0x7f050028;
|
||||
public static final int conversationlist_foamingflask_guards=0x7f05002a;
|
||||
public static final int conversationlist_foamingflask_outsideguard=0x7f05002b;
|
||||
public static final int conversationlist_jan=0x7f050009;
|
||||
public static final int conversationlist_jolnor=0x7f050024;
|
||||
public static final int conversationlist_kaori=0x7f050020;
|
||||
public static final int conversationlist_maelveon=0x7f05002f;
|
||||
public static final int conversationlist_mikhail=0x7f050002;
|
||||
public static final int conversationlist_ogam=0x7f050027;
|
||||
public static final int conversationlist_oluag=0x7f05002d;
|
||||
public static final int conversationlist_shops=0x7f050026;
|
||||
public static final int conversationlist_signs_pre067=0x7f05001b;
|
||||
public static final int conversationlist_signs_v068=0x7f05002e;
|
||||
public static final int conversationlist_thievesguild_1=0x7f05001c;
|
||||
public static final int conversationlist_umar=0x7f05001f;
|
||||
public static final int conversationlist_vilegard_erttu=0x7f050022;
|
||||
public static final int conversationlist_vilegard_tavern=0x7f050023;
|
||||
public static final int conversationlist_vilegard_villagers=0x7f050021;
|
||||
public static final int conversationlist_wilderness=0x7f050018;
|
||||
public static final int conversationlist_wrye=0x7f05002c;
|
||||
public static final int dialog_close=0x7f050066;
|
||||
public static final int dialog_confirmexit_message=0x7f050068;
|
||||
public static final int dialog_confirmexit_title=0x7f050067;
|
||||
public static final int dialog_groundloot_message=0x7f0500a0;
|
||||
public static final int dialog_groundloot_title=0x7f05009f;
|
||||
public static final int dialog_loading_failed_incorrectversion=0x7f050065;
|
||||
public static final int dialog_loading_failed_message=0x7f050064;
|
||||
public static final int dialog_loading_failed_title=0x7f050063;
|
||||
public static final int dialog_loading_message=0x7f050062;
|
||||
public static final int dialog_loot_foundgold=0x7f05009d;
|
||||
public static final int dialog_loot_pickall=0x7f05009c;
|
||||
public static final int dialog_loot_pickedupitems=0x7f05009e;
|
||||
public static final int dialog_monsterencounter_info=0x7f05006e;
|
||||
public static final int dialog_monsterencounter_message=0x7f05006d;
|
||||
public static final int dialog_monsterencounter_title=0x7f05006c;
|
||||
public static final int dialog_monsterloot_gainedexp=0x7f0500a3;
|
||||
public static final int dialog_monsterloot_message=0x7f0500a2;
|
||||
public static final int dialog_monsterloot_title=0x7f0500a1;
|
||||
public static final int dialog_newversion_message=0x7f0500f8;
|
||||
public static final int dialog_newversion_title=0x7f0500f7;
|
||||
public static final int dialog_paused_message=0x7f05006a;
|
||||
public static final int dialog_paused_resume=0x7f05006b;
|
||||
public static final int dialog_paused_title=0x7f050069;
|
||||
public static final int dialog_rest_confirm_message=0x7f0500ef;
|
||||
public static final int dialog_rest_message=0x7f0500f0;
|
||||
public static final int dialog_rest_title=0x7f0500ee;
|
||||
public static final int droplists_crossglen=0x7f050031;
|
||||
public static final int droplists_crossglen_outside=0x7f050032;
|
||||
public static final int droplists_debug=0x7f050030;
|
||||
public static final int droplists_fallhaven=0x7f050033;
|
||||
public static final int droplists_v068=0x7f050035;
|
||||
public static final int droplists_wilderness=0x7f050034;
|
||||
public static final int exit=0x7f050055;
|
||||
public static final int exit_to_menu=0x7f050056;
|
||||
public static final int heroinfo_actionpoints=0x7f05007e;
|
||||
public static final int heroinfo_char=0x7f050073;
|
||||
public static final int heroinfo_gold=0x7f05007d;
|
||||
public static final int heroinfo_inv=0x7f050074;
|
||||
public static final int heroinfo_inventory=0x7f05007c;
|
||||
public static final int heroinfo_level=0x7f050079;
|
||||
public static final int heroinfo_levelup=0x7f050078;
|
||||
public static final int heroinfo_quests=0x7f05007f;
|
||||
public static final int heroinfo_skill=0x7f050076;
|
||||
public static final int heroinfo_spell=0x7f050077;
|
||||
public static final int heroinfo_totalexperience=0x7f05007a;
|
||||
public static final int heroinfo_wear=0x7f050075;
|
||||
public static final int heroinfo_wornequipment=0x7f05007b;
|
||||
public static final int inventory_drop=0x7f050098;
|
||||
public static final int inventory_equip=0x7f050095;
|
||||
public static final int inventory_info=0x7f050094;
|
||||
public static final int inventory_item_dropped=0x7f05009a;
|
||||
public static final int inventory_item_equipped=0x7f05009b;
|
||||
public static final int inventory_item_used=0x7f050099;
|
||||
public static final int inventory_unequip=0x7f050096;
|
||||
public static final int inventory_use=0x7f050097;
|
||||
public static final int itemcategory_money=0x7f0500c3;
|
||||
public static final int itemcategory_other=0x7f0500cd;
|
||||
public static final int itemcategory_potion=0x7f0500cc;
|
||||
public static final int itemcategory_shield=0x7f0500c5;
|
||||
public static final int itemcategory_weapon=0x7f0500c4;
|
||||
public static final int itemcategory_wearable_body=0x7f0500c7;
|
||||
public static final int itemcategory_wearable_feet=0x7f0500c9;
|
||||
public static final int itemcategory_wearable_hand=0x7f0500c8;
|
||||
public static final int itemcategory_wearable_head=0x7f0500c6;
|
||||
public static final int itemcategory_wearable_neck=0x7f0500ca;
|
||||
public static final int itemcategory_wearable_ring=0x7f0500cb;
|
||||
public static final int iteminfo_action_equip=0x7f0500be;
|
||||
public static final int iteminfo_action_equip_ap=0x7f0500c1;
|
||||
public static final int iteminfo_action_unequip=0x7f0500bf;
|
||||
public static final int iteminfo_action_unequip_ap=0x7f0500c2;
|
||||
public static final int iteminfo_action_use=0x7f0500bd;
|
||||
public static final int iteminfo_action_use_ap=0x7f0500c0;
|
||||
/** <string name="key_required">A specific key is required to pass.</string>
|
||||
*/
|
||||
public static final int iteminfo_category=0x7f0500bb;
|
||||
public static final int iteminfo_effect_chance_of=0x7f05010f;
|
||||
public static final int iteminfo_effect_decrease_current_ap=0x7f050119;
|
||||
public static final int iteminfo_effect_decrease_current_hp=0x7f050117;
|
||||
public static final int iteminfo_effect_decrease_max_ap=0x7f05011e;
|
||||
public static final int iteminfo_effect_decrease_max_hp=0x7f05011c;
|
||||
public static final int iteminfo_effect_decrease_movecost=0x7f050120;
|
||||
public static final int iteminfo_effect_duration=0x7f050110;
|
||||
public static final int iteminfo_effect_increase_current_ap=0x7f05011a;
|
||||
public static final int iteminfo_effect_increase_current_hp=0x7f050118;
|
||||
public static final int iteminfo_effect_increase_max_ap=0x7f05011d;
|
||||
public static final int iteminfo_effect_increase_max_hp=0x7f05011b;
|
||||
public static final int iteminfo_effect_increase_movecost=0x7f05011f;
|
||||
public static final int iteminfo_effect_works_on_source=0x7f050111;
|
||||
public static final int iteminfo_effect_works_on_target=0x7f050112;
|
||||
public static final int iteminfo_effect_works_when_equipped=0x7f050116;
|
||||
public static final int iteminfo_effect_works_when_hitting_target=0x7f050113;
|
||||
public static final int iteminfo_effect_works_when_killing_target=0x7f050114;
|
||||
public static final int iteminfo_effect_works_when_used=0x7f050115;
|
||||
public static final int itemlist_animal=0x7f05003d;
|
||||
public static final int itemlist_armour=0x7f05003a;
|
||||
public static final int itemlist_debug=0x7f050036;
|
||||
public static final int itemlist_food=0x7f05003b;
|
||||
public static final int itemlist_junk=0x7f05003e;
|
||||
public static final int itemlist_money=0x7f050035;
|
||||
public static final int itemlist_necklaces=0x7f050039;
|
||||
public static final int itemlist_potions=0x7f05003c;
|
||||
public static final int itemlist_quest=0x7f05003f;
|
||||
public static final int itemlist_rings=0x7f050038;
|
||||
public static final int itemlist_v068=0x7f050040;
|
||||
public static final int itemlist_weapons=0x7f050037;
|
||||
public static final int key_required=0x7f050123;
|
||||
public static final int levelup_add_attackchance=0x7f0500e7;
|
||||
public static final int levelup_add_attackchance_description=0x7f0500e8;
|
||||
public static final int levelup_add_attackdamage=0x7f0500e9;
|
||||
public static final int levelup_add_attackdamage_description=0x7f0500ea;
|
||||
public static final int levelup_add_blockchance=0x7f0500eb;
|
||||
public static final int levelup_add_blockchance_description=0x7f0500ec;
|
||||
public static final int levelup_add_health=0x7f0500e5;
|
||||
public static final int levelup_add_health_description=0x7f0500e6;
|
||||
public static final int levelup_buttontext=0x7f0500e4;
|
||||
public static final int levelup_description=0x7f0500e3;
|
||||
public static final int levelup_title=0x7f0500e2;
|
||||
public static final int loadsave_selectslot=0x7f05005e;
|
||||
public static final int loadsave_slot_empty=0x7f05005f;
|
||||
public static final int loadsave_title_load=0x7f05005d;
|
||||
public static final int loadsave_title_save=0x7f05005c;
|
||||
public static final int menu_load=0x7f050059;
|
||||
public static final int menu_pause=0x7f050056;
|
||||
public static final int menu_save=0x7f050058;
|
||||
public static final int menu_save_failed=0x7f05005b;
|
||||
public static final int menu_save_gamesaved=0x7f05005a;
|
||||
public static final int menu_settings=0x7f050057;
|
||||
public static final int monster_difficulty_easy=0x7f0500a4;
|
||||
public static final int monster_difficulty_hard=0x7f0500a6;
|
||||
public static final int monster_difficulty_impossible=0x7f0500a8;
|
||||
public static final int monster_difficulty_normal=0x7f0500a5;
|
||||
public static final int monster_difficulty_veryeasy=0x7f0500a3;
|
||||
public static final int monster_difficulty_veryhard=0x7f0500a7;
|
||||
public static final int monsterlist_crossglen_animals=0x7f050042;
|
||||
public static final int monsterlist_crossglen_npcs=0x7f050044;
|
||||
public static final int monsterlist_debug=0x7f050041;
|
||||
public static final int monsterlist_fallhaven_animals=0x7f050043;
|
||||
public static final int monsterlist_fallhaven_npcs=0x7f050045;
|
||||
public static final int monsterlist_v068_npcs=0x7f050047;
|
||||
public static final int monsterlist_wilderness=0x7f050046;
|
||||
public static final int preferences_combat_category=0x7f050107;
|
||||
public static final int preferences_combat_speed=0x7f050109;
|
||||
public static final int preferences_combat_speed_title=0x7f050108;
|
||||
public static final int preferences_dialog_category=0x7f050100;
|
||||
public static final int preferences_dialog_confirmattack=0x7f050104;
|
||||
public static final int preferences_dialog_confirmattack_title=0x7f050103;
|
||||
public static final int preferences_dialog_confirmrest=0x7f050102;
|
||||
public static final int preferences_dialog_confirmrest_title=0x7f050101;
|
||||
public static final int preferences_dialog_monsterloot=0x7f050106;
|
||||
public static final int preferences_dialog_monsterloot_title=0x7f050105;
|
||||
public static final int preferences_display_category=0x7f0500fd;
|
||||
public static final int preferences_display_fullscreen=0x7f0500ff;
|
||||
public static final int preferences_display_fullscreen_title=0x7f0500fe;
|
||||
public static final int preferences_display_scaling_factor=0x7f050122;
|
||||
public static final int preferences_display_scaling_factor_title=0x7f050121;
|
||||
public static final int preferences_movement_category=0x7f05010a;
|
||||
public static final int preferences_movementmethod=0x7f05010c;
|
||||
public static final int preferences_movementmethod_title=0x7f05010b;
|
||||
public static final int questlist=0x7f050049;
|
||||
public static final int questlist_debug=0x7f050048;
|
||||
public static final int questlist_v068=0x7f05004a;
|
||||
public static final int questlog_andor_v068=0x7f050051;
|
||||
public static final int questlog_crossglen=0x7f05004c;
|
||||
public static final int questlog_debug=0x7f05004b;
|
||||
public static final int questlog_fallhaven=0x7f05004d;
|
||||
public static final int questlog_farrik=0x7f050050;
|
||||
public static final int questlog_flagstone=0x7f05004f;
|
||||
public static final int questlog_includecompleted_prompt=0x7f0500f9;
|
||||
public static final int questlog_queststatus=0x7f0500fa;
|
||||
public static final int questlog_queststatus_completed=0x7f0500fc;
|
||||
public static final int questlog_queststatus_inprogress=0x7f0500fb;
|
||||
public static final int questlog_title=0x7f0500f8;
|
||||
public static final int questlog_vacor=0x7f05004e;
|
||||
public static final int questlog_vilegard=0x7f050052;
|
||||
public static final int savegame_currenthero_displayinfo=0x7f050060;
|
||||
public static final int shop_buy=0x7f0500da;
|
||||
public static final int shop_buyitem=0x7f0500dd;
|
||||
public static final int shop_infoitem=0x7f0500dc;
|
||||
public static final int shop_item_bought=0x7f0500e0;
|
||||
public static final int shop_item_sold=0x7f0500e1;
|
||||
public static final int shop_sell=0x7f0500db;
|
||||
public static final int shop_sellitem=0x7f0500de;
|
||||
public static final int shop_yourgold=0x7f0500df;
|
||||
public static final int startscreen_about=0x7f0500d0;
|
||||
public static final int startscreen_continue=0x7f0500cd;
|
||||
public static final int startscreen_enterheroname=0x7f0500d1;
|
||||
public static final int startscreen_load=0x7f0500d2;
|
||||
public static final int startscreen_newgame=0x7f0500ce;
|
||||
public static final int startscreen_newgame_confirm=0x7f0500cf;
|
||||
public static final int status_ap=0x7f050070;
|
||||
public static final int status_exp=0x7f050071;
|
||||
public static final int status_hp=0x7f05006e;
|
||||
public static final int status_mp=0x7f05006f;
|
||||
public static final int traitsinfo_attack_chance=0x7f0500b5;
|
||||
public static final int traitsinfo_attack_cost=0x7f0500b4;
|
||||
public static final int traitsinfo_attack_damage=0x7f0500b6;
|
||||
public static final int traitsinfo_criticalhit_chance=0x7f0500b7;
|
||||
public static final int traitsinfo_criticalhit_multiplier=0x7f0500b8;
|
||||
public static final int traitsinfo_defense_chance=0x7f0500b9;
|
||||
public static final int traitsinfo_defense_damageresist=0x7f0500ba;
|
||||
public static final int iteminfo_category=0x7f0500bc;
|
||||
public static final int iteminfo_effect_chance_of=0x7f050110;
|
||||
public static final int iteminfo_effect_decrease_current_ap=0x7f05011a;
|
||||
public static final int iteminfo_effect_decrease_current_hp=0x7f050118;
|
||||
public static final int iteminfo_effect_decrease_max_ap=0x7f05011f;
|
||||
public static final int iteminfo_effect_decrease_max_hp=0x7f05011d;
|
||||
public static final int iteminfo_effect_decrease_movecost=0x7f050121;
|
||||
public static final int iteminfo_effect_duration=0x7f050111;
|
||||
public static final int iteminfo_effect_increase_current_ap=0x7f05011b;
|
||||
public static final int iteminfo_effect_increase_current_hp=0x7f050119;
|
||||
public static final int iteminfo_effect_increase_max_ap=0x7f05011e;
|
||||
public static final int iteminfo_effect_increase_max_hp=0x7f05011c;
|
||||
public static final int iteminfo_effect_increase_movecost=0x7f050120;
|
||||
public static final int iteminfo_effect_works_on_source=0x7f050112;
|
||||
public static final int iteminfo_effect_works_on_target=0x7f050113;
|
||||
public static final int iteminfo_effect_works_when_equipped=0x7f050117;
|
||||
public static final int iteminfo_effect_works_when_hitting_target=0x7f050114;
|
||||
public static final int iteminfo_effect_works_when_killing_target=0x7f050115;
|
||||
public static final int iteminfo_effect_works_when_used=0x7f050116;
|
||||
public static final int itemlist_animal=0x7f05003e;
|
||||
public static final int itemlist_armour=0x7f05003b;
|
||||
public static final int itemlist_debug=0x7f050037;
|
||||
public static final int itemlist_food=0x7f05003c;
|
||||
public static final int itemlist_junk=0x7f05003f;
|
||||
public static final int itemlist_money=0x7f050036;
|
||||
public static final int itemlist_necklaces=0x7f05003a;
|
||||
public static final int itemlist_potions=0x7f05003d;
|
||||
public static final int itemlist_quest=0x7f050040;
|
||||
public static final int itemlist_rings=0x7f050039;
|
||||
public static final int itemlist_v068=0x7f050041;
|
||||
public static final int itemlist_weapons=0x7f050038;
|
||||
public static final int key_required=0x7f050124;
|
||||
public static final int levelup_add_attackchance=0x7f0500e8;
|
||||
public static final int levelup_add_attackchance_description=0x7f0500e9;
|
||||
public static final int levelup_add_attackdamage=0x7f0500ea;
|
||||
public static final int levelup_add_attackdamage_description=0x7f0500eb;
|
||||
public static final int levelup_add_blockchance=0x7f0500ec;
|
||||
public static final int levelup_add_blockchance_description=0x7f0500ed;
|
||||
public static final int levelup_add_health=0x7f0500e6;
|
||||
public static final int levelup_add_health_description=0x7f0500e7;
|
||||
public static final int levelup_buttontext=0x7f0500e5;
|
||||
public static final int levelup_description=0x7f0500e4;
|
||||
public static final int levelup_title=0x7f0500e3;
|
||||
public static final int loadsave_selectslot=0x7f05005f;
|
||||
public static final int loadsave_slot_empty=0x7f050060;
|
||||
public static final int loadsave_title_load=0x7f05005e;
|
||||
public static final int loadsave_title_save=0x7f05005d;
|
||||
public static final int menu_load=0x7f05005a;
|
||||
public static final int menu_pause=0x7f050057;
|
||||
public static final int menu_save=0x7f050059;
|
||||
public static final int menu_save_failed=0x7f05005c;
|
||||
public static final int menu_save_gamesaved=0x7f05005b;
|
||||
public static final int menu_settings=0x7f050058;
|
||||
public static final int monster_difficulty_easy=0x7f0500a5;
|
||||
public static final int monster_difficulty_hard=0x7f0500a7;
|
||||
public static final int monster_difficulty_impossible=0x7f0500a9;
|
||||
public static final int monster_difficulty_normal=0x7f0500a6;
|
||||
public static final int monster_difficulty_veryeasy=0x7f0500a4;
|
||||
public static final int monster_difficulty_veryhard=0x7f0500a8;
|
||||
public static final int monsterlist_crossglen_animals=0x7f050043;
|
||||
public static final int monsterlist_crossglen_npcs=0x7f050045;
|
||||
public static final int monsterlist_debug=0x7f050042;
|
||||
public static final int monsterlist_fallhaven_animals=0x7f050044;
|
||||
public static final int monsterlist_fallhaven_npcs=0x7f050046;
|
||||
public static final int monsterlist_v068_npcs=0x7f050048;
|
||||
public static final int monsterlist_wilderness=0x7f050047;
|
||||
public static final int preferences_combat_category=0x7f050108;
|
||||
public static final int preferences_combat_speed=0x7f05010a;
|
||||
public static final int preferences_combat_speed_title=0x7f050109;
|
||||
public static final int preferences_dialog_category=0x7f050101;
|
||||
public static final int preferences_dialog_confirmattack=0x7f050105;
|
||||
public static final int preferences_dialog_confirmattack_title=0x7f050104;
|
||||
public static final int preferences_dialog_confirmrest=0x7f050103;
|
||||
public static final int preferences_dialog_confirmrest_title=0x7f050102;
|
||||
public static final int preferences_dialog_monsterloot=0x7f050107;
|
||||
public static final int preferences_dialog_monsterloot_title=0x7f050106;
|
||||
public static final int preferences_display_category=0x7f0500fe;
|
||||
public static final int preferences_display_fullscreen=0x7f050100;
|
||||
public static final int preferences_display_fullscreen_title=0x7f0500ff;
|
||||
public static final int preferences_display_scaling_factor=0x7f050123;
|
||||
public static final int preferences_display_scaling_factor_title=0x7f050122;
|
||||
public static final int preferences_movement_category=0x7f05010b;
|
||||
public static final int preferences_movementmethod=0x7f05010d;
|
||||
public static final int preferences_movementmethod_title=0x7f05010c;
|
||||
public static final int questlist=0x7f05004a;
|
||||
public static final int questlist_debug=0x7f050049;
|
||||
public static final int questlist_v068=0x7f05004b;
|
||||
public static final int questlog_andor_v068=0x7f050052;
|
||||
public static final int questlog_crossglen=0x7f05004d;
|
||||
public static final int questlog_debug=0x7f05004c;
|
||||
public static final int questlog_fallhaven=0x7f05004e;
|
||||
public static final int questlog_farrik=0x7f050051;
|
||||
public static final int questlog_flagstone=0x7f050050;
|
||||
public static final int questlog_includecompleted_prompt=0x7f0500fa;
|
||||
public static final int questlog_queststatus=0x7f0500fb;
|
||||
public static final int questlog_queststatus_completed=0x7f0500fd;
|
||||
public static final int questlog_queststatus_inprogress=0x7f0500fc;
|
||||
public static final int questlog_title=0x7f0500f9;
|
||||
public static final int questlog_vacor=0x7f05004f;
|
||||
public static final int questlog_vilegard=0x7f050053;
|
||||
public static final int savegame_currenthero_displayinfo=0x7f050061;
|
||||
public static final int shop_buy=0x7f0500db;
|
||||
public static final int shop_buyitem=0x7f0500de;
|
||||
public static final int shop_infoitem=0x7f0500dd;
|
||||
public static final int shop_item_bought=0x7f0500e1;
|
||||
public static final int shop_item_sold=0x7f0500e2;
|
||||
public static final int shop_sell=0x7f0500dc;
|
||||
public static final int shop_sellitem=0x7f0500df;
|
||||
public static final int shop_yourgold=0x7f0500e0;
|
||||
public static final int startscreen_about=0x7f0500d1;
|
||||
public static final int startscreen_continue=0x7f0500ce;
|
||||
public static final int startscreen_enterheroname=0x7f0500d2;
|
||||
public static final int startscreen_load=0x7f0500d3;
|
||||
public static final int startscreen_newgame=0x7f0500cf;
|
||||
public static final int startscreen_newgame_confirm=0x7f0500d0;
|
||||
public static final int status_ap=0x7f050071;
|
||||
public static final int status_exp=0x7f050072;
|
||||
public static final int status_hp=0x7f05006f;
|
||||
public static final int status_mp=0x7f050070;
|
||||
public static final int traitsinfo_attack_chance=0x7f0500b6;
|
||||
public static final int traitsinfo_attack_cost=0x7f0500b5;
|
||||
public static final int traitsinfo_attack_damage=0x7f0500b7;
|
||||
public static final int traitsinfo_criticalhit_chance=0x7f0500b8;
|
||||
public static final int traitsinfo_criticalhit_multiplier=0x7f0500b9;
|
||||
public static final int traitsinfo_defense_chance=0x7f0500ba;
|
||||
public static final int traitsinfo_defense_damageresist=0x7f0500bb;
|
||||
}
|
||||
public static final class style {
|
||||
public static final int Theme_NoBackground=0x7f080000;
|
||||
}
|
||||
public static final class xml {
|
||||
public static final int catacombs1=0x7f040000;
|
||||
public static final int catacombs2=0x7f040001;
|
||||
public static final int catacombs3=0x7f040002;
|
||||
public static final int catacombs4=0x7f040003;
|
||||
public static final int clearing_level1=0x7f040004;
|
||||
public static final int clearing_level2=0x7f040005;
|
||||
public static final int crossglen=0x7f040006;
|
||||
public static final int crossglen_cave=0x7f040007;
|
||||
public static final int crossglen_farmhouse=0x7f040008;
|
||||
public static final int crossglen_farmhouse_basement=0x7f040009;
|
||||
public static final int crossglen_hall=0x7f04000a;
|
||||
public static final int crossglen_smith=0x7f04000b;
|
||||
public static final int debugmap=0x7f04000c;
|
||||
public static final int fallhaven_alaun=0x7f04000d;
|
||||
public static final int fallhaven_arcir=0x7f04000e;
|
||||
public static final int fallhaven_arcir_basement=0x7f04000f;
|
||||
public static final int fallhaven_athamyr=0x7f040010;
|
||||
public static final int fallhaven_barn=0x7f040011;
|
||||
public static final int fallhaven_church=0x7f040012;
|
||||
public static final int fallhaven_clothes=0x7f040013;
|
||||
public static final int fallhaven_derelict=0x7f040014;
|
||||
public static final int fallhaven_derelict2=0x7f040015;
|
||||
public static final int fallhaven_farmer=0x7f040016;
|
||||
public static final int fallhaven_gravedigger=0x7f040017;
|
||||
public static final int fallhaven_lumberjack=0x7f040018;
|
||||
public static final int fallhaven_ne=0x7f040019;
|
||||
public static final int fallhaven_nocmar=0x7f04001a;
|
||||
public static final int fallhaven_nw=0x7f04001b;
|
||||
public static final int fallhaven_potions=0x7f04001c;
|
||||
public static final int fallhaven_prison=0x7f04001d;
|
||||
public static final int fallhaven_rigmor=0x7f04001e;
|
||||
public static final int fallhaven_se=0x7f04001f;
|
||||
public static final int fallhaven_storage=0x7f040020;
|
||||
public static final int fallhaven_sw=0x7f040021;
|
||||
public static final int fallhaven_tavern=0x7f040022;
|
||||
public static final int flagstone0=0x7f040023;
|
||||
public static final int flagstone1=0x7f040024;
|
||||
public static final int flagstone2=0x7f040025;
|
||||
public static final int flagstone3=0x7f040026;
|
||||
public static final int flagstone4=0x7f040027;
|
||||
public static final int flagstone_inner=0x7f040028;
|
||||
public static final int flagstone_upper=0x7f040029;
|
||||
public static final int foaming_flask=0x7f04002a;
|
||||
public static final int gargoylecave1=0x7f04002b;
|
||||
public static final int gargoylecave2=0x7f04002c;
|
||||
public static final int gargoylecave3=0x7f04002d;
|
||||
public static final int gargoylecave4=0x7f04002e;
|
||||
public static final int hauntedhouse1=0x7f04002f;
|
||||
public static final int hauntedhouse2=0x7f040030;
|
||||
public static final int hauntedhouse3=0x7f040031;
|
||||
public static final int hauntedhouse4=0x7f040032;
|
||||
public static final int home=0x7f040033;
|
||||
public static final int jan_pitcave1=0x7f040034;
|
||||
public static final int jan_pitcave2=0x7f040035;
|
||||
public static final int jan_pitcave3=0x7f040036;
|
||||
public static final int preferences=0x7f040037;
|
||||
public static final int road1=0x7f040038;
|
||||
public static final int road2=0x7f040039;
|
||||
public static final int road3=0x7f04003a;
|
||||
public static final int road4=0x7f04003b;
|
||||
public static final int road4_gargoylecave=0x7f04003c;
|
||||
public static final int road5=0x7f04003d;
|
||||
public static final int road5_house=0x7f04003e;
|
||||
public static final int snakecave1=0x7f04003f;
|
||||
public static final int snakecave2=0x7f040040;
|
||||
public static final int snakecave3=0x7f040041;
|
||||
public static final int template=0x7f040042;
|
||||
public static final int vilegard_armorer=0x7f040043;
|
||||
public static final int vilegard_chapel=0x7f040044;
|
||||
public static final int vilegard_erttu=0x7f040045;
|
||||
public static final int vilegard_kaori=0x7f040046;
|
||||
public static final int vilegard_n=0x7f040047;
|
||||
public static final int vilegard_ogam=0x7f040048;
|
||||
public static final int vilegard_s=0x7f040049;
|
||||
public static final int vilegard_smith=0x7f04004a;
|
||||
public static final int vilegard_sw=0x7f04004b;
|
||||
public static final int vilegard_tavern=0x7f04004c;
|
||||
public static final int vilegard_wrye=0x7f04004d;
|
||||
public static final int wild1=0x7f04004e;
|
||||
public static final int wild10=0x7f04004f;
|
||||
public static final int wild11=0x7f040050;
|
||||
public static final int wild11_clearing=0x7f040051;
|
||||
public static final int wild12=0x7f040052;
|
||||
public static final int wild13=0x7f040053;
|
||||
public static final int wild14=0x7f040054;
|
||||
public static final int wild14_cave=0x7f040055;
|
||||
public static final int wild14_clearing=0x7f040056;
|
||||
public static final int wild15=0x7f040057;
|
||||
public static final int wild15_house=0x7f040058;
|
||||
public static final int wild2=0x7f040059;
|
||||
public static final int wild3=0x7f04005a;
|
||||
public static final int wild4=0x7f04005b;
|
||||
public static final int wild5=0x7f04005c;
|
||||
public static final int wild6=0x7f04005d;
|
||||
public static final int wild6_house=0x7f04005e;
|
||||
public static final int wild7=0x7f04005f;
|
||||
public static final int wild8=0x7f040060;
|
||||
public static final int wild9=0x7f040061;
|
||||
public static final int blackwater_mountain0=0x7f040000;
|
||||
public static final int blackwater_mountain1=0x7f040001;
|
||||
public static final int blackwater_mountain10=0x7f040002;
|
||||
public static final int blackwater_mountain11=0x7f040003;
|
||||
public static final int blackwater_mountain12=0x7f040004;
|
||||
public static final int blackwater_mountain13=0x7f040005;
|
||||
public static final int blackwater_mountain14=0x7f040006;
|
||||
public static final int blackwater_mountain15=0x7f040007;
|
||||
public static final int blackwater_mountain16=0x7f040008;
|
||||
public static final int blackwater_mountain17=0x7f040009;
|
||||
public static final int blackwater_mountain18=0x7f04000a;
|
||||
public static final int blackwater_mountain19=0x7f04000b;
|
||||
public static final int blackwater_mountain2=0x7f04000c;
|
||||
public static final int blackwater_mountain20=0x7f04000d;
|
||||
public static final int blackwater_mountain21=0x7f04000e;
|
||||
public static final int blackwater_mountain22=0x7f04000f;
|
||||
public static final int blackwater_mountain23=0x7f040010;
|
||||
public static final int blackwater_mountain24=0x7f040011;
|
||||
public static final int blackwater_mountain25=0x7f040012;
|
||||
public static final int blackwater_mountain26=0x7f040013;
|
||||
public static final int blackwater_mountain27=0x7f040014;
|
||||
public static final int blackwater_mountain28=0x7f040015;
|
||||
public static final int blackwater_mountain29=0x7f040016;
|
||||
public static final int blackwater_mountain3=0x7f040017;
|
||||
public static final int blackwater_mountain30=0x7f040018;
|
||||
public static final int blackwater_mountain31=0x7f040019;
|
||||
public static final int blackwater_mountain32=0x7f04001a;
|
||||
public static final int blackwater_mountain33=0x7f04001b;
|
||||
public static final int blackwater_mountain34=0x7f04001c;
|
||||
public static final int blackwater_mountain35=0x7f04001d;
|
||||
public static final int blackwater_mountain36=0x7f04001e;
|
||||
public static final int blackwater_mountain37=0x7f04001f;
|
||||
public static final int blackwater_mountain38=0x7f040020;
|
||||
public static final int blackwater_mountain39=0x7f040021;
|
||||
public static final int blackwater_mountain4=0x7f040022;
|
||||
public static final int blackwater_mountain40=0x7f040023;
|
||||
public static final int blackwater_mountain41=0x7f040024;
|
||||
public static final int blackwater_mountain42=0x7f040025;
|
||||
public static final int blackwater_mountain43=0x7f040026;
|
||||
public static final int blackwater_mountain44=0x7f040027;
|
||||
public static final int blackwater_mountain45=0x7f040028;
|
||||
public static final int blackwater_mountain46=0x7f040029;
|
||||
public static final int blackwater_mountain47=0x7f04002a;
|
||||
public static final int blackwater_mountain48=0x7f04002b;
|
||||
public static final int blackwater_mountain49=0x7f04002c;
|
||||
public static final int blackwater_mountain5=0x7f04002d;
|
||||
public static final int blackwater_mountain50=0x7f04002e;
|
||||
public static final int blackwater_mountain51=0x7f04002f;
|
||||
public static final int blackwater_mountain52=0x7f040030;
|
||||
public static final int blackwater_mountain6=0x7f040031;
|
||||
public static final int blackwater_mountain7=0x7f040032;
|
||||
public static final int blackwater_mountain8=0x7f040033;
|
||||
public static final int blackwater_mountain9=0x7f040034;
|
||||
public static final int catacombs1=0x7f040035;
|
||||
public static final int catacombs2=0x7f040036;
|
||||
public static final int catacombs3=0x7f040037;
|
||||
public static final int catacombs4=0x7f040038;
|
||||
public static final int clearing_level1=0x7f040039;
|
||||
public static final int clearing_level2=0x7f04003a;
|
||||
public static final int crossglen=0x7f04003b;
|
||||
public static final int crossglen_cave=0x7f04003c;
|
||||
public static final int crossglen_farmhouse=0x7f04003d;
|
||||
public static final int crossglen_farmhouse_basement=0x7f04003e;
|
||||
public static final int crossglen_hall=0x7f04003f;
|
||||
public static final int crossglen_smith=0x7f040040;
|
||||
public static final int crossroads=0x7f040041;
|
||||
public static final int debugmap=0x7f040042;
|
||||
public static final int fallhaven_alaun=0x7f040043;
|
||||
public static final int fallhaven_arcir=0x7f040044;
|
||||
public static final int fallhaven_arcir_basement=0x7f040045;
|
||||
public static final int fallhaven_athamyr=0x7f040046;
|
||||
public static final int fallhaven_barn=0x7f040047;
|
||||
public static final int fallhaven_church=0x7f040048;
|
||||
public static final int fallhaven_clothes=0x7f040049;
|
||||
public static final int fallhaven_derelict=0x7f04004a;
|
||||
public static final int fallhaven_derelict2=0x7f04004b;
|
||||
public static final int fallhaven_farmer=0x7f04004c;
|
||||
public static final int fallhaven_gravedigger=0x7f04004d;
|
||||
public static final int fallhaven_lumberjack=0x7f04004e;
|
||||
public static final int fallhaven_ne=0x7f04004f;
|
||||
public static final int fallhaven_nocmar=0x7f040050;
|
||||
public static final int fallhaven_nw=0x7f040051;
|
||||
public static final int fallhaven_potions=0x7f040052;
|
||||
public static final int fallhaven_prison=0x7f040053;
|
||||
public static final int fallhaven_rigmor=0x7f040054;
|
||||
public static final int fallhaven_se=0x7f040055;
|
||||
public static final int fallhaven_storage=0x7f040056;
|
||||
public static final int fallhaven_sw=0x7f040057;
|
||||
public static final int fallhaven_tavern=0x7f040058;
|
||||
public static final int fields0=0x7f040059;
|
||||
public static final int fields1=0x7f04005a;
|
||||
public static final int fields10=0x7f04005b;
|
||||
public static final int fields11=0x7f04005c;
|
||||
public static final int fields12=0x7f04005d;
|
||||
public static final int fields2=0x7f04005e;
|
||||
public static final int fields3=0x7f04005f;
|
||||
public static final int fields4=0x7f040060;
|
||||
public static final int fields5=0x7f040061;
|
||||
public static final int fields6=0x7f040062;
|
||||
public static final int fields7=0x7f040063;
|
||||
public static final int fields8=0x7f040064;
|
||||
public static final int fields9=0x7f040065;
|
||||
public static final int flagstone0=0x7f040066;
|
||||
public static final int flagstone1=0x7f040067;
|
||||
public static final int flagstone2=0x7f040068;
|
||||
public static final int flagstone3=0x7f040069;
|
||||
public static final int flagstone4=0x7f04006a;
|
||||
public static final int flagstone_inner=0x7f04006b;
|
||||
public static final int flagstone_upper=0x7f04006c;
|
||||
public static final int foaming_flask=0x7f04006d;
|
||||
public static final int gargoylecave1=0x7f04006e;
|
||||
public static final int gargoylecave2=0x7f04006f;
|
||||
public static final int gargoylecave3=0x7f040070;
|
||||
public static final int gargoylecave4=0x7f040071;
|
||||
public static final int hauntedhouse1=0x7f040072;
|
||||
public static final int hauntedhouse2=0x7f040073;
|
||||
public static final int hauntedhouse3=0x7f040074;
|
||||
public static final int hauntedhouse4=0x7f040075;
|
||||
public static final int home=0x7f040076;
|
||||
public static final int houseatcrossroads0=0x7f040077;
|
||||
public static final int houseatcrossroads1=0x7f040078;
|
||||
public static final int houseatcrossroads2=0x7f040079;
|
||||
public static final int houseatcrossroads3=0x7f04007a;
|
||||
public static final int houseatcrossroads4=0x7f04007b;
|
||||
public static final int houseatcrossroads5=0x7f04007c;
|
||||
public static final int jan_pitcave1=0x7f04007d;
|
||||
public static final int jan_pitcave2=0x7f04007e;
|
||||
public static final int jan_pitcave3=0x7f04007f;
|
||||
public static final int loneford1=0x7f040080;
|
||||
public static final int loneford10=0x7f040081;
|
||||
public static final int loneford2=0x7f040082;
|
||||
public static final int loneford3=0x7f040083;
|
||||
public static final int loneford4=0x7f040084;
|
||||
public static final int loneford5=0x7f040085;
|
||||
public static final int loneford6=0x7f040086;
|
||||
public static final int loneford7=0x7f040087;
|
||||
public static final int loneford8=0x7f040088;
|
||||
public static final int loneford9=0x7f040089;
|
||||
public static final int preferences=0x7f04008a;
|
||||
public static final int road1=0x7f04008b;
|
||||
public static final int road2=0x7f04008c;
|
||||
public static final int road3=0x7f04008d;
|
||||
public static final int road4=0x7f04008e;
|
||||
public static final int road4_gargoylecave=0x7f04008f;
|
||||
public static final int road5=0x7f040090;
|
||||
public static final int road5_house=0x7f040091;
|
||||
public static final int roadbeforecrossroads=0x7f040092;
|
||||
public static final int roadtocarntower0=0x7f040093;
|
||||
public static final int roadtocarntower1=0x7f040094;
|
||||
public static final int roadtocarntower2=0x7f040095;
|
||||
public static final int snakecave1=0x7f040096;
|
||||
public static final int snakecave2=0x7f040097;
|
||||
public static final int snakecave3=0x7f040098;
|
||||
public static final int template=0x7f040099;
|
||||
public static final int test1=0x7f04009a;
|
||||
public static final int vilegard_armorer=0x7f04009b;
|
||||
public static final int vilegard_chapel=0x7f04009c;
|
||||
public static final int vilegard_erttu=0x7f04009d;
|
||||
public static final int vilegard_kaori=0x7f04009e;
|
||||
public static final int vilegard_n=0x7f04009f;
|
||||
public static final int vilegard_ogam=0x7f0400a0;
|
||||
public static final int vilegard_s=0x7f0400a1;
|
||||
public static final int vilegard_smith=0x7f0400a2;
|
||||
public static final int vilegard_sw=0x7f0400a3;
|
||||
public static final int vilegard_tavern=0x7f0400a4;
|
||||
public static final int vilegard_wrye=0x7f0400a5;
|
||||
public static final int wild0=0x7f0400a6;
|
||||
public static final int wild1=0x7f0400a7;
|
||||
public static final int wild10=0x7f0400a8;
|
||||
public static final int wild11=0x7f0400a9;
|
||||
public static final int wild11_clearing=0x7f0400aa;
|
||||
public static final int wild12=0x7f0400ab;
|
||||
public static final int wild13=0x7f0400ac;
|
||||
public static final int wild14=0x7f0400ad;
|
||||
public static final int wild14_cave=0x7f0400ae;
|
||||
public static final int wild14_clearing=0x7f0400af;
|
||||
public static final int wild15=0x7f0400b0;
|
||||
public static final int wild15_house=0x7f0400b1;
|
||||
public static final int wild2=0x7f0400b2;
|
||||
public static final int wild3=0x7f0400b3;
|
||||
public static final int wild4=0x7f0400b4;
|
||||
public static final int wild5=0x7f0400b5;
|
||||
public static final int wild6=0x7f0400b6;
|
||||
public static final int wild6_house=0x7f0400b7;
|
||||
public static final int wild7=0x7f0400b8;
|
||||
public static final int wild8=0x7f0400b9;
|
||||
public static final int wild9=0x7f0400ba;
|
||||
public static final int woodcave0=0x7f0400bb;
|
||||
public static final int woodcave1=0x7f0400bc;
|
||||
}
|
||||
}
|
||||
|
||||
11
AndorsTrail/res/values/actorconditions.xml
Normal file
11
AndorsTrail/res/values/actorconditions.xml
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<resources>
|
||||
<string name="actorconditions_v069">
|
||||
[id|name|iconID|isStacking|hasRoundEffect|round_visualEffectID|round_boostHP_Min|round_boostHP_Max|round_boostAP_Min|round_boostAP_Max|hasFullRoundEffect|fullround_visualEffectID|fullround_boostHP_Min|fullround_boostHP_Max|fullround_boostAP_Min|fullround_boostAP_Max|hasAbilityEffect|boostMaxHP|boostMaxAP|moveCostPenalty|attackCost|attackChance|criticalChance|criticalMultiplier|attackDamage_Min|attackDamage_Max|blockChance|damageResistance|];
|
||||
{bless|Bless|items_tiles:321||||||||||||||1|||||5|||||||};
|
||||
{poison_weak|Weak Poison|items_tiles:340||1|2|-1|-1|||||||||||||||||||||};
|
||||
{str|Strength|items_tiles:350||||||||||||||1||||||||2|2|||};
|
||||
{regen|Regeneration|items_tiles:315||1|1|1|1|||||||||0||||||||||||};
|
||||
</string>
|
||||
</resources>
|
||||
@@ -2,183 +2,183 @@
|
||||
|
||||
<resources>
|
||||
<string name="itemlist_money">
|
||||
[Tag|Icon|Name|Category|Cost|HP|AtkCost|AtkPct|CritPct|CritMult|DMG|BlkPct|DMG_res|];
|
||||
{gold|items_tiles:220|Gold coins|30|1|||||||||};
|
||||
[searchTag|iconID|name|category|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|use_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|]|];
|
||||
{gold|items_tiles:220|Gold coins|30|1|||||||||||||||||||||||||||||||||};
|
||||
</string>
|
||||
|
||||
<string name="itemlist_debug">
|
||||
[Tag|Icon|Name|Category|Cost|HP|AtkCost|AtkPct|CritPct|CritMult|DMG|BlkPct|DMG_res|];
|
||||
{debug_dagger1|items_tiles:90|Black heart dagger|0|6||2|100|30|3|5-10|||};
|
||||
{debug_ring1|items_tiles:270|Black heart ring|7|3|||50|||10|||};
|
||||
[searchTag|iconID|name|category|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|use_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|]|];
|
||||
{debug_dagger1|items_tiles:90|Black heart dagger|0|6|1||||2|100|30|3|5|10|||||||||||||||||||||||};
|
||||
{debug_ring1|items_tiles:270|Black heart ring|7|3|1|||||50|||10|10|||||||||||||||||||||||};
|
||||
</string>
|
||||
|
||||
<string name="itemlist_weapons">
|
||||
[Tag|Icon|Name|Category|Cost|HP|AtkCost|AtkPct|CritPct|CritMult|DMG|BlkPct|DMG_res|];
|
||||
{club1|items_tiles:126|Wooden club|0|7||5|10|||0-1|||};
|
||||
{club3|items_tiles:128|Iron club|0|253||6|5|||2-7|||};
|
||||
{ironsword0|items_tiles:70|Iron sword|0|12||5|10|||0-1|||};
|
||||
{hammer0|items_tiles:129|Iron hammer|0|12||5|10|||0-1|||};
|
||||
{hammer1|items_tiles:129|Giant hammer|0|121||10|5|||4-7|||};
|
||||
{dagger0|items_tiles:84|Iron dagger|0|12||5|10|||0-1|||};
|
||||
{dagger1|items_tiles:84|Sharp iron dagger|0|53||4|20|||1-2|||};
|
||||
{dagger2|items_tiles:84|Superior iron dagger|0|70||4|25|||1-2|||};
|
||||
{shortsword1|items_tiles:85|Iron shortsword|0|78||4|15|||1-2|||};
|
||||
{ironsword1|items_tiles:70|Iron sword|0|78||5|10|||1-3|||};
|
||||
{ironsword2|items_tiles:71|Iron longsword|0|121||5|10|||1-4|||};
|
||||
{broadsword1|items_tiles:75|Iron broadsword|0|251||7|2|||1-10|||};
|
||||
{broadsword2|items_tiles:76|Steel broadsword|0|582||6|15|||3-10|||};
|
||||
{steelsword1|items_tiles:77|Steel sword|0|874||4|24|||3-7|||};
|
||||
{axe1|items_tiles:140|Woodcutter axe|0|24||5|5|||1-3|||};
|
||||
{axe2|items_tiles:140|Iron axe|0|312||6|5|||2-5|||};
|
||||
{quickdagger1|items_tiles:84|Quickstrike dagger|0|512||3|20|||0|-20||};
|
||||
[searchTag|iconID|name|category|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|use_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|]|];
|
||||
{club1|items_tiles:126|Wooden club|0|7|1||||5|10|||0|1|||||||||||||||||||||||};
|
||||
{club3|items_tiles:128|Iron club|0|253|1||||6|5|||2|7|||||||||||||||||||||||};
|
||||
{ironsword0|items_tiles:70|Iron sword|0|12|1||||5|10|||0|1|||||||||||||||||||||||};
|
||||
{hammer0|items_tiles:129|Iron hammer|0|12|1||||5|10|||0|1|||||||||||||||||||||||};
|
||||
{hammer1|items_tiles:129|Giant hammer|0|121|1||||10|5|||4|7|||||||||||||||||||||||};
|
||||
{dagger0|items_tiles:84|Iron dagger|0|12|1||||5|10|||0|1|||||||||||||||||||||||};
|
||||
{dagger1|items_tiles:84|Sharp iron dagger|0|53|1||||4|20|||1|2|||||||||||||||||||||||};
|
||||
{dagger2|items_tiles:84|Superior iron dagger|0|70|1||||4|25|||1|2|||||||||||||||||||||||};
|
||||
{shortsword1|items_tiles:85|Iron shortsword|0|78|1||||4|15|||1|2|||||||||||||||||||||||};
|
||||
{ironsword1|items_tiles:70|Iron sword|0|78|1||||5|10|||1|3|||||||||||||||||||||||};
|
||||
{ironsword2|items_tiles:71|Iron longsword|0|121|1||||5|10|||1|4|||||||||||||||||||||||};
|
||||
{broadsword1|items_tiles:75|Iron broadsword|0|251|1||||7|2|||1|10|||||||||||||||||||||||};
|
||||
{broadsword2|items_tiles:76|Steel broadsword|0|582|1||||6|15|||3|10|||||||||||||||||||||||};
|
||||
{steelsword1|items_tiles:77|Steel sword|0|874|1||||4|24|||3|7|||||||||||||||||||||||};
|
||||
{axe1|items_tiles:140|Woodcutter axe|0|24|1||||5|5|||1|3|||||||||||||||||||||||};
|
||||
{axe2|items_tiles:140|Iron axe|0|312|1||||6|5|||2|5|||||||||||||||||||||||};
|
||||
{quickdagger1|items_tiles:84|Quickstrike dagger|0|512|1||||3|20|||0|0|-20||||||||||||||||||||||};
|
||||
</string>
|
||||
|
||||
<string name="itemlist_rings">
|
||||
[Tag|Icon|Name|Category|Cost|HP|AtkCost|AtkPct|CritPct|CritMult|DMG|BlkPct|DMG_res|];
|
||||
{ring_dmg1|items_tiles:266|Ring of damage +1|7|215||||||1|||};
|
||||
{ring_dmg2|items_tiles:267|Ring of damage +2|7|398||||||2|||};
|
||||
{ring_dmg5|items_tiles:268|Ring of damage +5|7|2014||||||5|||};
|
||||
{ring_dmg6|items_tiles:269|Ring of damage +6|7|3186||||||6|||};
|
||||
{ring_block1|items_tiles:266|Ring of block|7|1239|||||||10||};
|
||||
{ring_block2|items_tiles:266|Ring of block|7|3866|||||||15||};
|
||||
{ring_atkch1|items_tiles:266|Ring of surehit|7|215|||15||||||};
|
||||
{ring1|items_tiles:266|Mundane ring|7|13|||||||||};
|
||||
{ring2|items_tiles:266|Polished ring|7|21|||||||||};
|
||||
{ring_jinxed1|items_tiles:268|Jinxed ring of damage resistance|7|229|||||||-9|1|};
|
||||
[searchTag|iconID|name|category|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|use_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|]|];
|
||||
{ring_dmg1|items_tiles:266|Ring of damage +1|7|215|1||||||||1|1|||||||||||||||||||||||};
|
||||
{ring_dmg2|items_tiles:267|Ring of damage +2|7|398|1||||||||2|2|||||||||||||||||||||||};
|
||||
{ring_dmg5|items_tiles:268|Ring of damage +5|7|2014|1||||||||5|5|||||||||||||||||||||||};
|
||||
{ring_dmg6|items_tiles:269|Ring of damage +6|7|3186|1||||||||6|6|||||||||||||||||||||||};
|
||||
{ring_block1|items_tiles:266|Ring of block|7|1239|1||||||||||10||||||||||||||||||||||};
|
||||
{ring_block2|items_tiles:266|Ring of block|7|3866|1||||||||||15||||||||||||||||||||||};
|
||||
{ring_atkch1|items_tiles:266|Ring of surehit|7|215|1|||||15|||||||||||||||||||||||||||};
|
||||
{ring1|items_tiles:266|Mundane ring|7|13|||||||||||||||||||||||||||||||||};
|
||||
{ring2|items_tiles:266|Polished ring|7|21|||||||||||||||||||||||||||||||||};
|
||||
{ring_jinxed1|items_tiles:268|Jinxed ring of damage resistance|7|229|1||||||||||-9|1|||||||||||||||||||||};
|
||||
</string>
|
||||
|
||||
<string name="itemlist_necklaces">
|
||||
[Tag|Icon|Name|Category|Cost|HP|AtkCost|AtkPct|CritPct|CritMult|DMG|BlkPct|DMG_res|];
|
||||
{jewel_fallhaven|items_tiles:272|Jewel of Fallhaven|6|3125||-1|||||||};
|
||||
{necklace_shield1|items_tiles:273|Shielding necklace|6|935|||||||9||};
|
||||
{necklace_shield2|items_tiles:273|Shielding necklace|6|1255|||||||12||};
|
||||
[searchTag|iconID|name|category|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|use_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|]|];
|
||||
{jewel_fallhaven|items_tiles:272|Jewel of Fallhaven|6|3125|1||||-1||||||||||||||||||||||||||||};
|
||||
{necklace_shield1|items_tiles:273|Shielding necklace|6|935|1||||||||||9||||||||||||||||||||||};
|
||||
{necklace_shield2|items_tiles:273|Shielding necklace|6|1255|1||||||||||12||||||||||||||||||||||};
|
||||
</string>
|
||||
|
||||
<string name="itemlist_armour">
|
||||
[Tag|Icon|Name|Category|Cost|HP|AtkCost|AtkPct|CritPct|CritMult|DMG|BlkPct|DMG_res|];
|
||||
{shirt1|items_tiles:182|Cloth shirt|3|16|||||||2||};
|
||||
{shirt2|items_tiles:182|Fine shirt|3|72|||||||5||};
|
||||
{shirt_dmgresist|items_tiles:183|Hardened leather shirt|3|1633|||||||5|1|};
|
||||
{armor1|items_tiles:183|Leather armour|3|464|||||||8||};
|
||||
{armor2|items_tiles:183|Superior leather armour|3|624|||||||9||};
|
||||
{armor3|items_tiles:184|Hard leather armour|3|2407|||||||13||};
|
||||
{armor4|items_tiles:184|Superior hard leather armour|3|3866|||||||15||};
|
||||
{hat1|items_tiles:189|Green hat|2|13|||||||1||};
|
||||
{hat2|items_tiles:189|Fine green hat|2|25|||||||2||};
|
||||
{hat3|items_tiles:192|Leather cap|2|72|||||||5||};
|
||||
{hat4|items_tiles:192|Fine leather cap|2|146|||||||6||};
|
||||
{gloves1|items_tiles:203|Leather gloves|4|23|||||||3||};
|
||||
{gloves2|items_tiles:203|Fine leather gloves|4|38|||||||4||};
|
||||
{gloves3|items_tiles:204|Snakeskin gloves|4|72|||||||5||};
|
||||
{gloves4|items_tiles:204|Fine snakeskin gloves|4|146|||||||6||};
|
||||
{shield1|items_tiles:168|Wooden buckler|1|72|||-5||||5||};
|
||||
{shield3|items_tiles:169|Reinforced wooden buckler|1|226|||-5||||7||};
|
||||
{shield4|items_tiles:170|Wooden shield|1|464|||-5||||8||};
|
||||
{shield5|items_tiles:170|Superior wooden shield|1|624|||-4||||9||};
|
||||
{boots1|items_tiles:196|Leather boots|5|23|||||||3||};
|
||||
{boots2|items_tiles:196|Superior leather boots|5|38|||||||4||};
|
||||
{boots3|items_tiles:197|Snakeskin boots|5|146|||||||6||};
|
||||
{boots5|items_tiles:198|Reinforced boots|5|226|||||||7||};
|
||||
{gloves_attack1|items_tiles:203|Gloves of swift attack|4|150|||15||||-9||};
|
||||
{gloves_attack2|items_tiles:203|Fine gloves of swift attack|4|221|||17||||-9||};
|
||||
<string name="itemlist_armour">
|
||||
[searchTag|iconID|name|category|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|use_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|]|];
|
||||
{shirt1|items_tiles:182|Cloth shirt|3|16|1||||||||||2||||||||||||||||||||||};
|
||||
{shirt2|items_tiles:182|Fine shirt|3|72|1||||||||||5||||||||||||||||||||||};
|
||||
{shirt_dmgresist|items_tiles:183|Hardened leather shirt|3|1633|1||||||||||5|1|||||||||||||||||||||};
|
||||
{armor1|items_tiles:183|Leather armour|3|464|1||||||||||8||||||||||||||||||||||};
|
||||
{armor2|items_tiles:183|Superior leather armour|3|624|1||||||||||9||||||||||||||||||||||};
|
||||
{armor3|items_tiles:184|Hard leather armour|3|2407|1||||||||||13||||||||||||||||||||||};
|
||||
{armor4|items_tiles:184|Superior hard leather armour|3|3866|1||||||||||15||||||||||||||||||||||};
|
||||
{hat1|items_tiles:189|Green hat|2|13|1||||||||||1||||||||||||||||||||||};
|
||||
{hat2|items_tiles:189|Fine green hat|2|25|1||||||||||2||||||||||||||||||||||};
|
||||
{hat3|items_tiles:192|Leather cap|2|72|1||||||||||5||||||||||||||||||||||};
|
||||
{hat4|items_tiles:192|Fine leather cap|2|146|1||||||||||6||||||||||||||||||||||};
|
||||
{gloves1|items_tiles:203|Leather gloves|4|23|1||||||||||3||||||||||||||||||||||};
|
||||
{gloves2|items_tiles:203|Fine leather gloves|4|38|1||||||||||4||||||||||||||||||||||};
|
||||
{gloves3|items_tiles:204|Snakeskin gloves|4|72|1||||||||||5||||||||||||||||||||||};
|
||||
{gloves4|items_tiles:204|Fine snakeskin gloves|4|146|1||||||||||6||||||||||||||||||||||};
|
||||
{shield1|items_tiles:168|Wooden buckler|1|72|1|||||-5|||||5||||||||||||||||||||||};
|
||||
{shield3|items_tiles:169|Reinforced wooden buckler|1|226|1|||||-5|||||7||||||||||||||||||||||};
|
||||
{shield4|items_tiles:170|Wooden shield|1|464|1|||||-5|||||8||||||||||||||||||||||};
|
||||
{shield5|items_tiles:170|Superior wooden shield|1|624|1|||||-4|||||9||||||||||||||||||||||};
|
||||
{boots1|items_tiles:196|Leather boots|5|23|1||||||||||3||||||||||||||||||||||};
|
||||
{boots2|items_tiles:196|Superior leather boots|5|38|1||||||||||4||||||||||||||||||||||};
|
||||
{boots3|items_tiles:197|Snakeskin boots|5|146|1||||||||||6||||||||||||||||||||||};
|
||||
{boots5|items_tiles:198|Reinforced boots|5|226|1||||||||||7||||||||||||||||||||||};
|
||||
{gloves_attack1|items_tiles:203|Gloves of swift attack|4|150|1|||||15|||||-9||||||||||||||||||||||};
|
||||
{gloves_attack2|items_tiles:203|Fine gloves of swift attack|4|221|1|||||17|||||-9||||||||||||||||||||||};
|
||||
</string>
|
||||
|
||||
<string name="itemlist_food">
|
||||
[Tag|Icon|Name|Category|Cost|HP|AtkCost|AtkPct|CritPct|CritMult|DMG|BlkPct|DMG_res|];
|
||||
{apple_green|items_tiles:2|Green apple|21|9|4||||||||};
|
||||
{apple_red|items_tiles:3|Red apple|21|15|6||||||||};
|
||||
{meat|items_tiles:25|Meat|21|29|12||||||||};
|
||||
{meat_cooked|items_tiles:27|Cooked meat|21|78|21||||||||};
|
||||
{strawberry|items_tiles:8|Strawberry|21|1|1||||||||};
|
||||
{carrot|items_tiles:15|Carrot|21|9|4||||||||};
|
||||
{bread|items_tiles:21|Bread|21|6|5||||||||};
|
||||
{mushroom|items_tiles:19|Mushroom|21|1|1||||||||};
|
||||
{pear|items_tiles:9|Pear|21|9|4||||||||};
|
||||
{eggs|items_tiles:20|Eggs|21|8|3||||||||};
|
||||
{radish|items_tiles:14|Radish|21|5|2||||||||};
|
||||
<string name="itemlist_food">
|
||||
[searchTag|iconID|name|category|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|use_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||||||4|||||||||||};
|
||||
{apple_red|items_tiles:3|Red apple|21|15||||||||||||||1|6|6||||||6|||||||||||};
|
||||
{meat|items_tiles:25|Meat|21|29||||||||||||||1|12|12||||||12|||||||||||};
|
||||
{meat_cooked|items_tiles:27|Cooked meat|21|78||||||||||||||1|21|21||||||21|||||||||||};
|
||||
{strawberry|items_tiles:8|Strawberry|21|1||||||||||||||1|1|1||||||1|||||||||||};
|
||||
{carrot|items_tiles:15|Carrot|21|9||||||||||||||1|4|4||||||4|||||||||||};
|
||||
{bread|items_tiles:21|Bread|21|6||||||||||||||1|5|5||||||5|||||||||||};
|
||||
{mushroom|items_tiles:19|Mushroom|21|1||||||||||||||1|1|1||||||1|||||||||||};
|
||||
{pear|items_tiles:9|Pear|21|9||||||||||||||1|4|4||||||4|||||||||||};
|
||||
{eggs|items_tiles:20|Eggs|21|8||||||||||||||1|3|3||||||3|||||||||||};
|
||||
{radish|items_tiles:14|Radish|21|5||||||||||||||1|2|2||||||2|||||||||||};
|
||||
</string>
|
||||
|
||||
<string name="itemlist_potions">
|
||||
[Tag|Icon|Name|Category|Cost|HP|AtkCost|AtkPct|CritPct|CritMult|DMG|BlkPct|DMG_res|];
|
||||
{vial_empty1|items_tiles:56|Small empty vial|31|2|||||||||};
|
||||
{vial_empty2|items_tiles:57|Empty vial|31|4|||||||||};
|
||||
{vial_empty3|items_tiles:59|Empty flask|31|6|||||||||};
|
||||
{vial_empty4|items_tiles:58|Empty potion|31|11|||||||||};
|
||||
{health_minor|items_tiles:35|Minor potion of health|20|5|5||||||||};
|
||||
{health|items_tiles:49|Regular potion of health|20|40|10||||||||};
|
||||
{health_major|items_tiles:28|Major potion of health|20|210|40||||||||};
|
||||
{mead|items_tiles:51|Mead|20|15|1||||||||};
|
||||
{milk|items_tiles:55|Milk|20|21|2||||||||};
|
||||
{bonemeal_potion|items_tiles:34|Bonemeal potion|20|45|40||||||||};
|
||||
[searchTag|iconID|name|category|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|use_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|]|];
|
||||
{vial_empty1|items_tiles:56|Small empty vial|31|2|||||||||||||||||||||||||||||||||};
|
||||
{vial_empty2|items_tiles:57|Empty vial|31|4|||||||||||||||||||||||||||||||||};
|
||||
{vial_empty3|items_tiles:59|Empty flask|31|6|||||||||||||||||||||||||||||||||};
|
||||
{vial_empty4|items_tiles:58|Empty potion|31|11|||||||||||||||||||||||||||||||||};
|
||||
{health_minor|items_tiles:35|Minor potion of health|20|5||||||||||||||1|5|5||||||5|||||||||||};
|
||||
{health|items_tiles:49|Regular potion of health|20|40||||||||||||||1|10|10||||||10|||||||||||};
|
||||
{health_major|items_tiles:28|Major potion of health|20|210||||||||||||||1|40|40||||||40|||||||||||};
|
||||
{mead|items_tiles:51|Mead|20|15||||||||||||||1|1|1||||||1|||||||||||};
|
||||
{milk|items_tiles:55|Milk|20|21||||||||||||||1|2|2||||||2|||||||||||};
|
||||
{bonemeal_potion|items_tiles:34|Bonemeal potion|20|45||||||||||||||1|40|40||||||40|||||||||||};
|
||||
</string>
|
||||
|
||||
<string name="itemlist_animal">
|
||||
[Tag|Icon|Name|Category|Cost|HP|AtkCost|AtkPct|CritPct|CritMult|DMG|BlkPct|DMG_res|];
|
||||
{hair|items_tiles:258|Animal hair|31|2|||||||||};
|
||||
{insectwing|items_tiles:262|Insect wing|31|3|||||||||};
|
||||
{bone|items_tiles:254|Bone|31|2|||||||||};
|
||||
{eye|items_tiles:255|Eye|31|6|||||||||};
|
||||
{bat_wing|items_tiles:256|Bat wing|31|2|||||||||};
|
||||
{claws|items_tiles:257|Claws|31|2|||||||||};
|
||||
{shell|items_tiles:264|Insect shell|31|2|||||||||};
|
||||
{feather|items_tiles:226|Feather|31|6|||||||||};
|
||||
{red_feather|items_tiles:225|Red feather|31|11|||||||||};
|
||||
{gland|items_tiles:340|Poison gland|31|15|||||||||};
|
||||
{rat_tail|items_tiles:103|Rat tail|31|2|||||||||};
|
||||
[searchTag|iconID|name|category|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|use_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|]|];
|
||||
{hair|items_tiles:258|Animal hair|31|2|||||||||||||||||||||||||||||||||};
|
||||
{insectwing|items_tiles:262|Insect wing|31|3|||||||||||||||||||||||||||||||||};
|
||||
{bone|items_tiles:254|Bone|31|2|||||||||||||||||||||||||||||||||};
|
||||
{eye|items_tiles:255|Eye|31|6|||||||||||||||||||||||||||||||||};
|
||||
{bat_wing|items_tiles:256|Bat wing|31|2|||||||||||||||||||||||||||||||||};
|
||||
{claws|items_tiles:257|Claws|31|2|||||||||||||||||||||||||||||||||};
|
||||
{shell|items_tiles:264|Insect shell|31|2|||||||||||||||||||||||||||||||||};
|
||||
{feather|items_tiles:226|Feather|31|6|||||||||||||||||||||||||||||||||};
|
||||
{red_feather|items_tiles:225|Red feather|31|11|||||||||||||||||||||||||||||||||};
|
||||
{gland|items_tiles:340|Poison gland|31|15|||||||||||||||||||||||||||||||||};
|
||||
{rat_tail|items_tiles:103|Rat tail|31|2|||||||||||||||||||||||||||||||||};
|
||||
</string>
|
||||
|
||||
<string name="itemlist_junk">
|
||||
[Tag|Icon|Name|Category|Cost|HP|AtkCost|AtkPct|CritPct|CritMult|DMG|BlkPct|DMG_res|];
|
||||
{clay|items_tiles:289|Lump of clay|31|1|||||||||};
|
||||
{rock|items_tiles:238|Small rock|31|1|||||||||};
|
||||
{gem1|items_tiles:210|Glass gem|31|2|||||||||};
|
||||
{gem2|items_tiles:211|Ruby gem|31|6|||||||||};
|
||||
{gem3|items_tiles:212|Polished gem|31|8|||||||||};
|
||||
{gem4|items_tiles:213|Sharpened gem|31|13|||||||||};
|
||||
{gem5|items_tiles:215|Polished sparkling gem|31|15|||||||||};
|
||||
{gem6|items_tiles:214|Shimmering gem|31|26|||||||||};
|
||||
{gem8|items_tiles:330|Brilliant gem|31|68|||||||||};
|
||||
[searchTag|iconID|name|category|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|use_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|]|];
|
||||
{clay|items_tiles:289|Lump of clay|31|1|||||||||||||||||||||||||||||||||};
|
||||
{rock|items_tiles:238|Small rock|31|1|||||||||||||||||||||||||||||||||};
|
||||
{gem1|items_tiles:210|Glass gem|31|2|||||||||||||||||||||||||||||||||};
|
||||
{gem2|items_tiles:211|Ruby gem|31|6|||||||||||||||||||||||||||||||||};
|
||||
{gem3|items_tiles:212|Polished gem|31|8|||||||||||||||||||||||||||||||||};
|
||||
{gem4|items_tiles:213|Sharpened gem|31|13|||||||||||||||||||||||||||||||||};
|
||||
{gem5|items_tiles:215|Polished sparkling gem|31|15|||||||||||||||||||||||||||||||||};
|
||||
{gem6|items_tiles:214|Shimmering gem|31|26|||||||||||||||||||||||||||||||||};
|
||||
{gem8|items_tiles:330|Brilliant gem|31|68|||||||||||||||||||||||||||||||||};
|
||||
</string>
|
||||
|
||||
<string name="itemlist_quest">
|
||||
[Tag|Icon|Name|Category|Cost|HP|AtkCost|AtkPct|CritPct|CritMult|DMG|BlkPct|DMG_res|];
|
||||
{tail_caverat|items_tiles:103|Cave rat tail|31|0|||||||||};
|
||||
{tail_trainingrat|items_tiles:103|Small rat tail|31|0|||||||||};
|
||||
{rest|items_tiles:33|Potion of restoration|20|0|99||||||||};
|
||||
{ring_mikhail|items_tiles:266|Mikhail\'s ring|7|15|||10||||||};
|
||||
{neck_irogotu|items_tiles:273|Irogotu\'s necklace|6|30|||||||5|1|};
|
||||
{ring_gandir|items_tiles:266|Gandir\'s ring|31|0|||||||||};
|
||||
{dagger_venom|items_tiles:87|Venomous Dagger|0|15||4|20|20|3|1-2|||};
|
||||
{key_luthor|items_tiles:231|Key of Luthor|31|0|||||||||};
|
||||
{calomyran_secrets|items_tiles:406|Calomyran secrets|31|0|||||||||};
|
||||
{heartstone|items_tiles:216|Heartstone|31|40|||||||||};
|
||||
{vacor_spell|items_tiles:248|Piece of Vacor\'s spell|31|0|||||||||};
|
||||
{ring_unzel|items_tiles:266|Unzel\'s ring|31|0|||||||||};
|
||||
{ring_vacor|items_tiles:266|Vacor\'s ring|31|0|||||||||};
|
||||
{boots_unzel|items_tiles:197|Unzel\'s defensive boots|5|185|||||||8||};
|
||||
{boots_vacor|items_tiles:197|Vacor\'s boots of attack|5|185|||9||||2||};
|
||||
{necklace_flagstone|items_tiles:272|Flagstone Warden\'s necklace|31|0|||||||||};
|
||||
{packhide|items_tiles:183|Wolfpack\'s animal hide|3|121|||-15||||2|1|};
|
||||
{sword_flagstone|items_tiles:77|Flagstone\'s pride|0|169||4|21|10|2|1-6|||};
|
||||
[searchTag|iconID|name|category|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|use_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|]|];
|
||||
{tail_caverat|items_tiles:103|Cave rat tail|31|0|||||||||||||||||||||||||||||||||};
|
||||
{tail_trainingrat|items_tiles:103|Small rat tail|31|0|||||||||||||||||||||||||||||||||};
|
||||
{rest|items_tiles:33|Potion of restoration|20|0||||||||||||||1|99|99||||||99|||||||||||};
|
||||
{ring_mikhail|items_tiles:266|Mikhail\'s ring|7|15|1|||||10|||||||||||||||||||||||||||};
|
||||
{neck_irogotu|items_tiles:273|Irogotu\'s necklace|6|30|1||||||||||5|1|||||||||||||||||||||};
|
||||
{ring_gandir|items_tiles:266|Gandir\'s ring|31|0|||||||||||||||||||||||||||||||||};
|
||||
{dagger_venom|items_tiles:87|Venomous Dagger|0|15|1||||4|20|20|3|1|2|||||||||||||||||||||||};
|
||||
{key_luthor|items_tiles:231|Key of Luthor|31|0|||||||||||||||||||||||||||||||||};
|
||||
{calomyran_secrets|items_tiles:406|Calomyran secrets|31|0|||||||||||||||||||||||||||||||||};
|
||||
{heartstone|items_tiles:216|Heartstone|31|40|||||||||||||||||||||||||||||||||};
|
||||
{vacor_spell|items_tiles:248|Piece of Vacor\'s spell|31|0|||||||||||||||||||||||||||||||||};
|
||||
{ring_unzel|items_tiles:266|Unzel\'s ring|31|0|||||||||||||||||||||||||||||||||};
|
||||
{ring_vacor|items_tiles:266|Vacor\'s ring|31|0|||||||||||||||||||||||||||||||||};
|
||||
{boots_unzel|items_tiles:197|Unzel\'s defensive boots|5|185|1||||||||||8||||||||||||||||||||||};
|
||||
{boots_vacor|items_tiles:197|Vacor\'s boots of attack|5|185|1|||||9|||||2||||||||||||||||||||||};
|
||||
{necklace_flagstone|items_tiles:272|Flagstone Warden\'s necklace|31|0|||||||||||||||||||||||||||||||||};
|
||||
{packhide|items_tiles:183|Wolfpack\'s animal hide|3|121|1|||||-15|||||2|1|||||||||||||||||||||};
|
||||
{sword_flagstone|items_tiles:77|Flagstone\'s pride|0|169|1||||4|21|10|2|1|6|||||||||||||||||||||||};
|
||||
</string>
|
||||
|
||||
<string name="itemlist_v068">
|
||||
[Tag|Icon|Name|Category|Cost|HP|AtkCost|AtkPct|CritPct|CritMult|DMG|BlkPct|DMG_res|];
|
||||
{armor_chain1|items_tiles:185|Rusty chain mail|3|3629|||-10||||20||};
|
||||
{armor_chain2|items_tiles:185|Ordinary chain mail|3|4191|||-5||||22||};
|
||||
{hat_leather1|items_tiles:192|Hardened leather cap|2|261|||-2||||7||};
|
||||
{sleepingmead|items_tiles:51|Prepared sleepy mead|31|0|||||||||};
|
||||
{ffguard_qitem|items_tiles:266|Feygard patrol ring|31|0|||||||||};
|
||||
{shield6|items_tiles:171|Wooden tower shield|1|952|||-8||||12||};
|
||||
{shield7|items_tiles:171|Strong wooden tower shield|1|1538|||-8||||14||};
|
||||
{club_wood1|items_tiles:128|Heavy iron club|0|950||8|15|5|3|2-11|||};
|
||||
{club_wood2|items_tiles:128|Balanced heavy iron club|0|2194||7|10|10|3|2-11|||};
|
||||
{gloves_grip|items_tiles:203|Gloves of better grip|4|471|||9||||1||};
|
||||
{gloves_fancy|items_tiles:203|Fancy gloves|4|78|||5||||||};
|
||||
{ring_crit1|items_tiles:266|Ring of strike|7|2921||||5|||||};
|
||||
{ring_crit2|items_tiles:266|Ring of vicious strike|7|3455|||-10|7|||||};
|
||||
{armor_stone|items_tiles:185|Stone Cuirass|3|52||2|||||22|1|};
|
||||
{ring_shadow0|items_tiles:268|Ring of lesser shadows|7|612|||15|5||3|||};
|
||||
[searchTag|iconID|name|category|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|use_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|]|];
|
||||
{armor_chain1|items_tiles:185|Rusty chain mail|3|3629|1|||||-10|||||20||||||||||||||||||||||};
|
||||
{armor_chain2|items_tiles:185|Ordinary chain mail|3|4191|1|||||-5|||||22||||||||||||||||||||||};
|
||||
{hat_leather1|items_tiles:192|Hardened leather cap|2|261|1|||||-2|||||7||||||||||||||||||||||};
|
||||
{sleepingmead|items_tiles:51|Prepared sleepy mead|31|0|||||||||||||||||||||||||||||||||};
|
||||
{ffguard_qitem|items_tiles:266|Feygard patrol ring|31|0|||||||||||||||||||||||||||||||||};
|
||||
{shield6|items_tiles:171|Wooden tower shield|1|952|1|||||-8|||||12||||||||||||||||||||||};
|
||||
{shield7|items_tiles:171|Strong wooden tower shield|1|1538|1|||||-8|||||14||||||||||||||||||||||};
|
||||
{club_wood1|items_tiles:128|Heavy iron club|0|950|1||||8|15|5|3|2|11|||||||||||||||||||||||};
|
||||
{club_wood2|items_tiles:128|Balanced heavy iron club|0|2194|1||||7|10|10|3|2|11|||||||||||||||||||||||};
|
||||
{gloves_grip|items_tiles:203|Gloves of better grip|4|471|1|||||9|||||1||||||||||||||||||||||};
|
||||
{gloves_fancy|items_tiles:203|Fancy gloves|4|78|1|||||5|||||||||||||||||||||||||||};
|
||||
{ring_crit1|items_tiles:266|Ring of strike|7|2921|1||||||5||||||||||||||||||||||||||};
|
||||
{ring_crit2|items_tiles:266|Ring of vicious strike|7|3455|1|||||-10|7||||||||||||||||||||||||||};
|
||||
{armor_stone|items_tiles:185|Stone Cuirass|3|52|1||||2||||||22|1|||||||||||||||||||||};
|
||||
{ring_shadow0|items_tiles:268|Ring of lesser shadows|7|612|1|||||15|5||3|3|||||||||||||||||||||||};
|
||||
</string>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -15,7 +15,7 @@ import com.gpl.rpg.AndorsTrail.model.item.ItemTypeCollection;
|
||||
import com.gpl.rpg.AndorsTrail.model.map.MapCollection;
|
||||
import com.gpl.rpg.AndorsTrail.model.quest.QuestCollection;
|
||||
import com.gpl.rpg.AndorsTrail.model.quest.QuestProgress;
|
||||
import com.gpl.rpg.AndorsTrail.resource.ResourceLoader;
|
||||
import com.gpl.rpg.AndorsTrail.resource.ResourceFileParser;
|
||||
import com.gpl.rpg.AndorsTrail.util.L;
|
||||
|
||||
public final class ConversationCollection {
|
||||
@@ -47,9 +47,9 @@ public final class ConversationCollection {
|
||||
}
|
||||
|
||||
public void initialize(ItemTypeCollection itemTypes, DropListCollection droplists, String phraselist) {
|
||||
Matcher rowMatcher = ResourceLoader.rowPattern.matcher(phraselist);
|
||||
Matcher rowMatcher = ResourceFileParser.rowPattern.matcher(phraselist);
|
||||
while(rowMatcher.find()) {
|
||||
String[] parts = rowMatcher.group(1).split(ResourceLoader.columnSeparator, -1);
|
||||
String[] parts = rowMatcher.group(1).split(ResourceFileParser.columnSeparator, -1);
|
||||
if (parts.length < 19) {
|
||||
if (AndorsTrailApplication.DEVELOPMENT_VALIDATEDATA) {
|
||||
if (parts.length > 2) {
|
||||
@@ -110,7 +110,7 @@ public final class ConversationCollection {
|
||||
, parts[startIndex+1]
|
||||
, QuestProgress.parseQuestProgress(parts[startIndex+2])
|
||||
, requiresItemTypeID
|
||||
, ResourceLoader.parseInt(parts[startIndex+4], 0)
|
||||
, ResourceFileParser.parseInt(parts[startIndex+4], 0)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,14 +1,11 @@
|
||||
package com.gpl.rpg.AndorsTrail.model.ability;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.regex.Matcher;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||
import com.gpl.rpg.AndorsTrail.VisualEffectCollection;
|
||||
import com.gpl.rpg.AndorsTrail.model.CombatTraits;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.traits.AbilityModifierTraits;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.traits.StatsModifierTraits;
|
||||
import com.gpl.rpg.AndorsTrail.resource.DynamicTileLoader;
|
||||
import com.gpl.rpg.AndorsTrail.util.ConstRange;
|
||||
import com.gpl.rpg.AndorsTrail.resource.ResourceFileParser;
|
||||
import com.gpl.rpg.AndorsTrail.util.L;
|
||||
|
||||
public class ActorConditionTypeCollection {
|
||||
@@ -24,7 +21,37 @@ public class ActorConditionTypeCollection {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void initialize(DynamicTileLoader tileLoader) {
|
||||
public void initialize(DynamicTileLoader tileLoader, String conditionList) {
|
||||
Matcher rowMatcher = ResourceFileParser.rowPattern.matcher(conditionList);
|
||||
while(rowMatcher.find()) {
|
||||
String[] parts = rowMatcher.group(1).split(ResourceFileParser.columnSeparator, -1);
|
||||
if (parts.length < 28) continue;
|
||||
|
||||
final String conditionTypeID = parts[0];
|
||||
if (AndorsTrailApplication.DEVELOPMENT_VALIDATEDATA) {
|
||||
if (conditionTypeID == null || conditionTypeID.length() <= 0) {
|
||||
L.log("OPTIMIZE: ActorConditionType \"" + parts[1] + "\" has empty searchtag.");
|
||||
}
|
||||
for (ActorConditionType t : conditionTypes) {
|
||||
if (t.conditionTypeID.equals(conditionTypeID)) {
|
||||
L.log("OPTIMIZE: ActorConditionType " + conditionTypeID + " is duplicated.");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
final ActorConditionType actorConditionType = new ActorConditionType(
|
||||
conditionTypeID
|
||||
, parts[1]
|
||||
, ResourceFileParser.parseImageID(tileLoader, parts[2])
|
||||
, ResourceFileParser.parseBoolean(parts[3], false)
|
||||
, ResourceFileParser.parseStatsModifierTraits(parts, 4)
|
||||
, ResourceFileParser.parseStatsModifierTraits(parts, 10)
|
||||
, ResourceFileParser.parseAbilityModifierTraits(parts, 16)
|
||||
);
|
||||
conditionTypes.add(actorConditionType);
|
||||
}
|
||||
/*
|
||||
CombatTraits t = new CombatTraits();
|
||||
t.attackChance = 5;
|
||||
conditionTypes.add(new ActorConditionType("bless", "Bless", tileLoader.prepareTileID("items_tiles", 13+22*14), false, null, null, new AbilityModifierTraits(0, 0, 0, t)));
|
||||
@@ -35,5 +62,6 @@ public class ActorConditionTypeCollection {
|
||||
|
||||
conditionTypes.add(new ActorConditionType("regen", "Regeneration", tileLoader.prepareTileID("items_tiles", 7+22*14), false, new StatsModifierTraits(VisualEffectCollection.EFFECT_RESTORE_HP, new ConstRange(1, 1), null), null, null));
|
||||
conditionTypes.add(new ActorConditionType("poison", "Poison", tileLoader.prepareTileID("items_tiles", 4+24*14), true, new StatsModifierTraits(VisualEffectCollection.EFFECT_POISON, new ConstRange(-1, -1), null), null, null));
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.gpl.rpg.AndorsTrail.model.ability.traits;
|
||||
import com.gpl.rpg.AndorsTrail.util.ConstRange;
|
||||
|
||||
public class StatsModifierTraits {
|
||||
private static final int VISUAL_EFFECT_NONE = -1;
|
||||
public static final int VISUAL_EFFECT_NONE = -1;
|
||||
public final int visualEffectID;
|
||||
public final ConstRange currentHPBoost;
|
||||
public final ConstRange currentAPBoost;
|
||||
|
||||
@@ -14,7 +14,7 @@ import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionEffect;
|
||||
import com.gpl.rpg.AndorsTrail.model.item.DropListCollection;
|
||||
import com.gpl.rpg.AndorsTrail.model.item.ItemTraits_OnUse;
|
||||
import com.gpl.rpg.AndorsTrail.resource.DynamicTileLoader;
|
||||
import com.gpl.rpg.AndorsTrail.resource.ResourceLoader;
|
||||
import com.gpl.rpg.AndorsTrail.resource.ResourceFileParser;
|
||||
import com.gpl.rpg.AndorsTrail.util.ConstRange;
|
||||
import com.gpl.rpg.AndorsTrail.util.L;
|
||||
import com.gpl.rpg.AndorsTrail.util.Size;
|
||||
@@ -48,9 +48,9 @@ public final class MonsterTypeCollection {
|
||||
private static final Size size1x1 = new Size(1, 1);
|
||||
public void initialize(DropListCollection droplists, DynamicTileLoader tileLoader, String monsterlist) {
|
||||
int nextId = monsterTypes.size();
|
||||
Matcher rowMatcher = ResourceLoader.rowPattern.matcher(monsterlist);
|
||||
Matcher rowMatcher = ResourceFileParser.rowPattern.matcher(monsterlist);
|
||||
while(rowMatcher.find()) {
|
||||
String[] parts = rowMatcher.group(1).split(ResourceLoader.columnSeparator, -1);
|
||||
String[] parts = rowMatcher.group(1).split(ResourceFileParser.columnSeparator, -1);
|
||||
if (parts.length < 17) continue;
|
||||
|
||||
final String monsterTypeName = parts[1];
|
||||
@@ -61,19 +61,19 @@ public final class MonsterTypeCollection {
|
||||
}
|
||||
}
|
||||
|
||||
final int maxHP = ResourceLoader.parseInt(parts[5], 1);
|
||||
final int maxAP = ResourceLoader.parseInt(parts[6], 10);
|
||||
final CombatTraits combatTraits = ResourceLoader.parseCombatTraits(parts, 8);
|
||||
final int maxHP = ResourceFileParser.parseInt(parts[5], 1);
|
||||
final int maxAP = ResourceFileParser.parseInt(parts[6], 10);
|
||||
final CombatTraits combatTraits = parseCombatTraits_OLD(parts, 8);
|
||||
final int exp = getExpectedMonsterExperience(combatTraits, maxHP, maxAP);
|
||||
monsterTypes.add(new MonsterType(
|
||||
nextId
|
||||
, monsterTypeName
|
||||
, parts[2]
|
||||
, ResourceLoader.parseImageID(tileLoader, parts[0])
|
||||
, ResourceLoader.parseSize(parts[3], size1x1) //TODO: This could be loaded from the tileset size instead.
|
||||
, ResourceFileParser.parseImageID(tileLoader, parts[0])
|
||||
, ResourceFileParser.parseSize(parts[3], size1x1) //TODO: This could be loaded from the tileset size instead.
|
||||
, maxHP // HP
|
||||
, maxAP // AP
|
||||
, ResourceLoader.parseInt(parts[7], 10) // MoveCost
|
||||
, ResourceFileParser.parseInt(parts[7], 10) // MoveCost
|
||||
, combatTraits
|
||||
, null // onHitEffects
|
||||
, exp //ResourceLoader.parseInt(parts[4], 0) // Exp
|
||||
@@ -85,12 +85,44 @@ public final class MonsterTypeCollection {
|
||||
}
|
||||
}
|
||||
|
||||
public static CombatTraits parseCombatTraits_OLD(String[] parts, int startIndex) {
|
||||
String AtkCost = parts[startIndex];
|
||||
String AtkPct = parts[startIndex + 1];
|
||||
String CritPct = parts[startIndex + 2];
|
||||
String CritMult = parts[startIndex + 3];
|
||||
String DMG = parts[startIndex + 4];
|
||||
String BlkPct = parts[startIndex + 5];
|
||||
String DMG_res = parts[startIndex + 6];
|
||||
if ( AtkCost.length() <= 0
|
||||
&& AtkPct.length() <= 0
|
||||
&& CritPct.length() <= 0
|
||||
&& CritMult.length() <= 0
|
||||
&& DMG.length() <= 0
|
||||
&& BlkPct.length() <= 0
|
||||
&& DMG_res.length() <= 0
|
||||
) {
|
||||
return null;
|
||||
} else {
|
||||
CombatTraits result = new CombatTraits();
|
||||
result.attackCost = ResourceFileParser.parseInt(AtkCost, 0);
|
||||
result.attackChance = ResourceFileParser.parseInt(AtkPct, 0);
|
||||
result.criticalChance = ResourceFileParser.parseInt(CritPct, 0);
|
||||
result.criticalMultiplier = ResourceFileParser.parseInt(CritMult, 0);
|
||||
ConstRange r = ResourceFileParser.parseRange_OLD(DMG);
|
||||
if (r != null) result.damagePotential.set(r);
|
||||
result.blockChance = ResourceFileParser.parseInt(BlkPct, 0);
|
||||
result.damageResistance = ResourceFileParser.parseInt(DMG_res, 0);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void DEBUG_initializeTestEffectMonsters(WorldContext world) {
|
||||
MonsterType t = getMonsterTypeFromName("Forest Snake");
|
||||
if (t == null) return;
|
||||
t.onHitEffects = new ItemTraits_OnUse[] {
|
||||
new ItemTraits_OnUse(null, null, null, new ActorConditionEffect[] {
|
||||
new ActorConditionEffect(world.actorConditionsTypes.getActorConditionType("poison"), 1, 3, new ConstRange(1, 1))
|
||||
new ActorConditionEffect(world.actorConditionsTypes.getActorConditionType("poison_weak"), 1, 3, new ConstRange(1, 1))
|
||||
})
|
||||
};
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import java.util.regex.Matcher;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||
import com.gpl.rpg.AndorsTrail.model.item.DropList.DropItem;
|
||||
import com.gpl.rpg.AndorsTrail.resource.ResourceLoader;
|
||||
import com.gpl.rpg.AndorsTrail.resource.ResourceFileParser;
|
||||
import com.gpl.rpg.AndorsTrail.util.ConstRange;
|
||||
import com.gpl.rpg.AndorsTrail.util.L;
|
||||
|
||||
@@ -27,42 +27,21 @@ public final class DropListCollection {
|
||||
return droplists.get(name);
|
||||
}
|
||||
|
||||
private final ConstRange one = new ConstRange(1, 1);
|
||||
private final ConstRange ten = new ConstRange(10, 10);
|
||||
private final ConstRange five = new ConstRange(5, 5);
|
||||
private ConstRange parseQuantity(String v) {
|
||||
private static final ConstRange one = new ConstRange(1, 1);
|
||||
private static final ConstRange ten = new ConstRange(10, 10);
|
||||
private static final ConstRange five = new ConstRange(5, 5);
|
||||
private static ConstRange parseQuantity_OLD(String v) {
|
||||
if (v.equals("1")) return one;
|
||||
else if (v.equals("5")) return five;
|
||||
else if (v.equals("10")) return ten;
|
||||
return ResourceLoader.parseRange(v);
|
||||
return ResourceFileParser.parseRange_OLD(v);
|
||||
}
|
||||
|
||||
private final ConstRange always = one;
|
||||
private final ConstRange often = new ConstRange(100, 70);
|
||||
private final ConstRange animalpart = new ConstRange(100, 30);
|
||||
private final ConstRange seldom = new ConstRange(100, 25);
|
||||
private final ConstRange very_seldom = new ConstRange(100, 5);
|
||||
private final ConstRange unique = new ConstRange(100, 1);
|
||||
private ConstRange parseChance(String v) {
|
||||
if (v.equals("100")) return always;
|
||||
else if (v.equals("70")) return often;
|
||||
else if (v.equals("30")) return animalpart;
|
||||
else if (v.equals("25")) return seldom;
|
||||
else if (v.equals("5")) return very_seldom;
|
||||
else if (v.equals("1")) return unique;
|
||||
else if (v.indexOf('/') >= 0) {
|
||||
int c = v.indexOf('/');
|
||||
int a = ResourceLoader.parseInt(v.substring(0, c), 1);
|
||||
int b = ResourceLoader.parseInt(v.substring(c+1), 100);
|
||||
return new ConstRange(b, a);
|
||||
}
|
||||
else return new ConstRange(100, ResourceLoader.parseInt(v, 10));
|
||||
}
|
||||
public void initialize(ItemTypeCollection itemTypes, String droplistString) {
|
||||
HashMap<String, ArrayList<DropItem> > rows = new HashMap<String, ArrayList<DropItem> >();
|
||||
Matcher rowMatcher = ResourceLoader.rowPattern.matcher(droplistString);
|
||||
Matcher rowMatcher = ResourceFileParser.rowPattern.matcher(droplistString);
|
||||
while(rowMatcher.find()) {
|
||||
String[] parts = rowMatcher.group(1).split(ResourceLoader.columnSeparator, -1);
|
||||
String[] parts = ResourceFileParser.splitColumns_OLD(rowMatcher.group(1), 4);//.split(ResourceFileParser.columnSeparator, -1);
|
||||
if (parts.length < 4) continue;
|
||||
|
||||
final String droplistID = parts[0];
|
||||
@@ -78,8 +57,8 @@ public final class DropListCollection {
|
||||
if (!rows.containsKey(droplistID)) rows.put(droplistID, new ArrayList<DropItem>());
|
||||
rows.get(droplistID).add(new DropItem(
|
||||
itemTypes.getItemTypeByTag(parts[1])
|
||||
, parseChance(parts[2])
|
||||
, parseQuantity(parts[3])
|
||||
, ResourceFileParser.parseChance(parts[2])
|
||||
, parseQuantity_OLD(parts[3])
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
package com.gpl.rpg.AndorsTrail.model.item;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.regex.Matcher;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.model.CombatTraits;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.ActorCondition;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionEffect;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionTypeCollection;
|
||||
import com.gpl.rpg.AndorsTrail.resource.DynamicTileLoader;
|
||||
import com.gpl.rpg.AndorsTrail.resource.ResourceLoader;
|
||||
import com.gpl.rpg.AndorsTrail.resource.ResourceFileParser;
|
||||
import com.gpl.rpg.AndorsTrail.resource.ResourceFileParser.ResourceObjectFieldParser;
|
||||
import com.gpl.rpg.AndorsTrail.resource.ResourceFileParser.ResourceObjectTokenizer;
|
||||
import com.gpl.rpg.AndorsTrail.util.ConstRange;
|
||||
import com.gpl.rpg.AndorsTrail.util.L;
|
||||
|
||||
@@ -32,76 +33,68 @@ public final class ItemTypeCollection {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void initialize(DynamicTileLoader tileLoader, String itemlist) {
|
||||
int nextId = itemTypes.size();
|
||||
Matcher rowMatcher = ResourceLoader.rowPattern.matcher(itemlist);
|
||||
while(rowMatcher.find()) {
|
||||
String[] parts = rowMatcher.group(1).split(ResourceLoader.columnSeparator, -1);
|
||||
if (parts.length < 13) continue;
|
||||
|
||||
final String itemTypeName = parts[2];
|
||||
String searchTag = parts[0];
|
||||
if (searchTag == null || searchTag.length() <= 0) {
|
||||
if (AndorsTrailApplication.DEVELOPMENT_VALIDATEDATA) {
|
||||
L.log("OPTIMIZE: ItemType \"" + itemTypeName + "\" has empty searchtag.");
|
||||
|
||||
private static ResourceObjectTokenizer tokenize37Fields = new ResourceObjectTokenizer(37);
|
||||
public void initialize(final DynamicTileLoader tileLoader, final ActorConditionTypeCollection actorConditionTypes, String itemlist) {
|
||||
tokenize37Fields.tokenizeRows(itemlist, new ResourceObjectFieldParser() {
|
||||
@Override
|
||||
public void matchedRow(String[] parts) {
|
||||
final String itemTypeName = parts[2];
|
||||
String searchTag = parts[0];
|
||||
if (searchTag == null || searchTag.length() <= 0) {
|
||||
if (AndorsTrailApplication.DEVELOPMENT_VALIDATEDATA) {
|
||||
L.log("OPTIMIZE: ItemType \"" + itemTypeName + "\" has empty searchtag.");
|
||||
}
|
||||
searchTag = itemTypeName;
|
||||
}
|
||||
searchTag = itemTypeName;
|
||||
|
||||
ItemTraits_OnEquip equipEffect = ResourceFileParser.parseItemTraits_OnEquip(actorConditionTypes, parts, 5);
|
||||
ItemTraits_OnUse useEffect = ResourceFileParser.parseItemTraits_OnUse(actorConditionTypes, parts, 18, false);
|
||||
ItemTraits_OnUse hitEffect = ResourceFileParser.parseItemTraits_OnUse(actorConditionTypes, parts, 24, true);
|
||||
ItemTraits_OnUse killEffect = ResourceFileParser.parseItemTraits_OnUse(actorConditionTypes, parts, 31, false);
|
||||
|
||||
int nextId = itemTypes.size();
|
||||
final ItemType itemType = new ItemType(
|
||||
nextId
|
||||
, ResourceFileParser.parseImageID(tileLoader, parts[1])
|
||||
, itemTypeName
|
||||
, searchTag
|
||||
, Integer.parseInt(parts[3])
|
||||
, Integer.parseInt(parts[4])
|
||||
, equipEffect
|
||||
, useEffect
|
||||
, hitEffect
|
||||
, killEffect
|
||||
);
|
||||
if (AndorsTrailApplication.DEVELOPMENT_VALIDATEDATA) {
|
||||
if (itemType.isEquippable()) {
|
||||
if (itemType.effects_equip == null && itemType.effects_hit == null && itemType.effects_kill == null ) {
|
||||
L.log("OPTIMIZE: Item " + searchTag + " is equippable, but has no equip effect.");
|
||||
}
|
||||
} else {
|
||||
if (itemType.effects_equip != null || itemType.effects_hit != null || itemType.effects_kill != null ) {
|
||||
L.log("OPTIMIZE: Item " + searchTag + " is not equippable, but has equip, hit or kill effect.");
|
||||
}
|
||||
}
|
||||
if (itemType.isUsable()) {
|
||||
if (itemType.effects_use == null) {
|
||||
L.log("OPTIMIZE: Item " + searchTag + " is usable, but has no use effect.");
|
||||
}
|
||||
} else {
|
||||
if (itemType.effects_use != null) {
|
||||
L.log("OPTIMIZE: Item " + searchTag + " is not usable, but has use effect.");
|
||||
}
|
||||
}
|
||||
}
|
||||
itemTypes.add(itemType);
|
||||
|
||||
if (AndorsTrailApplication.DEVELOPMENT_VALIDATEDATA) {
|
||||
if (getItemTypeByTag(searchTag).id != nextId) {
|
||||
L.log("OPTIMIZE: Item " + searchTag + " may be duplicated.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
final ConstRange hpEffect = ResourceLoader.parseRange(parts[5]);
|
||||
ItemTraits_OnUse useTraits = null;
|
||||
if (hpEffect != null) {
|
||||
useTraits = new ItemTraits_OnUse(hpEffect, null, null, null);
|
||||
}
|
||||
|
||||
final CombatTraits combatTraits = ResourceLoader.parseCombatTraits(parts, 6);
|
||||
ItemTraits_OnEquip equipTraits = null;
|
||||
if (combatTraits != null) {
|
||||
equipTraits = new ItemTraits_OnEquip(0, 0, 0, combatTraits, null);
|
||||
}
|
||||
|
||||
final ItemType itemType = new ItemType(
|
||||
nextId
|
||||
, ResourceLoader.parseImageID(tileLoader, parts[1])
|
||||
, itemTypeName
|
||||
, searchTag
|
||||
, Integer.parseInt(parts[3])
|
||||
, Integer.parseInt(parts[4])
|
||||
, equipTraits
|
||||
, useTraits
|
||||
, null
|
||||
, null
|
||||
);
|
||||
if (AndorsTrailApplication.DEVELOPMENT_VALIDATEDATA) {
|
||||
if (itemType.isEquippable()) {
|
||||
if (itemType.effects_equip == null && itemType.effects_hit == null && itemType.effects_kill == null ) {
|
||||
L.log("OPTIMIZE: Item " + searchTag + " is equippable, but has no equip effect.");
|
||||
}
|
||||
} else {
|
||||
if (itemType.effects_equip != null || itemType.effects_hit != null || itemType.effects_kill != null ) {
|
||||
L.log("OPTIMIZE: Item " + searchTag + " is not equippable, but has equip, hit or kill effect.");
|
||||
}
|
||||
}
|
||||
if (itemType.isUsable()) {
|
||||
if (itemType.effects_use == null) {
|
||||
L.log("OPTIMIZE: Item " + searchTag + " is usable, but has no use effect.");
|
||||
}
|
||||
} else {
|
||||
if (itemType.effects_use != null) {
|
||||
L.log("OPTIMIZE: Item " + searchTag + " is not usable, but has use effect.");
|
||||
}
|
||||
}
|
||||
}
|
||||
itemTypes.add(itemType);
|
||||
|
||||
if (AndorsTrailApplication.DEVELOPMENT_VALIDATEDATA) {
|
||||
if (getItemTypeByTag(searchTag).id != nextId) {
|
||||
L.log("OPTIMIZE: Item " + searchTag + " may be duplicated.");
|
||||
}
|
||||
}
|
||||
|
||||
++nextId;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void initialize_DEBUGITEMS(WorldContext world) {
|
||||
@@ -242,7 +235,7 @@ public final class ItemTypeCollection {
|
||||
++nextId;
|
||||
|
||||
effects = new ActorConditionEffect[] {
|
||||
new ActorConditionEffect(world.actorConditionsTypes.getActorConditionType("poison"), 1, 3, new ConstRange(3, 2))
|
||||
new ActorConditionEffect(world.actorConditionsTypes.getActorConditionType("poison_weak"), 1, 3, new ConstRange(3, 2))
|
||||
};
|
||||
itemType = new ItemType(
|
||||
nextId
|
||||
@@ -262,7 +255,7 @@ public final class ItemTypeCollection {
|
||||
ItemType health_minor = getItemTypeByTag("health_minor");
|
||||
|
||||
effects = new ActorConditionEffect[] {
|
||||
new ActorConditionEffect(world.actorConditionsTypes.getActorConditionType("poison"), 1, 4, new ConstRange(1,1))
|
||||
new ActorConditionEffect(world.actorConditionsTypes.getActorConditionType("poison_weak"), 1, 4, new ConstRange(1,1))
|
||||
};
|
||||
itemType = new ItemType(
|
||||
nextId
|
||||
@@ -280,7 +273,7 @@ public final class ItemTypeCollection {
|
||||
++nextId;
|
||||
|
||||
effects = new ActorConditionEffect[] {
|
||||
new ActorConditionEffect(world.actorConditionsTypes.getActorConditionType("poison"), ActorCondition.MAGNITUDE_REMOVE_ALL, 0, new ConstRange(1,1))
|
||||
new ActorConditionEffect(world.actorConditionsTypes.getActorConditionType("poison_weak"), ActorCondition.MAGNITUDE_REMOVE_ALL, 0, new ConstRange(1,1))
|
||||
};
|
||||
itemType = new ItemType(
|
||||
nextId
|
||||
|
||||
@@ -7,16 +7,16 @@ import java.util.HashMap;
|
||||
import java.util.regex.Matcher;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||
import com.gpl.rpg.AndorsTrail.resource.ResourceLoader;
|
||||
import com.gpl.rpg.AndorsTrail.resource.ResourceFileParser;
|
||||
import com.gpl.rpg.AndorsTrail.util.L;
|
||||
|
||||
public final class QuestLoader {
|
||||
|
||||
private HashMap<String, ArrayList<QuestLogEntry> > parsedQuestLogEntries = new HashMap<String, ArrayList<QuestLogEntry> >();
|
||||
public void parseQuestLogsFromString(String questLogEntrylist) {
|
||||
Matcher rowMatcher = ResourceLoader.rowPattern.matcher(questLogEntrylist);
|
||||
Matcher rowMatcher = ResourceFileParser.rowPattern.matcher(questLogEntrylist);
|
||||
while(rowMatcher.find()) {
|
||||
String[] parts = rowMatcher.group(1).split(ResourceLoader.columnSeparator, -1);
|
||||
String[] parts = rowMatcher.group(1).split(ResourceFileParser.columnSeparator, -1);
|
||||
if (parts.length < 4) continue;
|
||||
|
||||
final String questID = parts[0];
|
||||
@@ -29,19 +29,19 @@ public final class QuestLoader {
|
||||
|
||||
if (!parsedQuestLogEntries.containsKey(questID)) parsedQuestLogEntries.put(questID, new ArrayList<QuestLogEntry>());
|
||||
parsedQuestLogEntries.get(questID).add(new QuestLogEntry(
|
||||
ResourceLoader.parseInt(parts[1], 0)
|
||||
ResourceFileParser.parseInt(parts[1], 0)
|
||||
, parts[2]
|
||||
, ResourceLoader.parseInt(parts[3], 0)
|
||||
, ResourceLoader.parseInt(parts[4], 0)>0
|
||||
, ResourceFileParser.parseInt(parts[3], 0)
|
||||
, ResourceFileParser.parseInt(parts[4], 0)>0
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
private ArrayList<Quest> parsedQuests = new ArrayList<Quest>();
|
||||
public void parseQuestsFromString(String questlist) {
|
||||
Matcher rowMatcher = ResourceLoader.rowPattern.matcher(questlist);
|
||||
Matcher rowMatcher = ResourceFileParser.rowPattern.matcher(questlist);
|
||||
while(rowMatcher.find()) {
|
||||
String[] parts = rowMatcher.group(1).split(ResourceLoader.columnSeparator, -1);
|
||||
String[] parts = rowMatcher.group(1).split(ResourceFileParser.columnSeparator, -1);
|
||||
if (parts.length < 4) continue;
|
||||
|
||||
final String questID = parts[0];
|
||||
@@ -79,7 +79,7 @@ public final class QuestLoader {
|
||||
questID
|
||||
, parts[1]
|
||||
, _stages
|
||||
, ResourceLoader.parseInt(parts[3], 0)>0
|
||||
, ResourceFileParser.parseInt(parts[3], 0)>0
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.gpl.rpg.AndorsTrail.model.quest;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||
import com.gpl.rpg.AndorsTrail.resource.ResourceLoader;
|
||||
import com.gpl.rpg.AndorsTrail.resource.ResourceFileParser;
|
||||
import com.gpl.rpg.AndorsTrail.util.L;
|
||||
|
||||
public final class QuestProgress {
|
||||
@@ -17,7 +17,7 @@ public final class QuestProgress {
|
||||
String[] parts = v.split(":");
|
||||
int requiresQuestProgress = 0;
|
||||
if (parts.length >= 2) {
|
||||
requiresQuestProgress = ResourceLoader.parseInt(parts[1], 0);
|
||||
requiresQuestProgress = ResourceFileParser.parseInt(parts[1], 0);
|
||||
} else if (AndorsTrailApplication.DEVELOPMENT_VALIDATEDATA) {
|
||||
L.log("WARNING: Quest progress \"" + v + "\" does not specify any progress stage.");
|
||||
}
|
||||
|
||||
@@ -0,0 +1,347 @@
|
||||
package com.gpl.rpg.AndorsTrail.resource;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||
import com.gpl.rpg.AndorsTrail.model.CombatTraits;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.ActorCondition;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionEffect;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionTypeCollection;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.traits.AbilityModifierTraits;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.traits.StatsModifierTraits;
|
||||
import com.gpl.rpg.AndorsTrail.model.item.ItemTraits_OnEquip;
|
||||
import com.gpl.rpg.AndorsTrail.model.item.ItemTraits_OnUse;
|
||||
import com.gpl.rpg.AndorsTrail.util.ConstRange;
|
||||
import com.gpl.rpg.AndorsTrail.util.L;
|
||||
import com.gpl.rpg.AndorsTrail.util.Size;
|
||||
|
||||
public class ResourceFileParser {
|
||||
public static final Pattern rowPattern = Pattern.compile("\\{(.+?)\\};", Pattern.MULTILINE | Pattern.DOTALL);
|
||||
public static final String columnSeparator = "\\|";
|
||||
public static String repeat(String s, int count) {
|
||||
String result = s;
|
||||
for(int i = 1; i < count; ++i) result += s;
|
||||
return result;
|
||||
}
|
||||
|
||||
public static int parseImageID(DynamicTileLoader tileLoader, String s) {
|
||||
String[] parts = s.split(":");
|
||||
return tileLoader.prepareTileID(parts[0], Integer.parseInt(parts[1]));
|
||||
}
|
||||
public static ConstRange parseRange(String min, String max) {
|
||||
if ( (max == null || max.length() <= 0)
|
||||
&& (min == null || min.length() <= 0) ) {
|
||||
return null;
|
||||
}
|
||||
if (max == null || max.length() <= 0) {
|
||||
if (AndorsTrailApplication.DEVELOPMENT_VALIDATEDATA) {
|
||||
L.log("OPTIMIZE: Unable to parse range with min=" + min + " because max was empty.");
|
||||
}
|
||||
return null;
|
||||
}
|
||||
if (min == null || min.length() <= 0) {
|
||||
if (AndorsTrailApplication.DEVELOPMENT_VALIDATEDATA) {
|
||||
L.log("OPTIMIZE: Unable to parse range with max=" + max + " because min was empty.");
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
return new ConstRange(Integer.parseInt(max), Integer.parseInt(min));
|
||||
}
|
||||
public static Size parseSize(String s, final Size defaultSize) {
|
||||
if (s == null || s.length() <= 0) return defaultSize;
|
||||
String[] parts = s.split("x");
|
||||
if (parts.length < 2) return defaultSize;
|
||||
return new Size(Integer.parseInt(parts[0]), Integer.parseInt(parts[1]));
|
||||
}
|
||||
public static CombatTraits parseCombatTraits(String[] parts, int startIndex) {
|
||||
String attackCost = parts[startIndex];
|
||||
String attackChance = parts[startIndex + 1];
|
||||
String criticalChance = parts[startIndex + 2];
|
||||
String criticalMultiplier = parts[startIndex + 3];
|
||||
ConstRange attackDamage = parseRange(parts[startIndex + 4], parts[startIndex + 5]);
|
||||
String blockChance = parts[startIndex + 6];
|
||||
String damageResistance = parts[startIndex + 7];
|
||||
if ( attackCost.length() <= 0
|
||||
&& attackChance.length() <= 0
|
||||
&& criticalChance.length() <= 0
|
||||
&& criticalMultiplier.length() <= 0
|
||||
&& attackDamage == null
|
||||
&& blockChance.length() <= 0
|
||||
&& damageResistance.length() <= 0
|
||||
) {
|
||||
return null;
|
||||
} else {
|
||||
CombatTraits result = new CombatTraits();
|
||||
result.attackCost = parseInt(attackCost, 0);
|
||||
result.attackChance = parseInt(attackChance, 0);
|
||||
result.criticalChance = parseInt(criticalChance, 0);
|
||||
result.criticalMultiplier = parseInt(criticalMultiplier, 0);
|
||||
if (attackDamage != null) result.damagePotential.set(attackDamage);
|
||||
result.blockChance = parseInt(blockChance, 0);
|
||||
result.damageResistance = parseInt(damageResistance, 0);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
public static int parseInt(String s, int defaultValue) {
|
||||
if (s == null || s.length() <= 0) return defaultValue;
|
||||
return Integer.parseInt(s);
|
||||
}
|
||||
public static boolean parseBoolean(String s, boolean defaultValue) {
|
||||
if (s == null || s.length() <= 0) return defaultValue;
|
||||
return !s.equals("0") && !s.equals("false");
|
||||
}
|
||||
public static StatsModifierTraits parseStatsModifierTraits(String[] parts, int startIndex) {
|
||||
boolean hasEffect = parseBoolean(parts[startIndex], false);
|
||||
if (!hasEffect) return null;
|
||||
|
||||
String visualEffectID = parts[startIndex + 1];
|
||||
ConstRange boostCurrentHP = parseRange(parts[startIndex + 2], parts[startIndex + 3]);
|
||||
ConstRange boostCurrentAP = parseRange(parts[startIndex + 4], parts[startIndex + 5]);
|
||||
if ( boostCurrentHP == null
|
||||
&& boostCurrentAP == null
|
||||
) {
|
||||
if (AndorsTrailApplication.DEVELOPMENT_VALIDATEDATA) {
|
||||
L.log("OPTIMIZE: Tried to parseStatsModifierTraits , where hasEffect=" + parts[startIndex] + ", but all data was empty.");
|
||||
}
|
||||
return null;
|
||||
} else {
|
||||
return new StatsModifierTraits(
|
||||
parseInt(visualEffectID, StatsModifierTraits.VISUAL_EFFECT_NONE)
|
||||
,boostCurrentHP
|
||||
,boostCurrentAP
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
public static AbilityModifierTraits parseAbilityModifierTraits(String[] parts, int startIndex) {
|
||||
boolean hasEffect = parseBoolean(parts[startIndex], false);
|
||||
if (!hasEffect) return null;
|
||||
|
||||
String boostMaxHP = parts[startIndex + 1];
|
||||
String boostMaxAP = parts[startIndex + 2];
|
||||
String moveCostPenalty = parts[startIndex + 3];
|
||||
CombatTraits combatTraits = parseCombatTraits(parts, startIndex + 4);
|
||||
|
||||
if ( boostMaxHP.length() <= 0
|
||||
&& boostMaxAP.length() <= 0
|
||||
&& moveCostPenalty.length() <= 0
|
||||
&& combatTraits == null
|
||||
) {
|
||||
if (AndorsTrailApplication.DEVELOPMENT_VALIDATEDATA) {
|
||||
L.log("OPTIMIZE: Tried to parseAbilityModifierTraits , where hasEffect=" + parts[startIndex] + ", but all data was empty.");
|
||||
}
|
||||
return null;
|
||||
} else {
|
||||
return new AbilityModifierTraits(
|
||||
parseInt(boostMaxHP, 0)
|
||||
,parseInt(boostMaxAP, 0)
|
||||
,parseInt(moveCostPenalty, 0)
|
||||
,combatTraits
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static ConstRange parseRange_OLD(String s) {
|
||||
if (s == null || s.length() <= 0) return null;
|
||||
String[] parts = s.split("-");
|
||||
if (parts.length < 2 || s.startsWith("-")) {
|
||||
int val = Integer.parseInt(s);
|
||||
return new ConstRange(val, val);
|
||||
} else {
|
||||
return new ConstRange(Integer.parseInt(parts[1]), Integer.parseInt(parts[0]));
|
||||
}
|
||||
}
|
||||
|
||||
private static final ConstRange zero_or_one = new ConstRange(1, 0);
|
||||
private static final ConstRange one = new ConstRange(1, 1);
|
||||
private static final ConstRange five = new ConstRange(5, 5);
|
||||
private static final ConstRange ten = new ConstRange(10, 10);
|
||||
public static ConstRange parseQuantity(String min, String max) {
|
||||
if (min.equals("0") && max.equals("1")) return zero_or_one;
|
||||
else if (min.equals("1") && max.equals("1")) return one;
|
||||
else if (min.equals("5") && max.equals("5")) return five;
|
||||
else if (min.equals("10") && max.equals("10")) return ten;
|
||||
return parseRange(min, max);
|
||||
}
|
||||
|
||||
private static final ConstRange always = one;
|
||||
private static final ConstRange often = new ConstRange(100, 70);
|
||||
private static final ConstRange animalpart = new ConstRange(100, 30);
|
||||
private static final ConstRange seldom = new ConstRange(100, 25);
|
||||
private static final ConstRange very_seldom = new ConstRange(100, 5);
|
||||
private static final ConstRange unique = new ConstRange(100, 1);
|
||||
public static ConstRange parseChance(String v) {
|
||||
if (v.equals("100")) return always;
|
||||
else if (v.equals("70")) return often;
|
||||
else if (v.equals("30")) return animalpart;
|
||||
else if (v.equals("25")) return seldom;
|
||||
else if (v.equals("5")) return very_seldom;
|
||||
else if (v.equals("1")) return unique;
|
||||
else if (v.indexOf('/') >= 0) {
|
||||
int c = v.indexOf('/');
|
||||
int a = parseInt(v.substring(0, c), 1);
|
||||
int b = parseInt(v.substring(c+1), 100);
|
||||
return new ConstRange(b, a);
|
||||
}
|
||||
else return new ConstRange(100, parseInt(v, 10));
|
||||
}
|
||||
|
||||
private static ActorConditionEffect parseActorConditionEffect(ActorConditionTypeCollection actorConditionTypes, String[] parts, boolean includeDuration) {
|
||||
if (includeDuration) {
|
||||
return new ActorConditionEffect(
|
||||
actorConditionTypes.getActorConditionType(parts[0])
|
||||
, parseInt(parts[1], ActorCondition.MAGNITUDE_REMOVE_ALL)
|
||||
, parseInt(parts[2], ActorCondition.DURATION_FOREVER)
|
||||
, parseChance(parts[3])
|
||||
);
|
||||
} else {
|
||||
return new ActorConditionEffect(
|
||||
actorConditionTypes.getActorConditionType(parts[0])
|
||||
, parseInt(parts[1], 1)
|
||||
, ActorCondition.DURATION_FOREVER
|
||||
, always
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
private static class ActorConditionTypeArrayAppender implements ResourceObjectFieldParser {
|
||||
private final ActorConditionTypeCollection actorConditionTypes;
|
||||
private final ArrayList<ActorConditionEffect> dest;
|
||||
private final boolean includeDuration;
|
||||
public ActorConditionTypeArrayAppender(ActorConditionTypeCollection actorConditionTypes, ArrayList<ActorConditionEffect> dest, boolean includeDuration) {
|
||||
this.actorConditionTypes = actorConditionTypes;
|
||||
this.dest = dest;
|
||||
this.includeDuration = includeDuration;
|
||||
}
|
||||
@Override
|
||||
public void matchedRow(String[] parts) {
|
||||
ActorConditionEffect a = parseActorConditionEffect(actorConditionTypes, parts, includeDuration);
|
||||
if (a != null) dest.add(a);
|
||||
}
|
||||
}
|
||||
private static final ResourceObjectTokenizer tokenize4Fields = new ResourceObjectTokenizer(4);
|
||||
public static ItemTraits_OnUse parseItemTraits_OnUse(final ActorConditionTypeCollection actorConditionTypes, String[] parts, int startIndex, boolean parseTargetConditions) {
|
||||
boolean hasEffect = parseBoolean(parts[startIndex], false);
|
||||
if (!hasEffect) return null;
|
||||
|
||||
ConstRange boostCurrentHP = parseRange(parts[startIndex + 1], parts[startIndex + 2]);
|
||||
ConstRange boostCurrentAP = parseRange(parts[startIndex + 3], parts[startIndex + 4]);
|
||||
final ArrayList<ActorConditionEffect> addedConditions_source = new ArrayList<ActorConditionEffect>();
|
||||
final ArrayList<ActorConditionEffect> addedConditions_target = new ArrayList<ActorConditionEffect>();
|
||||
ResourceObjectArrayTokenizer.tokenize(parts[startIndex + 5], tokenize4Fields, new ActorConditionTypeArrayAppender(actorConditionTypes, addedConditions_source, true));
|
||||
if (parseTargetConditions) {
|
||||
ResourceObjectArrayTokenizer.tokenize(parts[startIndex + 6], tokenize4Fields, new ActorConditionTypeArrayAppender(actorConditionTypes, addedConditions_target, true));
|
||||
}
|
||||
if ( boostCurrentHP == null
|
||||
&& boostCurrentAP == null
|
||||
&& addedConditions_source.isEmpty()
|
||||
&& addedConditions_target.isEmpty()
|
||||
) {
|
||||
if (AndorsTrailApplication.DEVELOPMENT_VALIDATEDATA) {
|
||||
L.log("OPTIMIZE: Tried to parseItemTraits_OnUse , where hasEffect=" + parts[startIndex] + ", but all data was empty.");
|
||||
}
|
||||
return null;
|
||||
} else {
|
||||
return new ItemTraits_OnUse(
|
||||
boostCurrentHP
|
||||
,boostCurrentAP
|
||||
,listToArray(addedConditions_source)
|
||||
,listToArray(addedConditions_target)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
private static final ResourceObjectTokenizer tokenize2Fields = new ResourceObjectTokenizer(2);
|
||||
public static ItemTraits_OnEquip parseItemTraits_OnEquip(final ActorConditionTypeCollection actorConditionTypes, String[] parts, int startIndex) {
|
||||
boolean hasEffect = parseBoolean(parts[startIndex], false);
|
||||
if (!hasEffect) return null;
|
||||
|
||||
String boostMaxHP = parts[startIndex + 1];
|
||||
String boostMaxAP = parts[startIndex + 2];
|
||||
String moveCostPenalty = parts[startIndex + 3];
|
||||
CombatTraits combatTraits = parseCombatTraits(parts, startIndex + 4);
|
||||
final ArrayList<ActorConditionEffect> addedConditions = new ArrayList<ActorConditionEffect>();
|
||||
ResourceObjectArrayTokenizer.tokenize(parts[startIndex + 12], tokenize2Fields, new ActorConditionTypeArrayAppender(actorConditionTypes, addedConditions, false));
|
||||
|
||||
if ( boostMaxHP.isEmpty()
|
||||
&& boostMaxAP.isEmpty()
|
||||
&& moveCostPenalty.isEmpty()
|
||||
&& combatTraits == null
|
||||
&& addedConditions.isEmpty()
|
||||
) {
|
||||
if (AndorsTrailApplication.DEVELOPMENT_VALIDATEDATA) {
|
||||
L.log("OPTIMIZE: Tried to parseItemTraits_OnEquip , where hasEffect=" + parts[startIndex] + ", but all data was empty.");
|
||||
}
|
||||
return null;
|
||||
} else {
|
||||
return new ItemTraits_OnEquip(
|
||||
parseInt(boostMaxHP, 0)
|
||||
,parseInt(boostMaxAP, 0)
|
||||
,parseInt(moveCostPenalty, 0)
|
||||
,combatTraits
|
||||
,listToArray(addedConditions)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
private static ActorConditionEffect[] listToArray(ArrayList<ActorConditionEffect> list) {
|
||||
if (list.isEmpty()) return null;
|
||||
return list.toArray(new ActorConditionEffect[list.size()]);
|
||||
}
|
||||
|
||||
public static String[] splitColumns_OLD(String input, int numItems) {
|
||||
String[] parts = input.split(columnSeparator, -1);
|
||||
return parts;
|
||||
}
|
||||
|
||||
public static class ResourceObjectTokenizer {
|
||||
private static final String fieldPattern = "([^\\|]*?|\\{\\{.*?\\}\\})" + columnSeparator;
|
||||
|
||||
private final int columns;
|
||||
private final Pattern pattern;
|
||||
private final String[] parts;
|
||||
public ResourceObjectTokenizer(int columns) {
|
||||
this.columns = columns;
|
||||
this.pattern = Pattern.compile("^" + repeat(fieldPattern, columns) + "$", Pattern.MULTILINE | Pattern.DOTALL);
|
||||
this.parts = new String[columns];
|
||||
}
|
||||
public void tokenizeRows(String input, ResourceObjectFieldParser parser) {
|
||||
Matcher rowMatcher = rowPattern.matcher(input);
|
||||
while (rowMatcher.find()) {
|
||||
tokenizeRow(rowMatcher.group(1), parser);
|
||||
}
|
||||
}
|
||||
public void tokenizeRow(String input, ResourceObjectFieldParser parser) {
|
||||
Matcher groups = pattern.matcher(input);
|
||||
if (!groups.find()) return;
|
||||
if (groups.groupCount() < columns) return;
|
||||
for(int i = 0; i < columns; ++i) {
|
||||
parts[i] = groups.group(i + 1);
|
||||
}
|
||||
parser.matchedRow(parts);
|
||||
}
|
||||
}
|
||||
|
||||
public static class ResourceObjectArrayTokenizer {
|
||||
private static final Pattern outerPattern = Pattern.compile("^\\{(.*)\\}$", Pattern.MULTILINE | Pattern.DOTALL);
|
||||
private static final Pattern innerPattern = Pattern.compile("\\{(.*?)\\}", Pattern.MULTILINE | Pattern.DOTALL);
|
||||
|
||||
public static void tokenize(String input, ResourceObjectTokenizer objectTokenizer, ResourceObjectFieldParser parser) {
|
||||
Matcher matcher = outerPattern.matcher(input);
|
||||
if (!matcher.find()) return;
|
||||
|
||||
matcher = innerPattern.matcher(matcher.group(1));
|
||||
while (matcher.find()) {
|
||||
objectTokenizer.tokenizeRow(matcher.group(1), parser);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public interface ResourceObjectFieldParser {
|
||||
void matchedRow(String[] parts);
|
||||
}
|
||||
}
|
||||
@@ -1,15 +1,11 @@
|
||||
package com.gpl.rpg.AndorsTrail.resource;
|
||||
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||
import com.gpl.rpg.AndorsTrail.R;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.model.CombatTraits;
|
||||
import com.gpl.rpg.AndorsTrail.model.item.ItemTypeCollection;
|
||||
import com.gpl.rpg.AndorsTrail.model.map.TMXMapReader;
|
||||
import com.gpl.rpg.AndorsTrail.model.quest.QuestLoader;
|
||||
import com.gpl.rpg.AndorsTrail.util.ConstRange;
|
||||
import com.gpl.rpg.AndorsTrail.util.Size;
|
||||
|
||||
import android.content.res.Resources;
|
||||
@@ -49,29 +45,29 @@ public final class ResourceLoader {
|
||||
// ========================================================================
|
||||
// Load condition types
|
||||
loader.prepareTileset(R.drawable.items_tiles, "items_tiles", new Size(14, 30), defaultTileSize);
|
||||
world.actorConditionsTypes.initialize(loader);
|
||||
world.actorConditionsTypes.initialize(loader, r.getString(R.string.actorconditions_v069));
|
||||
loader.flush();
|
||||
|
||||
|
||||
// ========================================================================
|
||||
// Load item icons
|
||||
loader.prepareTileset(R.drawable.items_tiles, "items_tiles", new Size(14, 30), defaultTileSize);
|
||||
world.itemTypes.initialize(loader, r.getString(R.string.itemlist_money));
|
||||
world.itemTypes.initialize(loader, world.actorConditionsTypes, r.getString(R.string.itemlist_money));
|
||||
assert(world.itemTypes.getItemTypeByTag("gold") != null);
|
||||
assert(world.itemTypes.getItemTypeByTag("gold").id == ItemTypeCollection.ITEMTYPE_GOLD);
|
||||
world.itemTypes.initialize(loader, r.getString(R.string.itemlist_weapons));
|
||||
world.itemTypes.initialize(loader, r.getString(R.string.itemlist_armour));
|
||||
world.itemTypes.initialize(loader, world.actorConditionsTypes, r.getString(R.string.itemlist_weapons));
|
||||
world.itemTypes.initialize(loader, world.actorConditionsTypes, r.getString(R.string.itemlist_armour));
|
||||
if (AndorsTrailApplication.DEVELOPMENT_DEBUGRESOURCES) {
|
||||
world.itemTypes.initialize(loader, r.getString(R.string.itemlist_debug));
|
||||
world.itemTypes.initialize(loader, world.actorConditionsTypes, r.getString(R.string.itemlist_debug));
|
||||
} else {
|
||||
world.itemTypes.initialize(loader, r.getString(R.string.itemlist_rings));
|
||||
world.itemTypes.initialize(loader, r.getString(R.string.itemlist_necklaces));
|
||||
world.itemTypes.initialize(loader, r.getString(R.string.itemlist_junk));
|
||||
world.itemTypes.initialize(loader, r.getString(R.string.itemlist_food));
|
||||
world.itemTypes.initialize(loader, r.getString(R.string.itemlist_potions));
|
||||
world.itemTypes.initialize(loader, r.getString(R.string.itemlist_animal));
|
||||
world.itemTypes.initialize(loader, r.getString(R.string.itemlist_quest));
|
||||
world.itemTypes.initialize(loader, r.getString(R.string.itemlist_v068));
|
||||
world.itemTypes.initialize(loader, world.actorConditionsTypes, r.getString(R.string.itemlist_rings));
|
||||
world.itemTypes.initialize(loader, world.actorConditionsTypes, r.getString(R.string.itemlist_necklaces));
|
||||
world.itemTypes.initialize(loader, world.actorConditionsTypes, r.getString(R.string.itemlist_junk));
|
||||
world.itemTypes.initialize(loader, world.actorConditionsTypes, r.getString(R.string.itemlist_food));
|
||||
world.itemTypes.initialize(loader, world.actorConditionsTypes, r.getString(R.string.itemlist_potions));
|
||||
world.itemTypes.initialize(loader, world.actorConditionsTypes, r.getString(R.string.itemlist_animal));
|
||||
world.itemTypes.initialize(loader, world.actorConditionsTypes, r.getString(R.string.itemlist_quest));
|
||||
world.itemTypes.initialize(loader, world.actorConditionsTypes, r.getString(R.string.itemlist_v068));
|
||||
}
|
||||
loader.flush();
|
||||
world.itemTypes.initialize_DEBUGITEMS(world);
|
||||
@@ -460,62 +456,4 @@ public final class ResourceLoader {
|
||||
world.verifyData();
|
||||
}
|
||||
}
|
||||
|
||||
public static final Pattern rowPattern = Pattern.compile("\\{(.+?)\\};", Pattern.MULTILINE | Pattern.DOTALL);
|
||||
public static final String columnSeparator = "\\|";
|
||||
public static int parseImageID(DynamicTileLoader tileLoader, String s) {
|
||||
String[] parts = s.split(":");
|
||||
return tileLoader.prepareTileID(parts[0], Integer.parseInt(parts[1]));
|
||||
}
|
||||
public static ConstRange parseRange(String s) {
|
||||
if (s == null || s.length() <= 0) return null;
|
||||
String[] parts = s.split("-");
|
||||
if (parts.length < 2 || s.startsWith("-")) {
|
||||
int val = Integer.parseInt(s);
|
||||
return new ConstRange(val, val);
|
||||
} else {
|
||||
return new ConstRange(Integer.parseInt(parts[1]), Integer.parseInt(parts[0]));
|
||||
}
|
||||
}
|
||||
public static Size parseSize(String s, final Size defaultSize) {
|
||||
if (s == null || s.length() <= 0) return defaultSize;
|
||||
String[] parts = s.split("x");
|
||||
if (parts.length < 2) return defaultSize;
|
||||
return new Size(Integer.parseInt(parts[0]), Integer.parseInt(parts[1]));
|
||||
}
|
||||
public static CombatTraits parseCombatTraits(String[] parts, int startIndex) {
|
||||
String AtkCost = parts[startIndex];
|
||||
String AtkPct = parts[startIndex + 1];
|
||||
String CritPct = parts[startIndex + 2];
|
||||
String CritMult = parts[startIndex + 3];
|
||||
String DMG = parts[startIndex + 4];
|
||||
String BlkPct = parts[startIndex + 5];
|
||||
String DMG_res = parts[startIndex + 6];
|
||||
if ( AtkCost.length() <= 0
|
||||
&& AtkPct.length() <= 0
|
||||
&& CritPct.length() <= 0
|
||||
&& CritMult.length() <= 0
|
||||
&& DMG.length() <= 0
|
||||
&& BlkPct.length() <= 0
|
||||
&& DMG_res.length() <= 0
|
||||
) {
|
||||
return null;
|
||||
} else {
|
||||
CombatTraits result = new CombatTraits();
|
||||
result.attackCost = parseInt(AtkCost, 0);
|
||||
result.attackChance = parseInt(AtkPct, 0);
|
||||
result.criticalChance = parseInt(CritPct, 0);
|
||||
result.criticalMultiplier = parseInt(CritMult, 0);
|
||||
ConstRange r = parseRange(DMG);
|
||||
if (r != null) result.damagePotential.set(r);
|
||||
result.blockChance = parseInt(BlkPct, 0);
|
||||
result.damageResistance = parseInt(DMG_res, 0);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
public static int parseInt(String s, int defaultValue) {
|
||||
if (s == null || s.length() <= 0) return defaultValue;
|
||||
return Integer.parseInt(s);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -283,7 +283,7 @@ function startEditor() {
|
||||
+ "hasAbilityEffect|boostMaxHP|boostMaxAP|moveCostPenalty|attackCost|attackChance|criticalChance|criticalMultiplier|attackDamage_Min|attackDamage_Max|blockChance|damageResistance|"
|
||||
+ "];"))
|
||||
,quests: new DataStore('quest', new FieldList("[id|name|showInLog|stages[progress|logText|rewardExperience|finishesQuest|]|];"))
|
||||
,items: new DataStore('item', new FieldList("[iconID|name|searchTag|category|baseMarketCost|"
|
||||
,items: new DataStore('item', new FieldList("[searchTag|iconID|name|category|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|use_boostHP_Max|hit_boostAP_Min|hit_boostAP_Max|hit_conditionsSource[condition|magnitude|duration|chance|]|hit_conditionsTarget[condition|magnitude|duration|chance|]|"
|
||||
|
||||
@@ -42,7 +42,12 @@ function DataStore(objectTypename, fieldList, nameField) {
|
||||
this.onDeserialized = function() { }
|
||||
|
||||
this.deserialize = function(str) {
|
||||
this.items = deserializeObjectList(this.fieldList, str);
|
||||
var header = findHeader(str);
|
||||
if (!header) {
|
||||
alert("Could not find header row, cannot deserialize");
|
||||
return;
|
||||
}
|
||||
this.items = deserializeObjectList(header, str);
|
||||
this.onDeserialized();
|
||||
}
|
||||
this.serialize = function() {
|
||||
|
||||
@@ -54,7 +54,7 @@ function FieldList(header, name) {
|
||||
}
|
||||
}
|
||||
|
||||
function findHeader(str, name) {
|
||||
function findHeader(str) {
|
||||
var match = str.match(FieldList_Header_linePattern);
|
||||
if (!match) return;
|
||||
return new FieldList(match[0]);
|
||||
|
||||
Reference in New Issue
Block a user