2023-10-30 02:34:11 +08:00

40 lines
976 B
TypeScript

import { TableGRoleSkill } from "../../../resources/config/ts/TableGRoleSkill";
import GRoleBase from "../base/role/GRoleBase";
import { GSkillBase, GSkillState } from "./GSkill";
//冷却技能基类 用于多长时间释放技能
export default abstract class GSkillCDBase implements GSkillBase {
//冷却总时间
cdTatal:number;
//冷却时间
cdTime:number;
bind(role:GRoleBase<{}>,info: TableGRoleSkill):GSkillCDBase {
return this;
}
isRelease(): boolean {
//冷却时间小于等于0可释放
return this.cdTime <= 0;
}
//释放技能
release():boolean {
// //是否可以释放技能
// if(!this.isRelease()) return false;
return this.onRelease();
}
//子类实现释放
abstract onRelease():boolean;
state(): GSkillState {
if(this.isRelease())
return GSkillState.Releasing
else
return GSkillState.NoRelease
}
}