public void CheckEnd() { if (m_State != HouseRaffleState.Active || m_Started + m_Duration > DateTime.UtcNow) { return; } m_State = HouseRaffleState.Completed; if (m_Region != null && m_Entries.Count != 0) { int winner = Utility.Random(m_Entries.Count); m_Winner = m_Entries[winner].From; if (m_Winner != null) { m_Deed = new HouseRaffleDeed(this, m_Winner); m_Winner.SendMessage(MessageHue, "Congratulations, {0}! You have won the raffle for the plot located at {1}.", m_Winner.Name, FormatLocation()); if (m_Winner.AddToBackpack(m_Deed)) { m_Winner.SendMessage(MessageHue, "The writ of lease has been placed in your backpack."); } else { m_Winner.BankBox.DropItem(m_Deed); m_Winner.SendMessage(MessageHue, "As your backpack is full, the writ of lease has been placed in your bank box."); } } } InvalidateProperties(); }
public HouseRaffleStone() : base(0xEDD) { m_Region = null; m_Bounds = new Rectangle2D(); m_Facet = null; m_Winner = null; m_Deed = null; m_State = HouseRaffleState.Inactive; m_Started = DateTime.MinValue; m_Duration = DefaultDuration; m_ExpireAction = HouseRaffleExpireAction.None; m_TicketPrice = DefaultTicketPrice; m_Entries = new List <RaffleEntry>(); Movable = false; m_AllStones.Add(this); }
public HouseRaffleStone() : base(0xEDD) { m_Region = null; m_Bounds = new Rectangle2D(); m_Facet = null; m_Winner = null; m_Deed = null; m_State = HouseRaffleState.Inactive; m_Started = DateTime.MinValue; m_Duration = DefaultDuration; m_ExpireAction = HouseRaffleExpireAction.None; m_TicketPrice = DefaultTicketPrice; m_Entries = new List<RaffleEntry>(); Movable = false; m_AllStones.Add( this ); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 3: { m_State = (HouseRaffleState)reader.ReadEncodedInt(); goto case 2; } case 2: { m_ExpireAction = (HouseRaffleExpireAction)reader.ReadEncodedInt(); goto case 1; } case 1: { m_Deed = reader.ReadItem <HouseRaffleDeed>(); goto case 0; } case 0: { bool oldActive = (version < 3) ? reader.ReadBool() : false; m_Bounds = reader.ReadRect2D(); m_Facet = reader.ReadMap(); m_Winner = reader.ReadMobile(); m_TicketPrice = reader.ReadInt(); m_Started = reader.ReadDateTime(); m_Duration = reader.ReadTimeSpan(); int entryCount = reader.ReadInt(); m_Entries = new List <RaffleEntry>(entryCount); for (int i = 0; i < entryCount; i++) { RaffleEntry entry = new RaffleEntry(reader, version); if (entry.From == null) { continue; // Character was deleted } m_Entries.Add(entry); } InvalidateRegion(); m_AllStones.Add(this); if (version < 3) { if (oldActive) { m_State = HouseRaffleState.Active; } else if (m_Winner != null) { m_State = HouseRaffleState.Completed; } else { m_State = HouseRaffleState.Inactive; } } break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch ( version ) { case 3: { this.m_State = (HouseRaffleState)reader.ReadEncodedInt(); goto case 2; } case 2: { this.m_ExpireAction = (HouseRaffleExpireAction)reader.ReadEncodedInt(); goto case 1; } case 1: { this.m_Deed = reader.ReadItem<HouseRaffleDeed>(); goto case 0; } case 0: { bool oldActive = (version < 3) ? reader.ReadBool() : false; this.m_Bounds = reader.ReadRect2D(); this.m_Facet = reader.ReadMap(); this.m_Winner = reader.ReadMobile(); this.m_TicketPrice = reader.ReadInt(); this.m_Started = reader.ReadDateTime(); this.m_Duration = reader.ReadTimeSpan(); int entryCount = reader.ReadInt(); this.m_Entries = new List<RaffleEntry>(entryCount); for (int i = 0; i < entryCount; i++) { RaffleEntry entry = new RaffleEntry(reader, version); if (entry.From == null) continue; // Character was deleted this.m_Entries.Add(entry); } this.InvalidateRegion(); m_AllStones.Add(this); if (version < 3) { if (oldActive) this.m_State = HouseRaffleState.Active; else if (this.m_Winner != null) this.m_State = HouseRaffleState.Completed; else this.m_State = HouseRaffleState.Inactive; } break; } } }
public void CheckEnd() { if (this.m_State != HouseRaffleState.Active || this.m_Started + this.m_Duration > DateTime.UtcNow) return; this.m_State = HouseRaffleState.Completed; if (this.m_Region != null && this.m_Entries.Count != 0) { int winner = Utility.Random(this.m_Entries.Count); this.m_Winner = this.m_Entries[winner].From; if (this.m_Winner != null) { this.m_Deed = new HouseRaffleDeed(this, this.m_Winner); this.m_Winner.SendMessage(MessageHue, "Congratulations, {0}! You have won the raffle for the plot located at {1}.", this.m_Winner.Name, this.FormatLocation()); if (this.m_Winner.AddToBackpack(this.m_Deed)) { this.m_Winner.SendMessage(MessageHue, "The writ of lease has been placed in your backpack."); } else { this.m_Winner.BankBox.DropItem(this.m_Deed); this.m_Winner.SendMessage(MessageHue, "As your backpack is full, the writ of lease has been placed in your bank box."); } } } this.InvalidateProperties(); }