/// <summary> /// 刷新技能槽上技能的信息,参数技能槽索引,有效范围[0..3] /// </summary> void UpdateEquipSkill(int slotIdx) { SkillItemUI item = equipSkills[slotIdx] as SkillItemUI; if (item == null) { return; } //锁定状态; if (MySkillModule.IsSlotLocked(slotIdx + 1)) { item.SLockType = SkillLockType.Locked; item.IsShowIcon = false; item.IsTrigger = false;//停止响应点击事件; } else { int skillID = MySkillModule.GetEquipSkillID(slotIdx); SkillLearnTableItem slti = MySkillModule.GetDetailBySkillId(skillID); if (slti == null) { item.SetSkillIcon(""); item.SLockType = SkillLockType.UnLocked; return; } item.SetSkillIcon(slti.skill_icon); item.SLockType = SkillLockType.UnLocked; item.IsShowIcon = true; item.IsTrigger = true; } }
/// <summary> /// 更新指定技能ID的信息,技能列表中,技能索引减1即列表索引; /// </summary> /// <param name="skillId">Skill identifier.</param> void UpdateSkillInfo(int skillId) { if (!MySkillModule.IsLegalSkillID(skillId)) { return; } // if(skillId > skillsList.Count || skillId < 1) // return; SkillItemUI item = skillsList[skillId - 1] as SkillItemUI; if (item == null) { return; } int skillLv = MySkillModule.GetSkillLvBySkillID(skillId); bool canOpen = MySkillModule.canOpen(skillId); if (skillLv == 0 && !canOpen)//锁定状态; { item.SLockType = SkillLockType.Locked; item.IsShowEquiSlotNum = false; item.IsShowLv = false; int openLv = MySkillModule.GetSkillUnlockLvByID(skillId); item.SetShowHint(openLv.ToString() + "级解锁"); return; } else if (skillLv == 0 && canOpen)//可解锁状态; { item.SLockType = SkillLockType.Opened; item.IsShowEquiSlotNum = false; item.IsShowLv = false; item.SetShowHint("可解锁"); return; } else { item.SLockType = SkillLockType.UnLocked; item.SetShowLevel(skillLv); item.IsShowHint = false; int slotIdx = -1; if (MySkillModule.GetSlotIdxBySkillID(skillId, ref slotIdx)) { item.IsShowEquiSlotNum = true; item.SetShowEquipNum(slotIdx + 1); } else { item.IsShowEquiSlotNum = false; } } }
void InitEquipSkills() { for (int i = 0, j = equipSkills.Count; i < j; i++) { SkillItemUI item = equipSkills[i] as SkillItemUI; item.IsShowLv = false; item.IsShowEquiSlotNum = true; UIEventListener.Get(item.Bt.gameObject).onClick = onEquipItemClick; } }
//dodgeSkill private void refreshDodgeSkill(SkillUIData dt) { SkillItemUI skillUI = dodgeSkill.GetComponent <SkillItemUI>(); if (skillUI == null) { skillUI = dodgeSkill.AddComponent <SkillItemUI>(); } if (skillUI != null) { skillUI.setData(dt.getDodgeSkillData()); } }
/// <summary> /// invalid 是否无效; /// </summary> /// <param name="skillId"></param> /// <param name="invalid"></param> void CreateSkill(int skillId, bool invalid = false) { GameObject go = UIResourceManager.Instance.CloneGameObject(skillItemprefab); if (go == null) { Debug.LogError("SkillItemUI Prefab Not Found"); return; } UIEventListener.Get(go).onDrag = onSkillItemDrag; go.SetActive(true); go.name = SKILL_ITEM_NAME + skillId.ToString(); go.transform.parent = skillRoot.transform; go.transform.localScale = Vector3.one;//防止缩放; SkillItemUI item = new SkillItemUI(go); if (item == null) { Debug.LogError("SkillItemUI Component Not Found"); return; } //item.onDragScrollView = onSkillItemDrag; // UIEventListener.Get(skillRoot.transform.parent.gameObject).onPress = onSkillItemPress; // UIEventListener.Get(skillRoot.transform.parent.gameObject).onDrag = onSkillItemDrag; // UIEventListener.Get(go).onDrag = onSkillItemDrag; if (invalid)//无效的技能; { go.GetComponent <UIButton>().normalSprite = "touming"; go.GetComponent <UISprite>().spriteName = "touming"; for (int m = 0, n = go.transform.childCount; m < n; m++) { go.transform.GetChild(m).gameObject.SetActive(false); } } else { //图标是不需要变的放在这里进行处理; item.SetSkillIcon(MySkillModule.GetSkillIconByID(skillId)); UIEventListener.Get(go).onClick = onSkillItemClick; skillsList.Add(item); } }
/// <summary> /// 技能解锁; /// </summary> void UnLock() { SkillItemUI item = skillsList[CurSkillId - 1] as SkillItemUI; if (item == null) { return; } if (item.SLockType == SkillLockType.Opened) { MySkillModule.UnLock(CurSkillId); } else { //人物等级不足,解锁失败!; PopTipManager.Instance.AddNewTip(StringHelper.StringWithColor(FontColor.Red, StringHelper.GetString("skill_unlock_nolv"))); } }
//normalSkill private void refreshNormalSkill(SkillUIData dt) { List <SkillItemUIData> lst = dt.getNormalSkillData(); for (int i = 0; i < lst.Count; i++) { GameObject go = skillMap[i]; if (go == null) { break; } SkillItemUI item = go.GetComponent <SkillItemUI>(); if (item == null) { item = go.AddComponent <SkillItemUI>(); } if (item != null) { item.setData(lst[i]); } } }
void Awake() { instance = this; }