Beispiel #1
0
    // Наносим переодический урон
    IEnumerator PeriodicDamage()
    {
        while (botManager != null)
        {
            botManager.DoDamage(weaponMeta.PeriodicDamage, false);

            yield return(new WaitForSeconds(weaponMeta.DamageInterval));
        }
    }
Beispiel #2
0
    void OnCollisionEnter2D(Collision2D collision)
    {
        if (isDead)
        {
            return;
        }

        if (isAlly)
        {
            botManager = collision.transform.GetComponent <BotManager>();

            if (botManager != null)
            {
                botManager.DoDamage(impactDamage);
                //Die();

                // Если оружие поджигающего типа, начинаем наносить переодический урон
                if (weaponMeta.WeaponType == WeaponType.Fiery)
                {
                    StartPeriodicDamage();
                }
                // Если оружие замораживающего типа, останавливаем ход врагу на n раундов
                else if (weaponMeta.WeaponType == WeaponType.Frozen)
                {
                    botManager.FreezeState(weaponMeta.SkipTurnsCount);
                }
            }
        }
        else
        {
            playerManager = collision.transform.GetComponent <PlayerManager>();

            if (playerManager != null)
            {
                playerManager.DoDamage(impactDamage);
                //Die();
            }
        }

        Die();
        GameManager.Instance.OnMoveEnded();
    }