refactor: 技能系统

This commit is contained in:
AncTe committed 2024-11-07 23:43:08 +08:00
1 parent eca62f5dd0
commit d137068f4f
17 files changed
+235 -86

No files matched your search

+29 -9
View File
@@ -1,3 +1,4 @@
import { HeroSkill } from '@/game/mechanism/misc';
import { upgradeSkill } from './skillTree';
const replayableSettings = ['autoSkill'];
@@ -99,15 +100,22 @@ export function init() {
});
function skillAction(skill: string) {
let toEmit = skill;
// 兼容性处理
if (skill === '1') {
if (flags.autoSkill || !flags.bladeOn) return true;
if (flags.blade) flags.blade = false;
else flags.blade = true;
toEmit = 'Blade';
} else if (skill === '2') {
toEmit = 'Jump';
} else if (skill === '3') {
toEmit = 'Shield';
}
if (toEmit === 'Jump') {
if (
!flags.chase &&
!flags.onChase &&
!core.status.floorId.startsWith('tower') &&
flags.skill2
HeroSkill.learnedSkill(HeroSkill.Jump)
) {
Mota.Plugin.require('skill_g').jumpSkill();
} else {
@@ -115,10 +123,22 @@ export function init() {
core.useItem('pickaxe');
}
}
} else if (skill === '3') {
if (flags.autoSkill || !flags.shieldOn) return true;
if (flags.shield) flags.shield = false;
else flags.shield = true;
} else {
if (HeroSkill.getAutoSkill()) {
core.replay();
core.updateStatusBar();
return true;
}
let num = HeroSkill.Skill.None;
switch (toEmit) {
case 'Blade':
num = HeroSkill.Blade;
break;
case 'Shield':
num = HeroSkill.Shield;
break;
}
HeroSkill.toggleSkill(num);
}
core.updateStatusBar();
core.replay();
+3 -1
View File
@@ -1,5 +1,7 @@
// @ts-nocheck
import { HeroSkill } from '@/game/mechanism/misc';
// 所有的主动技能效果
var ignoreInJump = {
event: ['X20007', 'X20001', 'X20006', 'X20014', 'X20010', 'X20007'],
@@ -56,7 +58,7 @@ export function jumpSkill() {
if (jumpIgnoreFloor.has(core.status.floorId) || flags.onChase) {
return core.drawTip('当前楼层无法使用该技能');
}
if (!flags.skill2) return;
if (!HeroSkill.learnedSkill(HeroSkill.Jump)) return;
if (!flags['jump_' + core.status.floorId])
flags['jump_' + core.status.floorId] = 0;
if (core.status.floorId == 'MT14') {
+4 -2
View File
@@ -1,3 +1,5 @@
import { HeroSkill } from '@/game/mechanism/misc';
let levels: number[] = [];
export type Chapter = 'chapter1' | 'chapter2';
@@ -263,7 +265,7 @@ export function upgradeSkill(skill: number) {
core.status.hero.mana += 5;
break;
case 2: // 断灭之刃
core.setFlag('bladeOn', true);
HeroSkill.learnSkill(HeroSkill.Blade);
break;
case 3: // 坚韧 +2防御
core.status.hero.def += 2;
@@ -287,7 +289,7 @@ export function upgradeSkill(skill: number) {
core.addBuff('def', 0.01);
break;
case 10: // 铸剑为盾
core.setFlag('shieldOn', true);
HeroSkill.learnSkill(HeroSkill.Shield);
break;
case 11: // 学习
core.status.hero.magicDef += 100;