public override void Execute(XmlNode node, GameObject parent, Dictionary <string, string> data, BSMLParserParams parserParams) { if (data.TryGetValue("hosts", out string hosts)) { if (!parserParams.values.TryGetValue(hosts, out BSMLValue values)) { throw new Exception("host list '" + hosts + "' not found"); } bool passTags = false; if (data.TryGetValue("passTags", out string passTagsString)) { passTags = Parse.Bool(passTagsString); } foreach (object host in values.GetValue() as List <object> ) { BSMLParserParams nodeParams = BSMLParser.instance.Parse(node, parent, host); if (passTags) { nodeParams.PassTaggedObjects(parserParams); } } } }