Exemplo n.º 1
0
    public void AddItem(ItemBaseClass item)
    {
        //Debug.Log ("ADDDDDD");
        item.pickupItem();
        InventorySlot newSlot = FindStackableItem(item);

        if (newSlot == null)
        {
            newSlot = FindNextEmptySlot();
            //Debug.Log ("AddItem----newSlot: NULL"+ newSlot);
        }
        if (newSlot != null)
        {
            newSlot.AddItem(item);
            //Debug.Log ("AddItem to slot");

            if (ItemAdded != null)
            {
                ItemAdded(this, new InventoryEventArgs(item));
            }
        }
        //		if (mItems.Count < SLOTS)
        //		{
        //			Collider2D collider = (item as MonoBehaviour).GetComponent<Collider2D> ();
        //			if (collider.enabled) {
        //				collider.enabled = false;
        //				mItems.Add (item);
        //				item.pickupItem ();
        //
        //				if (item != null) {
        //					ItemAdded (this, new InventoryEventArgs (item));
        //				}
        //			}
        //		}
    }
Exemplo n.º 2
0
        };                                                                          //物品ID 在背包中的索引

        /*添加物品到背包的方法 需要传进物品数据和物品数量*/
        public void AddItem(ItemBaseClass _data, int _quantity = 1) //_quantity=时没有传入参数,就按照1继续进行
        {
            if (KnapsackIndex.ContainsKey(_data.item_id) != true)   //当背包中没有该物品时,新建一个空的用来装
            {
                ItemInKnapsack t_new_null_item = new ItemInKnapsack
                {
                    inside_item_data     = _data,
                    inside_item_quantity = 0
                };
                PlayerKnapsack.Add(t_new_null_item);
                KnapsackIndex[_data.item_id] = PlayerKnapsack.Count - 1;
            }

            while (true)
            {
                int number_can_add = _data.item_stackable_limit - PlayerKnapsack[KnapsackIndex[_data.item_id]].inside_item_quantity;
                PlayerKnapsack[KnapsackIndex[_data.item_id]].inside_item_quantity += Math.Min(_quantity, number_can_add);
                _quantity -= number_can_add;

                if (_quantity > 0)
                {
                    ItemInKnapsack t_new_null_item = new ItemInKnapsack
                    {
                        inside_item_data     = _data,
                        inside_item_quantity = 0
                    };
                    PlayerKnapsack.Add(t_new_null_item);
                    KnapsackIndex[_data.item_id] = PlayerKnapsack.Count - 1;
                }
                else
                {
                    break;
                }
            }
        }
Exemplo n.º 3
0
 public void UseItem(ItemBaseClass item)
 {
     if (ItemUsed != null)
     {
         ItemUsed(this, new InventoryEventArgs(item));
         GameObject.Find("Player").GetComponentInChildren <WeaponFire>().weaponEquipped = true;
         //isEquipped = true;
         Debug.Log("weapon equipped");
     }
 }
Exemplo n.º 4
0
    public void onItemClick()
    {
        ItemDrag   itemDrag = gameObject.transform.Find("ItemImage").GetComponent <ItemDrag>();
        GameObject player   = GameObject.Find("Player");

        if (player == null)
        {
            Debug.Log("player null");
        }
        ItemBaseClass item = itemDrag.Item;

        Debug.Log("CLICK" + item);
        Debug.Log(item.Name + " equipped");
        if (item.name.Equals("Pistol"))
        {
            WeaponFire Wp = GameObject.Find("Player").GetComponentInChildren <WeaponFire>();
            if (Wp == null)
            {
                Debug.Log("weapon null");
            }
            else
            {
                Debug.Log("pistol equipped");
            }
            Wp.rateOfFire     = 0;
            Wp.damage         = 50;
            Wp.weaponEquipped = true;
        }
        if (item.name.Equals("MiniGun"))
        {
            WeaponFire Wp = GameObject.Find("Player").GetComponentInChildren <WeaponFire>();
            if (Wp == null)
            {
                Debug.Log("weapon null");
            }
            else
            {
                Debug.Log("minigun equipped");
            }
            Wp.rateOfFire     = 20;
            Wp.damage         = 5;
            Wp.weaponEquipped = true;
        }
        else
        {
            WeaponFire Wp = GameObject.Find("Player").GetComponentInChildren <WeaponFire>();
            if (Wp == null)
            {
                Debug.Log("weapon null");
            }
            Wp.weaponEquipped = false;
        }
        inventory.UseItem(item);
        //		item.OnUse();
    }
Exemplo n.º 5
0
 private InventorySlot FindStackableItem(ItemBaseClass item)
 {
     foreach (InventorySlot slot in mSlots)
     {
         if (slot.IsStackable(item))
         {
             //	Debug.Log ("HELP " + slot);
             return(slot);
         }
     }
     //Debug.Log ("HELP NULL");
     return(null);
 }
Exemplo n.º 6
0
 public void RemoveItem(ItemBaseClass item)
 {
     foreach (InventorySlot slot in mSlots)
     {
         if (slot.Remove(item))
         {
             if (ItemRemoved != null)
             {
                 ItemRemoved(this, new InventoryEventArgs(item));
             }
             break;
         }
     }
 }
Exemplo n.º 7
0
    public void addClass(string className, string classNumber, string schoolName, string gradeName)
    {
        GameObject go = (GameObject)Resources.Load("prefab/item/UIItemBaseClass");

        go = Object.Instantiate(go);

        go.transform.parent = content;

        ItemBaseClass item = go.GetComponent <ItemBaseClass>();

        item.className.text   = className;
        item.classNumber.text = classNumber;
        item.schoolName.text  = schoolName;
        item.gradeName.text   = gradeName;
    }
    public bool Remove(ItemBaseClass item)
    {
        if (IsEmpty)
        {
            return(false);
        }

        ItemBaseClass first = mItemStack.Peek();

        if (first.Name == item.Name)
        {
            mItemStack.Pop();
            return(true);
        }
        return(false);
    }
    public bool IsStackable(ItemBaseClass item)
    {
        if (IsEmpty)
        {
            return(false);
        }

        ItemBaseClass first = mItemStack.Peek();

        Debug.Log("FIRST" + first.Name);

        if (first.Name == item.Name)
        {
            return(true);
        }
        return(false);
    }
Exemplo n.º 10
0
 public void ItemAcquisition(ItemBaseClass item)
 {
     if (itemCount < 2)
     {
         var emptySlot = 0;
         for (; emptySlot < 2; emptySlot++)
         {
             if (SelectedItem[emptySlot] == null)
             {
                 break;
             }
         }
         SelectedItem[emptySlot] = item;
         itemCount++;
         Notify();
     }
 }
Exemplo n.º 11
0
    public void OnDrop(PointerEventData eventData)
    {
        RectTransform invPanel = transform as RectTransform;

        if (!RectTransformUtility.RectangleContainsScreenPoint(invPanel, Input.mousePosition))
        {
            Debug.Log("DROP ITEM");

            ItemBaseClass item = eventData.pointerDrag.gameObject.GetComponent <ItemDrag>().Item;
            Debug.Log(item);
            if (item != null)
            {
                Debug.Log("ITEM NOT NULL");


                inventory.RemoveItem(item);
                item.OnDrop();
            }
        }
    }
Exemplo n.º 12
0
 //Создаём новый предмет
 private void CreateDatabase()
 {
     if (databaseType == "quest")
     {
         DatabaseClass asset = ScriptableObject.CreateInstance <DatabaseClass>();
         asset.databaseName = databaseName;
         AssetDatabase.CreateAsset(asset, databasePath + databaseName + ".asset");
         AssetDatabase.SaveAssets();
         EditorUtility.FocusProjectWindow();
         Selection.activeObject = asset;
     }
     else if (databaseType == "item")
     {
         ItemBaseClass asset = ScriptableObject.CreateInstance <ItemBaseClass>();
         asset.databaseName = databaseName;
         AssetDatabase.CreateAsset(asset, databasePath + databaseName + ".asset");
         AssetDatabase.SaveAssets();
         EditorUtility.FocusProjectWindow();
         Selection.activeObject = asset;
     }
 }
Exemplo n.º 13
0
    void Inventory_ItemUsed(object sender, InventoryEventArgs e)
    {
        ItemBaseClass item = e.Item;

        weapon.sprite = item.Image;
        GameObject player = GameObject.Find("Player");
        WeaponFire Wp     = player.GetComponent <WeaponFire>();

        Debug.Log(item.Name + " equipped");
        if (item.name.Equals("Pistol"))
        {
            Debug.Log("pistol equipped");
            Wp.UpdateWeapon(50, 0, true);
        }
        if (item.name.Equals("MiniGun"))
        {
            Debug.Log("minigun equipped");
            Wp.UpdateWeapon(5, 10, true);
        }
        else
        {
            Wp.UpdateWeapon(0, 0, false);
        }
    }
Exemplo n.º 14
0
 public InventoryEventArgs(ItemBaseClass item)
 {
     Item = item;
 }
 public void AddItem(ItemBaseClass item)
 {
     item.Slot = this;
     mItemStack.Push(item);
     //Debug.Log ("AddItem");
 }
Exemplo n.º 16
0
    //private void Start()
    //{
    //    //WeaponSubject.NotifyNewItem(WeaponCtrl.WeaponTypeEnum.weaponType01);
    //    //WeaponSubject.NotifyNewItem(WeaponCtrl.WeaponTypeEnum.weaponType02);
    //    //WeaponSubject.NotifyNewItem(WeaponCtrl.WeaponTypeEnum.weaponType03);
    //    //WeaponSubject.NotifyNewItem(WeaponCtrl.WeaponTypeEnum.weaponType04);

    //    WeaponSubject.Notify();

    //    gameObject.SetActive(false);
    //}

    public void AddItem(ItemBaseClass item)
    {
        ItemSubject.ItemAcquisition(item);
    }
Exemplo n.º 17
0
    private void Inventory_ItemUsed(object sender, InventoryEventArgs e)
    {
        ItemBaseClass item = e.Item;

        weapon.sprite = item.Image;
    }