@@ -0,0 +1,2672 @@
+package com.comandante.creeper.spells;%0A%0A%0Aimport com.comandante.creeper.managers.GameManager;%0Aimport com.comandante.creeper.player.Player;%0Aimport com.comandante.creeper.server.Color;%0Aimport com.comandante.creeper.stat.Stats;%0Aimport com.comandante.creeper.stat.StatsBuilder;%0Aimport com.google.common.collect.Lists;%0Aimport com.google.common.collect.Sets;%0A%0Aimport java.util.Arrays;%0Aimport java.util.HashSet;%0Aimport java.util.List;%0Aimport java.util.Set;%0A%0Aimport static com.comandante.creeper.server.Color.BOLD_ON;%0A%0Apublic class FreezeSpell extends Spell %7B%0A%0A    private final static String NAME = BOLD_ON + Color.CYAN + %22freeze%22 + Color.RESET;%0A    private final static String DESCRIPTION = %22A vortex of ice.%22;%0A    private final static Set%3CString%3E validTriggers = new HashSet%3CString%3E(Arrays.asList(new String%5B%5D%0A                    %7B%22freeze%22, %22f%22, NAME%7D%0A    ));%0A    private final static Stats attackStats = new StatsBuilder()%0A            .setStrength(180)%0A            .setWeaponRatingMax(60)%0A            .setWeaponRatingMin(50)%0A            .setNumberOfWeaponRolls(4)%0A            .createStats();%0A    private final static boolean isAreaSpell = true;%0A%0A    private final static List%3CString%3E attackMessages = Lists.newArrayList(%22a blizzard of %22 + BOLD_ON + Color.CYAN + %22ice%22 + Color.RESET + %22 blasts through the area%22);%0A    private static int manaCost = 3000000;%0A    private final static int coolDownTicks = 6;%0A%0A    private static EffectBuilder freezeEffect = new EffectBuilder()%0A            .setEffectApplyMessages(Lists.newArrayList(%22You are %22 + Color.BOLD_ON + Color.BLUE + %22frozen%22 + Color.RESET + %22 by a violent blizzard!%22))%0A            .setEffectDescription(%22a torrent of ice crystals.%22)%0A            .setEffectName(Color.BOLD_ON + Color.CYAN + %22FROZEN%22 + Color.RESET)%0A            .setDurationStats(new StatsBuilder().createStats())%0A            .setApplyStatsOnTick(new StatsBuilder().setCurrentHealth(-666666).createStats())%0A            .setFrozenMovement(true)%0A            .setLifeSpanTicks(5);%0A%0A    public FreezeSpell(GameManager gameManager) %7B%0A        super(gameManager, validTriggers, manaCost, attackStats, attackMessages, DESCRIPTION, NAME, Sets.newHashSet(freezeEffect.createEffect()), isAreaSpell, null, coolDownTicks);%0A    %7D%0A%0A    @Override%0A    public void attackSpell(Set%3CString%3E npcIds, Player player) %7B%0A        Stats playerStats = player.getPlayerStatsWithEquipmentAndLevel();%0A        long willpower = playerStats.getWillpower();%0A        long i = 500 + (willpower * 3);%0A        this.setEffects(Sets.newHashSet(freezeEffect.setApplyStatsOnTick(new StatsBuilder().setCurrentHealth(-i).createStats()).createEffect()));%0A        super.attackSpell(npcIds, player);%0A    %7D%0A%7D%0A

Create FreezeSpell.java