源战役客户端
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

123 строки
4.2 KiB

1 месяц назад
  1. -- <*
  2. -- @Author: Saber
  3. -- @Description: 2020年5月20日新增:社团创建类型节点
  4. -- *>
  5. GuildCreateTabItem = GuildCreateTabItem or BaseClass(BaseItem)
  6. local GuildCreateTabItem = GuildCreateTabItem
  7. function GuildCreateTabItem:__init(parent_wnd,prefab_asset,layer_name)
  8. self.base_file = "guild"
  9. self.layout_file = "GuildCreateTabItem"
  10. self.parent_wnd = parent_wnd
  11. self.layer_name = layer_name
  12. self.cur_tab_index = 0 -- 当前选中的社团类型
  13. self.model = GuildModel:getInstance()
  14. self:Load()
  15. end
  16. function GuildCreateTabItem:Load_callback()
  17. local nodes = {
  18. "bg:obj:img",
  19. "guild_lv:img",
  20. "cost_icon:img",
  21. "selected:obj",
  22. "cost_val:tmp", "mem_num:tmp",
  23. "cost_val_line:obj", "cost_val_discount:tmp",
  24. }
  25. self:GetChildren(nodes)
  26. self:AddEvents()
  27. if self.need_refreshData then
  28. self:UpdateView()
  29. end
  30. end
  31. function GuildCreateTabItem:AddEvents( )
  32. local function click_event(target)
  33. if target == self.bg_obj then
  34. if self.callback and self.data then
  35. self.callback(self.data.cfg_id, self.index)
  36. end
  37. end
  38. end
  39. AddClickEvent(self.bg_obj, click_event, LuaSoundManager.SOUND_UI.SWITCH)
  40. end
  41. function GuildCreateTabItem:SetData( data, index, callback )
  42. self.data = data
  43. self.index = index
  44. self.callback = callback
  45. if self.is_loaded then
  46. self.need_refreshData = false
  47. self:UpdateView()
  48. else
  49. self.need_refreshData = true
  50. end
  51. end
  52. function GuildCreateTabItem:UpdateView( )
  53. if not self.data then return end
  54. -- 加载背景
  55. lua_resM:setImageSprite(self, self.bg_img, "guildCreate_asset", "guild_create_type" .. self.data.cfg_id)
  56. -- 加载社团类型艺术字
  57. lua_resM:setImageSprite(self, self.guild_lv_img, "guild_asset", "g_create_title" .. self.data.cfg_id, true)
  58. -- -- 加载条件和不同创建类型下的消费
  59. -- local cond = stringtotable(self.data.condition)
  60. -- local condi_str = ""
  61. -- for k, v in pairs(cond) do
  62. -- if v[1] == "lv" then
  63. -- condi_str = condi_str .. string.format("Lv.%s", v[2])
  64. -- elseif v[1] == "vip" then
  65. -- condi_str = condi_str .. string.format("VIP%s", v[2])
  66. -- end
  67. -- if k < #cond then
  68. -- condi_str = condi_str .. "或"
  69. -- end
  70. -- end
  71. -- -- local role_lv = RoleManager.Instance.mainRoleInfo.level
  72. -- self.create_lv_tmp.text = string.format("1.%s", condi_str)
  73. -- 花费
  74. local cost_cfg = stringtotable(self.data.cost)[1]
  75. local icon_asset, icon_name = WordManager:GetCommonMoneyIcon(cost_cfg[1])
  76. lua_resM:setImageSprite(self, self.cost_icon_img, icon_asset, icon_name)
  77. local guild_lv_cfg = Config.Guildlv[self.data.guild_lv]
  78. self.cost_val_tmp.text = cost_cfg[3]
  79. self.mem_num_tmp.text = string.format("人数 <size=16>%s</size>", guild_lv_cfg and guild_lv_cfg.member_capacity or 0)
  80. --是否处于社团创建折扣期
  81. local is_in_discount = self.model:IsInCreateGuildDiscount()
  82. if is_in_discount then
  83. self.cost_val_line_obj:SetActive(true)
  84. local discount = stringtotable(self.model:GetGuildKvByKey("create_guild_discount").val)[2]
  85. self.cost_val_discount_tmp.text = cost_cfg[3]*discount
  86. else
  87. self.cost_val_line_obj:SetActive(false)
  88. self.cost_val_discount_tmp.text = ""
  89. end
  90. -- 设置tmp材质球
  91. if self.data.cfg_id == 1 then
  92. SetTMPSharedMaterial(self.mem_num_tmp, ShaderTools.TMPSharedMaterialType.HKYTW7OutlineGreenTab)
  93. elseif self.data.cfg_id == 2 then
  94. SetTMPSharedMaterial(self.mem_num_tmp, ShaderTools.TMPSharedMaterialType.HKYTW7OutlineBlueTab)
  95. else
  96. SetTMPSharedMaterial(self.mem_num_tmp, ShaderTools.TMPSharedMaterialType.HKYTW7OutlineOrangeTab)
  97. end
  98. self:SetSelected()
  99. end
  100. function GuildCreateTabItem:SetSelected(cur_tab_index)
  101. self.cur_tab_index = cur_tab_index or self.cur_tab_index
  102. local bool = self.data and self.data.cfg_id == self.cur_tab_index or false
  103. if self.is_loaded then
  104. if self.selected_obj.activeSelf ~= bool then
  105. self.selected_obj:SetActive(bool)
  106. end
  107. end
  108. end
  109. function GuildCreateTabItem:__delete( )
  110. end