Ejemplo n.º 1
0
        public void Deserialize(ProgressionData data)
        {
            _completedStates      = data.completedStates;
            _objectivesInProgress = data.objectivesInProgress;
            _interactableStates   = data.interactableStates;
            _dialogueStates       = data.dialogueStates;

            hasState        = true;
            completedStates = new HashSet <string>();
            foreach (var i in _completedStates)
            {
                completedStates.Add(i);
            }

            objectivesInProgress = new HashSet <string>();
            foreach (var i in _objectivesInProgress)
            {
                objectivesInProgress.Add(i);
            }

            interactableStatesDict = new Dictionary <string, InteractableState>();
            foreach (var i in _interactableStates)
            {
                interactableStatesDict.Add(i.interactableId, i);
            }

            dialogueStatesDict = new Dictionary <string, DialogueState>();
            foreach (var i in _dialogueStates)
            {
                dialogueStatesDict.Add(i.dialogueId, i);
            }

            CheckUnlockConditions(true);
        }
Ejemplo n.º 2
0
        public void Serialize(ref ProgressionData data)
        {
            hasState         = true;
            _completedStates = completedStates.ToArray();

            _objectivesInProgress = objectivesInProgress.ToArray();

            _interactableStates = interactableStatesDict.Values.ToArray();
            for (int i = 0; i < _interactableStates.Length; ++i)
            {
                var state = _interactableStates[i];
                state.interactCount    = _interactableStates[i].interactable.interactCount;
                _interactableStates[i] = state;
            }

            _dialogueStates = dialogueStatesDict.Values.ToArray();
            for (int i = 0; i < _dialogueStates.Length; ++i)
            {
                if (string.IsNullOrEmpty(_dialogueStates[i].dialogueId))
                {
                    continue;
                }
                var state = _dialogueStates[i];
                state.persistConvoId = _dialogueStates[i].dialogue.persistConvoId;
                _dialogueStates[i]   = state;
            }

            data.completedStates      = _completedStates;
            data.objectivesInProgress = _objectivesInProgress;
            data.interactableStates   = _interactableStates;
            data.dialogueStates       = _dialogueStates;
        }