Example #1
0
        public void Update()
        {
            Position playerPosition = _context.GetPlayerEntity().position.Position;

            if (_aim.activeInHierarchy == false)
            {
                Vector3 playerWorldPosition = _unityGridInfoProvider.GetCellCenterWorld(playerPosition);
                _aim.transform.position = playerWorldPosition;
            }

            _aim.SetActive(true);

            bool noKeyIsPressed = !Input.anyKey && !Input.anyKeyDown;            //osnowatodo && _contextManager.Current.SimulatedKeyDown == KeyCode.None;

            if (noKeyIsPressed)
            {
                _inputWithRepeating.ResetTime();
                return;
            }

            _uiFacade.UiElementSelector.Deselect();
            Position direction = ReadDirection();

            if (direction == Position.MinValue)             // escape
            {
                SwitchBackToDecisionMaking();
                return;
            }

            if (direction == Position.Zero)
            {
                // SwitchBackToDecisionMaking();
                return;
            }

            PlayerDecisionComponent decision = _context.playerDecision;
            Position newMarkerPosition       = decision.Position + direction;

            _context.ReplacePlayerDecision(decision.Decision, direction, newMarkerPosition);
            PresentSelectionPath(playerPosition, newMarkerPosition);

            // SwitchBackToDecisionMaking();
        }
Example #2
0
        public void Update()
        {
            if (Input.GetKeyUp(KeyCode.LeftAlt))
            {
                _environmentPresenter.StopShowingCharacterDetails();
            }
            if (Input.GetKeyUp(KeyCode.LeftControl))
            {
                _environmentPresenter.StopShowingStealthDetails();
            }

            bool noKeyIsPressed = !Input.anyKey && !Input.anyKeyDown;            //osnowatodo && _contextManager.Current.SimulatedKeyDown == KeyCode.None;

            if (noKeyIsPressed)
            {
                _inputWithRepeating.ResetTime();
                return;
            }

            bool onlyModifierIsBeingHeld =
                !Input.GetKeyDown(KeyCode.LeftAlt) && Input.GetKey(KeyCode.LeftAlt) ||
                (!Input.GetKeyDown(KeyCode.LeftControl) && Input.GetKey(KeyCode.LeftControl));

            if (onlyModifierIsBeingHeld)
            {
                _inputWithRepeating.ResetTime();
            }

            Ability chosenAbility = ResolveAbility(_keysToAbilities);

            if (chosenAbility != null)
            {
                _sceneContext.CameraMouseControl.StopFollowingPlayer();
                // _uiFacade.ShowEntityDetails(null); powoduje to chamskie znikanie detali co krok

                IGameAction immediateAction = null;
                GameEntity  playerEntity    = Contexts.sharedInstance.game.GetPlayerEntity();
                if (false)
                {
                }
                // todo clean this up

                /*else if (chosenAbility == _gameConfig.Abilities.Custom1)
                 * {
                 *      immediateAction = _playerActionResolver.CreateTakeFromInventoryActionIfPossible(playerEntity, 0);
                 * }
                 * else
                 * if (chosenAbility == _gameConfig.Abilities.Custom2)
                 * {
                 *      immediateAction = _playerActionResolver.CreateTakeFromInventoryActionIfPossible(playerEntity, 1);
                 * }
                 * else
                 * if (chosenAbility == _gameConfig.Abilities.Custom3)
                 * {
                 *      immediateAction = _playerActionResolver.CreateTakeFromInventoryActionIfPossible(playerEntity, 2);
                 * }
                 * else
                 * if (chosenAbility == _gameConfig.Abilities.Custom4)
                 * {
                 *      immediateAction = _playerActionResolver.CreateTakeFromInventoryActionIfPossible(playerEntity, 3);
                 * }
                 * else
                 * if (chosenAbility == _gameConfig.Abilities.Custom5)
                 * {
                 *      immediateAction = _playerActionResolver.CreateTakeFromInventoryActionIfPossible(playerEntity, 4);
                 * }
                 * else
                 * if (chosenAbility == _gameConfig.Abilities.Custom6)
                 * {
                 *      immediateAction = _playerActionResolver.CreateTakeFromInventoryActionIfPossible(playerEntity, 5);
                 * }
                 * else
                 * if (chosenAbility == _gameConfig.Abilities.Custom7)
                 * {
                 *      immediateAction = _playerActionResolver.CreateTakeFromInventoryActionIfPossible(playerEntity, 6);
                 * }
                 * else
                 * if (chosenAbility == _gameConfig.Abilities.Custom8)
                 * {
                 *      immediateAction = _playerActionResolver.CreateTakeFromInventoryActionIfPossible(playerEntity, 7);
                 * }
                 * else
                 * if (chosenAbility == _gameConfig.Abilities.Custom9)
                 * {
                 *      immediateAction = _playerActionResolver.CreateTakeFromInventoryActionIfPossible(playerEntity, 8);
                 * }
                 * else
                 * if (chosenAbility == _gameConfig.Abilities.PickUp)
                 * {
                 *      immediateAction = _playerActionResolver.CreateTakeToInventoryActionIfPossible(playerEntity);
                 * }*/

                if (immediateAction != null)
                {
                    foreach (IActionEffect actionEffect in immediateAction.Execute())
                    {
                        actionEffect.Process();
                    }

                    _context.ReplacePlayerDecision(Decision.None, Position.Zero, Position.MinValue);

                    /* osnowatodo
                     * if (_contextManager.Current.SimulatedKeyDown != KeyCode.None)
                     * {
                     *      Ability[] clickableAbilities = new[]
                     *      {
                     *      _gameConfig.Abilities.Custom1, _gameConfig.Abilities.Custom2, _gameConfig.Abilities.Custom3,
                     *      _gameConfig.Abilities.Custom4, _gameConfig.Abilities.Custom5, _gameConfig.Abilities.Custom6,
                     *      _gameConfig.Abilities.Custom7, _gameConfig.Abilities.Custom8, _gameConfig.Abilities.Custom9,
                     *      };
                     *
                     *      if (clickableAbilities.Contains(chosenAbility))
                     *      {
                     *              immediateAction = _playerActionResolver.CreateDropActionIfPossible(playerEntity);
                     *              if (immediateAction != null)
                     *              {
                     *                      foreach (IActionEffect actionEffect in immediateAction.Execute())
                     *                      {
                     *                              actionEffect.Process();
                     *                      }
                     *                      _resolveAbilitiesPerTurnSystem.ExecuteQuinta(playerEntity);
                     *                      _playerInventoryChangedSystem.ExecuteQuinta(playerEntity);
                     *              }
                     *      }
                     * }*/



                    return;
                }

                _context.ReplacePlayerDecision(chosenAbility.Decision, Position.Zero, Position.MinValue);

                if (chosenAbility.RequiresDirection)
                {
                    if (chosenAbility.name == "Spill")
                    {
                        if (!_context.GetPlayerEntity().hasEntityHolder || _context.GetPlayerEntity().entityHolder.EntityHeld == Guid.Empty)
                        {
                            return;                             // quinta don't show aim when nothing in hands
                        }
                    }
                    _uiFacade.SelectAbility(chosenAbility);

                    _directionInputReader.gameObject.SetActive(true);
                    gameObject.SetActive(false);
                }
            }
        }