Exemplo n.º 1
0
    public RedemptionTDType GetResourceDropType(RedemptionTDColor color)
    {
        var result = RedemptionTDType.BLACK_RESOURCE_DROP;

        switch (color)
        {
        case RedemptionTDColor.BLACK:
            result = RedemptionTDType.BLACK_RESOURCE_DROP;
            break;

        case RedemptionTDColor.IRON:
            result = RedemptionTDType.IRON_RESOURCE_DROP;
            break;

        case RedemptionTDColor.LEAD:
            result = RedemptionTDType.LEAD_RESOURCE_DROP;
            break;

        case RedemptionTDColor.MAGNESIUM:
            result = RedemptionTDType.MAGNESIUM_RESOURCE_DROP;
            break;

        default:
            break;
        }

        return(result);
    }
Exemplo n.º 2
0
    public void DamageBase(RedemptionTDColor enemyColor, float damage)
    {
        if (enemyColor == color)
        {
            currentHealth -= damage;
            indicatorTimer = indicatorShowTime;
            PostBaseDamaged(damage);
        }
        else
        {
            damage        /= 2f;
            currentHealth -= damage;
            indicatorTimer = indicatorShowTime;
            PostBaseDamaged(damage);
        }

        ShowBaseIndicator();

        if (currentHealth <= 0)
        {
            baseIndicator.SetActive(false);
            StopCoroutine(indicatorRoutine);
            indicatorRoutine = null;
            PostBaseDestroyed();
            gameObject.SetActive(false);
        }
    }
Exemplo n.º 3
0
    public WeaponMode InitializeWeaponState(WeaponMode mode, float radius, RedemptionTDColor color)
    {
        if (mode == WeaponMode.GATHER)
        {
            var resourceLayer = 1 << LayerMask.NameToLayer("Resource");
            var hit           = Physics2D.OverlapCircle(transform.position, radius, resourceLayer);

            if (hit != null && hit.GetComponent <LiteUnit>().HeavyReference.Color == color)
            {
                CurrentWeaponState = gatherState;
                CurrentWeaponState.EnterWeaponState(hit.GetComponent <ResourceLite>());
                return(WeaponMode.GATHER);
            }
            else
            {
                CurrentWeaponState = nullState;
                CurrentWeaponState.EnterWeaponState();
                return(WeaponMode.NONE);
            }
        }
        else
        {
            CurrentWeaponState = blastState;
            CurrentWeaponState.EnterWeaponState();
            return(WeaponMode.WAVE);
        }
    }
Exemplo n.º 4
0
    public virtual float DamageEnemy(RedemptionTDColor enemyColor)
    {
        if (weaponLite.HeavyReference.Color != enemyColor)
        {
            return(0f);
        }

        var weapon        = weaponLite.HeavyReference as Weapon;
        var currentDamage = weapon.BaseDamage * weapon.DamageMultiplier;

        return(currentDamage * DamageMultiplier);
    }