diff options
-rw-r--r-- | MainScene.tscn | 14 | ||||
-rw-r--r-- | buildings/building_interface.gd | 14 | ||||
-rw-r--r-- | coffee_machine/coffee_machine.gd | 7 | ||||
-rw-r--r-- | lib/clickable_area.gd | 9 | ||||
-rw-r--r-- | lib/ticked.gd | 13 | ||||
-rw-r--r-- | main_scene/Label.gd | 2 | ||||
-rw-r--r-- | main_scene/hire_button.gd | 6 | ||||
-rw-r--r-- | main_scene/programmers.gd | 16 | ||||
-rw-r--r-- | project.godot | 14 |
9 files changed, 80 insertions, 15 deletions
diff --git a/MainScene.tscn b/MainScene.tscn index 90b52b8..f9d0a77 100644 --- a/MainScene.tscn +++ b/MainScene.tscn @@ -1,10 +1,15 @@ -[gd_scene load_steps=6 format=2] +[gd_scene load_steps=9 format=2] [ext_resource path="res://assets/background.png" type="Texture" id=1] [ext_resource path="res://coffee_machine/coffee_machine.tscn" type="PackedScene" id=2] [ext_resource path="res://main_scene/Label.gd" type="Script" id=3] [ext_resource path="res://buildings/buildings.tscn" type="PackedScene" id=4] [ext_resource path="res://assets/hire.png" type="Texture" id=5] +[ext_resource path="res://main_scene/hire_button.gd" type="Script" id=6] +[ext_resource path="res://main_scene/programmers.gd" type="Script" id=7] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 32, 32 ) [node name="Node2D" type="Node2D"] @@ -26,7 +31,14 @@ __meta__ = { [node name="buildings" parent="." instance=ExtResource( 4 )] [node name="hiring" type="Node2D" parent="."] +script = ExtResource( 7 ) [node name="hire" type="Sprite" parent="hiring"] position = Vector2( 519.268, 89.2965 ) texture = ExtResource( 5 ) + +[node name="Area2D" type="Area2D" parent="hiring/hire"] +script = ExtResource( 6 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="hiring/hire/Area2D"] +shape = SubResource( 1 ) diff --git a/buildings/building_interface.gd b/buildings/building_interface.gd index 9d515cf..91a91f5 100644 --- a/buildings/building_interface.gd +++ b/buildings/building_interface.gd @@ -1,19 +1,17 @@ -extends Sprite +extends Ticked export var base_cost := 1.0 export var cost_multiplier := 1.0 export var base_cps := 1.0 export var building_identifier := "" -export var tick_rate := 1.0 -var current_tick := 0.0 -func _process(delta: float) -> void: +func _tick(): + SaveState.coffee += get_amount() * base_cps + +func _process(delta): + ._process(delta) update_label() - current_tick += delta - while current_tick > tick_rate: - SaveState.coffee += get_amount() * base_cps - current_tick -= tick_rate func update_label(): var label : Label = $Label diff --git a/coffee_machine/coffee_machine.gd b/coffee_machine/coffee_machine.gd index 99e3bea..9c42d97 100644 --- a/coffee_machine/coffee_machine.gd +++ b/coffee_machine/coffee_machine.gd @@ -1,6 +1,5 @@ -extends Area2D +extends ClickableArea -func _input_event(viewport, event, shape_idx): - if event is InputEventMouseButton and event.button_index == BUTTON_LEFT and event.is_pressed(): - SaveState.coffee +=1 +func _click(): + SaveState.coffee +=1 diff --git a/lib/clickable_area.gd b/lib/clickable_area.gd new file mode 100644 index 0000000..c9e49d7 --- /dev/null +++ b/lib/clickable_area.gd @@ -0,0 +1,9 @@ +extends Area2D +class_name ClickableArea + +func _click(): + pass + +func _input_event(viewport, event, shape_idx): + if event is InputEventMouseButton and event.button_index == BUTTON_LEFT and event.is_pressed(): + _click() diff --git a/lib/ticked.gd b/lib/ticked.gd new file mode 100644 index 0000000..cef46ab --- /dev/null +++ b/lib/ticked.gd @@ -0,0 +1,13 @@ +extends Node +class_name Ticked + +export var tick_rate := 1.0 +var current_tick = 0.0 +func _tick(): + pass + +func _process(delta: float) -> void: + current_tick += delta + while current_tick > tick_rate: + _tick() + current_tick -= tick_rate diff --git a/main_scene/Label.gd b/main_scene/Label.gd index d224fa8..cb9b23e 100644 --- a/main_scene/Label.gd +++ b/main_scene/Label.gd @@ -1,4 +1,4 @@ extends Label func _process(delta): - text = str(SaveState.coffee) + "CM: "+str(SaveState.coffee_machine) + text = str(SaveState.coffee) + "CM: "+str(SaveState.buildings["intern"])+"DEVS: "+str(SaveState.programmers) diff --git a/main_scene/hire_button.gd b/main_scene/hire_button.gd new file mode 100644 index 0000000..668d960 --- /dev/null +++ b/main_scene/hire_button.gd @@ -0,0 +1,6 @@ +extends ClickableArea + +func _click(): + if SaveState.coffee >= 100: + SaveState.programmers += 1 + SaveState.coffee -= 100 diff --git a/main_scene/programmers.gd b/main_scene/programmers.gd new file mode 100644 index 0000000..fdb5290 --- /dev/null +++ b/main_scene/programmers.gd @@ -0,0 +1,16 @@ +extends Ticked + +var riot_cooldown := 0 + +func _tick() -> void: + if riot_cooldown == 0: + SaveState.coffee -= SaveState.programmers + if SaveState.coffee < 0: + riot() + SaveState.coffee = 0 + else: + riot_cooldown -= 1 + if riot_cooldown < 0: + riot_cooldown = 0 +func riot(): + riot_cooldown = 10 diff --git a/project.godot b/project.godot index fb4ad35..ef8c621 100644 --- a/project.godot +++ b/project.godot @@ -13,9 +13,21 @@ _global_script_classes=[ { "class": "BaseBuilding", "language": "GDScript", "path": "res://buildings/building_clickable.gd" +}, { +"base": "Area2D", +"class": "ClickableArea", +"language": "GDScript", +"path": "res://lib/clickable_area.gd" +}, { +"base": "Node", +"class": "Ticked", +"language": "GDScript", +"path": "res://lib/ticked.gd" } ] _global_script_class_icons={ -"BaseBuilding": "" +"BaseBuilding": "", +"ClickableArea": "", +"Ticked": "" } [application] |