public void StartNewSpeedModifier(ShipSpeedModifier shipSpeedModifier, SlowingZone zone)
    {
        ShipSpeedModifier newModifier = new ShipSpeedModifier(shipSpeedModifier);

        newModifier.StartModificationParameters();
        newModifier.SetRelatedZone(zone);
        currentZonesSpeedModifiers.Add(newModifier);

        relatedShip.PlaySlowingFeedback();
    }
Beispiel #2
0
    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;
 }