public void Logic(object sender, EventArgs e) { if (!Game.instance.lblLevelDisplay.Text.Equals("Level 3")) { Virus.SpawnVirus(); } if (UiComponents.Viruses.Count == 0 && GameState.BossFight == false) { Virus.BossFight(); } // regelt Bewegung der Viren foreach (var virus in UiComponents.Viruses) { MoveVirusToTargetPosition(virus); if (virus.IsTargetPositionReached()) { virus.RecalculateTargetPosition(); } } // regelt dass Teleporter und Divider zeitbasiertes Event ausführen for (int i = UiComponents.Viruses.Count - 1; i >= 0; i--) { var virus = UiComponents.Viruses[i]; if (virus is DividerVirus) { if (DateTime.Now >= virus.timerEnd && virus.Size.Width > 70) { virus.DivideAction(virus); } } if (virus is TeleporterVirus) { if (DateTime.Now >= virus.timerEnd) { virus.TeleportVirus(virus, CharacterLogic.chaLocX, CharacterLogic.chaLocY); } } if (virus is BossVirus) { if (DateTime.Now >= virus.timerEnd) { BossVirus.BossAttackMove(virus); } } } // regelt Schaden bekommen wenn Spieler von Viren berührt wird for (int i = UiComponents.Viruses.Count - 1; i >= 0; i--) { if (UiComponents.Viruses[i].Bounds.IntersectsWith(Game.instance.pbCharacterBounds.Bounds)) { if (UiComponents.Viruses[i] is MutatedVirus) { GameState.PlayerHealth -= 3; } else { GameState.PlayerHealth -= 1; } Game.instance.Controls.Remove(UiComponents.Viruses[i]); UiComponents.Viruses[i].Dispose(); UiComponents.Viruses.Remove(UiComponents.Viruses[i]); Game.instance.DisplayHealth(); } } }