diff --git a/src/main/java/com/comandante/creeper/ConfigureNpc.java b/src/main/java/com/comandante/creeper/ConfigureNpc.java index b7beab8a2e580d4246f3d509c24a82aebe293fcc..7799e9af3cf240ed5a188f8eb6226f315eef0f94 100755 --- a/src/main/java/com/comandante/creeper/ConfigureNpc.java +++ b/src/main/java/com/comandante/creeper/ConfigureNpc.java @@ -445,5 +445,6 @@ public class ConfigureNpc { SpellRegistry.addSpell(new ClumsinessSpell(gameManager)); SpellRegistry.addSpell(new RestoreSpell(gameManager)); SpellRegistry.addSpell(new AidsSpell(gameManager)); + SpellRegistry.addSpell(new FreezeSpell(gameManager)); } } diff --git a/src/main/java/com/comandante/creeper/Items/ItemUseRegistry.java b/src/main/java/com/comandante/creeper/Items/ItemUseRegistry.java index 716bb60d209b6ed14e26bbccf715997ffd6d0895..50c68150f2af9253c0eb6f5ee94f9de97ef31b66 100644 --- a/src/main/java/com/comandante/creeper/Items/ItemUseRegistry.java +++ b/src/main/java/com/comandante/creeper/Items/ItemUseRegistry.java @@ -2,6 +2,7 @@ package com.comandante.creeper.Items; import com.comandante.creeper.Items.use.DefaultApplyStatsAction; import com.comandante.creeper.Items.use.DirtyBombUseAction; +import com.comandante.creeper.Items.use.ResetAllEffectsUseAction; import com.comandante.creeper.managers.GameManager; import com.comandante.creeper.player.Player; import com.comandante.creeper.spells.Effect; @@ -43,7 +44,7 @@ public class ItemUseRegistry { addItemUseAction(new DefaultApplyStatsAction(ItemType.DOGDICKS, buildStats(500,500), Sets.<Effect>newHashSet())); //Mithaem Leaf - addItemUseAction(new DefaultApplyStatsAction(ItemType.MITHAEM_LEAF, buildStats(0,0), resetEffects())); + addItemUseAction(new ResetAllEffectsUseAction(ItemType.MITHAEM_LEAF)); //Dirty Bomb addItemUseAction(new DirtyBombUseAction(ItemType.DIRTY_BOMB)); diff --git a/src/main/java/com/comandante/creeper/Items/use/ResetAllEffectsUseAction.java b/src/main/java/com/comandante/creeper/Items/use/ResetAllEffectsUseAction.java new file mode 100644 index 0000000000000000000000000000000000000000..eb610a27f89f656a116d844dbe3219c324f970aa --- /dev/null +++ b/src/main/java/com/comandante/creeper/Items/use/ResetAllEffectsUseAction.java @@ -0,0 +1,51 @@ +package com.comandante.creeper.Items.use; + +import com.comandante.creeper.Items.Item; +import com.comandante.creeper.Items.ItemType; +import com.comandante.creeper.Items.ItemUseAction; +import com.comandante.creeper.Items.ItemUseRegistry; +import com.comandante.creeper.managers.GameManager; +import com.comandante.creeper.player.Player; +import com.comandante.creeper.spells.Effect; + +import java.util.Set; + +public class ResetAllEffectsUseAction implements ItemUseAction { + + private final ItemType itemType; + + public ResetAllEffectsUseAction(ItemType itemType) { + this.itemType = itemType; + } + + @Override + public Integer getItemTypeId() { + return itemType.getItemTypeCode(); + } + + + @Override + public void executeAction(GameManager gameManager, Player player, Item item) { + player.resetEffects(); + gameManager.getChannelUtils().write(player.getPlayerId(), "All Effects are removed." + "\r\n"); + } + + @Override + public void postExecuteAction(GameManager gameManager, Player player, Item item) { + ItemUseRegistry.incrementUses(item); + if (ItemType.itemTypeFromCode(item.getItemTypeId()).isDisposable()) { + if (item.getNumberOfUses() < ItemType.itemTypeFromCode(item.getItemTypeId()).getMaxUses()) { + gameManager.getEntityManager().saveItem(item); + } else { + player.removeInventoryId(item.getItemId()); + gameManager.getEntityManager().removeItem(item); + } + } + } + + @Override + public Set<Effect> getEffects() { + return null; + } + +} diff --git a/world/6May2015-7PM b/world/6May2015-7PM old mode 100755 new mode 100644