第二章技能树,修复小地图的bug

This commit is contained in:
AncTe committed 2023-01-04 22:11:08 +08:00
1 parent 14486f970f
commit 0b9360e55a
30 files changed
+549 -103

No files matched your search

+11
View File
@@ -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}"
]
}
}
+1
View File
@@ -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;
+15
View File
@@ -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'
+1 -1
View File
@@ -279,7 +279,7 @@ interface MiniMap {
splitArea(): void;
}
type Chapter = 'chapter1';
type Chapter = 'chapter1' | 'chapter2';
interface Skill {
index: number;
+4 -3
View File
@@ -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
View File
@@ -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>
+6
View File
@@ -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 = '无';
}