예제 #1
0
        public static bool AssaultCheck(Mobile m, Soldier s)
        {
            if (m == null || m.Deleted)
                return false;
            if (!m.Alive || m.IsDeadBondedPet)
                return false;
            if (s == null || s.Deleted )
                return false;
            if (!s.Alive)
                return false;
            if (s.Government == null || s.Government.Deleted)
                return false;
            if (s.ControlOrder == OrderType.Stop)
                return false;

            Soldier soldier = s;
            bool bValid = false;
            XmlAttachment attachment = null;
            attachment = XmlAttach.FindAttachment(m, typeof(XmlCriminal), soldier.Nation.ToString());

            #region Enemy Guild Handling
            if (Soldier.VisionCheck(m, soldier, 16) && !soldier.Government.MilitaryPolicies.Exceptions.Contains(m.Name))
            {
                soldier.DebugSay("You are not on the Exceptions list.");

                if (m is BaseKhaerosMobile && (m as BaseKhaerosMobile).Government != null && !(m as BaseKhaerosMobile).Deleted)
                {
                    soldier.DebugSay("You are a soldier too.");
                    if (soldier.Government.EnemyGuilds.Contains((m as BaseKhaerosMobile).Government))
                        bValid = true;
                }
                else if (m is PlayerMobile)
                {
                    soldier.DebugSay("You are a player.");
                    foreach (CustomGuildStone enemyGuild in soldier.Government.EnemyGuilds)
                    {
                        if (CustomGuildStone.IsGuildMember(m as PlayerMobile, enemyGuild) && (m as PlayerMobile).CustomGuilds[enemyGuild].ActiveTitle)
                        {
                            soldier.DebugSay("You are part of an enemy guild!");
                            bValid = true;
                            continue;
                        }
                    }
                }
            }
            #endregion

            if (Soldier.VisionCheck(m, soldier, 15) && !bValid && attachment == null && m.Combatant != null && !m.Combatant.Deleted && m.Combatant.Alive)
            {
                soldier.DebugSay("I can see you!");
                if (!(m is PlayerMobile && CustomGuildStone.IsGuildOfficer(m as PlayerMobile, soldier.Government)))
                {
                    Mobile attacker = m;

                    #region The defender is a controlled creature.
                    if (attacker.Combatant is BaseCreature && (attacker.Combatant as BaseCreature).Controlled && (attacker.Combatant as BaseCreature).ControlMaster != null && !(attacker.Combatant as BaseCreature).ControlMaster.Deleted && (attacker.Combatant as BaseCreature).ControlMaster is PlayerMobile)
                    {
                        PlayerMobile defender = (attacker.Combatant as BaseCreature).ControlMaster as PlayerMobile;
                        if (!defender.Spar) // If the defender isn't sparring...
                        {
                            soldier.DebugSay("You are not sparring.");
                            #region Is the defender in an enemy guild?
                            bool defenderIsEnemy = false;
                            foreach (CustomGuildStone enemyGuild in soldier.Government.EnemyGuilds)
                            {
                                if (CustomGuildStone.IsGuildMember(defender, enemyGuild) && defender.CustomGuilds[enemyGuild].ActiveTitle)
                                {
                                    soldier.DebugSay("The person you are attacking is in an enemy guild!");
                                    defenderIsEnemy = true; // The defender is part of an enemy guild; that's no reason to defend them!
                                    continue;
                                }
                            }
                            #endregion

                            if (!defenderIsEnemy)
                            {
                                #region Ally Handling
                                foreach (CustomGuildStone allyGuild in soldier.Government.AlliedGuilds)
                                {
                                    if (!(attacker is PlayerMobile && CustomGuildStone.IsGuildMember(attacker as PlayerMobile, soldier.Government))) // If the attacker isn't a member of my guild...
                                    {
                                        if (CustomGuildStone.IsGuildMember(defender, allyGuild) && defender.CustomGuilds[allyGuild].ActiveTitle) // ... and the defender is an ally ...
                                        {
                                            soldier.DebugSay("The defender is a player ally!");
                                            bool attackerIsAlly = false;
                                            foreach (CustomGuildStone otherAllyGuild in soldier.Government.AlliedGuilds)
                                            {
                                                if (attacker is PlayerMobile && CustomGuildStone.IsGuildMember(attacker as PlayerMobile, otherAllyGuild)) // Is the attacker ALSO an ally?
                                                {
                                                    soldier.DebugSay("You are an ally.");
                                                    attackerIsAlly = true; // The attacker is an ally as well; I can't decide!
                                                    continue;
                                                }
                                                else if (attacker is Soldier && (attacker as Soldier).Government != null && (attacker as Soldier).Government.Deleted && (attacker as Soldier).Government == otherAllyGuild) // Is the attacker ALSO an ally?
                                                {
                                                    soldier.DebugSay("You are an ally.");
                                                    attackerIsAlly = true; // The attacker is an ally as well; I can't decide!
                                                    continue;
                                                }
                                            }

                                            if (!attackerIsAlly) // The attacker is not an ally.
                                            {
                                                soldier.DebugSay("You are not an ally, I will attack!");
                                                bValid = true; // The defender is an ally! I'll defend him from this unknown.
                                                continue;
                                            }
                                        }
                                    }
                                }
                                #endregion

                                #region Government Handling
                                if (!bValid) // So the defender wasn't an ally, nor was the attacker...
                                {
                                    if (CustomGuildStone.IsGuildMember(defender, soldier.Government) && defender.CustomGuilds[soldier.Government].ActiveTitle) // Is the defender a member of my government?
                                    {
                                        soldier.DebugSay("The defender is a member of my government.");
                                        if (attacker is PlayerMobile && CustomGuildStone.IsGuildMember(attacker as PlayerMobile, soldier.Government)) // Yes, and so is the attacker!
                                        {
                                            soldier.DebugSay("You are a member of my guild!");
                                            if ((attacker as PlayerMobile).CustomGuilds[soldier.Government].RankID < defender.CustomGuilds[soldier.Government].RankID) // So who outranks who? I'm with the authority on this one!
                                                bValid = true; // Both are members of my government, but the defender outranks the attacker; defend the high-ranking member!
                                        }
                                        else
                                        {
                                            soldier.DebugSay("The defender is in my government, but you are neither in my government nor an ally. I will attack you.");
                                            bValid = true; // The defender is in my government, but the attacker is neither an ally nor in my government; therefore, I will attack him.
                                        }
                                    }
                                }
                                #endregion

                                #region Nation Handling

                                if (!bValid && !(attacker is PlayerMobile && CustomGuildStone.IsGuildMember(attacker as PlayerMobile, soldier.Government))) // If the attacker is not an officer of my guild...
                                {
                                    #region Checking to make certain the attacker is not an ally.
                                    bool attackerIsAlly = false;
                                    if (attacker is PlayerMobile || attacker is Soldier)
                                    {
                                        if (attacker is Soldier && (attacker as Soldier).Government != null && (attacker as Soldier).Government.Deleted && (attacker as Soldier).Government == soldier.Government)
                                        {
                                            soldier.DebugSay("The attacker is a soldier and an ally!");
                                            attackerIsAlly = true;
                                        }
                                        else
                                        {
                                            foreach (CustomGuildStone allyGuild in soldier.Government.AlliedGuilds)
                                            {
                                                if (attacker is PlayerMobile)
                                                {
                                                    if (CustomGuildStone.IsGuildMember(attacker as PlayerMobile, allyGuild))
                                                    {
                                                        soldier.DebugSay("You are an ally!");
                                                        attackerIsAlly = true;
                                                        continue;
                                                    }
                                                }
                                                else if (attacker is Soldier && (attacker as Soldier).Government != null && !(attacker as Soldier).Government.Deleted)
                                                {
                                                    if ((attacker as Soldier).Government == allyGuild)
                                                    {
                                                        soldier.DebugSay("You are an ally!");
                                                        attackerIsAlly = true;
                                                        continue;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                    #endregion

                                    if (!attackerIsAlly && defender.GetDisguisedNation() == soldier.Government.Nation) // ... and the defender is of my own nation ...
                                    {
                                        soldier.DebugSay("The attacker is not an ally, and the defender is of my nation.");
                                        if (attacker is PlayerMobile)
                                        {
                                            if ((attacker as PlayerMobile).GetDisguisedNation() != soldier.Government.Nation)
                                            {
                                                soldier.DebugSay("But you are not of my nation, nor are you an ally; I will attack.");
                                                bValid = true;
                                            }
                                        }
                                        else
                                        {
                                            if (attacker is Soldier)
                                            {
                                                if ((attacker as Soldier).Nation != soldier.Government.Nation)
                                                {
                                                    soldier.DebugSay("But you are not of my nation, nor are you an ally; I will attack.");
                                                    bValid = true;
                                                }
                                            }
                                            else
                                            {
                                                soldier.DebugSay("But you are not of my nation, nor are you an ally; I will attack.");
                                                bValid = true;
                                            }
                                        }
                                    }
                                }

                                #endregion
                            }
                        }
                    }
                    #endregion

                    #region The defender is a player.
                    else if (attacker.Combatant is PlayerMobile)
                    {
                        soldier.DebugSay("You are a player.");
                        PlayerMobile defender = attacker.Combatant as PlayerMobile;
                        if (!defender.Spar) // If the defender isn't sparring...
                        {
                            soldier.DebugSay("You are not sparring.");
                            #region Is the defender in an enemy guild?
                            bool defenderIsEnemy = false;
                            foreach (CustomGuildStone enemyGuild in soldier.Government.EnemyGuilds)
                            {
                                if (CustomGuildStone.IsGuildMember(defender, enemyGuild) && defender.CustomGuilds[enemyGuild].ActiveTitle)
                                {
                                    soldier.DebugSay("The person you are attacking is in an enemy guild!");
                                    defenderIsEnemy = true; // The defender is part of an enemy guild; that's no reason to defend them!
                                    continue;
                                }
                            }
                            #endregion

                            if (!defenderIsEnemy)
                            {
                                #region Ally Handling
                                foreach (CustomGuildStone allyGuild in soldier.Government.AlliedGuilds)
                                {
                                    if (!(attacker is PlayerMobile && CustomGuildStone.IsGuildMember(attacker as PlayerMobile, soldier.Government))) // If the attacker isn't a member of my guild...
                                    {
                                        if (CustomGuildStone.IsGuildMember(defender, allyGuild) && defender.CustomGuilds[allyGuild].ActiveTitle) // ... and the defender is an ally ...
                                        {
                                            soldier.DebugSay("The defender is a player ally!");
                                            bool attackerIsAlly = false;
                                            foreach (CustomGuildStone otherAllyGuild in soldier.Government.AlliedGuilds)
                                            {
                                                if (attacker is PlayerMobile && CustomGuildStone.IsGuildMember(attacker as PlayerMobile, otherAllyGuild)) // Is the attacker ALSO an ally?
                                                {
                                                    soldier.DebugSay("You are an ally.");
                                                    attackerIsAlly = true; // The attacker is an ally as well; I can't decide!
                                                    continue;
                                                }
                                                else if (attacker is Soldier && (attacker as Soldier).Government != null && (attacker as Soldier).Government.Deleted && (attacker as Soldier).Government == otherAllyGuild) // Is the attacker ALSO an ally?
                                                {
                                                    soldier.DebugSay("You are an ally.");
                                                    attackerIsAlly = true; // The attacker is an ally as well; I can't decide!
                                                    continue;
                                                }
                                            }

                                            if (!attackerIsAlly) // The attacker is not an ally.
                                            {
                                                soldier.DebugSay("You are not an ally, I will attack!");
                                                bValid = true; // The defender is an ally! I'll defend him from this unknown.
                                                continue;
                                            }
                                        }
                                    }
                                }
                                #endregion

                                #region Government Handling
                                if (!bValid) // So the defender wasn't an ally, nor was the attacker...
                                {
                                    if (CustomGuildStone.IsGuildMember(defender, soldier.Government) && defender.CustomGuilds[soldier.Government].ActiveTitle) // Is the defender a member of my government?
                                    {
                                        soldier.DebugSay("The defender is a member of my government.");
                                        if (attacker is PlayerMobile && CustomGuildStone.IsGuildMember(attacker as PlayerMobile, soldier.Government)) // Yes, and so is the attacker!
                                        {
                                            soldier.DebugSay("You are a member of my guild!");
                                            if ((attacker as PlayerMobile).CustomGuilds[soldier.Government].RankID < defender.CustomGuilds[soldier.Government].RankID) // So who outranks who? I'm with the authority on this one!
                                                bValid = true; // Both are members of my government, but the defender outranks the attacker; defend the high-ranking member!
                                        }
                                        else
                                        {
                                            soldier.DebugSay("The defender is in my government, but you are neither in my government nor an ally. I will attack you.");
                                            bValid = true; // The defender is in my government, but the attacker is neither an ally nor in my government; therefore, I will attack him.
                                        }
                                    }
                                }
                                #endregion

                                #region Nation Handling

                                if (!bValid && !(attacker is PlayerMobile && CustomGuildStone.IsGuildMember(attacker as PlayerMobile, soldier.Government))) // If the attacker is not an officer of my guild...
                                {
                                    #region Checking to make certain the attacker is not an ally.
                                    bool attackerIsAlly = false;
                                    if (attacker is PlayerMobile || attacker is Soldier)
                                    {
                                        if (attacker is Soldier && (attacker as Soldier).Government != null && (attacker as Soldier).Government.Deleted && (attacker as Soldier).Government == soldier.Government)
                                        {
                                            soldier.DebugSay("The attacker is a soldier and an ally!");
                                            attackerIsAlly = true;
                                        }
                                        else
                                        {
                                            foreach (CustomGuildStone allyGuild in soldier.Government.AlliedGuilds)
                                            {
                                                if (attacker is PlayerMobile)
                                                {
                                                    if (CustomGuildStone.IsGuildMember(attacker as PlayerMobile, allyGuild))
                                                    {
                                                        soldier.DebugSay("You are an ally!");
                                                        attackerIsAlly = true;
                                                        continue;
                                                    }
                                                }
                                                else if (attacker is Soldier && (attacker as Soldier).Government != null && !(attacker as Soldier).Government.Deleted)
                                                {
                                                    if ((attacker as Soldier).Government == allyGuild)
                                                    {
                                                        soldier.DebugSay("You are an ally!");
                                                        attackerIsAlly = true;
                                                        continue;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                    #endregion

                                    if (!attackerIsAlly && defender.GetDisguisedNation() == soldier.Government.Nation) // ... and the defender is of my own nation ...
                                    {
                                        soldier.DebugSay("The attacker is not an ally, and the defender is of my nation.");
                                        if (attacker is PlayerMobile)
                                        {
                                            if ((attacker as PlayerMobile).GetDisguisedNation() != soldier.Government.Nation)
                                            {
                                                soldier.DebugSay("But you are not of my nation, nor are you an ally; I will attack.");
                                                bValid = true;
                                            }
                                        }
                                        else
                                        {
                                            if (attacker is Soldier)
                                            {
                                                if ((attacker as Soldier).Nation != soldier.Government.Nation)
                                                {
                                                    soldier.DebugSay("But you are not of my nation, nor are you an ally; I will attack.");
                                                    bValid = true;
                                                }
                                            }
                                            else
                                            {
                                                soldier.DebugSay("But you are not of my nation, nor are you an ally; I will attack.");
                                                bValid = true;
                                            }
                                        }
                                    }
                                }

                                #endregion
                            }
                        }
                    }
                    #endregion

                    #region The defender is a BaseCreature.
                    else if (attacker.Combatant is BaseCreature)
                    {
                        soldier.DebugSay("The defender is a BaseCreature!");
                        BaseCreature defender = attacker.Combatant as BaseCreature;
                        if (defender.FightMode != FightMode.Berserk && defender.FightMode != FightMode.Closest)
                        {
                            soldier.DebugSay("The defender is not aggressive, so why are you fighting?");
                            if (!(attacker is PlayerMobile && CustomGuildStone.IsGuildMember(attacker as PlayerMobile, soldier.Government)))
                            {
                                soldier.DebugSay("The attacker is not a member of my guild.");
                                #region Defending NPC is a soldier.
                                if (defender is BaseKhaerosMobile)
                                {
                                    soldier.DebugSay("The defender is a BaseKhaerosMobile.");
                                    BaseKhaerosMobile khaerosDefender = defender as BaseKhaerosMobile;
                                    if (khaerosDefender.Government != null && !khaerosDefender.Government.Deleted)
                                    {
                                        if (!soldier.Government.EnemyGuilds.Contains(khaerosDefender.Government)) // If the defender isn't part of an enemy government, I'll consider defending him.
                                        {
                                            #region Is the defending soldier part of my government?
                                            if (khaerosDefender.Government == soldier.Government &&
                                                !(attacker is Soldier &&
                                                (attacker as Soldier).Government != null &&
                                                !(attacker as Soldier).Government.Deleted &&
                                                (attacker as Soldier).Government == soldier.Government))
                                            {
                                                soldier.DebugSay("The defender is part of my government, I will attack you!");
                                                bValid = true;
                                            }
                                            #endregion
                                            #region Is the defending soldier an ally of my government?
                                            else
                                            {
                                                bool attackerIsAlly = false;
                                                foreach (CustomGuildStone allyGuild in soldier.Government.AlliedGuilds)
                                                {
                                                    if (attacker is PlayerMobile)
                                                    {
                                                        if (CustomGuildStone.IsGuildMember(attacker as PlayerMobile, allyGuild))
                                                        {
                                                            soldier.DebugSay("The attacker is an ally.");
                                                            attackerIsAlly = true;
                                                            continue;
                                                        }
                                                    }
                                                    else if (attacker is BaseKhaerosMobile)
                                                    {
                                                        if ((attacker as BaseKhaerosMobile).Government != null && !(attacker as BaseKhaerosMobile).Government.Deleted &&
                                                            ((attacker as BaseKhaerosMobile).Government == allyGuild || (attacker as BaseKhaerosMobile).Government == soldier.Government ||
                                                            (attacker as BaseKhaerosMobile).Government == khaerosDefender.Government))
                                                        {
                                                            soldier.DebugSay("The attacker is an ally.");
                                                            attackerIsAlly = true;
                                                            continue;
                                                        }
                                                    }
                                                }
                                                if (!attackerIsAlly) // If the attacker has proven to not be an ally of my guild...
                                                {
                                                    foreach (CustomGuildStone allyGuild in soldier.Government.AlliedGuilds)
                                                    {
                                                        if (khaerosDefender.Government == allyGuild) // ... and you ARE an ally of my guild ...
                                                        {
                                                            soldier.DebugSay("The attacker is not an ally and the defender IS an ally.");
                                                            bValid = true; // I will attack the attacker and defend you, defender.
                                                            continue;
                                                        }
                                                    }
                                                }
                                            }
                                            #endregion
                                        }
                                    }
                                }
                                #endregion

                                #region Defending NPC Nation Handling
                                if (!bValid)
                                {
                                    if (defender.Nation == soldier.Nation &&
                                        !(attacker is BaseCreature && (attacker as BaseCreature).Nation == soldier.Nation) &&
                                        !(attacker is PlayerMobile && (attacker as PlayerMobile).Nation == soldier.Nation))
                                    {
                                        soldier.DebugSay("The defender's nation is the same as mine.");
                                        bool attackerIsAlly = false;
                                        foreach (CustomGuildStone allyGuild in soldier.Government.AlliedGuilds)
                                        {
                                            if (attacker is BaseKhaerosMobile && (attacker as BaseKhaerosMobile).Government != null && !(attacker as BaseKhaerosMobile).Government.Deleted)
                                            {
                                                if ((attacker as BaseKhaerosMobile).Government == allyGuild)
                                                {
                                                    soldier.DebugSay("The attacker is an ally.");
                                                    attackerIsAlly = true;
                                                    continue;
                                                }
                                            }
                                            else if (attacker is PlayerMobile)
                                            {
                                                if (CustomGuildStone.IsGuildMember(attacker as PlayerMobile, allyGuild) && (attacker as PlayerMobile).CustomGuilds[allyGuild].ActiveTitle)
                                                {
                                                    soldier.DebugSay("The attacker is an ally.");
                                                    attackerIsAlly = true;
                                                    continue;
                                                }
                                            }
                                        }

                                        if (!attackerIsAlly)
                                        {
                                            soldier.DebugSay("The attacker is not an ally and the defender is of my Nation. I will attack.");
                                            bValid = true;
                                        }
                                    }
                                }
                                #endregion
                            }
                        }

                    }
                    #endregion
                }
            }
            return bValid;
        }
예제 #2
0
 public SoldierPatrolTarget(Soldier s)
     : base(12, true, TargetFlags.None)
 {
     m_Sol = s;
 }
예제 #3
0
 public SoldierUnequipTarget(Soldier s)
     : base(1000000, true, TargetFlags.None)
 {
     m_Soldier = s;
     AllowNonlocal = true;
 }
예제 #4
0
 public SoldierEquipTarget(Soldier s)
     : base(14, true, TargetFlags.None)
 {
     m_Soldier = s;
 }
예제 #5
0
 public ReportTimer(ReportInfo r, Soldier s)
     : base(TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(30))
 {
     Priority = TimerPriority.OneMinute;
     m_Report = r;
     m_Soldier = s;
     m_Report.Name = m_Soldier.Name.ToString();
     m_TimerStarted = DateTime.Now;
 }
예제 #6
0
        // Checks to see if the player is committing a crime and is not a superior or ally.
        public static bool ThiefCheck(PlayerMobile m, Soldier s)
        {
            if (m == null || m.Deleted || !m.Alive)
                return false;

            if (s == null || s.Deleted || !s.Alive)
                return false;

            if (m.AccessLevel > AccessLevel.Player) // Don't attack staff!
                return false;

            if (s.Government == null || s.Government.Deleted)
                return false;

            if (m.CriminalActivity && Soldier.VisionCheck(m, s, 15))
            {
                if (CustomGuildStone.IsGuildOfficer(m, s.Government) && m.CustomGuilds[s.Government].ActiveTitle)
                    return false;

                int count = s.Government.AlliedGuilds.Count;
                for (int i = 0; i < count; i++)
                {
                    CustomGuildStone thisGuild = (CustomGuildStone)s.Government.AlliedGuilds[i];

                    if (CustomGuildStone.IsGuildOfficer(m, thisGuild) && m.CustomGuilds[thisGuild].ActiveTitle)
                        return false;
                }

                return true;
            }

            return false;
        }
예제 #7
0
        public static void RecognizeCrime(Mobile m, Soldier s)
        {
            if (m.Deleted || m == null || !m.Alive)
                return;

            if (s.Deleted || s == null || !s.Alive)
                return;

            if (s.Government == null || s.Government.Deleted)
                return;

            if (m is PlayerMobile && CustomGuildStone.IsGuildOfficer(m as PlayerMobile, s.Government))
                return;

            if (m is Soldier && (m as Soldier).Government != null && !(m as Soldier).Government.Deleted && (m as Soldier).Government == s.Government)
                return;

            if (m is PlayerMobile && GroupInfo.IsGroupLeader(s, m as PlayerMobile))
                return;

            XmlAttachment attachment = null;
            attachment = XmlAttach.FindAttachmentOnMobile(m, typeof(XmlCriminal), s.Nation.ToString());

            if (attachment == null)
            {
                XmlAttach.AttachTo(m, new XmlCriminal(s));

                m.SendMessage(CriminalAlertMessage(s.Nation));

                if (m is PlayerMobile)
                {
                    if (((PlayerMobile)m).CriminalActivity)
                    {
                        ((PlayerMobile)m).CriminalActivity = false;
                        ReportInfo newReport = new ReportInfo(m, true, false);
                        newReport.ReporterName = s.Name;
                        s.ReportTimer = new ReportTimer(newReport, s);
                    }
                    else
                    {
                        ReportInfo newReport = new ReportInfo(m, false, true);
                        newReport.ReporterName = s.Name;
                        s.ReportTimer = new ReportTimer(newReport, s);
                    }

                    s.ReportTimer.Start();
                }

                m.RevealingAction();
                s.OnThink();
            }
        }
예제 #8
0
        // A random attacking phrase generator; the timer is set so that guards do not endlessly spout there attack phrases.
        public static String RandomAttackSpeech(Soldier s)
        {
            int randomAttackPhrase = Utility.RandomMinMax(1, 16);
            switch (s.Nation)
            {
                case Nation.Alyrian:
                    {
                        if (DateTime.Now >= (s.SpeechInterval + TimeSpan.FromSeconds(Utility.RandomMinMax(120, 600))))
                        {
                            switch (randomAttackPhrase)
                            {
                                case 1: { s.SpeechInterval = DateTime.Now; return "To victory!"; }
                                case 2: { s.SpeechInterval = DateTime.Now; return "I'll clear the way of you!"; }
                                case 3: { s.SpeechInterval = DateTime.Now; return "Stop right there, criminal scum!"; }
                                case 4: { s.SpeechInterval = DateTime.Now; return "With a red hand!"; }
                                case 5: { s.SpeechInterval = DateTime.Now; return "Your day has come!"; }
                                case 6: { s.SpeechInterval = DateTime.Now; return "Sons of the hounds, come here and get flesh!"; }
                                case 7: { s.SpeechInterval = DateTime.Now; return "There'll be no one to sing your name!"; }
                                case 8: { s.SpeechInterval = DateTime.Now; return "Your story ends here, blighter."; }
                            }
                        }

                        return null;
                    }
                case Nation.Azhuran:
                    {
                        if (DateTime.Now >= (s.SpeechInterval + TimeSpan.FromSeconds(Utility.RandomMinMax(120, 600))))
                        {
                            switch (randomAttackPhrase)
                            {
                                case 1: { s.SpeechInterval = DateTime.Now; return "Victory to Xipotec, the Azhurans are here!"; }
                                case 2: { s.SpeechInterval = DateTime.Now; return "A fine sacrifice."; }
                                case 3: { s.SpeechInterval = DateTime.Now; return "Stop right there, criminal scum!"; }
                                case 4: { s.SpeechInterval = DateTime.Now; return "Xipotec is great!"; }
                                case 5: { s.SpeechInterval = DateTime.Now; return "Long live the Ataloa!"; }
                                case 6: { s.SpeechInterval = DateTime.Now; return "You'll know only darkness."; }
                                case 7: { s.SpeechInterval = DateTime.Now; return "Ua! Ua! Ua!"; }
                                case 8: { s.SpeechInterval = DateTime.Now; return "Xipotec! Xipotec! Xipotec!"; }
                            }
                        }

                        return null;
                    }
                case Nation.Khemetar:
                    {
                        if (DateTime.Now >= (s.SpeechInterval + TimeSpan.FromSeconds(Utility.RandomMinMax(120, 600))))
                        {
                            switch (randomAttackPhrase)
                            {
                                case 1: { s.SpeechInterval = DateTime.Now; return "Mah'tet wills it."; }
                                case 2: { s.SpeechInterval = DateTime.Now; return "Today is an auspicious day for death!"; }
                                case 3: { s.SpeechInterval = DateTime.Now; return "Stop right there, criminal scum!"; }
                                case 4: { s.SpeechInterval = DateTime.Now; return "I will sweep you away like the wind."; }
                                case 5: { s.SpeechInterval = DateTime.Now; return "The vultures take you!"; }
                                case 6: { s.SpeechInterval = DateTime.Now; return "Black sand!"; }
                                case 7: { s.SpeechInterval = DateTime.Now; return "You should know your place!"; }
                                case 8: { s.SpeechInterval = DateTime.Now; return "Ignorant sow!"; }
                            }
                        }

                        return null;
                    }
                case Nation.Mhordul:
                    {
                        if (DateTime.Now >= (s.SpeechInterval + TimeSpan.FromSeconds(Utility.RandomMinMax(120, 600))))
                        {
                            switch (randomAttackPhrase)
                            {
                                case 1: { s.SpeechInterval = DateTime.Now; return "Honorless slave!"; }
                                case 2: { s.SpeechInterval = DateTime.Now; return "Betrayer!"; }
                                case 3: { s.SpeechInterval = DateTime.Now; return "Stop right there, criminal scum!"; }
                                case 4: { s.SpeechInterval = DateTime.Now; return "Boghul! You will regret this!"; }
                                case 5: { s.SpeechInterval = DateTime.Now; return "Fool!"; }
                                case 6: { s.SpeechInterval = DateTime.Now; return "Your death will please Xorgoth."; }
                                case 7: { s.SpeechInterval = DateTime.Now; return "Your bones will make fine armor!"; }
                                case 8: { s.SpeechInterval = DateTime.Now; return "You're already dead."; }
                            }
                        }

                        return null;
                    }
                case Nation.Tyrean:
                    {
                        if (DateTime.Now >= (s.SpeechInterval + TimeSpan.FromSeconds(Utility.RandomMinMax(120, 600))))
                        {
                            switch (randomAttackPhrase)
                            {
                                case 1: { s.SpeechInterval = DateTime.Now; return "For the fatherland, forward!"; }
                                case 2: { s.SpeechInterval = DateTime.Now; return "Remember Tyris!"; }
                                case 3: { s.SpeechInterval = DateTime.Now; return "Stop right there, criminal scum!"; }
                                case 4: { s.SpeechInterval = DateTime.Now; return "Cut them down, sons of the north!"; }
                                case 5: { s.SpeechInterval = DateTime.Now; return "Fire at your balls!"; }
                                case 6: { s.SpeechInterval = DateTime.Now; return "Follow me, heroes!"; }
                                case 7: { s.SpeechInterval = DateTime.Now; return "Unworthy swine."; }
                                case 8: { s.SpeechInterval = DateTime.Now; return "Beardless fool!"; }
                            }
                        }

                        return null;
                    }
                case Nation.Vhalurian:
                    {
                        if (DateTime.Now >= (s.SpeechInterval + TimeSpan.FromSeconds(Utility.RandomMinMax(120, 600))))
                        {
                            switch (randomAttackPhrase)
                            {
                                case 1: { s.SpeechInterval = DateTime.Now; return "Awake the iron!"; }
                                case 2: { s.SpeechInterval = DateTime.Now; return "Long live Vhaluran!"; }
                                case 3: { s.SpeechInterval = DateTime.Now; return "Stop right there, criminal scum!"; }
                                case 4: { s.SpeechInterval = DateTime.Now; return "Charge, my brothers!"; }
                                case 5: { s.SpeechInterval = DateTime.Now; return "For the Captain!"; }
                                case 6: { s.SpeechInterval = DateTime.Now; return "To arms, to arms!"; }
                                case 7: { s.SpeechInterval = DateTime.Now; return "Halfborn bastard of a Mhordul!"; }
                                case 8: { s.SpeechInterval = DateTime.Now; return "*snooore... snr-rr-snort?!*"; }
                            }
                        }

                        return null;
                    }
                case Nation.Imperial:
                    {
                        if (DateTime.Now >= (s.SpeechInterval + TimeSpan.FromSeconds(Utility.RandomMinMax(120, 600))))
                        {
                            switch (randomAttackPhrase)
                            {
                                case 1: { s.SpeechInterval = DateTime.Now; return "For the Empire!"; }
                                case 2: { s.SpeechInterval = DateTime.Now; return "In the name of the Emperor!"; }
                                case 3: { s.SpeechInterval = DateTime.Now; return "Stop right there, criminal scum!"; }
                                case 4: { s.SpeechInterval = DateTime.Now; return "For the honor of the Legion!"; }
                                case 5: { s.SpeechInterval = DateTime.Now; return "Cut them down!"; }
                                case 6: { s.SpeechInterval = DateTime.Now; return "Into the fray, you dogs!"; }
                                case 7: { s.SpeechInterval = DateTime.Now; return "Glory for the first man to die!"; }
                                case 8: { s.SpeechInterval = DateTime.Now; return "Hammer and anvil!"; }
                            }
                        }

                        return null;
                    }
                case Nation.Sovereign:
                    {
                        if (DateTime.Now >= (s.SpeechInterval + TimeSpan.FromSeconds(Utility.RandomMinMax(120, 600))))
                        {
                            switch (randomAttackPhrase)
                            {
                                case 1: { s.SpeechInterval = DateTime.Now; return "Freedom or death!"; }
                                case 2: { s.SpeechInterval = DateTime.Now; return "No quarter!"; }
                                case 3: { s.SpeechInterval = DateTime.Now; return "Stop right there, criminal scum!"; }
                                case 4: { s.SpeechInterval = DateTime.Now; return "Brothers! Trust and go forward!"; }
                                case 5: { s.SpeechInterval = DateTime.Now; return "Honorless slave."; }
                                case 6: { s.SpeechInterval = DateTime.Now; return "With a red hand!"; }
                                case 7: { s.SpeechInterval = DateTime.Now; return "Our gods protect us!"; }
                                case 8: { s.SpeechInterval = DateTime.Now; return "Your evil ends here."; }
                            }
                        }

                        return null;
                    }
                case Nation.Society:
                    {
                        if ( DateTime.Now >= ( s.SpeechInterval + TimeSpan.FromSeconds( Utility.RandomMinMax(120,600) ) ) )
                        {
                            switch (randomAttackPhrase)
                            {
                                case 1: { s.SpeechInterval = DateTime.Now; return "Mah'tet willed our meeting."; }
                                case 2: { s.SpeechInterval = DateTime.Now; return "Xipotec has revealed your sins."; }
                                case 3: { s.SpeechInterval = DateTime.Now; return "Stop right there, criminal scum!"; }
                                case 4: { s.SpeechInterval = DateTime.Now; return "Xorgoth guide my hand!"; }
                                case 5: { s.SpeechInterval = DateTime.Now; return "By the many dicks of Ohlm!"; }
                                case 6: { s.SpeechInterval = DateTime.Now; return "By Arianthyt's grace!"; }
                                case 7: { s.SpeechInterval = DateTime.Now; return "Elysia have mercy on you."; }
                                case 8: { s.SpeechInterval = DateTime.Now; return "For the Six!!!"; }
                            }
                        }

                        return null;
                    }
                case Nation.Insularii:
                    {
                        if ( DateTime.Now >= ( s.SpeechInterval + TimeSpan.FromSeconds( Utility.RandomMinMax(120,600) ) ) )
                        {
                            switch (randomAttackPhrase)
                            {
                                case 1: { s.SpeechInterval = DateTime.Now; return "*readies their weapon*"; }
                                case 2: { s.SpeechInterval = DateTime.Now; return "*growls softly*"; }
                                case 3: { s.SpeechInterval = DateTime.Now; return "*readies for battle*"; }
                                case 4: { s.SpeechInterval = DateTime.Now; return "*chuckles lightly*"; }
                            }
                        }

                        return null;
                    }
            }

            return null;
        }