diff --git a/nuclear-beer-factory/assets/fonts/master-font.tres b/nuclear-beer-factory/assets/fonts/master-font.tres new file mode 100644 index 0000000..c6adafa --- /dev/null +++ b/nuclear-beer-factory/assets/fonts/master-font.tres @@ -0,0 +1,6 @@ +[gd_resource type="DynamicFont" load_steps=2 format=2] + +[ext_resource path="res://assets/fonts/november.regular.ttf" type="DynamicFontData" id=1] + +[resource] +font_data = ExtResource( 1 ) diff --git a/nuclear-beer-factory/assets/sprites/gui/button.aseprite b/nuclear-beer-factory/assets/sprites/gui/button.aseprite new file mode 100644 index 0000000..6178d5b Binary files /dev/null and b/nuclear-beer-factory/assets/sprites/gui/button.aseprite differ diff --git a/nuclear-beer-factory/assets/sprites/gui/buttons.png b/nuclear-beer-factory/assets/sprites/gui/buttons.png new file mode 100644 index 0000000..f364da9 Binary files /dev/null and b/nuclear-beer-factory/assets/sprites/gui/buttons.png differ diff --git a/nuclear-beer-factory/assets/sprites/gui/buttons.png.import b/nuclear-beer-factory/assets/sprites/gui/buttons.png.import new file mode 100644 index 0000000..6592262 --- /dev/null +++ b/nuclear-beer-factory/assets/sprites/gui/buttons.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/buttons.png-5a4ca2c5838602c3bcfdec6336897ac5.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/sprites/gui/buttons.png" +dest_files=[ "res://.import/buttons.png-5a4ca2c5838602c3bcfdec6336897ac5.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/nuclear-beer-factory/assets/sprites/gui/message_anim.aseprite b/nuclear-beer-factory/assets/sprites/gui/message_anim.aseprite new file mode 100644 index 0000000..25ef58f Binary files /dev/null and b/nuclear-beer-factory/assets/sprites/gui/message_anim.aseprite differ diff --git a/nuclear-beer-factory/assets/sprites/gui/message_anim.png b/nuclear-beer-factory/assets/sprites/gui/message_anim.png new file mode 100644 index 0000000..da46f85 Binary files /dev/null and b/nuclear-beer-factory/assets/sprites/gui/message_anim.png differ diff --git a/nuclear-beer-factory/assets/sprites/gui/message_anim.png.import b/nuclear-beer-factory/assets/sprites/gui/message_anim.png.import new file mode 100644 index 0000000..bea0066 --- /dev/null +++ b/nuclear-beer-factory/assets/sprites/gui/message_anim.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/message_anim.png-00817d40dae319b691c89a7fc1db4a85.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/sprites/gui/message_anim.png" +dest_files=[ "res://.import/message_anim.png-00817d40dae319b691c89a7fc1db4a85.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/nuclear-beer-factory/scenes/Gameplay.tscn b/nuclear-beer-factory/scenes/Gameplay.tscn index b83269d..3ee62a4 100644 --- a/nuclear-beer-factory/scenes/Gameplay.tscn +++ b/nuclear-beer-factory/scenes/Gameplay.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=71 format=2] +[gd_scene load_steps=78 format=2] [ext_resource path="res://assets/sprites/environment/fueltank/bake-fire.png" type="Texture" id=1] [ext_resource path="res://assets/sprites/environment/rooms/basement-bg.png" type="Texture" id=2] @@ -37,6 +37,8 @@ [ext_resource path="res://assets/sprites/conveyor.png" type="Texture" id=35] [ext_resource path="res://scripts/Unused/Conveyor.gd" type="Script" id=36] [ext_resource path="res://scripts/SpaceRocket.gd" type="Script" id=37] +[ext_resource path="res://assets/sprites/gui/buttons.png" type="Texture" id=38] +[ext_resource path="res://assets/fonts/master-font.tres" type="DynamicFont" id=39] [sub_resource type="AtlasTexture" id=1] atlas = ExtResource( 23 ) @@ -197,12 +199,71 @@ region = Rect2( 51, 34, 170, 93 ) atlas = ExtResource( 21 ) region = Rect2( 46, 137, 104, 244 ) +[sub_resource type="AtlasTexture" id=36] +atlas = ExtResource( 38 ) +region = Rect2( 85, 18, 55, 85 ) + +[sub_resource type="AtlasTexture" id=34] +atlas = ExtResource( 38 ) +region = Rect2( 37, 26, 38, 38 ) + +[sub_resource type="AtlasTexture" id=35] +atlas = ExtResource( 38 ) +region = Rect2( 36, 65, 39, 38 ) + +[sub_resource type="AtlasTexture" id=37] +atlas = ExtResource( 38 ) +region = Rect2( 10, 108, 130, 32 ) + [sub_resource type="AtlasTexture" id=33] atlas = ExtResource( 20 ) region = Rect2( 64, 95, 56, 39 ) +[sub_resource type="Animation" id=38] +resource_name = "Explode" +length = 4.0 +tracks/0/type = "value" +tracks/0/path = NodePath(".:color") +tracks/0/interp = 0 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0.1, 0.9, 1.5, 2 ), +"transitions": PoolRealArray( 9.84916, 1, 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 1 ), Color( 0, 0, 0, 1 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:visible") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0.1 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/2/type = "value" +tracks/2/path = NodePath(".:rect_position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 0.3 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 853.071, 664.497 ), Vector2( 0, 0 ) ] +} + [node name="Gameplay" type="Node2D"] script = ExtResource( 14 ) +_bottle_prefab = ExtResource( 34 ) +_fuel_prefab = ExtResource( 11 ) +_sank_prefab = ExtResource( 25 ) [node name="StatController" type="Node2D" parent="."] script = ExtResource( 18 ) @@ -225,6 +286,12 @@ position = Vector2( 640, 0 ) [node name="GUIController" type="Node2D" parent="."] script = ExtResource( 19 ) +[node name="FuelSpawner" type="Node2D" parent="."] +position = Vector2( -193.841, 353.194 ) + +[node name="SankSpawner" type="Node2D" parent="."] +position = Vector2( -231.895, -33.2978 ) + [node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] stream = ExtResource( 4 ) @@ -362,7 +429,7 @@ _speed = 30.0 [node name="AnimatedSprite" type="AnimatedSprite" parent="StaticColliders/Conveyor"] position = Vector2( -33.892, -4.84665 ) frames = SubResource( 22 ) -frame = 4 +frame = 5 playing = true [node name="CollisionShape2D" type="CollisionShape2D" parent="StaticColliders/Conveyor"] @@ -413,7 +480,6 @@ texture = ExtResource( 8 ) [node name="CanvasLayer" type="CanvasLayer" parent="."] [node name="GUI" type="Node2D" parent="CanvasLayer"] -visible = false [node name="TabMenu" type="TextureRect" parent="CanvasLayer/GUI"] anchor_right = 1.0 @@ -481,35 +547,6 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="ShopPanel" type="Panel" parent="CanvasLayer/GUI/TabMenu"] -anchor_left = 1.0 -anchor_top = 1.0 -anchor_right = 1.0 -anchor_bottom = 1.0 -margin_left = -105.0 -margin_top = -122.0 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/GUI/TabMenu/ShopPanel"] -anchor_right = 1.0 -anchor_bottom = 1.0 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="Fuel" type="Button" parent="CanvasLayer/GUI/TabMenu/ShopPanel/VBoxContainer"] -margin_right = 105.0 -margin_bottom = 20.0 -text = "Buy fuel (10)" - -[node name="Sack" type="Button" parent="CanvasLayer/GUI/TabMenu/ShopPanel/VBoxContainer"] -margin_top = 24.0 -margin_right = 105.0 -margin_bottom = 44.0 -text = "Buy malt (10)" - [node name="Pipe" type="Control" parent="CanvasLayer/GUI/TabMenu"] anchor_top = 1.0 anchor_bottom = 1.0 @@ -566,17 +603,70 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="EnergyCount" parent="CanvasLayer/GUI/TabMenu/StatsContainer" instance=ExtResource( 9 )] -margin_top = 0.0 -margin_right = 104.0 -margin_bottom = 14.0 -_template_string = "Energy: %s" +[node name="Shop_Buttons" type="TextureRect" parent="CanvasLayer/GUI/TabMenu"] +anchor_left = 1.0 +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +margin_left = -55.0 +margin_top = -42.5 +margin_bottom = 42.5 +texture = SubResource( 36 ) +__meta__ = { +"_edit_use_anchors_": false +} -[node name="MoneyCount" parent="CanvasLayer/GUI/TabMenu/StatsContainer" instance=ExtResource( 9 )] -margin_top = 18.0 -margin_right = 104.0 -margin_bottom = 32.0 -_template_string = "Money: %s" +[node name="SankBuy_Button" type="TextureButton" parent="CanvasLayer/GUI/TabMenu/Shop_Buttons"] +margin_left = 11.0 +margin_top = 5.59608 +margin_right = 55.0 +margin_bottom = 43.5961 +texture_normal = SubResource( 34 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="FuelBuy_Button" type="TextureButton" parent="CanvasLayer/GUI/TabMenu/Shop_Buttons"] +margin_left = 10.2054 +margin_top = 43.3081 +margin_right = 54.2054 +margin_bottom = 81.3081 +texture_normal = SubResource( 35 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Stats" type="TextureRect" parent="CanvasLayer/GUI/TabMenu"] +anchor_left = 1.0 +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = -130.0 +margin_top = -32.0 +texture = SubResource( 37 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="EnergyCount" parent="CanvasLayer/GUI/TabMenu/Stats" instance=ExtResource( 9 )] +margin_left = 81.3499 +margin_top = 8.77914 +margin_right = 185.35 +margin_bottom = 24.7791 +custom_fonts/font = ExtResource( 39 ) +custom_colors/font_color = Color( 0.788235, 0.796078, 0.866667, 1 ) +text = "9999" +_template_string = "%s" + +[node name="MoneyCount" parent="CanvasLayer/GUI/TabMenu/Stats" instance=ExtResource( 9 )] +margin_left = 18.5523 +margin_top = 8.54602 +margin_right = 122.552 +margin_bottom = 24.546 +custom_fonts/font = ExtResource( 39 ) +custom_colors/font_color = Color( 0.788235, 0.796078, 0.866667, 1 ) +text = "9999" +_template_string = "%s" [node name="Tab_Button" type="TextureButton" parent="CanvasLayer/GUI"] anchor_left = 1.0 @@ -589,15 +679,35 @@ __meta__ = { "_edit_use_anchors_": false } +[node name="CanvasLayer" type="CanvasLayer" parent="CanvasLayer/GUI"] +layer = 2 + +[node name="WhiteExplode" type="ColorRect" parent="CanvasLayer/GUI/CanvasLayer"] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 853.071 +margin_top = 664.497 +margin_right = 853.071 +margin_bottom = 664.498 +color = Color( 1, 1, 1, 0 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="ExplotionAnimationPlayer" type="AnimationPlayer" parent="CanvasLayer/GUI/CanvasLayer/WhiteExplode"] +anims/Explode = SubResource( 38 ) + [connection signal="stat_changed" from="StatController" to="CanvasLayer/GUI/TabMenu/Pipe/Pipe-Arrow" method="_on_StatController_stat_changed"] -[connection signal="stat_changed" from="StatController" to="CanvasLayer/GUI/TabMenu/StatsContainer/EnergyCount" method="_on_StatController_stat_changed"] -[connection signal="stat_changed" from="StatController" to="CanvasLayer/GUI/TabMenu/StatsContainer/MoneyCount" method="_on_StatController_stat_changed"] +[connection signal="stat_changed" from="StatController" to="CanvasLayer/GUI/TabMenu/Stats/EnergyCount" method="_on_StatController_stat_changed"] +[connection signal="stat_changed" from="StatController" to="CanvasLayer/GUI/TabMenu/Stats/MoneyCount" method="_on_StatController_stat_changed"] [connection signal="timeout" from="StatController/EnergySpendTimer" to="StatController" method="_on_EnergySpendTimer_timeout"] [connection signal="timeout" from="StatController/FuelEffectTimer" to="StatController" method="_on_FuelEffectTimer_timeout"] [connection signal="earned_money" from="Props/SpaceRocket" to="StatController" method="_on_SpaceRocket_earned_money"] [connection signal="body_entered" from="Props/SpaceRocket/SpaceRocketEater" to="Props/SpaceRocket/SpaceRocketEater" method="_on_Eater_body_entered"] [connection signal="eated" from="Props/SpaceRocket/SpaceRocketEater" to="StatController" method="_on_SpaceRocketEater_eated"] [connection signal="eated" from="Props/SpaceRocket/SpaceRocketEater" to="Props/SpaceRocket" method="_on_SpaceRocketEater_eated"] +[connection signal="finished_poped_beer" from="Props/Silo" to="StatController" method="_on_Silo_finished_poped_beer"] +[connection signal="poped_beer" from="Props/Silo" to="StatController" method="_on_Silo_poped_beer"] [connection signal="body_entered" from="Props/Silo/SiloEater" to="Props/Silo/SiloEater" method="_on_Eater_body_entered"] [connection signal="eated" from="Props/Silo/SiloEater" to="Props/Silo" method="_on_SiloEater_eated"] [connection signal="timeout" from="Props/Silo/SiloTimer" to="Props/Silo" method="_on_SiloTimer_timeout"] @@ -607,4 +717,7 @@ __meta__ = { [connection signal="button_down" from="CanvasLayer/GUI/TabMenu/MapRect/B_Button" to="CameraController" method="_on_B_Button_button_down"] [connection signal="button_down" from="CanvasLayer/GUI/TabMenu/MapRect/C_Button" to="CameraController" method="_on_C_Button_button_down"] [connection signal="button_down" from="CanvasLayer/GUI/TabMenu/MapRect/MapClose_Button" to="GUIController" method="_on_MapClose_Button_button_down"] +[connection signal="button_down" from="CanvasLayer/GUI/TabMenu/Shop_Buttons/SankBuy_Button" to="StatController" method="_on_SankBuy_Button_button_down"] +[connection signal="button_down" from="CanvasLayer/GUI/TabMenu/Shop_Buttons/FuelBuy_Button" to="StatController" method="_on_FuelBuy_Button_button_down"] [connection signal="button_down" from="CanvasLayer/GUI/Tab_Button" to="GUIController" method="_on_Tab_Button_button_down"] +[connection signal="animation_finished" from="CanvasLayer/GUI/CanvasLayer/WhiteExplode/ExplotionAnimationPlayer" to="." method="_on_ExplotionAnimationPlayer_animation_finished"] diff --git a/nuclear-beer-factory/scripts/Common/Values.gd b/nuclear-beer-factory/scripts/Common/Values.gd index 2273d85..9a74893 100644 --- a/nuclear-beer-factory/scripts/Common/Values.gd +++ b/nuclear-beer-factory/scripts/Common/Values.gd @@ -1,7 +1,7 @@ class_name Values -const GAME_MODE = "GOD" +const GAME_MODE = "Prisoner" # Energy const V_MAX_ENERGY = 100 @@ -10,13 +10,13 @@ const V_FUZE_CAP = 50 const V_ENERGY_SPEND_PER_SEC = 1 # per sec const V_ENERGY_SPEED_INCREASE_FROM_FUEL = 3 # per sec const V_ENERGY_FUEL_TIME_SEC = 10 -const V_ENERGY_SPEND_PER_BOTTLE = 10 # =8 +const V_ENERGY_SPEND_PER_BOTTLE = 1 # =8 # Tank const V_STARTING_SANK_AMOUNT = 2 # const V_TANK_CAP = 100 -const V_SILO_SPACING_SEC = 0.5 # wait time for new bottle +const V_SILO_SPACING_SEC = 3 # wait time for new bottle const V_SILO_SANK_PER_BATCH = 1 # for one const V_SILO_BOTTLES_IN_BATCH_COUNT = 15 @@ -27,4 +27,4 @@ const V_FUEL_PRICE = 1 # const V_SANK_PRICE = 1 # # Cargo -const V_ROCKET_CAP = 1 +const V_ROCKET_CAP = 8 diff --git a/nuclear-beer-factory/scripts/Controllers/Gameplay.gd b/nuclear-beer-factory/scripts/Controllers/Gameplay.gd index 9e31626..834019a 100644 --- a/nuclear-beer-factory/scripts/Controllers/Gameplay.gd +++ b/nuclear-beer-factory/scripts/Controllers/Gameplay.gd @@ -3,6 +3,7 @@ extends Node2D export(PackedScene) var _bottle_prefab export(PackedScene) var _fuel_prefab +export(PackedScene) var _sank_prefab onready var _objs = get_node("Objects") @@ -10,16 +11,25 @@ onready var _bottles = _objs.get_node("Bottles") onready var _fuels = _objs.get_node("Fuels") onready var _sanks = _objs.get_node("Sanks") +onready var _fuel_spawner = $FuelSpawner +onready var _sank_spawner = $SankSpawner -func _spawn_env_item(pkd_scene: PackedScene, parent: Node) -> void: + +func _spawn_env_item(pkd_scene: PackedScene, parent: Node, position: Vector2) -> void: if pkd_scene == null: print("[WARN]: Trying to spawn null object from `Gameplay`") return var inst = pkd_scene.instance() - inst.global_position = get_global_mouse_position() + inst.global_position = position parent.add_child(inst) +func spawn_fuel() -> void: + _spawn_env_item(_fuel_prefab, _fuels, _fuel_spawner.global_position) +func spawn_sank() -> void: + _spawn_env_item(_sank_prefab, _sanks, _sank_spawner.global_position) + + func _process(delta: float) -> void: _handle_player_input() @@ -28,9 +38,9 @@ func _handle_player_input() -> void: if Input.is_action_pressed("quit_game"): get_tree().quit(0) if Input.is_action_just_pressed("spawn_bottle"): - _spawn_env_item(_bottle_prefab, _bottles) + _spawn_env_item(_bottle_prefab, _bottles, get_global_mouse_position()) if Input.is_action_just_pressed("spawn_fuel"): - _spawn_env_item(_fuel_prefab, _fuels) + _spawn_env_item(_fuel_prefab, _fuels, get_global_mouse_position()) if Input.is_action_just_pressed("reload_scene"): get_tree().reload_current_scene() if Input.is_action_just_pressed("toggle_tab_menu_visible"): @@ -38,7 +48,8 @@ func _handle_player_input() -> void: func lose() -> void: - if Values.GAME_MODE == "GOD": - return - else: - get_tree().quit(1) + get_tree().quit(1) + + +func _on_ExplotionAnimationPlayer_animation_finished(anim_name): + lose() diff --git a/nuclear-beer-factory/scripts/Controllers/StatController.gd b/nuclear-beer-factory/scripts/Controllers/StatController.gd index 7ef149c..73e2c8a 100644 --- a/nuclear-beer-factory/scripts/Controllers/StatController.gd +++ b/nuclear-beer-factory/scripts/Controllers/StatController.gd @@ -38,13 +38,11 @@ class Stat: # Money var money = Stat.new(Values.V_MAX_MONEY, 0) - # Silo var silo_queue = 0 - # Energy staff -var energy = Stat.new(Values.V_MAX_ENERGY, 30) +var energy = Stat.new(Values.V_MAX_ENERGY, 50) var energy_in_fuze = Stat.new(Values.V_FUZE_CAP, 0) onready var _cur_energy_delta: int = -Values.V_ENERGY_SPEND_PER_SEC var _effecting_fuel_count: int = 0 @@ -54,6 +52,15 @@ onready var energy_spend_timer: Timer = $EnergySpendTimer onready var fuel_effect_timer: Timer = $FuelEffectTimer +func explode() -> void: + if Values.GAME_MODE == "GOD": + return + var we = get_tree().get_current_scene().get_node("CanvasLayer/GUI/CanvasLayer/WhiteExplode") + we.visible = true + var eap = we.get_node("ExplotionAnimationPlayer") + eap.play("Explode") + + func _ready() -> void: energy_spend_timer.start(1) emit_signal("stat_changed", StatType.ENERGY, energy.cur_val) @@ -75,34 +82,63 @@ func _on_FuelTankEater_eated(eatable_type): else: fuel_effect_timer.start(Values.V_ENERGY_FUEL_TIME_SEC) _effecting_fuel_count += 1 - _cur_energy_delta += Values.V_ENERGY_SPEED_INCREASE_FROM_FUEL + _cur_energy_delta = -Values.V_ENERGY_SPEND_PER_SEC + Values.V_ENERGY_SPEED_INCREASE_FROM_FUEL * _effecting_fuel_count emit_signal("stat_changed", StatType.ENERGY_DELTA, _cur_energy_delta) func _on_SpaceRocketEater_eated(eatable_type): pass # Replace with function body. - # Change cur energy delta func _on_EnergySpendTimer_timeout(): - var overflow_energy: int = energy.add_val(_cur_energy_delta) + var overflow_energy: int = 0 + if x: + print(_cur_energy_delta - Values.V_ENERGY_SPEND_PER_BOTTLE) + overflow_energy = energy.add_val(_cur_energy_delta - Values.V_ENERGY_SPEND_PER_BOTTLE) + else: + print(_cur_energy_delta) + overflow_energy = energy.add_val(_cur_energy_delta) + if energy.cur_val <= 0: - var gameplay = get_tree().get_current_scene() - gameplay.lose() + explode() if overflow_energy > 0: var fuze_overflow: int = energy_in_fuze.add_val(overflow_energy) if fuze_overflow > 0: - var gameplay = get_tree().get_current_scene() - gameplay.lose() + explode() emit_signal("stat_changed", StatType.ENERGY, energy.cur_val) energy_spend_timer.start(1) func _on_FuelEffectTimer_timeout(): - _cur_energy_delta -= Values.V_ENERGY_SPEND_PER_SEC * _effecting_fuel_count + _cur_energy_delta = -Values.V_ENERGY_SPEND_PER_SEC emit_signal("stat_changed", StatType.ENERGY_DELTA, _cur_energy_delta) _effecting_fuel_count = 0 func _on_SpaceRocket_earned_money(bottle_amount): money.add_val(Values.V_MONEY_FROM_ROCKET) + emit_signal("stat_changed", StatType.MONEY, money.cur_val) + + +func _on_SankBuy_Button_button_down(): + if money.cur_val - Values.V_SANK_PRICE < 0: + return + money.add_val(-Values.V_SANK_PRICE) + emit_signal("stat_changed", StatType.MONEY, money.cur_val) + get_tree().get_current_scene().spawn_sank() + + +func _on_FuelBuy_Button_button_down(): + if money.cur_val - Values.V_FUEL_PRICE < 0: + return + money.add_val(-Values.V_FUEL_PRICE) + emit_signal("stat_changed", StatType.MONEY, money.cur_val) + get_tree().get_current_scene().spawn_fuel() + +var x = false +func _on_Silo_poped_beer(): + x = true + + +func _on_Silo_finished_poped_beer(): + x = false diff --git a/nuclear-beer-factory/scripts/Silo.gd b/nuclear-beer-factory/scripts/Silo.gd index a0b664c..ab85126 100644 --- a/nuclear-beer-factory/scripts/Silo.gd +++ b/nuclear-beer-factory/scripts/Silo.gd @@ -2,6 +2,7 @@ extends StaticBody2D signal poped_beer() +signal finished_poped_beer() export(Array) var _beers = [] @@ -15,7 +16,6 @@ onready var bottles = get_tree().get_current_scene().get_node("Objects/Bottles") func _pop_beer() -> void: - emit_signal("poped_beer") var new_beer: Node2D = _beers[4].instance() new_beer.global_position = beer_spawn_node.global_position bottles.add_child(new_beer) @@ -25,6 +25,7 @@ func _on_SiloEater_eated(eatable_type): assert(eatable_type == EatableType.SANK) silo_timer.start(Values.V_SILO_SPACING_SEC) silo_eater.visible = false + emit_signal("poped_beer") func _on_SiloTimer_timeout(): @@ -36,3 +37,4 @@ func _on_SiloTimer_timeout(): silo_eater.visible = true silo_timer.stop() _cur_beer_count = 0 + emit_signal("finished_poped_beer") diff --git a/nuclear-beer-factory/scripts/SpaceRocket.gd b/nuclear-beer-factory/scripts/SpaceRocket.gd index 4557e32..3e984cc 100644 --- a/nuclear-beer-factory/scripts/SpaceRocket.gd +++ b/nuclear-beer-factory/scripts/SpaceRocket.gd @@ -9,7 +9,6 @@ var _cur_bottles_count = 0 func _on_SpaceRocketEater_eated(eatable_type): if eatable_type == EatableType.BOTTLE: - print(1) _cur_bottles_count += 1 if _cur_bottles_count >= Values.V_ROCKET_CAP: $AnimationPlayer.play("Fly") diff --git a/nuclear-beer-factory/scripts/Spawner.gd b/nuclear-beer-factory/scripts/Spawner.gd new file mode 100644 index 0000000..1eccaec --- /dev/null +++ b/nuclear-beer-factory/scripts/Spawner.gd @@ -0,0 +1,16 @@ +extends Node + + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass