void OnUnEquip(GameObject Slot) { int powerchange = int.Parse(txtScore.text); // 装备放入背包 UIMemberEquipSlot slot = Slot.GetComponent <UIMemberEquipSlot>(); if (slot.item != null) { GameData.AddItemToBag(slot.item, 1); powerchange -= slot.item.Power; } if (_nCurSlotSelTag < _npcdata.lstEquipments.Count) { GameData.lstNpcs[GameData.nCurNpcTag].lstEquipments[_nCurSlotSelTag] = null; } else { int j = _nCurSlotSelTag - GameData.lstNpcs[GameData.nCurNpcTag].lstEquipments.Count; GameData.lstNpcs[GameData.nCurNpcTag].lstCards[j] = null; } // npc装备改为null GameData.lstNpcs[GameData.nCurNpcTag].lstEquipments[_nCurSlotSelTag] = null; txtScore.text = powerchange.ToString(); Slot.GetComponent <UIMemberEquipSlot>().imgIcon.sprite = null; Slot.GetComponent <UIMemberEquipSlot>().imgIcon.gameObject.SetActive(false); Slot.GetComponent <UIMemberEquipSlot>().imgIconIfNull.gameObject.SetActive(true); OnCloseBag(); }
void OnOpenBag(GameObject objSelectedSlot) { if (objSelectedSlot.GetComponent <UIMemberEquipSlot>().nSlotTag == _nCurSlotSelTag) { OnCloseBag(); return; } else { _nCurSlotSelTag = objSelectedSlot.GetComponent <UIMemberEquipSlot> ().nSlotTag; } // // 如果点击了同一个slot,则关闭 // if() // { // // } // // 如果点击了不同的slot,打开换装信息 // else // { // } UIMemberEquipSlot slotinfo = objSelectedSlot.GetComponent <UIMemberEquipSlot>(); if (slotinfo.item == null) { Debug.Log("?"); objEquipmentDesc.SetActive(false); btClose.gameObject.SetActive(false); btUnEquip.gameObject.SetActive(false); } else { Debug.Log("!"); objEquipmentDesc.SetActive(true); btClose.gameObject.SetActive(true); btUnEquip.gameObject.SetActive(true); objEquipmentDesc.GetComponent <UISlotItemInfo>().UpdateItemInfo(slotinfo.item); } Debug.Log("itemtype = " + slotinfo.nslottype); objEquipmentBag.SetActive(true); objEquipmentBag.GetComponent <BubbleBag>().GenerateItemsInBag(slotinfo.nslottype); // 可装备格子监听 Transform Itemroot = objEquipmentBag.GetComponent <BubbleBag> ().trsSlotItemRoot; for (int i = 0; i < Itemroot.childCount; i++) { var obj = Itemroot.GetChild(i).gameObject as GameObject; obj.AddMissingComponent <Button> ().onClick.AddListener(() => { OnSwitchItem(objSelectedSlot, obj.name); }); } // 卸装备监听 btUnEquip.onClick.AddListener(() => { OnUnEquip(objSelectedSlot); }); }
void OnSwitchItem(GameObject Slot, string ItemId) { int powerchange = int.Parse(txtScore.text); // 装备放入背包 UIMemberEquipSlot slot = Slot.GetComponent <UIMemberEquipSlot>(); if (slot.item != null) { GameData.AddItemToBag(slot.item, 1); powerchange -= slot.item.Power; } // 穿装备 for (int i = 0; i < GameData.lstBagItems.Count; i++) { if (GameData.lstBagItems[i].ID == ItemId) { Debug.Log(ItemId); slot.item = GameData.lstBagItems [i]; if (GameData.lstBagItems [i].Category == ItemType.Equipment) { GameData.lstNpcs [GameData.nCurNpcTag].lstEquipments[_nCurSlotSelTag] = GameData.lstBagItems [i]; } else { int j = _nCurSlotSelTag - GameData.lstNpcs [GameData.nCurNpcTag].lstEquipments.Count; GameData.lstNpcs [GameData.nCurNpcTag].lstCards [j] = GameData.lstBagItems [i]; } Slot.GetComponent <UIMemberEquipSlot> ().imgIcon.sprite = slot.item.IconSprite; Slot.GetComponent <UIMemberEquipSlot> ().imgIcon.gameObject.SetActive(true); Slot.GetComponent <UIMemberEquipSlot> ().imgIconIfNull.gameObject.SetActive(false); powerchange += slot.item.Power; GameData.DelItemFromBag(slot.item, 1); txtScore.text = powerchange.ToString(); Debug.Log("Npc " + GameData.nCurNpcTag + " Slot = " + _nCurSlotSelTag + " : " + GameData.lstNpcs [GameData.nCurNpcTag].lstEquipments [_nCurSlotSelTag].ID); OnCloseBag(); return; } } }
// 生成界面 void GenerateNpcInfo() { Debug.Log("GenerateSlotList"); txtNpcName.text = GameData.lstNpcs [GameData.nCurNpcTag].Name; int power = DataCenter.Instance.dictNPCData[GameData.lstNpcs [GameData.nCurNpcTag].ID].Power; Debug.Log("NpcId : " + _npcdata.ID); // 装备 for (int i = 0; i < _npcdata.lstEquipments.Count; i++) { var obj = trsSlotItemRoot.GetChild(i).gameObject as GameObject; UIMemberEquipSlot slot = obj.GetComponent <UIMemberEquipSlot>(); slot.item = _npcdata.lstEquipments[i]; slot.nSlotTag = i; Debug.Log(i); slot.nslottype = DataCenter.Instance.dictNPCData[_npcdata.ID].EquipType[i]; if (_npcdata.lstEquipments[i] == null) { Debug.Log("?"); slot.imgIconIfNull.gameObject.SetActive(true); slot.imgIcon.gameObject.SetActive(false); } else { Debug.Log("!"); slot.imgIconIfNull.gameObject.SetActive(false); slot.imgIcon.gameObject.SetActive(true); Debug.Log("Npc " + i + " Equip : " + slot.item.ID); power += slot.item.Power; } obj.GetComponent <Button>().onClick.AddListener(() => { OnOpenBag(obj); }); } // 卡片 for (int i = _npcdata.lstEquipments.Count; i < _npcdata.lstEquipments.Count + _npcdata.lstCards.Count; i++) { var obj = trsSlotItemRoot.GetChild(i).gameObject as GameObject; UIMemberEquipSlot slot = obj.GetComponent <UIMemberEquipSlot>(); slot.item = _npcdata.lstCards[i - _npcdata.lstEquipments.Count]; slot.nSlotTag = i; // TODO::非常临时的写法 slot.nslottype = 400; if (_npcdata.lstCards[i - _npcdata.lstEquipments.Count] == null) { slot.imgIconIfNull.gameObject.SetActive(true); slot.imgIcon.gameObject.SetActive(false); } else { slot.imgIconIfNull.gameObject.SetActive(false); slot.imgIcon.gameObject.SetActive(true); } obj.GetComponent <Button>().onClick.AddListener(() => { OnOpenBag(obj); }); } // 技能、喜好、性格 GenerateSlotNature(trsNpcSkillRoot, objSkillSlot, _npcdata.SkillId); GenerateSlotNature(trsNpcPreferRoot, objPreferSlot, _npcdata.Favor); GenerateSlotNature(trsNpcTraitRoot, objTraitSlot, _npcdata.Character); // 战斗力 txtScore.text = power.ToString(); }