Initial Public Commit

This commit is contained in:
Juan Linietsky
2018-10-07 11:18:06 -03:00
parent d05286d43f
commit 8900253dfb
2864 changed files with 81793 additions and 0 deletions

14
LICENSE.md Normal file
View File

@@ -0,0 +1,14 @@
All assets (C) 2018 Juan Linietsky, Fernando Miguel Calabró
Distributed under the terms of the Creative Commons Attribution License
version 3.0 (CC-BY 3.0) <https://creativecommons.org/licenses/by/3.0/legalcode>.
Code under MIT License:
Copyright 2018 Juan Linietsky
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

3
README.md Normal file
View File

@@ -0,0 +1,3 @@
Third person shooter demo made using Godot, make sure to update to latest
HEAD to test.

51
default_bus_layout.tres Normal file
View File

@@ -0,0 +1,51 @@
[gd_resource type="AudioBusLayout" load_steps=3 format=2]
[sub_resource type="AudioEffectReverb" id=1]
resource_name = "Reverb"
predelay_msec = 150.0
predelay_feedback = 0.4
room_size = 0.98
damping = 0.5
spread = 1.0
hipass = 0.42
dry = 1.0
wet = 0.29
[sub_resource type="AudioEffectReverb" id=2]
resource_name = "Reverb"
predelay_msec = 150.0
predelay_feedback = 0.4
room_size = 0.74
damping = 0.5
spread = 1.0
hipass = 0.14
dry = 1.0
wet = 0.56
[resource]
bus/0/name = "Master"
bus/0/solo = false
bus/0/mute = false
bus/0/bypass_fx = false
bus/0/volume_db = 0.0
bus/0/send = ""
bus/1/name = "Outside"
bus/1/solo = false
bus/1/mute = false
bus/1/bypass_fx = false
bus/1/volume_db = 0.0
bus/1/send = "Master"
bus/1/effect/0/effect = SubResource( 1 )
bus/1/effect/0/enabled = true
bus/2/name = "Reactor"
bus/2/solo = false
bus/2/mute = false
bus/2/bypass_fx = false
bus/2/volume_db = 0.0
bus/2/send = "Master"
bus/2/effect/0/effect = SubResource( 2 )
bus/2/effect/0/enabled = true

102
default_env.tres Normal file
View File

@@ -0,0 +1,102 @@
[gd_resource type="Environment" load_steps=2 format=2]
[sub_resource type="ProceduralSky" id=1]
radiance_size = 4
sky_top_color = Color( 0.0470588, 0.454902, 0.976471, 1 )
sky_horizon_color = Color( 0.556863, 0.823529, 0.909804, 1 )
sky_curve = 0.25
sky_energy = 1.0
ground_bottom_color = Color( 0.101961, 0.145098, 0.188235, 1 )
ground_horizon_color = Color( 0.482353, 0.788235, 0.952941, 1 )
ground_curve = 0.01
ground_energy = 1.0
sun_color = Color( 1, 1, 1, 1 )
sun_latitude = 35.0
sun_longitude = 0.0
sun_angle_min = 1.0
sun_angle_max = 100.0
sun_curve = 0.05
sun_energy = 16.0
texture_size = 2
[resource]
background_mode = 2
background_sky = SubResource( 1 )
background_sky_custom_fov = 0.0
background_color = Color( 0, 0, 0, 1 )
background_energy = 1.0
background_canvas_max_layer = 0
ambient_light_color = Color( 0, 0, 0, 1 )
ambient_light_energy = 1.0
ambient_light_sky_contribution = 1.0
fog_enabled = false
fog_color = Color( 0.5, 0.6, 0.7, 1 )
fog_sun_color = Color( 1, 0.9, 0.7, 1 )
fog_sun_amount = 0.0
fog_depth_enabled = true
fog_depth_begin = 10.0
fog_depth_curve = 1.0
fog_transmit_enabled = false
fog_transmit_curve = 1.0
fog_height_enabled = false
fog_height_min = 0.0
fog_height_max = 100.0
fog_height_curve = 1.0
tonemap_mode = 0
tonemap_exposure = 1.0
tonemap_white = 1.0
auto_exposure_enabled = false
auto_exposure_scale = 0.4
auto_exposure_min_luma = 0.05
auto_exposure_max_luma = 8.0
auto_exposure_speed = 0.5
ss_reflections_enabled = false
ss_reflections_max_steps = 64
ss_reflections_fade_in = 0.15
ss_reflections_fade_out = 2.0
ss_reflections_depth_tolerance = 0.2
ss_reflections_roughness = true
ssao_enabled = false
ssao_radius = 1.0
ssao_intensity = 1.0
ssao_radius2 = 0.0
ssao_intensity2 = 1.0
ssao_bias = 0.01
ssao_light_affect = 0.0
ssao_ao_channel_affect = 0.0
ssao_color = Color( 0, 0, 0, 1 )
ssao_quality = 0
ssao_blur = 3
ssao_edge_sharpness = 4.0
dof_blur_far_enabled = false
dof_blur_far_distance = 10.0
dof_blur_far_transition = 5.0
dof_blur_far_amount = 0.1
dof_blur_far_quality = 1
dof_blur_near_enabled = false
dof_blur_near_distance = 2.0
dof_blur_near_transition = 1.0
dof_blur_near_amount = 0.1
dof_blur_near_quality = 1
glow_enabled = false
glow_levels/1 = false
glow_levels/2 = false
glow_levels/3 = true
glow_levels/4 = false
glow_levels/5 = true
glow_levels/6 = false
glow_levels/7 = false
glow_intensity = 0.8
glow_strength = 1.0
glow_bloom = 0.0
glow_blend_mode = 2
glow_hdr_threshold = 1.0
glow_hdr_scale = 2.0
glow_bicubic_upscale = false
adjustment_enabled = false
adjustment_brightness = 1.0
adjustment_contrast = 1.0
adjustment_saturation = 1.0

3
door/DoorSimple.blend Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1bae7d42bfab03d1fbe9dfe375f8238d0960e6b9aecef86cd01329e34407f332
size 8095580

3
door/DoorSimple.dae Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:305cdf1f75c453f728b994ad321d3dda2334611556547dc8dfd379fc4ee600a5
size 6416474

1062
door/DoorSimple.dae.import Normal file

File diff suppressed because it is too large Load Diff

21
door/door.gd Normal file
View File

@@ -0,0 +1,21 @@
extends Area
# class member variables go here, for example:
# var a = 2
# var b = "textvar"
var open = false
func _ready():
# Called when the node is added to the scene for the first time.
# Initialization here.
pass
#func _process(delta):
# # Called every frame. Delta is time since last frame.
# # Update game logic here.
# pass
func _on_door_body_entered(body):
if (not open and body is preload("res://player/player.gd")):
$"Scene Root/AnimationPlayer".play("doorsimple_opening")
open = true

BIN
door/door.material Normal file

Binary file not shown.

74
door/door.tscn Normal file
View File

@@ -0,0 +1,74 @@
[gd_scene load_steps=5 format=2]
[ext_resource path="res://door/door.gd" type="Script" id=1]
[ext_resource path="res://door/DoorSimple.dae" type="PackedScene" id=2]
[ext_resource path="res://door/open_close.wav" type="AudioStream" id=3]
[sub_resource type="BoxShape" id=1]
extents = Vector3( 4.42643, 3.10445, 5.53322 )
[node name="door" type="Area" index="0"]
input_ray_pickable = false
input_capture_on_drag = false
space_override = 0
gravity_point = false
gravity_distance_scale = 0.0
gravity_vec = Vector3( 0, -1, 0 )
gravity = 9.8
linear_damp = 0.1
angular_damp = 1.0
priority = 0.0
monitoring = true
monitorable = true
collision_layer = 1
collision_mask = 1
audio_bus_override = false
audio_bus_name = "Master"
reverb_bus_enable = false
reverb_bus_name = "Master"
reverb_bus_amount = 0.0
reverb_bus_uniformity = 0.0
script = ExtResource( 1 )
[node name="Scene Root" parent="." index="0" instance=ExtResource( 2 )]
[node name="shape" parent="Scene Root/armature-doorsimple/Skeleton/doorleft" index="0"]
disabled = true
[node name="shape" parent="Scene Root/armature-doorsimple/Skeleton/doorlower" index="0"]
disabled = true
[node name="shape" parent="Scene Root/armature-doorsimple/Skeleton/doorright" index="0"]
disabled = true
[node name="shape" parent="Scene Root/armature-doorsimple/Skeleton/doorupper" index="0"]
disabled = true
[node name="sound" type="AudioStreamPlayer3D" parent="." index="1"]
stream = ExtResource( 3 )
attenuation_model = 0
unit_db = 4.0
unit_size = 7.0
max_db = 3.0
pitch_scale = 1.0
autoplay = false
max_distance = 0.0
out_of_range_mode = 0
bus = "Master"
area_mask = 1
emission_angle_enabled = false
emission_angle_degrees = 45.0
emission_angle_filter_attenuation_db = -12.0
attenuation_filter_cutoff_hz = 5000.0
attenuation_filter_db = -24.0
doppler_tracking = 0
[node name="CollisionShape" type="CollisionShape" parent="." index="2"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.55109, 0 )
shape = SubResource( 1 )
disabled = false
[connection signal="body_entered" from="." to="." method="_on_door_body_entered"]
[editable path="Scene Root"]

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
door/doorsimple_d.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

View File

@@ -0,0 +1,30 @@
[remap]
importer="texture"
type="StreamTexture"
path.s3tc="res://.import/doorsimple_d.png-02a92a8ec0b85a36527038536e169143.s3tc.stex"
[deps]
source_file="res://door/doorsimple_d.png"
dest_files=[ "res://.import/doorsimple_d.png-02a92a8ec0b85a36527038536e169143.s3tc.stex" ]
[params]
compress/mode=2
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/normal_map=0
flags/repeat=true
flags/filter=true
flags/mipmaps=true
flags/anisotropic=false
flags/srgb=1
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=false
svg/scale=1.0

BIN
door/doorsimple_e.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

@@ -0,0 +1,30 @@
[remap]
importer="texture"
type="StreamTexture"
path.s3tc="res://.import/doorsimple_e.png-2c89b898ef55e96675401008e28dcb82.s3tc.stex"
[deps]
source_file="res://door/doorsimple_e.png"
dest_files=[ "res://.import/doorsimple_e.png-2c89b898ef55e96675401008e28dcb82.s3tc.stex" ]
[params]
compress/mode=2
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/normal_map=0
flags/repeat=true
flags/filter=true
flags/mipmaps=true
flags/anisotropic=false
flags/srgb=1
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=false
svg/scale=1.0

BIN
door/doorsimple_n.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

View File

@@ -0,0 +1,30 @@
[remap]
importer="texture"
type="StreamTexture"
path.s3tc="res://.import/doorsimple_n.png-0d2eaeddd75a8b0673d35149669ce64b.s3tc.stex"
[deps]
source_file="res://door/doorsimple_n.png"
dest_files=[ "res://.import/doorsimple_n.png-0d2eaeddd75a8b0673d35149669ce64b.s3tc.stex" ]
[params]
compress/mode=2
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/normal_map=1
flags/repeat=true
flags/filter=true
flags/mipmaps=true
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=false
svg/scale=1.0

Binary file not shown.

Binary file not shown.

BIN
door/doorsimple_orm.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

View File

@@ -0,0 +1,30 @@
[remap]
importer="texture"
type="StreamTexture"
path.s3tc="res://.import/doorsimple_orm.png-af0bc78b1b2313b4d92440720608aac1.s3tc.stex"
[deps]
source_file="res://door/doorsimple_orm.png"
dest_files=[ "res://.import/doorsimple_orm.png-af0bc78b1b2313b4d92440720608aac1.s3tc.stex" ]
[params]
compress/mode=2
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/normal_map=0
flags/repeat=true
flags/filter=true
flags/mipmaps=true
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=false
svg/scale=1.0

BIN
door/open_close.wav Normal file

Binary file not shown.

View File

@@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/open_close.wav-15c93b82a463a1fe63bbc03e48e48393.sample"
[deps]
source_file="res://door/open_close.wav"
dest_files=[ "res://.import/open_close.wav-15c93b82a463a1fe63bbc03e48e48393.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=true
edit/normalize=true
edit/loop=false
compress/mode=0

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 MiB

View File

@@ -0,0 +1,30 @@
[remap]
importer="texture"
type="StreamTexture"
path.s3tc="res://.import/EvilRobo-BaseColor.png-e1a7e1393d4f8b785136b1fbae2e632c.s3tc.stex"
[deps]
source_file="res://enemies/red_robot/EvilRobo-BaseColor.png"
dest_files=[ "res://.import/EvilRobo-BaseColor.png-e1a7e1393d4f8b785136b1fbae2e632c.s3tc.stex" ]
[params]
compress/mode=2
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/normal_map=0
flags/repeat=true
flags/filter=true
flags/mipmaps=true
flags/anisotropic=false
flags/srgb=1
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=false
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@@ -0,0 +1,30 @@
[remap]
importer="texture"
type="StreamTexture"
path.s3tc="res://.import/EvilRobo-Emission.png-8b8c030f004b03fff60873854fc9de85.s3tc.stex"
[deps]
source_file="res://enemies/red_robot/EvilRobo-Emission.png"
dest_files=[ "res://.import/EvilRobo-Emission.png-8b8c030f004b03fff60873854fc9de85.s3tc.stex" ]
[params]
compress/mode=2
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/normal_map=0
flags/repeat=true
flags/filter=true
flags/mipmaps=true
flags/anisotropic=false
flags/srgb=1
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=false
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 MiB

View File

@@ -0,0 +1,30 @@
[remap]
importer="texture"
type="StreamTexture"
path.s3tc="res://.import/EvilRobo-Normal.png-c927264fda0350a21978f9019c9db2ff.s3tc.stex"
[deps]
source_file="res://enemies/red_robot/EvilRobo-Normal.png"
dest_files=[ "res://.import/EvilRobo-Normal.png-c927264fda0350a21978f9019c9db2ff.s3tc.stex" ]
[params]
compress/mode=2
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/normal_map=1
flags/repeat=true
flags/filter=true
flags/mipmaps=true
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=false
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 MiB

View File

@@ -0,0 +1,30 @@
[remap]
importer="texture"
type="StreamTexture"
path.s3tc="res://.import/EvilRobo-RoughnessOclussionMetallic.png-e94fd7ce8f28808e2da30e4fc7c3185a.s3tc.stex"
[deps]
source_file="res://enemies/red_robot/EvilRobo-RoughnessOclussionMetallic.png"
dest_files=[ "res://.import/EvilRobo-RoughnessOclussionMetallic.png-e94fd7ce8f28808e2da30e4fc7c3185a.s3tc.stex" ]
[params]
compress/mode=2
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/normal_map=0
flags/repeat=true
flags/filter=true
flags/mipmaps=true
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=false
svg/scale=1.0

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:35f0f3115c0f3c71383f864c07bc8cadb79dfc2457656628a22f3925be0f7782
size 6415012

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fea1f2086ecb509611f8fc3aa5e1855c479e19a7771a037bf3deb4ff2b43bcaf
size 21126029

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/charge.wav-bc1042f7d3f6060630e0ef97e7270950.sample"
[deps]
source_file="res://enemies/red_robot/charge.wav"
dest_files=[ "res://.import/charge.wav-bc1042f7d3f6060630e0ef97e7270950.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=true
edit/normalize=true
edit/loop=false
compress/mode=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

View File

@@ -0,0 +1,30 @@
[remap]
importer="texture"
type="StreamTexture"
path.s3tc="res://.import/explosion.png-bc8f5e219854bd707f9481ecbca3f8dc.s3tc.stex"
[deps]
source_file="res://enemies/red_robot/explosion.png"
dest_files=[ "res://.import/explosion.png-bc8f5e219854bd707f9481ecbca3f8dc.s3tc.stex" ]
[params]
compress/mode=2
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/normal_map=0
flags/repeat=true
flags/filter=true
flags/mipmaps=true
flags/anisotropic=false
flags/srgb=1
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=false
svg/scale=1.0

Binary file not shown.

View File

@@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/explosion.wav-6b181eeaf9022fc7807e78e100923e70.sample"
[deps]
source_file="res://enemies/red_robot/explosion.wav"
dest_files=[ "res://.import/explosion.wav-6b181eeaf9022fc7807e78e100923e70.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=true
edit/normalize=true
edit/loop=false
compress/mode=0

875
enemies/red_robot/fire.tscn Normal file
View File

@@ -0,0 +1,875 @@
[gd_scene load_steps=49 format=2]
[ext_resource path="res://enemies/red_robot/red_robot.gd" type="Script" id=1]
[ext_resource path="res://enemies/red_robot/badrobot_large.dae" type="PackedScene" id=2]
[ext_resource path="res://enemies/red_robot/ray.obj" type="ArrayMesh" id=3]
[ext_resource path="res://enemies/red_robot/ray.shader" type="Shader" id=4]
[ext_resource path="res://enemies/red_robot/ray_texture.png" type="Texture" id=5]
[ext_resource path="res://enemies/red_robot/ray_smoke_texture.png" type="Texture" id=6]
[ext_resource path="res://enemies/red_robot/particle.png" type="Texture" id=7]
[ext_resource path="res://enemies/red_robot/explosion.png" type="Texture" id=8]
[ext_resource path="res://enemies/red_robot/part_shield.obj" type="ArrayMesh" id=9]
[ext_resource path="res://enemies/red_robot/EvilRobo.material" type="Material" id=10]
[sub_resource type="ShaderMaterial" id=1]
render_priority = 0
shader = ExtResource( 4 )
shader_param/deform = 2.0
shader_param/transparency = 0.0
shader_param/energy = 1.0
shader_param/smoke = 1.0
shader_param/clip = 20.0
shader_param/ray_texture = ExtResource( 5 )
shader_param/smoke_texture = ExtResource( 6 )
_sections_unfolded = [ "Shader Param", "shader", "shader_param" ]
[sub_resource type="Gradient" id=2]
offsets = PoolRealArray( 0, 0.283019, 1 )
colors = PoolColorArray( 1, 1, 1, 0, 1, 1, 1, 0.283019, 1, 1, 1, 1 )
[sub_resource type="GradientTexture" id=3]
flags = 4
gradient = SubResource( 2 )
width = 2048
_sections_unfolded = [ "gradient" ]
[sub_resource type="Curve" id=4]
min_value = 0.0
max_value = 1.0
bake_resolution = 100
_data = [ Vector2( 0, 1 ), 0.0, 0.0, 0, 0, Vector2( 1, 0.5264 ), 0.0, 0.0, 0, 0 ]
[sub_resource type="CurveTexture" id=5]
flags = 4
width = 2048
curve = SubResource( 4 )
_sections_unfolded = [ "curve" ]
[sub_resource type="ParticlesMaterial" id=6]
render_priority = 0
trail_divisor = 6
trail_size_modifier = SubResource( 5 )
emission_shape = 1
emission_sphere_radius = 1.0
flag_align_y = false
flag_rotate_y = false
flag_disable_z = false
spread = 45.0
flatness = 0.0
gravity = Vector3( 0, 0, 0 )
initial_velocity = 0.0
initial_velocity_random = 0.0
angular_velocity = -0.381543
angular_velocity_random = 0.0
linear_accel = 1.0
linear_accel_random = 1.0
radial_accel = -1.0
radial_accel_random = 0.0
tangential_accel = 1.0
tangential_accel_random = 0.0
damping = 0.0
damping_random = 0.0
angle = 0.0
angle_random = 0.0
scale = 0.1
scale_random = 0.0
color_ramp = SubResource( 3 )
hue_variation = 0.0
hue_variation_random = 0.0
anim_speed = 0.0
anim_speed_random = 0.0
anim_offset = 0.0
anim_offset_random = 0.0
anim_loop = false
_sections_unfolded = [ "Emission Shape", "Gravity", "Initial Velocity", "Linear Accel", "Radial Accel", "Scale", "Tangential Accel", "Trail", "trail_size_modifier" ]
[sub_resource type="SpatialMaterial" id=7]
render_priority = 0
flags_transparent = true
flags_unshaded = true
flags_vertex_lighting = false
flags_no_depth_test = false
flags_use_point_size = false
flags_world_triplanar = false
flags_fixed_size = false
flags_albedo_tex_force_srgb = false
flags_do_not_receive_shadows = false
vertex_color_use_as_albedo = true
vertex_color_is_srgb = true
params_diffuse_mode = 0
params_specular_mode = 0
params_blend_mode = 1
params_cull_mode = 0
params_depth_draw_mode = 0
params_line_width = 1.0
params_point_size = 1.0
params_billboard_mode = 3
params_grow = false
params_use_alpha_scissor = false
particles_anim_h_frames = 1
particles_anim_v_frames = 1
particles_anim_loop = 0
albedo_color = Color( 0.870588, 0.294118, 0.294118, 1 )
albedo_texture = ExtResource( 7 )
metallic = 0.0
metallic_specular = 0.5
metallic_texture_channel = 0
roughness = 0.0
roughness_texture_channel = 0
emission_enabled = false
normal_enabled = false
rim_enabled = false
clearcoat_enabled = false
anisotropy_enabled = false
ao_enabled = false
depth_enabled = false
subsurf_scatter_enabled = false
transmission_enabled = false
refraction_enabled = false
detail_enabled = false
uv1_scale = Vector3( 1, 1, 1 )
uv1_offset = Vector3( 0, 0, 0 )
uv1_triplanar = false
uv1_triplanar_sharpness = 1.0
uv2_scale = Vector3( 1, 1, 1 )
uv2_offset = Vector3( 0, 0, 0 )
uv2_triplanar = false
uv2_triplanar_sharpness = 1.0
proximity_fade_enable = false
distance_fade_enable = false
_sections_unfolded = [ "Albedo", "Flags", "Parameters", "Vertex Color" ]
[sub_resource type="QuadMesh" id=8]
material = SubResource( 7 )
custom_aabb = AABB( 0, 0, 0, 0, 0, 0 )
flip_faces = false
size = Vector2( 1, 1 )
[sub_resource type="Gradient" id=9]
offsets = PoolRealArray( 0, 1 )
colors = PoolColorArray( 1, 1, 1, 0.961538, 0.960784, 0.960784, 0.960784, 0 )
[sub_resource type="GradientTexture" id=10]
flags = 4
gradient = SubResource( 9 )
width = 2048
_sections_unfolded = [ "gradient" ]
[sub_resource type="Curve" id=11]
min_value = 0.0
max_value = 2.0
bake_resolution = 100
_data = [ Vector2( 0, 0.3856 ), 0.0, 0.0, 0, 0, Vector2( 0.0612366, 1 ), 0.0, 0.0, 0, 0, Vector2( 0.999703, 1.4752 ), 0.0, 0.0, 0, 0 ]
[sub_resource type="CurveTexture" id=12]
flags = 4
width = 2048
curve = SubResource( 11 )
[sub_resource type="ParticlesMaterial" id=13]
render_priority = 0
trail_divisor = 1
emission_shape = 1
emission_sphere_radius = 0.1
flag_align_y = false
flag_rotate_y = false
flag_disable_z = false
spread = 180.0
flatness = 0.0
gravity = Vector3( 0, 2, 0 )
initial_velocity = 0.3
initial_velocity_random = 0.0
angular_velocity = 84.86
angular_velocity_random = 1.0
linear_accel = 0.0
linear_accel_random = 0.0
radial_accel = 0.0
radial_accel_random = 0.0
tangential_accel = 0.0
tangential_accel_random = 0.0
damping = 0.0
damping_random = 0.0
angle = 0.0
angle_random = 0.0
scale = 1.0
scale_random = 0.0
scale_curve = SubResource( 12 )
color_ramp = SubResource( 10 )
hue_variation = 0.0
hue_variation_random = 0.0
anim_speed = 0.0
anim_speed_random = 0.0
anim_offset = 0.0
anim_offset_random = 0.0
anim_loop = false
_sections_unfolded = [ "Angular Velocity", "Emission Shape", "Gravity", "Initial Velocity", "Scale", "Spread", "color_ramp", "scale_curve" ]
[sub_resource type="SpatialMaterial" id=14]
render_priority = 0
flags_transparent = true
flags_unshaded = true
flags_vertex_lighting = false
flags_no_depth_test = false
flags_use_point_size = false
flags_world_triplanar = false
flags_fixed_size = false
flags_albedo_tex_force_srgb = false
flags_do_not_receive_shadows = false
vertex_color_use_as_albedo = true
vertex_color_is_srgb = true
params_diffuse_mode = 0
params_specular_mode = 0
params_blend_mode = 1
params_cull_mode = 0
params_depth_draw_mode = 0
params_line_width = 1.0
params_point_size = 1.0
params_billboard_mode = 3
params_grow = false
params_use_alpha_scissor = false
particles_anim_h_frames = 1
particles_anim_v_frames = 1
particles_anim_loop = 0
albedo_color = Color( 1, 1, 1, 1 )
albedo_texture = ExtResource( 8 )
metallic = 0.0
metallic_specular = 0.5
metallic_texture_channel = 0
roughness = 0.0
roughness_texture_channel = 0
emission_enabled = false
normal_enabled = false
rim_enabled = false
clearcoat_enabled = false
anisotropy_enabled = false
ao_enabled = false
depth_enabled = false
subsurf_scatter_enabled = false
transmission_enabled = false
refraction_enabled = false
detail_enabled = false
uv1_scale = Vector3( 1, 1, 1 )
uv1_offset = Vector3( 0, 0, 0 )
uv1_triplanar = false
uv1_triplanar_sharpness = 1.0
uv2_scale = Vector3( 1, 1, 1 )
uv2_offset = Vector3( 0, 0, 0 )
uv2_triplanar = false
uv2_triplanar_sharpness = 1.0
proximity_fade_enable = true
proximity_fade_distance = 0.2
distance_fade_enable = false
_sections_unfolded = [ "Albedo", "Distance Fade", "Flags", "Parameters", "Proximity Fade", "Vertex Color", "albedo_texture" ]
[sub_resource type="QuadMesh" id=15]
material = SubResource( 14 )
custom_aabb = AABB( 0, 0, 0, 0, 0, 0 )
flip_faces = false
size = Vector2( 1, 1 )
_sections_unfolded = [ "material" ]
[sub_resource type="AnimationNodeAnimation" id=16]
resource_local_to_scene = true
animation = "TurnRight-cycle"
[sub_resource type="AnimationNodeAnimation" id=17]
resource_local_to_scene = true
animation = "TurnLeft-cycle"
[sub_resource type="AnimationNodeAnimation" id=18]
resource_local_to_scene = true
animation = "Walk-cycle"
[sub_resource type="AnimationNodeAnimation" id=19]
resource_local_to_scene = true
animation = "Damage_take1"
[sub_resource type="AnimationNodeAnimation" id=20]
resource_local_to_scene = true
animation = "Damage_take2"
[sub_resource type="AnimationNodeAnimation" id=21]
resource_local_to_scene = true
animation = "Damage_heavy"
[sub_resource type="AnimationNodeAnimation" id=22]
resource_local_to_scene = true
animation = "Idle-cycle"
[sub_resource type="AnimationNodeAnimation" id=23]
resource_local_to_scene = true
animation = "Cannon-U"
[sub_resource type="AnimationNodeAnimation" id=24]
resource_local_to_scene = true
animation = "Cannon-D"
[sub_resource type="AnimationNodeAnimation" id=25]
resource_local_to_scene = true
animation = "Cannon-R"
[sub_resource type="AnimationNodeAnimation" id=26]
resource_local_to_scene = true
animation = "Cannon-L"
[sub_resource type="AnimationNodeAnimation" id=27]
resource_local_to_scene = true
animation = "Cannon-N"
[sub_resource type="AnimationNodeBlendSpace2D" id=28]
resource_local_to_scene = true
auto_triangles = true
blend_point_0/node = SubResource( 23 )
blend_point_0/pos = Vector2( 0, 1 )
blend_point_1/node = SubResource( 24 )
blend_point_1/pos = Vector2( 0, -1 )
blend_point_2/node = SubResource( 25 )
blend_point_2/pos = Vector2( 1, 0 )
blend_point_3/node = SubResource( 26 )
blend_point_3/pos = Vector2( -1, 0 )
blend_point_4/node = SubResource( 27 )
blend_point_4/pos = Vector2( 0, 0 )
triangles = PoolIntArray( 0, 2, 4, 0, 3, 4, 1, 2, 4, 1, 3, 4 )
min_space = Vector2( -1, -1 )
max_space = Vector2( 1, 1 )
snap = Vector2( 0.1, 0.1 )
blend_position = Vector2( -0.00151747, -0.0113636 )
x_label = "x"
y_label = "y"
[sub_resource type="AnimationNodeBlend2" id=29]
resource_local_to_scene = true
filter_enabled = true
filters = [ "Armature/Skeleton:Cannon-TrackTurret", "Armature/Skeleton:CannonAnimRecoil" ]
amount = 0.0
sync = false
[sub_resource type="AnimationNodeOneShot" id=30]
resource_local_to_scene = true
filter_enabled = false
filters = [ ]
fadein_time = 0.1
fadeout_time = 0.5
autorestart = false
autorestart_delay = 1.0
autorestart_random_delay = 0.0
sync = false
[sub_resource type="AnimationNodeOneShot" id=31]
resource_local_to_scene = true
filter_enabled = false
filters = [ ]
fadein_time = 0.1
fadeout_time = 0.5
autorestart = false
autorestart_delay = 1.0
autorestart_random_delay = 0.0
sync = false
[sub_resource type="AnimationNodeOneShot" id=32]
resource_local_to_scene = true
filter_enabled = false
filters = [ ]
fadein_time = 0.1
fadeout_time = 0.5
autorestart = false
autorestart_delay = 1.0
autorestart_random_delay = 0.0
sync = false
[sub_resource type="AnimationNodeTransition" id=33]
resource_local_to_scene = true
input_count = 4
current = 0
xfade_time = 0.5
input_0/name = "idle"
input_0/auto_advance = false
input_1/name = "turn_left"
input_1/auto_advance = false
input_2/name = "turn_right"
input_2/auto_advance = false
input_3/name = "walk"
input_3/auto_advance = false
_sections_unfolded = [ "Input 0", "Input 1", "Input 2", "Input 3" ]
[sub_resource type="AnimationNodeBlendTree" id=34]
resource_local_to_scene = true
graph_offset = Vector2( -16, 79 )
nodes/Animation/node = SubResource( 22 )
nodes/Animation/position = Vector2( -200, 100 )
"nodes/Animation 2/node" = SubResource( 16 )
"nodes/Animation 2/position" = Vector2( -200, 340 )
"nodes/Animation 3/node" = SubResource( 17 )
"nodes/Animation 3/position" = Vector2( -200, 220 )
"nodes/Animation 4/node" = SubResource( 18 )
"nodes/Animation 4/position" = Vector2( -160, 460 )
"nodes/Animation 5/node" = SubResource( 19 )
"nodes/Animation 5/position" = Vector2( 200, 440 )
"nodes/Animation 6/node" = SubResource( 20 )
"nodes/Animation 6/position" = Vector2( 500, 440 )
"nodes/Animation 7/node" = SubResource( 21 )
"nodes/Animation 7/position" = Vector2( 740, 440 )
nodes/aim/node = SubResource( 28 )
nodes/aim/position = Vector2( 80, 320 )
nodes/aiming/node = SubResource( 29 )
nodes/aiming/position = Vector2( 320, 200 )
nodes/hit1/node = SubResource( 30 )
nodes/hit1/position = Vector2( 540, 240 )
nodes/hit2/node = SubResource( 31 )
nodes/hit2/position = Vector2( 760, 240 )
nodes/hit3/node = SubResource( 32 )
nodes/hit3/position = Vector2( 980, 240 )
nodes/output/position = Vector2( 1180, 200 )
nodes/state/node = SubResource( 33 )
nodes/state/position = Vector2( 60, 100 )
node_connections = [ "output", 0, "hit3", "state", 0, "Animation", "state", 1, "Animation 3", "state", 2, "Animation 2", "state", 3, "Animation 4", "aiming", 0, "state", "aiming", 1, "aim", "hit1", 0, "aiming", "hit1", 1, "Animation 5", "hit2", 0, "hit1", "hit2", 1, "Animation 6", "hit3", 0, "hit2", "hit3", 1, "Animation 7" ]
[sub_resource type="SphereShape" id=35]
radius = 1.11815
[sub_resource type="SphereShape" id=36]
radius = 18.1337
[sub_resource type="Animation" id=37]
length = 4.0
loop = false
step = 0.1
tracks/0/type = "value"
tracks/0/path = NodePath("Scene Root/Armature/Skeleton/ray_from/ray:material/0:shader_param/energy")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 2, 2.1, 2.2, 2.6 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1 ),
"update": 0,
"values": [ 1.0, 1.0, 5.0, 1.0, 1.0 ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("Scene Root/Armature/Skeleton/ray_from/ray:material/0:shader_param/transparency")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0, 2, 2.1, 2.6, 2.8 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1 ),
"update": 0,
"values": [ 0.0, 0.0, 1.0, 1.0, 0.0 ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("Scene Root/Armature/Skeleton/ray_from/ray:material/0:shader_param/deform")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0, 2, 2.6, 2.8 ),
"transitions": PoolRealArray( 1, 1, 1, 1 ),
"update": 0,
"values": [ 0.0, 0.0, 0.0, 2.0 ]
}
tracks/3/type = "value"
tracks/3/path = NodePath("Scene Root/Armature/Skeleton/ray_from/ray:material/0:shader_param/smoke")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PoolRealArray( 0, 2, 2.2, 2.6 ),
"transitions": PoolRealArray( 1, 1, 1, 1 ),
"update": 0,
"values": [ 0.0, 0.0, 0.0, 1.0 ]
}
tracks/4/type = "value"
tracks/4/path = NodePath("shoot_light:visible")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/keys = {
"times": PoolRealArray( 0.2, 1.6, 2, 2.6 ),
"transitions": PoolRealArray( 1, 1, 1, 1 ),
"update": 1,
"values": [ true, false, true, false ]
}
tracks/5/type = "value"
tracks/5/path = NodePath("shoot_light:light_energy")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/keys = {
"times": PoolRealArray( 0, 0.2, 0.9, 1.6, 2, 2.1, 2.6 ),
"transitions": PoolRealArray( 1, -2, 4.28709, 1, 1, 1, 1 ),
"update": 0,
"values": [ 0.0, 0.0, 1.0, 0.0, 0.0, 5.0, 0.0 ]
}
tracks/6/type = "value"
tracks/6/path = NodePath("Scene Root/Armature/Skeleton/ray_from/Particles:emitting")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/keys = {
"times": PoolRealArray( 0, 0.2, 1 ),
"transitions": PoolRealArray( 1, 1, 1 ),
"update": 1,
"values": [ false, true, false ]
}
tracks/7/type = "value"
tracks/7/path = NodePath("Scene Root/Armature/Skeleton/ray_from/explosion:emitting")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/keys = {
"times": PoolRealArray( 2.1 ),
"transitions": PoolRealArray( 1 ),
"update": 1,
"values": [ true ]
}
tracks/8/type = "value"
tracks/8/path = NodePath("AnimationTree:active")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/imported = false
tracks/8/enabled = false
tracks/8/keys = {
"times": PoolRealArray( 0, 2.6, 2.9 ),
"transitions": PoolRealArray( 1, 1, 1 ),
"update": 1,
"values": [ true, false, true ]
}
tracks/9/type = "method"
tracks/9/path = NodePath(".")
tracks/9/interp = 1
tracks/9/loop_wrap = true
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/keys = {
"times": PoolRealArray( 1.9, 3 ),
"transitions": PoolRealArray( 1, 1 ),
"values": [ {
"args": [ ],
"method": "shoot_check"
}, {
"args": [ ],
"method": "resume_approach"
} ]
}
[sub_resource type="BoxShape" id=38]
extents = Vector3( 0.499703, 0.514522, 0.0474423 )
[node name="big_robot" type="KinematicBody" index="0"]
input_ray_pickable = true
input_capture_on_drag = false
collision_layer = 1
collision_mask = 1
axis_lock_linear_x = false
axis_lock_linear_y = false
axis_lock_linear_z = false
axis_lock_angular_x = false
axis_lock_angular_y = false
axis_lock_angular_z = false
collision/safe_margin = 0.001
script = ExtResource( 1 )
[node name="Scene Root" parent="." index="0" instance=ExtResource( 2 )]
_sections_unfolded = [ "Transform" ]
[node name="Armature" parent="Scene Root" index="0"]
_sections_unfolded = [ "Transform" ]
[node name="Skeleton" parent="Scene Root/Armature" index="0"]
bones/14/bound_children = [ NodePath("ray_from") ]
_sections_unfolded = [ "Transform" ]
[node name="EvilRoboBody" parent="Scene Root/Armature/Skeleton" index="0"]
_sections_unfolded = [ "mesh" ]
[node name="ray_from" type="BoneAttachment" parent="Scene Root/Armature/Skeleton" index="4"]
transform = Transform( -0.996181, 0.0216769, 0.0845814, 0.0448158, 0.958298, 0.282233, -0.0749363, 0.284946, -0.95561, 0.0285844, 1.88065, 0.865486 )
bone_name = "CannonAnimRecoil"
[node name="ray" type="MeshInstance" parent="Scene Root/Armature/Skeleton/ray_from" index="0"]
transform = Transform( 1, 8.40737e-09, -9.31323e-10, -6.55928e-09, 1, -9.31323e-10, 4.65661e-10, 0, 1, 1.67638e-08, 0, -1.21376 )
layers = 1
material_override = null
cast_shadow = 1
extra_cull_margin = 0.0
use_in_baked_light = false
lod_min_distance = 0.0
lod_min_hysteresis = 0.0
lod_max_distance = 0.0
lod_max_hysteresis = 0.0
mesh = ExtResource( 3 )
skeleton = NodePath("")
material/0 = SubResource( 1 )
_sections_unfolded = [ "Material", "material/0" ]
[node name="Particles" type="Particles" parent="Scene Root/Armature/Skeleton/ray_from" index="1"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1.07273 )
layers = 1
material_override = null
cast_shadow = 1
extra_cull_margin = 0.0
use_in_baked_light = false
lod_min_distance = 0.0
lod_min_hysteresis = 0.0
lod_max_distance = 0.0
lod_max_hysteresis = 0.0
emitting = false
amount = 64
lifetime = 1.0
one_shot = false
preprocess = 0.0
speed_scale = 1.0
explosiveness = 0.0
randomness = 0.0
fixed_fps = 0
fract_delta = true
visibility_aabb = AABB( -4, -4, -4, 8, 8, 8 )
local_coords = true
draw_order = 0
process_material = SubResource( 6 )
draw_passes = 1
draw_pass_1 = SubResource( 8 )
_sections_unfolded = [ "Draw Passes", "Geometry", "Process Material", "Time", "draw_pass_1", "process_material" ]
[node name="explosion" type="Particles" parent="Scene Root/Armature/Skeleton/ray_from" index="2"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0332087, -10.283 )
layers = 1
material_override = null
cast_shadow = 1
extra_cull_margin = 0.0
use_in_baked_light = false
lod_min_distance = 0.0
lod_min_hysteresis = 0.0
lod_max_distance = 0.0
lod_max_hysteresis = 0.0
emitting = false
amount = 64
lifetime = 0.5
one_shot = true
preprocess = 0.0
speed_scale = 1.0
explosiveness = 1.0
randomness = 0.0
fixed_fps = 0
fract_delta = true
visibility_aabb = AABB( -4, -4, -4, 8, 8, 8 )
local_coords = false
draw_order = 0
process_material = SubResource( 13 )
draw_passes = 1
draw_pass_1 = SubResource( 15 )
_sections_unfolded = [ "Draw Passes", "Drawing", "Process Material", "Time", "process_material" ]
[node name="AnimationTree" type="AnimationTree" parent="." index="1"]
tree_root = SubResource( 34 )
anim_player = NodePath("../Scene Root/AnimationPlayer")
active = true
process_mode = 0
root_motion_track = NodePath("Armature/Skeleton:MASTER")
_sections_unfolded = [ "Root Motion", "tree_root" ]
[node name="CollisionShape" type="CollisionShape" parent="." index="2"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.11655, -0.0212681 )
shape = SubResource( 35 )
disabled = false
[node name="area" type="Area" parent="." index="3"]
input_ray_pickable = false
input_capture_on_drag = false
space_override = 0
gravity_point = false
gravity_distance_scale = 0.0
gravity_vec = Vector3( 0, -1, 0 )
gravity = 9.8
linear_damp = 0.1
angular_damp = 1.0
priority = 0.0
monitoring = true
monitorable = true
collision_layer = 1
collision_mask = 1
audio_bus_override = false
audio_bus_name = "Master"
reverb_bus_enable = false
reverb_bus_name = "Master"
reverb_bus_amount = 0.0
reverb_bus_uniformity = 0.0
[node name="CollisionShape" type="CollisionShape" parent="area" index="0"]
shape = SubResource( 36 )
disabled = false
[node name="RootMotionView" type="RootMotionView" parent="." index="4"]
layers = 1
animation_path = NodePath("../AnimationTree")
color = Color( 0.5, 0.5, 1, 1 )
cell_size = 1.0
radius = 10.0
zero_y = true
[node name="shoot_anim" type="AnimationPlayer" parent="." index="5"]
root_node = NodePath("..")
autoplay = ""
playback_process_mode = 1
playback_default_blend_time = 0.0
playback_speed = 1.0
anims/shoot = SubResource( 37 )
blend_times = [ ]
[node name="shoot_light" type="OmniLight" parent="." index="6"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.82358, 2.06607 )
visible = false
layers = 1
light_color = Color( 0.992157, 0.713726, 0.713726, 1 )
light_energy = 0.0
light_indirect_energy = 1.0
light_negative = false
light_specular = 0.5
light_bake_mode = 1
light_cull_mask = -1
shadow_enabled = true
shadow_color = Color( 0, 0, 0, 1 )
shadow_bias = 0.15
shadow_contact = 0.0
shadow_reverse_cull_face = false
editor_only = false
omni_range = 8.68993
omni_attenuation = 1.0
omni_shadow_mode = 0
omni_shadow_detail = 1
_sections_unfolded = [ "Light", "Omni", "Shadow", "Visibility" ]
[node name="death" type="Spatial" parent="." index="7"]
[node name="part_shield" type="RigidBody" parent="death" index="0"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.81641, 0, 0 )
input_ray_pickable = true
input_capture_on_drag = false
collision_layer = 1
collision_mask = 1
mode = 0
mass = 1.0
friction = 1.0
bounce = 0.0
gravity_scale = 1.0
custom_integrator = false
continuous_cd = false
contacts_reported = 0
contact_monitor = false
sleeping = false
can_sleep = true
axis_lock_linear_x = false
axis_lock_linear_y = false
axis_lock_linear_z = false
axis_lock_angular_x = false
axis_lock_angular_y = false
axis_lock_angular_z = false
linear_velocity = Vector3( 0, 0, 0 )
linear_damp = -1.0
angular_velocity = Vector3( 0, 0, 0 )
angular_damp = -1.0
[node name="mesh" type="MeshInstance" parent="death/part_shield" index="0"]
layers = 1
material_override = null
cast_shadow = 1
extra_cull_margin = 0.0
use_in_baked_light = false
lod_min_distance = 0.0
lod_min_hysteresis = 0.0
lod_max_distance = 0.0
lod_max_hysteresis = 0.0
mesh = ExtResource( 9 )
skeleton = NodePath("..")
material/0 = ExtResource( 10 )
_sections_unfolded = [ "Geometry", "Material" ]
[node name="CollisionShape" type="CollisionShape" parent="death/part_shield" index="1"]
transform = Transform( 1, 0, 0, 0, 0.908425, 0.418048, 0, -0.418048, 0.908425, 1.26196, 1.92252, 0.648781 )
shape = SubResource( 38 )
disabled = false
[node name="CollisionShape2" type="CollisionShape" parent="death/part_shield" index="2"]
transform = Transform( 1, 0, 0, 0, 0.999275, -0.038063, 0, 0.038063, 0.999275, 1.26196, 0.914196, 0.807968 )
shape = SubResource( 38 )
disabled = false
[node name="fire" type="Particles" parent="death/part_shield" index="3"]
transform = Transform( -0.999594, 0.0284228, 0.00205158, 0.0284288, 0.999592, 0.00296096, -0.0019666, 0.00301808, -0.999993, 1.84765, 2.51685, 10.484 )
layers = 1
material_override = null
cast_shadow = 1
extra_cull_margin = 0.0
use_in_baked_light = false
lod_min_distance = 0.0
lod_min_hysteresis = 0.0
lod_max_distance = 0.0
lod_max_hysteresis = 0.0
emitting = true
amount = 32
lifetime = 1.0
one_shot = false
preprocess = 0.0
speed_scale = 1.0
explosiveness = 0.0
randomness = 0.0
fixed_fps = 0
fract_delta = true
visibility_aabb = AABB( -4, -4, -4, 8, 8, 8 )
local_coords = true
draw_order = 0
process_material = SubResource( 13 )
draw_passes = 1
draw_pass_1 = SubResource( 15 )
_sections_unfolded = [ "Draw Passes", "Process Material", "Time", "draw_pass_1", "process_material" ]
[connection signal="body_entered" from="area" to="." method="_on_area_body_entered"]
[connection signal="body_exited" from="area" to="." method="_on_area_body_exited"]
[editable path="Scene Root"]

BIN
enemies/red_robot/hit.wav Normal file

Binary file not shown.

View File

@@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/hit.wav-6d8b1c6e535ef90efa1ef287a501b5db.sample"
[deps]
source_file="res://enemies/red_robot/hit.wav"
dest_files=[ "res://.import/hit.wav-6d8b1c6e535ef90efa1ef287a501b5db.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=true
edit/normalize=true
edit/loop=false
compress/mode=0

View File

@@ -0,0 +1,24 @@
# Blender MTL File: 'badrobot_large.blend'
# Material Count: 2
newmtl EvilRobo
Ns 96.078431
Ka 1.000000 1.000000 1.000000
Kd 0.452006 0.397301 0.361267
Ks 0.000000 0.000000 0.000000
Ke 0.000000 0.000000 0.000000
Ni 1.000000
d 1.000000
illum 0
map_Kd /home/red/coding/godot/Desktop/RobotMalo/EvilRobo-BaseColor.png
newmtl ShadelessBlack
Ns 96.078431
Ka 1.000000 1.000000 1.000000
Kd 0.000000 0.000000 0.000000
Ks 0.000000 0.000000 0.000000
Ke 0.000000 0.000000 0.000000
Ni 1.000000
d 1.000000
illum 0
map_Kd /home/red/coding/godot/Desktop/RobotMalo/EvilRobo-BaseColor.png

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,18 @@
[remap]
importer="wavefront_obj"
type="Mesh"
path="res://.import/part_head.obj-139943756a373f59f2fa564edc1c12f1.mesh"
[deps]
files=[ "res://.import/part_head.obj-139943756a373f59f2fa564edc1c12f1.mesh" ]
source_file="res://enemies/red_robot/part_head.obj"
dest_files=[ "res://.import/part_head.obj-139943756a373f59f2fa564edc1c12f1.mesh", "res://.import/part_head.obj-139943756a373f59f2fa564edc1c12f1.mesh" ]
[params]
generate_tangents=true
scale_mesh=Vector3( 1, 1, 1 )
optimize_mesh=true

View File

@@ -0,0 +1,13 @@
# Blender MTL File: 'badrobot_large.blend'
# Material Count: 1
newmtl EvilRobo
Ns 96.078431
Ka 1.000000 1.000000 1.000000
Kd 0.452006 0.397301 0.361267
Ks 0.000000 0.000000 0.000000
Ke 0.000000 0.000000 0.000000
Ni 1.000000
d 1.000000
illum 0
map_Kd /home/red/coding/godot/Desktop/RobotMalo/EvilRobo-BaseColor.png

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,18 @@
[remap]
importer="wavefront_obj"
type="Mesh"
path="res://.import/part_shield.obj-3ee32b2d765fa709ced40b01f8f70521.mesh"
[deps]
files=[ "res://.import/part_shield.obj-3ee32b2d765fa709ced40b01f8f70521.mesh" ]
source_file="res://enemies/red_robot/part_shield.obj"
dest_files=[ "res://.import/part_shield.obj-3ee32b2d765fa709ced40b01f8f70521.mesh", "res://.import/part_shield.obj-3ee32b2d765fa709ced40b01f8f70521.mesh" ]
[params]
generate_tangents=true
scale_mesh=Vector3( 1, 1, 1 )
optimize_mesh=true

Binary file not shown.

After

Width:  |  Height:  |  Size: 892 B

View File

@@ -0,0 +1,30 @@
[remap]
importer="texture"
type="StreamTexture"
path.s3tc="res://.import/particle.png-dfce7d6cf368ef8abaac135ccb791a2e.s3tc.stex"
[deps]
source_file="res://enemies/red_robot/particle.png"
dest_files=[ "res://.import/particle.png-dfce7d6cf368ef8abaac135ccb791a2e.s3tc.stex" ]
[params]
compress/mode=2
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/normal_map=0
flags/repeat=true
flags/filter=true
flags/mipmaps=true
flags/anisotropic=false
flags/srgb=1
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=false
svg/scale=1.0

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c7497d5e737ed8c571d2a0d0b665785e0f1cc7c5a00ebb3eb8a7f242950d967a
size 759396

Binary file not shown.

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b9c01ffa31f59e4f2fab59e3c90880a44ea6b667b0cc5fd422ad115b8931481b
size 2022553

File diff suppressed because it is too large Load Diff

13
enemies/red_robot/ray.mtl Normal file
View File

@@ -0,0 +1,13 @@
# Blender MTL File: 'ray.blend'
# Material Count: 1
newmtl Material.001
Ns 96.078431
Ka 1.000000 1.000000 1.000000
Kd 0.640000 0.640000 0.640000
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.000000
d 1.000000
illum 0
map_Kd ray_smoke_texture.png

6420
enemies/red_robot/ray.obj Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,18 @@
[remap]
importer="wavefront_obj"
type="Mesh"
path="res://.import/ray.obj-d36389ed36595462fc2df02b2fefb633.mesh"
[deps]
files=[ "res://.import/ray.obj-d36389ed36595462fc2df02b2fefb633.mesh" ]
source_file="res://enemies/red_robot/ray.obj"
dest_files=[ "res://.import/ray.obj-d36389ed36595462fc2df02b2fefb633.mesh", "res://.import/ray.obj-d36389ed36595462fc2df02b2fefb633.mesh" ]
[params]
generate_tangents=true
scale_mesh=Vector3( 1, 1, 1 )
optimize_mesh=false

View File

@@ -0,0 +1,39 @@
shader_type spatial;
render_mode unshaded,cull_disabled;
uniform sampler2D ray_texture : hint_albedo;
uniform sampler2D smoke_texture : hint_albedo;
uniform float deform = 0.0;
uniform float transparency = 1.0;
uniform float energy = 1.0;
uniform float smoke = 0.0;
uniform float clip = 1000.0;
varying float dist;
void vertex() {
float deform_amount = 0.01 * deform;
vec2 offset = vec2(sin(VERTEX.z*1.4321),sin(VERTEX.z*2.12351));
VERTEX.xy+=deform_amount * offset;
VERTEX.xy*=1.0+deform;
dist = abs(VERTEX.z);
}
void fragment() {
if (dist > clip) {
discard;
}
vec4 ray_color = texture(ray_texture,UV);
vec4 smoke_color = texture(smoke_texture,UV);
vec4 col = mix(ray_color,smoke_color,smoke);
ALBEDO=col.rgb * energy;
ALPHA=col.a * transparency;
//ALBEDO=ray_color.rgb;
//ALPHA=ray_color.a;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -0,0 +1,30 @@
[remap]
importer="texture"
type="StreamTexture"
path.s3tc="res://.import/ray_smoke_texture.png-1e78781a356519f726ebcb8b3343bab8.s3tc.stex"
[deps]
source_file="res://enemies/red_robot/ray_smoke_texture.png"
dest_files=[ "res://.import/ray_smoke_texture.png-1e78781a356519f726ebcb8b3343bab8.s3tc.stex" ]
[params]
compress/mode=2
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/normal_map=0
flags/repeat=true
flags/filter=true
flags/mipmaps=true
flags/anisotropic=false
flags/srgb=1
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=false
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -0,0 +1,30 @@
[remap]
importer="texture"
type="StreamTexture"
path.s3tc="res://.import/ray_texture.png-0cc16380a96b1ab2c03fd2c2529c17a0.s3tc.stex"
[deps]
source_file="res://enemies/red_robot/ray_texture.png"
dest_files=[ "res://.import/ray_texture.png-0cc16380a96b1ab2c03fd2c2529c17a0.s3tc.stex" ]
[params]
compress/mode=2
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/normal_map=0
flags/repeat=true
flags/filter=true
flags/mipmaps=true
flags/anisotropic=false
flags/srgb=1
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=false
svg/scale=1.0

View File

@@ -0,0 +1,222 @@
extends KinematicBody
# class member variables go here, for example:
# var a = 2
# var b = "textvar"
const GRAVITY = Vector3(0,-9.8, 0)
const PLAYER_AIM_TOLERANCE_DEGREES = 15
const STATE_APPROACH = 0
const STATE_AIM = 1
const STATE_SHOOTING = 2
var state = STATE_APPROACH
const SHOOT_WAIT = 6.0
var shoot_countdown = SHOOT_WAIT
const AIM_TIME = 1
var aim_countdown = AIM_TIME
const AIM_PREPARE_TIME = 0.5
var aim_preparing = AIM_PREPARE_TIME
var player = null
var velocity = Vector3()
var orientation = Transform()
const MAX_ENERGY = 5
var energy = MAX_ENERGY
const BLEND_AIM_SPEED = 0.05
func _ready():
orientation=$"Scene Root".global_transform
orientation.origin = Vector3()
func resume_approach():
state = STATE_APPROACH
aim_preparing = AIM_PREPARE_TIME
shoot_countdown = SHOOT_WAIT
var dead = false
func hit():
if (dead):
return
$AnimationTree["parameters/hit"+["1","2","3"][randi()%3]+"/active"]=true
$sfx/hit.play()
energy-=1
if (energy==0):
dead=true
var base_xf = global_transform.basis
$AnimationTree.active=false
#$death/explosion.play("kaboom")
$"Scene Root".visible=false
$death.visible=true
$CollisionShape.disabled=true
$death/particles.emitting=true
$death/part_shield1/col1.disabled=false
$death/part_shield1/col2.disabled=false
$death/part_shield1.mode=RigidBody.MODE_RIGID
$death/part_shield2/col1.disabled=false
$death/part_shield2/col2.disabled=false
$death/part_shield2.mode=RigidBody.MODE_RIGID
$death/part_shield3/col1.disabled=false
$death/part_shield3/col2.disabled=false
$death/part_shield3.mode=RigidBody.MODE_RIGID
$death/part_shield2.linear_velocity = (base_xf.x+Vector3(0,1,0)).normalized() * 3
$death/part_shield3.linear_velocity = (Vector3(0,1,0)).normalized() * 3
$death/part_shield1.linear_velocity = (-base_xf.x+Vector3(0,1,0)).normalized() * 3
$death/part_shield2.angular_velocity = (Vector3(randf(),randf(),randf()).normalized() * Vector3(2,2,2) - Vector3(1,1,1)) * 10
$death/part_shield1.angular_velocity = (Vector3(randf(),randf(),randf()).normalized() * Vector3(2,2,2) - Vector3(1,1,1)) * 10
$death/part_shield3.angular_velocity = (Vector3(randf(),randf(),randf()).normalized() * Vector3(2,2,2) - Vector3(1,1,1)) * 10
$sfx/explosion.play()
func do_shoot():
var gt = $"Scene Root/Armature/Skeleton/ray_from".global_transform
var ray_from = gt.origin
var ray_dir = -gt.basis.z
var max_dist = 1000
var col = get_world().direct_space_state.intersect_ray(ray_from,ray_from + ray_dir * max_dist,[self])
if (not col.empty()):
max_dist = ray_from.distance_to(col.position)
if (col.collider == player):
pass # kill
#clip ray in shader
$"Scene Root/Armature/Skeleton/ray_from/ray".get_surface_material(0).set_shader_param("clip",max_dist)
#position explosion
$"Scene Root/Armature/Skeleton/ray_from/explosion".transform.origin.z = -max_dist
var test_shoot=false
func shoot_check():
test_shoot=true
func _physics_process(delta):
if (test_shoot):
do_shoot()
test_shoot=false
if (dead):
return
if (not player):
$AnimationTree["parameters/state/current"]=0 # go idle and good bye
return
var to_player_local = $"Scene Root".global_transform.affine_inverse().xform(player.global_transform.origin)
var to_player_angle = atan2( to_player_local.x, to_player_local.z )
if (state == STATE_APPROACH):
if (aim_preparing > 0):
aim_preparing-=delta
if (aim_preparing<0):
aim_preparing=0
$AnimationTree["parameters/aiming/blend_amount"]= aim_preparing / AIM_PREPARE_TIME
if (to_player_angle < -deg2rad(PLAYER_AIM_TOLERANCE_DEGREES)):
$AnimationTree["parameters/state/current"]=2
elif (to_player_angle > deg2rad(PLAYER_AIM_TOLERANCE_DEGREES)):
$AnimationTree["parameters/state/current"]=1
else:
$AnimationTree["parameters/state/current"]=3
# facing player, try to shoot
shoot_countdown-=delta
if (shoot_countdown <0):
#see if player can be killed because in sight
var ray_from = $"Scene Root/Armature/Skeleton/ray_from".global_transform.origin
var ray_to = player.global_transform.origin + Vector3(0,1,0) # middle of player
var col = get_world().direct_space_state.intersect_ray(ray_from,ray_to,[self])
if (not col.empty() and col.collider == player):
state = STATE_AIM
aim_countdown = AIM_TIME
aim_preparing = 0
$AnimationTree["parameters/state/current"]=0
else:
#player not in sight, do nothing
shoot_countdown = SHOOT_WAIT
elif (state==STATE_AIM or state==STATE_SHOOTING):
if (aim_preparing<AIM_PREPARE_TIME):
aim_preparing+=delta
if (aim_preparing > AIM_PREPARE_TIME):
aim_preparing = AIM_PREPARE_TIME
$AnimationTree["parameters/aiming/blend_amount"]=clamp(aim_preparing / AIM_PREPARE_TIME,0,1)
aim_countdown-=delta
if (aim_countdown<0 and state==STATE_AIM):
var ray_from = $"Scene Root/Armature/Skeleton/ray_from".global_transform.origin
var ray_to = player.global_transform.origin + Vector3(0,1,0) # middle of player
var col = get_world().direct_space_state.intersect_ray(ray_from,ray_to,[self])
if (not col.empty() and col.collider == player):
state = STATE_SHOOTING
$shoot_anim.play("shoot")
else:
resume_approach()
if ($AnimationTree.active):
var to_cannon_local = $"Scene Root/Armature/Skeleton/ray_from/ray".global_transform.affine_inverse().xform(player.global_transform.origin + Vector3(0,1,0))
var h_angle = rad2deg(atan2( to_cannon_local.x, -to_cannon_local.z ))
var v_angle = rad2deg(atan2( to_cannon_local.y, -to_cannon_local.z ))
var blend_pos = $AnimationTree["parameters/aim/blend_position"]
var h_motion = BLEND_AIM_SPEED * delta * -h_angle
blend_pos.x += h_motion
blend_pos.x = clamp(blend_pos.x, -1 , 1 )
var v_motion = BLEND_AIM_SPEED * delta * v_angle
blend_pos.y += v_motion
blend_pos.y = clamp(blend_pos.y, -1 , 1 )
$AnimationTree["parameters/aiming/blend_amount"]= blend_pos
var root_motion = $AnimationTree.get_root_motion_transform()
# apply root motion to orientation
orientation *= root_motion
var h_velocity = orientation.origin / delta
velocity.x = h_velocity.x
velocity.z = h_velocity.z
velocity += GRAVITY * delta
velocity = move_and_slide(velocity,Vector3(0,1,0))
orientation.origin = Vector3() #clear accumulated root motion displacement (was applied to speed)
orientation = orientation.orthonormalized() # orthonormalize orientation
$"Scene Root".global_transform.basis = orientation.basis
func _on_area_body_entered(body):
if (body is preload("res://player/player.gd")):
player = body
shoot_countdown=SHOOT_WAIT
func _on_area_body_exited(body):
if (body is preload("res://player/player.gd")):
player = null

File diff suppressed because it is too large Load Diff

BIN
enemies/red_robot/shoot.wav Normal file

Binary file not shown.

View File

@@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/shoot.wav-b0988150a6ac139c8c7751139a78a95d.sample"
[deps]
source_file="res://enemies/red_robot/shoot.wav"
dest_files=[ "res://.import/shoot.wav-b0988150a6ac139c8c7751139a78a95d.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=true
edit/normalize=true
edit/loop=false
compress/mode=0

BIN
enemies/red_robot/walk.wav Normal file

Binary file not shown.

View File

@@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/walk.wav-36b9a80fffa81198134dfdbe12348dd4.sample"
[deps]
source_file="res://enemies/red_robot/walk.wav"
dest_files=[ "res://.import/walk.wav-36b9a80fffa81198134dfdbe12348dd4.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=true
edit/normalize=true
edit/loop=false
compress/mode=0

BIN
fx/plasma/plasma.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

View File

@@ -0,0 +1,31 @@
[remap]
importer="texture"
type="StreamTexture"
path.s3tc="res://.import/plasma.png-e5be8b2f7918caa179df8a2a7d229e6d.s3tc.stex"
[deps]
source_file="res://fx/plasma/plasma.png"
dest_files=[ "res://.import/plasma.png-e5be8b2f7918caa179df8a2a7d229e6d.s3tc.stex" ]
[params]
compress/mode=2
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=true
flags/filter=true
flags/mipmaps=true
flags/anisotropic=false
flags/srgb=1
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=false
svg/scale=1.0

151
fx/plasma/plasma.tscn Normal file
View File

@@ -0,0 +1,151 @@
[gd_scene load_steps=7 format=2]
[ext_resource path="res://fx/plasma/plasma.png" type="Texture" id=1]
[sub_resource type="Gradient" id=1]
offsets = PoolRealArray( 0, 0.34749, 0.509652, 1 )
colors = PoolColorArray( 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 )
[sub_resource type="GradientTexture" id=2]
flags = 4
gradient = SubResource( 1 )
width = 2048
_sections_unfolded = [ "gradient" ]
[sub_resource type="ParticlesMaterial" id=3]
render_priority = 0
trail_divisor = 1
emission_shape = 0
flag_align_y = false
flag_rotate_y = false
flag_disable_z = false
spread = 180.0
flatness = 0.0
gravity = Vector3( 0, 0, 0 )
initial_velocity = 0.3
initial_velocity_random = 0.0
angular_velocity = 120.0
angular_velocity_random = 1.0
linear_accel = 0.0
linear_accel_random = 0.0
radial_accel = 0.0
radial_accel_random = 0.0
tangential_accel = 0.0
tangential_accel_random = 0.0
damping = 0.0
damping_random = 0.0
angle = 720.0
angle_random = 1.0
scale = 1.0
scale_random = 0.0
color_ramp = SubResource( 2 )
hue_variation = 0.0
hue_variation_random = 0.0
anim_speed = 0.0
anim_speed_random = 0.0
anim_offset = 0.0
anim_offset_random = 0.0
anim_loop = false
_sections_unfolded = [ "Angle", "Angular Velocity", "Color", "Emission Shape", "Gravity", "Initial Velocity", "Spread", "color_ramp" ]
[sub_resource type="SpatialMaterial" id=4]
render_priority = 0
flags_transparent = true
flags_unshaded = true
flags_vertex_lighting = false
flags_no_depth_test = false
flags_use_point_size = false
flags_world_triplanar = false
flags_fixed_size = false
flags_albedo_tex_force_srgb = false
flags_do_not_receive_shadows = false
flags_disable_ambient_light = false
flags_ensure_correct_normals = false
vertex_color_use_as_albedo = true
vertex_color_is_srgb = true
params_diffuse_mode = 0
params_specular_mode = 0
params_blend_mode = 1
params_cull_mode = 0
params_depth_draw_mode = 0
params_line_width = 1.0
params_point_size = 1.0
params_billboard_mode = 3
params_billboard_keep_scale = false
params_grow = false
params_use_alpha_scissor = false
particles_anim_h_frames = 1
particles_anim_v_frames = 1
particles_anim_loop = 0
albedo_color = Color( 0.843137, 0.709804, 0.427451, 1 )
albedo_texture = ExtResource( 1 )
metallic = 0.0
metallic_specular = 0.5
metallic_texture_channel = 0
roughness = 1.0
roughness_texture_channel = 0
emission_enabled = false
normal_enabled = false
rim_enabled = false
clearcoat_enabled = false
anisotropy_enabled = false
ao_enabled = false
depth_enabled = false
subsurf_scatter_enabled = false
transmission_enabled = false
refraction_enabled = false
detail_enabled = false
uv1_scale = Vector3( 1, 1, 1 )
uv1_offset = Vector3( 0, 0, 0 )
uv1_triplanar = false
uv1_triplanar_sharpness = 1.0
uv2_scale = Vector3( 1, 1, 1 )
uv2_offset = Vector3( 0, 0, 0 )
uv2_triplanar = false
uv2_triplanar_sharpness = 1.0
proximity_fade_enable = true
proximity_fade_distance = 0.2
distance_fade_mode = 0
_sections_unfolded = [ "Albedo", "Flags", "Parameters", "Proximity Fade", "Vertex Color" ]
[sub_resource type="QuadMesh" id=5]
material = SubResource( 4 )
custom_aabb = AABB( 0, 0, 0, 0, 0, 0 )
flip_faces = false
size = Vector2( 1, 1 )
[node name="Spatial" type="Spatial"]
[node name="Particles" type="Particles" parent="."]
layers = 1
material_override = null
cast_shadow = 1
extra_cull_margin = 0.0
use_in_baked_light = false
lod_min_distance = 0.0
lod_min_hysteresis = 0.0
lod_max_distance = 0.0
lod_max_hysteresis = 0.0
emitting = true
amount = 64
lifetime = 1.0
one_shot = false
preprocess = 0.0
speed_scale = 0.2
explosiveness = 0.0
randomness = 0.0
fixed_fps = 0
fract_delta = true
visibility_aabb = AABB( -4, -4, -4, 8, 8, 8 )
local_coords = true
draw_order = 0
process_material = SubResource( 3 )
draw_passes = 1
draw_pass_1 = SubResource( 5 )
_sections_unfolded = [ "Process Material", "Time", "draw_pass_1", "process_material" ]

BIN
fx/smoke/dot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

31
fx/smoke/dot.png.import Normal file
View File

@@ -0,0 +1,31 @@
[remap]
importer="texture"
type="StreamTexture"
path.s3tc="res://.import/dot.png-2511a3b5d1ebc1d3866dad5be9470956.s3tc.stex"
[deps]
source_file="res://fx/smoke/dot.png"
dest_files=[ "res://.import/dot.png-2511a3b5d1ebc1d3866dad5be9470956.s3tc.stex" ]
[params]
compress/mode=2
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=true
flags/filter=true
flags/mipmaps=true
flags/anisotropic=false
flags/srgb=1
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=false
svg/scale=1.0

BIN
fx/smoke/smoke.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

31
fx/smoke/smoke.png.import Normal file
View File

@@ -0,0 +1,31 @@
[remap]
importer="texture"
type="StreamTexture"
path.s3tc="res://.import/smoke.png-75fa6534c262fd5c3a556ed0cb14355b.s3tc.stex"
[deps]
source_file="res://fx/smoke/smoke.png"
dest_files=[ "res://.import/smoke.png-75fa6534c262fd5c3a556ed0cb14355b.s3tc.stex" ]
[params]
compress/mode=2
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=true
flags/filter=true
flags/mipmaps=true
flags/anisotropic=false
flags/srgb=1
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=false
svg/scale=1.0

156
fx/smoke/smoke.tscn Normal file
View File

@@ -0,0 +1,156 @@
[gd_scene load_steps=8 format=2]
[ext_resource path="res://fx/smoke/smoke.png" type="Texture" id=1]
[ext_resource path="res://fx/smoke/smoke_n.png" type="Texture" id=2]
[sub_resource type="Gradient" id=1]
offsets = PoolRealArray( 0, 0.181467, 0.891892, 1 )
colors = PoolColorArray( 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 )
[sub_resource type="GradientTexture" id=2]
flags = 4
gradient = SubResource( 1 )
width = 2048
_sections_unfolded = [ "gradient" ]
[sub_resource type="ParticlesMaterial" id=3]
render_priority = 0
trail_divisor = 1
emission_shape = 2
emission_box_extents = Vector3( 1, 1, 1 )
flag_align_y = false
flag_rotate_y = false
flag_disable_z = false
spread = 0.0
flatness = 0.0
gravity = Vector3( 0, 0, 0 )
initial_velocity = 2.0
initial_velocity_random = 0.0
angular_velocity = 30.0
angular_velocity_random = 1.0
linear_accel = 0.0
linear_accel_random = 0.0
radial_accel = 0.0
radial_accel_random = 0.0
tangential_accel = 0.0
tangential_accel_random = 0.0
damping = 0.0
damping_random = 0.0
angle = 720.0
angle_random = 1.0
scale = 15.0
scale_random = 0.0
color_ramp = SubResource( 2 )
hue_variation = 0.0
hue_variation_random = 0.0
anim_speed = 0.0
anim_speed_random = 0.0
anim_offset = 0.0
anim_offset_random = 0.0
anim_loop = false
_sections_unfolded = [ "Angle", "Angular Velocity", "Color", "Emission Shape", "Gravity", "Initial Velocity", "Scale", "Spread", "color_ramp" ]
[sub_resource type="SpatialMaterial" id=4]
render_priority = 0
flags_transparent = true
flags_unshaded = false
flags_vertex_lighting = false
flags_no_depth_test = false
flags_use_point_size = false
flags_world_triplanar = false
flags_fixed_size = false
flags_albedo_tex_force_srgb = false
flags_do_not_receive_shadows = false
flags_disable_ambient_light = false
flags_ensure_correct_normals = false
vertex_color_use_as_albedo = true
vertex_color_is_srgb = true
params_diffuse_mode = 0
params_specular_mode = 0
params_blend_mode = 0
params_cull_mode = 0
params_depth_draw_mode = 0
params_line_width = 1.0
params_point_size = 1.0
params_billboard_mode = 3
params_billboard_keep_scale = false
params_grow = false
params_use_alpha_scissor = false
particles_anim_h_frames = 1
particles_anim_v_frames = 1
particles_anim_loop = 0
albedo_color = Color( 1, 1, 1, 0.654902 )
albedo_texture = ExtResource( 1 )
metallic = 0.0
metallic_specular = 0.5
metallic_texture_channel = 0
roughness = 1.0
roughness_texture_channel = 0
emission_enabled = false
normal_enabled = true
normal_scale = 1.0
normal_texture = ExtResource( 2 )
rim_enabled = false
clearcoat_enabled = false
anisotropy_enabled = false
ao_enabled = false
depth_enabled = false
subsurf_scatter_enabled = false
transmission_enabled = false
refraction_enabled = false
detail_enabled = false
uv1_scale = Vector3( 1, 1, 1 )
uv1_offset = Vector3( 0, 0, 0 )
uv1_triplanar = false
uv1_triplanar_sharpness = 1.0
uv2_scale = Vector3( 1, 1, 1 )
uv2_offset = Vector3( 0, 0, 0 )
uv2_triplanar = false
uv2_triplanar_sharpness = 1.0
proximity_fade_enable = true
proximity_fade_distance = 1.0
distance_fade_mode = 0
_sections_unfolded = [ "Albedo", "Flags", "Metallic", "NormalMap", "Parameters", "Proximity Fade", "Roughness", "Vertex Color" ]
[sub_resource type="QuadMesh" id=5]
material = SubResource( 4 )
custom_aabb = AABB( 0, 0, 0, 0, 0, 0 )
flip_faces = false
size = Vector2( 1, 1 )
[node name="Spatial" type="Spatial"]
[node name="Particles" type="Particles" parent="."]
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0 )
layers = 1
material_override = null
cast_shadow = 1
extra_cull_margin = 0.0
use_in_baked_light = false
lod_min_distance = 0.0
lod_min_hysteresis = 0.0
lod_max_distance = 0.0
lod_max_hysteresis = 0.0
emitting = true
amount = 3
lifetime = 8.0
one_shot = false
preprocess = 0.0
speed_scale = 0.3
explosiveness = 0.0
randomness = 0.0
fixed_fps = 0
fract_delta = true
visibility_aabb = AABB( -4, -4, -4, 8, 8, 8 )
local_coords = true
draw_order = 0
process_material = SubResource( 3 )
draw_passes = 1
draw_pass_1 = SubResource( 5 )
_sections_unfolded = [ "Draw Passes", "Process Material", "Time", "draw_pass_1", "process_material" ]

BIN
fx/smoke/smoke_n.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

View File

@@ -0,0 +1,31 @@
[remap]
importer="texture"
type="StreamTexture"
path.s3tc="res://.import/smoke_n.png-7a6c69884d1ce1241dad357f68ddea48.s3tc.stex"
[deps]
source_file="res://fx/smoke/smoke_n.png"
dest_files=[ "res://.import/smoke_n.png-7a6c69884d1ce1241dad357f68ddea48.s3tc.stex" ]
[params]
compress/mode=2
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=1
flags/repeat=true
flags/filter=true
flags/mipmaps=true
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=false
svg/scale=1.0

BIN
icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

30
icon.png.import Normal file
View File

@@ -0,0 +1,30 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
[deps]
source_file="res://icon.png"
dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Some files were not shown because too many files have changed in this diff Show More