mirror of
https://github.com/motajs/template.git
synced 2026-08-15 05:08:58 +08:00
Compare commits
1 Commits
d60000d16f
...
3c0d8cc138
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3c0d8cc138 |
@ -113,12 +113,12 @@ export class HeroAttribute<THero> implements IHeroAttribute<THero> {
|
|||||||
return this.finalAttribute[name];
|
return this.finalAttribute[name];
|
||||||
}
|
}
|
||||||
|
|
||||||
set<K extends keyof THero>(name: K, value: THero[K]): void {
|
setBaseAttribute<K extends keyof THero>(name: K, value: THero[K]): void {
|
||||||
this.attribute[name] = value;
|
this.attribute[name] = value;
|
||||||
this.markDirty(name);
|
this.markDirty(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
add<K extends keyof SelectType<THero, number>>(
|
addBaseAttribute<K extends keyof SelectType<THero, number>>(
|
||||||
name: K,
|
name: K,
|
||||||
value: number
|
value: number
|
||||||
): void {
|
): void {
|
||||||
@ -126,22 +126,6 @@ export class HeroAttribute<THero> implements IHeroAttribute<THero> {
|
|||||||
this.markDirty(name);
|
this.markDirty(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
mul<K extends keyof SelectType<THero, number>>(
|
|
||||||
name: K,
|
|
||||||
value: number
|
|
||||||
): void {
|
|
||||||
(this.attribute[name] as number) *= value;
|
|
||||||
this.markDirty(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
div<K extends keyof SelectType<THero, number>>(
|
|
||||||
name: K,
|
|
||||||
value: number
|
|
||||||
): void {
|
|
||||||
(this.attribute[name] as number) /= value;
|
|
||||||
this.markDirty(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
addModifier<K extends keyof THero>(
|
addModifier<K extends keyof THero>(
|
||||||
name: K,
|
name: K,
|
||||||
modifier: IHeroModifier<THero[K], unknown>
|
modifier: IHeroModifier<THero[K], unknown>
|
||||||
|
|||||||
@ -110,28 +110,17 @@ export interface IHeroAttribute<THero> extends IReadonlyHeroAttribute<THero> {
|
|||||||
* @param name 属性名称
|
* @param name 属性名称
|
||||||
* @param value 要设置为的值
|
* @param value 要设置为的值
|
||||||
*/
|
*/
|
||||||
set<K extends keyof THero>(name: K, value: THero[K]): void;
|
setBaseAttribute<K extends keyof THero>(name: K, value: THero[K]): void;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 增减勇士属性
|
* 增减勇士属性
|
||||||
* @param name 属性名称
|
* @param name 属性名称
|
||||||
* @param value 属性增减值
|
* @param value 属性增减值
|
||||||
*/
|
*/
|
||||||
add<K extends SelectKey<THero, number>>(name: K, value: number): void;
|
addBaseAttribute<K extends SelectKey<THero, number>>(
|
||||||
|
name: K,
|
||||||
/**
|
value: number
|
||||||
* 将勇士属性乘以某一个值
|
): void;
|
||||||
* @param name 属性名称
|
|
||||||
* @param value 属性乘数
|
|
||||||
*/
|
|
||||||
mul<K extends SelectKey<THero, number>>(name: K, value: number): void;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 将勇士属性除以某一个值
|
|
||||||
* @param name 属性名称
|
|
||||||
* @param value 属性除数
|
|
||||||
*/
|
|
||||||
div<K extends SelectKey<THero, number>>(name: K, value: number): void;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 向一个属性添加属性修饰器
|
* 向一个属性添加属性修饰器
|
||||||
|
|||||||
@ -11,7 +11,7 @@ export function patchHero(state: ICoreState) {
|
|||||||
logger.warn(56, 'core.status.hero', 'state.hero');
|
logger.warn(56, 'core.status.hero', 'state.hero');
|
||||||
target[p] = newValue;
|
target[p] = newValue;
|
||||||
// @ts-expect-error 旧样板无法处理此类型
|
// @ts-expect-error 旧样板无法处理此类型
|
||||||
attr.set(p, newValue);
|
attr.setBaseAttribute(p, newValue);
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
get(_, p) {
|
get(_, p) {
|
||||||
|
|||||||
@ -215,7 +215,7 @@ export class DamageContext<TEnemy, THero> implements IDamageContext<
|
|||||||
let left = currentValue;
|
let left = currentValue;
|
||||||
let right = upperLimit;
|
let right = upperLimit;
|
||||||
|
|
||||||
hero.set(attribute, right as THero[typeof attribute]);
|
hero.setBaseAttribute(attribute, right as THero[typeof attribute]);
|
||||||
|
|
||||||
let targetInfo = this.calculator!.calculate(handler);
|
let targetInfo = this.calculator!.calculate(handler);
|
||||||
if (targetInfo.damage >= referenceDamage) return null;
|
if (targetInfo.damage >= referenceDamage) return null;
|
||||||
@ -223,7 +223,7 @@ export class DamageContext<TEnemy, THero> implements IDamageContext<
|
|||||||
let iter = 0;
|
let iter = 0;
|
||||||
while (iter++ < maxIterations) {
|
while (iter++ < maxIterations) {
|
||||||
const middle = Math.floor((left + right) / 2);
|
const middle = Math.floor((left + right) / 2);
|
||||||
hero.set(attribute, middle as THero[typeof attribute]);
|
hero.setBaseAttribute(attribute, middle as THero[typeof attribute]);
|
||||||
const middleInfo = this.calculator!.calculate(handler);
|
const middleInfo = this.calculator!.calculate(handler);
|
||||||
|
|
||||||
if (middleInfo.damage < referenceDamage) {
|
if (middleInfo.damage < referenceDamage) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user