示例#1
0
    IEnumerator StartFight()
    {
        var dt = Data[Random.Range(0, Data.Length)];

        var spirit = Spirit.GenerateSpirit(dt.SpiritType, dt.Level);
        var y      = ScriptableObject.CreateInstance <SpiritTeam>();

        y.Spirits = new List <Spirit>()
        {
            spirit
        };

        var x = ScriptableObject.CreateInstance <SpiritTeam>();

        x.Spirits = Player.Instance.team;

        var bo = new BattleObject(y, x);

        yield return(StartCoroutine(LoadBattle(bo)));

        if (bo.winner == 1)
        {
            StartCoroutine(Player.Instance.DefeatedInFight());
        }
    }
        private void RenderGeneratorStuff()
        {
            SpiritTeam t     = target as SpiritTeam;
            var        sprop = serializedObject.FindProperty("Spirits");

            libraryList = library.Spirits.Select(s => s.Name).ToArray(); // list of available spirits

            EditorGUILayout.BeginHorizontal();
            selectedListItem = EditorGUILayout.Popup(selectedListItem, libraryList);
            selectedLevel    = Mathf.Clamp(EditorGUILayout.IntField(selectedLevel), 1, 100);
            GUI.enabled      = t.Spirits.Count < 6;
            if (GUILayout.Button("Generate"))
            {
                var generated = Spirit.GenerateSpirit(library.Spirits[selectedListItem], selectedLevel, atkLibrary);

                int newIndex = sprop.arraySize;
                sprop.InsertArrayElementAtIndex(newIndex);
                var newspirit = sprop.GetArrayElementAtIndex(newIndex);

                // newspirit.FindPropertyRelative("Name").stringValue = "test";
                fillPropertyFromObject(newspirit, generated);
            }
            GUI.enabled = true;
            EditorGUILayout.EndHorizontal();
        }
    public IEnumerator Interact()
    {
        var Dialog = GetComponent <Dialog>();

        Dialog.SetProperty("SendToExtractor", Game.Instance.QuestPart1Variables.SendToExtractor);

        Dialog.SetProperty("PickedExtractor", Player.Instance.Items.Contains("Extractor"));
        Dialog.SetProperty("PickedSpirit", Player.Instance.team.Count > 0);

        Dialog.currentStatement = Dialog.Container.StartingPoint;
        yield return(StartCoroutine(DialogWindow.Instance.ShowDialog(Dialog)));

        if (Dialog.currentStatement.name == "ChooseSpirit")
        {
            Player.Instance.team.Add(Spirit.GenerateSpirit(SpiritType, 3));
        }

        yield return(null);
    }