From 673bdc039651f0c276559cd8e8f4e8406ad4953d Mon Sep 17 00:00:00 2001 From: Drew C Date: Sat, 17 Jan 2026 18:33:45 -0600 Subject: [PATCH] Initial commit --- Abilities/Fireball.cs | 10 ++++ Abilities/Fireball.cs.uid | 1 + Abilities/Fireball.png | Bin 0 -> 194 bytes Abilities/Fireball.png.import | 40 ++++++++++++++ Abilities/Fireball.tscn | 19 +++++++ Abilities/Fireballv2.cs | 34 ++++++++++++ Abilities/Fireballv2.cs.uid | 1 + Abilities/Fireballv2.tscn | 20 +++++++ Abilities/Fireballv3.cs | 29 +++++++++++ Abilities/Fireballv3.cs.uid | 1 + Abilities/Fireballv3.tscn | 20 +++++++ Abilities/MeleeBase.cs | 20 +++++++ Abilities/MeleeBase.cs.uid | 1 + Abilities/ProjectileBase.cs | 35 +++++++++++++ Abilities/ProjectileBase.cs.uid | 1 + Abilities/Sword/Sword.cs | 34 ++++++++++++ Abilities/Sword/Sword.cs.uid | 1 + Abilities/Sword/Sword.png | Bin 0 -> 932 bytes Abilities/Sword/Sword.png.import | 40 ++++++++++++++ Abilities/Sword/Sword.tscn | 16 ++++++ Characters/CharacterBase.cs | 51 ++++++++++++++++++ Characters/CharacterBase.cs.uid | 1 + Characters/Knight/Body.png | Bin 0 -> 157 bytes Characters/Knight/Body.png.import | 40 ++++++++++++++ Characters/Knight/Knight.cs | 27 ++++++++++ Characters/Knight/Knight.cs.uid | 1 + Characters/Knight/Knight.tscn | 21 ++++++++ Characters/Wizard/Body.png | Bin 0 -> 157 bytes Characters/Wizard/Body.png.import | 40 ++++++++++++++ Characters/Wizard/Wizard.cs | 27 ++++++++++ Characters/Wizard/Wizard.cs.uid | 1 + Characters/Wizard/Wizard.tscn | 21 ++++++++ Crosshair.png | Bin 0 -> 180 bytes Crosshair.png.import | 40 ++++++++++++++ Environment/Tiles/FloorTile16.png | Bin 0 -> 559 bytes Environment/Tiles/FloorTile16.png.import | 40 ++++++++++++++ Environment/Tiles/Tiles.tres | 18 +++++++ Environment/Tiles/WallTile16.png | Bin 0 -> 557 bytes Environment/Tiles/WallTile16.png.import | 40 ++++++++++++++ Slapstick.csproj | 8 +++ Slapstick.sln | 19 +++++++ Stages/Sandbox.tscn | 31 +++++++++++ icon.svg | 1 + icon.svg.import | 43 ++++++++++++++++ project.godot | 63 +++++++++++++++++++++++ 45 files changed, 856 insertions(+) create mode 100644 Abilities/Fireball.cs create mode 100644 Abilities/Fireball.cs.uid create mode 100644 Abilities/Fireball.png create mode 100644 Abilities/Fireball.png.import create mode 100644 Abilities/Fireball.tscn create mode 100644 Abilities/Fireballv2.cs create mode 100644 Abilities/Fireballv2.cs.uid create mode 100644 Abilities/Fireballv2.tscn create mode 100644 Abilities/Fireballv3.cs create mode 100644 Abilities/Fireballv3.cs.uid create mode 100644 Abilities/Fireballv3.tscn create mode 100644 Abilities/MeleeBase.cs create mode 100644 Abilities/MeleeBase.cs.uid create mode 100644 Abilities/ProjectileBase.cs create mode 100644 Abilities/ProjectileBase.cs.uid create mode 100644 Abilities/Sword/Sword.cs create mode 100644 Abilities/Sword/Sword.cs.uid create mode 100644 Abilities/Sword/Sword.png create mode 100644 Abilities/Sword/Sword.png.import create mode 100644 Abilities/Sword/Sword.tscn create mode 100644 Characters/CharacterBase.cs create mode 100644 Characters/CharacterBase.cs.uid create mode 100644 Characters/Knight/Body.png create mode 100644 Characters/Knight/Body.png.import create mode 100644 Characters/Knight/Knight.cs create mode 100644 Characters/Knight/Knight.cs.uid create mode 100644 Characters/Knight/Knight.tscn create mode 100644 Characters/Wizard/Body.png create mode 100644 Characters/Wizard/Body.png.import create mode 100644 Characters/Wizard/Wizard.cs create mode 100644 Characters/Wizard/Wizard.cs.uid create mode 100644 Characters/Wizard/Wizard.tscn create mode 100644 Crosshair.png create mode 100644 Crosshair.png.import create mode 100644 Environment/Tiles/FloorTile16.png create mode 100644 Environment/Tiles/FloorTile16.png.import create mode 100644 Environment/Tiles/Tiles.tres create mode 100644 Environment/Tiles/WallTile16.png create mode 100644 Environment/Tiles/WallTile16.png.import create mode 100644 Slapstick.csproj create mode 100644 Slapstick.sln create mode 100644 Stages/Sandbox.tscn create mode 100644 icon.svg create mode 100644 icon.svg.import create mode 100644 project.godot diff --git a/Abilities/Fireball.cs b/Abilities/Fireball.cs new file mode 100644 index 0000000..e619917 --- /dev/null +++ b/Abilities/Fireball.cs @@ -0,0 +1,10 @@ +using Godot; +using System; + +public partial class Fireball : ProjectileBase +{ + public override void _PhysicsProcess(double delta) + { + Position += Transform.X * Speed * (float)delta; + } +} diff --git a/Abilities/Fireball.cs.uid b/Abilities/Fireball.cs.uid new file mode 100644 index 0000000..a7ca137 --- /dev/null +++ b/Abilities/Fireball.cs.uid @@ -0,0 +1 @@ +uid://tt0u7f0gemjo diff --git a/Abilities/Fireball.png b/Abilities/Fireball.png new file mode 100644 index 0000000000000000000000000000000000000000..12d3a217f3da25a9e9f0d9b120ed4890a8997cad GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^{2V)`u6FlGtP z%p>Ux%7#*fk_TFJI{lT+D%G4WHgdno?)!JXMVG6CQQ}C0`la7sED%-bm0 oz{9c3AcgtDQ4hWdr;8j6tyiNxm~A!B0Nugh>FVdQ&MBb@0LW`YM*si- literal 0 HcmV?d00001 diff --git a/Abilities/Fireball.png.import b/Abilities/Fireball.png.import new file mode 100644 index 0000000..b0fb6da --- /dev/null +++ b/Abilities/Fireball.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://mesi0bfnca6y" +path="res://.godot/imported/Fireball.png-86123da5fd3d9a12514f31908427d9dd.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Abilities/Fireball.png" +dest_files=["res://.godot/imported/Fireball.png-86123da5fd3d9a12514f31908427d9dd.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +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/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Abilities/Fireball.tscn b/Abilities/Fireball.tscn new file mode 100644 index 0000000..291a8b1 --- /dev/null +++ b/Abilities/Fireball.tscn @@ -0,0 +1,19 @@ +[gd_scene load_steps=4 format=3 uid="uid://bc7omt6pay1lx"] + +[ext_resource type="Script" uid="uid://tt0u7f0gemjo" path="res://Abilities/Fireball.cs" id="1_0kqim"] +[ext_resource type="Texture2D" uid="uid://mesi0bfnca6y" path="res://Abilities/Fireball.png" id="2_rf7by"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_nvq50"] +radius = 6.0 + +[node name="Fireball" type="Area2D"] +script = ExtResource("1_0kqim") +Speed = 700.0 + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = ExtResource("2_rf7by") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_nvq50") + +[connection signal="body_entered" from="." to="." method="OnBodyEntered"] diff --git a/Abilities/Fireballv2.cs b/Abilities/Fireballv2.cs new file mode 100644 index 0000000..356976c --- /dev/null +++ b/Abilities/Fireballv2.cs @@ -0,0 +1,34 @@ +using Godot; +using System; + +public partial class Fireballv2 : ProjectileBase +{ + [Export] public float TurnRate { get; set; } + [Export] public float OrbitStrength { get; set; } + + Vector2 _velocity; + + public override void _Ready() + { + var direction = (GetGlobalMousePosition() - GlobalPosition).Normalized(); + + _velocity = direction * Speed; + Rotation = _velocity.Angle(); + } + + public override void _PhysicsProcess(double delta) + { + var targetDirection = (GetGlobalMousePosition() - GlobalPosition).Normalized(); + var perp = targetDirection.Orthogonal(); + + targetDirection = (targetDirection + perp * OrbitStrength).Normalized(); + var currentDirection = _velocity.Normalized(); + var angle = currentDirection.AngleTo(targetDirection); + var maxTurn = TurnRate * (float)delta; + + angle = Mathf.Clamp(angle, -maxTurn, maxTurn); + _velocity = _velocity.Rotated(angle); + GlobalPosition += _velocity * (float)delta; + Rotation = _velocity.Angle(); + } +} diff --git a/Abilities/Fireballv2.cs.uid b/Abilities/Fireballv2.cs.uid new file mode 100644 index 0000000..f6a5239 --- /dev/null +++ b/Abilities/Fireballv2.cs.uid @@ -0,0 +1 @@ +uid://c4cmav4r8i83e diff --git a/Abilities/Fireballv2.tscn b/Abilities/Fireballv2.tscn new file mode 100644 index 0000000..6445862 --- /dev/null +++ b/Abilities/Fireballv2.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=4 format=3 uid="uid://dhobg02glafch"] + +[ext_resource type="Script" uid="uid://c4cmav4r8i83e" path="res://Abilities/Fireballv2.cs" id="1_8mjwt"] +[ext_resource type="Texture2D" uid="uid://mesi0bfnca6y" path="res://Abilities/Fireball.png" id="2_0w1e3"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_nvq50"] +radius = 6.0 + +[node name="Fireballv2" type="Area2D"] +script = ExtResource("1_8mjwt") +TurnRate = 8.0 +Speed = 500.0 + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = ExtResource("2_0w1e3") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_nvq50") + +[connection signal="body_entered" from="." to="." method="OnBodyEntered"] diff --git a/Abilities/Fireballv3.cs b/Abilities/Fireballv3.cs new file mode 100644 index 0000000..c7bf860 --- /dev/null +++ b/Abilities/Fireballv3.cs @@ -0,0 +1,29 @@ +using Godot; +using System; + +public partial class Fireballv3 : ProjectileBase +{ + [Export] public float TurnSpeed { get; set; } + + Vector2 _velocity; + + public override void _Ready() + { + base._Ready(); + var direction = (GetGlobalMousePosition() - GlobalPosition).Normalized(); + + _velocity = direction * Speed; + Rotation = _velocity.Angle(); + } + + public override void _PhysicsProcess(double delta) + { + var targetDirection = (GetGlobalMousePosition() - GlobalPosition).Normalized(); + var currentDirection = _velocity.Normalized(); + var newDirection = currentDirection.Lerp(targetDirection, TurnSpeed * (float)delta).Normalized(); + + _velocity = newDirection * Speed; + GlobalPosition += _velocity * (float)delta; + Rotation = _velocity.Angle(); + } +} diff --git a/Abilities/Fireballv3.cs.uid b/Abilities/Fireballv3.cs.uid new file mode 100644 index 0000000..229f737 --- /dev/null +++ b/Abilities/Fireballv3.cs.uid @@ -0,0 +1 @@ +uid://bwwxti5v178gx diff --git a/Abilities/Fireballv3.tscn b/Abilities/Fireballv3.tscn new file mode 100644 index 0000000..f5bfddd --- /dev/null +++ b/Abilities/Fireballv3.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=4 format=3 uid="uid://b2u2xirxjo68h"] + +[ext_resource type="Script" uid="uid://bwwxti5v178gx" path="res://Abilities/Fireballv3.cs" id="1_8c7o3"] +[ext_resource type="Texture2D" uid="uid://mesi0bfnca6y" path="res://Abilities/Fireball.png" id="2_aknci"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_nvq50"] +radius = 6.0 + +[node name="Fireballv3" type="Area2D"] +script = ExtResource("1_8c7o3") +TurnSpeed = 8.0 +Speed = 500.0 + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = ExtResource("2_aknci") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_nvq50") + +[connection signal="body_entered" from="." to="." method="OnBodyEntered"] diff --git a/Abilities/MeleeBase.cs b/Abilities/MeleeBase.cs new file mode 100644 index 0000000..2821471 --- /dev/null +++ b/Abilities/MeleeBase.cs @@ -0,0 +1,20 @@ +using Godot; + +public abstract partial class MeleeBase : Area2D +{ + protected CharacterBase? Character; + + public override void _Ready() + { + if (Character is null) + { + QueueFree(); + } + } + + public void Spawn(CharacterBase character) + { + Character = character; + Rotation = character.FacingRotation; + } +} \ No newline at end of file diff --git a/Abilities/MeleeBase.cs.uid b/Abilities/MeleeBase.cs.uid new file mode 100644 index 0000000..5b72cf4 --- /dev/null +++ b/Abilities/MeleeBase.cs.uid @@ -0,0 +1 @@ +uid://y34beygfencp diff --git a/Abilities/ProjectileBase.cs b/Abilities/ProjectileBase.cs new file mode 100644 index 0000000..90c4a79 --- /dev/null +++ b/Abilities/ProjectileBase.cs @@ -0,0 +1,35 @@ +using Godot; + +public partial class ProjectileBase : Area2D +{ + [Export] public float Speed { get; set; } + + protected CharacterBase? Character; + + public override void _Ready() + { + if (Character is null) + { + QueueFree(); + } + } + + void OnBodyEntered(Node body) + { + if (body == Character) + { + // Ignore self + return; + } + + QueueFree(); + } + + public void Spawn(CharacterBase character) + { + Character = character; + Position = character.GlobalPosition; + Rotation = character.FacingRotation; + TopLevel = false; + } +} diff --git a/Abilities/ProjectileBase.cs.uid b/Abilities/ProjectileBase.cs.uid new file mode 100644 index 0000000..31685d2 --- /dev/null +++ b/Abilities/ProjectileBase.cs.uid @@ -0,0 +1 @@ +uid://c1jnj20giokh6 diff --git a/Abilities/Sword/Sword.cs b/Abilities/Sword/Sword.cs new file mode 100644 index 0000000..519f9dc --- /dev/null +++ b/Abilities/Sword/Sword.cs @@ -0,0 +1,34 @@ +using Godot; +using System; + +public partial class Sword : MeleeBase +{ + [Export] public float SweepArcDegrees { get; set; } = 90f; + [Export] public float Lifetime { get; set; } = 0.25f; + + float _elapsedTime = 0f; + float _startRotation, _endRotation; + + public override void _Ready() + { + base._Ready(); + _startRotation = Rotation + Mathf.DegToRad(-SweepArcDegrees * 0.5f); + _endRotation = Rotation + Mathf.DegToRad(SweepArcDegrees * 0.5f); + + Rotation = _startRotation; + } + + public override void _PhysicsProcess(double delta) + { + _elapsedTime += (float)delta; + + var t = _elapsedTime / Lifetime; + + Rotation = Mathf.Lerp(_startRotation, _endRotation, t); + + if (_elapsedTime >= Lifetime) + { + QueueFree(); + } + } +} diff --git a/Abilities/Sword/Sword.cs.uid b/Abilities/Sword/Sword.cs.uid new file mode 100644 index 0000000..2e88789 --- /dev/null +++ b/Abilities/Sword/Sword.cs.uid @@ -0,0 +1 @@ +uid://dgcyfw7bpt67q diff --git a/Abilities/Sword/Sword.png b/Abilities/Sword/Sword.png new file mode 100644 index 0000000000000000000000000000000000000000..01c952b7ecc592f042a7f1e89a4f615cead5995e GIT binary patch literal 932 zcmV;V16%xwP)EX>4Tx04R}tk-JO7P!z_$rivmJ1v`j11gTCI#ELj-6^c+H)C#RSnB4RQO&XFE z7e~Rh;NWAi>fqw6tAnc`2tGjk1H?(uMM^w3DYS_3z~TP*?)eVqo(l-|GSjS%2|&|r zGnI&one3|A^@;%cDMt{KnPtpLQWC!Lbx)NPcTwKUzwXcIRdW^t0wVD&GfbO!gLrz= zHaPDShgnfpiO-40O&XB+k?V@bZ=4G*3%qC8OsD3F!^C2tjg>ZLMN=c5B95qta*ED-sAKENYk#8H^9Lm zFjk=6>pt)9Zr|I#HO>9~0D44ns@tr(Z~y=R24YJ`L;(K){{a7>y{D4^000SaNLh0L z04^f{04^f|c%?sf00007bV*G`2kHS30VX4M33Lho000?uMObu0Z*6U5Zgc=ca%Ew3 zWn>_CX>@2HM@dakSAh-}0004dNkl;u~=oT*kO4cI2DnD{{U`)Bwzu{B69mDK&X8Ppp`-^l@pQsr~vEZAR?DqskwMx zAFXzqhVMTcW0H{pA>?*Isazr+=ketQzuRpXV-k@80Q(~MLt2l=Y@2$siQnn`2(dp8 zipEUTUteq8AYd$+#J24L5qbW&&p6Ix#&Nd3HRv&^#{2t6M-mAtPfz%rPJMTKdl5JS zhJn43>u%WJ0gA??nypr&>HBD<@H}rYl}=v(wD2eUbBD0b%MuD}d|y ze7@E*pB0g{C@V|>D<#+63_shI1=#=|fK~nz5m^$E8Gtu(7?D4ij&nl*0000 (GetGlobalMousePosition() - GlobalPosition).Angle(); + protected bool IsPrimaryOnCooldown + => primaryCooldown > 0f; + + float primaryCooldown; + + public override void _PhysicsProcess(double delta) + { + HandleInput(delta); + MoveAndSlide(); + } + + protected virtual void _UsePrimary() + { + + } + + void HandleInput(double delta) + { + var direction = Input.GetVector(InputLeft, InputRight, InputUp, InputDown); + + Velocity = direction * Speed; + + if (Input.IsActionPressed(PrimaryAction) && !IsPrimaryOnCooldown) + { + _UsePrimary(); + primaryCooldown = PrimaryCooldown; + } + else if (IsPrimaryOnCooldown) + { + primaryCooldown -= (float)delta; + } + } +} diff --git a/Characters/CharacterBase.cs.uid b/Characters/CharacterBase.cs.uid new file mode 100644 index 0000000..22494be --- /dev/null +++ b/Characters/CharacterBase.cs.uid @@ -0,0 +1 @@ +uid://b02ykq5hq2x0e diff --git a/Characters/Knight/Body.png b/Characters/Knight/Body.png new file mode 100644 index 0000000000000000000000000000000000000000..617898349c472f5c8fbcaf05c31ac0c4a3ae47fa GIT binary patch literal 157 zcmeAS@N?(olHy`uVBq!ia0vp^0zj<5!3HFyJAa%3QjEnx?oJHr&dIz4a>6}b978-h zlY7op|Cry%bik!EjSUFIQqEoS{8Ug@a?hD9>B)=@nhwt&PhNb3`-(Bc-Sa1EYKnT8 z<$AYxv;SZylGyNIl7bjdjYN->LDqp4jEmWL(`6hBr?YSZtzhtU^>bP0l+XkK DeFifH literal 0 HcmV?d00001 diff --git a/Characters/Knight/Body.png.import b/Characters/Knight/Body.png.import new file mode 100644 index 0000000..eaad1e4 --- /dev/null +++ b/Characters/Knight/Body.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://4yg084mipkvx" +path="res://.godot/imported/Body.png-9ac1bc650c921cb3e7a32b6cc11a85a8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Characters/Knight/Body.png" +dest_files=["res://.godot/imported/Body.png-9ac1bc650c921cb3e7a32b6cc11a85a8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +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/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Characters/Knight/Knight.cs b/Characters/Knight/Knight.cs new file mode 100644 index 0000000..3099b34 --- /dev/null +++ b/Characters/Knight/Knight.cs @@ -0,0 +1,27 @@ +using System.Collections.Generic; +using Godot; + +public partial class Knight : CharacterBase +{ + [Export] public PackedScene Weapon { get; set; } = default!; + + public override string[] _GetConfigurationWarnings() + { + var strings = new List(); + + if (!Weapon?.CanInstantiate() ?? true) + { + strings.Add("Weapon is not set or invalid scene."); + } + + return [.. strings]; + } + + protected override void _UsePrimary() + { + var weapon = Weapon.Instantiate(); + + weapon.Spawn(this); + AddChild(weapon); + } +} diff --git a/Characters/Knight/Knight.cs.uid b/Characters/Knight/Knight.cs.uid new file mode 100644 index 0000000..da52eb9 --- /dev/null +++ b/Characters/Knight/Knight.cs.uid @@ -0,0 +1 @@ +uid://c3ydje1po7p2w diff --git a/Characters/Knight/Knight.tscn b/Characters/Knight/Knight.tscn new file mode 100644 index 0000000..8f83b48 --- /dev/null +++ b/Characters/Knight/Knight.tscn @@ -0,0 +1,21 @@ +[gd_scene load_steps=5 format=3 uid="uid://csrkrerssl8wm"] + +[ext_resource type="Script" uid="uid://c3ydje1po7p2w" path="res://Characters/Knight/Knight.cs" id="1_8l5bb"] +[ext_resource type="PackedScene" uid="uid://bqiniro3w8jom" path="res://Abilities/Sword/Sword.tscn" id="2_0fgit"] +[ext_resource type="Texture2D" uid="uid://4yg084mipkvx" path="res://Characters/Knight/Body.png" id="3_5avd5"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_0fgit"] +size = Vector2(16, 32) + +[node name="Character" type="CharacterBody2D"] +motion_mode = 1 +script = ExtResource("1_8l5bb") +Weapon = ExtResource("2_0fgit") +Speed = 300.0 +PrimaryCooldown = 1.0 + +[node name="Body" type="Sprite2D" parent="."] +texture = ExtResource("3_5avd5") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_0fgit") diff --git a/Characters/Wizard/Body.png b/Characters/Wizard/Body.png new file mode 100644 index 0000000000000000000000000000000000000000..617898349c472f5c8fbcaf05c31ac0c4a3ae47fa GIT binary patch literal 157 zcmeAS@N?(olHy`uVBq!ia0vp^0zj<5!3HFyJAa%3QjEnx?oJHr&dIz4a>6}b978-h zlY7op|Cry%bik!EjSUFIQqEoS{8Ug@a?hD9>B)=@nhwt&PhNb3`-(Bc-Sa1EYKnT8 z<$AYxv;SZylGyNIl7bjdjYN->LDqp4jEmWL(`6hBr?YSZtzhtU^>bP0l+XkK DeFifH literal 0 HcmV?d00001 diff --git a/Characters/Wizard/Body.png.import b/Characters/Wizard/Body.png.import new file mode 100644 index 0000000..3226966 --- /dev/null +++ b/Characters/Wizard/Body.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://qi1cvcj41wxr" +path="res://.godot/imported/Body.png-daff6fe764e3d2af10242c881fd809fa.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Characters/Wizard/Body.png" +dest_files=["res://.godot/imported/Body.png-daff6fe764e3d2af10242c881fd809fa.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +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/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Characters/Wizard/Wizard.cs b/Characters/Wizard/Wizard.cs new file mode 100644 index 0000000..45fcdd5 --- /dev/null +++ b/Characters/Wizard/Wizard.cs @@ -0,0 +1,27 @@ +using System.Collections.Generic; +using Godot; + +public partial class Wizard : CharacterBase +{ + [Export] public PackedScene Projectile { get; set; } = default!; + + public override string[] _GetConfigurationWarnings() + { + var strings = new List(); + + if (!Projectile?.CanInstantiate() ?? true) + { + strings.Add("Projectile is not set or invalid scene."); + } + + return [.. strings]; + } + + protected override void _UsePrimary() + { + var projectile = Projectile.Instantiate(); + + projectile.Spawn(this); + GetTree().CurrentScene.AddChild(projectile); + } +} diff --git a/Characters/Wizard/Wizard.cs.uid b/Characters/Wizard/Wizard.cs.uid new file mode 100644 index 0000000..188cba0 --- /dev/null +++ b/Characters/Wizard/Wizard.cs.uid @@ -0,0 +1 @@ +uid://cx2flf2i3h0rv diff --git a/Characters/Wizard/Wizard.tscn b/Characters/Wizard/Wizard.tscn new file mode 100644 index 0000000..7ee87c9 --- /dev/null +++ b/Characters/Wizard/Wizard.tscn @@ -0,0 +1,21 @@ +[gd_scene load_steps=5 format=3 uid="uid://xcfscklhvnew"] + +[ext_resource type="Texture2D" uid="uid://qi1cvcj41wxr" path="res://Characters/Wizard/Body.png" id="1_pptet"] +[ext_resource type="Script" uid="uid://cx2flf2i3h0rv" path="res://Characters/Wizard/Wizard.cs" id="1_vgyld"] +[ext_resource type="PackedScene" uid="uid://b2u2xirxjo68h" path="res://Abilities/Fireballv3.tscn" id="2_n5kae"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_n5kae"] +size = Vector2(16, 32) + +[node name="Character" type="CharacterBody2D"] +motion_mode = 1 +script = ExtResource("1_vgyld") +Projectile = ExtResource("2_n5kae") +Speed = 300.0 +PrimaryCooldown = 0.5 + +[node name="Body" type="Sprite2D" parent="."] +texture = ExtResource("1_pptet") + +[node name="CollisionBox" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_n5kae") diff --git a/Crosshair.png b/Crosshair.png new file mode 100644 index 0000000000000000000000000000000000000000..42127db93d043199321a60e6b103753ae3285080 GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}d7dtgArY;~ z2@4p$od5e_fBn1m|5Iihbm>gXY6xWSu}ZkYxR_6(ltFo?)Wz2ghf)|fol)`@UdPoT z<33?cW58SYRmu{YYyC7?o%IESY`Hv28SLCIs0uzRV%d3ff|9{4HJQ=_E12D64PG@Q bK4f5c!lb@e?a|gUpv?@Pu6{1-oD!MEX>4Tx04R}tk-ba9P!z>aQ$>+V2Rn#3M5sAFB6^c+H)C#RSn7s50nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|A0SSOE>hxsNufoI7as4&dG{RNyAKc=6{cBTz=x)?&3VlzwgiLSMwGF0wVD&GfbO!gLrz= zHaPDSM_5T#iO-2+CS8#Dk?V@bZ=8!R3p_JoX43P-5n{2}!Ab|SlBp3-5l2-`r+gvn zvC4UivsS6G);;+PLwS8=nd`KMk;EdFAVGwJ8p^1^Mx1t?6borOPx$zUT)#vvg4!CxZD8-pA6ZQT`5RQC=`JAGy0|+FmMa>t$A~6o#XTY$k41(H^9Lm zFjl1Ob)R?lcFyhJp4R++0AW^gpaHpX3;+NC32;bRa{vG?BLDy{BLR4&KXw2B00(qQ zO+^Rl0S^EpB%Go+5&!@I8FWQhbVF}#ZDnqB07G(RVRU6=Aa`kWXdp*PO;A^X4i^9b x02oO`K~yNuV`TWxKoVeLU>Mafs$sZl002KP0UsW12!{Xw002ovPDHLkV1jiQ-zNY7 literal 0 HcmV?d00001 diff --git a/Environment/Tiles/FloorTile16.png.import b/Environment/Tiles/FloorTile16.png.import new file mode 100644 index 0000000..73f40e4 --- /dev/null +++ b/Environment/Tiles/FloorTile16.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://urhgw0tiji88" +path="res://.godot/imported/FloorTile16.png-0ec93fd5f65affde1fdd7c93b3b9e4c8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Environment/Tiles/FloorTile16.png" +dest_files=["res://.godot/imported/FloorTile16.png-0ec93fd5f65affde1fdd7c93b3b9e4c8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +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/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Environment/Tiles/Tiles.tres b/Environment/Tiles/Tiles.tres new file mode 100644 index 0000000..86a7b12 --- /dev/null +++ b/Environment/Tiles/Tiles.tres @@ -0,0 +1,18 @@ +[gd_resource type="TileSet" load_steps=5 format=3 uid="uid://cvtrfc1jh3v56"] + +[ext_resource type="Texture2D" uid="uid://urhgw0tiji88" path="res://Environment/Tiles/FloorTile16.png" id="1_g8jos"] +[ext_resource type="Texture2D" uid="uid://cp4va5lqydihh" path="res://Environment/Tiles/WallTile16.png" id="2_gv1ha"] + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_21hfy"] +texture = ExtResource("1_g8jos") +0:0/0 = 0 + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_8ptfa"] +texture = ExtResource("2_gv1ha") +0:0/0 = 0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) + +[resource] +physics_layer_0/collision_layer = 1 +sources/0 = SubResource("TileSetAtlasSource_21hfy") +sources/1 = SubResource("TileSetAtlasSource_8ptfa") diff --git a/Environment/Tiles/WallTile16.png b/Environment/Tiles/WallTile16.png new file mode 100644 index 0000000000000000000000000000000000000000..e37307761f82c8c1695a1f4d5d129779637e85e2 GIT binary patch literal 557 zcmV+|0@D47P)EX>4Tx04R}tk-ba9P!z>aQ$>+V2Rn#3M5sAFB6^c+H)C#RSn7s50nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|A0SSOE>hxsNufoI7as4&dG{RNyAKc=6{cBTz=x)?&3VlzwgiLSMwGF0wVD&GfbO!gLrz= zHaPDSM_5T#iO-2+CS8#Dk?V@bZ=8!R3p_JoX43P-5n{2}!Ab|SlBp3-5l2-`r+gvn zvC4UivsS6G);;+PLwS8=nd`KMk;EdFAVGwJ8p^1^Mx1t?6borOPx$zUT)#vvg4!CxZD8-pA6ZQT`5RQC=`JAGy0|+FmMa>t$A~6o#XTY$k41(H^9Lm zFjl1Ob)R?lcFyhJp4R++0AW^gpaHpX3;+NC32;bRa{vG?BLDy{BLR4&KXw2B00(qQ zO+^Rl0S^Eq0hs4{k^lez8FWQhbVF}#ZDnqB07G(RVRU6=Aa`kWXdp*PO;A^X4i^9b v02WC^K~yNuWBkuR8en1=)iA1I*lGX(KrR6vv5>+|00000NkvXXu0mjf5$xck literal 0 HcmV?d00001 diff --git a/Environment/Tiles/WallTile16.png.import b/Environment/Tiles/WallTile16.png.import new file mode 100644 index 0000000..bff2d97 --- /dev/null +++ b/Environment/Tiles/WallTile16.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cp4va5lqydihh" +path="res://.godot/imported/WallTile16.png-49a4d5bdce0b800a761a2052cdcbe3d6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Environment/Tiles/WallTile16.png" +dest_files=["res://.godot/imported/WallTile16.png-49a4d5bdce0b800a761a2052cdcbe3d6.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +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/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Slapstick.csproj b/Slapstick.csproj new file mode 100644 index 0000000..47a341e --- /dev/null +++ b/Slapstick.csproj @@ -0,0 +1,8 @@ + + + net8.0 + net9.0 + true + Enable + + \ No newline at end of file diff --git a/Slapstick.sln b/Slapstick.sln new file mode 100644 index 0000000..cc83c2d --- /dev/null +++ b/Slapstick.sln @@ -0,0 +1,19 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Slapstick", "Slapstick.csproj", "{5237B46E-7833-438D-9B9F-77B72E180FF1}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + ExportDebug|Any CPU = ExportDebug|Any CPU + ExportRelease|Any CPU = ExportRelease|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {5237B46E-7833-438D-9B9F-77B72E180FF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5237B46E-7833-438D-9B9F-77B72E180FF1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5237B46E-7833-438D-9B9F-77B72E180FF1}.ExportDebug|Any CPU.ActiveCfg = ExportDebug|Any CPU + {5237B46E-7833-438D-9B9F-77B72E180FF1}.ExportDebug|Any CPU.Build.0 = ExportDebug|Any CPU + {5237B46E-7833-438D-9B9F-77B72E180FF1}.ExportRelease|Any CPU.ActiveCfg = ExportRelease|Any CPU + {5237B46E-7833-438D-9B9F-77B72E180FF1}.ExportRelease|Any CPU.Build.0 = ExportRelease|Any CPU + EndGlobalSection +EndGlobal diff --git a/Stages/Sandbox.tscn b/Stages/Sandbox.tscn new file mode 100644 index 0000000..f36c038 --- /dev/null +++ b/Stages/Sandbox.tscn @@ -0,0 +1,31 @@ +[gd_scene load_steps=5 format=4 uid="uid://bls8padw7lugq"] + +[ext_resource type="TileSet" uid="uid://cvtrfc1jh3v56" path="res://Environment/Tiles/Tiles.tres" id="1_8ulg6"] +[ext_resource type="PackedScene" uid="uid://xcfscklhvnew" path="res://Characters/Wizard/Wizard.tscn" id="1_qjlds"] +[ext_resource type="PackedScene" uid="uid://dhobg02glafch" path="res://Abilities/Fireballv2.tscn" id="3_wxhq4"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_8ulg6"] +size = Vector2(64, 193) + +[node name="Sandbox" type="Node2D"] + +[node name="Floor" type="TileMapLayer" parent="."] +position = Vector2(0, -1) +tile_map_data = PackedByteArray("AAD9//z/AAAAAAAAAAD9//3/AAAAAAAAAAD9//7/AAAAAAAAAAD9////AAAAAAAAAAD9/wAAAAAAAAAAAAD9/wEAAAAAAAAAAAD9/wIAAAAAAAAAAAD9/wMAAAAAAAAAAAD+//z/AAAAAAAAAAD+//3/AAAAAAAAAAD+//7/AAAAAAAAAAD+////AAAAAAAAAAD+/wAAAAAAAAAAAAD+/wEAAAAAAAAAAAD+/wIAAAAAAAAAAAD+/wMAAAAAAAAAAAD///z/AAAAAAAAAAD///3/AAAAAAAAAAD///7/AAAAAAAAAAD/////AAAAAAAAAAD//wAAAAAAAAAAAAD//wEAAAAAAAAAAAD//wIAAAAAAAAAAAD//wMAAAAAAAAAAAAAAPz/AAAAAAAAAAAAAP3/AAAAAAAAAAAAAP7/AAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAMAAAAAAAAAAAABAPz/AAAAAAAAAAABAP3/AAAAAAAAAAABAP7/AAAAAAAAAAABAP//AAAAAAAAAAABAAAAAAAAAAAAAAABAAEAAAAAAAAAAAABAAIAAAAAAAAAAAABAAMAAAAAAAAAAAACAPz/AAAAAAAAAAACAP3/AAAAAAAAAAACAP7/AAAAAAAAAAACAP//AAAAAAAAAAACAAAAAAAAAAAAAAACAAEAAAAAAAAAAAACAAIAAAAAAAAAAAACAAMAAAAAAAAAAAADAPz/AAAAAAAAAAADAP3/AAAAAAAAAAADAP7/AAAAAAAAAAADAP//AAAAAAAAAAADAAAAAAAAAAAAAAADAAEAAAAAAAAAAAADAAIAAAAAAAAAAAADAAMAAAAAAAAAAAD8//z/AAAAAAAAAAD8//3/AAAAAAAAAAD8//7/AAAAAAAAAAD8////AAAAAAAAAAD8/wAAAAAAAAAAAAD8/wEAAAAAAAAAAAD8/wIAAAAAAAAAAAD8/wMAAAAAAAAAAAD4//j/AAAAAAAAAAD4//n/AAAAAAAAAAD4//r/AAAAAAAAAAD4//v/AAAAAAAAAAD4//z/AAAAAAAAAAD4//3/AAAAAAAAAAD4//7/AAAAAAAAAAD4////AAAAAAAAAAD4/wAAAAAAAAAAAAD4/wEAAAAAAAAAAAD4/wIAAAAAAAAAAAD4/wMAAAAAAAAAAAD4/wQAAAAAAAAAAAD4/wUAAAAAAAAAAAD4/wYAAAAAAAAAAAD4/wcAAAAAAAAAAAD5//j/AAAAAAAAAAD5//n/AAAAAAAAAAD5//r/AAAAAAAAAAD5//v/AAAAAAAAAAD5//z/AAAAAAAAAAD5//3/AAAAAAAAAAD5//7/AAAAAAAAAAD5////AAAAAAAAAAD5/wAAAAAAAAAAAAD5/wEAAAAAAAAAAAD5/wIAAAAAAAAAAAD5/wMAAAAAAAAAAAD5/wQAAAAAAAAAAAD5/wUAAAAAAAAAAAD5/wYAAAAAAAAAAAD5/wcAAAAAAAAAAAD6//j/AAAAAAAAAAD6//n/AAAAAAAAAAD6//r/AAAAAAAAAAD6//v/AAAAAAAAAAD6//z/AAAAAAAAAAD6//3/AAAAAAAAAAD6//7/AAAAAAAAAAD6////AAAAAAAAAAD6/wAAAAAAAAAAAAD6/wEAAAAAAAAAAAD6/wIAAAAAAAAAAAD6/wMAAAAAAAAAAAD6/wQAAAAAAAAAAAD6/wUAAAAAAAAAAAD6/wYAAAAAAAAAAAD6/wcAAAAAAAAAAAD7//j/AAAAAAAAAAD7//n/AAAAAAAAAAD7//r/AAAAAAAAAAD7//v/AAAAAAAAAAD7//z/AAAAAAAAAAD7//3/AAAAAAAAAAD7//7/AAAAAAAAAAD7////AAAAAAAAAAD7/wAAAAAAAAAAAAD7/wEAAAAAAAAAAAD7/wIAAAAAAAAAAAD7/wMAAAAAAAAAAAD7/wQAAAAAAAAAAAD7/wUAAAAAAAAAAAD7/wYAAAAAAAAAAAD7/wcAAAAAAAAAAAD8//j/AAAAAAAAAAD8//n/AAAAAAAAAAD8//r/AAAAAAAAAAD8//v/AAAAAAAAAAD8/wQAAAAAAAAAAAD8/wUAAAAAAAAAAAD8/wYAAAAAAAAAAAD8/wcAAAAAAAAAAAD9//j/AAAAAAAAAAD9//n/AAAAAAAAAAD9//r/AAAAAAAAAAD9//v/AAAAAAAAAAD9/wQAAAAAAAAAAAD9/wUAAAAAAAAAAAD9/wYAAAAAAAAAAAD9/wcAAAAAAAAAAAD+//j/AAAAAAAAAAD+//n/AAAAAAAAAAD+//r/AAAAAAAAAAD+//v/AAAAAAAAAAD+/wQAAAAAAAAAAAD+/wUAAAAAAAAAAAD+/wYAAAAAAAAAAAD+/wcAAAAAAAAAAAD///j/AAAAAAAAAAD///n/AAAAAAAAAAD///r/AAAAAAAAAAD///v/AAAAAAAAAAD//wQAAAAAAAAAAAD//wUAAAAAAAAAAAD//wYAAAAAAAAAAAD//wcAAAAAAAAAAAAAAPj/AAAAAAAAAAAAAPn/AAAAAAAAAAAAAPr/AAAAAAAAAAAAAPv/AAAAAAAAAAAAAAQAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAcAAAAAAAAAAAABAPj/AAAAAAAAAAABAPn/AAAAAAAAAAABAPr/AAAAAAAAAAABAPv/AAAAAAAAAAABAAQAAAAAAAAAAAABAAUAAAAAAAAAAAABAAYAAAAAAAAAAAABAAcAAAAAAAAAAAACAPj/AAAAAAAAAAACAPn/AAAAAAAAAAACAPr/AAAAAAAAAAACAPv/AAAAAAAAAAACAAQAAAAAAAAAAAACAAUAAAAAAAAAAAACAAYAAAAAAAAAAAACAAcAAAAAAAAAAAADAPj/AAAAAAAAAAADAPn/AAAAAAAAAAADAPr/AAAAAAAAAAADAPv/AAAAAAAAAAADAAQAAAAAAAAAAAADAAUAAAAAAAAAAAADAAYAAAAAAAAAAAADAAcAAAAAAAAAAAAEAPj/AAAAAAAAAAAEAPn/AAAAAAAAAAAEAPr/AAAAAAAAAAAEAPv/AAAAAAAAAAAEAPz/AAAAAAAAAAAEAP3/AAAAAAAAAAAEAP7/AAAAAAAAAAAEAP//AAAAAAAAAAAEAAAAAAAAAAAAAAAEAAEAAAAAAAAAAAAEAAIAAAAAAAAAAAAEAAMAAAAAAAAAAAAEAAQAAAAAAAAAAAAEAAUAAAAAAAAAAAAEAAYAAAAAAAAAAAAEAAcAAAAAAAAAAAAFAPj/AAAAAAAAAAAFAPn/AAAAAAAAAAAFAPr/AAAAAAAAAAAFAPv/AAAAAAAAAAAFAPz/AAAAAAAAAAAFAP3/AAAAAAAAAAAFAP7/AAAAAAAAAAAFAP//AAAAAAAAAAAFAAAAAAAAAAAAAAAFAAEAAAAAAAAAAAAFAAIAAAAAAAAAAAAFAAMAAAAAAAAAAAAFAAQAAAAAAAAAAAAFAAUAAAAAAAAAAAAFAAYAAAAAAAAAAAAFAAcAAAAAAAAAAAAGAPj/AAAAAAAAAAAGAPn/AAAAAAAAAAAGAPr/AAAAAAAAAAAGAPv/AAAAAAAAAAAGAPz/AAAAAAAAAAAGAP3/AAAAAAAAAAAGAP7/AAAAAAAAAAAGAP//AAAAAAAAAAAGAAAAAAAAAAAAAAAGAAEAAAAAAAAAAAAGAAIAAAAAAAAAAAAGAAMAAAAAAAAAAAAGAAQAAAAAAAAAAAAGAAUAAAAAAAAAAAAGAAYAAAAAAAAAAAAGAAcAAAAAAAAAAAAHAPj/AAAAAAAAAAAHAPn/AAAAAAAAAAAHAPr/AAAAAAAAAAAHAPv/AAAAAAAAAAAHAPz/AAAAAAAAAAAHAP3/AAAAAAAAAAAHAP7/AAAAAAAAAAAHAP//AAAAAAAAAAAHAAAAAAAAAAAAAAAHAAEAAAAAAAAAAAAHAAIAAAAAAAAAAAAHAAMAAAAAAAAAAAAHAAQAAAAAAAAAAAAHAAUAAAAAAAAAAAAHAAYAAAAAAAAAAAAHAAcAAAAAAAAAAAD///f/AAAAAAAAAAD///b/AAAAAAAAAAD///X/AAAAAAAAAAD///T/AAAAAAAAAAD///P/AAAAAAAAAAD+//f/AAAAAAAAAAD+//b/AAAAAAAAAAD+//X/AAAAAAAAAAD+//T/AAAAAAAAAAD+//P/AAAAAAAAAAD+//L/AAAAAAAAAAD+//H/AAAAAAAAAAD+//D/AAAAAAAAAAD+/+//AAAAAAAAAAD+/+7/AAAAAAAAAAD+/+3/AAAAAAAAAAD+/+z/AAAAAAAAAAD//+z/AAAAAAAAAAD//+3/AAAAAAAAAAD//+7/AAAAAAAAAAD//+//AAAAAAAAAAD///D/AAAAAAAAAAD///H/AAAAAAAAAAD///L/AAAAAAAAAAAAAOz/AAAAAAAAAAAAAO3/AAAAAAAAAAAAAO7/AAAAAAAAAAAAAO//AAAAAAAAAAAAAPD/AAAAAAAAAAAAAPH/AAAAAAAAAAAAAPL/AAAAAAAAAAAAAPP/AAAAAAAAAAAAAPT/AAAAAAAAAAAAAPX/AAAAAAAAAAAAAPb/AAAAAAAAAAAAAPf/AAAAAAAAAAABAOz/AAAAAAAAAAABAO3/AAAAAAAAAAABAO7/AAAAAAAAAAABAO//AAAAAAAAAAABAPD/AAAAAAAAAAABAPH/AAAAAAAAAAABAPL/AAAAAAAAAAABAPP/AAAAAAAAAAABAPT/AAAAAAAAAAABAPX/AAAAAAAAAAABAPb/AAAAAAAAAAABAPf/AAAAAAAAAADs/+H/AAAAAAAAAADs/+L/AAAAAAAAAADs/+P/AAAAAAAAAADs/+T/AAAAAAAAAADs/+X/AAAAAAAAAADs/+b/AAAAAAAAAADs/+f/AAAAAAAAAADs/+j/AAAAAAAAAADs/+n/AAAAAAAAAADs/+r/AAAAAAAAAADs/+v/AAAAAAAAAADt/+H/AAAAAAAAAADt/+L/AAAAAAAAAADt/+P/AAAAAAAAAADt/+T/AAAAAAAAAADt/+X/AAAAAAAAAADt/+b/AAAAAAAAAADt/+f/AAAAAAAAAADt/+j/AAAAAAAAAADt/+n/AAAAAAAAAADt/+r/AAAAAAAAAADt/+v/AAAAAAAAAADu/+H/AAAAAAAAAADu/+L/AAAAAAAAAADu/+P/AAAAAAAAAADu/+T/AAAAAAAAAADu/+X/AAAAAAAAAADu/+b/AAAAAAAAAADu/+f/AAAAAAAAAADu/+j/AAAAAAAAAADu/+n/AAAAAAAAAADu/+r/AAAAAAAAAADu/+v/AAAAAAAAAADv/+H/AAAAAAAAAADv/+L/AAAAAAAAAADv/+P/AAAAAAAAAADv/+T/AAAAAAAAAADv/+X/AAAAAAAAAADv/+b/AAAAAAAAAADv/+f/AAAAAAAAAADv/+j/AAAAAAAAAADv/+n/AAAAAAAAAADv/+r/AAAAAAAAAADv/+v/AAAAAAAAAADw/+H/AAAAAAAAAADw/+L/AAAAAAAAAADw/+P/AAAAAAAAAADw/+T/AAAAAAAAAADw/+X/AAAAAAAAAADw/+b/AAAAAAAAAADw/+f/AAAAAAAAAADw/+j/AAAAAAAAAADw/+n/AAAAAAAAAADw/+r/AAAAAAAAAADw/+v/AAAAAAAAAADx/+H/AAAAAAAAAADx/+L/AAAAAAAAAADx/+P/AAAAAAAAAADx/+T/AAAAAAAAAADx/+X/AAAAAAAAAADx/+b/AAAAAAAAAADx/+f/AAAAAAAAAADx/+j/AAAAAAAAAADx/+n/AAAAAAAAAADx/+r/AAAAAAAAAADx/+v/AAAAAAAAAADy/+H/AAAAAAAAAADy/+L/AAAAAAAAAADy/+P/AAAAAAAAAADy/+T/AAAAAAAAAADy/+X/AAAAAAAAAADy/+b/AAAAAAAAAADy/+f/AAAAAAAAAADy/+j/AAAAAAAAAADy/+n/AAAAAAAAAADy/+r/AAAAAAAAAADy/+v/AAAAAAAAAADz/+H/AAAAAAAAAADz/+L/AAAAAAAAAADz/+P/AAAAAAAAAADz/+T/AAAAAAAAAADz/+X/AAAAAAAAAADz/+b/AAAAAAAAAADz/+f/AAAAAAAAAADz/+j/AAAAAAAAAADz/+n/AAAAAAAAAADz/+r/AAAAAAAAAADz/+v/AAAAAAAAAAD0/+H/AAAAAAAAAAD0/+L/AAAAAAAAAAD0/+P/AAAAAAAAAAD0/+T/AAAAAAAAAAD0/+X/AAAAAAAAAAD0/+b/AAAAAAAAAAD0/+f/AAAAAAAAAAD0/+j/AAAAAAAAAAD0/+n/AAAAAAAAAAD0/+r/AAAAAAAAAAD0/+v/AAAAAAAAAAD1/+H/AAAAAAAAAAD1/+L/AAAAAAAAAAD1/+P/AAAAAAAAAAD1/+T/AAAAAAAAAAD1/+X/AAAAAAAAAAD1/+b/AAAAAAAAAAD1/+f/AAAAAAAAAAD1/+j/AAAAAAAAAAD1/+n/AAAAAAAAAAD1/+r/AAAAAAAAAAD1/+v/AAAAAAAAAAD2/+H/AAAAAAAAAAD2/+L/AAAAAAAAAAD2/+P/AAAAAAAAAAD2/+T/AAAAAAAAAAD2/+X/AAAAAAAAAAD2/+b/AAAAAAAAAAD2/+f/AAAAAAAAAAD2/+j/AAAAAAAAAAD2/+n/AAAAAAAAAAD2/+r/AAAAAAAAAAD2/+v/AAAAAAAAAAD3/+H/AAAAAAAAAAD3/+L/AAAAAAAAAAD3/+P/AAAAAAAAAAD3/+T/AAAAAAAAAAD3/+X/AAAAAAAAAAD3/+b/AAAAAAAAAAD3/+f/AAAAAAAAAAD3/+j/AAAAAAAAAAD3/+n/AAAAAAAAAAD3/+r/AAAAAAAAAAD3/+v/AAAAAAAAAAD4/+H/AAAAAAAAAAD4/+L/AAAAAAAAAAD4/+P/AAAAAAAAAAD4/+T/AAAAAAAAAAD4/+X/AAAAAAAAAAD4/+b/AAAAAAAAAAD4/+f/AAAAAAAAAAD4/+j/AAAAAAAAAAD4/+n/AAAAAAAAAAD4/+r/AAAAAAAAAAD4/+v/AAAAAAAAAAD5/+H/AAAAAAAAAAD5/+L/AAAAAAAAAAD5/+P/AAAAAAAAAAD5/+T/AAAAAAAAAAD5/+X/AAAAAAAAAAD5/+b/AAAAAAAAAAD5/+f/AAAAAAAAAAD5/+j/AAAAAAAAAAD5/+n/AAAAAAAAAAD5/+r/AAAAAAAAAAD5/+v/AAAAAAAAAAD6/+H/AAAAAAAAAAD6/+L/AAAAAAAAAAD6/+P/AAAAAAAAAAD6/+T/AAAAAAAAAAD6/+X/AAAAAAAAAAD6/+b/AAAAAAAAAAD6/+f/AAAAAAAAAAD6/+j/AAAAAAAAAAD6/+n/AAAAAAAAAAD6/+r/AAAAAAAAAAD6/+v/AAAAAAAAAAD7/+H/AAAAAAAAAAD7/+L/AAAAAAAAAAD7/+P/AAAAAAAAAAD7/+T/AAAAAAAAAAD7/+X/AAAAAAAAAAD7/+b/AAAAAAAAAAD7/+f/AAAAAAAAAAD7/+j/AAAAAAAAAAD7/+n/AAAAAAAAAAD7/+r/AAAAAAAAAAD7/+v/AAAAAAAAAAD8/+H/AAAAAAAAAAD8/+L/AAAAAAAAAAD8/+P/AAAAAAAAAAD8/+T/AAAAAAAAAAD8/+X/AAAAAAAAAAD8/+b/AAAAAAAAAAD8/+f/AAAAAAAAAAD8/+j/AAAAAAAAAAD8/+n/AAAAAAAAAAD8/+r/AAAAAAAAAAD8/+v/AAAAAAAAAAD9/+H/AAAAAAAAAAD9/+L/AAAAAAAAAAD9/+P/AAAAAAAAAAD9/+T/AAAAAAAAAAD9/+X/AAAAAAAAAAD9/+b/AAAAAAAAAAD9/+f/AAAAAAAAAAD9/+j/AAAAAAAAAAD9/+n/AAAAAAAAAAD9/+r/AAAAAAAAAAD9/+v/AAAAAAAAAAD+/+H/AAAAAAAAAAD+/+L/AAAAAAAAAAD+/+P/AAAAAAAAAAD+/+T/AAAAAAAAAAD+/+X/AAAAAAAAAAD+/+b/AAAAAAAAAAD+/+f/AAAAAAAAAAD+/+j/AAAAAAAAAAD+/+n/AAAAAAAAAAD+/+r/AAAAAAAAAAD+/+v/AAAAAAAAAAD//+H/AAAAAAAAAAD//+L/AAAAAAAAAAD//+P/AAAAAAAAAAD//+T/AAAAAAAAAAD//+X/AAAAAAAAAAD//+b/AAAAAAAAAAD//+f/AAAAAAAAAAD//+j/AAAAAAAAAAD//+n/AAAAAAAAAAD//+r/AAAAAAAAAAD//+v/AAAAAAAAAAAAAOH/AAAAAAAAAAAAAOL/AAAAAAAAAAAAAOP/AAAAAAAAAAAAAOT/AAAAAAAAAAAAAOX/AAAAAAAAAAAAAOb/AAAAAAAAAAAAAOf/AAAAAAAAAAAAAOj/AAAAAAAAAAAAAOn/AAAAAAAAAAAAAOr/AAAAAAAAAAAAAOv/AAAAAAAAAAABAOH/AAAAAAAAAAABAOL/AAAAAAAAAAABAOP/AAAAAAAAAAABAOT/AAAAAAAAAAABAOX/AAAAAAAAAAABAOb/AAAAAAAAAAABAOf/AAAAAAAAAAABAOj/AAAAAAAAAAABAOn/AAAAAAAAAAABAOr/AAAAAAAAAAABAOv/AAAAAAAAAAACAOH/AAAAAAAAAAACAOL/AAAAAAAAAAACAOP/AAAAAAAAAAACAOT/AAAAAAAAAAACAOX/AAAAAAAAAAACAOb/AAAAAAAAAAACAOf/AAAAAAAAAAACAOj/AAAAAAAAAAACAOn/AAAAAAAAAAACAOr/AAAAAAAAAAACAOv/AAAAAAAAAAADAOH/AAAAAAAAAAADAOL/AAAAAAAAAAADAOP/AAAAAAAAAAADAOT/AAAAAAAAAAADAOX/AAAAAAAAAAADAOb/AAAAAAAAAAADAOf/AAAAAAAAAAADAOj/AAAAAAAAAAADAOn/AAAAAAAAAAADAOr/AAAAAAAAAAADAOv/AAAAAAAAAAAEAOH/AAAAAAAAAAAEAOL/AAAAAAAAAAAEAOP/AAAAAAAAAAAEAOT/AAAAAAAAAAAEAOX/AAAAAAAAAAAEAOb/AAAAAAAAAAAEAOf/AAAAAAAAAAAEAOj/AAAAAAAAAAAEAOn/AAAAAAAAAAAEAOr/AAAAAAAAAAAEAOv/AAAAAAAAAAAFAOH/AAAAAAAAAAAFAOL/AAAAAAAAAAAFAOP/AAAAAAAAAAAFAOT/AAAAAAAAAAAFAOX/AAAAAAAAAAAFAOb/AAAAAAAAAAAFAOf/AAAAAAAAAAAFAOj/AAAAAAAAAAAFAOn/AAAAAAAAAAAFAOr/AAAAAAAAAAAFAOv/AAAAAAAAAAAGAOH/AAAAAAAAAAAGAOL/AAAAAAAAAAAGAOP/AAAAAAAAAAAGAOT/AAAAAAAAAAAGAOX/AAAAAAAAAAAGAOb/AAAAAAAAAAAGAOf/AAAAAAAAAAAGAOj/AAAAAAAAAAAGAOn/AAAAAAAAAAAGAOr/AAAAAAAAAAAGAOv/AAAAAAAAAAAHAOH/AAAAAAAAAAAHAOL/AAAAAAAAAAAHAOP/AAAAAAAAAAAHAOT/AAAAAAAAAAAHAOX/AAAAAAAAAAAHAOb/AAAAAAAAAAAHAOf/AAAAAAAAAAAHAOj/AAAAAAAAAAAHAOn/AAAAAAAAAAAHAOr/AAAAAAAAAAAHAOv/AAAAAAAAAAAIAOH/AAAAAAAAAAAIAOL/AAAAAAAAAAAIAOP/AAAAAAAAAAAIAOT/AAAAAAAAAAAIAOX/AAAAAAAAAAAIAOb/AAAAAAAAAAAIAOf/AAAAAAAAAAAIAOj/AAAAAAAAAAAIAOn/AAAAAAAAAAAIAOr/AAAAAAAAAAAIAOv/AAAAAAAAAAAJAOH/AAAAAAAAAAAJAOL/AAAAAAAAAAAJAOP/AAAAAAAAAAAJAOT/AAAAAAAAAAAJAOX/AAAAAAAAAAAJAOb/AAAAAAAAAAAJAOf/AAAAAAAAAAAJAOj/AAAAAAAAAAAJAOn/AAAAAAAAAAAJAOr/AAAAAAAAAAAJAOv/AAAAAAAAAAAKAOH/AAAAAAAAAAAKAOL/AAAAAAAAAAAKAOP/AAAAAAAAAAAKAOT/AAAAAAAAAAAKAOX/AAAAAAAAAAAKAOb/AAAAAAAAAAAKAOf/AAAAAAAAAAAKAOj/AAAAAAAAAAAKAOn/AAAAAAAAAAAKAOr/AAAAAAAAAAAKAOv/AAAAAAAAAAALAOH/AAAAAAAAAAALAOL/AAAAAAAAAAALAOP/AAAAAAAAAAALAOT/AAAAAAAAAAALAOX/AAAAAAAAAAALAOb/AAAAAAAAAAALAOf/AAAAAAAAAAALAOj/AAAAAAAAAAALAOn/AAAAAAAAAAALAOr/AAAAAAAAAAALAOv/AAAAAAAAAAAMAOH/AAAAAAAAAAAMAOL/AAAAAAAAAAAMAOP/AAAAAAAAAAAMAOT/AAAAAAAAAAAMAOX/AAAAAAAAAAAMAOb/AAAAAAAAAAAMAOf/AAAAAAAAAAAMAOj/AAAAAAAAAAAMAOn/AAAAAAAAAAAMAOr/AAAAAAAAAAAMAOv/AAAAAAAAAAANAOH/AAAAAAAAAAANAOL/AAAAAAAAAAANAOP/AAAAAAAAAAANAOT/AAAAAAAAAAANAOX/AAAAAAAAAAANAOb/AAAAAAAAAAANAOf/AAAAAAAAAAANAOj/AAAAAAAAAAANAOn/AAAAAAAAAAANAOr/AAAAAAAAAAANAOv/AAAAAAAAAAAOAOH/AAAAAAAAAAAOAOL/AAAAAAAAAAAOAOP/AAAAAAAAAAAOAOT/AAAAAAAAAAAOAOX/AAAAAAAAAAAOAOb/AAAAAAAAAAAOAOf/AAAAAAAAAAAOAOj/AAAAAAAAAAAOAOn/AAAAAAAAAAAOAOr/AAAAAAAAAAAOAOv/AAAAAAAAAAAQAPb/AAAAAAAAAAARAPb/AAAAAAAAAAASAPb/AAAAAAAAAAATAPb/AAAAAAAAAAAUAPb/AAAAAAAAAAAPAPP/AAAAAAAAAAAPAPT/AAAAAAAAAAAPAPX/AAAAAAAAAAAPAPb/AAAAAAAAAAAPAPf/AAAAAAAAAAAPAPj/AAAAAAAAAAAPAPn/AAAAAAAAAAAPAPr/AAAAAAAAAAAQAPP/AAAAAAAAAAAQAPT/AAAAAAAAAAAQAPX/AAAAAAAAAAAQAPf/AAAAAAAAAAAQAPj/AAAAAAAAAAAQAPn/AAAAAAAAAAAQAPr/AAAAAAAAAAARAPP/AAAAAAAAAAARAPT/AAAAAAAAAAARAPX/AAAAAAAAAAARAPf/AAAAAAAAAAARAPj/AAAAAAAAAAARAPn/AAAAAAAAAAARAPr/AAAAAAAAAAASAPP/AAAAAAAAAAASAPT/AAAAAAAAAAASAPX/AAAAAAAAAAASAPf/AAAAAAAAAAASAPj/AAAAAAAAAAASAPn/AAAAAAAAAAASAPr/AAAAAAAAAAATAPP/AAAAAAAAAAATAPT/AAAAAAAAAAATAPX/AAAAAAAAAAATAPf/AAAAAAAAAAATAPj/AAAAAAAAAAATAPn/AAAAAAAAAAATAPr/AAAAAAAAAAAUAPP/AAAAAAAAAAAUAPT/AAAAAAAAAAAUAPX/AAAAAAAAAAAUAPf/AAAAAAAAAAAUAPj/AAAAAAAAAAAUAPn/AAAAAAAAAAAUAPr/AAAAAAAAAAAVAPP/AAAAAAAAAAAVAPT/AAAAAAAAAAAVAPX/AAAAAAAAAAAVAPb/AAAAAAAAAAAVAPf/AAAAAAAAAAAVAPj/AAAAAAAAAAAVAPn/AAAAAAAAAAAVAPr/AAAAAAAAAAAWAPP/AAAAAAAAAAAWAPT/AAAAAAAAAAAWAPX/AAAAAAAAAAAWAPb/AAAAAAAAAAAWAPf/AAAAAAAAAAAWAPj/AAAAAAAAAAAWAPn/AAAAAAAAAAAWAPr/AAAAAAAAAAAXAPP/AAAAAAAAAAAXAPT/AAAAAAAAAAAXAPX/AAAAAAAAAAAXAPb/AAAAAAAAAAAXAPf/AAAAAAAAAAAXAPj/AAAAAAAAAAAXAPn/AAAAAAAAAAAXAPr/AAAAAAAAAAAYAPP/AAAAAAAAAAAYAPT/AAAAAAAAAAAYAPX/AAAAAAAAAAAYAPb/AAAAAAAAAAAYAPf/AAAAAAAAAAAYAPj/AAAAAAAAAAAYAPn/AAAAAAAAAAAYAPr/AAAAAAAAAAAZAPP/AAAAAAAAAAAZAPT/AAAAAAAAAAAZAPX/AAAAAAAAAAAZAPb/AAAAAAAAAAAZAPf/AAAAAAAAAAAZAPj/AAAAAAAAAAAZAPn/AAAAAAAAAAAZAPr/AAAAAAAAAAAPAPH/AAAAAAAAAAAQAPH/AAAAAAAAAAARAPH/AAAAAAAAAAASAPH/AAAAAAAAAAATAPH/AAAAAAAAAAAUAPH/AAAAAAAAAAAVAPH/AAAAAAAAAAAWAPH/AAAAAAAAAAAXAPH/AAAAAAAAAAAYAPH/AAAAAAAAAAAZAPH/AAAAAAAAAAAaAPH/AAAAAAAAAAAbAPH/AAAAAAAAAAAPAPL/AAAAAAAAAAAQAPL/AAAAAAAAAAARAPL/AAAAAAAAAAASAPL/AAAAAAAAAAATAPL/AAAAAAAAAAAUAPL/AAAAAAAAAAAVAPL/AAAAAAAAAAAWAPL/AAAAAAAAAAAXAPL/AAAAAAAAAAAYAPL/AAAAAAAAAAAZAPL/AAAAAAAAAAAaAPL/AAAAAAAAAAAaAPP/AAAAAAAAAAAaAPT/AAAAAAAAAAAaAPX/AAAAAAAAAAAaAPb/AAAAAAAAAAAaAPf/AAAAAAAAAAAaAPj/AAAAAAAAAAAaAPn/AAAAAAAAAAAaAPr/AAAAAAAAAAAbAPL/AAAAAAAAAAAbAPP/AAAAAAAAAAAbAPT/AAAAAAAAAAAbAPX/AAAAAAAAAAAbAPb/AAAAAAAAAAAbAPf/AAAAAAAAAAAbAPj/AAAAAAAAAAAbAPn/AAAAAAAAAAAbAPr/AAAAAAAAAAAIAPj/AAAAAAAAAAAIAPn/AAAAAAAAAAAIAPr/AAAAAAAAAAAJAPj/AAAAAAAAAAAJAPn/AAAAAAAAAAAJAPr/AAAAAAAAAAAKAPj/AAAAAAAAAAAKAPn/AAAAAAAAAAAKAPr/AAAAAAAAAAALAPj/AAAAAAAAAAALAPn/AAAAAAAAAAALAPr/AAAAAAAAAAAMAPj/AAAAAAAAAAAMAPn/AAAAAAAAAAAMAPr/AAAAAAAAAAANAPj/AAAAAAAAAAANAPn/AAAAAAAAAAANAPr/AAAAAAAAAAAOAPj/AAAAAAAAAAAOAPn/AAAAAAAAAAAOAPr/AAAAAAAAAAAIAPv/AAAAAAAAAAAJAPv/AAAAAAAAAAAKAPv/AAAAAAAAAAALAPv/AAAAAAAAAAAMAPv/AAAAAAAAAAANAPv/AAAAAAAAAAAOAPv/AAAAAAAAAAAPAPv/AAAAAAAAAAAQAPv/AAAAAAAAAAARAPv/AAAAAAAAAAAIAPz/AAAAAAAAAAAJAPz/AAAAAAAAAAAKAPz/AAAAAAAAAAALAPz/AAAAAAAAAAAMAPz/AAAAAAAAAAANAPz/AAAAAAAAAAAOAPz/AAAAAAAAAAAPAPz/AAAAAAAAAAAQAPz/AAAAAAAAAAARAPz/AAAAAAAAAAA=") +tile_set = ExtResource("1_8ulg6") + +[node name="Corridor" type="Area2D" parent="Floor"] + +[node name="Collision" type="CollisionShape2D" parent="Floor/Corridor"] +position = Vector2(0, -223.5) +shape = SubResource("RectangleShape2D_8ulg6") + +[node name="Wall" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAD3//f/AQAAAAAAAAD3//j/AQAAAAAAAAD3//n/AQAAAAAAAAD3//r/AQAAAAAAAAD3//v/AQAAAAAAAAD3//z/AQAAAAAAAAD3//3/AQAAAAAAAAD3//7/AQAAAAAAAAD3////AQAAAAAAAAD3/wAAAQAAAAAAAAD3/wEAAQAAAAAAAAD3/wIAAQAAAAAAAAD3/wMAAQAAAAAAAAD3/wQAAQAAAAAAAAD3/wUAAQAAAAAAAAD3/wYAAQAAAAAAAAD3/wcAAQAAAAAAAAD3/wgAAQAAAAAAAAD4/wgAAQAAAAAAAAD5/wgAAQAAAAAAAAD6/wgAAQAAAAAAAAD7/wgAAQAAAAAAAAD8/wgAAQAAAAAAAAD9/wgAAQAAAAAAAAD+/wgAAQAAAAAAAAD//wgAAQAAAAAAAAAAAAgAAQAAAAAAAAABAAgAAQAAAAAAAAACAAgAAQAAAAAAAAADAAgAAQAAAAAAAAAEAAgAAQAAAAAAAAAFAAgAAQAAAAAAAAAGAAgAAQAAAAAAAAAHAAgAAQAAAAAAAAAIAAgAAQAAAAAAAAAIAAcAAQAAAAAAAAAIAAYAAQAAAAAAAAAIAAUAAQAAAAAAAAAIAAQAAQAAAAAAAAAIAAMAAQAAAAAAAAAIAAIAAQAAAAAAAAAIAAEAAQAAAAAAAAAIAAAAAQAAAAAAAAAIAP//AQAAAAAAAAAIAP7/AQAAAAAAAAAIAP3/AQAAAAAAAAAIAPf/AQAAAAAAAAAHAPf/AQAAAAAAAAAGAPf/AQAAAAAAAAAFAPf/AQAAAAAAAAAEAPf/AQAAAAAAAAADAPf/AQAAAAAAAAACAPf/AQAAAAAAAAD9//f/AQAAAAAAAAD8//f/AQAAAAAAAAD7//f/AQAAAAAAAAD6//f/AQAAAAAAAAD5//f/AQAAAAAAAAD4//f/AQAAAAAAAAD9//b/AQAAAAAAAAD9//X/AQAAAAAAAAD9//T/AQAAAAAAAAD9//P/AQAAAAAAAAD9//L/AQAAAAAAAAD9//H/AQAAAAAAAAD9//D/AQAAAAAAAAD9/+//AQAAAAAAAAD9/+7/AQAAAAAAAAD9/+3/AQAAAAAAAAD9/+z/AQAAAAAAAAD8/+z/AQAAAAAAAAD7/+z/AQAAAAAAAAD6/+z/AQAAAAAAAAD5/+z/AQAAAAAAAAD4/+z/AQAAAAAAAAD3/+z/AQAAAAAAAAD2/+z/AQAAAAAAAAD1/+z/AQAAAAAAAAD0/+z/AQAAAAAAAADz/+z/AQAAAAAAAADy/+z/AQAAAAAAAADx/+z/AQAAAAAAAADw/+z/AQAAAAAAAADv/+z/AQAAAAAAAADu/+z/AQAAAAAAAADt/+z/AQAAAAAAAADs/+z/AQAAAAAAAADr/+z/AQAAAAAAAADr/+v/AQAAAAAAAADr/+r/AQAAAAAAAADr/+n/AQAAAAAAAADr/+j/AQAAAAAAAADr/+f/AQAAAAAAAADr/+b/AQAAAAAAAADr/+X/AQAAAAAAAADr/+T/AQAAAAAAAADr/+P/AQAAAAAAAADr/+L/AQAAAAAAAADr/+H/AQAAAAAAAADr/+D/AQAAAAAAAADs/+D/AQAAAAAAAADt/+D/AQAAAAAAAADu/+D/AQAAAAAAAADv/+D/AQAAAAAAAADw/+D/AQAAAAAAAADx/+D/AQAAAAAAAADy/+D/AQAAAAAAAADz/+D/AQAAAAAAAAD0/+D/AQAAAAAAAAD1/+D/AQAAAAAAAAD2/+D/AQAAAAAAAAD3/+D/AQAAAAAAAAD4/+D/AQAAAAAAAAD5/+D/AQAAAAAAAAD6/+D/AQAAAAAAAAD7/+D/AQAAAAAAAAD8/+D/AQAAAAAAAAD9/+D/AQAAAAAAAAD+/+D/AQAAAAAAAAD//+D/AQAAAAAAAAAAAOD/AQAAAAAAAAABAOD/AQAAAAAAAAACAOD/AQAAAAAAAAADAOD/AQAAAAAAAAAEAOD/AQAAAAAAAAAFAOD/AQAAAAAAAAAGAOD/AQAAAAAAAAAHAOD/AQAAAAAAAAAIAOD/AQAAAAAAAAAJAOD/AQAAAAAAAAAKAOD/AQAAAAAAAAALAOD/AQAAAAAAAAAMAOD/AQAAAAAAAAANAOD/AQAAAAAAAAAOAOD/AQAAAAAAAAAPAOD/AQAAAAAAAAAPAOH/AQAAAAAAAAAPAOL/AQAAAAAAAAAPAOP/AQAAAAAAAAAPAOT/AQAAAAAAAAAPAOX/AQAAAAAAAAAPAOb/AQAAAAAAAAAPAOf/AQAAAAAAAAAPAOj/AQAAAAAAAAAPAOn/AQAAAAAAAAAPAOr/AQAAAAAAAAAPAOv/AQAAAAAAAAAPAOz/AQAAAAAAAAAOAOz/AQAAAAAAAAANAOz/AQAAAAAAAAAMAOz/AQAAAAAAAAALAOz/AQAAAAAAAAAKAOz/AQAAAAAAAAAJAOz/AQAAAAAAAAAIAOz/AQAAAAAAAAAHAOz/AQAAAAAAAAAGAOz/AQAAAAAAAAAFAOz/AQAAAAAAAAAEAOz/AQAAAAAAAAADAOz/AQAAAAAAAAACAOz/AQAAAAAAAAACAO3/AQAAAAAAAAACAO7/AQAAAAAAAAACAO//AQAAAAAAAAACAPD/AQAAAAAAAAACAPH/AQAAAAAAAAACAPL/AQAAAAAAAAACAPP/AQAAAAAAAAACAPT/AQAAAAAAAAACAPX/AQAAAAAAAAACAPb/AQAAAAAAAAAOAPD/AQAAAAAAAAAOAPH/AQAAAAAAAAAOAPL/AQAAAAAAAAAOAPP/AQAAAAAAAAAOAPT/AQAAAAAAAAAOAPX/AQAAAAAAAAAOAPb/AQAAAAAAAAAOAPf/AQAAAAAAAAASAPv/AQAAAAAAAAATAPv/AQAAAAAAAAAUAPv/AQAAAAAAAAAVAPv/AQAAAAAAAAAWAPv/AQAAAAAAAAAXAPv/AQAAAAAAAAAYAPv/AQAAAAAAAAAZAPv/AQAAAAAAAAAaAPv/AQAAAAAAAAAbAPv/AQAAAAAAAAAcAPv/AQAAAAAAAAAcAPr/AQAAAAAAAAAcAPn/AQAAAAAAAAAcAPj/AQAAAAAAAAAcAPf/AQAAAAAAAAAcAPb/AQAAAAAAAAAcAPX/AQAAAAAAAAAcAPT/AQAAAAAAAAAcAPP/AQAAAAAAAAAcAPL/AQAAAAAAAAAcAPH/AQAAAAAAAAAcAPD/AQAAAAAAAAAbAPD/AQAAAAAAAAAaAPD/AQAAAAAAAAAZAPD/AQAAAAAAAAAYAPD/AQAAAAAAAAAXAPD/AQAAAAAAAAAWAPD/AQAAAAAAAAAVAPD/AQAAAAAAAAAUAPD/AQAAAAAAAAATAPD/AQAAAAAAAAASAPD/AQAAAAAAAAARAPD/AQAAAAAAAAAQAPD/AQAAAAAAAAAPAPD/AQAAAAAAAAAJAPf/AQAAAAAAAAAKAPf/AQAAAAAAAAALAPf/AQAAAAAAAAAMAPf/AQAAAAAAAAANAPf/AQAAAAAAAAAJAP3/AQAAAAAAAAAKAP3/AQAAAAAAAAALAP3/AQAAAAAAAAAMAP3/AQAAAAAAAAANAP3/AQAAAAAAAAAOAP3/AQAAAAAAAAAPAP3/AQAAAAAAAAAQAP3/AQAAAAAAAAARAP3/AQAAAAAAAAASAP3/AQAAAAAAAAASAPz/AQAAAAAAAAA=") +tile_set = ExtResource("1_8ulg6") + +[node name="Character" parent="." instance=ExtResource("1_qjlds")] +Projectile = ExtResource("3_wxhq4") + +[node name="Camera2D" type="Camera2D" parent="Character"] +zoom = Vector2(2, 2) diff --git a/icon.svg b/icon.svg new file mode 100644 index 0000000..c6bbb7d --- /dev/null +++ b/icon.svg @@ -0,0 +1 @@ + diff --git a/icon.svg.import b/icon.svg.import new file mode 100644 index 0000000..9820722 --- /dev/null +++ b/icon.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bcul8f6outbnu" +path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.svg" +dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +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/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..5301a91 --- /dev/null +++ b/project.godot @@ -0,0 +1,63 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=5 + +[application] + +config/name="Slapstick" +run/main_scene="uid://bls8padw7lugq" +config/features=PackedStringArray("4.5", "C#", "Forward Plus") +config/icon="res://icon.svg" + +[display] + +window/size/viewport_width=1920 +window/size/viewport_height=1080 +mouse_cursor/custom_image="uid://dffyyka82e8mr" +mouse_cursor/custom_image_hotspot=Vector2(16, 16) + +[dotnet] + +project/assembly_name="Slapstick" + +[input] + +character_move_up={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":11,"pressure":0.0,"pressed":false,"script":null) +] +} +character_move_down={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":12,"pressure":0.0,"pressed":false,"script":null) +] +} +character_move_left={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":13,"pressure":0.0,"pressed":false,"script":null) +] +} +character_move_right={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":14,"pressure":0.0,"pressed":false,"script":null) +] +} +character_primary_action={ +"deadzone": 0.2, +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":1,"position":Vector2(117, 12),"global_position":Vector2(126, 60),"factor":1.0,"button_index":1,"canceled":false,"pressed":true,"double_click":false,"script":null) +] +}