Exemple #1
0
    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;
            }
        }