protected override void PerformZAction(int currentTurn) { BonusThreat.Initialize(SittingDuck, ThreatController, EventMaster); ThreatController.AddInternalThreat(BonusThreat, currentTurn); while (BonusThreat.Position >= 0) { BonusThreat.Move(currentTurn); } }
private void PoisonPlayer(object sender, PlayerMoveEventArgs args) { if (poisonedPlayers == null) { poisonedPlayers = new PoisonedPlayers(this); poisonedPlayers.Initialize(SittingDuck, ThreatController, EventMaster); ThreatController.AddInternalThreat(poisonedPlayers, TimeAppears, Position); } poisonedPlayers.PoisonPlayer(args.MovingPlayer); }
public void SpreadFrom(StationLocation spreadFromStation, int position) { var spreadToStation = GetStationToSpreadTo(spreadFromStation); if (spreadToStation == null || ThreatController.DamageableInternalThreats.Any(threat => threat is BaseSlime && threat.CurrentStation == spreadToStation)) { return; } var newProgeny = CreateProgeny(spreadToStation.Value); Progeny.Add(newProgeny); newProgeny.Initialize(SittingDuck, ThreatController, EventMaster); ThreatController.AddInternalThreat(newProgeny, TimeAppears, position); }
private void InfectPlayers() { if (infectedPlayers == null) { infectedPlayers = new InfectedPlayers(this); infectedPlayers.Initialize(SittingDuck, ThreatController, EventMaster); ThreatController.AddInternalThreat(infectedPlayers, TimeAppears, Position); } var playersInCurrentStation = SittingDuck.GetPlayersInStation(CurrentStation); foreach (var player in playersInCurrentStation) { infectedPlayers.InfectPlayer(player); } }
private void CallInInternalThreat(int currentTurn) { BonusThreat.Initialize(SittingDuck, ThreatController, EventMaster); ThreatController.AddInternalThreat(BonusThreat, 1000 + currentTurn); }