Exemplo n.º 1
0
        protected virtual int GetProgress(ConquestState state, PlayerMobile victim)
        {
            if (victim == null)
            {
                return(0);
            }

            if (state.User == null)
            {
                return(0);
            }

            PvPBattle battle = AutoPvP.FindBattle(state.User);

            if (Battle.IsNotNull && !battle.TypeEquals(Battle, BattleChildren))
            {
                if (ChangeBattleReset)
                {
                    return(-state.Progress);
                }

                return(0);
            }

            return(1);
        }
Exemplo n.º 2
0
        protected virtual int GetProgress(ConquestState state, PlayerConquestContainer args)
        {
            if (state.User == null)
            {
                return(0);
            }

            if (args == null || args.Mobile == null || args.Killer is PlayerMobile && args.Killer.Account != state.User.Account)
            {
                return(0);
            }

            if (IsDuel && args.Mobile is PlayerMobile && args.Killer is PlayerMobile && ((PlayerMobile)args.Killer).DuelContext == null)
            {
                return(0);
            }

            if (IsDungeon && !args.Mobile.InRegion <DungeonRegion>())
            {
                return(0);
            }

            PvPBattle battle = AutoPvP.FindBattle(args.Killer as PlayerMobile);

            if (Battle.IsNotNull && !battle.TypeEquals(Battle, BattleChildren))
            {
                if (ChangeBattleReset)
                {
                    return(-state.Progress);
                }

                return(0);
            }

            if (AccessPlayer > args.Mobile.AccessLevel)
            {
                return(0);
            }

            if (AccessKiller > args.Killer.AccessLevel)
            {
                return(0);
            }

            if (NotoCompare != NotorietyType.None && NotoCompare != args.Killer.ComputeNotoriety(args.Mobile))
            {
                return(0);
            }

            if (NotoPlayer != NotorietyType.None && NotoPlayer != args.Mobile.ComputeNotoriety())
            {
                return(0);
            }

            if (NotoKiller != NotorietyType.None && NotoKiller != args.Killer.ComputeNotoriety())
            {
                return(0);
            }

            if (Map != null && Map != Map.Internal && (args.Mobile.Map == null || args.Mobile.Map != Map))
            {
                return(0);
            }

            if (!String.IsNullOrWhiteSpace(RegionName) && (args.Mobile.Region == null || !args.Mobile.Region.IsPartOf(RegionName)))
            {
                return(0);
            }

            return(1);
        }