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();
    }
Exemple #3
0
    public void EquipItem(RunnerMod newMod, LeftOrRight leftOrRight)
    {
        switch (newMod.GetItemType())
        {
        case Item.ItemTypes.Arm:
            if (leftOrRight == LeftOrRight.Left)
            {
                leftArm = newMod;
            }
            else if (leftOrRight == LeftOrRight.Right)
            {
                rightArm = newMod;
            }
            break;

        case Item.ItemTypes.Leg:
            if (leftOrRight == LeftOrRight.Left)
            {
                leftLeg = newMod;
            }
            else if (leftOrRight == LeftOrRight.Right)
            {
                rightLeg = newMod;
            }
            break;
        }
    }
Exemple #4
0
    public void EquipItem(RunnerMod newMod)
    {
        switch (newMod.GetItemType())
        {
        case Item.ItemTypes.Arm:
            // TODO: DO THIS DIFFERENTLY IN AN OVERLOADED FUNCTION
            break;

        case Item.ItemTypes.Exoskeleton:
            exoskeletonMod = newMod;
            break;

        case Item.ItemTypes.Head:
            headMod = newMod;
            break;

        case Item.ItemTypes.Leg:
            // TODO: DO THIS DIFFERENTLY IN AN OVERLOADED FUNCTION WITH LEFT/RIGHT
            break;

        case Item.ItemTypes.Torso:
            torsoMod = newMod;
            break;

        case Item.ItemTypes.Weapon:
            weapon = newMod;
            break;
        }
    }
Exemple #5
0
    public void SetupInitialLoadout(int newRunnerId)
    {
        runnerId = newRunnerId;

        switch (runnerId)
        {
        case 0:
            headMod = CreateInstance <RunnerMod>();
            headMod.SetupMod("Human Eyes");

            torsoMod = CreateInstance <RunnerMod>();
            torsoMod.SetupMod("Unmodded Torso");

            exoskeletonMod = CreateInstance <RunnerMod>();
            exoskeletonMod.SetupMod("Human Skin");

            leftArm = CreateInstance <RunnerMod>();
            leftArm.SetupMod("Unmodded Arm");

            rightArm = CreateInstance <RunnerMod>();
            rightArm.SetupMod("Unmodded Arm");

            leftLeg = CreateInstance <RunnerMod>();
            leftLeg.SetupMod("Unmodded Leg");

            rightLeg = CreateInstance <RunnerMod>();
            rightLeg.SetupMod("Unmodded Leg");

            weapon = CreateInstance <RunnerMod>();
            weapon.SetupMod("Spanner");
            break;
        }
    }
Exemple #6
0
 public bool IsItemEquipped(RunnerMod modToCheck)
 {
     RunnerMod[] runnerMods = GetAllMods();
     foreach (RunnerMod mod in runnerMods)
     {
         if (mod.GetInstanceID() == modToCheck.GetInstanceID())
         {
             return(true);
         }
     }
     return(false);
 }
    private bool IsItemEquipped()
    {
        switch (item.GetHackerOrRunner())
        {
        case Item.HackerRunner.Runner:
            Loadout   runnerLoadout = FindObjectOfType <PlayerData>().GetCurrentRunner().GetLoadout();
            RunnerMod currentMod    = item as RunnerMod;
            return(runnerLoadout.IsItemEquipped(currentMod));

        case Item.HackerRunner.Hacker:
            // TODO: FILL THIS SHIT IN FOR HACKER
            HackerLoadout hackerLoadout = FindObjectOfType <PlayerData>().GetCurrentHacker().GetHackerLoadout();
            return(hackerLoadout.IsItemEquipped(item));
        }
        return(false);
    }
Exemple #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();
    }
    private void EnableOrDisableEquipButtonBasedOnSelection()
    {
        if (selectedItem == null)
        {
            runnerEquipButton.interactable = false;
            hackerEquipButton.interactable = false;
        }
        else
        {
            switch (selectedItem.GetHackerOrRunner())
            {
            case Item.HackerRunner.Runner:
                Loadout   runnerLoadout = FindObjectOfType <PlayerData>().GetCurrentRunner().GetLoadout();
                RunnerMod mod           = selectedItem as RunnerMod;
                if (runnerLoadout.IsItemEquipped(mod))
                {
                    runnerEquipButton.interactable = false;
                }
                else
                {
                    runnerEquipButton.interactable = true;
                }
                break;

            case Item.HackerRunner.Hacker:
                HackerLoadout hackerLoadout = FindObjectOfType <PlayerData>().GetCurrentHacker().GetHackerLoadout();
                if (hackerLoadout.IsItemEquipped(selectedItem))
                {
                    hackerEquipButton.interactable = false;
                }
                else
                {
                    hackerEquipButton.interactable = true;
                }
                break;
            }
        }
    }
Exemple #10
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 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;
            }
        }
    }
Exemple #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;
    }
Exemple #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;
    }
Exemple #14
0
 private RunnerMod[] GetAllMods()
 {
     RunnerMod[] allMods = new RunnerMod[] { headMod, torsoMod, exoskeletonMod, leftArm, rightArm, leftLeg, rightLeg, weapon };
     return(allMods);
 }