public void StartNewSpeedModifier(ShipSpeedModifier shipSpeedModifier, SlowingZone zone) { ShipSpeedModifier newModifier = new ShipSpeedModifier(shipSpeedModifier); newModifier.StartModificationParameters(); newModifier.SetRelatedZone(zone); currentZonesSpeedModifiers.Add(newModifier); relatedShip.PlaySlowingFeedback(); }
public void CheckForSpecialEffectZoneGeneration() { if (!projectileSpecialParameters.GetSmokeZoneParameters.IsNull) { SmokeZone smokeZone = GameManager.gameManager.PoolManager.GetSpecialEffectZone(SpecialEffectZonePoolTag.Smoke, PoolInteractionType.GetFromPool) as SmokeZone; smokeZone.transform.position = transform.position; smokeZone.SetUpZone(projectileSpecialParameters.GetSmokeZoneParameters.GetZoneDuration, projectileSpecialParameters.GetSmokeZoneParameters.GetZoneSize, projectileSpecialParameters.GetSmokeZoneParameters); } if (!projectileSpecialParameters.GetSlowingZoneParameters.IsNull) { SlowingZone slowingZone = GameManager.gameManager.PoolManager.GetSpecialEffectZone(SpecialEffectZonePoolTag.SpeedModifier, PoolInteractionType.GetFromPool) as SlowingZone; slowingZone.transform.position = transform.position; slowingZone.SetUpZone(projectileSpecialParameters.GetSlowingZoneParameters.GetZoneDuration, projectileSpecialParameters.GetSlowingZoneParameters.GetZoneSize, projectileSpecialParameters.GetSlowingZoneParameters); } }
public void GetOutSlowingZone(SlowingZone slowingZone) { ShipSpeedModifier modiferToRemove = null; foreach (ShipSpeedModifier modifier in currentZonesSpeedModifiers) { if (modifier.GetRelatedSlowingZone == slowingZone) { modiferToRemove = modifier; } } if (modiferToRemove != null) { currentZonesSpeedModifiers.Remove(modiferToRemove); modiferToRemove.SetRelatedZone(null); currentShipSpeedModifiers.Add(modiferToRemove); } }
public void SetRelatedZone(SlowingZone zone) { relatedSlowingZone = zone; }