public override void OnGaveMeleeAttack(Mobile defender) { base.OnGaveMeleeAttack(defender); if (m_BunnyType != BunnyType.Ferocious) { return; } double effectChance = .15; if (Controlled && ControlMaster != null) { if (ControlMaster is PlayerMobile) { if (defender is PlayerMobile) { effectChance = .02; } else { effectChance = .25; } } } SpecialAbilities.FrenzySpecialAbility(effectChance, this, defender, .25, 10, -1, true, "", "", "*becomes frenzied!"); }
public override void OnGaveMeleeAttack(Mobile defender) { base.OnGaveMeleeAttack(defender); double spawnPercent = (double)intervalCount / (double)totalIntervals; double bloodlustChance = .20 + (.20 * spawnPercent); double bleedChance = .20 + +(.20 * spawnPercent); if (Utility.RandomDouble() <= bloodlustChance && DateTime.UtcNow > m_NextBloodlustAllowed && DateTime.UtcNow > m_NextAbilityAllowed) { m_NextBloodlustAllowed = DateTime.UtcNow + TimeSpan.FromSeconds(30 - (20 * spawnPercent)); m_NextAbilityAllowed = DateTime.UtcNow + TimeSpan.FromSeconds(10 - (8 * spawnPercent)); Effects.PlaySound(Combatant.Location, Combatant.Map, 0x28a); SpecialAbilities.FrenzySpecialAbility(1.0, this, defender, 0.5, 30, -1, true, "", "", "*becomes consumed with bloodlust*"); Effects.SendLocationParticles(EffectItem.Create(Location, Map, TimeSpan.FromSeconds(0.25)), 0x3709, 10, 30, 2117, 0, 5029, 0); int bloodItem = 5 + (int)(Math.Ceiling(10 * spawnPercent)); for (int a = 0; a < bloodItem; a++) { new Blood().MoveToWorld(new Point3D(defender.Location.X + Utility.RandomMinMax(-3, 3), defender.Location.Y + Utility.RandomMinMax(-3, 3), defender.Location.Z), Map); } } else { SpecialAbilities.BleedSpecialAbility(bleedChance, this, defender, DamageMax, 8.0, -1, true, "", "Their attack causes you to bleed!", "-1"); } }
public override void OnGaveMeleeAttack(Mobile defender) { base.OnGaveMeleeAttack(defender); double effectChance = .25; if (Controlled && ControlMaster != null) { if (ControlMaster is PlayerMobile) { effectChance = .20; } } SpecialAbilities.BleedSpecialAbility(effectChance, this, defender, DamageMax, 8.0, -1, true, "", "Their bite causes you to bleed!", "-1"); effectChance = .20; if (Controlled && ControlMaster != null) { if (ControlMaster is PlayerMobile) { if (defender is PlayerMobile) { effectChance = .05; } else { effectChance = .25; } } } SpecialAbilities.FrenzySpecialAbility(effectChance, this, defender, .25, 10, -1, true, "", "", "*becomes frenzied*"); }
public override void OnGaveMeleeAttack(Mobile defender) { base.OnGaveMeleeAttack(defender); double effectChance = .2; SpecialAbilities.FrenzySpecialAbility(effectChance, this, defender, 1.0, 15, -1, true, "", "", "*becomes frenzied*"); }
public override void OnGaveMeleeAttack(Mobile defender) { base.OnGaveMeleeAttack(defender); if (Utility.RandomDouble() <= .2) { PlaySound(GetAngerSound()); SpecialAbilities.FrenzySpecialAbility(1.0, this, defender, 0.5, 20, -1, true, "", "", "*begins to strike with unnatural quickness*"); } }
public override void OnGaveMeleeAttack(Mobile defender) { base.OnGaveMeleeAttack(defender); if (Utility.RandomDouble() < .1 && DateTime.UtcNow >= m_NextFlurryAllowed) { SpecialAbilities.FrenzySpecialAbility(1.0, this, defender, 1.0, 10, -1, true, "", "", "*begins to enter a trance*"); m_NextFlurryAllowed = DateTime.UtcNow + NextFlurryDelay; } }
public override void OnGaveMeleeAttack(Mobile defender) { base.OnGaveMeleeAttack(defender); double effectChance = .25; if (Controlled && ControlMaster != null) { if (ControlMaster is PlayerMobile) { if (defender is PlayerMobile) { effectChance = .05; } } } SpecialAbilities.FrenzySpecialAbility(effectChance, this, defender, .25, 10, -1, true, "", "", "*becomes frenzied*"); }
public override void OnGaveMeleeAttack(Mobile defender) { base.OnGaveMeleeAttack(defender); m_NextStealthCheckAllowed = DateTime.UtcNow + StealthDelay; double effectChance = .1; if (Controlled && ControlMaster != null) { if (ControlMaster is PlayerMobile) { if (defender is PlayerMobile) { effectChance = 0.0; } else { effectChance = .1; } } } if (m_NextFlurryAllowed <= DateTime.UtcNow) { if (Utility.RandomDouble() <= effectChance) { m_NextFlurryAllowed = DateTime.UtcNow + FlurryDelay; SpecialAbilities.FrenzySpecialAbility(1.0, this, defender, 1.0, 5, -1, true, "", "", "*becomes a whirling fury of blades*"); AIObject.NextMove = DateTime.UtcNow; LastSwingTime = DateTime.UtcNow; } } m_NextStealthCheckAllowed = DateTime.UtcNow + StealthDelay; }
public override void OnGaveMeleeAttack(Mobile defender) { base.OnGaveMeleeAttack(defender); if (Utility.RandomDouble() <= .10 && Body != 317) { SpecialAbilities.FrenzySpecialAbility(1.0, this, defender, 0.5, 20, -1, true, "", "", "*begins to strike with unnatural quickness*"); } if (Utility.RandomDouble() <= .10 && m_NextFeedAllowed <= DateTime.UtcNow && Body != 317) { IsFeeding = true; m_NextFeedAllowed = DateTime.UtcNow + NextFeedDelay; m_FeedExpiration = DateTime.UtcNow + FeedDuration; SpecialAbilities.HinderSpecialAbility(1.0, null, this, 1.0, 10, true, 0, false, "", "", "-1"); FixedParticles(0x376A, 9, 32, 5030, EffectLayer.Waist); Blood blood = new Blood(); blood.MoveToWorld(new Point3D(defender.X + Utility.RandomMinMax(-1, 1), defender.Y + Utility.RandomMinMax(-1, 1), defender.Z + 1), Map); double damage = DamageMax * 6; if (defender is BaseCreature) { damage *= 1.5; } PublicOverheadMessage(MessageType.Regular, 0, false, "*begins to feed*"); Animate(34, 5, 1, true, false, 0); SpecialAbilities.EntangleSpecialAbility(1.0, this, defender, 1.0, 10, -1, true, "", "", "-1"); SpecialAbilities.BleedSpecialAbility(1.0, this, defender, damage, 10.0, 0x44D, true, "", "The creature sinks its fangs into you, ensnaring and feeding upon your blood!", "-1"); } }
public void Enrage() { double spawnPercent = (double)intervalCount / (double)totalIntervals; double directionDelay = .25; double initialDelay = 1; double totalDelay = directionDelay + initialDelay; SpecialAbilities.HinderSpecialAbility(1.0, null, this, 1.0, totalDelay, true, 0, false, "", "", "-1"); m_NextEnrageAllowed = DateTime.UtcNow + NextEnrageDelay; m_NextAbilityAllowed = DateTime.UtcNow + NextAbilityDelay + TimeSpan.FromSeconds(totalDelay); AbilityInProgress = true; Timer.DelayCall(TimeSpan.FromSeconds(totalDelay), delegate { if (!SpecialAbilities.Exists(this)) { return; } AbilityInProgress = false; }); Effects.PlaySound(Location, Map, 0x4d7); PublicOverheadMessage(MessageType.Regular, 0, false, "*enters a fowl mood*"); Point3D location = Location; Map map = Map; PlaySound(GetAngerSound()); Animate(16, 8, 1, true, false, 0); Timer.DelayCall(TimeSpan.FromSeconds(directionDelay), delegate { if (!SpecialAbilities.Exists(this)) { return; } PlaySound(0x46A); FeatherExplosion(Location, Map, 20); SpecialAbilities.FrenzySpecialAbility(1.0, this, null, 1.0, EnrageDuration.TotalSeconds, 0, false, "", "", ""); SpecialAbilities.EnrageSpecialAbility(1.0, null, this, .5, EnrageDuration.TotalSeconds, 0, false, "", "", ""); Hue = EnragedHue; ActiveSpeed = .25; PassiveSpeed = .25; CurrentSpeed = .25; Timer.DelayCall(EnrageDuration, delegate { if (!SpecialAbilities.Exists(this)) { return; } Hue = NormalHue; ActiveSpeed = .35; PassiveSpeed = .35; CurrentSpeed = .35; }); }); }