public static void CreateAsset()
        {
            MagicDescription newAsset = ScriptableObject.CreateInstance <MagicDescription>();

            AssetDatabase.CreateAsset(newAsset, Helper.GetSelectedPathOrFallback() + "/magicdesc.asset");
            EditorUtility.FocusProjectWindow();
            Selection.activeObject = newAsset;
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }