private List <HackerModChip> AddItemsToInventoryToFillEmptySlots(Item.ItemTypes chipType, int amountToCreate)
    {
        List <HackerModChip> installs   = new List <HackerModChip>();
        PlayerData           playerData = FindObjectOfType <PlayerData>();

        for (int i = 0; i < amountToCreate; i++)
        {
            switch (chipType)
            {
            case Item.ItemTypes.Wetware:
                HackerModChip newWetware = CreateInstance <HackerModChip>();
                newWetware.SetupChip("JuryRigged QwikThink");
                installs.Add(newWetware);
                playerData.AddToOwnedItems(newWetware);
                break;

            case Item.ItemTypes.Software:
                HackerModChip newSoftware = CreateInstance <HackerModChip>();
                newSoftware.SetupChip("Cheap Ghost");
                installs.Add(newSoftware);
                playerData.AddToOwnedItems(newSoftware);
                break;

            case Item.ItemTypes.Chipset:
                HackerModChip newChipset = CreateInstance <HackerModChip>();
                newChipset.SetupChip("Salvaged Router");
                installs.Add(newChipset);
                playerData.AddToOwnedItems(newChipset);
                break;
            }
        }
        return(installs);
    }
    public void SetupInitialLoadout(int newHackerId)
    {
        hackerId = newHackerId;

        switch (hackerId)
        {
        case 0:
            rig = CreateInstance <HackerMod>();
            rig.SetupMod("Basic Rig");
            HackerModChip newSoftware = CreateInstance <HackerModChip>();
            newSoftware.SetupChip("Cheap Ghost");
            rig.InstallChip(newSoftware, 0);

            neuralImplant = CreateInstance <HackerMod>();
            neuralImplant.SetupMod("Basic Cranial Dock");
            HackerModChip newWetware = CreateInstance <HackerModChip>();
            newWetware.SetupChip("JuryRigged QwikThink");
            neuralImplant.InstallChip(newWetware, 0);

            uplink = CreateInstance <HackerMod>();
            uplink.SetupMod("Basic Uplink");
            HackerModChip newChipset = CreateInstance <HackerModChip>();
            newChipset.SetupChip("Salvaged Router");
            uplink.InstallChip(newChipset, 0);
            break;
        }
    }
    private HackerModChip CreateEmptyInstall()
    {
        HackerModChip emptyInstall = CreateInstance <HackerModChip>();

        emptyInstall.SetupChip("Empty");
        FindObjectOfType <PlayerData>().GetItemId();

        return(emptyInstall);
    }
Beispiel #4
0
    private void AttemptToCreateShopItems(List <string> itemNames)
    {
        // TODO: DO OBJECTS NEED TO BE DESTROYED???
        List <Item> shopItems = new List <Item>();

        foreach (string itemName in itemNames)
        {
            RunnerMod createAsRunnerMod = ScriptableObject.CreateInstance <RunnerMod>();
            bool      success           = createAsRunnerMod.SetupMod(itemName);
            if (!success)
            {
                // Failed to create as a runner mod, try a hacker mod...
                HackerMod createAsHackerMod = ScriptableObject.CreateInstance <HackerMod>();
                success = createAsHackerMod.SetupMod(itemName);
                if (!success)
                {
                    // Failed to create as a hacker mod, try a hacker install...
                    HackerModChip createAsHackerInstall = ScriptableObject.CreateInstance <HackerModChip>();
                    success = createAsHackerInstall.SetupChip(itemName);
                    if (success)
                    {
                        // TODO: CREATE EXTRA COPIES TO ADD TO LIST
                        shopItems.Add(createAsHackerInstall);
                    }
                }
                else
                {
                    shopItems.Add(createAsHackerMod);
                }
            }
            else
            {
                bool addToShop = true;
                if (createAsRunnerMod.GetItemType() == Item.ItemTypes.Arm || createAsRunnerMod.GetItemType() == Item.ItemTypes.Leg)
                {
                    // If arm or leg, we need to count them
                    List <Item> sameItems = ownedItems.FindAll(curentItem => createAsRunnerMod.GetItemName() == curentItem.GetItemName());
                    switch (sameItems.Count)
                    {
                    case 0:
                        RunnerMod secondCopy = ScriptableObject.CreateInstance <RunnerMod>();
                        secondCopy.SetupMod(itemName);
                        shopItems.Add(secondCopy);
                        break;

                    case 1:
                        break;

                    case 2:
                        addToShop = false;
                        break;
                    }
                }
                if (addToShop)
                {
                    shopItems.Add(createAsRunnerMod);
                }
            }
        }

        itemsForSale = shopItems;
    }