- Terrible Hatchlings quest fixed to only reward SE weapons and armor.

- Slayer and opposition systems now account for inheritance.
- Added Satyrs to the fey opposition group.
- Added fey slayer vulnerability to cu sidhes.
- Added reptilian and dragon slayer vulnerabilities to reptalons.
- Various mage AI additions for necromancers. (Spirit speak for healing, pain spike and strangle for damage, automatic mage/necro bias by skill value.)
- Fixed a targeting issue not accounting for FightMode.Evil versus low karma targeting.
- Added melee damage bonus for Talisman killer properties.
- Added general ML loot for ML areas.
- Added ML minor artifact drops for named ML mobs.
- Added named ML mobs for Bedlam.
This commit is contained in:
eos 2012-02-26 05:11:25 +00:00
parent a0bc5e2349
commit 43e5982fbb
22 changed files with 1207 additions and 231 deletions

View file

@ -501,6 +501,21 @@ namespace Server
{
new LootPackEntry( false, PotionItems, 100.00, 1 )
} );
/*
// TODO: Uncomment once added
#region Mondain's Legacy
public static readonly LootPackItem[] ParrotItem = new LootPackItem[]
{
new LootPackItem( typeof( ParrotItem ), 1 )
};
public static readonly LootPack Parrot = new LootPack( new LootPackEntry[]
{
new LootPackEntry( false, ParrotItem, 10.00, 1 )
} );
#endregion
*/
}
public class LootPackEntry
@ -561,6 +576,37 @@ namespace Server
return ( m.Map == Map.Tokuno );
}
#region Mondain's Legacy
private static bool IsMondain( Mobile m )
{
if ( m.Region.IsPartOf( "Twisted Weald" ) )
return true;
if ( m.Region.IsPartOf( "Sanctuary" ) )
return true;
if ( m.Region.IsPartOf( "Prism of Light" ) )
return true;
if ( m.Region.IsPartOf( "Citadel" ) )
return true;
if ( m.Region.IsPartOf( "Bedlam" ) )
return true;
if ( m.Region.IsPartOf( "Blighted Grove" ) )
return true;
if ( m.Region.IsPartOf( "Painted Caves" ) )
return true;
if ( m.Region.IsPartOf( "Palace of Paroxysmus" ) )
return true;
return false;
}
#endregion
public Item Construct( Mobile from, int luckChance, bool spawning )
{
if ( m_AtSpawnTime != spawning )
@ -578,7 +624,7 @@ namespace Server
LootPackItem item = m_Items[i];
if ( rnd < item.Chance )
return Mutate( from, luckChance, item.Construct( IsInTokuno( from ) ) );
return Mutate( from, luckChance, item.Construct( IsInTokuno( from ), IsMondain( from ) ) );
rnd -= item.Chance;
}
@ -850,18 +896,18 @@ namespace Server
return Loot.RandomScroll( minCircle * 8, (maxCircle * 8) + 7, SpellbookType.Regular );
}
public Item Construct( bool inTokuno )
public Item Construct( bool inTokuno, bool isMondain )
{
try
{
Item item;
if ( m_Type == typeof( BaseRanged ) )
item = Loot.RandomRangedWeapon( inTokuno );
item = Loot.RandomRangedWeapon( inTokuno, isMondain );
else if ( m_Type == typeof( BaseWeapon ) )
item = Loot.RandomWeapon( inTokuno );
item = Loot.RandomWeapon( inTokuno, isMondain );
else if ( m_Type == typeof( BaseArmor ) )
item = Loot.RandomArmorOrHat( inTokuno );
item = Loot.RandomArmorOrHat( inTokuno, isMondain );
else if ( m_Type == typeof( BaseShield ) )
item = Loot.RandomShield();
else if ( m_Type == typeof( BaseJewel ) )