public static Container Mobile_CreateCorpseHandler(Mobile owner, HairInfo hair, FacialHairInfo facialhair, List <Item> initialContent, List <Item> equipItems) { bool shouldFillCorpse = true; //if ( owner is BaseCreature ) // shouldFillCorpse = !((BaseCreature)owner).IsBonded; Corpse c; c = new Corpse(owner, hair, facialhair, shouldFillCorpse ? equipItems : new List <Item>()); owner.Corpse = c; if (shouldFillCorpse) { for (int i = 0; i < initialContent.Count; ++i) { Item item = initialContent[i]; if (Core.AOS && owner.Player && item.Parent == owner.Backpack) { c.AddItem(item); } else { c.DropItem(item); } if (owner.Player && Core.AOS) { c.SetRestoreInfo(item, item.Location); } } if (!owner.Player) { c.AssignInstancedLoot(); } } else { c.Carved = true; // TODO: Is it needed? } Point3D loc = owner.Location; Map map = owner.Map; if (map == null || map == Map.Internal) { loc = owner.LogoutLocation; map = owner.LogoutMap; } c.MoveToWorld(loc, map); return(c); }
public static Container Mobile_CreateCorpseHandler( Mobile owner, HairInfo hair, FacialHairInfo facialhair, List <Item> initialContent, List <Item> equipItems) { var c = new Corpse(owner, hair, facialhair, equipItems); owner.Corpse = c; for (int i = 0; i < initialContent.Count; ++i) { Item item = initialContent[i]; if (owner.Player && item.Parent == owner.Backpack) { c.AddItem(item); } else { c.DropItem(item); } if (owner.Player) { c.SetRestoreInfo(item, item.Location); } } if (!owner.Player) { c.AssignInstancedLoot(); c.HasAssignedInstancedLoot = true; } else { PlayerMobile pm = owner as PlayerMobile; if (pm != null) { c.RestoreEquip = pm.EquipSnapshot; } } Point3D loc = owner.Location; Map map = owner.Map; if (map == null || map == Map.Internal) { loc = owner.LogoutLocation; map = owner.LogoutMap; } c.MoveToWorld(loc, map); return(c); }
public static Container Mobile_CreateCorpseHandler( Mobile owner, HairInfo hair, FacialHairInfo facialhair, List<Item> initialContent, List<Item> equipItems ) { bool shouldFillCorpse = true; //if ( owner is BaseCreature ) // shouldFillCorpse = !((BaseCreature)owner).IsBonded; Corpse c = new Corpse(owner, hair, facialhair, shouldFillCorpse ? equipItems : new List<Item>()); owner.Corpse = c; if( shouldFillCorpse ) { for( int i = 0; i < initialContent.Count; ++i ) { Item item = initialContent[i]; if( Core.AOS && owner.Player && item.Parent == owner.Backpack ) c.AddItem(item); else c.DropItem(item); if( owner.Player && Core.AOS ) c.SetRestoreInfo(item, item.Location); } if( !owner.Player ) c.AssignInstancedLoot(); } else { c.Carved = true; // TODO: Is it needed? } Point3D loc = owner.Location; Map map = owner.Map; if( map == null || map == Map.Internal ) { loc = owner.LogoutLocation; map = owner.LogoutMap; } c.MoveToWorld(loc, map); return c; }