diff options
-rw-r--r-- | assets/idle1.png.import | 34 | ||||
-rw-r--r-- | assets/idle2.png.import | 34 | ||||
-rw-r--r-- | assets/idle_devs.tres | 12 | ||||
-rw-r--r-- | assets/spritesheet_idle.png.import | 34 | ||||
-rw-r--r-- | main_scene/programmers.gd | 5 | ||||
-rw-r--r-- | project.godot | 6 | ||||
-rw-r--r-- | riot/angrydev.gd | 2 | ||||
-rw-r--r-- | riot/angrydev.tscn | 19 | ||||
-rw-r--r-- | riot/manager.gd | 23 | ||||
-rw-r--r-- | riot/riot.gd | 13 | ||||
-rw-r--r-- | riot/riot.tscn | 14 |
11 files changed, 182 insertions, 14 deletions
diff --git a/assets/idle1.png.import b/assets/idle1.png.import new file mode 100644 index 0000000..8d1ddda --- /dev/null +++ b/assets/idle1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/idle1.png-98c00719a1d0e61552d3efbed22f105f.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/idle1.png" +dest_files=[ "res://.import/idle1.png-98c00719a1d0e61552d3efbed22f105f.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/idle2.png.import b/assets/idle2.png.import new file mode 100644 index 0000000..828bf58 --- /dev/null +++ b/assets/idle2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/idle2.png-eecaa0676d89c727b817cc70f2a4b393.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/idle2.png" +dest_files=[ "res://.import/idle2.png-eecaa0676d89c727b817cc70f2a4b393.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/idle_devs.tres b/assets/idle_devs.tres new file mode 100644 index 0000000..4c2e785 --- /dev/null +++ b/assets/idle_devs.tres @@ -0,0 +1,12 @@ +[gd_resource type="AnimatedTexture" load_steps=3 format=2] + +[ext_resource path="res://assets/idle2.png" type="Texture" id=1] +[ext_resource path="res://assets/idle1.png" type="Texture" id=2] + +[resource] +flags = 4 +frames = 2 +frame_0/texture = ExtResource( 2 ) +frame_0/delay_sec = 0.36 +frame_1/texture = ExtResource( 1 ) +frame_1/delay_sec = 0.36 diff --git a/assets/spritesheet_idle.png.import b/assets/spritesheet_idle.png.import new file mode 100644 index 0000000..3d31a9e --- /dev/null +++ b/assets/spritesheet_idle.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/spritesheet_idle.png-b5f9a9d63ccc4457c79265ac7e4d3a50.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/spritesheet_idle.png" +dest_files=[ "res://.import/spritesheet_idle.png-b5f9a9d63ccc4457c79265ac7e4d3a50.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/main_scene/programmers.gd b/main_scene/programmers.gd index 8e0a2a2..95245e5 100644 --- a/main_scene/programmers.gd +++ b/main_scene/programmers.gd @@ -6,14 +6,15 @@ func _tick() -> void: if SaveState.riot_cooldown == 0: SaveState.coffee -= SaveState.programmers if SaveState.coffee < 0: - riot() + invoke_riot() SaveState.coffee = 0 else: SaveState.bitcoin += SaveState.programmers else: SaveState.riot_cooldown -= 1 -func riot() -> void: +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/project.godot b/project.godot index 3dd3fa9..9e63f07 100644 --- a/project.godot +++ b/project.godot @@ -24,6 +24,11 @@ _global_script_classes=[ { "language": "GDScript", "path": "res://lib/clickable_area.gd" }, { +"base": "KinematicBody2D", +"class": "Manager", +"language": "GDScript", +"path": "res://riot/manager.gd" +}, { "base": "Node", "class": "Ticked", "language": "GDScript", @@ -33,6 +38,7 @@ _global_script_class_icons={ "AngryDev": "", "BaseBuilding": "", "ClickableArea": "", +"Manager": "", "Ticked": "" } diff --git a/riot/angrydev.gd b/riot/angrydev.gd index 078d6e8..0ac08ea 100644 --- a/riot/angrydev.gd +++ b/riot/angrydev.gd @@ -19,5 +19,5 @@ func _process(delta : float) -> void: func rotate_towards(player: Node2D) -> void: - if player.position.x < position.x: + if player.position.x > position.x: scale.x = -abs(scale.x) diff --git a/riot/angrydev.tscn b/riot/angrydev.tscn index d3c2370..b28d3da 100644 --- a/riot/angrydev.tscn +++ b/riot/angrydev.tscn @@ -1,9 +1,12 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=6 format=2] -[ext_resource path="res://assets/angry_dev.png" type="Texture" id=1] +[ext_resource path="res://assets/idle_devs.tres" type="Texture" id=1] [ext_resource path="res://assets/pitchfork.png" type="Texture" id=2] [ext_resource path="res://riot/angrydev.gd" type="Script" id=3] +[sub_resource type="RectangleShape2D" id=2] +extents = Vector2( 60.093, 116.278 ) + [sub_resource type="RectangleShape2D" id=1] extents = Vector2( 7.90784, 32.0742 ) @@ -12,15 +15,23 @@ position = Vector2( -24.1174, 33.1615 ) script = ExtResource( 3 ) [node name="body" type="Sprite" parent="."] -position = Vector2( 25, -32 ) +position = Vector2( 43.416, -38.1387 ) texture = ExtResource( 1 ) +[node name="Area2D" type="KinematicBody2D" parent="body"] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="body/Area2D"] +position = Vector2( -11.0496, -2.45549 ) +shape = SubResource( 2 ) + [node name="pitchfork" type="Sprite" parent="."] position = Vector2( 59.0399, -57.764 ) scale = Vector2( 1, 3 ) texture = ExtResource( 2 ) offset = Vector2( 0.330124, -33.3885 ) -[node name="CollisionShape2D" type="CollisionShape2D" parent="pitchfork"] +[node name="Area2D" type="KinematicBody2D" parent="pitchfork"] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="pitchfork/Area2D"] position = Vector2( 0.128513, -33.3091 ) shape = SubResource( 1 ) diff --git a/riot/manager.gd b/riot/manager.gd new file mode 100644 index 0000000..642f2d4 --- /dev/null +++ b/riot/manager.gd @@ -0,0 +1,23 @@ +extends KinematicBody2D + +class_name Manager + +onready var target : Vector2 = get_viewport().get_mouse_position() +export var speed = 128.0 + +func _physics_process(delta : float) -> void: + var move_direction := target - position + if move_direction.length_squared() < 100: + return + var 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)) + for child in get_parent().get_parent().get_children(): + if child is CanvasItem: + child.show() + child.pause_mode = PAUSE_MODE_INHERIT + SaveState.riot_cooldown = 10 + get_parent().queue_free() diff --git a/riot/riot.gd b/riot/riot.gd index da5e0fc..4fd0173 100644 --- a/riot/riot.gd +++ b/riot/riot.gd @@ -1,17 +1,20 @@ extends Node2D -var dev = preload("res://riot/angrydev.tscn") - +var dev_blueprint = preload("res://riot/angrydev.tscn") +onready var manager: Manager = $manager func random_position(): return Vector2(rand_range(30, 1000), rand_range(30, 600)) var devs = [] func _ready() -> void: for i in range(10): - var instance: AngryDev = dev.instance() - instance.position = random_position() + var instance: AngryDev = dev_blueprint.instance() + var vec = random_position() + while vec.distance_squared_to(manager.position) < 256 * 256: + vec = random_position() + instance.position = vec add_child(instance) devs.append(instance) func _input(event) -> void: if event is InputEventMouseMotion: - print(event.position) + manager.target = event.position diff --git a/riot/riot.tscn b/riot/riot.tscn index 291a368..b86a439 100644 --- a/riot/riot.tscn +++ b/riot/riot.tscn @@ -1,11 +1,21 @@ -[gd_scene load_steps=3 format=2] +[gd_scene load_steps=5 format=2] [ext_resource path="res://riot/riot.gd" type="Script" id=1] [ext_resource path="res://assets/manager.png" type="Texture" id=2] +[ext_resource path="res://riot/manager.gd" type="Script" id=3] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 33.1266, 67.3226 ) [node name="Node2D" type="Node2D"] script = ExtResource( 1 ) -[node name="manager" type="Sprite" parent="."] +[node name="manager" type="KinematicBody2D" parent="."] position = Vector2( 600.978, 319.858 ) +script = ExtResource( 3 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="manager"] +shape = SubResource( 1 ) + +[node name="Sprite" type="Sprite" parent="manager"] texture = ExtResource( 2 ) |