|
|
- SkillUIItem = SkillUIItem or BaseClass(BaseItem)
- SkillUIItem.HANDLE_TYPE =
- {
- default = 0,
- up = 1, --可升级
- learn = 2, --可学习
- change = 4, --可替换
- config = 5, --可上阵
- }
-
- SkillUIItem.GO_TYPE =
- {
- VIP = 1,
- DAILT_SKILL = 2,
- SPECIAL_SKILL = 3,
- SEVEN_DAY_TARGET = 4,
- SUPER_VIP = 5,
- }
-
- function SkillUIItem:__init(parent_wnd, _, mask_id, scroll_veiw)
- self.base_file = "skillUI"
- self.layout_file = "SkillUIItem"
-
- self.skillui_model = SkillUIModel:getInstance()
- self.skill_vo = nil
- self.pos = nil
- self.is_select = false
- self.next_asset = false
- self.is_lock = false
- self.hide_name = false
- self.show_red_dot = false
- self.view_index = false
- self.can_drag = false
- self.mScroll = scroll_veiw
- self.drag_listener = false
- self.show_lock_info = false
- self.show_level = true
- self.handle_type = SkillUIItem.HANDLE_TYPE.default
- self.need_turn_handle = false
- self.use_for = "default"
- self.showing_effect = false
- self.will_show_effect = false
- self.show_next = false
- self:Load()
- end
-
- --清除界面
- function SkillUIItem:__delete()
- self:Remove()
- end
-
- function SkillUIItem:Load_callback()
- self:LoadSuccess()
- self:InitEvent()
- end
-
- function SkillUIItem:Remove()
- self.call_back = nil
- self:ClearUIEffect(self.effect_con)
- end
-
- function SkillUIItem:LoadSuccess()
-
- local nodes = {
- "red_dot:obj",
- "select:obj:img",
- "btn:obj",
- "icon:img:obj",
- "lock:obj",
- "namebg/name:tmp",
- "namebg:obj",
- "bg:obj:img",
- "tips:tmp:obj",
- "go_btn:obj",
- "levelbg:obj:img",
- "levelbg/level:tmp",
- "handle:obj:img",
- "effect_con",
- "is_max:obj",
- "is_config:obj",
- "type_img:obj:img",
- "next:obj:img",
- "is_auto_daily_skill:obj",
- "is_ex:obj",
- }
- self:GetChildren(nodes)
- self.red_dot_obj:SetActive(false)
- self.select_obj:SetActive(false)
-
- if self.need_refreshData then
- self:SetUseFor(self.use_for)
- if self.is_nil then
- self:SetNil(self.pos, self.view_index)
- else
- self:SetData(self.skill_vo, self.pos,self.view_index,self.hide_name, self.show_level)
- self:WillShowEffect(self.will_show_effect)
- end
- self:SetSelect(self.is_select)
- self:ShowRedDot(self.show_red_dot)
- self:SetHandle(self.handle_type)
- self:CanDrag(self.can_drag)
- self:SetLockInfo(self.show_lock_info)
- self:ShowNext(self.show_next)
- end
- end
-
- function SkillUIItem:SetData(vo, pos,view_index,hide_name, show_level)
- self.skill_vo = vo
- self.pos = pos
- self.hide_name = hide_name
- self.is_nil = false
- self.view_index = view_index
- self.show_level = show_level == nil and true or show_level
- if self.is_loaded then
- self:UpdateItem()
- else
- self.need_refreshData = true
- end
- end
-
- function SkillUIItem:SetNil(pos,view_index)
- self.is_nil = true
- self.view_index = view_index
- self.pos = pos
- self.skill_vo = false
- if self.is_loaded then
- self:UpdateItem()
- else
- self.need_refreshData = true
- end
- end
-
- function SkillUIItem:IsNil()
- return self.is_nil
- end
-
- function SkillUIItem:UpdateItem()
- if self.is_nil then
- self.namebg_obj:SetActive(false)
- self.lock_obj:SetActive(self.is_lock)
- self.icon_obj:SetActive(false)
- self.levelbg_obj:SetActive(false)
- self.tips_obj:SetActive(false)
- self.go_btn_obj:SetActive(false)
- self.handle_obj:SetActive(false)
- return
- end
- if not self.skill_vo then
- return
- end
- self.icon_obj:SetActive(true)
- local skill_vo = self.skill_vo
- self.namebg_obj:SetActive(not self.hide_name)
- self.name_tmp.text = skill_vo:getName()
- self.lock_obj:SetActive(skill_vo.level == 0)
-
- self.levelbg_obj:SetActive(self.show_level and skill_vo.level ~= 0)
- if self.use_for == "SkillViewList" then
- self.is_config_obj:SetActive(SkillManager.getInstance():IsCurShortcutSkill(skill_vo.id))
- self.type_img_obj:SetActive(skill_vo:IsPassitiveSkill() or skill_vo:IsAngerSkill())
- --被动技能
- if skill_vo:IsPassitiveSkill() then
- lua_resM:setImageSprite(self,self.type_img_img,"skillUI_asset",skill_vo.level == 0 and "skill_ui_item_4" or "skill_ui_item_3", true)
- --怒气技能
- elseif skill_vo:IsAngerSkill() then
- lua_resM:setImageSprite(self,self.type_img_img,"skillUI_asset",skill_vo.level == 0 and "skill_ui_item_2" or "skill_ui_item_1", true)
- end
-
- if skill_vo:IsMaxLevel() then
- self.is_max_obj:SetActive(true)
- self.level_tmp.text = ""
- else
- self.is_max_obj:SetActive(false)
- self.level_tmp.text = string.format("等级 %s/%d", HtmlColorTxt(skill_vo.level, "#0ce148") , skill_vo:GetTotalLevel())
- end
- elseif self.use_for == "LegendlSkill" then
- self.levelbg_obj:SetActive(true)
- self.level_tmp.text = string.format("Lv.%d", skill_vo.level)
-
- elseif self.use_for == "SkillLevelShow" then
- self.level_tmp.text = string.format("等级 %d", skill_vo.level)
-
- else
- self.level_tmp.text = string.format("Lv.%d", skill_vo.level)
- end
-
- lua_resM:setOutsideImageSprite(self,self.icon_img,GameResPath.GetSkillIcon(self.skill_vo.id), true)
-
- -- VIP怒气大招EX
- if skill_vo.level == 3 and SkillManager:getInstance():IsAngrySkill(self.skill_vo.id) then
- self.is_ex_obj:SetActive(true)
- elseif self.is_ex_obj.activeSelf ~= false then
- self.is_ex_obj:SetActive(false)
- end
- end
-
- function SkillUIItem:InitEvent()
- local function onBtnClickHandler(target)
- print('Cat:SkillUIItem.lua[191] data',self.use_for, self.view_index)
- if self.use_for == "CareerSkillViewConfigList" then
- return
- end
- if target == self.btn_obj then
- -- if self.need_turn_handle then
- -- local career = RoleManager:getInstance():GetMainRoleVo().career
- -- local cfg = Config.Transfercareer
- -- local career_name = ""
- -- for k,v in pairs(cfg) do
- -- if v.career == career and v.transfer_id == self.need_turn_handle then
- -- career_name = Trim(v.name)
- -- break
- -- end
- -- end
- -- Message.show(string.format("转职为%s后可解", HtmlColorTxt(career_name, "#2cf86f")))
- -- return
- -- end
- self.skillui_model:Fire(SkillUIModel.CLICK_SKILL_ITEM, self.view_index, self:GetSkillId(), self.pos)
-
- elseif target == self.go_btn_obj then
- if self.use_for == "LegendlSkill" then
- return
- end
- if self.can_go then
- if SkillUIItem.GO_TYPE.DAILT_SKILL == self.can_go then
- OpenFun.Open(147, 0)
- elseif SkillUIItem.GO_TYPE.SPECIAL_SKILL == self.can_go then
- OpenFun.Open(144, 0)
- elseif SkillUIItem.GO_TYPE.VIP == self.can_go then
- OpenFun.Open(158, 0)
- elseif SkillUIItem.GO_TYPE.SEVEN_DAY_TARGET == self.can_go then
- SevenDayTargetModel:getInstance():Fire(SevenDayTargetModel.OPEN_SEVEN_DAY_TARGET_MAIN_VIEW)
- elseif SkillUIItem.GO_TYPE.SUPER_VIP == self.can_go then
- if SupremeVipModel:getInstance():IsMomentSupremeVip() then
- OpenFun.Open(451,6)
- else
- OpenFun.Open(451,5)
- end
- else
- GlobalEventSystem:Fire(EventName.OPEN_SHOP_VIEW, self.can_go.shop_type, self.can_go.sub_type, self.can_go.goods_id, true)
- end
- else
- Message.show("参与各项活动概率获得哦!")
- end
- end
- end
- AddClickEvent(self.btn_obj, onBtnClickHandler)
- AddClickEvent(self.go_btn_obj, onBtnClickHandler)
-
- -- if self.mScroll then
- -- self.drag_listener = GetLuaDragExtendListener(self.btn_obj)
- -- if self.drag_listener then
- -- local function OnBtnDragTigger(target)
- -- if target == self.btn_obj then
- -- if self.can_drag then
- -- self.skillui_model:Fire(SkillUIModel.DRAG_SKILL_ITEM_BEGIN, self:GetSkillId(), self.pos, 1)
- -- end
- -- end
- -- end
- -- LuaDragExtendTriggeListener(self.btn_obj, OnBtnDragTigger)
-
- -- if self.mScroll then
- -- self.drag_listener:SetParentScrollRect(self.mScroll)
- -- end
- -- --拖拽阈值
- -- self.drag_listener:SetTriggerVector({x = 30, y = 0})
- -- end
- -- end
- end
-
- function SkillUIItem:SetSelect(b)
- self.is_select = b
- if self.is_loaded then
- self.select_obj:SetActive(self.is_select)
- else
- self.need_refreshData = true
- end
- end
-
- function SkillUIItem:SetLock(lock)
- self.is_lock = lock
- if self.is_loaded then
- self.lock_obj:SetActive(self.is_lock)
- else
- self.need_refreshData = true
- end
- end
-
- function SkillUIItem:ShowRedDot(b)
- self.show_red_dot = b
- if self.is_loaded then
- self.red_dot_obj:SetActive(self.show_red_dot)
- else
- self.need_refreshData = true
- end
- end
-
- function SkillUIItem:GetSkillId()
- local skill_id = 0
- if self.skill_vo then
- skill_id = self.skill_vo.id
- end
- return skill_id
- end
-
- function SkillUIItem:GetSkillLevel()
- local skill_level = 0
- if self.skill_vo then
- skill_level = self.skill_vo.level
- end
- return skill_level
- end
-
- function SkillUIItem:CanDrag(can_drag)
- self.can_drag = can_drag
- if self.is_loaded then
- if self.drag_listener then
- self.drag_listener.isTriggerItem = self.can_drag
- end
- else
- self.need_refreshData = true
- end
- end
-
-
- function SkillUIItem:SetUseFor(use_for)
- self.use_for = use_for
- if self.is_loaded then
- self.bg_obj:SetActive(true)
- self.is_max_obj:SetActive(false)
- self.next_obj:SetActive(false)
- self.is_config_obj:SetActive(false)
- self.type_img_img.enabled = false
- self.name_tmp.enabled = true
- self.levelbg_img.enabled = false
- self.tips_tmp.enabled = true
- self.level_tmp.enabled = true
- self.name_tmp.fontSize = 18
- SetAnchoredPositionY(self.level, -30)
-
-
- if self.use_for == "SkillConfigViewList" then
- SetAnchoredPositionY(self.level, 0)
- self.levelbg_img.enabled = true
- lua_resM:setImageSprite(self,self.select_img,"skillUI_asset","skill_ui_item_19", true)
- elseif self.use_for == "SkillViewList" then
- self.type_img_img.enabled = true
- self.name_tmp.enabled = false
- lua_resM:setImageSprite(self,self.select_img,"skillUI_asset","skill_ui_item_19", true)
- elseif self.use_for == "SkillConfigViewSlot" then
- lua_resM:setImageSprite(self,self.select_img,"skillUI_asset","skill_ui_15", true)
-
- elseif self.use_for == "LegendlSkill" then
- self.tips_tmp.enabled = false
- self.name_tmp.fontSize = 16
- SetAnchoredPositionY(self.level, 0)
- self.levelbg_img.enabled = true
- lua_resM:setImageSprite(self,self.select_img,"skillUI_asset","skill_ui_item_27", true)
-
- elseif self.use_for == "SkillDrag" then
- self.level_tmp.enabled = false
-
- elseif self.use_for == "SkillLevelShow" then
- lua_resM:setImageSprite(self,self.select_img,"skillUI_asset","skill_ui_item_24", true)
- self.name_tmp.enabled = false
- else
-
- end
- else
- self.need_refreshData = true
- end
- end
-
- function SkillUIItem:SetHandle(handle_type)
- self.handle_type = handle_type
- if self.is_loaded then
- self:ShowRedDot(false)
- if self.handle_type == SkillUIItem.HANDLE_TYPE.default then
- self.handle_obj:SetActive(false)
- else
- self.handle_obj:SetActive(true)
- local img_str = "skill_ui_item_30"
- if self.handle_type == SkillUIItem.HANDLE_TYPE.up then
- img_str = "skill_ui_item_31"
- self:ShowRedDot(true)
- elseif self.handle_type == SkillUIItem.HANDLE_TYPE.learn then
- img_str = "skill_ui_item_33"
- self:ShowRedDot(true)
- elseif self.handle_type == SkillUIItem.HANDLE_TYPE.change then
- img_str = "skill_ui_item_32"
- elseif self.handle_type == SkillUIItem.HANDLE_TYPE.config then
- img_str = "skill_ui_item_30"
- end
- lua_resM:setImageSprite(self, self.handle_img, "skillui_asset",img_str, true)
- end
- else
- self.need_refreshData = true
- end
- end
-
- function SkillUIItem:SetLockInfo(show_lock_info)
- self.show_lock_info = show_lock_info
- if self.is_loaded then
- self.can_go = false
- self.go_btn_obj:SetActive(false)
- self.is_auto_daily_skill_obj:SetActive(self.use_for == "SkillViewList" and self.skill_vo and self.skill_vo:IsDailyLightSkill() and self.skill_vo.level > 0 and self.skillui_model:IsAutoChangeDailySkillid())
- if (self.show_lock_info and self.skill_vo and self.skill_vo.level == 0) or (self.skill_vo and self.skill_vo:IsSpecialSkill()) or (self.skill_vo and self.skill_vo:IsForbidJumpSkill()) then
- self.tips_obj:SetActive(true)
- local str = ""
- local skill_vo = self.skill_vo
- if self.use_for == "SkillLevelShow" then return end
- if skill_vo:IsSpecialSkill() and not SevenDayTargetModel:GetInstance():IsSevenDayTargetSkill(skill_vo.id) then
- if skill_vo.level == 0 then
- self.go_btn_obj:SetActive(true)
- str = string.format("%s", HtmlColorTxt("<u>魂力突破</u>", "#2cf86f"))
- self.can_go = SkillUIItem.GO_TYPE.SPECIAL_SKILL
- end
- elseif skill_vo:IsDailyLightSkill() then
- local item = self.skillui_model:GetDailySkillItem(skill_vo.id, skill_vo.level + 1)
- if item then
- self.go_btn_obj:SetActive(true)
- str = string.format("%s", HtmlColorTxt("<u>激活幻光</u>", "#2cf86f"))
- self.can_go = SkillUIItem.GO_TYPE.DAILT_SKILL
- end
- elseif SevenDayTargetModel:GetInstance():IsSevenDayTargetSkill(skill_vo.id) then
- self.go_btn_obj:SetActive(true)
- str = string.format("%s", HtmlColorTxt("<u>七日目标</u>", "#2cf86f"))
- self.can_go = SkillUIItem.GO_TYPE.SEVEN_DAY_TARGET
- elseif skill_vo:IsForbidJumpSkill() then
- if skill_vo.level == 0 then
- if not SupremeVipModel:getInstance():IsForeverSupremeVip() then
- self.go_btn_obj:SetActive(true)
- str = string.format("%s", HtmlColorTxt("<u>二阶贵族</u>", "#2cf86f"))
- self.can_go = SkillUIItem.GO_TYPE.SUPER_VIP
- end
- end
- else
- local vip = skill_vo:GetNextConditionByKey("vip")
- local turn = skill_vo:GetNextConditionByKey("turn")
- local level = skill_vo:GetNextConditionByKey("level")
- local goods = skill_vo:GetNextConditionByKey("goods")
- if vip then
- self.go_btn_obj:SetActive(true)
- str = HtmlColorTxt(string.format("<u>达到VIP%d</u>", vip) , "#0ce148")
- self.can_go = SkillUIItem.GO_TYPE.VIP
- elseif goods and goods[1][1] then
- self.go_btn_obj:SetActive(true)
- local basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(goods[1][1])
- local cfg = ShopModel:getInstance():GetShopTypeIdBuyCFG(basic.type_id)
- self.go_btn_obj:SetActive(true)
- if cfg and TableSize(cfg) > 0 then
- local shop_cfg = false
- for k,v in pairs(cfg) do
- shop_cfg = v
- break
- end
- str = HtmlColorTxt( string.format("<u>%s</u>", ShopModel:getInstance():GetShopTabName(shop_cfg.shop_type)), "#0ce148")
- self.can_go = shop_cfg
- else
- str = HtmlColorTxt("<u>运营活动</u>", "#0ce148")
- end
- elseif level then
- str = HtmlColorTxt(string.format("%d级 自动学习", level) , "#fdffc2")
- end
- end
- self.tips_tmp.text = str
- else
- self.tips_obj:SetActive(false)
- end
-
- else
- self.need_refreshData = true
- end
- end
-
- function SkillUIItem:SetNeedTurnHandle(handle)
- self.need_turn_handle = handle
- end
-
- function SkillUIItem:WillShowEffect(show)
- self.will_show_effect = show
- if self.is_loaded then
- if self.will_show_effect then
- self.will_show_effect = false
- self:AddEffect()
- end
- else
- self.need_refreshData = true
- end
- end
-
- function SkillUIItem:ShowNext(show_next)
- self.show_next = show_next
- if self.is_loaded then
- if self.show_next then
- self.next_obj:SetActive(true)
- lua_resM:setImageSprite(self,self.next_img,"skillUI_asset",self.show_next == 0 and "skill_ui_item_15" or "skill_ui_item_16", true)
- else
- self.next_obj:SetActive(false)
- end
- else
- self.need_refreshData = true
- end
- end
-
- function SkillUIItem:AddEffect()
- if not self.showing_effect then
- local function call_back( )
- self.showing_effect = false
- end
-
- self:ClearUIEffect(self.effect_con)
- self:AddUIEffect("ui_hunliqiudianliang", self.effect_con, "Activity", nil, 2.8, false, 0.6, nil, call_back)
- self.showing_effect = true
- end
- end
|