This repository has been archived on 2024-05-12. You can view files and clone it, but cannot push or open issues or pull requests.
GMTK-2023/Game/MainGame/GameLogic.cs

66 lines
1.5 KiB
C#

using Godot;
using System;
public partial class GameLogic : Node
{
[ExportCategory("ToInstantiate")]
[Export] PackedScene MonsterSpawner;
private Node _MonsterSpawner;
[Export]
private Node _King;
[Export] PackedScene Player;
private Node _Player;
[ExportCategory("Other")]
[Export]
public Label scoreLabel;
private float score = 0;
private int highscore = 0;
[ExportCategory("KingData")]
private int life = 10;
[Export] TextureProgressBar lifebar;
// Called when the node enters the scene tree for the first time.
public override void _Ready()
{
highscore = ((int)GetNode("/root/Globals").Call("GetHighscore"));
GD.Randomize();
if(FileAccess.FileExists("user://savegame.sav"))
{
var toRead = FileAccess.Open("user://savegame.sav", FileAccess.ModeFlags.Read);
score = float.Parse(toRead.GetLine());
}
_MonsterSpawner = MonsterSpawner.Instantiate();
_Player = Player.Instantiate();
AddChild(_MonsterSpawner);
AddChild(_Player);
}
// Called every frame. 'delta' is the elapsed time since the previous frame.
public override void _Process(double delta)
{
if(Input.GetActionStrength("Kill") > 0)
{
OnClose();
GetTree().ChangeSceneToFile("res://Menus/Shop/Shop.tscn");
}
score += (float)delta * 10;
scoreLabel.Text = "Score: " + ((int)score).ToString() + "\n" + "Highscore: " + highscore.ToString() ;
}
public void OnClose()
{
var SaveGame = FileAccess.Open("user://savegame.sav", FileAccess.ModeFlags.Write);
SaveGame.StoreLine(score.ToString());
}
}