aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MainScene.tscn14
-rw-r--r--buildings/building_interface.gd14
-rw-r--r--coffee_machine/coffee_machine.gd7
-rw-r--r--lib/clickable_area.gd9
-rw-r--r--lib/ticked.gd13
-rw-r--r--main_scene/Label.gd2
-rw-r--r--main_scene/hire_button.gd6
-rw-r--r--main_scene/programmers.gd16
-rw-r--r--project.godot14
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]