mirror of
https://github.com/OMGeeky/andors-trail.git
synced 2026-01-06 11:39:55 +01:00
Display list of skills that the player has.
Leveling up gives a new skillpoint to distribute. GUI for selecting what skill to increase. git-svn-id: https://andors-trail.googlecode.com/svn/trunk@135 08aca716-68be-ccc6-4d58-36f5abd142ac
This commit is contained in:
@@ -47,6 +47,7 @@
|
||||
<activity android:name=".activity.QuestLogActivity" />
|
||||
<activity android:name=".activity.ActorConditionInfoActivity" android:theme="@android:style/Theme.Dialog" />
|
||||
<activity android:name=".activity.BulkSelectionInterface" android:theme="@android:style/Theme.Dialog" />
|
||||
<activity android:name=".activity.SkillInfoActivity" android:theme="@android:style/Theme.Dialog" />
|
||||
</application>
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
|
||||
|
||||
@@ -130,15 +130,18 @@ public final class R {
|
||||
public static final int ui_gradientshape=0x7f020046;
|
||||
public static final int ui_gradientshape_translucent=0x7f020047;
|
||||
public static final int ui_green_foreground=0x7f020048;
|
||||
public static final int ui_progress_ap=0x7f020049;
|
||||
public static final int ui_progress_exp=0x7f02004a;
|
||||
public static final int ui_progress_health=0x7f02004b;
|
||||
public static final int ui_purple_foreground=0x7f02004c;
|
||||
public static final int ui_red_foreground=0x7f02004d;
|
||||
public static final int ui_selections=0x7f02004e;
|
||||
public static final int ui_startbackground=0x7f02004f;
|
||||
public static final int ui_statustext=0x7f020050;
|
||||
public static final int ui_yellow_foreground=0x7f020051;
|
||||
public static final int ui_icon_equipment=0x7f020049;
|
||||
public static final int ui_icon_quest=0x7f02004a;
|
||||
public static final int ui_icon_skill=0x7f02004b;
|
||||
public static final int ui_progress_ap=0x7f02004c;
|
||||
public static final int ui_progress_exp=0x7f02004d;
|
||||
public static final int ui_progress_health=0x7f02004e;
|
||||
public static final int ui_purple_foreground=0x7f02004f;
|
||||
public static final int ui_red_foreground=0x7f020050;
|
||||
public static final int ui_selections=0x7f020051;
|
||||
public static final int ui_startbackground=0x7f020052;
|
||||
public static final int ui_statustext=0x7f020053;
|
||||
public static final int ui_yellow_foreground=0x7f020054;
|
||||
}
|
||||
public static final class id {
|
||||
public static final int abilitymodifierinfo_change_maxap=0x7f090005;
|
||||
@@ -182,151 +185,164 @@ public final class R {
|
||||
public static final int conversation_next=0x7f090028;
|
||||
public static final int conversation_statements=0x7f090027;
|
||||
public static final int conversation_text=0x7f09002b;
|
||||
public static final int heroinfo_ap=0x7f09003d;
|
||||
public static final int heroinfo_currentconditions=0x7f090044;
|
||||
public static final int heroinfo_currentconditions_title=0x7f090043;
|
||||
public static final int heroinfo_currenttraits=0x7f090041;
|
||||
public static final int heroinfo_expbar=0x7f090040;
|
||||
public static final int heroinfo_healthbar=0x7f09003f;
|
||||
public static final int heroinfo_image=0x7f090039;
|
||||
public static final int heroinfo_itemeffects=0x7f090042;
|
||||
public static final int heroinfo_level=0x7f09003b;
|
||||
public static final int heroinfo_levelup=0x7f090045;
|
||||
public static final int heroinfo_movecost=0x7f09003e;
|
||||
public static final int heroinfo_quests=0x7f090046;
|
||||
public static final int heroinfo_stats_attack=0x7f090048;
|
||||
public static final int heroinfo_stats_defense=0x7f090049;
|
||||
public static final int heroinfo_stats_gold=0x7f090047;
|
||||
public static final int heroinfo_ap=0x7f090040;
|
||||
public static final int heroinfo_currentconditions=0x7f090047;
|
||||
public static final int heroinfo_currentconditions_title=0x7f090046;
|
||||
public static final int heroinfo_currenttraits=0x7f090044;
|
||||
public static final int heroinfo_expbar=0x7f090043;
|
||||
public static final int heroinfo_healthbar=0x7f090042;
|
||||
public static final int heroinfo_image=0x7f09003c;
|
||||
public static final int heroinfo_itemeffects=0x7f090045;
|
||||
public static final int heroinfo_level=0x7f09003e;
|
||||
public static final int heroinfo_levelup=0x7f090048;
|
||||
public static final int heroinfo_listskills_list=0x7f09003b;
|
||||
public static final int heroinfo_listskills_number_of_increases=0x7f09003a;
|
||||
public static final int heroinfo_movecost=0x7f090041;
|
||||
public static final int heroinfo_quests=0x7f090049;
|
||||
public static final int heroinfo_stats_attack=0x7f09004b;
|
||||
public static final int heroinfo_stats_defense=0x7f09004c;
|
||||
public static final int heroinfo_stats_gold=0x7f09004a;
|
||||
public static final int heroinfo_tab1=0x7f09002c;
|
||||
public static final int heroinfo_tab2=0x7f09002d;
|
||||
public static final int heroinfo_title=0x7f09003a;
|
||||
public static final int heroinfo_totalexperience=0x7f09003c;
|
||||
public static final int heroinfo_worn_body=0x7f090030;
|
||||
public static final int heroinfo_worn_center=0x7f09002e;
|
||||
public static final int heroinfo_worn_feet=0x7f090033;
|
||||
public static final int heroinfo_worn_hand=0x7f090032;
|
||||
public static final int heroinfo_worn_head=0x7f09002f;
|
||||
public static final int heroinfo_worn_neck=0x7f090031;
|
||||
public static final int heroinfo_worn_ringleft=0x7f090035;
|
||||
public static final int heroinfo_worn_ringright=0x7f090037;
|
||||
public static final int heroinfo_worn_shield=0x7f090036;
|
||||
public static final int heroinfo_worn_weapon=0x7f090034;
|
||||
public static final int inv_assign_slot1=0x7f0900b7;
|
||||
public static final int inv_assign_slot2=0x7f0900b8;
|
||||
public static final int inv_assign_slot3=0x7f0900b9;
|
||||
public static final int inv_image=0x7f09004a;
|
||||
public static final int inv_menu_assign=0x7f0900b6;
|
||||
public static final int inv_menu_drop=0x7f0900b5;
|
||||
public static final int inv_menu_equip=0x7f0900b2;
|
||||
public static final int inv_menu_info=0x7f0900b1;
|
||||
public static final int inv_menu_unequip=0x7f0900b3;
|
||||
public static final int inv_menu_use=0x7f0900b4;
|
||||
public static final int inv_text=0x7f09004b;
|
||||
public static final int inventorylist_root=0x7f090038;
|
||||
public static final int itemeffect_onequip_abilitymodifierinfo=0x7f09004d;
|
||||
public static final int itemeffect_onequip_conditions=0x7f09004e;
|
||||
public static final int itemeffect_onequip_title=0x7f09004c;
|
||||
public static final int itemeffect_onhit=0x7f090052;
|
||||
public static final int itemeffect_onhit_title=0x7f090051;
|
||||
public static final int itemeffect_onkill=0x7f090054;
|
||||
public static final int itemeffect_onkill_title=0x7f090053;
|
||||
public static final int itemeffect_onuse=0x7f090050;
|
||||
public static final int itemeffect_onuse_conditions_source=0x7f090057;
|
||||
public static final int itemeffect_onuse_conditions_source_title=0x7f090056;
|
||||
public static final int itemeffect_onuse_conditions_target=0x7f090059;
|
||||
public static final int itemeffect_onuse_conditions_target_title=0x7f090058;
|
||||
public static final int itemeffect_onuse_list=0x7f090055;
|
||||
public static final int itemeffect_onuse_title=0x7f09004f;
|
||||
public static final int iteminfo_action=0x7f09005e;
|
||||
public static final int iteminfo_category=0x7f09005c;
|
||||
public static final int iteminfo_close=0x7f09005f;
|
||||
public static final int iteminfo_effects=0x7f09005d;
|
||||
public static final int iteminfo_image=0x7f09005a;
|
||||
public static final int iteminfo_title=0x7f09005b;
|
||||
public static final int levelup_add_attackchance=0x7f090064;
|
||||
public static final int levelup_add_attackdamage=0x7f090065;
|
||||
public static final int levelup_add_blockchance=0x7f090066;
|
||||
public static final int levelup_add_health=0x7f090063;
|
||||
public static final int levelup_description=0x7f090062;
|
||||
public static final int levelup_image=0x7f090061;
|
||||
public static final int levelup_titlelayout=0x7f090060;
|
||||
public static final int loadsave_description=0x7f09006a;
|
||||
public static final int loadsave_image=0x7f090068;
|
||||
public static final int loadsave_slot_1=0x7f09006b;
|
||||
public static final int loadsave_slot_2=0x7f09006c;
|
||||
public static final int loadsave_slot_3=0x7f09006d;
|
||||
public static final int loadsave_slot_4=0x7f09006e;
|
||||
public static final int loadsave_title=0x7f090069;
|
||||
public static final int loadsave_titlelayout=0x7f090067;
|
||||
public static final int main_combatview=0x7f090072;
|
||||
public static final int main_container=0x7f09006f;
|
||||
public static final int main_mainview=0x7f090073;
|
||||
public static final int main_quickitemview=0x7f090071;
|
||||
public static final int main_statusview=0x7f090070;
|
||||
public static final int main_virtual_dpad=0x7f090076;
|
||||
public static final int monsterencounter_attack=0x7f09007a;
|
||||
public static final int monsterencounter_cancel=0x7f09007c;
|
||||
public static final int monsterencounter_description=0x7f090079;
|
||||
public static final int monsterencounter_image=0x7f090077;
|
||||
public static final int monsterencounter_info=0x7f09007b;
|
||||
public static final int monsterencounter_title=0x7f090078;
|
||||
public static final int monsterinfo_close=0x7f090083;
|
||||
public static final int monsterinfo_currenttraits=0x7f090081;
|
||||
public static final int monsterinfo_difficulty=0x7f09007f;
|
||||
public static final int monsterinfo_healthbar=0x7f090080;
|
||||
public static final int monsterinfo_image=0x7f09007d;
|
||||
public static final int monsterinfo_onhiteffects=0x7f090082;
|
||||
public static final int monsterinfo_title=0x7f09007e;
|
||||
public static final int questlog_contents=0x7f090085;
|
||||
public static final int questlog_entrytext=0x7f090086;
|
||||
public static final int questlog_includecompleted=0x7f090084;
|
||||
public static final int heroinfo_tab3=0x7f09002e;
|
||||
public static final int heroinfo_title=0x7f09003d;
|
||||
public static final int heroinfo_totalexperience=0x7f09003f;
|
||||
public static final int heroinfo_worn_body=0x7f090031;
|
||||
public static final int heroinfo_worn_center=0x7f09002f;
|
||||
public static final int heroinfo_worn_feet=0x7f090034;
|
||||
public static final int heroinfo_worn_hand=0x7f090033;
|
||||
public static final int heroinfo_worn_head=0x7f090030;
|
||||
public static final int heroinfo_worn_neck=0x7f090032;
|
||||
public static final int heroinfo_worn_ringleft=0x7f090036;
|
||||
public static final int heroinfo_worn_ringright=0x7f090038;
|
||||
public static final int heroinfo_worn_shield=0x7f090037;
|
||||
public static final int heroinfo_worn_weapon=0x7f090035;
|
||||
public static final int inv_assign_slot1=0x7f0900c4;
|
||||
public static final int inv_assign_slot2=0x7f0900c5;
|
||||
public static final int inv_assign_slot3=0x7f0900c6;
|
||||
public static final int inv_image=0x7f09004d;
|
||||
public static final int inv_menu_assign=0x7f0900c3;
|
||||
public static final int inv_menu_drop=0x7f0900c2;
|
||||
public static final int inv_menu_equip=0x7f0900bf;
|
||||
public static final int inv_menu_info=0x7f0900be;
|
||||
public static final int inv_menu_unequip=0x7f0900c0;
|
||||
public static final int inv_menu_use=0x7f0900c1;
|
||||
public static final int inv_text=0x7f09004e;
|
||||
public static final int inventorylist_root=0x7f090039;
|
||||
public static final int itemeffect_onequip_abilitymodifierinfo=0x7f090050;
|
||||
public static final int itemeffect_onequip_conditions=0x7f090051;
|
||||
public static final int itemeffect_onequip_title=0x7f09004f;
|
||||
public static final int itemeffect_onhit=0x7f090055;
|
||||
public static final int itemeffect_onhit_title=0x7f090054;
|
||||
public static final int itemeffect_onkill=0x7f090057;
|
||||
public static final int itemeffect_onkill_title=0x7f090056;
|
||||
public static final int itemeffect_onuse=0x7f090053;
|
||||
public static final int itemeffect_onuse_conditions_source=0x7f09005a;
|
||||
public static final int itemeffect_onuse_conditions_source_title=0x7f090059;
|
||||
public static final int itemeffect_onuse_conditions_target=0x7f09005c;
|
||||
public static final int itemeffect_onuse_conditions_target_title=0x7f09005b;
|
||||
public static final int itemeffect_onuse_list=0x7f090058;
|
||||
public static final int itemeffect_onuse_title=0x7f090052;
|
||||
public static final int iteminfo_action=0x7f090061;
|
||||
public static final int iteminfo_category=0x7f09005f;
|
||||
public static final int iteminfo_close=0x7f090062;
|
||||
public static final int iteminfo_effects=0x7f090060;
|
||||
public static final int iteminfo_image=0x7f09005d;
|
||||
public static final int iteminfo_title=0x7f09005e;
|
||||
public static final int levelup_add_attackchance=0x7f090066;
|
||||
public static final int levelup_add_attackdamage=0x7f090067;
|
||||
public static final int levelup_add_blockchance=0x7f090068;
|
||||
public static final int levelup_add_health=0x7f090065;
|
||||
public static final int levelup_adds_new_skillpoint=0x7f090069;
|
||||
public static final int levelup_description=0x7f090064;
|
||||
public static final int levelup_image=0x7f090063;
|
||||
public static final int loadsave_description=0x7f09006d;
|
||||
public static final int loadsave_image=0x7f09006b;
|
||||
public static final int loadsave_slot_1=0x7f09006e;
|
||||
public static final int loadsave_slot_2=0x7f09006f;
|
||||
public static final int loadsave_slot_3=0x7f090070;
|
||||
public static final int loadsave_slot_4=0x7f090071;
|
||||
public static final int loadsave_title=0x7f09006c;
|
||||
public static final int loadsave_titlelayout=0x7f09006a;
|
||||
public static final int main_combatview=0x7f090075;
|
||||
public static final int main_container=0x7f090072;
|
||||
public static final int main_mainview=0x7f090076;
|
||||
public static final int main_quickitemview=0x7f090074;
|
||||
public static final int main_statusview=0x7f090073;
|
||||
public static final int main_virtual_dpad=0x7f090079;
|
||||
public static final int monsterencounter_attack=0x7f09007d;
|
||||
public static final int monsterencounter_cancel=0x7f09007f;
|
||||
public static final int monsterencounter_description=0x7f09007c;
|
||||
public static final int monsterencounter_image=0x7f09007a;
|
||||
public static final int monsterencounter_info=0x7f09007e;
|
||||
public static final int monsterencounter_title=0x7f09007b;
|
||||
public static final int monsterinfo_close=0x7f090086;
|
||||
public static final int monsterinfo_currenttraits=0x7f090084;
|
||||
public static final int monsterinfo_difficulty=0x7f090082;
|
||||
public static final int monsterinfo_healthbar=0x7f090083;
|
||||
public static final int monsterinfo_image=0x7f090080;
|
||||
public static final int monsterinfo_onhiteffects=0x7f090085;
|
||||
public static final int monsterinfo_title=0x7f090081;
|
||||
public static final int questlog_contents=0x7f090088;
|
||||
public static final int questlog_entrytext=0x7f090089;
|
||||
public static final int questlog_includecompleted=0x7f090087;
|
||||
public static final int quick_menu_assign=0x7f090000;
|
||||
public static final int quick_menu_assign_group=0x7f090001;
|
||||
public static final int quick_menu_unassign=0x7f090002;
|
||||
public static final int quickitem_toggle=0x7f0900a0;
|
||||
public static final int quickitemview_item1=0x7f090087;
|
||||
public static final int quickitemview_item2=0x7f090088;
|
||||
public static final int quickitemview_item3=0x7f090089;
|
||||
public static final int rangebar_label=0x7f09008a;
|
||||
public static final int rangebar_progress=0x7f09008b;
|
||||
public static final int rangebar_text=0x7f09008c;
|
||||
public static final int shop_buy_gc=0x7f09008e;
|
||||
public static final int shop_buy_list=0x7f09008f;
|
||||
public static final int shop_sell_gc=0x7f090091;
|
||||
public static final int shop_sell_list=0x7f090092;
|
||||
public static final int shop_tab1=0x7f09008d;
|
||||
public static final int shop_tab2=0x7f090090;
|
||||
public static final int shopitem_image=0x7f090093;
|
||||
public static final int shopitem_infobutton=0x7f090095;
|
||||
public static final int shopitem_shopbutton=0x7f090094;
|
||||
public static final int shopitem_text=0x7f090096;
|
||||
public static final int startscreen_about=0x7f09009d;
|
||||
public static final int startscreen_continue=0x7f09009a;
|
||||
public static final int startscreen_currenthero=0x7f090097;
|
||||
public static final int startscreen_enterheroname=0x7f090098;
|
||||
public static final int startscreen_load=0x7f09009c;
|
||||
public static final int startscreen_newgame=0x7f09009b;
|
||||
public static final int startscreen_quit=0x7f09009e;
|
||||
public static final int startscreen_version=0x7f090099;
|
||||
public static final int status_image=0x7f09009f;
|
||||
public static final int statusview_activeconditions=0x7f090075;
|
||||
public static final int statusview_exp=0x7f0900a2;
|
||||
public static final int statusview_health=0x7f0900a1;
|
||||
public static final int statusview_statustext=0x7f090074;
|
||||
public static final int traitsinfo_attack_chance=0x7f0900a6;
|
||||
public static final int traitsinfo_attack_cost=0x7f0900a4;
|
||||
public static final int traitsinfo_attack_damage=0x7f0900a8;
|
||||
public static final int traitsinfo_attack_row1=0x7f0900a3;
|
||||
public static final int traitsinfo_attack_row2=0x7f0900a5;
|
||||
public static final int traitsinfo_attack_row3=0x7f0900a7;
|
||||
public static final int traitsinfo_critical_row1=0x7f0900a9;
|
||||
public static final int traitsinfo_critical_row2=0x7f0900ab;
|
||||
public static final int traitsinfo_criticalhit_chance=0x7f0900aa;
|
||||
public static final int traitsinfo_criticalhit_multiplier=0x7f0900ac;
|
||||
public static final int traitsinfo_defense_chance=0x7f0900ae;
|
||||
public static final int traitsinfo_defense_damageresist=0x7f0900b0;
|
||||
public static final int traitsinfo_defense_row1=0x7f0900ad;
|
||||
public static final int traitsinfo_defense_row2=0x7f0900af;
|
||||
public static final int quickitem_toggle=0x7f0900ad;
|
||||
public static final int quickitemview_item1=0x7f09008a;
|
||||
public static final int quickitemview_item2=0x7f09008b;
|
||||
public static final int quickitemview_item3=0x7f09008c;
|
||||
public static final int rangebar_label=0x7f09008d;
|
||||
public static final int rangebar_progress=0x7f09008e;
|
||||
public static final int rangebar_text=0x7f09008f;
|
||||
public static final int shop_buy_gc=0x7f090091;
|
||||
public static final int shop_buy_list=0x7f090092;
|
||||
public static final int shop_sell_gc=0x7f090094;
|
||||
public static final int shop_sell_list=0x7f090095;
|
||||
public static final int shop_tab1=0x7f090090;
|
||||
public static final int shop_tab2=0x7f090093;
|
||||
public static final int shopitem_image=0x7f090096;
|
||||
public static final int shopitem_infobutton=0x7f090098;
|
||||
public static final int shopitem_shopbutton=0x7f090097;
|
||||
public static final int shopitem_text=0x7f090099;
|
||||
public static final int skillentry_description=0x7f0900a3;
|
||||
public static final int skillentry_icon=0x7f0900a1;
|
||||
public static final int skillentry_title=0x7f0900a2;
|
||||
public static final int skillinfo_currentlevel=0x7f09009c;
|
||||
public static final int skillinfo_image=0x7f09009a;
|
||||
public static final int skillinfo_longdescription=0x7f09009d;
|
||||
public static final int skillinfo_prerequisites=0x7f09009e;
|
||||
public static final int skillinfo_title=0x7f09009b;
|
||||
public static final int skillinfoinfo_action=0x7f09009f;
|
||||
public static final int skillinfoinfo_close=0x7f0900a0;
|
||||
public static final int startscreen_about=0x7f0900aa;
|
||||
public static final int startscreen_continue=0x7f0900a7;
|
||||
public static final int startscreen_currenthero=0x7f0900a4;
|
||||
public static final int startscreen_enterheroname=0x7f0900a5;
|
||||
public static final int startscreen_load=0x7f0900a9;
|
||||
public static final int startscreen_newgame=0x7f0900a8;
|
||||
public static final int startscreen_quit=0x7f0900ab;
|
||||
public static final int startscreen_version=0x7f0900a6;
|
||||
public static final int status_image=0x7f0900ac;
|
||||
public static final int statusview_activeconditions=0x7f090078;
|
||||
public static final int statusview_exp=0x7f0900af;
|
||||
public static final int statusview_health=0x7f0900ae;
|
||||
public static final int statusview_statustext=0x7f090077;
|
||||
public static final int traitsinfo_attack_chance=0x7f0900b3;
|
||||
public static final int traitsinfo_attack_cost=0x7f0900b1;
|
||||
public static final int traitsinfo_attack_damage=0x7f0900b5;
|
||||
public static final int traitsinfo_attack_row1=0x7f0900b0;
|
||||
public static final int traitsinfo_attack_row2=0x7f0900b2;
|
||||
public static final int traitsinfo_attack_row3=0x7f0900b4;
|
||||
public static final int traitsinfo_critical_row1=0x7f0900b6;
|
||||
public static final int traitsinfo_critical_row2=0x7f0900b8;
|
||||
public static final int traitsinfo_criticalhit_chance=0x7f0900b7;
|
||||
public static final int traitsinfo_criticalhit_multiplier=0x7f0900b9;
|
||||
public static final int traitsinfo_defense_chance=0x7f0900bb;
|
||||
public static final int traitsinfo_defense_damageresist=0x7f0900bd;
|
||||
public static final int traitsinfo_defense_row1=0x7f0900ba;
|
||||
public static final int traitsinfo_defense_row2=0x7f0900bc;
|
||||
}
|
||||
public static final class layout {
|
||||
public static final int abilitymodifierview=0x7f030000;
|
||||
@@ -339,26 +355,29 @@ public final class R {
|
||||
public static final int heroinfo=0x7f030007;
|
||||
public static final int heroinfo_equipped=0x7f030008;
|
||||
public static final int heroinfo_inventory=0x7f030009;
|
||||
public static final int heroinfo_stats=0x7f03000a;
|
||||
public static final int heroinfo_statsicons=0x7f03000b;
|
||||
public static final int inventoryitemview=0x7f03000c;
|
||||
public static final int itemeffectview=0x7f03000d;
|
||||
public static final int itemeffectview_onuse=0x7f03000e;
|
||||
public static final int iteminfo=0x7f03000f;
|
||||
public static final int levelup=0x7f030010;
|
||||
public static final int loadsave=0x7f030011;
|
||||
public static final int main=0x7f030012;
|
||||
public static final int monsterencounter=0x7f030013;
|
||||
public static final int monsterinfo=0x7f030014;
|
||||
public static final int questlog=0x7f030015;
|
||||
public static final int questlogentry=0x7f030016;
|
||||
public static final int quickitemview=0x7f030017;
|
||||
public static final int rangebar=0x7f030018;
|
||||
public static final int shop=0x7f030019;
|
||||
public static final int shopitemview=0x7f03001a;
|
||||
public static final int startscreen=0x7f03001b;
|
||||
public static final int statusview=0x7f03001c;
|
||||
public static final int traitsinfoview=0x7f03001d;
|
||||
public static final int heroinfo_skill_list=0x7f03000a;
|
||||
public static final int heroinfo_stats=0x7f03000b;
|
||||
public static final int heroinfo_statsicons=0x7f03000c;
|
||||
public static final int inventoryitemview=0x7f03000d;
|
||||
public static final int itemeffectview=0x7f03000e;
|
||||
public static final int itemeffectview_onuse=0x7f03000f;
|
||||
public static final int iteminfo=0x7f030010;
|
||||
public static final int levelup=0x7f030011;
|
||||
public static final int loadsave=0x7f030012;
|
||||
public static final int main=0x7f030013;
|
||||
public static final int monsterencounter=0x7f030014;
|
||||
public static final int monsterinfo=0x7f030015;
|
||||
public static final int questlog=0x7f030016;
|
||||
public static final int questlogentry=0x7f030017;
|
||||
public static final int quickitemview=0x7f030018;
|
||||
public static final int rangebar=0x7f030019;
|
||||
public static final int shop=0x7f03001a;
|
||||
public static final int shopitemview=0x7f03001b;
|
||||
public static final int skill_info_view=0x7f03001c;
|
||||
public static final int skill_listentry_view=0x7f03001d;
|
||||
public static final int startscreen=0x7f03001e;
|
||||
public static final int statusview=0x7f03001f;
|
||||
public static final int traitsinfoview=0x7f030020;
|
||||
}
|
||||
public static final class menu {
|
||||
public static final int inventoryitem=0x7f0b0000;
|
||||
@@ -457,7 +476,7 @@ public final class R {
|
||||
public static final int conversation_rewardgold=0x7f0500ee;
|
||||
public static final int conversation_rewarditem=0x7f0500f0;
|
||||
public static final int conversation_rewarditems=0x7f0500f1;
|
||||
public static final int conversation_title=0x7f050149;
|
||||
public static final int conversation_title=0x7f050184;
|
||||
public static final int conversationlist_alynndir=0x7f050026;
|
||||
public static final int conversationlist_ambelie=0x7f05002a;
|
||||
public static final int conversationlist_blackwater_harlenn=0x7f05003d;
|
||||
@@ -643,7 +662,7 @@ public final class R {
|
||||
public static final int itemlist_v069_2=0x7f050059;
|
||||
public static final int itemlist_v069_questitems=0x7f05005a;
|
||||
public static final int itemlist_weapons=0x7f05004e;
|
||||
public static final int key_required=0x7f050148;
|
||||
public static final int key_required=0x7f050183;
|
||||
public static final int levelup_add_attackchance=0x7f050101;
|
||||
public static final int levelup_add_attackchance_description=0x7f050102;
|
||||
public static final int levelup_add_attackdamage=0x7f050103;
|
||||
@@ -652,6 +671,7 @@ public final class R {
|
||||
public static final int levelup_add_blockchance_description=0x7f050106;
|
||||
public static final int levelup_add_health=0x7f0500ff;
|
||||
public static final int levelup_add_health_description=0x7f050100;
|
||||
public static final int levelup_adds_new_skillpoint=0x7f050182;
|
||||
public static final int levelup_buttontext=0x7f0500fe;
|
||||
public static final int levelup_description=0x7f0500fd;
|
||||
public static final int levelup_title=0x7f0500fc;
|
||||
@@ -725,6 +745,64 @@ public final class R {
|
||||
public static final int shop_sell=0x7f0500f5;
|
||||
public static final int shop_sellitem=0x7f0500f8;
|
||||
public static final int shop_yourgold=0x7f0500f9;
|
||||
public static final int skill_current_level=0x7f05017c;
|
||||
public static final int skill_current_level_with_maximum=0x7f05017d;
|
||||
public static final int skill_longdescription_barkskin=0x7f05016e;
|
||||
public static final int skill_longdescription_barter=0x7f05016c;
|
||||
public static final int skill_longdescription_better_criticals=0x7f050170;
|
||||
public static final int skill_longdescription_cleave=0x7f050174;
|
||||
public static final int skill_longdescription_coinfinder=0x7f050172;
|
||||
public static final int skill_longdescription_dodge=0x7f05016d;
|
||||
public static final int skill_longdescription_eater=0x7f050175;
|
||||
public static final int skill_longdescription_evasion=0x7f050177;
|
||||
public static final int skill_longdescription_fortitude=0x7f050176;
|
||||
public static final int skill_longdescription_lower_exploss=0x7f050179;
|
||||
public static final int skill_longdescription_magicfinder=0x7f05017a;
|
||||
public static final int skill_longdescription_more_criticals=0x7f05016f;
|
||||
public static final int skill_longdescription_more_exp=0x7f050173;
|
||||
public static final int skill_longdescription_regeneration=0x7f050178;
|
||||
public static final int skill_longdescription_speed=0x7f050171;
|
||||
public static final int skill_longdescription_weapon_chance=0x7f05016a;
|
||||
public static final int skill_longdescription_weapon_dmg=0x7f05016b;
|
||||
public static final int skill_number_of_increases_one=0x7f050180;
|
||||
public static final int skill_number_of_increases_several=0x7f050181;
|
||||
public static final int skill_prerequisite_other_skill=0x7f05017e;
|
||||
public static final int skill_prerequisite_stat=0x7f05017f;
|
||||
public static final int skill_shortdescription_barkskin=0x7f05015d;
|
||||
public static final int skill_shortdescription_barter=0x7f05015b;
|
||||
public static final int skill_shortdescription_better_criticals=0x7f05015f;
|
||||
public static final int skill_shortdescription_cleave=0x7f050163;
|
||||
public static final int skill_shortdescription_coinfinder=0x7f050161;
|
||||
public static final int skill_shortdescription_dodge=0x7f05015c;
|
||||
public static final int skill_shortdescription_eater=0x7f050164;
|
||||
public static final int skill_shortdescription_evasion=0x7f050166;
|
||||
public static final int skill_shortdescription_fortitude=0x7f050165;
|
||||
public static final int skill_shortdescription_lower_exploss=0x7f050168;
|
||||
public static final int skill_shortdescription_magicfinder=0x7f050169;
|
||||
public static final int skill_shortdescription_more_criticals=0x7f05015e;
|
||||
public static final int skill_shortdescription_more_exp=0x7f050162;
|
||||
public static final int skill_shortdescription_regeneration=0x7f050167;
|
||||
public static final int skill_shortdescription_speed=0x7f050160;
|
||||
public static final int skill_shortdescription_weapon_chance=0x7f050159;
|
||||
public static final int skill_shortdescription_weapon_dmg=0x7f05015a;
|
||||
public static final int skill_title_barkskin=0x7f05014c;
|
||||
public static final int skill_title_barter=0x7f05014a;
|
||||
public static final int skill_title_better_criticals=0x7f05014e;
|
||||
public static final int skill_title_cleave=0x7f050152;
|
||||
public static final int skill_title_coinfinder=0x7f050150;
|
||||
public static final int skill_title_dodge=0x7f05014b;
|
||||
public static final int skill_title_eater=0x7f050153;
|
||||
public static final int skill_title_evasion=0x7f050155;
|
||||
public static final int skill_title_fortitude=0x7f050154;
|
||||
public static final int skill_title_lower_exploss=0x7f050157;
|
||||
public static final int skill_title_magicfinder=0x7f050158;
|
||||
public static final int skill_title_more_criticals=0x7f05014d;
|
||||
public static final int skill_title_more_exp=0x7f050151;
|
||||
public static final int skill_title_regeneration=0x7f050156;
|
||||
public static final int skill_title_speed=0x7f05014f;
|
||||
public static final int skill_title_weapon_chance=0x7f050148;
|
||||
public static final int skill_title_weapon_dmg=0x7f050149;
|
||||
public static final int skillinfo_action_levelup=0x7f05017b;
|
||||
public static final int startscreen_about=0x7f0500ea;
|
||||
public static final int startscreen_continue=0x7f0500e7;
|
||||
public static final int startscreen_enterheroname=0x7f0500eb;
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 191 KiB After Width: | Height: | Size: 189 KiB |
BIN
AndorsTrail/res/drawable/ui_icon_equipment.png
Normal file
BIN
AndorsTrail/res/drawable/ui_icon_equipment.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.4 KiB |
BIN
AndorsTrail/res/drawable/ui_icon_quest.png
Normal file
BIN
AndorsTrail/res/drawable/ui_icon_quest.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 671 B |
BIN
AndorsTrail/res/drawable/ui_icon_skill.png
Normal file
BIN
AndorsTrail/res/drawable/ui_icon_skill.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.0 KiB |
@@ -29,9 +29,16 @@
|
||||
<!-- TAB 2 -->
|
||||
|
||||
<include
|
||||
layout="@layout/heroinfo_inventory"
|
||||
layout="@layout/heroinfo_skill_list"
|
||||
android:id="@+id/heroinfo_tab2"
|
||||
/>
|
||||
|
||||
<!-- TAB 3 -->
|
||||
|
||||
<include
|
||||
layout="@layout/heroinfo_inventory"
|
||||
android:id="@+id/heroinfo_tab3"
|
||||
/>
|
||||
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
|
||||
23
AndorsTrail/res/layout/heroinfo_skill_list.xml
Normal file
23
AndorsTrail/res/layout/heroinfo_skill_list.xml
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
>
|
||||
<TextView
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="You have N skill increases left"
|
||||
android:id="@+id/heroinfo_listskills_number_of_increases"
|
||||
android:layout_marginBottom="@dimen/section_margin"
|
||||
android:layout_marginTop="@dimen/section_margin"
|
||||
android:layout_gravity="center_horizontal"
|
||||
/>
|
||||
|
||||
<ListView
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/heroinfo_listskills_list"
|
||||
>
|
||||
</ListView>
|
||||
</LinearLayout>
|
||||
@@ -1,81 +1,94 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout
|
||||
<ScrollView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="@dimen/dialog_margin"
|
||||
>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentTop="true"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="center_vertical"
|
||||
android:id="@+id/levelup_titlelayout"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/levelup_image"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/char_hero"
|
||||
android:paddingRight="@dimen/dialog_iconpadding_right"
|
||||
android:paddingBottom="@dimen/dialog_iconpadding_bottom"
|
||||
/>
|
||||
<TextView
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/levelup_title"
|
||||
android:textSize="@dimen/titletext"
|
||||
/>
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/levelup_description"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/levelup_titlelayout"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:text="Welcome to level N!"
|
||||
/>
|
||||
|
||||
<ScrollView
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/levelup_description"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:orientation="vertical"
|
||||
>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="center_vertical"
|
||||
>
|
||||
<Button
|
||||
android:id="@+id/levelup_add_health"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/levelup_add_health"
|
||||
<ImageView
|
||||
android:id="@+id/levelup_image"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/char_hero"
|
||||
android:paddingRight="@dimen/dialog_iconpadding_right"
|
||||
android:paddingBottom="@dimen/dialog_iconpadding_bottom"
|
||||
/>
|
||||
<Button
|
||||
android:id="@+id/levelup_add_attackchance"
|
||||
<TextView
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/levelup_add_attackchance"
|
||||
/>
|
||||
<Button
|
||||
android:id="@+id/levelup_add_attackdamage"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/levelup_add_attackdamage"
|
||||
/>
|
||||
<Button
|
||||
android:id="@+id/levelup_add_blockchance"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/levelup_add_blockchance"
|
||||
android:text="@string/levelup_title"
|
||||
android:textSize="@dimen/titletext"
|
||||
/>
|
||||
</LinearLayout>
|
||||
|
||||
</ScrollView>
|
||||
|
||||
</RelativeLayout>
|
||||
<TextView
|
||||
android:id="@+id/levelup_description"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Welcome to level N!"
|
||||
/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/levelup_add_health"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/levelup_add_health"
|
||||
/>
|
||||
<Button
|
||||
android:id="@+id/levelup_add_attackchance"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/levelup_add_attackchance"
|
||||
/>
|
||||
<Button
|
||||
android:id="@+id/levelup_add_attackdamage"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/levelup_add_attackdamage"
|
||||
/>
|
||||
<Button
|
||||
android:id="@+id/levelup_add_blockchance"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/levelup_add_blockchance"
|
||||
/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="center_vertical"
|
||||
android:layout_marginBottom="@dimen/section_margin"
|
||||
android:id="@+id/levelup_adds_new_skillpoint"
|
||||
>
|
||||
<ImageView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/ui_icon_skill"
|
||||
android:paddingRight="@dimen/dialog_iconpadding_right"
|
||||
android:paddingBottom="@dimen/dialog_iconpadding_bottom"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/levelup_adds_new_skillpoint"
|
||||
/>
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</ScrollView>
|
||||
|
||||
93
AndorsTrail/res/layout/skill_info_view.xml
Normal file
93
AndorsTrail/res/layout/skill_info_view.xml
Normal file
@@ -0,0 +1,93 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:orientation="vertical"
|
||||
>
|
||||
|
||||
<ScrollView
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
>
|
||||
<LinearLayout
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="@dimen/dialog_margin"
|
||||
>
|
||||
<LinearLayout
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="center_vertical"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/skillinfo_image"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/icon"
|
||||
android:paddingRight="@dimen/dialog_iconpadding_right"
|
||||
android:paddingBottom="@dimen/dialog_iconpadding_bottom"
|
||||
/>
|
||||
<TextView
|
||||
android:id="@+id/skillinfo_title"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Skill"
|
||||
android:textSize="@dimen/titletext"
|
||||
/>
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:text="Current level"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="right"
|
||||
android:id="@+id/skillinfo_currentlevel"
|
||||
android:layout_marginBottom="@dimen/section_margin"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:text="Long description"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/skillinfo_longdescription"
|
||||
android:layout_marginBottom="@dimen/section_margin"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:text="Prerequisite"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/skillinfo_prerequisites"
|
||||
/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</ScrollView>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
style="@android:style/ButtonBar"
|
||||
>
|
||||
<Button
|
||||
android:id="@+id/skillinfoinfo_action"
|
||||
android:layout_width="0dip"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/skillinfo_action_levelup"
|
||||
/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/skillinfoinfo_close"
|
||||
android:layout_width="0dip"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/dialog_close"
|
||||
/>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
36
AndorsTrail/res/layout/skill_listentry_view.xml
Normal file
36
AndorsTrail/res/layout/skill_listentry_view.xml
Normal file
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
>
|
||||
<ImageView
|
||||
android:id="@+id/skillentry_icon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginRight="6dip"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_centerVertical="true"
|
||||
android:src="@drawable/icon"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/skillentry_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_toRightOf="@id/skillentry_icon"
|
||||
android:layout_alignParentTop="true"
|
||||
android:text="Title"
|
||||
android:textSize="22dp"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/skillentry_description"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_toRightOf="@id/skillentry_icon"
|
||||
android:layout_below="@id/skillentry_title"
|
||||
android:text="Description"
|
||||
/>
|
||||
|
||||
</RelativeLayout>
|
||||
@@ -372,4 +372,67 @@
|
||||
<string name="bulkselection_totalcost_buy">Total cost: %1$d gold</string>
|
||||
<string name="bulkselection_totalcost_sell">Total cost: %1$d gold</string>
|
||||
|
||||
<string name="skill_title_weapon_chance">Weapon Accuracy</string>
|
||||
<string name="skill_title_weapon_dmg">Hard Hit</string>
|
||||
<string name="skill_title_barter">Merchant</string>
|
||||
<string name="skill_title_dodge">Dodge</string>
|
||||
<string name="skill_title_barkskin">Bark Skin</string>
|
||||
<string name="skill_title_more_criticals">More Criticals</string>
|
||||
<string name="skill_title_better_criticals">Better Criticals</string>
|
||||
<string name="skill_title_speed">Combat Speed</string>
|
||||
<string name="skill_title_coinfinder">Gold Digger</string>
|
||||
<string name="skill_title_more_exp">Quick Learner</string>
|
||||
<string name="skill_title_cleave">Cleave</string>
|
||||
<string name="skill_title_eater">Corpse Eater</string>
|
||||
<string name="skill_title_fortitude">Increased Fortitude</string>
|
||||
<string name="skill_title_evasion">Evasion</string>
|
||||
<string name="skill_title_regeneration">Regeneration</string>
|
||||
<string name="skill_title_lower_exploss">Failure Mastery</string>
|
||||
<string name="skill_title_magicfinder">Magic Finder</string>
|
||||
|
||||
<string name="skill_shortdescription_weapon_chance">Increased attack chance</string>
|
||||
<string name="skill_shortdescription_weapon_dmg">Increased attack damage</string>
|
||||
<string name="skill_shortdescription_barter">Better shop prices</string>
|
||||
<string name="skill_shortdescription_dodge">Increased block chance</string>
|
||||
<string name="skill_shortdescription_barkskin">Damage resistance</string>
|
||||
<string name="skill_shortdescription_more_criticals">Increased critical chance</string>
|
||||
<string name="skill_shortdescription_better_criticals">Increased critical damage</string>
|
||||
<string name="skill_shortdescription_speed">Increased maximum action points</string>
|
||||
<string name="skill_shortdescription_coinfinder">Higher chance of finding gold</string>
|
||||
<string name="skill_shortdescription_more_exp">More experience from monster kills</string>
|
||||
<string name="skill_shortdescription_cleave">Recover action points on every kill</string>
|
||||
<string name="skill_shortdescription_eater">Recover health points on every kill</string>
|
||||
<string name="skill_shortdescription_fortitude">Gain health on each level up</string>
|
||||
<string name="skill_shortdescription_evasion">Increased chance of fleeing</string>
|
||||
<string name="skill_shortdescription_regeneration">Gain health every round</string>
|
||||
<string name="skill_shortdescription_lower_exploss">Decrease amount of lost experience when dying</string>
|
||||
<string name="skill_shortdescription_magicfinder">Increased chance of finding magic items</string>
|
||||
|
||||
<string name="skill_longdescription_weapon_chance">Increases attack chance by %1$d for each skill level.</string>
|
||||
<string name="skill_longdescription_weapon_dmg">Increases min and max damage by %1$d for each skill level.</string>
|
||||
<string name="skill_longdescription_barter">For every skill level, decreases the buying and selling gold penalty by %1$d percentage points.</string>
|
||||
<string name="skill_longdescription_dodge">Increases block chance by %1$d for each skill level.</string>
|
||||
<string name="skill_longdescription_barkskin">Increases damage resistance by %1$d for each skill level.</string>
|
||||
<string name="skill_longdescription_more_criticals">Increases any existing critical chance given by equipment by %1$d %% for each skill level (percentage of existing critical chance value, not percentage points).</string>
|
||||
<string name="skill_longdescription_better_criticals">Increases any existing critical multiplier given by equipment by %1$d %% for each skill level.</string>
|
||||
<string name="skill_longdescription_speed">Increases maximum action points (AP) by %1$d for each skill level.</string>
|
||||
<string name="skill_longdescription_coinfinder">Increases chance of finding gold in monster drops by %1$d %%, and increases amount of gold in drops by %2$d %% for each skill level (up to the maximum amount that the monster drops).</string>
|
||||
<string name="skill_longdescription_more_exp">Increases amount of exp given by defeating monsters by %1$d %% for each skill level</string>
|
||||
<string name="skill_longdescription_cleave">Gives +%1$d action points (AP) on every kill per skill level.</string>
|
||||
<string name="skill_longdescription_eater">Gives +%1$d health points (HP) on every kill per skill level.</string>
|
||||
<string name="skill_longdescription_fortitude">On every subsequent level-up, maximum health points (HP) will be raised by %1$d per skill level. This is not applied retroactively, only subsequent level-ups will be affected.</string>
|
||||
<string name="skill_longdescription_evasion">For every skill level, reduces both the chance of failed flee attempts by %1$d %% and the chance that a adjacent monster will attack by %2$d %%.</string>
|
||||
<string name="skill_longdescription_regeneration">Gain +%1$d health points (HP) on every round per skill level.</string>
|
||||
<string name="skill_longdescription_lower_exploss">For every skill level, reduces the amount of lost experience caused by death by %1$d %% (percentage of existing exp loss value, not percentage points). %2$d levels will remove all experience loss caused by death.</string>
|
||||
<string name="skill_longdescription_magicfinder">Increases the chance of finding non-ordinary items by %1$d %% for every skill level.</string>
|
||||
|
||||
<string name="skillinfo_action_levelup">Level up</string>
|
||||
<string name="skill_current_level">Current level: %1$d</string>
|
||||
<string name="skill_current_level_with_maximum">Current level: %1$d / %2$d</string>
|
||||
<string name="skill_prerequisite_other_skill">Requires at least level %1$d of the %1$s skill to select.</string>
|
||||
<string name="skill_prerequisite_stat">Requires at least %1$d %1$s to select</string>
|
||||
<string name="skill_number_of_increases_one">You may select one skill to increase</string>
|
||||
<string name="skill_number_of_increases_several">You may select %1$d skills to increase</string>
|
||||
<string name="levelup_adds_new_skillpoint">This level also gives you a new skill point to spend!</string>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -19,7 +19,7 @@ public final class AndorsTrailApplication extends Application {
|
||||
public static final boolean DEVELOPMENT_DEBUGBUTTONS = true;
|
||||
public static final boolean DEVELOPMENT_VALIDATEDATA = true;
|
||||
public static final boolean DEVELOPMENT_DEBUGMESSAGES = true;
|
||||
public static final int CURRENT_VERSION = 21;
|
||||
public static final int CURRENT_VERSION = 22;
|
||||
public static final String CURRENT_VERSION_DISPLAY = "0.6.10dev";
|
||||
|
||||
public final WorldContext world = new WorldContext();
|
||||
|
||||
@@ -33,6 +33,7 @@ import com.gpl.rpg.AndorsTrail.activity.MonsterInfoActivity;
|
||||
import com.gpl.rpg.AndorsTrail.activity.Preferences;
|
||||
import com.gpl.rpg.AndorsTrail.activity.QuestLogActivity;
|
||||
import com.gpl.rpg.AndorsTrail.activity.ShopActivity;
|
||||
import com.gpl.rpg.AndorsTrail.activity.SkillInfoActivity;
|
||||
import com.gpl.rpg.AndorsTrail.activity.StartScreenActivity;
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.controller.Controller;
|
||||
@@ -276,15 +277,15 @@ public final class Dialogs {
|
||||
}
|
||||
|
||||
public static void showBulkBuyingInterface(ShopActivity currentActivity, int itemTypeID, int totalAvailableAmount) {
|
||||
showBulkSelectionInterface(currentActivity, itemTypeID, totalAvailableAmount, BulkSelectionInterface.BULK_INTERFACE_BUY, ShopActivity.INTENTREQUEST_BULKSELECT_BUY);
|
||||
showBulkSelectionInterface(currentActivity, itemTypeID, totalAvailableAmount, BulkSelectionInterface.BULK_INTERFACE_BUY, MainActivity.INTENTREQUEST_BULKSELECT_BUY);
|
||||
}
|
||||
|
||||
public static void showBulkSellingInterface(ShopActivity currentActivity, int itemTypeID, int totalAvailableAmount) {
|
||||
showBulkSelectionInterface(currentActivity, itemTypeID, totalAvailableAmount, BulkSelectionInterface.BULK_INTERFACE_SELL, ShopActivity.INTENTREQUEST_BULKSELECT_SELL);
|
||||
showBulkSelectionInterface(currentActivity, itemTypeID, totalAvailableAmount, BulkSelectionInterface.BULK_INTERFACE_SELL, MainActivity.INTENTREQUEST_BULKSELECT_SELL);
|
||||
}
|
||||
|
||||
public static void showBulkDroppingInterface(HeroinfoActivity currentActivity, int itemTypeID, int totalAvailableAmount) {
|
||||
showBulkSelectionInterface(currentActivity, itemTypeID, totalAvailableAmount, BulkSelectionInterface.BULK_INTERFACE_DROP, HeroinfoActivity.INTENTREQUEST_BULKSELECT_DROP);
|
||||
showBulkSelectionInterface(currentActivity, itemTypeID, totalAvailableAmount, BulkSelectionInterface.BULK_INTERFACE_DROP, MainActivity.INTENTREQUEST_BULKSELECT_DROP);
|
||||
}
|
||||
|
||||
public static void showBulkSelectionInterface(Activity currentActivity, int itemTypeID, int totalAvailableAmount, int interfaceType, int requestCode) {
|
||||
@@ -295,4 +296,10 @@ public final class Dialogs {
|
||||
intent.setData(Uri.parse("content://com.gpl.rpg.AndorsTrail/bulkselection/" + itemTypeID));
|
||||
currentActivity.startActivityForResult(intent, requestCode);
|
||||
}
|
||||
public static void showSkillInfo(HeroinfoActivity currentActivity, int skillID) {
|
||||
Intent intent = new Intent(currentActivity, SkillInfoActivity.class);
|
||||
intent.putExtra("skillID", skillID);
|
||||
intent.setData(Uri.parse("content://com.gpl.rpg.AndorsTrail/showskillinfo/" + skillID));
|
||||
currentActivity.startActivityForResult(intent, MainActivity.INTENTREQUEST_SKILLINFO);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ import android.content.Context;
|
||||
import android.os.Environment;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.controller.ActorStatsController;
|
||||
import com.gpl.rpg.AndorsTrail.controller.Constants;
|
||||
import com.gpl.rpg.AndorsTrail.controller.MovementController;
|
||||
import com.gpl.rpg.AndorsTrail.model.ModelContainer;
|
||||
@@ -99,7 +100,8 @@ public final class Savegames {
|
||||
world.model = new ModelContainer(src, world, header.fileversion);
|
||||
src.close();
|
||||
|
||||
MovementController.moveBlockedActors(world);
|
||||
ActorStatsController.recalculatePlayerCombatTraits(world.model.player);
|
||||
MovementController.moveBlockedActors(world);
|
||||
|
||||
return LOAD_RESULT_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -18,9 +18,9 @@ import com.gpl.rpg.AndorsTrail.view.ActorConditionEffectList;
|
||||
import com.gpl.rpg.AndorsTrail.view.ItemContainerAdapter;
|
||||
import com.gpl.rpg.AndorsTrail.view.ItemEffectsView;
|
||||
import com.gpl.rpg.AndorsTrail.view.RangeBar;
|
||||
import com.gpl.rpg.AndorsTrail.view.SkillListAdapater;
|
||||
import com.gpl.rpg.AndorsTrail.view.TraitsInfoView;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.TabActivity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
@@ -43,8 +43,6 @@ import android.widget.AdapterView.AdapterContextMenuInfo;
|
||||
import android.widget.AdapterView.OnItemClickListener;
|
||||
|
||||
public final class HeroinfoActivity extends TabActivity {
|
||||
public static final int INTENTREQUEST_BULKSELECT_DROP = BulkSelectionInterface.BULK_INTERFACE_DROP;
|
||||
|
||||
private WorldContext world;
|
||||
private ViewContext view;
|
||||
|
||||
@@ -72,6 +70,8 @@ public final class HeroinfoActivity extends TabActivity {
|
||||
|
||||
private final ImageView[] wornItemImage = new ImageView[Inventory.NUM_WORN_SLOTS];
|
||||
private final int[] defaultWornItemImageResourceIDs = new int[Inventory.NUM_WORN_SLOTS];
|
||||
|
||||
private SkillListAdapater skillListAdapter;
|
||||
|
||||
/** Called when the activity is first created. */
|
||||
@Override
|
||||
@@ -90,11 +90,14 @@ public final class HeroinfoActivity extends TabActivity {
|
||||
Resources res = getResources();
|
||||
TabHost h = getTabHost();
|
||||
h.addTab(h.newTabSpec("char")
|
||||
.setIndicator(res.getString(R.string.heroinfo_char), res.getDrawable(R.drawable.char_hero)) //TODO: Should change icon
|
||||
.setIndicator(res.getString(R.string.heroinfo_char), res.getDrawable(R.drawable.char_hero))
|
||||
.setContent(R.id.heroinfo_tab1));
|
||||
h.addTab(h.newTabSpec("inv")
|
||||
.setIndicator(res.getString(R.string.heroinfo_inv), res.getDrawable(R.drawable.char_hero)) //TODO: Should change icon
|
||||
h.addTab(h.newTabSpec("skills")
|
||||
.setIndicator(res.getString(R.string.heroinfo_skill), res.getDrawable(R.drawable.ui_icon_skill))
|
||||
.setContent(R.id.heroinfo_tab2));
|
||||
h.addTab(h.newTabSpec("inv")
|
||||
.setIndicator(res.getString(R.string.heroinfo_inv), res.getDrawable(R.drawable.ui_icon_equipment))
|
||||
.setContent(R.id.heroinfo_tab3));
|
||||
String t = world.model.uiSelections.selectedTabHeroInfo;
|
||||
if (t != null && t.length() > 0) {
|
||||
h.setCurrentTabByTag(t);
|
||||
@@ -164,6 +167,16 @@ public final class HeroinfoActivity extends TabActivity {
|
||||
|
||||
inventoryList.setAdapter(new ItemContainerAdapter(this, world.tileStore, container));
|
||||
|
||||
skillListAdapter = new SkillListAdapater(this, world.skills.getAllSkills(), player);
|
||||
ListView skillList = (ListView) findViewById(R.id.heroinfo_listskills_list);
|
||||
skillList.setAdapter(skillListAdapter);
|
||||
skillList.setOnItemClickListener(new OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||
Dialogs.showSkillInfo(HeroinfoActivity.this, (int) id);
|
||||
}
|
||||
});
|
||||
|
||||
update();
|
||||
}
|
||||
|
||||
@@ -207,13 +220,19 @@ public final class HeroinfoActivity extends TabActivity {
|
||||
break;
|
||||
case MainActivity.INTENTREQUEST_LEVELUP:
|
||||
break;
|
||||
case INTENTREQUEST_BULKSELECT_DROP:
|
||||
if (resultCode == Activity.RESULT_OK) {
|
||||
int quantity = data.getExtras().getInt("selectedAmount");
|
||||
int itemTypeID = data.getExtras().getInt("itemTypeID");
|
||||
itemType = world.itemTypes.getItemType(itemTypeID);
|
||||
view.itemController.dropItem(itemType, quantity);
|
||||
}
|
||||
case MainActivity.INTENTREQUEST_BULKSELECT_DROP:
|
||||
if (resultCode != RESULT_OK) break;
|
||||
|
||||
int quantity = data.getExtras().getInt("selectedAmount");
|
||||
int itemTypeID = data.getExtras().getInt("itemTypeID");
|
||||
itemType = world.itemTypes.getItemType(itemTypeID);
|
||||
view.itemController.dropItem(itemType, quantity);
|
||||
break;
|
||||
case MainActivity.INTENTREQUEST_SKILLINFO:
|
||||
if (resultCode != RESULT_OK) break;
|
||||
|
||||
int skillID = data.getExtras().getInt("skillID");
|
||||
player.addSkillLevel(skillID);
|
||||
break;
|
||||
}
|
||||
update();
|
||||
@@ -225,6 +244,24 @@ public final class HeroinfoActivity extends TabActivity {
|
||||
updateWorn();
|
||||
updateLevelup();
|
||||
updateConditions();
|
||||
updateSkillList();
|
||||
}
|
||||
|
||||
private void updateSkillList() {
|
||||
TextView listskills_number_of_increases = (TextView) findViewById(R.id.heroinfo_listskills_number_of_increases);
|
||||
|
||||
int numberOfSkillIncreases = player.availableSkillIncreases;
|
||||
if (numberOfSkillIncreases > 0) {
|
||||
if (numberOfSkillIncreases == 1) {
|
||||
listskills_number_of_increases.setText(R.string.skill_number_of_increases_one);
|
||||
} else {
|
||||
listskills_number_of_increases.setText(getResources().getString(R.string.skill_number_of_increases_several, numberOfSkillIncreases));
|
||||
}
|
||||
listskills_number_of_increases.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
listskills_number_of_increases.setVisibility(View.GONE);
|
||||
}
|
||||
skillListAdapter.notifyDataSetInvalidated();
|
||||
}
|
||||
|
||||
private void updateLevelup() {
|
||||
|
||||
@@ -15,8 +15,8 @@ import com.gpl.rpg.AndorsTrail.R;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.controller.ActorStatsController;
|
||||
import com.gpl.rpg.AndorsTrail.controller.Constants;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.SkillCollection;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Player;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Skills;
|
||||
|
||||
public final class LevelUpActivity extends Activity {
|
||||
private WorldContext world;
|
||||
@@ -77,6 +77,13 @@ public final class LevelUpActivity extends Activity {
|
||||
}
|
||||
});
|
||||
b.setText(getString(R.string.levelup_add_blockchance, Constants.LEVELUP_EFFECT_DEF_CH));
|
||||
|
||||
View v = findViewById(R.id.levelup_adds_new_skillpoint);
|
||||
if (player.nextLevelAddsNewSkillpoint()) {
|
||||
v.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
v.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
private static final int SELECT_HEALTH = 0;
|
||||
@@ -85,6 +92,8 @@ public final class LevelUpActivity extends Activity {
|
||||
private static final int SELECT_DEF_CH = 3;
|
||||
|
||||
public void levelup(int selectionID) {
|
||||
if (LevelUpActivity.this.isFinishing()) return;
|
||||
|
||||
addLevelupEffect(player, selectionID);
|
||||
LevelUpActivity.this.finish();
|
||||
}
|
||||
@@ -106,9 +115,12 @@ public final class LevelUpActivity extends Activity {
|
||||
player.traits.baseCombatTraits.blockChance += Constants.LEVELUP_EFFECT_DEF_CH;
|
||||
break;
|
||||
}
|
||||
if (player.nextLevelAddsNewSkillpoint()) {
|
||||
player.availableSkillIncreases++;
|
||||
}
|
||||
player.level++;
|
||||
|
||||
hpIncrease += player.getSkillLevel(Skills.SKILL_FORTITUDE) * Skills.PER_SKILLPOINT_INCREASE_FORTITUDE_HEALTH;
|
||||
hpIncrease += player.getSkillLevel(SkillCollection.SKILL_FORTITUDE) * SkillCollection.PER_SKILLPOINT_INCREASE_FORTITUDE_HEALTH;
|
||||
player.health.max += hpIncrease;
|
||||
player.traits.maxHP += hpIncrease;
|
||||
player.health.current += hpIncrease;
|
||||
|
||||
@@ -49,6 +49,10 @@ public final class MainActivity extends Activity {
|
||||
public static final int INTENTREQUEST_LEVELUP = 6;
|
||||
public static final int INTENTREQUEST_PREFERENCES = 7;
|
||||
public static final int INTENTREQUEST_SAVEGAME = 8;
|
||||
public static final int INTENTREQUEST_BULKSELECT_BUY = 9;
|
||||
public static final int INTENTREQUEST_BULKSELECT_SELL = 10;
|
||||
public static final int INTENTREQUEST_BULKSELECT_DROP = 11;
|
||||
public static final int INTENTREQUEST_SKILLINFO = 12;
|
||||
|
||||
private ViewContext view;
|
||||
private WorldContext world;
|
||||
@@ -208,6 +212,14 @@ public final class MainActivity extends Activity {
|
||||
view.movementController.placePlayerAt(MapObject.MAPEVENT_NEWMAP, "blackwater_mountain32", "north", 0, 0);
|
||||
}
|
||||
})*/
|
||||
,new DebugButton("exp+=10000", new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View arg0) {
|
||||
world.model.player.addExperience(10000);
|
||||
updateStatus();
|
||||
Toast.makeText(MainActivity.this, "DEBUG: given 10000 exp", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
})
|
||||
,new DebugButton("hp=max", new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View arg0) {
|
||||
|
||||
@@ -25,10 +25,6 @@ import com.gpl.rpg.AndorsTrail.view.ShopItemContainerAdapter;
|
||||
import com.gpl.rpg.AndorsTrail.view.ShopItemContainerAdapter.OnContainerItemClickedListener;
|
||||
|
||||
public final class ShopActivity extends TabActivity implements OnContainerItemClickedListener {
|
||||
|
||||
public static final int INTENTREQUEST_BULKSELECT_BUY = BulkSelectionInterface.BULK_INTERFACE_BUY;
|
||||
public static final int INTENTREQUEST_BULKSELECT_SELL = BulkSelectionInterface.BULK_INTERFACE_SELL;
|
||||
|
||||
private WorldContext world;
|
||||
private Player player;
|
||||
|
||||
@@ -139,14 +135,14 @@ public final class ShopActivity extends TabActivity implements OnContainerItemCl
|
||||
showSellingInterface(itemType);
|
||||
}
|
||||
break;
|
||||
case INTENTREQUEST_BULKSELECT_BUY:
|
||||
case MainActivity.INTENTREQUEST_BULKSELECT_BUY:
|
||||
if (resultCode == Activity.RESULT_OK) {
|
||||
int quantity = data.getExtras().getInt("selectedAmount");
|
||||
int itemTypeID = data.getExtras().getInt("itemTypeID");
|
||||
buy(itemTypeID, quantity);
|
||||
}
|
||||
break;
|
||||
case INTENTREQUEST_BULKSELECT_SELL:
|
||||
case MainActivity.INTENTREQUEST_BULKSELECT_SELL:
|
||||
if (resultCode == Activity.RESULT_OK) {
|
||||
int quantity = data.getExtras().getInt("selectedAmount");
|
||||
int itemTypeID = data.getExtras().getInt("itemTypeID");
|
||||
|
||||
@@ -0,0 +1,94 @@
|
||||
package com.gpl.rpg.AndorsTrail.activity;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||
import com.gpl.rpg.AndorsTrail.R;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.controller.SkillController;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.SkillCollection;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.SkillInfo;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Player;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Resources;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.widget.Button;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
public final class SkillInfoActivity extends Activity {
|
||||
private WorldContext world;
|
||||
private Player player;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
|
||||
this.world = app.world;
|
||||
this.player = world.model.player;
|
||||
|
||||
AndorsTrailApplication.setWindowParameters(this, app.preferences);
|
||||
|
||||
setContentView(R.layout.skill_info_view);
|
||||
|
||||
final Resources res = getResources();
|
||||
final Intent intent = getIntent();
|
||||
final int skillID = intent.getExtras().getInt("skillID");
|
||||
SkillInfo skill = world.skills.getSkill(skillID);
|
||||
|
||||
ImageView skillinfo_image = (ImageView) findViewById(R.id.skillinfo_image);
|
||||
SkillController.setSkillIcon(skillinfo_image, skillID, res);
|
||||
|
||||
TextView skillinfo_title = (TextView) findViewById(R.id.skillinfo_title);
|
||||
skillinfo_title.setText(SkillCollection.getSkillTitle(skillID, res));
|
||||
|
||||
TextView skillinfo_longdescription = (TextView) findViewById(R.id.skillinfo_longdescription);
|
||||
skillinfo_longdescription.setText(SkillCollection.getSkillLongDescription(skillID, res));
|
||||
|
||||
TextView skillinfo_currentlevel = (TextView) findViewById(R.id.skillinfo_currentlevel);
|
||||
if (player.hasSkill(skillID)) {
|
||||
int playerSkillLevel = player.getSkillLevel(skillID);
|
||||
if (skill.hasMaxLevel()) {
|
||||
skillinfo_currentlevel.setText(res.getString(R.string.skill_current_level_with_maximum, playerSkillLevel, skill.maxLevel));
|
||||
} else {
|
||||
skillinfo_currentlevel.setText(res.getString(R.string.skill_current_level, playerSkillLevel));
|
||||
}
|
||||
} else {
|
||||
skillinfo_currentlevel.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
|
||||
TextView skillinfo_prerequisites = (TextView) findViewById(R.id.skillinfo_prerequisites);
|
||||
LinearLayout parent = (LinearLayout) skillinfo_prerequisites.getParent();
|
||||
if (skill.hasLevelupRequirements()) {
|
||||
//skillinfo_prerequisites.setText(SkillInfo.getLongDescription(skillID, res));
|
||||
} else {
|
||||
parent.removeView(skillinfo_prerequisites);
|
||||
}
|
||||
|
||||
Button b = (Button) findViewById(R.id.skillinfoinfo_close);
|
||||
b.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View arg0) {
|
||||
setResult(RESULT_CANCELED);
|
||||
SkillInfoActivity.this.finish();
|
||||
}
|
||||
});
|
||||
|
||||
b = (Button) findViewById(R.id.skillinfoinfo_action);
|
||||
b.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View arg0) {
|
||||
Intent result = new Intent();
|
||||
result.putExtras(intent);
|
||||
setResult(RESULT_OK, result);
|
||||
SkillInfoActivity.this.finish();
|
||||
}
|
||||
});
|
||||
b.setEnabled(SkillController.canLevelupSkill(player, skill));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -5,6 +5,7 @@ import com.gpl.rpg.AndorsTrail.VisualEffectCollection;
|
||||
import com.gpl.rpg.AndorsTrail.conversation.ConversationCollection;
|
||||
import com.gpl.rpg.AndorsTrail.model.ModelContainer;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionTypeCollection;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.SkillCollection;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.MonsterTypeCollection;
|
||||
import com.gpl.rpg.AndorsTrail.model.item.DropListCollection;
|
||||
import com.gpl.rpg.AndorsTrail.model.item.ItemTypeCollection;
|
||||
@@ -21,6 +22,7 @@ public class WorldContext {
|
||||
public final DropListCollection dropLists;
|
||||
public final QuestCollection quests;
|
||||
public final ActorConditionTypeCollection actorConditionsTypes;
|
||||
public final SkillCollection skills;
|
||||
|
||||
//Objectcollections
|
||||
public final TileStore tileStore;
|
||||
@@ -39,6 +41,7 @@ public class WorldContext {
|
||||
this.maps = new MapCollection();
|
||||
this.quests = new QuestCollection();
|
||||
this.actorConditionsTypes = new ActorConditionTypeCollection();
|
||||
this.skills = new SkillCollection();
|
||||
}
|
||||
public WorldContext(WorldContext copy) {
|
||||
this.conversations = copy.conversations;
|
||||
@@ -51,6 +54,7 @@ public class WorldContext {
|
||||
this.quests = copy.quests;
|
||||
this.model = copy.model;
|
||||
this.actorConditionsTypes = copy.actorConditionsTypes;
|
||||
this.skills = copy.skills;
|
||||
}
|
||||
public void reset() {
|
||||
maps.reset();
|
||||
|
||||
@@ -15,12 +15,12 @@ import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.model.AttackResult;
|
||||
import com.gpl.rpg.AndorsTrail.model.ModelContainer;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.SkillCollection;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Actor;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.ActorTraits;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Monster;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.MonsterType;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Player;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Skills;
|
||||
import com.gpl.rpg.AndorsTrail.model.item.ItemTraits_OnUse;
|
||||
import com.gpl.rpg.AndorsTrail.model.item.Loot;
|
||||
import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
|
||||
@@ -215,8 +215,8 @@ public final class CombatController {
|
||||
model.currentMap.remove(killedMonster);
|
||||
context.mainActivity.redrawAll(MainView.REDRAW_ALL_MONSTER_KILLED);
|
||||
|
||||
if (player.getSkillLevel(Skills.SKILL_CLEAVE) > 0) player.ap.setMax();
|
||||
player.health.add(player.getSkillLevel(Skills.SKILL_EATER) * Skills.PER_SKILLPOINT_INCREASE_EATER_HEALTH, false);
|
||||
player.ap.add(player.getSkillLevel(SkillCollection.SKILL_CLEAVE) * SkillCollection.PER_SKILLPOINT_INCREASE_CLEAVE_AP, false);
|
||||
player.health.add(player.getSkillLevel(SkillCollection.SKILL_EATER) * SkillCollection.PER_SKILLPOINT_INCREASE_EATER_HEALTH, false);
|
||||
|
||||
model.statistics.addMonsterKill(killedMonster.monsterType);
|
||||
model.player.addExperience(loot.exp);
|
||||
@@ -247,7 +247,7 @@ public final class CombatController {
|
||||
if (dest == null) return;
|
||||
if (!useAPs(model.player.traits.moveCost)) return;
|
||||
|
||||
int fleeChanceBias = model.player.getSkillLevel(Skills.SKILL_EVASION) * Skills.PER_SKILLPOINT_INCREASE_EVASION_FLEE_CHANCE_PERCENTAGE;
|
||||
int fleeChanceBias = model.player.getSkillLevel(SkillCollection.SKILL_EVASION) * SkillCollection.PER_SKILLPOINT_INCREASE_EVASION_FLEE_CHANCE_PERCENTAGE;
|
||||
if (Constants.roll100(Constants.FLEE_FAIL_CHANCE_PERCENT - fleeChanceBias)) {
|
||||
fleeingFailed();
|
||||
return;
|
||||
|
||||
@@ -11,6 +11,8 @@ public final class Constants {
|
||||
public static final int LEVELUP_EFFECT_ATK_CH = 5;
|
||||
public static final int LEVELUP_EFFECT_ATK_DMG = 1;
|
||||
public static final int LEVELUP_EFFECT_DEF_CH = 3;
|
||||
public static final int FIRST_SKILL_POINT_IS_GIVEN_AT_LEVEL = 3;
|
||||
public static final int NEW_SKILL_POINT_EVERY_N_LEVELS = 4;
|
||||
public static final int MARKET_PRICEFACTOR_PERCENT = 15;
|
||||
public static final int MONSTER_AGGRESSION_CHANCE_PERCENT = 15;
|
||||
public static final int EXP_FACTOR_DAMAGERESISTANCE = 9;
|
||||
|
||||
@@ -8,9 +8,9 @@ import com.gpl.rpg.AndorsTrail.activity.MainActivity;
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.model.ModelContainer;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.SkillCollection;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Monster;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Player;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Skills;
|
||||
import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
|
||||
import com.gpl.rpg.AndorsTrail.model.map.MapObject;
|
||||
import com.gpl.rpg.AndorsTrail.util.Coord;
|
||||
@@ -64,7 +64,7 @@ public final class Controller {
|
||||
view.effectController.waitForCurrentEffect();
|
||||
final Player player = model.player;
|
||||
int lostExp = player.levelExperience.current * Constants.PERCENT_EXP_LOST_WHEN_DIED / 100;
|
||||
lostExp -= lostExp * player.getSkillLevel(Skills.SKILL_LOWER_EXPLOSS) * Skills.PER_SKILLPOINT_INCREASE_EXPLOSS_PERCENT / 100;
|
||||
lostExp -= lostExp * player.getSkillLevel(SkillCollection.SKILL_LOWER_EXPLOSS) * SkillCollection.PER_SKILLPOINT_INCREASE_EXPLOSS_PERCENT / 100;
|
||||
|
||||
if (lostExp < 0) lostExp = 0;
|
||||
player.addExperience(-lostExp);
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.gpl.rpg.AndorsTrail.controller;
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.model.ModelContainer;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Skills;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.SkillCollection;
|
||||
import com.gpl.rpg.AndorsTrail.util.TimedMessageTask;
|
||||
|
||||
public final class GameRoundController implements TimedMessageTask.Callback {
|
||||
@@ -67,7 +67,7 @@ public final class GameRoundController implements TimedMessageTask.Callback {
|
||||
view.actorStatsController.applyConditionsToMonsters(model.currentMap, false);
|
||||
view.actorStatsController.applyConditionsToPlayer(model.player, false);
|
||||
|
||||
model.player.health.add(model.player.getSkillLevel(Skills.SKILL_REGENERATION) * Skills.PER_SKILLPOINT_INCREASE_REGENERATION, false);
|
||||
model.player.health.add(model.player.getSkillLevel(SkillCollection.SKILL_REGENERATION) * SkillCollection.PER_SKILLPOINT_INCREASE_REGENERATION, false);
|
||||
}
|
||||
|
||||
private void onNewTick() {
|
||||
|
||||
@@ -9,8 +9,8 @@ import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.model.CombatTraits;
|
||||
import com.gpl.rpg.AndorsTrail.model.ModelContainer;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.SkillCollection;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Player;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Skills;
|
||||
import com.gpl.rpg.AndorsTrail.model.item.Inventory;
|
||||
import com.gpl.rpg.AndorsTrail.model.item.ItemContainer;
|
||||
import com.gpl.rpg.AndorsTrail.model.item.ItemTraits_OnUse;
|
||||
@@ -193,7 +193,7 @@ public final class ItemController {
|
||||
|
||||
private static int getMarketPriceFactor(Player player) {
|
||||
return Constants.MARKET_PRICEFACTOR_PERCENT
|
||||
- player.getSkillLevel(Skills.SKILL_BARTER) * Skills.PER_SKILLPOINT_INCREASE_BARTER_PRICEFACTOR_PERCENTAGE;
|
||||
- player.getSkillLevel(SkillCollection.SKILL_BARTER) * SkillCollection.PER_SKILLPOINT_INCREASE_BARTER_PRICEFACTOR_PERCENTAGE;
|
||||
}
|
||||
public static int getBuyingPrice(Player player, ItemType itemType) {
|
||||
return itemType.baseMarketCost + itemType.baseMarketCost * getMarketPriceFactor(player) / 100;
|
||||
|
||||
@@ -3,8 +3,8 @@ package com.gpl.rpg.AndorsTrail.controller;
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.model.ModelContainer;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.SkillCollection;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Monster;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Skills;
|
||||
import com.gpl.rpg.AndorsTrail.model.map.MonsterSpawnArea;
|
||||
import com.gpl.rpg.AndorsTrail.util.Coord;
|
||||
|
||||
@@ -40,7 +40,7 @@ public final class MonsterMovementController {
|
||||
if (!m.isAgressive()) continue;
|
||||
if (!m.rectPosition.isAdjacentTo(model.player.position)) continue;
|
||||
|
||||
int aggressionChanceBias = model.player.getSkillLevel(Skills.SKILL_EVASION) * Skills.PER_SKILLPOINT_INCREASE_EVASION_MONSTER_ATTACK_CHANCE_PERCENTAGE;
|
||||
int aggressionChanceBias = model.player.getSkillLevel(SkillCollection.SKILL_EVASION) * SkillCollection.PER_SKILLPOINT_INCREASE_EVASION_MONSTER_ATTACK_CHANCE_PERCENTAGE;
|
||||
if (Constants.roll100(Constants.MONSTER_AGGRESSION_CHANCE_PERCENT - aggressionChanceBias)) {
|
||||
view.combatController.monsterSteppedOnPlayer(m);
|
||||
return;
|
||||
|
||||
@@ -1,24 +1,29 @@
|
||||
package com.gpl.rpg.AndorsTrail.controller;
|
||||
|
||||
import android.content.res.Resources;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.R;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.SkillCollection;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.SkillInfo;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Player;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Skills;
|
||||
import com.gpl.rpg.AndorsTrail.model.item.ItemTypeCollection;
|
||||
import com.gpl.rpg.AndorsTrail.model.item.DropList.DropItem;
|
||||
|
||||
public final class SkillController {
|
||||
public static void applySkillEffects(Player player) {
|
||||
player.traits.attackChance += Skills.PER_SKILLPOINT_INCREASE_WEAPON_CHANCE * player.getSkillLevel(Skills.SKILL_WEAPON_CHANCE);
|
||||
player.traits.damagePotential.addToMax(Skills.PER_SKILLPOINT_INCREASE_WEAPON_DAMAGE_MAX * player.getSkillLevel(Skills.SKILL_WEAPON_DMG));
|
||||
player.traits.damagePotential.add(Skills.PER_SKILLPOINT_INCREASE_WEAPON_DAMAGE_MIN * player.getSkillLevel(Skills.SKILL_WEAPON_DMG), false);
|
||||
player.traits.blockChance += Skills.PER_SKILLPOINT_INCREASE_DODGE * player.getSkillLevel(Skills.SKILL_DODGE);
|
||||
player.traits.damageResistance += Skills.PER_SKILLPOINT_INCREASE_BARKSKIN * player.getSkillLevel(Skills.SKILL_BARKSKIN);
|
||||
player.traits.attackChance += SkillCollection.PER_SKILLPOINT_INCREASE_WEAPON_CHANCE * player.getSkillLevel(SkillCollection.SKILL_WEAPON_CHANCE);
|
||||
player.traits.damagePotential.addToMax(SkillCollection.PER_SKILLPOINT_INCREASE_WEAPON_DAMAGE_MAX * player.getSkillLevel(SkillCollection.SKILL_WEAPON_DMG));
|
||||
player.traits.damagePotential.add(SkillCollection.PER_SKILLPOINT_INCREASE_WEAPON_DAMAGE_MIN * player.getSkillLevel(SkillCollection.SKILL_WEAPON_DMG), false);
|
||||
player.traits.blockChance += SkillCollection.PER_SKILLPOINT_INCREASE_DODGE * player.getSkillLevel(SkillCollection.SKILL_DODGE);
|
||||
player.traits.damageResistance += SkillCollection.PER_SKILLPOINT_INCREASE_BARKSKIN * player.getSkillLevel(SkillCollection.SKILL_BARKSKIN);
|
||||
if (player.traits.hasCriticalChanceEffect()) {
|
||||
player.traits.criticalChance += player.traits.criticalChance * Skills.PER_SKILLPOINT_INCREASE_MORE_CRITICALS_PERCENT * player.getSkillLevel(Skills.SKILL_MORE_CRITICALS) / 100;
|
||||
player.traits.criticalChance += player.traits.criticalChance * SkillCollection.PER_SKILLPOINT_INCREASE_MORE_CRITICALS_PERCENT * player.getSkillLevel(SkillCollection.SKILL_MORE_CRITICALS) / 100;
|
||||
}
|
||||
if (player.traits.hasCriticalMultiplierEffect()) {
|
||||
player.traits.criticalMultiplier += player.traits.criticalMultiplier * Skills.PER_SKILLPOINT_INCREASE_BETTER_CRITICALS_PERCENT * player.getSkillLevel(Skills.SKILL_BETTER_CRITICALS) / 100;
|
||||
player.traits.criticalMultiplier += player.traits.criticalMultiplier * SkillCollection.PER_SKILLPOINT_INCREASE_BETTER_CRITICALS_PERCENT * player.getSkillLevel(SkillCollection.SKILL_BETTER_CRITICALS) / 100;
|
||||
}
|
||||
player.ap.addToMax(Skills.PER_SKILLPOINT_INCREASE_SPEED * player.getSkillLevel(Skills.SKILL_SPEED));
|
||||
player.ap.addToMax(SkillCollection.PER_SKILLPOINT_INCREASE_SPEED * player.getSkillLevel(SkillCollection.SKILL_SPEED));
|
||||
/*final int berserkLevel = player.getSkillLevel(Skills.SKILL_BERSERKER);
|
||||
if (berserkLevel > 0) {
|
||||
final int berserkHealth = player.health.max * Skills.BERSERKER_STARTS_AT_HEALTH_PERCENT / 100;
|
||||
@@ -31,23 +36,23 @@ public final class SkillController {
|
||||
}*/
|
||||
}
|
||||
|
||||
public static int getChanceRollBias(DropItem item, Player player) {
|
||||
public static int getDropChanceRollBias(DropItem item, Player player) {
|
||||
if (player == null) return 0;
|
||||
|
||||
if (item.itemType.id == ItemTypeCollection.ITEMTYPE_GOLD) {
|
||||
return getRollBias(item, player, Skills.SKILL_COINFINDER, Skills.PER_SKILLPOINT_INCREASE_COINFINDER_CHANCE_PERCENT);
|
||||
return getRollBias(item, player, SkillCollection.SKILL_COINFINDER, SkillCollection.PER_SKILLPOINT_INCREASE_COINFINDER_CHANCE_PERCENT);
|
||||
} else if (!item.itemType.isOrdinaryItem()) {
|
||||
return getRollBias(item, player, Skills.SKILL_MAGICFINDER, Skills.PER_SKILLPOINT_INCREASE_MAGICFINDER_CHANCE_PERCENT);
|
||||
return getRollBias(item, player, SkillCollection.SKILL_MAGICFINDER, SkillCollection.PER_SKILLPOINT_INCREASE_MAGICFINDER_CHANCE_PERCENT);
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
public static int getQuantityRollBias(DropItem item, Player player) {
|
||||
public static int getDropQuantityRollBias(DropItem item, Player player) {
|
||||
if (player == null) return 0;
|
||||
if (item.itemType.id != ItemTypeCollection.ITEMTYPE_GOLD) return 0;
|
||||
|
||||
return getRollBias(item, player, Skills.SKILL_COINFINDER, Skills.PER_SKILLPOINT_INCREASE_COINFINDER_QUANTITY_PERCENT);
|
||||
return getRollBias(item, player, SkillCollection.SKILL_COINFINDER, SkillCollection.PER_SKILLPOINT_INCREASE_COINFINDER_QUANTITY_PERCENT);
|
||||
}
|
||||
|
||||
private static int getRollBias(DropItem item, Player player, int skill, int perSkillpointIncrease) {
|
||||
@@ -55,4 +60,21 @@ public final class SkillController {
|
||||
if (skillLevel <= 0) return 0;
|
||||
return item.chance.current * skillLevel * perSkillpointIncrease / 100;
|
||||
}
|
||||
|
||||
|
||||
public static boolean canLevelupSkill(Player player, SkillInfo skill) {
|
||||
if (player.availableSkillIncreases <= 0) return false;
|
||||
if (skill.isQuestSkill) return false;
|
||||
if (skill.hasMaxLevel()) {
|
||||
int playerSkillLevel = player.getSkillLevel(skill.id);
|
||||
if (playerSkillLevel >= skill.maxLevel) return false;
|
||||
}
|
||||
//if (skill.id == SkillCollection.SKILL_COINFINDER) return false;
|
||||
//if (skill.id == SkillCollection.SKILL_DODGE) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
public static void setSkillIcon(ImageView iconImageView, int skillID, Resources res) {
|
||||
iconImageView.setImageResource(R.drawable.ui_icon_skill);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,172 @@
|
||||
package com.gpl.rpg.AndorsTrail.model.ability;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
|
||||
import android.content.res.Resources;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.R;
|
||||
import com.gpl.rpg.AndorsTrail.controller.Constants;
|
||||
|
||||
public final class SkillCollection {
|
||||
public static final int SKILL_WEAPON_CHANCE = 0;
|
||||
public static final int SKILL_WEAPON_DMG = 1;
|
||||
public static final int SKILL_BARTER = 2;
|
||||
public static final int SKILL_DODGE = 3; // + BC
|
||||
public static final int SKILL_BARKSKIN = 4; // Dmg resist
|
||||
public static final int SKILL_MORE_CRITICALS = 5;
|
||||
public static final int SKILL_BETTER_CRITICALS = 6;
|
||||
public static final int SKILL_SPEED = 7; // Raises max ap
|
||||
public static final int SKILL_COINFINDER = 8;
|
||||
public static final int SKILL_MORE_EXP = 9;
|
||||
public static final int SKILL_CLEAVE = 10; // +10ap on kill
|
||||
public static final int SKILL_EATER = 11; // +1hp per kill
|
||||
public static final int SKILL_FORTITUDE = 12; // +N hp per levelup
|
||||
public static final int SKILL_EVASION = 13; // increase successful flee chance & reduce chance of monster attack
|
||||
public static final int SKILL_REGENERATION = 14; // +N hp per round
|
||||
public static final int SKILL_LOWER_EXPLOSS = 15;
|
||||
public static final int SKILL_MAGICFINDER = 16;
|
||||
//public static final int SKILL_BERSERKER = 17; // <=20%hp increases AC and DMG
|
||||
|
||||
public static final int NUM_SKILLS = SKILL_MAGICFINDER+1;
|
||||
|
||||
//public static final int BERSERKER_STARTS_AT_HEALTH_PERCENT = 20;
|
||||
|
||||
public static final int PER_SKILLPOINT_INCREASE_WEAPON_CHANCE = 12;
|
||||
public static final int PER_SKILLPOINT_INCREASE_WEAPON_DAMAGE_MAX = 1;
|
||||
public static final int PER_SKILLPOINT_INCREASE_WEAPON_DAMAGE_MIN = 1;
|
||||
public static final int PER_SKILLPOINT_INCREASE_DODGE = 9;
|
||||
public static final int PER_SKILLPOINT_INCREASE_BARKSKIN = 1;
|
||||
public static final int PER_SKILLPOINT_INCREASE_MORE_CRITICALS_PERCENT = 20;
|
||||
public static final int PER_SKILLPOINT_INCREASE_BETTER_CRITICALS_PERCENT = 50;
|
||||
public static final int PER_SKILLPOINT_INCREASE_SPEED = 1;
|
||||
public static final int PER_SKILLPOINT_INCREASE_BARTER_PRICEFACTOR_PERCENTAGE = 5;
|
||||
public static final int PER_SKILLPOINT_INCREASE_COINFINDER_CHANCE_PERCENT = 30;
|
||||
public static final int PER_SKILLPOINT_INCREASE_MAGICFINDER_CHANCE_PERCENT = 100;
|
||||
public static final int PER_SKILLPOINT_INCREASE_COINFINDER_QUANTITY_PERCENT = 50;
|
||||
public static final int PER_SKILLPOINT_INCREASE_MORE_EXP_PERCENT = 10;
|
||||
public static final int PER_SKILLPOINT_INCREASE_CLEAVE_AP = 10;
|
||||
public static final int PER_SKILLPOINT_INCREASE_EATER_HEALTH = 1;
|
||||
public static final int PER_SKILLPOINT_INCREASE_FORTITUDE_HEALTH = 2;
|
||||
public static final int PER_SKILLPOINT_INCREASE_EVASION_FLEE_CHANCE_PERCENTAGE = 5;
|
||||
public static final int PER_SKILLPOINT_INCREASE_EVASION_MONSTER_ATTACK_CHANCE_PERCENTAGE = 5;
|
||||
public static final int PER_SKILLPOINT_INCREASE_REGENERATION = 1;
|
||||
public static final int PER_SKILLPOINT_INCREASE_EXPLOSS_PERCENT = 20;
|
||||
/*public static final int PER_SKILLPOINT_INCREASE_BERSERKER_WEAPON_CHANCE = 15;
|
||||
public static final int PER_SKILLPOINT_INCREASE_BERSERKER_WEAPON_DAMAGE_MAX = 1;
|
||||
public static final int PER_SKILLPOINT_INCREASE_BERSERKER_WEAPON_DAMAGE_MIN = 1;
|
||||
public static final int PER_SKILLPOINT_INCREASE_BERSERKER_DODGE = 9;*/
|
||||
|
||||
|
||||
private final HashMap<Integer, SkillInfo> skills = new HashMap<Integer, SkillInfo>();
|
||||
private void initializeSkill(SkillInfo skill) {
|
||||
skills.put(skill.id, skill);
|
||||
}
|
||||
public void initialize() {
|
||||
initializeSkill(new SkillInfo(SKILL_WEAPON_CHANCE, SkillInfo.MAXLEVEL_NONE, false));
|
||||
initializeSkill(new SkillInfo(SKILL_WEAPON_DMG, SkillInfo.MAXLEVEL_NONE, false));
|
||||
initializeSkill(new SkillInfo(SKILL_BARTER, Constants.MARKET_PRICEFACTOR_PERCENT / PER_SKILLPOINT_INCREASE_BARTER_PRICEFACTOR_PERCENTAGE, false));
|
||||
initializeSkill(new SkillInfo(SKILL_DODGE, SkillInfo.MAXLEVEL_NONE, false));
|
||||
initializeSkill(new SkillInfo(SKILL_BARKSKIN, SkillInfo.MAXLEVEL_NONE, false));
|
||||
initializeSkill(new SkillInfo(SKILL_MORE_CRITICALS, SkillInfo.MAXLEVEL_NONE, false));
|
||||
initializeSkill(new SkillInfo(SKILL_BETTER_CRITICALS, SkillInfo.MAXLEVEL_NONE, false));
|
||||
initializeSkill(new SkillInfo(SKILL_SPEED, SkillInfo.MAXLEVEL_NONE, false));
|
||||
initializeSkill(new SkillInfo(SKILL_COINFINDER, SkillInfo.MAXLEVEL_NONE, false));
|
||||
initializeSkill(new SkillInfo(SKILL_MORE_EXP, SkillInfo.MAXLEVEL_NONE, false));
|
||||
initializeSkill(new SkillInfo(SKILL_CLEAVE, SkillInfo.MAXLEVEL_NONE, false));
|
||||
initializeSkill(new SkillInfo(SKILL_EATER, SkillInfo.MAXLEVEL_NONE, false));
|
||||
initializeSkill(new SkillInfo(SKILL_FORTITUDE, SkillInfo.MAXLEVEL_NONE, false));
|
||||
initializeSkill(new SkillInfo(SKILL_EVASION, Constants.FLEE_FAIL_CHANCE_PERCENT / PER_SKILLPOINT_INCREASE_EVASION_FLEE_CHANCE_PERCENTAGE, false));
|
||||
initializeSkill(new SkillInfo(SKILL_REGENERATION, SkillInfo.MAXLEVEL_NONE, false));
|
||||
initializeSkill(new SkillInfo(SKILL_LOWER_EXPLOSS, 100 / PER_SKILLPOINT_INCREASE_EXPLOSS_PERCENT, false));
|
||||
initializeSkill(new SkillInfo(SKILL_MAGICFINDER, SkillInfo.MAXLEVEL_NONE, false));
|
||||
//initializeSkill(new SkillInfo(SKILL_BERSERKER, SkillInfo.MAXLEVEL_NONE);
|
||||
}
|
||||
public SkillInfo getSkill(int skillID) {
|
||||
return skills.get(skillID);
|
||||
}
|
||||
|
||||
public Collection<SkillInfo> getAllSkills() {
|
||||
return skills.values();
|
||||
}
|
||||
|
||||
public static String getSkillTitle(final int skill, final Resources res) {
|
||||
return res.getString(getSkillTitleResourceID(skill));
|
||||
}
|
||||
|
||||
private static int getSkillTitleResourceID(int skill) {
|
||||
switch (skill) {
|
||||
case SkillCollection.SKILL_WEAPON_CHANCE: return R.string.skill_title_weapon_chance;
|
||||
case SkillCollection.SKILL_WEAPON_DMG: return R.string.skill_title_weapon_dmg;
|
||||
case SkillCollection.SKILL_BARTER: return R.string.skill_title_barter;
|
||||
case SkillCollection.SKILL_DODGE: return R.string.skill_title_dodge;
|
||||
case SkillCollection.SKILL_BARKSKIN: return R.string.skill_title_barkskin;
|
||||
case SkillCollection.SKILL_MORE_CRITICALS: return R.string.skill_title_more_criticals;
|
||||
case SkillCollection.SKILL_BETTER_CRITICALS: return R.string.skill_title_better_criticals;
|
||||
case SkillCollection.SKILL_SPEED: return R.string.skill_title_speed;
|
||||
case SkillCollection.SKILL_COINFINDER: return R.string.skill_title_coinfinder;
|
||||
case SkillCollection.SKILL_MORE_EXP: return R.string.skill_title_more_exp;
|
||||
case SkillCollection.SKILL_CLEAVE: return R.string.skill_title_cleave;
|
||||
case SkillCollection.SKILL_EATER: return R.string.skill_title_eater;
|
||||
case SkillCollection.SKILL_FORTITUDE: return R.string.skill_title_fortitude;
|
||||
case SkillCollection.SKILL_EVASION: return R.string.skill_title_evasion;
|
||||
case SkillCollection.SKILL_REGENERATION: return R.string.skill_title_regeneration;
|
||||
case SkillCollection.SKILL_LOWER_EXPLOSS: return R.string.skill_title_lower_exploss;
|
||||
case SkillCollection.SKILL_MAGICFINDER: return R.string.skill_title_magicfinder;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
public static String getSkillShortDescription(final int skill, final Resources res) {
|
||||
return res.getString(getSkillShortDescriptionResourceID(skill));
|
||||
}
|
||||
|
||||
private static int getSkillShortDescriptionResourceID(int skill) {
|
||||
switch (skill) {
|
||||
case SkillCollection.SKILL_WEAPON_CHANCE: return R.string.skill_shortdescription_weapon_chance;
|
||||
case SkillCollection.SKILL_WEAPON_DMG: return R.string.skill_shortdescription_weapon_dmg;
|
||||
case SkillCollection.SKILL_BARTER: return R.string.skill_shortdescription_barter;
|
||||
case SkillCollection.SKILL_DODGE: return R.string.skill_shortdescription_dodge;
|
||||
case SkillCollection.SKILL_BARKSKIN: return R.string.skill_shortdescription_barkskin;
|
||||
case SkillCollection.SKILL_MORE_CRITICALS: return R.string.skill_shortdescription_more_criticals;
|
||||
case SkillCollection.SKILL_BETTER_CRITICALS: return R.string.skill_shortdescription_better_criticals;
|
||||
case SkillCollection.SKILL_SPEED: return R.string.skill_shortdescription_speed;
|
||||
case SkillCollection.SKILL_COINFINDER: return R.string.skill_shortdescription_coinfinder;
|
||||
case SkillCollection.SKILL_MORE_EXP: return R.string.skill_shortdescription_more_exp;
|
||||
case SkillCollection.SKILL_CLEAVE: return R.string.skill_shortdescription_cleave;
|
||||
case SkillCollection.SKILL_EATER: return R.string.skill_shortdescription_eater;
|
||||
case SkillCollection.SKILL_FORTITUDE: return R.string.skill_shortdescription_fortitude;
|
||||
case SkillCollection.SKILL_EVASION: return R.string.skill_shortdescription_evasion;
|
||||
case SkillCollection.SKILL_REGENERATION: return R.string.skill_shortdescription_regeneration;
|
||||
case SkillCollection.SKILL_LOWER_EXPLOSS: return R.string.skill_shortdescription_lower_exploss;
|
||||
case SkillCollection.SKILL_MAGICFINDER: return R.string.skill_shortdescription_magicfinder;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
public static String getSkillLongDescription(final int skill, final Resources res) {
|
||||
switch (skill) {
|
||||
case SkillCollection.SKILL_WEAPON_CHANCE: return res.getString(R.string.skill_longdescription_weapon_chance, SkillCollection.PER_SKILLPOINT_INCREASE_WEAPON_CHANCE);
|
||||
case SkillCollection.SKILL_WEAPON_DMG: return res.getString(R.string.skill_longdescription_weapon_dmg, SkillCollection.PER_SKILLPOINT_INCREASE_WEAPON_DAMAGE_MIN);
|
||||
case SkillCollection.SKILL_BARTER: return res.getString(R.string.skill_longdescription_barter, SkillCollection.PER_SKILLPOINT_INCREASE_BARTER_PRICEFACTOR_PERCENTAGE);
|
||||
case SkillCollection.SKILL_DODGE: return res.getString(R.string.skill_longdescription_dodge, SkillCollection.PER_SKILLPOINT_INCREASE_DODGE);
|
||||
case SkillCollection.SKILL_BARKSKIN: return res.getString(R.string.skill_longdescription_barkskin, SkillCollection.PER_SKILLPOINT_INCREASE_BARKSKIN);
|
||||
case SkillCollection.SKILL_MORE_CRITICALS: return res.getString(R.string.skill_longdescription_more_criticals, SkillCollection.PER_SKILLPOINT_INCREASE_MORE_CRITICALS_PERCENT);
|
||||
case SkillCollection.SKILL_BETTER_CRITICALS: return res.getString(R.string.skill_longdescription_better_criticals, SkillCollection.PER_SKILLPOINT_INCREASE_BETTER_CRITICALS_PERCENT);
|
||||
case SkillCollection.SKILL_SPEED: return res.getString(R.string.skill_longdescription_speed, SkillCollection.PER_SKILLPOINT_INCREASE_SPEED);
|
||||
case SkillCollection.SKILL_COINFINDER: return res.getString(R.string.skill_longdescription_coinfinder, SkillCollection.PER_SKILLPOINT_INCREASE_COINFINDER_CHANCE_PERCENT, SkillCollection.PER_SKILLPOINT_INCREASE_COINFINDER_QUANTITY_PERCENT);
|
||||
case SkillCollection.SKILL_MORE_EXP: return res.getString(R.string.skill_longdescription_more_exp, SkillCollection.PER_SKILLPOINT_INCREASE_MORE_EXP_PERCENT);
|
||||
case SkillCollection.SKILL_CLEAVE: return res.getString(R.string.skill_longdescription_cleave, SkillCollection.PER_SKILLPOINT_INCREASE_CLEAVE_AP);
|
||||
case SkillCollection.SKILL_EATER: return res.getString(R.string.skill_longdescription_eater, SkillCollection.PER_SKILLPOINT_INCREASE_EATER_HEALTH);
|
||||
case SkillCollection.SKILL_FORTITUDE: return res.getString(R.string.skill_longdescription_fortitude, SkillCollection.PER_SKILLPOINT_INCREASE_FORTITUDE_HEALTH);
|
||||
case SkillCollection.SKILL_EVASION: return res.getString(R.string.skill_longdescription_evasion, SkillCollection.PER_SKILLPOINT_INCREASE_EVASION_FLEE_CHANCE_PERCENTAGE, SkillCollection.PER_SKILLPOINT_INCREASE_EVASION_MONSTER_ATTACK_CHANCE_PERCENTAGE);
|
||||
case SkillCollection.SKILL_REGENERATION: return res.getString(R.string.skill_longdescription_regeneration, SkillCollection.PER_SKILLPOINT_INCREASE_REGENERATION);
|
||||
case SkillCollection.SKILL_LOWER_EXPLOSS: return res.getString(R.string.skill_longdescription_lower_exploss, SkillCollection.PER_SKILLPOINT_INCREASE_EXPLOSS_PERCENT);
|
||||
case SkillCollection.SKILL_MAGICFINDER: return res.getString(R.string.skill_longdescription_magicfinder, SkillCollection.PER_SKILLPOINT_INCREASE_MAGICFINDER_CHANCE_PERCENT);
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.gpl.rpg.AndorsTrail.model.ability;
|
||||
|
||||
public class SkillInfo {
|
||||
public static final int MAXLEVEL_NONE = -1;
|
||||
public final int id;
|
||||
public final int maxLevel;
|
||||
public final boolean isQuestSkill;
|
||||
public SkillInfo(int id, int maxLevel, boolean isQuestSkill) {
|
||||
this.id = id;
|
||||
this.maxLevel = maxLevel;
|
||||
this.isQuestSkill = isQuestSkill;
|
||||
}
|
||||
|
||||
public boolean hasMaxLevel() {
|
||||
if (maxLevel == MAXLEVEL_NONE) return false;
|
||||
else return true;
|
||||
}
|
||||
|
||||
public boolean hasLevelupRequirements() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/*private static final class SkillLevelRequirement {
|
||||
public static final int REQUIREMENT_TYPE_SKILL_LEVEL = 0;
|
||||
public static final int REQUIREMENT_TYPE_EXPERIENCE_LEVEL = 1;
|
||||
public static final int REQUIREMENT_TYPE_COMBAT_STAT = 2;
|
||||
public final int requirementType;
|
||||
//public final int ;
|
||||
public final int value;
|
||||
}
|
||||
|
||||
public static final class Stats {
|
||||
public static final int STAT_MAX_HP = 0;
|
||||
}*/
|
||||
}
|
||||
@@ -6,6 +6,7 @@ import java.io.IOException;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.controller.Constants;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.SkillCollection;
|
||||
import com.gpl.rpg.AndorsTrail.model.item.Loot;
|
||||
import com.gpl.rpg.AndorsTrail.util.Coord;
|
||||
import com.gpl.rpg.AndorsTrail.util.CoordRect;
|
||||
@@ -29,7 +30,7 @@ public final class Monster extends Actor {
|
||||
|
||||
public void createLoot(Loot container, Player player) {
|
||||
int exp = monsterType.exp;
|
||||
exp += exp * player.getSkillLevel(Skills.SKILL_MORE_EXP) * Skills.PER_SKILLPOINT_INCREASE_MORE_EXP_PERCENT / 100;
|
||||
exp += exp * player.getSkillLevel(SkillCollection.SKILL_MORE_EXP) * SkillCollection.PER_SKILLPOINT_INCREASE_MORE_EXP_PERCENT / 100;
|
||||
container.exp += exp;
|
||||
if (monsterType.dropList == null) return;
|
||||
monsterType.dropList.createRandomLoot(container, player);
|
||||
|
||||
@@ -10,6 +10,7 @@ import java.util.Map.Entry;
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.controller.ActorStatsController;
|
||||
import com.gpl.rpg.AndorsTrail.controller.Constants;
|
||||
import com.gpl.rpg.AndorsTrail.model.CombatTraits;
|
||||
import com.gpl.rpg.AndorsTrail.model.item.DropListCollection;
|
||||
import com.gpl.rpg.AndorsTrail.model.item.Inventory;
|
||||
@@ -32,9 +33,10 @@ public final class Player extends Actor {
|
||||
private final HashMap<String, HashSet<Integer> > questProgress = new HashMap<String, HashSet<Integer> >();
|
||||
public int useItemCost;
|
||||
public int reequipCost;
|
||||
private final int[] skillLevels = new int[Skills.NUM_SKILLS];
|
||||
private final HashMap<Integer, Integer> skillLevels = new HashMap<Integer, Integer>();
|
||||
public String spawnMap;
|
||||
public String spawnPlace;
|
||||
public int availableSkillIncreases = 0;
|
||||
|
||||
public Player() {
|
||||
super(new ActorTraits(TileStore.CHAR_HERO, new Size(1, 1), new CombatTraits(), DEFAULT_PLAYER_MOVECOST, null), true);
|
||||
@@ -66,6 +68,8 @@ public final class Player extends Actor {
|
||||
|
||||
level = 1;
|
||||
totalExperience = 1;
|
||||
availableSkillIncreases = 0;
|
||||
skillLevels.clear();
|
||||
recalculateLevelExperience();
|
||||
|
||||
Loot startItems = new Loot();
|
||||
@@ -107,8 +111,6 @@ public final class Player extends Actor {
|
||||
levelExperience.add(v, true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static int getRequiredExperience(int currentLevel) {
|
||||
int v = 0;
|
||||
for(int i = 1; i < currentLevel; ++i) {
|
||||
@@ -127,14 +129,33 @@ public final class Player extends Actor {
|
||||
return levelExperience.isMax();
|
||||
}
|
||||
|
||||
public int getSkillLevel(int skill) {
|
||||
return skillLevels[skill];
|
||||
public int getSkillLevel(int skillID) {
|
||||
if (!skillLevels.containsKey(skillID)) return 0;
|
||||
else return skillLevels.get(skillID);
|
||||
}
|
||||
public boolean hasSkill(int skill) {
|
||||
return skillLevels[skill] > 0;
|
||||
public boolean hasSkill(int skillID) {
|
||||
return getSkillLevel(skillID) > 0;
|
||||
}
|
||||
public void addSkillLevel(int skill) {
|
||||
skillLevels[skill] += 1;
|
||||
public void addSkillLevel(int skillID) {
|
||||
if (!hasAvailableSkillpoints()) return;
|
||||
if (!skillLevels.containsKey(skillID)) skillLevels.put(skillID, 1);
|
||||
else skillLevels.put(skillID, skillLevels.get(skillID) + 1);
|
||||
--availableSkillIncreases;
|
||||
ActorStatsController.recalculatePlayerCombatTraits(this);
|
||||
}
|
||||
public boolean nextLevelAddsNewSkillpoint() {
|
||||
return thisLevelAddsNewSkillpoint(level + 1);
|
||||
}
|
||||
public static boolean thisLevelAddsNewSkillpoint(int level) {
|
||||
return ((level - Constants.FIRST_SKILL_POINT_IS_GIVEN_AT_LEVEL) % Constants.NEW_SKILL_POINT_EVERY_N_LEVELS == 0);
|
||||
}
|
||||
public static int getExpectedNumberOfSkillpointsForLevel(int level) {
|
||||
level -= Constants.FIRST_SKILL_POINT_IS_GIVEN_AT_LEVEL;
|
||||
if (level < 0) return 0;
|
||||
return 1 + (int) Math.floor((float) level / Constants.NEW_SKILL_POINT_EVERY_N_LEVELS);
|
||||
}
|
||||
public boolean hasAvailableSkillpoints() {
|
||||
return availableSkillIncreases > 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -199,7 +220,12 @@ public final class Player extends Actor {
|
||||
this.reequipCost = src.readInt();
|
||||
final int size2 = src.readInt();
|
||||
for(int i = 0; i < size2; ++i) {
|
||||
this.skillLevels[i] = src.readInt();
|
||||
if (fileversion <= 21) {
|
||||
this.skillLevels.put(i, src.readInt());
|
||||
} else {
|
||||
final int skillID = src.readInt();
|
||||
this.skillLevels.put(skillID, src.readInt());
|
||||
}
|
||||
}
|
||||
this.spawnMap = src.readUTF();
|
||||
this.spawnPlace = src.readUTF();
|
||||
@@ -224,7 +250,11 @@ public final class Player extends Actor {
|
||||
}
|
||||
}
|
||||
|
||||
ActorStatsController.recalculatePlayerCombatTraits(this);
|
||||
if (fileversion <= 21) {
|
||||
this.availableSkillIncreases = getExpectedNumberOfSkillpointsForLevel(this.level);
|
||||
} else {
|
||||
this.availableSkillIncreases = src.readInt();
|
||||
}
|
||||
}
|
||||
|
||||
public void writeToParcel(DataOutputStream dest, int flags) throws IOException {
|
||||
@@ -236,9 +266,10 @@ public final class Player extends Actor {
|
||||
inventory.writeToParcel(dest, flags);
|
||||
dest.writeInt(useItemCost);
|
||||
dest.writeInt(reequipCost);
|
||||
dest.writeInt(Skills.NUM_SKILLS);
|
||||
for(int i = 0; i < Skills.NUM_SKILLS; ++i) {
|
||||
dest.writeInt(this.skillLevels[i]);
|
||||
dest.writeInt(skillLevels.size());
|
||||
for (Entry<Integer, Integer> skillLevel: skillLevels.entrySet()) {
|
||||
dest.writeInt(skillLevel.getKey());
|
||||
dest.writeInt(skillLevel.getValue());
|
||||
}
|
||||
dest.writeUTF(spawnMap);
|
||||
dest.writeUTF(spawnPlace);
|
||||
@@ -250,6 +281,7 @@ public final class Player extends Actor {
|
||||
dest.writeInt(progress);
|
||||
}
|
||||
}
|
||||
dest.writeInt(availableSkillIncreases);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,50 +0,0 @@
|
||||
package com.gpl.rpg.AndorsTrail.model.actor;
|
||||
|
||||
public final class Skills {
|
||||
public static final int SKILL_WEAPON_CHANCE = 0;
|
||||
public static final int SKILL_WEAPON_DMG = 1;
|
||||
public static final int SKILL_BARTER = 2;
|
||||
public static final int SKILL_DODGE = 3; // + BC
|
||||
public static final int SKILL_BARKSKIN = 4; // Dmg resist
|
||||
public static final int SKILL_MORE_CRITICALS = 5;
|
||||
public static final int SKILL_BETTER_CRITICALS = 6;
|
||||
public static final int SKILL_SPEED = 7; // Raises max ap
|
||||
public static final int SKILL_COINFINDER = 8;
|
||||
public static final int SKILL_MORE_EXP = 9;
|
||||
public static final int SKILL_CLEAVE = 10; // +10ap on kill
|
||||
public static final int SKILL_EATER = 11; // +1hp per kill
|
||||
//public static final int SKILL_BERSERKER = 12; // <=20%hp increases AC and DMG
|
||||
public static final int SKILL_FORTITUDE = 13; // +N hp per levelup
|
||||
public static final int SKILL_EVASION = 14; // increase successful flee chance & reduce chance of monster attack
|
||||
public static final int SKILL_REGENERATION = 15; // +N hp per round
|
||||
public static final int SKILL_LOWER_EXPLOSS = 16;
|
||||
public static final int SKILL_MAGICFINDER = 17;
|
||||
|
||||
public static final int NUM_SKILLS = SKILL_MAGICFINDER+1;
|
||||
|
||||
//public static final int BERSERKER_STARTS_AT_HEALTH_PERCENT = 20;
|
||||
|
||||
public static final int PER_SKILLPOINT_INCREASE_WEAPON_CHANCE = 15;
|
||||
public static final int PER_SKILLPOINT_INCREASE_WEAPON_DAMAGE_MAX = 1;
|
||||
public static final int PER_SKILLPOINT_INCREASE_WEAPON_DAMAGE_MIN = 1;
|
||||
public static final int PER_SKILLPOINT_INCREASE_DODGE = 9;
|
||||
public static final int PER_SKILLPOINT_INCREASE_BARKSKIN = 1;
|
||||
public static final int PER_SKILLPOINT_INCREASE_MORE_CRITICALS_PERCENT = 20;
|
||||
public static final int PER_SKILLPOINT_INCREASE_BETTER_CRITICALS_PERCENT = 50;
|
||||
public static final int PER_SKILLPOINT_INCREASE_SPEED = 1;
|
||||
/*public static final int PER_SKILLPOINT_INCREASE_BERSERKER_WEAPON_CHANCE = 15;
|
||||
public static final int PER_SKILLPOINT_INCREASE_BERSERKER_WEAPON_DAMAGE_MAX = 1;
|
||||
public static final int PER_SKILLPOINT_INCREASE_BERSERKER_WEAPON_DAMAGE_MIN = 1;
|
||||
public static final int PER_SKILLPOINT_INCREASE_BERSERKER_DODGE = 9;*/
|
||||
public static final int PER_SKILLPOINT_INCREASE_BARTER_PRICEFACTOR_PERCENTAGE = 5;
|
||||
public static final int PER_SKILLPOINT_INCREASE_COINFINDER_CHANCE_PERCENT = 50;
|
||||
public static final int PER_SKILLPOINT_INCREASE_MAGICFINDER_CHANCE_PERCENT = 100;
|
||||
public static final int PER_SKILLPOINT_INCREASE_COINFINDER_QUANTITY_PERCENT = 100;
|
||||
public static final int PER_SKILLPOINT_INCREASE_MORE_EXP_PERCENT = 10;
|
||||
public static final int PER_SKILLPOINT_INCREASE_EATER_HEALTH = 1;
|
||||
public static final int PER_SKILLPOINT_INCREASE_FORTITUDE_HEALTH = 2;
|
||||
public static final int PER_SKILLPOINT_INCREASE_EVASION_FLEE_CHANCE_PERCENTAGE = 5;
|
||||
public static final int PER_SKILLPOINT_INCREASE_EVASION_MONSTER_ATTACK_CHANCE_PERCENTAGE = 5;
|
||||
public static final int PER_SKILLPOINT_INCREASE_REGENERATION = 1;
|
||||
public static final int PER_SKILLPOINT_INCREASE_EXPLOSS_PERCENT = 30;
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
package com.gpl.rpg.AndorsTrail.model.actor;
|
||||
|
||||
@@ -22,10 +22,10 @@ public final class DropList {
|
||||
public void createRandomLoot(Loot loot, Player player) {
|
||||
for (DropItem item : items) {
|
||||
|
||||
final int chanceRollBias = SkillController.getChanceRollBias(item, player);
|
||||
final int chanceRollBias = SkillController.getDropChanceRollBias(item, player);
|
||||
if (Constants.rollResult(item.chance, chanceRollBias)) {
|
||||
|
||||
final int quantityRollBias = SkillController.getQuantityRollBias(item, player);
|
||||
final int quantityRollBias = SkillController.getDropQuantityRollBias(item, player);
|
||||
int quantity = Constants.rollValue(item.quantity, quantityRollBias);
|
||||
|
||||
if (quantity != 0) {
|
||||
|
||||
@@ -33,7 +33,7 @@ public final class ResourceLoader {
|
||||
/*tiles.iconID_CHAR_HERO = */loader.prepareTileID(R.drawable.char_hero, 0);
|
||||
/*tiles.iconID_selection_red = */loader.prepareTileID(R.drawable.ui_selections, 0);
|
||||
/*tiles.iconID_selection_yellow = */loader.prepareTileID(R.drawable.ui_selections, 1);
|
||||
/*tiles.iconID_groundbag = */loader.prepareTileID(R.drawable.map_tiles_2_7, 13+16*0);
|
||||
/*tiles.iconID_groundbag = */loader.prepareTileID(R.drawable.ui_icon_equipment, 0);
|
||||
/*tiles.iconID_boxopened = */loader.prepareTileID(R.drawable.items_tiles, 8+14*29);
|
||||
/*tiles.iconID_boxclosed = */loader.prepareTileID(R.drawable.items_tiles, 7+14*29);
|
||||
/*tiles.iconID_selection_blue = */loader.prepareTileID(R.drawable.ui_selections, 2);
|
||||
@@ -42,6 +42,11 @@ public final class ResourceLoader {
|
||||
|
||||
|
||||
// ========================================================================
|
||||
// Load skills
|
||||
world.skills.initialize();
|
||||
|
||||
|
||||
// ========================================================================
|
||||
// Load condition types
|
||||
final TypedArray conditionsToLoad = r.obtainTypedArray(actorConditionsResourceId);
|
||||
for (int i = 0; i < conditionsToLoad.length(); ++i) {
|
||||
@@ -146,6 +151,7 @@ public final class ResourceLoader {
|
||||
loader.prepareTileset(R.drawable.char_hero, "char_hero", src_sz1x1, defaultTileSize);
|
||||
|
||||
loader.prepareTileset(R.drawable.ui_selections, "ui_selections", new Size(5, 1), defaultTileSize);
|
||||
loader.prepareTileset(R.drawable.ui_icon_equipment, "ui_icon_equipment", src_sz1x1, defaultTileSize);
|
||||
|
||||
loader.prepareTileset(R.drawable.items_tiles, "items_tiles", new Size(14, 30), defaultTileSize);
|
||||
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
package com.gpl.rpg.AndorsTrail.view;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.R;
|
||||
import com.gpl.rpg.AndorsTrail.controller.SkillController;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.SkillCollection;
|
||||
import com.gpl.rpg.AndorsTrail.model.ability.SkillInfo;
|
||||
import com.gpl.rpg.AndorsTrail.model.actor.Player;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
public final class SkillListAdapater extends ArrayAdapter<SkillInfo> {
|
||||
private final Resources r;
|
||||
private final Player player;
|
||||
|
||||
public SkillListAdapater(Context context, Collection<SkillInfo> skills, Player player) {
|
||||
super(context, 0, filterNondisplayedSkills(skills, player));
|
||||
this.r = context.getResources();
|
||||
this.player = player;
|
||||
}
|
||||
|
||||
private static List<SkillInfo> filterNondisplayedSkills(Collection<SkillInfo> skills, Player player) {
|
||||
final ArrayList<SkillInfo> result = new ArrayList<SkillInfo>();
|
||||
for (SkillInfo skill : skills) {
|
||||
if (shouldDisplaySkill(skill, player)) result.add(skill);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private static boolean shouldDisplaySkill(SkillInfo skill, Player player) {
|
||||
if (player.hasSkill(skill.id)) return true;
|
||||
if (skill.isQuestSkill) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getView(final int position, View convertView, ViewGroup parent) {
|
||||
final SkillInfo skill = getItem(position);
|
||||
final int skillID = skill.id;
|
||||
|
||||
View result = convertView;
|
||||
if (result == null) {
|
||||
result = View.inflate(getContext(), R.layout.skill_listentry_view, null);
|
||||
}
|
||||
|
||||
final ImageView icon = (ImageView) result.findViewById(R.id.skillentry_icon);
|
||||
final TextView title = (TextView) result.findViewById(R.id.skillentry_title);
|
||||
final TextView description = (TextView) result.findViewById(R.id.skillentry_description);
|
||||
|
||||
SkillController.setSkillIcon(icon, skillID, r);
|
||||
String skillTitle = SkillCollection.getSkillTitle(skillID, r);
|
||||
final int skillLevel = player.getSkillLevel(skillID);
|
||||
if (skillLevel > 0) {
|
||||
skillTitle += " (" + skillLevel + ")";
|
||||
}
|
||||
title.setText(skillTitle);
|
||||
description.setText(SkillCollection.getSkillShortDescription(skillID, r));
|
||||
|
||||
boolean enabled = true;
|
||||
if (player.hasAvailableSkillpoints()) {
|
||||
enabled = SkillController.canLevelupSkill(player, skill);
|
||||
} else {
|
||||
enabled = player.hasSkill(skillID);
|
||||
}
|
||||
icon.setEnabled(enabled);
|
||||
title.setEnabled(enabled);
|
||||
description.setEnabled(enabled);
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user