private static void EventSink_PoisonCured(PoisonCuredEventArgs e) { int newResistLevel = Math.Min(e.Poison.Level + 1, 4); if (m_Table.ContainsKey(e.Mobile)) { var context = m_Table[e.Mobile]; if (context.ResistanceLevel < newResistLevel) { context.ResistanceLevel = newResistLevel; var decayTimer = context.DecayTimer; if (decayTimer != null) { decayTimer.Stop(); } decayTimer = new DecayTimer(e.Mobile); decayTimer.Start(); context.DecayTimer = decayTimer; } } else { var decayTimer = new DecayTimer(e.Mobile); decayTimer.Start(); var context = new PoisonResistanceContext(e.Mobile, newResistLevel, decayTimer); m_Table[e.Mobile] = context; } }
private static void EventSink_PoisonCured( PoisonCuredEventArgs e ) { int newResistLevel = Math.Min( e.Poison.Level + 1, 4 ); if ( m_Table.ContainsKey( e.Mobile ) ) { var context = m_Table[e.Mobile]; if ( context.ResistanceLevel < newResistLevel ) { context.ResistanceLevel = newResistLevel; var decayTimer = context.DecayTimer; if ( decayTimer != null ) decayTimer.Stop(); decayTimer = new DecayTimer( e.Mobile ); decayTimer.Start(); context.DecayTimer = decayTimer; } } else { var decayTimer = new DecayTimer( e.Mobile ); decayTimer.Start(); var context = new PoisonResistanceContext( e.Mobile, newResistLevel, decayTimer ); m_Table[e.Mobile] = context; } }
public virtual bool Carve(Mobile from, Item item) { if (m_OpenedBy == null && IsAccessibleTo(from)) { m_OpenedBy = from; if (m_Timer == null) m_Timer = new DecayTimer(this); if (!m_Timer.Running) m_Timer.Start(); m_Timer.StartDissolving(); PlagueBeastBackpack pack = new PlagueBeastBackpack(); AddItem(pack); pack.Initialize(); foreach (NetState state in GetClientsInRange(12)) { Mobile m = state.Mobile; if (m != null && m.Player && m != from) PrivateOverheadMessage(MessageType.Regular, 0x3B2, 1071919, from.Name, m.NetState); // * ~1_VAL~ slices through the plague beast's amorphous tissue * } from.LocalOverheadMessage(MessageType.Regular, 0x21, 1071904); // * You slice through the plague beast's amorphous tissue * Timer.DelayCall<Mobile>(TimeSpan.Zero, new TimerStateCallback<Mobile>(pack.Open), from); return true; } return false; }
public Crystal(CrystalType type) : base(7964) { CrystalType = type; DecaysAt = DateTime.UtcNow + TimeSpan.FromDays(7); Timer = new DecayTimer(this); Timer.Start(); }
public override void OnAfterDelete() { if (_DecayTimer != null) { _DecayTimer.Stop(); _DecayTimer = null; } base.OnAfterDelete(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); CrystalType = (CrystalType)reader.ReadInt(); DecaysAt = reader.ReadDateTime(); Timer = new DecayTimer(this); Timer.Start(); }
public virtual void OnParalyzed(Mobile from) { FightMode = FightMode.None; Frozen = true; Blessed = true; Combatant = null; Hue = 0x480; from.Combatant = null; from.Warmode = false; m_Timer = new DecayTimer(this); m_Timer.Start(); Timer.DelayCall(TimeSpan.Zero, BroadcastMessage); }
public virtual void OnParalyzed(Mobile from) { this.FightMode = FightMode.None; this.Frozen = true; this.Blessed = true; this.Combatant = null; this.Hue = 0x480; from.Combatant = null; from.Warmode = false; this.m_Timer = new DecayTimer(this); this.m_Timer.Start(); Timer.DelayCall(TimeSpan.Zero, new TimerCallback(BroadcastMessage)); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadEncodedInt(); m_OpenedBy = reader.ReadMobile(); if (reader.ReadBool()) { int count = reader.ReadInt(); int deadline = reader.ReadInt(); m_Timer = new DecayTimer(this, count, deadline); m_Timer.Start(); } if (FightMode == FightMode.None) Frozen = true; }
public override void Deserialize(IGenericReader reader) { base.Deserialize(reader); var version = reader.ReadEncodedInt(); OpenedBy = reader.ReadEntity <Mobile>(); if (reader.ReadBool()) { var count = reader.ReadInt(); var deadline = reader.ReadInt(); m_Timer = new DecayTimer(this, count, deadline); m_Timer.Start(); } if (FightMode == FightMode.None) { Frozen = true; } }
public virtual void Carve(Mobile from, Item item) { if (OpenedBy == null && IsAccessibleTo(from)) { OpenedBy = from; if (m_Timer == null) { m_Timer = new DecayTimer(this); } if (!m_Timer.Running) { m_Timer.Start(); } m_Timer.StartDissolving(); var pack = new PlagueBeastBackpack(); AddItem(pack); pack.Initialize(); foreach (var state in GetClientsInRange(12)) { var m = state.Mobile; if (m != null && m.Player && m != from) { PrivateOverheadMessage(MessageType.Regular, 0x3B2, 1071919, from.Name, m.NetState); } // * ~1_VAL~ slices through the plague beast's amorphous tissue * } from.LocalOverheadMessage(MessageType.Regular, 0x21, 1071904); // * You slice through the plague beast's amorphous tissue * Timer.DelayCall(TimeSpan.Zero, pack.Open, from); } }
public virtual void Carve(Mobile from, Item item) { if (this.m_OpenedBy == null && this.IsAccessibleTo(from)) { this.m_OpenedBy = from; if (this.m_Timer == null) { this.m_Timer = new DecayTimer(this); } if (!this.m_Timer.Running) { this.m_Timer.Start(); } this.m_Timer.StartDissolving(); /* * // PlagueBeastBackpack pack = new PlagueBeastBackpack(); update needed -Fraz * * this.AddItem(pack); * * pack.Initialize(); * * foreach (NetState state in this.GetClientsInRange(12)) * { * Mobile m = state.Mobile; * * if (m != null && m.Player && m != from) * this.PrivateOverheadMessage(MessageType.Regular, 0x3B2, 1071919, from.Name, m.NetState); // * ~1_VAL~ slices through the plague beast's amorphous tissue * * } * * from.LocalOverheadMessage(MessageType.Regular, 0x21, 1071904); // * You slice through the plague beast's amorphous tissue * * Timer.DelayCall<Mobile>(TimeSpan.Zero, new TimerStateCallback<Mobile>(pack.Open), from); */ } }
protected void StartDecayTimer() { _DecayTimer = new DecayTimer(this); _DecayTimer.Start(); }