From e0c7dd35b8bbf4385f58d713098b2b78827426e3 Mon Sep 17 00:00:00 2001 From: Zukero Date: Tue, 29 Aug 2017 18:47:35 +0200 Subject: [PATCH] Items' onHitReceived effects now applied. --- .../controller/ItemController.java | 29 ++++++++++++++----- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ItemController.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ItemController.java index c109536f8..9674ee83c 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ItemController.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ItemController.java @@ -175,24 +175,37 @@ public final class ItemController { } public static void recalculateHitEffectsFromWornItems(Player player) { - ArrayList effects = null; + ArrayList effects_onHit = null; + ArrayList effects_onHitReceived = null; for (Inventory.WearSlot slot : Inventory.WearSlot.values()) { ItemType type = player.inventory.getItemTypeInWearSlot(slot); if (type == null) continue; - ItemTraits_OnUse e = type.effects_hit; - if (e == null) continue; + ItemTraits_OnUse eh = type.effects_hit; + ItemTraits_OnHitReceived ehr = type.effects_hitReceived; + if (eh == null && ehr == null) continue; - if (effects == null) effects = new ArrayList(); - effects.add(e); + if (effects_onHit == null) effects_onHit = new ArrayList(); + if (eh != null) effects_onHit.add(eh); + + if (effects_onHitReceived == null) effects_onHitReceived = new ArrayList(); + if (ehr != null) effects_onHitReceived.add(ehr); } - if (effects != null) { - ItemTraits_OnUse[] effects_ = new ItemTraits_OnUse[effects.size()]; - effects_ = effects.toArray(effects_); + if (effects_onHit != null) { + ItemTraits_OnUse[] effects_ = new ItemTraits_OnUse[effects_onHit.size()]; + effects_ = effects_onHit.toArray(effects_); player.onHitEffects = effects_; } else { player.onHitEffects = null; } + + if (effects_onHitReceived != null) { + ItemTraits_OnHitReceived[] effects_ = new ItemTraits_OnHitReceived[effects_onHitReceived.size()]; + effects_ = effects_onHitReceived.toArray(effects_); + player.onHitReceivedEffects = effects_; + } else { + player.onHitReceivedEffects = null; + } } public void consumeNonItemLoot(Loot loot) {