private void SetupCardCarosels()
    {
        currentCardCarosel.ClearCardLists();
        currentCardCarosel.InitializeToggle();
        currentCardCarosel.SetHackerOrRunner(item.GetHackerOrRunner());

        if (item.GetHackerOrRunner() == Item.HackerRunner.Runner)
        {
            RunnerMod runnerMod = item as RunnerMod;
            AddCardIdsToCaroselHolder(runnerMod.GetLevelOneCardIds(), 1);
            AddCardIdsToCaroselHolder(runnerMod.GetLevelTwoCardIds(), 2);
            AddCardIdsToCaroselHolder(runnerMod.GetLevelThreeCardIds(), 3);
            AddCardIdsToCaroselHolder(runnerMod.GetLevelFourCardIds(), 4);
            AddCardIdsToCaroselHolder(runnerMod.GetLevelFiveCardIds(), 5);
        }
        else
        {
            //HackerModChip hackerInstall = item as HackerModChip;
            //lvl1CardIds.AddRange(hackerInstall.GetCardIds());
            HackerModChip hackerInstall = item as HackerModChip;
            AddCardIdsToCaroselHolder(hackerInstall.GetLevelOneCardIds(), 1);
            AddCardIdsToCaroselHolder(hackerInstall.GetLevelTwoCardIds(), 2);
            AddCardIdsToCaroselHolder(hackerInstall.GetLevelThreeCardIds(), 3);
        }
        currentCardCarosel.GenerateListItems(item.GetCurrentItemLevel());
    }
    private void SetupCardCarosel(Item item)
    {
        currentCardCarosel.ClearCardList();
        List <int> cardIds = new List <int>();

        switch (hackerOrRunner)
        {
        case Item.HackerRunner.Runner:
            RunnerMod runnerMod = item as RunnerMod;
            cardIds.AddRange(runnerMod.GetCardIds());
            break;

        case Item.HackerRunner.Hacker:
            if (item.IsHackerChipset())
            {
                HackerModChip hackerModChip = item as HackerModChip;
                cardIds.AddRange(hackerModChip.GetCardIds());
            }
            break;
        }

        foreach (int id in cardIds)
        {
            Card card = Resources.Load <Card>("CardPrefabs/Player/Card" + id);
            currentCardCarosel.AddCardToList(card);
        }
        currentCardCarosel.GenerateListItems();
    }
    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 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 InstallChip(HackerModChip newHackerModChip, int slot)
    {
        FillExtraSlotsWithEmptyMods();
        Debug.Log(newHackerModChip.GetItemType().ToString());
        // check we're installing the right kind of chip in the mod
        ItemTypes newChipType = newHackerModChip.GetItemType();

        switch (itemType)
        {
        case ItemTypes.Rig:
            if (newChipType != ItemTypes.Software)
            {
                Debug.LogError("Can only install software in Rig");
            }
            break;

        case ItemTypes.NeuralImplant:
            if (newChipType != ItemTypes.Wetware)
            {
                Debug.LogError("Can only install wetware in Neural Implant");
            }
            break;

        case ItemTypes.Uplink:
            if (newChipType != ItemTypes.Chipset)
            {
                Debug.LogError("Can only install chipsets in Uplink");
            }
            break;
        }
        modChips[slot] = newHackerModChip;
    }
    private HackerModChip CreateEmptyInstall()
    {
        HackerModChip emptyInstall = CreateInstance <HackerModChip>();

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

        return(emptyInstall);
    }
    public void EquipItem(HackerModChip newModChip, int slotNumber)
    {
        switch (newModChip.GetItemType())
        {
        case Item.ItemTypes.Chipset:
            GetUplinkMod().InstallChip(newModChip, slotNumber);
            break;

        case Item.ItemTypes.Software:
            GetRigMod().InstallChip(newModChip, slotNumber);
            break;

        case Item.ItemTypes.Wetware:
            GetNeuralImplantMod().InstallChip(newModChip, slotNumber);
            break;
        }
    }
Beispiel #8
0
    private void SetupCardCarosel(Item item)
    {
        cardCarosel.ClearCardList();
        List <int> cardIds = new List <int>();

        switch (item.GetItemType())
        {
        case Item.ItemTypes.Arm:
        case Item.ItemTypes.Exoskeleton:
        case Item.ItemTypes.Head:
        case Item.ItemTypes.Leg:
        case Item.ItemTypes.Torso:
        case Item.ItemTypes.Weapon:
            RunnerMod runnerMod = item as RunnerMod;
            cardIds.AddRange(runnerMod.GetCardIds());
            abilityTypeText.text        = "";
            abilityDescriptionText.text = "";
            break;

        case Item.ItemTypes.NeuralImplant:
        case Item.ItemTypes.Rig:
        case Item.ItemTypes.Uplink:
            HackerMod hackerMod = item as HackerMod;
            abilityTypeText.text        = "Active Ability:";
            abilityDescriptionText.text = hackerMod.GetCurrentLevelAbilityDescription();
            break;

        case Item.ItemTypes.Chipset:
        case Item.ItemTypes.Software:
        case Item.ItemTypes.Wetware:
            HackerModChip hackerModChip = item as HackerModChip;
            cardIds.AddRange(hackerModChip.GetCardIds());
            abilityTypeText.text        = "Passive Ability:";
            abilityDescriptionText.text = hackerModChip.GetCurrentLevelAbilityString();
            break;
        }

        foreach (int id in cardIds)
        {
            Card card = Resources.Load <Card>("CardPrefabs/Player/Card" + id);
            cardCarosel.AddCardToList(card);
        }
        cardCarosel.GenerateListItems();
    }
Beispiel #9
0
    private void SetupCardCarosel()
    {
        currentCardCarosel.ClearCardList();
        currentCardCarosel.InitializeToggle();
        List <int> cardIds = new List <int>();

        if (item.GetHackerOrRunner() == Item.HackerRunner.Runner)
        {
            RunnerMod runnerMod = item as RunnerMod;
            cardIds.AddRange(runnerMod.GetCardIds());
        }
        else
        {
            HackerModChip hackerInstall = item as HackerModChip;
            cardIds.AddRange(hackerInstall.GetCardIds());
        }
        foreach (int id in cardIds)
        {
            Card card = Resources.Load <Card>("CardPrefabs/Player/Card" + id);
            currentCardCarosel.AddCardToList(card);
        }
        currentCardCarosel.GenerateListItems();
    }
    private void SetupHackerMenu()
    {
        runnerContext.SetActive(false);
        hackerContext.SetActive(true);
        Item.ItemTypes[]      modTypes     = { Item.ItemTypes.NeuralImplant, Item.ItemTypes.Rig, Item.ItemTypes.Uplink };
        List <Item.ItemTypes> modTypesList = new List <Item.ItemTypes>();

        modTypesList.AddRange(modTypes);
        if (modTypesList.Contains(item.GetItemType()))
        {
            // Is a mod
            hackerModContext.SetActive(true);
            hackerInstallContext.SetActive(false);
            switch (context)
            {
            case ItemDetailsMenu.ItemDetailMenuContextType.Inventory:
                hackerModShopContext.SetActive(false);
                break;

            case ItemDetailsMenu.ItemDetailMenuContextType.Loadout:
                hackerModShopContext.SetActive(false);
                break;

            case ItemDetailsMenu.ItemDetailMenuContextType.Shop:
                if (shopMenu.GetOpenShopTab() == "upgrade")
                {
                    hackerModShopContext.SetActive(true);
                    SetupUpgradeButtons(hackerModUpgradeButtons);
                }
                else
                {
                    hackerModShopContext.SetActive(false);
                }
                break;
            }
            switch (item.GetItemType())
            {
            case Item.ItemTypes.NeuralImplant:
                hackerModChipsetSlots.gameObject.SetActive(false);
                hackerModSoftwareSlots.gameObject.SetActive(false);
                hackerModWetwareSlots.gameObject.SetActive(true);
                break;

            case Item.ItemTypes.Rig:
                hackerModChipsetSlots.gameObject.SetActive(false);
                hackerModSoftwareSlots.gameObject.SetActive(true);
                hackerModWetwareSlots.gameObject.SetActive(false);
                break;

            case Item.ItemTypes.Uplink:
                hackerModChipsetSlots.gameObject.SetActive(true);
                hackerModSoftwareSlots.gameObject.SetActive(false);
                hackerModWetwareSlots.gameObject.SetActive(false);
                break;
            }
            slotCountText.text = GenerateSlotDisplayString();
            SetupActiveAbilityHolders();
        }
        else
        {
            // Is an install
            currentCardCarosel = hackerInstallCardCarosel;
            switch (context)
            {
            case ItemDetailsMenu.ItemDetailMenuContextType.Inventory:
                hackerInstallShopContext.SetActive(false);
                break;

            case ItemDetailsMenu.ItemDetailMenuContextType.Loadout:
                hackerInstallShopContext.SetActive(false);
                break;

            case ItemDetailsMenu.ItemDetailMenuContextType.Shop:
                if (shopMenu.GetOpenShopTab() == "upgrade")
                {
                    hackerInstallShopContext.SetActive(true);
                    SetupUpgradeButtons(hackerInstallUpgradeButtons);
                }
                else
                {
                    hackerInstallShopContext.SetActive(false);
                }
                break;
            }

            hackerInstallContext.SetActive(true);
            hackerModContext.SetActive(false);
            SetupCardCarosels();
            SetupLevelMarkers();
            HackerModChip chip = item as HackerModChip;
            hackerPassiveAbilityText.text = chip.GetPassiveAbilityStringByLevel(item.GetItemLevel());
        }
    }
    private void SelectEquippedItemInList()
    {
        // To highlight currently equipped item, first we see if there is only one filter...
        if (currentFilters.Count == 1)
        {
            PlayerData playerData = FindObjectOfType <PlayerData>();
            switch (hackerOrRunner)
            {
            // Then we find if there are any active buttons and get the leftOrRight and itemType from them
            case Item.HackerRunner.Runner:
                Loadout.LeftOrRight leftOrRight;
                Item.ItemTypes      itemType;
                foreach (LoadoutSlotBtn button in runnerLoadoutSlotBtns)
                {
                    if (button.GetIsActive())
                    {
                        itemType    = button.GetItemType();
                        leftOrRight = button.GetLeftOrRight();
                        RunnerMod equippedMod = playerData.GetCurrentRunner().GetLoadout().GetEquippedModByItemType(itemType, leftOrRight);
                        currentInventoryList.SelectParticularItem(equippedMod);
                    }
                }
                break;

            case Item.HackerRunner.Hacker:
                foreach (LoadoutSlotBtn button in activeHackerSlotBtns)
                {
                    if (button.GetIsActive())
                    {
                        // do for mod
                        itemType = button.GetItemType();
                        if (button.GetItemType() == Item.ItemTypes.NeuralImplant || button.GetItemType() == Item.ItemTypes.Rig || button.GetItemType() == Item.ItemTypes.Uplink)
                        {
                            HackerMod equippedMod = playerData.GetCurrentHacker().GetHackerLoadout().GetEquippedModByItemType(itemType);
                            currentInventoryList.SelectParticularItem(equippedMod);
                        }
                        else
                        {
                            // do for install
                            int           slotNumber    = button.GetSlotNumber();
                            HackerModChip hackerModChip = playerData.GetCurrentHacker().GetHackerLoadout().GetEquippedInstallByItemTypeAndSlotNumber(itemType, slotNumber);
                            currentInventoryList.SelectParticularItem(hackerModChip);
                        }
                    }
                }
                break;
            }
        }
        else if (recentlyEquippedItem == true)
        {
            recentlyEquippedItem = false;
            switch (hackerOrRunner)
            {
            case Item.HackerRunner.Runner:
                currentInventoryList.SelectParticularItem(selectedItem);
                break;

            case Item.HackerRunner.Hacker:
                currentInventoryList.SelectParticularItem(selectedItem);
                break;
            }
        }
    }
Beispiel #12
0
    public void LoadPlayer(int saveSlotToLoad)
    {
        SaveObject saveObject = SaveSystem.LoadPlayerData(saveSlotToLoad);

        // Recreate Owned Items
        ownedItems = new List <Item>();
        List <SaveItem> deserializedSaveItems = JsonConvert.DeserializeObject <List <SaveItem> >(saveObject.items);

        foreach (SaveItem saveItem in deserializedSaveItems)
        {
            if (saveItem.hackerOrRunner == (int)Item.HackerRunner.Hacker)
            {
                // Hacker Items
                if (saveItem.itemType == (int)Item.ItemTypes.Rig || saveItem.itemType == (int)Item.ItemTypes.NeuralImplant || saveItem.itemType == (int)Item.ItemTypes.Uplink)
                {
                    HackerMod newHackerMod = ScriptableObject.CreateInstance <HackerMod>();
                    newHackerMod.RecreateSavedHackerMod(saveItem);
                    ownedItems.Add(newHackerMod);
                }
                else
                {
                    HackerModChip newHackerModChip = ScriptableObject.CreateInstance <HackerModChip>();
                    newHackerModChip.RecreateSavedHackerModChip(saveItem);
                    ownedItems.Add(newHackerModChip);
                }
            }
            else if (saveItem.hackerOrRunner == (int)Item.HackerRunner.Runner)
            {
                // Create Runner Items
                RunnerMod newRunnerMod = ScriptableObject.CreateInstance <RunnerMod>();
                newRunnerMod.RecreateSavedRunnerMod(saveItem);
                ownedItems.Add(newRunnerMod);
            }
        }

        // Create Runners
        List <SaveRunner> saveRunners = JsonConvert.DeserializeObject <List <SaveRunner> >(saveObject.runners);

        ownedRunners = new List <CharacterData>();
        foreach (SaveRunner saveRunner in saveRunners)
        {
            CharacterData newRunner = ScriptableObject.CreateInstance <CharacterData>();
            newRunner.RecreateRunnerFromSaveData(saveRunner);

            Loadout runnerLoadout = newRunner.GetLoadout();
            runnerLoadout.EquipItem((RunnerMod)GetLoadedItemById(saveRunner.headItemId));
            runnerLoadout.EquipItem((RunnerMod)GetLoadedItemById(saveRunner.torsoModId));
            runnerLoadout.EquipItem((RunnerMod)GetLoadedItemById(saveRunner.exoskeletonModId));
            runnerLoadout.EquipItem((RunnerMod)GetLoadedItemById(saveRunner.leftArmModId), Loadout.LeftOrRight.Left);
            runnerLoadout.EquipItem((RunnerMod)GetLoadedItemById(saveRunner.rightArmModId), Loadout.LeftOrRight.Right);
            runnerLoadout.EquipItem((RunnerMod)GetLoadedItemById(saveRunner.leftLegModId), Loadout.LeftOrRight.Left);
            runnerLoadout.EquipItem((RunnerMod)GetLoadedItemById(saveRunner.rightLegModId), Loadout.LeftOrRight.Right);
            runnerLoadout.EquipItem((RunnerMod)GetLoadedItemById(saveRunner.weaponModId));

            ownedRunners.Add(newRunner);
            if (newRunner.GetRunnerId() == saveObject.currentRunner)
            {
                currentRunner = newRunner;
            }
        }

        List <SaveHacker> saveHackers = JsonConvert.DeserializeObject <List <SaveHacker> >(saveObject.hackers);

        ownedHackers = new List <HackerData>();
        foreach (SaveHacker saveHacker in saveHackers)
        {
            HackerData newHacker = ScriptableObject.CreateInstance <HackerData>();
            newHacker.RecreateHackerFromSave(saveHacker);

            if (!newHacker.GetIsLocked())
            {
                HackerMod newRigMod = (HackerMod)GetLoadedItemById(saveHacker.rigModId);
                if (saveHacker.rigSoftwareId1 != -1)
                {
                    newRigMod.InstallChip((HackerModChip)GetLoadedItemById(saveHacker.rigSoftwareId1), 0);
                }
                if (saveHacker.rigSoftwareId2 != -1)
                {
                    newRigMod.InstallChip((HackerModChip)GetLoadedItemById(saveHacker.rigSoftwareId2), 1);
                }
                if (saveHacker.rigSoftwareId3 != -1)
                {
                    newRigMod.InstallChip((HackerModChip)GetLoadedItemById(saveHacker.rigSoftwareId3), 2);
                }
                newHacker.GetHackerLoadout().EquipRecreatedItem(newRigMod);

                HackerMod newNeuralImplantMod = (HackerMod)GetLoadedItemById(saveHacker.neuralImplantId);
                if (saveHacker.neuralWetwareId1 != -1)
                {
                    newNeuralImplantMod.InstallChip((HackerModChip)GetLoadedItemById(saveHacker.neuralWetwareId1), 0);
                }
                if (saveHacker.neuralWetwareId2 != -1)
                {
                    newNeuralImplantMod.InstallChip((HackerModChip)GetLoadedItemById(saveHacker.neuralWetwareId2), 1);
                }
                if (saveHacker.neuralWetwareId3 != -1)
                {
                    newNeuralImplantMod.InstallChip((HackerModChip)GetLoadedItemById(saveHacker.neuralWetwareId3), 2);
                }
                newHacker.GetHackerLoadout().EquipRecreatedItem(newNeuralImplantMod);

                HackerMod newUplinkMod = (HackerMod)GetLoadedItemById(saveHacker.uplinkId);
                if (saveHacker.uplinkChipsetId1 != -1)
                {
                    newUplinkMod.InstallChip((HackerModChip)GetLoadedItemById(saveHacker.uplinkChipsetId1), 0);
                }
                if (saveHacker.uplinkChipsetId2 != -1)
                {
                    newUplinkMod.InstallChip((HackerModChip)GetLoadedItemById(saveHacker.uplinkChipsetId2), 1);
                }
                if (saveHacker.uplinkChipsetId3 != -1)
                {
                    newUplinkMod.InstallChip((HackerModChip)GetLoadedItemById(saveHacker.uplinkChipsetId3), 2);
                }
                newHacker.GetHackerLoadout().EquipRecreatedItem(newUplinkMod);
            }

            ownedHackers.Add(newHacker);
            if (newHacker.GetHackerId() == saveObject.currentHacker)
            {
                currentHacker = newHacker;
            }
        }

        List <SaveJob> saveJobs = JsonConvert.DeserializeObject <List <SaveJob> >(saveObject.jobOptions);

        currentJobOptions = new List <Job>();
        foreach (SaveJob saveJob in saveJobs)
        {
            Job newJob = ScriptableObject.CreateInstance <Job>();
            newJob.LoadJobFromSave(saveJob);

            currentJobOptions.Add(newJob);
        }

        // General Player Data
        currentCredits  = saveObject.playerCredits;
        generatedItemId = saveObject.currentItemId;
        saveSlot        = saveObject.saveSlot;

        // Shop Stuff
        currentShopType   = (ShopMenu.ShopForSaleType)saveObject.currentShopType;
        previousShopTypes = new List <ShopMenu.ShopForSaleType>();
        List <int> shopTypeIds = JsonConvert.DeserializeObject <List <int> >(saveObject.previousShopTypes);

        foreach (int shopTypeId in shopTypeIds)
        {
            previousShopTypes.Add((ShopMenu.ShopForSaleType)shopTypeId);
        }

        List <SaveItem> savedShopItems = JsonConvert.DeserializeObject <List <SaveItem> >(saveObject.itemsForSale);

        itemsForSale = new List <Item>();
        foreach (SaveItem saveItem in savedShopItems)
        {
            if (saveItem.hackerOrRunner == (int)Item.HackerRunner.Hacker)
            {
                // Hacker Items
                if (saveItem.itemType == (int)Item.ItemTypes.Rig || saveItem.itemType == (int)Item.ItemTypes.NeuralImplant || saveItem.itemType == (int)Item.ItemTypes.Uplink)
                {
                    HackerMod newHackerMod = ScriptableObject.CreateInstance <HackerMod>();
                    newHackerMod.RecreateSavedHackerMod(saveItem);
                    itemsForSale.Add(newHackerMod);
                }
                else
                {
                    HackerModChip newHackerModChip = ScriptableObject.CreateInstance <HackerModChip>();
                    newHackerModChip.RecreateSavedHackerModChip(saveItem);
                    itemsForSale.Add(newHackerModChip);
                }
            }
            else if (saveItem.hackerOrRunner == (int)Item.HackerRunner.Runner)
            {
                // Create Runner Items
                RunnerMod newRunnerMod = ScriptableObject.CreateInstance <RunnerMod>();
                newRunnerMod.RecreateSavedRunnerMod(saveItem);
                itemsForSale.Add(newRunnerMod);
            }
        }

        isPlayerLoaded = true;
    }
Beispiel #13
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;
    }