HomeMergeSellCom.ts 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import Gamecfg from "../../../../common/gameCfg";
  2. import GameDataCenter from "../../../../data/GameDataCenter";
  3. import { MergeItem } from "../../../../data/model/GridMap/GridMapModel";
  4. import ResSprite from "../../../../frameWork/compment/ResSprite";
  5. import EventMng from "../../../../manager/EventMng";
  6. import { HcType } from "../../../../shared/hc/PtlHcInfo";
  7. import { GridEvent } from "../../../gridMap/GridEvent";
  8. import { I_CubeData } from "../../../gridMap/UECube";
  9. export interface MergeSellData {
  10. isShow: boolean;
  11. item: I_CubeData;
  12. }
  13. export default class HomeMergeSellCom {
  14. private _vm: fairygui.GComponent;
  15. private sp_item: ResSprite;
  16. private QualityLoad: fgui.GLoader;
  17. private SellBtn: fgui.GButton;
  18. private QualityLabel: fgui.GTextField;
  19. data: MergeSellData;
  20. static instance: HomeMergeSellCom;
  21. public constructor(vm: fgui.GComponent) {
  22. HomeMergeSellCom.instance = this;
  23. this._vm = vm;
  24. this.sp_item = vm.getChild('IconLoad').node.addComponent(ResSprite);
  25. this.QualityLoad = vm.getChild('QualityLoad').asLoader;
  26. this.SellBtn = vm.getChild('SellBtn').asButton;
  27. this.QualityLabel = vm.getChild('QualityLabel').asTextField;
  28. }
  29. public onEnable(): void {
  30. EventMng.on(GridEvent.HC_MERGE_SELL, this.OnHcMergeSell, this);
  31. this.SellBtn.onClick(this.OnSellBtnClick, this);
  32. }
  33. public onDisable(): void {
  34. EventMng.off(GridEvent.HC_MERGE_SELL, this.OnHcMergeSell, this);
  35. this.SellBtn.offClick(this.OnSellBtnClick, this);
  36. }
  37. private OnSellBtnClick(): void {
  38. GameDataCenter.gridMap.sendHcSell(this.data.item.idx);
  39. }
  40. /** 获取售卖按钮 */
  41. public GetSellBtn(): cc.Node {
  42. return this.SellBtn.node;
  43. }
  44. private OnHcMergeSell(data: MergeSellData): void {
  45. this.data = data;
  46. this._vm.visible = data.isShow;
  47. if (data.isShow) {
  48. let quality = 0;
  49. this.SellBtn.visible = false;
  50. if (data.item.type == HcType.emitter) {
  51. let mergePropCfg = Gamecfg.emitterInfo.getItem(data.item.id.toString());
  52. this.sp_item.setSpriteFrame('gridMap', `mergeProp/${mergePropCfg.icon}`);
  53. quality = mergePropCfg.quality;
  54. } else if (data.item.type == HcType.material) {
  55. let mergePropCfg = Gamecfg.mergePropInfo.getItem(data.item.id.toString());
  56. this.sp_item.setSpriteFrame('gridMap', `mergeProp/${mergePropCfg.icon}`);
  57. quality = mergePropCfg.quality;
  58. this.SellBtn.title = mergePropCfg.price.toString();
  59. this.SellBtn.visible = true;
  60. } else if (data.item.type == HcType.equip) {
  61. let mergePropCfg = Gamecfg.equipInfo.getItem(data.item.id.toString());
  62. this.sp_item.setSpriteFrame('gridMap', `mergeEquip/${mergePropCfg.icon}`);
  63. quality = mergePropCfg.quality;
  64. // this.SellBtn.title = mergePropCfg.price.toString();
  65. this.SellBtn.visible = true;
  66. } else if (data.item.type == HcType.user) {
  67. } else if (data.item.type == HcType.monster) {
  68. }
  69. if (quality > 0) {
  70. this.QualityLoad.url = `ui://Home/Img_zjm_xqpinzhi0${quality - 1}`;
  71. this.QualityLabel.text = `T${quality}`;
  72. } else {
  73. this.QualityLoad.url = ``;
  74. }
  75. }
  76. }
  77. }