pull/2/head
Sascha 2024-05-26 17:59:49 +07:00
parent c44dac7675
commit fed74e2f90
18 changed files with 586 additions and 225 deletions

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="UserContentModel">
<attachedFolders />
<explicitIncludes />
<explicitExcludes />
</component>
</project>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RiderProjectSettingsUpdater">
<option name="vcsConfiguration" value="2" />
</component>
</project>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

@ -0,0 +1,85 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="63d3df6f-867e-49f3-898b-5cf7cb05238e" name="Changes" comment="">
<change beforePath="$PROJECT_DIR$/scripts/game_manager.gd" beforeDir="false" afterPath="$PROJECT_DIR$/scripts/game_manager.gd" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="ProjectColorInfo"><![CDATA[{
"associatedIndex": 6
}]]></component>
<component name="ProjectId" id="2gv7H32sQLqfLCPiorrSYRuyrfw" />
<component name="ProjectViewState">
<option name="autoscrollFromSource" value="true" />
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
"RunOnceActivity.ShowReadmeOnStart": "true",
"git-widget-placeholder": "master",
"nodejs_package_manager_path": "npm",
"settings.editor.selected.configurable": "preferences.pluginManager",
"vue.rearranger.settings.migration": "true"
},
"keyToStringList": {
"rider.external.source.directories": [
"/home/sascha/.config/JetBrains/Rider2024.1/resharper-host/DecompilerCache",
"/home/sascha/.config/JetBrains/Rider2024.1/resharper-host/SourcesCache",
"/home/sascha/.local/share/Symbols/src"
]
}
}]]></component>
<component name="RunManager" selected="Native Executable.Player">
<configuration name="Editor" type="RunNativeExe" factoryName="Native Executable">
<option name="EXE_PATH" value="$USER_HOME$/Godot/Godot_v4.3-dev6_linux/Godot_v4.3-dev6_linux.x86_64" />
<option name="PROGRAM_PARAMETERS" value="--path &quot;./&quot; --editor" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="PASS_PARENT_ENVS" value="1" />
<option name="USE_EXTERNAL_CONSOLE" value="0" />
<method v="2" />
</configuration>
<configuration name="Player" type="RunNativeExe" factoryName="Native Executable">
<option name="EXE_PATH" value="$USER_HOME$/Godot/Godot_v4.3-dev6_linux/Godot_v4.3-dev6_linux.x86_64" />
<option name="PROGRAM_PARAMETERS" value="--path &quot;./&quot;" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="PASS_PARENT_ENVS" value="1" />
<option name="USE_EXTERNAL_CONSOLE" value="0" />
<method v="2" />
</configuration>
<configuration default="true" type="RunNativeExe" factoryName="Native Executable">
<option name="EXE_PATH" value="" />
<option name="PROGRAM_PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="PASS_PARENT_ENVS" value="1" />
<option name="USE_EXTERNAL_CONSOLE" value="0" />
<method v="2" />
</configuration>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="63d3df6f-867e-49f3-898b-5cf7cb05238e" name="Changes" comment="" />
<created>1716566105954</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1716566105954</updated>
<workItem from="1716566107175" duration="102000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="3" />
</component>
<component name="UnityProjectConfiguration" hasMinimizedUI="false" />
<component name="VcsManagerConfiguration">
<option name="CLEAR_INITIAL_COMMIT_MESSAGE" value="true" />
</component>
</project>

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 B

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cdb7g80hhdx3q"
path="res://.godot/imported/stop.png-a7b41ec0b33b872fe77db3f85404b70d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://resources/images/stop.png"
dest_files=["res://.godot/imported/stop.png-a7b41ec0b33b872fe77db3f85404b70d.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dusuxbeon1rsm"
path="res://.godot/imported/white1x1.png-af47dcca93249526fb426a39cbdb2ea9.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://resources/images/white1x1.png"
dest_files=["res://.godot/imported/white1x1.png-af47dcca93249526fb426a39cbdb2ea9.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

File diff suppressed because one or more lines are too long

@ -1,4 +1,4 @@
[gd_scene load_steps=10 format=3 uid="uid://b1i4juq2u7pwk"]
[gd_scene load_steps=11 format=3 uid="uid://b1i4juq2u7pwk"]
[ext_resource type="Environment" uid="uid://d31wkt76cft8k" path="res://resources/world_environment.tres" id="1_03qki"]
[ext_resource type="Script" path="res://scripts/game_manager.gd" id="1_kvi4c"]
@ -7,6 +7,7 @@
[ext_resource type="MeshLibrary" uid="uid://dje66fxvu4hnm" path="res://resources/floors_mesh_library.tres" id="7_pv7jr"]
[ext_resource type="PackedScene" uid="uid://dif2kboftacra" path="res://scenes/torch_mounted.tscn" id="8_8d1n4"]
[ext_resource type="PackedScene" uid="uid://670weiu5lj4u" path="res://scenes/skeleton_warrior_new.tscn" id="8_b6x6f"]
[ext_resource type="PackedScene" uid="uid://d1vowjv6aed2s" path="res://scenes/ui.tscn" id="9_ah8u8"]
[ext_resource type="MeshLibrary" uid="uid://bs0yqy7xhugol" path="res://resources/level_mesh_library.tres" id="9_dr0le"]
[sub_resource type="NavigationMesh" id="NavigationMesh_3mbqm"]
@ -27,18 +28,16 @@ shadow_enabled = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 49.8991, 25.834, -30.0061)
size = Vector3(10000, 10000, 1000)
[node name="GameManager" type="Node3D" parent="."]
[node name="GameManager" type="Node3D" parent="." node_paths=PackedStringArray("player")]
script = ExtResource("1_kvi4c")
player = NodePath("../Player")
[node name="Knight" parent="." instance=ExtResource("7_iwqlu")]
[node name="Player" parent="." instance=ExtResource("7_iwqlu")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -17.852, 1, 6.862)
[node name="Skeleton_Warrior_new" parent="." node_paths=PackedStringArray("nearest_player") instance=ExtResource("8_b6x6f")]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 20, 1, 6)
speed = 4.0
acceleration = 4.0
jump_speed = 8.0
nearest_player = NodePath("../Knight")
nearest_player = NodePath("../Player")
[node name="torch_mounted" parent="." instance=ExtResource("8_8d1n4")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.03394, 2.9024, 1.25148)
@ -80,3 +79,8 @@ bake_navigation = true
data = {
"cells": PackedInt32Array(9, 65535, 0, 9, 0, 0, 9, 1, 0, 9, 2, 0, 9, 3, 0, 9, 4, 0, 9, 5, 0, 9, 6, 0, 8, 6, 0, 8, 5, 0, 8, 4, 0, 8, 3, 0, 8, 2, 0, 8, 1, 0, 8, 0, 0, 8, 65535, 0, 7, 65535, 0, 7, 0, 0, 7, 1, 0, 7, 2, 0, 7, 3, 0, 7, 4, 0, 7, 5, 0, 7, 6, 0, 6, 6, 0, 6, 5, 0, 6, 4, 0, 6, 3, 0, 6, 2, 0, 6, 1, 0, 6, 0, 0, 6, 65535, 0, 5, 65535, 0, 5, 0, 0, 5, 1, 0, 5, 2, 0, 5, 3, 0, 5, 4, 0, 5, 5, 0, 5, 6, 0, 4, 6, 0, 4, 5, 0, 4, 4, 0, 4, 3, 0, 4, 2, 0, 4, 1, 0, 4, 0, 0, 4, 65535, 0, 3, 6, 0, 2, 6, 0, 1, 6, 0, 0, 6, 0, 65535, 6, 0, 65534, 6, 0, 65533, 6, 0, 65532, 6, 0, 65531, 6, 0, 65530, 6, 0, 65529, 6, 0, 65528, 6, 0, 65527, 6, 0, 65526, 6, 0, 65525, 6, 0, 65525, 5, 0, 65526, 5, 0, 65527, 5, 0, 65528, 5, 0, 65529, 5, 0, 65530, 5, 0, 65531, 5, 0, 65532, 5, 0, 65533, 5, 0, 65534, 5, 0, 65535, 5, 0, 0, 5, 0, 1, 5, 0, 2, 5, 0, 3, 5, 0, 3, 4, 0, 2, 4, 0, 1, 4, 0, 0, 4, 0, 65535, 4, 0, 65534, 4, 0, 65533, 4, 0, 65530, 4, 0, 65529, 4, 0, 65528, 4, 0, 65527, 4, 0, 65526, 4, 0, 65525, 4, 0, 65531, 4, 0, 65532, 4, 0, 0, 3, 0, 1, 3, 0, 2, 3, 0, 3, 3, 0, 3, 2, 0, 1, 2, 0, 65535, 3, 0, 2, 2, 0, 65534, 3, 0, 65533, 3, 0, 65535, 2, 0, 3, 1, 0, 2, 1, 0, 1, 1, 0, 0, 1, 0, 0, 2, 0, 65534, 2, 0, 65533, 2, 0, 65532, 2, 0, 65532, 3, 0, 65531, 3, 0, 65532, 1, 0, 65531, 1, 0, 65531, 2, 0, 65530, 2, 0, 65530, 3, 0, 65530, 1, 0, 65529, 1, 0, 65529, 2, 0, 65529, 3, 0, 65528, 3, 0, 65528, 2, 0, 65528, 1, 0, 65527, 2, 0, 65527, 3, 0, 65526, 3, 0, 65525, 3, 0, 65525, 2, 0, 65526, 2, 0, 65526, 1, 0, 65527, 1, 0, 65525, 1, 0, 65525, 0, 0, 65526, 0, 0, 65527, 0, 0, 65528, 0, 0, 65529, 0, 0, 65530, 0, 0, 65531, 0, 0, 65532, 0, 0, 65533, 0, 0, 65534, 0, 0, 65535, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 3, 0, 0, 3, 65535, 0, 2, 65535, 0, 1, 65535, 0, 0, 65535, 0, 65535, 1, 0, 65534, 1, 0, 65533, 1, 0, 65535, 65535, 0, 65534, 65535, 0, 65533, 65535, 0, 65532, 65535, 0, 65531, 65535, 0, 65530, 65535, 0, 65529, 65535, 0, 65528, 65535, 0, 65527, 65535, 0, 65526, 65535, 0, 65525, 65535, 0, 10, 6, 1441792, 10, 5, 1441792, 10, 4, 1441792, 10, 3, 1441792, 10, 2, 1441792, 10, 1, 1441792, 10, 0, 1441792, 10, 65535, 1441792)
}
[node name="CanvasLayer" type="CanvasLayer" parent="."]
[node name="UI" parent="CanvasLayer" node_paths=PackedStringArray("player") instance=ExtResource("9_ah8u8")]
player = NodePath("../../Player")

@ -1,7 +1,7 @@
[gd_scene load_steps=147 format=4 uid="uid://dtehhqrqtplan"]
[ext_resource type="PackedScene" uid="uid://bd5bo4yc4n4in" path="res://resources/models/adventures/Knight.glb" id="1_fwuyc"]
[ext_resource type="Script" path="res://scripts/knight.gd" id="2_51yjr"]
[ext_resource type="Script" path="res://scripts/player.gd" id="2_51yjr"]
[ext_resource type="Texture2D" uid="uid://ejhvh25arsgk" path="res://resources/models/adventures/Knight_knight_texture.png" id="3_x8nvv"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ljbeh"]
@ -31445,129 +31445,130 @@ margin = 0.1
[node name="Skeleton3D" parent="Rig" index="0"]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
bones/0/rotation = Quaternion(0, 1.19209e-07, 0, 1)
bones/1/position = Vector3(0, 0.392064, 0)
bones/1/rotation = Quaternion(-1.11123e-10, 0.0431578, 2.57241e-09, 0.999068)
bones/2/rotation = Quaternion(-6.93889e-18, 7.10543e-15, 4.93038e-32, 1)
bones/3/rotation = Quaternion(8.27181e-25, 3.72529e-09, 0, 1)
bones/4/position = Vector3(0.212007, 0.134132, 7.92996e-08)
bones/4/rotation = Quaternion(-0.559906, -0.0608804, -0.643974, 0.517779)
bones/0/position = Vector3(0, 0.000155358, 0)
bones/0/rotation = Quaternion(-9.45753e-12, -0.000274707, -1.63809e-11, 1)
bones/1/position = Vector3(2.22295e-25, 0.373103, -9.32374e-19)
bones/1/rotation = Quaternion(0.000375813, 0.042994, 2.03957e-05, 0.999075)
bones/2/rotation = Quaternion(0.000451876, -0.000266487, 2.23781e-06, 1)
bones/3/rotation = Quaternion(0.000181684, 7.61394e-05, -6.67731e-05, 1)
bones/4/position = Vector3(0.211922, 0.134053, -0.00016754)
bones/4/rotation = Quaternion(-0.552024, -0.0604403, -0.649113, 0.519874)
bones/4/scale = Vector3(0.999999, 0.999999, 1)
bones/5/rotation = Quaternion(3.65498e-08, -4.88301e-08, -0.494719, 0.869053)
bones/5/rotation = Quaternion(2.93065e-08, -5.59564e-08, -0.491746, 0.870739)
bones/6/rotation = Quaternion(-9.73784e-11, -2.98437e-10, 0.0266581, 0.999645)
bones/6/scale = Vector3(1, 1, 1)
bones/7/rotation = Quaternion(-0.321065, -0.325319, 0.145726, 0.87741)
bones/8/position = Vector3(8.34843e-10, 0.0961252, -0.0575)
bones/8/rotation = Quaternion(-3.6586e-09, 6.87811e-09, -0.707107, 0.707107)
bones/7/rotation = Quaternion(-0.317102, -0.334691, 0.138274, 0.876532)
bones/8/position = Vector3(4.03524e-10, 0.0961252, -0.0575)
bones/8/rotation = Quaternion(0.00131521, 0.00165987, -0.700764, 0.71339)
bones/8/scale = Vector3(1, 1, 1)
bones/14/position = Vector3(-0.212007, 0.134132, 8.6814e-08)
bones/14/rotation = Quaternion(-0.618244, 0.0807285, 0.618012, 0.478873)
bones/14/position = Vector3(-0.211992, 0.134088, -0.00018636)
bones/14/rotation = Quaternion(-0.610832, 0.0808178, 0.623598, 0.481122)
bones/14/scale = Vector3(0.999999, 0.999999, 1)
bones/15/rotation = Quaternion(2.09853e-08, 5.12855e-08, 0.517939, 0.855417)
bones/15/rotation = Quaternion(1.16132e-08, 6.62298e-08, 0.515534, 0.856869)
bones/16/rotation = Quaternion(-9.73784e-11, 2.98437e-10, -0.0266581, 0.999645)
bones/16/scale = Vector3(1, 1, 1)
bones/17/rotation = Quaternion(-0.319291, 0.300524, -0.22735, 0.869512)
bones/18/position = Vector3(-1.5736e-08, 0.0961251, -0.0575)
bones/18/rotation = Quaternion(-1.02444e-09, -4.24391e-09, 0.707107, 0.707107)
bones/17/rotation = Quaternion(-0.315765, 0.309403, -0.220525, 0.869443)
bones/18/position = Vector3(-1.54782e-08, 0.0961251, -0.0575)
bones/18/rotation = Quaternion(0.00426441, 0.00504141, 0.70181, 0.712334)
bones/18/scale = Vector3(1, 1, 1)
bones/21/rotation = Quaternion(-5.80608e-11, -0.0313417, -1.88012e-09, 0.999509)
bones/24/position = Vector3(0.170945, 0.113587, 1.59941e-08)
bones/24/rotation = Quaternion(0.996186, 0.0479136, 0.0566427, -0.045939)
bones/21/rotation = Quaternion(-0.000498545, -0.0308913, -7.04653e-05, 0.999523)
bones/24/position = Vector3(0.170945, 0.113587, -0.000369284)
bones/24/rotation = Quaternion(0.990455, 0.0831242, 0.0778535, 0.077646)
bones/24/scale = Vector3(1, 1, 1)
bones/25/rotation = Quaternion(0.165014, 6.49414e-08, -1.11407e-07, 0.986291)
bones/26/rotation = Quaternion(-0.533729, -0.260895, -1.72985e-05, 0.804405)
bones/27/rotation = Quaternion(-2.32086e-08, 0.920355, -0.391084, 7.25743e-08)
bones/25/rotation = Quaternion(0.37183, 6.27445e-08, -2.57396e-07, 0.928301)
bones/26/rotation = Quaternion(-0.607331, -0.201392, 0.0723253, 0.765088)
bones/27/rotation = Quaternion(-9.8221e-09, 0.920355, -0.391084, 7.82783e-08)
bones/27/scale = Vector3(1, 1, 1)
bones/28/position = Vector3(-0.170945, 0.113587, 1.55755e-08)
bones/28/rotation = Quaternion(0.997322, -0.0294574, 0.0315293, 0.0590483)
bones/28/position = Vector3(-0.170945, 0.113587, 0.000369316)
bones/28/rotation = Quaternion(0.992288, -0.0327409, 0.0298627, 0.115763)
bones/28/scale = Vector3(1, 1, 1)
bones/29/rotation = Quaternion(0.274008, -6.38135e-08, 1.92761e-07, 0.961727)
bones/30/rotation = Quaternion(-0.559039, 0.114513, -0.00862764, 0.82115)
bones/31/rotation = Quaternion(3.03591e-08, 0.920355, -0.391084, -6.95338e-08)
bones/29/rotation = Quaternion(0.416152, -6.03151e-08, 2.89699e-07, 0.909295)
bones/30/rotation = Quaternion(-0.635353, 0.112446, -0.0211755, 0.763698)
bones/31/rotation = Quaternion(3.03599e-08, 0.920355, -0.391084, -6.95348e-08)
bones/31/scale = Vector3(1, 1, 1)
bones/32/position = Vector3(0.170945, 0.29231, 0.575812)
bones/32/position = Vector3(0.170945, 0.292336, 0.575838)
bones/32/rotation = Quaternion(0.707107, -2.29302e-07, -4.60552e-08, 0.707107)
bones/33/position = Vector3(0.213918, 0.0259903, 0.173866)
bones/33/rotation = Quaternion(-0.705092, 0.0533355, 0.0533355, 0.705092)
bones/33/position = Vector3(0.202061, 0.0264211, 0.202554)
bones/33/rotation = Quaternion(-0.704397, -7.07749e-08, -7.02862e-08, 0.709807)
bones/34/rest = Transform3D(-1, 4.66e-34, 1.42109e-14, -4.69932e-34, -1, -2.76642e-22, 1.42109e-14, -2.76642e-22, 1, 1.94581e-08, 0.362833, -2.42861e-15)
bones/34/position = Vector3(1.94581e-08, 0.362833, -2.42861e-15)
bones/34/rotation = Quaternion(9.65792e-09, 1.77955e-09, 0.985719, -0.168398)
bones/35/position = Vector3(-1.11482e-08, 0.213436, -5.36347e-09)
bones/35/rotation = Quaternion(-1.10961e-07, 0.391084, 0.920355, -2.67919e-08)
bones/36/position = Vector3(-6.31128e-09, 0.16565, -7.10267e-09)
bones/37/rotation = Quaternion(1, -8.27364e-11, 1.94627e-07, -7.45058e-09)
bones/39/position = Vector3(-0.170945, 0.29231, 0.575812)
bones/34/position = Vector3(1.94503e-08, 0.362833, -2.42861e-15)
bones/34/rotation = Quaternion(9.6269e-09, 1.76581e-09, 0.98583, -0.167751)
bones/35/position = Vector3(-2.59494e-08, 0.213436, -5.15143e-09)
bones/35/rotation = Quaternion(-1.01283e-07, 0.391084, 0.920355, -3.34974e-08)
bones/36/position = Vector3(8.5477e-09, 0.16565, -2.42004e-09)
bones/37/rotation = Quaternion(1, -2.31451e-09, 1.99757e-07, 9.76329e-13)
bones/39/position = Vector3(-0.170945, 0.292336, 0.575838)
bones/39/rotation = Quaternion(0.707107, -3.82385e-08, 1.45009e-07, 0.707107)
bones/40/position = Vector3(-0.170945, 0.0259903, 0.245789)
bones/40/rotation = Quaternion(-0.707107, -7.05285e-08, -7.05285e-08, 0.707107)
bones/40/position = Vector3(-0.170945, 0.0271627, 0.247107)
bones/40/rotation = Quaternion(-0.708259, -7.04226e-08, -7.06334e-08, 0.705953)
bones/41/rest = Transform3D(-1, 4.66e-34, 1.42109e-14, -4.69932e-34, -1, -2.76642e-22, 1.42109e-14, -2.76642e-22, 1, 1.94581e-08, 0.362833, 2.42861e-15)
bones/41/position = Vector3(1.94581e-08, 0.362833, 2.42861e-15)
bones/41/rotation = Quaternion(-5.83589e-09, 6.43837e-10, 0.994809, 0.101756)
bones/42/position = Vector3(-1.11482e-08, 0.213436, -2.50942e-15)
bones/42/rotation = Quaternion(-1.05796e-07, 0.391084, 0.920355, -2.58643e-08)
bones/43/position = Vector3(-6.31128e-09, 0.16565, 2.70695e-09)
bones/41/position = Vector3(1.94816e-08, 0.362833, 2.0002e-10)
bones/41/rotation = Quaternion(-5.81779e-09, 6.41802e-10, 0.99485, 0.101363)
bones/42/position = Vector3(-1.10904e-08, 0.213436, 8.32519e-11)
bones/42/rotation = Quaternion(-1.05787e-07, 0.391084, 0.920355, -2.58828e-08)
bones/43/position = Vector3(-6.30346e-09, 0.16565, 2.79023e-09)
bones/43/rotation = Quaternion(-0.391084, -6.885e-08, -6.56287e-08, 0.920355)
bones/44/rotation = Quaternion(1, 3.76526e-09, 1.94879e-07, 7.45058e-09)
bones/46/position = Vector3(0.453507, 1.10676, -0.588859)
bones/46/rotation = Quaternion(-0.707107, -7.27951e-08, -7.27951e-08, 0.707107)
bones/47/position = Vector3(0.520841, 0.788312, -0.0576373)
bones/47/rotation = Quaternion(0.794627, -1.2666e-07, 0.607098, -5.96046e-08)
bones/48/position = Vector3(-0.453507, 1.10676, -0.58886)
bones/48/rotation = Quaternion(-0.707107, -7.27951e-08, -7.27951e-08, 0.707107)
bones/49/position = Vector3(-0.510844, 0.788312, 0.0597369)
bones/49/rotation = Quaternion(0.758253, 1.82539e-07, -0.651961, 1.11759e-08)
bones/44/rotation = Quaternion(1, 3.75961e-09, 1.94881e-07, 7.41776e-09)
bones/46/position = Vector3(0.453378, 1.10598, -0.589302)
bones/46/rotation = Quaternion(-0.707107, 6.47045e-05, 6.47045e-05, 0.707107)
bones/47/position = Vector3(0.520813, 0.768268, -0.0570224)
bones/47/rotation = Quaternion(0.795441, 0.00177567, 0.606028, 0.000197405)
bones/48/position = Vector3(-0.45384, 1.10588, -0.588869)
bones/48/rotation = Quaternion(-0.707107, 6.47045e-05, 6.47045e-05, 0.707107)
bones/49/position = Vector3(-0.510787, 0.768268, 0.0601907)
bones/49/rotation = Quaternion(0.759165, -0.00170719, -0.650896, 0.00037696)
[node name="1H_Sword_Offhand" parent="Rig/Skeleton3D" index="0"]
transform = Transform3D(2.05336e-07, 0.262865, 0.964832, 0.999999, -2.05808e-07, 7.76845e-07, 7.81375e-07, 0.964832, -0.262864, 0.51224, 0.636705, -0.00210777)
transform = Transform3D(-0.00259963, 0.263774, 0.96458, 0.999876, -0.0142655, 0.00659674, 0.0155008, 0.964478, -0.263705, 0.512683, 0.616287, -0.00169888)
visible = false
[node name="1H_Sword_Offhand" parent="Rig/Skeleton3D/1H_Sword_Offhand" index="0"]
mesh = SubResource("ArrayMesh_rvosg")
[node name="Badge_Shield" parent="Rig/Skeleton3D" index="1"]
transform = Transform3D(2.27756e-07, 0.262864, 0.964832, 0.999999, -2.74099e-06, 1.44431e-06, 3.40285e-06, 0.964832, -0.262864, 0.662643, 0.636705, -0.0430845)
transform = Transform3D(-0.0025996, 0.263774, 0.96458, 0.999876, -0.014268, 0.0065974, 0.0155034, 0.964478, -0.263704, 0.663047, 0.617315, -0.0428066)
visible = false
[node name="Badge_Shield" parent="Rig/Skeleton3D/Badge_Shield" index="0"]
mesh = SubResource("ArrayMesh_0xags")
[node name="Rectangle_Shield" parent="Rig/Skeleton3D" index="2"]
transform = Transform3D(2.27756e-07, 0.262864, 0.964832, 0.999999, -2.74099e-06, 1.44431e-06, 3.40285e-06, 0.964832, -0.262864, 0.662643, 0.636705, -0.0430845)
transform = Transform3D(-0.0025996, 0.263774, 0.96458, 0.999876, -0.014268, 0.0065974, 0.0155034, 0.964478, -0.263704, 0.663047, 0.617315, -0.0428066)
visible = false
[node name="Rectangle_Shield" parent="Rig/Skeleton3D/Rectangle_Shield" index="0"]
mesh = SubResource("ArrayMesh_qr44s")
[node name="Round_Shield" parent="Rig/Skeleton3D" index="3"]
transform = Transform3D(2.27756e-07, 0.262864, 0.964832, 0.999999, -2.74099e-06, 1.44431e-06, 3.40285e-06, 0.964832, -0.262864, 0.662643, 0.636705, -0.0430845)
transform = Transform3D(-0.0025996, 0.263774, 0.96458, 0.999876, -0.014268, 0.0065974, 0.0155034, 0.964478, -0.263704, 0.663047, 0.617315, -0.0428066)
[node name="Round_Shield" parent="Rig/Skeleton3D/Round_Shield" index="0"]
mesh = SubResource("ArrayMesh_bb24p")
[node name="Spike_Shield" parent="Rig/Skeleton3D" index="4"]
transform = Transform3D(2.27756e-07, 0.262864, 0.964832, 0.999999, -2.74099e-06, 1.44431e-06, 3.40285e-06, 0.964832, -0.262864, 0.662643, 0.636705, -0.0430845)
transform = Transform3D(-0.0025996, 0.263774, 0.96458, 0.999876, -0.014268, 0.0065974, 0.0155034, 0.964478, -0.263704, 0.663047, 0.617315, -0.0428066)
[node name="Spike_Shield" parent="Rig/Skeleton3D/Spike_Shield" index="0"]
mesh = SubResource("ArrayMesh_jnwr3")
[node name="1H_Sword" parent="Rig/Skeleton3D" index="5"]
transform = Transform3D(-1.29191e-07, -0.149894, 0.988702, 0.999999, -7.72053e-07, -8.64267e-07, 1.4098e-06, 0.988701, 0.149894, -0.496053, 0.64103, 0.139528)
transform = Transform3D(-0.00102949, -0.164922, 0.986306, 0.999935, -0.0112845, -0.000844182, 0.0112698, 0.986241, 0.164923, -0.496661, 0.620232, 0.139329)
[node name="1H_Sword" parent="Rig/Skeleton3D/1H_Sword" index="0"]
mesh = SubResource("ArrayMesh_dbq6c")
[node name="2H_Sword" parent="Rig/Skeleton3D" index="6"]
transform = Transform3D(-1.44931e-07, -0.149894, 0.988702, 0.999999, -7.86786e-07, -8.50581e-07, 1.42232e-06, 0.988701, 0.149894, -0.496053, 0.64103, 0.139528)
transform = Transform3D(-0.00102951, -0.164922, 0.986306, 0.999935, -0.0112845, -0.000844169, 0.0112698, 0.986241, 0.164923, -0.496661, 0.620232, 0.139329)
[node name="Knight_Helmet" parent="Rig/Skeleton3D" index="7"]
transform = Transform3D(0.99972, -1.40145e-09, 0.0236468, 1.39343e-09, 1, 3.55687e-10, -0.0236468, -3.22638e-10, 0.99972, 4.69869e-07, 1.20229, -1.19779e-07)
transform = Transform3D(0.999729, 0.00031423, 0.0232901, -0.000290831, 0.999999, -0.00100804, -0.0232904, 0.00100099, 0.999728, 7.57521e-05, 1.18349, 0.00127761)
visible = false
[node name="Knight_Helmet" parent="Rig/Skeleton3D/Knight_Helmet" index="0"]
mesh = SubResource("ArrayMesh_o8mbo")
[node name="Knight_Cape" parent="Rig/Skeleton3D" index="8"]
transform = Transform3D(0.996275, -5.14962e-09, 0.0862354, 5.13044e-09, 1, 4.44078e-10, -0.0862354, 1.46374e-15, 0.996275, -1.63023e-08, 1.20229, -1.40136e-07)
transform = Transform3D(0.996382, 0.00022751, 0.0849816, -5.63621e-05, 0.999998, -0.00201633, -0.0849819, 0.00200425, 0.996381, 7.74803e-05, 1.18349, 0.00125197)
visible = false
[node name="Knight_Cape" parent="Rig/Skeleton3D/Knight_Cape" index="0"]
@ -31610,7 +31611,7 @@ libraries = {
tree_root = SubResource("AnimationNodeStateMachine_vnar2")
anim_player = NodePath("../AnimationPlayer")
parameters/current_length = 1.06667
parameters/current_position = 0.943181
parameters/current_position = 0.68643
parameters/current_delta = 0.0166667
parameters/conditions/blocking = false
parameters/conditions/grounded = false
@ -31641,20 +31642,20 @@ parameters/End/current_length = 0.0
parameters/End/current_position = 0.0
parameters/End/current_delta = 0.0
parameters/IWR/current_length = 1.06667
parameters/IWR/current_position = 0.943181
parameters/IWR/current_position = 0.68643
parameters/IWR/current_delta = 0.0166667
parameters/IWR/blend_position = Vector2(0.000524879, 0.00335574)
parameters/IWR/0/current_length = 1.06667
parameters/IWR/0/current_position = 0.943181
parameters/IWR/0/current_position = 0.68643
parameters/IWR/0/current_delta = 0.0166667
parameters/IWR/1/current_length = 0.8
parameters/IWR/1/current_position = 0.143181
parameters/IWR/1/current_position = 0.419799
parameters/IWR/1/current_delta = 0.0166667
parameters/IWR/2/current_length = 1.06667
parameters/IWR/2/current_position = 0.408754
parameters/IWR/2/current_delta = 0.0166667
parameters/IWR/3/current_length = 0.8
parameters/IWR/3/current_position = 0.143181
parameters/IWR/3/current_position = 0.419799
parameters/IWR/3/current_delta = 0.0166667
parameters/IWR/4/current_length = 0.8
parameters/IWR/4/current_position = 0.61058

@ -139,48 +139,135 @@ debug_enabled = true
[node name="Skeleton3D" parent="Rig" index="0"]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
bones/0/rotation = Quaternion(-8.55713e-09, 1.20432e-07, -2.0611e-15, 1)
bones/1/rotation = Quaternion(-1.75564e-15, -1.03317e-07, 2.7788e-22, 1)
bones/4/rotation = Quaternion(-0.514124, -0.485465, -0.485465, 0.514124)
bones/5/rotation = Quaternion(2.45793e-07, -7.51439e-08, -0.0552965, 0.99847)
bones/6/rotation = Quaternion(-2.35585e-07, 4.61589e-09, 0.0266581, 0.999645)
bones/0/position = Vector3(0, 0.0268161, -9.17874e-10)
bones/0/rotation = Quaternion(-8.64928e-09, -0.0189637, -8.6804e-10, 0.99982)
bones/1/position = Vector3(3.76573e-17, 0.431644, 1.22245e-15)
bones/1/rotation = Quaternion(0.0895664, 0.00435561, 0.00214404, 0.995969)
bones/1/scale = Vector3(1, 1, 1)
bones/2/position = Vector3(4.13228e-10, 0.191977, -1.93965e-10)
bones/2/rotation = Quaternion(0.101961, 0.0879574, -0.00869003, 0.990854)
bones/2/scale = Vector3(1, 1, 1)
bones/3/position = Vector3(-5.96e-10, 0.374988, 1.72942e-08)
bones/3/rotation = Quaternion(0.0383598, 0.00707321, 0.00429269, 0.99923)
bones/3/scale = Vector3(1, 1, 1)
bones/4/position = Vector3(0.208573, 0.123831, -0.0432211)
bones/4/rotation = Quaternion(-0.729087, -0.208909, -0.574581, 0.307645)
bones/4/scale = Vector3(0.999999, 0.999999, 1)
bones/5/position = Vector3(8.36021e-08, 0.241897, 4.95549e-08)
bones/5/rotation = Quaternion(2.53379e-07, 6.87794e-08, -0.52562, 0.85072)
bones/5/scale = Vector3(1, 1, 1)
bones/6/position = Vector3(1.27578e-08, 0.260044, -1.06596e-07)
bones/6/rotation = Quaternion(-2.40952e-07, 7.87097e-09, 0.0266581, 0.999645)
bones/6/scale = Vector3(1, 1, 1)
bones/8/rotation = Quaternion(1.0645e-07, -5.81713e-08, -0.707107, 0.707107)
bones/10/rotation = Quaternion(2.4384e-07, 3.9741e-08, 0.0552965, 0.99847)
bones/11/rotation = Quaternion(-2.35588e-07, -4.60716e-09, -0.0266581, 0.999645)
bones/7/position = Vector3(9.41647e-09, 0.0738259, 5.26615e-09)
bones/7/rotation = Quaternion(-0.130261, -0.328571, -0.21097, 0.911353)
bones/7/scale = Vector3(1, 1, 1)
bones/8/position = Vector3(-6.99454e-08, 0.0961251, -0.0574999)
bones/8/rotation = Quaternion(-0.0498789, 0.0442018, -0.550103, 0.832433)
bones/8/scale = Vector3(1, 1, 1)
bones/9/position = Vector3(-0.192387, 0.115727, -0.0388489)
bones/9/rotation = Quaternion(-0.825771, 0.122911, 0.403942, 0.373933)
bones/9/scale = Vector3(0.999999, 0.999999, 1)
bones/10/position = Vector3(2.99751e-08, 0.241897, 1.51159e-07)
bones/10/rotation = Quaternion(2.02583e-07, -8.38538e-08, 0.492672, 0.870215)
bones/10/scale = Vector3(1, 1, 1)
bones/11/position = Vector3(-1.50742e-09, 0.260044, -1.38413e-08)
bones/11/rotation = Quaternion(-2.23298e-07, -1.79472e-09, -0.0266581, 0.999645)
bones/11/scale = Vector3(1, 1, 1)
bones/13/rotation = Quaternion(1.06567e-07, 5.80546e-08, 0.707107, 0.707107)
bones/16/rotation = Quaternion(0.999849, -6.67777e-08, -6.59708e-08, 0.0173739)
bones/17/rotation = Quaternion(0.106227, 7.68414e-08, -7.3606e-08, 0.994342)
bones/18/rotation = Quaternion(-0.45524, 7.50525e-08, -3.83738e-08, 0.890369)
bones/19/rotation = Quaternion(-1.02151e-08, 0.920355, -0.391084, 1.792e-07)
bones/20/rotation = Quaternion(0.999849, 6.73721e-08, 1.00173e-07, 0.0173739)
bones/21/rotation = Quaternion(0.106227, -7.67146e-08, 7.47885e-08, 0.994342)
bones/22/rotation = Quaternion(-0.45524, 7.50524e-08, -3.83739e-08, 0.890369)
bones/23/rotation = Quaternion(4.8837e-08, 0.920355, -0.391084, 4.023e-08)
bones/12/position = Vector3(1.98831e-09, 0.0738258, 2.6471e-08)
bones/12/rotation = Quaternion(-0.190017, 0.347986, 0.270238, 0.877366)
bones/12/scale = Vector3(1, 1, 1)
bones/13/position = Vector3(-9.65747e-08, 0.0961251, -0.0574999)
bones/13/rotation = Quaternion(-0.0484601, -0.0493025, 0.554957, 0.829002)
bones/13/scale = Vector3(1, 1, 1)
bones/14/position = Vector3(-5.08263e-09, 0.268797, 2.41198e-08)
bones/14/rotation = Quaternion(-0.116884, -0.0935184, 0.00192354, 0.988731)
bones/14/scale = Vector3(1, 1, 1)
bones/16/position = Vector3(0.170945, 0.113587, 0.086349)
bones/16/rotation = Quaternion(0.859133, 0.00183195, 0.0107754, 0.511635)
bones/16/scale = Vector3(1, 1, 1)
bones/17/position = Vector3(-3.16941e-08, 0.227078, 4.93766e-08)
bones/17/rotation = Quaternion(0.442935, 6.89002e-08, -3.0939e-07, 0.896554)
bones/17/scale = Vector3(1, 1, 1)
bones/18/position = Vector3(2.41183e-10, 0.149437, -1.5217e-08)
bones/18/rotation = Quaternion(-0.610246, -0.0219878, 0.00143039, 0.791905)
bones/18/scale = Vector3(1, 1, 0.999999)
bones/19/position = Vector3(4.62692e-09, 0.16565, 6.14659e-08)
bones/19/rotation = Quaternion(7.08625e-06, 0.920142, -0.391586, 5.39812e-08)
bones/19/scale = Vector3(1, 0.999996, 1)
bones/20/position = Vector3(-0.170945, 0.113587, -0.086349)
bones/20/rotation = Quaternion(0.998573, -0.00412647, 0.00332859, 0.0531359)
bones/20/scale = Vector3(1, 1, 1)
bones/21/position = Vector3(7.4073e-09, 0.227078, 7.82905e-09)
bones/21/rotation = Quaternion(0.635638, -5.88216e-08, 4.4603e-07, 0.771987)
bones/21/scale = Vector3(1, 0.999999, 1)
bones/22/position = Vector3(-1.5872e-08, 0.149437, -2.61142e-08)
bones/22/rotation = Quaternion(-0.262535, 0.0124291, -0.00282612, 0.964838)
bones/22/scale = Vector3(1, 0.999999, 1)
bones/23/position = Vector3(4.43416e-08, 0.16565, 1.37997e-08)
bones/23/rotation = Quaternion(-1.1677e-05, 0.920234, -0.391369, 2.80759e-06)
bones/23/scale = Vector3(1, 0.999999, 1)
bones/24/position = Vector3(0.170945, 0.325679, 0.609181)
bones/24/rotation = Quaternion(0.707107, -2.25334e-07, -5.00237e-08, 0.707107)
bones/24/scale = Vector3(1, 1, 1)
bones/25/position = Vector3(0.174084, 0.277175, 0.550873)
bones/25/rotation = Quaternion(-0.866778, -4.39406e-08, -9.40215e-08, 0.498694)
bones/25/scale = Vector3(1, 1, 1)
bones/27/rotation = Quaternion(-1.43895e-07, 0.391084, 0.920355, 1.70948e-08)
bones/28/rotation = Quaternion(-0.391084, -3.33945e-08, -4.91559e-08, 0.920355)
bones/26/position = Vector3(-1.07627e-10, 0.362833, -9.53107e-09)
bones/26/rotation = Quaternion(-8.20075e-08, 1.42778e-08, 0.999856, -0.0170039)
bones/26/scale = Vector3(1, 1, 1)
bones/27/position = Vector3(1.31869e-08, 0.213436, 7.9363e-09)
bones/27/rotation = Quaternion(-1.42936e-07, 0.391084, 0.920355, 1.6857e-08)
bones/27/scale = Vector3(1, 1, 1)
bones/28/position = Vector3(-4.18898e-10, 0.16565, 1.59057e-10)
bones/28/rotation = Quaternion(-0.391084, -3.15483e-08, -4.95245e-08, 0.920355)
bones/29/position = Vector3(1.72348e-08, 0.16565, 8.13901e-09)
bones/29/rotation = Quaternion(1, -8.82198e-10, 1.95111e-07, -1.17534e-07)
bones/29/scale = Vector3(1, 1, 1)
bones/30/position = Vector3(-1.28627e-08, -1.18505e-08, -9.28225e-09)
bones/30/rotation = Quaternion(6.01365e-08, -4.66007e-10, -1.77788e-08, 1)
bones/30/scale = Vector3(1, 1, 1)
bones/31/position = Vector3(-0.170945, 0.325679, 0.609181)
bones/31/rotation = Quaternion(0.707107, -3.427e-08, 1.4104e-07, 0.707107)
bones/31/scale = Vector3(1, 1, 1)
bones/32/position = Vector3(-0.170945, 0.113316, -0.36611)
bones/32/rotation = Quaternion(0.057842, -1.05196e-07, 7.99782e-09, 0.998326)
bones/32/scale = Vector3(1, 1, 1)
bones/34/rotation = Quaternion(-1.43895e-07, 0.391084, 0.920355, 1.70948e-08)
bones/35/rotation = Quaternion(-0.391084, -3.33945e-08, -4.91559e-08, 0.920355)
bones/33/position = Vector3(8.31366e-09, 0.362832, 7.27865e-08)
bones/33/rotation = Quaternion(-8.38206e-08, -3.79109e-10, 0.999948, 0.0102439)
bones/33/scale = Vector3(1, 1, 1)
bones/34/position = Vector3(1.87264e-08, 0.213436, 2.19942e-10)
bones/34/rotation = Quaternion(-1.43299e-07, 0.391084, 0.920355, 1.64677e-08)
bones/34/scale = Vector3(1, 1, 1)
bones/35/position = Vector3(4.33819e-09, 0.16565, 4.0278e-08)
bones/35/rotation = Quaternion(-0.391084, -3.29595e-08, -4.99165e-08, 0.920355)
bones/35/scale = Vector3(1, 1, 1)
bones/38/rotation = Quaternion(-0.707107, -7.01241e-08, -7.01241e-08, 0.707107)
bones/40/rotation = Quaternion(-0.707107, -7.01241e-08, -7.01241e-08, 0.707107)
bones/41/rotation = Quaternion(-0.5, 0.5, 0.5, 0.5)
bones/36/position = Vector3(1.60608e-08, 0.16565, 1.77417e-08)
bones/36/rotation = Quaternion(1, 3.75873e-11, 1.94655e-07, -7.60186e-08)
bones/36/scale = Vector3(1, 1, 1)
bones/37/position = Vector3(1.29572e-08, 7.95234e-10, 2.0117e-08)
bones/37/rotation = Quaternion(-8.35512e-10, 5.72004e-10, -1.74299e-08, 1)
bones/37/scale = Vector3(1, 1, 1)
bones/38/position = Vector3(0.44462, 0.926861, -0.682571)
bones/38/rotation = Quaternion(-0.707093, 0.00446999, 0.00446998, 0.707093)
bones/39/position = Vector3(0.514056, 0.811755, 0.113442)
bones/39/rotation = Quaternion(0.706594, 0.430956, 0.518739, 0.214269)
bones/39/scale = Vector3(1, 1, 1)
bones/40/position = Vector3(-0.476486, 0.919617, -0.652654)
bones/40/rotation = Quaternion(-0.707093, 0.00446999, 0.00446998, 0.707093)
bones/41/position = Vector3(-0.508355, 0.811755, 0.145544)
bones/41/rotation = Quaternion(-0.693631, 0.433948, 0.530357, -0.222006)
bones/41/scale = Vector3(1, 1, 1)
[node name="Skeleton_Warrior_Helmet" parent="Rig/Skeleton3D" index="0"]
transform = Transform3D(1, -2.64883e-15, 3.42285e-08, -2.53587e-15, 1, 1.51473e-07, -3.42285e-08, -1.51473e-07, 1, -2.06898e-15, 1.21587, -1.57713e-07)
transform = Transform3D(0.999678, 0.00296864, -0.025183, -0.00852679, 0.974646, -0.223591, 0.0238808, 0.223734, 0.974358, 0.0113544, 1.21124, 0.28735)
[node name="AnimationTree" type="AnimationTree" parent="." index="4"]
tree_root = SubResource("AnimationNodeStateMachine_7v7qh")
anim_player = NodePath("../AnimationPlayer")
parameters/current_length = 0.0
parameters/current_position = 0.0
parameters/current_delta = 0.0
parameters/current_length = 0.791667
parameters/current_position = 0.718039
parameters/current_delta = 0.1
parameters/conditions/grounded = false
parameters/conditions/jumping = false
parameters/Death_A/current_length = 0.791667
@ -189,22 +276,22 @@ parameters/Death_A/current_delta = 0.025
parameters/End/current_length = 0.0
parameters/End/current_position = 0.0
parameters/End/current_delta = 0.0
parameters/IWR/current_length = 1.04167
parameters/IWR/current_position = 1.04167
parameters/IWR/current_delta = 0.0
parameters/IWR/current_length = 0.791667
parameters/IWR/current_position = 0.718039
parameters/IWR/current_delta = 0.1
parameters/IWR/blend_position = Vector2(0.0362204, 0.863281)
parameters/IWR/0/current_length = 1.04167
parameters/IWR/0/current_position = 0.765353
parameters/IWR/0/current_delta = 0.0166667
parameters/IWR/0/current_position = 0.00970808
parameters/IWR/0/current_delta = 0.1
parameters/IWR/1/current_length = 0.791667
parameters/IWR/1/current_position = 0.791667
parameters/IWR/1/current_delta = 0.0
parameters/IWR/1/current_position = 0.718039
parameters/IWR/1/current_delta = 0.1
parameters/IWR/2/current_length = 1.04167
parameters/IWR/2/current_position = 1.04167
parameters/IWR/2/current_delta = 0.0
parameters/IWR/3/current_length = 0.791667
parameters/IWR/3/current_position = 0.791667
parameters/IWR/3/current_delta = 0.0
parameters/IWR/3/current_position = 0.718039
parameters/IWR/3/current_delta = 0.1
parameters/IWR/4/current_length = 0.791667
parameters/IWR/4/current_position = 0.390352
parameters/IWR/4/current_delta = 0.0166667

@ -0,0 +1,58 @@
[gd_scene load_steps=3 format=3 uid="uid://d1vowjv6aed2s"]
[ext_resource type="Script" path="res://scripts/ui.gd" id="1_ccvhj"]
[ext_resource type="Texture2D" uid="uid://dusuxbeon1rsm" path="res://resources/images/white1x1.png" id="1_epsdw"]
[node name="UI" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_ccvhj")
[node name="Health" type="TextureProgressBar" parent="."]
layout_mode = 1
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_left = 17.0
offset_top = -67.0
offset_right = 317.0
offset_bottom = -17.0
grow_vertical = 0
value = 67.0
nine_patch_stretch = true
texture_under = ExtResource("1_epsdw")
texture_progress = ExtResource("1_epsdw")
tint_progress = Color(1, 0, 0, 1)
[node name="Stamina" type="TextureProgressBar" parent="."]
layout_mode = 1
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_left = 17.0
offset_top = -130.0
offset_right = 317.0
offset_bottom = -80.0
grow_vertical = 0
value = 67.0
nine_patch_stretch = true
texture_under = ExtResource("1_epsdw")
texture_progress = ExtResource("1_epsdw")
tint_progress = Color(0.203922, 0, 1, 1)
[node name="Gold" type="Label" parent="."]
layout_mode = 1
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_left = 17.0
offset_top = -167.0
offset_right = 317.0
offset_bottom = -144.0
grow_vertical = 0
text = "Gold: 0"
vertical_alignment = 1

@ -1,6 +1,16 @@
extends Node3D
var timer: float
var timer_max := 1.0
@export var player: Player
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
print("Hallo Felix")
func _process(delta: float) -> void:
timer += delta
if timer > timer_max:
print("Add one gold for debugging...")
player.add_gold(1)
timer = 0

@ -1,73 +0,0 @@
extends CharacterBody3D
class_name Knight
@export var speed := 5.0
@export var acceleration := 4.0
@export var jump_speed := 8.0
@export var mouse_sensitivity := 0.0015
@export var rotation_speed := 24.0
var gravity = ProjectSettings.get_setting("physics/3d/default_gravity")
var jumping := false
var attacks := ["1h_slice_diagonal","1h_slice_horizontal","1h_attack_chop"]
var last_floor := true
var blocking := false
@onready var spring_arm := $SpringArm3D
@onready var model := $Rig
@onready var anim_tree := $AnimationTree
@onready var anim_state = $AnimationTree.get("parameters/playback")
func _physics_process(delta: float) -> void:
velocity.y += -gravity * delta
get_move_input(delta)
move_and_slide()
if velocity.length() > 1.0:
model.rotation.y = lerp_angle(model.rotation.y, spring_arm.rotation.y, rotation_speed * delta)
func _unhandled_input(event: InputEvent) -> void:
#move camera
if event is InputEventMouseMotion:
spring_arm.rotation.x -= event.relative.y * mouse_sensitivity
spring_arm.rotation_degrees.x = clamp(spring_arm.rotation_degrees.x, -90.0, 30.0)
spring_arm.rotation.y -= event.relative.x * mouse_sensitivity
#attack
if event.is_action_pressed("attack"):
if blocking:
anim_state.travel("Block_Attack")
else:
anim_state.travel(attacks.pick_random())
#block
if Input.is_action_just_pressed("block"):
blocking = true
if Input.is_action_just_released("block"):
blocking = false
anim_tree.set("parameters/conditions/blocking", blocking)
anim_tree.set("parameters/conditions/not_blocking", !blocking)
#jump
if is_on_floor() and Input.is_action_just_pressed("jump"):
velocity.y = jump_speed
jumping = true
anim_tree.set("parameters/conditions/grounded", false)
# We just hit the floor after being in the air
if is_on_floor() and not last_floor:
jumping = false
anim_tree.set("parameters/conditions/grounded", true)
# We're in the air, but we didn't jump
if not is_on_floor() and not jumping:
anim_state.travel("Jump_Idle")
anim_tree.set("parameters/conditions/grounded", false)
anim_tree.set("parameters/conditions/jumping", jumping)
last_floor = is_on_floor()
func get_move_input(delta: float) -> void:
var vy = velocity.y
velocity.y = 0
var input = Input.get_vector("left", "right", "forward", "back")
var dir = Vector3(input.x, 0, input.y).rotated(Vector3.UP, spring_arm.rotation.y)
if blocking:
dir = Vector3.ZERO
velocity = lerp(velocity, dir * speed, acceleration * delta)
var vl = velocity * model.transform.basis
anim_tree.set("parameters/IWR/blend_position", Vector2(vl.x, -vl.z) / speed)
velocity.y = vy

@ -1,31 +1,81 @@
extends CharacterBody3D
extends Unit
class_name Player
@export var speed := 4.0
@export var jump_velocity := 6.0
@export var mouse_sensitivity := 0.002
@export var speed := 5.0
@export var acceleration := 4.0
@export var jump_speed := 8.0
@export var mouse_sensitivity := 0.0015
@export var rotation_speed := 24.0
func _unhandled_input(event):
if event is InputEventMouseMotion:
rotate_y(-event.relative.x * mouse_sensitivity)
var gravity = ProjectSettings.get_setting("physics/3d/default_gravity")
var jumping := false
var attacks := ["1h_slice_diagonal","1h_slice_horizontal","1h_attack_chop"]
var last_floor := true
var blocking := false
func _physics_process(delta: float) -> void:
# Add the gravity.
if not is_on_floor():
velocity += get_gravity() * delta
# Handle jump.
if Input.is_action_just_pressed("jump") and is_on_floor():
velocity.y = jump_velocity
# Get the input direction and handle the movement/deceleration.
# As good practice, you should replace UI actions with custom gameplay actions.
var input_dir := Input.get_vector("left", "right", "up", "down")
var direction := (transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
if direction:
velocity.x = direction.x * speed
velocity.z = direction.z * speed
else:
velocity.x = move_toward(velocity.x, 0, speed)
velocity.z = move_toward(velocity.z, 0, speed)
@onready var spring_arm := $SpringArm3D
@onready var model := $Rig
@onready var anim_tree := $AnimationTree
@onready var anim_state = $AnimationTree.get("parameters/playback")
#Player class
@export var gold := 0
signal gold_changed(current_gold)
func add_gold(gold_amount: int) -> void:
gold += gold_amount
gold_changed.emit(gold)
func _physics_process(delta: float) -> void:
velocity.y += -gravity * delta
get_move_input(delta)
move_and_slide()
if velocity.length() > 1.0:
model.rotation.y = lerp_angle(model.rotation.y, spring_arm.rotation.y, rotation_speed * delta)
func _unhandled_input(event: InputEvent) -> void:
#move camera
if event is InputEventMouseMotion:
spring_arm.rotation.x -= event.relative.y * mouse_sensitivity
spring_arm.rotation_degrees.x = clamp(spring_arm.rotation_degrees.x, -90.0, 30.0)
spring_arm.rotation.y -= event.relative.x * mouse_sensitivity
#attack
if event.is_action_pressed("attack"):
if blocking:
anim_state.travel("Block_Attack")
else:
anim_state.travel(attacks.pick_random())
#block
if Input.is_action_just_pressed("block"):
blocking = true
if Input.is_action_just_released("block"):
blocking = false
anim_tree.set("parameters/conditions/blocking", blocking)
anim_tree.set("parameters/conditions/not_blocking", !blocking)
#jump
if is_on_floor() and Input.is_action_just_pressed("jump"):
velocity.y = jump_speed
jumping = true
anim_tree.set("parameters/conditions/grounded", false)
# We just hit the floor after being in the air
if is_on_floor() and not last_floor:
jumping = false
anim_tree.set("parameters/conditions/grounded", true)
# We're in the air, but we didn't jump
if not is_on_floor() and not jumping:
anim_state.travel("Jump_Idle")
anim_tree.set("parameters/conditions/grounded", false)
anim_tree.set("parameters/conditions/jumping", jumping)
last_floor = is_on_floor()
func get_move_input(delta: float) -> void:
var vy = velocity.y
velocity.y = 0
var input = Input.get_vector("left", "right", "forward", "back")
var dir = Vector3(input.x, 0, input.y).rotated(Vector3.UP, spring_arm.rotation.y)
if blocking:
dir = Vector3.ZERO
velocity = lerp(velocity, dir * speed, acceleration * delta)
var vl = velocity * model.transform.basis
anim_tree.set("parameters/IWR/blend_position", Vector2(vl.x, -vl.z) / speed)
velocity.y = vy

@ -0,0 +1,21 @@
extends Control
@onready var health_bar: TextureProgressBar = $Health
@onready var stamina_bar: TextureProgressBar = $Stamina
@onready var gold_label: Label = $Gold
@export var player: Player
func _ready() -> void:
player.health_changed.connect(update_health_bar)
player.stamina_changed.connect(update_stamina_bar)
player.gold_changed.connect(update_gold_text)
func update_health_bar (current_health: int, maximal_health: int) -> void:
health_bar.value = (100 / maximal_health) * current_health
func update_stamina_bar (current_stamina: int, maximal_stamina: int) -> void:
stamina_bar.value = (100 / maximal_stamina) * current_stamina
func update_gold_text (gold: int) -> void:
gold_label.text = "Gold: " + str(gold)

@ -0,0 +1,30 @@
extends CharacterBody3D
class_name Unit
@export var unit_name: String
@export var maximum_health := 100
@export var health := maximum_health
@export var maximum_stamina := 10
@export var stamina := maximum_stamina
signal health_changed(current_health, maximum_health)
signal stamina_changed(current_stamina, maximum_stamina)
signal died
func get_damage(damage: int) -> void:
health -= damage
health_changed.emit(health, maximum_health)
if health < 1:
die()
func enough_stamina_available(stamina_needed: int) -> bool:
return stamina_needed <= stamina
func use_stamina(stamina_needed: int) -> void:
stamina -= stamina_needed
stamina_changed.emit(stamina, maximum_stamina)
func die() -> void:
print(unit_name + " died!")
died.emit()
get_tree().queue_free()