Example #1
0
        public void Deserialize(GenericReader reader)
        {
            state = PVPEventState.Setting;

            m_maker      = reader.ReadMobile();
            m_stone      = (PVPStone)reader.ReadItem();
            m_nom        = reader.ReadString();
            m_map        = PVPMap.Deserialize(reader);
            m_teams      = PVPTeamArrangement.Deserialize(reader, this);
            m_mode       = PVPMode.Deserialize(reader, this);
            m_debutEvent = reader.ReadDateTime();

            state = (PVPEventState)reader.ReadInt();

            debutTimer = new WaitingTimer(this);

            if (state >= PVPEventState.Preparing)
            {
                // Event commencé : Despawn et effaçage.
                teams.DespawnAll();
                StopEvent();
            }
            else if (m_debutEvent < DateTime.Now)
            {
                // Event surpassé : Effaçage.
                StopEvent();
            }
            else
            {
                // Event non débuté : Reboot.
                debutTimer.Start();
            }
        }
Example #2
0
        /// <summary>
        /// Retire l'event de la liste d'instances et le détruit.
        /// </summary>
        public void StopEvent()
        {
            if (state == PVPEventState.Started && m_mode != null)
            {
                m_mode.Stop();
                return; // m_mode.Stop() appelle la fonction StopEvent().
            }

            if (state >= PVPEventState.Started)
            {
                map.StopUsing();
            }

            // Logging, si on veut en faire.

            m_InstancesList.Remove(this);

            // Le garbage collector devrait déjà faire le travail de détruire après le remove de l'instance_list., mais on met tout à null par précaution.
            debutTimer.Stop();
            debutTimer = null;

            m_stone = null;
            state   = PVPEventState.Done;

            nom     = "";
            m_teams = null;
            map     = null;
            mode    = null;

            debutEvent = DateTime.Now;
        }
Example #3
0
        public static PVPEvent CreateEvent(Mobile maker, PVPStone stone)
        {
            PVPEvent pvpevent = new PVPEvent(maker, stone);

            if (maker != null)
            {
                foreach (PVPEvent _event in PVPEvent.m_InstancesList)
                {
                    if (maker == _event.m_maker && _event != pvpevent)
                    {
                        maker.SendMessage("Vous ne pouvez pas créer un autre event, étant donné que vous avez déjà créé " + _event.nom);
                        pvpevent.StopEvent();
                        return(pvpevent = null);
                    }
                }
            }

            return(pvpevent);
        }
Example #4
0
        private PVPEvent(Mobile maker, PVPStone stone)
        {
            debutTimer = new WaitingTimer(this);
            state      = PVPEventState.Setting;

            m_maker = maker;
            m_stone = stone;

            m_nom        = "";
            m_map        = null;
            m_mode       = null;
            m_teams      = null;
            m_debutEvent = DateTime.Now;

            if (m_InstancesList == null)
            {
                m_InstancesList = new ArrayList();
            }
            m_InstancesList.Add(this);
        }