From 6a4f00bfaa636d026e181574ce3ce1dd40746153 Mon Sep 17 00:00:00 2001 From: Roman Gräf Date: Sun, 19 Apr 2020 12:31:23 +0200 Subject: gruselige devs --- MainScene.tscn | 1 + assets/BTCicon.png.import | 34 ++++++++++++++++++++++++++++++++++ assets/coffeeIcon.png.import | 34 ++++++++++++++++++++++++++++++++++ buildings/building_interface.gd | 5 ----- buildings/buildings.tscn | 34 ++++++++++++++++++++++++++++++++-- buildings/dev.gd | 23 +++++++++++++++++++++++ main_scene/Label.gd | 3 +-- main_scene/management.tscn | 30 ++++++------------------------ main_scene/programmers.gd | 19 ------------------- riot/angrydev.gd | 10 +++++++++- riot/angrydev.tscn | 1 + riot/manager.gd | 10 ++++++---- riot/riot.gd | 1 + save_state.gd | 21 +++++++++++++++++---- 14 files changed, 165 insertions(+), 61 deletions(-) create mode 100644 assets/BTCicon.png.import create mode 100644 assets/coffeeIcon.png.import create mode 100644 buildings/dev.gd diff --git a/MainScene.tscn b/MainScene.tscn index 540a803..5782fa5 100644 --- a/MainScene.tscn +++ b/MainScene.tscn @@ -5,3 +5,4 @@ [node name="Node2D" type="Node2D"] [node name="management" parent="." instance=ExtResource( 1 )] +position = Vector2( 1.43198, 0 ) diff --git a/assets/BTCicon.png.import b/assets/BTCicon.png.import new file mode 100644 index 0000000..4556a97 --- /dev/null +++ b/assets/BTCicon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/BTCicon.png-eb186f1c1e5cae4a301986876e528d7c.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/BTCicon.png" +dest_files=[ "res://.import/BTCicon.png-eb186f1c1e5cae4a301986876e528d7c.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=true +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=true +svg/scale=1.0 diff --git a/assets/coffeeIcon.png.import b/assets/coffeeIcon.png.import new file mode 100644 index 0000000..27b42eb --- /dev/null +++ b/assets/coffeeIcon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/coffeeIcon.png-7575f58e825f4cee6c3cfc20ea96f5f3.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/coffeeIcon.png" +dest_files=[ "res://.import/coffeeIcon.png-7575f58e825f4cee6c3cfc20ea96f5f3.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=true +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=true +svg/scale=1.0 diff --git a/buildings/building_interface.gd b/buildings/building_interface.gd index 91a91f5..cd12b75 100644 --- a/buildings/building_interface.gd +++ b/buildings/building_interface.gd @@ -2,13 +2,8 @@ extends Ticked export var base_cost := 1.0 export var cost_multiplier := 1.0 -export var base_cps := 1.0 export var building_identifier := "" - -func _tick(): - SaveState.coffee += get_amount() * base_cps - func _process(delta): ._process(delta) update_label() diff --git a/buildings/buildings.tscn b/buildings/buildings.tscn index c64c18b..9a1cc89 100644 --- a/buildings/buildings.tscn +++ b/buildings/buildings.tscn @@ -1,13 +1,43 @@ -[gd_scene load_steps=3 format=2] +[gd_scene load_steps=7 format=2] [ext_resource path="res://assets/intern.png" type="Texture" id=1] [ext_resource path="res://buildings/base_building.tscn" type="PackedScene" id=2] +[ext_resource path="res://assets/hire.png" type="Texture" id=3] +[ext_resource path="res://lib/base_buyable.gd" type="Script" id=4] +[ext_resource path="res://buildings/dev.gd" type="Script" id=5] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 86.5173, 127.028 ) [node name="buildings" type="Node2D"] [node name="intern" parent="." instance=ExtResource( 2 )] -position = Vector2( 931.798, 83.8618 ) +position = Vector2( 79.0261, 77.0123 ) texture = ExtResource( 1 ) base_cost = 10.0 cost_multiplier = 1.1 building_identifier = "intern" + +[node name="dev" type="Sprite" parent="."] +position = Vector2( 186.651, 77.0577 ) +scale = Vector2( 0.37123, 0.37123 ) +texture = ExtResource( 3 ) +script = ExtResource( 5 ) +base_cost = 200.0 +cost_multiplier = 100.0 +building_identifier = "dev" + +[node name="Area2D" type="Area2D" parent="dev"] +script = ExtResource( 4 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="dev/Area2D"] +shape = SubResource( 1 ) + +[node name="Label" type="Label" parent="dev"] +margin_left = 22.0 +margin_top = 94.0 +margin_right = 76.0 +margin_bottom = 119.0 +__meta__ = { +"_edit_use_anchors_": false +} diff --git a/buildings/dev.gd b/buildings/dev.gd new file mode 100644 index 0000000..1ee4bcd --- /dev/null +++ b/buildings/dev.gd @@ -0,0 +1,23 @@ +extends "res://buildings/building_interface.gd" + + +var riot := preload("res://riot/riot.tscn") + +func _tick() -> void: + if SaveState.riot_cooldown == 0: + SaveState.coffee -= SaveState.buildings["dev"] + if SaveState.coffee < 0: + invoke_riot() + SaveState.coffee = 0 + else: + SaveState.gain_bitcoin(SaveState.buildings["dev"]) + else: + SaveState.riot_cooldown -= 1 + +func invoke_riot() -> void: + SaveState.riot_cooldown = -1 + var mgt = find_parent('management') + mgt.hide() + mgt.pause_mode = PAUSE_MODE_STOP + mgt.get_parent().add_child(riot.instance()) + diff --git a/main_scene/Label.gd b/main_scene/Label.gd index 751a9a1..0c1c4a0 100644 --- a/main_scene/Label.gd +++ b/main_scene/Label.gd @@ -1,6 +1,5 @@ extends Label func _process(delta): - text = str(SaveState.coffee) + "CM: "+str(SaveState.buildings["intern"])+\ - "DEVS: "+str(SaveState.programmers)+"BTC: "+str(SaveState.bitcoin) + text = JSON.print(SaveState.pack_data()) diff --git a/main_scene/management.tscn b/main_scene/management.tscn index 398f2ea..5e9a4f8 100644 --- a/main_scene/management.tscn +++ b/main_scene/management.tscn @@ -1,25 +1,20 @@ -[gd_scene load_steps=12 format=2] +[gd_scene load_steps=8 format=2] [ext_resource path="res://assets/background.png" type="Texture" id=1] [ext_resource path="res://main_scene/coffee_machine.gd" type="Script" 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] [ext_resource path="res://assets/coffee_maschine.png" type="Texture" id=8] [ext_resource path="res://upgrades/upgrades.tscn" type="PackedScene" id=9] [sub_resource type="RectangleShape2D" id=1] -extents = Vector2( 70.4574, 120 ) - -[sub_resource type="RectangleShape2D" id=2] extents = Vector2( 360, 360 ) [node name="Node2D" type="Node2D"] [node name="background" type="Sprite" parent="."] position = Vector2( 512.018, 299.606 ) +z_index = -1 texture = ExtResource( 1 ) [node name="Label" type="Label" parent="."] @@ -31,24 +26,10 @@ __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( 501.726, 101.527 ) -scale = Vector2( 0.6, 0.6 ) -texture = ExtResource( 5 ) - -[node name="Area2D" type="Area2D" parent="hiring/hire"] -script = ExtResource( 6 ) - -[node name="CollisionShape2D" type="CollisionShape2D" parent="hiring/hire/Area2D"] -position = Vector2( -9.54248, -2.42094 ) -shape = SubResource( 1 ) +position = Vector2( 697.186, 65.6175 ) [node name="coffee_maschine" type="Sprite" parent="."] -position = Vector2( 288, 304 ) +position = Vector2( 519.712, 314.253 ) scale = Vector2( 0.2, 0.2 ) texture = ExtResource( 8 ) @@ -57,6 +38,7 @@ script = ExtResource( 2 ) [node name="CollisionShape2D" type="CollisionShape2D" parent="coffee_maschine/Area2D"] position = Vector2( -40.0001, -0.00012207 ) -shape = SubResource( 2 ) +shape = SubResource( 1 ) [node name="upgrades" parent="." instance=ExtResource( 9 )] +position = Vector2( 20.5055, 36.9098 ) diff --git a/main_scene/programmers.gd b/main_scene/programmers.gd index 95245e5..1f5150f 100644 --- a/main_scene/programmers.gd +++ b/main_scene/programmers.gd @@ -1,20 +1 @@ extends Ticked - -var riot := preload("res://riot/riot.tscn") - -func _tick() -> void: - if SaveState.riot_cooldown == 0: - SaveState.coffee -= SaveState.programmers - if SaveState.coffee < 0: - invoke_riot() - SaveState.coffee = 0 - else: - SaveState.bitcoin += SaveState.programmers - else: - SaveState.riot_cooldown -= 1 - -func invoke_riot() -> void: - SaveState.riot_cooldown = -1 - get_parent().hide() - get_parent().pause_mode = PAUSE_MODE_STOP - get_parent().get_parent().add_child(riot.instance()) diff --git a/riot/angrydev.gd b/riot/angrydev.gd index 0ac08ea..5e79141 100644 --- a/riot/angrydev.gd +++ b/riot/angrydev.gd @@ -3,8 +3,10 @@ class_name AngryDev var min_pitchfork_rotation : float = -15.0 var max_pitchfork_rotation : float = 50.0 -export var rotation_speed : float = 1 +export var rotation_speed : float = 1 +var target: Manager = null var total_tick = 0.0 +export var speed : float = 100.0 onready var pitchfork : Sprite = $pitchfork @@ -16,7 +18,13 @@ func _process(delta : float) -> void: var normalized_progress = (sin(total_tick * rotation_speed) + 1.0) / 2.0 var rot = interpolate(min_pitchfork_rotation, max_pitchfork_rotation, normalized_progress) pitchfork.rotation_degrees = rot + + +func _physics_process(delta: float) -> void: + var normalized_move = (target.position - position).normalized() + position += normalized_move * delta * speed + func rotate_towards(player: Node2D) -> void: if player.position.x > position.x: diff --git a/riot/angrydev.tscn b/riot/angrydev.tscn index f8f5441..a987ff7 100644 --- a/riot/angrydev.tscn +++ b/riot/angrydev.tscn @@ -13,6 +13,7 @@ extents = Vector2( 7.90784, 32.0742 ) [node name="Node2D" type="Node2D"] position = Vector2( -24.1174, 33.1615 ) script = ExtResource( 3 ) +speed = 80.0 [node name="body" type="Sprite" parent="."] position = Vector2( 43.416, -38.1387 ) diff --git a/riot/manager.gd b/riot/manager.gd index 642f2d4..bca0559 100644 --- a/riot/manager.gd +++ b/riot/manager.gd @@ -7,14 +7,16 @@ export var speed = 128.0 func _physics_process(delta : float) -> void: var move_direction := target - position + var move_vector if move_direction.length_squared() < 100: - return - var move_vector = move_direction.normalized() * delta * speed + move_vector = Vector2(0, 0) + else: + move_vector = move_direction.normalized() * delta * speed var collision = move_and_collide(move_vector) if collision: - SaveState.bitcoin = int(ceil(SaveState.bitcoin / 2.0)) - SaveState.programmers = int(ceil(SaveState.programmers * 8.0 / 10.0)) + SaveState.lose_bitcoin(int(ceil(SaveState.bitcoin / 2.0))) + SaveState.buildings["dev"] = int(ceil(SaveState.buildings["dev"] * 8.0 / 10.0)) for child in get_parent().get_parent().get_children(): if child is CanvasItem: child.show() diff --git a/riot/riot.gd b/riot/riot.gd index 9bfa056..2efafc3 100644 --- a/riot/riot.gd +++ b/riot/riot.gd @@ -13,6 +13,7 @@ func _ready() -> void: while vec.distance_squared_to(manager.position) < 256 * 256: vec = random_position() instance.position = vec + instance.target = manager add_child(instance) devs.append(instance) func _input(event) -> void: diff --git a/save_state.gd b/save_state.gd index ac58feb..dd1ecad 100644 --- a/save_state.gd +++ b/save_state.gd @@ -1,7 +1,8 @@ extends Node var buildings = { - "intern": 0 + "intern": 0, + "dev": 1, } var upgrades = { "wageslavery": 0 @@ -10,8 +11,20 @@ var upgrades = { func gain_bitcoin(amount: int) -> void: bitcoin += amount * (upgrades["wageslavery"] + 1) -var coffee = 0 -var programmers = 1 +func lose_bitcoin(amount: int) -> void: + bitcoin -= amount + +var coffee = 10 var coffee_beans = 1000 var bitcoin = 100 -var riot_cooldown = 60 +var riot_cooldown = 0 + +func pack_data(): + return { + "buildings": buildings, + "upgrades": upgrades, + "coffee": coffee, + "coffee_beans": coffee_beans, + "bitcoin": bitcoin, + "riot_cooldown": riot_cooldown, + } -- cgit