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(); }
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(); }
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(); }
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)); }
public void RemoveArchetypeItemData(ArchetypeItem archetypeItem) { ArchetypeItemSaveData saveData = archetypeItemList.Find(x => x.id == archetypeItem.Id); if (saveData != null) { archetypeItemList.Remove(saveData); } }
private void OnEnable() { HeroName = ""; primaryArchetype = null; secondaryArchetype = null; sprite.sprite = ResourceManager.Instance.GetHeroSprites()[0]; currentSpriteIndex = 0; UpdatePanels(); }
private void ResetPanel() { archetypeSlot.GetComponentInChildren <TextMeshProUGUI>().text = "SELECT ARCHETYPE"; selectedArchetypeItem = null; selectedAbilityBase = null; confirmButton.interactable = false; abilitySlot.ClearSlot(); ClearSlotsInUse(); }
public void SwapButtonClick() { if (primaryArchetype != null && secondaryArchetype != null) { ArchetypeItem temp = primaryArchetype; primaryArchetype = secondaryArchetype; secondaryArchetype = temp; UpdatePanels(); } }
public bool AddArchetypeToInventory(ArchetypeItem newArchetype) { if (archetypeInventory.Contains(newArchetype)) { return(false); } archetypeInventory.Add(newArchetype); SaveManager.CurrentSave.SaveArchetypeItemData(newArchetype); return(true); }
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)); } }
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); }
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; }
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); } }
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()); }
public void SaveArchetypeItemData(ArchetypeItem archetypeItem) { archetypeItemList.Add(new ArchetypeItemSaveData(archetypeItem.Id, archetypeItem.Base.idName)); }
public bool RemoveArchetypeFromInventory(ArchetypeItem archetype) { archetypeInventory.Remove(archetype); SaveManager.CurrentSave.RemoveArchetypeItemData(archetype); return(true); }