123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324 |
- using System;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- public class FacilityPowerUpManager : MonoBehaviour
- {
- public Facility selectingFacility
- {
- get
- {
- return this.m_SelectingFacility;
- }
- set
- {
- this.m_SelectingFacility = value;
- }
- }
- private void Start()
- {
- this.SetUpBackGroundAndCamera();
- this.GetTagBackup();
- this.OpenFacilityUIList();
- this.SetOKButtonEnable(this.IsOKButtonEnable());
- CharacterMgr characterMgr = GameMain.Instance.CharacterMgr;
- Maid maid = null;
- if (characterMgr.GetMaidCount() > 0 && characterMgr.GetMaid(0))
- {
- maid = characterMgr.GetMaid(0);
- }
- else
- {
- Debug.LogWarning("メイド0番の取得に失敗しました。");
- }
- this.m_Maid = maid;
- for (int i = 0; i < characterMgr.GetMaidCount(); i++)
- {
- if (characterMgr.GetMaid(i) != null)
- {
- characterMgr.GetMaid(i).Visible = false;
- }
- }
- if (!uGUITutorialPanel.IsOpened())
- {
- uGUITutorialPanel.OpenTutorial("SceneFacilityPowerUp", null, false);
- }
- }
- private void SetUpBackGroundAndCamera()
- {
- GameMain.Instance.BgMgr.ChangeBg("EmpireClub_Entrance");
- GameMain.Instance.MainCamera.FadeIn(0.5f, false, null, true, true, default(Color));
- CameraMain mainCamera = GameMain.Instance.MainCamera;
- GameMain.Instance.MainLight.Reset();
- mainCamera.Reset(CameraMain.CameraType.Target, true);
- this.m_CachedMainCameraControlEnabled = mainCamera.GetControl();
- mainCamera.SetControl(false);
- }
- public void OpenFacilityUIList()
- {
- this.m_FacilityUIList.Show();
- this.SetOKButtonEnable(this.IsOKButtonEnable());
- this.m_FacilityUIInfo.gameObject.SetActive(false);
- }
- public void OpenFacilityUIPowerUpList(Facility facility)
- {
- this.selectingFacility = facility;
- this.m_FacilityUIPowerUpList.Show(facility, delegate(Facility.PowerUpRecipe powerUpRecipe)
- {
- this.OpenFacilityUIMaterialList(powerUpRecipe.id);
- this.OpenFacilityUIPreviousDefaultParams(powerUpRecipe.id);
- this.OpenFacilityUINextDefaultParams(powerUpRecipe.id);
- this.OpenFacilityUIPreviousAdditionalParams(powerUpRecipe.id);
- });
- this.m_NowRecipeData = null;
- this.m_FacilityUIPowerUpMaterialList.DeleteDropdown();
- this.m_FacilityUIPreviousParams.ResetDefaultParam();
- this.m_FacilityUIPreviousParams.ResetAdditionalParam();
- this.m_FacilityUINextParams.ResetDefaultParam();
- this.m_FacilityUINextParams.ResetAdditionalParam();
- this.SetOKButtonEnable(this.IsOKButtonEnable());
- }
- public void OpenFacilityUIMaterialList(int recipeID)
- {
- this.m_NowRecipeData = new Facility.RecipeData(recipeID);
- this.m_FacilityUIPowerUpMaterialList.Show(recipeID, this.selectingFacility, delegate(int[] materialIDArray)
- {
- this.OpenFacilityUINextAdditionalParams(materialIDArray);
- });
- this.SetOKButtonEnable(this.IsOKButtonEnable());
- }
- public void OpenFacilityUIPreviousDefaultParams(int recipeID)
- {
- this.m_FacilityUIPreviousParams.Show(recipeID);
- this.SetOKButtonEnable(this.IsOKButtonEnable());
- }
- public void OpenFacilityUIPreviousAdditionalParams(int recipeID)
- {
- Facility selectingFacility = this.m_SelectingFacility;
- Facility.RecipeData recipeData = selectingFacility.GetRecipeData(recipeID);
- Facility.FacilityParameter parameter = Facility.RecipeData.CalcFacilityParameter(recipeData);
- this.m_FacilityUIPreviousParams.UpdateAdditionalParams(parameter);
- this.SetOKButtonEnable(this.IsOKButtonEnable());
- }
- public void OpenFacilityUINextDefaultParams(int recipeID)
- {
- this.m_FacilityUINextParams.Show(recipeID);
- this.SetOKButtonEnable(this.IsOKButtonEnable());
- }
- public void OpenFacilityUINextAdditionalParams(params int[] materialID)
- {
- Facility.FacilityParameter previous = new Facility.FacilityParameter();
- Facility.FacilityParameter next = new Facility.FacilityParameter();
- Facility.RecipeData recipeData = this.m_SelectingFacility.GetRecipeData(this.m_NowRecipeData.id);
- if (recipeData != null)
- {
- previous = Facility.RecipeData.CalcFacilityParameter(recipeData);
- }
- next = Facility.RecipeData.CalcFacilityParameter(materialID);
- this.m_FacilityUINextParams.UpdateAdditionalParamsComparison(previous, next);
- if (materialID != null && this.m_NowRecipeData != null)
- {
- this.m_NowRecipeData.materialIDArray = materialID;
- }
- this.SetOKButtonEnable(this.IsOKButtonEnable());
- }
- public void RefreshAllFacilityUI()
- {
- this.m_SelectingFacility = null;
- this.m_NowRecipeData = null;
- this.m_FacilityUIList.Show();
- this.m_FacilityUIPowerUpList.Hide();
- this.m_FacilityUIPowerUpMaterialList.DeleteDropdown();
- this.m_FacilityUIPreviousParams.ResetDefaultParam();
- this.m_FacilityUIPreviousParams.ResetAdditionalParam();
- this.m_FacilityUINextParams.ResetDefaultParam();
- this.m_FacilityUINextParams.ResetAdditionalParam();
- this.SetOKButtonEnable(this.IsOKButtonEnable());
- }
- public void ButtonEventOK()
- {
- if (!GameMain.Instance.SysDlg.IsDecided)
- {
- return;
- }
- uGUIUtility.SetActiveEventSystem(false);
- GameMain.Instance.SysDlg.Show(SceneFacilityManagement.GetDialogText("施設の強化を実行しますか?"), SystemDialog.TYPE.YES_NO, delegate
- {
- GameMain.Instance.SysDlg.Close();
- this.m_SelectingFacility.SetRecipeData(this.m_NowRecipeData);
- if (this.m_Maid != null && this.m_SelectingFacility != null && this.m_NowRecipeData != null)
- {
- GameMain.Instance.FacilityMgr.AddCacheFacilityPowewrUpResult(this.m_Maid, this.m_SelectingFacility, this.m_NowRecipeData);
- }
- int facilityAchievement = GameMain.Instance.FacilityMgr.GetFacilityAchievement<int>("施設強化回数");
- GameMain.Instance.FacilityMgr.SetFacilityAchievement("施設強化回数", (facilityAchievement + 1).ToString());
- uGUIUtility.SetActiveEventSystem(true);
- this.SceneClose(delegate
- {
- this.JumpLabel(this.m_strScriptLabelPowerUp);
- });
- }, delegate
- {
- GameMain.Instance.SysDlg.Close();
- uGUIUtility.SetActiveEventSystem(true);
- });
- }
- public void ButtonEventEXIT()
- {
- if (!GameMain.Instance.SysDlg.IsDecided)
- {
- return;
- }
- uGUIUtility.SetActiveEventSystem(false);
- GameMain.Instance.SysDlg.Show(SceneFacilityManagement.GetDialogText("施設の強化をせずに終了します。よろしいですか?"), SystemDialog.TYPE.YES_NO, delegate
- {
- GameMain.Instance.SysDlg.Close();
- uGUIUtility.SetActiveEventSystem(true);
- this.SceneClose(delegate
- {
- this.JumpLabel(this.m_strScriptLabelReturn);
- });
- }, delegate
- {
- GameMain.Instance.SysDlg.Close();
- uGUIUtility.SetActiveEventSystem(true);
- });
- }
- public void UpdateFacilityInfo(Facility facility)
- {
- if (!this.m_FacilityUIInfo.gameObject.activeSelf)
- {
- this.m_FacilityUIInfo.gameObject.SetActive(true);
- }
- this.m_FacilityUIInfo.SetFacilityInfo(facility, true);
- }
- private bool IsOKButtonEnable()
- {
- if (!this.m_SelectingFacility)
- {
- return false;
- }
- if (this.m_NowRecipeData == null)
- {
- return false;
- }
- FacilityDataTable.FacilityRecipeData facilityRecipeData = FacilityDataTable.GetFacilityRecipeData(this.m_NowRecipeData.id);
- if (!facilityRecipeData.IsSatisfyTheConditions())
- {
- return false;
- }
- foreach (int materialID in this.m_NowRecipeData.materialIDArray)
- {
- if (!GameMain.Instance.FacilityMgr.GetFacilityPowerUpItemEnable(materialID))
- {
- return false;
- }
- }
- return true;
- }
- private void SetOKButtonEnable(bool b)
- {
- this.m_ButtonOK.interactable = b;
- }
- private void GetTagBackup()
- {
- Dictionary<string, string> tag_backup = GameMain.Instance.ScriptMgr.adv_kag.tag_backup;
- string a;
- if (tag_backup != null && tag_backup.TryGetValue("name", out a) && a == "SceneFacilityPowerUp")
- {
- if (!tag_backup.TryGetValue("label", out this.m_strScriptLabelReturn))
- {
- Debug.LogWarning("[SceneFacilityPowerUp]戻り先ラベル「label」がありません");
- }
- if (!tag_backup.TryGetValue("label_power_up", out this.m_strScriptLabelPowerUp))
- {
- Debug.LogWarning("[SceneFacilityPowerUp]戻り先ラベル「label_power_up」が無い");
- }
- }
- }
- private void JumpLabel(string strLabel)
- {
- if (string.IsNullOrEmpty(strLabel))
- {
- Debug.LogWarning("[SceneFacilityPowerUp]スクリプトのジャンプ先ラベルが空でした");
- return;
- }
- ScriptManager scriptMgr = GameMain.Instance.ScriptMgr;
- scriptMgr.adv_kag.JumpLabel(strLabel);
- scriptMgr.adv_kag.Exec();
- }
- private void SceneClose(Action callback)
- {
- GameMain.Instance.MainCamera.FadeOut(0.5f, false, delegate
- {
- if (callback != null)
- {
- callback();
- }
- }, true, default(Color));
- }
- private void OnDestroy()
- {
- if (GameMain.Instance != null)
- {
- CameraMain mainCamera = GameMain.Instance.MainCamera;
- if (mainCamera != null)
- {
- mainCamera.SetControl(this.m_CachedMainCameraControlEnabled);
- }
- }
- }
- [SerializeField]
- private FacilityUIList m_FacilityUIList;
- [SerializeField]
- private FacilityUIPowerUpList m_FacilityUIPowerUpList;
- [SerializeField]
- private FacilityUIPowerUpMaterialList m_FacilityUIPowerUpMaterialList;
- [SerializeField]
- private FacilityUIPreviewParams m_FacilityUIPreviousParams;
- [SerializeField]
- private FacilityUIPreviewParams m_FacilityUINextParams;
- [SerializeField]
- private FacilityInfoUI m_FacilityUIInfo;
- [SerializeField]
- private Button m_ButtonOK;
- private Facility m_SelectingFacility;
- private Facility.RecipeData m_NowRecipeData;
- private Maid m_Maid;
- private bool m_CachedMainCameraControlEnabled = true;
- private string m_strScriptLabelReturn = string.Empty;
- private string m_strScriptLabelPowerUp = string.Empty;
- }
|