加入 等级系统 开始

This commit is contained in:
2025-06-27 10:59:12 +08:00
parent cba52086c2
commit dde29136fa
6 changed files with 10798 additions and 4799 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -62,6 +62,67 @@ export const MonSet = {
8:{pos:v3(750,0,0)},
9:{pos:v3(800,0,0)},
}
// 经验值计算函数 - 复杂递增规律
// 基础经验值100
// 递增值每级递增10且递增值本身也会递增
// 公式:基础经验值 + 递增值累加
// 递增值规律第1级递增值=10第2级递增值=20第3级递增值=30...
export const getUpExp = (currentLevel: number): number => {
const baseExp = 100; // 基础经验值
let totalIncrement = 0;
// 计算从1级到当前等级的递增值累加
for (let level = 1; level < currentLevel; level++) {
totalIncrement += level * 10; // 每级的递增值 = 等级 * 10
}
return baseExp + totalIncrement;
};
// 获取从当前等级升级到目标等级所需的总经验值
export const getTotalUpExp = (currentLevel: number, targetLevel: number): number => {
let totalExp = 0;
for (let level = currentLevel; level < targetLevel; level++) {
totalExp += getUpExp(level);
}
return totalExp;
};
// 保留原有的 UpExp 对象以保持向后兼容性
export const UpExp = {
1: getUpExp(1), // 100
2: getUpExp(2), // 110
3: getUpExp(3), // 130
4: getUpExp(4), // 160
5: getUpExp(5), // 200
6: getUpExp(6), // 250
7: getUpExp(7), // 310
8: getUpExp(8), // 380
9: getUpExp(9), // 460
10: getUpExp(10), // 550
11: getUpExp(11), // 650
12: getUpExp(12), // 760
13: getUpExp(13), // 880
14: getUpExp(14), // 1010
15: getUpExp(15), // 1150
16: getUpExp(16), // 1300
17: getUpExp(17), // 1460
18: getUpExp(18), // 1630
19: getUpExp(19), // 1810
20: getUpExp(20), // 2000
21: getUpExp(21), // 2200
22: getUpExp(22), // 2410
23: getUpExp(23), // 2630
24: getUpExp(24), // 2860
25: getUpExp(25), // 3100
26: getUpExp(26), // 3350
27: getUpExp(27), // 3610
28: getUpExp(28), // 3880
29: getUpExp(29), // 4160
30: getUpExp(30), // 4450
};
export const HeroInfo = {
5001:{uuid:5001,name:"神圣守护",path:"k2", quality:HQuality.BLUE,lv:1,kind:1,type:0,hp:50,ap:10,dis:700,cd:3,
crit:5,crit_d:0,crit_no:false,dod:0,dod_no:false,speed:50,skills:[6001],info:"说明"},

View File

@@ -562,7 +562,13 @@ export class HeroViewComp extends CCComp {
}
}
exp_up(e:any,data:any){
console.log("[HeroViewComp]:exp_up",data)
this.lv+=1
this.ap=this.ap*this.lv
this.BUFFCOMP.vmdata_update(true)
}
to_update(){
this.ap=this.ap*this.lv
}

View File

@@ -51,8 +51,9 @@ export class MissionComp extends CCComp {
smc.vmdata.mission_data.current_wave++
let wave=smc.vmdata.mission_data.current_wave
if(wave==FightSet.FRIEND_WAVE_UP){
console.log("[任务系统] FRIEND_WAVE_UP 伙伴选择 :",wave,FightSet.FRIEND_WAVE_UP)
let node= this.node.getChildByName("new_hero")
tween(node).to(0.3, {position:v3(node.position.x-200,node.position.y,1)}).start()
tween(node).to(0.3, {position:v3(280,node.position.y,1)}).start()
}
if(wave==FightSet.BOSS_WAVE_UP_1){
console.log("[任务系统] BOSS_WAVE_UP_1 装备选择 :",wave,FightSet.BOSS_WAVE_UP_1)
@@ -217,7 +218,7 @@ export class MissionComp extends CCComp {
}
hide_call_friend(){
let node =this.node.getChildByName("new_hero")
tween(node).to(0.3, {position:v3(node.position.x+200,node.position.y,1)}).start()
tween(node).to(0.3, {position:v3(480,node.position.y,1)}).start()
}
/** 视图层逻辑代码分离演示 */

View File

@@ -59,7 +59,6 @@ export class Skill extends ecs.Entity {
node.parent = parent;
node.setPosition(startPos);
node.angle+=angle
// console.log("[Skill]:node=>",startPos)
// 添加技能组件
const SComp = node.getComponent(SkillCom); // 初始化技能参数
if (!SComp) {
@@ -85,7 +84,6 @@ export class Skill extends ecs.Entity {
SComp.caster_crit = ap_data.crit
SComp.caster_crit_d = ap_data.crit_d
// console.log("[Skill]:caster=>",caster,config.name+"scomp=>",SComp,"fightcon=>",FIGHTCON)
// 设置技能组件属性
Object.assign(SComp, {
s_uuid: uuid,
@@ -117,7 +115,6 @@ export class Skill extends ecs.Entity {
if(buff!==null) {
buff_ap=(100+buff.ATK)/100 //装备区 总加成
}
// console.log("[skill] buff ",buff,"buff_ap",buff_ap)
// 汇总DEBUFF_DECD并处理count值
let BUFF_ATK = 0
let DEBUFF_DEATK = 0
@@ -143,10 +140,8 @@ export class Skill extends ecs.Entity {
let BUFF_AP=(100-DEBUFF_DEATK+BUFF_ATK+dmg)/100 //buff区 总加成
ap=view.ap*buff_ap*BUFF_AP*SkillSet[uuid].ap/100
// console.log("[Skill] skill ap:"+view.hero_name+"=>"+ap+" "+buff_ap+" "+BUFF_AP)
crit=view.crit+buff.CRITICAL
crit_d=view.crit_d+buff.CRITICAL_DMG
// console.log("[Skill]:ap=>",ap,"crit=>",crit,"crit_d=>",crit_d)
return {ap,crit,crit_d}
}
}

View File

@@ -35,11 +35,11 @@
- [ ] 装备设定,借助AI,各品质装备 属性相差20% ,
- [ ] 添加玩家自主 激活额外boss 按钮,额外boss 有特殊事件
- [x] 主将信息面板
- [ ] 伙伴信息面板
- [x] 伙伴信息面板
- [ ] boss信息面板
- [ ] 金币掉落 动画 从头顶掉到底部bar
- [x] 技能和伙伴都 需要主动点击 才会弹出,特定回合出现选项
- [ ] 添加等级系统,主将和伙伴都可以升级,升级获得属性提升和 技能获取