using ProjectBase.UI; using ShotSimulator.Train; using ShotSimulator.Train.Info; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Localization.Components; using UnityEngine.UI; namespace ShotSimulator.UI { public class TrainTaskDetailUIView : BaseUIView { [SerializeField] private Button startButton; [SerializeField] private Button closeButton; [SerializeField] private Toggle standardToggle; [SerializeField] private Toggle advanceToggle; [SerializeField] private Toggle professionalToggle; public LocalizeStringEvent TrainNameLocalize; public LocalizeStringEvent TrainDetailLocalize; public LocalizeStringEvent TrainTypeLocalize; public Image showImage; private BaseTrainInfo m_TrainInfo; private DifficultyType current_DifficultyType; protected override void InitUIObjects() { base.InitUIObjects(); standardToggle.onValueChanged.AddListener((isOn) => { if (isOn) OnDifficultTypeChanged(DifficultyType.Standard); }); advanceToggle.onValueChanged.AddListener((isOn) => { if (isOn) OnDifficultTypeChanged(DifficultyType.Advance); }); professionalToggle.onValueChanged.AddListener((isOn) => { if (isOn) OnDifficultTypeChanged(DifficultyType.Professional); }); startButton.onClick.AddListener(OnStartButtonClick); closeButton.onClick.AddListener(OnCloseButtonClick); TrainNameLocalize.SetTable("LanguagesTable"); TrainDetailLocalize.SetTable("LanguagesTable"); TrainTypeLocalize.SetTable("LanguagesTable"); } protected override void UpdateArguments(params object[] args) { base.UpdateArguments(args); m_TrainInfo = args[0] as BaseTrainInfo; } protected override void UpdateViewCallBack() { base.UpdateViewCallBack(); TrainNameLocalize.SetEntry(m_TrainInfo.detail.nameID); TrainDetailLocalize.SetEntry(m_TrainInfo.detail.detailID); showImage.sprite = m_TrainInfo.detail.showTexAssetPath; switch (m_TrainInfo.trainType) { case TrainType.Accuracy: TrainTypeLocalize.SetEntry("train_type_marksmanship"); break; case TrainType.Cognition: TrainTypeLocalize.SetEntry("train_type_awareness"); break; case TrainType.Perceive: TrainTypeLocalize.SetEntry("train_type_aculty"); break; case TrainType.Reaction: TrainTypeLocalize.SetEntry("train_type_flicks"); break; case TrainType.Speed: TrainTypeLocalize.SetEntry("train_type_reflexes"); break; case TrainType.Track: TrainTypeLocalize.SetEntry("train_type_trace"); break; } } protected override void OnShowCallBack() { base.OnShowCallBack(); startButton.interactable = true; standardToggle.isOn = true; } private void OnDifficultTypeChanged(DifficultyType type) { current_DifficultyType = type; } private void OnStartButtonClick() { startButton.interactable = false; TrainTaskLoader.GetInstance().PrepareTrain(m_TrainInfo, current_DifficultyType); } private void OnCloseButtonClick() { UIManager.GetInstance().HideUIView(this); } } }