public void SetUp() { _aquarium = new Aquarium(new Size(500, 500)); _neon1 = new BlueNeon(new PointF(10f, 10f), _defaultFishSize, _aquarium); _neon2 = new BlueNeon(new PointF(9f, 9f), _defaultFishSize, _aquarium); _neon3 = new BlueNeon(new PointF(8f, 8f), _defaultFishSize, _aquarium); _neon4 = new BlueNeon(new PointF(8f, 8.001f), _defaultFishSize, _aquarium); }
private void ResetVictim(AFish fish) { if (Victim == fish) { Victim.OnDie -= ResetVictim; Victim = null; } }
public override void OnCollision(AGameObject anotherObject) { if (anotherObject != Victim || State != FishState.Attack) { return; } Victim.Die(); Victim = null; }
private void RunAwayFrom(AFish hunter) { if (IsLocationInCorner()) { return; } Direction = new VectorF(Location.X - hunter.Location.X, Location.Y - hunter.Location.Y); MoveTo(GetNextPoint()); }
public void Walking() { Victim = FindNextVictim(); if (Victim != null && Randomizer.Success(0.4)) { Victim.OnDie += ResetVictim; Speed = Settings.SwordsMan.MaxSpeed; PushState(Attack, FishState.Attack); return; } MoveTo(GetNextPoint()); }
public void Attack() { if (Victim == null || !IsVisibility(Victim)) { Speed = Settings.SwordsMan.OfficialSpeed; if (Victim != null) { Victim.OnDie -= ResetVictim; Victim = null; } PopState(); return; } MoveTo(GetVictimNextPoint()); }
private void Draw(Graphics graph, AFish fish) { var image = ObjectToImage[fish.GetType()][fish.State]; graph.DrawImage(image, fish.Rectangle); }
public Danger(AFish hunter, bool isDanger) { IsDanger = isDanger; Hunter = hunter; }