예제 #1
0
 protected override void Awake()
 {
     base.Awake();
     nameLabel   = transform.Find("name").GetComponent <UILabel>();
     valueLabel  = transform.Find("value").GetComponent <UILabel>();
     itemPackage = FacadeSingleton.Instance.RetrieveData(ConstVal.Package_Item) as ItemPackage;
 }
예제 #2
0
 public void Import(byte[] buffer)
 {
     _missionPak = new ItemPackage(Pathea.PlayerPackageCmpt.PkgCapacity);
     _playerPak.Import(buffer);
     _playerPak.ExtendPackage(Pathea.PlayerPackageCmpt.PkgCapacity, Pathea.PlayerPackageCmpt.PkgCapacity,
                              Pathea.PlayerPackageCmpt.PkgCapacity, Pathea.PlayerPackageCmpt.PkgCapacity);
 }
예제 #3
0
            public static bool Add(this ItemPackage package, int prototypeId, int count, bool newFlag = false)
            {
                if (count <= 0)
                {
                    return(false);
                }

                SlotList accessor = package.GetSlotList(ItemPackage.GetSlotType(prototypeId));

                if (null == accessor)
                {
                    return(false);
                }
                if (ItemProto.Mgr.Instance.Get(prototypeId).maxStackNum > 1)
                {
                    return(accessor.Add(prototypeId, count, newFlag));
                }
                else
                {
                    bool result = true;
                    for (int i = 0; i < count; i++)
                    {
                        if (result)
                        {
                            result = accessor.Add(ItemMgr.Instance.CreateItem(prototypeId), newFlag);
                        }
                        else
                        {
                            accessor.Add(ItemMgr.Instance.CreateItem(prototypeId), newFlag);
                        }
                    }
                    return(result);
                }
            }
예제 #4
0
    public void SetPackageItemWithIndex(ItemPackage package, ItemObject item, int tabIndex, int index)
    {
        package.PutItem(item, index, (ItemPackage.ESlotType)tabIndex);

        //List<ItemObject> objList = package.GetItemList(tabIndex);
        //objList[index] = item;
    }
예제 #5
0
 void Start()
 {
     hcc      = HoloCameraControl.Instance;
     ppc      = PeCreature.Instance.mainPlayer.GetCmpt <PlayerPackageCmpt>();
     mItemPac = ppc.package._playerPak;
     //ppc.getItemEventor.Subscribe(OnItemAdd);
 }
예제 #6
0
        public ActionResult ItemPackageNew(string id)
        {
            ItemPackage itemPackage = new ItemPackage();

            itemPackage.Item = id;
            return(PartialView(itemPackage));
        }
예제 #7
0
        public ActionResult ItemPackageNew(ItemPackage itemPackage)
        {
            if (ModelState.IsValid)
            {
                if (base.genericMgr.FindAll <long>(itemPackageDuiplicateVerifyStatement, new object[] { itemPackage.Id })[0] > 0)
                {
                    SaveErrorMessage(Resources.ErrorMessage.Errors_Existing_Code, itemPackage.Id.ToString());
                }
                else if (base.genericMgr.FindAll <long>(itemAndUnitCountIsExistStatement, new object[] { itemPackage.Item, itemPackage.UnitCount })[0] > 0)
                {
                    SaveErrorMessage(Resources.MD.ItemPackage.ItemPackageErrors_Existing_ItemAndUnitCount);
                }
                else if (itemPackage.UnitCount <= 0)
                {
                    SaveErrorMessage("包装数必须大于0");
                }
                else
                {
                    if (itemPackage.Description == null)
                    {
                        itemPackage.Description = string.Empty;
                    }
                    base.genericMgr.Create(itemPackage);

                    SaveSuccessMessage(Resources.MD.ItemPackage.ItemPackage_Added);
                    return(RedirectToAction("ItemPackage/" + itemPackage.Item));
                }
            }

            return(PartialView(itemPackage));
        }
예제 #8
0
    void RPC_S2C_STO_SyncItemList(uLink.BitStream stream, uLink.NetworkMessageInfo info)
    {
        int[]         indexList  = stream.Read <int[]>();
        int[]         ids        = stream.Read <int[]>();
        CSStorageData recordData = (CSStorageData)_ColonyObj._RecordData;
        ItemPackage   m_Package  = ((CSStorage)m_Entity).m_Package;

        for (int i = 0; i < indexList.Length; i++)
        {
            int      key = indexList[i];
            int      type;
            int      index    = KeyToIndex(key, out type);
            SlotList slotList = m_Package.GetSlotList((ItemAsset.ItemPackage.ESlotType)type);
            if (ids[i] == -1)
            {
                recordData.m_Items.Remove(key);
                slotList[index] = null;
            }
            else
            {
                ItemObject ioject = ItemMgr.Instance.Get(ids[i]);
                if (ioject != null)
                {
                    recordData.m_Items[key] = ids[i];
                    slotList[index]         = ioject;
                }
            }
        }
        //2.ui
        if (CSUI_MainWndCtrl.Instance.StorageUI != null && CSUI_MainWndCtrl.Instance.StorageUI.StorageMainUI != null)
        {
            CSUI_MainWndCtrl.Instance.StorageUI.StorageMainUI.CSStorageResultSyncItemList((CSStorage)m_Entity);
        }
    }
예제 #9
0
    void RPC_S2C_STO_Store(uLink.BitStream stream, uLink.NetworkMessageInfo info)
    {
        int        index   = stream.Read <int>();
        int        objId   = stream.Read <int>();
        bool       suc     = stream.Read <bool>();
        ItemObject itemObj = ItemMgr.Instance.Get(objId);

        if (itemObj == null)
        {
            return;
        }
        int tabIndex = itemObj.protoData.tabIndex;
        int key      = IndexToKey(index, tabIndex);

        if (suc)
        {
            //1.data
            CSStorageData recordData = (CSStorageData)_ColonyObj._RecordData;
            recordData.m_Items[key] = objId;

            ItemPackage m_Package = ((CSStorage)m_Entity).m_Package;
            int         listCnt   = m_Package.GetSlotList().Length;
            int         key2      = key % listCnt;
            m_Package.GetSlotList(itemObj.protoId)[key2] = itemObj;
        }
        if (CSUI_MainWndCtrl.Instance.StorageUI != null && CSUI_MainWndCtrl.Instance.StorageUI.StorageMainUI != null)
        {
            CSUI_MainWndCtrl.Instance.StorageUI.StorageMainUI.CSStoreResultStore(suc, index, objId, (CSStorage)m_Entity);
        }
    }
예제 #10
0
    void RPC_S2C_STO_Split(uLink.BitStream stream, uLink.NetworkMessageInfo info)
    {
        int        objId     = stream.Read <int>();
        int        destIndex = stream.Read <int> ();
        bool       suc       = stream.Read <bool>();
        ItemObject itemObj   = ItemMgr.Instance.Get(objId);

        if (itemObj == null)
        {
            return;
        }
        if (suc)
        {
            //1.data
            CSStorageData recordData = (CSStorageData)_ColonyObj._RecordData;
            int           key        = IndexToKey(destIndex, itemObj.protoData.tabIndex);
            recordData.m_Items[key] = objId;

            ItemPackage m_Package = ((CSStorage)m_Entity).m_Package;
            SlotList    slotList  = m_Package.GetSlotList(itemObj.protoId);
            slotList[destIndex] = itemObj;
        }
        //2.ui
        if (CSUI_MainWndCtrl.Instance.StorageUI != null && CSUI_MainWndCtrl.Instance.StorageUI.StorageMainUI != null)
        {
            CSUI_MainWndCtrl.Instance.StorageUI.StorageMainUI.CSStoreResultSplit(suc, objId, destIndex, (CSStorage)m_Entity);
        }
    }
예제 #11
0
    protected override void Awake()
    {
        base.Awake();
        titleLabel     = transform.Find("title").GetComponent <UILabel>();
        preLevelLabel  = transform.Find("building/pre/level/label").GetComponent <UILabel>();
        nextLevelLabel = transform.Find("building/next/level/label").GetComponent <UILabel>();
        tableView      = transform.Find("upgradeeffect/microview/panel/tableview").GetComponent <NTableView>();
        levelLabel     = transform.Find("consume/level").GetComponent <UILabel>();
        preIcon        = transform.Find("building/pre/frame/icon").GetComponent <UISprite>();
        nextIcon       = transform.Find("building/next/frame/icon").GetComponent <UISprite>();
        pointGo        = transform.Find("okbtn/point").gameObject;
        Transform cellGroup = transform.Find("consume/costlist");

        for (int i = 0; i < cellGroup.childCount; i++)
        {
            CostCell  cell  = new CostCell();
            Transform trans = cellGroup.GetChild(i);
            cell.go    = trans.gameObject;
            cell.title = trans.Find("title").GetComponent <UILabel>();
            cell.value = trans.Find("value").GetComponent <UILabel>();
            costCellList.Add(cell);
        }

        //bind event
        UIButton button = transform.Find("okbtn").GetComponent <UIButton>();

        button.onClick.Add(new EventDelegate(OnUpgrade));
        button = transform.Find("closebtn").GetComponent <UIButton>();
        button.onClick.Add(new EventDelegate(Close));

        sanctuaryPackage = FacadeSingleton.Instance.RetrieveData(ConstVal.Package_Sanctuary) as SanctuaryPackage;
        itemPackage      = FacadeSingleton.Instance.RetrieveData(ConstVal.Package_Item) as ItemPackage;
        userPackage      = FacadeSingleton.Instance.RetrieveData(ConstVal.Package_User) as UserPackage;
    }
예제 #12
0
            public static bool CanAdd(this ItemPackage package, IEnumerable <ItemAsset.MaterialItem> list)
            {
                int[] sum = new int[(int)ItemPackage.ESlotType.Max];

                foreach (ItemAsset.MaterialItem mi in list)
                {
                    int type = (int)ItemPackage.GetSlotType(mi.protoId);
                    if (type < sum.Length)
                    {
                        sum[type] += SlotListHelper.SlotListAccessor.GetNeedSlotCount(mi.protoId, mi.count);
                    }
                }

                for (int i = 0; i < sum.Length; i++)
                {
                    SlotList slotList = package.GetSlotList((ItemPackage.ESlotType)i);

                    if (slotList.GetVacancyCount() < sum[i])
                    {
                        return(false);
                    }
                }

                return(true);
            }
예제 #13
0
    void readItem()
    {
        ItemInfo = new Dictionary <string, ItemData>();

        XmlDocument xmlDoc = new XmlDocument();
        TextAsset   path   = Resources.Load <TextAsset>(GameConfig.DatabasePathItem);

        xmlDoc.LoadXml(path.text);

        XmlNodeList listItem = xmlDoc.GetElementsByTagName("Item");

        foreach (XmlNode infoItem in listItem)
        {
            ItemData itemData = new ItemData();
            itemData.Name        = infoItem.SelectSingleNode("Name").InnerText;
            itemData.ValueEffect = float.Parse(infoItem.SelectSingleNode("ValueEffect").InnerText);
            itemData.ValueText   = infoItem.SelectSingleNode("ValueText").InnerText;

            XmlNodeList listPackage = infoItem.SelectNodes("Package");
            foreach (XmlNode infoPackage in listPackage)
            {
                ItemPackage package = new ItemPackage();
                package.Index   = int.Parse(infoPackage.Attributes["ID"].InnerText);
                package.Diamond = int.Parse(infoPackage.SelectSingleNode("Diamond").InnerText);
                package.Gold    = int.Parse(infoPackage.SelectSingleNode("Gold").InnerText);
                package.Wave    = infoPackage.SelectSingleNode("Wave").InnerText;

                itemData.Packages.Add(package);
            }
            ItemInfo.Add(infoItem.Attributes["ID"].InnerText.Trim(), itemData);
        }
    }
예제 #14
0
    protected override void Awake()
    {
        base.Awake();
        //get component
        coinLabel         = transform.Find("res/money/label").GetComponent <UILabel>();
        resLabel          = transform.Find("res/resource/label").GetComponent <UILabel>();
        elecLabel         = transform.Find("res/elec/label").GetComponent <UILabel>();
        taskLabel         = transform.Find("task/label").GetComponent <UILabel>();
        levelLabel        = transform.Find("player/level").GetComponent <UILabel>();
        healthProgressBar = transform.Find("status/health").GetComponent <UIProgressBar>();
        hungerProgressBar = transform.Find("status/hunger").GetComponent <UIProgressBar>();
        thirstProgressBar = transform.Find("status/thirst").GetComponent <UIProgressBar>();
        expProgressBar    = transform.Find("player/exp").GetComponent <UIProgressBar>();
        proProgress       = transform.Find("res/elec/progress").GetComponent <UIProgressBar>();
        userPackage       = FacadeSingleton.Instance.RetrieveData(ConstVal.Package_User) as UserPackage;
        itemPackage       = FacadeSingleton.Instance.RetrieveData(ConstVal.Package_Item) as ItemPackage;
        sanctuaryPackage  = FacadeSingleton.Instance.RetrieveData(ConstVal.Package_Sanctuary) as SanctuaryPackage;
        //bind event
        UIButton button = transform.Find("player").GetComponent <UIButton>();

        button.onClick.Add(new EventDelegate(OnPlayerInfo));
        RegisterEvent("RefreshUserState", RefreshUserState);
        RegisterEvent("RefreshPlayerLevel", RefreshPlayerLevel);
        RegisterEvent("RefreshProduceBar", RefreshProduceBar);
        RefreshProduceBar();
    }
예제 #15
0
    protected override void Awake()
    {
        base.Awake();
        //get component
        //player info
        bloodProgess   = transform.Find("playerinfo/status/health").GetComponent <UIProgressBar>();
        bloodLabel     = transform.Find("playerinfo/status/health/label").GetComponent <UILabel>();
        hungerProgress = transform.Find("playerinfo/status/hunger").GetComponent <UIProgressBar>();
        hungerLabel    = transform.Find("playerinfo/status/hunger/label").GetComponent <UILabel>();
        thirstProgress = transform.Find("playerinfo/status/thirst").GetComponent <UIProgressBar>();
        thirstLabel    = transform.Find("playerinfo/status/thirst/label").GetComponent <UILabel>();
        attackLabel    = transform.Find("property/panel/grid/attack/value").GetComponent <UILabel>();
        defenseLable   = transform.Find("property/panel/grid/defense/value").GetComponent <UILabel>();
        agileLabel     = transform.Find("property/panel/grid/agile/value").GetComponent <UILabel>();
        speedLabel     = transform.Find("property/panel/grid/speed/value").GetComponent <UILabel>();
        intellectLabel = transform.Find("property/panel/grid/intellect/value").GetComponent <UILabel>();
        healthLabel    = transform.Find("property/panel/grid/health/value").GetComponent <UILabel>();
        moodLabel      = transform.Find("property/panel/grid/mood/value").GetComponent <UILabel>();
        loadLabel      = transform.Find("property/panel/grid/load/value").GetComponent <UILabel>();
        resLabel       = transform.Find("playerinfo/res/resouce/label").GetComponent <UILabel>();
        moneyLabel     = transform.Find("playerinfo/res/money/label").GetComponent <UILabel>();
        elecLabel      = transform.Find("playerinfo/res/elec/label").GetComponent <UILabel>();
        interestLabel  = transform.Find("playerinfo/player/interest").GetComponent <UILabel>();
        sortNameLabel  = transform.Find("store/tabname").GetComponent <UILabel>();
        capLabel       = transform.Find("store/cap").GetComponent <UILabel>();
        expProgress    = transform.Find("playerinfo/player/exp").GetComponent <UIProgressBar>();
        expLabel       = transform.Find("playerinfo/player/exp/label").GetComponent <UILabel>();
        levelLabel     = transform.Find("playerinfo/player/level").GetComponent <UILabel>();
        nameLabel      = transform.Find("playerinfo/player/name").GetComponent <UILabel>();
        //equip
        //item
        tableView = transform.Find("store/itemview/tableview").GetComponent <NTableView>();
        //bind event
        UIButton button = transform.Find("closebtn").GetComponent <UIButton>();

        button.onClick.Add(new EventDelegate(Close));
        button = transform.Find("store/tabgroup/grid/tab0").GetComponent <UIButton>();
        button.onClick.Add(new EventDelegate(OnTab0));
        button = transform.Find("store/tabgroup/grid/tab1").GetComponent <UIButton>();
        button.onClick.Add(new EventDelegate(OnTab1));
        button = transform.Find("store/tabgroup/grid/tab2").GetComponent <UIButton>();
        button.onClick.Add(new EventDelegate(OnTab2));
        button = transform.Find("equip/head").GetComponent <UIButton>();
        button.onClick.Add(new EventDelegate(OnEquipHead));
        button = transform.Find("equip/chest").GetComponent <UIButton>();
        button.onClick.Add(new EventDelegate(OnEquipChest));
        button = transform.Find("equip/weapon").GetComponent <UIButton>();
        button.onClick.Add(new EventDelegate(OnEquipWeapon));
        button = transform.Find("equip/pants").GetComponent <UIButton>();
        button.onClick.Add(new EventDelegate(OnEquipPants));
        button = transform.Find("equip/shoes").GetComponent <UIButton>();
        button.onClick.Add(new EventDelegate(OnEquipShoes));

        FacadeSingleton.Instance.RegisterEvent("RefreshStoreHouse", RefreshStoreHouse);

        itemPackage      = FacadeSingleton.Instance.RetrieveData(ConstVal.Package_Item) as ItemPackage;
        userPackage      = FacadeSingleton.Instance.RetrieveData(ConstVal.Package_User) as UserPackage;
        sanctuaryPackage = FacadeSingleton.Instance.RetrieveData(ConstVal.Package_Sanctuary) as SanctuaryPackage;
    }
예제 #16
0
 private void Awake()
 {
     nameLabel      = transform.Find("name").GetComponent <UILabel>();
     numLabel       = transform.Find("num").GetComponent <UILabel>();
     iconSprite     = transform.Find("icon").GetComponent <UISprite>();
     itemPackage    = FacadeSingleton.Instance.RetrieveData(ConstVal.Package_Item) as ItemPackage;
     dynamicPackage = FacadeSingleton.Instance.RetrieveData(ConstVal.Package_Dynamic) as DynamicPackage;
 }
예제 #17
0
 void Awake()
 {
     iconSprite  = transform.Find("icon").GetComponent <UISprite>();
     numLabel    = transform.Find("num").GetComponent <UILabel>();
     nameLabel   = transform.Find("name").GetComponent <UILabel>();
     itemPackage = FacadeSingleton.Instance.RetrieveData(ConstVal.Package_Item) as ItemPackage;
     FacadeSingleton.Instance.RegisterEvent("RefreshItemView", Refresh);
 }
예제 #18
0
 public PlayerPackage(int itemMax, bool createMisPkg = true)
 {
     if (createMisPkg)
     {
         _missionPak = new ItemPackage(itemMax);
     }
     _playerPak = new ItemPackage(itemMax);
 }
예제 #19
0
파일: Item.cs 프로젝트: rjakech/SCMS
 public bool AddPackage(ItemPackage pack)
 {
     using (var db = new SCMSEntities())
     {
         db.ItemPackages.Add(pack);
         return(db.SaveChanges() > 0 ? true : false);
     }
 }
예제 #20
0
    void RPC_S2C_STO_Exchange(uLink.BitStream stream, uLink.NetworkMessageInfo info)
    {
        int  objId       = stream.Read <int>();
        int  destIndex   = stream.Read <int> ();
        int  destId      = stream.Read <int> ();
        int  originIndex = stream.Read <int> ();
        bool suc         = stream.Read <bool> ();

        ItemObject originObj = ItemMgr.Instance.Get(objId);

        if (originObj == null)
        {
            return;
        }

        ItemObject destObj;

        if (destId == -1)
        {
            destObj = null;
        }
        else
        {
            destObj = ItemMgr.Instance.Get(destId);
            if (destObj == null)
            {
                return;
            }
        }
        int type      = originObj.protoData.tabIndex;
        int destKey   = IndexToKey(destIndex, type);
        int originKey = IndexToKey(originIndex, type);

        if (suc)
        {
            //1.data
            CSStorageData recordData = (CSStorageData)_ColonyObj._RecordData;
            recordData.m_Items[destKey] = objId;

            ItemPackage m_Package = ((CSStorage)m_Entity).m_Package;
            SlotList    slotList  = m_Package.GetSlotList((ItemAsset.ItemPackage.ESlotType)type);
            slotList.Swap(originIndex, destIndex);

            if (destObj != null)
            {
                recordData.m_Items[originKey] = destId;
            }
            else
            {
                recordData.m_Items.Remove(originKey);
            }
        }
        //2.ui
        if (CSUI_MainWndCtrl.Instance.StorageUI != null && CSUI_MainWndCtrl.Instance.StorageUI.StorageMainUI != null)
        {
            CSUI_MainWndCtrl.Instance.StorageUI.StorageMainUI.CSStoreResultExchange(suc, objId, destIndex, destId, originIndex, (CSStorage)m_Entity);
        }
    }
예제 #21
0
파일: Item.cs 프로젝트: rjakech/SCMS
 public bool EditPackage(ItemPackage pack)
 {
     using (var context = new SCMSEntities())
     {
         context.ItemPackages.Attach(pack);
         ((IObjectContextAdapter)context).ObjectContext.ObjectStateManager.ChangeObjectState(pack, System.Data.EntityState.Modified);
         return(context.SaveChanges() > 0 ? true : false);
     }
 }
예제 #22
0
 public void GetItem(ItemPackage collectible)
 {
     if (collectible.type == ItemType.None)
     {
         return;
     }
     this.inventory[collectible.type] = collectible.number;
     this.itemNotification.SetItem(collectible);
 }
예제 #23
0
    //get item history price
    public void CalculateGraphInfo(int configID, long startTime, long curTime)
    {
        mGraphInfoList.Clear();
        EventPackage           eventPackage = FacadeSingleton.Instance.RetrieveData(ConstVal.Package_Event) as EventPackage;
        ItemPackage            itemPackage  = FacadeSingleton.Instance.RetrieveData(ConstVal.Package_Item) as ItemPackage;
        ITEM_RES               itemConfig   = itemPackage.GetItemDataByConfigID(configID);
        List <NWorldEventInfo> eventList    = eventPackage.GetHistoryEventList();
        string itemKeyName = itemConfig.KeyName;

        itemKeyName = char.ToUpper(itemKeyName[0]) + itemKeyName.Substring(1).ToLower();

        //reflection
        System.Type  type = System.Type.GetType("com.nkm.framework.resource.data." + "WORLD_EVENTS");
        PropertyInfo itemPriceProperty = type.GetProperty(itemKeyName);
        PropertyInfo itemHasProperty   = type.GetProperty("Has" + itemKeyName);

        NGraphNode preNode = null;
        NGraphNode node    = null;

        //add start node
        node       = new NGraphNode();
        node.price = (double)itemConfig.GoldConv / 1000d;
        node.time  = startTime;
        mGraphInfoList.Add(node);

        for (int i = 0; i < eventList.Count; i++)
        {
            NWorldEventInfo info        = eventList[i];
            WORLD_EVENTS    eventConfig = eventPackage.GetEventConfigDataByConfigID(info.configID);
            bool            isHas       = (bool)itemHasProperty.GetValue(eventConfig, null);
            if (!isHas)
            {
                continue;
            }
            double priceArgs = System.Convert.ToDouble(itemPriceProperty.GetValue(eventConfig, null)) / 100;

            if (info.happenTime <= startTime)
            {
                node        = mGraphInfoList[0];
                node.price *= priceArgs;
            }
            else
            {
                preNode = mGraphInfoList[mGraphInfoList.Count - 1];
                node    = new NGraphNode();
                if (info.isHappen)
                {
                    node.price = preNode.price * priceArgs;
                }
                else
                {
                    node.price = preNode.price / priceArgs;
                }
                mGraphInfoList.Add(node);
            }
        }
    }
예제 #24
0
            public static List <ItemObject> GetAllItemByProtoId(this ItemPackage package, int protoID)
            {
                List <ItemObject> allItems = new List <ItemObject> ();

                for (int i = 0; i < (int)ItemAsset.ItemPackage.ESlotType.Max; i++)
                {
                    SlotList accessor = package.GetSlotList((ItemAsset.ItemPackage.ESlotType)i);
                    allItems.AddRange(accessor.GetAllItemByProtoID(protoID));
                }
                return(allItems);
            }
예제 #25
0
            public static int GetCreationCount(this ItemPackage package, ECreation type)
            {
                int count = 0;

                for (int i = 0; i < (int)ItemAsset.ItemPackage.ESlotType.Max; i++)
                {
                    SlotList accessor = package.GetSlotList((ItemAsset.ItemPackage.ESlotType)i);
                    count += accessor.GetCreationCount(type);
                }
                return(count);
            }
예제 #26
0
            public static bool CanAdd(this ItemPackage package, int prototypeId, int count)
            {
                SlotList accessor = package.GetSlotList(ItemPackage.GetSlotType(prototypeId));

                if (null == accessor)
                {
                    return(false);
                }

                return(accessor.CanAdd(prototypeId, count));
            }
예제 #27
0
 public void TakeItemPackage(ItemPackage package)
 {
     Debug.Log("Imma take dat");
     Debug.Log("Player inventory is: {");
     foreach (Item item in package.Inventory)
     {
         inventory.Add(item);
         Debug.Log(string.Format("{0},", item.Name));
     }
     Debug.Log("}");
 }
예제 #28
0
        public void CreateItem(Item item)
        {
            ItemPackage itemPackage = new ItemPackage();

            itemPackage.Item        = item.Code;
            itemPackage.IsDefault   = true;
            itemPackage.UnitCount   = item.UnitCount;
            itemPackage.Description = string.Empty;

            genericMgr.Create(item);
            genericMgr.Create(itemPackage);
        }
예제 #29
0
파일: UIBagWnd.cs 프로젝트: knightlyj/NG
    //点下物品格
    void OnItemMouseDown(UIItemSlot slot, PointerEventData eventData)
    {
        if (bindBag != null)
        {
            //获取背包内容
            ItemPackage itemPack = bindBag.itemPack;
            if (eventData.button == PointerEventData.InputButton.Left)
            {                                        // 左键
                if (Input.GetKey(KeyCode.LeftShift)) //按住shift,移动到垃圾箱
                {
                    Item itemInSlot = null;          //原来格子里的物品
                    itemInSlot = itemPack.TakeItem(slot.index);
                    if (itemInSlot != null)          //如果有物品,放入垃圾箱
                    {
                        bindBag.trash.PutItem(itemInSlot);
                    }
                }
                else
                {                               //没有按shift
                    MouseItem mouseItem = bindBag.mouseItem;
                    if (mouseItem.hasItem)      //鼠标拖拽有物品,放入格子
                    {
                        Item itemInSlot = null; //原来格子里的物品
                        itemPack.PutInItem(mouseItem.TakeItem(), slot.index, out itemInSlot);
                        //可以叠加或原来没有物品,则itemInSlot为null,不论是否null,放入鼠标即可
                        mouseItem.PutItem(itemInSlot);
                    }
                    else
                    { //鼠标没有物品,取出原来格子里的物品,放入鼠标即可
                        mouseItem.PutItem(itemPack.TakeItem(slot.index));
                    }
                }
            }
            else
            {                                               //右键,使用
                Item itemInSlot = null;                     //原来格子里的物品
                itemInSlot = itemPack.TakeItem(slot.index); //拿出来
                if (itemInSlot.Type.IsArmor)
                {                                           //护甲,装备上,饰品就放在第一个格子里
                    LocalPlayer localPlayer = Helper.FindLocalPlayer();
                    if (localPlayer != null)
                    {
                        Item preArmor = null;
                        localPlayer.equipment.PutOnArmor(itemInSlot, out preArmor); //穿上护甲
                        itemPack.PutInItem(preArmor, slot.index, out itemInSlot);   //脱下的护甲放入这个格子里
                    }
                }
            }
            Helper.ShowTips(itemPack.content[slot.index]);
        }

        Helper.MoveWndToFront(transform);
    }
예제 #30
0
            public static int GetCount(this ItemPackage package, int prototypeId)
            {
                // Opt
                ItemProto proto = ItemProto.Mgr.Instance.Get(prototypeId);

                if (proto != null)
                {
                    SlotList accessor = package.GetSlotList((ItemAsset.ItemPackage.ESlotType)proto.tabIndex);
                    return(accessor != null?accessor.GetCount(prototypeId) : 0);
                }
                return(0);
            }
예제 #31
0
    void readItem()
    {
        ItemInfo = new Dictionary<string, ItemData>();

        XmlDocument xmlDoc = new XmlDocument();
        TextAsset path = Resources.Load<TextAsset>(GameConfig.DatabasePathItem);
        xmlDoc.LoadXml(path.text);

        XmlNodeList listItem = xmlDoc.GetElementsByTagName("Item");

        foreach (XmlNode infoItem in listItem)
        {
            ItemData itemData = new ItemData();
            itemData.Name = infoItem.SelectSingleNode("Name").InnerText;
            itemData.ValueEffect = float.Parse(infoItem.SelectSingleNode("ValueEffect").InnerText);
            itemData.ValueText = infoItem.SelectSingleNode("ValueText").InnerText;

            XmlNodeList listPackage = infoItem.SelectNodes("Package");
            foreach (XmlNode infoPackage in listPackage)
            {
                ItemPackage package = new ItemPackage();
                package.Index = int.Parse(infoPackage.Attributes["ID"].InnerText);
                package.Diamond = int.Parse(infoPackage.SelectSingleNode("Diamond").InnerText);
                package.Gold = int.Parse(infoPackage.SelectSingleNode("Gold").InnerText);
                package.Wave = infoPackage.SelectSingleNode("Wave").InnerText;

                itemData.Packages.Add(package);
            }
            ItemInfo.Add(infoItem.Attributes["ID"].InnerText.Trim(), itemData);
        }
    }
예제 #32
0
        private static ItemPackage MakeInner(PartPackage partPack, SectionPackage[] sectionPacks)
        {
            int depth = 0;
            if (partPack.ContainsKey("Depth"))
            {
                depth = int.Parse(partPack["Depth"]) + 1;
            }

            ItemPackage inner_pack = new ItemPackage(partPack["ClassIdentifier"]);
            inner_pack["Contents"] = SectionPart.RenderSection(sectionPacks, depth);
            return inner_pack;
        }
예제 #33
0
 public static string TestRender(ItemPackage package)
 {
     return Render(package, Properties.Resources.DerivateItem);
 }
예제 #34
0
 public static string TestRender(ItemPackage package)
 {
     return Render(package, Properties.Resources.StandardItem);
 }
예제 #35
0
 public static string TestRender(ItemPackage package)
 {
     return Render(package, Properties.Resources.Caption);
 }