public override void Tick(RealmTime time) { if (Client == null) { return; } if (!KeepAlive(time) || Client.State == ProtocolState.Disconnected) { if (Owner != null) { Owner.LeaveWorld(this); } else { WorldInstance.LeaveWorld(this); } return; } if (Stats != null && Boost != null) { MaxHp = Stats[0] + Boost[0]; MaxMp = Stats[1] + Boost[1]; } if (Boost == null) { CalculateBoost(); } if (!HasConditionEffect(ConditionEffects.Paused)) { HandleRegen(time); HandleGround(time); FameCounter.Tick(time); } HandleTrade?.Tick(time); try { HandleQuest(time); } catch (NullReferenceException) { } HandleEffects(time); HandleBoosts(); if (MP < 0) { MP = 0; } if (Owner != null) { HandleNewTick(time); HandleUpdate(time); } if (HP < 0 && !dying) { Death("Unknown"); return; } base.Tick(time); }
public void AcceptTrade(RealmTime time, ACCEPTTRADE pkt) => HandleTrade?.AcceptTrade(this, pkt);
public void CancelTrade(RealmTime time, CANCELTRADE pkt) => HandleTrade?.CancelTrade(this);
public void ChangeTrade(RealmTime time, CHANGETRADE pkt) => HandleTrade?.TradeChanged(this, pkt.Offers);