import { _decorator, Node } from "cc"; import { MapTileData, MapTileDirection, MapTileFactory, MapTileType, } from "./MapTileData"; import { BaseSprite } from "../GlobalScript/CommonComponent/BaseSprite"; import { MapTileButtonComponent } from "./MapTileButtonComponent"; import { MapTileController } from "./MapTileController"; const { ccclass } = _decorator; /// 地块 @ccclass("MapTileNode") export class MapTileNode extends Node { /// -- Node /// 背景节点 private backgroundNode: Node; /// 地块名称 private nameNode: Node; /// 决斗场选中的战斗边框 private fightNode: Node; /// 鼠标操作变化的边框 private borderNode: Node; /// 禁止选择 private disableNode: Node; /// 占领图标 private occupyIconNode: Node; /// 决斗场选中的图标 和倍数icon private fightIconNode: Node; /// 控制器 private controller: MapTileController; constructor(type) { super(); this.controller = this.addComponent(MapTileController); this.controller.tileType = type; this.initNode(); } /// 测试使用按钮 initButtons(){ } initNode() { /// 背景 if (this.controller.tileData.backgroundIndex) { const node = new Node(); this.addChild(node); const bs = node.addComponent(BaseSprite); bs.updateSpriteFrame( this.controller.tileData.npkPath, this.controller.tileData.backgroundIndex ); this.backgroundNode = node; } /// 名称 const node = new Node(); this.addChild(node); const bs = node.addComponent(BaseSprite); bs.updateSpriteFrame( this.controller.tileData.npkPath, this.controller.tileType ); this.nameNode = node; /// 决斗场选择后的红色边框 // 四角和命运硬币 没有红框 if ( this.controller.tileData.direction != MapTileDirection.nook && this.controller.tileType != (MapTileType.XiaoZhenMingYunYinBi || MapTileType.HaLinMingYunYinBi) ) { const node = new Node(); node.active = false; this.addChild(node); // 横向地块27 竖向28 const bs = node.addComponent(BaseSprite); bs.updateSpriteFrame( this.controller.tileData.npkPath, this.controller.tileData.direction == MapTileDirection.horizontal ? 27 : 28 ); this.fightNode = node; } if (this.controller.tileData.trainsSelectLicense){ // 鼠标选择边框 const bordeNode = new Node(); this.addChild(bordeNode); bordeNode.active = false; const bordeBC = bordeNode.addComponent(MapTileButtonComponent); bordeBC.direction = this.controller.tileData.direction; this.borderNode = bordeNode; } /// 禁止选择 const disableNode = new Node(); this.addChild(disableNode); disableNode.active = false; const disableBS = disableNode.addComponent(BaseSprite); disableBS.updateSpriteFrame(this.controller.tileData.npkPath,this.controller.tileData.direction + 5) this.disableNode = disableNode; } /// 显示海上列车选择 shwTrainsSelect(show: boolean){ if (this.borderNode){ /// 许可选择 if (this.controller.tileData.trainsSelectLicense){ this.borderNode.active = show; }else{ this.disableNode.active = true; } }else{ this.disableNode.active = false; this.borderNode.active = false; } } }