public override object GetValue(string variableName, ExpressionEvaluator evaluator, Creature player) { if (variableName.IndexOf(KnownQualifiers.Spell) != 0) { return(null); } CastedSpell castedSpell = Expressions.GetCastedSpell(evaluator.Variables); string spellPropToken = variableName.EverythingAfter(KnownQualifiers.Spell); if (castedSpell != null) { if (fieldNames.IndexOf(spellPropToken) >= 0) { FieldInfo field = typeof(Spell).GetField(spellPropToken); return(field?.GetValue(castedSpell.Spell)); } if (propertyNames.IndexOf(spellPropToken) >= 0) { PropertyInfo property = typeof(Spell).GetProperty(spellPropToken); return(property?.GetValue(castedSpell.Spell)); } } return(null); }
public override object GetValue(string variableName, ExpressionEvaluator evaluator, Creature player) { CastedSpell castedSpell = Expressions.GetCastedSpell(evaluator.Variables); if (castedSpell == null) { return(null); } return(GetValue <Spell>(variableName, castedSpell.Spell)); }
public override object Evaluate(List <string> args, ExpressionEvaluator evaluator, Creature player, Target target, CastedSpell spell, RollResults dice = null) { ExpectingArguments(args, 0); CastedSpell castedSpell = Expressions.GetCastedSpell(evaluator.Variables); if (castedSpell != null && player != null) { player.Dispel(castedSpell); } return(null); }
public override object Evaluate(List <string> args, ExpressionEvaluator evaluator, Character player, Target target, CastedSpell spell, DiceStoppedRollingData dice = null) { ExpectingArguments(args, 0); CastedSpell castedSpell = Expressions.GetCastedSpell(evaluator.Variables); if (castedSpell != null && player != null) { player.Dispel(castedSpell); } return(null); }