public static void CreateAsset() { MagicDescription newAsset = ScriptableObject.CreateInstance <MagicDescription>(); AssetDatabase.CreateAsset(newAsset, Helper.GetSelectedPathOrFallback() + "/magicdesc.asset"); EditorUtility.FocusProjectWindow(); Selection.activeObject = newAsset; }
public void InitializeMagicList(MagicId[] _availableMagic) { m_ListContainer.SetActive(true); m_SelectedMagic.gameObject.SetActive(false); m_SelectedMagic.onCancel.RemoveAllListeners(); m_SelectedMagic.onCancel.AddListener(() => { ShowMagicList(); }); int btnId = 0; foreach (MagicId id in _availableMagic) { if (btnId == m_BtnMagic.Length) { break; } MagicDescription desc = MagicManager.GetInstance().GetDescription(id); if (desc == null) { Debug.LogError(string.Format("Can't find magic description with id {0}", id)); continue; } CustomButton btn = m_BtnMagic[btnId]; btn.GetComponentInChildren <Text>().text = desc.m_DisplayName; btn.onCancel.RemoveAllListeners(); btn.onCancel.AddListener(() => { Close(); }); MagicId capturedId = id; //necessary for the lambda to work btn.onClick.RemoveAllListeners(); btn.onClick.AddListener(() => { Clicked(capturedId); }); btn.gameObject.SetActive(true); PawnStatistics stats = GameTurnManager.GetInstance().GetCurrentPawnStatistics(); if (desc.m_Power.CanBeUsed(stats)) { btn.IsUnselectable = false; } else { btn.IsUnselectable = true; } btn.Send(WidgetEvent.Unselect); ++btnId; } for (int i = btnId; i < m_BtnMagic.Length; ++i) { m_BtnMagic[i].gameObject.SetActive(false); } m_BtnMagic[0].Send(WidgetEvent.Select); }
private void OnMagicMagicSelected(MagicId _id) { //get the action MagicDescription desc = MagicManager.GetInstance().GetDescription(_id); ActionRunner magicAction = GameTurnManager.GetInstance().GetCurrentPawn().GetComponent <PawnActions>().GetAction(_id); magicAction.ActionDescription = desc; //set the action in the game master GameMaster.GetInstance().SetSelectedAction(magicAction); //show enemy selection WidgetManager.GetInstance().Show(m_CanvasEnemyList.gameObject, false, false); m_CanvasEnemyList.OnEnemySelected = OnMagicEnemySelected; m_CanvasEnemyList.OnCanvasClosed = OnMagicEnemyClosed; m_CanvasEnemyList.Show(); m_CanvasEnemyList.SetColumn(1); }