Ejemplo n.º 1
0
    public void ConfirmCreateOnClick()
    {
        if (primaryArchetype == null)
        {
            return;
        }
        if (primaryArchetype.Base == secondaryArchetype?.Base)
        {
            return;
        }
        HeroData    hero   = HeroData.CreateNewHero(HeroName, primaryArchetype.Base, secondaryArchetype?.Base);
        PlayerStats player = GameManager.Instance.PlayerStats;

        hero.spriteName = ResourceManager.Instance.GetHeroSprites()[currentSpriteIndex].name.Replace("(Clone)", "");
        player.AddHeroToList(hero);
        player.RemoveArchetypeFromInventory(primaryArchetype);

        primaryArchetype = null;

        if (secondaryArchetype != null)
        {
            player.RemoveArchetypeFromInventory(secondaryArchetype);
            secondaryArchetype = null;
        }

        SaveManager.Save();

        HeroName = "";
        UpdatePanels();
    }
Ejemplo n.º 2
0
    public void ShowArchetypesFiltered(List <ArchetypeBase> filter, bool resetCallback = true, bool addNullSlot = false)
    {
        if (resetCallback)
        {
            currentCallback = null;
        }
        ClearSlots();
        if (addNullSlot)
        {
            AddInventorySlot(null, null, 0);
        }

        toggleAffixesButton.gameObject.SetActive(false);
        showItemAffixes = false;
        SetGridCellSize(ViewType.ARCHETYPE);

        for (int i = 0; i < GameManager.Instance.PlayerStats.ArchetypeInventory.Count; i++)
        {
            ArchetypeItem item = GameManager.Instance.PlayerStats.ArchetypeInventory[i];
            if (filter.Contains(item.Base))
            {
                continue;
            }
            AddInventorySlot(item, currentCallback, i + 1);
        }
        DeactivateSlotsInPool();
    }
Ejemplo n.º 3
0
 public void ArchetypeSlotOnClick_Callback(Item item)
 {
     if (item != null && item.GetItemType() != ItemType.ARCHETYPE)
     {
         return;
     }
     if (selectedSlot == 1)
     {
         if (item != null)
         {
             primaryArchetype = item as ArchetypeItem;
         }
         else
         {
             primaryArchetype   = secondaryArchetype;
             secondaryArchetype = null;
         }
     }
     else if (selectedSlot == 2)
     {
         if (item != null)
         {
             secondaryArchetype      = item as ArchetypeItem;
             archetypeSlot2Text.text = secondaryArchetype.Name;
         }
         else
         {
             secondaryArchetype = null;
         }
     }
     UpdatePanels();
     UIManager.Instance.CloseCurrentWindow();
 }
Ejemplo n.º 4
0
    public void AddItem()
    {
        Equipment equipment = Equipment.CreateRandomEquipment(100);

        GameManager.Instance.PlayerStats.AddEquipmentToInventory(equipment);
        GameManager.Instance.PlayerStats.AddArchetypeToInventory(ArchetypeItem.CreateRandomArchetypeItem(100));
        GameManager.Instance.PlayerStats.AddEquipmentToInventory(Equipment.CreateRandomUnique(100));
    }
Ejemplo n.º 5
0
    public void RemoveArchetypeItemData(ArchetypeItem archetypeItem)
    {
        ArchetypeItemSaveData saveData = archetypeItemList.Find(x => x.id == archetypeItem.Id);

        if (saveData != null)
        {
            archetypeItemList.Remove(saveData);
        }
    }
Ejemplo n.º 6
0
 private void OnEnable()
 {
     HeroName           = "";
     primaryArchetype   = null;
     secondaryArchetype = null;
     sprite.sprite      = ResourceManager.Instance.GetHeroSprites()[0];
     currentSpriteIndex = 0;
     UpdatePanels();
 }
Ejemplo n.º 7
0
 private void ResetPanel()
 {
     archetypeSlot.GetComponentInChildren <TextMeshProUGUI>().text = "SELECT ARCHETYPE";
     selectedArchetypeItem      = null;
     selectedAbilityBase        = null;
     confirmButton.interactable = false;
     abilitySlot.ClearSlot();
     ClearSlotsInUse();
 }
Ejemplo n.º 8
0
 public void SwapButtonClick()
 {
     if (primaryArchetype != null && secondaryArchetype != null)
     {
         ArchetypeItem temp = primaryArchetype;
         primaryArchetype   = secondaryArchetype;
         secondaryArchetype = temp;
         UpdatePanels();
     }
 }
Ejemplo n.º 9
0
 public bool AddArchetypeToInventory(ArchetypeItem newArchetype)
 {
     if (archetypeInventory.Contains(newArchetype))
     {
         return(false);
     }
     archetypeInventory.Add(newArchetype);
     SaveManager.CurrentSave.SaveArchetypeItemData(newArchetype);
     return(true);
 }
Ejemplo n.º 10
0
 public static AbilityCoreItem CreateAbilityItemFromArchetype(ArchetypeItem archetypeItem, AbilityBase abilityBase)
 {
     if (!archetypeItem.Base.GetArchetypeAbilities(true).Contains(abilityBase) && abilityBase != archetypeItem.Base.GetSoulAbility())
     {
         return(null);
     }
     else
     {
         GameManager.Instance.PlayerStats.RemoveArchetypeFromInventory(archetypeItem);
         string name = archetypeItem.Name + "'s " + abilityBase.LocalizedName;
         return(new AbilityCoreItem(abilityBase, name));
     }
 }
Ejemplo n.º 11
0
    public void AddHero()
    {
        ArchetypeItem a1 = ArchetypeItem.CreateRandomArchetypeItem(100);
        ArchetypeItem a2 = ArchetypeItem.CreateRandomArchetypeItem(100);

        while (a1.Base == a2.Base)
        {
            a2 = ArchetypeItem.CreateRandomArchetypeItem(100);
        }
        HeroData hero = HeroData.CreateNewHero("TEST" + Random.Range(4, 500), a1.Base, a2.Base);

        GameManager.Instance.PlayerStats.AddHeroToList(hero);
    }
Ejemplo n.º 12
0
    public void OnClickConfirm()
    {
        if (selectedHero == null)
        {
            return;
        }

        for (int i = 0; i < 3; i++)
        {
            selectedHero.UnequipAbility(i);
        }
        foreach (EquipSlotType e in Enum.GetValues(typeof(EquipSlotType)))
        {
            selectedHero.UnequipFromSlot(e);
        }

        float xp;

        if (archetypeToKeep == null)
        {
            xp = selectedHero.Experience * 0.4f;
        }
        else
        {
            GameManager.Instance.PlayerStats.AddArchetypeToInventory(ArchetypeItem.CreateArchetypeItem(archetypeToKeep, selectedHero.Level));
            xp = selectedHero.Experience * 0.2f;
        }

        GameManager.Instance.PlayerStats.RemoveHeroFromList(selectedHero);

        selectedHero    = null;
        archetypeToKeep = null;

        GameManager.Instance.PlayerStats.ModifyExpStock((int)xp);
        SaveManager.Save();
        ArchetypeButton1.gameObject.SetActive(false);
        ArchetypeButton2.gameObject.SetActive(false);
        buttonText.text = "Select Hero";
        helpText.text   = "";
        textBox.text    = "";
        slotsText.text  = "Hero Slots: " + GameManager.Instance.PlayerStats.HeroList.Count + "/" + PlayerStats.maxHeroes;
    }
Ejemplo n.º 13
0
    private void AddArchetypeDrops(BattleEndWindow battleEndWindow)
    {
        //Get Archetype
        int archetypeDrops = 1 + survivalLoopCount / 3;
        int i = 0;

        if (stageInfo.archetypeDropList.Count != 0)
        {
            WeightList <string> stageDropList = Helpers.CreateWeightListFromWeightBases(stageInfo.archetypeDropList);
            string        baseId        = stageDropList.ReturnWeightedRandom();
            ArchetypeBase archetypeBase = ResourceManager.Instance.GetArchetypeBase(baseId);
            ArchetypeItem item          = ArchetypeItem.CreateArchetypeItem(archetypeBase, stageLevel);
            gainedArchetypeItems.Add(item);
            i = 1;
        }

        for (; i < archetypeDrops; i++)
        {
            ArchetypeItem item = ArchetypeItem.CreateArchetypeItem(ResourceManager.Instance.GetRandomArchetypeBase(stageLevel + survivalLoopCount), stageLevel + survivalLoopCount);
            gainedArchetypeItems.Add(item);
        }
    }
Ejemplo n.º 14
0
    public void ArchetypeSlotOnClick_Callback(Item item)
    {
        UIManager.Instance.CloseCurrentWindow();
        abilitySlot.ClearSlot();
        archetypeSlot.GetComponentInChildren <TextMeshProUGUI>().text = "Select Archetype";
        confirmButton.interactable = false;
        ClearSlotsInUse();

        if (item == null || (item != null && item.GetItemType() != ItemType.ARCHETYPE))
        {
            selectedArchetypeItem = null;
            return;
        }
        selectedArchetypeItem = item as ArchetypeItem;
        archetypeSlot.GetComponentInChildren <TextMeshProUGUI>().text = selectedArchetypeItem.Name;

        foreach (AbilityBase ability in selectedArchetypeItem.Base.GetArchetypeAbilities(true))
        {
            AddExtractSlot(ability);
        }

        AddExtractSlot(selectedArchetypeItem.Base.GetSoulAbility());
    }
Ejemplo n.º 15
0
 public void SaveArchetypeItemData(ArchetypeItem archetypeItem)
 {
     archetypeItemList.Add(new ArchetypeItemSaveData(archetypeItem.Id, archetypeItem.Base.idName));
 }
Ejemplo n.º 16
0
 public bool RemoveArchetypeFromInventory(ArchetypeItem archetype)
 {
     archetypeInventory.Remove(archetype);
     SaveManager.CurrentSave.RemoveArchetypeItemData(archetype);
     return(true);
 }