From 2a9fcd17a1d2fb198600fd549809fa80f3142521 Mon Sep 17 00:00:00 2001 From: pennyrigate Date: Wed, 1 Mar 2023 18:58:44 -0500 Subject: [PATCH] add rust inc --- autoloads/level_data.tscn | 13 +- graphics/enemy/robosnake.png | Bin 0 -> 260 bytes graphics/enemy/robosnake.png.import | 35 +++ graphics/enemy/roboturret.png | Bin 0 -> 2039 bytes graphics/enemy/roboturret.png.import | 35 +++ graphics/enemy/roboturret_projectile.png | Bin 0 -> 154 bytes .../enemy/roboturret_projectile.png.import | 35 +++ maps/rust.tscn | 17 +- maps/test_room.tscn | 209 ------------------ objects/enemy/robosnake.tscn | 9 + objects/enemy/roboturret.gd | 35 +++ objects/enemy/roboturret.tscn | 146 ++++++++++++ objects/enemy/roboturret_proj.tscn | 20 ++ 13 files changed, 342 insertions(+), 212 deletions(-) create mode 100644 graphics/enemy/robosnake.png create mode 100644 graphics/enemy/robosnake.png.import create mode 100644 graphics/enemy/roboturret.png create mode 100644 graphics/enemy/roboturret.png.import create mode 100644 graphics/enemy/roboturret_projectile.png create mode 100644 graphics/enemy/roboturret_projectile.png.import delete mode 100644 maps/test_room.tscn create mode 100644 objects/enemy/robosnake.tscn create mode 100644 objects/enemy/roboturret.gd create mode 100644 objects/enemy/roboturret.tscn create mode 100644 objects/enemy/roboturret_proj.tscn diff --git a/autoloads/level_data.tscn b/autoloads/level_data.tscn index 8958938..540d2e7 100644 --- a/autoloads/level_data.tscn +++ b/autoloads/level_data.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=15 format=2] +[gd_scene load_steps=17 format=2] [ext_resource path="res://autoloads/level_data.gd" type="Script" id=1] [ext_resource path="res://maps/map01.tscn" type="PackedScene" id=2] @@ -8,6 +8,7 @@ [ext_resource path="res://maps/mountain.tscn" type="PackedScene" id=6] [ext_resource path="res://maps/abyss.tscn" type="PackedScene" id=7] [ext_resource path="res://maps/boss/boss1_arena.tscn" type="PackedScene" id=8] +[ext_resource path="res://maps/rust.tscn" type="PackedScene" id=9] [sub_resource type="Resource" id=1] resource_name = "Verdant Hills" @@ -57,6 +58,14 @@ shard_titles = [ "You", "Can", "(not)", "Breathe", "5 Rainbow Stars", "Collectio save_id = "abyss" scene = ExtResource( 7 ) +[sub_resource type="Resource" id=7] +resource_name = "Rust Inc." +script = ExtResource( 5 ) +title = "Rust Inc." +shard_titles = [ "No breaks", "Long shift", "Low pay", "Can't sit", "5 Rainbow Stars", "Collection Bonus", "Time Bonus", "Life Bonus" ] +save_id = "rust" +scene = ExtResource( 9 ) + [node name="LevelData" type="Node"] script = ExtResource( 1 ) -levels = [ SubResource( 1 ), SubResource( 2 ), SubResource( 4 ), SubResource( 6 ), SubResource( 3 ), SubResource( 5 ) ] +levels = [ SubResource( 1 ), SubResource( 2 ), SubResource( 4 ), SubResource( 6 ), SubResource( 3 ), SubResource( 5 ), SubResource( 7 ) ] diff --git a/graphics/enemy/robosnake.png b/graphics/enemy/robosnake.png new file mode 100644 index 0000000000000000000000000000000000000000..497ad3e172e68809480d883d3d47355df699441b GIT binary patch literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!3-oF?)7E^DaPU;cPEB*=VV?2IV|apzK#qG z8~eHcB(ehe`~f~8uJh;5x3RJLYV7p?|9_yE%F;A7AjMh|>?wFYU7ATnO>Ealo5xll9kgvgj!};`+f9cZ#IVSl0{Wx<+S1k9JW_ex% zC%z<(gNGK)yTD+)N3A1f*L>!g4~{D+86WIVDlb~;GlR9va(Y+JM#ibiTSIy;W}lIt ypSR$hpqtLS{Ar;~sr$EuulOHlpfxXWFQdO9+x_;1FQtJNGkCiCxvXThwX-w-;)K1N9oWUz z3yY~}i<**B13?=#DGF+>(pFNy3vH{WV%m7d;(gmxqtY7t&+bAoA?YM@{BOSZ{qKG6 z{cp7+cSfT2Rjo#&NwjBK^Wj^BcT)TS`24+U;%<#5u0pa{9CnKZamaqR9}X?ZwoBRw9|eO6xF-d=yWVda`V zO+%Z?ktYMXZgp+BfxdC^i&67G*1jKZsru`p>3k>!p?}J5{;+Gg&)MjlK0<$H7WqV* zvMOoXOM2~|Dn8lpxg#@~Je!#B*>a=sR#(cRXVmvjxw`G>?&Vq~ zttsW7VM|Z`b|Nn~Y)?&yZ(&b#q$QmnxUr<;>6FsiYYCT@4Qg7uul1D1J=MOmdGC$k z#ID4`!e&Fsutt*XyHoL_h>Z|2eKD<12+w@oI(gC91Q1&ix0Ka9)j+_Ayf)}Bht z-gM`Y?*6^Iwdd+X=bvVD$L+%9)`83JjfZs^;mCH{SeC7?uWxQ{ex#os2n3*cdB?Oc zd<|0aa|@oUmu64vmR4v<2xQF*YBV}jz2h3XE^N?f23jTOTxD)fHYfPKI$rd^%y?lbH;j$UsylOo9*h~xrQ>)k{YdNF|#*%SFM3OMipFC+`X zn8;qNBDw$5=7o6FKauczHiujE^1guV$x{VFF*vJVC{cH^Tg|8%ASe0-N#r7*l$&Hp zR!?JYK`>%8X%I1fL(Yr6)uY^zhhyL524TK;?nVIth}9ZptXofWR1rU@)53 z6PU|Iu$ajpkOE*B#$cd({PSc9wjS^48;{B(LLR|L7--rA<1ny1Mhk=RR;T0z1q!c9L^4KN&lpXN(Lj+T z!Nd@=fgFTAq*9TDPEVnTC~%pOh=&a!dHEuM2Yf{+qUz4U(4m05+H{aGk`QN+0k8OF zr{C`}qiSS`$`t*V1CNHtE4-Cg0NjC~^c+EQ6y=0ZlHzD1Mi@Av2kaLmciI0zBL@kA zS9-LnSyB-0Ue;@l9ghOAsE;XT^hijg(>Y#lth6s&_O39~41` zgYS=Vr&u^NYwXqxC!2SC!(eS2GQ`qY|M!Bjy3AjtBU8YgcE_G=yEn~DdC-~kxUKvV zw<@)zI-VJM+EQ}%_LYtcNqg713$KrJ)$tQ1cCH=Wwd5%$ZoWD1n~Mdvj;w7zH{nn1 zzT~@%wEc%2W3S)1UHfA~opa}y1D>T{Up>-&ZHhMTSvYx8V}*77C*FhaY)>Uu4j?*{ iMu5E6?+aVEejDc<^ICyaQ?*W=>~>qOwQ2eX<^KY;V9SjF literal 0 HcmV?d00001 diff --git a/graphics/enemy/roboturret.png.import b/graphics/enemy/roboturret.png.import new file mode 100644 index 0000000..6cfe625 --- /dev/null +++ b/graphics/enemy/roboturret.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/roboturret.png-e07ce7c3906f2fea34c536c816695e97.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graphics/enemy/roboturret.png" +dest_files=[ "res://.import/roboturret.png-e07ce7c3906f2fea34c536c816695e97.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/graphics/enemy/roboturret_projectile.png b/graphics/enemy/roboturret_projectile.png new file mode 100644 index 0000000000000000000000000000000000000000..6d2c06602cc63b67cff041004220d7d50b0ecc99 GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)M!3HGx`C7_=6k~CayA#8@b22Z19F}xPUq=Rp zjs4tz5?O(K&H|6fVg?4j!ywFfJby(BP*C5~#W6%8JXwKbTmJoj_YWR?Xy3t>xWa&0 uc#0dN0c(V6BE#w>%a^MwPwC_~FaR2IkKZWl-M 0: + arrow.global_position = global_position + shootpos.position + else: + arrow.global_position = global_position + shootpos.position + arrow.direction = sign(shootpos.position.x) + arrow.target_group = "player" + arrow.speed = arrow_speed + Game.get_map().add_child(arrow) + timer.start(shoot_time) + +func _on_Timer_timeout(): + if !anims.is_playing(): spawn_bullet() + + diff --git a/objects/enemy/roboturret.tscn b/objects/enemy/roboturret.tscn new file mode 100644 index 0000000..770c52e --- /dev/null +++ b/objects/enemy/roboturret.tscn @@ -0,0 +1,146 @@ +[gd_scene load_steps=9 format=2] + +[ext_resource path="res://scripts/1px_border.gdshader" type="Shader" id=1] +[ext_resource path="res://graphics/enemy/roboturret.png" type="Texture" id=2] +[ext_resource path="res://objects/enemy/roboturret.gd" type="Script" id=3] + +[sub_resource type="ShaderMaterial" id=1] +shader = ExtResource( 1 ) +shader_param/border_color = Color( 0, 0, 0, 1 ) +shader_param/border_corners = false + +[sub_resource type="Animation" id=2] +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath("ShootPos:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( -9, 2 ) ] +} + +[sub_resource type="Animation" id=3] +resource_name = "turn left" +length = 0.5 +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.1, 0.2, 0.3, 0.4 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 1, +"values": [ 4, 3, 2, 1, 0 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("ShootPos:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.4 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ Vector2( 9, 3 ), Vector2( -9, 3 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("RayCast2D:cast_to") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 0.4 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ Vector2( -48, 0 ), Vector2( 48, 0 ) ] +} + +[sub_resource type="Animation" id=4] +resource_name = "turn right" +length = 0.5 +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.1, 0.2, 0.3, 0.4 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 1, +"values": [ 0, 1, 2, 3, 4 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("ShootPos:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.4 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ Vector2( -9, 3 ), Vector2( 9, 3 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("RayCast2D:cast_to") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 0.4 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ Vector2( 48, 0 ), Vector2( -48, 0 ) ] +} + +[sub_resource type="RectangleShape2D" id=5] +extents = Vector2( 4, 4 ) + +[node name="Roboturret" type="Node2D"] +script = ExtResource( 3 ) +score_for_killing = 100 + +[node name="Sprite" type="Sprite" parent="."] +material = SubResource( 1 ) +position = Vector2( 3, 0 ) +texture = ExtResource( 2 ) +hframes = 5 +region_rect = Rect2( 20, 0, 20, 16 ) + +[node name="ShootPos" type="Position2D" parent="."] +position = Vector2( -9, 2 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +anims/RESET = SubResource( 2 ) +"anims/turn left" = SubResource( 3 ) +"anims/turn right" = SubResource( 4 ) + +[node name="Timer" type="Timer" parent="."] +autostart = true + +[node name="RayCast2D" type="RayCast2D" parent="."] +position = Vector2( 3, 3 ) +enabled = true +cast_to = Vector2( 45, 0 ) +collision_mask = 8 +collide_with_areas = true + +[node name="Hitbox" type="Area2D" parent="." groups=["enemy_hitbox"]] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"] +position = Vector2( 4, 4 ) +shape = SubResource( 5 ) + +[connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"] +[connection signal="area_entered" from="Hitbox" to="." method="_on_Hitbox_area_entered"] diff --git a/objects/enemy/roboturret_proj.tscn b/objects/enemy/roboturret_proj.tscn new file mode 100644 index 0000000..56e1ca8 --- /dev/null +++ b/objects/enemy/roboturret_proj.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://objects/enemy/enemy_arrow.tscn" type="PackedScene" id=1] +[ext_resource path="res://graphics/enemy/roboturret_projectile.png" type="Texture" id=2] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 3.5, 1 ) + +[node name="BulletBall" instance=ExtResource( 1 )] + +[node name="Sprite" parent="." index="0"] +texture = ExtResource( 2 ) + +[node name="DustParticles" parent="." index="1"] +position = Vector2( -2, 0 ) +amount = 8 + +[node name="CollisionShape2D" parent="Hitbox" index="0"] +position = Vector2( -0.5, 0 ) +shape = SubResource( 1 )