diff --git a/src/main/java/com/comandante/creeper/ConfigureNpc.java b/src/main/java/com/comandante/creeper/ConfigureNpc.java index ed7dc6b5e4cda0c2a749a9b5df60acab4a527f72..42385ef892628870d3142e86de24e61107ab8592 100755 --- a/src/main/java/com/comandante/creeper/ConfigureNpc.java +++ b/src/main/java/com/comandante/creeper/ConfigureNpc.java @@ -320,7 +320,6 @@ public class ConfigureNpc { gameManager.getForageManager().addForageToArea(Area.BLOODRIDGE15_ZONE, keakiarForageBuilder); gameManager.getForageManager().addForageToArea(Area.NORTH14_ZONE, keakiarForageBuilder); - ForageBuilder dirtyBombForageBuilder = new ForageBuilder(); dirtyBombForageBuilder.setItemType(ItemType.DIRTY_BOMB); dirtyBombForageBuilder.setMinAmt(1); @@ -341,6 +340,106 @@ public class ConfigureNpc { gameManager.getForageManager().addForageToArea(Area.BLOODRIDGE6_ZONE, dirtyBombForageBuilder); gameManager.getForageManager().addForageToArea(Area.BLOODRIDGE7_ZONE, dirtyBombForageBuilder); + ForageBuilder radsuitHelmetForageBuilder = new ForageBuilder(); + radsuitHelmetForageBuilder.setItemType(ItemType.RADSUIT_HELMET); + radsuitHelmetForageBuilder.setMinAmt(1); + radsuitHelmetForageBuilder.setMaxAmt(1); + radsuitHelmetForageBuilder.setPctOfSuccess(.5); + radsuitHelmetForageBuilder.setForageExperience(500); + radsuitHelmetForageBuilder.setCoolDownTicks(1000); + gameManager.getForageManager().addForageToArea(Area.BLOODRIDGE15_ZONE, radsuitHelmetForageBuilder); + gameManager.getForageManager().addForageToArea(Area.NORTH14_ZONE, radsuitHelmetForageBuilder); + gameManager.getForageManager().addForageToArea(Area.SOUTH1_ZONE, radsuitHelmetForageBuilder); + gameManager.getForageManager().addForageToArea(Area.BLOODRIDGE14_ZONE, radsuitHelmetForageBuilder); + gameManager.getForageManager().addForageToArea(Area.NORTH10_ZONE, radsuitHelmetForageBuilder); + gameManager.getForageManager().addForageToArea(Area.NORTH11_ZONE, radsuitHelmetForageBuilder); + gameManager.getForageManager().addForageToArea(Area.WESTERN4_ZONE, radsuitHelmetForageBuilder); + gameManager.getForageManager().addForageToArea(Area.WESTERN5_ZONE, radsuitHelmetForageBuilder); + gameManager.getForageManager().addForageToArea(Area.WESTERN2_ZONE, radsuitHelmetForageBuilder); + gameManager.getForageManager().addForageToArea(Area.WESTERN3_ZONE, radsuitHelmetForageBuilder); + gameManager.getForageManager().addForageToArea(Area.BLOODRIDGE6_ZONE, radsuitHelmetForageBuilder); + gameManager.getForageManager().addForageToArea(Area.BLOODRIDGE7_ZONE, radsuitHelmetForageBuilder); + + ForageBuilder radsuitChestplateForageBuilder = new ForageBuilder(); + radsuitChestplateForageBuilder.setItemType(ItemType.RADSUIT_CHESTPLATE); + radsuitChestplateForageBuilder.setMinAmt(1); + radsuitChestplateForageBuilder.setMaxAmt(1); + radsuitChestplateForageBuilder.setPctOfSuccess(.5); + radsuitChestplateForageBuilder.setForageExperience(500); + radsuitChestplateForageBuilder.setCoolDownTicks(1000); + gameManager.getForageManager().addForageToArea(Area.BLOODRIDGE15_ZONE, radsuitChestplateForageBuilder); + gameManager.getForageManager().addForageToArea(Area.NORTH14_ZONE, radsuitChestplateForageBuilder); + gameManager.getForageManager().addForageToArea(Area.SOUTH1_ZONE, radsuitChestplateForageBuilder); + gameManager.getForageManager().addForageToArea(Area.BLOODRIDGE14_ZONE, radsuitChestplateForageBuilder); + gameManager.getForageManager().addForageToArea(Area.NORTH10_ZONE, radsuitChestplateForageBuilder); + gameManager.getForageManager().addForageToArea(Area.NORTH11_ZONE, radsuitChestplateForageBuilder); + gameManager.getForageManager().addForageToArea(Area.WESTERN4_ZONE, radsuitChestplateForageBuilder); + gameManager.getForageManager().addForageToArea(Area.WESTERN5_ZONE, radsuitChestplateForageBuilder); + gameManager.getForageManager().addForageToArea(Area.WESTERN2_ZONE, radsuitChestplateForageBuilder); + gameManager.getForageManager().addForageToArea(Area.WESTERN3_ZONE, radsuitChestplateForageBuilder); + gameManager.getForageManager().addForageToArea(Area.BLOODRIDGE6_ZONE, radsuitChestplateForageBuilder); + gameManager.getForageManager().addForageToArea(Area.BLOODRIDGE7_ZONE, radsuitChestplateForageBuilder); + + ForageBuilder radsuitBracersForageBuilder = new ForageBuilder(); + radsuitBracersForageBuilder.setItemType(ItemType.RADSUIT_BRACERS); + radsuitBracersForageBuilder.setMinAmt(1); + radsuitBracersForageBuilder.setMaxAmt(1); + radsuitBracersForageBuilder.setPctOfSuccess(.5); + radsuitBracersForageBuilder.setForageExperience(500); + radsuitBracersForageBuilder.setCoolDownTicks(1000); + gameManager.getForageManager().addForageToArea(Area.BLOODRIDGE15_ZONE, radsuitBracersForageBuilder); + gameManager.getForageManager().addForageToArea(Area.NORTH14_ZONE, radsuitBracersForageBuilder); + gameManager.getForageManager().addForageToArea(Area.SOUTH1_ZONE, radsuitBracersForageBuilder); + gameManager.getForageManager().addForageToArea(Area.BLOODRIDGE14_ZONE, radsuitBracersForageBuilder); + gameManager.getForageManager().addForageToArea(Area.NORTH10_ZONE, radsuitBracersForageBuilder); + gameManager.getForageManager().addForageToArea(Area.NORTH11_ZONE, radsuitBracersForageBuilder); + gameManager.getForageManager().addForageToArea(Area.WESTERN4_ZONE, radsuitBracersForageBuilder); + gameManager.getForageManager().addForageToArea(Area.WESTERN5_ZONE, radsuitBracersForageBuilder); + gameManager.getForageManager().addForageToArea(Area.WESTERN2_ZONE, radsuitBracersForageBuilder); + gameManager.getForageManager().addForageToArea(Area.WESTERN3_ZONE, radsuitBracersForageBuilder); + gameManager.getForageManager().addForageToArea(Area.BLOODRIDGE6_ZONE, radsuitBracersForageBuilder); + gameManager.getForageManager().addForageToArea(Area.BLOODRIDGE7_ZONE, radsuitBracersForageBuilder); + + ForageBuilder radsuitLeggingsForageBuilder = new ForageBuilder(); + radsuitLeggingsForageBuilder.setItemType(ItemType.RADSUIT_LEGGINGS); + radsuitLeggingsForageBuilder.setMinAmt(1); + radsuitLeggingsForageBuilder.setMaxAmt(1); + radsuitLeggingsForageBuilder.setPctOfSuccess(.5); + radsuitLeggingsForageBuilder.setForageExperience(500); + radsuitLeggingsForageBuilder.setCoolDownTicks(1000); + gameManager.getForageManager().addForageToArea(Area.BLOODRIDGE15_ZONE, radsuitLeggingsForageBuilder); + gameManager.getForageManager().addForageToArea(Area.NORTH14_ZONE, radsuitLeggingsForageBuilder); + gameManager.getForageManager().addForageToArea(Area.SOUTH1_ZONE, radsuitLeggingsForageBuilder); + gameManager.getForageManager().addForageToArea(Area.BLOODRIDGE14_ZONE, radsuitLeggingsForageBuilder); + gameManager.getForageManager().addForageToArea(Area.NORTH10_ZONE, radsuitLeggingsForageBuilder); + gameManager.getForageManager().addForageToArea(Area.NORTH11_ZONE, radsuitLeggingsForageBuilder); + gameManager.getForageManager().addForageToArea(Area.WESTERN4_ZONE, radsuitLeggingsForageBuilder); + gameManager.getForageManager().addForageToArea(Area.WESTERN5_ZONE, radsuitLeggingsForageBuilder); + gameManager.getForageManager().addForageToArea(Area.WESTERN2_ZONE, radsuitLeggingsForageBuilder); + gameManager.getForageManager().addForageToArea(Area.WESTERN3_ZONE, radsuitLeggingsForageBuilder); + gameManager.getForageManager().addForageToArea(Area.BLOODRIDGE6_ZONE, radsuitLeggingsForageBuilder); + gameManager.getForageManager().addForageToArea(Area.BLOODRIDGE7_ZONE, radsuitLeggingsForageBuilder); + + ForageBuilder radsuitBootsForageBuilder = new ForageBuilder(); + radsuitBootsForageBuilder.setItemType(ItemType.RADSUIT_BOOTS); + radsuitBootsForageBuilder.setMinAmt(1); + radsuitBootsForageBuilder.setMaxAmt(1); + radsuitBootsForageBuilder.setPctOfSuccess(.5); + radsuitBootsForageBuilder.setForageExperience(500); + radsuitBootsForageBuilder.setCoolDownTicks(1000); + gameManager.getForageManager().addForageToArea(Area.BLOODRIDGE15_ZONE, radsuitBootsForageBuilder); + gameManager.getForageManager().addForageToArea(Area.NORTH14_ZONE, radsuitBootsForageBuilder); + gameManager.getForageManager().addForageToArea(Area.SOUTH1_ZONE, radsuitBootsForageBuilder); + gameManager.getForageManager().addForageToArea(Area.BLOODRIDGE14_ZONE, radsuitBootsForageBuilder); + gameManager.getForageManager().addForageToArea(Area.NORTH10_ZONE, radsuitBootsForageBuilder); + gameManager.getForageManager().addForageToArea(Area.NORTH11_ZONE, radsuitBootsForageBuilder); + gameManager.getForageManager().addForageToArea(Area.WESTERN4_ZONE, radsuitBootsForageBuilder); + gameManager.getForageManager().addForageToArea(Area.WESTERN5_ZONE, radsuitBootsForageBuilder); + gameManager.getForageManager().addForageToArea(Area.WESTERN2_ZONE, radsuitBootsForageBuilder); + gameManager.getForageManager().addForageToArea(Area.WESTERN3_ZONE, radsuitBootsForageBuilder); + gameManager.getForageManager().addForageToArea(Area.BLOODRIDGE6_ZONE, radsuitBootsForageBuilder); + gameManager.getForageManager().addForageToArea(Area.BLOODRIDGE7_ZONE, radsuitBootsForageBuilder); + SpellRegistry.addSpell(new LightningSpell(gameManager)); SpellRegistry.addSpell(new ClumsinessSpell(gameManager)); SpellRegistry.addSpell(new RestoreSpell(gameManager)); diff --git a/src/main/java/com/comandante/creeper/Items/ItemType.java b/src/main/java/com/comandante/creeper/Items/ItemType.java index 17bc2f8fd0597bf07ce69b14c4b00b70f3612db0..7915036ee57eb77082942610093826a82f037de2 100755 --- a/src/main/java/com/comandante/creeper/Items/ItemType.java +++ b/src/main/java/com/comandante/creeper/Items/ItemType.java @@ -1543,6 +1543,61 @@ public enum ItemType { 60, true, Rarity.LEGENDARY, + 100000000, Sets.<TimeTracker.TimeOfDay>newHashSet()), + + RADSUIT_CHESTPLATE(140, Arrays.asList("chestplate", "a radsuit chestplate", "radsuit chestplate"), + Color.BOLD_ON + Color.GREEN + "radsuit" + Color.RESET + Color.MAGENTA + " chestplate" + Color.RESET, + "a " + Color.BOLD_ON + Color.GREEN + "radsuit" + Color.RESET + Color.MAGENTA + " chestplate" + Color.RESET + " is on the ground.", + "a " + Color.BOLD_ON + Color.GREEN + "radsuit" + Color.RESET + Color.MAGENTA + " chestplate" + Color.RESET, + false, + 0, + 60, + true, + Rarity.LEGENDARY, + 100000000, Sets.<TimeTracker.TimeOfDay>newHashSet()), + + RADSUIT_HELMET(141, Arrays.asList("helmet", "a radsuit helmet", "radsuit helmet"), + Color.BOLD_ON + Color.GREEN + "radsuit" + Color.RESET + Color.MAGENTA + " helmet" + Color.RESET, + "a " + Color.BOLD_ON + Color.GREEN + "radsuit" + Color.RESET + Color.MAGENTA + " helmet" + Color.RESET + " is on the ground.", + "a " + Color.BOLD_ON + Color.GREEN + "radsuit" + Color.RESET + Color.MAGENTA + " helmet" + Color.RESET, + false, + 0, + 60, + true, + Rarity.LEGENDARY, + 100000000, Sets.<TimeTracker.TimeOfDay>newHashSet()), + + RADSUIT_BRACERS(142, Arrays.asList("bracers", "radsuit bracers", "radsuit bracers"), + Color.BOLD_ON + Color.GREEN + "radsuit" + Color.RESET + Color.MAGENTA + " bracers" + Color.RESET, + "a pair of " + Color.BOLD_ON + Color.GREEN + "radsuit" + Color.RESET + Color.MAGENTA + " bracers" + Color.RESET + " are on the ground.", + "a pair of " + Color.BOLD_ON + Color.GREEN + "radsuit" + Color.RESET + Color.MAGENTA + " bracers" + Color.RESET, + false, + 0, + 60, + true, + Rarity.LEGENDARY, + 100000000, Sets.<TimeTracker.TimeOfDay>newHashSet()), + + RADSUIT_LEGGINGS(143, Arrays.asList("helmet", "radsuit leggings", "radsuit leggings"), + Color.BOLD_ON + Color.GREEN + "radsuit" + Color.RESET + Color.MAGENTA + " leggings" + Color.RESET, + "a pair of " + Color.BOLD_ON + Color.GREEN + "radsuit" + Color.RESET + Color.MAGENTA + " leggings" + Color.RESET + " are on the ground.", + "a pair of " + Color.BOLD_ON + Color.GREEN + "radsuit" + Color.RESET + Color.MAGENTA + " leggings" + Color.RESET, + false, + 0, + 60, + true, + Rarity.LEGENDARY, + 100000000, Sets.<TimeTracker.TimeOfDay>newHashSet()), + + RADSUIT_BOOTS(144, Arrays.asList("helmet", "radsuit boots"), + Color.BOLD_ON + Color.GREEN + "radsuit" + Color.RESET + Color.MAGENTA + " boots" + Color.RESET, + "a pair of " + Color.BOLD_ON + Color.GREEN + "radsuit" + Color.RESET + Color.MAGENTA + " boots" + Color.RESET + " are on the ground.", + "a pair of " + Color.BOLD_ON + Color.GREEN + "radsuit" + Color.RESET + Color.MAGENTA + " boots" + Color.RESET, + false, + 0, + 60, + true, + Rarity.LEGENDARY, 100000000, Sets.<TimeTracker.TimeOfDay>newHashSet()); diff --git a/src/main/java/com/comandante/creeper/Items/use/DirtyBombUseAction.java b/src/main/java/com/comandante/creeper/Items/use/DirtyBombUseAction.java index b9b4a2046e9033d7c111e3245a59df15556a936f..de50fd496f928c53ae12da3e4e06364474ff8267 100644 --- a/src/main/java/com/comandante/creeper/Items/use/DirtyBombUseAction.java +++ b/src/main/java/com/comandante/creeper/Items/use/DirtyBombUseAction.java @@ -7,6 +7,7 @@ import com.comandante.creeper.Items.ItemUseRegistry; import com.comandante.creeper.managers.GameManager; import com.comandante.creeper.npc.Npc; import com.comandante.creeper.npc.NpcStatsChangeBuilder; +import com.comandante.creeper.player.EquipmentSlotType; import com.comandante.creeper.player.Player; import com.comandante.creeper.server.Color; import com.comandante.creeper.spells.Effect; @@ -16,6 +17,7 @@ import com.comandante.creeper.world.Room; import java.text.NumberFormat; import java.util.Arrays; import java.util.Locale; +import java.util.Objects; import java.util.Set; public class DirtyBombUseAction implements ItemUseAction { @@ -52,11 +54,11 @@ public class DirtyBombUseAction implements ItemUseAction { } Set<Player> presentPlayers = gameManager.getRoomManager().getPresentPlayers(currentRoom); for (Player presentPlayer : presentPlayers) { - if (presentPlayer.getPlayerName().equals("likwid")) { - gameManager.writeToPlayerCurrentRoom(player.getPlayerId(), player.getPlayerName() + " is immune to " + item.getItemName() + "!"); + if (allRadSuit(presentPlayer)) { + gameManager.writeToPlayerCurrentRoom(player.getPlayerId(), presentPlayer.getPlayerName() + " is immune to " + item.getItemName() + "!"); continue; } - gameManager.writeToPlayerCurrentRoom(player.getPlayerId(), player.getPlayerName() + " is heavily damaged by a " + item.getItemName() + "!"); + gameManager.writeToPlayerCurrentRoom(player.getPlayerId(), presentPlayer.getPlayerName() + " is heavily damaged by a " + item.getItemName() + "!"); presentPlayer.updatePlayerHealth(-Long.MAX_VALUE, null); } } @@ -78,4 +80,24 @@ public class DirtyBombUseAction implements ItemUseAction { public Set<Effect> getEffects() { return null; } + + private boolean allRadSuit(Player player) { + if (!Objects.equals(player.getSlotItem(EquipmentSlotType.CHEST).getItemTypeId(), ItemType.RADSUIT_CHESTPLATE.getItemTypeCode())) { + return false; + } + if (!Objects.equals(player.getSlotItem(EquipmentSlotType.LEGS).getItemTypeId(), ItemType.RADSUIT_LEGGINGS.getItemTypeCode())) { + return false; + } + if (!Objects.equals(player.getSlotItem(EquipmentSlotType.HEAD).getItemTypeId(), ItemType.RADSUIT_HELMET.getItemTypeCode())) { + return false; + } + if (!Objects.equals(player.getSlotItem(EquipmentSlotType.WRISTS).getItemTypeId(), ItemType.RADSUIT_BRACERS.getItemTypeCode())) { + return false; + } + if (!Objects.equals(player.getSlotItem(EquipmentSlotType.FEET).getItemTypeId(), ItemType.RADSUIT_BOOTS.getItemTypeCode())) { + return false; + } + return true; + + } } diff --git a/src/main/java/com/comandante/creeper/player/EquipmentBuilder.java b/src/main/java/com/comandante/creeper/player/EquipmentBuilder.java index a345c9c29b321ae7759765a291063db0161b527e..aa6d3c44143012881c3d10c58988ec285a0a93c4 100755 --- a/src/main/java/com/comandante/creeper/player/EquipmentBuilder.java +++ b/src/main/java/com/comandante/creeper/player/EquipmentBuilder.java @@ -120,6 +120,16 @@ public class EquipmentBuilder { return getAexiumSword(item); case VIAGRA_SWORD: return getViagraSword(item); + case RADSUIT_CHESTPLATE: + return getRadsuitChestplate(item); + case RADSUIT_HELMET: + return getRadsuitHelmet(item); + case RADSUIT_BRACERS: + return getRadsuitBracers(item); + case RADSUIT_LEGGINGS: + return getRadsuitLeggings(item); + case RADSUIT_BOOTS: + return getRadsuitBoots(item); } } return null; @@ -503,4 +513,39 @@ public class EquipmentBuilder { return item; } + public static Item getRadsuitChestplate(Item item) { + Stats stats = new StatsBuilder().setArmorRating(1900).setStrength(7000).setAgile(2135).createStats(); + final Equipment equipment = new Equipment(EquipmentSlotType.CHEST, stats); + item.setEquipment(equipment); + return item; + } + + public static Item getRadsuitHelmet(Item item) { + Stats stats = new StatsBuilder().setArmorRating(978).setStrength(731).setAgile(640).createStats(); + final Equipment equipment = new Equipment(EquipmentSlotType.HEAD, stats); + item.setEquipment(equipment); + return item; + } + + public static Item getRadsuitBracers(Item item) { + Stats stats = new StatsBuilder().setArmorRating(600).setStrength(499).createStats(); + final Equipment equipment = new Equipment(EquipmentSlotType.WRISTS, stats); + item.setEquipment(equipment); + return item; + } + + public static Item getRadsuitLeggings(Item item) { + Stats stats = new StatsBuilder().setArmorRating(1500).setStrength(800).setAgile(1400).createStats(); + final Equipment equipment = new Equipment(EquipmentSlotType.LEGS, stats); + item.setEquipment(equipment); + return item; + } + + public static Item getRadsuitBoots(Item item) { + Stats stats = new StatsBuilder().setArmorRating(800).setStrength(540).setAgile(780).createStats(); + final Equipment equipment = new Equipment(EquipmentSlotType.FEET, stats); + item.setEquipment(equipment); + return item; + } + } \ No newline at end of file