Compare commits

...

2 commits

43 changed files with 1188 additions and 75 deletions

BIN
fonts/Handwritingg3.ttf Normal file

Binary file not shown.

View file

@ -0,0 +1,36 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://dkc6bfd6b4ibs"
path="res://.godot/imported/Handwritingg3.ttf-11dfe316705da4dc23e8d7f8914b04ba.fontdata"
[deps]
source_file="res://fonts/Handwritingg3.ttf"
dest_files=["res://.godot/imported/Handwritingg3.ttf-11dfe316705da4dc23e8d7f8914b04ba.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
modulate_color_glyphs=false
hinting=1
subpixel_positioning=4
keep_rounding_remainders=true
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

BIN
fonts/PlaypenSans.ttf Normal file

Binary file not shown.

View file

@ -0,0 +1,36 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://b3o8fv6dxeoh2"
path="res://.godot/imported/PlaypenSans.ttf-e19140ed34da710b84471ebc40667813.fontdata"
[deps]
source_file="res://fonts/PlaypenSans.ttf"
dest_files=["res://.godot/imported/PlaypenSans.ttf-e19140ed34da710b84471ebc40667813.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
modulate_color_glyphs=false
hinting=1
subpixel_positioning=4
keep_rounding_remainders=true
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

View file

@ -0,0 +1,11 @@
[gd_resource type="StandardMaterial3D" format=3 uid="uid://2s8nf0t402xt"]
[ext_resource type="Texture2D" uid="uid://ln2b0h7jurye" path="res://textures/brightshroom.png" id="1_wk7lx"]
[resource]
albedo_texture = ExtResource("1_wk7lx")
emission_enabled = true
emission_energy_multiplier = 0.66
emission_texture = ExtResource("1_wk7lx")
texture_filter = 0
disable_receive_shadows = true

View file

@ -0,0 +1,11 @@
[gd_resource type="StandardMaterial3D" format=3 uid="uid://dkx2w75felif2"]
[ext_resource type="Texture2D" uid="uid://gotb5lmbe8ve" path="res://textures/brightshroom_orange.png" id="1_k7ca7"]
[resource]
albedo_texture = ExtResource("1_k7ca7")
emission_enabled = true
emission_energy_multiplier = 0.66
emission_texture = ExtResource("1_k7ca7")
texture_filter = 0
disable_receive_shadows = true

View file

@ -0,0 +1,9 @@
[gd_resource type="StandardMaterial3D" format=3 uid="uid://bivt02tm06osv"]
[ext_resource type="Texture2D" uid="uid://dfcoremq6wxa" path="res://textures/tile/stone_floor.png" id="1_433wp"]
[resource]
albedo_texture = ExtResource("1_433wp")
uv1_scale = Vector3(0.5, 0.5, 0.5)
uv1_triplanar = true
texture_filter = 0

View file

@ -0,0 +1,9 @@
[gd_resource type="StandardMaterial3D" format=3 uid="uid://bekoyi2mq1aiw"]
[ext_resource type="Texture2D" uid="uid://cubqnw40nk224" path="res://textures/tile/stone_wall.png" id="1_r8c0v"]
[resource]
albedo_texture = ExtResource("1_r8c0v")
uv1_scale = Vector3(0.5, 0.5, 0.5)
uv1_triplanar = true
texture_filter = 0

View file

@ -0,0 +1,9 @@
[gd_resource type="StandardMaterial3D" format=3 uid="uid://covj5ljosv6pt"]
[ext_resource type="Texture2D" uid="uid://b1iebalulbl7d" path="res://textures/tile/stone_wall_small_rock.png" id="1_mv5se"]
[resource]
albedo_texture = ExtResource("1_mv5se")
uv1_scale = Vector3(0.5, 0.5, 0.5)
uv1_triplanar = true
texture_filter = 0

File diff suppressed because one or more lines are too long

1
models/brightshroom.gltf Normal file

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,64 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://cj2yeoom4w7d1"
path="res://.godot/imported/brightshroom.gltf-1328ddefd135ad00fef34fa526def2f2.scn"
[deps]
source_file="res://models/brightshroom.gltf"
dest_files=["res://.godot/imported/brightshroom.gltf-1328ddefd135ad00fef34fa526def2f2.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={
"materials": {
"material_0": {
"use_external/enabled": true,
"use_external/fallback_path": "res://materials/brightshroom.tres",
"use_external/path": "uid://2s8nf0t402xt"
}
},
"nodes": {
"PATH:mesh": {
"generate/physics": true,
"mesh_instance/cast_shadow": 0,
"physics/layer": 255,
"physics/mask": 255
},
"PATH:mesh2": {
"generate/physics": true,
"mesh_instance/cast_shadow": 0,
"physics/layer": 255,
"physics/mask": 255
}
}
}
gltf/naming_version=2
gltf/embedded_image_handling=1

View file

@ -20,10 +20,18 @@ config/icon="res://icon.svg"
Global="*uid://4hvgybxt05qj" Global="*uid://4hvgybxt05qj"
LimboConsole="*uid://dyxornv8vwibg" LimboConsole="*uid://dyxornv8vwibg"
[editor]
movie_writer/movie_file="/home/lukas/Videos/movie/movie.avi"
[editor_plugins] [editor_plugins]
enabled=PackedStringArray("res://addons/godot_super-wakatime/plugin.cfg", "res://addons/limbo_console/plugin.cfg") enabled=PackedStringArray("res://addons/godot_super-wakatime/plugin.cfg", "res://addons/limbo_console/plugin.cfg")
[global_group]
navigation_mesh_source_group=""
[input] [input]
move_left={ move_left={
@ -81,6 +89,11 @@ limbo_console_search_history={
] ]
} }
[navigation]
3d/default_cell_size=0.05
3d/default_cell_height=0.05
[physics] [physics]
3d/physics_engine="Jolt Physics" 3d/physics_engine="Jolt Physics"
@ -89,9 +102,9 @@ limbo_console_search_history={
textures/canvas_textures/default_texture_filter=0 textures/canvas_textures/default_texture_filter=0
rendering_device/driver.windows="d3d12" rendering_device/driver.windows="d3d12"
renderer/rendering_method="mobile"
lights_and_shadows/directional_shadow/size=2048 lights_and_shadows/directional_shadow/size=2048
lights_and_shadows/directional_shadow/size.mobile=1024 lights_and_shadows/directional_shadow/size.mobile=1024
lights_and_shadows/directional_shadow/soft_shadow_filter_quality=0 lights_and_shadows/directional_shadow/soft_shadow_filter_quality=0
textures/decals/filter=0 textures/decals/filter=0
textures/light_projectors/filter=0 textures/light_projectors/filter=0
environment/defaults/default_clear_color=Color(0, 0, 0, 1)

View file

@ -0,0 +1,20 @@
[gd_scene format=3 uid="uid://b2w6hcvr8mimm"]
[ext_resource type="Script" uid="uid://dwcbey8lgg1p2" path="res://scripts/effects/damage_text.gd" id="1_2aaxa"]
[ext_resource type="FontFile" uid="uid://dkc6bfd6b4ibs" path="res://fonts/Handwritingg3.ttf" id="1_24n7w"]
[node name="DamageText" type="RigidBody3D" unique_id=670799148]
mass = 0.001
script = ExtResource("1_2aaxa")
[node name="Label" type="Label3D" parent="." unique_id=1717375385]
pixel_size = 0.001
billboard = 1
no_depth_test = true
fixed_size = true
render_priority = 100
outline_render_priority = 99
modulate = Color(1, 0, 0, 1)
text = "96"
font = ExtResource("1_24n7w")
font_size = 48

View file

@ -47,11 +47,9 @@ animations = [{
}] }]
[node name="Slash" type="AnimatedSprite3D" unique_id=1787289120] [node name="Slash" type="AnimatedSprite3D" unique_id=1787289120]
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0, 0, 0) transform = Transform3D(-1, 0, -8.742278e-08, -8.742278e-08, -4.371139e-08, 1, -3.821371e-15, 1, 4.371139e-08, 0, 0, 0)
pixel_size = 0.04 pixel_size = 0.04
no_depth_test = true
texture_filter = 0 texture_filter = 0
render_priority = 99
sprite_frames = SubResource("SpriteFrames_ir15t") sprite_frames = SubResource("SpriteFrames_ir15t")
frame = 4 frame = 4
frame_progress = 1.0 frame_progress = 1.0

View file

@ -3,15 +3,24 @@
[ext_resource type="Script" uid="uid://dhfun46prq3uk" path="res://scripts/game.gd" id="1_gee14"] [ext_resource type="Script" uid="uid://dhfun46prq3uk" path="res://scripts/game.gd" id="1_gee14"]
[ext_resource type="Script" uid="uid://crf3d7dpjvlsl" path="res://scripts/player_camera.gd" id="1_lnu2h"] [ext_resource type="Script" uid="uid://crf3d7dpjvlsl" path="res://scripts/player_camera.gd" id="1_lnu2h"]
[ext_resource type="Script" uid="uid://66iq60cxqomg" path="res://scripts/player.gd" id="1_yqjtg"] [ext_resource type="Script" uid="uid://66iq60cxqomg" path="res://scripts/player.gd" id="1_yqjtg"]
[ext_resource type="Material" uid="uid://bivt02tm06osv" path="res://materials/tile/stone_floor.tres" id="2_gee14"]
[ext_resource type="Material" uid="uid://bekoyi2mq1aiw" path="res://materials/tile/stone_wall.tres" id="3_dinhu"]
[ext_resource type="Material" uid="uid://covj5ljosv6pt" path="res://materials/tile/stone_wall_small_rock.tres" id="4_kvuet"]
[ext_resource type="Texture2D" uid="uid://b6krbvbco0jt6" path="res://textures/shadow.png" id="4_lbhrr"] [ext_resource type="Texture2D" uid="uid://b6krbvbco0jt6" path="res://textures/shadow.png" id="4_lbhrr"]
[ext_resource type="PackedScene" uid="uid://cnii80nh1mxr2" path="res://scenes/assets/dreamer_body.tscn" id="4_p57ef"] [ext_resource type="PackedScene" uid="uid://cnii80nh1mxr2" path="res://scenes/living/dreamer_body.tscn" id="4_p57ef"]
[ext_resource type="PackedScene" uid="uid://b0kty7juk7rfo" path="res://models/stalagmite.gltf" id="5_iywne"] [ext_resource type="PackedScene" uid="uid://b0kty7juk7rfo" path="res://models/stalagmite.gltf" id="5_iywne"]
[ext_resource type="PackedScene" path="res://scenes/enemies/slime.tscn" id="6_u5sy4"] [ext_resource type="PackedScene" uid="uid://co5p7h3exggvh" path="res://scenes/living/slime.tscn" id="6_u5sy4"]
[ext_resource type="PackedScene" uid="uid://b6otq05jy7m6d" path="res://scenes/prefabs/brightshroom.tscn" id="9_vtaks"]
[ext_resource type="PackedScene" uid="uid://boelsm35tk0k6" path="res://scenes/prefabs/brightshroom_orange.tscn" id="10_kvpfn"]
[ext_resource type="PackedScene" uid="uid://b2w6hcvr8mimm" path="res://scenes/effects/damage_text.tscn" id="11_kvpfn"]
[ext_resource type="Script" uid="uid://vi18m3j6f6fa" path="res://scripts/enemies/dreamer.gd" id="12_trtic"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_lbhrr"] [sub_resource type="NavigationMesh" id="NavigationMesh_kvuet"]
albedo_color = Color(0.61, 0.28791997, 0.17079999, 1) vertices = PackedVector3Array(-7.5, 0.55766946, -7.5, -7.5, 0.55766946, 7.5, -6.5, 0.55766946, 7.5, -6.5, 0.55766946, -7.5, -5.5, 6.5576696, -7.5, -5.5, 6.5576696, 7.5, -4.45, 6.5576696, 7.5, -4.45, 6.5576696, -7.5, -2.1, 0.55766946, -1.75, -1.6999998, 0.55766946, -0.6999998, -1.4499998, 0.55766946, -0.5499997, 0.8000002, 0.55766946, -1.5499997, 1.1500006, 0.55766946, -1.7999997, 0.75, 0.55766946, -0.6999998, 0.6999998, 0.55766946, -1.3499999, -2.5499997, 0.6576695, -2.1, -2.35, 0.55766946, -2, 1.5, 0.55766946, -1.7999997, 1.5, 0.55766946, -7.5, -3.0499997, 0.9076695, -7.5, -2.4812498, 0.55766946, -7.5, -1.9985709, 0.55766946, -2.6038594, -2.303679, 0.55766946, -3.802743, -3.0499997, 0.9076695, -2.1, 2.1500006, 0.55766946, -0.5999999, 2.9499998, 0.55766946, 1.25, 3.1000004, 0.55766946, 1.1500006, 2.25, 0.55766946, -0.75, 1.8000002, 0.55766946, -1.7999997, 5.25, 0.55766946, 1.4000006, 5.3500004, 0.55766946, 1.9000006, 7.5, 0.55766946, 1.8500004, 2.25, 0.55766946, -1.3499999, 4.9000006, 0.55766946, 1.1500006, 2.1500006, 0.55766946, -1.5499997, 7.5, 0.55766946, -7.5, 1.3000002, 2.5576694, -1.1999998, 1.3000002, 2.5576694, -0.8499999, 1.6000004, 2.5576694, -0.8499999, 1.6000004, 2.6076694, -1.1999998, -1.25, 0.55766946, -0.4000001, -0.5499997, 0.55766946, 0.8500004, 1, 0.55766946, -0.4000001, -0.3499999, 0.55766946, 1.4000006, -0.7999997, 0.55766946, 1.9000006, -0.19999981, 0.55766946, 2.25, -0.3499999, 0.55766946, 1.1999998, 0.15000057, 0.55766946, 2.75, 2.6500006, 0.55766946, 1.6000004, 1.8000002, 0.55766946, -0.2999997, 1.1500006, 0.55766946, -0.2999997, 2.6500006, 0.55766946, 2.75, -3.25, 1.9576695, -0.4000001, -3.25, 1.9576695, 0.10000038, -3.1, 2.0576694, 0.05000019, -3.35, 1.8076694, 1.6000004, -3.35, 1.8076694, 2.75, -2.65, 1.6076694, 2.5, -3, 1.7076695, 1.5, 5.3500004, 0.55766946, 3.1000004, 7.5, 0.55766946, 3.1500006, -0.6500001, 0.55766946, 4.1500006, -0.5499997, 0.55766946, 4.25, -0.099999905, 0.55766946, 3.8500004, 0.05000019, 0.55766946, 3.1500006, 0.6000004, 0.55766946, 3.8500004, 2.75, 0.55766946, 3.5500002, 2.6500006, 0.55766946, 3.4000006, 0.19999981, 0.55766946, 3.75, -0.4499998, 7.0576696, 3.0500002, -0.4499998, 7.0576696, 3.9499998, 0.4499998, 7.0576696, 3.9499998, 0.4499998, 7.0576696, 3.0500002, 5.3500004, 0.55766946, 3.4000006, 5.1000004, 0.55766946, 3.75, 4.6500006, 0.55766946, 7.5, 7.5, 0.55766946, 7.5, 4.6000004, 0.55766946, 3.8500004, 0.9000006, 0.55766946, 4.2, 2.9499998, 0.55766946, 3.75, 1.0500002, 0.55766946, 4.5, 3.1000004, 0.55766946, 3.8500004, 0.9499998, 0.55766946, 5, 0.40000057, 0.55766946, 5.3500004, 0.15000057, 0.55766946, 7.5, 3.3500004, 0.55766946, 7.5, 3.4000006, 0.55766946, 3.8500004, 0.15000057, 0.55766946, 5.4000006, -0.5999999, 0.55766946, 4.6000004, -1, 0.55766946, 4.6000004, -1.9000001, 0.55766946, 7.25, -2.5, 0.6076694, 7.5, -1.1999998, 0.55766946, 4.7, -0.3499999, 0.55766946, 5.1500006, -1.5, 0.55766946, 4.6500006, -1.2999997, 0.55766946, 5.3500004, -0.19999981, 0.55766946, 5.3, -1.5999999, 0.55766946, 5.75, -1.5999999, 0.55766946, 6.8500004, -1.9000001, 0.55766946, 5.8500004, -0.049999714, 2.5576694, 4.45, 0.05000019, 2.5576694, 4.75, 0.4499998, 2.6076694, 4.6500006, 0.35000038, 2.6076694, 4.3, -3.25, 1.9576695, 4.6000004, -3.25, 1.9576695, 5.1500006, -3.1, 2.0576694, 5.1000004, -3.2999997, 1.8076694, 6.7, -2.75, 1.7076695, 6.55, -2.9, 1.7576694, 6, -3.2999997, 1.8076694, 5.8)
polygons = [PackedInt32Array(3, 2, 0), PackedInt32Array(0, 2, 1), PackedInt32Array(7, 6, 4), PackedInt32Array(4, 6, 5), PackedInt32Array(9, 8, 10), PackedInt32Array(10, 8, 11), PackedInt32Array(11, 8, 12), PackedInt32Array(14, 13, 10), PackedInt32Array(11, 14, 10), PackedInt32Array(20, 22, 19), PackedInt32Array(19, 22, 15), PackedInt32Array(15, 21, 16), PackedInt32Array(16, 21, 12), PackedInt32Array(12, 18, 17), PackedInt32Array(18, 22, 20), PackedInt32Array(22, 21, 15), PackedInt32Array(21, 22, 12), PackedInt32Array(12, 22, 18), PackedInt32Array(15, 23, 19), PackedInt32Array(12, 8, 16), PackedInt32Array(25, 24, 26), PackedInt32Array(26, 24, 27), PackedInt32Array(28, 17, 18), PackedInt32Array(31, 30, 29), PackedInt32Array(27, 32, 26), PackedInt32Array(26, 32, 33), PackedInt32Array(31, 29, 33), PackedInt32Array(34, 28, 18), PackedInt32Array(32, 34, 33), PackedInt32Array(33, 34, 31), PackedInt32Array(31, 34, 18), PackedInt32Array(31, 18, 35), PackedInt32Array(39, 38, 36), PackedInt32Array(36, 38, 37), PackedInt32Array(40, 10, 13), PackedInt32Array(42, 41, 13), PackedInt32Array(13, 41, 40), PackedInt32Array(45, 44, 43), PackedInt32Array(43, 46, 45), PackedInt32Array(45, 46, 47), PackedInt32Array(49, 48, 50), PackedInt32Array(50, 48, 51), PackedInt32Array(50, 51, 46), PackedInt32Array(46, 51, 47), PackedInt32Array(24, 25, 49), PackedInt32Array(49, 25, 48), PackedInt32Array(42, 50, 41), PackedInt32Array(41, 50, 46), PackedInt32Array(54, 53, 52), PackedInt32Array(58, 57, 55), PackedInt32Array(55, 57, 56), PackedInt32Array(30, 31, 59), PackedInt32Array(59, 31, 60), PackedInt32Array(62, 61, 63), PackedInt32Array(63, 61, 64), PackedInt32Array(67, 66, 65), PackedInt32Array(68, 63, 64), PackedInt32Array(68, 64, 65), PackedInt32Array(65, 64, 47), PackedInt32Array(65, 47, 67), PackedInt32Array(67, 47, 51), PackedInt32Array(72, 71, 69), PackedInt32Array(69, 71, 70), PackedInt32Array(73, 59, 60), PackedInt32Array(73, 60, 74), PackedInt32Array(74, 60, 76), PackedInt32Array(74, 76, 75), PackedInt32Array(75, 77, 74), PackedInt32Array(79, 78, 66), PackedInt32Array(66, 78, 65), PackedInt32Array(81, 80, 79), PackedInt32Array(79, 80, 78), PackedInt32Array(83, 82, 84), PackedInt32Array(84, 82, 85), PackedInt32Array(85, 82, 86), PackedInt32Array(83, 84, 87), PackedInt32Array(81, 86, 80), PackedInt32Array(80, 86, 82), PackedInt32Array(86, 77, 85), PackedInt32Array(85, 77, 75), PackedInt32Array(62, 88, 61), PackedInt32Array(61, 88, 89), PackedInt32Array(90, 84, 91), PackedInt32Array(89, 88, 92), PackedInt32Array(92, 88, 93), PackedInt32Array(94, 92, 95), PackedInt32Array(95, 92, 93), PackedInt32Array(95, 93, 96), PackedInt32Array(96, 87, 95), PackedInt32Array(95, 87, 97), PackedInt32Array(97, 87, 98), PackedInt32Array(98, 87, 84), PackedInt32Array(84, 90, 98), PackedInt32Array(97, 98, 99), PackedInt32Array(101, 100, 102), PackedInt32Array(102, 100, 103), PackedInt32Array(106, 105, 104), PackedInt32Array(108, 107, 109), PackedInt32Array(109, 107, 110)]
[sub_resource type="Environment" id="Environment_uwrxv"] geometry_source_geometry_mode = 1
cell_size = 0.05
cell_height = 0.05
[sub_resource type="CameraAttributesPractical" id="CameraAttributesPractical_yqjtg"] [sub_resource type="CameraAttributesPractical" id="CameraAttributesPractical_yqjtg"]
@ -22,20 +31,127 @@ size = Vector3(1.2, 1, 1.3)
radius = 0.15 radius = 0.15
height = 1.0 height = 1.0
[sub_resource type="BoxShape3D" id="BoxShape3D_trtic"]
size = Vector3(0.65, 1, 0.65)
[sub_resource type="Environment" id="Environment_uwrxv"]
background_mode = 1
background_color = Color(0.21272367, 0.00026760699, 0.30778188, 1)
tonemap_mode = 2
volumetric_fog_enabled = true
[node name="Game" type="Node3D" unique_id=1358608749] [node name="Game" type="Node3D" unique_id=1358608749]
script = ExtResource("1_gee14") script = ExtResource("1_gee14")
[node name="CSGBox3D" type="CSGBox3D" parent="." unique_id=1781956012] [node name="Navmesh" type="NavigationRegion3D" parent="." unique_id=1857418222]
visible = false
navigation_mesh = SubResource("NavigationMesh_kvuet")
[node name="Map" type="Node3D" parent="." unique_id=19914124 groups=["navigation_mesh_source_group"]]
[node name="CSG" type="Node3D" parent="Map" unique_id=1150408155]
[node name="CSGBox3D" type="CSGBox3D" parent="Map/CSG" unique_id=1781956012]
layers = 1023 layers = 1023
use_collision = true use_collision = true
collision_layer = 255 collision_layer = 255
collision_mask = 255 collision_mask = 255
size = Vector3(16, 1, 16) size = Vector3(16, 1, 16)
material = SubResource("StandardMaterial3D_lbhrr") material = ExtResource("2_gee14")
[node name="CSGBox3D2" type="CSGBox3D" parent="Map/CSG" unique_id=1285894233]
layers = 1023
use_collision = true
collision_layer = 255
collision_mask = 255
size = Vector3(16, 1, 16)
material = ExtResource("2_gee14")
[node name="CSGBox3D3" type="CSGBox3D" parent="Map/CSG" unique_id=646817034]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 3, 0)
layers = 1023
use_collision = true
collision_layer = 255
collision_mask = 255
size = Vector3(2, 7, 16)
material = ExtResource("3_dinhu")
[node name="CSGBox3D6" type="CSGBox3D" parent="Map/CSG" unique_id=647905404]
transform = Transform3D(0.85165083, -0.42261833, 0.30997553, 0.39713126, 0.90630776, 0.14454395, -0.34202015, 0, 0.93969274, -3.2622721, 0.7556524, 4.6872506)
layers = 1023
use_collision = true
collision_layer = 255
collision_mask = 255
size = Vector3(2, 2, 2)
material = ExtResource("4_kvuet")
[node name="CSGBox3D9" type="CSGBox3D" parent="Map/CSG" unique_id=805609263]
transform = Transform3D(0.85165083, -0.42261833, 0.30997553, 0.39713126, 0.90630776, 0.14454395, -0.34202015, 0, 0.93969274, -3.2622721, 0.7556524, -0.3127494)
layers = 1023
use_collision = true
collision_layer = 255
collision_mask = 255
size = Vector3(2, 2, 2)
material = ExtResource("4_kvuet")
[node name="CSGBox3D7" type="CSGBox3D" parent="Map/CSG" unique_id=2127978297]
transform = Transform3D(-0.90767354, 0.2588191, -0.330366, 0.24321029, 0.96592575, 0.088521294, 0.3420201, 3.7856495e-08, -0.9396926, -3.5780458, 0.7556524, 2.1872506)
layers = 1023
use_collision = true
collision_layer = 255
collision_mask = 255
size = Vector3(2, 2, 2)
material = ExtResource("4_kvuet")
[node name="CSGBox3D8" type="CSGBox3D" parent="Map/CSG" unique_id=1149175002]
transform = Transform3D(-0.9254167, 0.17364825, -0.33682403, 0.16317584, 0.98480767, 0.05939115, 0.3420201, 3.7856495e-08, -0.9396926, -3.5780458, 0.7556524, 6.1872506)
layers = 1023
use_collision = true
collision_layer = 255
collision_mask = 255
size = Vector3(2, 2, 2)
material = ExtResource("4_kvuet")
[node name="CSGBox3D4" type="CSGBox3D" parent="Map/CSG" unique_id=1670932518]
transform = Transform3D(0.9396926, -0.34202012, 0, 0.34202012, 0.9396926, 0, 0, 0, 1, -4, 1, 0)
layers = 1023
use_collision = true
collision_layer = 255
collision_mask = 255
size = Vector3(1, 3, 16)
material = ExtResource("3_dinhu")
[node name="CSGBox3D5" type="CSGBox3D" parent="Map/CSG" unique_id=1498895198]
transform = Transform3D(0.5000001, -0.86602545, 0, 0.86602545, 0.5000001, 0, 0, 0, 1, -3.5, 0.5, 0)
layers = 1023
use_collision = true
collision_layer = 255
collision_mask = 255
size = Vector3(1, 3, 16)
material = ExtResource("4_kvuet")
[node name="Props" type="Node3D" parent="Map" unique_id=2137952764]
[node name="Stalagmite" parent="Map/Props" unique_id=39322424 instance=ExtResource("5_iywne")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0.48141205, 2.5)
[node name="Stalagmite4" parent="Map/Props" unique_id=1700522460 instance=ExtResource("5_iywne")]
transform = Transform3D(-1, -8.742278e-08, 0, 8.742278e-08, -1, 0, 0, 0, 1, 0, 6.981412, 3.5)
[node name="Stalagmite2" parent="Map/Props" unique_id=703385516 instance=ExtResource("5_iywne")]
transform = Transform3D(0.81915206, 0, -0.57357645, 0, 1, 0, 0.57357645, 0, 0.81915206, -1.5, 0.48141205, 3)
[node name="Stalagmite3" parent="Map/Props" unique_id=370634587 instance=ExtResource("5_iywne")]
transform = Transform3D(0.50000006, 0, -0.86602557, 0, 0.9, 0, 0.86602557, 0, 0.50000006, -2, 0.48141205, 1)
[node name="blockbench_export" parent="Map/Props" unique_id=1509742770 instance=ExtResource("9_vtaks")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.4827318, 0.4921612, -1.048477)
[node name="blockbench_export2" parent="Map/Props" unique_id=992880863 instance=ExtResource("10_kvpfn")]
transform = Transform3D(0.34202015, 0, -0.9396926, 0, 1, 0, 0.9396926, 0, 0.34202015, 0.2356708, 0.49367946, 4.5695834)
[node name="PlayerCamera" type="Camera3D" parent="." unique_id=1101523944] [node name="PlayerCamera" type="Camera3D" parent="." unique_id=1101523944]
transform = Transform3D(0.7071067, -0.40557978, 0.5792279, 0, 0.819152, 0.5735764, -0.7071067, -0.40557978, 0.5792279, 4, 6.5, 4) transform = Transform3D(0.7071067, -0.40557978, 0.5792279, 0, 0.819152, 0.5735764, -0.7071067, -0.40557978, 0.5792279, 4, 6.5, 4)
environment = SubResource("Environment_uwrxv")
attributes = SubResource("CameraAttributesPractical_yqjtg") attributes = SubResource("CameraAttributesPractical_yqjtg")
fov = 65.0 fov = 65.0
script = ExtResource("1_lnu2h") script = ExtResource("1_lnu2h")
@ -69,12 +185,47 @@ shape = SubResource("CapsuleShape3D_yqjtg")
[node name="Floorcast" type="RayCast3D" parent="Player" unique_id=991770843] [node name="Floorcast" type="RayCast3D" parent="Player" unique_id=991770843]
target_position = Vector3(0, -16, 0) target_position = Vector3(0, -16, 0)
[node name="Dreamer" type="CharacterBody3D" parent="." unique_id=1925258977]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, -4.5)
collision_layer = 2
collision_mask = 2
script = ExtResource("12_trtic")
[node name="HitCollision" type="Area3D" parent="Dreamer" unique_id=1754593615]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.1500001, 0)
collision_layer = 0
collision_mask = 2
[node name="Shape" type="CollisionShape3D" parent="Dreamer/HitCollision" unique_id=1642136717]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, 0, 0)
shape = SubResource("BoxShape3D_trtic")
[node name="DreamerBody" parent="Dreamer" unique_id=595793987 instance=ExtResource("4_p57ef")]
[node name="Shadow" type="Sprite3D" parent="Dreamer" unique_id=701404522]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -2, 0)
modulate = Color(1, 1, 1, 0.5764706)
pixel_size = 0.03
axis = 1
texture_filter = 0
texture = ExtResource("4_lbhrr")
[node name="Collision" type="CollisionShape3D" parent="Dreamer" unique_id=555914177]
shape = SubResource("CapsuleShape3D_yqjtg")
[node name="Floorcast" type="RayCast3D" parent="Dreamer" unique_id=844808342]
target_position = Vector3(0, -16, 0)
[node name="Navigator" type="NavigationAgent3D" parent="Dreamer" unique_id=1232298712]
path_postprocessing = 2
debug_enabled = true
[node name="Slime" parent="." unique_id=393738189 instance=ExtResource("6_u5sy4")] [node name="Slime" parent="." unique_id=393738189 instance=ExtResource("6_u5sy4")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 3, -3.81) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 3, -3.81)
[node name="Sun" type="DirectionalLight3D" parent="." unique_id=1000747668] [node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1956400862]
transform = Transform3D(5.337265e-08, 0.90171933, -0.4323222, -0.3453802, 0.40571806, 0.8462301, 0.93846303, 0.14931537, 0.31143594, 0, 0, 0) environment = SubResource("Environment_uwrxv")
shadow_enabled = true
[node name="Stalagmite" parent="." unique_id=39322424 instance=ExtResource("5_iywne")] [node name="DamageText" parent="." unique_id=670799148 instance=ExtResource("11_kvpfn")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.48141205, 3) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.23, 0)
gravity_scale = 2.5

View file

@ -1,8 +1,10 @@
[gd_scene format=3 uid="uid://cnii80nh1mxr2"] [gd_scene format=3 uid="uid://cnii80nh1mxr2"]
[ext_resource type="Texture2D" uid="uid://dp3jbqmr5toth" path="res://textures/character-body.png" id="1_06ej8"] [ext_resource type="Texture2D" uid="uid://dp3jbqmr5toth" path="res://textures/character-body.png" id="1_06ej8"]
[ext_resource type="Script" uid="uid://c8sptss1aulmi" path="res://scripts/dreamer_body.gd" id="1_54k0m"]
[ext_resource type="Texture2D" uid="uid://3ptkafoafq14" path="res://textures/character-leg.png" id="2_54k0m"] [ext_resource type="Texture2D" uid="uid://3ptkafoafq14" path="res://textures/character-leg.png" id="2_54k0m"]
[ext_resource type="Texture2D" uid="uid://rgxhw23471ut" path="res://textures/character-arm.png" id="3_yptk5"] [ext_resource type="Texture2D" uid="uid://rgxhw23471ut" path="res://textures/character-arm.png" id="3_yptk5"]
[ext_resource type="Texture2D" uid="uid://cvtipichutylm" path="res://textures/test-sword.png" id="5_54k0m"]
[sub_resource type="Animation" id="Animation_gee14"] [sub_resource type="Animation" id="Animation_gee14"]
length = 0.001 length = 0.001
@ -97,10 +99,10 @@ tracks/7/path = NodePath("Body/ArmPivot/FrontArm:position")
tracks/7/interp = 1 tracks/7/interp = 1
tracks/7/loop_wrap = true tracks/7/loop_wrap = true
tracks/7/keys = { tracks/7/keys = {
"times": PackedFloat32Array(), "times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(), "transitions": PackedFloat32Array(1),
"update": 0, "update": 0,
"values": [] "values": [Vector3(0.089999996, 0, 0)]
} }
tracks/8/type = "value" tracks/8/type = "value"
tracks/8/imported = false tracks/8/imported = false
@ -121,10 +123,70 @@ tracks/9/path = NodePath("Body/ArmPivot/BackArm:position")
tracks/9/interp = 1 tracks/9/interp = 1
tracks/9/loop_wrap = true tracks/9/loop_wrap = true
tracks/9/keys = { tracks/9/keys = {
"times": PackedFloat32Array(), "times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(), "transitions": PackedFloat32Array(1),
"update": 0, "update": 0,
"values": [] "values": [Vector3(-0.089999996, 0, 0)]
}
tracks/10/type = "value"
tracks/10/imported = false
tracks/10/enabled = true
tracks/10/path = NodePath("Body/ArmPivot/FrontArm:position:z")
tracks/10/interp = 1
tracks/10/loop_wrap = true
tracks/10/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0.0]
}
tracks/11/type = "value"
tracks/11/imported = false
tracks/11/enabled = true
tracks/11/path = NodePath("Body/ArmPivot/BackArm:position:z")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0.0]
}
tracks/12/type = "value"
tracks/12/imported = false
tracks/12/enabled = true
tracks/12/path = NodePath("Body/BackLeg:position:z")
tracks/12/interp = 1
tracks/12/loop_wrap = true
tracks/12/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0.0]
}
tracks/13/type = "value"
tracks/13/imported = false
tracks/13/enabled = true
tracks/13/path = NodePath("Body/FrontLeg:position:z")
tracks/13/interp = 1
tracks/13/loop_wrap = true
tracks/13/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0.0]
}
tracks/14/type = "value"
tracks/14/imported = false
tracks/14/enabled = true
tracks/14/path = NodePath("Body/ArmPivot:rotation")
tracks/14/interp = 1
tracks/14/loop_wrap = true
tracks/14/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
} }
[sub_resource type="Animation" id="Animation_u5sy4"] [sub_resource type="Animation" id="Animation_u5sy4"]
@ -228,6 +290,59 @@ tracks/7/keys = {
"values": [Vector3(0, 0, -1.134464)] "values": [Vector3(0, 0, -1.134464)]
} }
[sub_resource type="Animation" id="Animation_yptk5"]
resource_name = "hold_weapon"
length = 0.2
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Body/ArmPivot/FrontArm:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 4.7996554)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Body/ArmPivot/BackArm:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, -1.1606439)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Body/ArmPivot/FrontArm:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0.045, -0.1, 0)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Body/ArmPivot/BackArm:position")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
[sub_resource type="Animation" id="Animation_p57ef"] [sub_resource type="Animation" id="Animation_p57ef"]
resource_name = "jump" resource_name = "jump"
length = 0.2 length = 0.2
@ -429,6 +544,110 @@ tracks/7/keys = {
"values": [Vector3(0, 0, -0.5235988)] "values": [Vector3(0, 0, -0.5235988)]
} }
[sub_resource type="Animation" id="Animation_54k0m"]
resource_name = "limbs_back"
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Body/ArmPivot/FrontArm:position:z")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0.01]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Body/ArmPivot/BackArm:position:z")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [-0.01]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Body/BackLeg:position:z")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [-0.012]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Body/FrontLeg:position:z")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [-0.011]
}
[sub_resource type="Animation" id="Animation_06ej8"]
resource_name = "limbs_front"
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Body/ArmPivot/FrontArm:position:z")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [-0.01]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Body/ArmPivot/BackArm:position:z")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0.01]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Body/BackLeg:position:z")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0.012]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Body/FrontLeg:position:z")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0.011]
}
[sub_resource type="Animation" id="Animation_0tnpc"] [sub_resource type="Animation" id="Animation_0tnpc"]
resource_name = "move" resource_name = "move"
loop_mode = 1 loop_mode = 1
@ -493,18 +712,51 @@ tracks/4/keys = {
"values": [] "values": []
} }
[sub_resource type="Animation" id="Animation_ny5xw"]
resource_name = "swing_weapon"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Body/ArmPivot:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.01, 0.04, 0.1),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0,
"values": [Vector3(0, 0, -0.9599311), Vector3(0, 0, -0.9599311), Vector3(0, 0, 1.0471976), Vector3(0, 0, 1.012291)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_vtaks"] [sub_resource type="AnimationLibrary" id="AnimationLibrary_vtaks"]
_data = { _data = {
&"RESET": SubResource("Animation_gee14"), &"RESET": SubResource("Animation_gee14"),
&"fall": SubResource("Animation_u5sy4"), &"fall": SubResource("Animation_u5sy4"),
&"hold_weapon": SubResource("Animation_yptk5"),
&"jump": SubResource("Animation_p57ef"), &"jump": SubResource("Animation_p57ef"),
&"leap": SubResource("Animation_vtaks"), &"leap": SubResource("Animation_vtaks"),
&"move": SubResource("Animation_0tnpc") &"limbs_back": SubResource("Animation_54k0m"),
&"limbs_front": SubResource("Animation_06ej8"),
&"move": SubResource("Animation_0tnpc"),
&"swing_weapon": SubResource("Animation_ny5xw")
} }
[sub_resource type="AnimationNodeAdd2" id="AnimationNodeAdd2_06ej8"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_vtaks"] [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_vtaks"]
animation = &"leap" animation = &"leap"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_54k0m"]
animation = &"limbs_front"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_yptk5"]
animation = &"limbs_back"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_06ej8"]
animation = &"hold_weapon"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ny5xw"]
animation = &"swing_weapon"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_p57ef"] [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_p57ef"]
animation = &"jump" animation = &"jump"
@ -513,8 +765,15 @@ animation = &"jump"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_u5sy4"] [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_u5sy4"]
animation = &"fall" animation = &"fall"
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_54k0m"]
filter_enabled = true
filters = ["Body/ArmPivot/BackArm:position", "Body/ArmPivot/BackArm:rotation", "Body/ArmPivot/FrontArm:position", "Body/ArmPivot/FrontArm:rotation"]
sync = true
[sub_resource type="AnimationNodeOneShot" id="AnimationNodeOneShot_u5sy4"] [sub_resource type="AnimationNodeOneShot" id="AnimationNodeOneShot_u5sy4"]
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_ny5xw"]
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_kvpfn"] [sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_kvpfn"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_gee14"] [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_gee14"]
@ -523,14 +782,19 @@ animation = &"move"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_0tnpc"] [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_0tnpc"]
animation = &"RESET" animation = &"RESET"
[sub_resource type="AnimationNodeOneShot" id="AnimationNodeOneShot_06ej8"]
filter_enabled = true
filters = ["Body/ArmPivot:rotation"]
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_vtaks"] [sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_vtaks"]
[sub_resource type="AnimationNodeTimeScale" id="AnimationNodeTimeScale_p57ef"] [sub_resource type="AnimationNodeTimeScale" id="AnimationNodeTimeScale_p57ef"]
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_kvpfn"] [sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_kvpfn"]
nodes/output/position = Vector2(1140, 140) graph_offset = Vector2(242.94073, -68.15653)
nodes/output/position = Vector2(2140, 100)
nodes/jump/node = SubResource("AnimationNodeOneShot_u5sy4") nodes/jump/node = SubResource("AnimationNodeOneShot_u5sy4")
nodes/jump/position = Vector2(860, 140) nodes/jump/position = Vector2(860, 100)
nodes/reset/node = SubResource("AnimationNodeAnimation_0tnpc") nodes/reset/node = SubResource("AnimationNodeAnimation_0tnpc")
nodes/reset/position = Vector2(60, 20) nodes/reset/position = Vector2(60, 20)
nodes/move/node = SubResource("AnimationNodeAnimation_gee14") nodes/move/node = SubResource("AnimationNodeAnimation_gee14")
@ -549,48 +813,85 @@ nodes/fall_anim/position = Vector2(260, 400)
"nodes/Animation 2/position" = Vector2(480, 420) "nodes/Animation 2/position" = Vector2(480, 420)
nodes/leap/node = SubResource("AnimationNodeBlend2_kvpfn") nodes/leap/node = SubResource("AnimationNodeBlend2_kvpfn")
nodes/leap/position = Vector2(670.4032, 137.15503) nodes/leap/position = Vector2(670.4032, 137.15503)
node_connections = [&"output", 0, &"jump", &"jump", 0, &"leap", &"jump", 1, &"Animation", &"walk", 0, &"reset", &"walk", 1, &"walk_speed", &"walk_speed", 0, &"move", &"fall", 0, &"walk", &"fall", 1, &"fall_anim", &"leap", 0, &"fall", &"leap", 1, &"Animation 2"] nodes/Add2/node = SubResource("AnimationNodeAdd2_06ej8")
nodes/Add2/position = Vector2(1220, 100)
nodes/layering/node = SubResource("AnimationNodeBlend2_ny5xw")
nodes/layering/position = Vector2(1060, 280)
"nodes/Animation 3/node" = SubResource("AnimationNodeAnimation_54k0m")
"nodes/Animation 3/position" = Vector2(860, 400)
"nodes/Animation 4/node" = SubResource("AnimationNodeAnimation_yptk5")
"nodes/Animation 4/position" = Vector2(860, 580)
nodes/hold_weapon/node = SubResource("AnimationNodeBlend2_54k0m")
nodes/hold_weapon/position = Vector2(1560, 80)
"nodes/Animation 5/node" = SubResource("AnimationNodeAnimation_06ej8")
"nodes/Animation 5/position" = Vector2(1380, 360)
nodes/swing_weapon/node = SubResource("AnimationNodeOneShot_06ej8")
nodes/swing_weapon/position = Vector2(1900, 60)
"nodes/Animation 6/node" = SubResource("AnimationNodeAnimation_ny5xw")
"nodes/Animation 6/position" = Vector2(1700, 340)
node_connections = [&"output", 0, &"swing_weapon", &"jump", 0, &"leap", &"jump", 1, &"Animation", &"walk", 0, &"reset", &"walk", 1, &"walk_speed", &"walk_speed", 0, &"move", &"fall", 0, &"walk", &"fall", 1, &"fall_anim", &"leap", 0, &"fall", &"leap", 1, &"Animation 2", &"Add2", 0, &"jump", &"Add2", 1, &"layering", &"layering", 0, &"Animation 3", &"layering", 1, &"Animation 4", &"hold_weapon", 0, &"Add2", &"hold_weapon", 1, &"Animation 5", &"swing_weapon", 0, &"hold_weapon", &"swing_weapon", 1, &"Animation 6"]
[node name="DreamerBody" type="Node3D" unique_id=723408850] [node name="DreamerBody" type="Node3D" unique_id=723408850]
script = ExtResource("1_54k0m")
[node name="Body" type="Sprite3D" parent="." unique_id=318419732] [node name="Body" type="Sprite3D" parent="." unique_id=318419732]
pixel_size = 0.03 pixel_size = 0.03
shaded = true
alpha_cut = 2
texture_filter = 0 texture_filter = 0
render_priority = 2
texture = ExtResource("1_06ej8") texture = ExtResource("1_06ej8")
[node name="FrontLeg" type="Sprite3D" parent="Body" unique_id=289058799] [node name="FrontLeg" type="Sprite3D" parent="Body" unique_id=289058799]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.045, -0.09000015, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.045, -0.09000015, 0)
offset = Vector2(-0.5, -10) offset = Vector2(-0.5, -10)
pixel_size = 0.03 pixel_size = 0.03
shaded = true
alpha_cut = 2
texture_filter = 0 texture_filter = 0
render_priority = 1
texture = ExtResource("2_54k0m") texture = ExtResource("2_54k0m")
[node name="BackLeg" type="Sprite3D" parent="Body" unique_id=1402882774] [node name="BackLeg" type="Sprite3D" parent="Body" unique_id=1402882774]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.044999994, -0.09000015, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.044999994, -0.09000015, 0)
offset = Vector2(-0.5, -10) offset = Vector2(-0.5, -10)
pixel_size = 0.03 pixel_size = 0.03
shaded = true
alpha_cut = 2
texture_filter = 0 texture_filter = 0
texture = ExtResource("2_54k0m") texture = ExtResource("2_54k0m")
[node name="ArmPivot" type="Sprite3D" parent="Body" unique_id=1160612764] [node name="ArmPivot" type="Sprite3D" parent="Body" unique_id=1160612764]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.1500001, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.1500001, 0)
shaded = true
alpha_cut = 2
[node name="FrontArm" type="Sprite3D" parent="Body/ArmPivot" unique_id=1602877548] [node name="FrontArm" type="Sprite3D" parent="Body/ArmPivot" unique_id=1602877548]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.089999996, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.089999996, 0, 0)
offset = Vector2(0, -6) offset = Vector2(0, -6)
pixel_size = 0.03 pixel_size = 0.03
shaded = true
alpha_cut = 2
texture_filter = 0 texture_filter = 0
render_priority = 6
texture = ExtResource("3_yptk5") texture = ExtResource("3_yptk5")
[node name="HandPoint" type="Node3D" parent="Body/ArmPivot/FrontArm" unique_id=709125335]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.24, 0.001)
[node name="Sword" type="Sprite3D" parent="Body/ArmPivot/FrontArm/HandPoint" unique_id=1523806768]
transform = Transform3D(-4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, 0, 1, 0, 0, 0)
offset = Vector2(0, 5.5)
pixel_size = 0.03
shaded = true
alpha_cut = 2
texture_filter = 0
texture = ExtResource("5_54k0m")
[node name="BackArm" type="Sprite3D" parent="Body/ArmPivot" unique_id=111008142] [node name="BackArm" type="Sprite3D" parent="Body/ArmPivot" unique_id=111008142]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.089999996, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.089999996, 0, 0)
offset = Vector2(0, -6) offset = Vector2(0, -6)
pixel_size = 0.03 pixel_size = 0.03
shaded = true
alpha_cut = 2
texture_filter = 0 texture_filter = 0
render_priority = -1
texture = ExtResource("3_yptk5") texture = ExtResource("3_yptk5")
[node name="Animations" type="AnimationPlayer" parent="." unique_id=705651586] [node name="Animations" type="AnimationPlayer" parent="." unique_id=705651586]
@ -606,3 +907,9 @@ parameters/walk/blend_amount = 0.0
parameters/walk_speed/scale = 3.140000000000001 parameters/walk_speed/scale = 3.140000000000001
parameters/fall/blend_amount = 0.0 parameters/fall/blend_amount = 0.0
parameters/leap/blend_amount = 0.0 parameters/leap/blend_amount = 0.0
parameters/Add2/add_amount = 1.0
parameters/layering/blend_amount = 0.0
parameters/hold_weapon/blend_amount = 0.0
parameters/swing_weapon/active = false
parameters/swing_weapon/internal_active = false
parameters/swing_weapon/request = 0

View file

@ -1,6 +1,6 @@
[gd_scene format=3 uid="uid://dkiydumtthgk7"] [gd_scene format=3 uid="uid://co5p7h3exggvh"]
[ext_resource type="Script" uid="uid://c7gns73bldktx" path="res://scripts/slime.gd" id="1_4h4y0"] [ext_resource type="Script" uid="uid://c7gns73bldktx" path="res://scripts/enemies/slime.gd" id="1_4h4y0"]
[ext_resource type="Texture2D" uid="uid://b6krbvbco0jt6" path="res://textures/shadow.png" id="2_b58ev"] [ext_resource type="Texture2D" uid="uid://b6krbvbco0jt6" path="res://textures/shadow.png" id="2_b58ev"]
[ext_resource type="Texture2D" uid="uid://b8sc3vq5pmwil" path="res://textures/slime.png" id="3_ankfk"] [ext_resource type="Texture2D" uid="uid://b8sc3vq5pmwil" path="res://textures/slime.png" id="3_ankfk"]
@ -152,15 +152,9 @@ shape = SubResource("CapsuleShape3D_0tnpc")
[node name="Floorcast" type="RayCast3D" parent="." unique_id=216872080] [node name="Floorcast" type="RayCast3D" parent="." unique_id=216872080]
target_position = Vector3(0, -16, 0) target_position = Vector3(0, -16, 0)
[node name="HealthLabel" type="Label3D" parent="." unique_id=933867608]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8399999, 0)
pixel_size = 0.01
billboard = 1
text = "hello!"
[node name="Body" type="Sprite3D" parent="." unique_id=1136011871] [node name="Body" type="Sprite3D" parent="." unique_id=1136011871]
transform = Transform3D(0.7, 0, 0, 0, 1.3, 0, 0, 0, 1, 0, 0.05, 0)
pixel_size = 0.03 pixel_size = 0.03
shaded = true
texture_filter = 0 texture_filter = 0
texture = ExtResource("3_ankfk") texture = ExtResource("3_ankfk")

View file

@ -0,0 +1,11 @@
[gd_scene format=3 uid="uid://b6otq05jy7m6d"]
[ext_resource type="PackedScene" uid="uid://cj2yeoom4w7d1" path="res://models/brightshroom.gltf" id="1_pvbcs"]
[node name="blockbench_export" unique_id=1509742770 instance=ExtResource("1_pvbcs")]
[node name="OmniLight3D" type="OmniLight3D" parent="." index="2" unique_id=1156755560]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.6, 0)
light_color = Color(0.26707304, 0.71508616, 0.9999997, 1)
light_energy = 1.265
shadow_enabled = true

View file

@ -0,0 +1,18 @@
[gd_scene format=3 uid="uid://boelsm35tk0k6"]
[ext_resource type="PackedScene" uid="uid://cj2yeoom4w7d1" path="res://models/brightshroom.gltf" id="1_jlgeb"]
[ext_resource type="Material" uid="uid://dkx2w75felif2" path="res://materials/brightshroom_orange.tres" id="2_8mb4p"]
[node name="blockbench_export" unique_id=1509742770 instance=ExtResource("1_jlgeb")]
[node name="mesh" parent="." index="0" unique_id=360524914]
surface_material_override/0 = ExtResource("2_8mb4p")
[node name="mesh2" parent="." index="1" unique_id=978628742]
surface_material_override/0 = ExtResource("2_8mb4p")
[node name="OmniLight3D" type="OmniLight3D" parent="." index="2" unique_id=474035198]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.6, 0)
light_color = Color(1, 0.51865834, 0.3416382, 1)
light_energy = 1.265
shadow_enabled = true

10
scripts/dreamer_body.gd Normal file
View file

@ -0,0 +1,10 @@
extends Node3D
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
$Body/FrontLeg.position.z = 2

View file

@ -0,0 +1 @@
uid://c8sptss1aulmi

View file

@ -0,0 +1,15 @@
extends RigidBody3D
func _ready() -> void:
linear_velocity = Vector3(
randf_range(-1.5, 1.5),
randf_range(4, 6),
randf_range(-1.5, 1.5)
)
func _process(delta: float) -> void:
$Label.modulate.a -= delta * 0.8
$Label.outline_modulate.a -= delta * 0.8
if $Label.modulate.a <= 0:
queue_free()

View file

@ -0,0 +1 @@
uid://dwcbey8lgg1p2

163
scripts/enemies/dreamer.gd Normal file
View file

@ -0,0 +1,163 @@
extends CharacterBody3D
const SPEED = 2.5
const JUMP_VELOCITY = 3.5
var walk_animation_time = 0
var face_rotation = null
var face_left = false
var combatable = true
var iframes = 0
var knockback_time = 0
var health = 100
var current_weapon = "test_sword"
enum {
STATE_IDLE,
STATE_APPROACH_ENEMY,
STATE_CHARGE_ATTACK,
STATE_ATTACK
}
@onready var game = get_parent()
@onready var player = game.get_node("Player")
@onready var navigation_agent: NavigationAgent3D = $Navigator
func hit_me():
iframes = 0.5
health -= 10
func get_my_weapon_info(value: String):
return get_weapon_info(current_weapon, value)
func get_weapon_info(weapon: String, value: String):
if value in Global.weapons[weapon]:
return Global.weapons[weapon][value]
else: return null
func on_hit(hitter: Node3D = null) -> void:
iframes = 0.8
if hitter:
knockback_time = 0.25
velocity += hitter.global_position.direction_to(global_position) * 8
velocity.y = 0
func _ready() -> void:
$DreamerBody.look_at(game.get_node("PlayerCamera").global_position)
$DreamerBody.rotation.x = 0
face_rotation = $DreamerBody.rotation.y
func _process(delta: float) -> void:
if iframes > 0:
iframes -= delta
$DreamerBody/Body.modulate.a = 0.5
else:
$DreamerBody/Body.modulate.a = 1
if knockback_time > 0:
knockback_time -= delta
func _physics_process(delta: float) -> void:
if not is_on_floor():
velocity += get_gravity() * delta
var viewport_half = (get_viewport().get_visible_rect().size / 2.0)
var player_position = Vector2.ZERO #camera.unproject_position(global_transform.origin)
if face_left:
$DreamerBody.rotation.y = face_rotation + deg_to_rad(180)
$DreamerBody/Animator.set("parameters/layering/blend_amount", 1.0)
else:
$DreamerBody.rotation.y = face_rotation
$DreamerBody/Animator.set("parameters/layering/blend_amount", 0.0)
var mouse_point_angle = player_position.angle_to_point(get_viewport().get_mouse_position())
if combatable:
#$DreamerBody/Body/ArmPivot.rotation.z = mouse_point_angle
$HitCollision.rotation.y = -mouse_point_angle + face_rotation
if abs(rad_to_deg(mouse_point_angle) - (-90)) < 50:
$HitCollision/Shape.shape.size.x = 1.5
else:
$HitCollision/Shape.shape.size.x = 1.2
if (rad_to_deg(mouse_point_angle) < -90) or (rad_to_deg(mouse_point_angle) > 90):
face_left = true
var mouse_pos = get_viewport().get_mouse_position()
mouse_pos.y = (viewport_half.y) + ((viewport_half.y) - mouse_pos.y)
#$DreamerBody/Body/ArmPivot.rotation.z = viewport_half.angle_to_point(mouse_pos)
else:
face_left = false
$DreamerBody/Body/ArmPivot.scale.y = 1
$DreamerBody/Body/ArmPivot.scale.x = 1
else:
$DreamerBody/Body/ArmPivot.global_rotation.y = face_rotation
$DreamerBody/Body/ArmPivot.scale.y = 1
$DreamerBody/Body/ArmPivot.scale.x = 1
$DreamerBody/Body/ArmPivot.rotation.z = 0
if false:
velocity.y = JUMP_VELOCITY
$DreamerBody/Animator.set("parameters/jump/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE)
navigation_agent.set_target_position(player.global_position)
var next_path_position: Vector3 = navigation_agent.get_next_path_position()
var direction = global_position.direction_to(next_path_position)
if direction.x > 0:
face_left = false
if direction.x < 0:
face_left = true
if direction and (knockback_time <= 0):
velocity.x = direction.x * SPEED
velocity.z = direction.z * SPEED
$DreamerBody/Animator.set("parameters/walk/blend_amount", abs(direction.length()))
else:
velocity.x = move_toward(velocity.x, 0, delta * 4)
velocity.z = move_toward(velocity.z, 0, delta * 4)
$DreamerBody/Animator.set("parameters/walk/blend_amount", 0)
if direction and is_on_floor():
walk_animation_time += delta * 25
$DreamerBody.position.y = sin(walk_animation_time + 1) / 16
$DreamerBody.rotation.z = sin(walk_animation_time / 2) / 16
else:
walk_animation_time = 0
$DreamerBody.rotation.z /= 1 + (delta * 2.5)
$DreamerBody.position.y /= 1 + (delta * 12)
if is_on_floor():
$DreamerBody/Animator.set("parameters/fall/blend_amount", 0)
$DreamerBody/Animator.set("parameters/leap/blend_amount", 0)
else:
if velocity.y < 0:
$DreamerBody/Animator.set("parameters/fall/blend_amount", 1)
$DreamerBody/Animator.set("parameters/leap/blend_amount", 0)
else:
$DreamerBody/Animator.set("parameters/fall/blend_amount", 0)
$DreamerBody/Animator.set("parameters/leap/blend_amount", 1)
move_and_slide()
$Shadow.global_position.y = $Floorcast.get_collision_point().y + 0.01

View file

@ -0,0 +1 @@
uid://vi18m3j6f6fa

View file

@ -6,8 +6,7 @@ const JUMP_VELOCITY = 4.5
var face_rotation = null var face_rotation = null
var face_left = false var face_left = false
var combatable = false var health = 35
var health = 40
var mid_knockback = false var mid_knockback = false
@onready var player = get_parent().get_node("Player") @onready var player = get_parent().get_node("Player")
@ -17,6 +16,7 @@ enum {
STATE_JUMP, STATE_JUMP,
STATE_LEAP, STATE_LEAP,
STATE_HIT, STATE_HIT,
STATE_DEATH
} }
var state = STATE_IDLE var state = STATE_IDLE
@ -40,9 +40,10 @@ func _ready() -> void:
$Body/Animator.play("idle") $Body/Animator.play("idle")
func _physics_process(delta: float) -> void: func _physics_process(delta: float) -> void:
if health <= 0: if (health <= 0) and (state != STATE_DEATH):
queue_free() state = STATE_DEATH
return state_timer = 0.75
$Body/Animator.play("jump")
state_timer -= delta state_timer -= delta
@ -59,6 +60,9 @@ func _physics_process(delta: float) -> void:
velocity = global_position.direction_to(player.global_position) * 3 velocity = global_position.direction_to(player.global_position) * 3
velocity.y = 3 velocity.y = 3
elif state == STATE_DEATH:
queue_free()
elif (state == STATE_LEAP) and is_on_floor(): elif (state == STATE_LEAP) and is_on_floor():
state = STATE_IDLE state = STATE_IDLE
state_timer = randf_range(0.8, 1.5) state_timer = randf_range(0.8, 1.5)
@ -69,6 +73,8 @@ func _physics_process(delta: float) -> void:
state_timer = 0.5 state_timer = 0.5
$Body/Animator.play("idle") $Body/Animator.play("idle")
elif (state == STATE_DEATH):
pass
if iframes > 0: if iframes > 0:
iframes -= delta iframes -= delta
@ -76,7 +82,7 @@ func _physics_process(delta: float) -> void:
else: else:
$Body.modulate.a = 1 $Body.modulate.a = 1
$HealthLabel.text = str(health) #wa$HealthLabel.text = str(health)
if not is_on_floor(): if not is_on_floor():
velocity += get_gravity() * delta velocity += get_gravity() * delta
@ -89,22 +95,9 @@ func _physics_process(delta: float) -> void:
else: else:
$Body.rotation.y = face_rotation $Body.rotation.y = face_rotation
var input_dir := Vector2.ZERO
if not combatable:
if input_dir.x > 0:
face_left = false
if input_dir.x < 0:
face_left = true
var direction = (camera.transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
if is_on_floor() and not mid_knockback: if is_on_floor() and not mid_knockback:
if direction: velocity.x = move_toward(velocity.x, 0, delta * 16)
velocity.x = direction.x * SPEED velocity.z = move_toward(velocity.z, 0, delta * 16)
velocity.z = direction.z * SPEED
else:
velocity.x = move_toward(velocity.x, 0, delta * 16)
velocity.z = move_toward(velocity.z, 0, delta * 16)
move_and_slide() move_and_slide()

View file

@ -11,7 +11,7 @@ const weapons = {
"damage_mid_combo": 10, "damage_mid_combo": 10,
"knockback": 3.5, "knockback": 3.5,
"knockback_mid_combo": 0.25, "knockback_mid_combo": 0.75,
"stun_time": 0.4, "stun_time": 0.4,
} }
} }

View file

@ -32,9 +32,7 @@ func get_my_weapon_info(value: String):
return get_weapon_info(current_weapon, value) return get_weapon_info(current_weapon, value)
func get_weapon_info(weapon: String, value: String): func get_weapon_info(weapon: String, value: String):
print(weapon, value)
if value in Global.weapons[weapon]: if value in Global.weapons[weapon]:
print("YAYA", Global.weapons[weapon][value])
return Global.weapons[weapon][value] return Global.weapons[weapon][value]
else: return null else: return null
@ -72,13 +70,14 @@ func _physics_process(delta: float) -> void:
if face_left: if face_left:
$DreamerBody.rotation.y = face_rotation + deg_to_rad(180) $DreamerBody.rotation.y = face_rotation + deg_to_rad(180)
$DreamerBody/Animator.set("parameters/layering/blend_amount", 1.0)
else: else:
$DreamerBody.rotation.y = face_rotation $DreamerBody.rotation.y = face_rotation
$DreamerBody/Animator.set("parameters/layering/blend_amount", 0.0)
var mouse_point_angle = player_position.angle_to_point(get_viewport().get_mouse_position()) var mouse_point_angle = player_position.angle_to_point(get_viewport().get_mouse_position())
if combatable: if combatable:
#$DreamerBody/Body/ArmPivot.rotation.z = mouse_point_angle
$HitCollision.rotation.y = -mouse_point_angle + face_rotation $HitCollision.rotation.y = -mouse_point_angle + face_rotation
if abs(rad_to_deg(mouse_point_angle) - (-90)) < 50: if abs(rad_to_deg(mouse_point_angle) - (-90)) < 50:
@ -97,12 +96,16 @@ func _physics_process(delta: float) -> void:
face_left = false face_left = false
$DreamerBody/Body/ArmPivot.scale.y = 1 $DreamerBody/Body/ArmPivot.scale.y = 1
$DreamerBody/Body/ArmPivot.scale.x = 1 $DreamerBody/Body/ArmPivot.scale.x = 1
$DreamerBody/Animator.set("parameters/hold_weapon/blend_amount", 1.0)
else: else:
$DreamerBody/Body/ArmPivot.global_rotation.y = face_rotation $DreamerBody/Body/ArmPivot.global_rotation.y = face_rotation
$DreamerBody/Body/ArmPivot.scale.y = 1 $DreamerBody/Body/ArmPivot.scale.y = 1
$DreamerBody/Body/ArmPivot.scale.x = 1 $DreamerBody/Body/ArmPivot.scale.x = 1
$DreamerBody/Body/ArmPivot.rotation.z = 0 $DreamerBody/Body/ArmPivot.rotation.z = 0
$DreamerBody/Animator.set("parameters/hold_weapon/blend_amount", 0.0)
if Input.is_action_pressed("jump") and is_on_floor(): if Input.is_action_pressed("jump") and is_on_floor():
velocity.y = JUMP_VELOCITY velocity.y = JUMP_VELOCITY
$DreamerBody/Animator.set("parameters/jump/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE) $DreamerBody/Animator.set("parameters/jump/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE)
@ -137,10 +140,11 @@ func _physics_process(delta: float) -> void:
var slash = load("res://scenes/effects/slash.tscn").instantiate() var slash = load("res://scenes/effects/slash.tscn").instantiate()
game.add_child(slash) game.add_child(slash)
slash.global_position = global_position slash.global_position = global_position
slash.rotation.x = face_rotation slash.global_rotation.y = $HitCollision.global_rotation.y + deg_to_rad(180)
slash.rotation.z = -mouse_point_angle + deg_to_rad(180)
slash.play_effect() slash.play_effect()
$DreamerBody/Animator.set("parameters/swing_weapon/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE)
var hits = $HitCollision.get_overlapping_bodies() var hits = $HitCollision.get_overlapping_bodies()
var knockback = 0 var knockback = 0
@ -183,6 +187,11 @@ func _physics_process(delta: float) -> void:
if "on_knockback" in body: if "on_knockback" in body:
body.on_knockback() body.on_knockback()
var damage_text = preload("res://scenes/effects/damage_text.tscn").instantiate()
game.add_child(damage_text)
damage_text.global_position = body.global_position
damage_text.get_node("Label").text = str(floor(damage))
var direction = (camera.transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized() var direction = (camera.transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
if direction and (knockback_time <= 0): if direction and (knockback_time <= 0):
velocity.x = direction.x * SPEED velocity.x = direction.x * SPEED

View file

@ -0,0 +1,14 @@
shader_type spatial;
void vertex() {
// Called for every vertex the material is visible on.
}
void fragment() {
// Called for every pixel the material is visible on.
}
//void light() {
// // Called for every pixel for every light affecting the material.
// // Uncomment to replace the default light processing function with this one.
//}

View file

@ -0,0 +1 @@
uid://fqithquavabo

BIN
textures/brightshroom.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ln2b0h7jurye"
path.s3tc="res://.godot/imported/brightshroom.png-ff1df663a97bff5daeebf3c65af42c56.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://textures/brightshroom.png"
dest_files=["res://.godot/imported/brightshroom.png-ff1df663a97bff5daeebf3c65af42c56.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://gotb5lmbe8ve"
path.s3tc="res://.godot/imported/brightshroom_orange.png-e0054b8f0907ffc7d2760c8c0dbf722d.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://textures/brightshroom_orange.png"
dest_files=["res://.godot/imported/brightshroom_orange.png-e0054b8f0907ffc7d2760c8c0dbf722d.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

View file

@ -3,19 +3,20 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://cvtipichutylm" uid="uid://cvtipichutylm"
path="res://.godot/imported/test-sword.png-66731188822b2310b04dd803d25c4b2d.ctex" path.s3tc="res://.godot/imported/test-sword.png-66731188822b2310b04dd803d25c4b2d.s3tc.ctex"
metadata={ metadata={
"vram_texture": false "imported_formats": ["s3tc_bptc"],
"vram_texture": true
} }
[deps] [deps]
source_file="res://textures/test-sword.png" source_file="res://textures/test-sword.png"
dest_files=["res://.godot/imported/test-sword.png-66731188822b2310b04dd803d25c4b2d.ctex"] dest_files=["res://.godot/imported/test-sword.png-66731188822b2310b04dd803d25c4b2d.s3tc.ctex"]
[params] [params]
compress/mode=0 compress/mode=2
compress/high_quality=false compress/high_quality=false
compress/lossy_quality=0.7 compress/lossy_quality=0.7
compress/uastc_level=0 compress/uastc_level=0
@ -23,7 +24,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
@ -37,4 +38,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false process/hdr_as_srgb=false
process/hdr_clamp_exposure=false process/hdr_clamp_exposure=false
process/size_limit=0 process/size_limit=0
detect_3d/compress_to=1 detect_3d/compress_to=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 B

View file

@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dfcoremq6wxa"
path.s3tc="res://.godot/imported/stone_floor.png-a60dbfe12b4382aa7bd47bad794f7b31.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://textures/tile/stone_floor.png"
dest_files=["res://.godot/imported/stone_floor.png-a60dbfe12b4382aa7bd47bad794f7b31.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 458 B

View file

@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cubqnw40nk224"
path.s3tc="res://.godot/imported/stone_wall.png-347bb8f8716cd17e7537aaa815c02859.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://textures/tile/stone_wall.png"
dest_files=["res://.godot/imported/stone_wall.png-347bb8f8716cd17e7537aaa815c02859.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 506 B

View file

@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b1iebalulbl7d"
path.s3tc="res://.godot/imported/stone_wall_small_rock.png-0ef332000c5d7b9c91464273ffe48838.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://textures/tile/stone_wall_small_rock.png"
dest_files=["res://.godot/imported/stone_wall_small_rock.png-0ef332000c5d7b9c91464273ffe48838.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0