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 } }