public GlobalEffect(GlobalEffectType type, float value) { Type = type; Value = value; lastUpdate = DateTime.UtcNow; }
public static EffectData GlobalEffectRemovedData(Player player, GlobalEffectType type) { EffectData geData = new EffectData(); geData.EffectType = EffectType.GlobalEffect; geData.Data = new Dictionary <string, object>(); geData.Data["Target"] = player.InGameID; geData.Data["Type"] = type; geData.Data["Created"] = false; return(geData); }
private void ProcessGlobalEffect(EffectData effect) { GlobalEffectType type = (GlobalEffectType)effect.Data["Type"]; bool created = (bool)effect.Data["Created"]; int target; float value; switch (type) { case GlobalEffectType.Shield: PlayerManager.Instance.ActivateShieldEffect(effect); break; case GlobalEffectType.HealOverTime: target = (int)effect.Data["Target"]; value = (float)effect.Data["Value"]; if (created) { PlayerManager.Instance.GetPlayerByID(target).HealthPerSecondFromEffect += value; } else { PlayerManager.Instance.GetPlayerByID(target).HealthPerSecondFromEffect -= value; } break; case GlobalEffectType.ManaOverTime: target = (int)effect.Data["Target"]; value = (float)effect.Data["Value"]; if (created) { PlayerManager.Instance.GetPlayerByID(target).ManaPerSecondFromEffects += value; } else { PlayerManager.Instance.GetPlayerByID(target).ManaPerSecondFromEffects -= value; } break; default: throw new ArgumentOutOfRangeException(); } }
public GlobalEffect(GlobalEffectType type) { Type = type; lastUpdate = DateTime.UtcNow; }