diff --git a/AndorsTrail/res/values/strings.xml b/AndorsTrail/res/values/strings.xml
index 19548158d..e9dd5c433 100644
--- a/AndorsTrail/res/values/strings.xml
+++ b/AndorsTrail/res/values/strings.xml
@@ -91,6 +91,8 @@
%1$s is affected by %2$s.
%1$s is cleared of %2$s.
%1$s is now immunized against %2$s.
+ You found an item:
+ You found %1$d items:
Info
diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/CombatController.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/CombatController.java
index 75706b472..11a9de0f7 100644
--- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/CombatController.java
+++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/CombatController.java
@@ -18,6 +18,7 @@ import com.gpl.rpg.AndorsTrail.model.actor.Actor;
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.item.ItemContainer;
import com.gpl.rpg.AndorsTrail.model.item.ItemTraits_OnHitReceived;
import com.gpl.rpg.AndorsTrail.model.item.ItemTraits_OnUse;
import com.gpl.rpg.AndorsTrail.model.item.Loot;
@@ -58,6 +59,9 @@ public final class CombatController implements VisualEffectCompletedCallback {
public void exitCombat(boolean pickupLootBags) {
setCombatSelection(null, null);
world.model.uiSelections.isInCombat = false;
+ if (pickupLootBags) {
+ recordLootInCombatLog();
+ }
combatTurnListeners.onCombatEnded();
controllers.actorStatsController.setActorMaxAP(world.model.player);
world.model.uiSelections.selectedPosition = null;
@@ -75,6 +79,31 @@ public final class CombatController implements VisualEffectCompletedCallback {
resetCombatState();
}
+ private void recordLootInCombatLog() {
+ Loot combinedLoot = Loot.combine(killedMonsterBags);
+ if (combinedLoot.gold > 0) {
+ world.model.combatLog.append(controllers.getResources().getString(R.string.dialog_loot_foundgold, combinedLoot.gold));
+ }
+ int itemCount = combinedLoot.items.countItems();
+ if (itemCount > 0) {
+ StringBuilder itemMessage = new StringBuilder();
+ if (itemCount == 1) {
+ itemMessage.append(controllers.getResources().getString(R.string.combat_log_item_single));
+ } else {
+ itemMessage.append(controllers.getResources().getString(R.string.combat_log_item_plural, itemCount));
+ }
+ boolean firstItem = true;
+ for (ItemContainer.ItemEntry entry : combinedLoot.items.items) {
+ if (!firstItem) {
+ itemMessage.append(";");
+ }
+ itemMessage.append(" " + entry.itemType.getName(world.model.player) + " (" + entry.quantity + ")");
+ firstItem = false;
+ }
+ world.model.combatLog.append(itemMessage.toString());
+ }
+ }
+
private void resetCombatState() {
killedMonsterBags.clear();
totalExpThisFight = 0;
@@ -211,6 +240,7 @@ public final class CombatController implements VisualEffectCompletedCallback {
world.model.statistics.addMonsterKill(killedMonster.getMonsterTypeID());
controllers.actorStatsController.addExperience(loot.exp);
+ world.model.combatLog.append(controllers.getResources().getString(R.string.dialog_monsterloot_gainedexp, loot.exp));
totalExpThisFight += loot.exp;
loot.exp = 0;
diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ItemController.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ItemController.java
index a1336d2a9..1112ffe23 100644
--- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ItemController.java
+++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ItemController.java
@@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.Collection;
import com.gpl.rpg.AndorsTrail.AndorsTrailPreferences;
+import com.gpl.rpg.AndorsTrail.R;
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.controller.listeners.QuickSlotListeners;
@@ -92,11 +93,9 @@ public final class ItemController {
if (!player.inventory.removeItem(type.id, 1)) return;
+ world.model.combatLog.append(controllers.getResources().getString(R.string.inventory_item_used, type.getName(player)));
controllers.actorStatsController.applyUseEffect(player, null, type.effects_use);
world.model.statistics.addItemUsage(type);
-
- //TODO: provide feedback that the item has been used.
- //context.mainActivity.message(androidContext.getResources().getString(R.string.inventory_item_used, type.name));
}
public void playerSteppedOnLootBag(Loot loot) {