Exemple #1
0
        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;
                }
                }
            }
        }