Пример #1
0
        public void dropItem(Item item, Entity e)
        {
            // TileBlock b = getPixel(item.Bounds.X, item.Bounds.Y);
            int sX = shrinkX(e.Bounds.Center.X, false);
            int sY = shrinkY(e.Bounds.Center.Y, false);

            // Get the floor
            TileBlock b = get(sX, sY);

            while (b.isWalkable())
            {
                b = get(sX, ++sY);
            }
            // Up one from the floor
            b = get(sX, --sY);

            EItem eitem = new EItem(item, sX * TileMap.SPRITE_SIZE +
                                    (TileMap.SPRITE_SIZE / 2 - EItem.DROP_SIZE / 2) + ScreenManager.Rand.Next(-4, 5), e.Bounds.Y);

            if (!b.isShared())
            {
                b = new TileBlock(b);
                set(sX, sY, b);
            }
            b.addGameObject(eitem);

            addGameObject(eitem);
        }
Пример #2
0
    private void UpdateItem()
    {
        var objitem = new EItem
        {
            ItemCode         = txtItemCode.Text,
            SKUCode          = txtSKUCode.Text,
            ManufacturerName = txtManfName.Text,
            ManufacturerID   = txtManfID.Text,
            InventoryItemID  = Convert.ToInt32(ddlInventory.SelectedItem.Value),
            Notes            = txtNote.Text
        };

        long addinvitem = 0;

        divErrorMsg.Visible = true;
        var masterDal = new MasterDAL();

        if (hfItemID.Value.Equals(""))
        {
            addinvitem            = masterDal.SaveItem(objitem, Convert.ToInt32(EOperationMode.Insert));
            divErrorMsg.InnerText = addinvitem == 999998 ? "Item code already exits." : "Item has been added successfully.";
        }
        else
        {
            objitem.ItemID = Convert.ToInt32(grdItem.DataKeys[Convert.ToInt32(hfItemID.Value)].Value);

            addinvitem = masterDal.SaveItem(objitem, Convert.ToInt32(EOperationMode.Update));

            divErrorMsg.InnerText = addinvitem == 0 ? "Item has been updated successfully." : "Item has been not updated due to internal error";
        }

        hfItemID.Value = "";
        GetAllItems();
    }
Пример #3
0
    public Item(JSONNode itemNode)
    {
        string itemString = itemNode["item"];

        m_item = EItem.Gel;
        EItem.TryParse(itemString, true, out m_item);

        if (itemNode["count"].AsObject != null)
        {
            JSONNode countNode = itemNode["count"].AsObject;
            if (countNode["min"] != null && countNode["max"] != null)
            {
                m_range.Minimum = countNode["min"].AsInt;
                m_range.Maximum = countNode["max"].AsInt;
            }
            else
            {
                m_range.Minimum = m_range.Maximum = 1;
            }
        }
        else if (itemNode["count"] != null)
        {
            m_range.Minimum = m_range.Maximum = itemNode["count"].AsInt;
        }
        else
        {
            m_range.Minimum = m_range.Maximum = 1;
        }
    }
Пример #4
0
    public GameObject SpawnFromTile(ETile tile_, ChunkInfo info_, int x_, int y_)
    {
        EItem toSpawn = EItem.None;

        if (tile_ == ETile.Mountain)
        {
            toSpawn = EItem.Stone;
        }
        else if (tile_ == ETile.Tree)
        {
            toSpawn = EItem.Wood;
        }

        if (toSpawn == EItem.None)
        {
            return(null);
        }

        ItemInstance ii = SpawnItem(toSpawn);

        if (!ii)
        {
            return(null);
        }

        Vector2 worldPos = WorldMap.Chunk2World(info_, x_, y_);

        ii.gameObject.transform.position = new Vector3(worldPos.x, worldPos.y, -0.06f);

        return(ii.gameObject);
    }
Пример #5
0
    public bool SkillActionAt(Vector3 worldPos)
    {
        int   selectedIndex = UIManager.Instance.SelectedInventorySlot;
        EItem selectedItem  = Inventory.GetSlotInformation(selectedIndex).Item;

        if (selectedItem == EItem.Sword)
        {
            if (EntityManager.Instance.Count <SwordAttack>() > 0)
            {
                return(false);
            }

            SpawnAttackToward(gameObject.transform.position, worldPos);
            return(true);
        }
        else if (selectedItem == EItem.Bomb)
        {
            worldPos.z = gameObject.transform.position.z;
            SpawnBombToward(gameObject.transform.position, worldPos);
            Inventory.Use(selectedIndex); // TODO: If the index change, this will remove the wrong object. :P
            return(true);
        }
        else if (selectedItem == EItem.Arrow)
        {
            worldPos.z = gameObject.transform.position.z;
            SpawnArrowToward(gameObject.transform.position, worldPos);
            Inventory.Use(selectedIndex); // TODO: If the index change, this will remove the wrong object. :P
            return(true);
        }

        return(false);
    }
Пример #6
0
        public static EItem[] ToEItems(this Item[] item)
        {
            var array = new EItem[40];

            for (int i = 0; i < 40; i++)
            {
                array[i] = item[i];
            }
            return(array);
        }
Пример #7
0
 public static Color32 GetColor32ForItem(EItem item)
 {
     if (item == EItem.Gel)
     {
         return(new Color32(9, 129, 248, 255));
     }
     else
     {
         return(new Color32(255, 255, 255, 255));
     }
 }
Пример #8
0
 // deequips current and equips the new one
 public static void Equip1(EItem item)
 {
     if (equipped1 != EItem.eNone)
     {
         allItems[equipped1].Deequip();
     }
     equipped1 = item;
     allItems[equipped1].Equip();
     PlayerPrefs.SetInt(EQUIPPED1_KEY, (int)equipped1);
     PlayerPrefs.Save();
 }
Пример #9
0
    public static EPart GetPossibleItemCombination(EItem itemLeft, EItem itemRight)
    {
        KeyValuePair <EItem, EItem> key = new KeyValuePair <EItem, EItem>(itemLeft, itemRight);

        if (s_LookUpTable.ContainsKey(key))
        {
            return(s_LookUpTable[key]);
        }

        key = new KeyValuePair <EItem, EItem>(itemRight, itemLeft); //swapped key.
        return(!s_LookUpTable.ContainsKey(key) ? EPart.NONE : s_LookUpTable[key]);
    }
Пример #10
0
 public DataDescription(EItem column, EItemSource src,
                        EItemType type, EItemUsage usage, string title, bool visible,
                        DataDisplay disp)
 {
     Column  = (int)column;
     Source  = src;
     Type    = type;
     Useage  = usage;
     Title   = title;
     Visible = visible;
     Display = disp;
 }
Пример #11
0
 public void removeItem(EItem eItem)
 {
     for (int i = transform.childCount - 1; i >= 0; i--)
     {
         if (transform.GetChild(i).childCount > 0)
         {
             if (transform.GetChild(i).GetChild(0).gameObject.name.Equals(eItem.ToString()))
             {
                 isFull[i] = false;
             }
             Destroy(transform.GetChild(i).GetChild(0).gameObject);
             return;
         }
     }
 }
Пример #12
0
    public bool UseItemOnObject(EItem itemType)
    {
        switch (itemType)
        {
        case EItem.Apple:
            speech.SetText("Tack för <color=#008000ff>Äpplet!!</color>", 17);
            return(true);

        case EItem.Pear:
            speech.SetText("Usch! Vill inte ha <color=#ff0000ff>Lakrits!!</color>", 26);
            return(false);

        default:
            return(false);
        }
    }
Пример #13
0
    public int getItemAmount(EItem eItem)
    {
        int amount = 0;

        //print("Entrante: " + eItem.ToString());
        foreach (GameObject go in slots)
        {
            //print(go.name);
            if (go != null && go.name.Equals(eItem.ToString()))
            {
                amount++;
            }
        }

        return(amount);
    }
Пример #14
0
    private void InitializeInventory()
    {
        EItem gold          = new EItem("Gold", 20);
        EItem healthPotion  = new EItem("Health potion", 2);
        EItem staminaPotion = new EItem("Stamina potion", 2);

        Inventory inventory = character.GetInventory();

        inventory.AddItem(gold, true);
        inventory.AddItem(healthPotion, true);
        inventory.AddItem(staminaPotion, true);

        gold.SetListener(OnGoldQtyChange);
        healthPotion.SetListener(OnHealthPotionQtyChange);
        staminaPotion.SetListener(OnStaminaPotionQtyChange);
    }
Пример #15
0
    public bool Carry(EItem item)
    {
        int index = FindBestSlotFor(item);

        if (index == -1)
        {
            return(false);
        }

        m_itemSlots[index].Item = item;
        m_itemSlots[index].Count++;

        //UnityEngine.Debug.Log("Adding item " + item + " to slot " + index + " with count of " + m_itemSlots[index].Count);
        OnChanged();

        return(true);
    }
Пример #16
0
        public Item(EItem type, Vector2 position, ContentManager content)
        {
            //Load correct texture for item
            switch (type)
            {
            case EItem.Diamond:
                texture = content.Load <Texture2D>("Item/Diamond");
                break;

            case EItem.Key:
                texture = content.Load <Texture2D>("Item/Key");
                break;
            }

            //save properties and set rectangle
            this.type     = type;
            this.position = position;
            bounds        = new Rectangle((int)position.X, (int)position.Y, 64, 64);
        }
Пример #17
0
    private ItemInstance SpawnItem(EItem item)
    {
        if (!m_itemInstancePrefab)
        {
            return(null);
        }

        TileResourceDef tileResourceDef = TileMapping.GetTileResourceDef((ETile)item);

        if (tileResourceDef == null)
        {
            return(null);
        }

        GameObject obj = Instantiate(m_itemInstancePrefab);

        if (obj == null)
        {
            return(null);
        }

        Transform    tr = obj.GetComponent <Transform>();
        ItemInstance ii = obj.GetComponent <ItemInstance>();
        MeshRenderer mr = obj.GetComponent <MeshRenderer>();

        if (mr)
        {
            Texture tex = Resources.Load(tileResourceDef.Filename) as Texture;
            if (tex)
            {
                mr.material.mainTexture = tex;
                mr.material.color       = ItemInstance.GetColor32ForItem(item);

                //float scale = (float) (Screen.height / 2.0) / Camera.main.orthographicSize;
                //tr.localScale = new Vector3((float)tex.width / scale, (float)tex.height / scale, tr.localScale.z);
                tr.localScale = new Vector3(1.0f, 1.0f, tr.localScale.z);
            }

            ii.SetType(item);
        }

        return(ii);
    }
Пример #18
0
    private int FindBestSlotFor(EItem item)
    {
        // look for existing slot
        for (int i = 0; i < m_itemSlots.Length; ++i)
        {
            if (m_itemSlots[i].Item == item && m_itemSlots[i].Count < MAX_ITEMS_PER_SLOT)
            {
                return(i);
            }
        }

        // try to find an empty slot
        for (int i = 0; i < m_itemSlots.Length; ++i)
        {
            if (m_itemSlots[i].Item == EItem.None)
            {
                return(i);
            }
        }

        return(-1);
    }
Пример #19
0
    public void SpawnLoot(EItem item, Vector2 worldPos)
    {
        ItemInstance ii = SpawnItem(item);

        if (!ii)
        {
            return;
        }

        ii.gameObject.transform.position = new Vector3(worldPos.x, worldPos.y, -0.06f);

        Mover itemInstanceMover = ii.GetComponent <Mover>();

        if (itemInstanceMover)
        {
            // make it moves around in a random direction
            Vector2 randDir = RandomManager.Vector();
            float   dir     = RandomManager.Next(0.8f, 3.5f);

            Vector2 target = (Vector2)ii.gameObject.transform.position + (randDir * dir);

            itemInstanceMover.StartInterpolation(target, 0.3f, null);
        }
    }
Пример #20
0
 public ItemCount(EItem item_, int count_) : this()
 {
     Item  = item_;
     Count = count_;
 }
Пример #21
0
    // perform action at a given point, return true if done
    public bool ActionAt(Vector3 worldPos)
    {
        int   selectedIndex = UIManager.Instance.SelectedInventorySlot;
        EItem selectedItem  = Inventory.GetSlotInformation(selectedIndex).Item;

        if (HasAction)
        {
            return(false);
        }

        // always compare against middle of tile
        worldPos.x = Mathf.Floor(worldPos.x) + 0.5f;
        worldPos.y = Mathf.Floor(worldPos.y) + 0.5f;
        worldPos.z = gameObject.transform.position.z;

        // minimum distance to allow digging
        float sqrDistance = (worldPos - gameObject.transform.position).sqrMagnitude;

        if (sqrDistance <= 6.0 * 6.0)
        {
            ChunkInfo chunkInfo;
            int       x, y;
            bool      success = GameManager.Instance.GetTileDataFromWorldPos(worldPos, out chunkInfo, out x, out y);

            TileInfo tileInfo = chunkInfo.ReadSlotValue(x, y);
            if (success)
            {
                if (selectedItem == EItem.PickAxe && tileInfo.Tile == ETile.Mountain)
                {
                    // Try to dig ! Start an action
                    StartAction(EAction.Dig, 0.05f, worldPos, actionCompleted_ =>
                    {
                        AudioManager.Instance.PlayDig();

                        // logic here for now, should be moved as we add more
                        TileInfo newTile = tileInfo.RemoveHP(10.0f);
                        if (newTile.HP == 0.0f)
                        {
                            newTile = newTile.TransformToTile(ETile.Grass);

                            SpawnManager.Instance.SpawnFromTile(tileInfo.Tile, chunkInfo, x, y);
                        }

                        chunkInfo.WriteSlotValue(x, y, newTile);
                    }
                                );

                    return(true);
                }
                else if (selectedItem == EItem.Copper_Axe && tileInfo.Tile == ETile.Tree)
                {
                    // Try to dig ! Start an action
                    StartAction(EAction.Cut, 0.05f, worldPos, actionCompleted_ =>
                    {
                        AudioManager.Instance.PlayCut();

                        // logic here for now, should be moved as we add more
                        TileInfo newTile = tileInfo.RemoveHP(10.0f);
                        if (newTile.HP == 0.0f)
                        {
                            newTile = newTile.TransformToTile(ETile.Grass);

                            SpawnManager.Instance.SpawnFromTile(tileInfo.Tile, chunkInfo, x, y);
                        }

                        chunkInfo.WriteSlotValue(x, y, newTile);
                    }
                                );
                }
                else if (selectedItem == EItem.Stone && tileInfo.Tile != ETile.Mountain)
                {
                    if (CollisionManager.Instance.HasCollision(chunkInfo, x, y))
                    {
                        return(false);
                    }

                    // Try to place a stone
                    StartAction(EAction.Build, 0.1f, worldPos, actionCompleted_ =>
                    {
                        // Make sure we can still perform action
                        if (CollisionManager.Instance.HasCollision(chunkInfo, x, y))
                        {
                            return;
                        }

                        AudioManager.Instance.PlayDig();

                        // logic here for now, should be moved as we add more
                        TileInfo newTile = tileInfo.TransformToTile(ETile.Mountain).MaxHP();
                        chunkInfo.WriteSlotValue(x, y, newTile);

                        Inventory.Use(selectedIndex);
                    }
                                );

                    return(true);
                }


                return(false);
            }
        }

        return(false);
    }
Пример #22
0
 public void SetType(EItem itemType)
 {
     Item = itemType;
 }
Пример #23
0
 public void AddItem(EItem ei, int i)
 {
     slots[i]      = Instantiate(this.objects[(int)ei], transform.GetChild(i).transform.position, Quaternion.identity, transform.GetChild(i).transform);
     slots[i].name = ei.ToString();
 }
Пример #24
0
 public static Color GetColorForItem(EItem item)
 {
     return(GetColor32ForItem(item)); // Cast operation is overloaded: http://answers.unity3d.com/questions/634208/convert-color32-to-color.html
 }