Ejemplo n.º 1
0
    public override void ApplyEvent(GameWorldController gameWorldController, GameEvent.OnEventCompleteDelegate onComplete)
    {
        RoomData currentRoom = gameWorldController.Model.CurrentGame.CurrentRoom;

        base.ApplyEvent(gameWorldController, onComplete);

        if (currentRoom.RoomKey.Equals(m_mobState.CurrentRoomKey))
        {
            // Add the mob state to the current game state
            currentRoom.SetMobById(m_mobState.mob_id, m_mobState);

            // Create a new mob entity using the mob data just set in the game state
            {
                MobEntity mobEntity = new MobEntity(m_mobState.mob_id);

                mobEntity.AddToGameWorld(gameWorldController);
            }
        }

        // Completes immediately
        if (onComplete != null)
        {
            onComplete();
        }
    }
Ejemplo n.º 2
0
    public override void ApplyEvent(GameWorldController gameWorldController, GameEvent.OnEventCompleteDelegate onComplete)
    {
        GameData currentGame = gameWorldController.Model.CurrentGame;

        if (currentGame.CharacterID != _characterState.character_id)
        {
            base.ApplyEvent(gameWorldController, onComplete);

            // Add the character state to the current game state
            currentGame.SetCharacterById(_characterState.character_id, _characterState);

            // Create a new character entity using the character data just set in the game state
            {
                CharacterEntity characterEntity = new CharacterEntity(_characterState.character_id);

                characterEntity.AddToGameWorld(gameWorldController);
            }
        }
        else
        {
            Debug.Log("Ignoring apply CharacterJoinedGame event for primary character_id=" + _characterState.character_id);
        }

        // Completes immediately
        if (onComplete != null)
        {
            onComplete();
        }
    }
    public override void ApplyEvent(GameWorldController gameWorldController, GameEvent.OnEventCompleteDelegate onComplete)
    {
        GameData currentGame = gameWorldController.Model.CurrentGame;

        if (currentGame.CharacterID != _characterState.character_id)
        {
            base.ApplyEvent(gameWorldController, onComplete);

            // Clean up the entity
            {
                CharacterEntity characterEntity = gameWorldController.Model.GetCharacterEntity(_characterState.character_id);

                characterEntity.RemoveFromGameWorld(gameWorldController);
            }

            // Remove the character data from the current game state
            currentGame.SetCharacterById(_characterState.character_id, null);
        }
        else
        {
            Debug.Log("Ignoring apply CharacterLeftGame event for primary character_id=" + _characterState.character_id);
        }

        // Completes immediately
        if (onComplete != null)
        {
            onComplete();
        }
    }
Ejemplo n.º 4
0
    public override void ApplyEvent(GameWorldController gameWorldController, GameEvent.OnEventCompleteDelegate onComplete)
    {
        base.ApplyEvent(gameWorldController, onComplete);

        EnergyTankEntity energyTankEntity = gameWorldController.Model.GetEnergyTankEntity(EnergyTankId);

        energyTankEntity.Energy = (uint)Math.Max((int)energyTankEntity.Energy - EnergyDrained, 0);

        if (DrainerFaction == GameConstants.eFaction.ai)
        {
            MobEntity mobEntity = gameWorldController.Model.GetMobEntity(DrainerId);

            mobEntity.Energy = mobEntity.Energy + EnergyDrained;
        }
        else if (DrainerFaction == GameConstants.eFaction.player)
        {
            CharacterEntity characterEntity = gameWorldController.Model.GetCharacterEntity(DrainerId);

            characterEntity.Energy = characterEntity.Energy + EnergyDrained;
        }

        // Completes immediately
        if (onComplete != null)
        {
            onComplete();
        }
    }
    public override void ApplyEvent(GameWorldController gameWorldController, GameEvent.OnEventCompleteDelegate onComplete)
    {
        base.ApplyEvent(gameWorldController, onComplete);

        // Completes immediately
        if (onComplete != null)
        {
            onComplete();
        }
    }
    public override void ApplyEvent(GameWorldController gameWorldController, GameEvent.OnEventCompleteDelegate onComplete)
    {
        base.ApplyEvent(gameWorldController, onComplete);

        //TODO: Spawn "spotted" effect on energy tank

        // Completes immediately
        if (onComplete != null)
        {
            onComplete();
        }
    }
    public override void ApplyEvent(GameWorldController gameWorldController, GameEvent.OnEventCompleteDelegate onComplete)
    {
        base.ApplyEvent(gameWorldController, onComplete);

        // TODO: Actually de-spawn the mob sprite

        // Completes immediately
        if (onComplete != null)
        {
            onComplete();
        }
    }
    public override void ApplyEvent(GameWorldController gameWorldController, GameEvent.OnEventCompleteDelegate onComplete)
    {
        base.ApplyEvent(gameWorldController, onComplete);

        MobEntity entity = gameWorldController.Model.GetMobEntity(MobId);

        entity.PostDialogEvent(Dialog);

        // Completes immediately
        if (onComplete != null)
        {
            onComplete();
        }
    }
Ejemplo n.º 9
0
    public override void ApplyEvent(GameWorldController gameWorldController, GameEvent.OnEventCompleteDelegate onComplete)
    {
        base.ApplyEvent(gameWorldController, onComplete);

        EnergyTankEntity energyTankEntity = gameWorldController.Model.GetEnergyTankEntity(EnergyTankId);

        energyTankEntity.Ownership = EnergyTankFaction;

        // Completes immediately
        if (onComplete != null)
        {
            onComplete();
        }
    }
Ejemplo n.º 10
0
    public bool AdvanceEventCursor(GameWorldController gameWorldController, GameEvent.OnEventCompleteDelegate onComplete)
    {
        bool success = false;

        if (!IsEventCursorAtLastEvent)
        {
            GameEvent gameEvent  = m_eventList[(int)m_eventCursor];
            string    chatString = gameEvent.ToChatString(gameWorldController);

            gameEvent.ApplyEvent(gameWorldController, onComplete);

            if (chatString.Length > 0)
            {
                gameWorldController.SendChatWindowText(chatString);
            }

            m_eventCursor = m_eventCursor + 1;

            success = true;
        }

        return(success);
    }
Ejemplo n.º 11
0
    public void RequestRoomData(RoomKey roomKey, GameEvent.OnEventCompleteDelegate onComplete)
    {
        if (!IsRoomDataRequestPending)
        {
            // Cached room data is available
            if (SessionData.GetInstance().CurrentGameData.HasRoomData(roomKey))
            {
                // Update which room we're currently in
                SessionData.GetInstance().CurrentGameData.CurrentRoomKey = roomKey;

                // Notify the controller
                Debug.Log("Using cached room data");
                m_gameWorldController.OnRoomLoaded(roomKey);

                // Notify the caller
                if (onComplete != null)
                {
                    onComplete();
                }
            }
            // Have to request room data from the server
            else
            {
                AsyncJSONRequest            roomDataRequest = AsyncJSONRequest.Create(m_gameWorldController.gameObject);
                Dictionary <string, object> request         = new Dictionary <string, object>();

                request["game_id"] = SessionData.GetInstance().GameID;
                request["room_x"]  = roomKey.x;
                request["room_y"]  = roomKey.y;
                request["room_z"]  = roomKey.z;

                IsRoomDataRequestPending = true;

                roomDataRequest.POST(
                    ServerConstants.roomDataRequestURL,
                    request,
                    (AsyncJSONRequest asyncRequest) =>
                {
                    if (asyncRequest.GetRequestState() == AsyncJSONRequest.eRequestState.succeded)
                    {
                        JsonData response     = asyncRequest.GetResult();
                        string responseResult = (string)response["result"];

                        if (responseResult == "Success")
                        {
                            SessionData sessionData = SessionData.GetInstance();
                            GameData currentGame    = sessionData.CurrentGameData;
                            RoomData roomData       = RoomData.FromObject(response);

                            // Add the room data to the room cache
                            currentGame.SetCachedRoomData(roomData.RoomKey, roomData);

                            // Update which room we're currently in
                            currentGame.CurrentRoomKey = roomKey;

                            // Notify the controller
                            Debug.Log("Room Loaded");
                            m_gameWorldController.OnRoomLoaded(roomData.RoomKey);
                        }
                        else
                        {
                            Debug.Log("Room Data Request Failed: " + responseResult);
                            m_gameWorldController.OnRequestFailed(responseResult);
                        }
                    }
                    else
                    {
                        Debug.Log("Room Data Request Failed: " + asyncRequest.GetFailureReason());
                        m_gameWorldController.OnRequestFailed("Connection Failed!");
                    }

                    // Notify the caller
                    if (onComplete != null)
                    {
                        onComplete();
                    }

                    IsRoomDataRequestPending = false;
                });
            }
        }
    }