예제 #1
0
        public virtual void GrantTurn()
        {
            LevelScene.CurrentTurnOwnerDamageDealt = TurnDamageDealt = new ProjectileDamage(Owner.ID);

            OnGrantTurn?.Invoke();
            OnGrantTurn = default;

            LevelScene.CurrentTurnOwner = SyncMobile;

            Movement.RemainingStepsThisTurn = Movement.MaximumStepsPerTurn;
            Movement.IsAbleToMove           = true;
            IsAbleToShoot   = true;
            IsAbleToUseItem = true;

            if (IsPlayable)
            {
                SyncMobile.ReduceSSCooldown();
                if (SyncMobile.SSLockRemainingTurns == 0)
                {
                    LevelScene.HUD.EnableSS();
                }
            }

            LevelScene.HUD.GrantTurn(this);

            Crosshair.PlayAnimation();

            AudioHandler.PlaySoundEffect(SoundEffectParameter.InGameGameplayNewTurn);

            GameScene.Camera.TrackObject(this);
        }