public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); //Remove timer here to stop decay but don't forget the one Constructable section! m_Timer = new RotTimer(this); m_Timer.Start(); }
public FieryLesserArcaneWeapon() : base(0x2D22) { Weight = 0.0; Name = "Fiery Arcane Weapon"; AosElementDamages.Energy = 100; Description = "This swirling mass of shadows appears to have taken the shape of a blade, albeit barely. It glimmers with twisting voltaic arcs."; Engines.XmlSpawner2.XmlCriticalHit att = new Server.Engines.XmlSpawner2.XmlCriticalHit(); att.Chance = 100; att.FireDamage = 5; Engines.XmlSpawner2.XmlAttach.AttachTo( this, att ); Resource = CraftResource.Satin; Hue = 2992; m_Timer = new RotTimer(this); m_Timer.Start(); }
protected override void OnTick() { RotTimer rotTimer = new RotTimer(m_Mobile); if (m_Mobile.Str < 2) { m_Mobile.Kill(); Stop(); } else { if (m_Mobile.Hits > m_Mobile.HitsMax / 2) { m_Mobile.Hits -= m_Mobile.HitsMax / 100; //m_Mobile.Say(" losing 1% Hits"); } if (m_Mobile.Hits <= m_Mobile.HitsMax / 2) { m_Mobile.Hits -= 1; //m_Mobile.Say(" losing 1 Hitpoint"); } if (m_Mobile.Hits < m_Mobile.HitsMax / 4) { m_Mobile.CantWalk = true; //m_Mobile.Say(" Cant Walk Anymore"); } if (m_Mobile.Str > 100) { m_Mobile.Str -= m_Mobile.Str / 30; //m_Mobile.Say(" losing 3.33% Str"); } if (m_Mobile.Str <= 100) { m_Mobile.Str -= 1; //m_Mobile.Say(" losing 1 Str point"); } rotTimer.Start(); } }
protected override void OnTick() { RotTimer rotTimer = new RotTimer( m_Item ); switch ( Utility.Random( 3 )) { case 0: m_Item.Hue = 1257; break; case 1: m_Item.Hue = 1258; break; case 2: m_Item.Hue = 1259; break; } Stop(); rotTimer.Start(); }
public Zombiex() : base(AIType.AI_Melee, FightMode.Closest, 20, 1, 0.2, 0.4) { Name = "A Contagious Zombie"; Body = 155; BaseSoundID = 471; //17MAR2008 - too strong, make it match SerpentineDragon *** START *** //SetStr(100); //SetDex(25); //SetInt(10); //SetHits(1000); //SetStam(150); //SetMana(0); //SetDamage(10, 15); //SetDamageType(ResistanceType.Physical, 25); //SetDamageType(ResistanceType.Cold, 25); //SetDamageType(ResistanceType.Poison, 50); //SetResistance(ResistanceType.Physical, 60, 80); //SetResistance(ResistanceType.Fire, 40, 60); //SetResistance(ResistanceType.Cold, 99, 100); //SetResistance(ResistanceType.Poison, 99, 100); //SetResistance(ResistanceType.Energy, 40, 60); //SetSkill(SkillName.Poisoning, 120.0); //SetSkill(SkillName.MagicResist, 250.0); //SetSkill(SkillName.Tactics, 100.0); //SetSkill(SkillName.Wrestling, 90.1, 100.0); //PassiveSpeed = .4; //ActiveSpeed = .8; //Fame = 6000; //Karma = -6000; //VirtualArmor = 40; 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; //17MAR2008 - too strong, make it match SerpentineDragon *** END *** //If you would want to drop 50% of the time, you would write: //if ( 0.5 > Utility.RandomDouble() ) if (0.25 > Utility.RandomDouble()) { PackItem(new EntrappedSoulWeaponDeed()); } //Remove timer here to stop decay don't forget the Deserialize timer //01AUG2008 I think this is needed for the EntrappedSoulWeapon *** START *** PackItem(new Head()); //01AUG2008 I think this is needed for the EntrappedSoulWeapon *** END *** m_Timer = new RotTimer(this); m_Timer.Start(); }