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; } }
public void RunEncounterRules(LogicBlock.LogicType type, RunPayload payload = null) { if (EncounterRules != null) { switch (type) { case LogicBlock.LogicType.RESOURCE_REQUEST: { EncounterRules.Run(LogicBlock.LogicType.RESOURCE_REQUEST, payload); break; } case LogicBlock.LogicType.CONTRACT_OVERRIDE_MANIPULATION: { EncounterRules.Run(LogicBlock.LogicType.CONTRACT_OVERRIDE_MANIPULATION, payload); break; } case LogicBlock.LogicType.ENCOUNTER_MANIPULATION: { EncounterRules.Run(LogicBlock.LogicType.ENCOUNTER_MANIPULATION, payload); break; } case LogicBlock.LogicType.SCENE_MANIPULATION: { EncounterRules.Run(LogicBlock.LogicType.SCENE_MANIPULATION, payload); break; } default: { Main.Logger.LogError($"[RunEncounterRules] Unknown type of '{type.ToString()}'"); break; } } } }