- 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

@ -71,17 +71,23 @@ namespace Server.Engines.Quests.Zento
if ( Utility.RandomBool() )
{
BaseWeapon weapon = Loot.RandomWeapon( true );
BaseRunicTool.ApplyAttributesTo( weapon, 3, 10, 30 );
BaseWeapon weapon = Loot.Construct( Loot.SEWeaponTypes ) as BaseWeapon;
cont.DropItem( weapon );
if ( weapon != null )
{
BaseRunicTool.ApplyAttributesTo( weapon, 3, 10, 30 );
cont.DropItem( weapon );
}
}
else
{
BaseArmor armor = Loot.RandomArmor( true );
BaseRunicTool.ApplyAttributesTo( armor, 1, 10, 20 );
BaseArmor armor = Loot.Construct( Loot.SEArmorTypes ) as BaseArmor;
cont.DropItem( armor );
if ( armor != null )
{
BaseRunicTool.ApplyAttributesTo( armor, 1, 10, 20 );
cont.DropItem( armor );
}
}
if ( player.PlaceInBackpack( cont ) )

View file

@ -7,7 +7,6 @@ namespace Server.Items
{
public abstract class BasePigmentsOfTokuno : Item, IUsesRemaining
{
private static Type[] m_Glasses = new Type[]
{
typeof( MaritimeGlasses ),
@ -61,23 +60,23 @@ namespace Server.Items
};
public override int LabelNumber { get { return 1070933; } } // Pigments of Tokuno
private int m_UsesRemaining;
private TextDefinition m_Label;
protected TextDefinition Label
{
protected TextDefinition Label
{
get { return m_Label; }
set { m_Label = value; InvalidateProperties(); }
}
#region Old Item Serialization Vars
/* DO NOT USE! Only used in serialization of pigments that originally derived from Item */
private bool m_InheritsItem;
protected bool InheritsItem
{
get{ return m_InheritsItem; }
{
get{ return m_InheritsItem; }
}
#endregion
@ -86,13 +85,13 @@ namespace Server.Items
Weight = 1.0;
m_UsesRemaining = 1;
}
public BasePigmentsOfTokuno( int uses ) : base( 0xEFF )
{
Weight = 1.0;
m_UsesRemaining = uses;
}
public BasePigmentsOfTokuno( Serial serial ) : base( serial )
{
}
@ -117,7 +116,7 @@ namespace Server.Items
else
from.SendLocalizedMessage( 502436 ); // That is not accessible.
}
private void InternalCallback( Mobile from, object targeted, object state )
{
BasePigmentsOfTokuno pigment = (BasePigmentsOfTokuno)state;
@ -154,7 +153,7 @@ namespace Server.Items
from.PlaySound(0x23E); // As per OSI TC1
}
}
public static bool IsValidItem( Item i )
{
if( i is BasePigmentsOfTokuno )
@ -177,12 +176,12 @@ namespace Server.Items
if ( i is ITokunoDyable )
return true;
return(
return(
IsInTypeList( t, TreasuresOfTokuno.LesserArtifactsTotal )
|| IsInTypeList( t, TreasuresOfTokuno.GreaterArtifacts )
|| IsInTypeList( t, TreasuresOfTokuno.GreaterArtifacts )
|| IsInTypeList( t, DemonKnight.ArtifactRarity10 )
|| IsInTypeList( t, DemonKnight.ArtifactRarity11 )
|| IsInTypeList( t, BaseCreature.MinorArtifactsMl )
|| IsInTypeList( t, MondainsLegacy.Artifacts )
|| IsInTypeList( t, StealableArtifactsSpawner.TypesOfEntires )
|| IsInTypeList( t, Paragon.Artifacts )
|| IsInTypeList( t, Leviathan.Artifacts )
@ -191,7 +190,7 @@ namespace Server.Items
|| IsInTypeList( t, m_DyableHeritageItems )
|| IsInTypeList( t, m_Glasses )
);
}
}
private static bool IsInTypeList( Type t, Type[] list )
{
@ -202,7 +201,7 @@ namespace Server.Items
return false;
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
@ -217,10 +216,10 @@ namespace Server.Items
base.Deserialize( reader );
int version = reader.ReadInt();
switch ( version )
{
case 1:
case 1:
{
m_UsesRemaining = reader.ReadEncodedInt();
break;
@ -228,23 +227,23 @@ namespace Server.Items
case 0: // Old pigments that inherited from item
{
m_InheritsItem = true;
if ( this is LesserPigmentsOfTokuno )
((LesserPigmentsOfTokuno)this).Type = (LesserPigmentType)reader.ReadEncodedInt();
else if ( this is PigmentsOfTokuno )
((PigmentsOfTokuno)this).Type = (PigmentType)reader.ReadEncodedInt();
else if ( this is MetalPigmentsOfTokuno )
reader.ReadEncodedInt();
m_UsesRemaining = reader.ReadEncodedInt();
break;
}
}
}
#region IUsesRemaining Members
[CommandProperty( AccessLevel.GameMaster )]
@ -259,7 +258,7 @@ namespace Server.Items
get { return true; }
set {}
}
#endregion
}
}