// reduce quantity, remove from list if none are left public void removeItem(ItemAbstract item) { /* * if (WeaponItem.isWeaponType(item.getType())) * { * if (numOfEachWeapItem[ItemDefinitions.itemToInt(item)] == 0) * return; * numOfEachWeapItem[ItemDefinitions.itemToInt(item)] -= 1; * } * else if (EngineItem.isEngineType(item.getType())) * { * if (numOfEachEngItem[ItemDefinitions.itemToInt(item)] == 0) * return; * numOfEachEngItem[ItemDefinitions.itemToInt(item)] -= 1; * } */ inventory[ItemDefinitions.itemToString(item)]--; inventoryDisplay.GetComponent <ItemListHandler>(). removeItem(item); if (item.getTier() > 3) { if (blueprintDisplay != null) { blueprintDisplay.GetComponent <ItemListHandler>(). removeItem(item); } } }
public static bool isBlueprintApplied(ItemAbstract item) { int applied = PlayerPrefs.GetInt("TSSEList[Blueprint][" + ItemDefinitions.itemToString(item) + "]"); if (applied == 1) { return(true); } return(false); }
// reduce quantity if present, otherwise remove item public void removeItem(ItemAbstract item) { if (mode == "blueprint") { item = ItemAbstract.newItem(item.getType(), item.getTier() - 3); } // like in addItem, first we search for the item string itemText = ItemDefinitions.itemToString(item); print("removing item: " + itemText); if (iconsMode) { for (int i = 0; i < transform.GetChild(0).childCount; i++) { ItemBasic indexItem = transform.GetChild(0).GetChild(i).GetComponent <ItemBasic>(); string labelItemText = indexItem.itemString; // if it matches, we found it if (labelItemText == itemText) { transform.GetChild(0).GetChild(i). GetComponent <IconHandler>().decOne(); return; } } } else { for (int i = 0; i < transform.GetChild(0).childCount; i++) { UnityEngine.UI.Text indexItem = transform.GetChild(0).GetChild(i).GetChild(0). GetComponent <UnityEngine.UI.Text>(); string labelItemText = indexItem.text.Substring(0, indexItem.text.Length - 4); int numItems = int.Parse(indexItem.text.Substring(indexItem.text.Length - 2, 1)); // if it matches, we found it if (labelItemText == itemText) { // first figure out how many we now have int x = numItems; x--; // we have none left, so remove this item if (x == 0) { GameObject.Destroy(indexItem.transform.parent.gameObject); return; } // refresh the label indexItem.text = itemText + " (" + x + ")"; return; } } } }
public void clearInventory() { inventory = new Dictionary <string, int>(); for (int i = 0; i < WeaponItem.numWeaponTypes; i++) { ItemAbstract item = ItemDefinitions.intToItem(i); inventory[ItemDefinitions.itemToString(item)] = 0; } for (int i = 0; i < EngineItem.numEngineTypes; i++) { ItemAbstract item = ItemDefinitions.intToItem(i + WeaponItem.numWeaponTypes); inventory[ItemDefinitions.itemToString(item)] = 0; } inventoryDisplay.GetComponent <ItemListHandler>().removeAllItems(); }
// do we have the item? maybeeee public bool findItem(ItemAbstract item) { /* * if(WeaponItem.isWeaponType(item.getType())) * { * return (numOfEachWeapItem[ItemDefinitions.itemToInt(item)] != 0); * } * else if(EngineItem.isEngineType(item.getType())) * { * return (numOfEachEngItem[ItemDefinitions.itemToInt(item)] != 0); * } */ if (inventory[ItemDefinitions.itemToString(item)] > 0) { return(true); } return(false); }
public bool findItem(ItemAbstract item) { //if (mode == "blueprint") //item = ItemAbstract.newItem(item.getType(), item.getTier() - 3); // First, convert item to a string string itemText = ItemDefinitions.itemToString(item); // Now, search through items we have for a matching one // It's in the format "ObjectName (x)", so we trim the (x) part if (!iconsMode) { for (int i = 0; i < transform.GetChild(0).childCount; i++) { UnityEngine.UI.Text indexItem = transform.GetChild(0).GetChild(i).GetChild(0). GetComponent <UnityEngine.UI.Text>(); string labelItemText = indexItem.text.Substring(0, indexItem.text.Length - 4); int numItems = int.Parse(indexItem.text.Substring(indexItem.text.Length - 2, 1)); // if this is the item: if (labelItemText == itemText) { return(true); } } } else { for (int i = 0; i < transform.GetChild(0).childCount; i++) { ItemBasic indexItem = transform.GetChild(0).GetChild(i).GetComponent <ItemBasic>(); string labelItemText = indexItem.itemString; int numItems = indexItem.itemQuantity; // if this is the item: if (labelItemText == itemText) { return(true); } } } return(false); }
public void applyBuff(ItemAbstract itemA) { WeaponItem item = (WeaponItem)itemA; if (!WeaponItem.isWeaponType(item.getType())) { return; } print("Item is: " + ItemDefinitions.itemToString(item)); if (item.tier == 0) { return; } if (projectile == null) { projectile = GameObject.Find("GameLogic").GetComponent <PrefabHost>().getMissileObject(); } switch (item.type) { case WeaponItem.WeaponType.MissileModDamage: // damage is 20 by default // damage is 30 with tier 1 upgrade // damage is 40 with tier 2 upgrade // damage is 50 with tier 3 upgrade int damage = 20; damage += item.tier * 10; projectile.GetComponent <HomingMissile>(). setDamage(damage); break; case WeaponItem.WeaponType.MissileModFireRate: // rate is 1 by default // rate is 0.75 with tier 1 upgrade // rate is 0.5 with tier 2 upgrade // rate is 0.25 with tier 3 upgrade immediateCooldownMax = 1; immediateCooldownMax -= item.tier * 0.25f; break; case WeaponItem.WeaponType.MissileModAmmoCap: // cap is 2 by default // cap is 3 with tier 1 upgrade (1^1 = 1, ceil(1/2) = 1, 2+1 = 3) // cap is 4 with tier 2 upgrade (2^1 = 4, ceil(4/2) = 2, 2+2 = 4) // cap is 7 with tier 3 upgrade (3^1 = 9, ceil(9/2) = 5, 2+5 = 7) ammoMax = 3 + (int)Mathf.Ceil((item.tier * item.tier) / 2); ammunition = ammoMax; break; case WeaponItem.WeaponType.MissileModRechargeRate: // cooldown is 3 by default // cooldown is 2.5 with tier 1 upgrade // cooldown is 2 with tier 2 upgrade // cooldown is 1.5 with tier 3 upgrade ammoCooldown = 3; ammoCooldown -= item.tier * 0.5f; break; case WeaponItem.WeaponType.MissileModSpeed: // proj speed is 3 by default // proj speed is 4 with tier 1 upgrade // proj speed is 5 with tier 2 upgrade // proj speed is 6 with tier 3 upgrade int newSpeed = 3; newSpeed += item.tier; projectile.GetComponent <HomingMissile>().setMoveSpeed(newSpeed); break; case WeaponItem.WeaponType.MissileModRange: // lifetime is 25 by default // lifetime is 35 with tier 1 upgrade // lifetime is 45 with tier 2 upgrade // lifetime is 60 with tier 3 upgrade int newLifetime = 25; newLifetime += 10; if (item.tier == 2) { newLifetime += 10; } else if (item.tier == 3) { newLifetime += 25; } projectile.GetComponent <HomingMissile>().setLifetime(newLifetime); break; default: return; } }
void Start() { if (inventoryType == "Player") { currency = PlayerPrefs.GetInt("score"); } else { currency = PlayerPrefs.GetInt("score-" + inventoryType); } //PlayerPrefs.DeleteAll(); List <ItemAbstract> items = ItemDefinitions.stringToItems( ItemDefinitions.loadItems(uniqueId)); /* * if(inventoryType == "Merchant") * { * items = new List<ItemAbstract>(); * items.Add(new EngineItem(EngineItem.EngineType.Spinjet, 4)); * * items.Add(new WeaponItem(WeaponItem.WeaponType.CrownModAmmoCap, 4)); * items.Add(new WeaponItem(WeaponItem.WeaponType.CrownModRange, 4)); * items.Add(new WeaponItem(WeaponItem.WeaponType.FlameModRechargeRate, 4)); * items.Add(new WeaponItem(WeaponItem.WeaponType.MissileModAmmoCap, 4)); * items.Add(new WeaponItem(WeaponItem.WeaponType.MissileModAmmoCap, 5)); * } * else if(inventoryType == "Player") * { * items = new List<ItemAbstract>(); * items.Add(new WeaponItem(WeaponItem.WeaponType.CrownModAmmoCap, 1)); * items.Add(new WeaponItem(WeaponItem.WeaponType.CrownModAmmoCap, 2)); * items.Add(new WeaponItem(WeaponItem.WeaponType.CrownModAmmoCap, 4)); * items.Add(new WeaponItem(WeaponItem.WeaponType.CrownModRange, 2)); * items.Add(new WeaponItem(WeaponItem.WeaponType.CrownModRechargeRate, 3)); * items.Add(new WeaponItem(WeaponItem.WeaponType.FlameModAmmoCap, 2)); * items.Add(new WeaponItem(WeaponItem.WeaponType.FlameModAmmoCap, 2)); * items.Add(new WeaponItem(WeaponItem.WeaponType.FlameModRechargeRate, 3)); * items.Add(new WeaponItem(WeaponItem.WeaponType.FlameModRechargeRate, 1)); * } * /* * List<ItemAbstract> items = new List<ItemAbstract>(); * // hardcoding temporary item list * items.Add(new WeaponItem(WeaponItem.WeaponType.CrownModAmmoCap, 1)); * items.Add(new WeaponItem(WeaponItem.WeaponType.CrownModAmmoCap, 2)); * items.Add(new WeaponItem(WeaponItem.WeaponType.CrownModRange, 2)); * items.Add(new WeaponItem(WeaponItem.WeaponType.CrownModRechargeRate, 3)); * items.Add(new WeaponItem(WeaponItem.WeaponType.FlameModAmmoCap, 2)); * items.Add(new WeaponItem(WeaponItem.WeaponType.FlameModAmmoCap, 2)); * items.Add(new WeaponItem(WeaponItem.WeaponType.FlameModRechargeRate, 3)); * items.Add(new WeaponItem(WeaponItem.WeaponType.FlameModRechargeRate, 1)); */ clearInventory(); foreach (ItemAbstract item in items) { if (item.getType() != "Error") { print("adding " + item); //addItem(item); inventory[ItemDefinitions.itemToString(item)]++; if (item.getTier() > 3) { if (blueprintDisplay != null) { blueprintDisplay.GetComponent <ItemListHandler>(). addItem(item); } } } } saveInventory(); //ItemDefinitions.saveItems("Player", ItemDefinitions.itemsToString(items)); if (shipDisplay != null) { for (int i = 0; i < 6; i++) { string id = "PlayerShip" + i.ToString(); shipDisplay.GetComponent <ShipListHandler>().addShip(ShipDefinitions.loadShip(id)); } } reloadItems(); updateCurrency(); }
public void loadInventory() { clearInventory(); List <ItemAbstract> items = ItemDefinitions.stringToItems( ItemDefinitions.loadItems(uniqueId)); foreach (ItemAbstract item in items) { addItem(item); inventory[ItemDefinitions.itemToString(item)]++; } /* * string invSlotLabel = uniqueId + "InventorySlotLabel[Weapon]"; * for (int i = 0; i < WeaponItem.numWeaponTypes; i++) * { * string currLabel = invSlotLabel + i.ToString(); * numOfEachWeapItem[i] = 0; * if (UnityEngine.PlayerPrefs.HasKey(currLabel)) * { * numOfEachWeapItem[i] = UnityEngine.PlayerPrefs.GetInt(currLabel); * } * else * { * continue; * } * } * * for (int i = 0; i < WeaponItem.numWeaponTypes; i++) * { * for (int j = 0; j < numOfEachWeapItem[i]; j++) * { * print("adding weapon item: " + i + " and num = " + numOfEachWeapItem[i]); * inventoryDisplay.GetComponent<ItemListHandler>().addItem(ItemDefinitions.intToItem(i)); * } * } * * invSlotLabel = uniqueId + "InventorySlotLabel[Engine]"; * for (int i = 0; i < EngineItem.numEngineTypes; i++) * { * string currLabel = invSlotLabel + i.ToString(); * numOfEachEngItem[i] = 0; * if (UnityEngine.PlayerPrefs.HasKey(currLabel)) * { * numOfEachEngItem[i] = UnityEngine.PlayerPrefs.GetInt(currLabel); * } * else * { * continue; * } * } * * for (int i = 0; i < EngineItem.numEngineTypes; i++) * { * if (i == 0) * print("adding engine item: " + i + " and num = " + numOfEachEngItem[i]); * for (int j = 0; j < numOfEachEngItem[i]; j++) * { * inventoryDisplay.GetComponent<ItemListHandler>().addItem(ItemDefinitions.intToItem(i)); * } * } */ }
// add the item // if it's already there, increase quantity public void addItem(ItemAbstract item) { if (mode == "blueprint") { item = ItemAbstract.newItem(item.getType(), item.getTier() - 3); } // First, convert item to a string string itemText = ItemDefinitions.itemToString(item); // Now, search through items we have for a matching one // It's in the format "ObjectName (x)", so we trim the (x) part if (!iconsMode) { for (int i = 0; i < transform.GetChild(0).childCount; i++) { UnityEngine.UI.Text indexItem = transform.GetChild(0).GetChild(i).GetChild(0). GetComponent <UnityEngine.UI.Text>(); string labelItemText = indexItem.text.Substring(0, indexItem.text.Length - 4); int numItems = int.Parse(indexItem.text.Substring(indexItem.text.Length - 2, 1)); // if this is the item: if (labelItemText == itemText) { // increase the quantity and update the label // then return cause we're done int x = numItems; x++; indexItem.text = itemText + " (" + x + ")"; return; } } } else { for (int i = 0; i < transform.GetChild(0).childCount; i++) { ItemBasic indexItem = transform.GetChild(0).GetChild(i).GetComponent <ItemBasic>(); string labelItemText = indexItem.itemString; int numItems = indexItem.itemQuantity; // if this is the item: if (labelItemText == itemText) { // increase the quantity and update the label // then return cause we're done int x = numItems; x++; indexItem.itemString = itemText; indexItem.itemQuantity = x; //print("++in ILH adding: " + itemText); transform.GetChild(0).GetChild(i).GetComponent <IconHandler>().setNum(x); //print("incrementing existing item: " + itemText); return; } } } // We haven't returned earlier, so this must be a new item // So, we create a new thing and add to the listview // We have an example item in the PrefabHost //print("creating new item: " + itemText); GameObject newItem; if (mode == "inventory") { newItem = GameObject.Find("GameLogic"). GetComponent <PrefabHost>().getInventoryItem(); } else if (mode == "merchant") { newItem = GameObject.Find("GameLogic"). GetComponent <PrefabHost>().getMerchantItem(); } else if (mode == "icon") { newItem = GameObject.Find("GameLogic"). GetComponent <PrefabHost>().getIconItem(); newItem.transform.position = new Vector3(-95 + 45 * (numItemsTotal % 5), 140 - 45 * (numItemsTotal / 5)); newItem.transform.GetChild(0).GetComponent <UnityEngine.UI.Image>() .sprite = getImage(item); } else { newItem = GameObject.Find("GameLogic"). GetComponent <PrefabHost>().getBlueprintItem(); } numItemsTotal++; // Initially has 1 object if (iconsMode) { newItem.GetComponent <ItemBasic>().itemString = itemText; newItem.GetComponent <ItemBasic>().itemQuantity = 1; newItem.GetComponent <IconHandler>().setNum(1); } else { newItem.transform.GetChild(0).GetComponent <UnityEngine.UI.Text>(). text = itemText + " (1)"; } // Add to listview newItem.transform.SetParent(transform.GetChild(0).transform, false); // This is so we call itemSelected if we click an item here newItem.GetComponent <UnityEngine.UI.Button>() .onClick.AddListener(delegate() { itemSelected(newItem); }); if (iconsMode) { /* * GameObject greyedItem = (GameObject)Instantiate(newItem, Vector3.zero, Quaternion.Euler(0, 0, 0)); * greyedItem.transform.SetParent(newItem.transform.parent); * greyedItem.transform.position = newItem.transform.position; * greyedItem.transform.SetAsFirstSibling(); * greyedItem.transform.GetChild(0).GetComponent<UnityEngine.UI.Image>() * .color = Color.gray; * Destroy(greyedItem.GetComponent<dragHandler>()); */ } else { GetComponent <UnityEngine.UI.ScrollRect>().verticalNormalizedPosition = 1; } //print("XXin ILH adding: " + itemText); }
public static void applyBlueprint(ItemAbstract item) { PlayerPrefs.SetInt("TSSEList[Blueprint][" + ItemDefinitions.itemToString(item) + "]", 1); }
// handle buying or selling public void handleItem() { GameObject itemObj = null; // whichever object is being bought or sold if (buying) { itemObj = merchantItemList.selectedItem; } else { itemObj = playerItemList.selectedItem; } // if nothing is selected, return if (itemObj == null) { return; } // convert the text from that object to an item // It's of the form "ObjectName (x)" where x is a quantity ItemAbstract item; UnityEngine.UI.Text indexItem = itemObj.transform.GetChild(0). GetComponent <UnityEngine.UI.Text>(); Regex regex = new Regex(@"\w+"); MatchCollection matches = regex.Matches(indexItem.text); item = ItemDefinitions.stringToItem(matches[0].ToString() + ":" + matches[1].ToString()); int cost; // handle inventory and currency changes if (buying) { cost = ItemDefinitions.getCost(item, merchantId, buying); merchantInventory.addCurrency(cost); playerInventory.addCurrency(-cost); merchantItemList.removeItem(item); playerItemList.addItem(item); if (item.getTier() > 3) { BlueprintDefinitions.applyBlueprint(item); print("applying blueprint " + ItemDefinitions.itemToString(item)); } } else { cost = ItemDefinitions.getCost(item, playerId, buying); merchantInventory.addCurrency(-cost); playerInventory.addCurrency(cost); playerItemList.removeItem(item); merchantItemList.addItem(item); if (item.getTier() > 3) { BlueprintDefinitions.deapplyBlueprint(item); print("deapplying blueprint " + ItemDefinitions.itemToString(item)); } } }