源战役客户端
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

103 lines
4.0 KiB

  1. -- <*
  2. -- @Author: Saber
  3. -- @Description: 社团职位任命成员节点
  4. -- *>
  5. GuildPositionAllotItem = GuildPositionAllotItem or BaseClass(BaseItem)
  6. local GuildPositionAllotItem = GuildPositionAllotItem
  7. function GuildPositionAllotItem:__init(parent_wnd,prefab_asset,layer_name)
  8. self.base_file = "guild"
  9. self.layout_file = "GuildPositionAllotItem"
  10. self.parent_wnd = parent_wnd
  11. self.layer_name = layer_name
  12. self.model = GuildModel:getInstance()
  13. self:Load()
  14. end
  15. function GuildPositionAllotItem:Load_callback()
  16. local nodes = {
  17. "info_con/vip_con", "info_con/sex_flag:img", "info_con/name:tmp",
  18. "pos_bg:img",
  19. "power:txt", "active:tmp",
  20. "apoint_btn:obj", "resign_btn:obj",
  21. }
  22. self:GetChildren(nodes)
  23. -- 加载vip节点
  24. self.vipItem = RoleVipItem.New(self.vip_con)
  25. self:AddEvents()
  26. if self.need_refreshData then
  27. self:UpdateView()
  28. end
  29. end
  30. function GuildPositionAllotItem:AddEvents( )
  31. local function click_event(target)
  32. if target == self.apoint_btn_obj then -- 任命按钮
  33. self:OnBtnClick(1)
  34. elseif target == self.resign_btn_obj then -- 卸任按钮
  35. self:OnBtnClick(2)
  36. end
  37. end
  38. AddClickEvent(self.apoint_btn_obj, click_event)
  39. AddClickEvent(self.resign_btn_obj, click_event)
  40. end
  41. function GuildPositionAllotItem:SetData( data, index, tab_pos)
  42. self.data = data
  43. self.index = index
  44. self.tab_pos = tab_pos
  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 GuildPositionAllotItem:UpdateView( )
  53. self.vipItem:SetData(self.data.vip_flag, self.data.sup_vip_type)
  54. self.name_tmp.text = self.data.name
  55. lua_resM:setImageSprite(self, self.sex_flag_img, "common_asset", self.data.sex == 1 and "com_boy" or "com_girl", true)
  56. -- SetAnchoredPositionX(self.name, self.data.vip_flag == 0 and 5 or 46)
  57. SetAnchoredPositionX(self.name, 46)
  58. self.name_tmp.text = self.data.name
  59. -- local sex_pos_x = (self.data.vip_flag == 0 and 10 or 51) + self.name_tmp.preferredWidth
  60. local sex_pos_x = 51 + self.name_tmp.preferredWidth
  61. SetAnchoredPositionX(self.sex_flag, sex_pos_x)
  62. lua_resM:setImageSprite(self, self.pos_bg_img, "guild_asset", "g_pos_icon" .. self.data.position, true)
  63. self.active_tmp.text = self.data.total_labor
  64. self.power_txt.text = self.data.power
  65. -- 会长不能上任和卸任,只能由会长转让
  66. self.apoint_btn_obj:SetActive(self.data.position ~= self.tab_pos and self.data.position ~= GuildModel.GuildPosition.Leader)
  67. self.resign_btn_obj:SetActive(self.data.position == self.tab_pos and self.data.position ~= GuildModel.GuildPosition.Leader)
  68. end
  69. function GuildPositionAllotItem:OnBtnClick(type)
  70. if type == 1 then -- 任命
  71. local cur_mem_num = self.model:GetMemberNum(self.tab_pos)
  72. local mem_max_num = self.model:GetPositionNum(self.tab_pos)
  73. if cur_mem_num < mem_max_num or self.tab_pos == GuildModel.GuildPosition.Leader then -- 团长需要特殊处理,因为团长一直都是满的
  74. local function ok( ... )
  75. GuildModel:getInstance():Fire(GuildModel.REQUEST_CCMD_EVENT, 40013, self.data.role_id, self.tab_pos)
  76. end
  77. local ask_str = string.format("是否任命 %s 为 %s ?", self.data.name, Trim(Config.Guildpos[self.tab_pos].name))
  78. Alert.show(ask_str,Alert.Type.Two,ok,nil,"确定","取消")
  79. else
  80. Message.show("该职位人数已满")
  81. end
  82. elseif type == 2 then -- 卸任
  83. local function ok( ... )
  84. GuildModel:getInstance():Fire(GuildModel.REQUEST_CCMD_EVENT, 40013, self.data.role_id, 5)
  85. end
  86. local ask_str = string.format("是否卸下 %s 的 %s 职位?", self.data.name, Trim(Config.Guildpos[self.tab_pos].name))
  87. Alert.show(ask_str,Alert.Type.Two,ok,nil,"确定","取消")
  88. end
  89. end
  90. function GuildPositionAllotItem:__delete( )
  91. if self.vipItem then
  92. self.vipItem:DeleteMe()
  93. self.vipItem = nil
  94. end
  95. end