mirror of
https://github.com/OMGeeky/andors-trail.git
synced 2026-02-23 15:38:29 +01:00
Quickitem patch by Oli Samyn (issue 6).
git-svn-id: https://andors-trail.googlecode.com/svn/trunk@90 08aca716-68be-ccc6-4d58-36f5abd142ac
This commit is contained in:
@@ -174,12 +174,16 @@ public final class R {
|
||||
public static final int heroinfo_worn_ringright=0x7f0b001e;
|
||||
public static final int heroinfo_worn_shield=0x7f0b001d;
|
||||
public static final int heroinfo_worn_weapon=0x7f0b001b;
|
||||
public static final int inv_assign_slot1=0x7f0b009f;
|
||||
public static final int inv_assign_slot2=0x7f0b00a0;
|
||||
public static final int inv_assign_slot3=0x7f0b00a1;
|
||||
public static final int inv_image=0x7f0b0031;
|
||||
public static final int inv_menu_drop=0x7f0b0099;
|
||||
public static final int inv_menu_equip=0x7f0b0096;
|
||||
public static final int inv_menu_info=0x7f0b0095;
|
||||
public static final int inv_menu_unequip=0x7f0b0097;
|
||||
public static final int inv_menu_use=0x7f0b0098;
|
||||
public static final int inv_menu_assign=0x7f0b009e;
|
||||
public static final int inv_menu_drop=0x7f0b009d;
|
||||
public static final int inv_menu_equip=0x7f0b009a;
|
||||
public static final int inv_menu_info=0x7f0b0099;
|
||||
public static final int inv_menu_unequip=0x7f0b009b;
|
||||
public static final int inv_menu_use=0x7f0b009c;
|
||||
public static final int inv_text=0x7f0b0032;
|
||||
public static final int inventorylist_root=0x7f0b001f;
|
||||
public static final int itemeffect_onequip_change_maxap=0x7f0b0036;
|
||||
@@ -220,66 +224,70 @@ public final class R {
|
||||
public static final int loadsave_slot_4=0x7f0b0058;
|
||||
public static final int loadsave_title=0x7f0b0053;
|
||||
public static final int loadsave_titlelayout=0x7f0b0051;
|
||||
public static final int main_combatview=0x7f0b005b;
|
||||
public static final int main_combatview=0x7f0b005c;
|
||||
public static final int main_container=0x7f0b0059;
|
||||
public static final int main_mainview=0x7f0b005c;
|
||||
public static final int main_mainview=0x7f0b005d;
|
||||
public static final int main_quickitemview=0x7f0b005b;
|
||||
public static final int main_statusview=0x7f0b005a;
|
||||
public static final int monsterencounter_attack=0x7f0b0062;
|
||||
public static final int monsterencounter_cancel=0x7f0b0064;
|
||||
public static final int monsterencounter_description=0x7f0b0061;
|
||||
public static final int monsterencounter_image=0x7f0b005f;
|
||||
public static final int monsterencounter_info=0x7f0b0063;
|
||||
public static final int monsterencounter_title=0x7f0b0060;
|
||||
public static final int monsterinfo_close=0x7f0b006b;
|
||||
public static final int monsterinfo_currenttraits=0x7f0b0069;
|
||||
public static final int monsterinfo_difficulty=0x7f0b0067;
|
||||
public static final int monsterinfo_healthbar=0x7f0b0068;
|
||||
public static final int monsterinfo_image=0x7f0b0065;
|
||||
public static final int monsterinfo_onhiteffects=0x7f0b006a;
|
||||
public static final int monsterinfo_title=0x7f0b0066;
|
||||
public static final int questlog_contents=0x7f0b006d;
|
||||
public static final int questlog_entrytext=0x7f0b006e;
|
||||
public static final int questlog_includecompleted=0x7f0b006c;
|
||||
public static final int rangebar_label=0x7f0b006f;
|
||||
public static final int rangebar_progress=0x7f0b0070;
|
||||
public static final int rangebar_text=0x7f0b0071;
|
||||
public static final int shop_buy_gc=0x7f0b0073;
|
||||
public static final int shop_buy_list=0x7f0b0074;
|
||||
public static final int shop_sell_gc=0x7f0b0076;
|
||||
public static final int shop_sell_list=0x7f0b0077;
|
||||
public static final int shop_tab1=0x7f0b0072;
|
||||
public static final int shop_tab2=0x7f0b0075;
|
||||
public static final int shopitem_image=0x7f0b0078;
|
||||
public static final int shopitem_infobutton=0x7f0b007a;
|
||||
public static final int shopitem_shopbutton=0x7f0b0079;
|
||||
public static final int shopitem_text=0x7f0b007b;
|
||||
public static final int startscreen_about=0x7f0b0082;
|
||||
public static final int startscreen_continue=0x7f0b007f;
|
||||
public static final int startscreen_currenthero=0x7f0b007c;
|
||||
public static final int startscreen_enterheroname=0x7f0b007d;
|
||||
public static final int startscreen_load=0x7f0b0081;
|
||||
public static final int startscreen_newgame=0x7f0b0080;
|
||||
public static final int startscreen_quit=0x7f0b0083;
|
||||
public static final int startscreen_version=0x7f0b007e;
|
||||
public static final int status_image=0x7f0b0084;
|
||||
public static final int statusview_activeconditions=0x7f0b005e;
|
||||
public static final int statusview_exp=0x7f0b0086;
|
||||
public static final int statusview_health=0x7f0b0085;
|
||||
public static final int statusview_statustext=0x7f0b005d;
|
||||
public static final int traitsinfo_attack_chance=0x7f0b008a;
|
||||
public static final int traitsinfo_attack_cost=0x7f0b0088;
|
||||
public static final int traitsinfo_attack_damage=0x7f0b008c;
|
||||
public static final int traitsinfo_attack_row1=0x7f0b0087;
|
||||
public static final int traitsinfo_attack_row2=0x7f0b0089;
|
||||
public static final int traitsinfo_attack_row3=0x7f0b008b;
|
||||
public static final int traitsinfo_critical_row1=0x7f0b008d;
|
||||
public static final int traitsinfo_critical_row2=0x7f0b008f;
|
||||
public static final int traitsinfo_criticalhit_chance=0x7f0b008e;
|
||||
public static final int traitsinfo_criticalhit_multiplier=0x7f0b0090;
|
||||
public static final int traitsinfo_defense_chance=0x7f0b0092;
|
||||
public static final int traitsinfo_defense_damageresist=0x7f0b0094;
|
||||
public static final int traitsinfo_defense_row1=0x7f0b0091;
|
||||
public static final int traitsinfo_defense_row2=0x7f0b0093;
|
||||
public static final int monsterencounter_attack=0x7f0b0063;
|
||||
public static final int monsterencounter_cancel=0x7f0b0065;
|
||||
public static final int monsterencounter_description=0x7f0b0062;
|
||||
public static final int monsterencounter_image=0x7f0b0060;
|
||||
public static final int monsterencounter_info=0x7f0b0064;
|
||||
public static final int monsterencounter_title=0x7f0b0061;
|
||||
public static final int monsterinfo_close=0x7f0b006c;
|
||||
public static final int monsterinfo_currenttraits=0x7f0b006a;
|
||||
public static final int monsterinfo_difficulty=0x7f0b0068;
|
||||
public static final int monsterinfo_healthbar=0x7f0b0069;
|
||||
public static final int monsterinfo_image=0x7f0b0066;
|
||||
public static final int monsterinfo_onhiteffects=0x7f0b006b;
|
||||
public static final int monsterinfo_title=0x7f0b0067;
|
||||
public static final int questlog_contents=0x7f0b006e;
|
||||
public static final int questlog_entrytext=0x7f0b006f;
|
||||
public static final int questlog_includecompleted=0x7f0b006d;
|
||||
public static final int quickitemview_item1=0x7f0b0070;
|
||||
public static final int quickitemview_item2=0x7f0b0071;
|
||||
public static final int quickitemview_item3=0x7f0b0072;
|
||||
public static final int rangebar_label=0x7f0b0073;
|
||||
public static final int rangebar_progress=0x7f0b0074;
|
||||
public static final int rangebar_text=0x7f0b0075;
|
||||
public static final int shop_buy_gc=0x7f0b0077;
|
||||
public static final int shop_buy_list=0x7f0b0078;
|
||||
public static final int shop_sell_gc=0x7f0b007a;
|
||||
public static final int shop_sell_list=0x7f0b007b;
|
||||
public static final int shop_tab1=0x7f0b0076;
|
||||
public static final int shop_tab2=0x7f0b0079;
|
||||
public static final int shopitem_image=0x7f0b007c;
|
||||
public static final int shopitem_infobutton=0x7f0b007e;
|
||||
public static final int shopitem_shopbutton=0x7f0b007d;
|
||||
public static final int shopitem_text=0x7f0b007f;
|
||||
public static final int startscreen_about=0x7f0b0086;
|
||||
public static final int startscreen_continue=0x7f0b0083;
|
||||
public static final int startscreen_currenthero=0x7f0b0080;
|
||||
public static final int startscreen_enterheroname=0x7f0b0081;
|
||||
public static final int startscreen_load=0x7f0b0085;
|
||||
public static final int startscreen_newgame=0x7f0b0084;
|
||||
public static final int startscreen_quit=0x7f0b0087;
|
||||
public static final int startscreen_version=0x7f0b0082;
|
||||
public static final int status_image=0x7f0b0088;
|
||||
public static final int statusview_activeconditions=0x7f0b005f;
|
||||
public static final int statusview_exp=0x7f0b008a;
|
||||
public static final int statusview_health=0x7f0b0089;
|
||||
public static final int statusview_statustext=0x7f0b005e;
|
||||
public static final int traitsinfo_attack_chance=0x7f0b008e;
|
||||
public static final int traitsinfo_attack_cost=0x7f0b008c;
|
||||
public static final int traitsinfo_attack_damage=0x7f0b0090;
|
||||
public static final int traitsinfo_attack_row1=0x7f0b008b;
|
||||
public static final int traitsinfo_attack_row2=0x7f0b008d;
|
||||
public static final int traitsinfo_attack_row3=0x7f0b008f;
|
||||
public static final int traitsinfo_critical_row1=0x7f0b0091;
|
||||
public static final int traitsinfo_critical_row2=0x7f0b0093;
|
||||
public static final int traitsinfo_criticalhit_chance=0x7f0b0092;
|
||||
public static final int traitsinfo_criticalhit_multiplier=0x7f0b0094;
|
||||
public static final int traitsinfo_defense_chance=0x7f0b0096;
|
||||
public static final int traitsinfo_defense_damageresist=0x7f0b0098;
|
||||
public static final int traitsinfo_defense_row1=0x7f0b0095;
|
||||
public static final int traitsinfo_defense_row2=0x7f0b0097;
|
||||
}
|
||||
public static final class layout {
|
||||
public static final int about=0x7f030000;
|
||||
@@ -302,12 +310,13 @@ public final class R {
|
||||
public static final int monsterinfo=0x7f030011;
|
||||
public static final int questlog=0x7f030012;
|
||||
public static final int questlogentry=0x7f030013;
|
||||
public static final int rangebar=0x7f030014;
|
||||
public static final int shop=0x7f030015;
|
||||
public static final int shopitemview=0x7f030016;
|
||||
public static final int startscreen=0x7f030017;
|
||||
public static final int statusview=0x7f030018;
|
||||
public static final int traitsinfoview=0x7f030019;
|
||||
public static final int quickitemview=0x7f030014;
|
||||
public static final int rangebar=0x7f030015;
|
||||
public static final int shop=0x7f030016;
|
||||
public static final int shopitemview=0x7f030017;
|
||||
public static final int startscreen=0x7f030018;
|
||||
public static final int statusview=0x7f030019;
|
||||
public static final int traitsinfoview=0x7f03001a;
|
||||
}
|
||||
public static final class menu {
|
||||
public static final int inventoryitem=0x7f0a0000;
|
||||
@@ -391,7 +400,7 @@ public final class R {
|
||||
public static final int conversation_rewardgold=0x7f0500cd;
|
||||
public static final int conversation_rewarditem=0x7f0500cf;
|
||||
public static final int conversation_rewarditems=0x7f0500d0;
|
||||
public static final int conversation_title=0x7f05011d;
|
||||
public static final int conversation_title=0x7f050121;
|
||||
public static final int conversationlist_alynndir=0x7f050025;
|
||||
public static final int conversationlist_ambelie=0x7f050029;
|
||||
public static final int conversationlist_crossglen=0x7f050004;
|
||||
@@ -486,6 +495,10 @@ public final class R {
|
||||
public static final int heroinfo_totalexperience=0x7f050072;
|
||||
public static final int heroinfo_wear=0x7f05006d;
|
||||
public static final int heroinfo_wornequipment=0x7f050073;
|
||||
public static final int inventory_assign=0x7f05011c;
|
||||
public static final int inventory_assign_slot1=0x7f05011d;
|
||||
public static final int inventory_assign_slot2=0x7f05011e;
|
||||
public static final int inventory_assign_slot3=0x7f05011f;
|
||||
public static final int inventory_drop=0x7f050090;
|
||||
public static final int inventory_equip=0x7f05008d;
|
||||
public static final int inventory_info=0x7f05008c;
|
||||
@@ -546,7 +559,7 @@ public final class R {
|
||||
public static final int itemlist_rings=0x7f050039;
|
||||
public static final int itemlist_v068=0x7f050041;
|
||||
public static final int itemlist_weapons=0x7f050038;
|
||||
public static final int key_required=0x7f05011c;
|
||||
public static final int key_required=0x7f050120;
|
||||
public static final int levelup_add_attackchance=0x7f0500e0;
|
||||
public static final int levelup_add_attackchance_description=0x7f0500e1;
|
||||
public static final int levelup_add_attackdamage=0x7f0500e2;
|
||||
|
||||
25
AndorsTrail/res/layout-land/quickitemview.xml
Normal file
25
AndorsTrail/res/layout-land/quickitemview.xml
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical" android:gravity="bottom|left">
|
||||
<ImageButton
|
||||
android:id="@+id/quickitemview_item1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/smalltext_buttonheight"
|
||||
android:textSize="@dimen/actionbar_text"
|
||||
/>
|
||||
<ImageButton
|
||||
android:id="@+id/quickitemview_item2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/smalltext_buttonheight"
|
||||
android:textSize="@dimen/actionbar_text"
|
||||
/>
|
||||
<ImageButton
|
||||
android:id="@+id/quickitemview_item3"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/smalltext_buttonheight"
|
||||
android:textSize="@dimen/actionbar_text"
|
||||
/>
|
||||
</LinearLayout>
|
||||
@@ -12,6 +12,14 @@
|
||||
android:layout_alignParentBottom="true"
|
||||
/>
|
||||
|
||||
<com.gpl.rpg.AndorsTrail.view.QuickitemView
|
||||
android:id="@+id/main_quickitemview"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:layout_above="@id/main_statusview"
|
||||
android:visibility="gone"
|
||||
/>
|
||||
|
||||
<com.gpl.rpg.AndorsTrail.view.CombatView
|
||||
android:id="@+id/main_combatview"
|
||||
android:layout_width="fill_parent"
|
||||
|
||||
26
AndorsTrail/res/layout/quickitemview.xml
Normal file
26
AndorsTrail/res/layout/quickitemview.xml
Normal file
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:orientation="horizontal"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="bottom|center_horizontal">
|
||||
<ImageButton
|
||||
android:id="@+id/quickitemview_item1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/smalltext_buttonheight"
|
||||
android:textSize="@dimen/actionbar_text"
|
||||
/>
|
||||
<ImageButton
|
||||
android:id="@+id/quickitemview_item2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/smalltext_buttonheight"
|
||||
android:textSize="@dimen/actionbar_text"
|
||||
/>
|
||||
<ImageButton
|
||||
android:id="@+id/quickitemview_item3"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/smalltext_buttonheight"
|
||||
android:textSize="@dimen/actionbar_text"
|
||||
/>
|
||||
</LinearLayout>
|
||||
@@ -6,4 +6,11 @@
|
||||
<item android:title="@string/inventory_unequip" android:id="@+id/inv_menu_unequip" android:visible="false" />
|
||||
<item android:title="@string/inventory_use" android:id="@+id/inv_menu_use" android:visible="false" />
|
||||
<item android:title="@string/inventory_drop" android:id="@+id/inv_menu_drop" />
|
||||
<item android:id="@+id/inv_menu_assign" android:title="@string/inventory_assign" android:visible="false">
|
||||
<menu>
|
||||
<item android:id="@+id/inv_assign_slot1" android:title="@string/inventory_assign_slot1"></item>
|
||||
<item android:id="@+id/inv_assign_slot2" android:title="@string/inventory_assign_slot2"></item>
|
||||
<item android:id="@+id/inv_assign_slot3" android:title="@string/inventory_assign_slot3"></item>
|
||||
</menu>
|
||||
</item>
|
||||
</menu>
|
||||
|
||||
@@ -5,12 +5,6 @@
|
||||
{gold|items_tiles:220|Pièces d\'or|30|1|||||||||||||||||||||||||||||||||};
|
||||
</string>
|
||||
|
||||
<string name="itemlist_debug">
|
||||
[searchTag|iconID|name|category|baseMarketCost|hasEquipEffect|equip_boostMaxHP|equip_boostMaxAP|equip_moveCostPenalty|equip_attackCost|equip_attackChance|equip_criticalChance|equip_criticalMultiplier|equip_attackDamage_Min|equip_attackDamage_Max|equip_blockChance|equip_damageResistance|equip_conditions[condition|magnitude|]|hasUseEffect|use_boostHP_Min|use_boostHP_Max|use_boostAP_Min|use_boostAP_Max|use_conditionsSource[condition|magnitude|duration|chance|]|hasHitEffect|hit_boostHP_Min|hit_boostHP_Max|hit_boostAP_Min|hit_boostAP_Max|hit_conditionsSource[condition|magnitude|duration|chance|]|hit_conditionsTarget[condition|magnitude|duration|chance|]|hasKillEffect|kill_boostHP_Min|kill_boostHP_Max|kill_boostAP_Min|kill_boostAP_Max|kill_conditionsSource[condition|magnitude|duration|chance|]|];
|
||||
{debug_dagger1|items_tiles:90|Dague coeur noir|0|6|1||||2|100|30|3|5|10|||||||||||||||||||||||};
|
||||
{debug_ring1|items_tiles:270|Anneau coeur noir|7|3|1|||||50|||10|10|||||||||||||||||||||||};
|
||||
</string>
|
||||
|
||||
<string name="itemlist_weapons">
|
||||
[searchTag|iconID|name|category|baseMarketCost|hasEquipEffect|equip_boostMaxHP|equip_boostMaxAP|equip_moveCostPenalty|equip_attackCost|equip_attackChance|equip_criticalChance|equip_criticalMultiplier|equip_attackDamage_Min|equip_attackDamage_Max|equip_blockChance|equip_damageResistance|equip_conditions[condition|magnitude|]|hasUseEffect|use_boostHP_Min|use_boostHP_Max|use_boostAP_Min|use_boostAP_Max|use_conditionsSource[condition|magnitude|duration|chance|]|hasHitEffect|hit_boostHP_Min|hit_boostHP_Max|hit_boostAP_Min|hit_boostAP_Max|hit_conditionsSource[condition|magnitude|duration|chance|]|hit_conditionsTarget[condition|magnitude|duration|chance|]|hasKillEffect|kill_boostHP_Min|kill_boostHP_Max|kill_boostAP_Min|kill_boostAP_Max|kill_conditionsSource[condition|magnitude|duration|chance|]|];
|
||||
{club1|items_tiles:126|Massue en bois|0|7|1||||5|10|||0|1|||||||||||||||||||||||};
|
||||
|
||||
@@ -210,6 +210,7 @@
|
||||
Additional maps done by michischmid<br />
|
||||
Additional programming by Samuel Plentz<br />
|
||||
Additional programming by Uwe Jugel<br />
|
||||
Additional programming by Oli Samyn<br />
|
||||
Additional graphics by Karvis<br />
|
||||
Russian translation by Dreamer...<br />
|
||||
Italian translation by k6blue and liogiu<br />
|
||||
@@ -348,4 +349,9 @@
|
||||
<item>2.0f</item>
|
||||
</string-array>
|
||||
|
||||
<string name="inventory_assign">Assign quick slot</string>
|
||||
<string name="inventory_assign_slot1">Slot 1</string>
|
||||
<string name="inventory_assign_slot2">Slot 2</string>
|
||||
<string name="inventory_assign_slot3">Slot 3</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 = 18;
|
||||
public static final int CURRENT_VERSION = 19;
|
||||
public static final String CURRENT_VERSION_DISPLAY = "0.6.9dev";
|
||||
|
||||
public final WorldContext world = new WorldContext();
|
||||
|
||||
@@ -62,6 +62,8 @@ public final class HeroinfoActivity extends TabActivity {
|
||||
private TextView heroinfo_stats_defense;
|
||||
private RangeBar rangebar_hp;
|
||||
private RangeBar rangebar_exp;
|
||||
|
||||
private ItemType last_selected_item; // Workaround android bug #7139
|
||||
|
||||
private final ImageView[] wornItemImage = new ImageView[Inventory.NUM_WORN_SLOTS];
|
||||
private final int[] defaultWornItemImageResourceIDs = new int[Inventory.NUM_WORN_SLOTS];
|
||||
@@ -289,10 +291,14 @@ public final class HeroinfoActivity extends TabActivity {
|
||||
switch (v.getId()) {
|
||||
case R.id.inventorylist_root:
|
||||
inflater.inflate(R.menu.inventoryitem, menu);
|
||||
if (type.isUsable()) menu.findItem(R.id.inv_menu_use).setVisible(true);
|
||||
if (type.isUsable()){
|
||||
menu.findItem(R.id.inv_menu_use).setVisible(true);
|
||||
menu.findItem(R.id.inv_menu_assign).setVisible(true);
|
||||
}
|
||||
if (type.isEquippable()) menu.findItem(R.id.inv_menu_equip).setVisible(true);
|
||||
break;
|
||||
}
|
||||
last_selected_item = null;
|
||||
}
|
||||
|
||||
private int getSelectedID(AdapterContextMenuInfo info) {
|
||||
@@ -321,6 +327,18 @@ public final class HeroinfoActivity extends TabActivity {
|
||||
case R.id.inv_menu_use:
|
||||
view.itemController.useItem(getSelectedItemType(info));
|
||||
break;
|
||||
case R.id.inv_menu_assign:
|
||||
last_selected_item = getSelectedItemType(info);
|
||||
break;
|
||||
case R.id.inv_assign_slot1:
|
||||
view.itemController.setQuickItem(last_selected_item, 0);
|
||||
break;
|
||||
case R.id.inv_assign_slot2:
|
||||
view.itemController.setQuickItem(last_selected_item, 1);
|
||||
break;
|
||||
case R.id.inv_assign_slot3:
|
||||
view.itemController.setQuickItem(last_selected_item, 2);
|
||||
break;
|
||||
default:
|
||||
return super.onContextItemSelected(item);
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ import com.gpl.rpg.AndorsTrail.util.Coord;
|
||||
import com.gpl.rpg.AndorsTrail.util.L;
|
||||
import com.gpl.rpg.AndorsTrail.view.CombatView;
|
||||
import com.gpl.rpg.AndorsTrail.view.MainView;
|
||||
import com.gpl.rpg.AndorsTrail.view.QuickitemView;
|
||||
import com.gpl.rpg.AndorsTrail.view.StatusView;
|
||||
|
||||
import android.app.Activity;
|
||||
@@ -50,6 +51,7 @@ public final class MainActivity extends Activity {
|
||||
public MainView mainview;
|
||||
public StatusView statusview;
|
||||
public CombatView combatview;
|
||||
public QuickitemView quickitemview;
|
||||
public LinearLayout activeConditions;
|
||||
|
||||
private static final int NUM_MESSAGES = 3;
|
||||
@@ -73,6 +75,7 @@ public final class MainActivity extends Activity {
|
||||
mainview = (MainView) findViewById(R.id.main_mainview);
|
||||
statusview = (StatusView) findViewById(R.id.main_statusview);
|
||||
combatview = (CombatView) findViewById(R.id.main_combatview);
|
||||
quickitemview = (QuickitemView) findViewById(R.id.main_quickitemview);
|
||||
activeConditions = (LinearLayout) findViewById(R.id.statusview_activeconditions);
|
||||
|
||||
statusText = (TextView) findViewById(R.id.statusview_statustext);
|
||||
@@ -131,6 +134,8 @@ public final class MainActivity extends Activity {
|
||||
})
|
||||
});
|
||||
}
|
||||
quickitemview.refreshQuickitems();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -139,6 +144,7 @@ public final class MainActivity extends Activity {
|
||||
switch (requestCode) {
|
||||
case INTENTREQUEST_HEROINFO:
|
||||
combatview.updatePlayerAP(world.model.player.ap);
|
||||
quickitemview.refreshQuickitems();
|
||||
break;
|
||||
case INTENTREQUEST_MONSTERENCOUNTER:
|
||||
if (resultCode == Activity.RESULT_OK) {
|
||||
@@ -303,6 +309,9 @@ public final class MainActivity extends Activity {
|
||||
statusText.setText(sb.toString());
|
||||
statusText.setVisibility(View.VISIBLE);
|
||||
}
|
||||
public void refreshQuickitems() {
|
||||
quickitemview.refreshQuickitems();
|
||||
}
|
||||
public void clearMessages() {
|
||||
for(int i = 0; i < NUM_MESSAGES; ++i) {
|
||||
messages[i] = "";
|
||||
|
||||
@@ -46,6 +46,8 @@ public final class CombatController {
|
||||
|
||||
public void enterCombat(int beginTurnAs) {
|
||||
context.mainActivity.combatview.setVisibility(View.VISIBLE);
|
||||
context.mainActivity.quickitemview.setVisibility(View.VISIBLE);
|
||||
context.mainActivity.quickitemview.bringToFront();
|
||||
context.mainActivity.combatview.bringToFront();
|
||||
model.uiSelections.isInCombat = true;
|
||||
killedMonsterBags.clear();
|
||||
@@ -58,6 +60,7 @@ public final class CombatController {
|
||||
public void exitCombat(boolean pickupLootBags) {
|
||||
context.effectController.waitForCurrentEffect();
|
||||
setCombatSelection(null, null);
|
||||
context.mainActivity.quickitemview.setVisibility(View.GONE);
|
||||
context.mainActivity.combatview.setVisibility(View.GONE);
|
||||
model.uiSelections.isInCombat = false;
|
||||
context.mainActivity.clearMessages();
|
||||
|
||||
@@ -219,4 +219,16 @@ public final class ItemController {
|
||||
merchant.removeItem(itemType.id);
|
||||
model.statistics.addGoldSpent(price);
|
||||
}
|
||||
|
||||
public void quickitemUse(int quickSlotId) {
|
||||
useItem(model.player.inventory.quickitem[quickSlotId]);
|
||||
view.mainActivity.statusview.updateStatus();
|
||||
view.mainActivity.combatview.updatePlayerAP(model.player.ap);
|
||||
view.mainActivity.refreshQuickitems();
|
||||
}
|
||||
|
||||
public void setQuickItem(ItemType itemType, int quickSlotId) {
|
||||
model.player.inventory.quickitem[quickSlotId] = itemType;
|
||||
view.mainActivity.refreshQuickitems();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,12 +5,14 @@ import java.io.DataOutputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.view.QuickitemView;
|
||||
|
||||
public final class Inventory extends ItemContainer {
|
||||
|
||||
public int gold = 0;
|
||||
public static final int NUM_WORN_SLOTS = ItemType.MAX_CATEGORY_WEAR+1+1; // +1 for 0 based index. +1 for left+right rings.
|
||||
public final ItemType[] wear = new ItemType[NUM_WORN_SLOTS];
|
||||
public final ItemType[] quickitem = new ItemType[QuickitemView.NUM_QUICK_SLOTS];
|
||||
|
||||
public Inventory() { }
|
||||
|
||||
@@ -37,6 +39,15 @@ public final class Inventory extends ItemContainer {
|
||||
wear[i] = null;
|
||||
}
|
||||
}
|
||||
if (fileversion < 19) return;
|
||||
final int quickSlots = src.readInt();
|
||||
for(int i = 0; i < quickSlots; ++i) {
|
||||
if (src.readBoolean()) {
|
||||
quickitem[i] = world.itemTypes.getItemTypeByTag(src.readUTF());
|
||||
} else {
|
||||
quickitem[i] = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void writeToParcel(DataOutputStream dest, int flags) throws IOException {
|
||||
@@ -51,5 +62,14 @@ public final class Inventory extends ItemContainer {
|
||||
dest.writeBoolean(false);
|
||||
}
|
||||
}
|
||||
dest.writeInt(QuickitemView.NUM_QUICK_SLOTS);
|
||||
for(int i = 0; i < QuickitemView.NUM_QUICK_SLOTS; ++i) {
|
||||
if (quickitem[i] != null) {
|
||||
dest.writeBoolean(true);
|
||||
dest.writeUTF(quickitem[i].searchTag);
|
||||
} else {
|
||||
dest.writeBoolean(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
package com.gpl.rpg.AndorsTrail.view;
|
||||
|
||||
import android.R.color;
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.ColorFilter;
|
||||
import android.graphics.ColorMatrixColorFilter;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageButton;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||
import com.gpl.rpg.AndorsTrail.R;
|
||||
import com.gpl.rpg.AndorsTrail.context.ViewContext;
|
||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||
import com.gpl.rpg.AndorsTrail.model.item.ItemType;
|
||||
import com.gpl.rpg.AndorsTrail.resource.TileStore;
|
||||
|
||||
public class QuickitemView extends FrameLayout{
|
||||
public static final int NUM_QUICK_SLOTS = 3;
|
||||
|
||||
private final WorldContext world;
|
||||
private final ViewContext view;
|
||||
private final ImageButton[] items = new ImageButton[NUM_QUICK_SLOTS];
|
||||
private final ColorFilter grayScaleFilter = new ColorMatrixColorFilter(
|
||||
new float[] { 0.30f, 0.59f, 0.11f, 0.0f, 0.0f,
|
||||
0.30f, 0.59f, 0.11f, 0.0f, 0.0f,
|
||||
0.30f, 0.59f, 0.11f, 0.0f, 0.0f,
|
||||
0.00f, 0.00f, 0.00f, 1.0f, 0.0f
|
||||
});
|
||||
|
||||
public QuickitemView(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivityContext(context);
|
||||
this.world = app.world;
|
||||
this.view = app.currentView.get();
|
||||
setFocusable(false);
|
||||
|
||||
inflate(context, R.layout.quickitemview, this);
|
||||
Resources res = getResources();
|
||||
this.setBackgroundColor(res.getColor(color.transparent));
|
||||
|
||||
items[0] = (ImageButton)findViewById(R.id.quickitemview_item1);
|
||||
items[1] = (ImageButton)findViewById(R.id.quickitemview_item2);
|
||||
items[2] = (ImageButton)findViewById(R.id.quickitemview_item3);
|
||||
|
||||
for(int i = 0; i < items.length; ++i) {
|
||||
final int slotId = i;
|
||||
ImageButton item = items[i];
|
||||
item.setImageBitmap(world.tileStore.getBitmap(TileStore.iconID_shop));
|
||||
item.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View arg0) {
|
||||
view.itemController.quickitemUse(slotId);
|
||||
}
|
||||
});
|
||||
disableButton(item);
|
||||
}
|
||||
}
|
||||
|
||||
private void disableButton(ImageButton imageButton) {
|
||||
imageButton.setEnabled(false);
|
||||
imageButton.setColorFilter(grayScaleFilter);
|
||||
}
|
||||
|
||||
private void enableButton(ImageButton imageButton) {
|
||||
imageButton.setEnabled(true);
|
||||
imageButton.setColorFilter(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setVisibility(int visibility) {
|
||||
refreshQuickitems();
|
||||
super.setVisibility(visibility);
|
||||
}
|
||||
|
||||
public void refreshQuickitems() {
|
||||
for (int i = 0; i < NUM_QUICK_SLOTS; ++i){
|
||||
ImageButton item = items[i];
|
||||
ItemType type = world.model.player.inventory.quickitem[i];
|
||||
if(type==null){
|
||||
item.setImageBitmap(world.tileStore.getBitmap(TileStore.iconID_shop));
|
||||
disableButton(item);
|
||||
} else {
|
||||
item.setImageBitmap(world.tileStore.getBitmap(type.iconID));
|
||||
if(world.model.player.inventory.hasItem(type.id)){
|
||||
enableButton(item);
|
||||
} else {
|
||||
disableButton(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user