示例#1
0
    public static void LoadGame(SceneTree tree)
    {
        string save = "";

        try {
            if (!FileEncoder.SaveExists())
            {
                return;
            }
            save = FileEncoder.Read();
        } catch (Utils.WrongVersionException e) {
            ThoughtPopup.Instance.OpenCustomMessage(e.GetMessage() + "\n\n[url=~title]Back to the title screen[/url]");
            var callback = Callback.ConnectOnce(ThoughtPopup.Instance, "popup_hide", () => tree.ChangeScene("res://Scenes/TitleScreen.tscn"));
            return;
        }
        var saveItems = Loader.LoadMany(save);

        GameData.Instance = (GameData)saveItems[0];
        RNG.StartCycle((int)saveItems[1]);
    }
示例#2
0
    // Called when the node enters the scene tree for the first time.
    public override void _Ready()
    {
        GetNode <Label>("Version").Text += Global.GameVersion;
        SFXHandler.Instance.Change(GameData.GameState.None);

        GetNode <AnimationPlayer>("AnimationPlayer").Connect("animation_finished",
                                                             this, nameof(OnSplashScreenFinish));

        TitleScreenButtons genericTitleScreen = GetNode <TitleScreenButtons>("Menu/Menu buttons");

        if (FileEncoder.SaveExists())
        {
            genericTitleScreen.newGameConfirmationPath = new NodePath("../Confirmation");
        }

        Callback.Connect(genericTitleScreen, nameof(TitleScreenButtons.NewGame), () => {
            FileEncoder.Delete();
            GameData.Instance.Deck = CardData.DefaultDeck();
        });
        Callback.Connect(genericTitleScreen, nameof(TitleScreenButtons.LoadGame), () => Global.LoadGame(GetTree()));

        GameData.Instance.Deck = CardData.All();
    }