Compare commits
10 Commits
cb39aae3fd
...
eb6a5538b8
| Author | SHA1 | Date | |
|---|---|---|---|
| eb6a5538b8 | |||
| d38d87f0a3 | |||
| 6f34c70848 | |||
| bd7e67e6b0 | |||
| d9f3216793 | |||
| 285aacd6e4 | |||
| 90d472e3c1 | |||
| 392ec5372c | |||
| 493420acdd | |||
| f24419a86a |
1
.gitignore
vendored
1
.gitignore
vendored
@ -3,6 +3,7 @@
|
||||
/android/
|
||||
|
||||
/art/*
|
||||
/build/*
|
||||
|
||||
!.gdignore
|
||||
|
||||
|
||||
@ -4,6 +4,8 @@ The theme was **Tiny creatures**. Insects are pretty tiny. So I decided to make
|
||||
|
||||
If you want to clone the repo, make sure you have [Git LFS](https://git-lfs.com/) installed.
|
||||
|
||||
I post updates in our [Twitter](https://twitter.com/23cmline) and [Bluesky](https://bsky.app/profile/23cmline.com).
|
||||
|
||||
## Tools used
|
||||
### For development
|
||||
- Game engine - Godot
|
||||
|
||||
BIN
assets/audio/units/aphid_poop_1.wav
(Stored with Git LFS)
Normal file
BIN
assets/audio/units/aphid_poop_1.wav
(Stored with Git LFS)
Normal file
Binary file not shown.
24
assets/audio/units/aphid_poop_1.wav.import
Normal file
24
assets/audio/units/aphid_poop_1.wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://4jawklhwlrav"
|
||||
path="res://.godot/imported/aphid_poop_1.wav-33f37c4812e25b8962c552b6a1c0fc52.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/audio/units/aphid_poop_1.wav"
|
||||
dest_files=["res://.godot/imported/aphid_poop_1.wav-33f37c4812e25b8962c552b6a1c0fc52.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
||||
BIN
assets/audio/units/aphid_poop_2.wav
(Stored with Git LFS)
Normal file
BIN
assets/audio/units/aphid_poop_2.wav
(Stored with Git LFS)
Normal file
Binary file not shown.
24
assets/audio/units/aphid_poop_2.wav.import
Normal file
24
assets/audio/units/aphid_poop_2.wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://dqf8u6iyp2gyj"
|
||||
path="res://.godot/imported/aphid_poop_2.wav-83a83cce31a628fbc3073b451ac4b57f.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/audio/units/aphid_poop_2.wav"
|
||||
dest_files=["res://.godot/imported/aphid_poop_2.wav-83a83cce31a628fbc3073b451ac4b57f.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
||||
BIN
assets/audio/units/aphid_poop_3.wav
(Stored with Git LFS)
Normal file
BIN
assets/audio/units/aphid_poop_3.wav
(Stored with Git LFS)
Normal file
Binary file not shown.
24
assets/audio/units/aphid_poop_3.wav.import
Normal file
24
assets/audio/units/aphid_poop_3.wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://d3r846ccllj1i"
|
||||
path="res://.godot/imported/aphid_poop_3.wav-72f748591dc8803d12958e3ee9523e7c.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/audio/units/aphid_poop_3.wav"
|
||||
dest_files=["res://.godot/imported/aphid_poop_3.wav-72f748591dc8803d12958e3ee9523e7c.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
||||
BIN
assets/audio/units/aphid_poop_4.wav
(Stored with Git LFS)
Normal file
BIN
assets/audio/units/aphid_poop_4.wav
(Stored with Git LFS)
Normal file
Binary file not shown.
24
assets/audio/units/aphid_poop_4.wav.import
Normal file
24
assets/audio/units/aphid_poop_4.wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://bv1qc7ig8kcov"
|
||||
path="res://.godot/imported/aphid_poop_4.wav-65fe0cbebdfa264fc54f1fa70e2d9785.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/audio/units/aphid_poop_4.wav"
|
||||
dest_files=["res://.godot/imported/aphid_poop_4.wav-65fe0cbebdfa264fc54f1fa70e2d9785.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
||||
BIN
assets/audio/units/aphid_poop_5.wav
(Stored with Git LFS)
Normal file
BIN
assets/audio/units/aphid_poop_5.wav
(Stored with Git LFS)
Normal file
Binary file not shown.
24
assets/audio/units/aphid_poop_5.wav.import
Normal file
24
assets/audio/units/aphid_poop_5.wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://dygm3jfrbsnl3"
|
||||
path="res://.godot/imported/aphid_poop_5.wav-457add9ec6ed9d68fec96c6c4624adde.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/audio/units/aphid_poop_5.wav"
|
||||
dest_files=["res://.godot/imported/aphid_poop_5.wav-457add9ec6ed9d68fec96c6c4624adde.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
||||
BIN
assets/audio/units/aphid_poop_6.wav
(Stored with Git LFS)
Normal file
BIN
assets/audio/units/aphid_poop_6.wav
(Stored with Git LFS)
Normal file
Binary file not shown.
24
assets/audio/units/aphid_poop_6.wav.import
Normal file
24
assets/audio/units/aphid_poop_6.wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://c1536rlvmor6l"
|
||||
path="res://.godot/imported/aphid_poop_6.wav-c99d1a6bae426c9c90ffc4a2e3355f35.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/audio/units/aphid_poop_6.wav"
|
||||
dest_files=["res://.godot/imported/aphid_poop_6.wav-c99d1a6bae426c9c90ffc4a2e3355f35.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
||||
BIN
assets/models/ant.glb
(Stored with Git LFS)
BIN
assets/models/ant.glb
(Stored with Git LFS)
Binary file not shown.
BIN
assets/models/anthill.glb
(Stored with Git LFS)
Normal file
BIN
assets/models/anthill.glb
(Stored with Git LFS)
Normal file
Binary file not shown.
43
assets/models/anthill.glb.import
Normal file
43
assets/models/anthill.glb.import
Normal file
@ -0,0 +1,43 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://b0koc3o63etu1"
|
||||
path="res://.godot/imported/anthill.glb-5b6c8f58d961f196bcc8e93454476786.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/models/anthill.glb"
|
||||
dest_files=["res://.godot/imported/anthill.glb-5b6c8f58d961f196bcc8e93454476786.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type=""
|
||||
nodes/root_name="Anthill"
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=1.0
|
||||
nodes/import_as_skeleton_bones=false
|
||||
meshes/ensure_tangents=true
|
||||
meshes/generate_lods=true
|
||||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
animation/trimming=false
|
||||
animation/remove_immutable_tracks=true
|
||||
animation/import_rest_as_RESET=false
|
||||
import_script/path=""
|
||||
_subresources={
|
||||
"materials": {
|
||||
"anthill_mat": {
|
||||
"use_external/enabled": true,
|
||||
"use_external/path": "res://resources/materials/anthill_material.tres"
|
||||
}
|
||||
}
|
||||
}
|
||||
gltf/naming_version=1
|
||||
gltf/embedded_image_handling=1
|
||||
BIN
assets/models/aphid.glb
(Stored with Git LFS)
BIN
assets/models/aphid.glb
(Stored with Git LFS)
Binary file not shown.
BIN
assets/textures/structures/anthill_albedo.png
(Stored with Git LFS)
Normal file
BIN
assets/textures/structures/anthill_albedo.png
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -2,8 +2,8 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cn2v03dkwjdbd"
|
||||
path.s3tc="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.s3tc.ctex"
|
||||
uid="uid://b7m104tc2wch3"
|
||||
path.bptc="res://.godot/imported/anthill_albedo.png-bbaa35e5b6a354eec93c815c4147a0e5.bptc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
@ -11,13 +11,13 @@ metadata={
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://icon.svg"
|
||||
dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.s3tc.ctex"]
|
||||
source_file="res://assets/textures/structures/anthill_albedo.png"
|
||||
dest_files=["res://.godot/imported/anthill_albedo.png-bbaa35e5b6a354eec93c815c4147a0e5.bptc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/high_quality=true
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
@ -33,6 +33,3 @@ process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
||||
0
build/.gdignore
Normal file
0
build/.gdignore
Normal file
64
export_presets.cfg
Normal file
64
export_presets.cfg
Normal file
@ -0,0 +1,64 @@
|
||||
[preset.0]
|
||||
|
||||
name="Windows Desktop"
|
||||
platform="Windows Desktop"
|
||||
runnable=true
|
||||
advanced_options=true
|
||||
dedicated_server=false
|
||||
custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter=""
|
||||
exclude_filter=""
|
||||
export_path="build/windows/tli.exe"
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
encrypt_pck=false
|
||||
encrypt_directory=false
|
||||
script_export_mode=2
|
||||
|
||||
[preset.0.options]
|
||||
|
||||
custom_template/debug=""
|
||||
custom_template/release=""
|
||||
debug/export_console_wrapper=1
|
||||
binary_format/embed_pck=false
|
||||
texture_format/s3tc_bptc=true
|
||||
texture_format/etc2_astc=false
|
||||
binary_format/architecture="x86_64"
|
||||
codesign/enable=false
|
||||
codesign/timestamp=true
|
||||
codesign/timestamp_server_url=""
|
||||
codesign/digest_algorithm=1
|
||||
codesign/description=""
|
||||
codesign/custom_options=PackedStringArray()
|
||||
application/modify_resources=true
|
||||
application/icon=""
|
||||
application/console_wrapper_icon=""
|
||||
application/icon_interpolation=4
|
||||
application/file_version=""
|
||||
application/product_version=""
|
||||
application/company_name=""
|
||||
application/product_name=""
|
||||
application/file_description=""
|
||||
application/copyright=""
|
||||
application/trademarks=""
|
||||
application/export_angle=0
|
||||
application/export_d3d12=0
|
||||
application/d3d12_agility_sdk_multiarch=true
|
||||
ssh_remote_deploy/enabled=false
|
||||
ssh_remote_deploy/host="user@host_ip"
|
||||
ssh_remote_deploy/port="22"
|
||||
ssh_remote_deploy/extra_args_ssh=""
|
||||
ssh_remote_deploy/extra_args_scp=""
|
||||
ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}'
|
||||
$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}'
|
||||
$trigger = New-ScheduledTaskTrigger -Once -At 00:00
|
||||
$settings = New-ScheduledTaskSettingsSet
|
||||
$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings
|
||||
Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true
|
||||
Start-ScheduledTask -TaskName godot_remote_debug
|
||||
while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 }
|
||||
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue"
|
||||
ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue
|
||||
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue
|
||||
Remove-Item -Recurse -Force '{temp_dir}'"
|
||||
34
icon.png.import
Normal file
34
icon.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://be03qpceooh16"
|
||||
path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://icon.png"
|
||||
dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
1
icon.svg
1
icon.svg
@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128"><rect width="124" height="124" x="2" y="2" fill="#363d52" stroke="#212532" stroke-width="4" rx="14"/><g fill="#fff" transform="translate(12.322 12.322)scale(.101)"><path d="M105 673v33q407 354 814 0v-33z"/><path fill="#478cbf" d="m105 673 152 14q12 1 15 14l4 67 132 10 8-61q2-11 15-15h162q13 4 15 15l8 61 132-10 4-67q3-13 15-14l152-14V427q30-39 56-81-35-59-83-108-43 20-82 47-40-37-88-64 7-51 8-102-59-28-123-42-26 43-46 89-49-7-98 0-20-46-46-89-64 14-123 42 1 51 8 102-48 27-88 64-39-27-82-47-48 49-83 108 26 42 56 81zm0 33v39c0 276 813 276 814 0v-39l-134 12-5 69q-2 10-14 13l-162 11q-12 0-16-11l-10-65H446l-10 65q-4 11-16 11l-162-11q-12-3-14-13l-5-69z"/><path d="M483 600c0 34 58 34 58 0v-86c0-34-58-34-58 0z"/><circle cx="725" cy="526" r="90"/><circle cx="299" cy="526" r="90"/></g><g fill="#414042" transform="translate(12.322 12.322)scale(.101)"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></svg>
|
||||
|
Before Width: | Height: | Size: 994 B |
@ -16,7 +16,7 @@ run/main_scene="res://scenes/world.tscn"
|
||||
config/features=PackedStringArray("4.3", "Forward Plus")
|
||||
boot_splash/bg_color=Color(0, 0, 0, 1)
|
||||
boot_splash/show_image=false
|
||||
config/icon="res://icon.svg"
|
||||
config/icon="res://icon.png"
|
||||
|
||||
[autoload]
|
||||
|
||||
@ -50,6 +50,10 @@ window/stretch/aspect="expand"
|
||||
mouse_cursor/custom_image="res://assets/textures/gui/cursor.png"
|
||||
mouse_cursor/custom_image_hotspot=Vector2(32, 32)
|
||||
|
||||
[editor]
|
||||
|
||||
movie_writer/movie_file="E:/Projects/Games/tli/build/recording.avi"
|
||||
|
||||
[filesystem]
|
||||
|
||||
import/fbx2gltf/enabled=false
|
||||
|
||||
7
resources/materials/anthill_material.tres
Normal file
7
resources/materials/anthill_material.tres
Normal file
@ -0,0 +1,7 @@
|
||||
[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://bgc0omqgojp6n"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://b7m104tc2wch3" path="res://assets/textures/structures/anthill_albedo.png" id="1_3h7nr"]
|
||||
|
||||
[resource]
|
||||
shading_mode = 0
|
||||
albedo_texture = ExtResource("1_3h7nr")
|
||||
@ -37,6 +37,6 @@ mesh = SubResource("QuadMesh_qwehm")
|
||||
[node name="Decal" type="Decal" parent="."]
|
||||
size = Vector3(0.5, 0.5, 0.5)
|
||||
texture_albedo = ExtResource("4_goini")
|
||||
modulate = Color(0, 0, 0, 1)
|
||||
modulate = Color(0.242208, 0.2075, 0.25, 1)
|
||||
albedo_mix = 0.25
|
||||
cull_mask = 32
|
||||
|
||||
@ -3,8 +3,7 @@
|
||||
[ext_resource type="Script" path="res://scripts/anthill.gd" id="1_8k02d"]
|
||||
[ext_resource type="Material" uid="uid://f0nlf4tdpvbd" path="res://resources/materials/indicators/hover_indicator_mat.tres" id="2_44p2d"]
|
||||
[ext_resource type="Script" path="res://scripts/sound_effects_player.gd" id="3_vp3nf"]
|
||||
|
||||
[sub_resource type="CapsuleMesh" id="CapsuleMesh_x8apu"]
|
||||
[ext_resource type="PackedScene" uid="uid://b0koc3o63etu1" path="res://assets/models/anthill.glb" id="4_tp2c4"]
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_ruupa"]
|
||||
|
||||
@ -17,24 +16,31 @@ orientation = 1
|
||||
collision_mask = 0
|
||||
script = ExtResource("1_8k02d")
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||
mesh = SubResource("CapsuleMesh_x8apu")
|
||||
[node name="Anthill" parent="." instance=ExtResource("4_tp2c4")]
|
||||
|
||||
[node name="Anthill" parent="Anthill" index="0"]
|
||||
layers = 32
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
||||
shape = SubResource("BoxShape3D_ruupa")
|
||||
|
||||
[node name="UiOrigin" type="Marker3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.15587, 0)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.0356, 0)
|
||||
|
||||
[node name="HoverIndicator" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(1.62268, 0, 0, 0, 1.62268, 0, 0, 0, 1.62268, 0, 0, 0)
|
||||
transform = Transform3D(2.703, 0, 0, 0, 2.703, 0, 0, 0, 2.703, 0, 0, 0)
|
||||
cast_shadow = 0
|
||||
mesh = SubResource("QuadMesh_2gykr")
|
||||
|
||||
[node name="NavigationObstacle3D" type="NavigationObstacle3D" parent="."]
|
||||
radius = 0.57
|
||||
|
||||
[node name="SoundEffectsPlayer" type="AudioStreamPlayer3D" parent="."]
|
||||
unit_size = 20.0
|
||||
script = ExtResource("3_vp3nf")
|
||||
script = ExtResource("3_vp3nf")
|
||||
|
||||
[node name="NavigationObstacle3D" type="NavigationObstacle3D" parent="."]
|
||||
radius = 0.6
|
||||
|
||||
[node name="DepositPoint" type="Marker3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.102205, 0.382582, 0.248212)
|
||||
|
||||
[editable path="Anthill"]
|
||||
|
||||
@ -1,30 +1,50 @@
|
||||
[gd_scene load_steps=11 format=3 uid="uid://lbs0vilymbum"]
|
||||
[gd_scene load_steps=14 format=3 uid="uid://lbs0vilymbum"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://cidd3q2tet7ku" path="res://scenes/units/abstract/controlled_unit.tscn" id="1_66kao"]
|
||||
[ext_resource type="Script" path="res://scripts/units/abstract/controlled_ant_unit.gd" id="2_77pj2"]
|
||||
[ext_resource type="PackedScene" uid="uid://bi231xk2sp410" path="res://assets/models/ant.glb" id="2_e21vo"]
|
||||
[ext_resource type="AudioStream" uid="uid://ds7c5gkf1mssj" path="res://assets/audio/units/ant_move.wav" id="4_80pw8"]
|
||||
|
||||
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_jem3o"]
|
||||
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_lip5d"]
|
||||
animation = &"idle"
|
||||
|
||||
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_f5jro"]
|
||||
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_7c5f2"]
|
||||
|
||||
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_0h55w"]
|
||||
animation = &"plop_down"
|
||||
|
||||
[sub_resource type="AnimationNodeOneShot" id="AnimationNodeOneShot_wsc5y"]
|
||||
filter_enabled = true
|
||||
filters = ["Armature/Skeleton3D:Body", "Armature/Skeleton3D:Leg_back_mid_L", "Armature/Skeleton3D:Leg_back_mid_R", "Armature/Skeleton3D:Leg_back_root_L", "Armature/Skeleton3D:Leg_back_root_R", "Armature/Skeleton3D:Leg_back_tip_L", "Armature/Skeleton3D:Leg_back_tip_R", "Armature/Skeleton3D:Leg_front_mid_L", "Armature/Skeleton3D:Leg_front_mid_R", "Armature/Skeleton3D:Leg_front_root_L", "Armature/Skeleton3D:Leg_front_root_R", "Armature/Skeleton3D:Leg_front_tip_L", "Armature/Skeleton3D:Leg_front_tip_R", "Armature/Skeleton3D:Leg_mid_mid_L", "Armature/Skeleton3D:Leg_mid_mid_R", "Armature/Skeleton3D:Leg_mid_root_L", "Armature/Skeleton3D:Leg_mid_root_R", "Armature/Skeleton3D:Leg_mid_tip_L", "Armature/Skeleton3D:Leg_mid_tip_R"]
|
||||
|
||||
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_3qepx"]
|
||||
animation = &"plop_up"
|
||||
|
||||
[sub_resource type="AnimationNodeOneShot" id="AnimationNodeOneShot_4ftkg"]
|
||||
filter_enabled = true
|
||||
filters = ["Armature/Skeleton3D:Body", "Armature/Skeleton3D:Leg_back_mid_L", "Armature/Skeleton3D:Leg_back_mid_R", "Armature/Skeleton3D:Leg_back_root_L", "Armature/Skeleton3D:Leg_back_root_R", "Armature/Skeleton3D:Leg_back_tip_L", "Armature/Skeleton3D:Leg_back_tip_R", "Armature/Skeleton3D:Leg_front_mid_L", "Armature/Skeleton3D:Leg_front_mid_R", "Armature/Skeleton3D:Leg_front_root_L", "Armature/Skeleton3D:Leg_front_root_R", "Armature/Skeleton3D:Leg_front_tip_L", "Armature/Skeleton3D:Leg_front_tip_R", "Armature/Skeleton3D:Leg_mid_mid_L", "Armature/Skeleton3D:Leg_mid_mid_R", "Armature/Skeleton3D:Leg_mid_root_L", "Armature/Skeleton3D:Leg_mid_root_R", "Armature/Skeleton3D:Leg_mid_tip_L", "Armature/Skeleton3D:Leg_mid_tip_R"]
|
||||
|
||||
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_grmq1"]
|
||||
animation = &"walk"
|
||||
|
||||
[sub_resource type="AnimationNodeBlendSpace1D" id="AnimationNodeBlendSpace1D_0mwos"]
|
||||
blend_point_0/node = SubResource("AnimationNodeAnimation_jem3o")
|
||||
blend_point_0/pos = 0.0
|
||||
blend_point_1/node = SubResource("AnimationNodeAnimation_f5jro")
|
||||
blend_point_1/pos = 1.0
|
||||
min_space = 0.0
|
||||
|
||||
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_pwnkm"]
|
||||
advance_mode = 2
|
||||
|
||||
[sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_v8drs"]
|
||||
states/locomotion/node = SubResource("AnimationNodeBlendSpace1D_0mwos")
|
||||
states/locomotion/position = Vector2(334, 100)
|
||||
transitions = ["Start", "locomotion", SubResource("AnimationNodeStateMachineTransition_pwnkm")]
|
||||
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_4gyt5"]
|
||||
graph_offset = Vector2(-327.784, 80.2142)
|
||||
nodes/idle_anim/node = SubResource("AnimationNodeAnimation_lip5d")
|
||||
nodes/idle_anim/position = Vector2(-320, 80)
|
||||
nodes/locomotion_blend/node = SubResource("AnimationNodeBlend2_7c5f2")
|
||||
nodes/locomotion_blend/position = Vector2(-100, 120)
|
||||
nodes/output/position = Vector2(680, 160)
|
||||
nodes/plop_down_anim/node = SubResource("AnimationNodeAnimation_0h55w")
|
||||
nodes/plop_down_anim/position = Vector2(-40, 360)
|
||||
nodes/plop_down_oneshot/node = SubResource("AnimationNodeOneShot_wsc5y")
|
||||
nodes/plop_down_oneshot/position = Vector2(180, 140)
|
||||
nodes/plop_up_anim/node = SubResource("AnimationNodeAnimation_3qepx")
|
||||
nodes/plop_up_anim/position = Vector2(260, 400)
|
||||
nodes/plop_up_oneshot/node = SubResource("AnimationNodeOneShot_4ftkg")
|
||||
nodes/plop_up_oneshot/position = Vector2(440, 140)
|
||||
nodes/walk_anim/node = SubResource("AnimationNodeAnimation_grmq1")
|
||||
nodes/walk_anim/position = Vector2(-320, 220)
|
||||
node_connections = [&"locomotion_blend", 0, &"idle_anim", &"locomotion_blend", 1, &"walk_anim", &"output", 0, &"plop_up_oneshot", &"plop_down_oneshot", 0, &"locomotion_blend", &"plop_down_oneshot", 1, &"plop_down_anim", &"plop_up_oneshot", 0, &"plop_down_oneshot", &"plop_up_oneshot", 1, &"plop_up_anim"]
|
||||
|
||||
[sub_resource type="CylinderShape3D" id="CylinderShape3D_8admi"]
|
||||
height = 0.5
|
||||
@ -40,20 +60,37 @@ bones/6/rotation = Quaternion(0.330686, -3.0116e-14, -4.44141e-07, 0.943741)
|
||||
bones/9/rotation = Quaternion(0.587858, 5.43255e-07, 3.94772e-07, 0.808964)
|
||||
bones/11/rotation = Quaternion(0.330686, 3.0116e-14, 4.44141e-07, 0.943741)
|
||||
bones/14/rotation = Quaternion(4.60304e-08, 0.0294697, 0.999566, -5.43234e-07)
|
||||
bones/14/scale = Vector3(1, 1, 1)
|
||||
bones/15/rotation = Quaternion(4.55913e-08, 0.0294697, 0.999566, -4.34329e-07)
|
||||
bones/15/scale = Vector3(1, 1, 1)
|
||||
bones/16/rotation = Quaternion(4.55913e-08, 0.0294697, 0.999566, -4.34329e-07)
|
||||
bones/16/scale = Vector3(1, 1, 1)
|
||||
bones/18/rotation = Quaternion(0.0294712, -6.21995e-15, 4.35675e-07, 0.999566)
|
||||
bones/19/rotation = Quaternion(0.0294712, -5.33139e-15, 4.35675e-07, 0.999566)
|
||||
bones/20/rotation = Quaternion(0.0294712, -6.21995e-15, 4.35675e-07, 0.999566)
|
||||
bones/21/rotation = Quaternion(0.0294712, -6.21995e-15, 4.35675e-07, 0.999566)
|
||||
bones/22/rotation = Quaternion(0.0294712, -6.21995e-15, 4.35675e-07, 0.999566)
|
||||
bones/23/rotation = Quaternion(0.0294712, -5.33139e-15, 4.35675e-07, 0.999566)
|
||||
bones/24/rotation = Quaternion(0.0294712, -6.21995e-15, 4.35675e-07, 0.999566)
|
||||
bones/25/rotation = Quaternion(0.0294712, -5.33139e-15, 4.35675e-07, 0.999566)
|
||||
bones/26/rotation = Quaternion(-0.221628, 0.221633, -0.671475, 0.671477)
|
||||
bones/27/rotation = Quaternion(0.583948, -8.29882e-08, 2.36539e-06, 0.811791)
|
||||
bones/27/scale = Vector3(1, 1, 1)
|
||||
bones/28/rotation = Quaternion(-0.84146, 6.60837e-08, -6.26108e-06, 0.54032)
|
||||
bones/30/rotation = Quaternion(0.583949, -2.24752e-07, 2.46641e-06, 0.811791)
|
||||
bones/31/rotation = Quaternion(-0.84146, 1.69298e-07, -6.42962e-06, 0.54032)
|
||||
bones/32/scale = Vector3(1, 1, 1)
|
||||
bones/34/rotation = Quaternion(-0.841459, 1.31575e-07, -6.3826e-06, 0.540321)
|
||||
bones/34/scale = Vector3(1, 1, 1)
|
||||
bones/35/rotation = Quaternion(-0.221628, -0.221633, 0.671475, 0.671477)
|
||||
bones/36/rotation = Quaternion(0.583948, 8.29882e-08, -2.36539e-06, 0.811791)
|
||||
bones/36/scale = Vector3(1, 1, 1)
|
||||
bones/37/rotation = Quaternion(-0.84146, -6.60837e-08, 6.26108e-06, 0.54032)
|
||||
bones/39/rotation = Quaternion(0.583949, 2.24752e-07, -2.46641e-06, 0.811791)
|
||||
bones/40/rotation = Quaternion(-0.84146, -1.69298e-07, 6.42962e-06, 0.54032)
|
||||
bones/41/scale = Vector3(1, 1, 1)
|
||||
bones/43/rotation = Quaternion(-0.841459, -1.31575e-07, 6.3826e-06, 0.540321)
|
||||
bones/43/scale = Vector3(1, 1, 1)
|
||||
|
||||
[node name="GathererMesh" parent="AntModel/Armature/Skeleton3D" index="0"]
|
||||
visible = false
|
||||
@ -61,11 +98,20 @@ visible = false
|
||||
[node name="NitwitMesh" parent="AntModel/Armature/Skeleton3D" index="1"]
|
||||
visible = false
|
||||
|
||||
[node name="AnimationPlayer" parent="AntModel" index="1"]
|
||||
deterministic = true
|
||||
|
||||
[node name="AnimationTree" parent="." index="1"]
|
||||
root_node = NodePath("../AntModel")
|
||||
tree_root = SubResource("AnimationNodeStateMachine_v8drs")
|
||||
tree_root = SubResource("AnimationNodeBlendTree_4gyt5")
|
||||
anim_player = NodePath("../AntModel/AnimationPlayer")
|
||||
parameters/locomotion/blend_position = 0.023431
|
||||
parameters/locomotion_blend/blend_amount = 0
|
||||
parameters/plop_down_oneshot/active = false
|
||||
parameters/plop_down_oneshot/internal_active = false
|
||||
parameters/plop_down_oneshot/request = 0
|
||||
parameters/plop_up_oneshot/active = false
|
||||
parameters/plop_up_oneshot/internal_active = false
|
||||
parameters/plop_up_oneshot/request = 0
|
||||
|
||||
[node name="CollisionShape3D" parent="." index="2"]
|
||||
shape = SubResource("CylinderShape3D_8admi")
|
||||
@ -82,10 +128,11 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.65, 0)
|
||||
[node name="SelectionIndicator" parent="." index="7"]
|
||||
transform = Transform3D(0.772715, 0, 0, 0, 0.772715, 0, 0, 0, 0.772715, 0, 0, 0)
|
||||
|
||||
[node name="MoveSoundPlayer" parent="." index="10"]
|
||||
[node name="MoveSoundPlayer" parent="." index="11"]
|
||||
stream = ExtResource("4_80pw8")
|
||||
attenuation_filter_db = 0.0
|
||||
|
||||
[node name="Decal" parent="." index="11"]
|
||||
[node name="Decal" parent="." index="12"]
|
||||
size = Vector3(1.5, 1, 1.5)
|
||||
|
||||
[editable path="AntModel"]
|
||||
|
||||
@ -48,16 +48,16 @@ mesh = SubResource("BoxMesh_hvf81")
|
||||
|
||||
[node name="SoundEffectsPlayer" type="AudioStreamPlayer3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.25, 0)
|
||||
attenuation_model = 1
|
||||
script = ExtResource("3_wl62h")
|
||||
|
||||
[node name="MoveSoundPlayer" type="AudioStreamPlayer3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.25, 0)
|
||||
attenuation_model = 1
|
||||
attenuation_filter_db = 0.0
|
||||
|
||||
[node name="Decal" type="Decal" parent="."]
|
||||
size = Vector3(1, 1, 1)
|
||||
texture_albedo = ExtResource("4_iixjt")
|
||||
modulate = Color(0, 0, 0, 1)
|
||||
modulate = Color(0.242208, 0.2075, 0.25, 1)
|
||||
albedo_mix = 0.5
|
||||
cull_mask = 32
|
||||
|
||||
@ -11,27 +11,6 @@ radius = 15.0
|
||||
[node name="AntGatherer" instance=ExtResource("1_m5yy7")]
|
||||
script = ExtResource("2_7pblm")
|
||||
|
||||
[node name="Skeleton3D" parent="AntModel/Armature" index="0"]
|
||||
bones/14/scale = Vector3(1, 1, 1)
|
||||
bones/15/scale = Vector3(1, 1, 1)
|
||||
bones/16/scale = Vector3(1, 1, 1)
|
||||
bones/18/rotation = Quaternion(0.0294712, -6.21995e-15, 4.35675e-07, 0.999566)
|
||||
bones/19/rotation = Quaternion(0.0294712, -5.33139e-15, 4.35675e-07, 0.999566)
|
||||
bones/20/rotation = Quaternion(0.0294712, -6.21995e-15, 4.35675e-07, 0.999566)
|
||||
bones/21/rotation = Quaternion(0.0294712, -6.21995e-15, 4.35675e-07, 0.999566)
|
||||
bones/22/rotation = Quaternion(0.0294712, -6.21995e-15, 4.35675e-07, 0.999566)
|
||||
bones/23/rotation = Quaternion(0.0294712, -5.33139e-15, 4.35675e-07, 0.999566)
|
||||
bones/24/rotation = Quaternion(0.0294712, -6.21995e-15, 4.35675e-07, 0.999566)
|
||||
bones/25/rotation = Quaternion(0.0294712, -5.33139e-15, 4.35675e-07, 0.999566)
|
||||
bones/26/scale = Vector3(1, 1, 1)
|
||||
bones/27/scale = Vector3(1, 1, 1)
|
||||
bones/32/scale = Vector3(1, 1, 1)
|
||||
bones/34/scale = Vector3(1, 1, 1)
|
||||
bones/35/scale = Vector3(1, 1, 1)
|
||||
bones/36/scale = Vector3(1, 1, 1)
|
||||
bones/41/scale = Vector3(1, 1, 1)
|
||||
bones/43/scale = Vector3(1, 1, 1)
|
||||
|
||||
[node name="GathererMesh" parent="AntModel/Armature/Skeleton3D" index="0"]
|
||||
visible = true
|
||||
|
||||
|
||||
@ -1,30 +1,39 @@
|
||||
[gd_scene load_steps=11 format=3 uid="uid://bw8cabkva3k4f"]
|
||||
[gd_scene load_steps=12 format=3 uid="uid://bw8cabkva3k4f"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://c70vx0utm5knp" path="res://scenes/units/abstract/unit.tscn" id="1_ghhpv"]
|
||||
[ext_resource type="Script" path="res://scripts/units/aphid.gd" id="2_c6sy4"]
|
||||
[ext_resource type="PackedScene" uid="uid://ch02ae8fj2lhh" path="res://assets/models/aphid.glb" id="2_vtmi4"]
|
||||
[ext_resource type="AudioStream" uid="uid://bqt1xdorarhoi" path="res://assets/audio/units/aphid_move.wav" id="5_f4mon"]
|
||||
|
||||
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_f1f0e"]
|
||||
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_vr4bn"]
|
||||
animation = &"idle"
|
||||
|
||||
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_mfl87"]
|
||||
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_6hdai"]
|
||||
|
||||
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_la1j2"]
|
||||
animation = &"plop"
|
||||
|
||||
[sub_resource type="AnimationNodeOneShot" id="AnimationNodeOneShot_qspit"]
|
||||
filter_enabled = true
|
||||
filters = ["Armature/Skeleton3D:Root"]
|
||||
|
||||
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_g6qll"]
|
||||
animation = &"walk"
|
||||
|
||||
[sub_resource type="AnimationNodeBlendSpace1D" id="AnimationNodeBlendSpace1D_lgt8u"]
|
||||
blend_point_0/node = SubResource("AnimationNodeAnimation_f1f0e")
|
||||
blend_point_0/pos = 0.0
|
||||
blend_point_1/node = SubResource("AnimationNodeAnimation_mfl87")
|
||||
blend_point_1/pos = 1.0
|
||||
min_space = 0.0
|
||||
|
||||
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_17r08"]
|
||||
advance_mode = 2
|
||||
|
||||
[sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_38sa4"]
|
||||
states/locomotion/node = SubResource("AnimationNodeBlendSpace1D_lgt8u")
|
||||
states/locomotion/position = Vector2(333, 100)
|
||||
transitions = ["Start", "locomotion", SubResource("AnimationNodeStateMachineTransition_17r08")]
|
||||
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_a3xja"]
|
||||
graph_offset = Vector2(-418.868, 27.0018)
|
||||
nodes/idle_anim/node = SubResource("AnimationNodeAnimation_vr4bn")
|
||||
nodes/idle_anim/position = Vector2(-180, 100)
|
||||
nodes/locomotion_blend/node = SubResource("AnimationNodeBlend2_6hdai")
|
||||
nodes/locomotion_blend/position = Vector2(20, 140)
|
||||
nodes/output/position = Vector2(500, 160)
|
||||
nodes/plop_anim/node = SubResource("AnimationNodeAnimation_la1j2")
|
||||
nodes/plop_anim/position = Vector2(100, 380)
|
||||
nodes/plop_oneshot/node = SubResource("AnimationNodeOneShot_qspit")
|
||||
nodes/plop_oneshot/position = Vector2(300, 220)
|
||||
nodes/walk_anim/node = SubResource("AnimationNodeAnimation_g6qll")
|
||||
nodes/walk_anim/position = Vector2(-180, 260)
|
||||
node_connections = [&"locomotion_blend", 0, &"idle_anim", &"locomotion_blend", 1, &"walk_anim", &"output", 0, &"plop_oneshot", &"plop_oneshot", 0, &"locomotion_blend", &"plop_oneshot", 1, &"plop_anim"]
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_t1vrx"]
|
||||
radius = 0.3
|
||||
@ -46,11 +55,17 @@ bones/13/rotation = Quaternion(-0.235443, -0.235445, 0.666758, 0.666758)
|
||||
bones/14/rotation = Quaternion(-0.235443, -0.235445, 0.666758, 0.666758)
|
||||
bones/15/scale = Vector3(1, 1, 1)
|
||||
|
||||
[node name="AnimationPlayer" parent="AphidModel" index="1"]
|
||||
deterministic = true
|
||||
|
||||
[node name="AnimationTree" parent="." index="1"]
|
||||
root_node = NodePath("../AphidModel")
|
||||
tree_root = SubResource("AnimationNodeStateMachine_38sa4")
|
||||
tree_root = SubResource("AnimationNodeBlendTree_a3xja")
|
||||
anim_player = NodePath("../AphidModel/AnimationPlayer")
|
||||
parameters/locomotion/blend_position = 0
|
||||
parameters/locomotion_blend/blend_amount = 0.0
|
||||
parameters/plop_oneshot/active = false
|
||||
parameters/plop_oneshot/internal_active = false
|
||||
parameters/plop_oneshot/request = 0
|
||||
|
||||
[node name="CollisionShape3D" parent="." index="2"]
|
||||
shape = SubResource("SphereShape3D_t1vrx")
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
extends AudioStreamPlayer
|
||||
|
||||
const ZOOMED_IN_CUTOFF = 10000
|
||||
const ZOOMED_IN_CUTOFF = 7500
|
||||
const ZOOMED_OUT_CUTOFF = 0
|
||||
|
||||
var _audio_1 := preload("res://assets/audio/ambient/ambient_1.ogg")
|
||||
|
||||
@ -13,6 +13,8 @@ var _nitwit_scene := preload("res://scenes/units/ant_nitwit.tscn")
|
||||
var _gatherer_scene := preload("res://scenes/units/ant_gatherer.tscn")
|
||||
|
||||
@onready var ui_origin: Node3D = $UiOrigin
|
||||
@onready var deposit_point: Node3D = $DepositPoint
|
||||
@onready var animation_player: AnimationPlayer = $Anthill/AnimationPlayer
|
||||
@onready var audio_player: SoundEffectsPlayer = (
|
||||
$SoundEffectsPlayer
|
||||
)
|
||||
@ -39,6 +41,8 @@ func deposit_honeydew(amount: int) -> int:
|
||||
leftover = new_honeydew_amount - max_honeydew
|
||||
else:
|
||||
honeydew = new_honeydew_amount
|
||||
animation_player.stop()
|
||||
animation_player.play("plop_down")
|
||||
return leftover
|
||||
|
||||
|
||||
@ -84,5 +88,8 @@ func _create_unit(
|
||||
)
|
||||
if ding:
|
||||
audio_player.play_sound(SoundManager.ding())
|
||||
animation_player.stop()
|
||||
animation_player.play("plop_up")
|
||||
|
||||
buy_ant.emit()
|
||||
return new_unit
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
extends Node
|
||||
## Handles selection of units.
|
||||
|
||||
signal deselect
|
||||
|
||||
const MIN_DRAG_DISTANCE: float = 15
|
||||
const UNIT_SELECT_OFFSET: float = 0.25
|
||||
|
||||
@ -50,6 +52,7 @@ func _input(event: InputEvent) -> void:
|
||||
_selection_rect.size = Vector2.ZERO
|
||||
elif selecting:
|
||||
_set_selection_state(false)
|
||||
deselect.emit()
|
||||
|
||||
if event is InputEventMouseMotion:
|
||||
if _mouse_pressed:
|
||||
@ -73,6 +76,11 @@ func remove_unit_from_visible(unit: Unit) -> void:
|
||||
_visible_units.erase(unit_id)
|
||||
|
||||
|
||||
func is_unit_visible(unit: Unit) -> bool:
|
||||
var unit_id := unit.get_instance_id()
|
||||
return _visible_units.keys().has(unit_id)
|
||||
|
||||
|
||||
func _handle_advance_anim_step() -> void:
|
||||
var remapped_unclamped := remap(
|
||||
_visible_units.size(),
|
||||
|
||||
@ -66,6 +66,15 @@ var _press_up_streams: Array[AudioStream] = [
|
||||
preload("res://assets/audio/ui/press_up_6.wav"),
|
||||
]
|
||||
|
||||
var _aphid_poop_streams: Array[AudioStream] = [
|
||||
preload("res://assets/audio/units/aphid_poop_1.wav"),
|
||||
preload("res://assets/audio/units/aphid_poop_2.wav"),
|
||||
preload("res://assets/audio/units/aphid_poop_3.wav"),
|
||||
preload("res://assets/audio/units/aphid_poop_4.wav"),
|
||||
preload("res://assets/audio/units/aphid_poop_5.wav"),
|
||||
preload("res://assets/audio/units/aphid_poop_6.wav"),
|
||||
]
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
process_mode = Node.PROCESS_MODE_ALWAYS
|
||||
@ -101,3 +110,7 @@ func press_down() -> AudioStream:
|
||||
|
||||
func press_up() -> AudioStream:
|
||||
return _press_up_streams.pick_random()
|
||||
|
||||
|
||||
func aphid_poop() -> AudioStream:
|
||||
return _aphid_poop_streams.pick_random()
|
||||
|
||||
@ -65,6 +65,7 @@ func _ready() -> void:
|
||||
assert(listener != null, "listener missing!")
|
||||
_target_position = StaticNodesManager.player_anthill.global_position
|
||||
listener.make_current()
|
||||
UiManager.unit_info.closed.connect(_on_unit_info_closed)
|
||||
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
@ -90,7 +91,6 @@ func _process(delta: float) -> void:
|
||||
listener.global_position = _target_position + (Vector3.UP * distance)
|
||||
listener.global_rotation = global_rotation
|
||||
|
||||
UiManager.unit_info.closed.connect(_on_unit_info_closed)
|
||||
|
||||
DebugManager.marker("mc_target", _target_position, 0.05)
|
||||
DebugManager.marker("mc_listener", listener.global_position, 0.05, Color.GREEN)
|
||||
|
||||
@ -28,6 +28,7 @@ func _init() -> void:
|
||||
func _ready() -> void:
|
||||
assert(selection_indicator != null, "selection_indicator missing!")
|
||||
nav_agent.navigation_finished.connect(_on_nav_agent_navigation_finished)
|
||||
SelectionManager.deselect.connect(_on_selection_manager_deselect)
|
||||
super._ready()
|
||||
|
||||
|
||||
@ -98,3 +99,8 @@ func _click_raycast(mouse_pos: Vector2) -> Vector3:
|
||||
|
||||
func _on_nav_agent_navigation_finished() -> void:
|
||||
_wandering_center = nav_agent.get_final_position()
|
||||
|
||||
|
||||
func _on_selection_manager_deselect() -> void:
|
||||
if _selected and not SelectionManager.is_unit_visible(self):
|
||||
set_selected(false)
|
||||
|
||||
@ -113,7 +113,7 @@ func _handle_animation(delta: float) -> void:
|
||||
velocity.length() / _move_speed,
|
||||
delta * LOCOMOTION_CHANGE_SPEED
|
||||
)
|
||||
animation_tree.set("parameters/locomotion/blend_position", _locomotion_value)
|
||||
animation_tree["parameters/locomotion_blend/blend_amount"] = _locomotion_value
|
||||
|
||||
_advance_anim_delta_accum += delta
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ const BONE_SCALE_VARIATION: float = 0.25
|
||||
|
||||
const HONEYDEW_INTERVAL_MIN: float = 5
|
||||
const HONEYDEW_INTERVAL_MAX: float = 60
|
||||
const HONEYDEW_SPAWN_SPREAD: float = 0.5
|
||||
const HONEYDEW_SPAWN_SPREAD: float = 0.25
|
||||
const HONEYDEWS_MAX: int = 5
|
||||
|
||||
var state: State = State.WANDERING
|
||||
@ -87,6 +87,11 @@ func _handle_honeydew_spawn(delta: float) -> void:
|
||||
new_honeydew.global_position = global_position + new_pos
|
||||
_put_honeydew(new_honeydew)
|
||||
|
||||
audio_player.play_sound(SoundManager.aphid_poop())
|
||||
animation_tree["parameters/plop_oneshot/request"] = (
|
||||
AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE
|
||||
)
|
||||
|
||||
_set_spawn_timer()
|
||||
|
||||
|
||||
|
||||
@ -146,8 +146,15 @@ func _pick_up() -> void:
|
||||
_get_nth_pile_pos(_carrying_items.size() - 1)
|
||||
).tween_finished
|
||||
audio_player.play_sound(SoundManager.pop())
|
||||
_unit.animation_tree["parameters/plop_down_oneshot/request"] = (
|
||||
AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE
|
||||
)
|
||||
|
||||
await get_tree().create_timer(_pickup_interval).timeout
|
||||
|
||||
if state == State.STOP:
|
||||
return
|
||||
|
||||
var nearest := _find_nearest(_nearby_items.values())
|
||||
if _carrying_items.size() == _max_carrying or nearest == null:
|
||||
_go_deposit()
|
||||
@ -157,7 +164,6 @@ func _pick_up() -> void:
|
||||
|
||||
|
||||
func _deposit() -> void:
|
||||
await get_tree().create_timer(0.5).timeout
|
||||
while _carrying_items.size() > 0:
|
||||
if state != State.DEPOSITING:
|
||||
return
|
||||
@ -167,9 +173,14 @@ func _deposit() -> void:
|
||||
return
|
||||
|
||||
var item := _carrying_items.pop_back() as Honeydew
|
||||
_unit.animation_tree["parameters/plop_up_oneshot/request"] = (
|
||||
AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE
|
||||
)
|
||||
audio_player.play_sound(SoundManager.swoosh())
|
||||
|
||||
await item.start_tweening(_unit.anthill.global_position).tween_finished
|
||||
await item.start_tweening(
|
||||
_unit.anthill.deposit_point.global_position
|
||||
).tween_finished
|
||||
|
||||
audio_player.play_sound(SoundManager.tok())
|
||||
item.remove_from_spawner()
|
||||
@ -178,6 +189,9 @@ func _deposit() -> void:
|
||||
_unit.anthill.deposit_honeydew(1)
|
||||
await get_tree().create_timer(_drop_interval).timeout
|
||||
|
||||
if state == State.STOP:
|
||||
return
|
||||
|
||||
var nearest := _find_nearest(_nearby_items.values())
|
||||
if nearest == null:
|
||||
state = State.WAITING_FOR_NEW_ITEMS
|
||||
@ -242,7 +256,7 @@ func _on_nav_agent_navigation_finished() -> void:
|
||||
|
||||
if (
|
||||
state == State.DEPOSITING
|
||||
and global_position.distance_to(_unit.anthill.global_position) < 2
|
||||
# and global_position.distance_to(_unit.anthill.global_position) < 2
|
||||
):
|
||||
_deposit()
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user