From f3c36e95c0433c7ce31711c7e637e8400185a26c Mon Sep 17 00:00:00 2001 From: Oskar Wiksten Date: Sun, 14 Oct 2012 00:12:03 +0200 Subject: [PATCH] Allow item names to contain $playername (that will be substituted for the player's name). --- AndorsTrail/src/com/gpl/rpg/AndorsTrail/Dialogs.java | 2 +- .../AndorsTrail/activity/BulkSelectionInterface.java | 4 ++-- .../activity/HeroinfoActivity_Inventory.java | 2 +- .../rpg/AndorsTrail/activity/ItemInfoActivity.java | 2 +- .../gpl/rpg/AndorsTrail/activity/MainActivity.java | 2 +- .../gpl/rpg/AndorsTrail/activity/ShopActivity.java | 4 ++-- .../com/gpl/rpg/AndorsTrail/controller/Constants.java | 2 +- .../controller/ConversationController.java | 2 +- .../rpg/AndorsTrail/controller/ItemController.java | 4 ++-- .../com/gpl/rpg/AndorsTrail/model/item/ItemType.java | 11 ++++++++++- .../rpg/AndorsTrail/view/ItemContainerAdapter.java | 11 +++++++---- .../AndorsTrail/view/ShopItemContainerAdapter.java | 2 +- 12 files changed, 30 insertions(+), 18 deletions(-) diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/Dialogs.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/Dialogs.java index 0b7d355..37347f0 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/Dialogs.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/Dialogs.java @@ -184,7 +184,7 @@ public final class Dialogs { ((ItemContainerAdapter) itemList.getAdapter()).notifyDataSetChanged(); } }); - itemList.setAdapter(new ItemContainerAdapter(mainActivity, context.tileManager, combinedLoot.items)); + itemList.setAdapter(new ItemContainerAdapter(mainActivity, context.tileManager, combinedLoot.items, context.model.player)); AlertDialog.Builder db = new AlertDialog.Builder(mainActivity) .setTitle(title) diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/BulkSelectionInterface.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/BulkSelectionInterface.java index a92156e..1ec034e 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/BulkSelectionInterface.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/BulkSelectionInterface.java @@ -103,7 +103,7 @@ public class BulkSelectionInterface extends Activity implements TextWatcher { // change image and name of the item final TextView itemName = (TextView)findViewById(R.id.bulkselection_itemname); - itemName.setText(itemType.name); + itemName.setText(itemType.getName(world.model.player)); world.tileManager.setImageViewTileForSingleItemType(itemName, itemType, getResources()); int actionTextResourceID = 0; @@ -190,7 +190,7 @@ public class BulkSelectionInterface extends Activity implements TextWatcher { public void onClick(View v) { if (requiresConfirmation(itemType)) { final String displayType = ItemInfoActivity.getDisplayTypeString(res, itemType).toLowerCase(); - final String message = res.getString(R.string.bulkselection_sell_confirmation, itemType.name, displayType); + final String message = res.getString(R.string.bulkselection_sell_confirmation, itemType.getName(world.model.player), displayType); new AlertDialog.Builder(v.getContext()) .setIcon(android.R.drawable.ic_dialog_info) diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/HeroinfoActivity_Inventory.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/HeroinfoActivity_Inventory.java index 27987f6..9a70774 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/HeroinfoActivity_Inventory.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/HeroinfoActivity_Inventory.java @@ -71,7 +71,7 @@ public final class HeroinfoActivity_Inventory extends Activity { }); container = player.inventory; wornTiles = world.tileManager.loadTilesFor(player.inventory, getResources()); - inventoryListAdapter = new ItemContainerAdapter(this, world.tileManager, container, wornTiles); + inventoryListAdapter = new ItemContainerAdapter(this, world.tileManager, container, player, wornTiles); inventoryList.setAdapter(inventoryListAdapter); heroinfo_stats_gold = (TextView) findViewById(R.id.heroinfo_stats_gold); diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/ItemInfoActivity.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/ItemInfoActivity.java index 12b770e..bd0d4d9 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/ItemInfoActivity.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/ItemInfoActivity.java @@ -48,7 +48,7 @@ public final class ItemInfoActivity extends Activity { setContentView(R.layout.iteminfo); TextView tv = (TextView) findViewById(R.id.iteminfo_title); - tv.setText(itemType.name); + tv.setText(itemType.getName(world.model.player)); world.tileManager.setImageViewTileForSingleItemType(tv, itemType, getResources()); tv = (TextView) findViewById(R.id.iteminfo_category); tv.setText(itemType.category.displayName); diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/MainActivity.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/MainActivity.java index e51f74a..56bb3a2 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/MainActivity.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/MainActivity.java @@ -239,7 +239,7 @@ public final class MainActivity extends Activity { for(int i=0; i 1) { sb.append(" ("); sb.append(item.quantity); diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/ItemType.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/ItemType.java index d1a98bf..25c4d80 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/ItemType.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/ItemType.java @@ -1,5 +1,7 @@ package com.gpl.rpg.AndorsTrail.model.item; +import com.gpl.rpg.AndorsTrail.controller.Constants; +import com.gpl.rpg.AndorsTrail.model.actor.Player; import com.gpl.rpg.AndorsTrail.resource.tiles.TileManager; public final class ItemType { @@ -12,7 +14,8 @@ public final class ItemType { public final String id; public final int iconID; - public final String name; + private final String name; + private final boolean hasPersonalizedName; public final ItemCategory category; public final boolean hasManualPrice; public final int baseMarketCost; @@ -48,6 +51,7 @@ public final class ItemType { this.effects_use = effects_use; this.effects_hit = effects_hit; this.effects_kill = effects_kill; + this.hasPersonalizedName = name.contains(Constants.PLACEHOLDER_PLAYERNAME); } public boolean isEquippable() { return category.isEquippable(); } @@ -65,6 +69,11 @@ public final class ItemType { return true; } + public String getName(Player p) { + if (!hasPersonalizedName) return name; + else return name.replace(Constants.PLACEHOLDER_PLAYERNAME, p.actorTraits.name); + } + public int getOverlayTileID() { switch (displayType) { case ItemType.DISPLAYTYPE_QUEST: diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/ItemContainerAdapter.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/ItemContainerAdapter.java index 9467fb4..646f16b 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/ItemContainerAdapter.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/ItemContainerAdapter.java @@ -9,6 +9,7 @@ import android.widget.TextView; import com.gpl.rpg.AndorsTrail.R; import com.gpl.rpg.AndorsTrail.controller.ItemController; +import com.gpl.rpg.AndorsTrail.model.actor.Player; import com.gpl.rpg.AndorsTrail.model.item.ItemContainer; import com.gpl.rpg.AndorsTrail.model.item.ItemContainer.ItemEntry; import com.gpl.rpg.AndorsTrail.resource.tiles.TileCollection; @@ -17,14 +18,16 @@ import com.gpl.rpg.AndorsTrail.resource.tiles.TileManager; public final class ItemContainerAdapter extends ArrayAdapter { private final TileManager tileManager; private final TileCollection tileCollection; + private final Player player; - public ItemContainerAdapter(Context context, TileManager tileManager, ItemContainer items) { - this(context, tileManager, items, tileManager.loadTilesFor(items, context.getResources())); + public ItemContainerAdapter(Context context, TileManager tileManager, ItemContainer items, Player player) { + this(context, tileManager, items, player, tileManager.loadTilesFor(items, context.getResources())); } - public ItemContainerAdapter(Context context, TileManager tileManager, ItemContainer items, TileCollection tileCollection) { + public ItemContainerAdapter(Context context, TileManager tileManager, ItemContainer items, Player player, TileCollection tileCollection) { super(context, 0, items.items); this.tileManager = tileManager; this.tileCollection = tileCollection; + this.player = player; } @Override @@ -37,7 +40,7 @@ public final class ItemContainerAdapter extends ArrayAdapter { } tileManager.setImageViewTile((ImageView) result.findViewById(R.id.inv_image), item.itemType, tileCollection); - ((TextView) result.findViewById(R.id.inv_text)).setText(ItemController.describeItemForListView(item)); + ((TextView) result.findViewById(R.id.inv_text)).setText(ItemController.describeItemForListView(item, player)); return result; } diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/ShopItemContainerAdapter.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/ShopItemContainerAdapter.java index f4817d4..b222822 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/ShopItemContainerAdapter.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/ShopItemContainerAdapter.java @@ -48,7 +48,7 @@ public final class ShopItemContainerAdapter extends ArrayAdapter { } tileManager.setImageViewTile((ImageView) result.findViewById(R.id.shopitem_image), itemType, tileCollection); - ((TextView) result.findViewById(R.id.shopitem_text)).setText(ItemController.describeItemForListView(item)); + ((TextView) result.findViewById(R.id.shopitem_text)).setText(ItemController.describeItemForListView(item, player)); Button b = (Button) result.findViewById(R.id.shopitem_shopbutton); if (isSelling) { b.setText(r.getString(R.string.shop_sellitem, ItemController.getSellingPrice(player, itemType))); -- 2.49.0