Пример #1
0
        public void RemoveMerchant(BaseShipCaptain merchant)
        {
            SpawnZone zone = merchant.Zone;

            if (m_ActiveZones[zone].Contains(merchant))
            {
                m_ActiveZones[zone].Remove(merchant);
            }
        }
Пример #2
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int version = reader.ReadInt();

            m_MaxFel    = reader.ReadInt();
            m_MaxTram   = reader.ReadInt();
            m_MaxTokuno = reader.ReadInt();
            m_SpawnTime = reader.ReadTimeSpan();
            m_Active    = reader.ReadBool();

            int count = reader.ReadInt();

            for (int i = 0; i < count; i++)
            {
                SpawnZone zone = (SpawnZone)reader.ReadInt();
                int       c    = reader.ReadInt();
                for (int j = 0; j < c; j++)
                {
                    BaseShipCaptain capt = reader.ReadMobile() as BaseShipCaptain;
                    if (capt != null && !capt.Deleted && capt.Alive)
                    {
                        m_ActiveZones[zone].Add(capt);
                    }
                }
            }

            count = reader.ReadInt();
            for (int i = 0; i < count; i++)
            {
                Mobile mob = reader.ReadMobile();
                int    amt = reader.ReadInt();

                if (mob != null && !mob.Deleted)
                {
                    m_Bounties.Add(mob, amt);
                }
            }

            if (version == 0)
            {
                m_MaxTram   = 1;
                m_MaxFel    = 1;
                m_MaxTokuno = 1;

                RemoveSpawns();
            }

            m_Instance = this;

            if (m_Active)
            {
                m_Timer = Timer.DelayCall(m_SpawnTime, m_SpawnTime, new TimerCallback(OnTick));
            }
        }
Пример #3
0
        public void HandleDeath(BaseShipCaptain captain)
        {
            if (captain is PirateCaptain)
            {
                RemoveBounty(captain);
            }

            else if (captain is MerchantCaptain)
            {
                RemoveMerchant(captain);
            }
        }
Пример #4
0
        public void RemoveBounty(BaseShipCaptain pirate)
        {
            SpawnZone zone = pirate.Zone;

            if (m_ActiveZones[zone].Contains(pirate))
            {
                m_ActiveZones[zone].Remove(pirate);
            }

            if (m_Bounties.ContainsKey(pirate))
            {
                m_Bounties.Remove(pirate);
            }
        }