public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); m_Chyloth = reader.ReadMobile() as Chyloth; m_Dragon = reader.ReadMobile() as SkeletalDragon; if ( m_Chyloth != null ) m_Chyloth.Delete(); }
public virtual void EndSummonDragon() { if (this.Deleted || this.m_AngryAt == null) return; Map map = this.m_AngryAt.Map; if (map == null) return; if (!this.m_AngryAt.Region.IsPartOf("Doom")) return; this.PublicOverheadMessage(MessageType.Regular, 0x3B2, 1050015); // Feel the wrath of my legions!!! this.PublicOverheadMessage(MessageType.Regular, 0x3B2, false, "MUHAHAHAHA HAHAH HAHA"); // A wee bit crazy, aren't we? SkeletalDragon dragon = new SkeletalDragon(); int offset = Utility.Random(8) * 2; bool foundLoc = false; for (int i = 0; i < m_Offsets.Length; i += 2) { int x = this.m_AngryAt.X + m_Offsets[(offset + i) % m_Offsets.Length]; int y = this.m_AngryAt.Y + m_Offsets[(offset + i + 1) % m_Offsets.Length]; if (map.CanSpawnMobile(x, y, this.m_AngryAt.Z)) { dragon.MoveToWorld(new Point3D(x, y, this.m_AngryAt.Z), map); foundLoc = true; break; } else { int z = map.GetAverageZ(x, y); if (map.CanSpawnMobile(x, y, z)) { dragon.MoveToWorld(new Point3D(x, y, z), map); foundLoc = true; break; } } } if (!foundLoc) dragon.MoveToWorld(this.m_AngryAt.Location, map); dragon.Combatant = this.m_AngryAt; if (this.m_Bell != null) this.m_Bell.Dragon = dragon; }
public virtual void EndSummonDragon() { if (Deleted || AngryAt == null) return; var map = AngryAt.Map; if (map == null) return; if (!AngryAt.Region.IsPartOf("Doom")) return; PublicOverheadMessage(MessageType.Regular, 0x3B2, 1050015); // Feel the wrath of my legions!!! PublicOverheadMessage(MessageType.Regular, 0x3B2, false, "MUHAHAHAHA HAHAH HAHA"); // A wee bit crazy, aren't we? var dragon = new SkeletalDragon(); var offset = Utility.Random(8)*2; var foundLoc = false; for (var i = 0; i < m_Offsets.Length; i += 2) { var x = AngryAt.X + m_Offsets[(offset + i)%m_Offsets.Length]; var y = AngryAt.Y + m_Offsets[(offset + i + 1)%m_Offsets.Length]; if (map.CanSpawnMobile(x, y, AngryAt.Z)) { dragon.MoveToWorld(new Point3D(x, y, AngryAt.Z), map); foundLoc = true; break; } var z = map.GetAverageZ(x, y); if (map.CanSpawnMobile(x, y, z)) { dragon.MoveToWorld(new Point3D(x, y, z), map); foundLoc = true; break; } } if (!foundLoc) dragon.MoveToWorld(AngryAt.Location, map); dragon.Combatant = AngryAt; if (Bell != null) Bell.Dragon = dragon; }