diff --git a/README.md b/README.md index 7d619e9..5b2aaa1 100644 --- a/README.md +++ b/README.md @@ -1 +1,16 @@ -# ludum_dare_46 \ No newline at end of file +# WORKING TITLE + +## Summary + +Short summary of the game and gameplay. + +## Branching + +- `master` - Current state of the game +- `dev` - Next feature update state of the game - Merged to `master` +- `dev-X` - Specific features for the game - Merged to `dev` +- `hotfix-X` - Bugfixes that need to be pushed to all branches + +## Context + +Ludum Dare whatever diff --git a/src/Autoloads/Steering.gd b/src/Autoloads/Steering.gd new file mode 100644 index 0000000..46c633b --- /dev/null +++ b/src/Autoloads/Steering.gd @@ -0,0 +1,24 @@ +extends Node + +const DEFAULT_MASS = 2.0 +const DEFAULT_SLOW_RADIUS = 200.0 +const DEFAULT_MAX_SPEED = 300.0 + +func arrive_to(velocity, + position_current, + position_target, + mass=DEFAULT_MASS, + slow_radius=DEFAULT_SLOW_RADIUS, + max_speed=DEFAULT_MAX_SPEED): + """ + Calculates and returns a new velocity with the arrive steering behavior arrived based on + an existing velocity (Vector2), the object's current and target positions (Vector2) + """ + var distance_to_target = position_current.distance_to(position_target) + + var desired_velocity = (position_target - position_current).normalized() * max_speed + if distance_to_target < slow_radius: + desired_velocity *= (distance_to_target / slow_radius) * .75 + .25 + var steering = (desired_velocity - velocity) / mass + + return velocity + steering diff --git a/src/Boss/SlimeBoss/Animations/move_up.png b/src/Boss/SlimeBoss/Animations/move_up.png new file mode 100644 index 0000000..0a12424 Binary files /dev/null and b/src/Boss/SlimeBoss/Animations/move_up.png differ diff --git a/src/Boss/SlimeBoss/Animations/move_up.png.import b/src/Boss/SlimeBoss/Animations/move_up.png.import new file mode 100644 index 0000000..ea4280c --- /dev/null +++ b/src/Boss/SlimeBoss/Animations/move_up.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/move_up.png-2674f54fdbe179d2d3e2767acb2b53b9.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Boss/SlimeBoss/Animations/move_up.png" +dest_files=[ "res://.import/move_up.png-2674f54fdbe179d2d3e2767acb2b53b9.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Boss/SlimeBoss/SlimeBoss.gd b/src/Boss/SlimeBoss/SlimeBoss.gd deleted file mode 100644 index 59e2550..0000000 --- a/src/Boss/SlimeBoss/SlimeBoss.gd +++ /dev/null @@ -1,94 +0,0 @@ -extends KinematicBody2D -class_name SlimeBoss -""" -This is an example player controller script created by Paul -""" -var velocity := Vector2.ZERO -# This is how you export variables with ranges to the editor window -export(bool) var debug := false -export(int, 0, 500) var ACCELERATION := 450 -# Reference for the current player - -onready var player_stats := $Stats -onready var debug_label := $DebugLabel -#onready var animation_player := $AnimationPlayer -#var animation_tree := $AnimationTree -#onready var animation_state = animation_tree.get("parameters/playback") - -enum moveState{ - MOVE, - HIT -} - -var movementState = moveState.MOVE - -var damage_per_second := 0.0 -var totaldamage := 0.0 - -func _debug_update(): - debug_label.text = str(player_stats.health) + "/" + str(player_stats.max_health) + " HP\n" - - -func _physics_process(delta): - totaldamage+=damage_per_second*delta - player_stats.speed+=10*delta - while(totaldamage>1): - totaldamage-=1 - player_stats.health-=1 - while(totaldamage<-1): - totaldamage+=1 - player_stats.health+=1 - _debug_update() - if debug == true: - match movementState: - moveState.MOVE: - movement_move(delta) - moveState.HIT: - movement_hit() - - move() - -# IMPORTANT: If you are using move_and_slide don't multiply by delta -# Godots physics system does that internally -# In move_and_collide(...) you have to multiply by delta. -func move(): - move_and_slide(velocity) - -func movement_move(delta): - var input_vector = Vector2.ZERO - # This is a clever way to handle directional input - # Input.get_action_strength(...) returns a value between 0 and 1 depending - # on how strong the controller direction is pressed - # For keyboards it always returns 1 if pressed and 0 if not - # The actions are custom and defined in the project settings - input_vector.x = Input.get_action_strength("right") - Input.get_action_strength("left") - input_vector.y = Input.get_action_strength("down") - Input.get_action_strength("up") - input_vector = input_vector.normalized() - - if input_vector == Vector2.ZERO: - #animation_state.travel("idle") - velocity = Vector2.ZERO - else: - velocity = velocity.move_toward(player_stats.speed * input_vector, ACCELERATION * delta) - if Input.is_action_just_pressed("roll"): - pass - elif Input.is_action_just_pressed("attack"): - pass - -func movement_hit(): - velocity = Vector2.ZERO - -func hit_finished(): - movementState = moveState.MOVE - -func _on_Stats_no_health(): - queue_free() - - -func _on_Hurtbox_area_entered(area): - player_stats.health-=area.damage - damage_per_second = damage_per_second + area.damage - - -func _on_Hurtbox_area_exited(area): - damage_per_second = damage_per_second - area.damage diff --git a/src/Boss/SlimeBoss/SlimeBoss.tscn b/src/Boss/SlimeBoss/SlimeBoss.tscn index 4c38dd5..c9159f0 100644 --- a/src/Boss/SlimeBoss/SlimeBoss.tscn +++ b/src/Boss/SlimeBoss/SlimeBoss.tscn @@ -1,15 +1,17 @@ -[gd_scene load_steps=16 format=2] +[gd_scene load_steps=29 format=2] [ext_resource path="res://Overlap/HurtHit_Box/Hurtbox.tscn" type="PackedScene" id=1] [ext_resource path="res://Overlap/HurtHit_Box/Hitbox.tscn" type="PackedScene" id=2] [ext_resource path="res://Overlap/Stats/Stats.tscn" type="PackedScene" id=3] -[ext_resource path="res://Boss/SlimeBoss/SlimeBoss.gd" type="Script" id=4] +[ext_resource path="res://Boss/SlimeBoss/SlimeBossStateMachine.gd" type="Script" id=4] [ext_resource path="res://Boss/SlimeBoss/Animations/move_down.png" type="Texture" id=5] [ext_resource path="res://Boss/SlimeBoss/Animations/move_right.png" type="Texture" id=6] -[ext_resource path="res://Boss/SlimeBoss/States/Motion/Idle.gd" type="Script" id=7] -[ext_resource path="res://Boss/SlimeBoss/States/Motion/Stagger.gd" type="Script" id=8] -[ext_resource path="res://Boss/SlimeBoss/States/Motion/Wander.gd" type="Script" id=9] -[ext_resource path="res://Boss/SlimeBoss/States/Motion/SplitUp.gd" type="Script" id=10] +[ext_resource path="res://Boss/SlimeBoss/States/Roam/RoamSequence.gd" type="Script" id=7] +[ext_resource path="res://Boss/SlimeBoss/States/Roam/Wait.gd" type="Script" id=8] +[ext_resource path="res://Boss/SlimeBoss/States/FightStart.gd" type="Script" id=9] +[ext_resource path="res://Boss/SlimeBoss/Animations/move_down_angry.png" type="Texture" id=10] +[ext_resource path="res://Boss/SlimeBoss/Animations/move_up.png" type="Texture" id=11] +[ext_resource path="res://Boss/SlimeBoss/States/Roam/MoveToRandomPosition.gd" type="Script" id=12] [sub_resource type="CapsuleShape2D" id=1] radius = 18.0 @@ -19,13 +21,92 @@ height = 18.0 radius = 18.0 height = 18.0 -[sub_resource type="CapsuleShape2D" id=3] -radius = 8.0 -height = 15.0 +[sub_resource type="CircleShape2D" id=3] +radius = 150.0 -[sub_resource type="Animation" id=4] -resource_name = "MoveDown" -length = 2.65556 +[sub_resource type="CapsuleShape2D" id=4] +radius = 8.0 +height = 32.0 + +[sub_resource type="Animation" id=5] +resource_name = "FightStart" +length = 1.9 +step = 0.025 +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:texture") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.175, 0.3, 0.65, 0.775, 1.075, 1.2, 1.35, 1.9 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1 ), +"update": 1, +"values": [ ExtResource( 5 ), ExtResource( 10 ), ExtResource( 5 ), ExtResource( 10 ), ExtResource( 5 ), ExtResource( 10 ), ExtResource( 5 ), ExtResource( 10 ), ExtResource( 5 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Sprite:vframes") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 10 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Sprite:hframes") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 24 ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Sprite:position") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ Vector2( 0, -28 ) ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Sprite:flip_h") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Sprite:frame") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0, 0.025, 0.05, 0.075, 0.1, 0.125, 0.15, 0.175, 0.2, 0.225, 0.25, 0.275, 0.3, 0.325, 0.35, 0.375, 0.4, 0.425, 0.45, 0.475, 0.5, 0.525, 0.55, 0.575, 0.6, 0.625, 0.65, 0.675, 0.7, 0.725, 0.75, 0.775, 0.8, 0.825, 0.85, 0.875, 0.9, 0.925, 0.95, 0.975, 1, 1.025, 1.05, 1.075, 1.1, 1.125, 1.15, 1.175, 1.2, 1.225, 1.25, 1.275, 1.3, 1.325, 1.35, 1.375, 1.4, 1.425, 1.45, 1.475, 1.5, 1.525, 1.55, 1.575, 1.6, 1.625, 1.65, 1.675, 1.7, 1.725, 1.75, 1.775, 1.8, 1.825, 1.85, 1.875 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), +"update": 1, +"values": [ 0, 2, 3, 4, 5, 6, 7, 8, 9, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0, 2, 3, 4, 5, 6, 7, 8, 9, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0, 2, 3, 4, 5, 6, 7, 8, 9, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0, 2, 3, 4, 5, 6, 7, 8, 9, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 ] +} + +[sub_resource type="Animation" id=6] +length = 2.66666 loop = true step = 0.0111111 tracks/0/type = "value" @@ -35,10 +116,10 @@ tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { -"times": PoolRealArray( 0, 2.64444 ), -"transitions": PoolRealArray( 1, 1 ), -"update": 0, -"values": [ 0, 237 ] +"times": PoolRealArray( 0, 0.0111111, 0.0222222, 0.0333333, 0.0444444, 0.0555555, 0.0666666, 0.0777777, 0.0888888, 0.0999999, 0.111111, 0.122222, 0.133333, 0.144444, 0.155555, 0.166667, 0.177778, 0.188889, 0.2, 0.211111, 0.222222, 0.233333, 0.244444, 0.255555, 0.266666, 0.277777, 0.288889, 0.3, 0.311111, 0.322222, 0.333333, 0.344444, 0.355555, 0.366666, 0.377777, 0.388889, 0.4, 0.411111, 0.422222, 0.433333, 0.444444, 0.455555, 0.466666, 0.477777, 0.488888, 0.5, 0.511111, 0.522222, 0.533333, 0.544444, 0.555555, 0.566666, 0.577777, 0.588888, 0.599999, 0.611111, 0.622222, 0.633333, 0.644444, 0.655555, 0.666666, 0.677777, 0.688888, 0.699999, 0.71111, 0.722221, 0.733333, 0.744444, 0.755555, 0.766666, 0.777777, 0.788888, 0.799999, 0.81111, 0.822221, 0.833333, 0.844444, 0.855555, 0.866666, 0.877777, 0.888888, 0.899999, 0.91111, 0.922221, 0.933332, 0.944444, 0.955555, 0.966666, 0.977777, 0.988888, 0.999999, 1.01111, 1.02222, 1.03333, 1.04444, 1.05555, 1.06667, 1.07778, 1.08889, 1.1, 1.11111, 1.12222, 1.13333, 1.14444, 1.15555, 1.16667, 1.17778, 1.18889, 1.2, 1.21111, 1.22222, 1.23333, 1.24444, 1.25555, 1.26667, 1.27778, 1.28889, 1.3, 1.31111, 1.32222, 1.33333, 1.34444, 1.35555, 1.36667, 1.37778, 1.38889, 1.4, 1.41111, 1.42222, 1.43333, 1.44444, 1.45555, 1.46667, 1.47778, 1.48889, 1.5, 1.51111, 1.52222, 1.53333, 1.54444, 1.55555, 1.56667, 1.57778, 1.58889, 1.6, 1.61111, 1.62222, 1.63333, 1.64444, 1.65555, 1.66667, 1.67778, 1.68889, 1.7, 1.71111, 1.72222, 1.73333, 1.74444, 1.75555, 1.76666, 1.77778, 1.78889, 1.8, 1.81111, 1.82222, 1.83333, 1.84444, 1.85555, 1.86666, 1.87778, 1.88889, 1.9, 1.91111, 1.92222, 1.93333, 1.94444, 1.95555, 1.96666, 1.97778, 1.98889, 2, 2.01111, 2.02222, 2.03333, 2.04444, 2.05555, 2.06666, 2.07778, 2.08889, 2.1, 2.11111, 2.12222, 2.13333, 2.14444, 2.15555, 2.16666, 2.17778, 2.18889, 2.2, 2.21111, 2.22222, 2.23333, 2.24444, 2.25555, 2.26666, 2.27778, 2.28889, 2.3, 2.31111, 2.32222, 2.33333, 2.34444, 2.35555, 2.36666, 2.37778, 2.38889, 2.4, 2.41111, 2.42222, 2.43333, 2.44444, 2.45555, 2.46666, 2.47778, 2.48889, 2.5, 2.51111, 2.52222, 2.53333, 2.54444, 2.55555, 2.56666, 2.57778, 2.58889, 2.6, 2.61111, 2.62222, 2.63333, 2.64444, 2.65555 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), +"update": 1, +"values": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239 ] } tracks/1/type = "value" tracks/1/path = NodePath("Sprite:texture") @@ -85,12 +166,23 @@ tracks/4/enabled = true tracks/4/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), -"update": 0, -"values": [ Vector2( 0, -20.142 ) ] +"update": 1, +"values": [ Vector2( 0, -28 ) ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Sprite:flip_h") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] } -[sub_resource type="Animation" id=5] -resource_name = "MoveRight" +[sub_resource type="Animation" id=7] length = 1.28333 loop = true step = 0.0166667 @@ -101,28 +193,295 @@ tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { -"times": PoolRealArray( 0, 1.26667 ), -"transitions": PoolRealArray( 1, 1 ), -"update": 0, -"values": [ 0, 76 ] +"times": PoolRealArray( 0, 0.0166667, 0.0333334, 0.0500001, 0.0666668, 0.0833335, 0.1, 0.116667, 0.133334, 0.15, 0.166667, 0.183334, 0.2, 0.216667, 0.233334, 0.25, 0.266667, 0.283334, 0.300001, 0.316667, 0.333334, 0.350001, 0.366667, 0.383334, 0.400001, 0.416667, 0.433334, 0.450001, 0.466668, 0.483334, 0.500001, 0.516668, 0.533334, 0.550001, 0.566668, 0.583334, 0.600001, 0.616668, 0.633335, 0.650001, 0.666668, 0.683335, 0.700001, 0.716668, 0.733335, 0.750001, 0.766668, 0.783335, 0.800002, 0.816668, 0.833335, 0.850002, 0.866668, 0.883335, 0.900002, 0.916668, 0.933335, 0.950002, 0.966669, 0.983335, 1, 1.01667, 1.03334, 1.05, 1.06667, 1.08334, 1.1, 1.11667, 1.13334, 1.15, 1.16667, 1.18334, 1.2, 1.21667, 1.23334, 1.25, 1.26667 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), +"update": 1, +"values": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Sprite:texture") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ ExtResource( 6 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Sprite:vframes") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 7 ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Sprite:hframes") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 11 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Sprite:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ Vector2( 5, -28 ) ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Sprite:flip_h") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] } +[sub_resource type="Animation" id=8] +length = 1.28333 +loop = true +step = 0.0166667 +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.0166667, 0.0333334, 0.0500001, 0.0666668, 0.0833335, 0.1, 0.116667, 0.133334, 0.15, 0.166667, 0.183334, 0.2, 0.216667, 0.233334, 0.25, 0.266667, 0.283334, 0.300001, 0.316667, 0.333334, 0.350001, 0.366667, 0.383334, 0.400001, 0.416667, 0.433334, 0.450001, 0.466668, 0.483334, 0.500001, 0.516668, 0.533334, 0.550001, 0.566668, 0.583334, 0.600001, 0.616668, 0.633335, 0.650001, 0.666668, 0.683335, 0.700001, 0.716668, 0.733335, 0.750001, 0.766668, 0.783335, 0.800002, 0.816668, 0.833335, 0.850002, 0.866668, 0.883335, 0.900002, 0.916668, 0.933335, 0.950002, 0.966669, 0.983335, 1, 1.01667, 1.03334, 1.05, 1.06667, 1.08334, 1.1, 1.11667, 1.13334, 1.15, 1.16667, 1.18334, 1.2, 1.21667, 1.23334, 1.25, 1.26667 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), +"update": 1, +"values": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Sprite:texture") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ ExtResource( 6 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Sprite:vframes") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 7 ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Sprite:hframes") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 11 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Sprite:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ Vector2( -5, -28 ) ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Sprite:flip_h") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} + +[sub_resource type="Animation" id=9] +length = 1.28333 +loop = true +step = 0.0166667 +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:texture") +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": 1, +"values": [ ExtResource( 11 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Sprite:vframes") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 7 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Sprite:hframes") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 11 ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Sprite:flip_h") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Sprite:frame") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0, 0.0166667, 0.0333333, 0.05, 0.0666667, 0.0833333, 0.1, 0.116667, 0.133333, 0.15, 0.166667, 0.183333, 0.2, 0.216667, 0.233333, 0.25, 0.266667, 0.283333, 0.3, 0.316667, 0.333333, 0.35, 0.366667, 0.383333, 0.4, 0.416667, 0.433333, 0.45, 0.466667, 0.483333, 0.5, 0.516667, 0.533333, 0.55, 0.566667, 0.583333, 0.6, 0.616667, 0.633333, 0.65, 0.666667, 0.683333, 0.7, 0.716667, 0.733333, 0.75, 0.766667, 0.783333, 0.8, 0.816667, 0.833333, 0.85, 0.866667, 0.883333, 0.9, 0.916667, 0.933333, 0.95, 0.966667, 0.983333, 1, 1.01667, 1.03333, 1.05, 1.06667, 1.08333, 1.1, 1.11667, 1.13333, 1.15, 1.16667, 1.18333, 1.2, 1.21667, 1.23333, 1.25 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), +"update": 1, +"values": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75 ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Sprite:position") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ Vector2( 0, -28 ) ] +} + +[sub_resource type="AnimationNodeAnimation" id=10] +animation = "MoveRight" + +[sub_resource type="AnimationNodeAnimation" id=11] +animation = "MoveUp" + +[sub_resource type="AnimationNodeAnimation" id=12] +animation = "MoveDown" + +[sub_resource type="AnimationNodeAnimation" id=13] +animation = "MoveLeft" + +[sub_resource type="AnimationNodeBlendSpace2D" id=14] +blend_point_0/node = SubResource( 10 ) +blend_point_0/pos = Vector2( 1, 0 ) +blend_point_1/node = SubResource( 11 ) +blend_point_1/pos = Vector2( 0, -1.1 ) +blend_point_2/node = SubResource( 12 ) +blend_point_2/pos = Vector2( 0, 1.1 ) +blend_point_3/node = SubResource( 13 ) +blend_point_3/pos = Vector2( -1, 0 ) +min_space = Vector2( -1, -1.1 ) +max_space = Vector2( 1, 1.1 ) +blend_mode = 1 + +[sub_resource type="AnimationNodeStateMachine" id=15] +states/move/node = SubResource( 14 ) +states/move/position = Vector2( 143, 70 ) + +[sub_resource type="AnimationNodeStateMachinePlayback" id=16] + [node name="SlimeBoss" type="KinematicBody2D"] -position = Vector2( 168, 128 ) +collision_layer = 4 +collision_mask = 3 script = ExtResource( 4 ) __meta__ = { "_edit_group_": true } +[node name="Stats" parent="." instance=ExtResource( 3 )] +max_health = 3 + +[node name="States" type="Node" parent="."] + +[node name="FightStart" type="Node" parent="States"] +script = ExtResource( 9 ) + +[node name="RoamSequence" type="Node" parent="States"] +script = ExtResource( 7 ) + +[node name="Wait" type="Node" parent="States/RoamSequence"] +script = ExtResource( 8 ) + +[node name="Timer" type="Timer" parent="States/RoamSequence/Wait"] +one_shot = true + +[node name="MoveToRandomPosition" type="Node" parent="States/RoamSequence"] +script = ExtResource( 12 ) + [node name="Sprite" type="Sprite" parent="."] -position = Vector2( -10, -20.142 ) -texture = ExtResource( 6 ) -vframes = 7 -hframes = 11 -frame = 40 +position = Vector2( 0, -28 ) +texture = ExtResource( 5 ) +vframes = 10 +hframes = 24 +frame = 2 [node name="Hitbox" parent="." instance=ExtResource( 2 )] -collision_layer = 0 +visible = false +collision_layer = 4 [node name="CollisionShape2D" parent="Hitbox" index="0"] position = Vector2( 0, -15 ) @@ -136,10 +495,16 @@ collision_mask = 0 position = Vector2( 0, -15 ) shape = SubResource( 2 ) +[node name="HeroCloseZone" type="Area2D" parent="."] +collision_layer = 0 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="HeroCloseZone"] +shape = SubResource( 3 ) + [node name="CollisionShape2D" type="CollisionShape2D" parent="."] position = Vector2( -1.52588e-05, 0 ) rotation = 1.5708 -shape = SubResource( 3 ) +shape = SubResource( 4 ) [node name="DebugLabel" type="Label" parent="."] margin_left = -42.2456 @@ -151,30 +516,23 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="Stats" parent="." instance=ExtResource( 3 )] - -[node name="States" type="Node" parent="."] - -[node name="Idle" type="Node" parent="States"] -script = ExtResource( 7 ) - -[node name="Wander" type="Node" parent="States"] -script = ExtResource( 9 ) - -[node name="SplitUp" type="Node" parent="States"] -script = ExtResource( 10 ) - -[node name="Stagger" type="Node" parent="States"] -script = ExtResource( 8 ) - [node name="AnimationPlayer" type="AnimationPlayer" parent="."] autoplay = "MoveRight" -playback_speed = 0.1 -anims/MoveDown = SubResource( 4 ) -anims/MoveRight = SubResource( 5 ) -[connection signal="area_entered" from="Hurtbox" to="." method="_on_Hurtbox_area_entered"] -[connection signal="area_exited" from="Hurtbox" to="." method="_on_Hurtbox_area_exited"] +anims/FightStart = SubResource( 5 ) +anims/MoveDown = SubResource( 6 ) +anims/MoveLeft = SubResource( 7 ) +anims/MoveRight = SubResource( 8 ) +anims/MoveUp = SubResource( 9 ) + +[node name="AnimationTree" type="AnimationTree" parent="."] +tree_root = SubResource( 15 ) +anim_player = NodePath("../AnimationPlayer") +active = true +parameters/playback = SubResource( 16 ) +parameters/move/blend_position = Vector2( 0.210872, 0.275 ) [connection signal="no_health" from="Stats" to="." method="_on_Stats_no_health"] +[connection signal="area_entered" from="Hurtbox" to="." method="_on_Hurtbox_area_entered"] +[connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_animation_finished"] [editable path="Hitbox"] diff --git a/src/Boss/SlimeBoss/SlimeBossStateMachine.gd b/src/Boss/SlimeBoss/SlimeBossStateMachine.gd index d480320..8339fd4 100644 --- a/src/Boss/SlimeBoss/SlimeBossStateMachine.gd +++ b/src/Boss/SlimeBoss/SlimeBossStateMachine.gd @@ -1,9 +1,181 @@ -extends "res://Overlap/StateMachine/StateMachine.gd" +extends KinematicBody2D + +onready var animation_playback = $AnimationTree.get("parameters/playback") +signal target_position_changed +signal state_changed(new_state_name) +signal phase_changed(new_phase_name) + +export(float) var MASS = 8.0 +onready var start_global_position = global_position + +var target_position = Vector2() + +var state_active = null +var sequence_cycles = 0 + +enum PHASES {PHASE_ONE, PHASE_TWO, PHASE_THREE} +export(PHASES) var _phase = PHASES.PHASE_ONE func _ready(): - states_map = { - "idle": $Idle, - "wander": $Wander, - "split_up": $SplitUp, - "stagger": $Stagger - } + print("Hey.") + _change_phase(_phase) + $AnimationPlayer.play("__INIT__") + + # We check if the Player node is a sibling so that we don't get errors + # playing the WildBoar scene + if get_parent().has_node('Player'): + var player_node = get_parent().get_node('Player') + player_node.connect('position_changed', self, '_on_target_position_changed') + target_position = player_node.global_position + + for state_node in $States.get_children(): + state_node.connect('finished', self, '_on_active_state_finished') + go_to_next_state() + + +func _physics_process(delta): + state_active.update(delta) + + +func _on_animation_finished(anim_name): + state_active._on_animation_finished(anim_name) + + +func _on_active_state_finished(): + go_to_next_state() + + +# Well.. guess I'll die. +func _on_Stats_no_health(): + print("dead") + set_invincible(true) + go_to_next_state($States/Die) + + +func go_to_next_state(state_override=null): + if state_active: + state_active.exit() + + if state_override != null: + state_active = state_override + else: + state_active = _decide_on_next_state() + emit_signal("state_changed", state_active.name) + state_active.enter() + + +func _on_Health_health_changed(new_health): + $Tween.interpolate_property($Pivot, 'scale', Vector2(0.92, 1.12), Vector2(1.0, 1.0), 0.3, Tween.TRANS_ELASTIC, Tween.EASE_IN_OUT) + $Tween.interpolate_property($Pivot/Body, 'modulate', Color('#ff48de'), Color('#ffffff'), 0.2, Tween.TRANS_QUINT, Tween.EASE_IN) + $Tween.start() + + if _phase == PHASES.PHASE_ONE and new_health < 100: + _change_phase(PHASES.PHASE_TWO) + if _phase == PHASES.PHASE_TWO and new_health < 50: + _change_phase(PHASES.PHASE_THREE) + + +func _change_phase(new_phase): + var phase_name = "" + match new_phase: + PHASES.PHASE_ONE: + $AnimationPlayer.playback_speed = 1.0 + phase_name = "One" + PHASES.PHASE_TWO: + $AnimationPlayer.playback_speed = 1.4 + phase_name = "Two" + PHASES.PHASE_THREE: + $AnimationPlayer.playback_speed = 1.8 + phase_name = "Three" + + emit_signal("phase_changed", phase_name) + _phase = new_phase + + +# The AI's brain. This function defines the flow of states +# That's a big advantage of the state pattern +# If it grows too big you can swap it with a node +# Or move the flow of states to a data file, like JSON or a text file +func _decide_on_next_state(): + # Battle start + if state_active == null: + set_invincible(true) + return $States/FightStart + if state_active == $States/FightStart: + set_invincible(false) + return $States/RoamSequence + if state_active == $States/RoamSequence: + return $States/FightStart + +# # Death +# if state_active == $States/Die: +# queue_free() +# return $States/Dead +# +# # PHASE ONE +# if _phase == PHASES.PHASE_ONE: +# if state_active == $States/RoamSequence: +# sequence_cycles += 1 +# if sequence_cycles < 2: +# return $States/RoamSequence +# else: +# sequence_cycles = 0 +# return $States/Stomp +# if state_active == $States/Stomp: +# return $States/RoamSequence +# +# # PHASE TWO +# elif _phase == PHASES.PHASE_TWO: +# if state_active == $States/RoamSequence: +# return $States/Stomp +# if state_active == $States/Stomp: +# if sequence_cycles < 2: +# sequence_cycles += 1 +# return $States/Stomp +# else: +# sequence_cycles = 0 +# return $States/ChargeSequence +# if state_active == $States/ChargeSequence: +# return $States/RoamSequence +# +# +# # PHASE THREE +# elif _phase == PHASES.PHASE_THREE: +# if state_active == $States/RoamSequence: +# return $States/Stomp +# if state_active == $States/Stomp: +# if sequence_cycles < 2: +# sequence_cycles += 1 +# return $States/Stomp +# else: +# sequence_cycles = 0 +# return $States/ChargeSequence +# if state_active == $States/ChargeSequence: +# if sequence_cycles < 2: +# sequence_cycles += 1 +# return $States/ChargeSequence +# else: +# sequence_cycles = 0 +# return $States/Stomp + + +# Using a public method makes it so we can change the entire particle setup anytime +func set_particles_active(value): + $DustPuffsLarge.emitting = value + + +# Same thing here, we will likely need more collision shapes in the final version +# So using a function we can group these disabled toggles together +func set_invincible(value): + $CollisionShape2D.disabled = value + $Hitbox/CollisionShape2D.disabled = value + $Hurtbox/CollisionShape2D.disabled = value + + +func _on_target_position_changed(new_position): + target_position = new_position + + +func _on_Hurtbox_area_entered(area): + $Stats.health -= area.damage + diff --git a/src/Boss/SlimeBoss/States/Charge/Prepare.gd b/src/Boss/SlimeBoss/States/Charge/Prepare.gd new file mode 100644 index 0000000..d616208 --- /dev/null +++ b/src/Boss/SlimeBoss/States/Charge/Prepare.gd @@ -0,0 +1,7 @@ +extends "res://Overlap/StateMachine/State.gd" + +func enter(): + owner.get_node('AnimationPlayer').play('prepare') + +func _on_animation_finished(anim_name): + emit_signal('finished') diff --git a/src/Boss/SlimeBoss/States/FightStart.gd b/src/Boss/SlimeBoss/States/FightStart.gd new file mode 100644 index 0000000..b51aa26 --- /dev/null +++ b/src/Boss/SlimeBoss/States/FightStart.gd @@ -0,0 +1,13 @@ +extends "res://Overlap/StateMachine/State.gd" + +onready var animation_player = owner.get_node("AnimationPlayer") +onready var animation_tree = owner.get_node("AnimationTree") + +func enter(): + animation_tree.active = false + animation_player.playback_active = true + animation_player.play('FightStart') + +func _on_animation_finished(anim_name): + assert(anim_name == 'FightStart') + emit_signal('finished') diff --git a/src/Boss/SlimeBoss/States/Motion/Idle.gd b/src/Boss/SlimeBoss/States/Motion/Idle.gd deleted file mode 100644 index 992b176..0000000 --- a/src/Boss/SlimeBoss/States/Motion/Idle.gd +++ /dev/null @@ -1,13 +0,0 @@ -extends "res://Overlap/StateMachine/MotionState.gd" - -func enter(): - owner.get_node("AnimationPlayer").play("MoveDown") # TODO: Replace animation - -func handle_input(event): - return .handle_input(event) - -func update(delta): - var input_direction = get_input_direction() - if input_direction: - # emit_signal("finished", "move") - pass diff --git a/src/Boss/SlimeBoss/States/Motion/SplitUp.gd b/src/Boss/SlimeBoss/States/Motion/SplitUp.gd deleted file mode 100644 index 1eccaec..0000000 --- a/src/Boss/SlimeBoss/States/Motion/SplitUp.gd +++ /dev/null @@ -1,16 +0,0 @@ -extends Node - - -# Declare member variables here. Examples: -# var a = 2 -# var b = "text" - - -# Called when the node enters the scene tree for the first time. -func _ready(): - pass # Replace with function body. - - -# Called every frame. 'delta' is the elapsed time since the previous frame. -#func _process(delta): -# pass diff --git a/src/Boss/SlimeBoss/States/Motion/Stagger.gd b/src/Boss/SlimeBoss/States/Motion/Stagger.gd deleted file mode 100644 index 1eccaec..0000000 --- a/src/Boss/SlimeBoss/States/Motion/Stagger.gd +++ /dev/null @@ -1,16 +0,0 @@ -extends Node - - -# Declare member variables here. Examples: -# var a = 2 -# var b = "text" - - -# Called when the node enters the scene tree for the first time. -func _ready(): - pass # Replace with function body. - - -# Called every frame. 'delta' is the elapsed time since the previous frame. -#func _process(delta): -# pass diff --git a/src/Boss/SlimeBoss/States/Motion/Wander.gd b/src/Boss/SlimeBoss/States/Motion/Wander.gd deleted file mode 100644 index 1eccaec..0000000 --- a/src/Boss/SlimeBoss/States/Motion/Wander.gd +++ /dev/null @@ -1,16 +0,0 @@ -extends Node - - -# Declare member variables here. Examples: -# var a = 2 -# var b = "text" - - -# Called when the node enters the scene tree for the first time. -func _ready(): - pass # Replace with function body. - - -# Called every frame. 'delta' is the elapsed time since the previous frame. -#func _process(delta): -# pass diff --git a/src/Boss/SlimeBoss/States/Roam/MoveToRandomPosition.gd b/src/Boss/SlimeBoss/States/Roam/MoveToRandomPosition.gd new file mode 100644 index 0000000..16908d7 --- /dev/null +++ b/src/Boss/SlimeBoss/States/Roam/MoveToRandomPosition.gd @@ -0,0 +1,34 @@ +extends "res://Overlap/StateMachine/State.gd" + +export(float) var ARRIVE_DISTANCE = 6.0 +export(float) var SLOW_RADIUS = 200.0 +export(float) var MASS = 4.0 +export(float) var MAX_SPEED = 300.0 +export(float) var ROAM_RADIUS = 150.0 + + + +var target_position = Vector2() +var start_position = Vector2() +var velocity = Vector2() + +func enter(): + start_position = get_parent().start_position + target_position = calculate_new_target_position() + owner.get_node('AnimationPlayer').play('move') + + +func update(delta): + velocity = Steering.arrive_to(velocity, owner.global_position, target_position, MASS, SLOW_RADIUS, MAX_SPEED) + owner.move_and_slide(velocity) + + if owner.global_position.distance_to(target_position) < ARRIVE_DISTANCE: + emit_signal('finished') + + +func calculate_new_target_position(): + randomize() + var random_angle = randf() * 2 * PI + randomize() + var random_radius = (randf() * ROAM_RADIUS) / 2 + ROAM_RADIUS / 2 + return start_position + Vector2(cos(random_angle) * random_radius, sin(random_angle) * random_radius) diff --git a/src/Boss/SlimeBoss/States/Roam/RoamSequence.gd b/src/Boss/SlimeBoss/States/Roam/RoamSequence.gd new file mode 100644 index 0000000..3b4087f --- /dev/null +++ b/src/Boss/SlimeBoss/States/Roam/RoamSequence.gd @@ -0,0 +1,15 @@ +extends "res://Overlap/StateMachine/SequenceState.gd" + +var start_position = Vector2() + +func enter(): + start_position = owner.global_position + .enter() + + +func exit(): + .exit() + + +func update(delta): + .update(delta) diff --git a/src/Boss/SlimeBoss/States/Roam/Wait.gd b/src/Boss/SlimeBoss/States/Roam/Wait.gd new file mode 100644 index 0000000..dfc5be8 --- /dev/null +++ b/src/Boss/SlimeBoss/States/Roam/Wait.gd @@ -0,0 +1,12 @@ +extends "res://Overlap/StateMachine/State.gd" + +func enter(): + owner.get_node('AnimationPlayer').play('idle') + $Timer.start() + +func update(delta): + if $Timer.time_left <= 0.0: + emit_signal('finished') + +func exit(): + $Timer.stop() diff --git a/src/Debug/BossStateDisplay.gd b/src/Debug/BossStateDisplay.gd new file mode 100644 index 0000000..41d8ed8 --- /dev/null +++ b/src/Debug/BossStateDisplay.gd @@ -0,0 +1,8 @@ +extends Panel + +func _on_SlimeBoss_state_changed(new_state_name): + $VBoxContainer/State.text = new_state_name + + +func _on_SlimeBoss_phase_changed(new_phase_name): + $VBoxContainer/Phase.text = "Phase: " + new_phase_name diff --git a/src/Maps/Grid.gd b/src/Maps/Grid.gd index 91b19a9..3c96341 100644 --- a/src/Maps/Grid.gd +++ b/src/Maps/Grid.gd @@ -38,7 +38,8 @@ func _reset_grids(): func _ready(): - var walls = get_tree().current_scene.get_node("../FloorTileMap") + + var walls = get_tree().current_scene.get_node("FloorTileMap") offset = walls.global_position #todo put in grid_lul for x in range(14): diff --git a/src/Menus/DragNDrop/DragNDropUI.gd b/src/Menus/DragNDrop/DragNDropUI.gd new file mode 100644 index 0000000..197b207 --- /dev/null +++ b/src/Menus/DragNDrop/DragNDropUI.gd @@ -0,0 +1,3 @@ +extends Control + +export var ObjectParent:NodePath diff --git a/src/Menus/DragNDrop/DragNDropUI.tscn b/src/Menus/DragNDrop/DragNDropUI.tscn index 3f19aea..1dfdcd1 100644 --- a/src/Menus/DragNDrop/DragNDropUI.tscn +++ b/src/Menus/DragNDrop/DragNDropUI.tscn @@ -1,49 +1,66 @@ -[gd_scene load_steps=8 format=2] +[gd_scene load_steps=10 format=2] [ext_resource path="res://Menus/DragNDrop/DragSource.tscn" type="PackedScene" id=1] [ext_resource path="res://Menus/DragNDrop/DragSink.tscn" type="PackedScene" id=2] [ext_resource path="res://Objects/Banana/Banana.tscn" type="PackedScene" id=3] -[ext_resource path="res://testSprites/bannane.png" type="Texture" id=4] -[ext_resource path="res://testSprites/falle.png" type="Texture" id=5] +[ext_resource path="res://Objects/Banana/icon.png" type="Texture" id=4] +[ext_resource path="res://Objects/Traps/Bear/bear.jpg" type="Texture" id=5] [ext_resource path="res://Objects/Traps/bear.tscn" type="PackedScene" id=6] - -[sub_resource type="GDScript" id=1] -script/source = "extends Control - -export var ObjectParent:NodePath -" +[ext_resource path="res://Objects/Traps/Bear/Animation/0012.png" type="Texture" id=7] +[ext_resource path="res://Menus/DragNDrop/DragNDropUI.gd" type="Script" id=8] +[ext_resource path="res://Objects/Banana/mouse_follow.png" type="Texture" id=9] [node name="DragNDropUI" type="Control"] anchor_right = 1.0 anchor_bottom = 1.0 margin_left = -0.37735 margin_right = -0.37735 -script = SubResource( 1 ) +script = ExtResource( 8 ) __meta__ = { "_edit_use_anchors_": false } -[node name="DragSourceBanana" parent="." instance=ExtResource( 1 )] -margin_left = 13.5128 -margin_top = 238.668 -margin_right = 45.5128 -margin_bottom = 270.668 +[node name="GenericCard1" parent="." instance=ExtResource( 1 )] +margin_left = 11.9239 +margin_top = 220.793 +margin_right = 43.9239 +margin_bottom = 252.793 texture = ExtResource( 4 ) Item = ExtResource( 3 ) -PreviewIcon = ExtResource( 4 ) +PreviewIcon = ExtResource( 9 ) -[node name="DragSourceFalle" parent="." instance=ExtResource( 1 )] -margin_left = 45.5128 -margin_top = 238.668 -margin_right = 77.5128 -margin_bottom = 270.668 +[node name="GenericCard2" parent="." instance=ExtResource( 1 )] +margin_left = 69.0145 +margin_top = 221.191 +margin_right = 101.014 +margin_bottom = 253.191 texture = ExtResource( 5 ) Item = ExtResource( 6 ) -PreviewIcon = ExtResource( 5 ) +PreviewIcon = ExtResource( 7 ) + +[node name="GenericCard3" parent="." instance=ExtResource( 1 )] +margin_left = 124.812 +margin_top = 220.859 +margin_right = 156.812 +margin_bottom = 252.859 + +[node name="GenericCard4" parent="." instance=ExtResource( 1 )] +margin_left = 180.718 +margin_top = 220.859 +margin_right = 212.718 +margin_bottom = 252.859 + +[node name="GenericCard5" parent="." instance=ExtResource( 1 )] +margin_left = 237.404 +margin_top = 221.267 +margin_right = 269.404 +margin_bottom = 253.267 [node name="DragSink" parent="." instance=ExtResource( 2 )] anchor_right = 1.002 anchor_bottom = 0.87 -margin_left = 1.0 -margin_right = 0.0399475 -margin_bottom = 0.0999756 +margin_left = 2.0 +margin_right = 0.0400085 +margin_bottom = -30.9 + +[editable path="GenericCard1"] diff --git a/src/Menus/DragNDrop/DragSink.gd b/src/Menus/DragNDrop/DragSink.gd new file mode 100644 index 0000000..9642816 --- /dev/null +++ b/src/Menus/DragNDrop/DragSink.gd @@ -0,0 +1,30 @@ +extends Container + +const Grid = preload("res://Maps/Grid.gd") +onready var grid = get_tree().current_scene.get_node("Grid") +onready var ysort = get_tree().current_scene.get_node("YSort") + +#DropZone +#stuff can be dropped here +func can_drop_data(_pos, data): + return typeof(data) == typeof(PackedScene) + + +func get_nearest_grid_pos(position): + return Vector2(round(position.x / 32.0), round(position.y / 32.0)) + + +func get_nearest_global_pos(position): + return Vector2(round(position.x / 32.0) * 32, round(position.y / 32.0) * 32) + + +#what is to be done when data is dropped +func drop_data(_pos, data:PackedScene): + var new_pos = get_nearest_grid_pos(_pos) + + if grid.object_grid[new_pos.x - 1][new_pos.y - 1].back() == Grid.Kind.FIELD: + var child = data.instance() + child.position = get_nearest_global_pos(_pos) + + ysort.add_child(child) + grid._update_grid() diff --git a/src/Menus/DragNDrop/DragSink.tscn b/src/Menus/DragNDrop/DragSink.tscn index 4711e2a..0e0a1df 100644 --- a/src/Menus/DragNDrop/DragSink.tscn +++ b/src/Menus/DragNDrop/DragSink.tscn @@ -1,26 +1,12 @@ [gd_scene load_steps=2 format=2] -[sub_resource type="GDScript" id=1] -script/source = "extends Container -#DropZone - - -#stuff can be dropped here -func can_drop_data(_pos, data): - return typeof(data) == typeof(PackedScene) - -#what is to be done when data is dropped -func drop_data(_pos, data:PackedScene): - var child = data.instance() - child.position= _pos - get_node(get_parent().ObjectParent).add_child(child) -" +[ext_resource path="res://Menus/DragNDrop/DragSink.gd" type="Script" id=1] [node name="DragSink" type="Container"] anchor_right = 1.0 anchor_bottom = 0.789 margin_bottom = -0.0200043 -script = SubResource( 1 ) +script = ExtResource( 1 ) __meta__ = { "_edit_use_anchors_": false } diff --git a/src/Menus/DragNDrop/DragSource.gd b/src/Menus/DragNDrop/DragSource.gd new file mode 100644 index 0000000..23e6a4e --- /dev/null +++ b/src/Menus/DragNDrop/DragSource.gd @@ -0,0 +1,51 @@ +extends TextureRect +# CardDeck +export var Item:PackedScene +export var PreviewIcon:Texture +export var DeleteOnGrab:bool = false + +var card_level = 0 + +#if a drag is initiated here +func get_drag_data(_pos): + var ctrl = Control.new() + var TR = TextureRect.new() + TR.texture = get_resized_texture(PreviewIcon, self.rect_size[0], self.rect_size[1]) + TR.rect_size = self.rect_size + TR.set_position(_pos * -1, false) + ctrl.add_child(TR) + set_drag_preview(ctrl) + + if DeleteOnGrab: + self.queue_free() + return Item + + +# stuff can be dropped here +# eg you picked the wrong thing up, let go and it returns to nothingness +func can_drop_data(_pos, data): + return typeof(data) == typeof(PackedScene) + + +# do nothing if stuff is dropped here +func drop_data(_pos, _data): + pass + + +func get_resized_texture(t: Texture, width: int = 0, height: int = 0): + var image = t.get_data() + if width > 0 and height > 0: + image.resize(width, height) + var itex = ImageTexture.new() + itex.create_from_image(image,0) + return itex + + +func upgrade_card(): + match card_level: + 0: + $AnimatedSprite.play("lvl1") + card_level += 1 + 1: + $AnimatedSprite.play("lvl2") + card_level += 1 diff --git a/src/Menus/DragNDrop/DragSource.tscn b/src/Menus/DragNDrop/DragSource.tscn index 8ec97c3..505e0ee 100644 --- a/src/Menus/DragNDrop/DragSource.tscn +++ b/src/Menus/DragNDrop/DragSource.tscn @@ -1,45 +1,29 @@ -[gd_scene load_steps=3 format=2] +[gd_scene load_steps=8 format=2] [ext_resource path="res://icon.png" type="Texture" id=1] +[ext_resource path="res://Objects/Card/card.png" type="Texture" id=2] +[ext_resource path="res://Menus/DragNDrop/DragSource.gd" type="Script" id=3] +[ext_resource path="res://Objects/Card/level0.png" type="Texture" id=4] +[ext_resource path="res://Objects/Card/level2.png" type="Texture" id=5] +[ext_resource path="res://Objects/Card/level1.png" type="Texture" id=6] -[sub_resource type="GDScript" id=1] -script/source = "extends TextureRect -#CardDeck -export var Item:PackedScene -export var PreviewIcon:Texture -export var DeleteOnGrab:bool = false - -#if a drag is initiated here -func get_drag_data(_pos): - var ctrl = Control.new() - var TR = TextureRect.new() - TR.texture = get_resized_texture(PreviewIcon,self.rect_size[0],self.rect_size[1]) - TR.rect_size= self.rect_size - TR.set_position(_pos*-1,false) - ctrl.add_child(TR) - set_drag_preview(ctrl) - - if DeleteOnGrab : - self.queue_free() - return Item - -#stuff can be dropped here -#eg you picked the wrong thing up, let go and it returns to nothingness -func can_drop_data(_pos, data): - return typeof(data) == typeof(PackedScene) - -#do nothing if stuff is dropped here -func drop_data(_pos, _data): - pass - -func get_resized_texture(t: Texture, width: int = 0, height: int = 0): - var image = t.get_data() - if width > 0 && height > 0: - image.resize(width, height) - var itex = ImageTexture.new() - itex.create_from_image(image,0) - return itex -" +[sub_resource type="SpriteFrames" id=1] +animations = [ { +"frames": [ ExtResource( 4 ) ], +"loop": false, +"name": "lvl0", +"speed": 60.0 +}, { +"frames": [ ExtResource( 5 ) ], +"loop": false, +"name": "lvl2", +"speed": 60.0 +}, { +"frames": [ ExtResource( 6 ) ], +"loop": false, +"name": "lvl1", +"speed": 60.0 +} ] [node name="DragSource" type="TextureRect"] margin_left = 10.7364 @@ -48,8 +32,17 @@ margin_right = 42.7364 margin_bottom = 259.792 texture = ExtResource( 1 ) expand = true -script = SubResource( 1 ) +script = ExtResource( 3 ) __meta__ = { "_edit_use_anchors_": false } -PreviewIcon = ExtResource( 1 ) + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 15.729, 15.7929 ) +z_index = -1 +texture = ExtResource( 2 ) + +[node name="AnimatedSprite" type="AnimatedSprite" parent="."] +position = Vector2( 33.1035, 40.3068 ) +frames = SubResource( 1 ) +animation = "lvl0" diff --git a/src/Menus/TitleScreen/TitleScreen.tscn b/src/Menus/TitleScreen/TitleScreen.tscn index 9904196..83cd783 100644 --- a/src/Menus/TitleScreen/TitleScreen.tscn +++ b/src/Menus/TitleScreen/TitleScreen.tscn @@ -161,9 +161,9 @@ anchor_top = -0.003002 anchor_right = 0.704 anchor_bottom = 0.667 margin_left = 0.810538 -margin_top = -0.18946 +margin_top = 0.81054 margin_right = 0.0802612 -margin_bottom = -0.0900574 +margin_bottom = 0.909943 script = ExtResource( 3 ) __meta__ = { "_edit_use_anchors_": false @@ -174,7 +174,7 @@ anims/__INIT__ = SubResource( 1 ) anims/show_buttons = SubResource( 2 ) [node name="Startup" parent="." instance=ExtResource( 2 )] -scale = Vector2( 1.50207, 1.49479 ) +scale = Vector2( 1.5, 1.5 ) animation = "start" speed_scale = 1.0 diff --git a/src/Objects/Banana/Banana.gd b/src/Objects/Banana/Banana.gd new file mode 100644 index 0000000..3bfd32c --- /dev/null +++ b/src/Objects/Banana/Banana.gd @@ -0,0 +1,8 @@ +extends AnimatedSprite + +func _ready(): + play("place") + + +func _on_Hurtbox_area_entered(area): + queue_free() diff --git a/src/Objects/Banana/Banana.tscn b/src/Objects/Banana/Banana.tscn index 4e28045..ea62b8f 100644 --- a/src/Objects/Banana/Banana.tscn +++ b/src/Objects/Banana/Banana.tscn @@ -1,25 +1,83 @@ -[gd_scene load_steps=6 format=2] +[gd_scene load_steps=20 format=2] [ext_resource path="res://Overlap/HurtHit_Box/Hurtbox.tscn" type="PackedScene" id=1] -[ext_resource path="res://Objects/Banana/Bannana.gd" type="Script" id=2] -[ext_resource path="res://testSprites/bannane.png" type="Texture" id=3] +[ext_resource path="res://Objects/Banana/Banana.gd" type="Script" id=2] +[ext_resource path="res://Objects/Banana/animation.png" type="Texture" id=3] [ext_resource path="res://Overlap/Kind.tscn" type="PackedScene" id=4] +[sub_resource type="AtlasTexture" id=2] +atlas = ExtResource( 3 ) +region = Rect2( 0, 0, 40, 40 ) + +[sub_resource type="AtlasTexture" id=3] +atlas = ExtResource( 3 ) +region = Rect2( 40, 0, 40, 40 ) + +[sub_resource type="AtlasTexture" id=4] +atlas = ExtResource( 3 ) +region = Rect2( 80, 0, 40, 40 ) + +[sub_resource type="AtlasTexture" id=5] +atlas = ExtResource( 3 ) +region = Rect2( 120, 0, 40, 40 ) + +[sub_resource type="AtlasTexture" id=6] +atlas = ExtResource( 3 ) +region = Rect2( 160, 0, 40, 40 ) + +[sub_resource type="AtlasTexture" id=7] +atlas = ExtResource( 3 ) +region = Rect2( 200, 0, 40, 40 ) + +[sub_resource type="AtlasTexture" id=8] +atlas = ExtResource( 3 ) +region = Rect2( 240, 0, 40, 40 ) + +[sub_resource type="AtlasTexture" id=9] +atlas = ExtResource( 3 ) +region = Rect2( 280, 0, 40, 40 ) + +[sub_resource type="AtlasTexture" id=10] +atlas = ExtResource( 3 ) +region = Rect2( 320, 0, 40, 40 ) + +[sub_resource type="AtlasTexture" id=11] +atlas = ExtResource( 3 ) +region = Rect2( 360, 0, 40, 40 ) + +[sub_resource type="AtlasTexture" id=12] +atlas = ExtResource( 3 ) +region = Rect2( 400, 0, 40, 40 ) + +[sub_resource type="AtlasTexture" id=13] +atlas = ExtResource( 3 ) +region = Rect2( 440, 0, 40, 40 ) + +[sub_resource type="AtlasTexture" id=14] +atlas = ExtResource( 3 ) +region = Rect2( 480, 0, 40, 40 ) + +[sub_resource type="SpriteFrames" id=15] +animations = [ { +"frames": [ SubResource( 2 ), SubResource( 3 ), SubResource( 4 ), SubResource( 5 ), SubResource( 6 ), SubResource( 7 ), SubResource( 8 ), SubResource( 9 ), SubResource( 10 ), SubResource( 11 ), SubResource( 12 ), SubResource( 13 ), SubResource( 14 ) ], +"loop": false, +"name": "place", +"speed": 60.0 +} ] + [sub_resource type="CapsuleShape2D" id=1] radius = 7.54726 height = 12.1493 -[node name="Banana" type="Node2D"] +[node name="Banana" type="AnimatedSprite"] +frames = SubResource( 15 ) +animation = "place" script = ExtResource( 2 ) [node name="Kind" parent="." instance=ExtResource( 4 )] general = 2 kind = 10 -[node name="Sprite" type="Sprite" parent="."] -position = Vector2( 1.54256, -4.73786 ) -texture = ExtResource( 3 ) - [node name="Hurtbox" parent="." instance=ExtResource( 1 )] position = Vector2( 1.54256, -4.73786 ) collision_layer = 32 diff --git a/src/Objects/Banana/Bannana.gd b/src/Objects/Banana/Bannana.gd deleted file mode 100644 index 92da9f6..0000000 --- a/src/Objects/Banana/Bannana.gd +++ /dev/null @@ -1,5 +0,0 @@ -extends Node2D - - -func _on_Hurtbox_area_entered(area): - queue_free() diff --git a/src/Objects/Banana/animation.png b/src/Objects/Banana/animation.png new file mode 100644 index 0000000..7a652e7 Binary files /dev/null and b/src/Objects/Banana/animation.png differ diff --git a/src/Objects/Banana/animation.png.import b/src/Objects/Banana/animation.png.import new file mode 100644 index 0000000..438ce94 --- /dev/null +++ b/src/Objects/Banana/animation.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/animation.png-1da805c2da35e7e6c661d9596a57f750.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Banana/animation.png" +dest_files=[ "res://.import/animation.png-1da805c2da35e7e6c661d9596a57f750.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Banana/icon.png b/src/Objects/Banana/icon.png new file mode 100644 index 0000000..84912be Binary files /dev/null and b/src/Objects/Banana/icon.png differ diff --git a/src/Objects/Banana/icon.png.import b/src/Objects/Banana/icon.png.import new file mode 100644 index 0000000..7ef22b2 --- /dev/null +++ b/src/Objects/Banana/icon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/icon.png-9dc4caad05920b6cd30b7c767b233c2a.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Banana/icon.png" +dest_files=[ "res://.import/icon.png-9dc4caad05920b6cd30b7c767b233c2a.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Banana/mouse_follow.png b/src/Objects/Banana/mouse_follow.png new file mode 100644 index 0000000..740f005 Binary files /dev/null and b/src/Objects/Banana/mouse_follow.png differ diff --git a/src/Objects/Banana/mouse_follow.png.import b/src/Objects/Banana/mouse_follow.png.import new file mode 100644 index 0000000..c784602 --- /dev/null +++ b/src/Objects/Banana/mouse_follow.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/mouse_follow.png-999aae3065fa4a723899678a470caab4.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Banana/mouse_follow.png" +dest_files=[ "res://.import/mouse_follow.png-999aae3065fa4a723899678a470caab4.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Card/card.png b/src/Objects/Card/card.png new file mode 100644 index 0000000..d1adef1 Binary files /dev/null and b/src/Objects/Card/card.png differ diff --git a/src/Objects/Card/card.png.import b/src/Objects/Card/card.png.import new file mode 100644 index 0000000..917494c --- /dev/null +++ b/src/Objects/Card/card.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/card.png-8a52ea3fcf2334957e1af908bdd85da3.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Card/card.png" +dest_files=[ "res://.import/card.png-8a52ea3fcf2334957e1af908bdd85da3.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Card/level0.png b/src/Objects/Card/level0.png new file mode 100644 index 0000000..58395a2 Binary files /dev/null and b/src/Objects/Card/level0.png differ diff --git a/src/Objects/Card/level0.png.import b/src/Objects/Card/level0.png.import new file mode 100644 index 0000000..1ad2f8e --- /dev/null +++ b/src/Objects/Card/level0.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/level0.png-da2388fe9991aba155f4f030f573f288.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Card/level0.png" +dest_files=[ "res://.import/level0.png-da2388fe9991aba155f4f030f573f288.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Card/level1.png b/src/Objects/Card/level1.png new file mode 100644 index 0000000..109fe57 Binary files /dev/null and b/src/Objects/Card/level1.png differ diff --git a/src/Objects/Card/level1.png.import b/src/Objects/Card/level1.png.import new file mode 100644 index 0000000..4088ced --- /dev/null +++ b/src/Objects/Card/level1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/level1.png-ab0efb90911fd7134ef5c5c3c34ffe82.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Card/level1.png" +dest_files=[ "res://.import/level1.png-ab0efb90911fd7134ef5c5c3c34ffe82.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Card/level2.png b/src/Objects/Card/level2.png new file mode 100644 index 0000000..2d42d06 Binary files /dev/null and b/src/Objects/Card/level2.png differ diff --git a/src/Objects/Card/level2.png.import b/src/Objects/Card/level2.png.import new file mode 100644 index 0000000..c080379 --- /dev/null +++ b/src/Objects/Card/level2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/level2.png-377010b68cc608f506f01e4ccb424729.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Card/level2.png" +dest_files=[ "res://.import/level2.png-377010b68cc608f506f01e4ccb424729.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0000.png b/src/Objects/Traps/Bear/Animation/0000.png new file mode 100644 index 0000000..acbaaca Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0000.png differ diff --git a/src/Objects/Traps/Bear/Animation/0000.png.import b/src/Objects/Traps/Bear/Animation/0000.png.import new file mode 100644 index 0000000..7988502 --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0000.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0000.png-e5c5f98ec59a6fd31ffa2e1d60f9b1d1.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0000.png" +dest_files=[ "res://.import/0000.png-e5c5f98ec59a6fd31ffa2e1d60f9b1d1.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0001.png b/src/Objects/Traps/Bear/Animation/0001.png new file mode 100644 index 0000000..38f2340 Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0001.png differ diff --git a/src/Objects/Traps/Bear/Animation/0001.png.import b/src/Objects/Traps/Bear/Animation/0001.png.import new file mode 100644 index 0000000..f7e0b84 --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0001.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0001.png-9df81f407fe3c1b9eac508724033e047.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0001.png" +dest_files=[ "res://.import/0001.png-9df81f407fe3c1b9eac508724033e047.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0002.png b/src/Objects/Traps/Bear/Animation/0002.png new file mode 100644 index 0000000..fd26e6d Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0002.png differ diff --git a/src/Objects/Traps/Bear/Animation/0002.png.import b/src/Objects/Traps/Bear/Animation/0002.png.import new file mode 100644 index 0000000..9f72235 --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0002.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0002.png-cdc077fcfefba2748cca713f9bd2d611.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0002.png" +dest_files=[ "res://.import/0002.png-cdc077fcfefba2748cca713f9bd2d611.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0003.png b/src/Objects/Traps/Bear/Animation/0003.png new file mode 100644 index 0000000..09aad9d Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0003.png differ diff --git a/src/Objects/Traps/Bear/Animation/0003.png.import b/src/Objects/Traps/Bear/Animation/0003.png.import new file mode 100644 index 0000000..30b7326 --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0003.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0003.png-c5202fe83ab1e0e183e79cf57b581217.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0003.png" +dest_files=[ "res://.import/0003.png-c5202fe83ab1e0e183e79cf57b581217.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0004.png b/src/Objects/Traps/Bear/Animation/0004.png new file mode 100644 index 0000000..c55b8cd Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0004.png differ diff --git a/src/Objects/Traps/Bear/Animation/0004.png.import b/src/Objects/Traps/Bear/Animation/0004.png.import new file mode 100644 index 0000000..fd89c53 --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0004.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0004.png-6f18a07b50945b6208cec35706e344d2.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0004.png" +dest_files=[ "res://.import/0004.png-6f18a07b50945b6208cec35706e344d2.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0005.png b/src/Objects/Traps/Bear/Animation/0005.png new file mode 100644 index 0000000..0fa075b Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0005.png differ diff --git a/src/Objects/Traps/Bear/Animation/0005.png.import b/src/Objects/Traps/Bear/Animation/0005.png.import new file mode 100644 index 0000000..2e9a7fa --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0005.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0005.png-aa9a9d018316b2589b474bd0cf29c5e8.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0005.png" +dest_files=[ "res://.import/0005.png-aa9a9d018316b2589b474bd0cf29c5e8.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0006.png b/src/Objects/Traps/Bear/Animation/0006.png new file mode 100644 index 0000000..519ff3f Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0006.png differ diff --git a/src/Objects/Traps/Bear/Animation/0006.png.import b/src/Objects/Traps/Bear/Animation/0006.png.import new file mode 100644 index 0000000..3c4dc0f --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0006.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0006.png-4bb618801f5290b92956a677da7ea797.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0006.png" +dest_files=[ "res://.import/0006.png-4bb618801f5290b92956a677da7ea797.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0007.png b/src/Objects/Traps/Bear/Animation/0007.png new file mode 100644 index 0000000..0a54d49 Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0007.png differ diff --git a/src/Objects/Traps/Bear/Animation/0007.png.import b/src/Objects/Traps/Bear/Animation/0007.png.import new file mode 100644 index 0000000..0219be7 --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0007.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0007.png-d2fe9b929e010cc9785024ef9b453a34.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0007.png" +dest_files=[ "res://.import/0007.png-d2fe9b929e010cc9785024ef9b453a34.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0008.png b/src/Objects/Traps/Bear/Animation/0008.png new file mode 100644 index 0000000..4fba1a5 Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0008.png differ diff --git a/src/Objects/Traps/Bear/Animation/0008.png.import b/src/Objects/Traps/Bear/Animation/0008.png.import new file mode 100644 index 0000000..d310e70 --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0008.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0008.png-4338ecdb194e3f5f3414a4903fe6eadc.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0008.png" +dest_files=[ "res://.import/0008.png-4338ecdb194e3f5f3414a4903fe6eadc.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0009.png b/src/Objects/Traps/Bear/Animation/0009.png new file mode 100644 index 0000000..890ccff Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0009.png differ diff --git a/src/Objects/Traps/Bear/Animation/0009.png.import b/src/Objects/Traps/Bear/Animation/0009.png.import new file mode 100644 index 0000000..26bde12 --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0009.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0009.png-fa8a4a997670106a5af208b30c868a60.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0009.png" +dest_files=[ "res://.import/0009.png-fa8a4a997670106a5af208b30c868a60.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0010.png b/src/Objects/Traps/Bear/Animation/0010.png new file mode 100644 index 0000000..7b03d32 Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0010.png differ diff --git a/src/Objects/Traps/Bear/Animation/0010.png.import b/src/Objects/Traps/Bear/Animation/0010.png.import new file mode 100644 index 0000000..5e9260d --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0010.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0010.png-10fea65c7ececd4604497b6742b51211.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0010.png" +dest_files=[ "res://.import/0010.png-10fea65c7ececd4604497b6742b51211.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0011.png b/src/Objects/Traps/Bear/Animation/0011.png new file mode 100644 index 0000000..fd6be35 Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0011.png differ diff --git a/src/Objects/Traps/Bear/Animation/0011.png.import b/src/Objects/Traps/Bear/Animation/0011.png.import new file mode 100644 index 0000000..bb13061 --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0011.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0011.png-4f301b1d8e7f1cae78ad0014938d0257.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0011.png" +dest_files=[ "res://.import/0011.png-4f301b1d8e7f1cae78ad0014938d0257.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0012.png b/src/Objects/Traps/Bear/Animation/0012.png new file mode 100644 index 0000000..53b6c39 Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0012.png differ diff --git a/src/Objects/Traps/Bear/Animation/0012.png.import b/src/Objects/Traps/Bear/Animation/0012.png.import new file mode 100644 index 0000000..8caea5f --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0012.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0012.png-cfe58ded128267406038238dcc1e541a.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0012.png" +dest_files=[ "res://.import/0012.png-cfe58ded128267406038238dcc1e541a.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0013.png b/src/Objects/Traps/Bear/Animation/0013.png new file mode 100644 index 0000000..2ffb044 Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0013.png differ diff --git a/src/Objects/Traps/Bear/Animation/0013.png.import b/src/Objects/Traps/Bear/Animation/0013.png.import new file mode 100644 index 0000000..c9bbe94 --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0013.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0013.png-d3699fa27fdabac3d0a7804a7428bec8.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0013.png" +dest_files=[ "res://.import/0013.png-d3699fa27fdabac3d0a7804a7428bec8.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0014.png b/src/Objects/Traps/Bear/Animation/0014.png new file mode 100644 index 0000000..ff6068e Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0014.png differ diff --git a/src/Objects/Traps/Bear/Animation/0014.png.import b/src/Objects/Traps/Bear/Animation/0014.png.import new file mode 100644 index 0000000..d086000 --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0014.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0014.png-541a7c3e5773ae752b4068c3b99ae1e0.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0014.png" +dest_files=[ "res://.import/0014.png-541a7c3e5773ae752b4068c3b99ae1e0.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0015.png b/src/Objects/Traps/Bear/Animation/0015.png new file mode 100644 index 0000000..7e9b9d6 Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0015.png differ diff --git a/src/Objects/Traps/Bear/Animation/0015.png.import b/src/Objects/Traps/Bear/Animation/0015.png.import new file mode 100644 index 0000000..0e9f628 --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0015.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0015.png-c08651a5c171112f6caac805eebd363e.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0015.png" +dest_files=[ "res://.import/0015.png-c08651a5c171112f6caac805eebd363e.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0016.png b/src/Objects/Traps/Bear/Animation/0016.png new file mode 100644 index 0000000..9c02e38 Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0016.png differ diff --git a/src/Objects/Traps/Bear/Animation/0016.png.import b/src/Objects/Traps/Bear/Animation/0016.png.import new file mode 100644 index 0000000..8bc9b68 --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0016.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0016.png-df1885e11c6b65ccce6f6a9cdb88a770.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0016.png" +dest_files=[ "res://.import/0016.png-df1885e11c6b65ccce6f6a9cdb88a770.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0017.png b/src/Objects/Traps/Bear/Animation/0017.png new file mode 100644 index 0000000..84b3507 Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0017.png differ diff --git a/src/Objects/Traps/Bear/Animation/0017.png.import b/src/Objects/Traps/Bear/Animation/0017.png.import new file mode 100644 index 0000000..ae15ddc --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0017.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0017.png-b7103633dd74f0f98ec9079bda1499e5.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0017.png" +dest_files=[ "res://.import/0017.png-b7103633dd74f0f98ec9079bda1499e5.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0018.png b/src/Objects/Traps/Bear/Animation/0018.png new file mode 100644 index 0000000..7933a32 Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0018.png differ diff --git a/src/Objects/Traps/Bear/Animation/0018.png.import b/src/Objects/Traps/Bear/Animation/0018.png.import new file mode 100644 index 0000000..109c307 --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0018.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0018.png-497a1dc89cce76fc2ab1c5e38fa63a6f.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0018.png" +dest_files=[ "res://.import/0018.png-497a1dc89cce76fc2ab1c5e38fa63a6f.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0019.png b/src/Objects/Traps/Bear/Animation/0019.png new file mode 100644 index 0000000..29a33e4 Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0019.png differ diff --git a/src/Objects/Traps/Bear/Animation/0019.png.import b/src/Objects/Traps/Bear/Animation/0019.png.import new file mode 100644 index 0000000..d4e5e9e --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0019.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0019.png-a958411d1d57f3e0fca32b00dc7c434d.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0019.png" +dest_files=[ "res://.import/0019.png-a958411d1d57f3e0fca32b00dc7c434d.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0020.png b/src/Objects/Traps/Bear/Animation/0020.png new file mode 100644 index 0000000..633c767 Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0020.png differ diff --git a/src/Objects/Traps/Bear/Animation/0020.png.import b/src/Objects/Traps/Bear/Animation/0020.png.import new file mode 100644 index 0000000..a7acbe3 --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0020.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0020.png-44b80d2ae978e682d336c22a8bb0d750.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0020.png" +dest_files=[ "res://.import/0020.png-44b80d2ae978e682d336c22a8bb0d750.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0021.png b/src/Objects/Traps/Bear/Animation/0021.png new file mode 100644 index 0000000..3c0667b Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0021.png differ diff --git a/src/Objects/Traps/Bear/Animation/0021.png.import b/src/Objects/Traps/Bear/Animation/0021.png.import new file mode 100644 index 0000000..4e60966 --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0021.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0021.png-e08841c64cb425b62c2582e90be4f286.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0021.png" +dest_files=[ "res://.import/0021.png-e08841c64cb425b62c2582e90be4f286.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0022.png b/src/Objects/Traps/Bear/Animation/0022.png new file mode 100644 index 0000000..feb3231 Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0022.png differ diff --git a/src/Objects/Traps/Bear/Animation/0022.png.import b/src/Objects/Traps/Bear/Animation/0022.png.import new file mode 100644 index 0000000..c1c2ccf --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0022.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0022.png-081346af78894b7c24fd5cc4a1913399.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0022.png" +dest_files=[ "res://.import/0022.png-081346af78894b7c24fd5cc4a1913399.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0023.png b/src/Objects/Traps/Bear/Animation/0023.png new file mode 100644 index 0000000..e0e2a1d Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0023.png differ diff --git a/src/Objects/Traps/Bear/Animation/0023.png.import b/src/Objects/Traps/Bear/Animation/0023.png.import new file mode 100644 index 0000000..916b94c --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0023.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0023.png-714da5afbd13b66250faa778354bd6e9.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0023.png" +dest_files=[ "res://.import/0023.png-714da5afbd13b66250faa778354bd6e9.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0024.png b/src/Objects/Traps/Bear/Animation/0024.png new file mode 100644 index 0000000..94e359f Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0024.png differ diff --git a/src/Objects/Traps/Bear/Animation/0024.png.import b/src/Objects/Traps/Bear/Animation/0024.png.import new file mode 100644 index 0000000..020049a --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0024.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0024.png-359be9f452c15ae04c99661262cb4d9c.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0024.png" +dest_files=[ "res://.import/0024.png-359be9f452c15ae04c99661262cb4d9c.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0025.png b/src/Objects/Traps/Bear/Animation/0025.png new file mode 100644 index 0000000..0678839 Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0025.png differ diff --git a/src/Objects/Traps/Bear/Animation/0025.png.import b/src/Objects/Traps/Bear/Animation/0025.png.import new file mode 100644 index 0000000..ed49d76 --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0025.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0025.png-d9f80f4d06ff0542efa80cc1a5d8688e.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0025.png" +dest_files=[ "res://.import/0025.png-d9f80f4d06ff0542efa80cc1a5d8688e.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0026.png b/src/Objects/Traps/Bear/Animation/0026.png new file mode 100644 index 0000000..ce73401 Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0026.png differ diff --git a/src/Objects/Traps/Bear/Animation/0026.png.import b/src/Objects/Traps/Bear/Animation/0026.png.import new file mode 100644 index 0000000..f080a28 --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0026.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0026.png-da664a7593fa4f7f6ebe270457af1aed.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0026.png" +dest_files=[ "res://.import/0026.png-da664a7593fa4f7f6ebe270457af1aed.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0027.png b/src/Objects/Traps/Bear/Animation/0027.png new file mode 100644 index 0000000..c285e01 Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0027.png differ diff --git a/src/Objects/Traps/Bear/Animation/0027.png.import b/src/Objects/Traps/Bear/Animation/0027.png.import new file mode 100644 index 0000000..260313a --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0027.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0027.png-505e5ca0c70f6b100cda0c0fcf0d2e71.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0027.png" +dest_files=[ "res://.import/0027.png-505e5ca0c70f6b100cda0c0fcf0d2e71.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0028.png b/src/Objects/Traps/Bear/Animation/0028.png new file mode 100644 index 0000000..308fbae Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0028.png differ diff --git a/src/Objects/Traps/Bear/Animation/0028.png.import b/src/Objects/Traps/Bear/Animation/0028.png.import new file mode 100644 index 0000000..e2be418 --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0028.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0028.png-8997a4898db8bac63554fcdd8ddb00ee.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0028.png" +dest_files=[ "res://.import/0028.png-8997a4898db8bac63554fcdd8ddb00ee.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0029.png b/src/Objects/Traps/Bear/Animation/0029.png new file mode 100644 index 0000000..6775aed Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0029.png differ diff --git a/src/Objects/Traps/Bear/Animation/0029.png.import b/src/Objects/Traps/Bear/Animation/0029.png.import new file mode 100644 index 0000000..e4c3a6b --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0029.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0029.png-2b6ae212df2e8b5c3a95f4cd46a5535c.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0029.png" +dest_files=[ "res://.import/0029.png-2b6ae212df2e8b5c3a95f4cd46a5535c.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/Animation/0030.png b/src/Objects/Traps/Bear/Animation/0030.png new file mode 100644 index 0000000..a01ae39 Binary files /dev/null and b/src/Objects/Traps/Bear/Animation/0030.png differ diff --git a/src/Objects/Traps/Bear/Animation/0030.png.import b/src/Objects/Traps/Bear/Animation/0030.png.import new file mode 100644 index 0000000..e9b7170 --- /dev/null +++ b/src/Objects/Traps/Bear/Animation/0030.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0030.png-1a67e5c745c6c9fd545daa4239837b61.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/Animation/0030.png" +dest_files=[ "res://.import/0030.png-1a67e5c745c6c9fd545daa4239837b61.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Bear/bear.jpg b/src/Objects/Traps/Bear/bear.jpg new file mode 100644 index 0000000..0075dfa Binary files /dev/null and b/src/Objects/Traps/Bear/bear.jpg differ diff --git a/src/Objects/Traps/Bear/bear.jpg.import b/src/Objects/Traps/Bear/bear.jpg.import new file mode 100644 index 0000000..b52f808 --- /dev/null +++ b/src/Objects/Traps/Bear/bear.jpg.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/bear.jpg-b29183748b9b212469789f175925d154.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Objects/Traps/Bear/bear.jpg" +dest_files=[ "res://.import/bear.jpg-b29183748b9b212469789f175925d154.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 +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/Objects/Traps/Spike.tscn b/src/Objects/Traps/Spike.tscn index 8991297..2ab999c 100644 --- a/src/Objects/Traps/Spike.tscn +++ b/src/Objects/Traps/Spike.tscn @@ -1,10 +1,11 @@ [gd_scene load_steps=6 format=2] [ext_resource path="res://Overlap/HurtHit_Box/Hitbox.tscn" type="PackedScene" id=1] -[ext_resource path="res://Objects/Banana/Bannana.gd" type="Script" id=2] +[ext_resource path="res://Objects/Banana/Banana.gd" type="Script" id=2] [ext_resource path="res://testSprites/Spike.png" type="Texture" id=3] [ext_resource path="res://Overlap/Kind.tscn" type="PackedScene" id=4] + [sub_resource type="CapsuleShape2D" id=1] height = 6.36237 diff --git a/src/Objects/Traps/Sting.tscn b/src/Objects/Traps/Sting.tscn index f640195..a55bc66 100644 --- a/src/Objects/Traps/Sting.tscn +++ b/src/Objects/Traps/Sting.tscn @@ -1,10 +1,11 @@ [gd_scene load_steps=6 format=2] [ext_resource path="res://Overlap/HurtHit_Box/Hitbox.tscn" type="PackedScene" id=1] -[ext_resource path="res://Objects/Banana/Bannana.gd" type="Script" id=2] +[ext_resource path="res://Objects/Banana/Banana.gd" type="Script" id=2] [ext_resource path="res://testSprites/Sting.png" type="Texture" id=3] [ext_resource path="res://Overlap/Kind.tscn" type="PackedScene" id=4] + [sub_resource type="CapsuleShape2D" id=1] radius = 6.77597 height = 6.36237 diff --git a/src/Objects/Traps/bear.gd b/src/Objects/Traps/bear.gd index bb72cf4..252fe0c 100644 --- a/src/Objects/Traps/bear.gd +++ b/src/Objects/Traps/bear.gd @@ -1,4 +1,15 @@ extends Node2D func _on_Hurtbox_area_entered(area): - queue_free() + $AnimatedSprite.play("clap") + + +func _ready(): + $AnimatedSprite.play("place") + + +func _on_AnimatedSprite_animation_finished(): + if $AnimatedSprite.get_animation() == "place": + $AnimatedSprite.play("still") + elif $AnimatedSprite.get_animation() == "clap": + queue_free() diff --git a/src/Objects/Traps/bear.tscn b/src/Objects/Traps/bear.tscn index 006bbd1..a6867b3 100644 --- a/src/Objects/Traps/bear.tscn +++ b/src/Objects/Traps/bear.tscn @@ -1,33 +1,81 @@ -[gd_scene load_steps=8 format=2] +[gd_scene load_steps=39 format=2] [ext_resource path="res://Objects/Traps/Bear.gd" type="Script" id=1] [ext_resource path="res://Overlap/HurtHit_Box/Hitbox.tscn" type="PackedScene" id=2] [ext_resource path="res://Overlap/Kind.tscn" type="PackedScene" id=3] -[ext_resource path="res://testSprites/falle.png" type="Texture" id=4] [ext_resource path="res://Overlap/HurtHit_Box/Hurtbox.tscn" type="PackedScene" id=5] +[ext_resource path="res://Objects/Traps/Bear/Animation/0018.png" type="Texture" id=6] +[ext_resource path="res://Objects/Traps/Bear/Animation/0001.png" type="Texture" id=7] +[ext_resource path="res://Objects/Traps/Bear/Animation/0025.png" type="Texture" id=8] +[ext_resource path="res://Objects/Traps/Bear/Animation/0005.png" type="Texture" id=9] +[ext_resource path="res://Objects/Traps/Bear/Animation/0014.png" type="Texture" id=10] +[ext_resource path="res://Objects/Traps/Bear/Animation/0003.png" type="Texture" id=11] +[ext_resource path="res://Objects/Traps/Bear/Animation/0000.png" type="Texture" id=12] +[ext_resource path="res://Objects/Traps/Bear/Animation/0010.png" type="Texture" id=13] +[ext_resource path="res://Objects/Traps/Bear/Animation/0004.png" type="Texture" id=14] +[ext_resource path="res://Objects/Traps/Bear/Animation/0008.png" type="Texture" id=15] +[ext_resource path="res://Objects/Traps/Bear/Animation/0023.png" type="Texture" id=16] +[ext_resource path="res://Objects/Traps/Bear/Animation/0026.png" type="Texture" id=17] +[ext_resource path="res://Objects/Traps/Bear/Animation/0027.png" type="Texture" id=18] +[ext_resource path="res://Objects/Traps/Bear/Animation/0020.png" type="Texture" id=19] +[ext_resource path="res://Objects/Traps/Bear/Animation/0028.png" type="Texture" id=20] +[ext_resource path="res://Objects/Traps/Bear/Animation/0024.png" type="Texture" id=21] +[ext_resource path="res://Objects/Traps/Bear/Animation/0011.png" type="Texture" id=22] +[ext_resource path="res://Objects/Traps/Bear/Animation/0015.png" type="Texture" id=23] +[ext_resource path="res://Objects/Traps/Bear/Animation/0007.png" type="Texture" id=24] +[ext_resource path="res://Objects/Traps/Bear/Animation/0019.png" type="Texture" id=25] +[ext_resource path="res://Objects/Traps/Bear/Animation/0021.png" type="Texture" id=26] +[ext_resource path="res://Objects/Traps/Bear/Animation/0016.png" type="Texture" id=27] +[ext_resource path="res://Objects/Traps/Bear/Animation/0002.png" type="Texture" id=28] +[ext_resource path="res://Objects/Traps/Bear/Animation/0006.png" type="Texture" id=29] +[ext_resource path="res://Objects/Traps/Bear/Animation/0013.png" type="Texture" id=30] +[ext_resource path="res://Objects/Traps/Bear/Animation/0017.png" type="Texture" id=31] +[ext_resource path="res://Objects/Traps/Bear/Animation/0022.png" type="Texture" id=32] +[ext_resource path="res://Objects/Traps/Bear/Animation/0029.png" type="Texture" id=33] +[ext_resource path="res://Objects/Traps/Bear/Animation/0030.png" type="Texture" id=34] +[ext_resource path="res://Objects/Traps/Bear/Animation/0009.png" type="Texture" id=35] +[ext_resource path="res://Objects/Traps/Bear/Animation/0012.png" type="Texture" id=36] -[sub_resource type="CapsuleShape2D" id=1] -height = 9.0 +[sub_resource type="SpriteFrames" id=1] +animations = [ { +"frames": [ ExtResource( 12 ), ExtResource( 7 ), ExtResource( 28 ), ExtResource( 11 ), ExtResource( 14 ), ExtResource( 9 ), ExtResource( 29 ), ExtResource( 24 ), ExtResource( 15 ), ExtResource( 35 ), ExtResource( 13 ), ExtResource( 22 ) ], +"loop": false, +"name": "place", +"speed": 60.0 +}, { +"frames": [ ExtResource( 30 ), ExtResource( 10 ), ExtResource( 23 ), ExtResource( 27 ), ExtResource( 31 ), ExtResource( 6 ), ExtResource( 25 ), ExtResource( 19 ), ExtResource( 26 ), ExtResource( 32 ), ExtResource( 16 ), ExtResource( 21 ), ExtResource( 8 ), ExtResource( 17 ), ExtResource( 18 ), ExtResource( 20 ), ExtResource( 33 ), ExtResource( 34 ) ], +"loop": false, +"name": "clap", +"speed": 90.0 +}, { +"frames": [ ExtResource( 36 ) ], +"loop": false, +"name": "still", +"speed": 60.0 +} ] [sub_resource type="CapsuleShape2D" id=2] height = 9.0 +[sub_resource type="CapsuleShape2D" id=3] +height = 9.0 + [node name="Bear_trap" type="Node2D"] script = ExtResource( 1 ) [node name="Kind" parent="." instance=ExtResource( 3 )] kind = 10 -[node name="Sprite" type="Sprite" parent="."] +[node name="AnimatedSprite" type="AnimatedSprite" parent="."] position = Vector2( -7.62939e-06, 0 ) -texture = ExtResource( 4 ) +frames = SubResource( 1 ) [node name="Hitbox" parent="." instance=ExtResource( 2 )] collision_layer = 16 [node name="CollisionShape2D" parent="Hitbox" index="0"] rotation = 1.5708 -shape = SubResource( 1 ) +shape = SubResource( 2 ) [node name="Hurtbox" parent="." instance=ExtResource( 5 )] collision_layer = 32 @@ -35,7 +83,8 @@ collision_mask = 0 [node name="CollisionShape2D" parent="Hurtbox" index="0"] rotation = 1.5708 -shape = SubResource( 2 ) +shape = SubResource( 3 ) +[connection signal="animation_finished" from="AnimatedSprite" to="." method="_on_AnimatedSprite_animation_finished"] [connection signal="area_entered" from="Hurtbox" to="." method="_on_Hurtbox_area_entered"] [editable path="Hitbox"] diff --git a/src/Overlap/HurtHit_Box/Hitbox.tscn b/src/Overlap/HurtHit_Box/Hitbox.tscn index 6ca90b2..3642e2c 100644 --- a/src/Overlap/HurtHit_Box/Hitbox.tscn +++ b/src/Overlap/HurtHit_Box/Hitbox.tscn @@ -2,7 +2,9 @@ [ext_resource path="res://Overlap/HurtHit_Box/Hitbox.gd" type="Script" id=1] -[node name="Hitbox" type="Area2D"] +[node name="Hitbox" type="Area2D" groups=[ +"hitbox", +]] script = ExtResource( 1 ) [node name="CollisionShape2D" type="CollisionShape2D" parent="."] diff --git a/src/Overlap/HurtHit_Box/Hurtbox.tscn b/src/Overlap/HurtHit_Box/Hurtbox.tscn index fde26df..143d196 100644 --- a/src/Overlap/HurtHit_Box/Hurtbox.tscn +++ b/src/Overlap/HurtHit_Box/Hurtbox.tscn @@ -2,7 +2,9 @@ [ext_resource path="res://Overlap/HurtHit_Box/Hurtbox.gd" type="Script" id=1] -[node name="Hurtbox" type="Area2D"] +[node name="Hurtbox" type="Area2D" groups=[ +"hurtbox", +]] script = ExtResource( 1 ) [node name="CollisionShape2D" type="CollisionShape2D" parent="."] diff --git a/src/Overlap/Mechanics/Mechanics.gd b/src/Overlap/Mechanics/Mechanics.gd new file mode 100644 index 0000000..61510e1 --- /dev/null +++ b/src/Overlap/Mechanics/Mechanics.gd @@ -0,0 +1 @@ +extends Node diff --git a/src/Overlap/Mechanics/Mechanics.tscn b/src/Overlap/Mechanics/Mechanics.tscn new file mode 100644 index 0000000..76eead0 --- /dev/null +++ b/src/Overlap/Mechanics/Mechanics.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://Overlap/Mechanics/Mechanics.gd" type="Script" id=1] + +[node name="Core" type="Node"] +script = ExtResource( 1 ) diff --git a/src/Overlap/StateMachine/SequenceState.gd b/src/Overlap/StateMachine/SequenceState.gd new file mode 100644 index 0000000..e9e68e7 --- /dev/null +++ b/src/Overlap/StateMachine/SequenceState.gd @@ -0,0 +1,41 @@ +extends 'State.gd' + +var state_active = null + + +func _ready(): + for child in get_children(): + child.connect('finished', self, '_on_state_active_finished') + + +func enter(): + state_active = get_child(0) + state_active.enter() + + +func exit(): + state_active = null + + +func update(delta): + state_active.update(delta) + + +func _on_animation_finished(anim_name): + state_active._on_animation_finished(anim_name) + + +func _on_state_active_finished(): + go_to_next_state_in_sequence() + + +func go_to_next_state_in_sequence(): + state_active.exit() + + var new_state_index = (state_active.get_index() + 1) % get_child_count() + if new_state_index == 0: + emit_signal('finished') + return + state_active = get_child(new_state_index) + + state_active.enter() diff --git a/src/Overlap/StateMachine/StateMachine.gd b/src/Overlap/StateMachine/StateMachine.gd index bdf4c42..8c5f9a7 100644 --- a/src/Overlap/StateMachine/StateMachine.gd +++ b/src/Overlap/StateMachine/StateMachine.gd @@ -2,6 +2,7 @@ extends Node signal state_changed(current_state) +export(NodePath) var STATES_COLLECTION = "." export(NodePath) var START_STATE var states_map = {} @@ -9,10 +10,11 @@ var states_stack = [] var current_state = null var _active = false setget set_active + func _ready(): - for child in get_children(): + for child in get_node(STATES_COLLECTION).get_children(): child.connect("finished", self, "change_state") - initialize(START_STATE) + initialize(START_STATE) func initialize(start_state): set_active(true) diff --git a/src/Player/Player.tscn b/src/Player/Player.tscn index 97f2555..b35f873 100644 --- a/src/Player/Player.tscn +++ b/src/Player/Player.tscn @@ -626,8 +626,12 @@ radius = 13.3924 size = 12 font_data = ExtResource( 6 ) -[node name="Player" type="KinematicBody2D"] -scale = Vector2( 1.1, 1.1 ) + +[node name="Player" type="KinematicBody2D" groups=[ +"hero", +]] +collision_mask = 14 + script = ExtResource( 1 ) ROLL_SPEED = 120 FRICTION = 270 @@ -757,6 +761,7 @@ script = ExtResource( 16 ) [node name="Effects" type="Node2D" parent="."] [node name="HealEffect" parent="Effects" instance=ExtResource( 8 )] +emitting = false [connection signal="area_entered" from="Hitbox" to="." method="_on_Hitbox_area_entered"] [connection signal="area_entered" from="Hurtbox" to="." method="_on_Hurtbox_area_entered"] [connection signal="area_exited" from="Hurtbox" to="." method="_on_Hurtbox_area_exited"] diff --git a/src/World.tscn b/src/World.tscn index 069a7d8..3ad40f5 100644 --- a/src/World.tscn +++ b/src/World.tscn @@ -1,4 +1,5 @@ -[gd_scene load_steps=16 format=2] + +[gd_scene load_steps=13 format=2] [ext_resource path="res://Player/Player.tscn" type="PackedScene" id=1] [ext_resource path="res://World.gd" type="Script" id=2] @@ -6,13 +7,13 @@ [ext_resource path="res://testSprites/dark.png" type="Texture" id=4] [ext_resource path="res://Menus/DragNDrop/DragNDropUI.tscn" type="PackedScene" id=5] [ext_resource path="res://Menus/DialogueBox/DialogueBox.tscn" type="PackedScene" id=6] -[ext_resource path="res://Objects/Torch/Torch.tscn" type="PackedScene" id=7] -[ext_resource path="res://Objects/Barrel/Barrel.tscn" type="PackedScene" id=8] -[ext_resource path="res://Boss/Minion.tscn" type="PackedScene" id=9] + +[ext_resource path="res://Maps/Background/Background.tscn" type="PackedScene" id=7] +[ext_resource path="res://Boss/SlimeBoss/SlimeBoss.tscn" type="PackedScene" id=8] +[ext_resource path="res://Debug/BossStateDisplay.gd" type="Script" id=9] [ext_resource path="res://Objects/Bonfire/Bonfire.tscn" type="PackedScene" id=10] -[ext_resource path="res://Objects/Slime/Slime.tscn" type="PackedScene" id=11] -[ext_resource path="res://Objects/Traps/Sting.tscn" type="PackedScene" id=12] -[ext_resource path="res://Boss/Boss_template.tscn" type="PackedScene" id=17] +[ext_resource path="res://Fonts/Harmonic/Harmonic12.tres" type="DynamicFont" id=11] + [ext_resource path="res://Maps/Grid.tscn" type="PackedScene" id=18] [sub_resource type="AnimationNodeStateMachinePlayback" id=1] @@ -26,67 +27,39 @@ texture = ExtResource( 4 ) region_enabled = true region_rect = Rect2( 0, 0, 1280, 720 ) +[node name="Background" parent="." instance=ExtResource( 7 )] +frame = 49 + [node name="FloorTileMap" type="TileMap" parent="."] +visible = false position = Vector2( 16, 16 ) tile_set = ExtResource( 3 ) cell_size = Vector2( 32, 32 ) +collision_layer = 2 +collision_mask = 0 format = 1 -tile_data = PoolIntArray( -131059, 47, 0, -131058, 47, 2, -1, 47, 4, -65536, 47, 196609, -65535, 47, 196609, -65534, 47, 196609, -65533, 47, 196609, -65532, 47, 196609, -65531, 47, 196609, -65530, 47, 8, -65529, 47, 196609, -65528, 47, 8, -65527, 47, 196609, -65526, 47, 196609, -65525, 47, 196609, -65524, 47, 196609, -65523, 47, 196614, -65522, 47, 196618, -65521, 47, 196610, 65535, 47, 65539, 6, 47, 131075, 8, 47, 131075, 14, 47, 65539, 131071, 47, 65539, 65541, 47, 196611, 65550, 47, 65539, 196607, 47, 65539, 131075, 47, 196608, 131076, 47, 196610, 131086, 47, 65539, 262143, 47, 65539, 196614, 47, 196611, 196622, 47, 65539, 327679, 47, 65539, 262147, 47, 196611, 262149, 47, 196611, 262158, 47, 65539, 393215, 47, 65539, 327684, 47, 196611, 327694, 47, 65539, 458751, 47, 65539, 393221, 47, 3, 393230, 47, 65539, 524287, 47, 196612, 458752, 47, 196609, 458753, 47, 196609, 458754, 47, 196609, 458755, 47, 196609, 458756, 47, 196609, 458757, 47, 196616, 458758, 47, 196609, 458759, 47, 196609, 458760, 47, 196609, 458761, 47, 196609, 458762, 47, 196609, 458763, 47, 196609, 458764, 47, 196609, 458765, 47, 196609, 458766, 47, 196615 ) + +tile_data = PoolIntArray( -1, -1610612689, 4, -65536, -1610612689, 196609, -65535, -1610612689, 196609, -65534, -1610612689, 196609, -65533, -1610612689, 196609, -65532, -1610612689, 196609, -65531, -1610612689, 196609, -65530, -1610612689, 196609, -65529, -1610612689, 196609, -65528, -1610612689, 196609, -65527, -1610612689, 196609, -65526, -1610612689, 196609, -65525, -1610612689, 196609, -65524, -1610612689, 196609, -65523, -1610612689, 196610, -65522, -1610612720, 131073, 65535, -1610612689, 65539, 14, -1610612689, 3, 131071, 47, 65539, 65550, -1610612689, 65539, 196607, 47, 65539, 131086, -1610612689, 65539, 262143, 47, 65539, 196622, -1610612689, 65539, 327679, 47, 65539, 262158, -1610612689, 65539, 393215, 47, 65539, 327694, -1610612689, 65539, 458751, -1610612689, 131076, 393216, -1610612689, 1, 393217, -1610612689, 1, 393218, -1610612689, 1, 393219, -1610612689, 1, 393220, -1610612689, 1, 393221, -1610612689, 1, 393222, -1610612689, 1, 393223, -1610612689, 1, 393224, -1610612689, 1, 393225, -1610612689, 1, 393226, -1610612689, 1, 393227, -1610612689, 1, 393228, -1610612689, 1, 393229, -1610612689, 1, 393230, -1610612689, 131079, 524287, -1610612689, 131072, 458752, 47, 131073, 458753, 47, 131073, 458754, 47, 131073, 458755, 47, 131073, 458756, 47, 131073, 458757, 47, 131073, 458758, 47, 131073, 458759, 47, 131073, 458760, 47, 131073, 458761, 47, 131073, 458762, 47, 131073, 458763, 47, 131073, 458764, 47, 131073, 458765, 47, 131073, 458766, -1610612689, 131074 ) __meta__ = { "_edit_group_": true, "_edit_lock_": true } [node name="YSort" type="YSort" parent="."] -position = Vector2( 152, 120 ) -[node name="Player" parent="YSort" instance=ExtResource( 1 )] -position = Vector2( 136, 112 ) -scale = Vector2( 2, 2 ) -FRICTION = 200 - -[node name="AnimationTree" parent="YSort/Player" index="4"] -parameters/playback = SubResource( 1 ) - -[node name="Stats" parent="YSort/Player" index="9"] -max_health = 20 - -[node name="Boss_template" parent="YSort" instance=ExtResource( 17 )] -position = Vector2( -56, 8 ) [node name="Bonfire" parent="YSort" instance=ExtResource( 10 )] -position = Vector2( 288, 104 ) +position = Vector2( 265.543, -16 ) -[node name="Barrel" parent="YSort" instance=ExtResource( 8 )] -position = Vector2( 40, 8 ) +[node name="Player" parent="YSort" instance=ExtResource( 1 )] +position = Vector2( 344, 125.768 ) +scale = Vector2( 2, 2 ) +debug = true +ROLL_SPEED = 140 +FRICTION = 200 -[node name="Torch" parent="YSort" instance=ExtResource( 7 )] -position = Vector2( -112, -72 ) -spawnRate = 2.039 - -[node name="Minion" parent="YSort" instance=ExtResource( 9 )] -position = Vector2( 240, -40 ) - -[node name="Minion2" parent="YSort" instance=ExtResource( 9 )] -position = Vector2( 96, -80 ) - -[node name="Slime" parent="YSort" instance=ExtResource( 11 )] -position = Vector2( 104, 104 ) - -[node name="Slime2" parent="YSort" instance=ExtResource( 11 )] -position = Vector2( 168, 104 ) - -[node name="Slime3" parent="YSort" instance=ExtResource( 11 )] -position = Vector2( 136, 72 ) - -[node name="Slime4" parent="YSort" instance=ExtResource( 11 )] -position = Vector2( 168, 72 ) - -[node name="Slime5" parent="YSort" instance=ExtResource( 11 )] -position = Vector2( 104, 72 ) - -[node name="Sting" parent="YSort" instance=ExtResource( 12 )] -position = Vector2( 136, 48 ) +[node name="SlimeBoss" parent="YSort" instance=ExtResource( 8 )] +position = Vector2( 104, 80 ) [node name="Grid" parent="." instance=ExtResource( 18 )] @@ -96,10 +69,4 @@ position = Vector2( 136, 48 ) visible = false [node name="DragNDropUI" parent="CanvasLayer" instance=ExtResource( 5 )] -margin_left = 0.0 -margin_right = 0.0 -ObjectParent = NodePath("../..") -[editable path="YSort/Player"] - -[editable path="YSort/Bonfire"] diff --git a/src/project.godot b/src/project.godot index 2438715..88cddfa 100644 --- a/src/project.godot +++ b/src/project.godot @@ -34,11 +34,6 @@ _global_script_classes=[ { "language": "GDScript", "path": "res://Player/Player.gd" }, { -"base": "KinematicBody2D", -"class": "SlimeBoss", -"language": "GDScript", -"path": "res://Boss/SlimeBoss/SlimeBoss.gd" -}, { "base": "Button", "class": "TitleSceenButton", "language": "GDScript", @@ -55,7 +50,6 @@ _global_script_class_icons={ "Hero": "", "Minion": "", "Player": "", -"SlimeBoss": "", "TitleSceenButton": "", "TitleScreen": "" } @@ -69,6 +63,7 @@ config/icon="res://icon.png" [autoload] SoundControler="*res://Autoloads/SoundControler.gd" +Steering="*res://Autoloads/Steering.gd" [display]