Пример #1
0
        public void RestoreSaveData(TaskSaveData_v1 data)
        {
            // Restore base task data
            symbol               = data.symbol;
            targetSymbol         = data.targetSymbol;
            IsTriggered          = data.triggered;
            prevTriggered        = data.prevTriggered;
            type                 = data.type;
            dropped              = data.dropped;
            globalVarName        = data.globalVarName;
            globalVarLink        = data.globalVarLink;
            hasTriggerConditions = data.hasTriggerConditions;

            // Restore actions
            actions.Clear();
            foreach (ActionTemplate.ActionSaveData_v1 actionData in data.actions)
            {
                // Construct deserialized QuestAction based on type
                System.Reflection.ConstructorInfo ctor = actionData.type.GetConstructor(new Type[] { typeof(Quest) });
                ActionTemplate action = (ActionTemplate)ctor.Invoke(new object[] { ParentQuest });

                // Restore state
                action.RestoreActionSaveData(actionData);
                actions.Add(action);
            }
        }
Пример #2
0
        public TaskSaveData_v1 GetSaveData()
        {
            // Save base task data
            TaskSaveData_v1 data = new TaskSaveData_v1();

            data.symbol               = symbol;
            data.targetSymbol         = targetSymbol;
            data.triggered            = IsTriggered;
            data.prevTriggered        = prevTriggered;
            data.type                 = type;
            data.dropped              = dropped;
            data.globalVarName        = globalVarName;
            data.globalVarLink        = globalVarLink;
            data.hasTriggerConditions = hasTriggerConditions;

            // Save actions
            List <ActionTemplate.ActionSaveData_v1> actionSaveDataList = new List <ActionTemplate.ActionSaveData_v1>();

            foreach (ActionTemplate action in actions)
            {
                actionSaveDataList.Add(action.GetActionSaveData());
            }
            data.actions = actionSaveDataList.ToArray();

            return(data);
        }