From b6daa18e6c068a6c7902309dc535273226027d25 Mon Sep 17 00:00:00 2001 From: Haze Weathers Date: Thu, 5 Dec 2024 02:21:22 -0500 Subject: [PATCH] quite incredible --- autoloads/debug.gd | 3 ++ graphics/secret/uncanny.png | Bin 0 -> 4277 bytes graphics/secret/uncanny.png.import | 35 +++++++++++++++++++++++ objects/enemy/uncanny_cat.gd | 31 ++++++++++++++++++++ objects/enemy/uncanny_cat.tscn | 44 +++++++++++++++++++++++++++++ 5 files changed, 113 insertions(+) create mode 100644 graphics/secret/uncanny.png create mode 100644 graphics/secret/uncanny.png.import create mode 100644 objects/enemy/uncanny_cat.gd create mode 100644 objects/enemy/uncanny_cat.tscn diff --git a/autoloads/debug.gd b/autoloads/debug.gd index 606b626..2e9f962 100644 --- a/autoloads/debug.gd +++ b/autoloads/debug.gd @@ -240,3 +240,6 @@ func _enter_code(): "LASERTAG": Game.can_use_shield = true is_cheating = true + "INCREDIBLE": + var cat = load("res://objects/enemy/uncanny_cat.tscn").instance() + Game.get_map().add_child(cat) diff --git a/graphics/secret/uncanny.png b/graphics/secret/uncanny.png new file mode 100644 index 0000000000000000000000000000000000000000..dfa69b64dcf55f3267cabede57eee6103ed8bfde GIT binary patch literal 4277 zcmeHKdrTBZ7~ew_MNLq#o)qJD)hM=myL&J0R!*RRaFtVplZVyF-tHW%a1ZttIEc2! z8mW&eTHAnPqxI27Vr!dPjrD=S#x}O~Q5$WIO0Yg^jW#}_@lpHj-tkIJ8j|`SdzqVW zW`6UV`F``wcel%PW@HYHj*G@HY^XgeJs0X2r9||DZ`Y<#cc40n3hi#YeKIx>8i3S9 zVj2YlMbpiW(DcKUS<9dd2V21?B~H^{tyh8la@bxE_M|W-0&GSTfenSa35p)ds-Uqmwaxq9AQ|nY0+9+R%?oO*`*yHu5iZR#6Paz!v30(5nncPMb0Z{ zqIa~Ct?h*Cmm}X66+{)J#yrtfRQYq|wZjijk0xCQF7K;*aOlC6 zTT@a>^Bdjw$77DYKW0x(xO%7A^>E~{rKJOy$%f+%?{70MJa*O=vGDN9yRSXlpPYGk z&Tef?%<>UG(4O|8?TwD}Z3kw?BUChD>co%eKb9O_Gq)h=t;=(zqPE6ahK-FAR}Wvg zU6;SV;RDBe!3~xj3)m}zt!rlg^k&nZ1)KKV{(inT;rgq`=YC>Z68q8@k%NfXGqX}h zn%lqnb6eqeCu>e0OTPJNf|T(4&c$najj6PLUh>1SPj2m+-L&D}I>L_MYqyN$Q-Y&P zP4U+rpR1TNG3Bq(`%X{!d(Mc4r{fQvI_1i2X)*gNE}U9#Ym=h1wR$11YCBGDDU7^$ z;`+urEp6n3{K|o0Ny$M!$Cn`)ccBu|Ya?!dbC|$I!A2CA9JIrq zhDyb(S_$RV&T#UzWxQ1&lBY%|1z8~QAeqC1o^o%14cZ8mmjzqtrU+bx$YnO75aKA! zCn4OZGwNtEBPdqsiK)?ek|em<-1KQ-3TWAgQd#!16jfbat*bWZd{PO;Sglry)>C>t z2?#P!`fU_-RZs&Sgw=52fD*|6$~hcgH8AG zmCB;_bQ_`Umlb@xD6p#OHXE75M2nj=TNs8kS_FY~A*(?0jKI5SH*GdrjNPd0-hj+` zd8AMQxlRNgjuR|Aj|`-RGn;{e*OOM4l_TAZ!Q!&I1>S7cccYjoi4c`sdG}o@R02>j zMytVUF$g5GnoXopuyCZ677%GPa0Z6sc)i(ZR;iS8U{iDKHbSqXyLxiUIoa)#JT@X* z^i~GD2ArY?<;k2P8k1-+7!pminbsQ^nlW{O@{tsPfKxct6se8~JUa~-IS3rl!<8V) z?=4XWlw)DR84#9J;uM(Ge(;4&lMpBSB&W|;ZX-IgZs)KAu9LvYTskKsSgkV;J3I0) zNt;+Y64?>Q%yV^-{1LA95kU zRUtv$Cvb&^_)^YWf*^Z@!?mMdd`>7Nnt5bNL}t>J$Qel^GVr9uNE=CufD9&+#l;8+ z^<)qD+;TN1q0|!45wwEvRDYrHN$LqE^h8&eBIS5MFp|-ONMXVBbXYJd>@cO|j1G^J zsDEjaqyoAn8JHL9gX9Idkm^i^Va=4Z^8%mnS-ij%fVyvyUg_H>SD#$HQlMAhzUbqGkYkBmJ~|MV7gW!uwJodeJE#ljoB$jqw6)z e+Ia1`d=2*XjA8Fi`ZPx2#q1d~(m#8>c*#HENUjS2 literal 0 HcmV?d00001 diff --git a/graphics/secret/uncanny.png.import b/graphics/secret/uncanny.png.import new file mode 100644 index 0000000..54773b6 --- /dev/null +++ b/graphics/secret/uncanny.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/uncanny.png-a842bbb579fb6147c3e65cfee5536a0b.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graphics/secret/uncanny.png" +dest_files=[ "res://.import/uncanny.png-a842bbb579fb6147c3e65cfee5536a0b.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=false +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 +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/objects/enemy/uncanny_cat.gd b/objects/enemy/uncanny_cat.gd new file mode 100644 index 0000000..7e5f7e5 --- /dev/null +++ b/objects/enemy/uncanny_cat.gd @@ -0,0 +1,31 @@ +extends "res://objects/enemy/enemy.gd" + + +export var acceleration: float = 8.0 +export var max_speed: float = 16.0 + + +var velocity: Vector2 = Vector2.ZERO + + +onready var player: Node2D = get_tree().get_nodes_in_group("player")[0] + + +func _physics_process(delta: float) -> void: + if not is_instance_valid(player): + return + + var target = (player.global_position - global_position).normalized() + velocity += target * acceleration * delta + velocity = velocity.clamped(max_speed) + + global_position += velocity * delta + +func _on_Hitbox_area_entered(area): + #Kill player + if area.is_in_group("player_hitbox"): + area.get_parent().die() + $Jumpscare.visible = true + $JumpscareSound.play() + var tween = create_tween() + tween.tween_property($Jumpscare, "visible", false, 0).set_delay(1.7) diff --git a/objects/enemy/uncanny_cat.tscn b/objects/enemy/uncanny_cat.tscn new file mode 100644 index 0000000..d944707 --- /dev/null +++ b/objects/enemy/uncanny_cat.tscn @@ -0,0 +1,44 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://graphics/secret/uncanny.png" type="Texture" id=1] +[ext_resource path="res://objects/enemy/uncanny_cat.gd" type="Script" id=2] +[ext_resource path="res://audio/sounds/scrump_die.ogg" type="AudioStream" id=3] + +[sub_resource type="CircleShape2D" id=1] +radius = 7.0 + +[node name="UncannyCat" type="Node2D"] +script = ExtResource( 2 ) +blood = false +acceleration = 48.0 +max_speed = 56.0 + +[node name="Sprite" type="Sprite" parent="."] +texture = ExtResource( 1 ) + +[node name="Hitbox" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"] +shape = SubResource( 1 ) + +[node name="JumpscareSound" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 3 ) +pitch_scale = 2.0 +bus = "sound" + +[node name="Jumpscare" type="CanvasLayer" parent="."] +visible = false + +[node name="ColorRect" type="ColorRect" parent="Jumpscare"] +anchor_right = 1.0 +anchor_bottom = 1.0 +color = Color( 0, 0, 0, 1 ) + +[node name="TextureRect" type="TextureRect" parent="Jumpscare"] +anchor_right = 1.0 +anchor_bottom = 1.0 +texture = ExtResource( 1 ) +expand = true +stretch_mode = 6 + +[connection signal="area_entered" from="Hitbox" to="." method="_on_Hitbox_area_entered"]