two buildings working!

created research building base
This commit is contained in:
2024-03-14 07:28:18 -05:00
parent 4f0f97b91d
commit 82675b6ed2
11 changed files with 51 additions and 25 deletions

View File

@@ -0,0 +1,17 @@
extends Node
var _resource_buildings = {}
var _storage_buildings = {}
func add_resource_building(res: GameResource, building: BuildingBase) -> void:
if not _resource_buildings.has(res):
_resource_buildings[res] = []
_resource_buildings[res].append(building)
func add_storage_building(res: GameResource, building: BuildingBase) -> void:
if not _storage_buildings.has(res):
_storage_buildings[res] = []
_storage_buildings[res].append(building)
func get_storage_count_for_resource(res: GameResource) -> int:
return 0 if not _storage_buildings.has(res) else _storage_buildings[res].size()

View File

@@ -13,7 +13,7 @@ func _on_gained_resource(res: GameResource) -> void:
func pickup(resource: GameResource) -> void:
if not resources.has(resource):
resources[resource] = 0
var pickup_amount = min(resource.pickup_value, resource.storage_max - resources[resource])
var pickup_amount = min(resource.pickup_value, get_resource_limit(resource) - resources[resource])
if pickup_amount > 0:
resources[resource] += pickup_amount
var changed_resources := {
@@ -34,6 +34,9 @@ func use_resources(cost: Dictionary) -> void:
resources[res] -= cost[res]
changed_resources[res] = -cost[res]
changed_resource.emit(ResourceChangedSignal.new(changed_resources))
func get_resource_limit(resource: GameResource) -> int:
return resource.storage_max * (1 + BuildingManager.get_storage_count_for_resource(resource))
#func _on_timer_timeout() -> void:
#var corrupted_resources := Grid.get_corrupted_resources()

View File

@@ -1,14 +0,0 @@
extends Node2D
@onready var world: World = $".."
var base = preload("res://scene/base.tscn")
var building = preload("res://data/buildings/hub.tres")
#func _unhandled_input(event):
#if event is InputEventMouseButton and event.is_pressed() and event.button_index == MOUSE_BUTTON_LEFT:
#var build: Base = base.instantiate()
#build.position = get_global_mouse_position()
#build.world = world
#build.building_data = building.duplicate(true)
#add_child(build)
#world_grid.set_cell(2, world_grid.local_to_map(get_global_mouse_position()), 0, Vector2i(16,2))

View File

@@ -29,11 +29,11 @@ func _on_resource_manager_changed_resource(changed: ResourceChangedSignal) -> vo
data.value = changed.changed_resources[resource]
_resource_displays[resource] = data
label.text = "%s / %s" % [data.value, resource.storage_max]
label.text = "%s / %s" % [data.value, ResourceManager.get_resource_limit(resource)]
else:
var data: ResourceData = _resource_displays[resource]
data.value += changed.changed_resources[resource]
data.label.text = "%s / %s" % [data.value, resource.storage_max]
data.label.text = "%s / %s" % [data.value, ResourceManager.get_resource_limit(resource)]
class ResourceData:
var image: TextureRect