Compare commits

..

3 Commits

Author SHA1 Message Date
759d972b6d removed automatic itch upload on every main run because it costs too much
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 20s
Create tag and build when new code gets to main / Test (push) Successful in 6m54s
Create tag and build when new code gets to main / Export (push) Successful in 8m21s
2026-02-13 19:21:44 +01:00
4df4585149 fixed escape menu input on keyboard
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 21s
Create tag and build when new code gets to main / Test (push) Successful in 7m14s
Create tag and build when new code gets to main / Export (push) Successful in 8m46s
2026-02-13 15:20:54 +01:00
88b0911c6c removed wall run tutorial and fixed wall run leave auto dash 2026-02-13 15:00:25 +01:00
6 changed files with 127 additions and 132 deletions

View File

@@ -91,26 +91,26 @@ jobs:
${{ steps.setup-godot.outputs.godot_bin }} --headless --verbose --export-release "Windows Desktop" build/windows/${{ env.GAME_NAME }}.exe ${{ steps.setup-godot.outputs.godot_bin }} --headless --verbose --export-release "Windows Desktop" build/windows/${{ env.GAME_NAME }}.exe
zip -r Windows.zip build/windows zip -r Windows.zip build/windows
- name: Setup Butler # - name: Setup Butler
shell: bash # shell: bash
env: # env:
BUTLER_API_KEY: ${{ secrets.BUTLER_TOKEN }} # BUTLER_API_KEY: ${{ secrets.BUTLER_TOKEN }}
run: | # run: |
mkdir ./tools 2>/dev/null || true # mkdir ./tools 2>/dev/null || true
pushd tools # pushd tools
curl -sSLfo ./butler.zip "https://broth.itch.zone/butler/linux-amd64/LATEST/archive/default" # curl -sSLfo ./butler.zip "https://broth.itch.zone/butler/linux-amd64/LATEST/archive/default"
unzip butler.zip # unzip butler.zip
chmod +x ./butler # chmod +x ./butler
popd # popd
./tools/butler -V # ./tools/butler -V
#
- name: Upload to itch.io # - name: Upload to itch.io
shell: bash # shell: bash
env: # env:
BUTLER_API_KEY: ${{ secrets.BUTLER_TOKEN }} # BUTLER_API_KEY: ${{ secrets.BUTLER_TOKEN }}
run: | # run: |
versionArgument="--userversion ${{ needs.BumpTag.outputs.tag_name }}" # versionArgument="--userversion ${{ needs.BumpTag.outputs.tag_name }}"
./tools/butler push \ # ./tools/butler push \
"Windows.zip" \ # "Windows.zip" \
${{ env.ITCHIO_USERNAME }}/${{ env.ITCHIO_GAMEID }}:windows ${versionArgument} # ${{ env.ITCHIO_USERNAME }}/${{ env.ITCHIO_GAMEID }}:windows ${versionArgument}

View File

@@ -35,6 +35,7 @@
[ext_resource type="Resource" uid="uid://spo3pbqjx0eb" path="res://inputs/base_mode/parry.tres" id="30_rvpjj"] [ext_resource type="Resource" uid="uid://spo3pbqjx0eb" path="res://inputs/base_mode/parry.tres" id="30_rvpjj"]
[ext_resource type="Resource" uid="uid://dxy0071ic1wdj" path="res://inputs/base_mode/slam.tres" id="32_s8kjn"] [ext_resource type="Resource" uid="uid://dxy0071ic1wdj" path="res://inputs/base_mode/slam.tres" id="32_s8kjn"]
[ext_resource type="Resource" uid="uid://s1l0n1iitc6m" path="res://inputs/base_mode/move_back.tres" id="33_fykw6"] [ext_resource type="Resource" uid="uid://s1l0n1iitc6m" path="res://inputs/base_mode/move_back.tres" id="33_fykw6"]
[ext_resource type="Script" uid="uid://c76fmncyucwqc" path="res://addons/guide/triggers/guide_trigger_tap.gd" id="34_2ienm"]
[ext_resource type="Resource" uid="uid://brswsknpgwal2" path="res://inputs/base_mode/move_front.tres" id="34_rvpjj"] [ext_resource type="Resource" uid="uid://brswsknpgwal2" path="res://inputs/base_mode/move_front.tres" id="34_rvpjj"]
[ext_resource type="Resource" uid="uid://ca68r7n3bwba3" path="res://inputs/base_mode/toolbox.tres" id="34_s8kjn"] [ext_resource type="Resource" uid="uid://ca68r7n3bwba3" path="res://inputs/base_mode/toolbox.tres" id="34_s8kjn"]
[ext_resource type="Resource" uid="uid://f3vs6l4m623s" path="res://inputs/base_mode/move_left.tres" id="35_s8kjn"] [ext_resource type="Resource" uid="uid://f3vs6l4m623s" path="res://inputs/base_mode/move_left.tres" id="35_s8kjn"]
@@ -456,17 +457,17 @@ script = ExtResource("1_qmhk6")
action = ExtResource("32_s8kjn") action = ExtResource("32_s8kjn")
input_mappings = Array[ExtResource("3_yp12v")]([SubResource("Resource_v2ywt"), SubResource("Resource_s6d3g")]) input_mappings = Array[ExtResource("3_yp12v")]([SubResource("Resource_v2ywt"), SubResource("Resource_s6d3g")])
[sub_resource type="Resource" id="Resource_s4bc4"] [sub_resource type="Resource" id="Resource_vp8bw"]
script = ExtResource("30_cvxqo") script = ExtResource("30_cvxqo")
key = 4194305 key = 4194305
[sub_resource type="Resource" id="Resource_3exnu"] [sub_resource type="Resource" id="Resource_78qyx"]
script = ExtResource("15_fykw6") script = ExtResource("34_2ienm")
[sub_resource type="Resource" id="Resource_ai85f"] [sub_resource type="Resource" id="Resource_ai85f"]
script = ExtResource("3_yp12v") script = ExtResource("3_yp12v")
input = SubResource("Resource_s4bc4") input = SubResource("Resource_vp8bw")
triggers = Array[ExtResource("8_2tfaw")]([SubResource("Resource_3exnu")]) triggers = Array[ExtResource("8_2tfaw")]([SubResource("Resource_78qyx")])
[sub_resource type="Resource" id="Resource_jjamb"] [sub_resource type="Resource" id="Resource_jjamb"]
script = ExtResource("19_qkgmj") script = ExtResource("19_qkgmj")
@@ -498,10 +499,22 @@ script = ExtResource("3_yp12v")
input = SubResource("Resource_8e1uk") input = SubResource("Resource_8e1uk")
triggers = Array[ExtResource("8_2tfaw")]([SubResource("Resource_k8i2y")]) triggers = Array[ExtResource("8_2tfaw")]([SubResource("Resource_k8i2y")])
[sub_resource type="Resource" id="Resource_qrtf1"]
script = ExtResource("30_cvxqo")
key = 84
[sub_resource type="Resource" id="Resource_2ienm"]
script = ExtResource("15_fykw6")
[sub_resource type="Resource" id="Resource_4uwbh"]
script = ExtResource("3_yp12v")
input = SubResource("Resource_qrtf1")
triggers = Array[ExtResource("8_2tfaw")]([SubResource("Resource_2ienm")])
[sub_resource type="Resource" id="Resource_o5fur"] [sub_resource type="Resource" id="Resource_o5fur"]
script = ExtResource("1_qmhk6") script = ExtResource("1_qmhk6")
action = ExtResource("34_s8kjn") action = ExtResource("34_s8kjn")
input_mappings = Array[ExtResource("3_yp12v")]([SubResource("Resource_ilhhf")]) input_mappings = Array[ExtResource("3_yp12v")]([SubResource("Resource_ilhhf"), SubResource("Resource_4uwbh")])
[sub_resource type="Resource" id="Resource_kcylj"] [sub_resource type="Resource" id="Resource_kcylj"]
script = ExtResource("30_cvxqo") script = ExtResource("30_cvxqo")

View File

@@ -7,7 +7,7 @@
[ext_resource type="Script" uid="uid://rvttn472ix6v" path="res://addons/guide/inputs/guide_input_joy_button.gd" id="4_q6ncx"] [ext_resource type="Script" uid="uid://rvttn472ix6v" path="res://addons/guide/inputs/guide_input_joy_button.gd" id="4_q6ncx"]
[ext_resource type="Script" uid="uid://bl8rjl4oaldje" path="res://addons/guide/modifiers/guide_modifier.gd" id="5_vnf02"] [ext_resource type="Script" uid="uid://bl8rjl4oaldje" path="res://addons/guide/modifiers/guide_modifier.gd" id="5_vnf02"]
[ext_resource type="Script" uid="uid://x74mnwgr08a7" path="res://addons/guide/triggers/guide_trigger.gd" id="6_c647i"] [ext_resource type="Script" uid="uid://x74mnwgr08a7" path="res://addons/guide/triggers/guide_trigger.gd" id="6_c647i"]
[ext_resource type="Script" uid="uid://biiggjw6tv4uq" path="res://addons/guide/triggers/guide_trigger_released.gd" id="7_725x1"] [ext_resource type="Script" uid="uid://c76fmncyucwqc" path="res://addons/guide/triggers/guide_trigger_tap.gd" id="7_725x1"]
[ext_resource type="Script" uid="uid://b52rqq28tuqpg" path="res://addons/guide/triggers/guide_trigger_pressed.gd" id="7_m88dc"] [ext_resource type="Script" uid="uid://b52rqq28tuqpg" path="res://addons/guide/triggers/guide_trigger_pressed.gd" id="7_m88dc"]
[ext_resource type="Script" uid="uid://cw71o87tvdx3q" path="res://addons/guide/inputs/guide_input_key.gd" id="8_yfqfy"] [ext_resource type="Script" uid="uid://cw71o87tvdx3q" path="res://addons/guide/inputs/guide_input_key.gd" id="8_yfqfy"]
[ext_resource type="Resource" uid="uid://ds8quw8a7uh2u" path="res://inputs/menu_mode/select.tres" id="9_dsdj3"] [ext_resource type="Resource" uid="uid://ds8quw8a7uh2u" path="res://inputs/menu_mode/select.tres" id="9_dsdj3"]

View File

@@ -20,9 +20,6 @@ size = Vector3(10.5, 12.5, 7.5)
[sub_resource type="BoxShape3D" id="BoxShape3D_hocby"] [sub_resource type="BoxShape3D" id="BoxShape3D_hocby"]
size = Vector3(3, 12.5, 7.5) size = Vector3(3, 12.5, 7.5)
[sub_resource type="BoxShape3D" id="BoxShape3D_ovxxa"]
size = Vector3(3, 12.5, 6)
[sub_resource type="BoxShape3D" id="BoxShape3D_5ibpd"] [sub_resource type="BoxShape3D" id="BoxShape3D_5ibpd"]
size = Vector3(3.5, 7, 10.5) size = Vector3(3.5, 7, 10.5)
@@ -37,11 +34,6 @@ size = Vector3(3, 6.5, 5.5)
[node name="DirectionalLight3D" parent="." index="5" unique_id=1357990191] [node name="DirectionalLight3D" parent="." index="5" unique_id=1357990191]
transform = Transform3D(-0.1772511, 0.44628847, 0.87715954, 0.49540228, -0.72966087, 0.4713508, 0.85038733, 0.51809436, -0.09175911, 0, 0, 0) transform = Transform3D(-0.1772511, 0.44628847, 0.87715954, 0.49540228, -0.72966087, 0.4713508, 0.85038733, 0.51809436, -0.09175911, 0, 0, 0)
[node name="Player" parent="." index="6" unique_id=1309399929]
transform = Transform3D(0.99999994, 0, 0, 0, 1, 0, 0, 0, 0.99999994, -0.5, 0.4102497, 0.5415039)
HasSword = false
HasParry = false
[node name="Greybox" type="CSGCombiner3D" parent="." index="7" unique_id=2082385716] [node name="Greybox" type="CSGCombiner3D" parent="." index="7" unique_id=2082385716]
use_collision = true use_collision = true
collision_layer = 256 collision_layer = 256
@@ -78,9 +70,9 @@ size = Vector3(38, 16.5, 2)
material = ExtResource("2_lpm4c") material = ExtResource("2_lpm4c")
[node name="CSGBox3D10" type="CSGBox3D" parent="Greybox" index="5" unique_id=427936811] [node name="CSGBox3D10" type="CSGBox3D" parent="Greybox" index="5" unique_id=427936811]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.25, 8.5, -35) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.25, 8.5, -35)
use_collision = true use_collision = true
size = Vector3(21.5, 17, 2) size = Vector3(19.5, 17, 2)
material = ExtResource("2_lpm4c") material = ExtResource("2_lpm4c")
[node name="CSGBox3D3" type="CSGBox3D" parent="Greybox" index="6" unique_id=1254886602] [node name="CSGBox3D3" type="CSGBox3D" parent="Greybox" index="6" unique_id=1254886602]
@@ -198,9 +190,9 @@ size = Vector3(6.5, 2.5, 11.5)
material = ExtResource("2_lpm4c") material = ExtResource("2_lpm4c")
[node name="CSGBox3D11" type="CSGBox3D" parent="Greybox" index="15" unique_id=316945013] [node name="CSGBox3D11" type="CSGBox3D" parent="Greybox" index="15" unique_id=316945013]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.75, 6.5, -35.25) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 6.5, -34)
use_collision = true use_collision = true
size = Vector3(10.5, 1, 13.5) size = Vector3(11, 1, 16)
material = ExtResource("2_lpm4c") material = ExtResource("2_lpm4c")
[node name="CSGBox3D23" type="CSGBox3D" parent="Greybox" index="16" unique_id=1942257779] [node name="CSGBox3D23" type="CSGBox3D" parent="Greybox" index="16" unique_id=1942257779]
@@ -222,117 +214,117 @@ size = Vector3(25, 7.5, 41)
material = ExtResource("2_lpm4c") material = ExtResource("2_lpm4c")
[node name="CSGBox3D12" type="CSGBox3D" parent="Greybox" index="19" unique_id=1227474775] [node name="CSGBox3D12" type="CSGBox3D" parent="Greybox" index="19" unique_id=1227474775]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.5, 10.25, -37.75) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16.5, 10.25, -37.75)
use_collision = true use_collision = true
size = Vector3(2, 13.5, 7.5) size = Vector3(2, 13.5, 7.5)
material = ExtResource("2_lpm4c") material = ExtResource("2_lpm4c")
[node name="CSGBox3D13" type="CSGBox3D" parent="Greybox" index="20" unique_id=1383851577] [node name="CSGBox3D13" type="CSGBox3D" parent="Greybox" index="20" unique_id=110274826]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.5, 8, -31.5) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14, 9.75, -27.25)
use_collision = true use_collision = true
size = Vector3(2, 16, 5) size = Vector3(3, 5.5, 4.5)
material = ExtResource("5_r26ni")
[node name="CSGBox3D15" type="CSGBox3D" parent="Greybox" index="21" unique_id=238418660]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.5, 8, -31.5)
use_collision = true
size = Vector3(2, 16, 5)
material = ExtResource("5_r26ni")
[node name="CSGBox3D14" type="CSGBox3D" parent="Greybox" index="22" unique_id=437211444]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 8, -27)
use_collision = true
size = Vector3(7, 16, 4)
material = ExtResource("2_lpm4c") material = ExtResource("2_lpm4c")
[node name="CSGBox3D20" type="CSGBox3D" parent="Greybox" index="23" unique_id=1913472587] [node name="CSGBox3D15" type="CSGBox3D" parent="Greybox" index="21" unique_id=2074031011]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 16.5, -8.5) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.5, 8.25, -28.75)
use_collision = true use_collision = true
size = Vector3(9, 1, 39) size = Vector3(4, 2.5, 7.5)
material = ExtResource("2_lpm4c") material = ExtResource("2_lpm4c")
[node name="CSGBox3D30" type="CSGBox3D" parent="Greybox" index="24" unique_id=1594042498] [node name="CSGBox3D22" type="CSGBox3D" parent="Greybox" index="22" unique_id=1005993604]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 7.5, -30)
use_collision = true
size = Vector3(7, 1, 10)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D14" type="CSGBox3D" parent="Greybox" index="23" unique_id=437211444]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 8, -25.5)
use_collision = true
size = Vector3(7, 16, 1)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D20" type="CSGBox3D" parent="Greybox" index="24" unique_id=1913472587]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 16.5, -7)
use_collision = true
size = Vector3(9, 1, 36)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D30" type="CSGBox3D" parent="Greybox" index="25" unique_id=1594042498]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 16.5, 17.5) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 16.5, 17.5)
use_collision = true use_collision = true
size = Vector3(5, 1, 3) size = Vector3(5, 1, 3)
material = ExtResource("2_lpm4c") material = ExtResource("2_lpm4c")
[node name="CSGBox3D54" type="CSGBox3D" parent="Greybox" index="25" unique_id=157354874] [node name="CSGBox3D54" type="CSGBox3D" parent="Greybox" index="26" unique_id=157354874]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 15.5, 22.5) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 15.5, 22.5)
use_collision = true use_collision = true
size = Vector3(5, 7, 3) size = Vector3(5, 7, 3)
material = ExtResource("2_lpm4c") material = ExtResource("2_lpm4c")
[node name="CSGBox3D38" type="CSGBox3D" parent="Greybox" index="26" unique_id=348698998] [node name="CSGBox3D38" type="CSGBox3D" parent="Greybox" index="27" unique_id=348698998]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 18.5, 17.5) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 18.5, 17.5)
use_collision = true use_collision = true
size = Vector3(1, 1, 13) size = Vector3(1, 1, 13)
material = ExtResource("3_u8sr4") material = ExtResource("3_u8sr4")
[node name="CSGBox3D39" type="CSGBox3D" parent="Greybox" index="27" unique_id=850320525] [node name="CSGBox3D39" type="CSGBox3D" parent="Greybox" index="28" unique_id=850320525]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 13.75, 17.5) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 13.75, 17.5)
use_collision = true use_collision = true
size = Vector3(7, 10.5, 14) size = Vector3(7, 10.5, 14)
material = ExtResource("2_lpm4c") material = ExtResource("2_lpm4c")
[node name="CSGBox3D60" type="CSGBox3D" parent="Greybox" index="28" unique_id=177087863] [node name="CSGBox3D60" type="CSGBox3D" parent="Greybox" index="29" unique_id=177087863]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -34, 22, 17.5) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -34, 22, 17.5)
use_collision = true use_collision = true
size = Vector3(1, 1, 13) size = Vector3(1, 1, 13)
material = ExtResource("3_u8sr4") material = ExtResource("3_u8sr4")
[node name="CSGBox3D61" type="CSGBox3D" parent="Greybox" index="29" unique_id=16972982] [node name="CSGBox3D61" type="CSGBox3D" parent="Greybox" index="30" unique_id=16972982]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -38, 17.25, 14.5) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -38, 17.25, 14.5)
use_collision = true use_collision = true
size = Vector3(7, 10.5, 20) size = Vector3(7, 10.5, 20)
material = ExtResource("2_lpm4c") material = ExtResource("2_lpm4c")
[node name="CSGBox3D37" type="CSGBox3D" parent="Greybox" index="30" unique_id=1733162117] [node name="CSGBox3D37" type="CSGBox3D" parent="Greybox" index="31" unique_id=1733162117]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.75, 9.5, 17.75) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.75, 9.5, 17.75)
use_collision = true use_collision = true
size = Vector3(22.5, 1, 14.5) size = Vector3(22.5, 1, 14.5)
material = ExtResource("2_lpm4c") material = ExtResource("2_lpm4c")
[node name="CSGBox3D56" type="CSGBox3D" parent="Greybox" index="31" unique_id=790895849] [node name="CSGBox3D56" type="CSGBox3D" parent="Greybox" index="32" unique_id=790895849]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.25, 11.5, 17.75) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.25, 11.5, 17.75)
use_collision = true use_collision = true
size = Vector3(24.5, 1, 14.5) size = Vector3(24.5, 1, 14.5)
material = ExtResource("2_lpm4c") material = ExtResource("2_lpm4c")
[node name="CSGBox3D34" type="CSGBox3D" parent="Greybox" index="32" unique_id=2008368941] [node name="CSGBox3D34" type="CSGBox3D" parent="Greybox" index="33" unique_id=2008368941]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.5, 12.5, 14.75) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.5, 12.5, 14.75)
use_collision = true use_collision = true
size = Vector3(6, 7, 8.5) size = Vector3(6, 7, 8.5)
material = ExtResource("2_lpm4c") material = ExtResource("2_lpm4c")
[node name="CSGBox3D43" type="CSGBox3D" parent="Greybox" index="33" unique_id=1975028151] [node name="CSGBox3D43" type="CSGBox3D" parent="Greybox" index="34" unique_id=1975028151]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.5, 12.5, 17.5) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.5, 12.5, 17.5)
use_collision = true use_collision = true
size = Vector3(4, 7, 3) size = Vector3(4, 7, 3)
material = ExtResource("2_lpm4c") material = ExtResource("2_lpm4c")
[node name="CSGBox3D44" type="CSGBox3D" parent="Greybox" index="34" unique_id=177387693] [node name="CSGBox3D44" type="CSGBox3D" parent="Greybox" index="35" unique_id=177387693]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 10.5, 17.25) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 10.5, 17.25)
use_collision = true use_collision = true
size = Vector3(3, 3, 13.5) size = Vector3(3, 3, 13.5)
material = ExtResource("2_lpm4c") material = ExtResource("2_lpm4c")
[node name="CSGBox3D35" type="CSGBox3D" parent="Greybox" index="35" unique_id=570122850] [node name="CSGBox3D35" type="CSGBox3D" parent="Greybox" index="36" unique_id=570122850]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11, 16.5, 17.25) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11, 16.5, 17.25)
use_collision = true use_collision = true
size = Vector3(5, 1, 13.5) size = Vector3(5, 1, 13.5)
material = ExtResource("2_lpm4c") material = ExtResource("2_lpm4c")
[node name="CSGBox3D21" type="CSGBox3D" parent="Greybox" index="36" unique_id=2094633204]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9, 16.5, -29.5)
use_collision = true
size = Vector3(1, 1, 9)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D24" type="CSGBox3D" parent="Greybox" index="37" unique_id=761197989] [node name="CSGBox3D24" type="CSGBox3D" parent="Greybox" index="37" unique_id=761197989]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 18.75, -29.5) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 14.25, -29.5)
use_collision = true use_collision = true
size = Vector3(1, 5.5, 9) size = Vector3(1, 14.5, 9)
material = ExtResource("2_lpm4c") material = ExtResource("2_lpm4c")
[node name="CSGBox3D26" type="CSGBox3D" parent="Greybox" index="38" unique_id=258581541] [node name="CSGBox3D26" type="CSGBox3D" parent="Greybox" index="38" unique_id=258581541]
@@ -504,33 +496,33 @@ size = Vector3(3, 1, 6.5)
material = ExtResource("5_u8sr4") material = ExtResource("5_u8sr4")
[node name="CSGBox3D25" type="CSGBox3D" parent="Greybox" index="66" unique_id=1000059913] [node name="CSGBox3D25" type="CSGBox3D" parent="Greybox" index="66" unique_id=1000059913]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16, 18.75, -29.5) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16, 14, -29.5)
use_collision = true use_collision = true
size = Vector3(1, 5.5, 9) size = Vector3(1, 15, 9)
material = ExtResource("2_lpm4c") material = ExtResource("2_lpm4c")
[node name="CSGBox3D22" type="CSGBox3D" parent="Greybox" index="67" unique_id=1623594342] [node name="CSGBox3D16" type="CSGBox3D" parent="Greybox" index="67" unique_id=1660129006]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15, 16.5, -29.5) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 16.5, -25.5)
use_collision = true use_collision = true
size = Vector3(1, 1, 9) size = Vector3(7, 1, 1)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D16" type="CSGBox3D" parent="Greybox" index="68" unique_id=1660129006]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 16.5, -28.5)
use_collision = true
size = Vector3(5, 1, 1)
material = ExtResource("3_u8sr4") material = ExtResource("3_u8sr4")
[node name="CSGBox3D18" type="CSGBox3D" parent="Greybox" index="69" unique_id=528606233] [node name="CSGBox3D18" type="CSGBox3D" parent="Greybox" index="68" unique_id=410504645]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14, 16.5, -31.5) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14, 13, -27.75)
use_collision = true use_collision = true
size = Vector3(1, 1, 5) size = Vector3(3, 1, 3.5)
material = ExtResource("3_u8sr4") material = ExtResource("3_u8sr4")
[node name="CSGBox3D19" type="CSGBox3D" parent="Greybox" index="70" unique_id=533984919] [node name="CSGBox3D19" type="CSGBox3D" parent="Greybox" index="69" unique_id=1692291429]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 16.5, -31.5) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.5, 10, -29.25)
use_collision = true use_collision = true
size = Vector3(1, 1, 5) size = Vector3(4, 1, 6.5)
material = ExtResource("3_u8sr4")
[node name="CSGBox3D21" type="CSGBox3D" parent="Greybox" index="70" unique_id=16284901]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 7.5, -35.5)
use_collision = true
size = Vector3(7, 1, 1)
material = ExtResource("3_u8sr4") material = ExtResource("3_u8sr4")
[node name="CSGBox3D36" type="CSGBox3D" parent="Greybox" index="71" unique_id=1460670998] [node name="CSGBox3D36" type="CSGBox3D" parent="Greybox" index="71" unique_id=1460670998]
@@ -937,17 +929,7 @@ tuto_text = "Double jump"
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.25, -1.75) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.25, -1.75)
shape = SubResource("BoxShape3D_hocby") shape = SubResource("BoxShape3D_hocby")
[node name="TutoTrigger4" parent="Tutorials" index="3" unique_id=903897281 instance=ExtResource("7_r26ni")] [node name="TutoTrigger5" parent="Tutorials" index="3" unique_id=1703929757 instance=ExtResource("7_r26ni")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 7.5, -30.5)
first_input_texture = ExtResource("8_6c6r2")
complex_input_text = "against wall"
tuto_text = "Wall jump"
[node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorials/TutoTrigger4" index="1" unique_id=1224334781]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.25, -1)
shape = SubResource("BoxShape3D_ovxxa")
[node name="TutoTrigger5" parent="Tutorials" index="4" unique_id=1703929757 instance=ExtResource("7_r26ni")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 13.5, 18.5, -30.5) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 13.5, 18.5, -30.5)
first_input_texture = ExtResource("9_v7818") first_input_texture = ExtResource("9_v7818")
complex_input_text = "with speed" complex_input_text = "with speed"
@@ -957,7 +939,7 @@ tuto_text = "Slide"
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.75, 0.5, 12.25) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.75, 0.5, 12.25)
shape = SubResource("BoxShape3D_5ibpd") shape = SubResource("BoxShape3D_5ibpd")
[node name="TutoTrigger6" parent="Tutorials" index="5" unique_id=1739438130 instance=ExtResource("7_r26ni")] [node name="TutoTrigger6" parent="Tutorials" index="4" unique_id=1739438130 instance=ExtResource("7_r26ni")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5, 19, 19) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5, 19, 19)
first_input_texture = ExtResource("8_6c6r2") first_input_texture = ExtResource("8_6c6r2")
complex_input_text = "double tap during mantle" complex_input_text = "double tap during mantle"
@@ -967,7 +949,7 @@ tuto_text = "Improved jump"
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.5, 0.25, -1.5) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.5, 0.25, -1.5)
shape = SubResource("BoxShape3D_6rkcg") shape = SubResource("BoxShape3D_6rkcg")
[node name="TutoTrigger7" parent="Tutorials" index="6" unique_id=1993844947 instance=ExtResource("7_r26ni")] [node name="TutoTrigger7" parent="Tutorials" index="5" unique_id=1993844947 instance=ExtResource("7_r26ni")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -17.5, 21, 24) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -17.5, 21, 24)
first_input_texture = ExtResource("8_6c6r2") first_input_texture = ExtResource("8_6c6r2")
complex_input_text = "double tap during mantle" complex_input_text = "double tap during mantle"
@@ -977,7 +959,7 @@ tuto_text = "Try to wall run"
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.25, 0.25, -1.5) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.25, 0.25, -1.5)
shape = SubResource("BoxShape3D_6rkcg") shape = SubResource("BoxShape3D_6rkcg")
[node name="TutoTrigger8" parent="Tutorials" index="7" unique_id=540710346 instance=ExtResource("7_r26ni")] [node name="TutoTrigger8" parent="Tutorials" index="6" unique_id=540710346 instance=ExtResource("7_r26ni")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 25, 10) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 25, 10)
first_input_texture = ExtResource("10_hocby") first_input_texture = ExtResource("10_hocby")
tuto_text = "dash" tuto_text = "dash"
@@ -986,7 +968,7 @@ tuto_text = "dash"
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.25, -3.75) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.25, -3.75)
shape = SubResource("BoxShape3D_p8dgc") shape = SubResource("BoxShape3D_p8dgc")
[node name="TutoTrigger9" parent="Tutorials" index="8" unique_id=2062889854 instance=ExtResource("7_r26ni")] [node name="TutoTrigger9" parent="Tutorials" index="7" unique_id=2062889854 instance=ExtResource("7_r26ni")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 25, -6) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 25, -6)
first_input_texture = ExtResource("10_hocby") first_input_texture = ExtResource("10_hocby")
tuto_text = "dash" tuto_text = "dash"
@@ -994,3 +976,8 @@ tuto_text = "dash"
[node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorials/TutoTrigger9" index="1" unique_id=192598019] [node name="CollisionShape3D" type="CollisionShape3D" parent="Tutorials/TutoTrigger9" index="1" unique_id=192598019]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.25, -3.75) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.25, -3.75)
shape = SubResource("BoxShape3D_p8dgc") shape = SubResource("BoxShape3D_p8dgc")
[node name="Player" parent="." index="11" unique_id=1309399929]
transform = Transform3D(0.99999994, 0, 0, 0, 1, 0, 0, 0, 0.99999994, -0.5, 0.4102497, 0.5415039)
HasSword = false
HasParry = false

View File

@@ -159,6 +159,7 @@ WallHugDownwardMaxSpeed = 4.0
WallHugHorizontalDeceleration = 1.0 WallHugHorizontalDeceleration = 1.0
WallRunUpwardVelocityFactor = 0.5 WallRunUpwardVelocityFactor = 0.5
MinimumWallRunUpwardSpeed = 4.0 MinimumWallRunUpwardSpeed = 4.0
MinimumWallRunHorizontalSpeed = 8.0
WallRunAltitudeLossSpeed = 8.0 WallRunAltitudeLossSpeed = 8.0
WallRunSpeedThreshold = 1.0 WallRunSpeedThreshold = 1.0
@@ -1119,7 +1120,7 @@ delay_in_seconds = "0.0"
[node name="OnJump" type="Node" parent="StateChart/Root/Movement/OnWall" unique_id=342055859] [node name="OnJump" type="Node" parent="StateChart/Root/Movement/OnWall" unique_id=342055859]
script = ExtResource("28_n7qhm") script = ExtResource("28_n7qhm")
to = NodePath("../../Jump/SimpleJump") to = NodePath("../../Jump/DoubleJump")
event = &"wall_jump" event = &"wall_jump"
delay_in_seconds = "0.0" delay_in_seconds = "0.0"
@@ -1156,6 +1157,12 @@ script = ExtResource("27_34snm")
[node name="Running" type="Node" parent="StateChart/Root/Movement/OnWall" unique_id=766545186] [node name="Running" type="Node" parent="StateChart/Root/Movement/OnWall" unique_id=766545186]
script = ExtResource("27_34snm") script = ExtResource("27_34snm")
[node name="OnJump" type="Node" parent="StateChart/Root/Movement/OnWall/Running" unique_id=1699673966]
script = ExtResource("28_n7qhm")
to = NodePath("../../../Jump/SimpleJump")
event = &"wall_jump"
delay_in_seconds = "0.0"
[node name="OnLeaveWall" type="Node" parent="StateChart/Root/Movement/OnWall/Running" unique_id=73239479] [node name="OnLeaveWall" type="Node" parent="StateChart/Root/Movement/OnWall/Running" unique_id=73239479]
script = ExtResource("28_n7qhm") script = ExtResource("28_n7qhm")
to = NodePath("../../../Airborne/CoyoteEnabled") to = NodePath("../../../Airborne/CoyoteEnabled")

View File

@@ -360,6 +360,7 @@ public partial class PlayerController : CharacterBody3D,
private Transition _onJumpFromWall; private Transition _onJumpFromWall;
private Transition _onJumpFromWallFalling; private Transition _onJumpFromWallFalling;
private Transition _onJumpFromWallRunning;
private Transition _onLeaveWallFromRun; private Transition _onLeaveWallFromRun;
private Transition _onAirborneToGrounded; private Transition _onAirborneToGrounded;
@@ -502,6 +503,7 @@ public partial class PlayerController : CharacterBody3D,
_mantling = StateChartState.Of(GetNode("StateChart/Root/Movement/Mantling")); _mantling = StateChartState.Of(GetNode("StateChart/Root/Movement/Mantling"));
_onJumpFromWall = Transition.Of(GetNode("StateChart/Root/Movement/OnWall/OnJump")); _onJumpFromWall = Transition.Of(GetNode("StateChart/Root/Movement/OnWall/OnJump"));
_onJumpFromWallFalling = Transition.Of(GetNode("StateChart/Root/Movement/Airborne/Falling/OnWallJump")); _onJumpFromWallFalling = Transition.Of(GetNode("StateChart/Root/Movement/Airborne/Falling/OnWallJump"));
_onJumpFromWallRunning = Transition.Of(GetNode("StateChart/Root/Movement/OnWall/Running/OnJump"));
_onWall = StateChartState.Of(GetNode("StateChart/Root/Movement/OnWall")); _onWall = StateChartState.Of(GetNode("StateChart/Root/Movement/OnWall"));
_onWallHugging = StateChartState.Of(GetNode("StateChart/Root/Movement/OnWall/Hugging")); _onWallHugging = StateChartState.Of(GetNode("StateChart/Root/Movement/OnWall/Hugging"));
_onWallHanging = StateChartState.Of(GetNode("StateChart/Root/Movement/OnWall/Hanging")); _onWallHanging = StateChartState.Of(GetNode("StateChart/Root/Movement/OnWall/Hanging"));
@@ -629,6 +631,7 @@ public partial class PlayerController : CharacterBody3D,
_onJumpFromWall.Taken += OnJumpFromWall; _onJumpFromWall.Taken += OnJumpFromWall;
_onJumpFromWallFalling.Taken += OnJumpFromWall; _onJumpFromWallFalling.Taken += OnJumpFromWall;
_onJumpFromWallRunning.Taken += OnJumpFromWall;
_onLeaveWallFromRun.Taken += OnLeaveWallFromRun; _onLeaveWallFromRun.Taken += OnLeaveWallFromRun;
_onAirborneToGrounded.Taken += OnAirborneToGrounded; _onAirborneToGrounded.Taken += OnAirborneToGrounded;
@@ -1192,7 +1195,7 @@ public partial class PlayerController : CharacterBody3D,
// return; // return;
var newWallNormal = WallHugSystem.WallHugNormal.UnwrapOr(Vector3.Up); var newWallNormal = WallHugSystem.WallHugNormal.UnwrapOr(Vector3.Up);
// if (newWallNormal.AngleTo(_wallHugStartNormal) > Mathf.Pi/4) return; if (newWallNormal.AngleTo(_wallHugStartNormal) > Mathf.Pi/4 && _onWall.Active) return;
_wallHugStartNormal = newWallNormal; _wallHugStartNormal = newWallNormal;
} }
@@ -1296,7 +1299,6 @@ public partial class PlayerController : CharacterBody3D,
public bool ShouldStartWallRun() public bool ShouldStartWallRun()
{ {
GD.Print(_wallHugStartNormal);
if (_wallHugStartNormal.Length() < Mathf.Epsilon) if (_wallHugStartNormal.Length() < Mathf.Epsilon)
{ {
// GD.Print("No wall normal"); // GD.Print("No wall normal");
@@ -1365,7 +1367,7 @@ public partial class PlayerController : CharacterBody3D,
public bool IsInputForwardOrTowardsWall() public bool IsInputForwardOrTowardsWall()
{ {
return GetInputLocalHDirection().Z < -0.2f || IsInputTowardsWall(_wallHugStartNormal); return IsPlayerInputtingForward() || IsInputTowardsWall(_wallHugStartNormal);
} }
public bool CanKeepWallRun() public bool CanKeepWallRun()
@@ -1440,12 +1442,7 @@ public partial class PlayerController : CharacterBody3D,
} }
if (_onWallRunning.Active || _onWallHanging.Active) // Always allow jumping out of wall run and hang if (_onWall.Active) // Always allow jumping out of wall run and hang
{
_playerState.SendEvent("wall_jump");
return;
}
if (_onWallHugging.Active && _isWallJumpAvailable) // Limit number of jumps doable when hugging
{ {
_playerState.SendEvent("wall_jump"); _playerState.SendEvent("wall_jump");
return; return;
@@ -1547,19 +1544,10 @@ public partial class PlayerController : CharacterBody3D,
SetHorizontalVelocity(currentHorizontalVelocity + wallJumpHorizontalVelocity); SetHorizontalVelocity(currentHorizontalVelocity + wallJumpHorizontalVelocity);
} }
public bool IsOnWallForLongEnough()
{
return _timeOnWall >= 0.1f;
}
public void OnJumpFromWall() public void OnJumpFromWall()
{ {
// if (!IsFacingWall() || (!_isWallJumpAvailable && IsFacingWall())) if (!IsFacingWall() || (!_isWallJumpAvailable && IsFacingWall()) || _onWallRunning.Active)
// {
// ComputeJumpFromWallHSpeed(WallJumpStartVelocity);
// }
if (IsOnWallForLongEnough() || _onWallRunning.Active)
ComputeJumpFromWallHSpeed(WallJumpStartVelocity); ComputeJumpFromWallHSpeed(WallJumpStartVelocity);
// OnJumpStarted(DoubleJumpStartVelocity); // OnJumpStarted(DoubleJumpStartVelocity);