NPC와 알림 메시지의 장수 아이콘 경로를 공통 처리

This commit is contained in:
2026-09-07 15:28:24 +00:00
parent d57fd3e553
commit d8c9a63915
11 changed files with 116 additions and 13 deletions
+2 -1
View File
@@ -1,3 +1,4 @@
import { resolveMessageTargetIcon } from '@sammo-ts/logic';
import { randomUUID } from 'node:crypto';
import { createGamePostgresConnector, GamePrisma, type GamePrismaClient } from '@sammo-ts/infra';
@@ -106,7 +107,7 @@ export const buildAuctionOutbidRefundMessage = (options: {
nationId: options.bidder.nationId,
nationName: options.nation?.name ?? '재야',
color: options.nation?.color ?? '#000000',
icon: options.bidder.picture ?? '',
icon: resolveMessageTargetIcon(options.bidder),
},
text: `${options.auctionId}${options.title ?? '경매'}에 상회입찰자가 나타났습니다.`,
time: new Date(options.time.getTime()),
+2 -1
View File
@@ -1,3 +1,4 @@
import { resolveMessageTargetIcon } from '@sammo-ts/logic';
import { createGamePostgresConnector, GamePrisma } from '@sammo-ts/infra';
import { ActionLogger, ItemLoader, LogFormat, isItemKey, type MessageDraft } from '@sammo-ts/logic';
import { resolveLegacyCompatibleUniqueConfig } from '@sammo-ts/logic/rewards/legacyUniqueItemPool.js';
@@ -124,7 +125,7 @@ export const buildAuctionBidderSystemMessage = (options: {
nationId: options.bidder.nationId,
nationName: options.nation?.name ?? '재야',
color: options.nation?.color ?? '#000000',
icon: options.bidder.picture ?? '',
icon: resolveMessageTargetIcon(options.bidder),
},
text: options.text,
time: new Date(options.time.getTime()),
@@ -1,3 +1,4 @@
import { resolveMessageTargetIcon } from '@sammo-ts/logic';
import { LogCategory, LogFormat, LogScope } from '@sammo-ts/logic';
import type { InMemoryTurnWorld } from './inMemoryWorld.js';
@@ -127,7 +128,7 @@ export const createOpenNationBettingHandler = (options: {
nationId: general.nationId,
nationName: nation?.name ?? '재야',
color: nation?.color ?? '#000000',
icon: general.picture ?? '',
icon: resolveMessageTargetIcon(general),
},
text,
time: now,
@@ -1,3 +1,4 @@
import { resolveMessageTargetIcon } from '@sammo-ts/logic';
import type {
ActionContextBase,
ActionContextBuilder,
@@ -2121,7 +2122,7 @@ export const createReservedTurnHandler = async (options: {
nationId: currentGeneral.nationId,
nationName: currentNation?.name ?? '재야',
color: currentNation?.color ?? '#000000',
icon: currentGeneral.picture ?? '',
icon: resolveMessageTargetIcon(currentGeneral),
};
messages.push({
msgType: 'public',
@@ -1,3 +1,4 @@
import { resolveMessageTargetIcon } from '@sammo-ts/logic';
import { createHash } from 'node:crypto';
import { asNumber, asRecord, JosaUtil } from '@sammo-ts/common';
@@ -156,7 +157,7 @@ export const createUnificationHandler = (options: {
nationId: winner.id,
nationName: winner.name,
color: winner.color,
icon: recipient.picture ?? '',
icon: resolveMessageTargetIcon(recipient),
},
text: `이벤트 게임으로 이민족[${invader.difficulty}]을 소환`,
time: context.turnTime,
@@ -1,3 +1,4 @@
import { resolveMessageTargetIcon } from '@sammo-ts/logic';
import { areSeasonRecordsFinalized } from './seasonRecords.js';
import { asRecord, HALL_OF_FAME_TYPES, resolveLegacyTextColor, type HallOfFameType } from '@sammo-ts/common';
import {
@@ -246,7 +247,7 @@ const cancelPendingUniqueAuctions = async (
nationId: bidder.nationId,
nationName: nation?.name ?? '재야',
color: nation?.color ?? '#000000',
icon: bidder.picture ?? '',
icon: resolveMessageTargetIcon(bidder),
},
text: `${planned.auctionId}${planned.title}가 취소되었습니다.`,
time: input.completedAt,