Adam Salah 2538023d8d dev/bolas (#11)
Reviewed-on: #11
Reviewed-by: Ader_Alisma <ader.alisma.1@ens.etsmtl.ca>
Co-authored-by: Adam Salah <adam-hamid.salah-salah.1@ens.etsmtl.ca>
Co-committed-by: Adam Salah <adam-hamid.salah-salah.1@ens.etsmtl.ca>
2025-07-23 06:39:59 +00:00

54 lines
1.5 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Ally : Entity
{
public override float DamageMultiplier => GlobalConfig.Instance.Current.allyDamageMultiplier;
public override float AttackSpeedMultiplier => GlobalConfig.Instance.Current.allyAttackSpeedMultiplier;
public override float HpMultiplier => GlobalConfig.Instance.Current.allyLifeMultiplier;
public override Vector2 RangeMultiplier => GlobalConfig.Instance.Current.allyRangeMultiplier;
public override float SpeedMultiplier => GlobalConfig.Instance.Current.allySpeedMultiplier;
public float PopulationCost => GlobalConfig.Instance.Current.populationCostPerUnit;
public override void Update()
{
base.Update();
if (IsEnemyDetected)
{
AttackEnemy();
}
}
void AttackEnemy()
{
//Attack Cooldown
if (AttackSpeedWait > AttackInterval)
{
Animation.PlayAttackAnim();
AttackSpeedWait = 0f;
}
AttackSpeedWait += Time.deltaTime;
}
public Vector3 GetPosition()
{
return transform.position;
}
public override void LevelStart()
{
base.LevelStart();
if (this is not Building) ResourceManager.Instance.CurrentPopulation += PopulationCost;
}
public override void LevelDestroy()
{
base.LevelDestroy();
if (this is not Building) ResourceManager.Instance.CurrentPopulation -= PopulationCost;
}
}