public HealthUpdateEvent(Dictionary <byte, object> parameters) : base(parameters) { ConsoleManager.WriteLineForNetworkHandler(GetType().Name, parameters); try { if (parameters.ContainsKey(0)) { ObjectId = parameters[0].ObjectToLong() ?? throw new ArgumentNullException(); } if (parameters.ContainsKey(1)) { TimeStamp = new GameTimeStamp(parameters[1].ObjectToLong() ?? 0); } if (parameters.ContainsKey(2)) { HealthChange = parameters[2].ObjectToDouble(); } if (parameters.ContainsKey(3)) { NewHealthValue = parameters[3].ObjectToDouble(); } if (parameters.ContainsKey(4)) { EffectType = (EffectType)(parameters[4] as byte? ?? 0); } if (parameters.ContainsKey(5)) { EffectOrigin = (EffectOrigin)(parameters[5] as byte? ?? 0); } if (parameters.ContainsKey(6)) { CauserId = parameters[6].ObjectToLong() ?? throw new ArgumentNullException(); } if (parameters.ContainsKey(7)) { CausingSpellType = parameters[7].ObjectToShort(); } } catch (ArgumentNullException ex) { ConsoleManager.WriteLineForError(MethodBase.GetCurrentMethod().DeclaringType, ex); Log.Error(MethodBase.GetCurrentMethod().DeclaringType, ex); } catch (Exception e) { ConsoleManager.WriteLineForError(MethodBase.GetCurrentMethod().DeclaringType, e); Log.Error(MethodBase.GetCurrentMethod().DeclaringType, e); } }
public void HealthUpdate( long objectId, GameTimeStamp TimeStamp, double HealthChange, double NewHealthValue, EffectType EffectType, EffectOrigin EffectOrigin, long CauserId, int CausingSpellType ) { OnHealthUpdate?.Invoke( objectId, TimeStamp, HealthChange, NewHealthValue, EffectType, EffectOrigin, CauserId, CausingSpellType ); }
public void HealthUpdate( long objectId, GameTimeStamp packageTimeStamp, float packageHealthChange, float packageNewHealthValue, EffectType packageEffectType, EffectOrigin packageEffectOrigin, long packageCauserId, int packageCausingSpellType ) { OnHealthUpdate?.Invoke( objectId, packageTimeStamp, packageHealthChange, packageNewHealthValue, packageEffectType, packageEffectOrigin, packageCauserId, packageCausingSpellType ); }
public LastingEffect(EffectType type, ILastingEffectOwner owner, int turns, EffectOrigin origin, EffectiveFactor effectiveFactor, PercentageFactor percentageFactor) { this.Id = Guid.NewGuid(); this.Origin = origin; this.Type = type; this.Owner = owner; this.PendingTurns = turns; this.EffectiveFactor = effectiveFactor; this.PercentageFactor = percentageFactor; Application = EffectApplication.Single; if (type == EffectType.Bleeding || type == EffectType.Poisoned || type == EffectType.Frozen || type == EffectType.Firing || type == EffectType.ConsumedRawFood || type == EffectType.ConsumedRoastedFood || type == EffectType.BushTrap //|| ) { Application = EffectApplication.EachTurn; } }
public void DamageMeterUpdate(long objectId, GameTimeStamp timeStamp, double healthChange, double newHealthValue, EffectType effectType, EffectOrigin effectOrigin, long causerId, int causingSpellType) { CombatController.AddDamageAsync(causerId, healthChange); }
public void SendHealthUpdate(long objectId, GameTimeStamp timeStamp, float healthChange, float newHealthValue, EffectType effectType, EffectOrigin effectOrigin, long causerId, int causingSpellType) { Broadcast(new WsCombatEvent { objectId = objectId, timeStamp = timeStamp.Ticks, healthChange = healthChange, newHealthValue = newHealthValue, effectType = effectType, effectOrigin = effectOrigin, causerId = causerId, causingSpell = _gameData.SpellData.GetByType(causingSpellType)?.Name }); }