public void RemoveDeadTwo() { foreach (IEffect effect in EffectsToDie) { RoomEffects.Remove(effect); } }
/// <summary> /// Runs when a new room is generated /// </summary> public void OnRoomStart(RoomParameters room) { RoomEffects fx = room.Effect; LowGravity(fx.HasFlag(RoomEffects.LowGravity)); Darkness(fx.HasFlag(RoomEffects.Darkness)); LargeEnemies(fx.HasFlag(RoomEffects.LargeEnemies)); Timer(fx.HasFlag(RoomEffects.Timer), room); }
/// <summary> /// Scales a float variable to its required value using the provided mode if applicable /// </summary> /// <returns></returns> public static float GetEffectValue(float originalValue, EffectValueType inputType) { RoomEffects fxs = CurrentRoomEffects; RoomEffectController controller = RoomEffectController; if (controller == null) { return(originalValue); } switch (inputType) { case EffectValueType.EnemySpeed: if (PowerUpManager.HasPowerUp(PowerUp.SlowDown)) { return(originalValue * PowerUpManager.SlowDownTimeScale); } if (fxs.HasFlag(RoomEffects.FastFoe)) { return(originalValue * controller.FastFoeSpeedMultiplier); } break; case EffectValueType.EnemyWaitTime: if (PowerUpManager.HasPowerUp(PowerUp.SlowDown)) { return(originalValue / PowerUpManager.SlowDownTimeScale); } if (fxs.HasFlag(RoomEffects.FastFoe)) { return(originalValue / controller.FastFoeSpeedMultiplier); } break; case EffectValueType.ProjectileSize: if (fxs.HasFlag(RoomEffects.LargeProjectiles)) { return(originalValue * controller.LargeProjectilesGrowMultiplier); } break; case EffectValueType.PlayerAcceleration: if (fxs.HasFlag(RoomEffects.Icy)) { return(originalValue * controller.IcyGroundAccelerationMultiplier); } break; case EffectValueType.PlayerDeceleration: if (fxs.HasFlag(RoomEffects.Icy)) { return(originalValue * controller.IcyGroundDecelerationMultiplier); } break; case EffectValueType.PlayerMaxSpeed: if (fxs.HasFlag(RoomEffects.Icy)) { return(originalValue * controller.IcyGroundMaxSpeedMultiplier); } break; } return(originalValue); }
public void AddEffect(IEffect effect) => RoomEffects.Add(effect);
public void AddEffect(Vector2 location, EffectEnum sprite) => RoomEffects.Add(effectFactory.MakeSprite(sprite, location));