#W# Source and Scripts added. Added Scripts/Settings.cs to expose some basic tweak able settings.
This commit is contained in:
parent
b51c58f514
commit
3045c83799
3512 changed files with 627673 additions and 0 deletions
92
Scripts/Mobiles/Monsters/Reptile/Magic/AncientWyrm.cs
Normal file
92
Scripts/Mobiles/Monsters/Reptile/Magic/AncientWyrm.cs
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a dragon corpse" )]
|
||||
public class AncientWyrm : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public AncientWyrm () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "an ancient wyrm";
|
||||
Body = 46;
|
||||
BaseSoundID = 362;
|
||||
|
||||
SetStr( 1096, 1185 );
|
||||
SetDex( 86, 175 );
|
||||
SetInt( 686, 775 );
|
||||
|
||||
SetHits( 658, 711 );
|
||||
|
||||
SetDamage( 29, 35 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 75 );
|
||||
SetDamageType( ResistanceType.Fire, 25 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 65, 75 );
|
||||
SetResistance( ResistanceType.Fire, 80, 90 );
|
||||
SetResistance( ResistanceType.Cold, 70, 80 );
|
||||
SetResistance( ResistanceType.Poison, 60, 70 );
|
||||
SetResistance( ResistanceType.Energy, 60, 70 );
|
||||
|
||||
SetSkill( SkillName.EvalInt, 80.1, 100.0 );
|
||||
SetSkill( SkillName.Magery, 80.1, 100.0 );
|
||||
SetSkill( SkillName.Meditation, 52.5, 75.0 );
|
||||
SetSkill( SkillName.MagicResist, 100.5, 150.0 );
|
||||
SetSkill( SkillName.Tactics, 97.6, 100.0 );
|
||||
SetSkill( SkillName.Wrestling, 97.6, 100.0 );
|
||||
|
||||
Fame = 22500;
|
||||
Karma = -22500;
|
||||
|
||||
VirtualArmor = 70;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.FilthyRich, 3 );
|
||||
AddLoot( LootPack.Gems, 5 );
|
||||
}
|
||||
|
||||
public override int GetIdleSound()
|
||||
{
|
||||
return 0x2D3;
|
||||
}
|
||||
|
||||
public override int GetHurtSound()
|
||||
{
|
||||
return 0x2D1;
|
||||
}
|
||||
|
||||
public override bool ReacquireOnMovement{ get{ return true; } }
|
||||
public override bool HasBreath{ get{ return true; } } // fire breath enabled
|
||||
public override bool AutoDispel{ get{ return true; } }
|
||||
public override HideType HideType{ get{ return HideType.Barbed; } }
|
||||
public override int Hides{ get{ return 40; } }
|
||||
public override int Meat{ get{ return 19; } }
|
||||
public override int Scales{ get{ return 12; } }
|
||||
public override ScaleType ScaleType{ get{ return (ScaleType)Utility.Random( 4 ); } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Regular; } }
|
||||
public override Poison HitPoison{ get{ return Utility.RandomBool() ? Poison.Lesser : Poison.Regular; } }
|
||||
public override int TreasureMapLevel{ get{ return 5; } }
|
||||
public override bool CanFly { get { return true; } }
|
||||
|
||||
public AncientWyrm( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
80
Scripts/Mobiles/Monsters/Reptile/Magic/DeepSeaSerpent.cs
Normal file
80
Scripts/Mobiles/Monsters/Reptile/Magic/DeepSeaSerpent.cs
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a deep sea serpents corpse" )]
|
||||
public class DeepSeaSerpent : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public DeepSeaSerpent() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a deep sea serpent";
|
||||
Body = 150;
|
||||
BaseSoundID = 447;
|
||||
|
||||
Hue = Utility.Random( 0x8A0, 5 );
|
||||
|
||||
SetStr( 251, 425 );
|
||||
SetDex( 87, 135 );
|
||||
SetInt( 87, 155 );
|
||||
|
||||
SetHits( 151, 255 );
|
||||
|
||||
SetDamage( 6, 14 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 30, 40 );
|
||||
SetResistance( ResistanceType.Fire, 70, 80 );
|
||||
SetResistance( ResistanceType.Cold, 40, 50 );
|
||||
SetResistance( ResistanceType.Poison, 30, 40 );
|
||||
SetResistance( ResistanceType.Energy, 15, 20 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 60.1, 75.0 );
|
||||
SetSkill( SkillName.Tactics, 60.1, 70.0 );
|
||||
SetSkill( SkillName.Wrestling, 60.1, 70.0 );
|
||||
|
||||
Fame = 6000;
|
||||
Karma = -6000;
|
||||
|
||||
VirtualArmor = 60;
|
||||
CanSwim = true;
|
||||
CantWalk = true;
|
||||
|
||||
if ( Utility.RandomBool() )
|
||||
PackItem( new SulfurousAsh( 4 ) );
|
||||
else
|
||||
PackItem( new BlackPearl( 4 ) );
|
||||
|
||||
//PackItem( new SpecialFishingNet() );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Meager );
|
||||
}
|
||||
|
||||
public override bool HasBreath{ get{ return true; } }
|
||||
public override int Meat{ get{ return 1; } }
|
||||
public override int Scales{ get{ return 8; } }
|
||||
public override ScaleType ScaleType{ get{ return ScaleType.Blue; } }
|
||||
|
||||
public DeepSeaSerpent( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
84
Scripts/Mobiles/Monsters/Reptile/Magic/Dragon.cs
Normal file
84
Scripts/Mobiles/Monsters/Reptile/Magic/Dragon.cs
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a dragon corpse" )]
|
||||
public class Dragon : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Dragon () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a dragon";
|
||||
Body = Utility.RandomList( 12, 59 );
|
||||
BaseSoundID = 362;
|
||||
|
||||
SetStr( 796, 825 );
|
||||
SetDex( 86, 105 );
|
||||
SetInt( 436, 475 );
|
||||
|
||||
SetHits( 478, 495 );
|
||||
|
||||
SetDamage( 16, 22 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 55, 65 );
|
||||
SetResistance( ResistanceType.Fire, 60, 70 );
|
||||
SetResistance( ResistanceType.Cold, 30, 40 );
|
||||
SetResistance( ResistanceType.Poison, 25, 35 );
|
||||
SetResistance( ResistanceType.Energy, 35, 45 );
|
||||
|
||||
SetSkill( SkillName.EvalInt, 30.1, 40.0 );
|
||||
SetSkill( SkillName.Magery, 30.1, 40.0 );
|
||||
SetSkill( SkillName.MagicResist, 99.1, 100.0 );
|
||||
SetSkill( SkillName.Tactics, 97.6, 100.0 );
|
||||
SetSkill( SkillName.Wrestling, 90.1, 92.5 );
|
||||
|
||||
Fame = 15000;
|
||||
Karma = -15000;
|
||||
|
||||
VirtualArmor = 60;
|
||||
|
||||
Tamable = true;
|
||||
ControlSlots = 3;
|
||||
MinTameSkill = 93.9;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.FilthyRich, 2 );
|
||||
AddLoot( LootPack.Gems, 8 );
|
||||
}
|
||||
|
||||
public override bool ReacquireOnMovement{ get{ return !Controlled; } }
|
||||
public override bool HasBreath{ get{ return true; } } // fire breath enabled
|
||||
public override bool AutoDispel{ get{ return !Controlled; } }
|
||||
public override int TreasureMapLevel{ get{ return 4; } }
|
||||
public override int Meat{ get{ return 19; } }
|
||||
public override int Hides{ get{ return 20; } }
|
||||
public override HideType HideType{ get{ return HideType.Barbed; } }
|
||||
public override int Scales{ get{ return 7; } }
|
||||
public override ScaleType ScaleType{ get{ return ( Body == 12 ? ScaleType.Yellow : ScaleType.Red ); } }
|
||||
public override FoodType FavoriteFood{ get{ return FoodType.Meat; } }
|
||||
public override bool CanAngerOnTame { get { return true; } }
|
||||
public override bool CanFly { get { return true; } }
|
||||
|
||||
public Dragon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
182
Scripts/Mobiles/Monsters/Reptile/Magic/Leviathan.cs
Normal file
182
Scripts/Mobiles/Monsters/Reptile/Magic/Leviathan.cs
Normal file
|
|
@ -0,0 +1,182 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a leviathan corpse" )]
|
||||
public class Leviathan : BaseCreature
|
||||
{
|
||||
private Mobile m_Fisher;
|
||||
|
||||
public Mobile Fisher
|
||||
{
|
||||
get{ return m_Fisher; }
|
||||
set{ m_Fisher = value; }
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public Leviathan() : this( null )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public Leviathan( Mobile fisher ) : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
m_Fisher = fisher;
|
||||
|
||||
// May not be OSI accurate; mostly copied from krakens
|
||||
Name = "a leviathan";
|
||||
Body = 77;
|
||||
BaseSoundID = 353;
|
||||
|
||||
Hue = 0x481;
|
||||
|
||||
SetStr( 1000 );
|
||||
SetDex( 501, 520 );
|
||||
SetInt( 501, 515 );
|
||||
|
||||
SetHits( 1500 );
|
||||
|
||||
SetDamage( 25, 33 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 70 );
|
||||
SetDamageType( ResistanceType.Cold, 30 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 55, 65 );
|
||||
SetResistance( ResistanceType.Fire, 45, 55 );
|
||||
SetResistance( ResistanceType.Cold, 45, 55 );
|
||||
SetResistance( ResistanceType.Poison, 35, 45 );
|
||||
SetResistance( ResistanceType.Energy, 25, 35 );
|
||||
|
||||
SetSkill( SkillName.EvalInt, 97.6, 107.5 );
|
||||
SetSkill( SkillName.Magery, 97.6, 107.5 );
|
||||
SetSkill( SkillName.MagicResist, 97.6, 107.5 );
|
||||
SetSkill( SkillName.Meditation, 97.6, 107.5 );
|
||||
SetSkill( SkillName.Tactics, 97.6, 107.5 );
|
||||
SetSkill( SkillName.Wrestling, 97.6, 107.5 );
|
||||
|
||||
Fame = 24000;
|
||||
Karma = -24000;
|
||||
|
||||
VirtualArmor = 50;
|
||||
|
||||
CanSwim = true;
|
||||
CantWalk = true;
|
||||
|
||||
PackItem( new MessageInABottle() );
|
||||
|
||||
Rope rope = new Rope();
|
||||
rope.ItemID = 0x14F8;
|
||||
PackItem( rope );
|
||||
|
||||
rope = new Rope();
|
||||
rope.ItemID = 0x14FA;
|
||||
PackItem( rope );
|
||||
}
|
||||
|
||||
public override bool HasBreath{ get{ return true; } }
|
||||
public override int BreathPhysicalDamage{ get{ return 70; } } // TODO: Verify damage type
|
||||
public override int BreathColdDamage{ get{ return 30; } }
|
||||
public override int BreathFireDamage{ get{ return 0; } }
|
||||
public override int BreathEffectHue{ get{ return 0x1ED; } }
|
||||
public override double BreathDamageScalar{ get{ return 0.05; } }
|
||||
public override double BreathMinDelay{ get{ return 5.0; } }
|
||||
public override double BreathMaxDelay{ get{ return 7.5; } }
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.FilthyRich, 5 );
|
||||
}
|
||||
|
||||
public override double TreasureMapChance{ get{ return 0.25; } }
|
||||
public override int TreasureMapLevel{ get{ return 5; } }
|
||||
|
||||
public Leviathan( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
|
||||
public static Type[] Artifacts { get { return m_Artifacts; } }
|
||||
|
||||
private static Type[] m_Artifacts = new Type[]
|
||||
{
|
||||
// Decorations
|
||||
typeof( CandelabraOfSouls ),
|
||||
typeof( GhostShipAnchor ),
|
||||
typeof( GoldBricks ),
|
||||
typeof( PhillipsWoodenSteed ),
|
||||
typeof( SeahorseStatuette ),
|
||||
typeof( ShipModelOfTheHMSCape ),
|
||||
typeof( AdmiralsHeartyRum ),
|
||||
|
||||
// Equipment
|
||||
typeof( AlchemistsBauble ),
|
||||
typeof( ArcticDeathDealer ),
|
||||
typeof( BlazeOfDeath ),
|
||||
typeof( BurglarsBandana ),
|
||||
typeof( CaptainQuacklebushsCutlass ),
|
||||
typeof( CavortingClub ),
|
||||
typeof( DreadPirateHat ),
|
||||
typeof( EnchantedTitanLegBone ),
|
||||
typeof( GwennosHarp ),
|
||||
typeof( IolosLute ),
|
||||
typeof( LunaLance ),
|
||||
typeof( NightsKiss ),
|
||||
typeof( NoxRangersHeavyCrossbow ),
|
||||
typeof( PolarBearMask ),
|
||||
typeof( VioletCourage )
|
||||
};
|
||||
|
||||
public static void GiveArtifactTo( Mobile m )
|
||||
{
|
||||
Item item = Loot.Construct( m_Artifacts );
|
||||
|
||||
if ( item == null )
|
||||
return;
|
||||
|
||||
// TODO: Confirm messages
|
||||
if ( m.AddToBackpack( item ) )
|
||||
m.SendMessage( "As a reward for slaying the mighty leviathan, an artifact has been placed in your backpack." );
|
||||
else
|
||||
m.SendMessage( "As your backpack is full, your reward for destroying the legendary leviathan has been placed at your feet." );
|
||||
}
|
||||
|
||||
public override void OnKilledBy( Mobile mob )
|
||||
{
|
||||
base.OnKilledBy( mob );
|
||||
|
||||
if ( Paragon.CheckArtifactChance( mob, this ) )
|
||||
{
|
||||
GiveArtifactTo( mob );
|
||||
|
||||
if ( mob == m_Fisher )
|
||||
m_Fisher = null;
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnDeath( Container c )
|
||||
{
|
||||
base.OnDeath( c );
|
||||
|
||||
if ( m_Fisher != null && 25 > Utility.Random( 100 ) )
|
||||
GiveArtifactTo( m_Fisher );
|
||||
|
||||
m_Fisher = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
85
Scripts/Mobiles/Monsters/Reptile/Magic/OphidianArchmage.cs
Normal file
85
Scripts/Mobiles/Monsters/Reptile/Magic/OphidianArchmage.cs
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an ophidian corpse" )]
|
||||
[TypeAlias( "Server.Mobiles.OphidianJusticar", "Server.Mobiles.OphidianZealot" )]
|
||||
public class OphidianArchmage : BaseCreature
|
||||
{
|
||||
private static string[] m_Names = new string[]
|
||||
{
|
||||
"an ophidian justicar",
|
||||
"an ophidian zealot"
|
||||
};
|
||||
|
||||
[Constructable]
|
||||
public OphidianArchmage() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = m_Names[Utility.Random( m_Names.Length )];
|
||||
Body = 85;
|
||||
BaseSoundID = 639;
|
||||
|
||||
SetStr( 281, 305 );
|
||||
SetDex( 191, 215 );
|
||||
SetInt( 226, 250 );
|
||||
|
||||
SetHits( 169, 183 );
|
||||
SetStam( 36, 45 );
|
||||
|
||||
SetDamage( 5, 10 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 40, 45 );
|
||||
SetResistance( ResistanceType.Fire, 20, 30 );
|
||||
SetResistance( ResistanceType.Cold, 25, 35 );
|
||||
SetResistance( ResistanceType.Poison, 35, 40 );
|
||||
SetResistance( ResistanceType.Energy, 25, 35 );
|
||||
|
||||
SetSkill( SkillName.EvalInt, 95.1, 100.0 );
|
||||
SetSkill( SkillName.Magery, 95.1, 100.0 );
|
||||
SetSkill( SkillName.MagicResist, 75.0, 97.5 );
|
||||
SetSkill( SkillName.Tactics, 65.0, 87.5 );
|
||||
SetSkill( SkillName.Wrestling, 20.2, 60.0 );
|
||||
|
||||
Fame = 11500;
|
||||
Karma = -11500;
|
||||
|
||||
VirtualArmor = 44;
|
||||
|
||||
PackReg( 5, 15 );
|
||||
PackNecroReg( 5, 15 );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich );
|
||||
AddLoot( LootPack.MedScrolls, 2 );
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 1; } }
|
||||
|
||||
public override OppositionGroup OppositionGroup
|
||||
{
|
||||
get{ return OppositionGroup.TerathansAndOphidians; }
|
||||
}
|
||||
|
||||
public OphidianArchmage( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
86
Scripts/Mobiles/Monsters/Reptile/Magic/OphidianMage.cs
Normal file
86
Scripts/Mobiles/Monsters/Reptile/Magic/OphidianMage.cs
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an ophidian corpse" )]
|
||||
[TypeAlias( "Server.Mobiles.OphidianShaman" )]
|
||||
public class OphidianMage : BaseCreature
|
||||
{
|
||||
private static string[] m_Names = new string[]
|
||||
{
|
||||
"an ophidian apprentice mage",
|
||||
"an ophidian shaman"
|
||||
};
|
||||
|
||||
[Constructable]
|
||||
public OphidianMage() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = m_Names[Utility.Random( m_Names.Length )];
|
||||
Body = 85;
|
||||
BaseSoundID = 639;
|
||||
|
||||
SetStr( 181, 205 );
|
||||
SetDex( 191, 215 );
|
||||
SetInt( 96, 120 );
|
||||
|
||||
SetHits( 109, 123 );
|
||||
|
||||
SetDamage( 5, 10 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 25, 35 );
|
||||
SetResistance( ResistanceType.Fire, 30, 40 );
|
||||
SetResistance( ResistanceType.Cold, 35, 45 );
|
||||
SetResistance( ResistanceType.Poison, 40, 50 );
|
||||
SetResistance( ResistanceType.Energy, 35, 45 );
|
||||
|
||||
SetSkill( SkillName.EvalInt, 85.1, 100.0 );
|
||||
SetSkill( SkillName.Magery, 85.1, 100.0 );
|
||||
SetSkill( SkillName.MagicResist, 75.0, 97.5 );
|
||||
SetSkill( SkillName.Tactics, 65.0, 87.5 );
|
||||
SetSkill( SkillName.Wrestling, 20.2, 60.0 );
|
||||
|
||||
Fame = 4000;
|
||||
Karma = -4000;
|
||||
|
||||
VirtualArmor = 30;
|
||||
|
||||
PackReg( 10 );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.LowScrolls );
|
||||
AddLoot( LootPack.MedScrolls );
|
||||
AddLoot( LootPack.Potions );
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 1; } }
|
||||
public override int TreasureMapLevel{ get{ return 2; } }
|
||||
|
||||
public override OppositionGroup OppositionGroup
|
||||
{
|
||||
get{ return OppositionGroup.TerathansAndOphidians; }
|
||||
}
|
||||
|
||||
public OphidianMage( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
77
Scripts/Mobiles/Monsters/Reptile/Magic/OphidianMatriarch.cs
Normal file
77
Scripts/Mobiles/Monsters/Reptile/Magic/OphidianMatriarch.cs
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an ophidian corpse" )]
|
||||
public class OphidianMatriarch : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public OphidianMatriarch() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "an ophidian matriarch";
|
||||
Body = 87;
|
||||
BaseSoundID = 644;
|
||||
|
||||
SetStr( 416, 505 );
|
||||
SetDex( 96, 115 );
|
||||
SetInt( 366, 455 );
|
||||
|
||||
SetHits( 250, 303 );
|
||||
|
||||
SetDamage( 11, 13 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 45, 55 );
|
||||
SetResistance( ResistanceType.Fire, 30, 40 );
|
||||
SetResistance( ResistanceType.Cold, 35, 45 );
|
||||
SetResistance( ResistanceType.Poison, 40, 50 );
|
||||
SetResistance( ResistanceType.Energy, 35, 45 );
|
||||
|
||||
SetSkill( SkillName.EvalInt, 90.1, 100.0 );
|
||||
SetSkill( SkillName.Magery, 90.1, 100.0 );
|
||||
SetSkill( SkillName.Meditation, 5.4, 25.0 );
|
||||
SetSkill( SkillName.MagicResist, 90.1, 100.0 );
|
||||
SetSkill( SkillName.Tactics, 50.1, 70.0 );
|
||||
SetSkill( SkillName.Wrestling, 60.1, 80.0 );
|
||||
|
||||
Fame = 16000;
|
||||
Karma = -16000;
|
||||
|
||||
VirtualArmor = 50;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich );
|
||||
AddLoot( LootPack.Average, 2 );
|
||||
AddLoot( LootPack.MedScrolls, 2 );
|
||||
}
|
||||
|
||||
public override Poison PoisonImmune{ get{ return Poison.Greater; } }
|
||||
public override int TreasureMapLevel{ get{ return 4; } }
|
||||
|
||||
public override OppositionGroup OppositionGroup
|
||||
{
|
||||
get{ return OppositionGroup.TerathansAndOphidians; }
|
||||
}
|
||||
|
||||
public OphidianMatriarch( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
86
Scripts/Mobiles/Monsters/Reptile/Magic/SeaSerpent.cs
Normal file
86
Scripts/Mobiles/Monsters/Reptile/Magic/SeaSerpent.cs
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a sea serpents corpse" )]
|
||||
[TypeAlias( "Server.Mobiles.Seaserpant" )]
|
||||
public class SeaSerpent : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public SeaSerpent() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a sea serpent";
|
||||
Body = 150;
|
||||
BaseSoundID = 447;
|
||||
|
||||
Hue = Utility.Random( 0x530, 9 );
|
||||
|
||||
SetStr( 168, 225 );
|
||||
SetDex( 58, 85 );
|
||||
SetInt( 53, 95 );
|
||||
|
||||
SetHits( 110, 127 );
|
||||
|
||||
SetDamage( 7, 13 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 25, 35 );
|
||||
SetResistance( ResistanceType.Fire, 50, 60 );
|
||||
SetResistance( ResistanceType.Cold, 30, 40 );
|
||||
SetResistance( ResistanceType.Poison, 30, 40 );
|
||||
SetResistance( ResistanceType.Energy, 15, 20 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 60.1, 75.0 );
|
||||
SetSkill( SkillName.Tactics, 60.1, 70.0 );
|
||||
SetSkill( SkillName.Wrestling, 60.1, 70.0 );
|
||||
|
||||
Fame = 6000;
|
||||
Karma = -6000;
|
||||
|
||||
VirtualArmor = 30;
|
||||
CanSwim = true;
|
||||
CantWalk = true;
|
||||
|
||||
if ( Utility.RandomBool() )
|
||||
PackItem( new SulfurousAsh( 4 ) );
|
||||
else
|
||||
PackItem( new BlackPearl( 4 ) );
|
||||
|
||||
PackItem( new RawFishSteak() );
|
||||
|
||||
//PackItem( new SpecialFishingNet() );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Meager );
|
||||
}
|
||||
|
||||
public override bool HasBreath{ get{ return true; } }
|
||||
public override int TreasureMapLevel{ get{ return 2; } }
|
||||
|
||||
public override int Hides{ get{ return 10; } }
|
||||
public override HideType HideType{ get{ return HideType.Horned; } }
|
||||
public override int Scales{ get{ return 8; } }
|
||||
public override ScaleType ScaleType{ get{ return ScaleType.Blue; } }
|
||||
|
||||
public SeaSerpent( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
126
Scripts/Mobiles/Monsters/Reptile/Magic/SerpentineDragon.cs
Normal file
126
Scripts/Mobiles/Monsters/Reptile/Magic/SerpentineDragon.cs
Normal file
|
|
@ -0,0 +1,126 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a dragon corpse" )]
|
||||
public class SerpentineDragon : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public SerpentineDragon() : base( AIType.AI_Mage, FightMode.Evil, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a serpentine dragon";
|
||||
Body = 103;
|
||||
BaseSoundID = 362;
|
||||
|
||||
SetStr( 111, 140 );
|
||||
SetDex( 201, 220 );
|
||||
SetInt( 1001, 1040 );
|
||||
|
||||
SetHits( 480 );
|
||||
|
||||
SetDamage( 5, 12 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 75 );
|
||||
SetDamageType( ResistanceType.Poison, 25 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 35, 40 );
|
||||
SetResistance( ResistanceType.Fire, 25, 35 );
|
||||
SetResistance( ResistanceType.Cold, 25, 35 );
|
||||
SetResistance( ResistanceType.Poison, 25, 35 );
|
||||
SetResistance( ResistanceType.Energy, 25, 35 );
|
||||
|
||||
SetSkill( SkillName.EvalInt, 100.1, 110.0 );
|
||||
SetSkill( SkillName.Magery, 110.1, 120.0 );
|
||||
SetSkill( SkillName.Meditation, 100.0 );
|
||||
SetSkill( SkillName.MagicResist, 100.0 );
|
||||
SetSkill( SkillName.Tactics, 50.1, 60.0 );
|
||||
SetSkill( SkillName.Wrestling, 30.1, 100.0 );
|
||||
|
||||
Fame = 15000;
|
||||
Karma = 15000;
|
||||
|
||||
VirtualArmor = 36;
|
||||
|
||||
if ( Core.ML && Utility.RandomDouble() < .33 )
|
||||
PackItem( Engines.Plants.Seed.RandomPeculiarSeed(2) );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.FilthyRich, 2 );
|
||||
AddLoot( LootPack.Gems, 2 );
|
||||
}
|
||||
|
||||
public override int GetIdleSound()
|
||||
{
|
||||
return 0x2C4;
|
||||
}
|
||||
|
||||
public override int GetAttackSound()
|
||||
{
|
||||
return 0x2C0;
|
||||
}
|
||||
|
||||
public override int GetDeathSound()
|
||||
{
|
||||
return 0x2C1;
|
||||
}
|
||||
|
||||
public override int GetAngerSound()
|
||||
{
|
||||
return 0x2C4;
|
||||
}
|
||||
|
||||
public override int GetHurtSound()
|
||||
{
|
||||
return 0x2C3;
|
||||
}
|
||||
|
||||
public override bool ReacquireOnMovement{ get{ return true; } }
|
||||
public override bool HasBreath{ get{ return true; } } // fire breath enabled
|
||||
public override double BonusPetDamageScalar{ get{ return (Core.SE) ? 3.0 : 1.0; } }
|
||||
|
||||
public override bool AutoDispel{ get{ return true; } }
|
||||
public override HideType HideType{ get{ return HideType.Barbed; } }
|
||||
public override int Hides{ get{ return 20; } }
|
||||
public override int Meat{ get{ return 19; } }
|
||||
public override int Scales{ get{ return 6; } }
|
||||
public override ScaleType ScaleType{ get{ return ( Utility.RandomBool() ? ScaleType.Black : ScaleType.White ); } }
|
||||
public override int TreasureMapLevel{ get{ return 4; } }
|
||||
|
||||
public SerpentineDragon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void OnGotMeleeAttack( Mobile attacker )
|
||||
{
|
||||
base.OnGotMeleeAttack( attacker );
|
||||
|
||||
if ( !Core.SE && 0.2 > Utility.RandomDouble() && attacker is BaseCreature )
|
||||
{
|
||||
BaseCreature c = (BaseCreature)attacker;
|
||||
|
||||
if ( c.Controlled && c.ControlMaster != null )
|
||||
{
|
||||
c.ControlTarget = c.ControlMaster;
|
||||
c.ControlOrder = OrderType.Attack;
|
||||
c.Combatant = c.ControlMaster;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
93
Scripts/Mobiles/Monsters/Reptile/Magic/ShadowWyrm.cs
Normal file
93
Scripts/Mobiles/Monsters/Reptile/Magic/ShadowWyrm.cs
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a shadow wyrm corpse" )]
|
||||
public class ShadowWyrm : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public ShadowWyrm() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a shadow wyrm";
|
||||
Body = 106;
|
||||
BaseSoundID = 362;
|
||||
|
||||
SetStr( 898, 1030 );
|
||||
SetDex( 68, 200 );
|
||||
SetInt( 488, 620 );
|
||||
|
||||
SetHits( 558, 599 );
|
||||
|
||||
SetDamage( 29, 35 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 75 );
|
||||
SetDamageType( ResistanceType.Cold, 25 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 65, 75 );
|
||||
SetResistance( ResistanceType.Fire, 50, 60 );
|
||||
SetResistance( ResistanceType.Cold, 45, 55 );
|
||||
SetResistance( ResistanceType.Poison, 20, 30 );
|
||||
SetResistance( ResistanceType.Energy, 50, 60 );
|
||||
|
||||
SetSkill( SkillName.EvalInt, 80.1, 100.0 );
|
||||
SetSkill( SkillName.Magery, 80.1, 100.0 );
|
||||
SetSkill( SkillName.Meditation, 52.5, 75.0 );
|
||||
SetSkill( SkillName.MagicResist, 100.3, 130.0 );
|
||||
SetSkill( SkillName.Tactics, 97.6, 100.0 );
|
||||
SetSkill( SkillName.Wrestling, 97.6, 100.0 );
|
||||
|
||||
Fame = 22500;
|
||||
Karma = -22500;
|
||||
|
||||
VirtualArmor = 70;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.FilthyRich, 3 );
|
||||
AddLoot( LootPack.Gems, 5 );
|
||||
}
|
||||
|
||||
public override int GetIdleSound()
|
||||
{
|
||||
return 0x2D5;
|
||||
}
|
||||
|
||||
public override int GetHurtSound()
|
||||
{
|
||||
return 0x2D1;
|
||||
}
|
||||
|
||||
public override bool ReacquireOnMovement{ get{ return true; } }
|
||||
public override bool HasBreath{ get{ return true; } } // fire breath enabled
|
||||
public override bool AutoDispel{ get{ return true; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Deadly; } }
|
||||
public override Poison HitPoison{ get{ return Poison.Deadly; } }
|
||||
public override int TreasureMapLevel{ get{ return 5; } }
|
||||
|
||||
public override int Meat{ get{ return 19; } }
|
||||
public override int Hides{ get{ return 20; } }
|
||||
public override int Scales{ get{ return 10; } }
|
||||
public override ScaleType ScaleType{ get{ return ScaleType.Black; } }
|
||||
public override HideType HideType{ get{ return HideType.Barbed; } }
|
||||
public override bool CanFly { get { return true; } }
|
||||
|
||||
public ShadowWyrm( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
85
Scripts/Mobiles/Monsters/Reptile/Magic/SkeletalDragon.cs
Normal file
85
Scripts/Mobiles/Monsters/Reptile/Magic/SkeletalDragon.cs
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a skeletal dragon corpse" )]
|
||||
public class SkeletalDragon : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public SkeletalDragon () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a skeletal dragon";
|
||||
Body = 104;
|
||||
BaseSoundID = 0x488;
|
||||
|
||||
SetStr( 898, 1030 );
|
||||
SetDex( 68, 200 );
|
||||
SetInt( 488, 620 );
|
||||
|
||||
SetHits( 558, 599 );
|
||||
|
||||
SetDamage( 29, 35 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 75 );
|
||||
SetDamageType( ResistanceType.Fire, 25 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 75, 80 );
|
||||
SetResistance( ResistanceType.Fire, 40, 60 );
|
||||
SetResistance( ResistanceType.Cold, 40, 60 );
|
||||
SetResistance( ResistanceType.Poison, 70, 80 );
|
||||
SetResistance( ResistanceType.Energy, 40, 60 );
|
||||
|
||||
SetSkill( SkillName.EvalInt, 80.1, 100.0 );
|
||||
SetSkill( SkillName.Magery, 80.1, 100.0 );
|
||||
SetSkill( SkillName.MagicResist, 100.3, 130.0 );
|
||||
SetSkill( SkillName.Tactics, 97.6, 100.0 );
|
||||
SetSkill( SkillName.Wrestling, 97.6, 100.0 );
|
||||
SetSkill( SkillName.Necromancy, 120.1, 130.0 );
|
||||
SetSkill( SkillName.SpiritSpeak, 120.1, 130.0 );
|
||||
|
||||
Fame = 22500;
|
||||
Karma = -22500;
|
||||
|
||||
VirtualArmor = 80;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.FilthyRich, 4 );
|
||||
AddLoot( LootPack.Gems, 5 );
|
||||
}
|
||||
|
||||
public override bool ReacquireOnMovement{ get{ return true; } }
|
||||
public override bool HasBreath{ get{ return true; } } // fire breath enabled
|
||||
public override int BreathFireDamage{ get{ return 0; } }
|
||||
public override int BreathColdDamage{ get{ return 100; } }
|
||||
public override int BreathEffectHue{ get{ return 0x480; } }
|
||||
public override double BonusPetDamageScalar{ get{ return (Core.SE)? 3.0 : 1.0; } }
|
||||
// TODO: Undead summoning?
|
||||
|
||||
public override bool AutoDispel{ get{ return true; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
public override int Meat{ get{ return 19; } } // where's it hiding these? :)
|
||||
public override int Hides{ get{ return 20; } }
|
||||
public override HideType HideType{ get{ return HideType.Barbed; } }
|
||||
|
||||
public SkeletalDragon( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
84
Scripts/Mobiles/Monsters/Reptile/Magic/WhiteWyrm.cs
Normal file
84
Scripts/Mobiles/Monsters/Reptile/Magic/WhiteWyrm.cs
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a white wyrm corpse" )]
|
||||
public class WhiteWyrm : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public WhiteWyrm() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Body = Utility.RandomBool() ? 180 : 49;
|
||||
Name = "a white wyrm";
|
||||
BaseSoundID = 362;
|
||||
|
||||
SetStr( 721, 760 );
|
||||
SetDex( 101, 130 );
|
||||
SetInt( 386, 425 );
|
||||
|
||||
SetHits( 433, 456 );
|
||||
|
||||
SetDamage( 17, 25 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 50 );
|
||||
SetDamageType( ResistanceType.Cold, 50 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 55, 70 );
|
||||
SetResistance( ResistanceType.Fire, 15, 25 );
|
||||
SetResistance( ResistanceType.Cold, 80, 90 );
|
||||
SetResistance( ResistanceType.Poison, 40, 50 );
|
||||
SetResistance( ResistanceType.Energy, 40, 50 );
|
||||
|
||||
SetSkill( SkillName.EvalInt, 99.1, 100.0 );
|
||||
SetSkill( SkillName.Magery, 99.1, 100.0 );
|
||||
SetSkill( SkillName.MagicResist, 99.1, 100.0 );
|
||||
SetSkill( SkillName.Tactics, 97.6, 100.0 );
|
||||
SetSkill( SkillName.Wrestling, 90.1, 100.0 );
|
||||
|
||||
Fame = 18000;
|
||||
Karma = -18000;
|
||||
|
||||
VirtualArmor = 64;
|
||||
|
||||
Tamable = true;
|
||||
ControlSlots = 3;
|
||||
MinTameSkill = 96.3;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.FilthyRich, 2 );
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.Gems, Utility.Random( 1, 5 ) );
|
||||
}
|
||||
|
||||
public override bool ReacquireOnMovement{ get{ return true; } }
|
||||
public override int TreasureMapLevel{ get{ return 4; } }
|
||||
public override int Meat{ get{ return 19; } }
|
||||
public override int Hides{ get{ return 20; } }
|
||||
public override HideType HideType{ get{ return HideType.Barbed; } }
|
||||
public override int Scales{ get{ return 9; } }
|
||||
public override ScaleType ScaleType{ get{ return ScaleType.White; } }
|
||||
public override FoodType FavoriteFood{ get{ return FoodType.Meat | FoodType.Gold; } }
|
||||
public override bool CanAngerOnTame { get { return true; } }
|
||||
public override bool CanFly { get { return true; } }
|
||||
|
||||
public WhiteWyrm( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
writer.Write( (int) 0 );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue