Server.Items.HouseRaffleStone.CheckEnd C# (CSharp) Method

CheckEnd() public method

public CheckEnd ( ) : void
return void
        public void CheckEnd()
        {
            if ( !m_Active || m_Started + m_Duration > DateTime.Now )
                return;

            m_Active = false;

            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_Entries[winner].From.Name, FormatLocation() );

                    if ( m_Winner.AddToBackpack( m_Deed ) )
                    {
                        m_Winner.SendMessage( MessageHue, "The writ of lease has been placed in your backpack." );
                    }
                    else
                    {
                        BankBox box = m_Winner.BankBox;

                        if ( box.TryDropItem( m_Winner, m_Deed, false ) )
                        {
                            m_Winner.SendMessage( MessageHue, "As your backpack is full, the writ of lease has been placed in your bank box." );
                        }
                        else
                        {
                            // Item is already at the mobile's feet

                            m_Winner.SendMessage( MessageHue, "As both your backpack and bank box are full, the writ of lease has been placed at your feet." );
                        }
                    }
                }
            }

            InvalidateProperties();
        }