public virtual void Run(LogicBlock.LogicType type, RunPayload payload) { IEnumerable <LogicBlock> logicBlocks = EncounterLogic.Where(logic => logic.Type == type); switch (type) { case LogicBlock.LogicType.RESOURCE_REQUEST: State = EncounterState.RUNNING; RunGeneralLogic(logicBlocks, payload); break; case LogicBlock.LogicType.CONTRACT_OVERRIDE_MANIPULATION: RunGeneralLogic(logicBlocks, payload); break; case LogicBlock.LogicType.ENCOUNTER_MANIPULATION: RunGeneralLogic(logicBlocks, payload); break; case LogicBlock.LogicType.SCENE_MANIPULATION: RunSceneManipulationLogic(logicBlocks, payload); MissionControl.Instance.IsMCLoadingFinished = true; break; default: Main.Logger.LogError($"[EncounterRules] Unknown logic type '{type}'"); break; } }