waited far too long for an initial commit but here we are

This commit is contained in:
2023-11-08 14:28:55 +11:00
commit 0427a58635
299 changed files with 10191 additions and 0 deletions

View File

@ -0,0 +1,7 @@
extends Resource
class_name TowerStats
@export var can_target : Data.TargetType
@export var damage := 10.0
@export var fire_range := 20.0
@export var fire_rate := 1.0

View File

@ -0,0 +1,6 @@
extends Resource
class_name WeaponStats
@export var damage : int
@export var fire_rate : float
@export var fire_range : float

13
Scripts/Resources/card.gd Normal file
View File

@ -0,0 +1,13 @@
extends Resource
class_name Card
enum Faction {GENERIC}
@export var title : String
@export var rarity : Data.Rarity
@export var faction : Faction
@export var sprite : AtlasTexture
@export var turret : PackedScene
@export var weapon : PackedScene
@export var weapon_stats : WeaponStats
@export var tower_stats : TowerStats

View File

@ -0,0 +1,12 @@
extends Resource
class_name Enemy
@export var title = "dog"
@export var target_type : Data.EnemyType
@export var icon : Texture
@export var sprite : AtlasTexture
@export var spawn_power := 10
@export var health = 100
@export var penalty = 10
@export var movement_speed = 0.5
@export var spawn_cooldown = 1.0

View File

@ -0,0 +1,6 @@
extends Resource
class_name HeroClass
@export var hero_name : String = "Default"
@export var texture : AtlasTexture
@export var deck : Array[Card]

View File

@ -0,0 +1,63 @@
extends Resource
class_name PlayerKeymap
const SAVE_PATH := "user://keymap.tres"
@export var title : String
@export var move_forward : InputEventKey
@export var move_backward : InputEventKey
@export var move_left : InputEventKey
@export var move_right : InputEventKey
@export var jump : InputEventKey
@export var sprint : InputEventKey
@export var interact : InputEventKey
@export var open_text_chat : InputEventKey
@export var ready : InputEventKey
@export var pause : InputEventKey
@export var equip_card_in_gauntlet : InputEventKey
@export var view_map : InputEventKey
func apply():
replace_action_event("Move Forward", move_forward)
replace_action_event("Move Backward", move_backward)
replace_action_event("Move Left", move_left)
replace_action_event("Move Right", move_right)
replace_action_event("Jump", jump)
replace_action_event("Sprint", sprint)
replace_action_event("Interact", interact)
replace_action_event("Open Text Chat", open_text_chat)
replace_action_event("Ready", ready)
replace_action_event("Pause", pause)
replace_action_event("Equip In Gauntlet", equip_card_in_gauntlet)
replace_action_event("View Map", view_map)
func replace_action_event(action_string, event):
InputMap.action_erase_events(action_string)
InputMap.action_add_event(action_string, event)
func get_current_input_map():
move_forward = InputMap.action_get_events("Move Forward")[0]
move_backward = InputMap.action_get_events("Move Backward")[0]
move_left = InputMap.action_get_events("Move Left")[0]
move_right = InputMap.action_get_events("Move Right")[0]
jump = InputMap.action_get_events("Jump")[0]
sprint = InputMap.action_get_events("Sprint")[0]
interact = InputMap.action_get_events("Interact")[0]
open_text_chat = InputMap.action_get_events("Open Text Chat")[0]
ready = InputMap.action_get_events("Ready")[0]
pause = InputMap.action_get_events("Pause")[0]
equip_card_in_gauntlet = InputMap.action_get_events("Equip In Gauntlet")[0]
view_map = InputMap.action_get_events("View Map")[0]
func save_profile_to_disk():
get_current_input_map()
ResourceSaver.save(self, SAVE_PATH)
static func load_profile_from_disk() -> PlayerKeymap:
if ResourceLoader.exists(SAVE_PATH):
return ResourceLoader.load(SAVE_PATH)
return Data.keymaps[0]

View File

@ -0,0 +1,42 @@
extends Resource
class_name PlayerPreferences
const SAVE_PATH := "user://preferences.tres"
@export var mouse_sens := 28.0
@export var invert_lookY := false
@export var invert_lookX := false
@export var toggle_sprint := false
@export var vsync_mode := 1
@export var aa_mode := 0
@export var windowed_mode := 0
@export var hfov := 100.0
func apply_graphical_settings(viewport):
DisplayServer.window_set_vsync_mode(vsync_mode)
match aa_mode:
0:
viewport.use_taa = false
viewport.screen_space_aa = Viewport.SCREEN_SPACE_AA_DISABLED
1:
viewport.use_taa = false
viewport.screen_space_aa = Viewport.SCREEN_SPACE_AA_FXAA
2:
viewport.use_taa = true
viewport.screen_space_aa = Viewport.SCREEN_SPACE_AA_DISABLED
match windowed_mode:
0:
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)
1:
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)
2:
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_EXCLUSIVE_FULLSCREEN)
func save_profile_to_disk():
ResourceSaver.save(self, SAVE_PATH)
static func load_profile_from_disk() -> PlayerPreferences:
if ResourceLoader.exists(SAVE_PATH):
return ResourceLoader.load(SAVE_PATH)
return PlayerPreferences.new()

View File

@ -0,0 +1,47 @@
extends Resource
class_name PlayerProfile
signal display_name_changed(old_name, new_name)
signal preferred_class_changed(old_class, new_class)
const SAVE_PATH := "user://profile.tres"
@export var display_name := "Charlie"
@export var preferred_class := 0
func to_dict() -> Dictionary:
var dict = {}
dict["display_name"] = display_name
dict["preferred_class"] = preferred_class
return dict
static func from_dict(dict) -> PlayerProfile:
var output = PlayerProfile.new()
output.display_name = dict["display_name"]
output.preferred_class = dict["preferred_class"]
return output
func set_display_name(new_display_name):
if new_display_name == display_name:
return
var old_name = display_name
display_name = new_display_name
save_profile_to_disk()
display_name_changed.emit(old_name, display_name)
func get_display_name() -> String:
return display_name
func set_preferred_class(new_preferred_class):
if new_preferred_class == preferred_class:
return
var old_class = preferred_class
preferred_class = new_preferred_class
preferred_class_changed.emit(old_class, preferred_class)
func get_preferred_class() -> int:
return preferred_class
func save_profile_to_disk():
ResourceSaver.save(self, SAVE_PATH)
static func load_profile_from_disk() -> PlayerProfile:
if ResourceLoader.exists(SAVE_PATH):
return ResourceLoader.load(SAVE_PATH)
return PlayerProfile.new()

View File

@ -0,0 +1,8 @@
extends Resource
class_name StatusStats
@export var unique := false
@export var proc_frequency := 0.0
@export var duration := 1.0
@export var potency := 1.0
@export var icon : Texture