public override void ApplyEvent(GameWorldController gameWorldController, OnEventCompleteDelegate onComplete)
    {
        base.ApplyEvent(gameWorldController, onComplete);

        CharacterData character = gameWorldController.Model.GetCharacterData(CharacterID);

        // Update the room key and position on the character that changed rooms
        character.room_x = ToRoomKey.x;
        character.room_y = ToRoomKey.y;
        character.room_z = ToRoomKey.z;
        character.x = ToPosition.x;
        character.y = ToPosition.y;
        character.z = ToPosition.z;

        // Character is the current game character
        if (CharacterID == gameWorldController.Model.CurrentCharacterID)
        {
            // Request the static room data for the room the character is portal-ing to
            // event application won't advance while waiting on room data to load from the server.
            // Once we get the new room data we rebuild everything.
            gameWorldController.Model.RequestRoomData(ToRoomKey, onComplete);
        }
        // Character is some other game character
        else
        {
            // Get the character entity for the character id, if any exists
            CharacterEntity entity = gameWorldController.Model.GetCharacterEntity(CharacterID);

            // Character portal-ed to the current room.
            // Make sure the character exists and is at the correct location.
            if (gameWorldController.Model.CurrentGame.CurrentRoomKey.Equals(ToRoomKey))
            {
                if (entity == null)
                {
                    entity = new CharacterEntity(CharacterID);
                    entity.AddToGameWorld(gameWorldController);
                }

                entity.SnapTo(ToPosition, ToAngle);
            }
            // Character left the current room.
            // Make sure the character entity is cleaned up.
            else
            {
                if (entity != null)
                {
                    entity.RemoveFromGameWorld(gameWorldController);
                }
            }

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

        CharacterData character = gameWorldController.Model.GetCharacterData(CharacterID);

        // Update the room key and position on the character that changed rooms
        character.room_x = ToRoomKey.x;
        character.room_y = ToRoomKey.y;
        character.room_z = ToRoomKey.z;
        character.x      = ToPosition.x;
        character.y      = ToPosition.y;
        character.z      = ToPosition.z;

        // Character is the current game character
        if (CharacterID == gameWorldController.Model.CurrentCharacterID)
        {
            // Request the static room data for the room the character is portal-ing to
            // event application won't advance while waiting on room data to load from the server.
            // Once we get the new room data we rebuild everything.
            gameWorldController.Model.RequestRoomData(ToRoomKey, onComplete);
        }
        // Character is some other game character
        else
        {
            // Get the character entity for the character id, if any exists
            CharacterEntity entity = gameWorldController.Model.GetCharacterEntity(CharacterID);

            // Character portal-ed to the current room.
            // Make sure the character exists and is at the correct location.
            if (gameWorldController.Model.CurrentGame.CurrentRoomKey.Equals(ToRoomKey))
            {
                if (entity == null)
                {
                    entity = new CharacterEntity(CharacterID);
                    entity.AddToGameWorld(gameWorldController);
                }

                entity.SnapTo(ToPosition, ToAngle);
            }
            // Character left the current room.
            // Make sure the character entity is cleaned up.
            else
            {
                if (entity != null)
                {
                    entity.RemoveFromGameWorld(gameWorldController);
                }
            }

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

        CharacterEntity entity = gameWorldController.Model.GetCharacterEntity(CharacterID);

        if (onComplete != null)
        {
            entity.RequestMoveTo(ToPosition, ToAngle, (PathComputer.eResult resultCode) =>
            {
                if (resultCode != PathComputer.eResult.success)
                {
                    Debug.Log("GameEvent_CharacterMoved:apply_event - Failed to compute path to event target, ResultCode=" + resultCode);
                    entity.SnapTo(ToPosition, ToAngle);
                }

                onComplete();
            });
        }
        else
        {
            entity.SnapTo(ToPosition, ToAngle);
        }
    }
Пример #4
0
    public override void ApplyEvent(GameWorldController gameWorldController, OnEventCompleteDelegate onComplete)
    {
        base.ApplyEvent(gameWorldController, onComplete);

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

        if (onComplete != null)
        {
            entity.RequestMoveTo(ToPosition, ToAngle, (PathComputer.eResult resultCode) =>
            {
                if (resultCode != PathComputer.eResult.success)
                {
                    Debug.Log("GameEvent_CharacterMoved:apply_event - Failed to compute path to event target, ResultCode=" + resultCode);
                    entity.SnapTo(ToPosition, ToAngle);
                }

                onComplete();
            });
        }
        else
        {
            entity.SnapTo(ToPosition, ToAngle);
        }
    }
Пример #5
0
 public virtual void ApplyEvent(GameWorldController gameWorldController, OnEventCompleteDelegate onComplete)
 {
     // Nothing to do in the base class
 }
Пример #6
0
 public virtual void ApplyEvent(GameWorldController gameWorldController, OnEventCompleteDelegate onComplete)
 {
     // Nothing to do in the base class
 }