66 lines
1.5 KiB
C#
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());
|
|
}
|
|
|
|
}
|