示例#1
0
        public override bool IsEnemy(Mobile m)
        {
            // Basically, this makes them FightMode.Agressor. More can can be added in to make htem attack others, such as other tribes, etc.
            bool valid = Aggressors.FirstOrDefault(a => a.Attacker == m) != null;

            if (!valid && MyrmidexInvasionSystem.Active)
            {
                valid = MyrmidexInvasionSystem.AreEnemies(this, m);
            }

            return(valid);
        }
示例#2
0
        public virtual void TurnCorrupted(Mobile from)
        {
            if (!UOACZSystem.IsUOACZValidMobile(from))
            {
                return;
            }
            if (Corrupted)
            {
                return;
            }

            if (from is PlayerMobile)
            {
                PlayerMobile player = from as PlayerMobile;

                UOACZPersistance.CheckAndCreateUOACZAccountEntry(player);
                player.m_UOACZAccountEntry.WildlifeCorrupted++;
            }

            UOACZEvents.SpreadCorruption();

            Combatant = null;

            Aggressed.Clear();
            Aggressors.Clear();

            Warmode = false;

            m_Corrupted = true;
            Hue         = CorruptHue;

            Name = CorruptedName;
            CorpseNameOverride = CorruptedCorpseName;

            PublicOverheadMessage(MessageType.Regular, 2210, false, "*becomes corrupted*");

            Effects.SendLocationParticles(EffectItem.Create(Location, Map, EffectItem.DefaultDuration), 0x3728, 10, 10, 2530, 0, 2023, 0);

            TimedStatic greenGoo = new TimedStatic(0x122D, 5);

            greenGoo.Name = "corruption";
            greenGoo.Hue  = 2530;
            greenGoo.MoveToWorld(Location, Map);

            PlaySound(GetAngerSound());
            PlaySound(0x62B);

            for (int a = 0; a < 4; a++)
            {
                greenGoo      = new TimedStatic(Utility.RandomList(4651, 4652, 4653, 4654), 5);
                greenGoo.Name = "corruption";
                greenGoo.Hue  = 2530;

                Point3D targetLocation = new Point3D(Location.X + Utility.RandomList(-1, 1), Location.Y + Utility.RandomList(-1, 1), Location.Y);
                SpellHelper.AdjustField(ref targetLocation, Map, 12, false);

                greenGoo.MoveToWorld(targetLocation, Map);
            }

            SetCorruptAI();

            DamageMin = (int)(Math.Round((double)DamageMin * CorruptedDamageScalar));
            DamageMax = (int)(Math.Round((double)DamageMax * CorruptedDamageScalar));

            AttackSpeed = (int)(Math.Round((double)AttackSpeed * CorruptedAttackSpeedScalar));

            Skills.Wrestling.Base *= CorruptedWrestlingScalar;
        }