Expand campaign visual assets
This commit is contained in:
@@ -1,108 +1,6 @@
|
||||
import Phaser from 'phaser';
|
||||
import guanYuPortraitUrl from '../../assets/images/portraits/guan-yu.png';
|
||||
import jiangWeiPortraitUrl from '../../assets/images/portraits/jiang-wei.png';
|
||||
import liuBeiPortraitUrl from '../../assets/images/portraits/liu-bei.png';
|
||||
import simaYiPortraitUrl from '../../assets/images/portraits/sima-yi.png';
|
||||
import zhaoYunPortraitUrl from '../../assets/images/portraits/zhao-yun.png';
|
||||
import zhangFeiPortraitUrl from '../../assets/images/portraits/zhang-fei.png';
|
||||
import zhugeLiangPortraitUrl from '../../assets/images/portraits/zhuge-liang.png';
|
||||
import titleBackgroundUrl from '../../assets/images/taoyuan-oath-title.png';
|
||||
import caoCaoActionSheetUrl from '../../assets/images/units/unit-cao-cao-actions.png';
|
||||
import caoCaoUnitSheetUrl from '../../assets/images/units/unit-cao-cao.png';
|
||||
import faZhengActionSheetUrl from '../../assets/images/units/unit-fa-zheng-actions.png';
|
||||
import faZhengUnitSheetUrl from '../../assets/images/units/unit-fa-zheng.png';
|
||||
import gongZhiActionSheetUrl from '../../assets/images/units/unit-gong-zhi-actions.png';
|
||||
import gongZhiUnitSheetUrl from '../../assets/images/units/unit-gong-zhi.png';
|
||||
import guanYuActionSheetUrl from '../../assets/images/units/unit-guan-yu-actions.png';
|
||||
import guanYuUnitSheetUrl from '../../assets/images/units/unit-guan-yu.png';
|
||||
import huangQuanActionSheetUrl from '../../assets/images/units/unit-huang-quan-actions.png';
|
||||
import huangQuanUnitSheetUrl from '../../assets/images/units/unit-huang-quan.png';
|
||||
import huangZhongActionSheetUrl from '../../assets/images/units/unit-huang-zhong-actions.png';
|
||||
import huangZhongUnitSheetUrl from '../../assets/images/units/unit-huang-zhong.png';
|
||||
import jiangWeiActionSheetUrl from '../../assets/images/units/unit-jiang-wei-actions.png';
|
||||
import jiangWeiUnitSheetUrl from '../../assets/images/units/unit-jiang-wei.png';
|
||||
import liYanActionSheetUrl from '../../assets/images/units/unit-li-yan-actions.png';
|
||||
import liYanUnitSheetUrl from '../../assets/images/units/unit-li-yan.png';
|
||||
import liuBeiActionSheetUrl from '../../assets/images/units/unit-liu-bei-actions.png';
|
||||
import liuBeiUnitSheetUrl from '../../assets/images/units/unit-liu-bei.png';
|
||||
import luBuActionSheetUrl from '../../assets/images/units/unit-lu-bu-actions.png';
|
||||
import luBuUnitSheetUrl from '../../assets/images/units/unit-lu-bu.png';
|
||||
import luMengActionSheetUrl from '../../assets/images/units/unit-lu-meng-actions.png';
|
||||
import luMengUnitSheetUrl from '../../assets/images/units/unit-lu-meng.png';
|
||||
import maChaoActionSheetUrl from '../../assets/images/units/unit-ma-chao-actions.png';
|
||||
import maChaoUnitSheetUrl from '../../assets/images/units/unit-ma-chao.png';
|
||||
import maDaiActionSheetUrl from '../../assets/images/units/unit-ma-dai-actions.png';
|
||||
import maDaiUnitSheetUrl from '../../assets/images/units/unit-ma-dai.png';
|
||||
import maLiangActionSheetUrl from '../../assets/images/units/unit-ma-liang-actions.png';
|
||||
import maLiangUnitSheetUrl from '../../assets/images/units/unit-ma-liang.png';
|
||||
import mengHuoActionSheetUrl from '../../assets/images/units/unit-meng-huo-actions.png';
|
||||
import mengHuoUnitSheetUrl from '../../assets/images/units/unit-meng-huo.png';
|
||||
import pangTongActionSheetUrl from '../../assets/images/units/unit-pang-tong-actions.png';
|
||||
import pangTongUnitSheetUrl from '../../assets/images/units/unit-pang-tong.png';
|
||||
import rebelArcherActionSheetUrl from '../../assets/images/units/unit-rebel-archer-actions.png';
|
||||
import rebelArcherUnitSheetUrl from '../../assets/images/units/unit-rebel-archer.png';
|
||||
import rebelCavalryActionSheetUrl from '../../assets/images/units/unit-rebel-cavalry-actions.png';
|
||||
import rebelCavalryUnitSheetUrl from '../../assets/images/units/unit-rebel-cavalry.png';
|
||||
import rebelLeaderActionSheetUrl from '../../assets/images/units/unit-rebel-leader-actions.png';
|
||||
import rebelLeaderUnitSheetUrl from '../../assets/images/units/unit-rebel-leader.png';
|
||||
import rebelActionSheetUrl from '../../assets/images/units/unit-rebel-actions.png';
|
||||
import rebelUnitSheetUrl from '../../assets/images/units/unit-rebel.png';
|
||||
import nanmanInfantryActionSheetUrl from '../../assets/images/units/unit-nanman-infantry-actions.png';
|
||||
import nanmanInfantryUnitSheetUrl from '../../assets/images/units/unit-nanman-infantry.png';
|
||||
import nanmanOfficerActionSheetUrl from '../../assets/images/units/unit-nanman-officer-actions.png';
|
||||
import nanmanOfficerUnitSheetUrl from '../../assets/images/units/unit-nanman-officer.png';
|
||||
import nanmanShamanActionSheetUrl from '../../assets/images/units/unit-nanman-shaman-actions.png';
|
||||
import nanmanShamanUnitSheetUrl from '../../assets/images/units/unit-nanman-shaman.png';
|
||||
import shuArcherActionSheetUrl from '../../assets/images/units/unit-shu-archer-actions.png';
|
||||
import shuArcherUnitSheetUrl from '../../assets/images/units/unit-shu-archer.png';
|
||||
import shuCavalryActionSheetUrl from '../../assets/images/units/unit-shu-cavalry-actions.png';
|
||||
import shuCavalryUnitSheetUrl from '../../assets/images/units/unit-shu-cavalry.png';
|
||||
import shuInfantryActionSheetUrl from '../../assets/images/units/unit-shu-infantry-actions.png';
|
||||
import shuInfantryUnitSheetUrl from '../../assets/images/units/unit-shu-infantry.png';
|
||||
import shuOfficerActionSheetUrl from '../../assets/images/units/unit-shu-officer-actions.png';
|
||||
import shuOfficerUnitSheetUrl from '../../assets/images/units/unit-shu-officer.png';
|
||||
import shuSpearmanActionSheetUrl from '../../assets/images/units/unit-shu-spearman-actions.png';
|
||||
import shuSpearmanUnitSheetUrl from '../../assets/images/units/unit-shu-spearman.png';
|
||||
import shuStrategistActionSheetUrl from '../../assets/images/units/unit-shu-strategist-actions.png';
|
||||
import shuStrategistUnitSheetUrl from '../../assets/images/units/unit-shu-strategist.png';
|
||||
import simaYiActionSheetUrl from '../../assets/images/units/unit-sima-yi-actions.png';
|
||||
import simaYiUnitSheetUrl from '../../assets/images/units/unit-sima-yi.png';
|
||||
import wangPingActionSheetUrl from '../../assets/images/units/unit-wang-ping-actions.png';
|
||||
import wangPingUnitSheetUrl from '../../assets/images/units/unit-wang-ping.png';
|
||||
import weiArcherActionSheetUrl from '../../assets/images/units/unit-wei-archer-actions.png';
|
||||
import weiArcherUnitSheetUrl from '../../assets/images/units/unit-wei-archer.png';
|
||||
import weiCavalryActionSheetUrl from '../../assets/images/units/unit-wei-cavalry-actions.png';
|
||||
import weiCavalryUnitSheetUrl from '../../assets/images/units/unit-wei-cavalry.png';
|
||||
import weiInfantryActionSheetUrl from '../../assets/images/units/unit-wei-infantry-actions.png';
|
||||
import weiInfantryUnitSheetUrl from '../../assets/images/units/unit-wei-infantry.png';
|
||||
import weiOfficerActionSheetUrl from '../../assets/images/units/unit-wei-officer-actions.png';
|
||||
import weiOfficerUnitSheetUrl from '../../assets/images/units/unit-wei-officer.png';
|
||||
import weiStrategistActionSheetUrl from '../../assets/images/units/unit-wei-strategist-actions.png';
|
||||
import weiStrategistUnitSheetUrl from '../../assets/images/units/unit-wei-strategist.png';
|
||||
import weiYanActionSheetUrl from '../../assets/images/units/unit-wei-yan-actions.png';
|
||||
import weiYanUnitSheetUrl from '../../assets/images/units/unit-wei-yan.png';
|
||||
import wuArcherActionSheetUrl from '../../assets/images/units/unit-wu-archer-actions.png';
|
||||
import wuArcherUnitSheetUrl from '../../assets/images/units/unit-wu-archer.png';
|
||||
import wuCavalryActionSheetUrl from '../../assets/images/units/unit-wu-cavalry-actions.png';
|
||||
import wuCavalryUnitSheetUrl from '../../assets/images/units/unit-wu-cavalry.png';
|
||||
import wuInfantryActionSheetUrl from '../../assets/images/units/unit-wu-infantry-actions.png';
|
||||
import wuInfantryUnitSheetUrl from '../../assets/images/units/unit-wu-infantry.png';
|
||||
import wuOfficerActionSheetUrl from '../../assets/images/units/unit-wu-officer-actions.png';
|
||||
import wuOfficerUnitSheetUrl from '../../assets/images/units/unit-wu-officer.png';
|
||||
import wuStrategistActionSheetUrl from '../../assets/images/units/unit-wu-strategist-actions.png';
|
||||
import wuStrategistUnitSheetUrl from '../../assets/images/units/unit-wu-strategist.png';
|
||||
import wuYiActionSheetUrl from '../../assets/images/units/unit-wu-yi-actions.png';
|
||||
import wuYiUnitSheetUrl from '../../assets/images/units/unit-wu-yi.png';
|
||||
import yanYanActionSheetUrl from '../../assets/images/units/unit-yan-yan-actions.png';
|
||||
import yanYanUnitSheetUrl from '../../assets/images/units/unit-yan-yan.png';
|
||||
import yiJiActionSheetUrl from '../../assets/images/units/unit-yi-ji-actions.png';
|
||||
import yiJiUnitSheetUrl from '../../assets/images/units/unit-yi-ji.png';
|
||||
import zhangFeiActionSheetUrl from '../../assets/images/units/unit-zhang-fei-actions.png';
|
||||
import zhangFeiUnitSheetUrl from '../../assets/images/units/unit-zhang-fei.png';
|
||||
import zhaoYunActionSheetUrl from '../../assets/images/units/unit-zhao-yun-actions.png';
|
||||
import zhaoYunUnitSheetUrl from '../../assets/images/units/unit-zhao-yun.png';
|
||||
import zhugeLiangActionSheetUrl from '../../assets/images/units/unit-zhuge-liang-actions.png';
|
||||
import zhugeLiangUnitSheetUrl from '../../assets/images/units/unit-zhuge-liang.png';
|
||||
import { portraitAssets } from '../data/portraitAssets';
|
||||
import { storyBackgroundAssets } from '../data/storyAssets';
|
||||
|
||||
type UnitDirection = 'south' | 'east' | 'north' | 'west';
|
||||
@@ -118,56 +16,37 @@ const unitSheetRows: Record<UnitDirection, number> = {
|
||||
west: 3
|
||||
};
|
||||
|
||||
const sourceUnitSheets = [
|
||||
{ key: 'unit-liu-bei', url: liuBeiUnitSheetUrl, actionKey: 'unit-liu-bei-actions', actionUrl: liuBeiActionSheetUrl },
|
||||
{ key: 'unit-guan-yu', url: guanYuUnitSheetUrl, actionKey: 'unit-guan-yu-actions', actionUrl: guanYuActionSheetUrl },
|
||||
{ key: 'unit-zhang-fei', url: zhangFeiUnitSheetUrl, actionKey: 'unit-zhang-fei-actions', actionUrl: zhangFeiActionSheetUrl },
|
||||
{ key: 'unit-rebel', url: rebelUnitSheetUrl, actionKey: 'unit-rebel-actions', actionUrl: rebelActionSheetUrl },
|
||||
{ key: 'unit-rebel-archer', url: rebelArcherUnitSheetUrl, actionKey: 'unit-rebel-archer-actions', actionUrl: rebelArcherActionSheetUrl },
|
||||
{ key: 'unit-rebel-cavalry', url: rebelCavalryUnitSheetUrl, actionKey: 'unit-rebel-cavalry-actions', actionUrl: rebelCavalryActionSheetUrl },
|
||||
{ key: 'unit-rebel-leader', url: rebelLeaderUnitSheetUrl, actionKey: 'unit-rebel-leader-actions', actionUrl: rebelLeaderActionSheetUrl },
|
||||
{ key: 'unit-lu-bu', url: luBuUnitSheetUrl, actionKey: 'unit-lu-bu-actions', actionUrl: luBuActionSheetUrl },
|
||||
{ key: 'unit-cao-cao', url: caoCaoUnitSheetUrl, actionKey: 'unit-cao-cao-actions', actionUrl: caoCaoActionSheetUrl },
|
||||
{ key: 'unit-lu-meng', url: luMengUnitSheetUrl, actionKey: 'unit-lu-meng-actions', actionUrl: luMengActionSheetUrl },
|
||||
{ key: 'unit-meng-huo', url: mengHuoUnitSheetUrl, actionKey: 'unit-meng-huo-actions', actionUrl: mengHuoActionSheetUrl },
|
||||
{ key: 'unit-zhao-yun', url: zhaoYunUnitSheetUrl, actionKey: 'unit-zhao-yun-actions', actionUrl: zhaoYunActionSheetUrl },
|
||||
{ key: 'unit-zhuge-liang', url: zhugeLiangUnitSheetUrl, actionKey: 'unit-zhuge-liang-actions', actionUrl: zhugeLiangActionSheetUrl },
|
||||
{ key: 'unit-jiang-wei', url: jiangWeiUnitSheetUrl, actionKey: 'unit-jiang-wei-actions', actionUrl: jiangWeiActionSheetUrl },
|
||||
{ key: 'unit-sima-yi', url: simaYiUnitSheetUrl, actionKey: 'unit-sima-yi-actions', actionUrl: simaYiActionSheetUrl },
|
||||
{ key: 'unit-ma-liang', url: maLiangUnitSheetUrl, actionKey: 'unit-ma-liang-actions', actionUrl: maLiangActionSheetUrl },
|
||||
{ key: 'unit-yi-ji', url: yiJiUnitSheetUrl, actionKey: 'unit-yi-ji-actions', actionUrl: yiJiActionSheetUrl },
|
||||
{ key: 'unit-gong-zhi', url: gongZhiUnitSheetUrl, actionKey: 'unit-gong-zhi-actions', actionUrl: gongZhiActionSheetUrl },
|
||||
{ key: 'unit-huang-zhong', url: huangZhongUnitSheetUrl, actionKey: 'unit-huang-zhong-actions', actionUrl: huangZhongActionSheetUrl },
|
||||
{ key: 'unit-wei-yan', url: weiYanUnitSheetUrl, actionKey: 'unit-wei-yan-actions', actionUrl: weiYanActionSheetUrl },
|
||||
{ key: 'unit-pang-tong', url: pangTongUnitSheetUrl, actionKey: 'unit-pang-tong-actions', actionUrl: pangTongActionSheetUrl },
|
||||
{ key: 'unit-fa-zheng', url: faZhengUnitSheetUrl, actionKey: 'unit-fa-zheng-actions', actionUrl: faZhengActionSheetUrl },
|
||||
{ key: 'unit-wu-yi', url: wuYiUnitSheetUrl, actionKey: 'unit-wu-yi-actions', actionUrl: wuYiActionSheetUrl },
|
||||
{ key: 'unit-yan-yan', url: yanYanUnitSheetUrl, actionKey: 'unit-yan-yan-actions', actionUrl: yanYanActionSheetUrl },
|
||||
{ key: 'unit-li-yan', url: liYanUnitSheetUrl, actionKey: 'unit-li-yan-actions', actionUrl: liYanActionSheetUrl },
|
||||
{ key: 'unit-huang-quan', url: huangQuanUnitSheetUrl, actionKey: 'unit-huang-quan-actions', actionUrl: huangQuanActionSheetUrl },
|
||||
{ key: 'unit-ma-chao', url: maChaoUnitSheetUrl, actionKey: 'unit-ma-chao-actions', actionUrl: maChaoActionSheetUrl },
|
||||
{ key: 'unit-ma-dai', url: maDaiUnitSheetUrl, actionKey: 'unit-ma-dai-actions', actionUrl: maDaiActionSheetUrl },
|
||||
{ key: 'unit-wang-ping', url: wangPingUnitSheetUrl, actionKey: 'unit-wang-ping-actions', actionUrl: wangPingActionSheetUrl },
|
||||
{ key: 'unit-shu-infantry', url: shuInfantryUnitSheetUrl, actionKey: 'unit-shu-infantry-actions', actionUrl: shuInfantryActionSheetUrl },
|
||||
{ key: 'unit-shu-spearman', url: shuSpearmanUnitSheetUrl, actionKey: 'unit-shu-spearman-actions', actionUrl: shuSpearmanActionSheetUrl },
|
||||
{ key: 'unit-shu-archer', url: shuArcherUnitSheetUrl, actionKey: 'unit-shu-archer-actions', actionUrl: shuArcherActionSheetUrl },
|
||||
{ key: 'unit-shu-cavalry', url: shuCavalryUnitSheetUrl, actionKey: 'unit-shu-cavalry-actions', actionUrl: shuCavalryActionSheetUrl },
|
||||
{ key: 'unit-shu-strategist', url: shuStrategistUnitSheetUrl, actionKey: 'unit-shu-strategist-actions', actionUrl: shuStrategistActionSheetUrl },
|
||||
{ key: 'unit-shu-officer', url: shuOfficerUnitSheetUrl, actionKey: 'unit-shu-officer-actions', actionUrl: shuOfficerActionSheetUrl },
|
||||
{ key: 'unit-wei-infantry', url: weiInfantryUnitSheetUrl, actionKey: 'unit-wei-infantry-actions', actionUrl: weiInfantryActionSheetUrl },
|
||||
{ key: 'unit-wei-archer', url: weiArcherUnitSheetUrl, actionKey: 'unit-wei-archer-actions', actionUrl: weiArcherActionSheetUrl },
|
||||
{ key: 'unit-wei-cavalry', url: weiCavalryUnitSheetUrl, actionKey: 'unit-wei-cavalry-actions', actionUrl: weiCavalryActionSheetUrl },
|
||||
{ key: 'unit-wei-strategist', url: weiStrategistUnitSheetUrl, actionKey: 'unit-wei-strategist-actions', actionUrl: weiStrategistActionSheetUrl },
|
||||
{ key: 'unit-wei-officer', url: weiOfficerUnitSheetUrl, actionKey: 'unit-wei-officer-actions', actionUrl: weiOfficerActionSheetUrl },
|
||||
{ key: 'unit-wu-infantry', url: wuInfantryUnitSheetUrl, actionKey: 'unit-wu-infantry-actions', actionUrl: wuInfantryActionSheetUrl },
|
||||
{ key: 'unit-wu-archer', url: wuArcherUnitSheetUrl, actionKey: 'unit-wu-archer-actions', actionUrl: wuArcherActionSheetUrl },
|
||||
{ key: 'unit-wu-cavalry', url: wuCavalryUnitSheetUrl, actionKey: 'unit-wu-cavalry-actions', actionUrl: wuCavalryActionSheetUrl },
|
||||
{ key: 'unit-wu-strategist', url: wuStrategistUnitSheetUrl, actionKey: 'unit-wu-strategist-actions', actionUrl: wuStrategistActionSheetUrl },
|
||||
{ key: 'unit-wu-officer', url: wuOfficerUnitSheetUrl, actionKey: 'unit-wu-officer-actions', actionUrl: wuOfficerActionSheetUrl },
|
||||
{ key: 'unit-nanman-infantry', url: nanmanInfantryUnitSheetUrl, actionKey: 'unit-nanman-infantry-actions', actionUrl: nanmanInfantryActionSheetUrl },
|
||||
{ key: 'unit-nanman-shaman', url: nanmanShamanUnitSheetUrl, actionKey: 'unit-nanman-shaman-actions', actionUrl: nanmanShamanActionSheetUrl },
|
||||
{ key: 'unit-nanman-officer', url: nanmanOfficerUnitSheetUrl, actionKey: 'unit-nanman-officer-actions', actionUrl: nanmanOfficerActionSheetUrl }
|
||||
];
|
||||
type UnitSheetAsset = {
|
||||
key: string;
|
||||
url: string;
|
||||
actionKey: string;
|
||||
actionUrl: string;
|
||||
};
|
||||
|
||||
const unitSheetModules = import.meta.glob('../../assets/images/units/unit-*.png', {
|
||||
eager: true,
|
||||
import: 'default'
|
||||
}) as Record<string, string>;
|
||||
|
||||
function textureKeyFromPath(path: string) {
|
||||
const fileName = path.split('/').pop() ?? path;
|
||||
return fileName.replace(/\.png$/i, '');
|
||||
}
|
||||
|
||||
const unitSheetUrls = Object.fromEntries(
|
||||
Object.entries(unitSheetModules).map(([path, url]) => [textureKeyFromPath(path), url])
|
||||
);
|
||||
|
||||
const sourceUnitSheets: UnitSheetAsset[] = Object.entries(unitSheetUrls)
|
||||
.filter(([key]) => !key.endsWith('-actions'))
|
||||
.map(([key, url]) => ({
|
||||
key,
|
||||
url,
|
||||
actionKey: `${key}-actions`,
|
||||
actionUrl: unitSheetUrls[`${key}-actions`]
|
||||
}))
|
||||
.filter((sheet): sheet is UnitSheetAsset => Boolean(sheet.actionUrl))
|
||||
.sort((left, right) => left.key.localeCompare(right.key));
|
||||
|
||||
const animatedUnitSheets = sourceUnitSheets.map(({ key }) => ({ key }));
|
||||
|
||||
@@ -179,13 +58,7 @@ export class BootScene extends Phaser.Scene {
|
||||
preload() {
|
||||
this.load.image('title-taoyuan', titleBackgroundUrl);
|
||||
this.load.image('story-militia', storyBackgroundAssets['story-militia']);
|
||||
this.load.image('portrait-liu-bei', liuBeiPortraitUrl);
|
||||
this.load.image('portrait-guan-yu', guanYuPortraitUrl);
|
||||
this.load.image('portrait-zhang-fei', zhangFeiPortraitUrl);
|
||||
this.load.image('portrait-zhuge-liang', zhugeLiangPortraitUrl);
|
||||
this.load.image('portrait-zhao-yun', zhaoYunPortraitUrl);
|
||||
this.load.image('portrait-jiang-wei', jiangWeiPortraitUrl);
|
||||
this.load.image('portrait-sima-yi', simaYiPortraitUrl);
|
||||
Object.entries(portraitAssets).forEach(([key, url]) => this.load.image(`portrait-${key}`, url));
|
||||
|
||||
sourceUnitSheets.forEach(({ key, url, actionKey, actionUrl }) => {
|
||||
this.load.spritesheet(key, url, {
|
||||
|
||||
Reference in New Issue
Block a user