public PokemonGeodude(Texture2D tex, Vector2 pos, PowerUp powerUp, Player player, List <EnemyType> enemyList) : base(tex, pos) { this.powerUp = powerUp; this.player = player; this.enemyList = enemyList; geodudeState = GeodudeState.Follow; geoDudeFacing = Facing.Right; frameInterval = 100; spritesFrame = 6; srRect = new Rectangle(0, 0, tex.Width / 6, tex.Height); }
private void GeoStateLogic() { foreach (EnemyType enemy in enemyList) { if (enemy.DistanceToGeo() < chasingRange && enemy.isActive) { geodudeState = GeodudeState.Attack; if (enemy.Position.X > pos.X) { geoDudeFacing = Facing.Right; } else { geoDudeFacing = Facing.Left; } } } }
public void GeoAttack() { foreach (EnemyType ene in enemyList) { goal = ene.Position; direction = goal - pos; float distance = direction.Length(); direction.Normalize(); if (distance < chasingRange && isActive == true && ene.isActive) { pos += velocity * direction; } else { geodudeState = GeodudeState.Follow; } } }