| 1234567891011121314151617181920212223242526272829303132333435 |
- 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<Monster>, 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<sp.SkeletonData>("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();
- });
- }
- }
|