Exemple #1
0
        protected override void OnTriggerActivate(Collider2D other)
        {
            if (!saved && other.CompareTag("Player"))
            {
                PlayerUpgrades upgrades = other.GetComponent <PlayerUpgrades>();

                if (upgrades)
                {
                    GameData gameData = upgrades.GetDataForSaving();
                    if (gameData != null)
                    {
                        DialogueHandler.instance.StartDialogue(saveDialogue);

                        saved = true;

                        gameData.spawnLocation = this.UniqueID;

                        SaveProfile saveProfile = new SaveProfile(gameData.ProfileName, true);
                        saveProfile.Save(gameData);
                    }
                    else
                    {
                        Debug.LogWarning("SaveStation: " + nameof(GameData) + " is null.");
                    }
                }
                else
                {
                    Debug.LogWarning("SaveStation: Player doesn't have " + nameof(PlayerUpgrades) + " component.");
                }

                Health health = other.GetComponent <Health>();

                if (health)
                {
                    health.Heal(health.MaxHP);
                }
                else
                {
                    Debug.LogWarning("SaveStation: Player doesn't have" + nameof(Health) + " component.");
                }
            }
        }
        private void DoConsole(int windowID)
        {
            GUILayout.BeginVertical();
            {
                GUILayout.BeginHorizontal();
                {
                    destination = new UniqueID(GUILayout.TextField(destination.SceneName), GUILayout.TextField(destination.ObjectName));

                    if (GUILayout.Button("Teleport", GUILayout.MaxWidth(100)) &&
                        !string.IsNullOrWhiteSpace(destination.SceneName) &&
//                        SceneManager.GetSceneByName(destination.SceneName).IsValid() &&
                        !string.IsNullOrWhiteSpace(destination.ObjectName))
                    {
                        if (player)
                        {
                            for (int i = 0; i < SceneManager.sceneCount; i++)
                            {
                                Scene scene = SceneManager.GetSceneAt(i);
                                if (scene != player.scene)
                                {
                                    SceneLoader loader = new SceneLoader(loadingSceneName);

                                    loader.ScenesToUnload.Add(scene.name);
                                    loader.Destination = destination;
                                    loader.GameData    = playerUpgrades.GetDataForSaving();

                                    loader.FadeScenes();
                                    break;
                                }
                            }
                        }
                    }
                }
                GUILayout.EndHorizontal();
                GUILayout.BeginHorizontal();
                GUILayout.Label("Health: ");
                newHP = GUILayout.TextField(newHP);
                if (GUILayout.Button("Set", GUILayout.Width(100)))
                {
                    health.Hp = Int32.Parse(newHP);
                }
                GUILayout.EndHorizontal();
                GUILayout.BeginHorizontal();
                GUILayout.Label("MaxHealth: ");
                newMaxHP = GUILayout.TextField(newMaxHP);
                if (GUILayout.Button("Set", GUILayout.Width(100)))
                {
                    playerUpgrades.MaxHealth = Int32.Parse(newMaxHP);
                }
                GUILayout.EndHorizontal();
                health.isInvulnerable           = GUILayout.Toggle(health.isInvulnerable, "Invunerable");
                playerUpgrades.HasDoubleJump    = GUILayout.Toggle(playerUpgrades.HasDoubleJump, "Double Jump");
                playerUpgrades.HasScythe        = GUILayout.Toggle(playerUpgrades.HasScythe, "Scythe");
                playerUpgrades.HasFireAttack    = GUILayout.Toggle(playerUpgrades.HasFireAttack, "Fire Attack");
                playerUpgrades.HasTalkedToJudas = GUILayout.Toggle(playerUpgrades.HasTalkedToJudas, "Talked to Judas");

                foreach (var key in playerUpgrades.Keys)
                {
                    GUILayout.Label(key.ToString());
                    if (GUILayout.Button("Remove", GUILayout.Width(100)))
                    {
                        playerUpgrades.Keys.Remove(key);
                        break;
                    }
                }

                GUILayout.Label("Add Key:");
                newKey = new UniqueID(GUILayout.TextField(newKey.SceneName), GUILayout.TextField(newKey.ObjectName));
                if (GUILayout.Button("Add", GUILayout.MaxWidth(100)) &&
                    !string.IsNullOrWhiteSpace(newKey.SceneName) &&
//                    SceneManager.GetSceneByName(newKey.SceneName).IsValid() &&
                    !string.IsNullOrWhiteSpace(newKey.ObjectName))
                {
                    playerUpgrades.Keys.Add(newKey);
                }
            }
            GUILayout.EndVertical();
        }