import { v3, Vec3, _decorator ,Prefab,instantiate} from "cc"; import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS"; import { CCComp } from "../../../../../extensions/oops-plugin-framework/assets/module/common/CCComp"; import { smc } from "../../common/SingletonModuleComp"; // import { Role } from "../../role/Role"; import { BoxSet } from "../../common/config/BoxSet"; import { Hero } from "../../monster/Hero"; import { Monster } from "../../monster/Monster"; // import MapRoadUtils from "./map/road/MapRoadUtils"; import { MapViewScene } from "./MapViewScene"; import { Timer } from "../../../../../extensions/oops-plugin-framework/assets/core/common/timer/Timer"; import { oops } from "../../../../../extensions/oops-plugin-framework/assets/core/Oops"; import { CardSet } from "../../common/config/CardSet"; const { ccclass, property } = _decorator; @ccclass('MapViewComp') @ecs.register('MapView', false) export class MapViewComp extends CCComp { scene: MapViewScene = null!; /** 是否正在转场 */ /** 当前地图数据 */ current_map: any; /** 转场碰撞点对象集合 */ private timer: Timer = new Timer(3); onLoad(){ // 监听全局事件 oops.message.on("do_add_monster", this.on_do_add_monster, this); oops.message.on("do_add_hero", this.on_do_add_hero, this); } private on_do_add_monster(event: string, args: any) { this.addMonster() } private on_do_add_hero(event: string, args: any) { console.log("do_add_hero",args.HeroCardView) this.addHero(args.HeroCardView.card_uid) this.addMonster() } reset(): void { } start() { this.scene = this.getComponent(MapViewScene); } /** 转场 */ protected update(dt: number): void { // this.shuaxin(dt) this.gold_add(dt) } private mapLoaded() { } gold_add(dt: number) { smc.vm_data.gold.time += dt; if (smc.vm_data.gold.time >= smc.vm_data.gold.cd) { smc.vm_data.gold.min = smc.vm_data.gold.max; smc.vm_data.gold.time = 0; } } shuaxin(dt: number) { smc.vm_data.shuaxin.min += smc.vm_data.shuaxin.speed*dt; if (smc.vm_data.shuaxin.min >= smc.vm_data.shuaxin.max) { smc.vm_data.shuaxin.min = 0; } } /** 添加玩家 */ private addHero(uuid:number=1001) { this.scene.node.active = true let hero = ecs.getEntity(Hero); let pos = v3(BoxSet.HERO_START,BoxSet.GAME_LINE) let speed =CardSet[uuid].speed let camp = 1 let prefab_path = CardSet[uuid].prefab_path let name = CardSet[uuid].name hero.load(pos,speed,camp,prefab_path,name); } private addMonster() { this.scene.node.active = true if (smc.monsters.length>0){ let monster = ecs.getEntity(Monster); let pos:Vec3 = v3(BoxSet.MONSTER_START,BoxSet.GAME_LINE) let speed =smc.monsters[0].speed let camp = -1 let prefab_path = smc.monsters[0].prefab_path let name = smc.monsters[0].name monster.load(pos,speed,camp,prefab_path,name); smc.monsters.splice(0,1) } } }