fix: Ref 게임 로직과 시나리오 풀 호환을 보정
월 경계, 전투 기술 상한, 연감과 베팅·설문·경매 정산 순서를 Ref 계약에 맞춘다.\n\n시나리오 일반 풀을 ENGINE mutation과 logical tick 기반으로 직렬화하고 914·915 catalog 및 조건부 100기 pool 실행 경계를 추가한다.\n\n경매 worker는 세대별 durable event만 만들고 ENGINE이 row lock 후 상태 전이와 정산을 단일 transaction으로 소유한다.
This commit is contained in:
@@ -21,16 +21,16 @@ export const itemModule: ItemModule = {
|
||||
reqSecu: 0,
|
||||
unique: false,
|
||||
onCalcStat: function (
|
||||
_context: GeneralActionContext | WarActionContext,
|
||||
context: GeneralActionContext | WarActionContext,
|
||||
statName: GeneralStatName | WarStatName,
|
||||
value: unknown,
|
||||
aux?: unknown
|
||||
): unknown {
|
||||
if (statName === 'strength') {
|
||||
const auxObj = aux as Record<string, unknown> | undefined;
|
||||
const year = resolveNumber(auxObj?.['year']);
|
||||
const startYear = resolveNumber(auxObj?.['startYear']);
|
||||
const maxTechLevel = resolveNumber(auxObj?.['maxTechLevel'], 12);
|
||||
const year = resolveNumber(context.time?.year, resolveNumber(auxObj?.['year']));
|
||||
const startYear = resolveNumber(context.time?.startYear, resolveNumber(auxObj?.['startYear']));
|
||||
const maxTechLevel = resolveNumber(context.maxTechLevel, resolveNumber(auxObj?.['maxTechLevel'], 12));
|
||||
const relYear = Math.max(0, year - startYear);
|
||||
const bonus = 5 + clamp(Math.floor(relYear / 4), 0, maxTechLevel);
|
||||
|
||||
|
||||
@@ -21,16 +21,16 @@ export const itemModule: ItemModule = {
|
||||
reqSecu: 0,
|
||||
unique: false,
|
||||
onCalcStat: function (
|
||||
_context: GeneralActionContext | WarActionContext,
|
||||
context: GeneralActionContext | WarActionContext,
|
||||
statName: GeneralStatName | WarStatName,
|
||||
value: unknown,
|
||||
aux?: unknown
|
||||
): unknown {
|
||||
if (statName === 'intelligence') {
|
||||
const auxObj = aux as Record<string, unknown> | undefined;
|
||||
const year = resolveNumber(auxObj?.['year']);
|
||||
const startYear = resolveNumber(auxObj?.['startYear']);
|
||||
const maxTechLevel = resolveNumber(auxObj?.['maxTechLevel'], 12);
|
||||
const year = resolveNumber(context.time?.year, resolveNumber(auxObj?.['year']));
|
||||
const startYear = resolveNumber(context.time?.startYear, resolveNumber(auxObj?.['startYear']));
|
||||
const maxTechLevel = resolveNumber(context.maxTechLevel, resolveNumber(auxObj?.['maxTechLevel'], 12));
|
||||
const relYear = Math.max(0, year - startYear);
|
||||
const bonus = 5 + clamp(Math.floor(relYear / 4), 0, maxTechLevel);
|
||||
|
||||
|
||||
@@ -21,16 +21,16 @@ export const itemModule: ItemModule = {
|
||||
reqSecu: 0,
|
||||
unique: false,
|
||||
onCalcStat: function (
|
||||
_context: GeneralActionContext | WarActionContext,
|
||||
context: GeneralActionContext | WarActionContext,
|
||||
statName: GeneralStatName | WarStatName,
|
||||
value: unknown,
|
||||
aux?: unknown
|
||||
): unknown {
|
||||
if (statName === 'leadership') {
|
||||
const auxObj = aux as Record<string, unknown> | undefined;
|
||||
const year = resolveNumber(auxObj?.['year']);
|
||||
const startYear = resolveNumber(auxObj?.['startYear']);
|
||||
const maxTechLevel = resolveNumber(auxObj?.['maxTechLevel'], 12);
|
||||
const year = resolveNumber(context.time?.year, resolveNumber(auxObj?.['year']));
|
||||
const startYear = resolveNumber(context.time?.startYear, resolveNumber(auxObj?.['startYear']));
|
||||
const maxTechLevel = resolveNumber(context.maxTechLevel, resolveNumber(auxObj?.['maxTechLevel'], 12));
|
||||
const relYear = Math.max(0, year - startYear);
|
||||
const bonus = 5 + clamp(Math.floor(relYear / 4), 0, maxTechLevel);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user