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); }
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); } }
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); } }
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); }