public override void OnEnter(BaseEnemy entity) { entity.AttackBase(); var rnd = new Random(); entity.Position = new Vector2(rnd.Next(-50, 60) + entity.Position.x, entity.Position.y); }
public override void Update(BaseEnemy entity, float delta) { if (entity.IsDead() && !entity.EnemyStateMachine.IsInState(Dead)) { entity.EnemyStateMachine.ChangeState(Dead); } // GD.Print(entity.HasReachedBase()); }
public override void Update(BaseEnemy entity, float delta) { entity.AttackTimer += delta; if (!(entity.AttackTimer >= entity.EnemyType.AttackRate)) { return; } entity.AttackBase(); entity.AttackTimer = 0; }
public override void Update(BaseEnemy entity, float delta) { if (entity.HasReachedBase) { entity.EnemyStateMachine.ChangeState(Attacking); } else { entity.Travel(delta, entity.IsDead()); } }
public override void OnEnter(BaseEnemy entity) { GameInfo.GameCurrency.EnemyKillBonus(entity); entity.QueueFree(); }
public override void OnExit(BaseEnemy entity) => entity.AttackTimer = 0;