Expand campaign visual assets
This commit is contained in:
@@ -1,68 +1,54 @@
|
||||
import storyChaosUrl from '../../assets/images/story/01-yellow-turban-chaos.png';
|
||||
import storyLiuBeiUrl from '../../assets/images/story/02-liu-bei-resolve.png';
|
||||
import storyThreeHeroesUrl from '../../assets/images/story/03-three-heroes-meet.png';
|
||||
import storyMilitiaUrl from '../../assets/images/story/04-volunteer-militia.png';
|
||||
import storySortieUrl from '../../assets/images/story/05-first-sortie.png';
|
||||
import storyYellowPursuitUrl from '../../assets/images/story/06-yellow-turban-pursuit.png';
|
||||
import storyAntiDongPassUrl from '../../assets/images/story/07-anti-dong-pass.png';
|
||||
import storyXuzhouHandoverUrl from '../../assets/images/story/08-xuzhou-handover.png';
|
||||
import storyWanderingRoadUrl from '../../assets/images/story/09-wandering-road.png';
|
||||
import storyWolongCottageUrl from '../../assets/images/story/10-wolong-cottage.png';
|
||||
import storyRedCliffsFireUrl from '../../assets/images/story/11-red-cliffs-fire.png';
|
||||
import storyYizhouMountainPassUrl from '../../assets/images/story/12-yizhou-mountain-pass.png';
|
||||
import storyNorthernExpeditionUrl from '../../assets/images/story/13-northern-expedition.png';
|
||||
import storyNanzhongPacificationUrl from '../../assets/images/story/14-nanzhong-pacification.png';
|
||||
import storyYilingBaidiAftermathUrl from '../../assets/images/story/15-yiling-baidi-aftermath.png';
|
||||
import storyQishanRenewedOffensiveUrl from '../../assets/images/story/16-qishan-renewed-offensive.png';
|
||||
import storyTianshuiFrontUrl from '../../assets/images/story/17-tianshui-front.png';
|
||||
import storyJietingCrisisUrl from '../../assets/images/story/18-jieting-crisis.png';
|
||||
import storyChencangSiegeUrl from '../../assets/images/story/19-chencang-siege.png';
|
||||
import storyWuduYinpingUrl from '../../assets/images/story/20-wudu-yinping.png';
|
||||
import storyHanzhongRainDefenseUrl from '../../assets/images/story/21-hanzhong-rain-defense.png';
|
||||
import storyLuchengPursuitUrl from '../../assets/images/story/22-lucheng-pursuit.png';
|
||||
import storyWeishuiCampsUrl from '../../assets/images/story/23-weishui-camps.png';
|
||||
import storyWeishuiNorthbankUrl from '../../assets/images/story/24-weishui-northbank.png';
|
||||
import storyYizhouLuoRoadUrl from '../../assets/images/story/25-yizhou-luo-road.png';
|
||||
import storyChengduSurrenderUrl from '../../assets/images/story/26-chengdu-surrender.png';
|
||||
import storyJingzhouCrisisUrl from '../../assets/images/story/27-jingzhou-crisis.png';
|
||||
import storyNanzhongCapturesUrl from '../../assets/images/story/28-nanzhong-seven-captures.png';
|
||||
import storyFanCastleFloodUrl from '../../assets/images/story/29-fan-castle-flood.png';
|
||||
import storyMaichengIsolationUrl from '../../assets/images/story/30-maicheng-isolation.png';
|
||||
import storyYilingFireAttackUrl from '../../assets/images/story/31-yiling-fire-attack.png';
|
||||
import storyBaidiEntrustmentUrl from '../../assets/images/story/32-baidi-entrustment.png';
|
||||
const storyModules = import.meta.glob('../../assets/images/story/*.png', {
|
||||
eager: true,
|
||||
import: 'default'
|
||||
}) as Record<string, string>;
|
||||
|
||||
export const storyBackgroundAssets: Record<string, string> = {
|
||||
'story-chaos': storyChaosUrl,
|
||||
'story-liu-bei': storyLiuBeiUrl,
|
||||
'story-three-heroes': storyThreeHeroesUrl,
|
||||
'story-militia': storyMilitiaUrl,
|
||||
'story-sortie': storySortieUrl,
|
||||
'story-yellow-pursuit': storyYellowPursuitUrl,
|
||||
'story-anti-dong': storyAntiDongPassUrl,
|
||||
'story-xuzhou': storyXuzhouHandoverUrl,
|
||||
'story-wandering': storyWanderingRoadUrl,
|
||||
'story-wolong': storyWolongCottageUrl,
|
||||
'story-red-cliffs': storyRedCliffsFireUrl,
|
||||
'story-yizhou': storyYizhouMountainPassUrl,
|
||||
'story-northern': storyNorthernExpeditionUrl,
|
||||
'story-nanzhong': storyNanzhongPacificationUrl,
|
||||
'story-yiling-baidi': storyYilingBaidiAftermathUrl,
|
||||
'story-qishan-renewed': storyQishanRenewedOffensiveUrl,
|
||||
'story-tianshui-front': storyTianshuiFrontUrl,
|
||||
'story-jieting-crisis': storyJietingCrisisUrl,
|
||||
'story-chencang-siege': storyChencangSiegeUrl,
|
||||
'story-wudu-yinping': storyWuduYinpingUrl,
|
||||
'story-hanzhong-rain': storyHanzhongRainDefenseUrl,
|
||||
'story-lucheng-pursuit': storyLuchengPursuitUrl,
|
||||
'story-weishui-camps': storyWeishuiCampsUrl,
|
||||
'story-weishui-northbank': storyWeishuiNorthbankUrl,
|
||||
'story-yizhou-luo-road': storyYizhouLuoRoadUrl,
|
||||
'story-chengdu-surrender': storyChengduSurrenderUrl,
|
||||
'story-jingzhou-crisis': storyJingzhouCrisisUrl,
|
||||
'story-nanzhong-captures': storyNanzhongCapturesUrl,
|
||||
'story-fan-castle-flood': storyFanCastleFloodUrl,
|
||||
'story-maicheng-isolation': storyMaichengIsolationUrl,
|
||||
'story-yiling-fire-attack': storyYilingFireAttackUrl,
|
||||
'story-baidi-entrustment': storyBaidiEntrustmentUrl,
|
||||
'story-resolve': storyLiuBeiUrl
|
||||
const storyAssetAliases: Record<string, string> = {
|
||||
'story-chaos': 'story-yellow-turban-chaos',
|
||||
'story-liu-bei': 'story-liu-bei-resolve',
|
||||
'story-three-heroes': 'story-three-heroes-meet',
|
||||
'story-militia': 'story-volunteer-militia',
|
||||
'story-sortie': 'story-first-sortie',
|
||||
'story-yellow-pursuit': 'story-yellow-turban-pursuit',
|
||||
'story-anti-dong': 'story-anti-dong-pass',
|
||||
'story-xuzhou': 'story-xuzhou-handover',
|
||||
'story-wandering': 'story-wandering-road',
|
||||
'story-wolong': 'story-wolong-cottage',
|
||||
'story-red-cliffs': 'story-red-cliffs-fire',
|
||||
'story-yizhou': 'story-yizhou-mountain-pass',
|
||||
'story-northern': 'story-northern-expedition',
|
||||
'story-nanzhong': 'story-nanzhong-pacification',
|
||||
'story-yiling-baidi': 'story-yiling-baidi-aftermath',
|
||||
'story-qishan-renewed': 'story-qishan-renewed-offensive',
|
||||
'story-hanzhong-rain': 'story-hanzhong-rain-defense',
|
||||
'story-nanzhong-captures': 'story-nanzhong-seven-captures',
|
||||
'story-resolve': 'story-liu-bei-resolve'
|
||||
};
|
||||
|
||||
function storyKeyFromPath(path: string) {
|
||||
const fileName = path.split('/').pop() ?? path;
|
||||
const slug = fileName.replace(/\.png$/i, '').replace(/^\d+-/, '');
|
||||
return `story-${slug}`;
|
||||
}
|
||||
|
||||
const discoveredStoryAssets = Object.fromEntries(
|
||||
Object.entries(storyModules).map(([path, url]) => [storyKeyFromPath(path), url])
|
||||
);
|
||||
|
||||
export const storyBackgroundAssets: Record<string, string> = { ...discoveredStoryAssets };
|
||||
|
||||
Object.entries(storyAssetAliases).forEach(([alias, target]) => {
|
||||
const targetUrl = storyBackgroundAssets[target];
|
||||
if (targetUrl) {
|
||||
storyBackgroundAssets[alias] = targetUrl;
|
||||
}
|
||||
});
|
||||
|
||||
export function storyBackgroundKeysFor(baseKey: string) {
|
||||
const prefix = `${baseKey}-`;
|
||||
const keys = Object.keys(storyBackgroundAssets)
|
||||
.filter((key) => key === baseKey || key.startsWith(prefix))
|
||||
.sort();
|
||||
|
||||
return Array.from(new Set(keys));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user