private void HookScriptTriggers(Script script) { foreach (ScriptTrigger scriptTrigger in script.Triggers) { ScriptTrigger triggerCopy = scriptTrigger; EntityTypeDescriptor entityTypeDescriptor = EntityTypes.Types[scriptTrigger.Object.Type]; EventDescriptor eventDescriptor = entityTypeDescriptor.Events[scriptTrigger.Event]; if (entityTypeDescriptor.Static) { Action action = (Action)(() => this.ProcessTrigger(triggerCopy, script)); object obj = eventDescriptor.AddHandler((object)this.services[scriptTrigger.Object.Type], new object[1] { (object)action }); } else { Action <int> action = (Action <int>)(id => this.ProcessTrigger(triggerCopy, script, new int?(id))); object obj = eventDescriptor.AddHandler((object)this.services[scriptTrigger.Object.Type], new object[1] { (object)action }); } } }