import { Vec2, v2 } from "cc"; import { NpkImage } from "../Tool/NPKImage"; /// 地块类型 export enum MapTileType { /// 赫顿玛尔 HeDunMaEr, /// 时间广场 ShiJianGuangChang, /// 兽人峡谷 ShouRenXiaGu, /// 超时空漩涡 ChaoShiKongXuanWo, /// 恐怖的栖息地 KongBuDeQiXiDi, /// 红色魔女之森 HongSeMoNvZhiSen, /// 月光酒馆 YueGuangJiuGuan, /// 哈林的命运硬币(左边) HaLinMingYunYinBi, /// 亡命杀阵 WangMingShaZhen, /// 皇家娱乐 HuangJaiYuLe, /// 黑暗都市 AnHeiDuShi, /// 第九隔离区 DiJiuGeLiQu, /// 决斗场 JueDouChang, /// 腐坏街道 FuHuaiJieDao, /// 溢血的地下城 YiXueDeDiXiaChen, /// 普雷·伊西斯 PuLeiYiXiSi, /// 沉重的礼拜堂 ChenZhongDeLiBaiTang, /// 螺旋王国 LuoXuanWangGuo, /// 海上列车 HaiShangLieChe, /// 切斯特小镇的命运硬币(右边) XiaoZhenMingYunYinBi, /// 暗黑神殿 AnHeiShenDian, /// 痛苦地下城 TongKuDiXiaChen, /// 无底坑道 WuDiKenDao, /// 记忆之地 JiYiZhiDi, } /// 地块方向 export enum MapTileDirection { /// 横 horizontal = 24, /// 竖 vertical = 25, /// 角落 nook = 26, } /// 地块的数据 export class MapTileData { /// 坐标 location: Vec2; /// npk路径 npkPath: NpkImage; /// 地块背景index backgroundIndex: number; /// 地块名称图片index nameIndex: number; /// 地块方向 direction: MapTileDirection; /// 怪物相关数据 /// 列车选择许可 trainsSelectLicense: boolean; /// 决斗场选择许可 duelSelectLicense: boolean; /// 占领许可 occupyLicense: boolean; constructor({ /// 坐标 location, /// 背景index backgroundIndex, /// 名称index nameIndex, /// 地块方向 direction, /// 占领许可 occupyLicense = true, /// 列车选择许可 trainsSelectLicense, /// 决斗场选择许可 duelSelectLicense, }: { location: Vec2; backgroundIndex?: number; nameIndex?: number; direction: MapTileDirection; occupyLicense?: boolean; trainsSelectLicense: boolean; duelSelectLicense: boolean; }) { this.location = location; this.npkPath = NpkImage.board; this.backgroundIndex = backgroundIndex; this.nameIndex = nameIndex; this.direction = direction; this.trainsSelectLicense = trainsSelectLicense; this.duelSelectLicense = duelSelectLicense; this.occupyLicense = occupyLicense; } } export class MapTileFactory { static getData(type: MapTileType): MapTileData{ // const tts = type as MapTileType; // const ss = tts == MapTileType.HeDunMaEr; // const nn = Number(type); // const aa = +type; // const tttt: MapTileType = MapTileType.HeDunMaEr; switch (type) { /// 赫顿玛尔 case MapTileType.HeDunMaEr: console.log(type); return MapTileFactory.HeDunMaErData; /// 时间广场 case MapTileType.ShiJianGuangChang: console.log(type); return MapTileFactory.ShiJianGuangChangData; } console.log(type); } // 赫顿玛尔 private static HeDunMaErData = new MapTileData({ location: v2(507, -500), direction: MapTileDirection.nook, trainsSelectLicense: true, duelSelectLicense: false, occupyLicense: false, }); /// 时间广场 private static ShiJianGuangChangData = new MapTileData({ location: v2(507, -500), backgroundIndex: 1, direction: MapTileDirection.horizontal, trainsSelectLicense: true, duelSelectLicense: true, occupyLicense: true, }); }