//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); }
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); }
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); }