瀏覽代碼

增加首页提示合成

甘艺伟 3 天之前
父節點
當前提交
75d91dc6d2

二進制
assets/bundle/FGUI/Home/Home.bin


+ 8 - 4
assets/script/data/model/GridMap/GridMapModel.ts

@@ -43,17 +43,21 @@ export default class GridMapModel extends GridMapModelData {
         this.itemFormula = {};
         for (let key in Gamecfg.mergeInfo.pool) {
             let item = Gamecfg.mergeInfo.pool[key];
-            let formulaKey = `${item.formula[0]}_${item.formula[1]}_${item.formula[2]}_${item.formula[3]}`;
-            this.formulaMap[formulaKey] = [];
+            let formulaKey1 = `${item.formula[0]}_${item.formula[1]}_${item.formula[2]}_${item.formula[3]}`;
+            let formulaKey2 = `${item.formula[2]}_${item.formula[3]}_${item.formula[0]}_${item.formula[1]}`;
+
+            this.formulaMap[formulaKey1] = [];
+            this.formulaMap[formulaKey2] = [];
             for (let idx = 1; idx <= 4; idx++) {
                 let mergeItem = item[`item${idx}`];
                 let mergeItemRate = item[`rate${idx}`];
                 if (mergeItem) {
-                    this.formulaMap[formulaKey].push({ type: mergeItem[0], id: mergeItem[1], rate: mergeItemRate });
+                    this.formulaMap[formulaKey1].push({ type: mergeItem[0], id: mergeItem[1], rate: mergeItemRate });
+                    this.formulaMap[formulaKey2].push({ type: mergeItem[0], id: mergeItem[1], rate: mergeItemRate });
                     if (!this.itemFormula[`${mergeItem[0]}_${mergeItem[1]}`]) {
                         this.itemFormula[`${mergeItem[0]}_${mergeItem[1]}`] = [];
                     }
-                    this.itemFormula[`${mergeItem[0]}_${mergeItem[1]}`].push(formulaKey);
+                    this.itemFormula[`${mergeItem[0]}_${mergeItem[1]}`].push(formulaKey1);
                 }
             }
         }

+ 11 - 2
assets/script/logic/fgui/Home/Home/HomeCtrl.ts

@@ -7,9 +7,11 @@
 
 import GameDataCenter from "../../../../data/GameDataCenter";
 import { ViewZOrder } from "../../../../data/const/ViewZOrder";
+import { MergeItem } from "../../../../data/model/GridMap/GridMapModel";
 import { ResCollector } from "../../../../frameWork/compment/ResCollector";
 import ResSprite from "../../../../frameWork/compment/ResSprite";
 import FguiMgr from "../../../../frameWork/fgui/FguiMgr";
+import { ListUtil } from "../../../../frameWork/fgui/ListUtil";
 import { FguiViewCtrl } from "../../../../frameWork/fgui/mvc/FguiViewCtrl";
 import { GameServerConfig } from "../../../../network/GameServerConfig";
 import { TsrpcNet } from "../../../../network/TsrpcNet";
@@ -20,6 +22,7 @@ import UEGridMap from "../../../gridMap/UEGridMap";
 import UEMergeTip from "../../../gridMap/UEMergeTip";
 import { BattleMainView } from "../../Battle/BattleMain/BattleMainView";
 import HomeEpsCom from "./HomeEpsCom";
+import HomeMergeTipItem from "./HomeMergeTipItem";
 import HomeTaskCom from "./HomeTaskCom";
 import { HomeVM } from "./HomeVM";
 import { HomeView } from "./HomeView";
@@ -29,6 +32,7 @@ export class HomeCtrl extends FguiViewCtrl<HomeVM> {
     HeadTopCom: UIHeadTopView;
     HomeEpsCom: HomeEpsCom;
     HomeTaskCom: HomeTaskCom;
+    MergeListUtil: ListUtil;
     onCollectRes(resCollector: ResCollector, param: any): void {
         resCollector.AddUEClass([UEGridMap, UEMergeTip])
     }
@@ -40,6 +44,8 @@ export class HomeCtrl extends FguiViewCtrl<HomeVM> {
         this.HomeEpsCom = new HomeEpsCom(this.VM.EpsCom);
         this.HomeTaskCom = new HomeTaskCom(this.VM.BtnTask);
         this.ueGridMap.Init();
+        this.MergeListUtil = new ListUtil(this.VM.MergeList, HomeMergeTipItem);
+
     }
     async OnShow(intent?: any): Promise<void> {
         this.AddListeners();
@@ -83,7 +89,10 @@ export class HomeCtrl extends FguiViewCtrl<HomeVM> {
     }
     //#endregion
 
-    private OnHcMergeTip(isShow: boolean): void {
-        this.VM.MergeGroup.visible = isShow;
+    private OnHcMergeTip(data: { isShow: boolean, mergeArr: MergeItem[] }): void {
+        this.VM.MergeGroup.visible = data.isShow;
+        if (data.isShow) {
+            this.MergeListUtil.refreshItems(data.mergeArr);
+        }
     }
 }

+ 28 - 0
assets/script/logic/fgui/Home/Home/HomeMergeTipItem.ts

@@ -0,0 +1,28 @@
+
+import { ItemRender } from "../../../../frameWork/fgui/ListUtil";
+
+
+export interface IData_HomeMergeTipItem {
+	id: number
+}
+
+export default class HomeMergeTipItem extends ItemRender {
+
+	private mData: IData_HomeMergeTipItem;
+	protected onConstruct() {
+
+	}
+
+	onShow(): void {
+	}
+
+	onHide(): void {
+	}
+
+	setData(data: IData_HomeMergeTipItem, index?: number, param?: { refresh: boolean }) {
+		this.mData = data;
+
+	}
+
+
+}

+ 10 - 0
assets/script/logic/fgui/Home/Home/HomeMergeTipItem.ts.meta

@@ -0,0 +1,10 @@
+{
+  "ver": "1.1.0",
+  "uuid": "23f62c99-0eea-4c57-baf6-01877eac5952",
+  "importer": "typescript",
+  "isPlugin": false,
+  "loadPluginInWeb": true,
+  "loadPluginInNative": true,
+  "loadPluginInEditor": false,
+  "subMetas": {}
+}

+ 2 - 0
assets/script/logic/fgui/Home/Home/HomeVM.ts

@@ -35,6 +35,7 @@ export class HomeVM extends FguiViewModel {
     readonly HeadTopCom: fgui.GComponent;
     readonly HdList: fgui.GList;
     readonly Top: fgui.GGroup;
+    readonly MergeList: fgui.GList;
     readonly MergeGroup: fgui.GGroup;
 
     constructor(panel: fgui.GComponent) {
@@ -65,6 +66,7 @@ export class HomeVM extends FguiViewModel {
         this.HeadTopCom = panel.getChild("HeadTopCom") as fgui.GComponent;
         this.HdList = panel.getChild("hdList") as fgui.GList;
         this.Top = panel.getChild("top") as fgui.GGroup;
+        this.MergeList = panel.getChild("MergeList") as fgui.GList;
         this.MergeGroup = panel.getChild("mergeGroup") as fgui.GGroup;
 
     }

+ 8 - 14
assets/script/logic/gridMap/UECube.ts

@@ -3,20 +3,14 @@ import GameDataCenter from "../../data/GameDataCenter";
 import ResSprite from "../../frameWork/compment/ResSprite";
 import UEBase from "../../frameWork/compment/UEBase";
 import EventMng from "../../manager/EventMng";
+import { HcType } from "../../shared/hc/PtlHcInfo";
 import { GridEvent } from "./GridEvent";
 
 const { ccclass, property } = cc._decorator;
 
-export enum E_CubeType {
-    None = 0,//无物品
-    Material = 2,//材料
-    Emitter = 3,//发射器
-    Monster = 50,//怪物
-    MergeEquip = 4,//装备
-}
 export interface I_CubeData {
     /** 物品类型 */
-    type: E_CubeType;
+    type: HcType;
     /** 物品ID */
     id: number;
     /** 层级 */
@@ -44,13 +38,13 @@ export default class UECube extends UEBase {
         this.cubeData = cubeData;
         this.SetZIndex(cubeData.zIndex);
         this.originalPos = cc.v3(this.node.x, this.node.y);
-        if (cubeData.type == E_CubeType.Emitter) {
+        if (cubeData.type == HcType.emitter) {
             let mergePropCfg = Gamecfg.emitterInfo.getItem(cubeData.id.toString());
             this.sp_item.setSpriteFrame('gridMap', `mergeProp/${mergePropCfg.icon}`);
-        } else if (cubeData.type == E_CubeType.Material) {
+        } else if (cubeData.type == HcType.material) {
             let mergePropCfg = Gamecfg.mergePropInfo.getItem(cubeData.id.toString());
             this.sp_item.setSpriteFrame('gridMap', `mergeProp/${mergePropCfg.icon}`);
-        } else if (cubeData.type == E_CubeType.MergeEquip) {
+        } else if (cubeData.type == HcType.equip) {
             let mergePropCfg = Gamecfg.equipInfo.getItem(cubeData.id.toString());
             this.sp_item.setSpriteFrame('gridMap', `mergeEquip/${mergePropCfg.icon}`);
         }
@@ -59,12 +53,12 @@ export default class UECube extends UEBase {
 
     /** 触发点击 */
     TriggerClick() {
-        if (this.cubeData.type == E_CubeType.Emitter) {
+        if (this.cubeData.type == HcType.emitter) {
             CC_PREVIEW && console.log("触发点击发射器");
             GameDataCenter.gridMap.sendEmitter(this.cubeData.zIndex);
-        } else if (this.cubeData.type == E_CubeType.Monster) {
+        } else if (this.cubeData.type == HcType.monster) {
             CC_PREVIEW && console.log("点击怪物开始战斗");
-        } else if (this.cubeData.type == E_CubeType.MergeEquip) {
+        } else if (this.cubeData.type == HcType.equip) {
 
         }
     }

+ 4 - 2
assets/script/logic/gridMap/UEGridMap.ts

@@ -103,8 +103,8 @@ export default class UEGridMap extends UEBase {
         let vec = GameDataCenter.gridMap.TranIdxToPos(data.cell.GetZIndex());
         let mergeCube = this.CreateCube(vec.y, vec.x);
         mergeCube.Init({
-            type: 3,
-            id: 10022,
+            type: data.cube.type,
+            id: data.cube.correlationId,
             zIndex: data.cell.GetZIndex(),
             unlock: 0
         });
@@ -215,6 +215,8 @@ export default class UEGridMap extends UEBase {
                 } else {
                     this.ueMergeTip.Hide();
                 }
+            } else {
+                this.ueMergeTip.Hide();
             }
         }
     }

+ 4 - 4
assets/script/logic/gridMap/UEMergeTip.ts

@@ -7,7 +7,7 @@ import UEBase from "../../frameWork/compment/UEBase";
 import EventMng from "../../manager/EventMng";
 import AssetMgr from "../../utils/AssetMgr";
 import { GridEvent } from "./GridEvent";
-import UECube, { E_CubeType } from "./UECube";
+import UECube from "./UECube";
 import UEMergeTipItem from "./UEMergeTipItem";
 
 const { ccclass, property } = cc._decorator;
@@ -49,17 +49,17 @@ export default class UEMergeTip extends UEBase {
                 itemNode.setPosition(pos);
                 itemNode.getComponent(UEMergeTipItem).Init({ data: mergeArr[i - 1] });
             }
-            EventMng.emit(GridEvent.HC_MERGE_TIP, true);
+            EventMng.emit(GridEvent.HC_MERGE_TIP, { isShow: true, mergeArr: mergeArr });
         } else {
             this.node.active = false;
-            EventMng.emit(GridEvent.HC_MERGE_TIP, false);
+            EventMng.emit(GridEvent.HC_MERGE_TIP, { isShow: false });
         }
     }
 
 
     Hide() {
         this.node.active = false;
-        EventMng.emit(GridEvent.HC_MERGE_TIP, false);
+        EventMng.emit(GridEvent.HC_MERGE_TIP, { isShow: false });
     }
 
     /** 计算圆上的位置 */

+ 4 - 4
assets/script/logic/gridMap/UEMergeTipItem.ts

@@ -4,8 +4,8 @@ import GameDataCenter from "../../data/GameDataCenter";
 import { MergeItem } from "../../data/model/GridMap/GridMapModel";
 import ResSprite from "../../frameWork/compment/ResSprite";
 import UEBase from "../../frameWork/compment/UEBase";
+import { HcType } from "../../shared/hc/PtlHcInfo";
 import AssetMgr from "../../utils/AssetMgr";
-import UECube, { E_CubeType } from "./UECube";
 
 const { ccclass, property } = cc._decorator;
 
@@ -35,13 +35,13 @@ export default class UEMergeTipItem extends UEBase {
             this.node.active = true;
             this.node_lock.active = false;
             this.sp_icon.node.active = true;
-            if (data.type == E_CubeType.Emitter) {
+            if (data.type == HcType.emitter) {
                 let mergePropCfg = Gamecfg.emitterInfo.getItem(data.id.toString());
                 this.sp_icon.setSpriteFrame('gridMap', `mergeProp/${mergePropCfg?.icon}`);
-            } else if (data.type == E_CubeType.Material) {
+            } else if (data.type == HcType.material) {
                 let mergePropCfg = Gamecfg.mergePropInfo.getItem(data.id.toString());
                 this.sp_icon.setSpriteFrame('gridMap', `mergeProp/${mergePropCfg?.icon}`);
-            } else if (data.type == E_CubeType.MergeEquip) {
+            } else if (data.type == HcType.equip) {
                 let mergePropCfg = Gamecfg.equipInfo.getItem(data.id.toString());
                 this.sp_icon.setSpriteFrame('gridMap', `mergeEquip/${mergePropCfg?.icon}`);
             }

+ 8 - 0
fgui-project/assets/Home/Components/HomeMergeTipItem.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="128,128">
+  <displayList>
+    <image id="n33_tt6a" name="QulityBg" src="miq93" fileName="Images/KLan.png" xy="64,64" pivot="0.5,0.5" anchor="true" group="n34_tt6a"/>
+    <loader id="n32_tt6a" name="IconLoad" xy="64,64" pivot="0.5,0.5" anchor="true" size="50,50" group="n34_tt6a"/>
+    <group id="n34_tt6a" name="n34" xy="0,0" size="128,128"/>
+  </displayList>
+</component>

+ 6 - 1
fgui-project/assets/Home/Home.xml

@@ -62,7 +62,12 @@
     <image id="n30_tt6a" name="n30" src="miq99" fileName="Images/NeiRongDi.png" xy="375,1183" pivot="0.5,0.5" anchor="true" size="750,302" group="n31_tt6a">
       <relation target="" sidePair="center-center,bottom-bottom"/>
     </image>
-    <loader id="n32_tt6a" name="n32" xy="238,1188" pivot="0.5,0.5" anchor="true" size="50,50" group="n31_tt6a"/>
+    <list id="n35_tt6a" name="MergeList" xy="375,1184" pivot="0.5,0.5" anchor="true" size="664,132" group="n31_tt6a" layout="row" overflow="scroll" scroll="horizontal" colGap="10" defaultItem="ui://1xjqm8v2tt6aj" align="center" vAlign="middle" autoClearItems="true">
+      <item/>
+      <item/>
+      <item/>
+      <item/>
+    </list>
     <group id="n31_tt6a" name="mergeGroup" xy="0,1032" size="750,302" visible="false" advanced="true">
       <relation target="" sidePair="bottom-bottom"/>
     </group>

+ 1 - 0
fgui-project/assets/Home/package.xml

@@ -17,6 +17,7 @@
     <component id="miq9g" name="HeadTopCom.xml" path="/Components/"/>
     <image id="sp2xh" name="ZhanLiBot.png" path="/Images/"/>
     <component id="sp2xi" name="PbTop.xml" path="/Components/"/>
+    <component id="tt6aj" name="HomeMergeTipItem.xml" path="/Components/"/>
   </resources>
   <publish name="" genCode="true"/>
 </packageDescription>