public void ApplyUseCost(CharacterContext context, EffectType type) { if (context.ContextState == ContextState.Planning) { var currentMana = (int)context.GetState(CharacterWorldState.Mana); var newMana = currentMana - _manaCost; if (type == EffectType.Permanent) { context.Self.Mana = newMana; } else { context.SetState(CharacterWorldState.Mana, (byte)newMana, type); } } else { context.Self.Mana -= _manaCost; } }