2026-06-07 20:23:45 +08:00

205 lines
11 KiB
C#

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using RuntimeData;
using Logic;
namespace TH1Resource
{
public readonly struct MoveHighlightVisual
{
public readonly Sprite Sprite;
public readonly Color Color;
public MoveHighlightVisual(Sprite sprite, Color color)
{
Sprite = sprite;
Color = color;
}
}
public class SpriteCache
{
public Dictionary<string, Sprite> GroundSprites = new();
public Dictionary<string, Sprite> ForestSprites = new();
public Dictionary<string, Sprite> MountainSprites = new();
public Sprite WaterSprite;
public Sprite OceanSprite;
public Dictionary<string, Sprite> Roads = new();
public Sprite UnitInfoSelf;
public Sprite UnitInfoEnemy;
//-------UI相关--------
public Sprite TechCompleteBackground;
public Sprite TechLockedBackground;
public Sprite TechAvailableBackground;
public Sprite TH1Icon_ActionDefense;
public Sprite AchievementStar;
public Sprite AchievementStarGray;
public Sprite ActionBGAvailable;
public Sprite ActionBGExpensive;
public Sprite ActionBGUnavailable;
public Sprite Ally;
public Sprite BreakAlly;
public Sprite Embassy;
public Sprite BreakEmbassy;
public Sprite BubbleActionUpgrade;
public Sprite BubbleActionCapture;
public Sprite BubbleActionTreasure;
public Sprite BubbleActionStarfish;
public Sprite CommonBG_CircleGrey;
public Sprite CommonBG_CircleBlue;
public Sprite CommonBG_CircleGreen;
public Dictionary<MoveHighlightType, MoveHighlightVisual> MoveHighlightVisuals = new();
//-------- GridVFX 相关 --------
public Sprite GridVFXDie;
public Sprite GridVFXCounterDie;
public Sprite GridVFXROYALFLAMES;
public Sprite GridVFXTEWI;
public Sprite GridVFXCoin;
public Sprite GridVFXKAGUYA;
public Sprite GridVFXHeal;
public Sprite GridVFXConnect;
public Sprite GridVFXTreasure;
public Sprite GridVFXRedMistCreate;
public Sprite GridVFXSakuyaGuard;
public Sprite GridVFXLucky;
public Sprite GridVFXBigLucky;
public Sprite GridVFXUnlucky;
public Sprite GridVFXBigUnlucky;
public Sprite GridVFXLuckyText;
public Sprite GridVFXBigLuckyText;
public Sprite GridVFXUnluckyText;
public Sprite GridVFXBigUnluckyText;
public Sprite GridVFXLuxury;
//-------- Unit 相关 --------
public Sprite MeilingZzz;
public Sprite KanakoSit;
public Sprite UtsuhoBoom;
public Dictionary<ChessType, Sprite> ChessSpriteDict = new();
public void Init()
{
for (int i = 0; i < 9; i++)
{
Roads["Road"+i] = Resources.Load<Sprite>($"ArtResources/TH1Miscs/TH1Misc_Road{i}");
Roads["WaterRoad"+i] = Resources.Load<Sprite>($"ArtResources/TH1Miscs/TH1Misc_WaterRoad{i}");
}
UnitInfoSelf = Resources.Load<Sprite>("ArtResources/TH1UI/InGame/UnitInfoSelf");
UnitInfoEnemy = Resources.Load<Sprite>("ArtResources/TH1UI/InGame/UnitInfoEnemy");
//--------UI--------
TechCompleteBackground = Resources.Load<Sprite>("ArtResources/TH1UI/TechTree/TH1Tech_GreenCircle");
TechLockedBackground = Resources.Load<Sprite>("ArtResources/TH1UI/TechTree/TH1Tech_DarkCircle");
TechAvailableBackground = Resources.Load<Sprite>("ArtResources/TH1UI/TechTree/TH1Tech_BlueCircle");
TH1Icon_ActionDefense = Resources.Load<Sprite>("TH1UI/Icon/Action/TH1Icon_ActionDefense");
AchievementStar = Resources.Load<Sprite>("ArtResources/TH1UI/Common/UILibraryStar");
AchievementStarGray = Resources.Load<Sprite>("ArtResources/TH1UI/Common/UILibraryStarGray");
ActionBGAvailable = Resources.Load<Sprite>("ArtResources/TH1UI/Common/bgAvailable");
ActionBGExpensive = Resources.Load<Sprite>("ArtResources/TH1UI/Common/bgExpensive");
ActionBGUnavailable = Resources.Load<Sprite>("ArtResources/TH1UI/Common/bgUnavailable");
Ally = Resources.Load<Sprite>("TH1UI/Icon/Action/CircleAction256x256/Ally_256");
BreakAlly = Resources.Load<Sprite>("TH1UI/Icon/Action/CircleAction256x256/BreakAlly_256");
Embassy = Resources.Load<Sprite>("TH1UI/Icon/Action/CircleAction256x256/Embassy_256");
BreakEmbassy = Resources.Load<Sprite>("TH1UI/Icon/Action/CircleAction256x256/BreakEmbassy_256");
ChessSpriteDict[ChessType.None] = Resources.Load<Sprite>("TH1UI/Icon/ChessIcon/ChessIcon_Knights");
ChessSpriteDict[ChessType.King] = Resources.Load<Sprite>("TH1UI/Icon/ChessIcon/ChessIcon_King");
ChessSpriteDict[ChessType.Queen] = Resources.Load<Sprite>("TH1UI/Icon/ChessIcon/ChessIcon_Queen");
ChessSpriteDict[ChessType.Bishop] = Resources.Load<Sprite>("TH1UI/Icon/ChessIcon/ChessIcon_Bishop");
ChessSpriteDict[ChessType.Knight] = Resources.Load<Sprite>("TH1UI/Icon/ChessIcon/ChessIcon_Knights");
ChessSpriteDict[ChessType.Rook] = Resources.Load<Sprite>("TH1UI/Icon/ChessIcon/ChessIcon_Rook");
BubbleActionUpgrade = Resources.Load<Sprite>("TH1UI/Icon/Action/CircleAction256x256/TH1Icon_BubbleActionUpgrade_256");
BubbleActionCapture = Resources.Load<Sprite>("TH1UI/Icon/Action/CircleAction256x256/TH1Icon_BubbleActionCapture_256");
BubbleActionTreasure = Resources.Load<Sprite>("TH1UI/Icon/Action/CircleAction256x256/TH1Icon_BubbleActionTreasure_256");
BubbleActionStarfish = Resources.Load<Sprite>("TH1UI/Icon/Action/CircleAction256x256/TH1Icon_BubbleActionStarfish_256");
CommonBG_CircleGrey = Resources.Load<Sprite>("TH1UI/Common/CommonBG/CommonCircleGrey");
CommonBG_CircleBlue = Resources.Load<Sprite>("TH1UI/Common/CommonBG/CommonCircleBlue");
CommonBG_CircleGreen = Resources.Load<Sprite>("TH1UI/Common/CommonBG/CommonCircleGreen");
Color moveHighlightRed = new Color(1f, 0.35f, 0.35f, 1f);
Color moveHighlightDeepBlue = new Color(0.12f, 0.34f, 0.9f, 1f);
Color moveHighlightGreen = new Color(0.35f, 0.9f, 0.45f, 1f);
MoveHighlightVisuals[MoveHighlightType.Slow] = new MoveHighlightVisual(
Resources.Load<Sprite>("ArtResources/TH1Common/GridMoveHightlight_SpecialSlow"),
moveHighlightRed);
MoveHighlightVisuals[MoveHighlightType.Enemy] = new MoveHighlightVisual(
Resources.Load<Sprite>("ArtResources/TH1Common/GridMoveHightlight_Enemy"),
Color.white);
MoveHighlightVisuals[MoveHighlightType.Boat] = new MoveHighlightVisual(
Resources.Load<Sprite>("ArtResources/TH1Common/GridMoveHightlight_SpecialBoat"),
moveHighlightDeepBlue);
MoveHighlightVisuals[MoveHighlightType.Ashore] = new MoveHighlightVisual(
Resources.Load<Sprite>("ArtResources/TH1Common/GridMoveHightlight_SpecialAshore"),
moveHighlightDeepBlue);
MoveHighlightVisuals[MoveHighlightType.Sanae] = new MoveHighlightVisual(
Resources.Load<Sprite>("TH1UI/Icon/SkillIcon/Moriya/Skill_SanaeWindX"),
moveHighlightGreen);
MoveHighlightVisuals[MoveHighlightType.Teleport] = new MoveHighlightVisual(
Resources.Load<Sprite>("ArtResources/TH1Common/GridMoveHightlight_SpecialTeleport"),
moveHighlightDeepBlue);
MoveHighlightVisuals[MoveHighlightType.Momiji] = new MoveHighlightVisual(
Resources.Load<Sprite>("TH1UI/Icon/SkillIcon/Moriya/Skill_MOMIJIHUNTER"),
moveHighlightGreen);
MoveHighlightVisuals[MoveHighlightType.Yuugi] = new MoveHighlightVisual(
Resources.Load<Sprite>("TH1UI/Icon/SkillIcon/Skill_YuugiDash"),
moveHighlightGreen);
MoveHighlightVisuals[MoveHighlightType.Road] = new MoveHighlightVisual(
Resources.Load<Sprite>("ArtResources/TH1Common/GridMoveHightlight_SpecialRoad"),
moveHighlightGreen);
//-------- GridVFX --------
GridVFXDie = Resources.Load<Sprite>("ArtResources/TH1VFX/TH1VFX_Die");
GridVFXCounterDie = Resources.Load<Sprite>("ArtResources/TH1VFX/TH1VFX_CounterDie");
GridVFXROYALFLAMES = Resources.Load<Sprite>("TH1UI/Icon/SkillIcon/Skill_ROYALFLAMES");
GridVFXTEWI = Resources.Load<Sprite>("TH1UI/Icon/SkillIcon/TewiFrenchBuff");
GridVFXCoin = Resources.Load<Sprite>("TH1UI/Icon/CommonIcon/CoinIcon");
GridVFXKAGUYA = Resources.Load<Sprite>("TH1UI/Icon/SkillIcon/SKill_KAGUYAFRENCHFOREVERBUFF");
GridVFXHeal = Resources.Load<Sprite>("ArtResources/TH1VFX/TH1VFX_Heal");
GridVFXConnect = Resources.Load<Sprite>("TH1UI/Icon/CityInfo/TH1IconCityInfoConnected");
GridVFXTreasure = Resources.Load<Sprite>("ArtResources/TH1VFX/TH1VFX_Treasure");
GridVFXRedMistCreate = Resources.Load<Sprite>("ArtResources/TH1VFX/TH1VFX_RedMistCreate");
GridVFXSakuyaGuard = Resources.Load<Sprite>("ArtResources/TH1VFX/TH1VFX_SakuyaGuard");
GridVFXLucky = Resources.Load<Sprite>("ArtResources/TH1VFX/TH1VFX_Treasure");
GridVFXBigLucky= Resources.Load<Sprite>("ArtResources/TH1VFX/TH1VFX_BigLucky");
GridVFXUnlucky = Resources.Load<Sprite>("ArtResources/TH1VFX/TH1VFX_Unlucky");
GridVFXBigUnlucky = Resources.Load<Sprite>("ArtResources/TH1VFX/TH1VFX_BigUnlucky");
GridVFXLuckyText = Resources.Load<Sprite>("ArtResources/TH1VFX/TH1VFX_LuckyText");
GridVFXBigLuckyText = Resources.Load<Sprite>("ArtResources/TH1VFX/TH1VFX_BigLuckyText");
GridVFXUnluckyText = Resources.Load<Sprite>("ArtResources/TH1VFX/TH1VFX_UnluckyText");
GridVFXBigUnluckyText = Resources.Load<Sprite>("ArtResources/TH1VFX/TH1VFX_BigUnluckyText");
GridVFXLuxury = Resources.Load<Sprite>("ArtResources/TH1VFX/TH1VFX_Luxury");
//-------- Unit --------
MeilingZzz = Resources.Load<Sprite>("ArtResources/TH1Units/Giant/EgyptianMeilingZzz");
KanakoSit = Resources.Load<Sprite>("ArtResources/TH1Units/Giant/GermanyKanako_Sit");
UtsuhoBoom = Resources.Load<Sprite>("ArtResources/TH1Units/Giant/IndianUtsuho_Boom");
}
}
}