源战役客户端
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

665 rindas
25 KiB

pirms 1 mēnesi
  1. --seal尚未开始 请重做
  2. SealToolTips = SealToolTips or BaseClass(BaseView)
  3. function SealToolTips:__init()
  4. self.base_file = "common"
  5. self.layout_file = "EquipToolTips"
  6. self.layer_name = "Top"
  7. self.use_background = true
  8. self.click_bg_toClose = true
  9. self.close_mode = CloseMode.CloseDestroy
  10. self.destroy_imm = true
  11. self.goods_vo = nil
  12. self.pos_x = 0
  13. self.pos_y = 0
  14. self.is_show_btn = false
  15. self.show_compare_tips = false --是否需要显示对比tips
  16. self.have_equip_data = nil --对比tips中,已穿戴的装备数据
  17. self.model = GoodsModel:getInstance()
  18. --self:AddPreLoadList("common",{"SealCompareTips", "SealToolDecomItem"})
  19. self.seal_item_list = {}
  20. self.load_callback = function ()
  21. self:LoadSuccess()
  22. end
  23. self.open_callback = function ()
  24. self.gameObject:SetActive(false)
  25. if self.need_refresh then
  26. self:InitView()
  27. end
  28. end
  29. self.close_callback = function ()
  30. end
  31. self.destroy_callback = function ()
  32. if self.icon_item then
  33. self.icon_item:DeleteMe()
  34. self.icon_item = nil
  35. end
  36. if self.compareTips then
  37. self.compareTips:DeleteMe()
  38. self.compareTips = nil
  39. end
  40. for i,v in ipairs(self.seal_item_list) do
  41. v:DeleteMe()
  42. v = nil
  43. end
  44. self.seal_item_list = {}
  45. self:DeleteArrowTip()
  46. if self.addNumComponent then
  47. if self.change_count_id then
  48. self.addNumComponent:UnBind(self.change_count_id)
  49. self.change_count_id = nil
  50. end
  51. self.addNumComponent:DeleteMe()
  52. self.addNumComponent = nil
  53. end
  54. end
  55. end
  56. function SealToolTips:InitEvent()
  57. local function onClickBtnHandler(target)
  58. if self.goods_vo and self.is_show_btn then
  59. if target == self.strengthBtn then
  60. SealModel:getInstance():Fire(SealModel.OPEN_SEAL_STREN_VIEW, self.goods_vo.subtype)
  61. elseif target == self.wearBtn then
  62. SealModel:getInstance():Fire(SealModel.REQUSET_PROTOCALS, 15501, self.goods_vo.goods_id)
  63. elseif target == self.washBtn then
  64. --[[if self.dynamic then
  65. if #self.dynamic.equip_extra_attr > 0 then
  66. EquipModel:getInstance():Fire(EquipModel.OPEN_EQUIP_WASH_VIEW, self.dynamic)
  67. else
  68. local function ok_callback()
  69. GlobalEventSystem:Fire(EventName.OPEN_SEll_VIEW, self.goods_vo)
  70. end
  71. local str = Trim(self.goods_vo.goods_name) .. "装备已经没有附加属性,\n您可以出售它来换取金币"
  72. Alert.show(str, Alert.Type.Two, ok_callback, nil,"出售", "取消")
  73. end
  74. end--]]
  75. elseif target == self.insertBtn then
  76. --GlobalEventSystem:Fire(EventName.OPEN_EQUIP_VIEW, self.goods_vo.cell)
  77. elseif target == self.offBtn then
  78. SealModel:getInstance():Fire(SealModel.REQUSET_PROTOCALS, 15502, self.goods_vo.goods_id)
  79. elseif target == self.decomposeBtn then
  80. local list = {}
  81. list[self.goods_vo.goods_id] = self.goods_vo.goods_num
  82. GoodsModel:getInstance():Fire(GoodsModel.REQUEST_CCMD_EVENT, 15019, list)
  83. --BagModel:getInstance():Fire(BagModel.OPEN_EQUIP_DECOMPOSE_VIEW, self.goods_vo)
  84. elseif target == self.sellBtn then
  85. if ItemUseModel:getInstance():IsEquipSpecialType(self.goods_vo.type_id) then
  86. local function ok_callback()
  87. GoodsModel:getInstance():Fire(GoodsModel.REQUEST_CCMD_EVENT,15021,1,self.goods_vo.goods_id,1,self.goods_vo.type_id)
  88. end
  89. local basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(self.goods_vo.type_id)
  90. local str = "您正在出售<color='%s'>%s</color>\n可获得%s%s"
  91. local price = GoodsModel:getInstance():GetSellPriceByTypeId(self.goods_vo.type_id)
  92. str = string.format(str, ColorUtil:GetColor(basic.color), basic.goods_name,
  93. WordManager:GetCommonMoneyStr(basic.sell_price_type), price)
  94. Alert.show(str, Alert.Type.Two, ok_callback, nil,"确定", "取消")
  95. else
  96. GlobalEventSystem:Fire(EventName.OPEN_SEll_VIEW, self.goods_vo)
  97. end
  98. elseif target == self.storeBtn then
  99. --GoodsModel:getInstance():Fire(GoodsModel.REQUEST_CCMD_EVENT,15003,self.goods_vo.goods_id,GoodsModel.GOODS_POS_TYPE.bag,GoodsModel.GOODS_POS_TYPE.warehouse)
  100. elseif target == self.takeBtn then
  101. --[[if self.goods_vo.pos == GoodsModel.GOODS_POS_TYPE.hunt_store then
  102. TreasureHuntModel:getInstance():Fire(TreasureHuntModel.REQUEST_PROTO, 41605, self.goods_vo.goods_id)
  103. else
  104. GoodsModel:getInstance():Fire(GoodsModel.REQUEST_CCMD_EVENT,15003,self.goods_vo.goods_id,GoodsModel.GOODS_POS_TYPE.warehouse,GoodsModel.GOODS_POS_TYPE.bag)
  105. end--]]
  106. elseif target == self.exchangeBtn then
  107. --GuildModel:getInstance():Fire(GuildModel.REQUEST_CCMD_EVENT,40103,self.goods_vo.goods_id,self.goods_vo.type_id,1)
  108. elseif target == self.destoryBtn then
  109. --[[UserMsgAdapter.WriteBegin(40104)
  110. UserMsgAdapter.WriteFMT("h", 1)
  111. UserMsgAdapter.WriteFMT("l", self.goods_vo.goods_id)
  112. UserMsgAdapter.SendToGame()--]]
  113. -- GuildModel:getInstance():Fire(GuildModel.REQUEST_CCMD_EVENT,40104,self.goods_vo.goods_id)
  114. elseif target == self.donateBtn then
  115. --GuildModel:getInstance():Fire(GuildModel.REQUEST_CCMD_EVENT,40102,self.goods_vo.goods_id,1)
  116. elseif target == self.renewBtn then
  117. GlobalEventSystem:Fire(EventName.OPEN_EXPIRED_VIEW, true, self.goods_vo.goods_id)
  118. elseif target == self.shelvesUpBtn then
  119. elseif target == self.shelvesDownBtn then
  120. --MarketModel:getInstance():Fire(MarketModel.REQUEST_CCMD_EVENT, 15108, self.goods_vo.sell_type, self.goods_vo.id, self.goods_vo.type_id, self.goods_vo.goods_num)
  121. elseif target == self.buyBtn then
  122. --[[if self.buyNum then
  123. MarketModel:getInstance():Fire(MarketModel.REQUEST_CCMD_EVENT, 15111, self.goods_vo.sell_type, self.goods_vo.id, self.goods_vo.player_id, self.goods_vo.type_id, self.buyNum, self.goods_vo.unit_price)
  124. end--]]
  125. end
  126. end
  127. self:Close()
  128. end
  129. AddClickEvent(self.strengthBtn, onClickBtnHandler)
  130. AddClickEvent(self.wearBtn, onClickBtnHandler)
  131. AddClickEvent(self.offBtn, onClickBtnHandler)
  132. AddClickEvent(self.sellBtn, onClickBtnHandler)
  133. AddClickEvent(self.washBtn, onClickBtnHandler)
  134. AddClickEvent(self.insertBtn, onClickBtnHandler)
  135. AddClickEvent(self.decomposeBtn, onClickBtnHandler)
  136. AddClickEvent(self.storeBtn, onClickBtnHandler)
  137. AddClickEvent(self.takeBtn, onClickBtnHandler)
  138. AddClickEvent(self.exchangeBtn, onClickBtnHandler)
  139. AddClickEvent(self.destoryBtn, onClickBtnHandler)
  140. AddClickEvent(self.donateBtn, onClickBtnHandler)
  141. AddClickEvent(self.renewBtn, onClickBtnHandler)
  142. AddClickEvent(self.shelvesUpBtn, onClickBtnHandler)
  143. AddClickEvent(self.shelvesDownBtn, onClickBtnHandler)
  144. AddClickEvent(self.buyBtn, onClickBtnHandler)
  145. local onChangeCountHandler = function (count)
  146. self:ChangeBuyNum(count)
  147. end
  148. self.change_count_id = self.addNumComponent:Bind(ComponentEvent.AddNumberComponent.CHANGE_COUNT,onChangeCountHandler)
  149. end
  150. function SealToolTips:SetData()
  151. if self.goods_vo == nil then return end
  152. if self.is_loaded then
  153. self.show_compare_tips, self.have_equip_data = SealModel:getInstance():ShowCompareTips(self.goods_vo.goods_id, self.goods_vo.subtype)
  154. print("是否需要显示对比装备tips====:", self.show_compare_tips)
  155. if self.show_compare_tips then
  156. self.compare_conta.gameObject:SetActive(true)
  157. self.compareTips = self.compareTips or SealCompareTips.New(self.compare_conta)
  158. self.compareTips:SetData(self.have_equip_data)
  159. else
  160. self.compare_conta.gameObject:SetActive(false)
  161. end
  162. local basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(self.goods_vo.type_id)
  163. local color_str = ColorUtil.WHITE
  164. if self.goods_vo.level > RoleManager.Instance.mainRoleInfo.level then
  165. color_str = ColorUtil.RED
  166. end
  167. self.level.text = "<color="..color_str..">" .. self.goods_vo.level .. "</color>"
  168. -- local index = Config.ConfigEquipShow[self.goods_vo.subtype].index
  169. self.equip_pos.text = Trim(Config.Holysealpos[self.goods_vo.subtype].name)
  170. self.fight.text = self.goods_vo.combat_power or 0
  171. color_str = (self.goods_vo.career_id == 0 or RoleManager.Instance.mainRoleInfo.career == self.goods_vo.career_id) and ColorUtil.WHITE or ColorUtil.RED
  172. local career_name = WordManager:GetRoleCareerName(basic.career_id,basic.turn)
  173. self.career.text = "<color="..color_str..">" .. career_name .. "</color>"
  174. self.depot_conta.gameObject:SetActive(false)
  175. if self.goods_vo.goods_id then
  176. local callback = function (dynamic)
  177. if self.goods_vo.goods_id and dynamic and self.goods_vo.goods_id == dynamic.goods_id then
  178. self.dynamic = dynamic
  179. self.dynamic.stren = dynamic.stren or 0
  180. local stren = ""
  181. if dynamic.stren and dynamic.stren > 0 then
  182. stren = "+" ..dynamic.stren
  183. end
  184. self.nameText.text = "<color="..WordManager.GetGoodsColor(self.dynamic.color)..">" .. self.goods_vo.goods_name .. stren .. "</color>"
  185. local step = Config.Holysealgoods[self.goods_vo.type_id] and Config.Holysealgoods[self.goods_vo.type_id].stage or 0
  186. self.step_num.text = "<color="..WordManager.GetGoodsColor(self.dynamic.color)..">" .. step .. "阶</color>"
  187. self.icon_item:SetData(self.goods_vo)
  188. self.composite_score.text = self.dynamic.overall_rating
  189. self.equip_score.text = self.dynamic.rating
  190. if basic then
  191. local base_pro = ErlangParser:GetInstance():Parse(basic.base_attrlist)
  192. self:SetProperty(base_pro, dynamic.stren, basic.subtype)
  193. self.fight.text = dynamic.combat_power or 0
  194. end
  195. self:SetAddProperty(self.dynamic)
  196. self:SetSpecialProperty(self.goods_vo)
  197. self:SetSuitProperty(self.dynamic)
  198. self:Refresh()
  199. --self:ShowReDot()
  200. end
  201. end
  202. GoodsModel:getInstance():GetDynamic(self.goods_vo.goods_id, callback)
  203. elseif self.goods_vo.equip_extra_attr then
  204. local stren = ""
  205. self.nameText.text = "<color="..WordManager.GetGoodsColor(self.goods_vo.color)..">" .. self.goods_vo.goods_name .. stren .. "</color>"
  206. local step = Config.Holysealgoods[self.goods_vo.type_id] and Config.Holysealgoods[self.goods_vo.type_id].stage or 0
  207. self.step_num.text = "<color="..WordManager.GetGoodsColor(self.dynamic.color)..">" .. step .. "阶</color>"
  208. self.icon_item:SetData(self.goods_vo)
  209. self.composite_score.text = self.goods_vo.overall_rating
  210. self.equip_score.text = self.goods_vo.rating
  211. if basic then
  212. local base_pro = ErlangParser:GetInstance():Parse(basic.base_attrlist)
  213. self:SetProperty(base_pro, 0, basic.subtype)
  214. -- self.fight.text = dynamic.combat_power or 0
  215. end
  216. self:SetAddProperty(self.goods_vo)
  217. self:SetSpecialProperty(self.goods_vo)
  218. --self.limitText.text = string.format("最大购买数量:%d", self.goods_vo.goods_num)
  219. --self.addNumComponent:InitData(1, self.goods_vo.goods_num, 1, 1)
  220. --self:ChangeBuyNum(1)
  221. end
  222. --self:SetSellState(self.goods_vo.sell, self.goods_vo.sell_price_type, self.goods_vo.type_id)
  223. self:Refresh()
  224. else
  225. self.need_refresh = true
  226. end
  227. end
  228. --设置基础属性
  229. function SealToolTips:SetProperty(base_pro, stren, pos)
  230. stren = stren or 0
  231. local stren_config = SealModel:getInstance():GetStrengthConfig(pos, stren)
  232. local name_str = ""
  233. local pro_str = ""
  234. local stren_str = ""
  235. local pro_list = {}
  236. if stren_config and Trim(stren_config.attr_list) ~= "[]" then
  237. pro_list = ErlangParser:GetInstance():Parse(stren_config.attr_list)
  238. end
  239. for i,v in ipairs(base_pro) do
  240. name_str = name_str .. WordManager:GetProperties(tonumber(v[1]))
  241. pro_str = pro_str.."+" .. WordManager:GetPropertyValue(tonumber(v[1]),tonumber(v[2]))
  242. for i2, v2 in ipairs(pro_list) do
  243. if tonumber(v2[1]) == tonumber(v[1]) then
  244. stren_str = stren_str .. "<color="..ColorUtil.GREEN..">(强化+" .. v2[2] .. ")</color>"
  245. end
  246. end
  247. if i < #base_pro then
  248. name_str = name_str.."\n"
  249. pro_str = pro_str.."\n"
  250. stren_str = stren_str.."\n"
  251. end
  252. end
  253. self.baseName.text = name_str
  254. self.basePro.text = pro_str
  255. self.strengthAdd.text = stren_str
  256. end
  257. --设置附加属性
  258. function SealToolTips:SetAddProperty(dynamic)
  259. if dynamic and dynamic.equip_extra_attr then
  260. local name_str = ""
  261. local pro_str = ""
  262. local recommand = ""
  263. if self.type and self.type == EquipShowTips.EQUIP_RECOMMAND_TARGET then
  264. recommand = "[推荐]"
  265. end
  266. if #dynamic.equip_extra_attr == 0 then
  267. self.addName.text = ""
  268. self.addPro.text = ""
  269. else
  270. for i,v in ipairs(dynamic.equip_extra_attr) do
  271. if v.type_id == 1 then
  272. name_str = name_str .. "<color="..WordManager.GetGoodsColor(v.color)..">"..recommand..""..v.plus_interval..""..WordManager:GetProperties(tonumber(v.attr_id)).."</color>"
  273. pro_str = pro_str .."<color="..WordManager.GetGoodsColor(v.color)..">+"..WordManager:GetPropertyValue(tonumber(v.attr_id), tonumber(v.plus_unit)) .. "</color>"
  274. else
  275. name_str = name_str .. "<color=" .. WordManager.GetGoodsColor(v.color) .. ">" ..recommand..WordManager:GetProperties(tonumber(v.attr_id)).."</color>"
  276. pro_str = pro_str .. "<color="..WordManager.GetGoodsColor(v.color)..">+"..WordManager:GetPropertyValue(tonumber(v.attr_id), v.attr_val).."</color>"
  277. end
  278. if i < #dynamic.equip_extra_attr then
  279. name_str = name_str .. "\n"
  280. pro_str = pro_str .. "\n"
  281. end
  282. end
  283. self.addName.text = name_str
  284. self.addPro.text = pro_str
  285. end
  286. end
  287. end
  288. --设置特殊属性
  289. function SealToolTips:SetSpecialProperty(goodsVo)
  290. self.wash_name.text = "特殊属性"
  291. if goodsVo then
  292. if Config.Holysealgoods[goodsVo.type_id] then
  293. local name_str = ""
  294. local pro_str = ""
  295. local attr = ErlangParser:GetInstance():Parse(Config.Holysealgoods[goodsVo.type_id].special_attr)
  296. for i,v in ipairs(attr) do
  297. name_str = name_str .. WordManager:GetProperties(tonumber(v[1]))
  298. pro_str = pro_str .. "+" .. WordManager:GetPropertyValue(tonumber(v[1]), tonumber(v[2]))
  299. if i < #attr then
  300. name_str = name_str .. "\n"
  301. pro_str = pro_str .. "\n"
  302. end
  303. end
  304. self.washName.text = name_str
  305. self.washPro.text = pro_str
  306. end
  307. end
  308. end
  309. --设置分解
  310. function SealToolTips:SetDecompose(goodsVo)
  311. self.stone_name.text = "分解获得"
  312. local cfg = Config.Goodsdecompose[goodsVo.type_id]
  313. if cfg then
  314. local list = ErlangParser:GetInstance():Parse(cfg.regular_mat)
  315. for i, v in ipairs(list) do
  316. local item = self.seal_item_list[i]
  317. if item == nil then
  318. item = SealToolDecomItem.New(self.stone_conta)
  319. self.seal_item_list[i] = item
  320. end
  321. item:SetData(v)
  322. end
  323. return 25 * #list
  324. end
  325. return 25
  326. end
  327. --设置套装属性
  328. function SealToolTips:SetSuitProperty(dynamic, subtype, isOther)
  329. local suit_id = Config.Holysealgoods[dynamic.type_id] and Config.Holysealgoods[dynamic.type_id].suit_id
  330. local suit_num
  331. if self.show_compare_tips then
  332. suit_num = 0
  333. elseif isOther then
  334. suit_num = dynamic.suit_count
  335. else
  336. suit_num = SealModel:getInstance():GetSuitNum(suit_id) or 0
  337. end
  338. local config = Config.Holysealsuit[suit_id]
  339. if config then
  340. self.suit_name.text = Trim(config.name)..""..suit_num.."/"..config.max_count..""
  341. local attr = ErlangParser:GetInstance():Parse(config.attr_list)
  342. if attr and #attr > 0 then
  343. local num_str = ""
  344. local name_str = ""
  345. local pro_str = ""
  346. for i, v in ipairs(attr) do
  347. local color
  348. if suit_num >= tonumber(v[1]) then
  349. color = ColorUtil.GREEN
  350. else
  351. color = ColorUtil.GRAY
  352. end
  353. num_str = num_str.."<color="..color..">【"..v[1].."件】</color>"
  354. for i2, v2 in ipairs(v[3]) do
  355. name_str = name_str .."<color="..color..">"..WordManager:GetProperties(tonumber(v2[1])).."</color>"
  356. pro_str = pro_str .."<color="..color..">+"..WordManager:GetPropertyValue(tonumber(v2[1]), tonumber(v2[2])).."</color>"
  357. if i < #attr or i2 < #v[3] then
  358. num_str = num_str.."\n"
  359. name_str = name_str.."\n"
  360. pro_str = pro_str.."\n"
  361. end
  362. end
  363. end
  364. self.suitNum.text = num_str
  365. self.suitName.text = name_str
  366. self.suitPro.text = pro_str
  367. end
  368. end
  369. end
  370. --刷新相关控件的位置
  371. function SealToolTips:Refresh()
  372. if self.goods_vo and self.goods_vo.goods_id then
  373. local is_bag = self.model.seal_goods_dic[self.goods_vo.goods_id] and true or false
  374. self:RefreshPosAndSize(self.dynamic)
  375. self:SetRootPos()
  376. self:SetBtns(is_bag)
  377. elseif self.goods_vo and self.goods_vo.equip_extra_attr then
  378. self:RefreshPosAndSize(self.goods_vo)
  379. self:SetRootPos()
  380. self:SetBtns(false)
  381. end
  382. end
  383. --更新各个控件的位置
  384. function SealToolTips:RefreshPosAndSize(dynamic)
  385. local off_y = 0
  386. off_y = self.basePro.preferredHeight + 15
  387. self.baseName.transform.sizeDelta = Vector2(self.baseName.transform.sizeDelta.x, off_y)
  388. self.basePro.transform.sizeDelta = Vector2(self.basePro.transform.sizeDelta.x, off_y)
  389. self.strengthAdd.transform.sizeDelta = Vector2(self.strengthAdd.transform.sizeDelta.x, off_y)
  390. off_y = off_y + 30
  391. local show_add = false
  392. if dynamic then
  393. show_add = true
  394. end
  395. if show_add then
  396. self.line2.gameObject:SetActive(true)
  397. self.addName.gameObject:SetActive(true)
  398. self.addPro.gameObject:SetActive(true)
  399. self.line2.localPosition = Vector3(0, -off_y, 0)
  400. off_y = off_y + 30
  401. self.addName.transform.localPosition = Vector2(self.addName.transform.localPosition.x, -off_y)
  402. self.addPro.transform.localPosition = Vector2(self.addPro.transform.localPosition.x, -off_y)
  403. self.addName.transform.sizeDelta = Vector2(self.addName.transform.sizeDelta.x, self.addName.preferredHeight + 15)
  404. self.addPro.transform.sizeDelta = Vector2(self.addPro.transform.sizeDelta.x, self.addPro.preferredHeight + 15)
  405. off_y = off_y + self.addPro.preferredHeight + 15
  406. else
  407. self.line2.gameObject:SetActive(false)
  408. self.addName.gameObject:SetActive(false)
  409. self.addPro.gameObject:SetActive(false)
  410. end
  411. local show_wash = false
  412. if dynamic and Config.Holysealgoods[dynamic.type_id] then
  413. show_wash = true
  414. end
  415. if show_wash then
  416. self.line5.gameObject:SetActive(true)
  417. self.washName.gameObject:SetActive(true)
  418. self.washPro.gameObject:SetActive(true)
  419. self.line5.localPosition = Vector3(0, -off_y, 0)
  420. off_y = off_y + 30
  421. self.washName.transform.localPosition = Vector3(self.washName.transform.localPosition.x, -off_y, 0)
  422. self.washName.transform.sizeDelta = Vector2(self.washName.transform.sizeDelta.x, self.washName.preferredHeight + 15)
  423. self.washPro.transform.localPosition = Vector3(self.washPro.transform.localPosition.x, -off_y, 0)
  424. self.washPro.transform.sizeDelta = Vector2(self.washPro.transform.sizeDelta.x, self.washPro.preferredHeight + 15)
  425. off_y = off_y + self.washPro.preferredHeight + 15
  426. else
  427. self.line5.gameObject:SetActive(false)
  428. self.washName.gameObject:SetActive(false)
  429. self.washPro.gameObject:SetActive(false)
  430. end
  431. local show_spirit = false
  432. --[[if dynamic and dynamic.cspirit_stage and dynamic.cspirit_lv and dynamic.cspirit_stage > 0 and dynamic.cspirit_lv > 0 then
  433. show_spirit = true
  434. end--]]
  435. if show_spirit then
  436. self.line6.gameObject:SetActive(true)
  437. self.spiritName.gameObject:SetActive(true)
  438. self.spiritPro.gameObject:SetActive(true)
  439. self.line6.localPosition = Vector3(0, -off_y, 0)
  440. off_y = off_y + 30
  441. self.spiritName.transform.localPosition = Vector3(self.spiritName.transform.localPosition.x, -off_y, 0)
  442. self.spiritName.transform.sizeDelta = Vector2(self.spiritName.transform.sizeDelta.x, self.spiritName.preferredHeight + 15)
  443. self.spiritPro.transform.localPosition = Vector3(self.spiritPro.transform.localPosition.x, -off_y, 0)
  444. self.spiritPro.transform.sizeDelta = Vector2(self.spiritPro.transform.sizeDelta.x, self.spiritPro.preferredHeight + 15)
  445. off_y = off_y + self.spiritPro.preferredHeight + 10
  446. else
  447. self.line6.gameObject:SetActive(false)
  448. self.spiritName.gameObject:SetActive(false)
  449. self.spiritPro.gameObject:SetActive(false)
  450. end
  451. local show_stone = false
  452. if dynamic and Config.Goodsdecompose[dynamic.type_id] then
  453. show_stone = true
  454. end
  455. if show_stone then
  456. self.line3.localPosition = Vector3(0, -off_y, 0)
  457. off_y = off_y + 30
  458. self.line3.gameObject:SetActive(true)
  459. self.stone_conta.gameObject:SetActive(true)
  460. local height = self:SetDecompose(dynamic)
  461. self.stone_conta.sizeDelta = Vector2(self.stone_conta.sizeDelta.x, height)
  462. self.stone_conta.localPosition = Vector3(self.stone_conta.localPosition.x, -off_y, 0)
  463. off_y = off_y + height + 15
  464. else
  465. self.line3.gameObject:SetActive(false)
  466. self.stone_conta.gameObject:SetActive(false)
  467. end
  468. local show_suit = false
  469. if dynamic then
  470. local suit_id = Config.Holysealgoods[dynamic.type_id] and Config.Holysealgoods[dynamic.type_id].suit_id
  471. if suit_id and Config.Holysealsuit[suit_id] then
  472. show_suit = true
  473. end
  474. end
  475. if show_suit then
  476. self.line4.gameObject:SetActive(true)
  477. self.suitNum.gameObject:SetActive(true)
  478. self.suitName.gameObject:SetActive(true)
  479. self.suitPro.gameObject:SetActive(true)
  480. self.line4.localPosition = Vector3(0, -off_y, 0)
  481. off_y = off_y + 30
  482. self.suitNum.transform.localPosition = Vector3(self.suitNum.transform.localPosition.x, -off_y, 0)
  483. self.suitNum.transform.sizeDelta = Vector2(self.suitNum.transform.sizeDelta.x, self.suitNum.preferredHeight + 15)
  484. self.suitName.transform.localPosition = Vector3(self.suitName.transform.localPosition.x, -off_y, 0)
  485. self.suitName.transform.sizeDelta = Vector2(self.suitName.transform.sizeDelta.x, self.suitName.preferredHeight + 15)
  486. self.suitPro.transform.localPosition = Vector3(self.suitPro.transform.localPosition.x, -off_y, 0)
  487. self.suitPro.transform.sizeDelta = Vector2(self.suitPro.transform.sizeDelta.x, self.suitPro.preferredHeight + 15)
  488. off_y = off_y + self.suitPro.preferredHeight + 15
  489. else
  490. self.line4.gameObject:SetActive(false)
  491. self.suitNum.gameObject:SetActive(false)
  492. self.suitName.gameObject:SetActive(false)
  493. self.suitPro.gameObject:SetActive(false)
  494. end
  495. self.line7.gameObject:SetActive(false)
  496. self.wake_baseName.gameObject:SetActive(false)
  497. self.wake_basePro.gameObject:SetActive(false)
  498. self.line8.gameObject:SetActive(false)
  499. self.wake_strenName.gameObject:SetActive(false)
  500. self.wake_strenPro.gameObject:SetActive(false)
  501. self.line9.gameObject:SetActive(false)
  502. self.wake_suitNum.gameObject:SetActive(false)
  503. self.wake_suitName.gameObject:SetActive(false)
  504. self.wake_suitPro.gameObject:SetActive(false)
  505. self.line10.gameObject:SetActive(false)
  506. self.magic_skillName.gameObject:SetActive(false)
  507. self.magic_skillLevel.gameObject:SetActive(false)
  508. -- if off_y > 451 then
  509. -- self.down_arrow.localPosition = Vector3(150, -621.6, 0)
  510. -- self.sell_conta.localPosition = Vector3(22, -643.5, 0)
  511. -- self.ScrollView.sizeDelta = Vector2(287, 451)
  512. self.ScrollViewContent.sizeDelta = Vector2(self.ScrollViewContent.sizeDelta.x, off_y)
  513. -- self.ScrollViewViewport.sizeDelta = Vector2(276, 451)
  514. -- self.transform.sizeDelta = Vector2(328, 685)
  515. -- self.bg.sizeDelta = Vector2(328, 711)
  516. -- else
  517. -- self.down_arrow.localPosition = Vector3(150, -off_y + self.ScrollView.localPosition.y + 20, 0)
  518. -- self.sell_conta.localPosition = Vector3(22, -off_y + self.ScrollView.localPosition.y, 0)
  519. -- self.ScrollView.sizeDelta = Vector2(287, off_y)
  520. -- self.ScrollViewContent.sizeDelta = Vector2(276, off_y)
  521. -- self.ScrollViewViewport.sizeDelta = Vector2(276, off_y)
  522. -- self.transform.sizeDelta = Vector2(328, off_y - self.ScrollView.localPosition.y + 60)
  523. -- self.bg.sizeDelta = Vector2(328, off_y - self.ScrollView.localPosition.y + 60)
  524. -- end
  525. if self.ScrollViewContent.sizeDelta.y > 451 then
  526. self.down_arrow.gameObject:SetActive(true)
  527. else
  528. self.down_arrow.gameObject:SetActive(false)
  529. end
  530. --[[--小天使小恶魔,位置改变
  531. self.expired_label.gameObject:SetActive(false)
  532. self.descCon.gameObject:SetActive(false)
  533. self.ScrollViewViewport.transform.sizeDelta = Vector2(326, 447)
  534. if self.goods_vo.type==10 and self.goods_vo.subtype==11 then
  535. local basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(self.goods_vo.type_id)
  536. self.bg.sizeDelta = Vector2(335, 507)
  537. self.career_conta.transform.anchoredPosition = Vector3(-61, 394, 0)
  538. self.ScrollView.transform.anchoredPosition = Vector3(-3.5, -165, 0)
  539. self.ScrollViewViewport.transform.sizeDelta = Vector2(326, 136)
  540. self.ui_line1.transform.anchoredPosition = Vector3(113, -115, 0)
  541. self.ui_line2.transform.anchoredPosition = Vector3(110, -253, 0)
  542. self.descCon.transform.anchoredPosition = Vector3(-3.5, -351, 0)
  543. self.descCon.gameObject:SetActive(true)
  544. self.descLabel.text = Trim(basic.intro)
  545. self.getWayLabel.text = Trim(basic.getway)
  546. if self.goods_vo.expire_time then
  547. if self.goods_vo.expire_time == 0 then
  548. self.expired_label.gameObject:SetActive(false)
  549. else
  550. self.expired_label.gameObject:SetActive(true)
  551. local text = ""
  552. if TimeUtil:getServerTime() > self.goods_vo.expire_time then
  553. text = "<color=#de4141>已过期</color>"
  554. else
  555. local time = self.goods_vo.expire_time - TimeUtil:getServerTime()
  556. text = string.format("<color=#ff8a3c>【%s】后过期</color>",TimeUtil:timeConvert6(time))
  557. end
  558. self.expired_label:GetComponent("Text").text = text
  559. self.expired_label.transform.sizeDelta = Vector2(280, 30)
  560. self.expired_label.transform.anchoredPosition = Vector3(114, -96, 0)
  561. end
  562. end
  563. end--]]
  564. end
  565. --按钮显示
  566. function SealToolTips:SetBtns(is_bag)
  567. for i,v in ipairs(self.btn_list) do
  568. v:SetActive(false)
  569. end
  570. local btn_list = {}
  571. if is_bag then --背包中的装备
  572. btn_list = {self.wearBtn}
  573. if Config.Goodsdecompose[self.goods_vo.type_id] then
  574. table.insert(btn_list, self.decomposeBtn)
  575. end
  576. else --已经穿上的装备
  577. btn_list = {self.strengthBtn, self.offBtn}
  578. end
  579. local buy_pos_y = 0
  580. if self.show_btn_list then
  581. btn_list = self:ShowCustomBtns()
  582. if TableContains(self.show_btn_list, "buyCon") then
  583. buy_pos_y = 100
  584. end
  585. end
  586. for i,v in ipairs(btn_list) do
  587. v:SetActive(true)
  588. local y = (i - 1) * 50
  589. v.transform.localPosition = Vector3(0, -y, 0)
  590. end
  591. self.btn_conta.sizeDelta = Vector2(self.btn_conta.sizeDelta.x, #btn_list * 53)
  592. local pos_y = self.layout.sizeDelta.y - self.btn_conta.sizeDelta.y + 20
  593. --prefab做了自适应处理,固定在底部就行了
  594. if self.goods_vo.type==10 and self.goods_vo.subtype==11 then
  595. self.btn_conta.transform.anchoredPosition = Vector3(self.btn_conta.transform.anchoredPosition.x, -401, 0)
  596. else
  597. self.btn_conta.anchoredPosition = Vector2(self.btn_conta.anchoredPosition.x, -600)
  598. end
  599. end