protected override ScriptVariable CalculateInternal(ScriptExecutionEnvironment env) { ScriptVariable function = this.Function.Calculate(env); if (function == null) { env.Console.Warn("Cannot call null as function"); return(null); } List <ScriptVariable> args = new List <ScriptVariable>(); foreach (var param in this.Parameters) { args.Add(param.Calculate(env)); } return(function.Invoke(env, args)); }