Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0e412c2a42 | |||
| 8a3faff7d0 | |||
| 3525f0e3eb | |||
| cc973b9f0d | |||
| 8a552f7993 | |||
| 93841bc85d | |||
| 9ba8847626 | |||
| 51b7328310 | |||
| fdc352596d | |||
| 89ba5cc985 | |||
| fdc79166a0 | |||
| b84487336b | |||
| e4ab103c4d |
@@ -10,44 +10,22 @@ on:
|
||||
- "**"
|
||||
|
||||
env:
|
||||
GODOT_VERSION: 4.6
|
||||
GAME_NAME: MovementTests
|
||||
ITCHIO_USERNAME: Minimata
|
||||
ITCHIO_GAMEID: MovementTests
|
||||
|
||||
jobs:
|
||||
Export:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
RUNNER_TOOL_CACHE: /toolcache # Runner Tool Cache
|
||||
runs-on: godot
|
||||
steps:
|
||||
- name: Install node, xvfb and curl
|
||||
run: |
|
||||
apt update && apt -y install curl nodejs xvfb
|
||||
- name: Checkout with LFS
|
||||
uses: https://git.game-dev.space/minimata/checkout-with-lfs.git@main
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
lfs: false
|
||||
|
||||
- name: Checkout LFS
|
||||
run: |
|
||||
UrlBase=$GITHUB_SERVER_URL; \
|
||||
UrlLfsBase=$UrlBase/${{ gitea.repository }}.git/info/lfs/objects; \
|
||||
Auth=`/usr/bin/git config --get --local http.$UrlBase/.extraheader`; \
|
||||
/usr/bin/git config --local http.${UrlLfsBase}/batch.extraheader "$Auth"; \
|
||||
/usr/bin/git config --local http.${UrlLfsBase}/.extraheader ''
|
||||
|
||||
git config --local lfs.transfer.maxretries 1
|
||||
|
||||
/usr/bin/git lfs fetch origin refs/remotes/origin/${{ gitea.ref_name }}
|
||||
/usr/bin/git lfs checkout
|
||||
/usr/bin/git add .
|
||||
/usr/bin/git reset --hard
|
||||
|
||||
- name: Run tests
|
||||
uses: godot-gdunit-labs/gdUnit4-action@v1
|
||||
with:
|
||||
godot-version: '4.6.0'
|
||||
godot-version: ${GODOT_VERSION}
|
||||
godot-net: true
|
||||
godot-force-mono: true
|
||||
dotnet-version: 'net9.0'
|
||||
@@ -56,7 +34,7 @@ jobs:
|
||||
timeout: 1
|
||||
publish-report: false
|
||||
upload-report: false
|
||||
|
||||
|
||||
- name: Upload test report
|
||||
uses: actions/upload-artifact@v3-node20
|
||||
with:
|
||||
|
||||
@@ -43,42 +43,8 @@ jobs:
|
||||
# env:
|
||||
# RUNNER_TOOL_CACHE: /toolcache # Runner Tool Cache
|
||||
steps:
|
||||
# - name: Install node, xvfb and curl
|
||||
# run: |
|
||||
# apt update && apt -y install curl nodejs xvfb
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
token: ${{ secrets.TOKEN }}
|
||||
lfs: false
|
||||
persist-credentials: true
|
||||
|
||||
- name: Checkout LFS
|
||||
run: |
|
||||
git lfs install --local
|
||||
echo ${{ gitea.server_url }}
|
||||
AUTH=$(git config http.${{ gitea.server_url }}/.extraheader)
|
||||
echo ${{ gitea.repository }}
|
||||
AUTH_FILE=$(git config includeif.gitdir:/workspace/${{ gitea.repository }}/.git.path)
|
||||
echo sandwich
|
||||
git config -f $AUTH_FILE --unset http.${{ gitea.server_url }}/.extraheader
|
||||
echo teub
|
||||
git config -f $AUTH_FILE http.${{ gitea.server_url }}/${{ gitea.repository }}.git/info/lfs/objects/batch.extraheader "$AUTH"
|
||||
echo bite
|
||||
git lfs pull
|
||||
|
||||
# - name: Checkout LFS
|
||||
# run: |
|
||||
# git lfs install --local
|
||||
# echo toto
|
||||
# AUTH=$(git config http.${{ gitea.server_url }}/.extraheader)
|
||||
# echo tata
|
||||
# git config --local --unset http.${{ github.server_url }}/.extraheader
|
||||
# echo http.${{ github.server_url }}/${{ github.repository }}.git/info/lfs/objects/batch.extraheader
|
||||
# git config --local http.${{ github.server_url }}/${{ github.repository }}.git/info/lfs/objects/batch.extraheader "$AUTH"
|
||||
# echo bite
|
||||
# git lfs pull
|
||||
- name: Checkout with LFS
|
||||
uses: https://git.game-dev.space/minimata/checkout-with-lfs.git@main
|
||||
|
||||
- name: Run tests
|
||||
uses: godot-gdunit-labs/gdUnit4-action@v1
|
||||
@@ -101,78 +67,50 @@ jobs:
|
||||
|
||||
Export:
|
||||
runs-on: godot
|
||||
# env:
|
||||
# RUNNER_TOOL_CACHE: /toolcache # Runner Tool Cache
|
||||
# needs:
|
||||
# - BumpTag
|
||||
# - Test # Wait for tests to finish
|
||||
container:
|
||||
image: barichello/godot-ci:mono-4.6
|
||||
needs:
|
||||
- BumpTag
|
||||
|
||||
steps:
|
||||
- name: Install tools
|
||||
run: |
|
||||
apt update && apt -y install curl zip nodejs
|
||||
- name: Checkout with LFS
|
||||
uses: https://git.game-dev.space/minimata/checkout-with-lfs.git@main
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
- name: Setup Godot
|
||||
id: setup-godot
|
||||
uses: https://git.game-dev.space/minimata/setup-godot.git@main
|
||||
with:
|
||||
lfs: false
|
||||
persist-credentials: true
|
||||
|
||||
- name: Checkout LFS
|
||||
run: |
|
||||
UrlBase=$GITHUB_SERVER_URL; \
|
||||
UrlLfsBase=$UrlBase/${{ gitea.repository }}.git/info/lfs/objects; \
|
||||
Auth=`/usr/bin/git config --get --local http.$UrlBase/.extraheader`; \
|
||||
/usr/bin/git config --local http.${UrlLfsBase}/batch.extraheader "$Auth"; \
|
||||
/usr/bin/git config --local http.${UrlLfsBase}/.extraheader ''
|
||||
|
||||
git config --local lfs.transfer.maxretries 1
|
||||
|
||||
/usr/bin/git lfs fetch origin refs/remotes/origin/${{ gitea.ref_name }}
|
||||
/usr/bin/git lfs checkout
|
||||
/usr/bin/git add .
|
||||
/usr/bin/git reset --hard
|
||||
|
||||
# - name: Checkout
|
||||
# uses: actions/checkout@v6
|
||||
# with:
|
||||
# lfs: false
|
||||
# persist-credentials: true
|
||||
godot-version: '4.6'
|
||||
dotnet-version: 'net9.0'
|
||||
|
||||
# - name: Checkout LFS
|
||||
# run: |
|
||||
# git lfs install --local
|
||||
# AUTH=$(git config http.${{ gitea.server_url }}/.extraheader)
|
||||
# AUTH_FILE=$(git config includeif.gitdir:/workspace/${{ gitea.repository }}/.git.path)
|
||||
# git config -f $AUTH_FILE --unset http.${{ gitea.server_url }}/.extraheader
|
||||
# git config -f $AUTH_FILE http.${{ gitea.server_url }}/${{ gitea.repository }}.git/info/lfs/objects/batch.extraheader "$AUTH"
|
||||
# git lfs pull
|
||||
|
||||
# - name: Remove GDUnit addon folder because it breaks the build
|
||||
# run: |
|
||||
# rm -rf ${{ gitea.workspace }}/addons/gdunit4
|
||||
|
||||
- uses: actions/setup-dotnet@v5
|
||||
with:
|
||||
dotnet-version: '9.x'
|
||||
|
||||
- name: Import resources and build solution
|
||||
- name: Remove GDUnit addon
|
||||
run: |
|
||||
godot --headless --editor --build-solutions --quit --import --path $PWD
|
||||
|
||||
rm -rf ${{ gitea.workspace }}/addons/gdUnit4
|
||||
|
||||
- name: Build Windows
|
||||
run: |
|
||||
mkdir -v -p build/windows
|
||||
godot --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
|
||||
- name: Upload to Itch
|
||||
uses: KikimoraGames/itch-publish@v0.0.3
|
||||
with:
|
||||
butlerApiKey: ${{ secrets.BUTLER_TOKEN }}
|
||||
itchUsername: ${{ env.ITCHIO_USERNAME }}
|
||||
itchGameId: ${{ env.ITCHIO_GAMEID }}
|
||||
buildNumber: 0.1.0 # ${{ needs.BumpTag.outputs.tag_name }}
|
||||
gameData: Windows.zip
|
||||
buildChannel: windows
|
||||
|
||||
- name: Setup Butler
|
||||
shell: bash
|
||||
env:
|
||||
BUTLER_API_KEY: ${{ secrets.BUTLER_TOKEN }}
|
||||
run: |
|
||||
mkdir ./tools 2>/dev/null || true
|
||||
pushd tools
|
||||
curl -sSLfo ./butler.zip "https://broth.itch.zone/butler/linux-amd64/LATEST/archive/default"
|
||||
unzip butler.zip
|
||||
chmod +x ./butler
|
||||
popd
|
||||
./tools/butler -V
|
||||
|
||||
- name: Upload to itch.io
|
||||
shell: bash
|
||||
env:
|
||||
BUTLER_API_KEY: ${{ secrets.BUTLER_TOKEN }}
|
||||
run: |
|
||||
versionArgument="--userversion ${{ needs.BumpTag.outputs.tag_name }}"
|
||||
./tools/butler push \
|
||||
"Windows.zip" \
|
||||
${{ env.ITCHIO_USERNAME }}/${{ env.ITCHIO_GAMEID }}:windows ${versionArgument}
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ on:
|
||||
- "**"
|
||||
|
||||
env:
|
||||
GODOT_VERSION: 4.6
|
||||
GAME_NAME: MovementTests
|
||||
ITCHIO_USERNAME: Minimata
|
||||
ITCHIO_GAMEID: MovementTests
|
||||
@@ -26,99 +27,90 @@ jobs:
|
||||
separator: '/'
|
||||
|
||||
Release:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: godot
|
||||
if: ${{ contains(gitea.ref_name, 'release/') }}
|
||||
needs: ReleaseName
|
||||
env:
|
||||
RUNNER_TOOL_CACHE: /toolcache # Runner Tool Cache
|
||||
container:
|
||||
image: barichello/godot-ci:mono-4.6
|
||||
|
||||
steps:
|
||||
- name: Install node, curl and zip
|
||||
run: |
|
||||
apt update && apt -y install curl zip nodejs
|
||||
- name: Checkout with LFS
|
||||
uses: https://git.game-dev.space/minimata/checkout-with-lfs.git@main
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
- name: Setup Godot
|
||||
id: setup-godot
|
||||
uses: https://git.game-dev.space/minimata/setup-godot.git@main
|
||||
with:
|
||||
lfs: false
|
||||
|
||||
- name: Checkout LFS
|
||||
godot-version: '4.6'
|
||||
dotnet-version: 'net9.0'
|
||||
|
||||
- name: Setup Butler
|
||||
shell: bash
|
||||
env:
|
||||
BUTLER_API_KEY: ${{ secrets.BUTLER_TOKEN }}
|
||||
run: |
|
||||
UrlBase=$GITHUB_SERVER_URL; \
|
||||
UrlLfsBase=$UrlBase/${{ gitea.repository }}.git/info/lfs/objects; \
|
||||
Auth=`/usr/bin/git config --get --local http.$UrlBase/.extraheader`; \
|
||||
/usr/bin/git config --local http.${UrlLfsBase}/batch.extraheader "$Auth"; \
|
||||
/usr/bin/git config --local http.${UrlLfsBase}/.extraheader ''
|
||||
|
||||
git config --local lfs.transfer.maxretries 1
|
||||
|
||||
/usr/bin/git lfs fetch origin refs/remotes/origin/${{ gitea.ref_name }}
|
||||
/usr/bin/git lfs checkout
|
||||
/usr/bin/git add .
|
||||
/usr/bin/git reset --hard
|
||||
|
||||
- name: Import resources and build solution
|
||||
run: |
|
||||
godot --headless --editor --build-solutions --quit --import --path $PWD
|
||||
mkdir ./tools 2>/dev/null || true
|
||||
pushd tools
|
||||
curl -sSLfo ./butler.zip "https://broth.itch.zone/butler/linux-amd64/LATEST/archive/default"
|
||||
unzip butler.zip
|
||||
chmod +x ./butler
|
||||
popd
|
||||
./tools/butler -V
|
||||
|
||||
- name: Build Windows
|
||||
run: |
|
||||
mkdir -v -p build/windows
|
||||
godot --headless --verbose --build-solutions --export-release "Windows Desktop" build/windows/${{ env.GAME_NAME }}.exe
|
||||
zip -r Windows.zip build/windows
|
||||
- name: Upload to Itch
|
||||
uses: KikimoraGames/itch-publish@v0.0.3
|
||||
with:
|
||||
butlerApiKey: ${{ secrets.BUTLER_TOKEN }}
|
||||
itchUsername: ${{ env.ITCHIO_USERNAME }}
|
||||
itchGameId: ${{ env.ITCHIO_GAMEID }}
|
||||
buildNumber: ${{ needs.ReleaseName.outputs.release_name }}
|
||||
gameData: Windows.zip
|
||||
buildChannel: windows
|
||||
- name: Upload Windows to itch.io
|
||||
shell: bash
|
||||
env:
|
||||
BUTLER_API_KEY: ${{ secrets.BUTLER_TOKEN }}
|
||||
run: |
|
||||
versionArgument="--userversion ${{ needs.ReleaseName.outputs.release_name }}"
|
||||
./tools/butler push \
|
||||
"Windows.zip" \
|
||||
${{ env.ITCHIO_USERNAME }}/${{ env.ITCHIO_GAMEID }}:windows ${versionArgument}
|
||||
|
||||
- name: Build Windows ARM
|
||||
run: |
|
||||
mkdir -v -p build/windowsArm
|
||||
godot --headless --verbose --build-solutions --export-release "Windows ARM" build/windowsArm/${{ env.GAME_NAME }}.exe
|
||||
zip -r WindowsArm.zip build/windowsArm
|
||||
- name: Upload to Itch
|
||||
uses: KikimoraGames/itch-publish@v0.0.3
|
||||
with:
|
||||
butlerApiKey: ${{ secrets.BUTLER_TOKEN }}
|
||||
itchUsername: ${{ env.ITCHIO_USERNAME }}
|
||||
itchGameId: ${{ env.ITCHIO_GAMEID }}
|
||||
buildNumber: ${{ needs.ReleaseName.outputs.release_name }}
|
||||
gameData: WindowsArm.zip
|
||||
buildChannel: windows-arm
|
||||
- name: Upload Windows to itch.io
|
||||
shell: bash
|
||||
env:
|
||||
BUTLER_API_KEY: ${{ secrets.BUTLER_TOKEN }}
|
||||
run: |
|
||||
versionArgument="--userversion ${{ needs.ReleaseName.outputs.release_name }}"
|
||||
./tools/butler push \
|
||||
"WindowsArm.zip" \
|
||||
${{ env.ITCHIO_USERNAME }}/${{ env.ITCHIO_GAMEID }}:windows-arm ${versionArgument}
|
||||
|
||||
- name: Linux Build
|
||||
run: |
|
||||
mkdir -v -p build/linux
|
||||
godot --headless --verbose --export-release "Linux/X11" build/linux/${{ env.GAME_NAME }}.x86_64
|
||||
zip -r Linux.zip build/linux
|
||||
- name: Upload to Itch
|
||||
uses: KikimoraGames/itch-publish@v0.0.3
|
||||
with:
|
||||
butlerApiKey: ${{ secrets.BUTLER_TOKEN }}
|
||||
itchUsername: ${{ env.ITCHIO_USERNAME }}
|
||||
itchGameId: ${{ env.ITCHIO_GAMEID }}
|
||||
buildNumber: ${{ needs.ReleaseName.outputs.release_name }}
|
||||
gameData: Linux.zip
|
||||
buildChannel: linux
|
||||
- name: Upload Windows to itch.io
|
||||
shell: bash
|
||||
env:
|
||||
BUTLER_API_KEY: ${{ secrets.BUTLER_TOKEN }}
|
||||
run: |
|
||||
versionArgument="--userversion ${{ needs.ReleaseName.outputs.release_name }}"
|
||||
./tools/butler push \
|
||||
"Linux.zip" \
|
||||
${{ env.ITCHIO_USERNAME }}/${{ env.ITCHIO_GAMEID }}:linux ${versionArgument}
|
||||
|
||||
- name: Mac Build
|
||||
run: |
|
||||
mkdir -v -p build/mac
|
||||
godot --headless --verbose --export-release "macOS" build/mac/${{ env.GAME_NAME }}.zip
|
||||
zip -r Mac.zip build/mac
|
||||
- name: Upload to Itch
|
||||
uses: KikimoraGames/itch-publish@v0.0.3
|
||||
with:
|
||||
butlerApiKey: ${{ secrets.BUTLER_TOKEN }}
|
||||
itchUsername: ${{ env.ITCHIO_USERNAME }}
|
||||
itchGameId: ${{ env.ITCHIO_GAMEID }}
|
||||
buildNumber: ${{ needs.ReleaseName.outputs.release_name }}
|
||||
gameData: Mac.zip
|
||||
buildChannel: mac
|
||||
- name: Upload Windows to itch.io
|
||||
shell: bash
|
||||
env:
|
||||
BUTLER_API_KEY: ${{ secrets.BUTLER_TOKEN }}
|
||||
run: |
|
||||
versionArgument="--userversion ${{ needs.ReleaseName.outputs.release_name }}"
|
||||
./tools/butler push \
|
||||
"Mac.zip" \
|
||||
${{ env.ITCHIO_USERNAME }}/${{ env.ITCHIO_GAMEID }}:mac ${versionArgument}
|
||||
|
||||
BIN
assets/greybox/greybox_blue_grid.png
(Stored with Git LFS)
Normal file
BIN
assets/greybox/greybox_blue_grid.png
(Stored with Git LFS)
Normal file
Binary file not shown.
40
assets/greybox/greybox_blue_grid.png.import
Normal file
40
assets/greybox/greybox_blue_grid.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c4si5cetpfjsx"
|
||||
path="res://.godot/imported/greybox_blue_grid.png-8cd3756907b9465009fdef23590a7e10.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/greybox/greybox_blue_grid.png"
|
||||
dest_files=["res://.godot/imported/greybox_blue_grid.png-8cd3756907b9465009fdef23590a7e10.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
assets/greybox/greybox_blue_solid.png
(Stored with Git LFS)
Normal file
BIN
assets/greybox/greybox_blue_solid.png
(Stored with Git LFS)
Normal file
Binary file not shown.
40
assets/greybox/greybox_blue_solid.png.import
Normal file
40
assets/greybox/greybox_blue_solid.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cubdmqt7mvofh"
|
||||
path="res://.godot/imported/greybox_blue_solid.png-73fd2109ac26d63d4b465f9fdbf39c1d.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/greybox/greybox_blue_solid.png"
|
||||
dest_files=["res://.godot/imported/greybox_blue_solid.png-73fd2109ac26d63d4b465f9fdbf39c1d.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
assets/greybox/greybox_dark_grid.png
(Stored with Git LFS)
Normal file
BIN
assets/greybox/greybox_dark_grid.png
(Stored with Git LFS)
Normal file
Binary file not shown.
40
assets/greybox/greybox_dark_grid.png.import
Normal file
40
assets/greybox/greybox_dark_grid.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cv3b5gjslenlr"
|
||||
path="res://.godot/imported/greybox_dark_grid.png-650326b02ce8de7b619b333b97451c9e.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/greybox/greybox_dark_grid.png"
|
||||
dest_files=["res://.godot/imported/greybox_dark_grid.png-650326b02ce8de7b619b333b97451c9e.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
assets/greybox/greybox_dark_solid.png
(Stored with Git LFS)
Normal file
BIN
assets/greybox/greybox_dark_solid.png
(Stored with Git LFS)
Normal file
Binary file not shown.
40
assets/greybox/greybox_dark_solid.png.import
Normal file
40
assets/greybox/greybox_dark_solid.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c0fb4f41hssm5"
|
||||
path="res://.godot/imported/greybox_dark_solid.png-b15b91f85aa45ac0ebbad03173c46e20.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/greybox/greybox_dark_solid.png"
|
||||
dest_files=["res://.godot/imported/greybox_dark_solid.png-b15b91f85aa45ac0ebbad03173c46e20.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
assets/greybox/greybox_green_grid.png
(Stored with Git LFS)
Normal file
BIN
assets/greybox/greybox_green_grid.png
(Stored with Git LFS)
Normal file
Binary file not shown.
40
assets/greybox/greybox_green_grid.png.import
Normal file
40
assets/greybox/greybox_green_grid.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bkjusurqvb4q"
|
||||
path="res://.godot/imported/greybox_green_grid.png-cb9366fe50966ade1eeb071d4a2016c4.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/greybox/greybox_green_grid.png"
|
||||
dest_files=["res://.godot/imported/greybox_green_grid.png-cb9366fe50966ade1eeb071d4a2016c4.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
assets/greybox/greybox_green_solid.png
(Stored with Git LFS)
Normal file
BIN
assets/greybox/greybox_green_solid.png
(Stored with Git LFS)
Normal file
Binary file not shown.
40
assets/greybox/greybox_green_solid.png.import
Normal file
40
assets/greybox/greybox_green_solid.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bacqbuyggedyy"
|
||||
path="res://.godot/imported/greybox_green_solid.png-add21b7e00a97e9ef0a7eede753d89ff.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/greybox/greybox_green_solid.png"
|
||||
dest_files=["res://.godot/imported/greybox_green_solid.png-add21b7e00a97e9ef0a7eede753d89ff.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
assets/greybox/greybox_grey_grid.png
(Stored with Git LFS)
Normal file
BIN
assets/greybox/greybox_grey_grid.png
(Stored with Git LFS)
Normal file
Binary file not shown.
40
assets/greybox/greybox_grey_grid.png.import
Normal file
40
assets/greybox/greybox_grey_grid.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bqqs6jweml03w"
|
||||
path="res://.godot/imported/greybox_grey_grid.png-26095c1a41956f620b18195e2bc90091.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/greybox/greybox_grey_grid.png"
|
||||
dest_files=["res://.godot/imported/greybox_grey_grid.png-26095c1a41956f620b18195e2bc90091.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
assets/greybox/greybox_grey_solid.png
(Stored with Git LFS)
Normal file
BIN
assets/greybox/greybox_grey_solid.png
(Stored with Git LFS)
Normal file
Binary file not shown.
40
assets/greybox/greybox_grey_solid.png.import
Normal file
40
assets/greybox/greybox_grey_solid.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://d35wx32padgp1"
|
||||
path="res://.godot/imported/greybox_grey_solid.png-65bbc21ac3c6d5cf6c0ccf4750ce8a08.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/greybox/greybox_grey_solid.png"
|
||||
dest_files=["res://.godot/imported/greybox_grey_solid.png-65bbc21ac3c6d5cf6c0ccf4750ce8a08.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
assets/greybox/greybox_grey_solid_2.png
(Stored with Git LFS)
Normal file
BIN
assets/greybox/greybox_grey_solid_2.png
(Stored with Git LFS)
Normal file
Binary file not shown.
40
assets/greybox/greybox_grey_solid_2.png.import
Normal file
40
assets/greybox/greybox_grey_solid_2.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bhvwhtsguc6g8"
|
||||
path="res://.godot/imported/greybox_grey_solid_2.png-d23eac6cd5cfc0459188de4ea58a8ebb.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/greybox/greybox_grey_solid_2.png"
|
||||
dest_files=["res://.godot/imported/greybox_grey_solid_2.png-d23eac6cd5cfc0459188de4ea58a8ebb.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
assets/greybox/greybox_light_grid.png
(Stored with Git LFS)
Normal file
BIN
assets/greybox/greybox_light_grid.png
(Stored with Git LFS)
Normal file
Binary file not shown.
40
assets/greybox/greybox_light_grid.png.import
Normal file
40
assets/greybox/greybox_light_grid.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://d0qflfrscommy"
|
||||
path="res://.godot/imported/greybox_light_grid.png-7eca13ef10388b7a948705824b3112ee.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/greybox/greybox_light_grid.png"
|
||||
dest_files=["res://.godot/imported/greybox_light_grid.png-7eca13ef10388b7a948705824b3112ee.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
assets/greybox/greybox_light_solid.png
(Stored with Git LFS)
Normal file
BIN
assets/greybox/greybox_light_solid.png
(Stored with Git LFS)
Normal file
Binary file not shown.
40
assets/greybox/greybox_light_solid.png.import
Normal file
40
assets/greybox/greybox_light_solid.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://v6xb3yyu4bam"
|
||||
path="res://.godot/imported/greybox_light_solid.png-cebdd2fedcee40d20355e5b9f3921fc2.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/greybox/greybox_light_solid.png"
|
||||
dest_files=["res://.godot/imported/greybox_light_solid.png-cebdd2fedcee40d20355e5b9f3921fc2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
assets/greybox/greybox_lime_grid.png
(Stored with Git LFS)
Normal file
BIN
assets/greybox/greybox_lime_grid.png
(Stored with Git LFS)
Normal file
Binary file not shown.
40
assets/greybox/greybox_lime_grid.png.import
Normal file
40
assets/greybox/greybox_lime_grid.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c74sh3woly0qb"
|
||||
path="res://.godot/imported/greybox_lime_grid.png-73007e8b635010f9a4394691d1604216.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/greybox/greybox_lime_grid.png"
|
||||
dest_files=["res://.godot/imported/greybox_lime_grid.png-73007e8b635010f9a4394691d1604216.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
assets/greybox/greybox_lime_solid.png
(Stored with Git LFS)
Normal file
BIN
assets/greybox/greybox_lime_solid.png
(Stored with Git LFS)
Normal file
Binary file not shown.
40
assets/greybox/greybox_lime_solid.png.import
Normal file
40
assets/greybox/greybox_lime_solid.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://d2w4kpdxjqs0v"
|
||||
path="res://.godot/imported/greybox_lime_solid.png-9c448948d12ebcb271a2ca5469bcd48f.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/greybox/greybox_lime_solid.png"
|
||||
dest_files=["res://.godot/imported/greybox_lime_solid.png-9c448948d12ebcb271a2ca5469bcd48f.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
assets/greybox/greybox_orange_grid.png
(Stored with Git LFS)
Normal file
BIN
assets/greybox/greybox_orange_grid.png
(Stored with Git LFS)
Normal file
Binary file not shown.
40
assets/greybox/greybox_orange_grid.png.import
Normal file
40
assets/greybox/greybox_orange_grid.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bf2kevgw4gu03"
|
||||
path="res://.godot/imported/greybox_orange_grid.png-9f4765cb2a776889705b67f169cac12f.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/greybox/greybox_orange_grid.png"
|
||||
dest_files=["res://.godot/imported/greybox_orange_grid.png-9f4765cb2a776889705b67f169cac12f.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
assets/greybox/greybox_orange_solid.png
(Stored with Git LFS)
Normal file
BIN
assets/greybox/greybox_orange_solid.png
(Stored with Git LFS)
Normal file
Binary file not shown.
40
assets/greybox/greybox_orange_solid.png.import
Normal file
40
assets/greybox/greybox_orange_solid.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bwt2ejfdvi505"
|
||||
path="res://.godot/imported/greybox_orange_solid.png-b4529d3416b3e38d1ff6e3dc3184f0c6.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/greybox/greybox_orange_solid.png"
|
||||
dest_files=["res://.godot/imported/greybox_orange_solid.png-b4529d3416b3e38d1ff6e3dc3184f0c6.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
assets/greybox/greybox_purple_grid.png
(Stored with Git LFS)
Normal file
BIN
assets/greybox/greybox_purple_grid.png
(Stored with Git LFS)
Normal file
Binary file not shown.
40
assets/greybox/greybox_purple_grid.png.import
Normal file
40
assets/greybox/greybox_purple_grid.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://des0wknntv107"
|
||||
path="res://.godot/imported/greybox_purple_grid.png-699ec8cec24b371f6d191fb0403f1413.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/greybox/greybox_purple_grid.png"
|
||||
dest_files=["res://.godot/imported/greybox_purple_grid.png-699ec8cec24b371f6d191fb0403f1413.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
assets/greybox/greybox_purple_solid.png
(Stored with Git LFS)
Normal file
BIN
assets/greybox/greybox_purple_solid.png
(Stored with Git LFS)
Normal file
Binary file not shown.
40
assets/greybox/greybox_purple_solid.png.import
Normal file
40
assets/greybox/greybox_purple_solid.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c3sh7e12tuphh"
|
||||
path="res://.godot/imported/greybox_purple_solid.png-2834bf5e93ffb097572663d0b6711ab0.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/greybox/greybox_purple_solid.png"
|
||||
dest_files=["res://.godot/imported/greybox_purple_solid.png-2834bf5e93ffb097572663d0b6711ab0.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
assets/greybox/greybox_red_grid.png
(Stored with Git LFS)
Normal file
BIN
assets/greybox/greybox_red_grid.png
(Stored with Git LFS)
Normal file
Binary file not shown.
40
assets/greybox/greybox_red_grid.png.import
Normal file
40
assets/greybox/greybox_red_grid.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bxdr0oajba7d2"
|
||||
path="res://.godot/imported/greybox_red_grid.png-354bd18621a1d081151863b3288fac86.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/greybox/greybox_red_grid.png"
|
||||
dest_files=["res://.godot/imported/greybox_red_grid.png-354bd18621a1d081151863b3288fac86.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
assets/greybox/greybox_red_solid.png
(Stored with Git LFS)
Normal file
BIN
assets/greybox/greybox_red_solid.png
(Stored with Git LFS)
Normal file
Binary file not shown.
40
assets/greybox/greybox_red_solid.png.import
Normal file
40
assets/greybox/greybox_red_solid.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cun7t30skbay6"
|
||||
path="res://.godot/imported/greybox_red_solid.png-9fe18e9b535fb0ec00eb458b83a9b8e7.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/greybox/greybox_red_solid.png"
|
||||
dest_files=["res://.godot/imported/greybox_red_solid.png-9fe18e9b535fb0ec00eb458b83a9b8e7.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
assets/greybox/greybox_teal_grid.png
(Stored with Git LFS)
Normal file
BIN
assets/greybox/greybox_teal_grid.png
(Stored with Git LFS)
Normal file
Binary file not shown.
40
assets/greybox/greybox_teal_grid.png.import
Normal file
40
assets/greybox/greybox_teal_grid.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://nvc7eq13ym8q"
|
||||
path="res://.godot/imported/greybox_teal_grid.png-faf53fab39f3fd6e4971da5026ce1ba6.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/greybox/greybox_teal_grid.png"
|
||||
dest_files=["res://.godot/imported/greybox_teal_grid.png-faf53fab39f3fd6e4971da5026ce1ba6.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
assets/greybox/greybox_teal_solid.png
(Stored with Git LFS)
Normal file
BIN
assets/greybox/greybox_teal_solid.png
(Stored with Git LFS)
Normal file
Binary file not shown.
40
assets/greybox/greybox_teal_solid.png.import
Normal file
40
assets/greybox/greybox_teal_solid.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bn0gggbdrcpw"
|
||||
path="res://.godot/imported/greybox_teal_solid.png-a6697a5a3b72246fb8772342dca6c5c5.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/greybox/greybox_teal_solid.png"
|
||||
dest_files=["res://.godot/imported/greybox_teal_solid.png-a6697a5a3b72246fb8772342dca6c5c5.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
assets/greybox/greybox_yellow_grid.png
(Stored with Git LFS)
Normal file
BIN
assets/greybox/greybox_yellow_grid.png
(Stored with Git LFS)
Normal file
Binary file not shown.
40
assets/greybox/greybox_yellow_grid.png.import
Normal file
40
assets/greybox/greybox_yellow_grid.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c0kfbwkede8q"
|
||||
path="res://.godot/imported/greybox_yellow_grid.png-415f899edf065d8a8b02962f77950d93.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/greybox/greybox_yellow_grid.png"
|
||||
dest_files=["res://.godot/imported/greybox_yellow_grid.png-415f899edf065d8a8b02962f77950d93.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
assets/greybox/greybox_yellow_solid.png
(Stored with Git LFS)
Normal file
BIN
assets/greybox/greybox_yellow_solid.png
(Stored with Git LFS)
Normal file
Binary file not shown.
40
assets/greybox/greybox_yellow_solid.png.import
Normal file
40
assets/greybox/greybox_yellow_solid.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ehp3ggwyy8xn"
|
||||
path="res://.godot/imported/greybox_yellow_solid.png-d0b55f895a8bba6a650ccf694b93fdc0.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/greybox/greybox_yellow_solid.png"
|
||||
dest_files=["res://.godot/imported/greybox_yellow_solid.png-d0b55f895a8bba6a650ccf694b93fdc0.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
assets/greybox/placeholder.png
(Stored with Git LFS)
Normal file
BIN
assets/greybox/placeholder.png
(Stored with Git LFS)
Normal file
Binary file not shown.
40
assets/greybox/placeholder.png.import
Normal file
40
assets/greybox/placeholder.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b305rs4ouva73"
|
||||
path="res://.godot/imported/placeholder.png-3548d9618c59656d22cf299003541677.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/greybox/placeholder.png"
|
||||
dest_files=["res://.godot/imported/placeholder.png-3548d9618c59656d22cf299003541677.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
37
assets/swords/resources/fp_sword20.tres
Normal file
37
assets/swords/resources/fp_sword20.tres
Normal file
File diff suppressed because one or more lines are too long
@@ -1,7 +1,7 @@
|
||||
using Godot;
|
||||
using System;
|
||||
|
||||
[GlobalClass, Icon("res://assets/ui/IconGodotNode/control/icon_heart.png")]
|
||||
[GlobalClass, Icon("res://assets/ui/IconGodotNode/node_3D/icon_heart.png")]
|
||||
public partial class CHealthbar : Sprite3D
|
||||
{
|
||||
private Healthbar _healthbar;
|
||||
|
||||
@@ -19,6 +19,11 @@ script = ExtResource("5_0k5xu")
|
||||
GravityModifier = 5.0
|
||||
metadata/_custom_type_script = "uid://dtpxijlnb2c5"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_p48l4"]
|
||||
script = ExtResource("9_55uwi")
|
||||
StartingHealth = 1000.0
|
||||
metadata/_custom_type_script = "uid://baiapod3csndf"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_epn1o"]
|
||||
script = ExtResource("9_55uwi")
|
||||
StartingHealth = 1.0
|
||||
@@ -26,10 +31,10 @@ metadata/_custom_type_script = "uid://baiapod3csndf"
|
||||
|
||||
[node name="Main" unique_id=1551129541 instance=ExtResource("1_w4y6q")]
|
||||
|
||||
[node name="BackgroundMusicPlayer" parent="." index="0"]
|
||||
[node name="BackgroundMusicPlayer" parent="." index="0" unique_id=879496303]
|
||||
autoplay = false
|
||||
|
||||
[node name="Player" parent="." index="5"]
|
||||
[node name="Player" parent="." index="5" unique_id=1309399929]
|
||||
transform = Transform3D(0.99999994, 0, 0, 0, 1, 0, 0, 0, 0.99999994, 2, 1.5, 9.5)
|
||||
|
||||
[node name="Greybox" type="CSGCombiner3D" parent="." index="7" unique_id=646927976]
|
||||
@@ -113,6 +118,7 @@ RMovement = SubResource("Resource_xixm3")
|
||||
[node name="Enemy3" parent="." index="11" unique_id=271578597 node_paths=PackedStringArray("Target") instance=ExtResource("4_5mjy0")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14, 4, -3.3368092)
|
||||
Target = NodePath("../Player")
|
||||
RHealth = SubResource("Resource_p48l4")
|
||||
RMovement = SubResource("Resource_xixm3")
|
||||
|
||||
[node name="FlyingEnemy" parent="." index="12" unique_id=1167959205 node_paths=PackedStringArray("Target") instance=ExtResource("6_xuqf0")]
|
||||
@@ -125,18 +131,20 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 7, -16)
|
||||
Target = NodePath("../Player")
|
||||
RMovement = SubResource("Resource_xixm3")
|
||||
|
||||
[node name="GroundedSpawner" parent="." index="14" unique_id=557145011 instance=ExtResource("7_ba7rw")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 2.5, -15)
|
||||
[node name="GroundedSpawner" parent="." index="14" unique_id=557145011 node_paths=PackedStringArray("Target") instance=ExtResource("7_ba7rw")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5, 2.5, -15)
|
||||
EnemyToSpawn = ExtResource("4_5mjy0")
|
||||
MovementInputs = ExtResource("8_cdhvi")
|
||||
HealthInputs = SubResource("Resource_epn1o")
|
||||
DamageInputs = ExtResource("10_xyaoo")
|
||||
Target = NodePath("../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
[node name="FlyingSpawner" parent="." index="15" unique_id=974076606 instance=ExtResource("7_ba7rw")]
|
||||
[node name="FlyingSpawner" parent="." index="15" unique_id=974076606 node_paths=PackedStringArray("Target") instance=ExtResource("7_ba7rw")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18, 11, -14)
|
||||
EnemyToSpawn = ExtResource("6_xuqf0")
|
||||
MovementInputs = ExtResource("11_yug0s")
|
||||
HealthInputs = ExtResource("12_qgrw7")
|
||||
DamageInputs = ExtResource("13_qulje")
|
||||
Target = NodePath("../Player")
|
||||
IsActiveOnStart = false
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
extends Control
|
||||
class_name LevelSelectMenu
|
||||
|
||||
## Loads a simple ItemList node within a margin container. SceneLister updates
|
||||
## the available scenes in the directory provided. Activating a level will update
|
||||
@@ -29,5 +30,5 @@ func add_levels_to_container() -> void:
|
||||
level_buttons_container.add_item(button_name)
|
||||
|
||||
func _on_level_buttons_container_item_activated(index: int) -> void:
|
||||
GameState.set_current_level(index)
|
||||
level_selected.emit()
|
||||
var level_to_load = scene_lister.files.get(index)
|
||||
SceneLoader.load_scene(level_to_load)
|
||||
|
||||
@@ -43,7 +43,7 @@ item_0/text = "1 - ExampleLevel"
|
||||
|
||||
[node name="SceneLister" type="Node" parent="." unique_id=149935027]
|
||||
script = ExtResource("3_stdqw")
|
||||
files = Array[String](["res://maps/level1.tscn", "res://maps/city.tscn", "res://maps/GYMs/enemies.tscn", "res://maps/GYMs/metrics.tscn"])
|
||||
directory = "res://menus/scenes/game_scene/levels"
|
||||
files = Array[String](["res://maps/level1.tscn", "res://maps/city.tscn", "res://maps/GYMs/metrics.tscn"])
|
||||
directory = "res://maps"
|
||||
|
||||
[connection signal="item_activated" from="Control/LevelButtonsContainer" to="." method="_on_level_buttons_container_item_activated"]
|
||||
|
||||
@@ -4,7 +4,27 @@ class_name Toolbox
|
||||
extends OverlaidMenu
|
||||
|
||||
@export var player: PlayerController
|
||||
@export var level_selection_menu: PackedScene = preload("uid://fybssggvts5q")
|
||||
|
||||
@onready var player_invicible_toggle: CheckButton = %PlayerInvicibleToggle
|
||||
|
||||
func _ready() -> void:
|
||||
player_invicible_toggle.button_pressed = player.IsInvincibleOverride
|
||||
|
||||
|
||||
func _on_kill_player_button_pressed() -> void:
|
||||
get_tree().create_timer(1).timeout.connect(player.Kill)
|
||||
close()
|
||||
|
||||
func _on_player_invicible_toggled(toggled_on: bool) -> void:
|
||||
player.IsInvincibleOverride = toggled_on
|
||||
print(player.IsInvincible)
|
||||
|
||||
|
||||
func _on_restart_current_level_pressed() -> void:
|
||||
SceneLoader.reload_current_scene()
|
||||
|
||||
|
||||
func _on_select_level_pressed() -> void:
|
||||
var menu: LevelSelectMenu = level_selection_menu.instantiate()
|
||||
add_child(menu)
|
||||
|
||||
@@ -50,29 +50,69 @@ theme_override_font_sizes/font_size = 24
|
||||
text = "Toolbox"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="PlayerSection" type="MarginContainer" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer" unique_id=461792371]
|
||||
[node name="PlayerSectionMargin" type="MarginContainer" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer" unique_id=461792371]
|
||||
layout_mode = 2
|
||||
theme_override_constants/margin_top = 16
|
||||
theme_override_constants/margin_bottom = 16
|
||||
|
||||
[node name="MenuButtons" type="BoxContainer" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSection" unique_id=469432036]
|
||||
unique_name_in_owner = true
|
||||
[node name="PlayerSection" type="BoxContainer" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSectionMargin" unique_id=469432036]
|
||||
custom_minimum_size = Vector2(128, 0)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
size_flags_vertical = 3
|
||||
theme_override_constants/separation = 16
|
||||
alignment = 1
|
||||
vertical = true
|
||||
script = ExtResource("2_6ax4q")
|
||||
|
||||
[node name="PlayerSectionLabel" type="Label" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSection/MenuButtons" unique_id=1100827847]
|
||||
[node name="PlayerSectionLabel" type="Label" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSectionMargin/PlayerSection" unique_id=1100827847]
|
||||
layout_mode = 2
|
||||
text = "Player"
|
||||
|
||||
[node name="KillPlayerButton" type="Button" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSection/MenuButtons" unique_id=472828424]
|
||||
[node name="PlayerUtilsContainer" type="HBoxContainer" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSectionMargin/PlayerSection" unique_id=993608648]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
theme_override_constants/separation = 8
|
||||
|
||||
[node name="PlayerInvicibleToggle" type="CheckButton" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSectionMargin/PlayerSection/PlayerUtilsContainer" unique_id=960956060]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Invincible"
|
||||
script = ExtResource("2_6ax4q")
|
||||
|
||||
[node name="KillPlayerButton" type="Button" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSectionMargin/PlayerSection/PlayerUtilsContainer" unique_id=472828424]
|
||||
layout_mode = 2
|
||||
text = "Kill in 1s"
|
||||
|
||||
[connection signal="pressed" from="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSection/MenuButtons/KillPlayerButton" to="." method="_on_kill_player_button_pressed"]
|
||||
[node name="LevelSelectionMargin" type="MarginContainer" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer" unique_id=517648431]
|
||||
layout_mode = 2
|
||||
theme_override_constants/margin_top = 16
|
||||
theme_override_constants/margin_bottom = 16
|
||||
|
||||
[node name="LevelSelectionSection" type="BoxContainer" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/LevelSelectionMargin" unique_id=2038380087]
|
||||
custom_minimum_size = Vector2(128, 0)
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
theme_override_constants/separation = 16
|
||||
vertical = true
|
||||
|
||||
[node name="LevelSelectionLabel" type="Label" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/LevelSelectionMargin/LevelSelectionSection" unique_id=950442689]
|
||||
layout_mode = 2
|
||||
text = "Levels"
|
||||
|
||||
[node name="LevelSelectionContainer" type="HBoxContainer" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/LevelSelectionMargin/LevelSelectionSection" unique_id=1674253271]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
theme_override_constants/separation = 8
|
||||
|
||||
[node name="RestartCurrentButton" type="Button" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/LevelSelectionMargin/LevelSelectionSection/LevelSelectionContainer" unique_id=1059727667]
|
||||
layout_mode = 2
|
||||
text = "Restart current
|
||||
"
|
||||
|
||||
[node name="SelectLevel" type="Button" parent="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/LevelSelectionMargin/LevelSelectionSection/LevelSelectionContainer" unique_id=2015444126]
|
||||
layout_mode = 2
|
||||
text = "Select levet
|
||||
"
|
||||
|
||||
[connection signal="toggled" from="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSectionMargin/PlayerSection/PlayerUtilsContainer/PlayerInvicibleToggle" to="." method="_on_player_invicible_toggled"]
|
||||
[connection signal="pressed" from="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/PlayerSectionMargin/PlayerSection/PlayerUtilsContainer/KillPlayerButton" to="." method="_on_kill_player_button_pressed"]
|
||||
[connection signal="pressed" from="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/LevelSelectionMargin/LevelSelectionSection/LevelSelectionContainer/RestartCurrentButton" to="." method="_on_restart_current_level_pressed"]
|
||||
[connection signal="pressed" from="MarginContainer/MenuPanelContainer/MarginContainer/BoxContainer/LevelSelectionMargin/LevelSelectionSection/LevelSelectionContainer/SelectLevel" to="." method="_on_select_level_pressed"]
|
||||
|
||||
@@ -33,6 +33,13 @@ stream_2/stream = ExtResource("3_xfjxc")
|
||||
stream_3/stream = ExtResource("4_ycvo6")
|
||||
stream_4/stream = ExtResource("5_5bvpy")
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_r7v0u"]
|
||||
random_pitch = 1.0999973
|
||||
streams_count = 3
|
||||
stream_0/stream = ExtResource("14_qnngs")
|
||||
stream_1/stream = ExtResource("15_3j1dm")
|
||||
stream_2/stream = ExtResource("16_hln0b")
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_i5yri"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 3
|
||||
@@ -68,7 +75,7 @@ stream_0/stream = ExtResource("21_r7v0u")
|
||||
stream_1/stream = ExtResource("22_l756u")
|
||||
|
||||
[resource]
|
||||
clip_count = 10
|
||||
clip_count = 11
|
||||
clip_0/name = &"footsteps"
|
||||
clip_0/stream = SubResource("AudioStreamRandomizer_rs8q3")
|
||||
clip_0/auto_advance = 0
|
||||
@@ -99,6 +106,9 @@ clip_8/auto_advance = 0
|
||||
clip_9/name = &"glide"
|
||||
clip_9/stream = ExtResource("19_5bvpy")
|
||||
clip_9/auto_advance = 0
|
||||
clip_10/name = &"parry"
|
||||
clip_10/stream = SubResource("AudioStreamRandomizer_r7v0u")
|
||||
clip_10/auto_advance = 0
|
||||
_transitions = {
|
||||
Vector2i(-1, -1): {
|
||||
"fade_beats": 1.0,
|
||||
|
||||
@@ -61,7 +61,7 @@ metadata/_custom_type_script = "uid://jitubgv6judn"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_abfq8"]
|
||||
script = ExtResource("3_cb2lu")
|
||||
Modifier = 10.0
|
||||
Modifier = 20.0
|
||||
metadata/_custom_type_script = "uid://b44cse62qru7j"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ue7xq"]
|
||||
@@ -614,12 +614,24 @@ to = NodePath("../../StandardAttack")
|
||||
event = &"standard_attack"
|
||||
delay_in_seconds = "0.0"
|
||||
|
||||
[node name="ToStandardParry" type="Node" parent="StateChart/Root/Attack/Ready" unique_id=237786700]
|
||||
script = ExtResource("28_n7qhm")
|
||||
to = NodePath("../../StandardParry")
|
||||
event = &"standard_parry"
|
||||
delay_in_seconds = "0.0"
|
||||
|
||||
[node name="ToDashAttack" type="Node" parent="StateChart/Root/Attack/Ready" unique_id=505795999]
|
||||
script = ExtResource("28_n7qhm")
|
||||
to = NodePath("../../DashAttack")
|
||||
event = &"dash_attack"
|
||||
delay_in_seconds = "0.0"
|
||||
|
||||
[node name="ToDashParry" type="Node" parent="StateChart/Root/Attack/Ready" unique_id=39360094]
|
||||
script = ExtResource("28_n7qhm")
|
||||
to = NodePath("../../DashParry")
|
||||
event = &"dash_parry"
|
||||
delay_in_seconds = "0.0"
|
||||
|
||||
[node name="StandardAttack" type="Node" parent="StateChart/Root/Attack" unique_id=569485647]
|
||||
script = ExtResource("27_34snm")
|
||||
|
||||
@@ -644,6 +656,30 @@ to = NodePath("../../Ready")
|
||||
event = &"attack_finished"
|
||||
delay_in_seconds = "0.0"
|
||||
|
||||
[node name="StandardParry" type="Node" parent="StateChart/Root/Attack" unique_id=1244610762]
|
||||
script = ExtResource("27_34snm")
|
||||
|
||||
[node name="ToReady" type="Node" parent="StateChart/Root/Attack/StandardParry" unique_id=472222096]
|
||||
script = ExtResource("28_n7qhm")
|
||||
to = NodePath("../../Ready")
|
||||
event = &"attack_finished"
|
||||
delay_in_seconds = "0.0"
|
||||
|
||||
[node name="ToDashParry" type="Node" parent="StateChart/Root/Attack/StandardParry" unique_id=548221621]
|
||||
script = ExtResource("28_n7qhm")
|
||||
to = NodePath("../../DashParry")
|
||||
event = &"dash_parry"
|
||||
delay_in_seconds = "0.0"
|
||||
|
||||
[node name="DashParry" type="Node" parent="StateChart/Root/Attack" unique_id=898768175]
|
||||
script = ExtResource("27_34snm")
|
||||
|
||||
[node name="ToReady" type="Node" parent="StateChart/Root/Attack/DashParry" unique_id=533843974]
|
||||
script = ExtResource("28_n7qhm")
|
||||
to = NodePath("../../Ready")
|
||||
event = &"attack_finished"
|
||||
delay_in_seconds = "0.0"
|
||||
|
||||
[node name="Movement" type="Node" parent="StateChart/Root" unique_id=1029421869]
|
||||
script = ExtResource("26_infe6")
|
||||
initial_state = NodePath("Grounded")
|
||||
|
||||
@@ -12,19 +12,16 @@ public partial class PlayerUi : Control
|
||||
public enum TargetState
|
||||
{
|
||||
NoTarget,
|
||||
TargetTooFar,
|
||||
TargetInRange,
|
||||
TargetDashThrough
|
||||
TargetWouldNotKill,
|
||||
TargetWouldKill
|
||||
}
|
||||
|
||||
public record TargetProperties(TargetState State, Vector2 Position);
|
||||
|
||||
[Export]
|
||||
public Color DashThroughColor { get; set; } = new Color("009c8f");
|
||||
public Color WouldKillColor { get; set; } = new Color("009c8f");
|
||||
[Export]
|
||||
public Color DashBlockedColor { get; set; } = new Color("fc001c");
|
||||
[Export]
|
||||
public Color DashOutOfRangeColor { get; set; } = new Color("ffffff");
|
||||
public Color WouldNotKillColor { get; set; } = new Color("fc001c");
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
@@ -49,10 +46,9 @@ public partial class PlayerUi : Control
|
||||
|
||||
var modulation = state switch
|
||||
{
|
||||
TargetState.TargetTooFar => DashOutOfRangeColor,
|
||||
TargetState.TargetInRange => DashBlockedColor,
|
||||
TargetState.TargetDashThrough => DashThroughColor,
|
||||
_ => DashOutOfRangeColor
|
||||
TargetState.TargetWouldNotKill => WouldNotKillColor,
|
||||
TargetState.TargetWouldKill => WouldKillColor,
|
||||
_ => WouldNotKillColor
|
||||
};
|
||||
_enemyTarget.SetVisible(visible);
|
||||
_enemyTarget.SetPosition(position - _enemyTarget.Size / 2);
|
||||
|
||||
@@ -336,6 +336,8 @@ public partial class PlayerController : CharacterBody3D,
|
||||
|
||||
private StateChartState _attackStandard;
|
||||
private StateChartState _attackDash;
|
||||
private StateChartState _parryStandard;
|
||||
private StateChartState _parryDash;
|
||||
|
||||
private Transition _onJumpFromWall;
|
||||
private Transition _onJumpFromWallFalling;
|
||||
@@ -352,6 +354,13 @@ public partial class PlayerController : CharacterBody3D,
|
||||
public float CurrentHealth { get; set; }
|
||||
|
||||
private bool _isInvincible;
|
||||
public bool IsInvincibleOverride { get; set; }
|
||||
public bool IsInvincible
|
||||
{
|
||||
get => _isInvincible || IsInvincibleOverride;
|
||||
set => _isInvincible = value;
|
||||
}
|
||||
|
||||
private readonly List<IDamageable> _hitEnemies = new List<IDamageable>();
|
||||
|
||||
private ShapeCast3D _closeEnemyDetector;
|
||||
@@ -481,6 +490,8 @@ public partial class PlayerController : CharacterBody3D,
|
||||
// Attack states
|
||||
_attackStandard = StateChartState.Of(GetNode("StateChart/Root/Attack/StandardAttack"));
|
||||
_attackDash = StateChartState.Of(GetNode("StateChart/Root/Attack/DashAttack"));
|
||||
_parryStandard = StateChartState.Of(GetNode("StateChart/Root/Attack/StandardParry"));
|
||||
_parryDash = StateChartState.Of(GetNode("StateChart/Root/Attack/DashParry"));
|
||||
|
||||
// State timers
|
||||
_powerCooldownTimer = GetNode<Timer>("PowerCooldown");
|
||||
@@ -597,6 +608,8 @@ public partial class PlayerController : CharacterBody3D,
|
||||
// Attack states
|
||||
_attackStandard.StateEntered += OnStandardAttackStarted;
|
||||
_attackDash.StateEntered += OnDashAttackStarted;
|
||||
_parryStandard.StateEntered += OnStandardParryStarted;
|
||||
_parryDash.StateEntered += OnDashParryStarted;
|
||||
|
||||
// Testing out kill
|
||||
// GetTree().CreateTimer(2).Timeout += () => Kill(this);
|
||||
@@ -1432,7 +1445,7 @@ public partial class PlayerController : CharacterBody3D,
|
||||
SetupSlideCollision();
|
||||
|
||||
SlidingEnemyDetector.Monitoring = true;
|
||||
_isInvincible = true;
|
||||
IsInvincible = true;
|
||||
}
|
||||
|
||||
public bool CanStandUpFromSlide()
|
||||
@@ -1559,7 +1572,7 @@ public partial class PlayerController : CharacterBody3D,
|
||||
public void SlideEnded()
|
||||
{
|
||||
SlidingEnemyDetector.Monitoring = false;
|
||||
_isInvincible = false;
|
||||
IsInvincible = false;
|
||||
|
||||
SetupStandingCollision();
|
||||
_audioStream!.SwitchToClipByName("footsteps");
|
||||
@@ -1709,16 +1722,8 @@ public partial class PlayerController : CharacterBody3D,
|
||||
///////////////////////////
|
||||
public void OnInputParryPressed()
|
||||
{
|
||||
if (WeaponSystem.FlyingState.Active)
|
||||
{
|
||||
DashToFlyingWeapon();
|
||||
return;
|
||||
}
|
||||
|
||||
if (WeaponSystem.PlantedState.Active)
|
||||
{
|
||||
DashToPlantedWeapon();
|
||||
}
|
||||
var attackToDo = _isEnemyInDashAttackRange ? "dash_parry" : "standard_parry";
|
||||
_playerState.SendEvent(attackToDo);
|
||||
}
|
||||
|
||||
///////////////////////////
|
||||
@@ -1965,7 +1970,7 @@ public partial class PlayerController : CharacterBody3D,
|
||||
|
||||
if (DashSystem.CanDashThroughTarget && DashSystem.CollidedObject is ITargetable dashTarget)
|
||||
{
|
||||
enemyTargetState = PlayerUi.TargetState.TargetDashThrough;
|
||||
enemyTargetState = PlayerUi.TargetState.TargetWouldKill;
|
||||
_targetLocation = dashTarget.GetTargetGlobalPosition();
|
||||
positionOnScreen = _camera.UnprojectPosition(_targetLocation);
|
||||
PlayerUi.SetEnemyTargetProperties(new PlayerUi.TargetProperties(enemyTargetState, positionOnScreen));
|
||||
@@ -1991,25 +1996,20 @@ public partial class PlayerController : CharacterBody3D,
|
||||
// var targetDistance = _targetLocation.DistanceTo(GlobalPosition);
|
||||
positionOnScreen = _camera.UnprojectPosition(_targetLocation);
|
||||
|
||||
_isEnemyInDashAttackRange = true; //targetDistance < TargetInRangeDistance; // Removing the "almost dash" UI
|
||||
if (_isEnemyInDashAttackRange)
|
||||
var wouldKill = false;
|
||||
if (_targetObject is IHealthable h and IDamageable d)
|
||||
{
|
||||
enemyTargetState = PlayerUi.TargetState.TargetDashThrough;
|
||||
if (_targetObject is IDamageable damageable and IHealthable healthable)
|
||||
{
|
||||
var wouldBeDamage = damageable.ComputeDamage(new DamageRecord(GlobalPosition, RDamage));
|
||||
if (wouldBeDamage.Damage.DamageDealt < healthable.CurrentHealth)
|
||||
enemyTargetState = PlayerUi.TargetState.TargetInRange;
|
||||
}
|
||||
var wouldBeDamage = d.ComputeDamage(new DamageRecord(GlobalPosition, RDamage));
|
||||
if (h.CurrentHealth < wouldBeDamage.Damage.DamageDealt) wouldKill = true;
|
||||
}
|
||||
else enemyTargetState = PlayerUi.TargetState.TargetTooFar;
|
||||
|
||||
_isEnemyInDashAttackRange = true;
|
||||
enemyTargetState = wouldKill ? PlayerUi.TargetState.TargetWouldKill : PlayerUi.TargetState.TargetWouldNotKill;
|
||||
PlayerUi.SetEnemyTargetProperties(new PlayerUi.TargetProperties(enemyTargetState, positionOnScreen));
|
||||
}
|
||||
|
||||
public DamageRecord TakeDamage(DamageRecord damageRecord)
|
||||
{
|
||||
if (_isInvincible)
|
||||
if (IsInvincible)
|
||||
return damageRecord with { Damage = new RDamage(0, damageRecord.Damage.DamageType) };
|
||||
|
||||
var finalDamage = CDamageable.TakeDamage(damageRecord);
|
||||
@@ -2030,7 +2030,7 @@ public partial class PlayerController : CharacterBody3D,
|
||||
|
||||
public void OnHitInvincibility()
|
||||
{
|
||||
_isInvincible = true;
|
||||
IsInvincible = true;
|
||||
_invincibilityTimer.Start();
|
||||
}
|
||||
|
||||
@@ -2041,15 +2041,22 @@ public partial class PlayerController : CharacterBody3D,
|
||||
_audioStream!.SwitchToClipByName("attacks");
|
||||
}
|
||||
|
||||
private PhysicsDirectSpaceState3D _spaceState;
|
||||
public void OnDashAttackStarted()
|
||||
public void OnStandardParryStarted()
|
||||
{
|
||||
_audioStream!.SwitchToClipByName("attacks");
|
||||
|
||||
_isInvincible = true;
|
||||
_attackCooldown.Start();
|
||||
HeadSystem.OnParry();
|
||||
_audioStream!.SwitchToClipByName("parry");
|
||||
}
|
||||
|
||||
private PhysicsDirectSpaceState3D _spaceState;
|
||||
|
||||
public void StartDashAction(bool isParry)
|
||||
{
|
||||
var streamName = isParry ? "parry" : "attacks";
|
||||
_audioStream!.SwitchToClipByName(streamName);
|
||||
IsInvincible = true;
|
||||
|
||||
var plannedDashLocation = _targetLocation + Vector3.Down*HeadSystem.Position.Y;
|
||||
|
||||
var query = PhysicsRayQueryParameters3D.Create(HeadSystem.GlobalPosition, plannedDashLocation, DashSystem.DashCast3D.CollisionMask);
|
||||
var result = _spaceState.IntersectRay(query);
|
||||
if (result.Count > 0)
|
||||
@@ -2057,41 +2064,50 @@ public partial class PlayerController : CharacterBody3D,
|
||||
plannedDashLocation = (Vector3) result["position"];
|
||||
}
|
||||
|
||||
var travel = plannedDashLocation - GlobalPosition;
|
||||
var travel = plannedDashLocation - (GlobalPosition + Vector3.Up*_playerHeight/2);
|
||||
_preDashVelocity = Velocity;
|
||||
_dashDirection = travel.Normalized();
|
||||
var dashTween = CreatePositionTween(plannedDashLocation, AimedDashTime);
|
||||
dashTween.Finished += OnDashAttackEnded;
|
||||
if (isParry) dashTween.Finished += OnDashParryEnded;
|
||||
else dashTween.Finished += OnDashAttackEnded;
|
||||
}
|
||||
public void OnDashAttackStarted()
|
||||
{
|
||||
StartDashAction(isParry: false);
|
||||
}
|
||||
public void OnDashParryStarted()
|
||||
{
|
||||
StartDashAction(isParry: true);
|
||||
}
|
||||
|
||||
public void OnDashAttackEnded()
|
||||
public void StopDashAction()
|
||||
{
|
||||
if (_targetObject is IDamageable damageable)
|
||||
{
|
||||
_hitEnemies.Add(damageable);
|
||||
TriggerDamage();
|
||||
}
|
||||
|
||||
if (_targetObject is IStunnable stunnable)
|
||||
{
|
||||
stunnable.Stun();
|
||||
}
|
||||
|
||||
var shouldKnockback = _targetObject is IHealthable { CurrentHealth: > 0 };
|
||||
if (shouldKnockback)
|
||||
{
|
||||
Velocity = -_dashDirection*RKnockback.Modifier;
|
||||
}
|
||||
else
|
||||
{
|
||||
GlobalPosition = ComputePositionAfterTargetedDash(_targetLocation, _targetHitLocation);
|
||||
var postDashVelocity = _preDashVelocity.Length() > PostDashSpeed ? _preDashVelocity.Length() : PostDashSpeed;
|
||||
Velocity = _dashDirection * postDashVelocity;
|
||||
}
|
||||
_isInvincible = false;
|
||||
IsInvincible = false;
|
||||
_playerState.SendEvent("attack_finished");
|
||||
}
|
||||
|
||||
public void OnDashAttackEnded()
|
||||
{
|
||||
StopDashAction();
|
||||
GlobalPosition = ComputePositionAfterTargetedDash(_targetLocation, _targetHitLocation);
|
||||
var postDashVelocity = _preDashVelocity.Length() > PostDashSpeed ? _preDashVelocity.Length() : PostDashSpeed;
|
||||
Velocity = _dashDirection * postDashVelocity;
|
||||
}
|
||||
public void OnDashParryEnded()
|
||||
{
|
||||
StopDashAction();
|
||||
Velocity = -_dashDirection*RKnockback.Modifier;
|
||||
}
|
||||
|
||||
public static Vector3 ComputePositionAfterTargetedDash(Vector3 targetLocation, Vector3 targetHitLocation)
|
||||
{
|
||||
return targetLocation + (targetLocation - targetHitLocation);
|
||||
@@ -2104,6 +2120,16 @@ public partial class PlayerController : CharacterBody3D,
|
||||
ThrowWeapon();
|
||||
return;
|
||||
}
|
||||
if (WeaponSystem.FlyingState.Active)
|
||||
{
|
||||
DashToFlyingWeapon();
|
||||
return;
|
||||
}
|
||||
if (WeaponSystem.PlantedState.Active)
|
||||
{
|
||||
DashToPlantedWeapon();
|
||||
return;
|
||||
}
|
||||
|
||||
var attackToDo = _isEnemyInDashAttackRange ? "dash_attack" : "standard_attack";
|
||||
_playerState.SendEvent(attackToDo);
|
||||
@@ -2185,9 +2211,10 @@ public partial class PlayerController : CharacterBody3D,
|
||||
|
||||
public void ResetInvincibility()
|
||||
{
|
||||
_isInvincible = false;
|
||||
IsInvincible = false;
|
||||
}
|
||||
|
||||
|
||||
// Sound
|
||||
public void OnFootStepped()
|
||||
{
|
||||
|
||||
@@ -22,21 +22,14 @@ public partial class Spawner : Node3D
|
||||
[Export]
|
||||
public bool IsActiveOnStart { get; set; } = true;
|
||||
|
||||
private float _spawnTimer;
|
||||
private bool _isActive;
|
||||
private Timer _timer;
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
_isActive = IsActiveOnStart;
|
||||
_spawnTimer = SpawnInterval;
|
||||
}
|
||||
|
||||
public override void _Process(double delta)
|
||||
{
|
||||
if (!_isActive) return;
|
||||
|
||||
_spawnTimer -= (float) delta;
|
||||
if (_spawnTimer <= 0) Spawn();
|
||||
_timer = GetNode<Timer>("Timer");
|
||||
_timer.WaitTime = SpawnInterval;
|
||||
_timer.Timeout += Spawn;
|
||||
if (IsActiveOnStart) StartSpawning();
|
||||
}
|
||||
|
||||
public void Spawn()
|
||||
@@ -44,27 +37,24 @@ public partial class Spawner : Node3D
|
||||
if (EnemyToSpawn == null || !EnemyToSpawn.CanInstantiate()) return;
|
||||
|
||||
if (EnemyToSpawn.Instantiate() is not Enemy spawnedInstance) return;
|
||||
|
||||
|
||||
GetTree().GetCurrentScene().AddChild(spawnedInstance);
|
||||
spawnedInstance.GlobalPosition = GlobalPosition;
|
||||
|
||||
spawnedInstance.Target = Target;
|
||||
spawnedInstance.RMovement = MovementInputs;
|
||||
spawnedInstance.RDamage = DamageInputs;
|
||||
spawnedInstance.RHealth = HealthInputs;
|
||||
spawnedInstance.Initialize();
|
||||
|
||||
GetTree().GetCurrentScene().AddChild(spawnedInstance);
|
||||
spawnedInstance.GlobalPosition = GlobalPosition;
|
||||
|
||||
_spawnTimer = SpawnInterval;
|
||||
}
|
||||
|
||||
public void StartSpawning()
|
||||
{
|
||||
_isActive = true;
|
||||
_spawnTimer = SpawnInterval;
|
||||
_timer.Start();
|
||||
}
|
||||
|
||||
public void StopSpawning()
|
||||
{
|
||||
_isActive = false;
|
||||
_timer.Stop();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,3 +6,5 @@
|
||||
script = ExtResource("1_2otbo")
|
||||
|
||||
[node name="Marker3D" type="Marker3D" parent="." unique_id=610854505]
|
||||
|
||||
[node name="Timer" type="Timer" parent="." unique_id=1842357493]
|
||||
|
||||
@@ -11,6 +11,11 @@ public partial class HeadSystem : Node3D
|
||||
public delegate void HitboxActivatedEventHandler();
|
||||
[Signal]
|
||||
public delegate void HitboxDeactivatedEventHandler();
|
||||
|
||||
[Signal]
|
||||
public delegate void ParryboxActivatedEventHandler();
|
||||
[Signal]
|
||||
public delegate void ParryboxDeactivatedEventHandler();
|
||||
|
||||
[Signal]
|
||||
public delegate void HitTargetEventHandler();
|
||||
@@ -80,6 +85,8 @@ public partial class HeadSystem : Node3D
|
||||
|
||||
[ExportGroup("First Person rig")]
|
||||
private Node3D _fpRig;
|
||||
private Node3D _rightHandedWeapon;
|
||||
private Node3D _leftHandedWeapon;
|
||||
private Node3D _fpDisplacedRig;
|
||||
private Vector3 _fpDisplacedRigInitialRotation;
|
||||
[Export(PropertyHint.Range, "0,10,0.1,or_greater")]
|
||||
@@ -110,6 +117,8 @@ public partial class HeadSystem : Node3D
|
||||
_animationTree = GetNode<AnimationTree>("AnimationTree");
|
||||
|
||||
_fpRig = GetNode<Node3D>("FPRig");
|
||||
_rightHandedWeapon = GetNode<Node3D>("FPRig/Sword");
|
||||
_leftHandedWeapon = GetNode<Node3D>("FPRig/Parry");
|
||||
_fpDisplacedRig = GetNode<Node3D>("FPRig/Sword");
|
||||
_fpDisplacedRigInitialRotation = _fpDisplacedRig.Rotation;
|
||||
|
||||
@@ -133,6 +142,10 @@ public partial class HeadSystem : Node3D
|
||||
{
|
||||
_animationTree.Set("parameters/OnHit/request", (int) AnimationNodeOneShot.OneShotRequest.Fire);
|
||||
}
|
||||
public void OnParry()
|
||||
{
|
||||
_animationTree.Set("parameters/OnParry/request", (int) AnimationNodeOneShot.OneShotRequest.Fire);
|
||||
}
|
||||
public void OnStartDeathAnimation()
|
||||
{
|
||||
_isPlayingForcingAnim = true;
|
||||
@@ -162,6 +175,15 @@ public partial class HeadSystem : Node3D
|
||||
EmitSignalHitboxDeactivated();
|
||||
}
|
||||
|
||||
public void OnParryboxActivated()
|
||||
{
|
||||
EmitSignalHitboxActivated();
|
||||
}
|
||||
public void OnParryboxDeactivated()
|
||||
{
|
||||
EmitSignalHitboxDeactivated();
|
||||
}
|
||||
|
||||
private bool _footstepEmitted;
|
||||
private bool _isPlayingForcingAnim;
|
||||
|
||||
@@ -300,11 +322,11 @@ public partial class HeadSystem : Node3D
|
||||
|
||||
public void HideWeapon()
|
||||
{
|
||||
_fpRig.Visible = false;
|
||||
_rightHandedWeapon.Visible = false;
|
||||
}
|
||||
public void ShowWeapon()
|
||||
{
|
||||
_fpRig.Visible = true;
|
||||
_rightHandedWeapon.Visible = true;
|
||||
}
|
||||
|
||||
public float ComputeCameraInclineFactor(Vector3 direction)
|
||||
|
||||
@@ -25,6 +25,11 @@ filters = ["..:position", "..:rotation"]
|
||||
filter_enabled = true
|
||||
filters = ["..:position", "..:rotation", "..:rotation:x", "..:rotation:z"]
|
||||
|
||||
[sub_resource type="AnimationNodeOneShot" id="AnimationNodeOneShot_lwjon"]
|
||||
|
||||
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_calte"]
|
||||
animation = &"parry"
|
||||
|
||||
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_23rmc"]
|
||||
animation = &"hit1"
|
||||
|
||||
@@ -38,8 +43,8 @@ animation = &"jump_start"
|
||||
animation = &"mantle"
|
||||
|
||||
[resource]
|
||||
graph_offset = Vector2(149.92139, -71.126785)
|
||||
nodes/output/position = Vector2(1700, -40)
|
||||
graph_offset = Vector2(-363.5551, -25.864124)
|
||||
nodes/output/position = Vector2(2020, -40)
|
||||
nodes/AnimationNodeStateMachine/node = ExtResource("1_knaxl")
|
||||
nodes/AnimationNodeStateMachine/position = Vector2(-560, 180)
|
||||
nodes/Idle/node = SubResource("AnimationNodeAnimation_knaxl")
|
||||
@@ -64,4 +69,8 @@ nodes/OnDie/node = SubResource("AnimationNodeOneShot_ao3u1")
|
||||
nodes/OnDie/position = Vector2(1500, -60)
|
||||
nodes/Die/node = SubResource("AnimationNodeAnimation_1hkum")
|
||||
nodes/Die/position = Vector2(1280, 340)
|
||||
node_connections = [&"output", 0, &"OnDie", &"OnHit", 0, &"OnMantle", &"OnHit", 1, &"hit1", &"OnJumpStart", 0, &"Idle", &"OnJumpStart", 1, &"jump_start", &"OnJumpEnd", 0, &"OnJumpStart", &"OnJumpEnd", 1, &"jump_end", &"OnMantle", 0, &"OnJumpEnd", &"OnMantle", 1, &"mantle", &"OnDie", 0, &"OnHit", &"OnDie", 1, &"Die"]
|
||||
nodes/OnParry/node = SubResource("AnimationNodeOneShot_lwjon")
|
||||
nodes/OnParry/position = Vector2(1780, -40)
|
||||
nodes/Parry/node = SubResource("AnimationNodeAnimation_calte")
|
||||
nodes/Parry/position = Vector2(1600, 300)
|
||||
node_connections = [&"output", 0, &"OnParry", &"OnHit", 0, &"OnMantle", &"OnHit", 1, &"hit1", &"OnJumpStart", 0, &"Idle", &"OnJumpStart", 1, &"jump_start", &"OnJumpEnd", 0, &"OnJumpStart", &"OnJumpEnd", 1, &"jump_end", &"OnMantle", 0, &"OnJumpEnd", &"OnMantle", 1, &"mantle", &"OnDie", 0, &"OnHit", &"OnDie", 1, &"Die", &"OnParry", 0, &"OnDie", &"OnParry", 1, &"Parry"]
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
[ext_resource type="Script" uid="uid://dtkdrnsmlwm67" path="res://systems/head/HeadSystem.cs" id="1_8abgy"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://ckr26s4e3fj1m" path="res://assets/swords/resources/fp_sword23.tres" id="2_c5qep"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://dogiv0piqfmfu" path="res://assets/swords/resources/fp_sword20.tres" id="3_1ay6d"]
|
||||
[ext_resource type="AnimationNodeBlendTree" uid="uid://c26yvcyyyj811" path="res://systems/head/fp_blend_tree.tres" id="3_r0h40"]
|
||||
[ext_resource type="Script" uid="uid://dnlxsrumw6ygp" path="res://addons/shaker/src/Vector3/shaker_component3D.gd" id="3_ubhf8"]
|
||||
[ext_resource type="Script" uid="uid://0tu2q57qqu4s" path="res://addons/shaker/data/Vector3/BaseShakerType3D.gd" id="4_1ay6d"]
|
||||
@@ -133,6 +134,87 @@ tracks/4/keys = {
|
||||
"update": 0,
|
||||
"values": [Vector3(0, 0, 0)]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("../../FPRig/Parry:position")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector3(-0.22145952, -0.19867475, -1.3653086)]
|
||||
}
|
||||
tracks/6/type = "value"
|
||||
tracks/6/imported = false
|
||||
tracks/6/enabled = true
|
||||
tracks/6/path = NodePath("../../FPRig/Parry:rotation")
|
||||
tracks/6/interp = 1
|
||||
tracks/6/loop_wrap = true
|
||||
tracks/6/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0.9350104, 3.0957325, -1.9789876)]
|
||||
}
|
||||
tracks/7/type = "value"
|
||||
tracks/7/imported = false
|
||||
tracks/7/enabled = true
|
||||
tracks/7/path = NodePath("../../FPRig/Parry:visible")
|
||||
tracks/7/interp = 1
|
||||
tracks/7/loop_wrap = true
|
||||
tracks/7/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [true]
|
||||
}
|
||||
tracks/8/type = "bezier"
|
||||
tracks/8/imported = false
|
||||
tracks/8/enabled = true
|
||||
tracks/8/path = NodePath("../../FPRig/Parry:rotation:x")
|
||||
tracks/8/interp = 1
|
||||
tracks/8/loop_wrap = true
|
||||
tracks/8/keys = {
|
||||
"handle_modes": PackedInt32Array(0),
|
||||
"points": PackedFloat32Array(0.9350104, -0.15, 0, 0.15, 0),
|
||||
"times": PackedFloat32Array(0)
|
||||
}
|
||||
tracks/9/type = "bezier"
|
||||
tracks/9/imported = false
|
||||
tracks/9/enabled = true
|
||||
tracks/9/path = NodePath("../../FPRig/Parry:rotation:y")
|
||||
tracks/9/interp = 1
|
||||
tracks/9/loop_wrap = true
|
||||
tracks/9/keys = {
|
||||
"handle_modes": PackedInt32Array(0),
|
||||
"points": PackedFloat32Array(3.0957325, -0.15, 0, 0.15, 0),
|
||||
"times": PackedFloat32Array(0)
|
||||
}
|
||||
tracks/10/type = "bezier"
|
||||
tracks/10/imported = false
|
||||
tracks/10/enabled = true
|
||||
tracks/10/path = NodePath("../../FPRig/Parry:rotation:z")
|
||||
tracks/10/interp = 1
|
||||
tracks/10/loop_wrap = true
|
||||
tracks/10/keys = {
|
||||
"handle_modes": PackedInt32Array(0),
|
||||
"points": PackedFloat32Array(-1.9789876, -0.15, 0, 0.15, 0),
|
||||
"times": PackedFloat32Array(0)
|
||||
}
|
||||
tracks/11/type = "value"
|
||||
tracks/11/imported = false
|
||||
tracks/11/enabled = true
|
||||
tracks/11/path = NodePath("../../FPRig/Parry:scale")
|
||||
tracks/11/interp = 1
|
||||
tracks/11/loop_wrap = true
|
||||
tracks/11/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector3(1.2, 1.2, 1.2)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_sdjj3"]
|
||||
resource_name = "die"
|
||||
@@ -199,6 +281,42 @@ tracks/4/keys = {
|
||||
"update": 0,
|
||||
"values": [Vector3(0, 0, 0.00011616433), Vector3(0, 0, -0.092299014), Vector3(0, 0, 1.2653637)]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("../../FPRig/Parry:position")
|
||||
tracks/5/interp = 2
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"times": PackedFloat32Array(0, 0.2),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(-0.22145952, -0.19867475, -1.3653086), Vector3(-1.3323143, -0.19867463, -1.7020192)]
|
||||
}
|
||||
tracks/6/type = "value"
|
||||
tracks/6/imported = false
|
||||
tracks/6/enabled = true
|
||||
tracks/6/path = NodePath("../../FPRig/Parry:rotation")
|
||||
tracks/6/interp = 2
|
||||
tracks/6/loop_wrap = true
|
||||
tracks/6/keys = {
|
||||
"times": PackedFloat32Array(0, 0.2),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0.9350104, 3.0957325, -1.9789876), Vector3(0.5242357, 2.32568, -3.0527115)]
|
||||
}
|
||||
tracks/7/type = "value"
|
||||
tracks/7/imported = false
|
||||
tracks/7/enabled = true
|
||||
tracks/7/path = NodePath("../../FPRig/Parry:visible")
|
||||
tracks/7/interp = 1
|
||||
tracks/7/loop_wrap = true
|
||||
tracks/7/keys = {
|
||||
"times": PackedFloat32Array(0, 0.2),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 1,
|
||||
"values": [true, false]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_r0h40"]
|
||||
resource_name = "hit1"
|
||||
@@ -269,6 +387,18 @@ tracks/4/keys = {
|
||||
"method": &"OnHitboxDeactivated"
|
||||
}]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("../../FPRig/Parry:position")
|
||||
tracks/5/interp = 2
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"times": PackedFloat32Array(0, 0.033333335, 0.083333336, 0.16666667, 0.3),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(-0.22145952, -0.19867475, -1.3653086), Vector3(-0.0715476, -0.16325326, -0.8197592), Vector3(-0.36483923, -0.26392323, -1.3945884), Vector3(-0.8528395, -0.26392323, -1.2049117), Vector3(-0.8528395, -0.26392323, -1.2049117)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_0hyrq"]
|
||||
resource_name = "idle"
|
||||
@@ -298,6 +428,30 @@ tracks/1/keys = {
|
||||
"update": 0,
|
||||
"values": [Vector3(-0.083978735, -1.136043, 0.19867715), Vector3(-0.06987281, -1.1365474, 0.20524277), Vector3(-0.05990464, -1.1368362, 0.20987195), Vector3(-0.06303402, -1.1367121, 0.2084137), Vector3(-0.083978735, -1.136043, 0.19867715)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("../../FPRig/Parry:position")
|
||||
tracks/2/interp = 2
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 0.3, 0.8000001),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(-0.22145952, -0.19867475, -1.3653086), Vector3(-0.221, -0.211, -1.365), Vector3(-0.221, -0.16, -1.365)]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("../../FPRig/Parry:rotation")
|
||||
tracks/3/interp = 2
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0, 0.3, 0.8000001),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0.9350104, 3.0957325, -1.9789876), Vector3(0.93194425, 3.0397656, -2.0486145), Vector3(0.9362563, 3.1298003, -1.9366695)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_1ay6d"]
|
||||
resource_name = "jump_end"
|
||||
@@ -371,6 +525,121 @@ tracks/0/keys = {
|
||||
"values": [Vector3(0, 0, 0.00011616433), Vector3(-0.5235988, 0, 0), Vector3(0, 0, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_ll12k"]
|
||||
resource_name = "parry"
|
||||
length = 0.3
|
||||
step = 0.016666668
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("../../FPRig/Parry:position")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.083333336, 0.13333334, 0.16666667, 0.20000002, 0.3),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(-0.22145952, -0.19867475, -1.3653086), Vector3(0.08582078, -0.10871372, -0.57329714), Vector3(0.23993218, -0.07025133, -0.8836378), Vector3(0.2783246, -0.07025109, -0.9678366), Vector3(0.2897812, -0.07025109, -0.8572479), Vector3(-0.22145952, -0.19867475, -1.3653086)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("../../FPRig/Sword:position")
|
||||
tracks/1/interp = 2
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.06666667, 0.15, 0.21666668, 0.3),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0.53640664, -0.7880347, -1.9288678), Vector3(0.35144368, -0.7880347, -0.88497114), Vector3(0.87958574, -0.7880347, -1.4807583), Vector3(0.87958574, -0.7880347, -1.4807583), Vector3(0.53640664, -0.7880347, -1.9288678)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("../../FPRig/Sword:rotation")
|
||||
tracks/2/interp = 2
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 0.06666667, 0.15, 0.21666668, 0.3),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(-0.083978735, -1.136043, 0.19867715), Vector3(0.012032291, -1.1376454, 0.24317425), Vector3(0.012032287, -1.8018653, 0.24317427), Vector3(0.012032287, -1.8018653, 0.24317427), Vector3(-0.083978735, -1.136043, 0.19867715)]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("..:rotation")
|
||||
tracks/3/interp = 2
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0, 0.016666666, 0.1, 0.16666667, 0.2, 0.3),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0, 0, 0), Vector3(0, 0, 0), Vector3(0, 0, 0.05235988), Vector3(0, -0.05235988, -0.10471976), Vector3(0, 0.02617994, 0.05235988), Vector3(0, 0, 0)]
|
||||
}
|
||||
tracks/4/type = "method"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath("../..")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"times": PackedFloat32Array(0.06666667, 0.18333334),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
"method": &"OnParryboxActivated"
|
||||
}, {
|
||||
"args": [],
|
||||
"method": &"OnParryboxDeactivated"
|
||||
}]
|
||||
}
|
||||
tracks/5/type = "bezier"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("../../FPRig/Parry:rotation:x")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"handle_modes": PackedInt32Array(0, 0, 2, 2, 2, 0),
|
||||
"points": PackedFloat32Array(0.9350104, -0.15, 0, 0.033333335, 0.17374629, 0.98194534, -0.01666667, 0.016720235, 0, 0, 1.4891908, -0.03333334, -0.06340563, 0, 0, 1.5010982, -0.005555555, 0, 0, 0, 1.3694806, -0.008333336, 0.021936258, 0, 0, 0.9350104, -0.03333333, 0.17374629, 0.033333335, 0.17374629),
|
||||
"times": PackedFloat32Array(0, 0.083333336, 0.13333334, 0.16666667, 0.21666668, 0.3)
|
||||
}
|
||||
tracks/6/type = "bezier"
|
||||
tracks/6/imported = false
|
||||
tracks/6/enabled = true
|
||||
tracks/6/path = NodePath("../../FPRig/Parry:rotation:y")
|
||||
tracks/6/interp = 1
|
||||
tracks/6/loop_wrap = true
|
||||
tracks/6/keys = {
|
||||
"handle_modes": PackedInt32Array(0, 0, 2, 2, 2, 0),
|
||||
"points": PackedFloat32Array(3.0957325, -0.15, 0, 0.05, -0.045176744, 2.8761902, -0.033333335, 0.30117726, 0, 0, 2.9792244, -0.03333334, -0.25362277, 0, 0, 2.9158187, -0.016666666, 0.11096001, 0, 0, 2.8365617, -0.01666668, -0.18834376, 0, 0, 3.0957325, -0.050000012, -0.21161652, 0.05, -0.045176744),
|
||||
"times": PackedFloat32Array(0, 0.083333336, 0.13333334, 0.16666667, 0.21666668, 0.3)
|
||||
}
|
||||
tracks/7/type = "bezier"
|
||||
tracks/7/imported = false
|
||||
tracks/7/enabled = true
|
||||
tracks/7/path = NodePath("../../FPRig/Parry:rotation:z")
|
||||
tracks/7/interp = 1
|
||||
tracks/7/loop_wrap = true
|
||||
tracks/7/keys = {
|
||||
"handle_modes": PackedInt32Array(0, 0, 2, 2, 2, 0),
|
||||
"points": PackedFloat32Array(-1.9789876, -0.15, 0, 0.016666668, 0.6069969, -1.5225792, -0.01666667, 0.26527464, 0, 0, -0.9026986, -0.011111112, -0.101292565, 0, 0, -0.90269864, -0.005555555, 9.934108e-09, 0, 0, -1.642684, -0.008333336, 0.1233309, 0, 0, -1.9789876, -0.050000012, 0.13937998, 0.016666668, 0.6069969),
|
||||
"times": PackedFloat32Array(0, 0.083333336, 0.13333334, 0.16666667, 0.21666668, 0.3)
|
||||
}
|
||||
tracks/8/type = "value"
|
||||
tracks/8/imported = false
|
||||
tracks/8/enabled = true
|
||||
tracks/8/path = NodePath("../../FPRig/Parry:scale")
|
||||
tracks/8/interp = 2
|
||||
tracks/8/loop_wrap = true
|
||||
tracks/8/keys = {
|
||||
"times": PackedFloat32Array(0, 0.083333336, 0.13333334, 0.16666667, 0.3),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(1, 1, 1), Vector3(1.2, 1.2, 1.2), Vector3(1.65, 1, 1), Vector3(1, 1, 1), Vector3(1, 1, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_0hyrq"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_urko7"),
|
||||
@@ -379,7 +648,8 @@ _data = {
|
||||
&"idle": SubResource("Animation_0hyrq"),
|
||||
&"jump_end": SubResource("Animation_1ay6d"),
|
||||
&"jump_start": SubResource("Animation_ubhf8"),
|
||||
&"mantle": SubResource("Animation_8abgy")
|
||||
&"mantle": SubResource("Animation_8abgy"),
|
||||
&"parry": SubResource("Animation_ll12k")
|
||||
}
|
||||
|
||||
[node name="HeadSystem" type="Node3D" unique_id=2067407038]
|
||||
@@ -399,6 +669,12 @@ transform = Transform3D(1, 0, 0, 0, 0.99999994, 0, 0, 0, 1, 0, 0, 0)
|
||||
cast_shadow = 0
|
||||
mesh = ExtResource("2_c5qep")
|
||||
|
||||
[node name="Parry" type="Node3D" parent="FPRig" unique_id=1218775403]
|
||||
transform = Transform3D(0.43521196, -1.1178209, 0.03266725, -0.65402746, -0.2828554, -0.96552634, 0.9071047, 0.33236945, -0.711823, -0.22145952, -0.19867475, -1.3653086)
|
||||
|
||||
[node name="ParryMesh" type="MeshInstance3D" parent="FPRig/Parry" unique_id=1993291456]
|
||||
mesh = ExtResource("3_1ay6d")
|
||||
|
||||
[node name="CameraSmooth" type="Node3D" parent="." unique_id=2072010960]
|
||||
transform = Transform3D(0.9999998, -0.00011616429, 0, 0.00011616431, 0.99999964, 0, 0, 0, 0.99999976, 0, 0, 0)
|
||||
|
||||
@@ -451,6 +727,9 @@ parameters/OnMantle/request = 0
|
||||
parameters/OnDie/active = false
|
||||
parameters/OnDie/internal_active = false
|
||||
parameters/OnDie/request = 0
|
||||
parameters/OnParry/active = false
|
||||
parameters/OnParry/internal_active = false
|
||||
parameters/OnParry/request = 0
|
||||
|
||||
[connection signal="GotHit" from="." to="CameraSmooth/Camera3D/OnGetHitShaker" method="play_shake"]
|
||||
[connection signal="HitTarget" from="." to="CameraSmooth/Camera3D/OnHitShaker" method="play_shake"]
|
||||
|
||||
Reference in New Issue
Block a user