Extensive work on virtually all of the visuals and the net code
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://klhragf48bkd"
|
||||
path="res://.godot/imported/button-trap-hit.png-865f2fa9062023dca2508cb9d2362361.ctex"
|
||||
path="res://.godot/imported/button-hack-hit.png-0263d8d5709167c7d451f54fa26b792d.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://visuals/images/icons/button-trap-hit.png"
|
||||
dest_files=["res://.godot/imported/button-trap-hit.png-865f2fa9062023dca2508cb9d2362361.ctex"]
|
||||
source_file="res://visuals/images/icons/button-hack-hit.png"
|
||||
dest_files=["res://.godot/imported/button-hack-hit.png-0263d8d5709167c7d451f54fa26b792d.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://belkk38rxged0"
|
||||
path="res://.godot/imported/button-trap.png-7a6d52d00cf7dac09beedca466e13569.ctex"
|
||||
path="res://.godot/imported/button-hack.png-63dcc62671ab7c71242ea169428c96db.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://visuals/images/icons/button-trap.png"
|
||||
dest_files=["res://.godot/imported/button-trap.png-7a6d52d00cf7dac09beedca466e13569.ctex"]
|
||||
source_file="res://visuals/images/icons/button-hack.png"
|
||||
dest_files=["res://.godot/imported/button-hack.png-63dcc62671ab7c71242ea169428c96db.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.2 KiB |
@@ -3,7 +3,7 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bdo6instl47uf"
|
||||
path.s3tc="res://.godot/imported/enemy_trap_marker.png-1c5b7ca7cafa418b711651f11cd5afcf.s3tc.ctex"
|
||||
path.s3tc="res://.godot/imported/enemy_hack_marker.png-111650dc8c56407d075196836140972b.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
@@ -11,8 +11,8 @@ metadata={
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://visuals/images/icons/enemy_trap_marker.png"
|
||||
dest_files=["res://.godot/imported/enemy_trap_marker.png-1c5b7ca7cafa418b711651f11cd5afcf.s3tc.ctex"]
|
||||
source_file="res://visuals/images/icons/enemy_hack_marker.png"
|
||||
dest_files=["res://.godot/imported/enemy_hack_marker.png-111650dc8c56407d075196836140972b.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.2 KiB |
@@ -3,7 +3,7 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c6wke2vs8rfyd"
|
||||
path.s3tc="res://.godot/imported/friendly_trap_marker.png-620ca5c48decec71f2637c2f41c9f3ba.s3tc.ctex"
|
||||
path.s3tc="res://.godot/imported/friendly_hack_marker.png-12baca45ed4f35fcdbc62709a654797d.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
@@ -11,8 +11,8 @@ metadata={
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://visuals/images/icons/friendly_trap_marker.png"
|
||||
dest_files=["res://.godot/imported/friendly_trap_marker.png-620ca5c48decec71f2637c2f41c9f3ba.s3tc.ctex"]
|
||||
source_file="res://visuals/images/icons/friendly_hack_marker.png"
|
||||
dest_files=["res://.godot/imported/friendly_hack_marker.png-12baca45ed4f35fcdbc62709a654797d.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 220 B After Width: | Height: | Size: 220 B |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://divrb0alxk567"
|
||||
path="res://.godot/imported/trap arrow.png-35b12c88876ce5975e182915ae184d6f.ctex"
|
||||
path="res://.godot/imported/hack arrow.png-125fd82c705089690219f5b4f814ae9e.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://visuals/images/icons/trap arrow.png"
|
||||
dest_files=["res://.godot/imported/trap arrow.png-35b12c88876ce5975e182915ae184d6f.ctex"]
|
||||
source_file="res://visuals/images/icons/hack arrow.png"
|
||||
dest_files=["res://.godot/imported/hack arrow.png-125fd82c705089690219f5b4f814ae9e.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c1g5jy6w66rys"
|
||||
path="res://.godot/imported/trap button.png-2ea56d177ad9ed1627305ab5dea5416a.ctex"
|
||||
path="res://.godot/imported/install button.png-15d86f8e664d53278cb1b65e3ca3e086.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://visuals/images/icons/trap button.png"
|
||||
dest_files=["res://.godot/imported/trap button.png-2ea56d177ad9ed1627305ab5dea5416a.ctex"]
|
||||
source_file="res://visuals/images/icons/install button.png"
|
||||
dest_files=["res://.godot/imported/install button.png-15d86f8e664d53278cb1b65e3ca3e086.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b2tu6cwb6xftx"
|
||||
path="res://.godot/imported/lit trap button.png-0ca388f33e4933278a4c631123af634e.ctex"
|
||||
path="res://.godot/imported/lit install button.png-7bf983e2a77b380d5086c264115fac42.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://visuals/images/icons/lit trap button.png"
|
||||
dest_files=["res://.godot/imported/lit trap button.png-0ca388f33e4933278a4c631123af634e.ctex"]
|
||||
source_file="res://visuals/images/icons/lit install button.png"
|
||||
dest_files=["res://.godot/imported/lit install button.png-7bf983e2a77b380d5086c264115fac42.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
40
visuals/shaders/intersection.gdshader
Normal file
@@ -0,0 +1,40 @@
|
||||
shader_type spatial;
|
||||
render_mode blend_add, cull_disabled;
|
||||
|
||||
uniform vec4 intersection_color : source_color = vec4(1.0, 0.5, 0.0, 1.0);
|
||||
uniform float intersection_thickness = 0.5;
|
||||
uniform float intensity = 1.0f;
|
||||
uniform sampler2D DEPTH_TEXTURE : hint_depth_texture, filter_linear_mipmap;
|
||||
|
||||
void fragment() {
|
||||
// 1. Get linear depth of the scene (opaque objects)
|
||||
float depth = texture(DEPTH_TEXTURE, SCREEN_UV).x;
|
||||
vec3 ndc = vec3(SCREEN_UV * 2.0 - 1.0, depth);
|
||||
vec4 view = INV_PROJECTION_MATRIX * vec4(ndc, 1.0);
|
||||
view.xyz /= view.w;
|
||||
float linear_depth = -view.z;
|
||||
|
||||
// 2. Get linear depth of the current object
|
||||
float linear_frag_coord = -VERTEX.z;
|
||||
|
||||
// 3. Calculate difference
|
||||
float diff = linear_depth - linear_frag_coord;
|
||||
|
||||
// 4. Create intersection mask
|
||||
float intersect = clamp(diff / intersection_thickness, 0.0, 1.0);
|
||||
|
||||
// Invert so the intersection is 1.0
|
||||
intersect = 1.0 - intersect;
|
||||
|
||||
// Output color
|
||||
float strength = .25 + .75 * (1.0 + sin(TIME*3.0))/2.0;
|
||||
|
||||
ALPHA = max(.05, intersect * intersection_color.a * strength);
|
||||
if(ALPHA == .05){
|
||||
ALBEDO = intersection_color.rgb;
|
||||
}else{
|
||||
ALBEDO = intersection_color.rgb * strength;
|
||||
EMISSION = intersection_color.rgb * intensity * strength; // Glow effect
|
||||
}
|
||||
|
||||
}
|
||||
1
visuals/shaders/intersection.gdshader.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://byr88gb5fk3w2
|
||||
@@ -2,28 +2,33 @@ shader_type canvas_item;
|
||||
|
||||
uniform sampler2D chars;
|
||||
uniform sampler2D noise_tex;
|
||||
uniform float offset;
|
||||
|
||||
void fragment() {
|
||||
// Random character
|
||||
vec2 uv = fract(UV * 32.0); // loop uv 32 times for the characters (as the noise resolution is 32x32)
|
||||
//vec2 uv = vec2(0,0);
|
||||
float noise = texture(noise_tex, UV).g;
|
||||
noise = round(noise * 26.0) / 26.0; // make sure the color value are snapped by 0.1 (so its only 0.0, 0.1, 0.2, and so on) for perfect offset
|
||||
uv.x = (uv.x / 26.0); // offset
|
||||
uv.x += noise; // offset every character by the noise value
|
||||
uv.x += round(TIME * 0.5 * 26.0)/26.0; // animate characters with TIME, then snapped by 0.1 so it doesnt slide. 0.5 is the speed, you might want to change that
|
||||
noise = round(noise * 0.1) / 0.1; // make sure the color value are snapped by 0.1 (so its only 0.0, 0.1, 0.2, and so on) for perfect offset
|
||||
//uv.x = (uv.x / 26.0); // offset
|
||||
//uv.x = UV.x;
|
||||
//uv.x += noise; // offset every character by the noise value
|
||||
uv.x = fract(UV.x + round(TIME * 0.1 * 26.0)/26.0);
|
||||
//uv.x += round(TIME * 0.5 * 26.0)/26.0; // animate characters with TIME, then snapped by 0.1 so it doesnt slide. 0.5 is the speed, you might want to change that
|
||||
|
||||
// distortion
|
||||
float rain = UV.y; // this is a vertical gradient
|
||||
float distortion = texture(noise_tex, UV / vec2(1.0, 32.0)).g; // this will be used for distortion, using previous noise but only horizontal
|
||||
float distortion = texture(noise_tex, (UV + vec2(0,offset)) / vec2(1.0, 64.0)).g; // this will be used for distortion, using previous noise but only horizontal
|
||||
distortion = round(distortion * 26.0) / 26.0; // for precision reason, you need to round your distortion too, otherwise some character wouldnt be fully shown
|
||||
rain -= round(TIME * 0.2 * 32.0) / 32.0; // the 'rain' shouldn't move smoothly right? also, 0.2 is the speed
|
||||
rain -= round((TIME + offset) * 0.2 * 32.0) / 32.0; // the 'rain' shouldn't move smoothly right? also, 0.2 is the speed
|
||||
rain += distortion; // distort this gradient, turning it into a rain
|
||||
rain = fract(rain); // loop the rain
|
||||
rain = round(rain * 16.0) / 16.0; // pixelate the rain. Rounding by 32.0 or 8.0 is optional
|
||||
rain = pow(rain, 3.0); // this is not necessary, i just think that it looks good
|
||||
rain = round(rain * 128.0) / 128.0; // pixelate the rain. Rounding by 32.0 or 8.0 is optional
|
||||
rain = pow(rain, 5.0); // this is not necessary, i just think that it looks good
|
||||
rain *= 2.0; // this is also not important, just making the characters brighter
|
||||
|
||||
COLOR.rgb = texture(chars, uv).rgb * rain * vec3(0.0, 1.0, 0.0); // finally multiply them together then multiply with green for the color
|
||||
COLOR.rgb = texture(chars, vec2(uv.x, uv.y)).rgb * rain * vec3(0.0, 1.0, 0.0); // finally multiply them together then multiply with green for the color
|
||||
COLOR.a = rain;
|
||||
}
|
||||
|
||||
|
||||
|
||||
38
visuals/shaders/outline.gdshader
Normal file
@@ -0,0 +1,38 @@
|
||||
shader_type spatial;
|
||||
render_mode unshaded, diffuse_lambert;
|
||||
|
||||
uniform float amount = 3.0f;
|
||||
uniform float intensity = 1.0f;
|
||||
uniform vec3 fresnel_color : source_color = vec3(1,1,1);
|
||||
uniform sampler2D noise_texture;
|
||||
varying float flux;
|
||||
|
||||
float fresnel(vec3 normal, vec3 view)
|
||||
{
|
||||
return pow((1.0 - clamp(dot(normalize(normal), normalize(view)), 0.0, 1.0 )), amount);
|
||||
}
|
||||
|
||||
vec3 fresnel_glow(vec3 normal, vec3 view)
|
||||
{
|
||||
return pow((1.0 - dot(normalize(normal), normalize(view))), amount) * fresnel_color * intensity;
|
||||
}
|
||||
|
||||
void vertex()
|
||||
{
|
||||
flux = .1 + .9 * texture(noise_texture, vec2(UV.x + TIME * .1, UV.y + TIME*.2)).r;
|
||||
}
|
||||
void fragment()
|
||||
{
|
||||
|
||||
vec3 base_color = vec3(0.0);
|
||||
vec3 basic_fresnel = fresnel_glow(NORMAL, VIEW);
|
||||
float f = texture(noise_texture, vec2(NORMAL.x + TIME * .1, NORMAL.y + TIME*.2)).r;
|
||||
ALBEDO = base_color + basic_fresnel * f;
|
||||
float fres_alpha = fresnel(NORMAL, VIEW);
|
||||
ALPHA = fres_alpha;
|
||||
}
|
||||
|
||||
//void light() {
|
||||
// // Called for every pixel for every light affecting the material.
|
||||
// // Uncomment to replace the default light processing function with this one.
|
||||
//}
|
||||
1
visuals/shaders/outline.gdshader.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://g2hj3keuywp4
|
||||
14
visuals/tunnel.gdshader
Normal file
@@ -0,0 +1,14 @@
|
||||
shader_type canvas_item;
|
||||
|
||||
void vertex() {
|
||||
// Called for every vertex the material is visible on.
|
||||
}
|
||||
|
||||
void fragment() {
|
||||
// Called for every pixel the material is visible on.
|
||||
}
|
||||
|
||||
//void light() {
|
||||
// // Called for every pixel for every light affecting the CanvasItem.
|
||||
// // Uncomment to replace the default light processing function with this one.
|
||||
//}
|
||||
1
visuals/tunnel.gdshader.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://c7pasi2xrhnc0
|
||||