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);
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }