| @@ -0,0 +1,3 @@ | |||
| source_md5="aa6613a60574ba16e3c57d0d38468fbf" | |||
| dest_md5="ef4be6197f867fce1ae832148d814786" | |||
| @@ -0,0 +1,3 @@ | |||
| source_md5="0965d095ec6dc5f38b478078d7dc2184" | |||
| dest_md5="40e931f300ed189e4918619ee139c8d8" | |||
| @@ -1,3 +1,3 @@ | |||
| source_md5="01869c3604b99aea38eb6b597f15f8d7" | |||
| dest_md5="b07fcc1de681e1e4fc0cc651a43f6d23" | |||
| source_md5="4fb5fa659e9c6e1ece480e0b8a6b18d5" | |||
| dest_md5="d93bef64b511746d542505099d164ec2" | |||
| @@ -0,0 +1,34 @@ | |||
| [remap] | |||
| importer="texture" | |||
| type="StreamTexture" | |||
| path="res://.import/marm.png-129e7630465431c74aeee9f2cda65caa.stex" | |||
| metadata={ | |||
| "vram_texture": false | |||
| } | |||
| [deps] | |||
| source_file="res://Data/Graphics/marm.png" | |||
| dest_files=[ "res://.import/marm.png-129e7630465431c74aeee9f2cda65caa.stex" ] | |||
| [params] | |||
| compress/mode=0 | |||
| compress/lossy_quality=0.7 | |||
| compress/hdr_mode=0 | |||
| compress/bptc_ldr=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 | |||
| @@ -0,0 +1,34 @@ | |||
| [remap] | |||
| importer="texture" | |||
| type="StreamTexture" | |||
| path="res://.import/nstar.png-279148b53e5add0a2272421ac913ac94.stex" | |||
| metadata={ | |||
| "vram_texture": false | |||
| } | |||
| [deps] | |||
| source_file="res://Data/Graphics/nstar.png" | |||
| dest_files=[ "res://.import/nstar.png-279148b53e5add0a2272421ac913ac94.stex" ] | |||
| [params] | |||
| compress/mode=0 | |||
| compress/lossy_quality=0.7 | |||
| compress/hdr_mode=0 | |||
| compress/bptc_ldr=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 | |||
| @@ -0,0 +1,23 @@ | |||
| [gd_scene load_steps=5 format=2] | |||
| [ext_resource path="res://Data/Graphics/placeholder.png" type="Texture" id=1] | |||
| [ext_resource path="res://Data/Scripts/Glowdot.gd" type="Script" id=2] | |||
| [ext_resource path="res://Data/Shaders/Glowdot.shader" type="Shader" id=3] | |||
| [sub_resource type="ShaderMaterial" id=2] | |||
| shader = ExtResource( 3 ) | |||
| shader_param/primary_color = Color( 1, 0.8, 0, 1 ) | |||
| shader_param/fade_offset = 0.15 | |||
| [node name="Glowdot" type="Sprite"] | |||
| material = SubResource( 2 ) | |||
| texture = ExtResource( 1 ) | |||
| script = ExtResource( 2 ) | |||
| [node name="Pulse" type="Tween" parent="."] | |||
| [node name="PulseIn" type="Timer" parent="."] | |||
| [node name="PulseOut" type="Timer" parent="."] | |||
| [connection signal="timeout" from="PulseIn" to="." method="_on_PulseIn_timeout"] | |||
| [connection signal="timeout" from="PulseOut" to="." method="_on_PulseOut_timeout"] | |||
| @@ -6,10 +6,10 @@ | |||
| [sub_resource type="ShaderMaterial" id=1] | |||
| shader = ExtResource( 3 ) | |||
| shader_param/sprite_scale = Vector2( 1, 1 ) | |||
| shader_param/sprite_scale = Vector2( 2.96, 1 ) | |||
| shader_param/distortion = 16.265 | |||
| shader_param/liquid_color_main = Color( 0, 0.0862745, 0.603922, 1 ) | |||
| shader_param/liquid_color_surface = Color( 0.517647, 0.572549, 1, 1 ) | |||
| shader_param/liquid_color_main = Color( 0.180908, 0.250748, 0.8125, 1 ) | |||
| shader_param/liquid_color_surface = Color( 0.576471, 0.760784, 0.996078, 1 ) | |||
| shader_param/liquid_surface_thickness = 0.12 | |||
| shader_param/wave_amp = 0.25 | |||
| shader_param/wave_freq = 1.0 | |||
| @@ -36,6 +36,7 @@ orbit_velocity = 0.0 | |||
| orbit_velocity_random = 0.0 | |||
| scale = 2.0 | |||
| scale_curve = SubResource( 4 ) | |||
| color = Color( 0.576471, 0.760784, 0.996078, 1 ) | |||
| [node name="Liquid" type="Sprite"] | |||
| material = SubResource( 1 ) | |||
| @@ -0,0 +1,96 @@ | |||
| [gd_scene load_steps=9 format=2] | |||
| [ext_resource path="res://Data/Scripts/PulseArrow.gd" type="Script" id=1] | |||
| [ext_resource path="res://Data/Objects/Glowdot.tscn" type="PackedScene" id=3] | |||
| [sub_resource type="Shader" id=1] | |||
| code = "shader_type canvas_item; | |||
| uniform vec4 primary_color:hint_color = vec4(1.0, 0.8, 0.0, 1.0); | |||
| uniform float fade_offset:hint_range(0.0, 0.5) = 0.1; | |||
| float ramp(float v, float f_min, float f_max){ | |||
| float res = (v - f_min) / (f_max - f_min); | |||
| return max(0.0, min(res, 1.0)); | |||
| } | |||
| void fragment(){ | |||
| float mask = length(vec2(0.5, 0.5) - (UV.xy)); | |||
| float fade = 1.0 - ramp(mask, fade_offset, 0.5); | |||
| if (mask > 0.5){ | |||
| mask = 0.0; | |||
| } else {mask = 1.0;} | |||
| if (mask == 1.0){ | |||
| COLOR = vec4(primary_color.rgb, fade); | |||
| } else { | |||
| COLOR = vec4(primary_color.rgb, mask); | |||
| } | |||
| }" | |||
| [sub_resource type="ShaderMaterial" id=2] | |||
| shader = SubResource( 1 ) | |||
| shader_param/primary_color = Color( 1, 0.8, 0, 1 ) | |||
| shader_param/fade_offset = 0.15 | |||
| [sub_resource type="ShaderMaterial" id=3] | |||
| shader = SubResource( 1 ) | |||
| shader_param/primary_color = Color( 1, 0.8, 0, 1 ) | |||
| shader_param/fade_offset = 0.15 | |||
| [sub_resource type="ShaderMaterial" id=4] | |||
| shader = SubResource( 1 ) | |||
| shader_param/primary_color = Color( 1, 0.8, 0, 1 ) | |||
| shader_param/fade_offset = 0.15 | |||
| [sub_resource type="ShaderMaterial" id=5] | |||
| shader = SubResource( 1 ) | |||
| shader_param/primary_color = Color( 1, 0.8, 0, 1 ) | |||
| shader_param/fade_offset = 0.15 | |||
| [sub_resource type="ShaderMaterial" id=6] | |||
| shader = SubResource( 1 ) | |||
| shader_param/primary_color = Color( 1, 0.8, 0, 1 ) | |||
| shader_param/fade_offset = 0.15 | |||
| [node name="PulseArrow" type="Node2D"] | |||
| script = ExtResource( 1 ) | |||
| [node name="Dot" parent="." instance=ExtResource( 3 )] | |||
| material = SubResource( 2 ) | |||
| position = Vector2( 0, -0.698334 ) | |||
| pulse_in_time = 0.5 | |||
| pulse_out_time = 0.5 | |||
| pulse_out = 0.75 | |||
| [node name="Dot21" parent="." instance=ExtResource( 3 )] | |||
| material = SubResource( 3 ) | |||
| position = Vector2( -53.772, 35.6152 ) | |||
| pulse_in_time = 0.5 | |||
| pulse_out_time = 0.5 | |||
| pulse_out = 0.75 | |||
| pulse_offset = 0.35 | |||
| [node name="Dot31" parent="." instance=ExtResource( 3 )] | |||
| material = SubResource( 4 ) | |||
| position = Vector2( -110.337, 66.3421 ) | |||
| pulse_in_time = 0.5 | |||
| pulse_out_time = 0.5 | |||
| pulse_out = 0.75 | |||
| pulse_offset = 0.6 | |||
| [node name="Dot22" parent="." instance=ExtResource( 3 )] | |||
| material = SubResource( 5 ) | |||
| position = Vector2( 52.3753, 35.6152 ) | |||
| pulse_in_time = 0.5 | |||
| pulse_out_time = 0.5 | |||
| pulse_out = 0.75 | |||
| pulse_offset = 0.35 | |||
| [node name="Dot32" parent="." instance=ExtResource( 3 )] | |||
| material = SubResource( 6 ) | |||
| position = Vector2( 106.147, 66.3421 ) | |||
| pulse_in_time = 0.5 | |||
| pulse_out_time = 0.5 | |||
| pulse_out = 0.75 | |||
| pulse_offset = 0.6 | |||
| @@ -1,8 +1,11 @@ | |||
| [gd_scene load_steps=5 format=2] | |||
| [gd_scene load_steps=8 format=2] | |||
| [ext_resource path="res://icon.png" type="Texture" id=1] | |||
| [ext_resource path="res://Data/Objects/PulseArrow.tscn" type="PackedScene" id=1] | |||
| [ext_resource path="res://Data/Objects/Player.tscn" type="PackedScene" id=2] | |||
| [ext_resource path="res://Data/Objects/Liquid.tscn" type="PackedScene" id=3] | |||
| [ext_resource path="res://Data/Graphics/placeholder.png" type="Texture" id=4] | |||
| [ext_resource path="res://Data/Scripts/BladeSaw.gd" type="Script" id=5] | |||
| [ext_resource path="res://Data/Graphics/nstar.png" type="Texture" id=6] | |||
| [sub_resource type="RectangleShape2D" id=1] | |||
| extents = Vector2( 32, 32 ) | |||
| @@ -24,7 +27,7 @@ shape = SubResource( 1 ) | |||
| [node name="Sprite" type="Sprite" parent="Ground/StaticBody2D"] | |||
| self_modulate = Color( 0, 0, 0, 1 ) | |||
| texture = ExtResource( 1 ) | |||
| texture = ExtResource( 4 ) | |||
| [node name="StaticBody2D2" type="StaticBody2D" parent="Ground"] | |||
| position = Vector2( 117.555, 225.357 ) | |||
| @@ -36,7 +39,7 @@ shape = SubResource( 1 ) | |||
| [node name="Sprite" type="Sprite" parent="Ground/StaticBody2D2"] | |||
| self_modulate = Color( 0, 0, 0, 1 ) | |||
| texture = ExtResource( 1 ) | |||
| texture = ExtResource( 4 ) | |||
| [node name="StaticBody2D3" type="StaticBody2D" parent="Ground"] | |||
| position = Vector2( 165.809, 209.444 ) | |||
| @@ -48,7 +51,7 @@ shape = SubResource( 1 ) | |||
| [node name="Sprite" type="Sprite" parent="Ground/StaticBody2D3"] | |||
| self_modulate = Color( 0, 0, 0, 1 ) | |||
| texture = ExtResource( 1 ) | |||
| texture = ExtResource( 4 ) | |||
| [node name="StaticBody2D4" type="StaticBody2D" parent="Ground"] | |||
| position = Vector2( 352.586, 167.485 ) | |||
| @@ -60,7 +63,7 @@ shape = SubResource( 1 ) | |||
| [node name="Sprite" type="Sprite" parent="Ground/StaticBody2D4"] | |||
| self_modulate = Color( 0, 0, 0, 1 ) | |||
| texture = ExtResource( 1 ) | |||
| texture = ExtResource( 4 ) | |||
| [node name="Blue Barrier" type="StaticBody2D" parent="Ground"] | |||
| position = Vector2( 258.724, 168.376 ) | |||
| @@ -73,11 +76,30 @@ collision_mask = 0 | |||
| shape = SubResource( 1 ) | |||
| [node name="Sprite" type="Sprite" parent="Ground/Blue Barrier"] | |||
| self_modulate = Color( 0, 0.180392, 1, 1 ) | |||
| texture = ExtResource( 1 ) | |||
| modulate = Color( 0.380392, 0.54902, 1, 1 ) | |||
| texture = ExtResource( 4 ) | |||
| [node name="Liquid" parent="." instance=ExtResource( 3 )] | |||
| position = Vector2( 109.92, 197.289 ) | |||
| scale = Vector2( 2.96, 1 ) | |||
| liquid_body_color = Color( 0, 0.0901961, 0.815686, 1 ) | |||
| liquid_body_color = Color( 0.180908, 0.250748, 0.8125, 1 ) | |||
| liquid_surface_color = Color( 0.576471, 0.760784, 0.996078, 1 ) | |||
| [node name="PulseArrow" parent="." instance=ExtResource( 1 )] | |||
| position = Vector2( 250.511, 119.095 ) | |||
| scale = Vector2( 0.1, 0.1 ) | |||
| pulse_color = Color( 0.356863, 0.960784, 0.211765, 1 ) | |||
| [node name="BladeSaw" type="KinematicBody2D" parent="."] | |||
| position = Vector2( 252.7, 41.8 ) | |||
| collision_layer = 2 | |||
| script = ExtResource( 5 ) | |||
| degrees_per_second = 180.0 | |||
| active = false | |||
| [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="BladeSaw"] | |||
| position = Vector2( 0.291977, -0.407814 ) | |||
| polygon = PoolVector2Array( -0.190857, -62.8828, 15.1022, -32.9085, 45.8921, -43.1038, 35.9007, -11.7022, 63.632, 2.77521, 33.6577, 17.4565, 43.2413, 46.2074, 13.4709, 37.2355, 0.0130463, 63.9473, -13.8526, 37.4394, -43.623, 46.6152, -34.0394, 17.8643, -64.0137, 2.5713, -36.0785, -11.4983, -47.0894, -43.3077, -15.4839, -32.9085 ) | |||
| [node name="Sprite" type="Sprite" parent="BladeSaw"] | |||
| texture = ExtResource( 6 ) | |||
| @@ -0,0 +1,47 @@ | |||
| extends KinematicBody2D | |||
| export var degrees_per_second:float = 180.0 | |||
| export var ease_in:float = 0.2 | |||
| export var ease_out:float = 0.4 | |||
| export var active:bool = true setget _set_active | |||
| var _easing_in = false | |||
| var _easing_out = false | |||
| var _easing = 0.0 | |||
| var _running = false | |||
| func _set_active(b): | |||
| if active != b: | |||
| if active: | |||
| _easing_out = true | |||
| _easing = ease_out | |||
| else: | |||
| _easing_in = true | |||
| _easing = ease_in | |||
| active = b | |||
| # Called when the node enters the scene tree for the first time. | |||
| func _ready(): | |||
| set_physics_process(true) | |||
| if active and _easing == 0.0: | |||
| _running = true | |||
| func _physics_process(delta): | |||
| if _easing_in or _easing_out: | |||
| _easing -= delta | |||
| if _easing <= 0.0: | |||
| _running = _easing_in | |||
| _easing_in = false | |||
| _easing_out = false | |||
| _easing = 0.0 | |||
| else: | |||
| var adj | |||
| if _easing_in: | |||
| adj = 1.0 - (_easing / ease_in) | |||
| else: | |||
| adj = 1.0 - (_easing / ease_out) | |||
| rotate(deg2rad(degrees_per_second * adj * delta)) | |||
| if _running: | |||
| rotate(deg2rad(degrees_per_second * delta)) | |||
| @@ -20,7 +20,7 @@ var max_comfort_distance = 10 | |||
| export var base_tangential_accel = 32 setget _set_base_tangential_accel | |||
| # The base force applied when being pushed. | |||
| export var base_push_force = 128 setget _set_base_push_force | |||
| export var base_push_force = 64 setget _set_base_push_force | |||
| # Mood = r: <aggression>, g: <neediness>, b: <contentment> | |||
| @@ -0,0 +1,80 @@ | |||
| extends Sprite | |||
| const TRANS = Tween.TRANS_LINEAR | |||
| const EASE = Tween.EASE_IN_OUT | |||
| export var pulse_color:Color setget _set_pulse_color, _get_pulse_color | |||
| export var pulse_in_time:float = 0.5 | |||
| export var pulse_out_time:float = 0.5 | |||
| export var pulse_in:float = 0.1 | |||
| export var pulse_out:float = 0.9 | |||
| export var pulse_offset:float = 0.1 setget _set_pulse_offset, _get_pulse_offset | |||
| var _running = false | |||
| func _camp(v, o_min, o_max): | |||
| # Reduces v (clamped to 0 and 1) to the values between o_min and o_max | |||
| return o_min + ((o_max - o_min) * clamp(v, 0.0, 1.0)) | |||
| func _ramp(v, f_min, f_max): | |||
| # Expands v, spreading the values between f_min and f_max to be between 0 and 1. | |||
| if f_min == f_max: | |||
| return f_min | |||
| return clamp((v - f_min) / (f_max - f_min), 0.0, 1.0) | |||
| func _set_pulse_offset(v): | |||
| material.set_shader_param("fade_offset", _camp(v, 0.1, 0.5)) | |||
| func _get_pulse_offset(): | |||
| if self.get_name() == "Dot21": | |||
| print("PING") | |||
| return _ramp(material.get_shader_param("fade_offset"), 0.1, 0.5) | |||
| func _set_pulse_color(c): | |||
| material.set_shader_param("primary_color", c) | |||
| func _get_pulse_color(): | |||
| return material.get_shader_param("primary_color") | |||
| func _ready(): | |||
| material.set_shader_param("primary_color", pulse_color) | |||
| func start(): | |||
| _running = true | |||
| _on_PulseOut_timeout() | |||
| func stop(): | |||
| $PulseOut.stop() | |||
| $PulseIn.stop() | |||
| _running = false | |||
| func _interpolate_to(v, t): | |||
| $Pulse.interpolate_property(self, "pulse_offset", self.pulse_offset, v, t, TRANS, EASE) | |||
| $Pulse.start() | |||
| func _on_PulseIn_timeout(): | |||
| if _running: | |||
| #print(self.get_name(), " Pulse Out Time: ", $PulseOut.wait_time) | |||
| $PulseIn.stop() | |||
| if _get_pulse_offset() == pulse_in: | |||
| $PulseOut.wait_time = pulse_out_time | |||
| else: | |||
| $PulseOut.wait_time = (1.0 - ((_get_pulse_offset() - pulse_in) / (pulse_out / pulse_in))) * pulse_out_time | |||
| _interpolate_to(pulse_out, $PulseOut.wait_time) | |||
| $PulseOut.start() | |||
| func _on_PulseOut_timeout(): | |||
| if _running: | |||
| #print(self.get_name(), " Pulse In Time: ", $PulseOut.wait_time) | |||
| $PulseOut.stop() | |||
| if _get_pulse_offset() == pulse_out: | |||
| $PulseIn.wait_time = pulse_in_time | |||
| else: | |||
| # Adjust time due to current offset. | |||
| $PulseIn.wait_time = (_get_pulse_offset() - pulse_in) / (pulse_out / pulse_in) * pulse_in_time | |||
| _interpolate_to(pulse_in, $PulseIn.wait_time) | |||
| $PulseIn.start() | |||
| @@ -1,3 +1,4 @@ | |||
| #tool | |||
| extends Sprite | |||
| export var liquid_body_color:Color setget _set_liquid_body_color, _get_liquid_body_color | |||
| @@ -0,0 +1,17 @@ | |||
| extends Node2D | |||
| export var pulse_color:Color = Color(1.0, 0.8, 0.0, 1.0) | |||
| func _ready(): | |||
| $Dot.pulse_color = pulse_color | |||
| $Dot.start() | |||
| $Dot21.pulse_color = pulse_color | |||
| $Dot21.start() | |||
| $Dot22.pulse_color = pulse_color | |||
| $Dot22.start() | |||
| $Dot31.pulse_color = pulse_color | |||
| $Dot31.start() | |||
| $Dot32.pulse_color = pulse_color | |||
| $Dot32.start() | |||
| @@ -0,0 +1,23 @@ | |||
| shader_type canvas_item; | |||
| uniform vec4 primary_color:hint_color = vec4(1.0, 0.8, 0.0, 1.0); | |||
| uniform float fade_offset:hint_range(0.0, 0.5) = 0.1; | |||
| float ramp(float v, float f_min, float f_max){ | |||
| float res = (v - f_min) / (f_max - f_min); | |||
| return max(0.0, min(res, 1.0)); | |||
| } | |||
| void fragment(){ | |||
| float mask = length(vec2(0.5, 0.5) - (UV.xy)); | |||
| float fade = 1.0 - ramp(mask, fade_offset, 0.5); | |||
| if (mask > 0.5){ | |||
| mask = 0.0; | |||
| } else {mask = 1.0;} | |||
| if (mask == 1.0){ | |||
| COLOR = vec4(primary_color.rgb, fade); | |||
| } else { | |||
| COLOR = vec4(primary_color.rgb, mask); | |||
| } | |||
| } | |||
| @@ -23,7 +23,7 @@ config/icon="res://icon.png" | |||
| window/size/width=1366 | |||
| window/size/height=768 | |||
| window/stretch/mode="viewport" | |||
| window/stretch/mode="2d" | |||
| window/stretch/aspect="expand" | |||
| [input] | |||
| @@ -53,5 +53,7 @@ ButtonB={ | |||
| [rendering] | |||
| quality/intended_usage/framebuffer_allocation=0 | |||
| quality/intended_usage/framebuffer_allocation.mobile=1 | |||
| environment/default_clear_color=Color( 0.207843, 0.164706, 0.215686, 1 ) | |||
| environment/default_environment="res://default_env.tres" | |||