Compare commits
2 commits
e5e54a7127
...
434fc41db4
| Author | SHA1 | Date | |
|---|---|---|---|
| 434fc41db4 | |||
| 517eb56063 |
39 changed files with 215 additions and 149 deletions
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/Building 1x2 fixed.png-e90afc0d25a8919ada5700
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/Building 2x1 downside.png-4b432eb4152bab7dd59
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/Building 2x1 fixed.png-b02748fa52aebae62f987c
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ script = ExtResource("4_1cnhw")
|
||||||
[node name="EnemyList" type="Node2D" parent="."]
|
[node name="EnemyList" type="Node2D" parent="."]
|
||||||
|
|
||||||
[node name="Ghost" parent="EnemyList" instance=ExtResource("5_rh5oo")]
|
[node name="Ghost" parent="EnemyList" instance=ExtResource("5_rh5oo")]
|
||||||
position = Vector2(-37.99997, -481)
|
position = Vector2(-38, -481)
|
||||||
|
|
||||||
[node name="Platform" parent="EnemyList" instance=ExtResource("6_caaff")]
|
[node name="Platform" parent="EnemyList" instance=ExtResource("6_caaff")]
|
||||||
visible = false
|
visible = false
|
||||||
|
|
@ -41,13 +41,13 @@ visible = false
|
||||||
position = Vector2(225, -585)
|
position = Vector2(225, -585)
|
||||||
|
|
||||||
[node name="Platform3" parent="EnemyList" instance=ExtResource("6_caaff")]
|
[node name="Platform3" parent="EnemyList" instance=ExtResource("6_caaff")]
|
||||||
position = Vector2(5, -251.00003)
|
position = Vector2(5, -251)
|
||||||
|
|
||||||
[node name="Platform4" parent="EnemyList" instance=ExtResource("6_caaff")]
|
[node name="Platform4" parent="EnemyList" instance=ExtResource("6_caaff")]
|
||||||
position = Vector2(286, -138.00002)
|
position = Vector2(286, -138)
|
||||||
|
|
||||||
[node name="Platform5" parent="EnemyList" instance=ExtResource("6_caaff")]
|
[node name="Platform5" parent="EnemyList" instance=ExtResource("6_caaff")]
|
||||||
position = Vector2(269.0001, -435)
|
position = Vector2(269, -435)
|
||||||
scale = Vector2(2.49, 3.1)
|
scale = Vector2(2.49, 3.1)
|
||||||
|
|
||||||
[node name="ItemSpawn" parent="EnemyList" instance=ExtResource("7_elmbw")]
|
[node name="ItemSpawn" parent="EnemyList" instance=ExtResource("7_elmbw")]
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ visible = false
|
||||||
position = Vector2(225, -585)
|
position = Vector2(225, -585)
|
||||||
|
|
||||||
[node name="Platform5" parent="EnemyList" instance=ExtResource("6_kom4b")]
|
[node name="Platform5" parent="EnemyList" instance=ExtResource("6_kom4b")]
|
||||||
position = Vector2(85.000015, -287)
|
position = Vector2(85, -287)
|
||||||
scale = Vector2(2.49, 3.1)
|
scale = Vector2(2.49, 3.1)
|
||||||
|
|
||||||
[node name="ItemSpawn" parent="EnemyList" instance=ExtResource("7_sr858")]
|
[node name="ItemSpawn" parent="EnemyList" instance=ExtResource("7_sr858")]
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=11 format=3 uid="uid://djawvtdwp423v"]
|
[gd_scene load_steps=12 format=3 uid="uid://djawvtdwp423v"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://b2ji03ekijjnn" path="res://buildings/building.gd" id="1_5j34s"]
|
[ext_resource type="Script" uid="uid://b2ji03ekijjnn" path="res://buildings/building.gd" id="1_5j34s"]
|
||||||
[ext_resource type="Shader" uid="uid://c7gb1nqwvkr37" path="res://buildings/building.gdshader" id="2_xx8ra"]
|
[ext_resource type="Shader" uid="uid://c7gb1nqwvkr37" path="res://buildings/building.gdshader" id="2_xx8ra"]
|
||||||
|
|
@ -9,6 +9,7 @@
|
||||||
[ext_resource type="PackedScene" uid="uid://chu67ci7sl488" path="res://enemies/ghost.tscn" id="7_35wcg"]
|
[ext_resource type="PackedScene" uid="uid://chu67ci7sl488" path="res://enemies/ghost.tscn" id="7_35wcg"]
|
||||||
[ext_resource type="PackedScene" uid="uid://4l3elvxpghw8" path="res://utils/platform.tscn" id="8_sifiv"]
|
[ext_resource type="PackedScene" uid="uid://4l3elvxpghw8" path="res://utils/platform.tscn" id="8_sifiv"]
|
||||||
[ext_resource type="PackedScene" uid="uid://xj0of571aur1" path="res://items/generic/item_spawn.tscn" id="9_i1qmw"]
|
[ext_resource type="PackedScene" uid="uid://xj0of571aur1" path="res://items/generic/item_spawn.tscn" id="9_i1qmw"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://b62xcg0dd3vct" path="res://enemies/leech.tscn" id="10_ibnxs"]
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_pfkkr"]
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_pfkkr"]
|
||||||
shader = ExtResource("2_xx8ra")
|
shader = ExtResource("2_xx8ra")
|
||||||
|
|
@ -63,6 +64,9 @@ scale = Vector2(2.688, 3)
|
||||||
[node name="ItemSpawn" parent="EnemyList" instance=ExtResource("9_i1qmw")]
|
[node name="ItemSpawn" parent="EnemyList" instance=ExtResource("9_i1qmw")]
|
||||||
position = Vector2(300, -200)
|
position = Vector2(300, -200)
|
||||||
|
|
||||||
|
[node name="Leech" parent="EnemyList" instance=ExtResource("10_ibnxs")]
|
||||||
|
position = Vector2(84, -320)
|
||||||
|
|
||||||
[node name="DebugSprite" type="Sprite2D" parent="."]
|
[node name="DebugSprite" type="Sprite2D" parent="."]
|
||||||
visible = false
|
visible = false
|
||||||
position = Vector2(300, -150)
|
position = Vector2(300, -150)
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=11 format=3 uid="uid://c7ddsyd8kcjji"]
|
[gd_scene load_steps=12 format=3 uid="uid://c7ddsyd8kcjji"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://b2ji03ekijjnn" path="res://buildings/building.gd" id="1_0710n"]
|
[ext_resource type="Script" uid="uid://b2ji03ekijjnn" path="res://buildings/building.gd" id="1_0710n"]
|
||||||
[ext_resource type="Shader" uid="uid://c7gb1nqwvkr37" path="res://buildings/building.gdshader" id="2_7e5ul"]
|
[ext_resource type="Shader" uid="uid://c7gb1nqwvkr37" path="res://buildings/building.gdshader" id="2_7e5ul"]
|
||||||
|
|
@ -9,6 +9,7 @@
|
||||||
[ext_resource type="PackedScene" uid="uid://xj0of571aur1" path="res://items/generic/item_spawn.tscn" id="7_crruu"]
|
[ext_resource type="PackedScene" uid="uid://xj0of571aur1" path="res://items/generic/item_spawn.tscn" id="7_crruu"]
|
||||||
[ext_resource type="PackedScene" uid="uid://h3caql0b6vft" path="res://traps/bear_trap.tscn" id="8_fkxmk"]
|
[ext_resource type="PackedScene" uid="uid://h3caql0b6vft" path="res://traps/bear_trap.tscn" id="8_fkxmk"]
|
||||||
[ext_resource type="PackedScene" uid="uid://chu67ci7sl488" path="res://enemies/ghost.tscn" id="9_6hrl3"]
|
[ext_resource type="PackedScene" uid="uid://chu67ci7sl488" path="res://enemies/ghost.tscn" id="9_6hrl3"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://b62xcg0dd3vct" path="res://enemies/leech.tscn" id="10_7e5ul"]
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_pfkkr"]
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_pfkkr"]
|
||||||
shader = ExtResource("2_7e5ul")
|
shader = ExtResource("2_7e5ul")
|
||||||
|
|
@ -60,6 +61,9 @@ position = Vector2(465, -301)
|
||||||
[node name="Ghost" parent="EnemyList" instance=ExtResource("9_6hrl3")]
|
[node name="Ghost" parent="EnemyList" instance=ExtResource("9_6hrl3")]
|
||||||
position = Vector2(301, -49)
|
position = Vector2(301, -49)
|
||||||
|
|
||||||
|
[node name="Leech" parent="EnemyList" instance=ExtResource("10_7e5ul")]
|
||||||
|
position = Vector2(176, -320)
|
||||||
|
|
||||||
[node name="DebugSprite" type="Sprite2D" parent="."]
|
[node name="DebugSprite" type="Sprite2D" parent="."]
|
||||||
visible = false
|
visible = false
|
||||||
position = Vector2(300, -150)
|
position = Vector2(300, -150)
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/Ghost 1.png-43131954ed622829dc5453ddf6a96b4c.
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/Ghost 2.png-67077adaa01a71a5c0b85fac254bdf8e.
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/Ghost 3.png-18da238556f83c92715d2db31a14d159.
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/Ghost 4.png-45ba6df3ef207a5eff72f5f0036139d6.
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/Ghost 5.png-08f0125e59cfd0173a5d36d75efeae60.
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ func _physics_process(delta: float) -> void:
|
||||||
current_knockback = current_knockback/pow(1.3, 60*delta)
|
current_knockback = current_knockback/pow(1.3, 60*delta)
|
||||||
|
|
||||||
if(self.overlaps_body(player)):
|
if(self.overlaps_body(player)):
|
||||||
player.hurt(damage, self.position-player.position)
|
player.hurt(damage, self.global_position-player.global_position)
|
||||||
|
|
||||||
func _on_death():
|
func _on_death():
|
||||||
self.queue_free()
|
self.queue_free()
|
||||||
|
|
|
||||||
89
enemies/leech.gd
Normal file
89
enemies/leech.gd
Normal file
|
|
@ -0,0 +1,89 @@
|
||||||
|
extends Node2D
|
||||||
|
@export var broadth = 250
|
||||||
|
@export var move_dir = -1
|
||||||
|
@export var angular_speed = 0.25
|
||||||
|
@export var hp = 400
|
||||||
|
var angle = 0.0 if move_dir == 1 else PI
|
||||||
|
|
||||||
|
@onready var segments : Array[Node] = $Segments.get_children()
|
||||||
|
@onready var segment_count = segments.size()
|
||||||
|
var paused = false
|
||||||
|
var pause_time = 0.1
|
||||||
|
var iframes = 0.2
|
||||||
|
var iframe_time = 0
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
for segment in segments:
|
||||||
|
segment.segment_damaged.connect(hurt)
|
||||||
|
|
||||||
|
func _physics_process(delta: float) -> void:
|
||||||
|
iframe_time = max(0, iframe_time - delta)
|
||||||
|
if not paused:
|
||||||
|
angle -= TAU * delta * angular_speed * move_dir
|
||||||
|
if(angle > PI or angle < 0):
|
||||||
|
paused = true
|
||||||
|
await get_tree().create_timer(pause_time).timeout
|
||||||
|
paused = false
|
||||||
|
angle = fmod(angle + PI, PI)
|
||||||
|
var y = position.length()
|
||||||
|
var ratio = - move_dir * broadth / (2 * y)
|
||||||
|
var rot_angle = - 2 * asin(ratio)
|
||||||
|
position = position.rotated(rot_angle)
|
||||||
|
|
||||||
|
if(move_dir == 1 and angle < 1 or move_dir == -1 and angle > PI - 1):
|
||||||
|
var y = position.length()
|
||||||
|
var ratio = - move_dir * broadth / (2 * y)
|
||||||
|
var rot_angle = - 2 * asin(ratio)
|
||||||
|
$RayCast2D.global_position = position.rotated(rot_angle)
|
||||||
|
$RayCast2D.rotation = rot_angle
|
||||||
|
if(move_dir == 1 and angle < 0.5 or move_dir == -1 and angle > PI - 0.5):
|
||||||
|
if(not $RayCast2D.has_overlapping_bodies()):
|
||||||
|
paused = true
|
||||||
|
await get_tree().create_timer(pause_time).timeout
|
||||||
|
paused = false
|
||||||
|
move_dir *= -1
|
||||||
|
|
||||||
|
for i in range(segment_count):
|
||||||
|
var segment_pos_data = calculate_segment_location_and_rotation(i)
|
||||||
|
segments[i].position = segment_pos_data.position
|
||||||
|
segments[i].rotation = segment_pos_data.rotation
|
||||||
|
|
||||||
|
func calculate_segment_location_and_rotation (i) -> Dictionary:
|
||||||
|
var aerial_end_location = Vector2.from_angle(-angle) * broadth
|
||||||
|
var gravicenter = (aerial_end_location + Vector2(0, -broadth) + Vector2.ZERO) / 3
|
||||||
|
var ax = gravicenter.x
|
||||||
|
var ay = gravicenter.y
|
||||||
|
var bx = aerial_end_location.x
|
||||||
|
var by = aerial_end_location.y
|
||||||
|
var cx = 0
|
||||||
|
var cy = 0
|
||||||
|
var d = 2 * (ax * (by - cy) + bx * (cy - ay) + cx * (ay - by))
|
||||||
|
var ux = ((ax * ax + ay * ay) * (by - cy) + (bx * bx + by * by) * (cy - ay) + (cx * cx + cy * cy) * (ay - by)) / d
|
||||||
|
var uy = ((ax * ax + ay * ay) * (cx - bx) + (bx * bx + by * by) * (ax - cx) + (cx * cx + cy * cy) * (bx - ax)) / d
|
||||||
|
var center = Vector2(ux, uy)
|
||||||
|
var radius = center.length()
|
||||||
|
var switch_arc_dir = false
|
||||||
|
if ux < 0:
|
||||||
|
switch_arc_dir = !switch_arc_dir
|
||||||
|
if center.angle() > 1:
|
||||||
|
switch_arc_dir = !switch_arc_dir
|
||||||
|
|
||||||
|
var angle1 = - PI + center.angle()
|
||||||
|
var angle2 = - PI + (center-aerial_end_location).angle()
|
||||||
|
if(switch_arc_dir):
|
||||||
|
angle1 += TAU
|
||||||
|
|
||||||
|
if radius < 10000000:
|
||||||
|
return {"position": center + radius * Vector2.from_angle((i * angle1 + (segment_count - 1 - i) * angle2)/(segment_count - 1))
|
||||||
|
, "rotation": (i * angle1 + (segment_count - 1 - i) * angle2)/ (segment_count - 1) + PI/2}
|
||||||
|
else:
|
||||||
|
return {"position" : Vector2.UP * broadth * i / (segment_count - 1),
|
||||||
|
"rotation" : 3 * PI / 2}
|
||||||
|
|
||||||
|
func hurt(damage : int, _dir):
|
||||||
|
if iframe_time <= 0:
|
||||||
|
hp -= damage
|
||||||
|
if(hp<=0):
|
||||||
|
queue_free()
|
||||||
|
else:
|
||||||
|
iframe_time = iframes
|
||||||
1
enemies/leech.gd.uid
Normal file
1
enemies/leech.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://b70f2ylbb3btt
|
||||||
48
enemies/leech.tscn
Normal file
48
enemies/leech.tscn
Normal file
|
|
@ -0,0 +1,48 @@
|
||||||
|
[gd_scene load_steps=6 format=3 uid="uid://b62xcg0dd3vct"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://b70f2ylbb3btt" path="res://enemies/leech.gd" id="1_6u582"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cvoicwo2xnf7e" path="res://segment.tscn" id="2_oqch2"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://chs0u61f45nau" path="res://utils/earth_aligner.tscn" id="3_0r7dp"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://djfc7sdc8wxp6" path="res://player/Heart_cut.png" id="4_cq6dk"]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_cq6dk"]
|
||||||
|
size = Vector2(2, 24)
|
||||||
|
|
||||||
|
[node name="Leech" type="Node2D"]
|
||||||
|
script = ExtResource("1_6u582")
|
||||||
|
|
||||||
|
[node name="Segments" type="Node2D" parent="."]
|
||||||
|
|
||||||
|
[node name="Segment0" parent="Segments" instance=ExtResource("2_oqch2")]
|
||||||
|
|
||||||
|
[node name="Segment2" parent="Segments" instance=ExtResource("2_oqch2")]
|
||||||
|
|
||||||
|
[node name="Segment3" parent="Segments" instance=ExtResource("2_oqch2")]
|
||||||
|
|
||||||
|
[node name="Segment4" parent="Segments" instance=ExtResource("2_oqch2")]
|
||||||
|
|
||||||
|
[node name="Segment5" parent="Segments" instance=ExtResource("2_oqch2")]
|
||||||
|
|
||||||
|
[node name="Segment6" parent="Segments" instance=ExtResource("2_oqch2")]
|
||||||
|
|
||||||
|
[node name="Segment7" parent="Segments" instance=ExtResource("2_oqch2")]
|
||||||
|
|
||||||
|
[node name="Segment8" parent="Segments" instance=ExtResource("2_oqch2")]
|
||||||
|
|
||||||
|
[node name="Segment9" parent="Segments" instance=ExtResource("2_oqch2")]
|
||||||
|
|
||||||
|
[node name="EarthAligner" parent="." instance=ExtResource("3_0r7dp")]
|
||||||
|
|
||||||
|
[node name="RayCast2D" type="Area2D" parent="."]
|
||||||
|
position = Vector2(248, 31.2)
|
||||||
|
collision_layer = 0
|
||||||
|
collision_mask = 8
|
||||||
|
|
||||||
|
[node name="Sprite2D" type="Sprite2D" parent="RayCast2D"]
|
||||||
|
position = Vector2(0, 15)
|
||||||
|
scale = Vector2(0.05, 0.5)
|
||||||
|
texture = ExtResource("4_cq6dk")
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="RayCast2D"]
|
||||||
|
position = Vector2(0, 14.8)
|
||||||
|
shape = SubResource("RectangleShape2D_cq6dk")
|
||||||
|
|
@ -19,5 +19,5 @@ scale = Vector2(7, 7)
|
||||||
shape = SubResource("CircleShape2D_hvhjo")
|
shape = SubResource("CircleShape2D_hvhjo")
|
||||||
|
|
||||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||||
modulate = Color(0.6862745, 0.16078432, 0.5294118, 1)
|
modulate = Color(0.686275, 0.160784, 0.529412, 1)
|
||||||
texture = ExtResource("3_vb0oa")
|
texture = ExtResource("3_vb0oa")
|
||||||
|
|
|
||||||
14
main.tscn
14
main.tscn
|
|
@ -1,12 +1,14 @@
|
||||||
[gd_scene load_steps=8 format=3 uid="uid://cxo6bq26huau7"]
|
[gd_scene load_steps=10 format=3 uid="uid://cxo6bq26huau7"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://cmaovvr15b3qk" path="res://player/player.tscn" id="2_1bvp3"]
|
[ext_resource type="PackedScene" uid="uid://cmaovvr15b3qk" path="res://player/player.tscn" id="2_1bvp3"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://d3fpq76anm4t7" path="res://world/Background prototype.png" id="3_kek77"]
|
||||||
[ext_resource type="PackedScene" uid="uid://jjoyj1ldafkf" path="res://world/earth.tscn" id="3_lquwl"]
|
[ext_resource type="PackedScene" uid="uid://jjoyj1ldafkf" path="res://world/earth.tscn" id="3_lquwl"]
|
||||||
[ext_resource type="Script" uid="uid://colvx6wq0e8n7" path="res://world/building_generator.gd" id="4_1bvp3"]
|
[ext_resource type="Script" uid="uid://colvx6wq0e8n7" path="res://world/building_generator.gd" id="4_1bvp3"]
|
||||||
[ext_resource type="PackedScene" uid="uid://73g8y37skebh" path="res://item_ui/item_ui.tscn" id="6_4c57u"]
|
[ext_resource type="PackedScene" uid="uid://73g8y37skebh" path="res://item_ui/item_ui.tscn" id="6_4c57u"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cjsrtswk4vgf2" path="res://healthbar/healthbar.tscn" id="6_7mycd"]
|
[ext_resource type="PackedScene" uid="uid://cjsrtswk4vgf2" path="res://healthbar/healthbar.tscn" id="6_7mycd"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dpdn2php3ydsv" path="res://death_screen/death_screen.tscn" id="7_5vw27"]
|
[ext_resource type="PackedScene" uid="uid://dpdn2php3ydsv" path="res://death_screen/death_screen.tscn" id="7_5vw27"]
|
||||||
[ext_resource type="Script" uid="uid://3k6r3jnko4hg" path="res://show_fps.gd" id="8_5vw27"]
|
[ext_resource type="Script" uid="uid://3k6r3jnko4hg" path="res://show_fps.gd" id="8_5vw27"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://b62xcg0dd3vct" path="res://enemies/leech.tscn" id="9_kek77"]
|
||||||
|
|
||||||
[node name="main" type="Node2D"]
|
[node name="main" type="Node2D"]
|
||||||
|
|
||||||
|
|
@ -22,6 +24,13 @@ scale = Vector2(3, 3)
|
||||||
position = Vector2(0, -50)
|
position = Vector2(0, -50)
|
||||||
ignore_rotation = false
|
ignore_rotation = false
|
||||||
|
|
||||||
|
[node name="Sprite2D" type="Sprite2D" parent="Player"]
|
||||||
|
visible = false
|
||||||
|
z_index = -20
|
||||||
|
position = Vector2(0, -50)
|
||||||
|
scale = Vector2(0.7, 0.7)
|
||||||
|
texture = ExtResource("3_kek77")
|
||||||
|
|
||||||
[node name="Debug_Camera" type="Camera2D" parent="."]
|
[node name="Debug_Camera" type="Camera2D" parent="."]
|
||||||
scale = Vector2(41.02, 41.02)
|
scale = Vector2(41.02, 41.02)
|
||||||
zoom = Vector2(0.12, 0.12)
|
zoom = Vector2(0.12, 0.12)
|
||||||
|
|
@ -55,6 +64,9 @@ offset_bottom = 23.0
|
||||||
grow_horizontal = 0
|
grow_horizontal = 0
|
||||||
script = ExtResource("8_5vw27")
|
script = ExtResource("8_5vw27")
|
||||||
|
|
||||||
|
[node name="Leech" parent="." instance=ExtResource("9_kek77")]
|
||||||
|
position = Vector2(0, -3015)
|
||||||
|
|
||||||
[connection signal="active_item_changed" from="Player" to="CanvasLayer/ItemUI" method="_on_player_active_item_changed"]
|
[connection signal="active_item_changed" from="Player" to="CanvasLayer/ItemUI" method="_on_player_active_item_changed"]
|
||||||
[connection signal="health_changed" from="Player" to="CanvasLayer/Healthbar" method="_on_player_health_changed"]
|
[connection signal="health_changed" from="Player" to="CanvasLayer/Healthbar" method="_on_player_health_changed"]
|
||||||
[connection signal="max_hp_changed" from="Player" to="CanvasLayer/Healthbar" method="_on_player_max_hp_changed"]
|
[connection signal="max_hp_changed" from="Player" to="CanvasLayer/Healthbar" method="_on_player_max_hp_changed"]
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/Heart Grey.png-6b86b8edc4802c3a483d9a14eb7ce1
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/Heart.png-33902e9ff8206d83f93ea6d088b4a1bc.ct
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/Heart_cut Grey.png-b4b9be15b5a8a36395d31eba43
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/Heart_cut.png-f11ef12fc6c55a0077b5ba659ce17ad
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/Walk 1.png-47c623e9d3540b4a00d2bddf52ae0b2a.c
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/Walk 2.png-5dea4fdec55fa43e26680e08090fd654.c
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/Walk 3.png-27890c0cb512383b8ecbd848c73efee1.c
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/Walk 4.png-232b1eae2acf3ad82130431014262cde.c
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/Walk 5.png-cfb8eb15ace876127c083283fe74cdc0.c
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/Walk 6.png-f243f98e182be67eb8681a11d34ee554.c
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ config_version=5
|
||||||
|
|
||||||
config/name="The Dark Side of Earth"
|
config/name="The Dark Side of Earth"
|
||||||
run/main_scene="uid://dpkr8yoobtej6"
|
run/main_scene="uid://dpkr8yoobtej6"
|
||||||
config/features=PackedStringArray("4.5", "Forward Plus")
|
config/features=PackedStringArray("4.4", "Forward Plus")
|
||||||
config/icon="res://icon.svg"
|
config/icon="res://icon.svg"
|
||||||
|
|
||||||
[display]
|
[display]
|
||||||
|
|
@ -68,3 +68,4 @@ drop_item={
|
||||||
|
|
||||||
2d_physics/layer_2="EnemyHurtBox"
|
2d_physics/layer_2="EnemyHurtBox"
|
||||||
2d_physics/layer_3="PlayerHurtBox"
|
2d_physics/layer_3="PlayerHurtBox"
|
||||||
|
2d_physics/layer_4="SolidGround"
|
||||||
|
|
|
||||||
12
segment.gd
Normal file
12
segment.gd
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
extends Area2D
|
||||||
|
@onready var player = get_tree().get_root().get_node_or_null("main/Player")
|
||||||
|
var damage = 1
|
||||||
|
|
||||||
|
signal segment_damaged
|
||||||
|
|
||||||
|
func _physics_process(_delta: float) -> void:
|
||||||
|
if (player != null and overlaps_body(player)):
|
||||||
|
player.hurt(damage, self.global_position-player.global_position)
|
||||||
|
|
||||||
|
func _on_hurtbox_damaged(dmg : int, dir : Vector2):
|
||||||
|
segment_damaged.emit(dmg, dir)
|
||||||
1
segment.gd.uid
Normal file
1
segment.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://b3q5khoqnnicx
|
||||||
30
segment.tscn
Normal file
30
segment.tscn
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
[gd_scene load_steps=5 format=3 uid="uid://cvoicwo2xnf7e"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://b3q5khoqnnicx" path="res://segment.gd" id="1_o43lr"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cy70quh6k3s1j" path="res://icon.svg" id="2_sa5vt"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://mtfsdd4cdf3a" path="res://utils/enemy_hurtbox.tscn" id="3_sa5vt"]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_fgt1l"]
|
||||||
|
|
||||||
|
[node name="Segment" type="Area2D"]
|
||||||
|
collision_layer = 0
|
||||||
|
collision_mask = 4
|
||||||
|
script = ExtResource("1_o43lr")
|
||||||
|
|
||||||
|
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||||
|
modulate = Color(0.309804, 0.113725, 0, 1)
|
||||||
|
scale = Vector2(0.315, 0.16)
|
||||||
|
texture = ExtResource("2_sa5vt")
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||||
|
scale = Vector2(2, 1)
|
||||||
|
shape = SubResource("RectangleShape2D_fgt1l")
|
||||||
|
|
||||||
|
[node name="EnemyHurtbox" parent="." instance=ExtResource("3_sa5vt")]
|
||||||
|
hit_invulnerability = 0.0
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="EnemyHurtbox"]
|
||||||
|
scale = Vector2(2, 1)
|
||||||
|
shape = SubResource("RectangleShape2D_fgt1l")
|
||||||
|
|
||||||
|
[connection signal="damage_taken" from="EnemyHurtbox" to="." method="_on_hurtbox_damaged"]
|
||||||
|
|
@ -9,6 +9,7 @@ size = Vector2(56, 6)
|
||||||
|
|
||||||
[node name="Platform" type="StaticBody2D"]
|
[node name="Platform" type="StaticBody2D"]
|
||||||
scale = Vector2(2.778, 3.1)
|
scale = Vector2(2.778, 3.1)
|
||||||
|
collision_layer = 9
|
||||||
script = ExtResource("1_c1gtx")
|
script = ExtResource("1_c1gtx")
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/Background Prototype Layer 1.png-47bb54b6d20a
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/Background Prototype Layer 2.png-ab86220f0fff
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/Background Prototype Layer 3.png-5a49ea16a5dc
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/Background Prototype Layer 4.png-ee5791549e67
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ dest_files=["res://.godot/imported/Background prototype.png-82410769bb8789c49aff
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -27,10 +25,6 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ radius = 3000.0
|
||||||
script = ExtResource("1_wxnww")
|
script = ExtResource("1_wxnww")
|
||||||
|
|
||||||
[node name="Ground" type="StaticBody2D" parent="."]
|
[node name="Ground" type="StaticBody2D" parent="."]
|
||||||
|
collision_layer = 9
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Ground"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Ground"]
|
||||||
shape = SubResource("CircleShape2D_5i67w")
|
shape = SubResource("CircleShape2D_5i67w")
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue