public override void Notify(DOLEvent e, object sender, EventArgs args)
        {
            if (e == AreaEvent.PlayerEnter)
            {
                AreaEventArgs kargs = args as AreaEventArgs;

                if (m_owner is GamePlayer && kargs.GameObject != m_owner)
                {
                    return;
                }

                foreach (AbstractArea area in kargs.GameObject.CurrentAreas)
                {
                    if (area is KeepArea && (area as KeepArea).Keep == m_keep)
                    {
                        FinishMission();
                        break;
                    }
                }
            }
            else if (e == KeepEvent.KeepTaken)
            {
                KeepEventArgs kargs = args as KeepEventArgs;

                if (kargs.Keep != m_keep)
                {
                    return;
                }

                ExpireMission();
            }
        }
        /// <summary>
        /// when  keep is taken it check if the realm which take gain the control of DF
        /// </summary>
        /// <param name="e"></param>
        /// <param name="sender"></param>
        /// <param name="arguments"></param>
        public static void OnKeepTaken(DOLEvent e, object sender, EventArgs arguments)
        {
            KeepEventArgs args  = arguments as KeepEventArgs;
            eRealm        realm = (eRealm)args.Keep.Realm;

            if (realm != DarknessFallOwner)
            {
                int currentDFOwnerTowerCount  = GameServer.KeepManager.GetTowerCountByRealm(DarknessFallOwner);
                int challengerOwnerTowerCount = GameServer.KeepManager.GetTowerCountByRealm(realm);
                if (currentDFOwnerTowerCount < challengerOwnerTowerCount)
                {
                    DarknessFallOwner = realm;
                }
            }
        }
        public override void Notify(DOLEvent e, object sender, EventArgs args)
        {
            if (e != KeepEvent.TowerRaized)
            {
                return;
            }

            KeepEventArgs kargs = args as KeepEventArgs;

            if (kargs.Keep != m_keep)
            {
                return;
            }

            FinishMission();
        }
示例#4
0
        public override void Notify(DOLEvent e, object sender, EventArgs args)
        {
            if (e != KeepEvent.KeepTaken)
            {
                return;
            }

            KeepEventArgs kargs = args as KeepEventArgs;

            if (kargs.Keep != m_keep)
            {
                return;
            }

            GamePlayer testPlayer = null;

            if (m_owner is GamePlayer)
            {
                testPlayer = m_owner as GamePlayer;
            }
            else if (m_owner is Group)
            {
                testPlayer = (m_owner as Group).Leader;
            }

            if (testPlayer != null)
            {
                foreach (AbstractArea area in testPlayer.CurrentAreas)
                {
                    if (area is KeepArea && (area as KeepArea).Keep == m_keep)
                    {
                        FinishMission();
                    }
                }
            }

            ExpireMission();
        }