using System; using System.Collections.Generic; using Logic.CrashSight; using UnityEngine; using RuntimeData; using Logic.Multilingual; using Logic.Skill; using TH1_Logic.Core; using TH1Renderer; using TH1Resource; using Unity.VisualScripting; public enum StoryCharEnum { // 编号规则: 国家(2位) + 国家重复(2位) + 国内序号(1位) // 国家: 01=Egyptian 02=French 03=Germany 04=Indian 05=Norway 06=British 07=Persian 08=Byzantine // 国内序号与 GiantType 国内顺序对齐 None = 0, EgyptianFlandre = 01011, EgyptianRemilia = 01012, EgyptianSakuya = 01013, EgyptianMeiling = 01014, EgyptianPatchouli = 01015, FrenchKaguya = 02021, FrenchReisen = 02022, FrenchTewi = 02023, FrenchEirin = 02024, FrenchMokou = 02025, GermanyKanako = 03031, GermanySuwako = 03032, GermanySanae = 03033, GermanyAya = 03034, GermanyMomiji = 03035, IndianSatori = 04041, IndianKoishi = 04042, IndianUtsuho = 04043, IndianYuugi = 04044, IndianRin = 04045, NorwayReimu = 05051, BritishByakuren = 06061, PersianMiko = 07071, ByzantineZanmu = 08081, // 通用版本(不带国家前缀,仅角色本体相关剧情使用) Remilia = 100000, Sakuya = 100001, } ; [Serializable] [CreateAssetMenu(fileName = "StoryDataAssets", menuName = "TH1 Game Data/Story Data Asset")] public class StoryDataAssets : ScriptableObject { public List CharDataList; public List SheetData; public Sprite GetCharSprite(StoryCharEnum charEnum) { foreach(var t in CharDataList) if (t.CharName == charEnum) return t.CharSprite; return null; } } [Serializable] public class StorySheetData { public string SheetName; public List DiagList; } [Serializable] public class StoryDiagData { public string GetSpeaker() { return CharName.ToString();} public StoryCharEnum CharName; [MultilingualField(false, true, false)] public string Diag; } [Serializable] public class StoryCharData { public StoryCharEnum CharName; public Sprite CharSprite; }