feat(battle-engine): M1 auto-copy closure (782 battle-logic files)
Compile-driven bulk-copy loop (tools/engine-port/m1_copy_loop.py) pulled the precise reference closure of the battle-core roots, stopping at the classify god-object/View-VFX-UI boundary. 782 files; no re-explosion (M0 had estimated ~order 1000). Residual frontier = 52 shim-classified + 80 external (Unity/BCL) types to author next.
This commit is contained in:
875
SVSim.BattleEngine/Engine/Wizard/QuestSelectionPage.cs
Normal file
875
SVSim.BattleEngine/Engine/Wizard/QuestSelectionPage.cs
Normal file
@@ -0,0 +1,875 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Cute;
|
||||
using UnityEngine;
|
||||
using Wizard.DeckSelect.FirstDisplayPageIndexGetter;
|
||||
|
||||
namespace Wizard;
|
||||
|
||||
public class QuestSelectionPage : UIBase
|
||||
{
|
||||
public enum FirstSelectType
|
||||
{
|
||||
NONE,
|
||||
PUZZLE,
|
||||
BOSS_RUSH,
|
||||
SECRET_BOSS
|
||||
}
|
||||
|
||||
private const int BEGINNER_CHARACTER_ID = 4403;
|
||||
|
||||
[SerializeField]
|
||||
private UISpriteAtlasOverwriter _spriteAtlasOverwriter;
|
||||
|
||||
[SerializeField]
|
||||
private UITexture _selectCharaTexture;
|
||||
|
||||
[SerializeField]
|
||||
private QuestSelectionButtonBase[] _classButtonParts;
|
||||
|
||||
[SerializeField]
|
||||
private UIButton _decideButton;
|
||||
|
||||
[SerializeField]
|
||||
private UILabel _decideButtonTextLabel;
|
||||
|
||||
[SerializeField]
|
||||
private GameObject _decisionButtonEffect;
|
||||
|
||||
[SerializeField]
|
||||
private UIButton _pointConfirmButton;
|
||||
|
||||
[SerializeField]
|
||||
private UIButton _questConfirmButton;
|
||||
|
||||
[SerializeField]
|
||||
private UIButton _questBonusDetailButton;
|
||||
|
||||
[SerializeField]
|
||||
private UILabel _rewardRecieveNumberLabel;
|
||||
|
||||
[SerializeField]
|
||||
private UITexture _bgTexture;
|
||||
|
||||
[SerializeField]
|
||||
private UILabel _periodLabel;
|
||||
|
||||
[SerializeField]
|
||||
private SimpleScrollViewUI _questButtonScrollView;
|
||||
|
||||
[SerializeField]
|
||||
private Vector3 _charaMoveStartPos = new Vector3(245f, 15f, 0f);
|
||||
|
||||
[SerializeField]
|
||||
private Vector3 _charaMoveEndPos = new Vector3(275f, 15f, 0f);
|
||||
|
||||
[SerializeField]
|
||||
private iTween.EaseType _charaMoveEaseType = iTween.EaseType.linear;
|
||||
|
||||
[SerializeField]
|
||||
private float _charaMoveTime = 0.1f;
|
||||
|
||||
[SerializeField]
|
||||
private QuestPointConfirmDialog _questPointConfirmDialogOriginal;
|
||||
|
||||
[SerializeField]
|
||||
private QuestAllConfirmDialog _questAllConfirmDialogOriginal;
|
||||
|
||||
[SerializeField]
|
||||
private GameObject _winBonusRoot;
|
||||
|
||||
[SerializeField]
|
||||
private GameObject _winBonusBeforeRoot;
|
||||
|
||||
[SerializeField]
|
||||
private GameObject _winBonusAfterRoot;
|
||||
|
||||
[SerializeField]
|
||||
private UILabel _winBonusCountLabel;
|
||||
|
||||
[SerializeField]
|
||||
private UISprite _winBonusCountSprite;
|
||||
|
||||
[SerializeField]
|
||||
private GameObject _bossRushTurnDisplayRoot;
|
||||
|
||||
[SerializeField]
|
||||
private UILabel _bossRushShortestClearLabel;
|
||||
|
||||
[SerializeField]
|
||||
private UISprite _bossRushShortestClearClassIcon;
|
||||
|
||||
[SerializeField]
|
||||
private UIButton _tweetBannerButton;
|
||||
|
||||
[SerializeField]
|
||||
private UITexture _tweetBannerTexture;
|
||||
|
||||
private bool _isTweetFinish;
|
||||
|
||||
private List<string> _loadPathList = new List<string>();
|
||||
|
||||
private List<QuestOpponentData> _questDataList;
|
||||
|
||||
private List<QuestSelectionButtonBase> _selectionButtonList;
|
||||
|
||||
private int _currentIndex = -1;
|
||||
|
||||
private string _currentTextureId = "";
|
||||
|
||||
private bool _isOpenExtra;
|
||||
|
||||
private bool _isLastDay;
|
||||
|
||||
private QuestInfoTask _questInfoTask;
|
||||
|
||||
private string _announceId = string.Empty;
|
||||
|
||||
private PuzzleQuestInfo _puzzleQuestInfo;
|
||||
|
||||
private EventStoryQuestInfo _eventStoryQuestInfo;
|
||||
|
||||
private BossRushInfo _bossRushInfo;
|
||||
|
||||
private SecretBossInfo _secretBossInfo;
|
||||
|
||||
private List<QuestSelectionButtonData> _buttonData;
|
||||
|
||||
private const string BG_TEXTURE_NAME = "bg_quest";
|
||||
|
||||
private const int REWARD_DISPLAY_MAX_COUNT = 99;
|
||||
|
||||
private const int QUEST_POINT_CONFIRM_DIALOG_DEPTH = 1;
|
||||
|
||||
private const string POINT_UP_SPRITE_PREFIX = "point_up_";
|
||||
|
||||
private const int WIN_COUNT_MAX = 3;
|
||||
|
||||
public override bool IsUseCommonBackground()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void onFirstStart()
|
||||
{
|
||||
base.IsShowFooterMenu = true;
|
||||
base.onFirstStart();
|
||||
}
|
||||
|
||||
protected override void onOpen()
|
||||
{
|
||||
base.onOpen();
|
||||
Init();
|
||||
}
|
||||
|
||||
protected override void onClose()
|
||||
{
|
||||
Final();
|
||||
base.onClose();
|
||||
}
|
||||
|
||||
private void Init()
|
||||
{
|
||||
QuestSelectionButtonBase[] classButtonParts = _classButtonParts;
|
||||
for (int i = 0; i < classButtonParts.Length; i++)
|
||||
{
|
||||
classButtonParts[i].gameObject.SetActive(value: false);
|
||||
}
|
||||
CreateTopBar();
|
||||
InitFooter();
|
||||
InitTask();
|
||||
InitSpriteAtlasOverwriter();
|
||||
}
|
||||
|
||||
private void Final()
|
||||
{
|
||||
Toolbox.ResourcesManager.RemoveAssetGroup(_loadPathList);
|
||||
_loadPathList.Clear();
|
||||
UIManager.GetInstance()._Footer.CancelOverwriteLabelColors();
|
||||
}
|
||||
|
||||
private void CreateTopBar()
|
||||
{
|
||||
UIManager.ChangeViewSceneParam changeViewSceneParam = new UIManager.ChangeViewSceneParam();
|
||||
changeViewSceneParam.MyPageMenuIndex = 1;
|
||||
changeViewSceneParam.IsCutCardMotion = true;
|
||||
TopBar topBar = UIManager.GetInstance().CreateTopBar(base.gameObject, Data.SystemText.Get("Quest_0003"), UIManager.ViewScene.MyPage, MoneyDraw: false, changeViewSceneParam);
|
||||
topBar.gameObject.layer = LayerMask.NameToLayer("MyPage");
|
||||
topBar.OverwriteBackLabelColors(eColorCodeId.QuestBackButtonGradientTop, eColorCodeId.QuestBackButtonGradientBottom);
|
||||
}
|
||||
|
||||
private void InitFooter()
|
||||
{
|
||||
UIManager instance = UIManager.GetInstance();
|
||||
instance.setBackScene(base.gameObject, UIManager.ViewScene.MyPage);
|
||||
instance._Footer.UpdateCurrentIndex(1);
|
||||
instance._Footer.OverwriteLabelColors(eColorCodeId.QuestFooterGradientTop, eColorCodeId.QuestFooterGradientBottom, eColorCodeId.QuestFooterOutline);
|
||||
}
|
||||
|
||||
private void InitSpriteAtlasOverwriter()
|
||||
{
|
||||
UIAtlas component = Toolbox.ResourcesManager.LoadObject<GameObject>(Toolbox.ResourcesManager.GetAssetTypePath("dummy", ResourcesManager.AssetLoadPathType.QuestAtlas, isfetch: true)).GetComponent<UIAtlas>();
|
||||
UISpriteAtlasOverwriter.TargetObject[] targetObjects = new UISpriteAtlasOverwriter.TargetObject[2]
|
||||
{
|
||||
new UISpriteAtlasOverwriter.TargetObject(UIManager.GetInstance().UIManagerRoot.gameObject, includeChildren: true),
|
||||
new UISpriteAtlasOverwriter.TargetObject(UIManager.GetInstance().UIRootSystem.gameObject, includeChildren: true)
|
||||
};
|
||||
_spriteAtlasOverwriter.Init(component, targetObjects);
|
||||
}
|
||||
|
||||
public void UpdateTweetButtonVisible(bool isSelectBeginner)
|
||||
{
|
||||
if (_isTweetFinish)
|
||||
{
|
||||
isSelectBeginner = false;
|
||||
}
|
||||
_tweetBannerButton.gameObject.SetActive(value: false);
|
||||
}
|
||||
|
||||
private void InitTask()
|
||||
{
|
||||
QuestInfoTask task = new QuestInfoTask();
|
||||
_questInfoTask = task;
|
||||
StartCoroutine(Toolbox.NetworkManager.Connect(task, delegate
|
||||
{
|
||||
_questDataList = task.QuestDataList;
|
||||
_isOpenExtra = task.IsOpenExtra;
|
||||
_isLastDay = task.IsLastDay;
|
||||
_announceId = task.AnnounceId;
|
||||
ShowUnreceivedRewardCount(task.UnreceivedRewardCount);
|
||||
_periodLabel.text = Data.SystemText.Get("Quest_0007", ConvertTime.ToLocal(task.StartTime, task.EndTime));
|
||||
UIManager.GetInstance()._Footer.UpdateQuestBadgeIcon(task.IsDisplayBadge);
|
||||
_puzzleQuestInfo = task.PuzzleQuestInfo;
|
||||
_eventStoryQuestInfo = task.EventStoryQuestInfo;
|
||||
_bossRushInfo = task.BossRushInfo;
|
||||
_secretBossInfo = task.SecretBossInfo;
|
||||
SetupLayout(task.QuestId);
|
||||
InitLastUsedDeckSaveData(task.QuestId);
|
||||
}));
|
||||
}
|
||||
|
||||
private void SetupLayout(int questId)
|
||||
{
|
||||
StartCoroutine(LoadResources(delegate
|
||||
{
|
||||
SetBackGround();
|
||||
_tweetBannerTexture.mainTexture = Toolbox.ResourcesManager.LoadObject(GetTweetBannerPath(isFetch: true)) as Texture;
|
||||
CreateCharaButton();
|
||||
SetButtonCallback();
|
||||
DisplayFirstTips(questId);
|
||||
UIManager.GetInstance().OnReadyViewScene(isFadein: true);
|
||||
}));
|
||||
}
|
||||
|
||||
private string GetTweetBannerPath(bool isFetch)
|
||||
{
|
||||
return Toolbox.ResourcesManager.GetAssetTypePath("quest_banner_0013", ResourcesManager.AssetLoadPathType.UiOtherTexture, isFetch);
|
||||
}
|
||||
|
||||
private IEnumerator LoadResources(Action onFinish)
|
||||
{
|
||||
ResourcesManager resourcesManager = Toolbox.ResourcesManager;
|
||||
if (_puzzleQuestInfo.Status != PuzzleQuestStatus.None)
|
||||
{
|
||||
_loadPathList.AddRange(CollectPuzzleResourcePaths());
|
||||
}
|
||||
if (_eventStoryQuestInfo.EventStoryExist)
|
||||
{
|
||||
_loadPathList.AddRange(CollectEventStoryResourcePaths());
|
||||
}
|
||||
if (_bossRushInfo.BossRushInfoExist)
|
||||
{
|
||||
_loadPathList.AddRange(CollectBossRushResourcePaths());
|
||||
}
|
||||
if (_secretBossInfo.IsEnable)
|
||||
{
|
||||
_loadPathList.AddRange(CollectSecretBossPath());
|
||||
}
|
||||
if (_questInfoTask.IsDisplayTweetBanner)
|
||||
{
|
||||
_loadPathList.Add(GetTweetBannerPath(isFetch: false));
|
||||
}
|
||||
for (int i = 0; i < _questDataList.Count; i++)
|
||||
{
|
||||
string path = _questDataList[i].BattleData.CharaId.ToString();
|
||||
_loadPathList.Add(resourcesManager.GetAssetTypePath(path, ResourcesManager.AssetLoadPathType.ClassCharaWideThumbnail));
|
||||
_loadPathList.Add(resourcesManager.GetAssetTypePath(path, ResourcesManager.AssetLoadPathType.ClassCharaBase));
|
||||
}
|
||||
_loadPathList.Add(Toolbox.ResourcesManager.GetAssetTypePath("bg_quest", ResourcesManager.AssetLoadPathType.Background));
|
||||
yield return StartCoroutine(resourcesManager.LoadAssetGroupAsync(_loadPathList, null));
|
||||
onFinish.Call();
|
||||
}
|
||||
|
||||
private List<string> CollectPuzzleResourcePaths()
|
||||
{
|
||||
string path = _puzzleQuestInfo.CharaId.ToString();
|
||||
return new List<string>
|
||||
{
|
||||
Toolbox.ResourcesManager.GetAssetTypePath(path, ResourcesManager.AssetLoadPathType.ClassCharaWideThumbnail),
|
||||
Toolbox.ResourcesManager.GetAssetTypePath(path, ResourcesManager.AssetLoadPathType.ClassCharaBase)
|
||||
};
|
||||
}
|
||||
|
||||
private List<string> CollectEventStoryResourcePaths()
|
||||
{
|
||||
return new List<string>
|
||||
{
|
||||
Toolbox.ResourcesManager.GetAssetTypePath("event_story", ResourcesManager.AssetLoadPathType.ClassCharaWideThumbnail),
|
||||
Toolbox.ResourcesManager.GetAssetTypePath("event_story", ResourcesManager.AssetLoadPathType.ClassCharaBase)
|
||||
};
|
||||
}
|
||||
|
||||
private List<string> CollectBossRushResourcePaths()
|
||||
{
|
||||
return new List<string>
|
||||
{
|
||||
Toolbox.ResourcesManager.GetAssetTypePath("boss_rush", ResourcesManager.AssetLoadPathType.ClassCharaWideThumbnail),
|
||||
Toolbox.ResourcesManager.GetAssetTypePath("boss_rush", ResourcesManager.AssetLoadPathType.ClassCharaBase)
|
||||
};
|
||||
}
|
||||
|
||||
private List<string> CollectSecretBossPath()
|
||||
{
|
||||
string path = _secretBossInfo.CharaId.ToString();
|
||||
return new List<string>
|
||||
{
|
||||
Toolbox.ResourcesManager.GetAssetTypePath(path, ResourcesManager.AssetLoadPathType.ClassCharaWideThumbnail),
|
||||
Toolbox.ResourcesManager.GetAssetTypePath(path, ResourcesManager.AssetLoadPathType.ClassCharaBase)
|
||||
};
|
||||
}
|
||||
|
||||
private void SetBackGround()
|
||||
{
|
||||
_bgTexture.mainTexture = Toolbox.ResourcesManager.LoadObject<Texture>(Toolbox.ResourcesManager.GetAssetTypePath("bg_quest", ResourcesManager.AssetLoadPathType.Background, isfetch: true));
|
||||
}
|
||||
|
||||
private void DisplayFirstTips(int questId)
|
||||
{
|
||||
bool item = _puzzleQuestInfo.DisplayDatas.Any((PuzzleQuestSelectDialog.DisplayData x) => x.IsAdditional && !x.IsCleared);
|
||||
bool bossRushInfoExist = _bossRushInfo.BossRushInfoExist;
|
||||
(FirstTips.TipsType, KeyValuePair<string, int>, bool)[] source = new(FirstTips.TipsType, KeyValuePair<string, int>, bool)[3]
|
||||
{
|
||||
(FirstTips.TipsType.Quest, PlayerPrefsWrapper.FIRST_TIPS_QUEST_ID, true),
|
||||
(FirstTips.TipsType.AdditionalPuzzle, PlayerPrefsWrapper.FIRST_TIPS_ADDITIONAL_PUZZLE_QUEST_ID, item),
|
||||
(FirstTips.TipsType.BossRush, PlayerPrefsWrapper.FIRST_TIPS_BOSSRUSH_QUEST_ID, bossRushInfoExist)
|
||||
};
|
||||
List<(FirstTips.TipsType TipsType, KeyValuePair<string, int> PrefsId, bool IsDisplay)> displayInfos = source.Where(((FirstTips.TipsType TipsType, KeyValuePair<string, int> PrefsId, bool IsDisplay) x) => x.IsDisplay && questId != PlayerPrefsWrapper.GetValue(x.PrefsId)).ToList();
|
||||
if (displayInfos.Count <= 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
IEnumerable<FirstTips.TipsType> tipsTypes = displayInfos.Select(((FirstTips.TipsType TipsType, KeyValuePair<string, int> PrefsId, bool IsDisplay) x) => x.TipsType);
|
||||
Action onFinish = delegate
|
||||
{
|
||||
displayInfos.ForEach(delegate((FirstTips.TipsType TipsType, KeyValuePair<string, int> PrefsId, bool IsDisplay) x)
|
||||
{
|
||||
PlayerPrefsWrapper.SetValue(x.PrefsId, questId);
|
||||
});
|
||||
};
|
||||
UIManager.GetInstance().StartFirstTips(tipsTypes, onFinish);
|
||||
}
|
||||
|
||||
private void CreateCharaButton()
|
||||
{
|
||||
_buttonData = GenerateSelectListData();
|
||||
QuestSelectionButtonData defaultSelectData = GetDefaultSelectData();
|
||||
int num = 0;
|
||||
List<int> list = new List<int>();
|
||||
for (int i = 0; i < _buttonData.Count; i++)
|
||||
{
|
||||
QuestSelectionButtonData questSelectionButtonData = _buttonData[i];
|
||||
list.Add((int)questSelectionButtonData.GetPlateType());
|
||||
if (questSelectionButtonData == defaultSelectData)
|
||||
{
|
||||
num = i;
|
||||
}
|
||||
}
|
||||
_currentIndex = num;
|
||||
_questButtonScrollView.CreateScrollView(list, InitializePlate);
|
||||
_selectionButtonList = _questButtonScrollView.ActivePlateList.Select((GameObject p) => p.GetComponent<QuestSelectionButtonBase>()).ToList();
|
||||
_selectionButtonList[num].SelectChara();
|
||||
_questButtonScrollView.MovePlateByIndex(num, SimpleScrollViewUI.VerticalMovement.Center);
|
||||
}
|
||||
|
||||
private List<QuestSelectionButtonData> GenerateSelectListData()
|
||||
{
|
||||
List<QuestSelectionButtonData> list = new List<QuestSelectionButtonData>();
|
||||
for (int i = 0; i < _questDataList.Count; i++)
|
||||
{
|
||||
list.Add(new QuestSelectionButtonData(_questDataList[i], _questDataList.Count - i));
|
||||
}
|
||||
if (_puzzleQuestInfo.Status != PuzzleQuestStatus.None)
|
||||
{
|
||||
list.Add(new QuestSelectionButtonData(_puzzleQuestInfo));
|
||||
}
|
||||
if (_eventStoryQuestInfo.EventStoryExist)
|
||||
{
|
||||
list.Add(new QuestSelectionButtonData(_eventStoryQuestInfo));
|
||||
}
|
||||
if (_bossRushInfo.BossRushInfoExist)
|
||||
{
|
||||
list.Add(new QuestSelectionButtonData(_bossRushInfo));
|
||||
}
|
||||
if (_secretBossInfo.IsEnable)
|
||||
{
|
||||
list.Add(new QuestSelectionButtonData(_secretBossInfo));
|
||||
}
|
||||
list.Sort((QuestSelectionButtonData a, QuestSelectionButtonData b) => b.SortValue() - a.SortValue());
|
||||
return list;
|
||||
}
|
||||
|
||||
private QuestSelectionButtonData GetDefaultSelectData()
|
||||
{
|
||||
QuestBattleData questBattleData = GameMgr.GetIns().GetDataMgr().QuestBattleData;
|
||||
if (questBattleData != null)
|
||||
{
|
||||
QuestSelectionButtonData questSelectionButtonData = null;
|
||||
{
|
||||
foreach (QuestSelectionButtonData buttonDatum in _buttonData)
|
||||
{
|
||||
if (buttonDatum.QuestData == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (questSelectionButtonData == null)
|
||||
{
|
||||
questSelectionButtonData = buttonDatum;
|
||||
}
|
||||
if (_isOpenExtra)
|
||||
{
|
||||
if (buttonDatum.QuestData.BattleData.QuestStageId == questBattleData.QuestStageId)
|
||||
{
|
||||
return buttonDatum;
|
||||
}
|
||||
}
|
||||
else if (buttonDatum.QuestData.BattleData.QuestStageId == questBattleData.QuestStageId && !buttonDatum.QuestData.BattleData.IsExtra)
|
||||
{
|
||||
return buttonDatum;
|
||||
}
|
||||
}
|
||||
return questSelectionButtonData;
|
||||
}
|
||||
}
|
||||
if (GameMgr.GetIns().GetDataMgr().QuestFirstSelectType == FirstSelectType.PUZZLE)
|
||||
{
|
||||
GameMgr.GetIns().GetDataMgr().QuestFirstSelectType = FirstSelectType.NONE;
|
||||
if (_puzzleQuestInfo.Status == PuzzleQuestStatus.InProgress)
|
||||
{
|
||||
foreach (QuestSelectionButtonData buttonDatum2 in _buttonData)
|
||||
{
|
||||
if (buttonDatum2.PuzzleData != null)
|
||||
{
|
||||
return buttonDatum2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
bool flag = Data.MaintenanceCodeList.Contains(NetworkDefine.MAINTENANCE_TYPE.BOSS_RUSH);
|
||||
if (GameMgr.GetIns().GetDataMgr().QuestFirstSelectType == FirstSelectType.BOSS_RUSH && !flag)
|
||||
{
|
||||
foreach (QuestSelectionButtonData buttonDatum3 in _buttonData)
|
||||
{
|
||||
if (buttonDatum3.BossRushData != null && !buttonDatum3.BossRushData.IsAllChallengeFinished)
|
||||
{
|
||||
return buttonDatum3;
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach (QuestSelectionButtonData buttonDatum4 in _buttonData)
|
||||
{
|
||||
if ((buttonDatum4.QuestData == null || buttonDatum4.QuestData.IsPlayable) && (buttonDatum4.BossRushData == null || !(!buttonDatum4.BossRushData.IsBossRushUnlocked || flag)))
|
||||
{
|
||||
return buttonDatum4;
|
||||
}
|
||||
}
|
||||
Debug.LogError("プレイ可能なクエストが見つかりませんでした");
|
||||
return _buttonData[0];
|
||||
}
|
||||
|
||||
private void SetButtonCallback()
|
||||
{
|
||||
UIEventListener.Get(_decideButton.gameObject).onClick = OnDecideButtonClick;
|
||||
UIEventListener.Get(_pointConfirmButton.gameObject).onClick = OnPointConfirmButtonClick;
|
||||
UIEventListener.Get(_questConfirmButton.gameObject).onClick = OnQuestConfirmButtonClick;
|
||||
UIEventListener.Get(_questBonusDetailButton.gameObject).onClick = OnClickBonusDetailButton;
|
||||
UIEventListener.Get(_tweetBannerButton.gameObject).onClick = delegate
|
||||
{
|
||||
OnClickTweetBanner();
|
||||
};
|
||||
}
|
||||
|
||||
private void InitializePlate(int index, GameObject obj)
|
||||
{
|
||||
QuestSelectionButtonBase questSelectionButton = obj.GetComponent<QuestSelectionButtonBase>();
|
||||
questSelectionButton.SetQuestSelectionPage(this);
|
||||
_ = questSelectionButton;
|
||||
questSelectionButton.Initialize(_buttonData[index], _isOpenExtra, _isLastDay, delegate
|
||||
{
|
||||
OnClickClassButton(index);
|
||||
SetSelectSprite(questSelectionButton);
|
||||
});
|
||||
questSelectionButton.SetActiveSelectSprite(index == _currentIndex);
|
||||
}
|
||||
|
||||
private void SetSelectSprite(QuestSelectionButtonBase selectButton)
|
||||
{
|
||||
for (int i = 0; i < _selectionButtonList.Count; i++)
|
||||
{
|
||||
QuestSelectionButtonBase questSelectionButtonBase = _selectionButtonList[i];
|
||||
questSelectionButtonBase.SetActiveSelectSprite(questSelectionButtonBase == selectButton);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnClickClassButton(int index)
|
||||
{
|
||||
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_TOGGLE_ON);
|
||||
if (_currentIndex != index)
|
||||
{
|
||||
_currentIndex = index;
|
||||
_selectionButtonList[_currentIndex].SelectChara();
|
||||
}
|
||||
}
|
||||
|
||||
public void SelectCharaQuestButton(QuestOpponentData buttonData)
|
||||
{
|
||||
UpdateTweetButtonVisible(buttonData.BattleData.CharaId == 4403);
|
||||
ChangeChara(buttonData.BattleData.CharaId);
|
||||
if (buttonData.WinCountForWinBonusPoint == 0)
|
||||
{
|
||||
_winBonusRoot.SetActive(value: false);
|
||||
}
|
||||
else
|
||||
{
|
||||
_winBonusRoot.SetActive(value: true);
|
||||
_winBonusBeforeRoot.SetActive(value: true);
|
||||
_winBonusAfterRoot.SetActive(buttonData.IsEnableWinBonusPoint);
|
||||
_winBonusCountLabel.text = string.Format(Data.SystemText.Get("Quest_0036"), buttonData.WinCount, buttonData.WinCountForWinBonusPoint);
|
||||
int num = Math.Min(buttonData.WinCount, 3);
|
||||
_winBonusCountSprite.spriteName = "point_up_" + (num + 1).ToString("D2");
|
||||
}
|
||||
bool flag = _isOpenExtra || !buttonData.BattleData.IsExtra;
|
||||
UIManager.SetObjectToGrey(_decideButton.gameObject, !flag, ColorCode.Get(eColorCodeId.QuestSelectButtonTextColor));
|
||||
_decisionButtonEffect.SetActive(flag);
|
||||
_decideButtonTextLabel.text = Data.SystemText.Get("Quest_0022");
|
||||
_bossRushTurnDisplayRoot.SetActive(value: false);
|
||||
}
|
||||
|
||||
public void SelectCharaPuzzleButton(PuzzleQuestInfo buttonData)
|
||||
{
|
||||
UpdateTweetButtonVisible(isSelectBeginner: false);
|
||||
ChangeChara(buttonData.CharaId);
|
||||
_winBonusRoot.SetActive(value: false);
|
||||
UIManager.SetObjectToGrey(_decideButton.gameObject, b: false, ColorCode.Get(eColorCodeId.QuestSelectButtonTextColor));
|
||||
_decisionButtonEffect.SetActive(value: true);
|
||||
_decideButtonTextLabel.text = Data.SystemText.Get("Puzzle_QuestSelect_0001");
|
||||
_bossRushTurnDisplayRoot.SetActive(value: false);
|
||||
}
|
||||
|
||||
public void SelectEventStoryButton(EventStoryQuestInfo buttonData)
|
||||
{
|
||||
UpdateTweetButtonVisible(isSelectBeginner: false);
|
||||
ChangeEventStoryTexture();
|
||||
_winBonusRoot.SetActive(value: false);
|
||||
_decisionButtonEffect.SetActive(value: true);
|
||||
_decideButtonTextLabel.text = Data.SystemText.Get("Quest_0052");
|
||||
_bossRushTurnDisplayRoot.SetActive(value: false);
|
||||
}
|
||||
|
||||
public void SelectBossRushButton(BossRushInfo buttonData)
|
||||
{
|
||||
UpdateTweetButtonVisible(isSelectBeginner: false);
|
||||
ChangeBossRushTexture();
|
||||
_winBonusRoot.SetActive(value: false);
|
||||
_decisionButtonEffect.SetActive(value: true);
|
||||
if (buttonData.IsDeckRegistered)
|
||||
{
|
||||
_decideButtonTextLabel.text = Data.SystemText.Get("BossRush_0008");
|
||||
}
|
||||
else
|
||||
{
|
||||
_decideButtonTextLabel.text = Data.SystemText.Get("BossRush_0009");
|
||||
}
|
||||
_bossRushTurnDisplayRoot.SetActive(value: true);
|
||||
if (buttonData.ShortestClearTurn.HasValue && buttonData.ShortestClearTurn.Value > 0)
|
||||
{
|
||||
_bossRushShortestClearLabel.text = buttonData.ShortestClearTurn.Value.ToString();
|
||||
_bossRushShortestClearClassIcon.gameObject.SetActive(value: true);
|
||||
_bossRushShortestClearClassIcon.spriteName = ClassCharaPrm.GetLargeIconSpriteName((CardBasePrm.ClanType)buttonData.ShortestClearClass.Value);
|
||||
}
|
||||
else
|
||||
{
|
||||
_bossRushShortestClearLabel.text = Data.SystemText.Get("BossRush_0040");
|
||||
_bossRushShortestClearClassIcon.gameObject.SetActive(value: false);
|
||||
}
|
||||
}
|
||||
|
||||
public void SelectSecretBossButton(SecretBossInfo bossInfo)
|
||||
{
|
||||
UpdateTweetButtonVisible(isSelectBeginner: false);
|
||||
ChangeChara(bossInfo.CharaId);
|
||||
_winBonusRoot.SetActive(value: false);
|
||||
_decisionButtonEffect.SetActive(value: true);
|
||||
_decideButtonTextLabel.text = Data.SystemText.Get("Quest_0022");
|
||||
_bossRushTurnDisplayRoot.SetActive(value: false);
|
||||
}
|
||||
|
||||
private void ChangeChara(int charaId, bool isPlayChangeAnimation = true)
|
||||
{
|
||||
if (!(_currentTextureId == charaId.ToString()))
|
||||
{
|
||||
_currentTextureId = charaId.ToString();
|
||||
ResourcesManager resourcesManager = Toolbox.ResourcesManager;
|
||||
_selectCharaTexture.mainTexture = resourcesManager.LoadObject<Texture>(resourcesManager.GetAssetTypePath(charaId.ToString(), ResourcesManager.AssetLoadPathType.ClassCharaBase, isfetch: true));
|
||||
if (isPlayChangeAnimation)
|
||||
{
|
||||
PlayCharaChangeAnimation();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void ChangeEventStoryTexture()
|
||||
{
|
||||
if (!(_currentTextureId == "event_story"))
|
||||
{
|
||||
_currentTextureId = "event_story";
|
||||
ResourcesManager resourcesManager = Toolbox.ResourcesManager;
|
||||
_selectCharaTexture.mainTexture = resourcesManager.LoadObject<Texture>(resourcesManager.GetAssetTypePath("event_story", ResourcesManager.AssetLoadPathType.ClassCharaBase, isfetch: true));
|
||||
PlayCharaChangeAnimation();
|
||||
}
|
||||
}
|
||||
|
||||
private void ChangeBossRushTexture()
|
||||
{
|
||||
if (!(_currentTextureId == "boss_rush"))
|
||||
{
|
||||
_currentTextureId = "boss_rush";
|
||||
ResourcesManager resourcesManager = Toolbox.ResourcesManager;
|
||||
_selectCharaTexture.mainTexture = resourcesManager.LoadObject<Texture>(resourcesManager.GetAssetTypePath("boss_rush", ResourcesManager.AssetLoadPathType.ClassCharaBase, isfetch: true));
|
||||
PlayCharaChangeAnimation();
|
||||
}
|
||||
}
|
||||
|
||||
private void PlayCharaChangeAnimation()
|
||||
{
|
||||
GameObject obj = _selectCharaTexture.gameObject;
|
||||
iTween.Stop(obj);
|
||||
obj.transform.localPosition = _charaMoveStartPos;
|
||||
iTween.MoveTo(obj, iTween.Hash("position", _charaMoveEndPos, "time", _charaMoveTime, "islocal", true, "easetype", _charaMoveEaseType));
|
||||
}
|
||||
|
||||
private void OnDecideButtonClick(GameObject g)
|
||||
{
|
||||
_selectionButtonList[_currentIndex].OnDecideButtonClick();
|
||||
}
|
||||
|
||||
public void OnClassDecideButtonClick(QuestOpponentData buttonData)
|
||||
{
|
||||
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_BTN_DECIDE);
|
||||
DataMgr dataMgr = GameMgr.GetIns().GetDataMgr();
|
||||
dataMgr.m_BattleType = DataMgr.BattleType.Quest;
|
||||
dataMgr.SetQuestBattleData(buttonData.BattleData);
|
||||
CreateDeckSelectForQuest();
|
||||
}
|
||||
|
||||
public void OnPuzzleDecideButtonClick()
|
||||
{
|
||||
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_BTN_DECIDE);
|
||||
CreatePuzzleQuestSelectDialog();
|
||||
GameMgr.GetIns().GetDataMgr().SetQuestBattleData(null);
|
||||
}
|
||||
|
||||
public static void CreateDeckSelectForQuest()
|
||||
{
|
||||
QuestDeckListTask task = new QuestDeckListTask();
|
||||
task.SetParameter(GameMgr.GetIns().GetDataMgr().QuestBattleData.QuestStageId);
|
||||
UIManager.GetInstance().StartCoroutine(Toolbox.NetworkManager.Connect(task, delegate
|
||||
{
|
||||
CreateQuestDeckDialog(task.DeckGroupListData, task.BonusFormatList, task.BonusClassList, isBattleAgain: false);
|
||||
}));
|
||||
}
|
||||
|
||||
public static void CreateQuestDeckDialog(DeckGroupListData deckGroupListData, List<Format> bonusFormatList, List<CardBasePrm.ClanType> bonusClassList, bool isBattleAgain)
|
||||
{
|
||||
int questStageId = GameMgr.GetIns().GetDataMgr().QuestBattleData.QuestStageId;
|
||||
QuestLastUsedDeckSaveDataManager.ExtractedDeckData deck = new QuestLastUsedDeckSaveDataManager().GetDeck(questStageId);
|
||||
Format defaultFormat = ((deck != null) ? deck.Format : ((Format)PlayerPrefsWrapper.GetValue(PlayerPrefsWrapper.LAST_SELECT_DECK_FORMAT)));
|
||||
Action<DeckUI> onUpdateDeckUICustomize = delegate(DeckUI deckUI)
|
||||
{
|
||||
SetDeckPointUpText(deckUI, bonusFormatList, bonusClassList);
|
||||
if (isBattleAgain)
|
||||
{
|
||||
if (deckUI.Deck.Format == GameMgr.GetIns().GetDataMgr().GetSelectDeckFormat() && deckUI.Deck.GetDeckID() == GameMgr.GetIns().GetDataMgr().GetSelectDeckId())
|
||||
{
|
||||
deckUI.SetTextAppealLabelLeft(Data.SystemText.Get("Card_0235"));
|
||||
}
|
||||
deckUI.SetSelectable(deckUI.Deck.IsUsable());
|
||||
}
|
||||
};
|
||||
DeckSelectUIDialog.Create(Data.SystemText.Get("Quest_0017"), deckGroupListData, defaultFormat, DeckSelectUIDialog.eFormatChangeUIType.UseOtherCategory, !isBattleAgain, delegate(DialogBase dialog, DeckData deck2)
|
||||
{
|
||||
QuestDeckSelectConfirmDialog.Create(dialog, deck2, isBattleAgain);
|
||||
}, new DeckSelectUI.InitOptions
|
||||
{
|
||||
OnUpdateDeckUICustomize = onUpdateDeckUICustomize,
|
||||
FirstDisplayPageIndexGetter = new QuestFirstDisplayPageIndexGetter()
|
||||
});
|
||||
}
|
||||
|
||||
private static void SetDeckPointUpText(DeckUI deckUI, List<Format> bonusFormatList, List<CardBasePrm.ClanType> bonusClassList)
|
||||
{
|
||||
if (!GameMgr.GetIns().GetDataMgr().QuestBattleData.IsMockBattle)
|
||||
{
|
||||
DeckData deck = deckUI.Deck;
|
||||
if (bonusFormatList.Contains(deck.Format) && bonusClassList.Contains((CardBasePrm.ClanType)deck.GetDeckClassID()))
|
||||
{
|
||||
deckUI.SetTextAppealLabelRight(Data.SystemText.Get("Quest_0029"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void OnQuestConfirmButtonClick(GameObject g)
|
||||
{
|
||||
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_BTN_DECIDE);
|
||||
DialogBase dialogBase = UIManager.GetInstance().CreateDialogClose();
|
||||
dialogBase.SetSize(DialogBase.Size.M);
|
||||
dialogBase.SetTitleLabel(Data.SystemText.Get("Quest_0005"));
|
||||
dialogBase.SetButtonLayout(DialogBase.ButtonLayout.CloseBtn);
|
||||
QuestAllConfirmDialog questAllConfirmDialog = UnityEngine.Object.Instantiate(_questAllConfirmDialogOriginal);
|
||||
questAllConfirmDialog.CreateQuestAllConfirmDialog();
|
||||
dialogBase.SetObj(questAllConfirmDialog.gameObject);
|
||||
}
|
||||
|
||||
private void OnPointConfirmButtonClick(GameObject g)
|
||||
{
|
||||
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_BTN_DECIDE);
|
||||
DialogBase dialogBase = UIManager.GetInstance().CreateDialogClose();
|
||||
dialogBase.SetSize(DialogBase.Size.M);
|
||||
dialogBase.SetTitleLabel(Data.SystemText.Get("Quest_0006"));
|
||||
dialogBase.SetButtonLayout(DialogBase.ButtonLayout.CloseBtn);
|
||||
QuestPointConfirmDialog questPointConfirmDialog = UnityEngine.Object.Instantiate(_questPointConfirmDialogOriginal);
|
||||
questPointConfirmDialog.CreateQuestConfirmDialog(ShowUnreceivedRewardCount);
|
||||
dialogBase.SetObj(questPointConfirmDialog.gameObject);
|
||||
dialogBase.SetLayer("Loading");
|
||||
dialogBase.OnClose = delegate
|
||||
{
|
||||
questPointConfirmDialog.OnCloseQuestConfirmnDialog();
|
||||
};
|
||||
dialogBase.SetPanelDepth(1);
|
||||
}
|
||||
|
||||
private void OnClickBonusDetailButton(GameObject g)
|
||||
{
|
||||
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_BTN_DECIDE);
|
||||
if (string.IsNullOrEmpty(_announceId))
|
||||
{
|
||||
SystemText systemText = Data.SystemText;
|
||||
DialogBase dialogBase = UIManager.GetInstance().CreateDialogClose();
|
||||
dialogBase.SetSize(DialogBase.Size.M);
|
||||
dialogBase.SetTitleLabel(systemText.Get("Quest_0033"));
|
||||
dialogBase.SetText(systemText.Get("Quest_0034"));
|
||||
dialogBase.SetButtonLayout(DialogBase.ButtonLayout.OkBtn);
|
||||
}
|
||||
else
|
||||
{
|
||||
UIManager.GetInstance().WebViewHelper.OpenAnnounceWebView(_announceId);
|
||||
DialogBase webViewDialog = UIManager.GetInstance().WebViewHelper.WebViewDialog;
|
||||
if (webViewDialog != null)
|
||||
{
|
||||
_spriteAtlasOverwriter.AddExceptionObjects(new List<UISpriteAtlasOverwriter.TargetObject>
|
||||
{
|
||||
new UISpriteAtlasOverwriter.TargetObject(webViewDialog.gameObject, includeChildren: true)
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void ShowUnreceivedRewardCount(int count)
|
||||
{
|
||||
_rewardRecieveNumberLabel.gameObject.SetActive(count > 0);
|
||||
_rewardRecieveNumberLabel.text = count.ToString();
|
||||
if (count > 99)
|
||||
{
|
||||
_rewardRecieveNumberLabel.text = 99 + "+";
|
||||
}
|
||||
else
|
||||
{
|
||||
_rewardRecieveNumberLabel.text = count.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
private void InitLastUsedDeckSaveData(int questId)
|
||||
{
|
||||
QuestLastUsedDeckSaveDataManager questLastUsedDeckSaveDataManager = new QuestLastUsedDeckSaveDataManager();
|
||||
if (questLastUsedDeckSaveDataManager.QuestId != questId)
|
||||
{
|
||||
questLastUsedDeckSaveDataManager.DeleteAll();
|
||||
PlayerPrefsWrapper.SetValue(PlayerPrefsWrapper.BOSSRUSH_LAST_USED_DECK_INFO, string.Empty);
|
||||
questLastUsedDeckSaveDataManager.SaveQuestId(questId);
|
||||
}
|
||||
}
|
||||
|
||||
private void CreatePuzzleQuestSelectDialog()
|
||||
{
|
||||
StartCoroutine(PuzzleUtil.OpenPuzzleSelectDialogCoroutine(OnDecidePuzzleQuest, OnOpenPuzzleSelectDialog, OnClosePuzzleSelectDialog));
|
||||
}
|
||||
|
||||
private void OnDecidePuzzleQuest(PuzzleQuestData data, int difficulty)
|
||||
{
|
||||
GameMgr.GetIns().GetDataMgr().QuestFirstSelectType = FirstSelectType.PUZZLE;
|
||||
PuzzleUtil.SetPuzzleQuestData(data, difficulty, DataMgr.BattleType.Quest);
|
||||
PuzzleUtil.ChangeSceneToPuzzleQuest(data);
|
||||
}
|
||||
|
||||
private void OnOpenPuzzleSelectDialog(QuestOpenPuzzleDialogTask task)
|
||||
{
|
||||
_puzzleQuestInfo = task.PuzzleQuestInfo;
|
||||
StartCoroutine(LoadPuzzleResourcesCoroutine());
|
||||
}
|
||||
|
||||
private void OnClosePuzzleSelectDialog(QuestOpenPuzzleDialogTask task)
|
||||
{
|
||||
UIManager.GetInstance()._Footer.UpdateQuestBadgeIcon(task.IsDisplayBadge);
|
||||
UpdatePuzzleQuestUI();
|
||||
}
|
||||
|
||||
private IEnumerator LoadPuzzleResourcesCoroutine()
|
||||
{
|
||||
UIManager.GetInstance().createInSceneCenterLoading();
|
||||
List<string> list = CollectPuzzleResourcePaths().Except(_loadPathList).ToList();
|
||||
_loadPathList.AddRange(list);
|
||||
yield return Toolbox.ResourcesManager.LoadAssetGroupAsync(list, null);
|
||||
UIManager.GetInstance().closeInSceneCenterLoading();
|
||||
}
|
||||
|
||||
private void UpdatePuzzleQuestUI()
|
||||
{
|
||||
foreach (QuestSelectionButtonBase selectionButton in _selectionButtonList)
|
||||
{
|
||||
QuestPuzzleSelectionButton questPuzzleSelectionButton = selectionButton as QuestPuzzleSelectionButton;
|
||||
if (questPuzzleSelectionButton != null)
|
||||
{
|
||||
questPuzzleSelectionButton.InitializePuzzleQuest(_puzzleQuestInfo);
|
||||
}
|
||||
}
|
||||
ChangeChara(_puzzleQuestInfo.CharaId, isPlayChangeAnimation: false);
|
||||
}
|
||||
|
||||
private void OnClickTweetBanner()
|
||||
{
|
||||
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_BTN_DECIDE);
|
||||
QuestCampaignDialog.Create(null, OnTweet);
|
||||
}
|
||||
|
||||
private void OnTweet()
|
||||
{
|
||||
_isTweetFinish = true;
|
||||
UpdateTweetButtonVisible(isSelectBeginner: false);
|
||||
}
|
||||
|
||||
private void LateUpdate()
|
||||
{
|
||||
AllLabelColorChanger.ChangeAllLabel(base.gameObject);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user