Пример #1
0
        private void OnAttack(object sender, CardArgs attackArgs)
        {
            Debug.LogWarning($"[{this.GetType().Name}] OnAttack!");

            var unit = sender as UnitManager;

            var dir = (attackArgs.Receiver.transform.position - attackArgs.Attacker.transform.position).normalized;

            var duration = 0.5f;
            var sequence = DOTween.Sequence();

            switch (attackArgs.CardData.CardAnimation)
            {
            case CardAnimation.NormalAttack:
            default:
                soundManager.AudioSource.PlayOneShot(soundManager.HitTrack);

                sequence.Append(transform.DOLocalMoveX(transform.localPosition.x + 2 * dir.x, duration)
                                .OnComplete(() => transform.DOLocalMoveX(transform.localPosition.x - 2 * dir.x, duration)));
                break;
            }

            attackArgs.Receiver.GetDamage(attackArgs.CardData.Amount);
            sequence.OnComplete(() => attackArgs.Callback());
        }
Пример #2
0
        private void OnGetHeal(object sender, CardArgs cardArgs)
        {
            var seq = DOTween.Sequence();

            Debug.Log($"[{this.GetType().Name}] Getting Heal: {cardArgs.CardData.Amount}!");
            seq.Append(Slider.DOValue((float)UnitManager.HP / (float)UnitManager.UnitData.HP, 1f));
            HP.text = $"{UnitManager.HP} / {UnitManager.UnitData.HP}";

            Debug.LogWarning($"[{this.GetType().Name}] OnAttack!");

            var unit = sender as UnitManager;

            seq.OnComplete(() => cardArgs.Callback());
        }