Exemple #1
0
        StateTransitionInfoPair <StateEntityKey, ActionKey, StateTransitionInfo> ApplyEffects(ActionKey action, StateEntityKey originalStateEntityKey)
        {
            var originalState             = m_StateDataContext.GetStateData(originalStateEntityKey);
            var originalStateObjectBuffer = originalState.TraitBasedObjects;

            // effect params
            var originalAgentObject = originalStateObjectBuffer[action[k_AgentIndex]];
            var originalRoomObject  = originalStateObjectBuffer[action[k_RoomIndex]];

            var newState = m_StateDataContext.CopyStateData(originalState);

            var newLocalizedBuffer           = newState.LocalizedBuffer;
            var newTraitBasedObjectIdsBuffer = newState.TraitBasedObjectIds;

            // Action effects
            {
                var @Localized          = newLocalizedBuffer[originalAgentObject.LocalizedIndex];
                var @TraitBasedObjectId = newTraitBasedObjectIdsBuffer[action[k_RoomIndex]];
                @Localized.Location = @TraitBasedObjectId.Id;
                newLocalizedBuffer[originalAgentObject.LocalizedIndex] = @Localized;
            }

            var reward = Reward(originalState, action, newState);
            var StateTransitionInfo = new StateTransitionInfo {
                Probability = 1f, TransitionUtilityValue = reward
            };
            var resultingStateKey = m_StateDataContext.GetStateDataKey(newState);

            return(new StateTransitionInfoPair <StateEntityKey, ActionKey, StateTransitionInfo>(originalStateEntityKey, action, resultingStateKey, StateTransitionInfo));
        }
Exemple #2
0
        protected override IEnumerator Transition([CanBeNull] StateTransitionInfo transitionInfo)
        {
            m_ui.onContinueClick = null;
            yield return(m_ui.CloseCoroutine());

            m_ui.get_gameObject().SetActive(false);
        }
        StateTransitionInfoPair <StateEntityKey, ActionKey, StateTransitionInfo> ApplyEffects(ActionKey action, StateEntityKey originalStateEntityKey)
        {
            var originalState             = m_StateDataContext.GetStateData(originalStateEntityKey);
            var originalStateObjectBuffer = originalState.TraitBasedObjects;
            var originalNPCObject         = originalStateObjectBuffer[action[k_NPCIndex]];
            var originalWayPointObject    = originalStateObjectBuffer[action[k_WayPointIndex]];

            var newState          = m_StateDataContext.CopyStateData(originalState);
            var newLocationBuffer = newState.LocationBuffer;
            {
                var @Location = newLocationBuffer[originalNPCObject.LocationIndex];
                @Location.Position = newLocationBuffer[originalWayPointObject.LocationIndex].Position;
                newLocationBuffer[originalNPCObject.LocationIndex] = @Location;
            }



            var reward = Reward(originalState, action, newState);
            var StateTransitionInfo = new StateTransitionInfo {
                Probability = 1f, TransitionUtilityValue = reward
            };
            var resultingStateKey = m_StateDataContext.GetStateDataKey(newState);

            return(new StateTransitionInfoPair <StateEntityKey, ActionKey, StateTransitionInfo>(originalStateEntityKey, action, resultingStateKey, StateTransitionInfo));
        }
Exemple #4
0
        StateTransitionInfoPair <StateEntityKey, ActionKey, StateTransitionInfo> ApplyEffects(ActionKey action, StateEntityKey originalStateEntityKey)
        {
            var originalState             = m_StateDataContext.GetStateData(originalStateEntityKey);
            var originalStateObjectBuffer = originalState.TraitBasedObjects;
            var originalNPCObject         = originalStateObjectBuffer[action[k_NPCIndex]];

            var newState         = m_StateDataContext.CopyStateData(originalState);
            var newBaggageBuffer = newState.BaggageBuffer;

            {
                var @Baggage = newBaggageBuffer[originalNPCObject.BaggageIndex];
                @Baggage.@HasItem = true;
                newBaggageBuffer[originalNPCObject.BaggageIndex] = @Baggage;
            }


            newState.RemoveTraitBasedObjectAtIndex(action[k_ItemIndex]);

            var reward = Reward(originalState, action, newState);
            var StateTransitionInfo = new StateTransitionInfo {
                Probability = 1f, TransitionUtilityValue = reward
            };
            var resultingStateKey = m_StateDataContext.GetStateDataKey(newState);

            return(new StateTransitionInfoPair <StateEntityKey, ActionKey, StateTransitionInfo>(originalStateEntityKey, action, resultingStateKey, StateTransitionInfo));
        }
        protected override IEnumerator Transition(StateTransitionInfo transitionInfo)
        {
            onTransition?.Invoke();
            yield return(m_ui.CloseUI());

            yield return(_003C_003En__0(transitionInfo));
        }
        StateTransitionInfoPair <StateEntityKey, ActionKey, StateTransitionInfo> ApplyEffects(ActionKey action, StateEntityKey originalStateEntityKey)
        {
            var originalState             = m_StateDataContext.GetStateData(originalStateEntityKey);
            var originalStateObjectBuffer = originalState.TraitBasedObjects;
            var originalMoverObject       = originalStateObjectBuffer[action[k_MoverIndex]];
            var originalDestinationObject = originalStateObjectBuffer[action[k_DestinationIndex]];

            var newState          = m_StateDataContext.CopyStateData(originalState);
            var newLocationBuffer = newState.LocationBuffer;
            var newRobotBuffer    = newState.RobotBuffer;
            {
                var @Location = newLocationBuffer[originalMoverObject.LocationIndex];
                @Location.Position = newLocationBuffer[originalDestinationObject.LocationIndex].Position;
                newLocationBuffer[originalMoverObject.LocationIndex] = @Location;
            }
            {
                var @Robot = newRobotBuffer[originalMoverObject.RobotIndex];
                @Robot.@Battery -= 10;
                newRobotBuffer[originalMoverObject.RobotIndex] = @Robot;
            }



            var reward = Reward(originalState, action, newState);
            var StateTransitionInfo = new StateTransitionInfo {
                Probability = 1f, TransitionUtilityValue = reward
            };
            var resultingStateKey = m_StateDataContext.GetStateDataKey(newState);

            return(new StateTransitionInfoPair <StateEntityKey, ActionKey, StateTransitionInfo>(originalStateEntityKey, action, resultingStateKey, StateTransitionInfo));
        }
        StateTransitionInfoPair <StateEntityKey, ActionKey, StateTransitionInfo> ApplyEffects(ActionKey action, StateEntityKey originalStateEntityKey)
        {
            var originalState             = m_StateDataContext.GetStateData(originalStateEntityKey);
            var originalStateObjectBuffer = originalState.TraitBasedObjects;
            var originalAgentObject       = originalStateObjectBuffer[action[k_AgentIndex]];
            var originalCollectibleObject = originalStateObjectBuffer[action[k_CollectibleIndex]];

            var newState             = m_StateDataContext.CopyStateData(originalState);
            var newAgentBuffer       = newState.AgentBuffer;
            var newCollectibleBuffer = newState.CollectibleBuffer;
            {
                var @Agent = newAgentBuffer[originalAgentObject.AgentIndex];
                @Agent.Health += newCollectibleBuffer[originalCollectibleObject.CollectibleIndex].Amount;
                newAgentBuffer[originalAgentObject.AgentIndex] = @Agent;
            }



            var reward = Reward(originalState, action, newState);
            var StateTransitionInfo = new StateTransitionInfo {
                Probability = 1f, TransitionUtilityValue = reward
            };
            var resultingStateKey = m_StateDataContext.GetStateDataKey(newState);

            return(new StateTransitionInfoPair <StateEntityKey, ActionKey, StateTransitionInfo>(originalStateEntityKey, action, resultingStateKey, StateTransitionInfo));
        }
Exemple #8
0
        StateTransitionInfoPair <StateEntityKey, ActionKey, StateTransitionInfo> ApplyEffects(ActionKey action, StateEntityKey originalStateEntityKey)
        {
            var originalState             = m_StateDataContext.GetStateData(originalStateEntityKey);
            var originalStateObjectBuffer = originalState.TraitBasedObjects;
            var originalGameObject        = originalStateObjectBuffer[action[k_GameIndex]];

            var newState      = m_StateDataContext.CopyStateData(originalState);
            var newGameBuffer = newState.GameBuffer;
            {
                var @Game = newGameBuffer[originalGameObject.GameIndex];
                @Game.@MoveCount += 1;
                newGameBuffer[originalGameObject.GameIndex] = @Game;
            }
            {
                new CustomSwapEffect().ApplyCustomActionEffectsToState(originalState, action, newState);
            }



            var reward = Reward(originalState, action, newState);
            var StateTransitionInfo = new StateTransitionInfo {
                Probability = 1f, TransitionUtilityValue = reward
            };
            var resultingStateKey = m_StateDataContext.GetStateDataKey(newState);

            return(new StateTransitionInfoPair <StateEntityKey, ActionKey, StateTransitionInfo>(originalStateEntityKey, action, resultingStateKey, StateTransitionInfo));
        }
Exemple #9
0
        protected override IEnumerator Transition([CanBeNull] StateTransitionInfo transitionInfo)
        {
            m_ui.onCloseClick = null;
            yield return(m_ui.CloseCoroutine());

            onStateClosed?.Invoke();
        }
Exemple #10
0
        protected override IEnumerator Transition(StateTransitionInfo transitionInfo)
        {
            if (transitionInfo == null || transitionInfo.get_stateContext() == null)
            {
                yield break;
            }
            if (transitionInfo.get_stateContext() is LoginStateDemo)
            {
                yield return(m_ui.CloseCoroutine());
            }
            else
            {
                if (!(transitionInfo.get_stateContext() is FightState))
                {
                    yield break;
                }
                m_startLoadingTime = Time.get_time();
                while ((int)transitionInfo.get_stateContext().get_loadState() != 2)
                {
                    yield return(null);

                    if (transitionInfo.get_stateContext() == null)
                    {
                        yield break;
                    }
                }
                while (Time.get_time() - m_startLoadingTime < 3f)
                {
                    yield return(null);
                }
                yield return(m_ui.GotoFightAnim());
            }
        }
Exemple #11
0
        StateTransitionInfoPair <StateEntityKey, ActionKey, StateTransitionInfo> ApplyEffects(ActionKey action, StateEntityKey originalStateEntityKey)
        {
            var originalState             = m_StateDataContext.GetStateData(originalStateEntityKey);
            var originalStateObjectBuffer = originalState.TraitBasedObjects;
            var originalItemObject        = originalStateObjectBuffer[action[k_ItemIndex]];
            var originalCharacterObject   = originalStateObjectBuffer[action[k_CharacterIndex]];

            var newState           = m_StateDataContext.CopyStateData(originalState);
            var newCarriableBuffer = newState.CarriableBuffer;
            var newCarrierBuffer   = newState.CarrierBuffer;
            {
                var @Carriable = newCarriableBuffer[originalItemObject.CarriableIndex];
                @Carriable.@CarriedBy = originalState.GetTraitBasedObjectId(originalCharacterObject);
                newCarriableBuffer[originalItemObject.CarriableIndex] = @Carriable;
            }
            {
                var @Carrier = newCarrierBuffer[originalCharacterObject.CarrierIndex];
                @Carrier.@Carried = originalState.GetTraitBasedObjectId(originalItemObject);
                newCarrierBuffer[originalCharacterObject.CarrierIndex] = @Carrier;
            }



            var reward = Reward(originalState, action, newState);
            var StateTransitionInfo = new StateTransitionInfo {
                Probability = 1f, TransitionUtilityValue = reward
            };
            var resultingStateKey = m_StateDataContext.GetStateDataKey(newState);

            return(new StateTransitionInfoPair <StateEntityKey, ActionKey, StateTransitionInfo>(originalStateEntityKey, action, resultingStateKey, StateTransitionInfo));
        }
        StateTransitionInfoPair <StateEntityKey, ActionKey, StateTransitionInfo> ApplyEffects(ActionKey action, StateEntityKey originalStateEntityKey)
        {
            var originalState             = m_StateDataContext.GetStateData(originalStateEntityKey);
            var originalStateObjectBuffer = originalState.TraitBasedObjects;
            var originalRobotObject       = originalStateObjectBuffer[action[k_RobotIndex]];

            var newState             = m_StateDataContext.CopyStateData(originalState);
            var newCleanlinessBuffer = newState.CleanlinessBuffer;

            {
                var @Cleanliness = newCleanlinessBuffer[originalRobotObject.CleanlinessIndex];
                @Cleanliness.@DirtCount -= 1;
                newCleanlinessBuffer[originalRobotObject.CleanlinessIndex] = @Cleanliness;
            }


            newState.RemoveTraitBasedObjectAtIndex(action[k_DirtIndex]);

            var reward = Reward(originalState, action, newState);
            var StateTransitionInfo = new StateTransitionInfo {
                Probability = 1f, TransitionUtilityValue = reward
            };
            var resultingStateKey = m_StateDataContext.GetStateDataKey(newState);

            return(new StateTransitionInfoPair <StateEntityKey, ActionKey, StateTransitionInfo>(originalStateEntityKey, action, resultingStateKey, StateTransitionInfo));
        }
        void WriteEdgeToState(TStateKey precedingStateKey, TActionKey actionKey, StateTransitionInfo stateTransitionInfo, TStateKey resultingStateKey)
        {
            var stateActionPair = new StateActionPair <TStateKey, TActionKey>(precedingStateKey, actionKey);

            ActionLookup.Add(precedingStateKey, actionKey);
            ActionInfoLookup.TryAdd(stateActionPair, default);
            ResultingStateLookup.Add(stateActionPair, resultingStateKey);
            StateTransitionInfoLookup.TryAdd(new StateTransition <TStateKey, TActionKey>(stateActionPair, resultingStateKey), stateTransitionInfo);
            PredecessorGraph.Add(resultingStateKey, precedingStateKey);
        }
        // Token: 0x0600154D RID: 5453 RVA: 0x000551AC File Offset: 0x000533AC
        public static TransientErrorInfo ConstructFromPersisted(TransientErrorInfoPersisted errorInfo)
        {
            TransientErrorInfo transientErrorInfo = new TransientErrorInfo();

            transientErrorInfo.m_currentErrorState = StateTransitionInfo.ConvertErrorTypeFromSerializable(errorInfo.CurrentErrorState);
            transientErrorInfo.m_lastErrorState    = transientErrorInfo.m_currentErrorState;
            DateTimeHelper.ParseIntoDateTimeIfPossible(errorInfo.LastSuccessTransitionUtc, ref transientErrorInfo.m_lastSuccessTransitionUtc);
            DateTimeHelper.ParseIntoDateTimeIfPossible(errorInfo.LastFailureTransitionUtc, ref transientErrorInfo.m_lastFailureTransitionUtc);
            return(transientErrorInfo);
        }
        StateTransitionInfoPair <StateEntityKey, ActionKey, StateTransitionInfo> ApplyEffects(ActionKey action, StateEntityKey originalStateEntityKey)
        {
            var originalState             = m_StateDataContext.GetStateData(originalStateEntityKey);
            var originalStateObjectBuffer = originalState.TraitBasedObjects;
            var newState = m_StateDataContext.CopyStateData(originalState);

            var originalObjectIds = originalState.TraitBasedObjectIds;

            // Action effects
            var oldKeyIndex = action[k_KeyIndex];

            var newCarriableBuffer = newState.CarriableBuffer;
            var newCarrierBuffer   = newState.CarrierBuffer;

            {
                if (oldKeyIndex >= 0)
                {
                    newCarriableBuffer[oldKeyIndex] = new Carriable()
                    {
                        Carrier = ObjectId.None
                    }
                }
                ;
            }

            {
                newCarriableBuffer[originalStateObjectBuffer[action[k_KeyIndex]].CarriableIndex] =
                    new Carriable()
                {
                    Carrier = originalObjectIds[action[k_AgentIndex]].Id
                };
            }

            {
                newCarrierBuffer[originalStateObjectBuffer[action[k_AgentIndex]].CarrierIndex] =
                    new Carrier()
                {
                    CarriedObject = originalObjectIds[action[k_KeyIndex]].Id
                };
            }

            var reward = Reward(originalState, action, newState);
            var StateTransitionInfo = new StateTransitionInfo {
                Probability = 1f, TransitionUtilityValue = reward
            };
            var resultingStateKey = m_StateDataContext.GetStateDataKey(newState);

            return(new StateTransitionInfoPair <StateEntityKey, ActionKey, StateTransitionInfo>(originalStateEntityKey, action, resultingStateKey, StateTransitionInfo));
        }

        float Reward(StateData originalState, ActionKey action, StateData newState)
        {
            return(-1f);
        }
Exemple #16
0
 protected override IEnumerator Transition(StateTransitionInfo transitionInfo)
 {
     while (transitionInfo.get_stateContext() != null && (int)transitionInfo.get_stateContext().get_loadState() != 2)
     {
         yield return(null);
     }
     if (null != m_ui)
     {
         yield return(m_ui.CloseCoroutine());
     }
 }
Exemple #17
0
        StateTransitionInfoPair <StateEntityKey, ActionKey, StateTransitionInfo> CreateResultingState(StateEntityKey originalStateEntityKey, ActionKey action,
                                                                                                      ColorValue roomColor, float probability, float reward, bool endRoom)
        {
            var originalState             = m_StateDataContext.GetStateData(originalStateEntityKey);
            var originalStateObjectBuffer = originalState.TraitBasedObjects;

            var newState = m_StateDataContext.CopyStateData(originalState);

            var newObjectBuffer    = newState.TraitBasedObjects;
            var newDomainIdBuffer  = newState.TraitBasedObjectIds;
            var newLockableBuffer  = newState.LockableBuffer;
            var newColoredBuffer   = newState.ColoredBuffer;
            var newLocalizedBuffer = newState.LocalizedBuffer;
            var newEndBuffer       = newState.EndBuffer;

            // Action effects
            newState.AddTraitBasedObject(s_RoomTypes, out var newRoom, out _);
            var newRoomIndex = newState.GetTraitBasedObjectIndex(newRoom);

            var newRoomLockable = newState.GetTraitOnObject <Lockable>(newRoom);

            newRoomLockable.Locked = true;
            newState.SetTraitOnObjectAtIndex(newRoomLockable, newRoomIndex);

            var newRoomColor = newState.GetTraitOnObject <Colored>(newRoom);

            newRoomColor.Color = roomColor;
            newState.SetTraitOnObjectAtIndex(newRoomColor, newRoomIndex);

            {
                newLockableBuffer[newObjectBuffer[action[k_RoomIndex]].LockableIndex] = new Lockable {
                    Locked = false
                };
                newLocalizedBuffer[newObjectBuffer[action[k_AgentIndex]].LocalizedIndex] = new Localized {
                    Location = newDomainIdBuffer[newRoomIndex].Id
                };
            }

            if (endRoom)
            {
                newEndBuffer.Add(new End());
                newRoom.EndIndex = (byte)(newEndBuffer.Length - 1);
                newObjectBuffer[newObjectBuffer.Length - 1] = newRoom;
            }

            var StateTransitionInfo = new StateTransitionInfo {
                Probability = probability, TransitionUtilityValue = reward
            };
            var resultingStateKey = m_StateDataContext.GetStateDataKey(newState);

            return(new StateTransitionInfoPair <StateEntityKey, ActionKey, StateTransitionInfo>(originalStateEntityKey, action, resultingStateKey, StateTransitionInfo));
        }
Exemple #18
0
 protected override IEnumerator Transition(StateTransitionInfo transitionInfo)
 {
     DisableUIEvents();
     onTransition?.Invoke();
     if (transitionInfo != null && transitionInfo.get_stateContext() != null && transitionInfo.get_stateContext() is UIPVPLoadingState)
     {
         yield return(m_ui.PlayTransitionToVersusAnimation());
     }
     else
     {
         yield return(m_ui.PlayCloseAnimation());
     }
     yield return(_003C_003En__0(transitionInfo));
 }
        protected override IEnumerator Transition(StateTransitionInfo transitionInfo)
        {
            m_modifications.Unregister();
            float timeOutStart = Time.get_realtimeSinceStartup();

            if (m_modifications.hasModifications)
            {
                m_resultReceived = false;
                m_frame.SendSelectDecksAndWeapon(m_modifications.selectedWeapon, m_modifications.selectedDecksPerWeapon);
                while (!m_resultReceived && Time.get_realtimeSinceStartup() - timeOutStart < 1f)
                {
                    yield return(null);
                }
            }
            yield return(m_ui.CloseUI());

            m_ui.UnloadAsset();
        }
Exemple #20
0
        StateTransitionInfoPair <StateEntityKey, ActionKey, StateTransitionInfo> ApplyEffects(ActionKey action, StateEntityKey originalStateEntityKey)
        {
            var originalState             = m_StateDataContext.GetStateData(originalStateEntityKey);
            var originalStateObjectBuffer = originalState.TraitBasedObjects;

            var newState = m_StateDataContext.CopyStateData(originalState);


            newState.RemoveTraitBasedObjectAtIndex(action[k_DirtIndex]);

            var reward = Reward(originalState, action, newState);
            var StateTransitionInfo = new StateTransitionInfo {
                Probability = 1f, TransitionUtilityValue = reward
            };
            var resultingStateKey = m_StateDataContext.GetStateDataKey(newState);

            return(new StateTransitionInfoPair <StateEntityKey, ActionKey, StateTransitionInfo>(originalStateEntityKey, action, resultingStateKey, StateTransitionInfo));
        }
        StateTransitionInfoPair <StateEntityKey, ActionKey, StateTransitionInfo> ApplyEffects(ActionKey action, StateEntityKey originalStateEntityKey)
        {
            var originalState             = m_StateDataContext.GetStateData(originalStateEntityKey);
            var originalStateObjectBuffer = originalState.TraitBasedObjects;
            var originalAgentObject       = originalStateObjectBuffer[action[k_AgentIndex]];
            var originalItemObject        = originalStateObjectBuffer[action[k_ItemIndex]];

            var newState          = m_StateDataContext.CopyStateData(originalState);
            var newAgentBuffer    = newState.AgentBuffer;
            var newLocationBuffer = newState.LocationBuffer;
            var newItemBuffer     = newState.ItemBuffer;
            {
                var @Agent = newAgentBuffer[originalAgentObject.AgentIndex];
                @Agent.@HasWeapon = true;
                newAgentBuffer[originalAgentObject.AgentIndex] = @Agent;
            }
            {
                var @Location = newLocationBuffer[originalAgentObject.LocationIndex];
                @Location.Position = newLocationBuffer[originalItemObject.LocationIndex].Position;
                newLocationBuffer[originalAgentObject.LocationIndex] = @Location;
            }
            {
                var @Item = newItemBuffer[originalItemObject.ItemIndex];
                @Item.@CarriedBy = originalState.GetTraitBasedObjectId(originalAgentObject);
                newItemBuffer[originalItemObject.ItemIndex] = @Item;
            }
            {
                var @Agent = newAgentBuffer[originalAgentObject.AgentIndex];
                @Agent.@Timeline += 1;
                newAgentBuffer[originalAgentObject.AgentIndex] = @Agent;
            }



            var reward = Reward(originalState, action, newState);
            var StateTransitionInfo = new StateTransitionInfo {
                Probability = 1f, TransitionUtilityValue = reward
            };
            var resultingStateKey = m_StateDataContext.GetStateDataKey(newState);

            return(new StateTransitionInfoPair <StateEntityKey, ActionKey, StateTransitionInfo>(originalStateEntityKey, action, resultingStateKey, StateTransitionInfo));
        }
Exemple #22
0
        StateTransitionInfoPair <StateEntityKey, ActionKey, StateTransitionInfo> ApplyEffects(ActionKey action, StateEntityKey originalStateEntityKey)
        {
            var originalState             = m_StateDataContext.GetStateData(originalStateEntityKey);
            var originalStateObjectBuffer = originalState.TraitBasedObjects;
            var originalCharacterObject   = originalStateObjectBuffer[action[k_CharacterIndex]];
            var originalToObject          = originalStateObjectBuffer[action[k_ToIndex]];
            var originalFromObject        = originalStateObjectBuffer[action[k_FromIndex]];

            var newState           = m_StateDataContext.CopyStateData(originalState);
            var newCharacterBuffer = newState.CharacterBuffer;
            var newWaypointBuffer  = newState.WaypointBuffer;
            {
                var @Character = newCharacterBuffer[originalCharacterObject.CharacterIndex];
                @Character.@Waypoint = originalState.GetTraitBasedObjectId(originalToObject);
                newCharacterBuffer[originalCharacterObject.CharacterIndex] = @Character;
            }
            {
                var @Waypoint = newWaypointBuffer[originalToObject.WaypointIndex];
                @Waypoint.@Occupied = true;
                newWaypointBuffer[originalToObject.WaypointIndex] = @Waypoint;
            }
            {
                var @Waypoint = newWaypointBuffer[originalFromObject.WaypointIndex];
                @Waypoint.@Occupied = false;
                newWaypointBuffer[originalFromObject.WaypointIndex] = @Waypoint;
            }
            {
                var @Waypoint = newWaypointBuffer[originalToObject.WaypointIndex];
                @Waypoint.@Visited += 1;
                newWaypointBuffer[originalToObject.WaypointIndex] = @Waypoint;
            }



            var reward = Reward(originalState, action, newState);
            var StateTransitionInfo = new StateTransitionInfo {
                Probability = 1f, TransitionUtilityValue = reward
            };
            var resultingStateKey = m_StateDataContext.GetStateDataKey(newState);

            return(new StateTransitionInfoPair <StateEntityKey, ActionKey, StateTransitionInfo>(originalStateEntityKey, action, resultingStateKey, StateTransitionInfo));
        }
Exemple #23
0
        StateTransitionInfoPair <StateEntityKey, ActionKey, StateTransitionInfo> ApplyEffects(ActionKey action, StateEntityKey originalStateEntityKey)
        {
            var originalState             = m_StateDataContext.GetStateData(originalStateEntityKey);
            var originalStateObjectBuffer = originalState.TraitBasedObjects;
            var originalCoverObject       = originalStateObjectBuffer[action[k_CoverIndex]];
            var originalAgentObject       = originalStateObjectBuffer[action[k_AgentIndex]];

            var newState          = m_StateDataContext.CopyStateData(originalState);
            var newCoverBuffer    = newState.CoverBuffer;
            var newLocationBuffer = newState.LocationBuffer;
            var newAgentBuffer    = newState.AgentBuffer;
            {
                var @Cover = newCoverBuffer[originalCoverObject.CoverIndex];
                @Cover.@SpotTaken = true;
                newCoverBuffer[originalCoverObject.CoverIndex] = @Cover;
            }
            {
                var @Location = newLocationBuffer[originalAgentObject.LocationIndex];
                @Location.Position = newLocationBuffer[originalCoverObject.LocationIndex].Position;
                newLocationBuffer[originalAgentObject.LocationIndex] = @Location;
            }
            {
                var @Agent = newAgentBuffer[originalAgentObject.AgentIndex];
                @Agent.@Safe = true;
                newAgentBuffer[originalAgentObject.AgentIndex] = @Agent;
            }
            {
                var @Agent = newAgentBuffer[originalAgentObject.AgentIndex];
                @Agent.@Timeline += 1;
                newAgentBuffer[originalAgentObject.AgentIndex] = @Agent;
            }



            var reward = Reward(originalState, action, newState);
            var StateTransitionInfo = new StateTransitionInfo {
                Probability = 1f, TransitionUtilityValue = reward
            };
            var resultingStateKey = m_StateDataContext.GetStateDataKey(newState);

            return(new StateTransitionInfoPair <StateEntityKey, ActionKey, StateTransitionInfo>(originalStateEntityKey, action, resultingStateKey, StateTransitionInfo));
        }
        StateTransitionInfoPair <StateEntityKey, ActionKey, StateTransitionInfo> ApplyEffects(ActionKey action, StateEntityKey originalStateEntityKey)
        {
            var originalState             = m_StateDataContext.GetStateData(originalStateEntityKey);
            var originalStateObjectBuffer = originalState.TraitBasedObjects;
            var originalGameStateObject   = originalStateObjectBuffer[action[k_GameStateIndex]];
            var originalNPCObject         = originalStateObjectBuffer[action[k_NPCIndex]];
            var originalGateObject        = originalStateObjectBuffer[action[k_GateIndex]];

            var newState            = m_StateDataContext.CopyStateData(originalState);
            var newGateSwitchBuffer = newState.GateSwitchBuffer;
            var newBaggageBuffer    = newState.BaggageBuffer;
            {
                var @GateSwitch = newGateSwitchBuffer[originalGameStateObject.GateSwitchIndex];
                @GateSwitch.@OpenCount += 1;
                newGateSwitchBuffer[originalGameStateObject.GateSwitchIndex] = @GateSwitch;
            }
            {
                var @Baggage = newBaggageBuffer[originalNPCObject.BaggageIndex];
                @Baggage.@HasItem = false;
                newBaggageBuffer[originalNPCObject.BaggageIndex] = @Baggage;
            }
            {
                var @Baggage = newBaggageBuffer[originalGateObject.BaggageIndex];
                @Baggage.@HasItem = true;
                newBaggageBuffer[originalGateObject.BaggageIndex] = @Baggage;
            }



            var reward = Reward(originalState, action, newState);
            var StateTransitionInfo = new StateTransitionInfo {
                Probability = 1f, TransitionUtilityValue = reward
            };
            var resultingStateKey = m_StateDataContext.GetStateDataKey(newState);

            return(new StateTransitionInfoPair <StateEntityKey, ActionKey, StateTransitionInfo>(originalStateEntityKey, action, resultingStateKey, StateTransitionInfo));
        }
 protected override IEnumerator Transition(StateTransitionInfo transitionInfo)
 {
     yield return(m_ui.Unload());
 }
 protected override IEnumerator Transition([CanBeNull] StateTransitionInfo transitionInfo)
 {
     yield return(m_ui.CloseCoroutine());
 }
Exemple #27
0
 protected override IEnumerator Transition(StateTransitionInfo transitionInfo)
 {
     yield return(m_ui.CloseTo(base.toSide));
 }