加入 等级系统 开始
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -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:"说明"},
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
/** 视图层逻辑代码分离演示 */
|
||||
|
||||
|
||||
@@ -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}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,11 +35,11 @@
|
||||
- [ ] 装备设定,借助AI,各品质装备 属性相差20% ,
|
||||
- [ ] 添加玩家自主 激活额外boss 按钮,额外boss 有特殊事件
|
||||
- [x] 主将信息面板
|
||||
- [ ] 伙伴信息面板
|
||||
- [x] 伙伴信息面板
|
||||
- [ ] boss信息面板
|
||||
- [ ] 金币掉落 动画 从头顶掉到底部bar
|
||||
- [x] 技能和伙伴都 需要主动点击 才会弹出,特定回合出现选项
|
||||
|
||||
- [ ] 添加等级系统,主将和伙伴都可以升级,升级获得属性提升和 技能获取
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user