started research skills

This commit is contained in:
2024-03-29 10:25:53 -05:00
parent f57f7f5540
commit 39157dded2
29 changed files with 1282 additions and 19 deletions

View File

@@ -9,6 +9,9 @@ var _interaction_options: InteractionWheel
var _interacting := false
var _attempting_build: Building
var _build_placement: Sprite2D
var _in_menu := false
var _skills := Skills.new()
@onready var sprite: AnimatedSprite2D = $Sprite
@onready var interaction_timer: Timer = $InteractionTimer
@@ -17,7 +20,7 @@ const BUILD_MENU = preload("res://scene/build_menu.tscn")
const BUILDING_BASE = preload("res://data/buildings/building_base.tscn")
func _physics_process(delta: float) -> void:
var input_direction := Input.get_vector("move_left", "move_right", "move_up", "move_down")
var input_direction := Input.get_vector("move_left", "move_right", "move_up", "move_down") if not _in_menu else Vector2.ZERO
velocity = input_direction * SPEED / delta
move_and_slide()
@@ -39,24 +42,31 @@ func _physics_process(delta: float) -> void:
func _input(event: InputEvent) -> void:
if event.is_action_pressed("interact"):
if _attempting_build and Grid.get_location_data(interaction_location).is_buildable():
var interact_data: CellData = Grid.get_location_data(interaction_location)
if _attempting_build and interact_data.is_buildable():
_build()
elif not _interacting and Grid.get_location_data(interaction_location).is_interactable():
var interaction = INTERACTION_BAR.instantiate()
interaction.interaction_finished.connect(_on_interaction_finished)
interaction.grid_position = interaction_location
_interacting = true
add_sibling(interaction)
elif not _interacting and interact_data.is_interactable():
if interact_data.has_resource():
var interaction = INTERACTION_BAR.instantiate()
interaction.interaction_finished.connect(_on_interaction_finished)
interaction.grid_position = interaction_location
_interacting = true
add_sibling(interaction)
elif interact_data.has_building():
_in_menu = interact_data.get_building().interact(_on_interaction_finished)
if event.is_action_pressed("build"):
var build_menu = BUILD_MENU.instantiate()
build_menu.build.connect(_on_build_menu_build)
add_sibling(build_menu)
_in_menu = true
func _on_interaction_finished() -> void:
_interacting = false
_in_menu = false
func _on_build_menu_build(building: Building) -> void:
print("Building: %s" % building.name)
_in_menu = false
_attempting_build = building
_build_placement = Sprite2D.new()
_build_placement.texture = _attempting_build.atlas_texture
@@ -66,8 +76,8 @@ func _on_build_menu_build(building: Building) -> void:
func _build() -> void:
ResourceManager.use_resources(_attempting_build.cost)
var build: BuildingBase = BUILDING_BASE.instantiate()
build.initialize(_attempting_build, interaction_location)
add_sibling(build)
build.initialize(_attempting_build, interaction_location)
Grid.change_location_building(interaction_location, build)
if not ResourceManager.has_resources(_attempting_build.cost):