public boolean apply(SpellTargetEvent event) { Player player = event.getCaster(); boolean check = condition.check(player, event.getTarget()); if (check == false && type == ModifierType.REQUIRED) { event.setCancelled(true); return false; } else if (check == true && type == ModifierType.DENIED) { event.setCancelled(true); return false; } else if (check == true && type == ModifierType.STOP) { return false; } else if (check == false && type == ModifierType.CONTINUE) { return false; } else if (check == true && type == ModifierType.CAST) { Spell spell = MagicSpells.getSpellByInternalName(modifierVar); if (spell != null) { spell.cast(event.getCaster(), 1, null); } } else if (check == true && type == ModifierType.CAST_INSTEAD) { Spell spell = MagicSpells.getSpellByInternalName(modifierVar); if (spell != null) { if (spell instanceof TargetedEntitySpell) { ((TargetedEntitySpell) spell).castAtEntity(event.getCaster(), event.getTarget(), 1F); } else { spell.castSpell(event.getCaster(), SpellCastState.NORMAL, 1F, null); } } } return true; }
public boolean apply(ManaChangeEvent event) { Player player = event.getPlayer(); boolean check = condition.check(player); if (check == false && type == ModifierType.REQUIRED) { event.setNewAmount(event.getOldAmount()); return false; } else if (check == true && type == ModifierType.DENIED) { event.setNewAmount(event.getOldAmount()); return false; } else if (check == true && type == ModifierType.STOP) { return false; } else if (check == false && type == ModifierType.CONTINUE) { return false; } else if (check == true && type == ModifierType.POWER) { int gain = event.getNewAmount() - event.getOldAmount(); gain = Math.round(gain * modifierVarFloat); int newAmt = event.getOldAmount() + gain; if (newAmt > event.getMaxMana()) newAmt = event.getMaxMana(); event.setNewAmount(newAmt); } else if (check == true && type == ModifierType.ADD_POWER) { int newAmt = event.getNewAmount() + (int) modifierVarFloat; if (newAmt > event.getMaxMana()) newAmt = event.getMaxMana(); event.setNewAmount(newAmt); } else if (check == true && (type == ModifierType.CAST || type == ModifierType.CAST_INSTEAD)) { Spell spell = MagicSpells.getSpellByInternalName(modifierVar); if (spell != null) { spell.cast(event.getPlayer(), 1, null); } } return true; }
public boolean apply(SpellCastEvent event) { Player player = event.getCaster(); boolean check = condition.check(player); if (check == false && type == ModifierType.REQUIRED) { event.setCancelled(true); return false; } else if (check == true && type == ModifierType.DENIED) { event.setCancelled(true); return false; } else if (check == true) { if (type == ModifierType.STOP) { return false; } else if (type == ModifierType.POWER) { event.increasePower(modifierVarFloat); } else if (type == ModifierType.ADD_POWER) { event.setPower(event.getPower() + modifierVarFloat); } else if (type == ModifierType.COOLDOWN) { event.setCooldown(modifierVarFloat); } else if (type == ModifierType.REAGENTS) { event.setReagents(event.getReagents().multiply(modifierVarFloat)); } else if (type == ModifierType.CAST_TIME) { event.setCastTime(modifierVarInt); } } else if (check == false && type == ModifierType.CONTINUE) { return false; } else if (check == true && type == ModifierType.CAST) { Spell spell = MagicSpells.getSpellByInternalName(modifierVar); if (spell != null) { spell.cast(event.getCaster(), event.getPower(), event.getSpellArgs()); } } else if (check == true && type == ModifierType.CAST_INSTEAD) { Spell spell = MagicSpells.getSpellByInternalName(modifierVar); if (spell != null) { spell.cast(event.getCaster(), event.getPower(), event.getSpellArgs()); } event.setCancelled(true); } return true; }