public void InitLoadout(LoadoutData loadoutRef) { Loadout newLoadout = new Loadout(); if (loadoutRef.gun) { Gun gun = Instantiate(loadoutRef.gun); Equip(gun, Anim.GetBoneTransform(HumanBodyBones.RightHand)); newLoadout.gun = gun; } if (loadoutRef.grenade) { Grenade grenade = Instantiate(loadoutRef.grenade); Equip(grenade, Vector3.zero, Quaternion.identity); newLoadout.grenade = grenade; } if (loadoutRef.gadget) { Gadget gadget = Instantiate(loadoutRef.gadget); Equip(gadget, Vector3.zero, Quaternion.identity); newLoadout.gadget = gadget; } loadout = newLoadout; }
internal PlayerData(NetworkUser player) { var master = player.master; steamId = player.Network_id.steamId.value; money = player.master.money; inventory = new InventoryData(master.inventory); loadout = new LoadoutData(master.loadout); characterBodyName = player.master.bodyPrefab.name; lunarCoinChanceMultiplier = player.masterController.lunarCoinChanceMultiplier; lunarCoins = player.lunarCoins; var tmpMinions = new List <MinionData>(); foreach (var instance in CharacterMaster.readOnlyInstancesList) { var ownerMaster = instance.minionOwnership.ownerMaster; if (ownerMaster != null && ownerMaster.netId == player.master.netId) { tmpMinions.Add(new MinionData(instance)); } } minions = new MinionData[tmpMinions.Count]; for (var i = 0; i < tmpMinions.Count; i++) { minions[i] = tmpMinions[i]; } var stats = player.masterController.GetComponent <PlayerStatsComponent>().currentStats; statsFields = new string[stats.fields.Length]; for (var i = 0; i < stats.fields.Length; i++) { var field = stats.fields[i]; statsFields[i] = field.ToString(); } statsUnlockables = new int[stats.GetUnlockableCount()]; for (var i = 0; i < stats.GetUnlockableCount(); i++) { var unlockable = stats.GetUnlockableIndex(i); statsUnlockables[i] = unlockable.value; } }