using System.IO; using UnityEngine; namespace AibisDream.Utility { public static class ConstRef { public const string QQURL = "https://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=XQFpOqRb1_zqkCdR2bLT3kHb11XzZ54T" + "&authKey=w8G8qxzecnATXDOec1Ybv8LA%2FTTN8gQkyegvbK%2FUZ9m90WxggTjXy2U6%2FJes" + "WJF3&noverify=0&group_code=325268983"; public const string DiscordURL = "https://discord.gg/C7Xv8Z9NxG"; public const string BugSurveyURL = "https://jsj.top/f/F24cC6"; public const string SurveyURL_CN = "https://jsj.top/f/HkmCnH"; public const string SurveyURL_EN = "https://jsj.top/f/y501LX"; public const string SurveyURL_JP = "https://jsj.top/f/icnVug"; public const string WishlistURL = "https://store.steampowered.com/app/3473430/_All_Our_Broken_Parts?utm_source=playtest"; public const string SteamWishlistURL = "steam://store/3473430"; public static readonly string SaveFilePath = Path.Combine(Application.persistentDataPath, "demo_saves"); #if UNITY_EDITOR || DEVELOPMENT_BUILD public static readonly string TestSavePath = Path.Combine(Application.persistentDataPath, "test_saves"); #endif /// P2 槽位相关常量。 public const int SaveSlotCount = 8; /// 存档槽位缩略图;关闭可避免主相机 Render + ReadPixels 的性能开销。 public const bool SaveThumbnailEnabled = false; public const int SaveThumbnailWidth = 640; public const int SaveThumbnailHeight = 360; public const string SaveSlotDirPrefix = "slot_"; public const string SaveSnapshotFileName = "snapshot"; public const string SaveMetaFileName = "meta"; public const string SaveThumbnailFileName = "thumbnail"; public const string LatestSlotFileName = "latest_slot"; public static readonly string ChapterProgressPath = Path.Combine(Application.persistentDataPath, "config", "chapter.json"); public static readonly string SettingPath = Path.Combine(Application.persistentDataPath, "config", "setting.json"); public static readonly string SettingDefaultPath = Path.Combine(Application.streamingAssetsPath, "Config", "setting.json"); public static readonly string CharacterConfigPath = Path.Combine(Application.streamingAssetsPath, "Config", "character.csv"); public static readonly string LogFilePath = Path.Combine(Application.persistentDataPath, "LogFile"); public static readonly string BlockPuzzleDataPath = Path.Combine(Application.streamingAssetsPath, "LevelData", "BlockPuzzle", "BlockPuzzleData.json"); public static readonly string BlockShapeDataPath = Path.Combine(Application.streamingAssetsPath, "LevelData", "BlockPuzzle", "BlockShapeData.json"); public static readonly string BlockShapeInfoPath = Path.Combine(Application.streamingAssetsPath, "LevelData", "BlockPuzzle", "BlockShapeInfo.json"); #region 本地化索引 public const string UITextTable = "UIText"; public const string ChapterInfoTable = "ChapterInfo"; public const string ParamsTable = "Params"; public const string ExpressParticlePoolParam = "l10n.hs.exp.pool"; #endregion #region 资产 public const string CutLinePrefabName = "Prefab/CutLine"; public const string ActorPrefabName = "Prefab/ActorAnima"; public const string SpriteActorPrefabName = "Prefab/SpriteActor"; public const string ActorAnimaExPrefabName = "Prefab/ActorAnimaEx"; public const string FrameAnimationActorPrefabName = "Prefab/FrameAnimationActor"; public const string FrameAnimationGraphPrefix = "FrameAnimation/"; public const string MobileAnima = "Prefab/AnimaMobileObject"; public const string MobileSprite = "Prefab/SpriteMobileObject"; public const string MobileObject = "Prefab/PrefabMobileObject"; public const string BubblePrefab = "Prefab/NormalBubble"; public const string PipelinePrefabAddress = "PipelinePrefab"; public const string BlockShapePrefab = "BlockPuzzle/BlockShape"; #endregion #region 动画配置 public const float TargetAspect = 16f / 9f; public const float PanelDelayDuration = 0.4f; #endregion #region 文字速度配置 (毫秒) public const int CharacterDelayTime = 70; public const int LineMaxDelay = 2800; public const int LineMinDelay = 600; public const int AutoHideDelay = 150; public const int FixedDelay = 200; #endregion } }