mirror of
https://github.com/unanmed/HumanBreak.git
synced 2026-11-12 17:04:31 +08:00
第二章技能树,修复小地图的bug
This commit is contained in:
1 parent
14486f970f
commit
0b9360e55a
30 files changed
+549
-103
No files matched your search
@@ -25,5 +25,16 @@
|
||||
"如果前方为可通行的地面,则不能使用该技能,如果前方为怪物,则将怪物移至勇士视线上第一个不能通行的方块后",
|
||||
"如果前方为障碍物,则直接跳到该障碍物的后方。"
|
||||
]
|
||||
},
|
||||
"shield": {
|
||||
"text": "3:铸剑为盾",
|
||||
"opened": "core.getSkillLevel(10) > 0",
|
||||
"desc": [
|
||||
"<span style=\"color: gold\">快捷键3</span>,开启后勇士防御增加${level:10 * 10}%,",
|
||||
"同时攻击减少${level:10 * 10}%。",
|
||||
"<br>",
|
||||
"<br>",
|
||||
"当前等级:${level:10}"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -38,6 +38,7 @@ const arrow: Partial<Record<AllIds, Dir>> = {
|
||||
* 切分地图区域
|
||||
*/
|
||||
export function splitArea() {
|
||||
area = {};
|
||||
const used: FloorIds[] = [];
|
||||
for (const id of core.floorIds) {
|
||||
if (used.includes(id) || core.status.maps[id].deleted) continue;
|
||||
|
||||
Vendored
+15
@@ -30,6 +30,14 @@ type FloorIds =
|
||||
| 'tower6'
|
||||
| 'tower7'
|
||||
| 'MT22'
|
||||
| 'MT23'
|
||||
| 'MT24'
|
||||
| 'MT25'
|
||||
| 'MT26'
|
||||
| 'MT27'
|
||||
| 'MT28'
|
||||
| 'MT29'
|
||||
| 'MT30'
|
||||
|
||||
type ImageIds =
|
||||
| 'IQ.png'
|
||||
@@ -48,12 +56,19 @@ type ImageIds =
|
||||
| 'skill.png'
|
||||
| 'skill0.png'
|
||||
| 'skill1.png'
|
||||
| 'skill10.png'
|
||||
| 'skill11.png'
|
||||
| 'skill12.png'
|
||||
| 'skill13.png'
|
||||
| 'skill14.png'
|
||||
| 'skill2.png'
|
||||
| 'skill3.png'
|
||||
| 'skill4.png'
|
||||
| 'skill5.png'
|
||||
| 'skill6.png'
|
||||
| 'skill7.png'
|
||||
| 'skill8.png'
|
||||
| 'skill9.png'
|
||||
| 'title.jpg'
|
||||
| 'tower.jpg'
|
||||
| 'tower7.jpeg'
|
||||
|
||||
Vendored
+1
-1
@@ -279,7 +279,7 @@ interface MiniMap {
|
||||
splitArea(): void;
|
||||
}
|
||||
|
||||
type Chapter = 'chapter1';
|
||||
type Chapter = 'chapter1' | 'chapter2';
|
||||
|
||||
interface Skill {
|
||||
index: number;
|
||||
|
||||
+4
-3
@@ -475,13 +475,14 @@ function changeFloorByDir(dir: Dir) {
|
||||
function locateMap(id: FloorIds) {
|
||||
const data = getMapDrawData(
|
||||
id,
|
||||
noBorder.value ? 5 : 0,
|
||||
noBorder.value ? 0 : 5, // 可恶的0和5,写反了找一个多小时
|
||||
noBorder.value ? 0.5 : 1
|
||||
);
|
||||
if (!data.locs[id]) return;
|
||||
|
||||
const [x, y] = data.locs[id]!;
|
||||
ox = (-x + data.width / 2) * scale;
|
||||
oy = (-y + data.height / 2) * scale;
|
||||
ox = (-x + data.width / 2 - 5) * scale;
|
||||
oy = (-y + data.height / 2 - 5) * scale;
|
||||
}
|
||||
|
||||
// -------------------- 键盘事件
|
||||
|
||||
+16
-3
@@ -30,7 +30,9 @@
|
||||
id="divider-vertical"
|
||||
></a-divider>
|
||||
<div id="skill-upgrade-info">
|
||||
<span id="skill-level">当前等级:{{ level }}</span>
|
||||
<span id="skill-level"
|
||||
>当前等级:{{ level }} / {{ skill.max }}</span
|
||||
>
|
||||
<a-divider dashed class="upgrade-divider"></a-divider>
|
||||
<span
|
||||
v-if="level < skill.max"
|
||||
@@ -88,11 +90,17 @@ const chapter = ref<Chapter>('chapter1');
|
||||
const update = ref(false);
|
||||
|
||||
const chapterDict = {
|
||||
chapter1: '第一章'
|
||||
chapter1: '第一章',
|
||||
chapter2: '第二章'
|
||||
};
|
||||
|
||||
flags.skillTree ??= 0;
|
||||
|
||||
const chapterList = Object.keys(core.plugin.skills) as Chapter[];
|
||||
|
||||
selected.value = core.plugin.skills[chapterList[flags.skillTree]][0].index;
|
||||
chapter.value = chapterList[flags.skillTree];
|
||||
|
||||
watch(selected, draw);
|
||||
watch(update, () => (mdef.value = core.status.hero.mdef));
|
||||
|
||||
@@ -276,8 +284,13 @@ onUnmounted(() => {
|
||||
function selectChapter(delta: number) {
|
||||
const now = chapterList.indexOf(chapter.value);
|
||||
const to = now + delta;
|
||||
if (has(chapterList[to])) {
|
||||
|
||||
if (has(chapterList[to]) && flags.chapter > to) {
|
||||
selected.value = core.plugin.skills[chapterList[to]][0].index;
|
||||
chapter.value = chapterList[to];
|
||||
update.value = !update.value;
|
||||
flags.skillTree = to;
|
||||
draw();
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -167,6 +167,12 @@ function update() {
|
||||
lvName.value = core.getLvName(hero.lv);
|
||||
if (flags.blade && flags.bladeOn) {
|
||||
skill.value = '断灭之刃';
|
||||
hero.atk! *= 1 + core.getSkillLevel(2) / 10;
|
||||
hero.def! *= 1 - core.getSkillLevel(2) / 10;
|
||||
} else if (flags.shield && flags.shieldOn) {
|
||||
skill.value = '铸剑为盾';
|
||||
hero.def! *= 1 + core.getSkillLevel(10) / 10;
|
||||
hero.atk! *= 1 - core.getSkillLevel(10) / 10;
|
||||
} else {
|
||||
skill.value = '无';
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user