feat(天赋系统): 添加天赋执行次数功能并实现必暴效果
为天赋系统添加count字段控制执行次数,并实现C_ATK、C_SKILL、C_MSKILL三种必暴效果类型
This commit is contained in:
@@ -18,6 +18,8 @@ export interface TalSlot {
|
||||
vType:BType; // 数值型还是百分比型
|
||||
value: number; // 触发的效果数值
|
||||
value_add: number; // 触发的效果数值增量
|
||||
count: number; // 执行次数,及可以触发的次数
|
||||
count_add: number; // 执行次数增量
|
||||
Trigger: number; // 天赋触发阈值
|
||||
Trigger_add: number; // 天赋触发阈值减值
|
||||
desc: string; // 天赋描述(说明触发条件和效果)
|
||||
@@ -91,6 +93,8 @@ export class TalComp extends ecs.Comp {
|
||||
vType: tConf.vType,
|
||||
value: tConf.value, // 效果数值初始为配置值
|
||||
value_add: 0, // 效果数值增量初始为0
|
||||
count: 1, // 执行次数,及可以触发的次数
|
||||
count_add:0, // 执行次数增量初始为0
|
||||
Trigger: tConf.Trigger, // 触发阈值(后续可从配置中读取)
|
||||
Trigger_add: 0, // 触发阈值增量初始为0
|
||||
desc: tConf.desc,
|
||||
@@ -176,7 +180,9 @@ export class TalComp extends ecs.Comp {
|
||||
const talent = this.Tals[uuid];
|
||||
if (talent.cur >= (talent.Trigger - talent.Trigger_add)) { // 修复触发条件,累积值达到或超过触发阈值时触发
|
||||
console.log(`[TalComp]天赋触发,天赋ID:${uuid}`);
|
||||
this.doTriggerTal(talent.uuid);
|
||||
for(let i=0;i<(talent.count+talent.count_add);i++){
|
||||
this.doTriggerTal(talent.uuid);
|
||||
}
|
||||
// 重置累积值
|
||||
talent.cur = 0;
|
||||
|
||||
@@ -198,6 +204,15 @@ export class TalComp extends ecs.Comp {
|
||||
case TalEffet.D_SKILL:
|
||||
heroAttrs.addTalent(TalEffet.D_SKILL, talent.value + talent.value_add);
|
||||
break;
|
||||
case TalEffet.C_ATK:
|
||||
heroAttrs.addTalent(TalEffet.C_ATK, talent.value + talent.value_add);
|
||||
break;
|
||||
case TalEffet.C_SKILL:
|
||||
heroAttrs.addTalent(TalEffet.C_SKILL, talent.value + talent.value_add);
|
||||
break;
|
||||
case TalEffet.C_MSKILL:
|
||||
heroAttrs.addTalent(TalEffet.C_MSKILL, talent.value + talent.value_add);
|
||||
break;
|
||||
case TalEffet.BUFF:
|
||||
heroAttrs.addTalBuff(talent.uuid, talent.attrs, talent.vType, talent.value + talent.value_add);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user