55 lines
1.2 KiB
GDScript
Executable File
55 lines
1.2 KiB
GDScript
Executable File
@tool
|
|
class_name Save
|
|
extends Resource
|
|
|
|
|
|
enum Difficulty {EASY, NORMAL, HARD}
|
|
enum Projectile {BLAST, FIRE, ICE, LASER}
|
|
|
|
|
|
@export var slot: int = 1
|
|
@export var playtime: int = 0
|
|
@export var difficulty: Difficulty = Difficulty.NORMAL
|
|
@export var max_health: int = 100
|
|
@export var xp: int = 0
|
|
@export var room: String = "labs"
|
|
|
|
@export var atk: int = 1
|
|
@export var def: int = 1
|
|
@export var con: int = 1
|
|
@export var chg: int = 1
|
|
|
|
@export var projectile: Projectile = Projectile.BLAST;
|
|
|
|
@export var fire: bool = false
|
|
@export var ice: bool = false
|
|
@export var laser: bool = false
|
|
@export var roll: bool = false
|
|
@export var wall: bool = false
|
|
@export var pound: bool = false
|
|
@export var slice: bool = false
|
|
|
|
@export var lock_1: bool = false
|
|
@export var lock_2: bool = false
|
|
@export var lock_3: bool = false
|
|
|
|
|
|
func _init(save_slot: int):
|
|
self.slot = save_slot
|
|
|
|
|
|
func save_to_disk() -> Error:
|
|
return ResourceSaver.save(self, "user://slot_%s.res" % self.slot)
|
|
|
|
|
|
static func exists(save_slot: int) -> bool:
|
|
return ResourceLoader.exists("user://slot_%s.res" % save_slot)
|
|
|
|
|
|
static func load(save_slot: int) -> Save:
|
|
if exists(save_slot):
|
|
var save_data = ResourceLoader.load("user://slot_%s.res" % save_slot)
|
|
if save_data is Save:
|
|
return save_data
|
|
return null
|