public PowerTag GetPrerequisite(PowerTag tag) { string power = GetComponent <GameData>().GetStringData( "PowerPrerequisite", tag); return((PowerTag)Enum.Parse(typeof(PowerTag), power)); }
private string GetPowerStatus(PowerTag tag) { // Status: %str% string powerStatus = GetComponent <GameText>().GetStringData(node, "Status"); string unlocked = GetComponent <GameText>().GetStringData(node, "Unlocked"); string locked = GetComponent <GameText>().GetStringData(node, "Locked"); string owned = GetComponent <GameText>().GetStringData(node, "Owned"); if (FindObjects.PC.GetComponent <Power>().HasPower(tag)) { powerStatus = powerStatus.Replace("%str%", owned); } else if (FindObjects.PC.GetComponent <Power>().IsBuyable(tag)) { powerStatus = powerStatus.Replace("%str%", unlocked); } else { powerStatus = powerStatus.Replace("%str%", locked); } return(powerStatus); }
private string GetPowerName(PowerTag tag) { string powerName = GetComponent <PowerData>().GetPowerName(tag); powerName = "[ " + powerName + " ]"; return(powerName); }
public void BuyPower(PowerTag power) { if (IsBuyable(power, out PowerSlotTag slot, out int potion)) { GainPower(slot, power); GetComponent <Potion>().LosePotion(potion); } }
public bool HasPower(PowerTag tag) { foreach (PowerTag pt in powerDict.Values) { if (tag == pt) { return(true); } } return(false); }
private void PrintPowerDescription() { PowerTag tag = orderedPower[cursorPosition]; getUI(UITag.BuyPowerName).text = GetPowerName(tag); getUI(UITag.BuyPowerStatus).text = GetPowerStatus(tag); getUI(UITag.BuyPowerCost).text = GetPowerCost(tag); getUI(UITag.BuyPowerPCHP).text = GetPCHP(); getUI(UITag.BuyPowerDescription).text = GetComponent <GameText>().GetStringData( "PowerDescription", tag); }
public bool IsActive(PowerTag power) { foreach (PowerSlotTag slot in Enum.GetValues(typeof(PowerSlotTag))) { if (HasPower(slot, out PowerTag powerInSlot, out bool isActive) && (power == powerInSlot)) { return(isActive); } } return(false); }
private string GetPowerCost(PowerTag tag) { // Cost: %num1%/%num2% string powerCost = GetComponent <GameText>().GetStringData(node, "Cost"); int reqPotion = GetComponent <PowerData>().GetPowerCost(tag); int hasPotion = FindObjects.PC.GetComponent <Potion>().CurrentPotion; powerCost = powerCost.Replace("%num1%", reqPotion.ToString()); powerCost = powerCost.Replace("%num2%", hasPotion.ToString()); return(powerCost); }
private void TryBuyPower() { PowerTag power = buyPower.HighlightedPower; if (pcPower.IsBuyable(power) && !pcPower.HasPower(power)) { if (confirmToBuy) { pcPower.BuyPower(power); ReadyToBuy(false); } else { ReadyToBuy(true); } } }
public bool HasPower(PowerSlotTag slot, out PowerTag tag, out bool isActive) { if (powerDict.TryGetValue(slot, out tag)) { if (tag != PowerTag.INVALID) { isActive = GetComponent <Stress>().CurrentStress >= ((int)slot + 1); return(true); } } tag = PowerTag.INVALID; isActive = false; return(false); }
public bool IsBuyable(PowerTag power, out PowerSlotTag slot, out int potion) { PowerSlotTag[] checkSlot = new PowerSlotTag[] { PowerSlotTag.Slot1, PowerSlotTag.Slot2, PowerSlotTag.Slot3 }; bool slotIsFull = true; bool preIsMissing = true; PowerTag prePower = powerData.GetPrerequisite(power); slot = PowerSlotTag.Slot1; potion = 0; potion = powerData.GetPowerCost(power); if (GetComponent <Potion>().CurrentPotion < potion) { return(false); } foreach (PowerSlotTag s in checkSlot) { if (powerDict[s] == prePower) { preIsMissing = false; } if (powerDict[s] == PowerTag.INVALID) { slotIsFull = false; slot = s; // If current slot is empty, it means we have checked all // powers that PC has and `preIsMissing` will no longer // change. We can break out of the loop safely. break; } } if (slotIsFull || preIsMissing) { return(false); } return(true); }
public bool IsBuyable(PowerTag power) { return(IsBuyable(power, out _, out _)); }
public void GainPower(PowerSlotTag slot, PowerTag power) { powerDict[slot] = power; }
public string GetPowerName(PowerTag tag) { return(GetComponent <GameText>().GetStringData("PowerName", tag)); }
public int GetPowerCost(PowerTag tag) { return(GetComponent <GameData>().GetIntData("PowerCost", tag)); }