refactor: 脚本编辑部分内容

This commit is contained in:
AncTe committed 2023-12-01 21:47:43 +08:00
1 parent 43937c9a54
commit 9adcb5543f
14 files changed
+127 -145

No files matched your search

+61
View File
@@ -0,0 +1,61 @@
export {};
const potionItems: AllIdsOf<'items'>[] = [
'redPotion',
'bluePotion',
'yellowPotion',
'greenPotion',
'I482',
'I484',
'I487',
'I491'
];
mota.game.hook.on('afterGetItem', (itemId, x, y, isGentleClick) => {
// 获得一个道具后触发的事件
// itemId:获得的道具ID;x和y是该道具所在的坐标
// isGentleClick:是否是轻按触发的
if (potionItems.includes(itemId)) core.playSound('回血');
else core.playSound('获得道具');
const todo: any[] = [];
// 检查该点的获得道具后事件。
if (core.status.floorId == null) return;
const event = core.floors[core.status.floorId].afterGetItem[`${x},${y}`];
if (
event &&
(event instanceof Array ||
!isGentleClick ||
!event.disableOnGentleClick)
) {
core.unshift(todo, event as any[]);
}
if (core.hasFlag('spring')) {
if (!core.hasFlag('springCount')) core.setFlag('springCount', 0);
if (potionItems.includes(itemId)) {
core.addFlag('springCount', 1);
}
if (core.getFlag<number>('springCount', 0) === 50) {
core.setFlag('springCount', 0);
core.status.hero.hpmax += core.getNakedStatus('hpmax') * 0.1;
}
core.updateStatusBar();
}
if (todo.length > 0) core.insertAction(todo, x, y);
});
mota.game.hook.on('afterOpenDoor', (doorId, x, y) => {
// 开一个门后触发的事件
const todo: any[] = [];
// 检查该点的获得开门后事件。
if (core.status.floorId == null) return;
const event = core.floors[core.status.floorId].afterOpenDoor[`${x},${y}`];
if (event) core.unshift(todo, event as any[]);
if (todo.length > 0) core.insertAction(todo, x, y);
if (core.status.event.id == null) core.continueAutomaticRoute();
else core.clearContinueAutomaticRoute();
});
+3 -5
View File
@@ -1,4 +1,4 @@
import { has } from '../utils';
import { getStatusLabel, has } from '../utils';
/**
* 获取所有装备
@@ -28,9 +28,7 @@ export function getAddStatus(equip: Equip) {
return (
<span style="display: flex">
<span style="flex-basis: 50%">
{core.getStatusLabel(v)}
</span>
<span style="flex-basis: 50%">{getStatusLabel(v)}</span>
&nbsp;&nbsp;&nbsp;&nbsp;
<span
style={{
@@ -84,7 +82,7 @@ export function getNowStatus(nowEquip?: Equip, onCol: boolean = false) {
return (
<div class="hero-status-one">
<span class="hero-status-label">
{core.getStatusLabel(v)}
{getStatusLabel(v)}
</span>
<div class="hero-status-value">
<span style="margin-right: 20%">{status}</span>
+26
View File
@@ -307,3 +307,29 @@ export function generateBinary(arr: boolean[]) {
});
return num;
}
/**
* 获得某个状态的中文名
* @param name 要获取的属性名
*/
export function getStatusLabel(name: string) {
return (
{
name: '名称',
lv: '等级',
hpmax: '生命回复',
hp: '生命',
manamax: '魔力上限',
mana: '额外攻击',
atk: '攻击',
def: '防御',
mdef: '智慧',
money: '金币',
exp: '经验',
point: '加点',
steps: '步数',
up: '升级',
none: '无'
}[name] || name
);
}