Exemplo n.º 1
0
 // 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);
         }
     }
 }
Exemplo n.º 2
0
    public static bool isBlueprintApplied(ItemAbstract item)
    {
        int applied = PlayerPrefs.GetInt("TSSEList[Blueprint][" + ItemDefinitions.itemToString(item) + "]");

        if (applied == 1)
        {
            return(true);
        }
        return(false);
    }
Exemplo n.º 3
0
    // 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;
                }
            }
        }
    }
Exemplo n.º 4
0
 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();
 }
Exemplo n.º 5
0
 // 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);
 }
Exemplo n.º 6
0
    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);
    }
Exemplo n.º 7
0
    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;
        }
    }
Exemplo n.º 8
0
    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();
    }
Exemplo n.º 9
0
    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));
         *  }
         * }
         */
    }
Exemplo n.º 10
0
    // 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);
    }
Exemplo n.º 11
0
 public static void applyBlueprint(ItemAbstract item)
 {
     PlayerPrefs.SetInt("TSSEList[Blueprint][" + ItemDefinitions.itemToString(item) + "]", 1);
 }
Exemplo n.º 12
0
    // 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));
            }
        }
    }