feat(battle-engine): full Unity/VFX/god-object shims + expanded copy closure (2570 files)
Authored Unity primitive/object-model shim, VFX layer (control-flow-preserving, InstantVfx never invokes its action -- headless suppression), god-object stubs (GameMgr/EffectMgr/UIManager with faithfully-extracted nested enums), View/UI/Touch tree, LitJson+BetterList+Tuple copied, third-party stubs. Discovered Roslyn header-error masking: fixing class-header type errors unmasks body references, so the true copy closure is ~2570 files (was 782 under masking). Errors: masked-25720 -> 268; our shim files compile clean. Remaining: ~50 residual shim/external types, 24 NGUI UI-base overrides, static-type fixes, plus likely 1-2 more unmask waves.
This commit is contained in:
172
SVSim.BattleEngine/Engine/StorySectionData.cs
Normal file
172
SVSim.BattleEngine/Engine/StorySectionData.cs
Normal file
@@ -0,0 +1,172 @@
|
||||
using LitJson;
|
||||
using Wizard;
|
||||
using Wizard.Story;
|
||||
|
||||
public class StorySectionData
|
||||
{
|
||||
private static readonly string FORMAT_STORY_SECTION_NO = "story_section_no_{0:D2}";
|
||||
|
||||
public const int WAZAWAI_SECTION_ID = 1;
|
||||
|
||||
private const int WAZAWAI_FINAL_SECTION_ID = 2;
|
||||
|
||||
public const int OUKOKU_KIKAN_SECTION_ID = 9003;
|
||||
|
||||
public const int SHUKUSEI_HEN_KOUHEN_SECTION_ID = 20;
|
||||
|
||||
public int Id { get; }
|
||||
|
||||
public int AllStoryOrderId { get; }
|
||||
|
||||
public string NameNo { get; }
|
||||
|
||||
public string Name { get; }
|
||||
|
||||
public string ImageName { get; }
|
||||
|
||||
public string OffStateButtonTextureName { get; }
|
||||
|
||||
public string OnStateButtonTextureName { get; }
|
||||
|
||||
public bool IsLeaderSelect { get; }
|
||||
|
||||
public bool IsFinish { get; }
|
||||
|
||||
public bool IsUnderMaintenance { get; }
|
||||
|
||||
public int ReleasedCharaCount { get; }
|
||||
|
||||
public int FinishedCharaCount { get; }
|
||||
|
||||
public int BackGroundId { get; }
|
||||
|
||||
public StoryApiType StoryApiType { get; }
|
||||
|
||||
public bool IsNew { get; }
|
||||
|
||||
public bool IsSpoiler { get; }
|
||||
|
||||
public string SpoilerMessage { get; }
|
||||
|
||||
public UIManager.ViewScene ChapterSelectionView { get; }
|
||||
|
||||
public bool IsPlayAnotherEndingAppearanceAnimation { get; }
|
||||
|
||||
public bool IsTutorialCategory => Id == StorySection.TUTORIAL_SECTION_ID;
|
||||
|
||||
public bool IsTutorial
|
||||
{
|
||||
get
|
||||
{
|
||||
if (IsTutorialCategory)
|
||||
{
|
||||
return !IsFinish;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsTutorialReplay
|
||||
{
|
||||
get
|
||||
{
|
||||
if (IsTutorialCategory)
|
||||
{
|
||||
return IsFinish;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsExistExtraBackGround()
|
||||
{
|
||||
if (Id != 2 && Id != 9003)
|
||||
{
|
||||
return Id == 20;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public StorySectionData(JsonData jsonData)
|
||||
{
|
||||
Id = jsonData["section_id"].ToInt();
|
||||
AllStoryOrderId = jsonData["all_story_order_id"].ToInt();
|
||||
NameNo = GetNameNoText(jsonData);
|
||||
Name = GetNameText(jsonData);
|
||||
ImageName = jsonData["image_name"].ToString();
|
||||
OffStateButtonTextureName = GetOffStateButtonTextureName(jsonData);
|
||||
OnStateButtonTextureName = GetOnStateButtonTextureName(jsonData);
|
||||
IsLeaderSelect = jsonData["is_leader_select"].ToBoolean();
|
||||
IsFinish = jsonData["is_finished"].ToBoolean();
|
||||
IsUnderMaintenance = jsonData["is_under_maintenance"].ToBoolean();
|
||||
ReleasedCharaCount = jsonData["released_chara_count"].ToInt();
|
||||
FinishedCharaCount = jsonData["finished_chara_count"].ToInt();
|
||||
BackGroundId = jsonData["back_ground_id"].ToInt();
|
||||
IsNew = jsonData["is_new"].ToBoolean();
|
||||
IsSpoiler = jsonData.GetValueOrDefault("is_spoiler", defaultValue: false);
|
||||
if (IsSpoiler)
|
||||
{
|
||||
SpoilerMessage = jsonData.GetValueOrDefault("spoiler_message", string.Empty);
|
||||
}
|
||||
StoryApiType = GetStoryApiType(jsonData["story_type_overwrite"].ToInt());
|
||||
ChapterSelectionView = GetChapterSelectionView(jsonData);
|
||||
IsPlayAnotherEndingAppearanceAnimation = jsonData["is_play_another_end_appearance_animation"].ToBoolean();
|
||||
}
|
||||
|
||||
public StorySectionData(int id, int backgroundId, UIManager.ViewScene chapterSelectionView)
|
||||
{
|
||||
Id = id;
|
||||
BackGroundId = backgroundId;
|
||||
ChapterSelectionView = chapterSelectionView;
|
||||
}
|
||||
|
||||
private static string GetNameNoText(JsonData jsonData)
|
||||
{
|
||||
int num = jsonData["section_id"].ToInt();
|
||||
string key = string.Format(FORMAT_STORY_SECTION_NO, num);
|
||||
return Data.Master.GetStorySectionTitleText(key);
|
||||
}
|
||||
|
||||
private static string GetNameText(JsonData jsonData)
|
||||
{
|
||||
string key = jsonData["name"].ToString();
|
||||
return Data.Master.GetStorySectionTitleText(key);
|
||||
}
|
||||
|
||||
private static string GetOffStateButtonTextureName(JsonData jsonData)
|
||||
{
|
||||
return jsonData["image_name"].ToString() + "_off";
|
||||
}
|
||||
|
||||
private static string GetOnStateButtonTextureName(JsonData jsonData)
|
||||
{
|
||||
return jsonData["image_name"].ToString() + "_on";
|
||||
}
|
||||
|
||||
private static UIManager.ViewScene GetChapterSelectionView(JsonData jsonData)
|
||||
{
|
||||
if (jsonData["chapter_select_type"].ToInt() != 2)
|
||||
{
|
||||
return UIManager.ViewScene.AreaSelect;
|
||||
}
|
||||
return UIManager.ViewScene.StoryChapterSelectionFlowChart;
|
||||
}
|
||||
|
||||
private static StoryApiType GetStoryApiType(int storyTypeOverwrite)
|
||||
{
|
||||
switch (storyTypeOverwrite)
|
||||
{
|
||||
case 0:
|
||||
return StoryApiType.None;
|
||||
case 1:
|
||||
return StoryApiType.MainStory;
|
||||
case 2:
|
||||
return StoryApiType.LimitedStory;
|
||||
case 3:
|
||||
return StoryApiType.EventStory;
|
||||
default:
|
||||
Debug.LogError("StorySectionのstory_type_overwriteに想定外の値が設定された");
|
||||
return StoryApiType.None;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user