public DynamicObject(Unit creator, SpellId spellId, float radius, Region region, Vector3 pos) { if (creator == null) throw new ArgumentNullException("creator", "creator must not be null"); Master = m_creator = creator; EntityId = EntityId.GetDynamicObjectId(++lastId); Type |= ObjectTypes.DynamicObject; SetEntityId(DynamicObjectFields.CASTER, Caster.EntityId); SpellId = spellId; Radius = radius; Bytes = 0x01EEEEEE; ScaleX = 1; m_position = pos; region.AddObjectLater(this); }
/// <summary> /// Spawns and returns a new Corpse at the given location /// </summary> /// <param name="bones"></param> /// <param name="lootable"></param> /// <returns></returns> public Corpse SpawnCorpse(bool bones, bool lootable, Region region, Vector3 pos, float o) { var corpse = new Corpse(this, pos, o, DisplayId, Facial, Skin, HairStyle, HairColor, FacialHair, GuildId, Gender, Race, bones ? CorpseFlags.Bones : CorpseFlags.None, lootable ? CorpseDynamicFlags.PlayerLootable : CorpseDynamicFlags.None); for (var i = EquipmentSlot.Head; i <= EquipmentSlot.Tabard; i++) { var item = m_inventory[(int)i]; if (item != null) { corpse.SetItem(i, item.Template); } } corpse.Position = pos; region.AddObjectLater(corpse); return corpse; }