public void SetPlayerLoadOuts() { JobOutfit standardOutfit = GameManager.Instance.StandardOutfit.GetComponent <JobOutfit>(); JobOutfit jobOutfit = GameManager.Instance.GetOccupationOutfit(playerScript.mind.jobType); //Create collection of all the new items to add to the gear slots Dictionary <EquipSlot, ClothOrPrefab> gear = new Dictionary <EquipSlot, ClothOrPrefab>(); gear.Add(EquipSlot.uniform, standardOutfit.uniform); gear.Add(EquipSlot.feet, standardOutfit.shoes); gear.Add(EquipSlot.eyes, standardOutfit.glasses); gear.Add(EquipSlot.hands, standardOutfit.gloves); Backpack = standardOutfit.backpack; Ears = standardOutfit.ears; gear.Add(EquipSlot.exosuit, standardOutfit.suit); gear.Add(EquipSlot.head, standardOutfit.head); gear.Add(EquipSlot.mask, standardOutfit.mask); gear.Add(EquipSlot.suitStorage, standardOutfit.suit_store); AddifPresent(gear, EquipSlot.exosuit, jobOutfit.suit); AddifPresent(gear, EquipSlot.head, jobOutfit.head); AddifPresent(gear, EquipSlot.uniform, jobOutfit.uniform); AddifPresent(gear, EquipSlot.feet, jobOutfit.shoes); AddifPresent(gear, EquipSlot.hands, jobOutfit.gloves); AddifPresent(gear, EquipSlot.eyes, jobOutfit.glasses); AddifPresent(gear, EquipSlot.mask, jobOutfit.mask); if (jobOutfit.backpack?.Backpack?.Sprites?.Equipped?.Texture != null || jobOutfit.backpack.Prefab != null) { Backpack = jobOutfit.backpack; } if (jobOutfit.ears?.Headset?.Sprites?.Equipped?.Texture != null || jobOutfit.ears.Prefab != null) { Ears = jobOutfit.ears; } foreach (KeyValuePair <EquipSlot, ClothOrPrefab> gearItem in gear) { if (gearItem.Value.Clothing != null) { if (gearItem.Value.Clothing.PrefabVariant != null) { var obj = ClothFactory.CreateCloth(gearItem.Value.Clothing, TransformState.HiddenPos, transform.parent, PrefabOverride: gearItem.Value.Clothing.PrefabVariant); //Where it is made ItemAttributes itemAtts = obj.GetComponent <ItemAttributes>(); SetItem(gearItem.Key, itemAtts.gameObject, true); } else { var obj = ClothFactory.CreateCloth(gearItem.Value.Clothing, TransformState.HiddenPos, transform.parent); ItemAttributes itemAtts = obj.GetComponent <ItemAttributes>(); SetItem(gearItem.Key, itemAtts.gameObject, true); } } else if (gearItem.Value.Prefab != null) { var obj = PoolManager.PoolNetworkInstantiate(gearItem.Value.Prefab, TransformState.HiddenPos, transform.parent); ItemAttributes itemAtts = obj.GetComponent <ItemAttributes>(); SetItem(gearItem.Key, itemAtts.gameObject, true); } } if (Backpack.Backpack != null) { if (Backpack.Backpack.PrefabVariant != null) { var obj = ClothFactory.CreateBackpackCloth(Backpack.Backpack, TransformState.HiddenPos, transform.parent, PrefabOverride: Backpack.Backpack.PrefabVariant); //Where it is made ItemAttributes itemAtts = obj.GetComponent <ItemAttributes>(); SetItem(EquipSlot.back, itemAtts.gameObject, true); } else { var obj = ClothFactory.CreateBackpackCloth(Backpack.Backpack, TransformState.HiddenPos, transform.parent); ItemAttributes itemAtts = obj.GetComponent <ItemAttributes>(); SetItem(EquipSlot.back, itemAtts.gameObject, true); } } else if (Backpack.Prefab) { var obj = PoolManager.PoolNetworkInstantiate(Backpack.Prefab, TransformState.HiddenPos, transform.parent); ItemAttributes itemAtts = obj.GetComponent <ItemAttributes>(); SetItem(EquipSlot.back, itemAtts.gameObject, true); } if (Ears.Headset != null) { if (Ears.Headset.PrefabVariant != null) { var obj = ClothFactory.CreateHeadsetCloth(Ears.Headset, TransformState.HiddenPos, transform.parent, PrefabOverride: Ears.Headset.PrefabVariant); //Where it is made ItemAttributes itemAtts = obj.GetComponent <ItemAttributes>(); SetItem(EquipSlot.ear, itemAtts.gameObject, true); } else { var obj = ClothFactory.CreateHeadsetCloth(Ears.Headset, TransformState.HiddenPos, transform.parent); ItemAttributes itemAtts = obj.GetComponent <ItemAttributes>(); SetItem(EquipSlot.ear, itemAtts.gameObject, true); } } else if (Ears.Prefab) { var obj = PoolManager.PoolNetworkInstantiate(Backpack.Prefab, TransformState.HiddenPos, transform.parent); ItemAttributes itemAtts = obj.GetComponent <ItemAttributes>(); SetItem(EquipSlot.ear, itemAtts.gameObject, true); } SpawnID(jobOutfit); }