import { _decorator, Component, Node, sp } from 'cc'; import { DataSystem } from '../core/data/DataSystem'; import { ResourceLoader } from '../core/resourceManager/ResourceLoader'; import { ConfigData } from '../data/ConfigData'; import { HitData } from './HitData'; import { Monster } from './Monster'; const { ccclass, property } = _decorator; @ccclass('ComboNode') export class ComboNode extends Component { @property({ type: sp.Skeleton, tooltip: "spine组件" }) effect: sp.Skeleton; @property({ type: ResourceLoader, tooltip: "资源加载组件" }) res: ResourceLoader; public async setData(monsters: Array, time: number) { let skillID = DataSystem.getData(ConfigData)["fetter"]["5"]["specificSkill"]; let value = DataSystem.getData(ConfigData)["skill"][skillID]["skillValue"].split(","); let spData = await this.res.load("spine/effect/wanjianqifa", sp.SkeletonData); this.effect.skeletonData = spData; let track = this.effect.addAnimation(0, "animation", false); this.effect.setTrackEventListener(track, () => { for (let i = 0; i < monsters.length; i++) { let hit = new HitData(); hit.from = "万箭齐发"; hit.isSkill = true; hit.hit = DataSystem.getData(ConfigData)["monster"][monsters[i].data.id]["hp"] * (parseInt(value[time - 1]) / 10000); hit.hit = Math.floor(hit.hit); monsters[i].data._hit.push(hit); } }); this.effect.setTrackCompleteListener(track, () => { this.node.destroy(); }); } }