消消方块阵换皮表情
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

69 lines
2.2 KiB

/**
* 女巫释放加血
*/
import { _decorator, Component, sp } from 'cc';
import MTools from 'db://assets/mx/tools/MTools';
import { IWitchProperty } from '../../../game/ChapterPlayTypes';
const { ccclass, property } = _decorator;
@ccclass('SingleWitch')
export class SingleWitch extends Component {
Data: IWitchProperty = null;
private _isStart = false;
private _exitTime = 0;
private _releaseTime = 0;
setData(data: IWitchProperty) {
this.Data = data;
this._exitTime = this.Data.existTime;
this._releaseTime = 0;
this.startRelease();
}
/**开始释放 */
startRelease() {
this._isStart = true;
gg.audio.playEffect({ name: "恐怖音效", path: "sound/怪物来袭/" });
}
protected update(dt: number): void {
if (!gg.game.CurentBattle.canUpdateFrame()) return;
if (!this._isStart) return;
const scaledDt = dt * gg.game.CurentBattle.TimeScale;
this._releaseTime -= scaledDt;
if (this._releaseTime < 0)
this.release();
this._exitTime -= scaledDt;
if (this._exitTime <= 0) {
this.remove();
}
}
release() {
gg.audio.playEffect({ name: "回血", path: "sound/" });
this._releaseTime = Math.random() * (this.Data.effectTimeUpperLimit - this.Data.effectTimeLowerLimit) + this.Data.effectTimeLowerLimit;
let arr = gg.game.CurentBattle.MonsterSpawner.getAllMonster().filter((item) => (item.getComponent('Monster') as any)?.Data?.id != 40041);
let count = arr.length < this.Data.maxAddHpMonsterNum ? arr.length : this.Data.maxAddHpMonsterNum;
let arr2 = MTools.getRandomElements(arr, count);
let nodeSpine = (this.node.getComponent('Monster') as any).anim;
nodeSpine.setAnimation(0, '攻击', false);
nodeSpine.setCompleteListener(() => {
nodeSpine.setCompleteListener(null);
nodeSpine.setAnimation(0, '行走', true);
});
arr2.map((item) => {
(item.getComponent('Monster') as any)?.addHP(this.Data.addHpCoefficient, true);
})
}
remove() {
this._isStart = false;
(this.node.getComponent('Monster') as any)?.remove();
}
}