refactor(game): 重构天赋系统,移除MP效果并添加属性永久加成
- 删除HeroAttrEvent.ts文件及相关MP效果处理 - 将TalEffet.STATS重命名为TalEffet.ATTR以更准确描述功能 - 调整部分天赋配置数值和触发条件 - 新增风怒属性永久加成功能
This commit is contained in:
9
assets/resources/gui/ui4.plist.meta
Normal file
9
assets/resources/gui/ui4.plist.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "0.0.0",
|
||||
"importer": "*",
|
||||
"imported": false,
|
||||
"uuid": "eaa91e98-d58c-40cb-88ee-f7122960909e",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
9
assets/script/game/common/config/ScoreSet.ts.meta
Normal file
9
assets/script/game/common/config/ScoreSet.ts.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "4.0.24",
|
||||
"importer": "typescript",
|
||||
"imported": true,
|
||||
"uuid": "7f5508cb-d643-4082-b216-891c685366d3",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
@@ -25,18 +25,18 @@ export enum TalEffet {
|
||||
THORNS=14, //反伤 百分比 次数+反伤加成,如额外5次 反伤-20%
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
HP=3, // 回血 百分比 直接触发,回血20%
|
||||
MP=4, //回蓝 百分比 直接触发,回蓝20%
|
||||
SHIELD=9, // 护盾 直接触发,获得20%的生命值护盾
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
BUFF = 5, // 数值叠加 触发后清零: 暴击率,闪避率等,触发后效果取消
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
STATS=6, // 状态 待定
|
||||
ATTR=6, // 属性 永久添加
|
||||
|
||||
WFUNY=7, // 风怒 次数 叠加 ,如额外5次 风怒
|
||||
D_SKILL=8, //两次技能 次数 叠加,如额外5次 两次技能
|
||||
C_MSKILL=11, // 必杀技能必暴 次数 叠加 ,如额外5次 必杀技能必暴
|
||||
C_ATK=12, // 普工必爆 次数 叠加 ,如额外5次 普工必爆
|
||||
C_SKILL=13, // 一般技能必暴 次数 叠加 ,如额外5次 一般技能必暴
|
||||
|
||||
}
|
||||
|
||||
export enum TalTarget {
|
||||
@@ -52,6 +52,10 @@ export enum TalAttrs {
|
||||
SILENCE_CHANCE=Attrs.SILENCE_CHANCE, // 沉默概率
|
||||
CRITICAL=Attrs.CRITICAL, // 暴击率
|
||||
AP=Attrs.AP, // 攻击力
|
||||
HP_MAX=Attrs.HP_MAX, // 最大生命值
|
||||
THORNS=Attrs.THORNS, //反伤 百分比
|
||||
REVIVE_COUNT=Attrs.REVIVE_COUNT, // 复活次数
|
||||
WFUNY=Attrs.WFUNY, // 风怒
|
||||
}
|
||||
/**
|
||||
* 天赋配置接口
|
||||
@@ -93,10 +97,10 @@ export const talConf: Record<number, ItalConf> = {
|
||||
7001:{uuid:7001,name:"风怒",triType:TriType.ATK,Trigger:3,count:1,target:TalTarget.ENEMY,effet:TalEffet.WFUNY,vType:BType.RATIO, value:50,attrs:TalAttrs.NON,
|
||||
desc:"普通攻击3次后, 立即给与目标150%伤害的额外打击"},
|
||||
|
||||
7003:{uuid:7003,name:"回血",triType:TriType.ATK,Trigger:3,count:1,target:TalTarget.SELF,effet:TalEffet.HP,vType:BType.RATIO, value:10,attrs:TalAttrs.NON,
|
||||
desc:"普通攻击3次后, 会回复10%的生命值"},
|
||||
7004:{uuid:7004,name:"回蓝",triType:TriType.ATK,Trigger:3,count:1,target:TalTarget.SELF,effet:TalEffet.MP,vType:BType.RATIO, value:10,attrs:TalAttrs.NON,
|
||||
desc:"普通攻击3次后, 会回复10%的蓝值"},
|
||||
7003:{uuid:7003,name:"回血",triType:TriType.ATK,Trigger:3,count:1,target:TalTarget.SELF,effet:TalEffet.HP,vType:BType.RATIO, value:1,attrs:TalAttrs.NON,
|
||||
desc:"普通攻击3次后, 会回复1%的生命值"},
|
||||
7004:{uuid:7004,name:"回血(大)",triType:TriType.ATK,Trigger:3,count:1,target:TalTarget.SELF,effet:TalEffet.HP,vType:BType.RATIO, value:2,attrs:TalAttrs.NON,
|
||||
desc:"普通攻击5次后, 会回复2%的生命值"},
|
||||
7005:{uuid:7005,name:"冰冻",triType:TriType.ATK,Trigger:3,count:1,target:TalTarget.ENEMY,effet:TalEffet.BUFF,vType:BType.RATIO, value:5,attrs:TalAttrs.FREEZE_CHANCE,
|
||||
desc:"普通攻击3次后, 获得5%的冻结率"},
|
||||
7006:{uuid:7006,name:"沉默",triType:TriType.ATK,Trigger:3,count:1,target:TalTarget.ENEMY,effet:TalEffet.BUFF,vType:BType.RATIO, value:5,attrs:TalAttrs.SILENCE_CHANCE,
|
||||
@@ -113,11 +117,12 @@ export const talConf: Record<number, ItalConf> = {
|
||||
/*** 受伤触发 ***/
|
||||
7101:{uuid:7101,name:"反击",triType:TriType.DMG,Trigger:3,count:1,target:TalTarget.ENEMY,effet:TalEffet.ATK_DMG,vType:BType.RATIO, value:50,attrs:TalAttrs.NON,
|
||||
desc:"被攻击3次后, 给于目标50%的伤害"},
|
||||
7102:{uuid:7102,name:"护盾",triType:TriType.DMG,Trigger:3,count:1,target:TalTarget.SELF,effet:TalEffet.SHIELD,vType:BType.RATIO, value:20,attrs:TalAttrs.NON,
|
||||
desc:"被攻击3次后, 获得20%的生命值护盾"},
|
||||
7102:{uuid:7102,name:"护盾",triType:TriType.DMG,Trigger:30,count:1,target:TalTarget.SELF,effet:TalEffet.SHIELD,vType:BType.RATIO, value:20,attrs:TalAttrs.NON,
|
||||
desc:"被攻击30次后, 获得20%的生命值护盾"},
|
||||
7103:{uuid:7103,name:"减伤",triType:TriType.DMG,Trigger:3,count:1,target:TalTarget.ENEMY,effet:TalEffet.DEF,vType:BType.RATIO, value:50,attrs:TalAttrs.NON,
|
||||
desc:"被攻击3次后, 下1次伤害减50%"},
|
||||
|
||||
7104:{uuid:7104,name:"反伤",triType:TriType.DMG,Trigger:100,count:1,target:TalTarget.SELF,effet:TalEffet.BUFF,vType:BType.VALUE, value:1,attrs:TalAttrs.REVIVE_COUNT,
|
||||
desc:"被攻击100次后, 获得1次复活"},
|
||||
|
||||
/*** 失去血量触发 ***/
|
||||
7201:{uuid:7201,name:"背水",triType:TriType.HPL,Trigger:50,count:10,target:TalTarget.SELF,effet:TalEffet.C_ATK,vType:BType.VALUE, value:0,attrs:TalAttrs.NON,
|
||||
@@ -125,8 +130,9 @@ export const talConf: Record<number, ItalConf> = {
|
||||
|
||||
/*** 升级触发 ***/
|
||||
7301:{uuid:7301,name:"勤勉",triType:TriType.LUP,Trigger:1,count:5,target:TalTarget.SELF,effet:TalEffet.C_SKILL,vType:BType.VALUE, value:0,attrs:TalAttrs.NON,
|
||||
desc:"每升1级,获得下5次技能暴击"},
|
||||
|
||||
desc:"每升1级,获得下5次技能必暴击"},
|
||||
7302:{uuid:7302,name:"风怒",triType:TriType.LUP,Trigger:1,count:1,target:TalTarget.SELF,effet:TalEffet.ATTR,vType:BType.RATIO, value:2,attrs:TalAttrs.WFUNY,
|
||||
desc:"每升1级,永久增加2%的风怒概率"},
|
||||
};
|
||||
|
||||
// ========== 工具函数 ==========
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
|
||||
import { Attrs } from "../common/config/HeroAttrs";
|
||||
|
||||
export interface AttrEvent {
|
||||
Attr: Attrs;
|
||||
Value:number;
|
||||
}
|
||||
|
||||
@ecs.register('HeroAttrEvent')
|
||||
export class HeroAttrEvent extends ecs.Comp {
|
||||
|
||||
|
||||
AttrEvents:AttrEvent[] = [];
|
||||
addAttrEvent(event:AttrEvent){
|
||||
this.AttrEvents.push(event);
|
||||
}
|
||||
reset() {
|
||||
this.AttrEvents = [];
|
||||
}
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
import { Timer } from "db://oops-framework/core/common/timer/Timer";
|
||||
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
|
||||
import { smc } from "../common/SingletonModuleComp";
|
||||
import { Attrs } from "../common/config/HeroAttrs";
|
||||
import { HeroUpSet } from "../common/config/heroSet";
|
||||
import { HeroSkillsComp } from "./HeroSkills";
|
||||
import { HeroAttrsComp } from "./HeroAttrsComp";
|
||||
import { HeroAttrEvent } from "./HeroAttrEvent";
|
||||
/**
|
||||
* ==================== 英雄属性更新系统 ====================
|
||||
*
|
||||
* 按照 ECS 设计理念:
|
||||
* - System(HeroAttrEventSystem):处理属性更新事件
|
||||
*
|
||||
* 系统职责:
|
||||
* 1. 处理当角色收到attr变更事件时,更新角色属性,并处理动画展示
|
||||
*/
|
||||
@ecs.register('HeroAttrEventSystem')
|
||||
export class HeroAttrEventSystem extends ecs.ComblockSystem
|
||||
implements ecs.ISystemUpdate, ecs.IEntityEnterSystem {
|
||||
|
||||
filter(): ecs.IMatcher {
|
||||
return ecs.allOf(HeroAttrsComp,HeroAttrEvent);
|
||||
}
|
||||
entityEnter(e: ecs.Entity): void {
|
||||
|
||||
}
|
||||
|
||||
update(e: ecs.Entity): void {
|
||||
if(!smc.mission.play ) return;
|
||||
if(smc.mission.pause) return
|
||||
const model = e.get(HeroAttrsComp);
|
||||
if (!model || model.is_dead) return;
|
||||
const event = e.get(HeroAttrEvent);
|
||||
if (!event) return;
|
||||
// 移除事件组件(事件处理完成)
|
||||
|
||||
}
|
||||
/**
|
||||
* 启用调试模式(调试时使用)
|
||||
*/
|
||||
enableDebug() {
|
||||
}
|
||||
|
||||
/**
|
||||
* 禁用调试模式(正式运行)
|
||||
*/
|
||||
disableDebug() {
|
||||
}
|
||||
}
|
||||
@@ -214,9 +214,6 @@ export class TalComp extends ecs.Comp {
|
||||
case TalEffet.HP:
|
||||
heroAttrs.add_hp(talent.value + talent.value_add,talent.vType == BType.VALUE);
|
||||
break;
|
||||
case TalEffet.MP:
|
||||
heroAttrs.add_mp(talent.value + talent.value_add,talent.vType == BType.VALUE);
|
||||
break;
|
||||
case TalEffet.WFUNY:
|
||||
heroAttrs.addCountTal(TalEffet.WFUNY, talent.value + talent.value_add);
|
||||
break;
|
||||
@@ -235,6 +232,9 @@ export class TalComp extends ecs.Comp {
|
||||
case TalEffet.BUFF:
|
||||
heroAttrs.addValueTal(talent.uuid, talent.attrs, talent.vType, talent.value + talent.value_add);
|
||||
break;
|
||||
case TalEffet.ATTR:
|
||||
heroAttrs.addValueTal(talent.uuid, talent.attrs, talent.vType, talent.value + talent.value_add);
|
||||
break;
|
||||
}
|
||||
}
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user