public void AddVisualModifier(VisualModifierCommand visualModifier) { if (this is Player) { var player = this as Player; switch (visualModifier.modifier) { case VisualModifierCommand.INVINCIBILITY: player.Storage.invincibilityEffect = true; player.Storage.invincibilityEffectTime = DateTime.Now; break; case VisualModifierCommand.MIRRORED_CONTROLS: player.Storage.mirroredControlEffect = true; player.Storage.mirroredControlEffectTime = DateTime.Now; break; case VisualModifierCommand.WIZARD_ATTACK: player.Storage.wizardEffect = true; player.Storage.wizardEffectTime = DateTime.Now; break; } } VisualModifiers.TryAdd(visualModifier.modifier, visualModifier); SendCommandToInRangePlayers(visualModifier.writeCommand()); if (this is Player) { (this as Player).SendCommand(visualModifier.writeCommand()); } }
public void AddVisualModifier(short modifier, int attribute, string shipLootId, int count, bool activated) { if (!VisualModifiers.ContainsKey(modifier)) { var visualModifier = new VisualModifierCommand(Id, modifier, attribute, shipLootId, count, activated); VisualModifiers.TryAdd(visualModifier.modifier, visualModifier); if (this is Character) { SendCommandToInRangePlayers(visualModifier.writeCommand()); } else if (this is Activatable) { GameManager.SendCommandToMap(Spacemap.Id, visualModifier.writeCommand()); } if (this is Player player) { player.SendCommand(visualModifier.writeCommand()); switch (visualModifier.modifier) { case VisualModifierCommand.INVINCIBILITY: player.Invincible = true; player.Storage.invincibilityEffectTime = DateTime.Now; break; case VisualModifierCommand.MIRRORED_CONTROLS: player.Storage.mirroredControlEffect = true; player.Storage.mirroredControlEffectTime = DateTime.Now; break; case VisualModifierCommand.WIZARD_ATTACK: player.Storage.wizardEffect = true; player.Storage.wizardEffectTime = DateTime.Now; break; } } } }