Exemplo n.º 1
0
        public override void Attack()
        {
            initialPosition = transform.position;
            enemyController = FindObjectOfType <EnemyController>();
            enemyPosition   = enemyController.transform.position;

            TimeSystem.CreateTimer(
                $"{HeroModel.name}'s Attack",
                1f,
                new[]
            {
                new TimerActionData
                {
                    ActionType  = TimerActionType.OnStart,
                    TimerAction = ExecuteTurn
                }
            }
                );
        }
Exemplo n.º 2
0
        public override void Attack()
        {
            var initialPosition = transform.position;

            var randomIndex            = Random.Range(0, heroControllers.Count);
            var selectedHeroController = heroControllers[randomIndex];

            while (selectedHeroController.HeroModel.CurrentHealth <= 0f)
            {
                heroControllers.RemoveAt(randomIndex);
                randomIndex            = Random.Range(0, heroControllers.Count);
                selectedHeroController = heroControllers[randomIndex];
            }

            TimeSystem.CreateTimer(
                $"{enemyModel.name}'s Attack",
                1f,
                new []
            {
                new TimerActionData
                {
                    ActionType  = TimerActionType.OnStart,
                    TimerAction = () =>
                    {
                        transform.DOMove(selectedHeroController.transform.position, 0.5f).OnComplete(() =>
                        {
                            selectedHeroController.TakeDamage(enemyModel.AttackPower);
                            transform.DOMove(initialPosition, 0.5f).OnComplete(() =>
                            {
                                PublisherSubscriber.Publish(GameEventType.EnemyFinishedTurn);
                            });
                        });
                    }
                }
            }
                );
        }