diff --git a/assets/script/game/monster/MonsterBuffComp.ts b/assets/script/game/monster/MonsterBuffComp.ts index ebabc3ef..c9be0542 100644 --- a/assets/script/game/monster/MonsterBuffComp.ts +++ b/assets/script/game/monster/MonsterBuffComp.ts @@ -21,6 +21,7 @@ import { SkillCom } from "../skills/SkillCom"; import { SkillSet } from "../common/config/SkillSet"; import { BoxRangComp } from "./BoxRangComp"; import { Tooltip } from "../skills/Tooltip"; +import { MonsterViewComp } from "./MonsterViewComp"; const { ccclass, property } = _decorator; /** 角色显示组件 */ @@ -29,15 +30,28 @@ const { ccclass, property } = _decorator; export class MonsterBuffComp extends CCComp { /** 角色动画 */ as: MonsterSpine = null!; - num:number=0; - timer:Timer = new Timer(0.5); + mv!: MonsterViewComp; + + timer:Timer = new Timer(0.1); + buffs:Array=[]; + buffs_arr:any=[]; + /** + skill_uuid:number=0; + atk:number=0; + hp:number=0; + shield:number=0; + time:number=0; + + + **/ + onLoad() { - this.as = this.getComponent(MonsterSpine); + this.as = this.node.getComponent(MonsterSpine); + this.mv= this.getComponent(MonsterViewComp); } /** 视图层逻辑代码分离演示 */ start () { - console.log("MonsterBuffComp start nmu:"+this.num); // 注册单个碰撞体的回调函数 let collider = this.getComponent(Collider2D); if (collider) { @@ -77,11 +91,9 @@ export class MonsterBuffComp extends CCComp { } } - update(dt: number){ if (this.timer.update(dt)) { - this.num++; - + this.buff_update() } } @@ -90,4 +102,21 @@ export class MonsterBuffComp extends CCComp { this.node.destroy(); } + buff_add(time:number,atk:number){ + + } + buff_remove(index:number){ + this.mv.atk=this.mv.atk-this.buffs_arr[index].atk; + this.mv.hp=this.mv.hp-this.buffs_arr[index].hp; + this.mv.shield=this.mv.shield-this.buffs_arr[index].shield; + } + buff_update(){ + this.buffs_arr.forEach((buff:any,index:number)=>{ + buff.time -= 0.1; + if(buff.time <= 0){ + this.buff_remove(index); + } + }) + this.buffs_arr = this.buffs_arr.filter((buff:any) => buff.time > 0); + } } \ No newline at end of file