mirror of
https://github.com/motajs/template.git
synced 2026-11-02 23:14:34 +08:00
This commit is contained in:
1 parent
dfe4be562e
commit
1a569804d8
33 files changed
+753
-908
No files matched your search
@@ -1,4 +1,9 @@
|
||||
import { DamageEnemy, ensureFloorDamage, getEnemy } from '@user/data-state';
|
||||
import {
|
||||
DamageEnemy,
|
||||
ensureFloorDamage,
|
||||
getEnemy,
|
||||
state
|
||||
} from '@user/data-state';
|
||||
import { hook } from '@user/data-base';
|
||||
import { Patch, PatchClass } from '@motajs/legacy-common';
|
||||
import { isNil } from 'lodash-es';
|
||||
@@ -193,7 +198,8 @@ export function patchBattle() {
|
||||
|
||||
// 仇恨
|
||||
if (info.special.has(17)) {
|
||||
core.setFlag('hatred', core.getFlag('hatred', 0) / 2);
|
||||
const hatred = state.flags.getFieldValueDefaults('hatred', 0);
|
||||
core.setFlag('hatred', hatred / 2);
|
||||
} else {
|
||||
core.addFlag('hatred', core.values.hatred);
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ export function patchFlags(state: ICoreState) {
|
||||
const patch = new Patch(PatchClass.Control);
|
||||
const flags = state.flags;
|
||||
patch.add('setFlag', (name, value) => {
|
||||
logger.warn(56, 'core.setFlag', 'IFlagSystem');
|
||||
logger.warn(56, 'core.setFlag', 'state.flags.setFieldValue');
|
||||
if (value === null || value === undefined) {
|
||||
flags.deleteField(name);
|
||||
} else {
|
||||
@@ -17,7 +17,7 @@ export function patchFlags(state: ICoreState) {
|
||||
}
|
||||
});
|
||||
patch.add('getFlag', <T>(name: string, defaultValue?: T) => {
|
||||
logger.warn(56, 'core.getFlag', 'IFlagSystem');
|
||||
logger.warn(56, 'core.getFlag', 'state.flags.getFieldValueDefaults');
|
||||
if (defaultValue === undefined) {
|
||||
return flags.getFieldValue<T>(name);
|
||||
} else {
|
||||
@@ -25,14 +25,57 @@ export function patchFlags(state: ICoreState) {
|
||||
}
|
||||
});
|
||||
patch.add('addFlag', (name, value) => {
|
||||
logger.warn(56, 'core.addFlag', 'IFlagSystem');
|
||||
logger.warn(56, 'core.addFlag', 'state.flags.addFieldValue');
|
||||
if (typeof value !== 'number') return;
|
||||
flags.addFieldValue(name, value);
|
||||
});
|
||||
patch.add('hasFlag', name => {
|
||||
logger.warn(56, 'core.hasFlag', 'state.flags.occupied');
|
||||
return flags.occupied(name);
|
||||
});
|
||||
patch.add('removeFlag', name => {
|
||||
logger.warn(56, 'core.removeFlag', 'state.flags.deleteField');
|
||||
flags.deleteField(name);
|
||||
});
|
||||
|
||||
const switchName = (
|
||||
x?: number,
|
||||
y?: number,
|
||||
floorId?: string,
|
||||
name?: string
|
||||
) => {
|
||||
return (
|
||||
(floorId ?? core.status.floorId ?? ':f') +
|
||||
'@' +
|
||||
(x ?? 'x') +
|
||||
'@' +
|
||||
(y ?? 'y') +
|
||||
'@' +
|
||||
name
|
||||
);
|
||||
};
|
||||
|
||||
patch.add('getSwitch', (x, y, floorId, name, defaultValue) => {
|
||||
logger.warn(56, 'core.getSwitch', 'state.flags.getFieldValue');
|
||||
return flags.getFieldValueDefaults(
|
||||
switchName(x, y, floorId, name),
|
||||
defaultValue
|
||||
);
|
||||
});
|
||||
patch.add('setSwitch', (x, y, floorId, name, value) => {
|
||||
logger.warn(56, 'core.setSwitch', 'state.flags.setFieldValue');
|
||||
flags.setFieldValue(switchName(x, y, floorId, name), value);
|
||||
});
|
||||
patch.add('addSwitch', (x, y, floorId, name, value) => {
|
||||
logger.warn(56, 'core.addSwitch', 'state.flags.addFieldValue');
|
||||
flags.addFieldValue(switchName(x, y, floorId, name), value ?? 0);
|
||||
});
|
||||
patch.add('hasSwitch', (x, y, floorId, name) => {
|
||||
logger.warn(56, 'core.hasSwitch', 'state.flags.occupied');
|
||||
return flags.occupied(switchName(x, y, floorId, name));
|
||||
});
|
||||
patch.add('removeSwitch', (x, y, floorId, name) => {
|
||||
logger.warn(56, 'core.removeSwitch', 'state.flags.deleteField');
|
||||
flags.deleteField(switchName(x, y, floorId, name));
|
||||
});
|
||||
}
|
||||
@@ -8,12 +8,14 @@ export function patchHero(state: ICoreState) {
|
||||
const attr = state.hero.getModifiableAttribute();
|
||||
const proxy = new Proxy(hero, {
|
||||
set(target, p, newValue) {
|
||||
logger.warn(56, 'core.status.hero', 'state.hero');
|
||||
target[p] = newValue;
|
||||
// @ts-expect-error 旧样板无法处理此类型
|
||||
attr.setBaseAttribute(p, newValue);
|
||||
return true;
|
||||
},
|
||||
get(_, p) {
|
||||
logger.warn(56, 'core.status.hero', 'state.hero');
|
||||
// @ts-expect-error 旧样板无法处理此类型
|
||||
return attr.getBaseAttribute(p);
|
||||
}
|
||||
@@ -23,11 +25,11 @@ export function patchHero(state: ICoreState) {
|
||||
// 不允许再使用旧样板的 flags 接口
|
||||
const flagsProxy = new Proxy(core.status.hero.flags, {
|
||||
set() {
|
||||
logger.error(54);
|
||||
logger.error(54, 'flags', 'state.flags');
|
||||
return false;
|
||||
},
|
||||
get() {
|
||||
logger.error(54);
|
||||
logger.error(54, 'flags', 'state.flags');
|
||||
return undefined;
|
||||
}
|
||||
});
|
||||
|
||||
Reference in new issue
Block a user