源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

105 lines
3.3 KiB

  1. --个性化聊天界面
  2. ChatBagView = ChatBagView or BaseClass(BaseView)
  3. function ChatBagView:__init()
  4. self.base_file = "chat"
  5. self.layout_file = "ChatBagView"
  6. self.layer_name = "UI"
  7. self.destroy_imm = true
  8. self.change_scene_close = true
  9. self.hide_maincancas = false
  10. -- self.use_local_view = true
  11. self.model = ChatModel:getInstance()
  12. self.good_item_list = {}
  13. self.load_callback = function ()
  14. self:LoadSuccess()
  15. self:InitEvent()
  16. end
  17. self.open_callback = function ()
  18. self.model.chat_bag_view_is_open = true
  19. self:UpdateView()
  20. self.model:Fire(ChatModel.SHOW_BAG_SELECT_BG, true)
  21. end
  22. self.close_callback = function ()
  23. self.model:Fire(ChatModel.SHOW_BAG_SELECT_BG, false)
  24. end
  25. self.destroy_callback = function ()
  26. self.model.chat_bag_view_is_open = false
  27. self:Clear()
  28. end
  29. end
  30. function ChatBagView:Clear()
  31. for i, item in pairs(self.good_item_list) do
  32. item:DeleteMe()
  33. end
  34. self.good_item_list = {}
  35. self.model.selected_good_item = nil
  36. if self.orientation_change_id then
  37. GlobalEventSystem:UnBind(self.orientation_change_id)
  38. self.orientation_change_id = nil
  39. end
  40. end
  41. function ChatBagView:LoadSuccess()
  42. self.scroll_content = self:GetChild("InfoCon/ScrollView/Viewport/Content")
  43. self.info_con = self:GetChild("InfoCon")
  44. --self.bg = self:GetChild("bg")
  45. self.closeBtn = self:GetChild("InfoCon/closeBtn").gameObject
  46. -- self.transform.sizeDelta = Vector2(SrcScreenWidth, ScreenHeight)
  47. -- self.bg.transform.sizeDelta = Vector2(SrcScreenWidth/2, ScreenHeight)
  48. -- self.bg.transform.anchoredPosition = Vector2(0, 0)
  49. -- self.transform.anchoredPosition = Vector2(ClientConfig.iphone_x_offset_left, 0)
  50. end
  51. function ChatBagView:InitEvent()
  52. local function onOrientationChange()
  53. self.transform.anchoredPosition = Vector2(ClientConfig.iphone_x_offset_left, 0)
  54. end
  55. self.orientation_change_id = GlobalEventSystem:Bind(EventName.ORIENTATION_DID_CHANGE, onOrientationChange)
  56. local function onBtnClickHandler(target)
  57. if target == self.closeBtn then
  58. self:Close()
  59. end
  60. end
  61. --AddClickEvent(self.bg.gameObject,onBtnClickHandler)
  62. AddClickEvent(self.closeBtn, onBtnClickHandler)
  63. end
  64. function ChatBagView:UpdateView()
  65. local index = 1
  66. local wear_equip_list = {}
  67. local bag_goods_list = {}
  68. for k, v in pairs(GoodsModel:getInstance().wear_equip_dic) do
  69. table.insert(wear_equip_list, v)
  70. end
  71. for k, v in pairs(GoodsModel:getInstance().bag_goods_dic) do
  72. table.insert(bag_goods_list, v)
  73. end
  74. local function sort_func(v1, v2)
  75. return v1.type_id > v2.type_id
  76. end
  77. table.sort(wear_equip_list, sort_func)
  78. table.sort(bag_goods_list, sort_func)
  79. local createItem = function (vo)
  80. item = self.good_item_list[index]
  81. if item == nil then
  82. item = EquipShowItem.New(self.scroll_content)
  83. self.good_item_list[index] = item
  84. end
  85. item:ChangeCountVisible(false, 0)
  86. item:SetData(vo)
  87. item:SetVisible(true)
  88. index = index + 1
  89. end
  90. for i, v in ipairs(wear_equip_list) do
  91. v.used = true
  92. createItem(v)
  93. end
  94. for i, v in ipairs(bag_goods_list) do
  95. createItem(v)
  96. end
  97. end