public override void Execute(BattleObject actor, GameAction action) { base.Execute(actor, action); SubactionVarData variable = arg_dict["variable"]; SubactionVarData data = arg_dict["value"]; if (variable.source == SubactionSource.OWNER) { //Only set the variable if there isn't already one present if (!actor.HasVar(variable.data)) { variable.SetVariableInTarget(actor, action, data.GetData(actor, action)); } } else if (variable.source == SubactionSource.ACTION) { //Only set the variable if there isn't already one present if (!action.HasVar(variable.data)) { variable.SetVariableInTarget(actor, action, data.GetData(actor, action)); } } }