Beispiel #1
0
        //4 16 1 true false 0 LARGE PUNCH
        //5 15 1 true false 0 SLAP
        //6 15 1 true false 0 BITE
        //11 15 1 true false 0 EAT GROUND
        //17 12 1 true false 0 BURP
        //18 12 1 true false 0 JUMP BITE

        public void CorpseExplosion(Mobile from)
        {
            if (!SpecialAbilities.Exists(this))
            {
                return;
            }
            if (!SpecialAbilities.Exists(from))
            {
                return;
            }

            double spawnPercent = (double)intervalCount / (double)totalIntervals;

            int maxExtraParts = 4;
            int parts         = 4 + (int)Math.Ceiling((double)maxExtraParts * spawnPercent);

            SpecialAbilities.CorpseExplosionAbility(this, Location, from.Location, false, true, Map, 0, 2, parts, parts);
        }
Beispiel #2
0
        public void MassiveCorpseExplosion()
        {
            if (!SpecialAbilities.Exists(this))
            {
                return;
            }

            PublicOverheadMessage(MessageType.Regular, 0, false, "*violently erupts*");

            double spawnPercent = (double)intervalCount / (double)totalIntervals;

            int maxExtraParts = 80;
            int parts         = 40 + (int)(Math.Ceiling((double)maxExtraParts * spawnPercent));

            double stationaryDelay = 5;

            AbilityInProgress        = true;
            DamageIntervalInProgress = true;
            m_NextAbilityAllowed     = DateTime.UtcNow + NextAbilityDelay + TimeSpan.FromSeconds(stationaryDelay);

            SpecialAbilities.HinderSpecialAbility(1.0, null, this, 1, stationaryDelay, true, 0, false, "", "", "-1");

            Timer.DelayCall(TimeSpan.FromSeconds(stationaryDelay), delegate
            {
                if (!SpecialAbilities.Exists(this))
                {
                    return;
                }

                AbilityInProgress        = false;
                DamageIntervalInProgress = false;
                m_NextAbilityAllowed     = DateTime.UtcNow + NextAbilityDelay;
            });

            PlaySound(GetAngerSound());

            SpecialAbilities.CorpseExplosionAbility(this, Location, Location, false, true, Map, 0, 18, parts, parts);
        }
Beispiel #3
0
 public void MassiveCorpseExplosion(BaseCreature creature, Point3D startLocation, Point3D endLocation, bool needLOS, bool allowSameTile, Map map, int minRadius, int maxRadius, int minParts, int maxParts)
 {
     PlaySound(GetAngerSound());
     SpecialAbilities.CorpseExplosionAbility(creature, startLocation, endLocation, needLOS, allowSameTile, map, minRadius, maxRadius, minParts, maxParts);
 }