Exemplo n.º 1
0
        /// <summary>
        /// Deletes the character from the board.
        /// Notifies listeners.
        /// </summary>
        public void Exit(Character character)
        {
            var player = character as AbstractPlayer;

            if (level.IsCurrentPlayer(character))
            {
                character.Delete(level.Board);
                level.DeletePlayer(player);
                OnExit?.Invoke(this, player);
            }

            listener?.MakeAction(character as AbstractPlayer, ActionType.Exit);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Pass the action to the appropriate interactor.
        /// </summary>
        public void ProcessInput(ConsoleKeyInfo keyInfo, Character character)
        {
            switch (keyInfo.Key)
            {
            case ConsoleKey.F when keyInfo.Modifiers == ConsoleModifiers.Shift:
                inventoryInteractor.PutOff(character, InventoryType.IncreaseForceItem);
                listener?.MakeAction(character as AbstractPlayer, ActionType.TakeOffForce);
                break;

            case ConsoleKey.H when keyInfo.Modifiers == ConsoleModifiers.Shift:
                inventoryInteractor.PutOff(character, InventoryType.IncreaseHealthItem);
                listener?.MakeAction(character as AbstractPlayer, ActionType.TakeOffHealth);
                return;

            case ConsoleKey.E when keyInfo.Modifiers == ConsoleModifiers.Shift:
                inventoryInteractor.PutOff(character, InventoryType.IncreaseExperienceItem);
                listener?.MakeAction(character as AbstractPlayer, ActionType.TakeOffExperience);
                break;

            case ConsoleKey.A when keyInfo.Modifiers == ConsoleModifiers.Shift:
                inventoryInteractor.PutOff(character, InventoryType.IncreaseAllItem);
                listener?.MakeAction(character as AbstractPlayer, ActionType.TakeOffAll);
                break;

            case ConsoleKey.F:
                inventoryInteractor.PutOn(character, InventoryType.IncreaseForceItem);
                listener?.MakeAction(character as AbstractPlayer, ActionType.ApplyForce);
                break;

            case ConsoleKey.H:
                inventoryInteractor.PutOn(character, InventoryType.IncreaseHealthItem);
                listener?.MakeAction(character as AbstractPlayer, ActionType.ApplyHealth);
                break;

            case ConsoleKey.E:
                inventoryInteractor.PutOn(character, InventoryType.IncreaseExperienceItem);
                listener?.MakeAction(character as AbstractPlayer, ActionType.ApplyExperience);
                break;

            case ConsoleKey.A:
                inventoryInteractor.PutOn(character, InventoryType.IncreaseAllItem);
                listener?.MakeAction(character as AbstractPlayer, ActionType.ApplyAll);
                break;
            }
        }