Fix: Modifiers persist in continuous spells cast by scrolls (#895) (ipdnaeip)
* ItemScroll Modifier Fix Modifiers persist in continuous spells cast by scrolls. Added check for tick 0 as to not reapply SpellModifier changes * Fix comment formatting in ItemScroll.java --------- Co-authored-by: WinDanesz <31292708+WinDanesz@users.noreply.github.com>
This commit is contained in:
@@ -160,12 +160,21 @@ public class ItemScroll extends Item implements ISpellCastingItem, IWorkbenchIte
|
||||
|
||||
Spell spell = Spell.byMetadata(stack.getItemDamage());
|
||||
// By default, scrolls have no modifiers - but with the event system, they could be added.
|
||||
SpellModifiers modifiers = new SpellModifiers();
|
||||
|
||||
SpellModifiers modifiers;
|
||||
|
||||
if(WizardData.get(player) != null){
|
||||
modifiers = WizardData.get(player).itemCastingModifiers;
|
||||
}else{
|
||||
modifiers = new SpellModifiers();
|
||||
}
|
||||
|
||||
int castingTick = stack.getMaxItemUseDuration() - count;
|
||||
|
||||
// Continuous spells (these must check if they can be cast each tick since the mana changes)
|
||||
// In theory the spell is always continuous here but just in case it isn't...
|
||||
if(spell.isContinuous && canCast(stack, spell, player, player.getActiveHand(), castingTick, modifiers)){
|
||||
// Do not check canCast() on tick 0 as it is already done in onItemRightClick() and would duplicate modifiers
|
||||
if(spell.isContinuous && (castingTick == 0 || canCast(stack, spell, player, player.getActiveHand(), castingTick, modifiers))){
|
||||
cast(stack, spell, player, player.getActiveHand(), castingTick, modifiers);
|
||||
}else{
|
||||
// Scrolls normally work on the max use duration so this isn't ever reached by wizardry, but if the
|
||||
|
||||
Reference in New Issue
Block a user