/** * 汽水炸弹形成粘液区域 */ import { _decorator, Component, Node, Vec3 } from 'cc'; import BombSpine from './BombSpine'; import { BattleDataManager } from '../BattleDataManager'; import { Monster } from '../Monster'; const { ccclass, property } = _decorator; @ccclass('ColaMucusAreaSchedule') export class ColaMucusAreaSchedule extends Component { _dt: number = 0; _weaponid: number = 0; _damageTimes: number = 0; _addBuffInterval: number = 1; _repeatCount: number = 1; // _allDamage:number = 0; _bombPos: Vec3 = null; _damageRadius: number = 0; // _isCrit:boolean = false; // _spineNode:Node = null; curRepeatCount: number = 0; start() { } update(deltaTime: number) { if (!gg.game.CurentBattle.canUpdateFrame()) return; this._dt += deltaTime * gg.game.CurentBattle.TimeScale; if (this._dt >= this._addBuffInterval) { this._dt = 0 this.curRepeatCount++ // let damageCount = Math.ceil(this._buffTotalTime / this._buffInterval)//造成伤害次数 //爆炸范围内的怪物造成伤害 const bombMonsters = gg.game.CurentBattle.MonsterSpawner.getMonstersInArea(this.node.worldPosition, this._damageRadius); for (let i = 0; i < bombMonsters.length; i++) { const monster = bombMonsters[i]; const monsterComp = monster.getComponent(Monster); const allBuff = monsterComp.getAllBuff() const weaponPropertyData = BattleDataManager.getWeaponAddProperty(this._weaponid, allBuff) monsterComp.subHP(this._weaponid, weaponPropertyData.allAtk * this._damageTimes, weaponPropertyData.isCrit, weaponPropertyData.addRateAtk) } if (this.curRepeatCount >= this._repeatCount) { //移除当前脚本 this.removeSelf() this.node.getComponent(BombSpine).destoryNode() } } } resetColaMucusAreaEffe(bombPos, damageRadius, damageTimes, weaponid, damageInterval, repeatCount) { this._dt = 0 this._addBuffInterval = damageInterval this._repeatCount = repeatCount this._weaponid = weaponid this._damageTimes = damageTimes this._bombPos = bombPos this._damageRadius = damageRadius // this._isCrit = isCrit // this._spineNode = spineNode } removeSelf() { this.destroy() } onDestroy() { // console.log('ColaMucusAreaSchedule组件已被移除'); } }