- Added more future ML craftables that already drop as loot to the special repair lists.
- Fixed Bloodwood Spirit and Totem of the Void sometimes not spawning with a protection attribute. (Prepatch ones are fixed on server start.) - Fixed crashes in BaseTalisman resulting from setting Summoner to null. - Paragon perks added to mobs dropping ML artifacts (by making them paragon "under the hood", seems to be the case on OSI as well). This also means the named mobs will now drop paragon chests. - Poison immunity level is now also increased by 1 for paragons. - Rend now drops ML minor artifacts. - ML named mobs no longer use the AoS specific loot packs, but will adjust to the era the server is set in. - The 'current speed' of paragons is now updated to account for the speed boost after spawning.
This commit is contained in:
parent
aacae9f7b8
commit
c0206c6f7e
30 changed files with 197 additions and 126 deletions
|
|
@ -103,7 +103,7 @@ namespace Server.Engines.Craft
|
||||||
{
|
{
|
||||||
// Clothing repairable but not craftable
|
// Clothing repairable but not craftable
|
||||||
|
|
||||||
if( m_CraftSystem is DefTailoring )
|
if ( m_CraftSystem is DefTailoring )
|
||||||
{
|
{
|
||||||
return (clothing is BearMask)
|
return (clothing is BearMask)
|
||||||
|| (clothing is DeerMask);
|
|| (clothing is DeerMask);
|
||||||
|
|
@ -128,7 +128,11 @@ namespace Server.Engines.Craft
|
||||||
{
|
{
|
||||||
return ( weapon is Club )
|
return ( weapon is Club )
|
||||||
|| ( weapon is BlackStaff )
|
|| ( weapon is BlackStaff )
|
||||||
|| ( weapon is MagicWand );
|
|| ( weapon is MagicWand )
|
||||||
|
#region Temporary
|
||||||
|
// TODO: Make these items craftable
|
||||||
|
|| ( weapon is WildStaff );
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
else if ( m_CraftSystem is DefBlacksmithy )
|
else if ( m_CraftSystem is DefBlacksmithy )
|
||||||
{
|
{
|
||||||
|
|
@ -146,6 +150,14 @@ namespace Server.Engines.Craft
|
||||||
|| ( weapon is DiamondMace );
|
|| ( weapon is DiamondMace );
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
#region Temporary
|
||||||
|
// TODO: Make these items craftable
|
||||||
|
else if ( m_CraftSystem is DefBowFletching )
|
||||||
|
{
|
||||||
|
return ( weapon is ElvenCompositeLongbow )
|
||||||
|
|| ( weapon is MagicalShortbow );
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
@ -156,7 +168,32 @@ namespace Server.Engines.Craft
|
||||||
|
|
||||||
#region Temporary
|
#region Temporary
|
||||||
// TODO: Make these items craftable
|
// TODO: Make these items craftable
|
||||||
if ( m_CraftSystem is DefBlacksmithy )
|
if ( m_CraftSystem is DefTailoring )
|
||||||
|
{
|
||||||
|
return ( armor is LeafTonlet )
|
||||||
|
|| ( armor is LeafArms )
|
||||||
|
|| ( armor is LeafChest )
|
||||||
|
|| ( armor is LeafGloves )
|
||||||
|
|| ( armor is LeafGorget )
|
||||||
|
|| ( armor is LeafLegs )
|
||||||
|
|| ( armor is HideChest )
|
||||||
|
|| ( armor is HideGloves )
|
||||||
|
|| ( armor is HideGorget )
|
||||||
|
|| ( armor is HidePants )
|
||||||
|
|| ( armor is HidePauldrons );
|
||||||
|
}
|
||||||
|
else if ( m_CraftSystem is DefCarpentry )
|
||||||
|
{
|
||||||
|
return ( armor is WingedHelm )
|
||||||
|
|| ( armor is RavenHelm )
|
||||||
|
|| ( armor is VultureHelm )
|
||||||
|
|| ( armor is WoodlandArms )
|
||||||
|
|| ( armor is WoodlandChest )
|
||||||
|
|| ( armor is WoodlandGloves )
|
||||||
|
|| ( armor is WoodlandGorget )
|
||||||
|
|| ( armor is WoodlandLegs );
|
||||||
|
}
|
||||||
|
else if ( m_CraftSystem is DefBlacksmithy )
|
||||||
{
|
{
|
||||||
return ( armor is Circlet )
|
return ( armor is Circlet )
|
||||||
|| ( armor is RoyalCirclet )
|
|| ( armor is RoyalCirclet )
|
||||||
|
|
@ -174,7 +211,6 @@ namespace Server.Engines.Craft
|
||||||
if( !CheckDeed( from ) )
|
if( !CheckDeed( from ) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
||||||
bool usingDeed = (m_Deed != null);
|
bool usingDeed = (m_Deed != null);
|
||||||
bool toDelete = false;
|
bool toDelete = false;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ namespace Server.Items
|
||||||
|
|
||||||
Removal = TalismanRemoval.Damage;
|
Removal = TalismanRemoval.Damage;
|
||||||
Blessed = GetRandomBlessed();
|
Blessed = GetRandomBlessed();
|
||||||
Protection = GetRandomProtection();
|
Protection = GetRandomProtection( false );
|
||||||
|
|
||||||
SkillBonuses.SetValues( 0, SkillName.SpiritSpeak, 10.0 );
|
SkillBonuses.SetValues( 0, SkillName.SpiritSpeak, 10.0 );
|
||||||
SkillBonuses.SetValues( 1, SkillName.Necromancy, 5.0 );
|
SkillBonuses.SetValues( 1, SkillName.Necromancy, 5.0 );
|
||||||
|
|
@ -30,7 +30,7 @@ namespace Server.Items
|
||||||
{
|
{
|
||||||
base.Serialize( writer );
|
base.Serialize( writer );
|
||||||
|
|
||||||
writer.Write( (int) 0 ); // version
|
writer.Write( (int) 1 ); // version
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Deserialize( GenericReader reader )
|
public override void Deserialize( GenericReader reader )
|
||||||
|
|
@ -38,6 +38,9 @@ namespace Server.Items
|
||||||
base.Deserialize( reader );
|
base.Deserialize( reader );
|
||||||
|
|
||||||
int version = reader.ReadInt();
|
int version = reader.ReadInt();
|
||||||
|
|
||||||
|
if ( version == 0 && ( Protection == null || Protection.IsEmpty ) )
|
||||||
|
Protection = GetRandomProtection( false );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,8 @@ namespace Server.Items
|
||||||
MaxChargeTime = 1800;
|
MaxChargeTime = 1800;
|
||||||
|
|
||||||
Blessed = GetRandomBlessed();
|
Blessed = GetRandomBlessed();
|
||||||
Protection = GetRandomProtection();
|
Protection = GetRandomProtection( false );
|
||||||
|
|
||||||
Attributes.RegenHits = 2;
|
Attributes.RegenHits = 2;
|
||||||
Attributes.LowerManaCost = 10;
|
Attributes.LowerManaCost = 10;
|
||||||
}
|
}
|
||||||
|
|
@ -35,7 +35,7 @@ namespace Server.Items
|
||||||
{
|
{
|
||||||
base.Serialize( writer );
|
base.Serialize( writer );
|
||||||
|
|
||||||
writer.Write( (int) 0 ); // version
|
writer.Write( (int) 1 ); // version
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Deserialize( GenericReader reader )
|
public override void Deserialize( GenericReader reader )
|
||||||
|
|
@ -43,6 +43,9 @@ namespace Server.Items
|
||||||
base.Deserialize( reader );
|
base.Deserialize( reader );
|
||||||
|
|
||||||
int version = reader.ReadInt();
|
int version = reader.ReadInt();
|
||||||
|
|
||||||
|
if ( version == 0 && ( Protection == null || Protection.IsEmpty ) )
|
||||||
|
Protection = GetRandomProtection( false );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -345,7 +345,7 @@ namespace Server.Items
|
||||||
from.SendLocalizedMessage(1075001); // You have been given some ingots.
|
from.SendLocalizedMessage(1075001); // You have been given some ingots.
|
||||||
else if (item is Bandage)
|
else if (item is Bandage)
|
||||||
from.SendLocalizedMessage(1075002); // You have been given some clean bandages.
|
from.SendLocalizedMessage(1075002); // You have been given some clean bandages.
|
||||||
else if (m_Summoner.Name != null)
|
else if (m_Summoner != null && m_Summoner.Name != null)
|
||||||
from.SendLocalizedMessage(1074853, m_Summoner.Name.ToString()); // You have been given ~1_name~
|
from.SendLocalizedMessage(1074853, m_Summoner.Name.ToString()); // You have been given ~1_name~
|
||||||
}
|
}
|
||||||
else if (obj is BaseCreature)
|
else if (obj is BaseCreature)
|
||||||
|
|
@ -553,7 +553,7 @@ namespace Server.Items
|
||||||
SetSaveFlag(ref flags, SaveFlag.SkillBonuses, !m_AosSkillBonuses.IsEmpty);
|
SetSaveFlag(ref flags, SaveFlag.SkillBonuses, !m_AosSkillBonuses.IsEmpty);
|
||||||
SetSaveFlag(ref flags, SaveFlag.Protection, m_Protection != null && !m_Protection.IsEmpty);
|
SetSaveFlag(ref flags, SaveFlag.Protection, m_Protection != null && !m_Protection.IsEmpty);
|
||||||
SetSaveFlag(ref flags, SaveFlag.Killer, m_Killer != null && !m_Killer.IsEmpty);
|
SetSaveFlag(ref flags, SaveFlag.Killer, m_Killer != null && !m_Killer.IsEmpty);
|
||||||
SetSaveFlag(ref flags, SaveFlag.Summoner, !m_Summoner.IsEmpty);
|
SetSaveFlag(ref flags, SaveFlag.Summoner, m_Summoner != null && !m_Summoner.IsEmpty);
|
||||||
SetSaveFlag(ref flags, SaveFlag.Removal, m_Removal != TalismanRemoval.None);
|
SetSaveFlag(ref flags, SaveFlag.Removal, m_Removal != TalismanRemoval.None);
|
||||||
SetSaveFlag(ref flags, SaveFlag.KarmaLoss, m_KarmaLoss != 0);
|
SetSaveFlag(ref flags, SaveFlag.KarmaLoss, m_KarmaLoss != 0);
|
||||||
SetSaveFlag(ref flags, SaveFlag.Skill, (int)m_Skill != 0);
|
SetSaveFlag(ref flags, SaveFlag.Skill, (int)m_Skill != 0);
|
||||||
|
|
@ -894,26 +894,32 @@ namespace Server.Items
|
||||||
|
|
||||||
public static TalismanAttribute GetRandomKiller()
|
public static TalismanAttribute GetRandomKiller()
|
||||||
{
|
{
|
||||||
if (0.5 > Utility.RandomDouble())
|
return GetRandomKiller( true );
|
||||||
{
|
}
|
||||||
int num = Utility.Random(m_Killers.Length);
|
|
||||||
|
|
||||||
return new TalismanAttribute(m_Killers[num], m_KillerLabels[num], Utility.RandomMinMax(10, 100));
|
public static TalismanAttribute GetRandomKiller( bool includingNone )
|
||||||
}
|
{
|
||||||
|
if ( includingNone && Utility.RandomBool() )
|
||||||
|
return new TalismanAttribute();
|
||||||
|
|
||||||
return new TalismanAttribute();
|
int num = Utility.Random(m_Killers.Length);
|
||||||
|
|
||||||
|
return new TalismanAttribute(m_Killers[num], m_KillerLabels[num], Utility.RandomMinMax(10, 100));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static TalismanAttribute GetRandomProtection()
|
public static TalismanAttribute GetRandomProtection()
|
||||||
{
|
{
|
||||||
if (0.5 > Utility.RandomDouble())
|
return GetRandomProtection( true );
|
||||||
{
|
}
|
||||||
int num = Utility.Random(m_Killers.Length);
|
|
||||||
|
|
||||||
return new TalismanAttribute(m_Killers[num], m_KillerLabels[num], Utility.RandomMinMax(5, 60));
|
public static TalismanAttribute GetRandomProtection( bool includingNone )
|
||||||
}
|
{
|
||||||
|
if ( includingNone && Utility.RandomBool() )
|
||||||
|
return new TalismanAttribute();
|
||||||
|
|
||||||
return new TalismanAttribute();
|
int num = Utility.Random(m_Killers.Length);
|
||||||
|
|
||||||
|
return new TalismanAttribute(m_Killers[num], m_KillerLabels[num], Utility.RandomMinMax(5, 60));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static SkillName[] m_Skills = new SkillName[]
|
private static SkillName[] m_Skills = new SkillName[]
|
||||||
|
|
|
||||||
|
|
@ -119,7 +119,17 @@ namespace Server
|
||||||
typeof( DemonKnight ), typeof( GiantBlackWidow ), typeof( SummonedAirElemental ),
|
typeof( DemonKnight ), typeof( GiantBlackWidow ), typeof( SummonedAirElemental ),
|
||||||
typeof( LesserHiryu ), typeof( Hiryu ), typeof( LadyOfTheSnow ),
|
typeof( LesserHiryu ), typeof( Hiryu ), typeof( LadyOfTheSnow ),
|
||||||
typeof( RaiJu ), typeof( Ronin ), typeof( RuneBeetle ),
|
typeof( RaiJu ), typeof( Ronin ), typeof( RuneBeetle ),
|
||||||
typeof( Changeling )
|
typeof( Changeling ),
|
||||||
|
#region ML named mobs - before Paragon speedboost
|
||||||
|
typeof( LadyJennifyr ), typeof( LadyMarai ), typeof( MasterJonath ),
|
||||||
|
typeof( MasterMikael ), typeof( MasterTheophilus ), typeof( RedDeath ),
|
||||||
|
typeof( SirPatrick ), typeof( Miasma ), typeof( Rend ),
|
||||||
|
typeof( Grobu ), typeof( Gnaw ), typeof( Guile ),
|
||||||
|
typeof( Irk ), typeof( Spite ), typeof( LadyLissith ),
|
||||||
|
typeof( LadySabrix ), typeof( Malefic ), typeof( Silk ),
|
||||||
|
typeof( Virulent )
|
||||||
|
// TODO: Where to put Lurg, Putrefier, Swoop and Pyre? They seem slower.
|
||||||
|
#endregion
|
||||||
} ),
|
} ),
|
||||||
/* Very Fast */
|
/* Very Fast */
|
||||||
new SpeedInfo( 0.175, 0.350, new Type[]
|
new SpeedInfo( 0.175, 0.350, new Type[]
|
||||||
|
|
@ -132,21 +142,7 @@ namespace Server
|
||||||
typeof( FactionHenchman ), typeof( FactionMercenary ), typeof( FactionNecromancer ),
|
typeof( FactionHenchman ), typeof( FactionMercenary ), typeof( FactionNecromancer ),
|
||||||
typeof( FactionSorceress ), typeof( FactionWizard ), typeof( FactionBerserker ),
|
typeof( FactionSorceress ), typeof( FactionWizard ), typeof( FactionBerserker ),
|
||||||
typeof( FactionPaladin ), typeof( Leviathan ), typeof( FireBeetle ),
|
typeof( FactionPaladin ), typeof( Leviathan ), typeof( FireBeetle ),
|
||||||
typeof( FanDancer ),
|
typeof( FanDancer )
|
||||||
#region ML named mobs
|
|
||||||
typeof( LadyJennifyr ), typeof( LadyMarai ), typeof( MasterJonath ),
|
|
||||||
typeof( MasterMikael ), typeof( MasterTheophilus ), typeof( RedDeath ),
|
|
||||||
typeof( SirPatrick ), typeof( Miasma ), typeof( Rend ),
|
|
||||||
typeof( Grobu ), typeof( Gnaw ), typeof( Guile ),
|
|
||||||
typeof( Irk ), typeof( Spite ), typeof( LadyLissith ),
|
|
||||||
typeof( LadySabrix ), typeof( Malefic ), typeof( Silk ),
|
|
||||||
typeof( Virulent )
|
|
||||||
/*
|
|
||||||
// These don't seem to be fast?
|
|
||||||
typeof( Lurg ), typeof( Putrefier ), typeof( Swoop),
|
|
||||||
typeof( Pyre )
|
|
||||||
*/
|
|
||||||
#endregion
|
|
||||||
} ),
|
} ),
|
||||||
/* Medium */
|
/* Medium */
|
||||||
new SpeedInfo( 0.25, 0.5, new Type[]
|
new SpeedInfo( 0.25, 0.5, new Type[]
|
||||||
|
|
|
||||||
|
|
@ -715,7 +715,7 @@ namespace Server.Mobiles
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Flee!!!
|
#region Flee!!!
|
||||||
public virtual bool CanFlee{ get{ return ( !m_Paragon && !GivesMLMinorArtifact ); } }
|
public virtual bool CanFlee{ get{ return !m_Paragon; } }
|
||||||
|
|
||||||
private DateTime m_EndFlee;
|
private DateTime m_EndFlee;
|
||||||
|
|
||||||
|
|
@ -880,7 +880,7 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
public override string ApplyNameSuffix( string suffix )
|
public override string ApplyNameSuffix( string suffix )
|
||||||
{
|
{
|
||||||
if ( IsParagon )
|
if ( IsParagon && !GivesMLMinorArtifact )
|
||||||
{
|
{
|
||||||
if ( suffix.Length == 0 )
|
if ( suffix.Length == 0 )
|
||||||
suffix = "(Paragon)";
|
suffix = "(Paragon)";
|
||||||
|
|
@ -1088,7 +1088,10 @@ namespace Server.Mobiles
|
||||||
if ( base.CheckPoisonImmunity( from, poison ) )
|
if ( base.CheckPoisonImmunity( from, poison ) )
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
Poison p = this.PoisonImmune;
|
Poison p = PoisonImmune;
|
||||||
|
|
||||||
|
if ( m_Paragon )
|
||||||
|
p = PoisonImpl.IncreaseLevel( p );
|
||||||
|
|
||||||
return ( p != null && p.Level >= poison.Level );
|
return ( p != null && p.Level >= poison.Level );
|
||||||
}
|
}
|
||||||
|
|
@ -2780,13 +2783,15 @@ namespace Server.Mobiles
|
||||||
if ( m_Paragon )
|
if ( m_Paragon )
|
||||||
p = PoisonImpl.IncreaseLevel( p );
|
p = PoisonImpl.IncreaseLevel( p );
|
||||||
|
|
||||||
if ( p != null && HitPoisonChance >= Utility.RandomDouble() ) {
|
if ( p != null && HitPoisonChance >= Utility.RandomDouble() )
|
||||||
|
{
|
||||||
defender.ApplyPoison( this, p );
|
defender.ApplyPoison( this, p );
|
||||||
if ( this.Controlled )
|
|
||||||
this.CheckSkill(SkillName.Poisoning, 0, this.Skills[SkillName.Poisoning].Cap);
|
if ( Controlled )
|
||||||
|
CheckSkill( SkillName.Poisoning, 0, Skills[SkillName.Poisoning].Cap );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( AutoDispel && defender is BaseCreature && ((BaseCreature)defender).IsDispellable && AutoDispelChance > Utility.RandomDouble() )
|
if ( AutoDispel && defender is BaseCreature && ((BaseCreature)defender).IsDispellable && AutoDispelChance > Utility.RandomDouble() )
|
||||||
Dispel( defender );
|
Dispel( defender );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -4493,13 +4498,18 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
public virtual void OnKilledBy( Mobile mob )
|
public virtual void OnKilledBy( Mobile mob )
|
||||||
{
|
{
|
||||||
if ( m_Paragon && Paragon.CheckArtifactChance( mob, this ) )
|
|
||||||
Paragon.GiveArtifactTo( mob );
|
|
||||||
|
|
||||||
#region Mondain's Legacy
|
#region Mondain's Legacy
|
||||||
if ( GivesMLMinorArtifact && MondainsLegacy.CheckArtifactChance( mob, this ) )
|
if ( GivesMLMinorArtifact )
|
||||||
MondainsLegacy.GiveArtifactTo( mob );
|
{
|
||||||
|
if ( MondainsLegacy.CheckArtifactChance( mob, this ) )
|
||||||
|
MondainsLegacy.GiveArtifactTo( mob );
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
else if ( m_Paragon )
|
||||||
|
{
|
||||||
|
if ( Paragon.CheckArtifactChance( mob, this ) )
|
||||||
|
Paragon.GiveArtifactTo( mob );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnDeath( Container c )
|
public override void OnDeath( Container c )
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,8 @@ namespace Server.Mobiles
|
||||||
[Constructable]
|
[Constructable]
|
||||||
public LadyJennifyr()
|
public LadyJennifyr()
|
||||||
{
|
{
|
||||||
|
IsParagon = true;
|
||||||
|
|
||||||
Name = "Lady Jennifyr";
|
Name = "Lady Jennifyr";
|
||||||
Hue = 0x76D;
|
Hue = 0x76D;
|
||||||
|
|
||||||
|
|
@ -42,7 +44,7 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
public override void GenerateLoot()
|
public override void GenerateLoot()
|
||||||
{
|
{
|
||||||
AddLoot( LootPack.AosUltraRich, 4 );
|
AddLoot( LootPack.UltraRich, 3 );
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnGaveMeleeAttack( Mobile defender )
|
public override void OnGaveMeleeAttack( Mobile defender )
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,8 @@ namespace Server.Mobiles
|
||||||
[Constructable]
|
[Constructable]
|
||||||
public LadyMarai()
|
public LadyMarai()
|
||||||
{
|
{
|
||||||
|
IsParagon = true;
|
||||||
|
|
||||||
Name = "Lady Marai";
|
Name = "Lady Marai";
|
||||||
Hue = 0x21;
|
Hue = 0x21;
|
||||||
|
|
||||||
|
|
@ -42,7 +44,7 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
public override void GenerateLoot()
|
public override void GenerateLoot()
|
||||||
{
|
{
|
||||||
AddLoot( LootPack.AosUltraRich, 4 );
|
AddLoot( LootPack.UltraRich, 3 );
|
||||||
}
|
}
|
||||||
|
|
||||||
public override WeaponAbility GetWeaponAbility()
|
public override WeaponAbility GetWeaponAbility()
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,8 @@ namespace Server.Mobiles
|
||||||
[Constructable]
|
[Constructable]
|
||||||
public MasterJonath()
|
public MasterJonath()
|
||||||
{
|
{
|
||||||
|
IsParagon = true;
|
||||||
|
|
||||||
Name = "Master Jonath";
|
Name = "Master Jonath";
|
||||||
Hue = 0x455;
|
Hue = 0x455;
|
||||||
|
|
||||||
|
|
@ -52,7 +54,7 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
public override void GenerateLoot()
|
public override void GenerateLoot()
|
||||||
{
|
{
|
||||||
AddLoot( LootPack.AosUltraRich, 4 );
|
AddLoot( LootPack.UltraRich, 3 );
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Special move?
|
// TODO: Special move?
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,8 @@ namespace Server.Mobiles
|
||||||
[Constructable]
|
[Constructable]
|
||||||
public MasterMikael()
|
public MasterMikael()
|
||||||
{
|
{
|
||||||
|
IsParagon = true;
|
||||||
|
|
||||||
Name = "Master Mikael";
|
Name = "Master Mikael";
|
||||||
Hue = 0x8FD;
|
Hue = 0x8FD;
|
||||||
|
|
||||||
|
|
@ -51,7 +53,7 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
public override void GenerateLoot()
|
public override void GenerateLoot()
|
||||||
{
|
{
|
||||||
AddLoot( LootPack.AosUltraRich, 3 );
|
AddLoot( LootPack.UltraRich, 2 );
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Special move?
|
// TODO: Special move?
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,11 @@ namespace Server.Mobiles
|
||||||
[Constructable]
|
[Constructable]
|
||||||
public MasterTheophilus()
|
public MasterTheophilus()
|
||||||
{
|
{
|
||||||
|
IsParagon = true;
|
||||||
|
|
||||||
Name = "Master Theophilus";
|
Name = "Master Theophilus";
|
||||||
Title = "the necromancer";
|
Title = "the necromancer";
|
||||||
|
Hue = 0;
|
||||||
|
|
||||||
SetStr( 137, 187 );
|
SetStr( 137, 187 );
|
||||||
SetDex( 253, 301 );
|
SetDex( 253, 301 );
|
||||||
|
|
@ -59,7 +62,7 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
public override void GenerateLoot()
|
public override void GenerateLoot()
|
||||||
{
|
{
|
||||||
AddLoot( LootPack.AosUltraRich, 4 );
|
AddLoot( LootPack.UltraRich, 3 );
|
||||||
}
|
}
|
||||||
|
|
||||||
public override WeaponAbility GetWeaponAbility()
|
public override WeaponAbility GetWeaponAbility()
|
||||||
|
|
@ -67,17 +70,6 @@ namespace Server.Mobiles
|
||||||
return WeaponAbility.ParalyzingBlow;
|
return WeaponAbility.ParalyzingBlow;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
// TODO: Needs verification
|
|
||||||
public override void OnDeath( Container c )
|
|
||||||
{
|
|
||||||
base.OnDeath( c );
|
|
||||||
|
|
||||||
if ( Paragon.ChestChance > Utility.RandomDouble() )
|
|
||||||
c.DropItem( new ParagonChest( Name, TreasureMapLevel ) );
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
public override bool GivesMLMinorArtifact{ get{ return true; } }
|
public override bool GivesMLMinorArtifact{ get{ return true; } }
|
||||||
public override int TreasureMapLevel{ get{ return 5; } }
|
public override int TreasureMapLevel{ get{ return 5; } }
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,8 @@ namespace Server.Mobiles
|
||||||
public RedDeath()
|
public RedDeath()
|
||||||
: base( "Red Death" )
|
: base( "Red Death" )
|
||||||
{
|
{
|
||||||
|
IsParagon = true;
|
||||||
|
|
||||||
Hue = 0x21;
|
Hue = 0x21;
|
||||||
BaseSoundID = 0x1C3;
|
BaseSoundID = 0x1C3;
|
||||||
|
|
||||||
|
|
@ -51,7 +53,7 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
public override void GenerateLoot()
|
public override void GenerateLoot()
|
||||||
{
|
{
|
||||||
AddLoot( LootPack.AosUltraRich, 4 );
|
AddLoot( LootPack.UltraRich, 3 );
|
||||||
}
|
}
|
||||||
|
|
||||||
public override WeaponAbility GetWeaponAbility()
|
public override WeaponAbility GetWeaponAbility()
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,8 @@ namespace Server.Mobiles
|
||||||
[Constructable]
|
[Constructable]
|
||||||
public SirPatrick()
|
public SirPatrick()
|
||||||
{
|
{
|
||||||
|
IsParagon = true;
|
||||||
|
|
||||||
Name = "Sir Patrick";
|
Name = "Sir Patrick";
|
||||||
Hue = 0x47E;
|
Hue = 0x47E;
|
||||||
|
|
||||||
|
|
@ -43,7 +45,7 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
public override void GenerateLoot()
|
public override void GenerateLoot()
|
||||||
{
|
{
|
||||||
AddLoot( LootPack.AosUltraRich, 3 );
|
AddLoot( LootPack.UltraRich, 2 );
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnGaveMeleeAttack( Mobile defender )
|
public override void OnGaveMeleeAttack( Mobile defender )
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,8 @@ namespace Server.Mobiles
|
||||||
[Constructable]
|
[Constructable]
|
||||||
public Miasma()
|
public Miasma()
|
||||||
{
|
{
|
||||||
|
IsParagon = true;
|
||||||
|
|
||||||
Name = "Miasma";
|
Name = "Miasma";
|
||||||
Hue = 0x8FD;
|
Hue = 0x8FD;
|
||||||
|
|
||||||
|
|
@ -38,13 +40,11 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
Fame = 21000;
|
Fame = 21000;
|
||||||
Karma = -21000;
|
Karma = -21000;
|
||||||
|
|
||||||
Tamable = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void GenerateLoot()
|
public override void GenerateLoot()
|
||||||
{
|
{
|
||||||
AddLoot( LootPack.AosUltraRich, 3 );
|
AddLoot( LootPack.UltraRich, 2 );
|
||||||
}
|
}
|
||||||
|
|
||||||
public override WeaponAbility GetWeaponAbility()
|
public override WeaponAbility GetWeaponAbility()
|
||||||
|
|
@ -80,16 +80,11 @@ namespace Server.Mobiles
|
||||||
case 15: c.DropItem( new HunterLegs() ); break;
|
case 15: c.DropItem( new HunterLegs() ); break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( Paragon.ChestChance > Utility.RandomDouble() )
|
|
||||||
c.DropItem( new ParagonChest( Name, TreasureMapLevel ) );
|
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public override bool GivesMLMinorArtifact{ get{ return true; } }
|
public override bool GivesMLMinorArtifact{ get{ return true; } }
|
||||||
public override int TreasureMapLevel{ get{ return 5; } }
|
public override int TreasureMapLevel{ get{ return 5; } }
|
||||||
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
|
|
||||||
public override Poison HitPoison{ get{ return Poison.Lethal; } }
|
|
||||||
|
|
||||||
public Miasma( Serial serial )
|
public Miasma( Serial serial )
|
||||||
: base( serial )
|
: base( serial )
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,8 @@ namespace Server.Mobiles
|
||||||
[Constructable]
|
[Constructable]
|
||||||
public Pyre()
|
public Pyre()
|
||||||
{
|
{
|
||||||
|
IsParagon = true;
|
||||||
|
|
||||||
Name = "Pyre";
|
Name = "Pyre";
|
||||||
Hue = 0x489;
|
Hue = 0x489;
|
||||||
|
|
||||||
|
|
@ -48,7 +50,7 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
public override void GenerateLoot()
|
public override void GenerateLoot()
|
||||||
{
|
{
|
||||||
AddLoot( LootPack.AosUltraRich, 4 );
|
AddLoot( LootPack.UltraRich, 3 );
|
||||||
}
|
}
|
||||||
|
|
||||||
public override WeaponAbility GetWeaponAbility()
|
public override WeaponAbility GetWeaponAbility()
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,8 @@ namespace Server.Mobiles
|
||||||
[Constructable]
|
[Constructable]
|
||||||
public Rend()
|
public Rend()
|
||||||
{
|
{
|
||||||
|
IsParagon = true;
|
||||||
|
|
||||||
Name = "Rend";
|
Name = "Rend";
|
||||||
Hue = 0x455;
|
Hue = 0x455;
|
||||||
|
|
||||||
|
|
@ -38,19 +40,11 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
Fame = 21000;
|
Fame = 21000;
|
||||||
Karma = -21000;
|
Karma = -21000;
|
||||||
|
|
||||||
Tamable = false;
|
|
||||||
|
|
||||||
/*
|
|
||||||
// TODO: Needs verification
|
|
||||||
if ( Paragon.ChestChance > Utility.RandomDouble() )
|
|
||||||
PackItem( new ParagonChest( Name, TreasureMapLevel ) );
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void GenerateLoot()
|
public override void GenerateLoot()
|
||||||
{
|
{
|
||||||
AddLoot( LootPack.AosUltraRich, 4 );
|
AddLoot( LootPack.UltraRich, 3 );
|
||||||
}
|
}
|
||||||
|
|
||||||
public override WeaponAbility GetWeaponAbility()
|
public override WeaponAbility GetWeaponAbility()
|
||||||
|
|
@ -61,6 +55,8 @@ namespace Server.Mobiles
|
||||||
return WeaponAbility.BleedAttack;
|
return WeaponAbility.BleedAttack;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool GivesMLMinorArtifact{ get{ return true; } }
|
||||||
|
|
||||||
public Rend( Serial serial )
|
public Rend( Serial serial )
|
||||||
: base( serial )
|
: base( serial )
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,8 @@ namespace Server.Mobiles
|
||||||
[Constructable]
|
[Constructable]
|
||||||
public Grobu()
|
public Grobu()
|
||||||
{
|
{
|
||||||
|
IsParagon = true;
|
||||||
|
|
||||||
Name = "Grobu";
|
Name = "Grobu";
|
||||||
Hue = 0x455;
|
Hue = 0x455;
|
||||||
|
|
||||||
|
|
@ -40,13 +42,11 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
Fame = 1000;
|
Fame = 1000;
|
||||||
Karma = 1000;
|
Karma = 1000;
|
||||||
|
|
||||||
Tamable = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void GenerateLoot()
|
public override void GenerateLoot()
|
||||||
{
|
{
|
||||||
AddLoot( LootPack.AosFilthyRich, 3 );
|
AddLoot( LootPack.FilthyRich, 2 );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,8 @@ namespace Server.Mobiles
|
||||||
[Constructable]
|
[Constructable]
|
||||||
public Lurg()
|
public Lurg()
|
||||||
{
|
{
|
||||||
|
IsParagon = true;
|
||||||
|
|
||||||
Name = "Lurg";
|
Name = "Lurg";
|
||||||
Hue = 0x455;
|
Hue = 0x455;
|
||||||
|
|
||||||
|
|
@ -39,16 +41,11 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
Fame = 10000;
|
Fame = 10000;
|
||||||
Karma = -10000;
|
Karma = -10000;
|
||||||
|
|
||||||
/*
|
|
||||||
if ( Paragon.ChestChance > Utility.RandomDouble() ) // TODO: Needs verification
|
|
||||||
PackItem( new ParagonChest( Name, TreasureMapLevel ) );
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void GenerateLoot()
|
public override void GenerateLoot()
|
||||||
{
|
{
|
||||||
AddLoot( LootPack.AosUltraRich, 3 );
|
AddLoot( LootPack.UltraRich, 2 );
|
||||||
}
|
}
|
||||||
|
|
||||||
public override WeaponAbility GetWeaponAbility()
|
public override WeaponAbility GetWeaponAbility()
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,8 @@ namespace Server.Mobiles
|
||||||
[Constructable]
|
[Constructable]
|
||||||
public Putrefier()
|
public Putrefier()
|
||||||
{
|
{
|
||||||
|
IsParagon = true;
|
||||||
|
|
||||||
Name = "Putrefier";
|
Name = "Putrefier";
|
||||||
Hue = 63;
|
Hue = 63;
|
||||||
|
|
||||||
|
|
@ -41,13 +43,16 @@ namespace Server.Mobiles
|
||||||
SetSkill( SkillName.Meditation, 41.4, 85.0 );
|
SetSkill( SkillName.Meditation, 41.4, 85.0 );
|
||||||
SetSkill( SkillName.Poisoning, 45.0, 50.0 );
|
SetSkill( SkillName.Poisoning, 45.0, 50.0 );
|
||||||
|
|
||||||
|
Fame = 24000;
|
||||||
|
Karma = -24000;
|
||||||
|
|
||||||
PackScroll( 4, 7 );
|
PackScroll( 4, 7 );
|
||||||
PackScroll( 4, 7 );
|
PackScroll( 4, 7 );
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void GenerateLoot()
|
public override void GenerateLoot()
|
||||||
{
|
{
|
||||||
AddLoot( LootPack.AosUltraRich, 4 );
|
AddLoot( LootPack.UltraRich, 3 );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -60,15 +65,11 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
if ( Utility.RandomDouble() < 0.6 )
|
if ( Utility.RandomDouble() < 0.6 )
|
||||||
c.DropItem( new ParrotItem() );
|
c.DropItem( new ParrotItem() );
|
||||||
|
|
||||||
if ( Paragon.ChestChance > Utility.RandomDouble() )
|
|
||||||
c.DropItem( new ParagonChest( Name, TreasureMapLevel ) );
|
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public override bool GivesMLMinorArtifact{ get{ return true; } }
|
public override bool GivesMLMinorArtifact{ get{ return true; } }
|
||||||
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
|
public override Poison HitPoison{ get{ return Poison.Deadly; } } // Becomes Lethal with Paragon bonus
|
||||||
public override Poison HitPoison{ get{ return Poison.Lethal; } }
|
|
||||||
public override int TreasureMapLevel{ get{ return 5; } }
|
public override int TreasureMapLevel{ get{ return 5; } }
|
||||||
|
|
||||||
public Putrefier( Serial serial )
|
public Putrefier( Serial serial )
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,8 @@ namespace Server.Mobiles
|
||||||
[Constructable]
|
[Constructable]
|
||||||
public Gnaw()
|
public Gnaw()
|
||||||
{
|
{
|
||||||
|
IsParagon = true;
|
||||||
|
|
||||||
Name = "Gnaw";
|
Name = "Gnaw";
|
||||||
Hue = 0x130;
|
Hue = 0x130;
|
||||||
|
|
||||||
|
|
@ -37,13 +39,11 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
Fame = 17500;
|
Fame = 17500;
|
||||||
Karma = -17500;
|
Karma = -17500;
|
||||||
|
|
||||||
Tamable = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void GenerateLoot()
|
public override void GenerateLoot()
|
||||||
{
|
{
|
||||||
AddLoot( LootPack.AosFilthyRich, 3 );
|
AddLoot( LootPack.FilthyRich, 2 );
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool GivesMLMinorArtifact{ get{ return true; } }
|
public override bool GivesMLMinorArtifact{ get{ return true; } }
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,10 @@ namespace Server.Mobiles
|
||||||
[Constructable]
|
[Constructable]
|
||||||
public Guile()
|
public Guile()
|
||||||
{
|
{
|
||||||
|
IsParagon = true;
|
||||||
|
|
||||||
|
Hue = DefaultHue;
|
||||||
|
|
||||||
SetStr( 53, 214 );
|
SetStr( 53, 214 );
|
||||||
SetDex( 243, 367 );
|
SetDex( 243, 367 );
|
||||||
SetInt( 369, 586 );
|
SetInt( 369, 586 );
|
||||||
|
|
@ -61,7 +65,7 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
public override void GenerateLoot()
|
public override void GenerateLoot()
|
||||||
{
|
{
|
||||||
AddLoot( LootPack.AosUltraRich, 3 );
|
AddLoot( LootPack.UltraRich, 2 );
|
||||||
}
|
}
|
||||||
|
|
||||||
public Guile( Serial serial )
|
public Guile( Serial serial )
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,10 @@ namespace Server.Mobiles
|
||||||
[Constructable]
|
[Constructable]
|
||||||
public Irk()
|
public Irk()
|
||||||
{
|
{
|
||||||
|
IsParagon = true;
|
||||||
|
|
||||||
|
Hue = DefaultHue;
|
||||||
|
|
||||||
SetStr( 23, 183 );
|
SetStr( 23, 183 );
|
||||||
SetDex( 259, 360 );
|
SetDex( 259, 360 );
|
||||||
SetInt( 374, 600 );
|
SetInt( 374, 600 );
|
||||||
|
|
@ -46,7 +50,7 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
public override void GenerateLoot()
|
public override void GenerateLoot()
|
||||||
{
|
{
|
||||||
AddLoot( LootPack.AosUltraRich, 3 );
|
AddLoot( LootPack.UltraRich, 2 );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,8 @@ namespace Server.Mobiles
|
||||||
[Constructable]
|
[Constructable]
|
||||||
public LadyLissith()
|
public LadyLissith()
|
||||||
{
|
{
|
||||||
|
IsParagon = true;
|
||||||
|
|
||||||
Name = "Lady Lissith";
|
Name = "Lady Lissith";
|
||||||
Hue = 0x452;
|
Hue = 0x452;
|
||||||
|
|
||||||
|
|
@ -44,7 +46,7 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
public override void GenerateLoot()
|
public override void GenerateLoot()
|
||||||
{
|
{
|
||||||
AddLoot( LootPack.AosUltraRich, 3 );
|
AddLoot( LootPack.UltraRich, 2 );
|
||||||
}
|
}
|
||||||
|
|
||||||
public override WeaponAbility GetWeaponAbility()
|
public override WeaponAbility GetWeaponAbility()
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,8 @@ namespace Server.Mobiles
|
||||||
[Constructable]
|
[Constructable]
|
||||||
public LadySabrix()
|
public LadySabrix()
|
||||||
{
|
{
|
||||||
|
IsParagon = true;
|
||||||
|
|
||||||
Name = "Lady Sabrix";
|
Name = "Lady Sabrix";
|
||||||
Hue = 0x497;
|
Hue = 0x497;
|
||||||
|
|
||||||
|
|
@ -43,7 +45,7 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
public override void GenerateLoot()
|
public override void GenerateLoot()
|
||||||
{
|
{
|
||||||
AddLoot( LootPack.AosUltraRich, 3 );
|
AddLoot( LootPack.UltraRich, 2 );
|
||||||
}
|
}
|
||||||
|
|
||||||
public override WeaponAbility GetWeaponAbility()
|
public override WeaponAbility GetWeaponAbility()
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,8 @@ namespace Server.Mobiles
|
||||||
[Constructable]
|
[Constructable]
|
||||||
public Malefic()
|
public Malefic()
|
||||||
{
|
{
|
||||||
|
IsParagon = true;
|
||||||
|
|
||||||
Name = "Malefic";
|
Name = "Malefic";
|
||||||
Hue = 0x455;
|
Hue = 0x455;
|
||||||
|
|
||||||
|
|
@ -51,7 +53,7 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
public override void GenerateLoot()
|
public override void GenerateLoot()
|
||||||
{
|
{
|
||||||
AddLoot( LootPack.AosUltraRich, 4 );
|
AddLoot( LootPack.UltraRich, 3 );
|
||||||
}
|
}
|
||||||
|
|
||||||
public override WeaponAbility GetWeaponAbility()
|
public override WeaponAbility GetWeaponAbility()
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,8 @@ namespace Server.Mobiles
|
||||||
[Constructable]
|
[Constructable]
|
||||||
public Silk()
|
public Silk()
|
||||||
{
|
{
|
||||||
|
IsParagon = true;
|
||||||
|
|
||||||
Name = "Silk";
|
Name = "Silk";
|
||||||
Hue = 0x47E;
|
Hue = 0x47E;
|
||||||
|
|
||||||
|
|
@ -43,7 +45,7 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
public override void GenerateLoot()
|
public override void GenerateLoot()
|
||||||
{
|
{
|
||||||
AddLoot( LootPack.AosUltraRich, 3 );
|
AddLoot( LootPack.UltraRich, 2 );
|
||||||
}
|
}
|
||||||
|
|
||||||
public override WeaponAbility GetWeaponAbility()
|
public override WeaponAbility GetWeaponAbility()
|
||||||
|
|
@ -52,8 +54,6 @@ namespace Server.Mobiles
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool GivesMLMinorArtifact{ get{ return true; } }
|
public override bool GivesMLMinorArtifact{ get{ return true; } }
|
||||||
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
|
|
||||||
public override Poison HitPoison{ get{ return Poison.Lethal; } }
|
|
||||||
|
|
||||||
public Silk( Serial serial )
|
public Silk( Serial serial )
|
||||||
: base( serial )
|
: base( serial )
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,10 @@ namespace Server.Mobiles
|
||||||
[Constructable]
|
[Constructable]
|
||||||
public Spite()
|
public Spite()
|
||||||
{
|
{
|
||||||
|
IsParagon = true;
|
||||||
|
|
||||||
|
Hue = DefaultHue;
|
||||||
|
|
||||||
SetStr( 53, 214 );
|
SetStr( 53, 214 );
|
||||||
SetDex( 243, 367 );
|
SetDex( 243, 367 );
|
||||||
SetInt( 369, 586 );
|
SetInt( 369, 586 );
|
||||||
|
|
@ -44,7 +48,7 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
public override void GenerateLoot()
|
public override void GenerateLoot()
|
||||||
{
|
{
|
||||||
AddLoot( LootPack.AosUltraRich, 3 );
|
AddLoot( LootPack.UltraRich, 2 );
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool GivesMLMinorArtifact{ get{ return true; } }
|
public override bool GivesMLMinorArtifact{ get{ return true; } }
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,8 @@ namespace Server.Mobiles
|
||||||
[Constructable]
|
[Constructable]
|
||||||
public Swoop()
|
public Swoop()
|
||||||
{
|
{
|
||||||
|
IsParagon = true;
|
||||||
|
|
||||||
Name = "Swoop";
|
Name = "Swoop";
|
||||||
Hue = 0xE0;
|
Hue = 0xE0;
|
||||||
|
|
||||||
|
|
@ -39,15 +41,13 @@ namespace Server.Mobiles
|
||||||
Fame = 18000;
|
Fame = 18000;
|
||||||
Karma = 0;
|
Karma = 0;
|
||||||
|
|
||||||
Tamable = false;
|
|
||||||
|
|
||||||
PackReg( 4 );
|
PackReg( 4 );
|
||||||
PackArcaneScroll( 0, 1 );
|
PackArcaneScroll( 0, 1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void GenerateLoot()
|
public override void GenerateLoot()
|
||||||
{
|
{
|
||||||
AddLoot( LootPack.UltraRich, 3 );
|
AddLoot( LootPack.UltraRich, 2 );
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Put this attack shared with Hiryu and Lesser Hiryu in one place
|
// TODO: Put this attack shared with Hiryu and Lesser Hiryu in one place
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,8 @@ namespace Server.Mobiles
|
||||||
[Constructable]
|
[Constructable]
|
||||||
public Virulent()
|
public Virulent()
|
||||||
{
|
{
|
||||||
|
IsParagon = true;
|
||||||
|
|
||||||
Name = "Virulent";
|
Name = "Virulent";
|
||||||
Hue = 0x8FD;
|
Hue = 0x8FD;
|
||||||
|
|
||||||
|
|
@ -45,7 +47,7 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
public override void GenerateLoot()
|
public override void GenerateLoot()
|
||||||
{
|
{
|
||||||
AddLoot( LootPack.AosUltraRich, 4 );
|
AddLoot( LootPack.UltraRich, 3 );
|
||||||
}
|
}
|
||||||
|
|
||||||
public override WeaponAbility GetWeaponAbility()
|
public override WeaponAbility GetWeaponAbility()
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
public static Type[] Artifacts = new Type[]
|
public static Type[] Artifacts = new Type[]
|
||||||
{
|
{
|
||||||
typeof( GoldBricks ), typeof( PhillipsWoodenSteed ),
|
typeof( GoldBricks ), typeof( PhillipsWoodenSteed ),
|
||||||
typeof( AlchemistsBauble ), typeof( ArcticDeathDealer ),
|
typeof( AlchemistsBauble ), typeof( ArcticDeathDealer ),
|
||||||
typeof( BlazeOfDeath ), typeof( BowOfTheJukaKing ),
|
typeof( BlazeOfDeath ), typeof( BowOfTheJukaKing ),
|
||||||
typeof( BurglarsBandana ), typeof( CavortingClub ),
|
typeof( BurglarsBandana ), typeof( CavortingClub ),
|
||||||
|
|
@ -23,13 +23,13 @@ namespace Server.Mobiles
|
||||||
typeof( NightsKiss ), typeof( NoxRangersHeavyCrossbow ),
|
typeof( NightsKiss ), typeof( NoxRangersHeavyCrossbow ),
|
||||||
typeof( OrcishVisage ), typeof( PolarBearMask ),
|
typeof( OrcishVisage ), typeof( PolarBearMask ),
|
||||||
typeof( ShieldOfInvulnerability ), typeof( StaffOfPower ),
|
typeof( ShieldOfInvulnerability ), typeof( StaffOfPower ),
|
||||||
typeof( VioletCourage ), typeof( HeartOfTheLion ),
|
typeof( VioletCourage ), typeof( HeartOfTheLion ),
|
||||||
typeof( WrathOfTheDryad ), typeof( PixieSwatter ),
|
typeof( WrathOfTheDryad ), typeof( PixieSwatter ),
|
||||||
typeof( GlovesOfThePugilist )
|
typeof( GlovesOfThePugilist )
|
||||||
};
|
};
|
||||||
|
|
||||||
public static int Hue = 0x501; // Paragon hue
|
public static int Hue = 0x501; // Paragon hue
|
||||||
|
|
||||||
// Buffs
|
// Buffs
|
||||||
public static double HitsBuff = 5.0;
|
public static double HitsBuff = 5.0;
|
||||||
public static double StrBuff = 1.05;
|
public static double StrBuff = 1.05;
|
||||||
|
|
@ -50,7 +50,7 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
if ( bc.HitsMaxSeed >= 0 )
|
if ( bc.HitsMaxSeed >= 0 )
|
||||||
bc.HitsMaxSeed = (int)( bc.HitsMaxSeed * HitsBuff );
|
bc.HitsMaxSeed = (int)( bc.HitsMaxSeed * HitsBuff );
|
||||||
|
|
||||||
bc.RawStr = (int)( bc.RawStr * StrBuff );
|
bc.RawStr = (int)( bc.RawStr * StrBuff );
|
||||||
bc.RawInt = (int)( bc.RawInt * IntBuff );
|
bc.RawInt = (int)( bc.RawInt * IntBuff );
|
||||||
bc.RawDex = (int)( bc.RawDex * DexBuff );
|
bc.RawDex = (int)( bc.RawDex * DexBuff );
|
||||||
|
|
@ -69,6 +69,7 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
bc.PassiveSpeed /= SpeedBuff;
|
bc.PassiveSpeed /= SpeedBuff;
|
||||||
bc.ActiveSpeed /= SpeedBuff;
|
bc.ActiveSpeed /= SpeedBuff;
|
||||||
|
bc.CurrentSpeed = bc.PassiveSpeed;
|
||||||
|
|
||||||
bc.DamageMin += DamageBuff;
|
bc.DamageMin += DamageBuff;
|
||||||
bc.DamageMax += DamageBuff;
|
bc.DamageMax += DamageBuff;
|
||||||
|
|
@ -99,7 +100,7 @@ namespace Server.Mobiles
|
||||||
|
|
||||||
if ( bc.HitsMaxSeed >= 0 )
|
if ( bc.HitsMaxSeed >= 0 )
|
||||||
bc.HitsMaxSeed = (int)( bc.HitsMaxSeed / HitsBuff );
|
bc.HitsMaxSeed = (int)( bc.HitsMaxSeed / HitsBuff );
|
||||||
|
|
||||||
bc.RawStr = (int)( bc.RawStr / StrBuff );
|
bc.RawStr = (int)( bc.RawStr / StrBuff );
|
||||||
bc.RawInt = (int)( bc.RawInt / IntBuff );
|
bc.RawInt = (int)( bc.RawInt / IntBuff );
|
||||||
bc.RawDex = (int)( bc.RawDex / DexBuff );
|
bc.RawDex = (int)( bc.RawDex / DexBuff );
|
||||||
|
|
@ -115,9 +116,10 @@ namespace Server.Mobiles
|
||||||
if ( skill.Base > 0.0 )
|
if ( skill.Base > 0.0 )
|
||||||
skill.Base /= SkillsBuff;
|
skill.Base /= SkillsBuff;
|
||||||
}
|
}
|
||||||
|
|
||||||
bc.PassiveSpeed *= SpeedBuff;
|
bc.PassiveSpeed *= SpeedBuff;
|
||||||
bc.ActiveSpeed *= SpeedBuff;
|
bc.ActiveSpeed *= SpeedBuff;
|
||||||
|
bc.CurrentSpeed = bc.PassiveSpeed;
|
||||||
|
|
||||||
bc.DamageMin -= DamageBuff;
|
bc.DamageMin -= DamageBuff;
|
||||||
bc.DamageMax -= DamageBuff;
|
bc.DamageMax -= DamageBuff;
|
||||||
|
|
@ -141,7 +143,7 @@ namespace Server.Mobiles
|
||||||
if ( Array.IndexOf( Maps, m ) == -1 )
|
if ( Array.IndexOf( Maps, m ) == -1 )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if ( bc is BaseChampion || bc is Harrower || bc is BaseVendor || bc is BaseEscortable || bc is Clone || bc.GivesMLMinorArtifact )
|
if ( bc is BaseChampion || bc is Harrower || bc is BaseVendor || bc is BaseEscortable || bc is Clone || bc.IsParagon )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
int fame = bc.Fame;
|
int fame = bc.Fame;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue