diff --git a/src/main/java/com/comandante/creeper/spells/BlackHole.java b/src/main/java/com/comandante/creeper/spells/BlackHole.java new file mode 100644 index 0000000000000000000000000000000000000000..bab4595bc95bf4c6e08eac4de152518bb4f4407a --- /dev/null +++ b/src/main/java/com/comandante/creeper/spells/BlackHole.java @@ -0,0 +1,59 @@ +package com.comandante.creeper.spells; + + +import com.comandante.creeper.managers.GameManager; +import com.comandante.creeper.player.Player; +import com.comandante.creeper.server.Color; +import com.comandante.creeper.stat.Stats; +import com.comandante.creeper.stat.StatsBuilder; +import com.google.common.collect.Lists; +import com.google.common.collect.Sets; + +import java.util.Arrays; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import static com.comandante.creeper.server.Color.BOLD_ON; + +public class BlackholeSpell extends Spell { + + private final static String NAME = BOLD_ON + Color.BLACK + "black" + Color.RESET + " hole"; + private final static String DESCRIPTION = "A black hole."; + private final static Set<String> validTriggers = new HashSet<String>(Arrays.asList(new String[] + {"black", "black hole", "bh", "b", NAME} + )); + private final static Stats attackStats = new StatsBuilder() + .setStrength(180) + .setWeaponRatingMax(60) + .setWeaponRatingMin(50) + .setNumberOfWeaponRolls(4) + .createStats(); + private final static boolean isAreaSpell = true; + + private final static List<String> attackMessages = Lists.newArrayList("a massive " + BOLD_ON + Color.BLACK + "black hole" + Color.RESET + " begins to form in front of you "); + private static int manaCost = 20000000; + private final static int coolDownTicks = 4; + + private static EffectBuilder holeEffect = new EffectBuilder() + .setEffectApplyMessages(Lists.newArrayList("You are being " + Color.BOLD_ON + Color.BLUE + "nullified" + Color.RESET + " by a black hole!")) + .setEffectDescription("a dark vortex of nothingness.") + .setEffectName(Color.BOLD_ON + Color.BLACK + "Black vortex of" + Color.RESET + Color.BOLD_ON + Color.BLUE + " NOTHING" + Color.RESET) + .setDurationStats(new StatsBuilder().createStats()) + .setApplyStatsOnTick(new StatsBuilder().setCurrentHealth(-150000000).createStats()) + .setFrozenMovement(false) + .setLifeSpanTicks(2); + + public BlackholeSpell(GameManager gameManager) { + super(gameManager, validTriggers, manaCost, attackStats, attackMessages, DESCRIPTION, NAME, Sets.newHashSet(holeEffect.createEffect()), isAreaSpell, null, coolDownTicks); + } + + @Override + public void attackSpell(Set<String> npcIds, Player player) { + Stats playerStats = player.getPlayerStatsWithEquipmentAndLevel(); + long willpower = playerStats.getWillpower(); + long i = 66666666666 + (willpower * 3); + this.setEffects(Sets.newHashSet(holeEffect.setApplyStatsOnTick(new StatsBuilder().setCurrentHealth(-i).createStats()).createEffect())); + super.attackSpell(npcIds, player); + } +}