fix: align scenario 2400 battle replay parity

This commit is contained in:
2026-08-05 03:08:12 +00:00
parent bbb6de6971
commit 0dc860feee
12 changed files with 668 additions and 51 deletions
@@ -5,7 +5,7 @@ import type { WarUnit } from '@sammo-ts/logic/war/units.js';
export class che_격노시도 extends BaseWarUnitTrigger {
constructor(unit: WarUnit, raiseType: number = 0) {
super(unit, TriggerPriority.Pre + 300, raiseType);
super(unit, TriggerPriority.Body + 400, raiseType);
}
protected actionWar(
@@ -40,7 +40,7 @@ export class che_격노시도 extends BaseWarUnitTrigger {
export class che_격노발동 extends BaseWarUnitTrigger {
constructor(unit: WarUnit, raiseType: number = 0) {
super(unit, TriggerPriority.Post + 450, raiseType);
super(unit, TriggerPriority.Post + 600, raiseType);
}
protected actionWar(
@@ -51,7 +51,7 @@ export class che_계략시도 extends BaseWarUnitTrigger {
const general = self.getGeneral();
let trialProbability =
(self.getComputedStat('intelligence', general.stats.intelligence) / 100) *
(self.getComputedStat('intelligence', general.stats.intelligence, { truncate: false }) / 100) *
self.getCrewType().magicCoef;
trialProbability = self
.getActionPipeline()
@@ -1,3 +1,4 @@
import { JosaUtil } from '@sammo-ts/common';
import { LogFormat } from '@sammo-ts/logic/logging/types.js';
import { TriggerPriority } from '@sammo-ts/logic/triggers/core.js';
import { BaseWarUnitTrigger } from '@sammo-ts/logic/war/triggers.js';
@@ -7,7 +8,7 @@ export class che_반계시도 extends BaseWarUnitTrigger {
private readonly prob: number;
constructor(unit: WarUnit, prob = 0.4) {
super(unit, TriggerPriority.Pre + 200);
super(unit, TriggerPriority.Body + 300);
this.prob = prob;
}
@@ -37,7 +38,7 @@ export class che_반계시도 extends BaseWarUnitTrigger {
export class che_반계발동 extends BaseWarUnitTrigger {
constructor(unit: WarUnit) {
super(unit, TriggerPriority.Post + 150);
super(unit, TriggerPriority.Post + 250);
}
protected actionWar(
@@ -56,12 +57,15 @@ export class che_반계발동 extends BaseWarUnitTrigger {
}
const [opposeMagic, damage] = magicData;
const particle = JosaUtil.pick(opposeMagic, '을');
self.getLogger().pushGeneralBattleDetailLog(
`<C>반계</>로 상대의 <D>${opposeMagic}</> 되돌렸다!`,
`<C>반계</>로 상대의 <D>${opposeMagic}</>${particle} 되돌렸다!`,
LogFormat.PLAIN
);
oppose.getLogger().pushGeneralBattleDetailLog(`<D>${opposeMagic}</>을 <R>역으로</> 당했다!`, LogFormat.PLAIN);
oppose
.getLogger()
.pushGeneralBattleDetailLog(`<D>${opposeMagic}</>${particle} <R>역으로</> 당했다!`, LogFormat.PLAIN);
self.multiplyWarPowerMultiply(damage);
@@ -47,8 +47,9 @@ export class che_위압발동 extends BaseWarUnitTrigger {
return true;
}
oppose.getLogger().pushGeneralBattleDetailLog('상대에게 <R>위압</>받았다!', LogFormat.PLAIN);
self.getLogger().pushGeneralBattleDetailLog('상대에게 <C>위압</>을 줬다!', LogFormat.PLAIN);
// Preserve Ref's historical extra closing marker in the rendered log.
oppose.getLogger().pushGeneralBattleDetailLog('상대에게 <R>위압</>받았다!</>', LogFormat.PLAIN);
self.getLogger().pushGeneralBattleDetailLog('상대에게 <C>위압</>을 줬다!</>', LogFormat.PLAIN);
oppose.setWarPowerMultiply(0);
if (canAddAtmos(oppose)) {
oppose.addAtmos(-5);