Compare commits

..

6 Commits

145 changed files with 122964 additions and 21309 deletions

Binary file not shown.

View File

@@ -19,5 +19,7 @@ class_name PawnBaseData extends Resource
var model
@export var portrait : Texture2D
@export var nameplate : Texture2D
@export var name_audio : AudioStream
@export var pawn_body : PackedScene
@export var starting_hacks : Array[HackSet] = [null, null, null]

View File

@@ -1,30 +1,32 @@
[gd_resource type="Resource" script_class="PawnBaseData" load_steps=7 format=3 uid="uid://yosnkcj4ci4v"]
[gd_resource type="Resource" script_class="PawnBaseData" load_steps=9 format=3 uid="uid://yosnkcj4ci4v"]
[ext_resource type="Texture2D" uid="uid://3dj2p3xerc45" path="res://visuals/images/temp_portraits/tg-abdoll-relin.jpg" id="1_4g7al"]
[ext_resource type="Script" uid="uid://b0b1107c0d807" path="res://data/hackset.gd" id="2_4g7al"]
[ext_resource type="Script" uid="uid://c53ohdio1ksp1" path="res://data/pawn_base_data.gd" id="2_8dqhi"]
[ext_resource type="AudioStream" uid="uid://dhlg3pk3tbirp" path="res://external/sample audio/a.wav" id="1_mtelv"]
[ext_resource type="PackedScene" uid="uid://c3s6gqy0s5kus" path="res://templates/pawns/a.tscn" id="2_mtelv"]
[ext_resource type="Texture2D" uid="uid://13pdg1vs81as" path="res://external/test portraits/a.png" id="3_qt3l7"]
[ext_resource type="Script" uid="uid://c53ohdio1ksp1" path="res://data/pawn_base_data.gd" id="4_3x7pt"]
[ext_resource type="Script" uid="uid://b0b1107c0d807" path="res://data/hackset.gd" id="5_lwcbw"]
[sub_resource type="Resource" id="Resource_4g7al"]
script = ExtResource("2_4g7al")
script = ExtResource("5_lwcbw")
type = 1
qty = 3
metadata/_custom_type_script = "uid://b0b1107c0d807"
[sub_resource type="Resource" id="Resource_8dqhi"]
script = ExtResource("2_4g7al")
script = ExtResource("5_lwcbw")
type = 5
qty = 6
metadata/_custom_type_script = "uid://b0b1107c0d807"
[sub_resource type="Resource" id="Resource_32lt6"]
script = ExtResource("2_4g7al")
script = ExtResource("5_lwcbw")
type = 2
qty = 2
metadata/_custom_type_script = "uid://b0b1107c0d807"
[resource]
script = ExtResource("2_8dqhi")
name = "Abdoll Relin"
script = ExtResource("4_3x7pt")
name = "A"
move_speed = 3.0
life = 75
max_life = 75
@@ -35,6 +37,8 @@ range_damage = 12
range_time = 1.0
melee_time = 1.25
reload_time = 1.75
portrait = ExtResource("1_4g7al")
starting_hacks = Array[ExtResource("2_4g7al")]([SubResource("Resource_4g7al"), SubResource("Resource_8dqhi"), SubResource("Resource_32lt6")])
portrait = ExtResource("3_qt3l7")
name_audio = ExtResource("1_mtelv")
pawn_body = ExtResource("2_mtelv")
starting_hacks = Array[ExtResource("5_lwcbw")]([SubResource("Resource_4g7al"), SubResource("Resource_8dqhi"), SubResource("Resource_32lt6")])
metadata/_custom_type_script = "uid://c53ohdio1ksp1"

View File

@@ -1,29 +1,31 @@
[gd_resource type="Resource" script_class="PawnBaseData" load_steps=7 format=3 uid="uid://df4gqi1us2dwu"]
[gd_resource type="Resource" script_class="PawnBaseData" load_steps=9 format=3 uid="uid://df4gqi1us2dwu"]
[ext_resource type="Texture2D" uid="uid://2qoouiv1cf0i" path="res://visuals/images/temp_portraits/tg-john-bishous.jpg" id="1_sb8f5"]
[ext_resource type="Script" uid="uid://b0b1107c0d807" path="res://data/hackset.gd" id="2_sb8f5"]
[ext_resource type="Script" uid="uid://c53ohdio1ksp1" path="res://data/pawn_base_data.gd" id="2_tu5w7"]
[ext_resource type="AudioStream" uid="uid://7dsv6kcptvar" path="res://external/sample audio/b.wav" id="1_vp6uu"]
[ext_resource type="PackedScene" uid="uid://bum67b50tn8ye" path="res://templates/pawns/b.tscn" id="2_vp6uu"]
[ext_resource type="Texture2D" uid="uid://ca6iihdssrh14" path="res://external/test portraits/b.png" id="3_qojdv"]
[ext_resource type="Script" uid="uid://c53ohdio1ksp1" path="res://data/pawn_base_data.gd" id="4_0gp76"]
[ext_resource type="Script" uid="uid://b0b1107c0d807" path="res://data/hackset.gd" id="5_ic2r4"]
[sub_resource type="Resource" id="Resource_sb8f5"]
script = ExtResource("2_sb8f5")
script = ExtResource("5_ic2r4")
type = 4
qty = 2
metadata/_custom_type_script = "uid://b0b1107c0d807"
[sub_resource type="Resource" id="Resource_tu5w7"]
script = ExtResource("2_sb8f5")
script = ExtResource("5_ic2r4")
qty = 6
metadata/_custom_type_script = "uid://b0b1107c0d807"
[sub_resource type="Resource" id="Resource_idp5c"]
script = ExtResource("2_sb8f5")
script = ExtResource("5_ic2r4")
type = 2
qty = 2
metadata/_custom_type_script = "uid://b0b1107c0d807"
[resource]
script = ExtResource("2_tu5w7")
name = "John Bishous"
script = ExtResource("4_0gp76")
name = "B"
move_speed = 2.5
life = 125
max_life = 125
@@ -34,6 +36,8 @@ range_damage = 20
range_time = 0.75
melee_time = 1.0
reload_time = 1.75
portrait = ExtResource("1_sb8f5")
starting_hacks = Array[ExtResource("2_sb8f5")]([SubResource("Resource_sb8f5"), SubResource("Resource_tu5w7"), SubResource("Resource_idp5c")])
portrait = ExtResource("3_qojdv")
name_audio = ExtResource("1_vp6uu")
pawn_body = ExtResource("2_vp6uu")
starting_hacks = Array[ExtResource("5_ic2r4")]([SubResource("Resource_sb8f5"), SubResource("Resource_tu5w7"), SubResource("Resource_idp5c")])
metadata/_custom_type_script = "uid://c53ohdio1ksp1"

View File

@@ -1,30 +1,32 @@
[gd_resource type="Resource" script_class="PawnBaseData" load_steps=7 format=3 uid="uid://dnty6gi4s2vdl"]
[gd_resource type="Resource" script_class="PawnBaseData" load_steps=9 format=3 uid="uid://dnty6gi4s2vdl"]
[ext_resource type="Texture2D" uid="uid://db0n6kjwucthf" path="res://visuals/images/temp_portraits/tg-lou-riche.jpg" id="1_onotk"]
[ext_resource type="Script" uid="uid://c53ohdio1ksp1" path="res://data/pawn_base_data.gd" id="2_7kyxn"]
[ext_resource type="Script" uid="uid://b0b1107c0d807" path="res://data/hackset.gd" id="2_onotk"]
[ext_resource type="AudioStream" uid="uid://dr3jq3tnvtwu" path="res://external/sample audio/c.wav" id="1_ag1od"]
[ext_resource type="PackedScene" uid="uid://c6hojd4o764oc" path="res://templates/pawns/c.tscn" id="2_ag1od"]
[ext_resource type="Texture2D" uid="uid://dm7fo7tt00p1" path="res://external/test portraits/c.png" id="3_1yr5w"]
[ext_resource type="Script" uid="uid://c53ohdio1ksp1" path="res://data/pawn_base_data.gd" id="4_nmvyh"]
[ext_resource type="Script" uid="uid://b0b1107c0d807" path="res://data/hackset.gd" id="5_2i1hp"]
[sub_resource type="Resource" id="Resource_onotk"]
script = ExtResource("2_onotk")
script = ExtResource("5_2i1hp")
type = 1
qty = 5
metadata/_custom_type_script = "uid://b0b1107c0d807"
[sub_resource type="Resource" id="Resource_7kyxn"]
script = ExtResource("2_onotk")
script = ExtResource("5_2i1hp")
type = 2
qty = 1
metadata/_custom_type_script = "uid://b0b1107c0d807"
[sub_resource type="Resource" id="Resource_6f6nq"]
script = ExtResource("2_onotk")
script = ExtResource("5_2i1hp")
type = 3
qty = 3
metadata/_custom_type_script = "uid://b0b1107c0d807"
[resource]
script = ExtResource("2_7kyxn")
name = "Lou Riche"
script = ExtResource("4_nmvyh")
name = "C"
move_speed = 3.0
life = 100
ammo = 6
@@ -33,6 +35,8 @@ melee_damage = 12
range_damage = 4
range_time = 0.4
melee_time = 1.25
portrait = ExtResource("1_onotk")
starting_hacks = Array[ExtResource("2_onotk")]([SubResource("Resource_onotk"), SubResource("Resource_7kyxn"), SubResource("Resource_6f6nq")])
portrait = ExtResource("3_1yr5w")
name_audio = ExtResource("1_ag1od")
pawn_body = ExtResource("2_ag1od")
starting_hacks = Array[ExtResource("5_2i1hp")]([SubResource("Resource_onotk"), SubResource("Resource_7kyxn"), SubResource("Resource_6f6nq")])
metadata/_custom_type_script = "uid://c53ohdio1ksp1"

View File

@@ -1,33 +1,34 @@
[gd_resource type="Resource" script_class="PawnBaseData" load_steps=7 format=3 uid="uid://bpb2nok3rqm1g"]
[gd_resource type="Resource" script_class="PawnBaseData" load_steps=9 format=3 uid="uid://bpb2nok3rqm1g"]
[ext_resource type="Texture2D" uid="uid://ci86bksme5114" path="res://visuals/images/temp_portraits/tg-tenrou-ugetsu.jpg" id="1_fm4bf"]
[ext_resource type="Script" uid="uid://c53ohdio1ksp1" path="res://data/pawn_base_data.gd" id="2_0fl5x"]
[ext_resource type="Script" uid="uid://b0b1107c0d807" path="res://data/hackset.gd" id="3_fm4bf"]
[ext_resource type="AudioStream" uid="uid://dsikjobcle18a" path="res://external/sample audio/d.wav" id="1_l2iwo"]
[ext_resource type="PackedScene" uid="uid://bqg51qfb0cj8y" path="res://templates/pawns/d.tscn" id="2_l2iwo"]
[ext_resource type="Texture2D" uid="uid://b2ovogspuupqa" path="res://external/test portraits/d.png" id="3_b6a3y"]
[ext_resource type="Script" uid="uid://c53ohdio1ksp1" path="res://data/pawn_base_data.gd" id="4_8vcih"]
[ext_resource type="Script" uid="uid://b0b1107c0d807" path="res://data/hackset.gd" id="5_v5xcc"]
[sub_resource type="Resource" id="Resource_0fl5x"]
script = ExtResource("3_fm4bf")
script = ExtResource("5_v5xcc")
type = 1
qty = 2
metadata/_custom_type_script = "uid://b0b1107c0d807"
[sub_resource type="Resource" id="Resource_vnwdb"]
script = ExtResource("3_fm4bf")
script = ExtResource("5_v5xcc")
type = 5
qty = 3
metadata/_custom_type_script = "uid://b0b1107c0d807"
[sub_resource type="Resource" id="Resource_4mj1t"]
script = ExtResource("3_fm4bf")
script = ExtResource("5_v5xcc")
type = 3
qty = 2
metadata/_custom_type_script = "uid://b0b1107c0d807"
[resource]
script = ExtResource("2_0fl5x")
name = "Tenrou Ugetsu"
script = ExtResource("4_8vcih")
name = "D"
move_speed = 3.5
life = 100
max_life = null
ammo = 7
max_ammo = 7
melee_damage = 15
@@ -35,6 +36,8 @@ range_damage = 3
range_time = 0.3
melee_time = 1.25
reload_time = 0.6
portrait = ExtResource("1_fm4bf")
starting_hacks = Array[ExtResource("3_fm4bf")]([SubResource("Resource_0fl5x"), SubResource("Resource_vnwdb"), SubResource("Resource_4mj1t")])
portrait = ExtResource("3_b6a3y")
name_audio = ExtResource("1_l2iwo")
pawn_body = ExtResource("2_l2iwo")
starting_hacks = Array[ExtResource("5_v5xcc")]([SubResource("Resource_0fl5x"), SubResource("Resource_vnwdb"), SubResource("Resource_4mj1t")])
metadata/_custom_type_script = "uid://c53ohdio1ksp1"

View File

@@ -1,30 +1,32 @@
[gd_resource type="Resource" script_class="PawnBaseData" load_steps=7 format=3 uid="uid://casciqabe0wgo"]
[gd_resource type="Resource" script_class="PawnBaseData" load_steps=9 format=3 uid="uid://casciqabe0wgo"]
[ext_resource type="Texture2D" uid="uid://bsug1ur2gifkh" path="res://visuals/images/temp_portraits/tg-tico.jpg" id="1_o3qj5"]
[ext_resource type="Script" uid="uid://c53ohdio1ksp1" path="res://data/pawn_base_data.gd" id="2_cxp03"]
[ext_resource type="Script" uid="uid://b0b1107c0d807" path="res://data/hackset.gd" id="2_o3qj5"]
[ext_resource type="AudioStream" uid="uid://dornjmfg37bv0" path="res://external/sample audio/e.wav" id="1_hlw2y"]
[ext_resource type="PackedScene" uid="uid://bb6a6wu2kc3fr" path="res://templates/pawns/e.tscn" id="2_hlw2y"]
[ext_resource type="Texture2D" uid="uid://b2rynijk10l8a" path="res://external/test portraits/e.png" id="3_1j2en"]
[ext_resource type="Script" uid="uid://c53ohdio1ksp1" path="res://data/pawn_base_data.gd" id="4_jmlxg"]
[ext_resource type="Script" uid="uid://b0b1107c0d807" path="res://data/hackset.gd" id="5_f1khw"]
[sub_resource type="Resource" id="Resource_o3qj5"]
script = ExtResource("2_o3qj5")
script = ExtResource("5_f1khw")
type = 4
qty = 3
metadata/_custom_type_script = "uid://b0b1107c0d807"
[sub_resource type="Resource" id="Resource_cxp03"]
script = ExtResource("2_o3qj5")
script = ExtResource("5_f1khw")
type = 5
qty = 4
metadata/_custom_type_script = "uid://b0b1107c0d807"
[sub_resource type="Resource" id="Resource_o75pd"]
script = ExtResource("2_o3qj5")
script = ExtResource("5_f1khw")
type = 3
qty = 4
metadata/_custom_type_script = "uid://b0b1107c0d807"
[resource]
script = ExtResource("2_cxp03")
name = "Tico"
script = ExtResource("4_jmlxg")
name = "E"
move_speed = 3.0
life = 75
max_life = 75
@@ -35,6 +37,8 @@ range_damage = 10
range_time = 1.0
melee_time = 1.25
reload_time = 2.0
portrait = ExtResource("1_o3qj5")
starting_hacks = Array[ExtResource("2_o3qj5")]([SubResource("Resource_o3qj5"), SubResource("Resource_cxp03"), SubResource("Resource_o75pd")])
portrait = ExtResource("3_1j2en")
name_audio = ExtResource("1_hlw2y")
pawn_body = ExtResource("2_hlw2y")
starting_hacks = Array[ExtResource("5_f1khw")]([SubResource("Resource_o3qj5"), SubResource("Resource_cxp03"), SubResource("Resource_o75pd")])
metadata/_custom_type_script = "uid://c53ohdio1ksp1"

View File

@@ -1,29 +1,31 @@
[gd_resource type="Resource" script_class="PawnBaseData" load_steps=7 format=3 uid="uid://6s8tqfssrt5i"]
[gd_resource type="Resource" script_class="PawnBaseData" load_steps=9 format=3 uid="uid://6s8tqfssrt5i"]
[ext_resource type="Texture2D" uid="uid://bp6wc55s2t4si" path="res://visuals/images/temp_portraits/tg-van-raily.jpg" id="1_crpmc"]
[ext_resource type="Script" uid="uid://b0b1107c0d807" path="res://data/hackset.gd" id="2_crpmc"]
[ext_resource type="Script" uid="uid://c53ohdio1ksp1" path="res://data/pawn_base_data.gd" id="2_nf0ju"]
[ext_resource type="AudioStream" uid="uid://bqu2otr8b1oj6" path="res://external/sample audio/f.wav" id="1_2oi4n"]
[ext_resource type="PackedScene" uid="uid://cwrxbjgwbiv81" path="res://templates/pawns/f.tscn" id="2_2oi4n"]
[ext_resource type="Texture2D" uid="uid://c265jqwykqc2s" path="res://external/test portraits/f.png" id="3_ttwdt"]
[ext_resource type="Script" uid="uid://c53ohdio1ksp1" path="res://data/pawn_base_data.gd" id="4_mlun8"]
[ext_resource type="Script" uid="uid://b0b1107c0d807" path="res://data/hackset.gd" id="5_2hgkw"]
[sub_resource type="Resource" id="Resource_crpmc"]
script = ExtResource("2_crpmc")
script = ExtResource("5_2hgkw")
type = 4
qty = 1
metadata/_custom_type_script = "uid://b0b1107c0d807"
[sub_resource type="Resource" id="Resource_nf0ju"]
script = ExtResource("2_crpmc")
script = ExtResource("5_2hgkw")
qty = 4
metadata/_custom_type_script = "uid://b0b1107c0d807"
[sub_resource type="Resource" id="Resource_2pr8m"]
script = ExtResource("2_crpmc")
script = ExtResource("5_2hgkw")
type = 1
qty = 4
metadata/_custom_type_script = "uid://b0b1107c0d807"
[resource]
script = ExtResource("2_nf0ju")
name = "Van Raily"
script = ExtResource("4_mlun8")
name = "F"
move_speed = 3.0
life = 100
ammo = 5
@@ -31,6 +33,8 @@ melee_damage = 10
range_damage = 5
range_time = 0.5
melee_time = 1.0
portrait = ExtResource("1_crpmc")
starting_hacks = Array[ExtResource("2_crpmc")]([SubResource("Resource_crpmc"), SubResource("Resource_nf0ju"), SubResource("Resource_2pr8m")])
portrait = ExtResource("3_ttwdt")
name_audio = ExtResource("1_2oi4n")
pawn_body = ExtResource("2_2oi4n")
starting_hacks = Array[ExtResource("5_2hgkw")]([SubResource("Resource_crpmc"), SubResource("Resource_nf0ju"), SubResource("Resource_2pr8m")])
metadata/_custom_type_script = "uid://c53ohdio1ksp1"

27
default_bus_layout.tres Normal file
View File

@@ -0,0 +1,27 @@
[gd_resource type="AudioBusLayout" format=3 uid="uid://ck35ska6sr17h"]
[resource]
bus/1/name = &"Voice"
bus/1/solo = false
bus/1/mute = false
bus/1/bypass_fx = false
bus/1/volume_db = 4.4334908
bus/1/send = &"Master"
bus/2/name = &"Music"
bus/2/solo = false
bus/2/mute = false
bus/2/bypass_fx = false
bus/2/volume_db = -8.793672
bus/2/send = &"Master"
bus/3/name = &"SFX"
bus/3/solo = false
bus/3/mute = false
bus/3/bypass_fx = false
bus/3/volume_db = 0.0
bus/3/send = &"Master"
bus/4/name = &"UI"
bus/4/solo = false
bus/4/mute = false
bus/4/bypass_fx = false
bus/4/volume_db = 0.0
bus/4/send = &"Master"

View File

@@ -1,18 +1,18 @@
[gd_scene load_steps=59 format=3 uid="uid://bflg720h1w3d3"]
[gd_scene format=3 uid="uid://bflg720h1w3d3"]
[ext_resource type="Script" uid="uid://tb7n6ybv43ch" path="res://assets/BinbunVFX/shared/script/vfx_controller.gd" id="1_so17j"]
[ext_resource type="Shader" uid="uid://b6ke6r1fjb8s3" path="res://assets/BinbunVFX/impact_explosions/src/shader/explosion_core.gdshader" id="2_d2rk6"]
[ext_resource type="Material" uid="uid://dnw08mtonx63d" path="res://assets/BinbunVFX/impact_explosions/src/material/explosion/explosion_smoke.tres" id="2_plj08"]
[ext_resource type="Shader" uid="uid://d28ltkmbbdcjb" path="res://assets/BinbunVFX/impact_explosions/src/shader/sparks.gdshader" id="3_msnhc"]
[ext_resource type="Shader" uid="uid://bf8eiigjam2fr" path="res://assets/BinbunVFX/impact_explosions/src/shader/explostion_ring.gdshader" id="5_d2rk6"]
[ext_resource type="Texture2D" uid="uid://85fb3gemkbhp" path="res://assets/BinbunVFX/shared/texture/cracks_01.png" id="5_otofc"]
[ext_resource type="Texture2D" uid="uid://bbxo5nkvy537a" path="res://assets/BinbunVFX/shared/texture/cracks_emission_01.png" id="6_d2rk6"]
[ext_resource type="Shader" uid="uid://ccd4kg68n7uox" path="res://assets/BinbunVFX/impact_explosions/src/shader/basic_billboard.gdshader" id="8_y01pw"]
[ext_resource type="Script" uid="uid://bdk8hhttligw" path="res://assets/BinbunVFX/shared/script/vfx_light.gd" id="9_85p3d"]
[ext_resource type="Script" uid="uid://tb7n6ybv43ch" path="res://experimental/BinbunVFX/shared/script/vfx_controller.gd" id="1_so17j"]
[ext_resource type="Shader" uid="uid://b6ke6r1fjb8s3" path="res://experimental/BinbunVFX/impact_explosions/src/shader/explosion_core.gdshader" id="2_d2rk6"]
[ext_resource type="Material" uid="uid://dnw08mtonx63d" path="res://experimental/BinbunVFX/impact_explosions/src/material/explosion/explosion_smoke.tres" id="2_plj08"]
[ext_resource type="Shader" uid="uid://d28ltkmbbdcjb" path="res://experimental/BinbunVFX/impact_explosions/src/shader/sparks.gdshader" id="3_msnhc"]
[ext_resource type="Shader" uid="uid://bf8eiigjam2fr" path="res://experimental/BinbunVFX/impact_explosions/src/shader/explostion_ring.gdshader" id="5_d2rk6"]
[ext_resource type="Texture2D" uid="uid://85fb3gemkbhp" path="res://experimental/BinbunVFX/shared/texture/cracks_01.png" id="5_otofc"]
[ext_resource type="Texture2D" uid="uid://bbxo5nkvy537a" path="res://experimental/BinbunVFX/shared/texture/cracks_emission_01.png" id="6_d2rk6"]
[ext_resource type="Shader" uid="uid://ccd4kg68n7uox" path="res://experimental/BinbunVFX/impact_explosions/src/shader/basic_billboard.gdshader" id="8_y01pw"]
[ext_resource type="Script" uid="uid://bdk8hhttligw" path="res://experimental/BinbunVFX/shared/script/vfx_light.gd" id="9_85p3d"]
[sub_resource type="Gradient" id="Gradient_y01pw"]
[sub_resource type="Gradient" id="Gradient_iyrbe"]
[sub_resource type="FastNoiseLite" id="FastNoiseLite_85p3d"]
[sub_resource type="FastNoiseLite" id="FastNoiseLite_dga0b"]
noise_type = 2
frequency = 0.02
fractal_octaves = 1
@@ -22,9 +22,9 @@ domain_warp_amplitude = 5.0
domain_warp_fractal_octaves = 1
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_csir3"]
noise = SubResource("FastNoiseLite_dga0b")
color_ramp = SubResource("Gradient_iyrbe")
seamless = true
color_ramp = SubResource("Gradient_y01pw")
noise = SubResource("FastNoiseLite_85p3d")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_e6ocy"]
resource_local_to_scene = true
@@ -139,8 +139,8 @@ noise_type = 2
fractal_octaves = 3
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_7t2vj"]
seamless = true
noise = SubResource("FastNoiseLite_d2rk6")
seamless = true
[sub_resource type="Gradient" id="Gradient_d2rk6"]
offsets = PackedFloat32Array(0.868159, 0.980099, 1)
@@ -215,10 +215,10 @@ frequency = 0.02
fractal_octaves = 2
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_cwquj"]
invert = true
seamless = true
seamless_blend_skirt = 1.0
noise = SubResource("FastNoiseLite_y01pw")
seamless = true
invert = true
seamless_blend_skirt = 1.0
[sub_resource type="ShaderMaterial" id="ShaderMaterial_85p3d"]
render_priority = 0
@@ -475,8 +475,11 @@ _data = {
&"main": SubResource("Animation_v36aq")
}
[node name="VFXExplosion_01" type="Node3D"]
[node name="VFXExplosion_01" type="Node3D" unique_id=1915848858]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, 0, 0)
script = ExtResource("1_so17j")
preview = false
one_shot = true
primary_color = Color(1, 0.662745, 0.0666667, 1)
secondary_color = Color(0.984314, 0.192157, 0, 1)
tertiary_color = Color(0.227451, 0.223529, 0.180392, 1)
@@ -484,14 +487,15 @@ light_color = Color(1, 0.662745, 0.0666667, 1)
light_energy = 12.0
alpha_mode = 1
[node name="Core" type="MeshInstance3D" parent="."]
[node name="Core" type="MeshInstance3D" parent="." unique_id=1466137156]
layers = 540672
material_override = SubResource("ShaderMaterial_e6ocy")
mesh = SubResource("SphereMesh_awqfb")
[node name="Smoke" type="GPUParticles3D" parent="."]
[node name="Smoke" type="GPUParticles3D" parent="." unique_id=1546206057]
layers = 540672
material_override = ExtResource("2_plj08")
emitting = false
amount = 16
lifetime = 0.8
one_shot = true
@@ -499,9 +503,10 @@ explosiveness = 1.0
process_material = SubResource("ParticleProcessMaterial_cp01m")
draw_pass_1 = SubResource("SphereMesh_plj08")
[node name="Sparks" type="GPUParticles3D" parent="."]
[node name="Sparks" type="GPUParticles3D" parent="." unique_id=1580014307]
layers = 540672
material_override = SubResource("ShaderMaterial_msnhc")
emitting = false
amount = 16
lifetime = 0.5
one_shot = true
@@ -510,7 +515,7 @@ transform_align = 3
process_material = SubResource("ParticleProcessMaterial_msnhc")
draw_pass_1 = SubResource("QuadMesh_so17j")
[node name="Rings" type="GPUParticles3D" parent="."]
[node name="Rings" type="GPUParticles3D" parent="." unique_id=312404838]
layers = 540672
material_override = SubResource("ShaderMaterial_y01pw")
emitting = false
@@ -521,7 +526,7 @@ explosiveness = 1.0
process_material = SubResource("ParticleProcessMaterial_otofc")
draw_pass_1 = SubResource("QuadMesh_otofc")
[node name="Dust" type="GPUParticles3D" parent="."]
[node name="Dust" type="GPUParticles3D" parent="." unique_id=159984480]
layers = 540672
sorting_offset = -1.0
material_override = SubResource("ShaderMaterial_85p3d")
@@ -532,7 +537,7 @@ explosiveness = 0.9
process_material = SubResource("ParticleProcessMaterial_csir3")
draw_pass_1 = SubResource("QuadMesh_e6ocy")
[node name="Decal" type="Decal" parent="."]
[node name="Decal" type="Decal" parent="." unique_id=202182820]
visible = false
size = Vector3(5, 5, 5)
texture_albedo = ExtResource("5_otofc")
@@ -542,7 +547,7 @@ modulate = Color(0, 0, 0, 1)
albedo_mix = 0.0
cull_mask = 507903
[node name="Light" type="OmniLight3D" parent="."]
[node name="Light" type="OmniLight3D" parent="." unique_id=1611743251]
light_color = Color(1, 0.662745, 0.0666667, 1)
light_energy = 12.0
light_size = 4.0
@@ -551,9 +556,7 @@ omni_range = 8.0
script = ExtResource("9_85p3d")
base_energy = 12.0
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1543730117]
callback_mode_method = 1
libraries = {
&"": SubResource("AnimationLibrary_plj08")
}
autoplay = "RESET"
libraries/ = SubResource("AnimationLibrary_plj08")
autoplay = &"RESET"

View File

@@ -1,14 +1,14 @@
[gd_scene load_steps=67 format=3 uid="uid://dato0qpbqvwnj"]
[gd_scene format=3 uid="uid://dato0qpbqvwnj"]
[ext_resource type="Shader" uid="uid://de7cy2qqnf2p5" path="res://assets/BinbunVFX/impact_explosions/src/shader/explosion_core_particle.gdshader" id="1_8n8gd"]
[ext_resource type="Script" uid="uid://tb7n6ybv43ch" path="res://assets/BinbunVFX/shared/script/vfx_controller.gd" id="1_cdqbm"]
[ext_resource type="Shader" uid="uid://b1sjgiq8o4tvd" path="res://assets/BinbunVFX/impact_explosions/src/shader/explosion_smoke.gdshader" id="1_sadvm"]
[ext_resource type="Shader" uid="uid://d28ltkmbbdcjb" path="res://assets/BinbunVFX/impact_explosions/src/shader/sparks.gdshader" id="2_8n8gd"]
[ext_resource type="Shader" uid="uid://bf8eiigjam2fr" path="res://assets/BinbunVFX/impact_explosions/src/shader/explostion_ring.gdshader" id="3_cdqbm"]
[ext_resource type="Texture2D" uid="uid://85fb3gemkbhp" path="res://assets/BinbunVFX/shared/texture/cracks_01.png" id="6_bdwyf"]
[ext_resource type="Shader" uid="uid://ccd4kg68n7uox" path="res://assets/BinbunVFX/impact_explosions/src/shader/basic_billboard.gdshader" id="6_haqe0"]
[ext_resource type="Texture2D" uid="uid://bbxo5nkvy537a" path="res://assets/BinbunVFX/shared/texture/cracks_emission_01.png" id="7_haqe0"]
[ext_resource type="Script" uid="uid://bdk8hhttligw" path="res://assets/BinbunVFX/shared/script/vfx_light.gd" id="9_bqkcx"]
[ext_resource type="Shader" uid="uid://de7cy2qqnf2p5" path="res://experimental/BinbunVFX/impact_explosions/src/shader/explosion_core_particle.gdshader" id="1_8n8gd"]
[ext_resource type="Script" uid="uid://tb7n6ybv43ch" path="res://experimental/BinbunVFX/shared/script/vfx_controller.gd" id="1_cdqbm"]
[ext_resource type="Shader" uid="uid://b1sjgiq8o4tvd" path="res://experimental/BinbunVFX/impact_explosions/src/shader/explosion_smoke.gdshader" id="1_sadvm"]
[ext_resource type="Shader" uid="uid://d28ltkmbbdcjb" path="res://experimental/BinbunVFX/impact_explosions/src/shader/sparks.gdshader" id="2_8n8gd"]
[ext_resource type="Shader" uid="uid://bf8eiigjam2fr" path="res://experimental/BinbunVFX/impact_explosions/src/shader/explostion_ring.gdshader" id="3_cdqbm"]
[ext_resource type="Texture2D" uid="uid://85fb3gemkbhp" path="res://experimental/BinbunVFX/shared/texture/cracks_01.png" id="6_bdwyf"]
[ext_resource type="Shader" uid="uid://ccd4kg68n7uox" path="res://experimental/BinbunVFX/impact_explosions/src/shader/basic_billboard.gdshader" id="6_haqe0"]
[ext_resource type="Texture2D" uid="uid://bbxo5nkvy537a" path="res://experimental/BinbunVFX/shared/texture/cracks_emission_01.png" id="7_haqe0"]
[ext_resource type="Script" uid="uid://bdk8hhttligw" path="res://experimental/BinbunVFX/shared/script/vfx_light.gd" id="9_bqkcx"]
[sub_resource type="Gradient" id="Gradient_8n8gd"]
@@ -22,9 +22,9 @@ domain_warp_amplitude = 5.0
domain_warp_fractal_octaves = 1
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_haqe0"]
seamless = true
color_ramp = SubResource("Gradient_8n8gd")
noise = SubResource("FastNoiseLite_cdqbm")
color_ramp = SubResource("Gradient_8n8gd")
seamless = true
[sub_resource type="ShaderMaterial" id="ShaderMaterial_bdwyf"]
resource_local_to_scene = true
@@ -74,9 +74,9 @@ domain_warp_fractal_octaves = 2
domain_warp_fractal_lacunarity = 4.165
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_bqkcx"]
noise = SubResource("FastNoiseLite_8n8gd")
seamless = true
normalize = false
noise = SubResource("FastNoiseLite_8n8gd")
[sub_resource type="FastNoiseLite" id="FastNoiseLite_w7scw"]
frequency = 0.005
@@ -89,9 +89,9 @@ domain_warp_frequency = 0.005
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_rmi04"]
width = 128
height = 128
invert = true
seamless = true
noise = SubResource("FastNoiseLite_w7scw")
seamless = true
invert = true
[sub_resource type="ShaderMaterial" id="ShaderMaterial_bqkcx"]
render_priority = 0
@@ -201,8 +201,8 @@ noise_type = 2
fractal_octaves = 3
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_kp1a8"]
seamless = true
noise = SubResource("FastNoiseLite_sadvm")
seamless = true
[sub_resource type="Gradient" id="Gradient_w7scw"]
offsets = PackedFloat32Array(0.868159, 0.980099, 1)
@@ -274,10 +274,10 @@ frequency = 0.02
fractal_octaves = 2
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_1gfff"]
invert = true
seamless = true
seamless_blend_skirt = 1.0
noise = SubResource("FastNoiseLite_rmi04")
seamless = true
invert = true
seamless_blend_skirt = 1.0
[sub_resource type="ShaderMaterial" id="ShaderMaterial_1gfff"]
render_priority = 0
@@ -532,15 +532,17 @@ _data = {
&"main": SubResource("Animation_sadvm")
}
[node name="VFXExplosion_02" type="Node3D"]
[node name="VFXExplosion_02" type="Node3D" unique_id=1672456492]
script = ExtResource("1_cdqbm")
preview = false
one_shot = true
primary_color = Color(1, 0.294118, 0.0666667, 1)
secondary_color = Color(0.713726, 0.192157, 0, 1)
tertiary_color = Color(0.227451, 0.223529, 0.180392, 1)
light_color = Color(1, 0.294118, 0.0666667, 1)
light_energy = 12.0
[node name="Core" type="GPUParticles3D" parent="."]
[node name="Core" type="GPUParticles3D" parent="." unique_id=1930442028]
material_override = SubResource("ShaderMaterial_bdwyf")
emitting = false
amount = 2
@@ -549,7 +551,7 @@ explosiveness = 0.8
process_material = SubResource("ParticleProcessMaterial_sadvm")
draw_pass_1 = SubResource("SphereMesh_cdqbm")
[node name="Smoke" type="GPUParticles3D" parent="."]
[node name="Smoke" type="GPUParticles3D" parent="." unique_id=1470245299]
layers = 540672
material_override = SubResource("ShaderMaterial_bqkcx")
emitting = false
@@ -560,7 +562,7 @@ explosiveness = 1.0
process_material = SubResource("ParticleProcessMaterial_1gfff")
draw_pass_1 = SubResource("SphereMesh_lnkdc")
[node name="Sparks" type="GPUParticles3D" parent="."]
[node name="Sparks" type="GPUParticles3D" parent="." unique_id=1982554184]
layers = 540672
material_override = SubResource("ShaderMaterial_cdqbm")
emitting = false
@@ -572,7 +574,7 @@ transform_align = 3
process_material = SubResource("ParticleProcessMaterial_bqkcx")
draw_pass_1 = SubResource("QuadMesh_rmi04")
[node name="Rings" type="GPUParticles3D" parent="."]
[node name="Rings" type="GPUParticles3D" parent="." unique_id=1696110943]
layers = 540672
material_override = SubResource("ShaderMaterial_haqe0")
emitting = false
@@ -582,7 +584,7 @@ explosiveness = 0.9
process_material = SubResource("ParticleProcessMaterial_lnkdc")
draw_pass_1 = SubResource("QuadMesh_tbk35")
[node name="Dust" type="GPUParticles3D" parent="."]
[node name="Dust" type="GPUParticles3D" parent="." unique_id=360698639]
layers = 540672
sorting_offset = -1.0
material_override = SubResource("ShaderMaterial_1gfff")
@@ -593,7 +595,7 @@ explosiveness = 0.9
process_material = SubResource("ParticleProcessMaterial_dswvj")
draw_pass_1 = SubResource("QuadMesh_h88cn")
[node name="Decal" type="Decal" parent="."]
[node name="Decal" type="Decal" parent="." unique_id=182059197]
size = Vector3(4, 4, 4)
texture_albedo = ExtResource("6_bdwyf")
texture_emission = ExtResource("7_haqe0")
@@ -601,7 +603,7 @@ emission_energy = 4.0
modulate = Color(1, 0.32549, 0, 1)
cull_mask = 507903
[node name="Light" type="OmniLight3D" parent="."]
[node name="Light" type="OmniLight3D" parent="." unique_id=991675899]
light_color = Color(1, 0.294118, 0.0666667, 1)
light_energy = 12.0
light_size = 4.0
@@ -610,7 +612,5 @@ omni_range = 8.0
script = ExtResource("9_bqkcx")
base_energy = 12.0
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_8n8gd")
}
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1815067620]
libraries/ = SubResource("AnimationLibrary_8n8gd")

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=54 format=3 uid="uid://cdsloy1kvhikp"]
[gd_scene format=3 uid="uid://cdsloy1kvhikp"]
[ext_resource type="Shader" uid="uid://de7cy2qqnf2p5" path="res://experimental/BinbunVFX/impact_explosions/src/shader/explosion_core_particle.gdshader" id="1_bprbm"]
[ext_resource type="Script" uid="uid://tb7n6ybv43ch" path="res://experimental/BinbunVFX/shared/script/vfx_controller.gd" id="1_enhek"]
@@ -446,15 +446,17 @@ _data = {
&"main": SubResource("Animation_v7cek")
}
[node name="VFXExplosion_03" type="Node3D"]
[node name="VFXExplosion_03" type="Node3D" unique_id=1493313628]
script = ExtResource("1_enhek")
preview = false
one_shot = true
primary_color = Color(1, 0.529412, 0, 1)
secondary_color = Color(1, 0.337255, 0, 1)
tertiary_color = Color(0.227451, 0.223529, 0.180392, 1)
light_color = Color(1, 0.529412, 0, 1)
light_energy = 8.0
[node name="Core" type="GPUParticles3D" parent="."]
[node name="Core" type="GPUParticles3D" parent="." unique_id=312730182]
material_override = SubResource("ShaderMaterial_j37f4")
emitting = false
amount = 1
@@ -464,7 +466,7 @@ explosiveness = 0.8
process_material = SubResource("ParticleProcessMaterial_fl6r8")
draw_pass_1 = SubResource("SphereMesh_7ufuy")
[node name="Smoke" type="GPUParticles3D" parent="."]
[node name="Smoke" type="GPUParticles3D" parent="." unique_id=2068506687]
layers = 540672
material_override = SubResource("ShaderMaterial_fyady")
emitting = false
@@ -475,7 +477,7 @@ explosiveness = 1.0
process_material = SubResource("ParticleProcessMaterial_gt25t")
draw_pass_1 = SubResource("SphereMesh_bprbm")
[node name="Spikes" type="GPUParticles3D" parent="."]
[node name="Spikes" type="GPUParticles3D" parent="." unique_id=264003257]
layers = 540672
emitting = false
amount = 16
@@ -486,7 +488,7 @@ transform_align = 2
process_material = SubResource("ParticleProcessMaterial_j37f4")
draw_pass_1 = SubResource("SphereMesh_enhek")
[node name="Dust" type="GPUParticles3D" parent="."]
[node name="Dust" type="GPUParticles3D" parent="." unique_id=1215858331]
layers = 540672
sorting_offset = -1.0
material_override = SubResource("ShaderMaterial_w0g5g")
@@ -496,7 +498,7 @@ explosiveness = 0.9
process_material = SubResource("ParticleProcessMaterial_8ijvx")
draw_pass_1 = SubResource("QuadMesh_yg62c")
[node name="Decal" type="Decal" parent="."]
[node name="Decal" type="Decal" parent="." unique_id=779162809]
size = Vector3(4, 4, 4)
texture_albedo = ExtResource("4_1bdqt")
texture_emission = ExtResource("5_t82mc")
@@ -504,7 +506,7 @@ emission_energy = 4.0
modulate = Color(1, 0.32549, 0, 1)
cull_mask = 507903
[node name="Light" type="OmniLight3D" parent="."]
[node name="Light" type="OmniLight3D" parent="." unique_id=1297384187]
light_color = Color(1, 0.529412, 0, 1)
light_energy = 8.0
light_size = 4.0
@@ -513,8 +515,6 @@ omni_range = 8.0
script = ExtResource("7_j37f4")
base_energy = 8.0
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_1ahis")
}
autoplay = "main"
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1195111952]
libraries/ = SubResource("AnimationLibrary_1ahis")
autoplay = &"main"

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=43 format=3 uid="uid://cl82y5gxnb8d6"]
[gd_scene format=3 uid="uid://cl82y5gxnb8d6"]
[ext_resource type="Script" uid="uid://tb7n6ybv43ch" path="res://experimental/BinbunVFX/shared/script/vfx_controller.gd" id="1_gkc2v"]
[ext_resource type="Shader" uid="uid://de7cy2qqnf2p5" path="res://experimental/BinbunVFX/impact_explosions/src/shader/explosion_core_particle.gdshader" id="1_k4fxl"]
@@ -356,14 +356,17 @@ _data = {
&"main": SubResource("Animation_k4fxl")
}
[node name="VFXExplosion_04" type="Node3D"]
[node name="VFXExplosion_04" type="Node3D" unique_id=1390196907]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, 0, 0)
script = ExtResource("1_gkc2v")
preview = false
one_shot = true
primary_color = Color(1, 0.529412, 0, 1)
secondary_color = Color(1, 0.337255, 0, 1)
tertiary_color = Color(0.227451, 0.223529, 0.180392, 1)
light_color = Color(1, 0.529412, 0, 1)
[node name="Core" type="GPUParticles3D" parent="."]
[node name="Core" type="GPUParticles3D" parent="." unique_id=2042306723]
material_override = SubResource("ShaderMaterial_g57xf")
emitting = false
amount = 1
@@ -373,7 +376,7 @@ explosiveness = 0.8
process_material = SubResource("ParticleProcessMaterial_8n3be")
draw_pass_1 = SubResource("SphereMesh_hvte5")
[node name="Smoke" type="GPUParticles3D" parent="."]
[node name="Smoke" type="GPUParticles3D" parent="." unique_id=1343205197]
layers = 540672
material_override = SubResource("ShaderMaterial_lt01u")
emitting = false
@@ -384,7 +387,7 @@ explosiveness = 1.0
process_material = SubResource("ParticleProcessMaterial_f2s7u")
draw_pass_1 = SubResource("SphereMesh_13ab5")
[node name="Sparks" type="GPUParticles3D" parent="."]
[node name="Sparks" type="GPUParticles3D" parent="." unique_id=1417955337]
layers = 540672
material_override = SubResource("ShaderMaterial_gkc2v")
emitting = false
@@ -396,7 +399,7 @@ transform_align = 3
process_material = SubResource("ParticleProcessMaterial_hvte5")
draw_pass_1 = SubResource("QuadMesh_kxca7")
[node name="Decal" type="Decal" parent="."]
[node name="Decal" type="Decal" parent="." unique_id=177625817]
sorting_offset = -1.0
texture_albedo = ExtResource("4_g57xf")
texture_emission = ExtResource("5_gkc2v")
@@ -404,7 +407,7 @@ emission_energy = 4.0
modulate = Color(1, 0.32549, 0, 1)
cull_mask = 507903
[node name="Light" type="OmniLight3D" parent="."]
[node name="Light" type="OmniLight3D" parent="." unique_id=1733467689]
light_color = Color(1, 0.529412, 0, 1)
light_energy = 4.0
light_size = 4.0
@@ -413,7 +416,5 @@ omni_range = 8.0
script = ExtResource("7_3n50y")
base_energy = 4.0
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_ppd7v")
}
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1784558047]
libraries/ = SubResource("AnimationLibrary_ppd7v")

View File

@@ -1,12 +1,12 @@
[gd_scene load_steps=43 format=3 uid="uid://shl0iw1x775r"]
[gd_scene format=3 uid="uid://shl0iw1x775r"]
[ext_resource type="Shader" uid="uid://de7cy2qqnf2p5" path="res://assets/BinbunVFX/impact_explosions/src/shader/explosion_core_particle.gdshader" id="1_pc1m8"]
[ext_resource type="Script" uid="uid://tb7n6ybv43ch" path="res://assets/BinbunVFX/shared/script/vfx_controller.gd" id="1_vxewg"]
[ext_resource type="Shader" uid="uid://b1sjgiq8o4tvd" path="res://assets/BinbunVFX/impact_explosions/src/shader/explosion_smoke.gdshader" id="2_vxewg"]
[ext_resource type="Shader" uid="uid://d28ltkmbbdcjb" path="res://assets/BinbunVFX/impact_explosions/src/shader/sparks.gdshader" id="3_wbyke"]
[ext_resource type="Texture2D" uid="uid://85fb3gemkbhp" path="res://assets/BinbunVFX/shared/texture/cracks_01.png" id="4_ro6ym"]
[ext_resource type="Texture2D" uid="uid://bbxo5nkvy537a" path="res://assets/BinbunVFX/shared/texture/cracks_emission_01.png" id="5_c84e7"]
[ext_resource type="Script" uid="uid://bdk8hhttligw" path="res://assets/BinbunVFX/shared/script/vfx_light.gd" id="6_xgs5v"]
[ext_resource type="Shader" uid="uid://de7cy2qqnf2p5" path="res://experimental/BinbunVFX/impact_explosions/src/shader/explosion_core_particle.gdshader" id="1_pc1m8"]
[ext_resource type="Script" uid="uid://tb7n6ybv43ch" path="res://experimental/BinbunVFX/shared/script/vfx_controller.gd" id="1_vxewg"]
[ext_resource type="Shader" uid="uid://b1sjgiq8o4tvd" path="res://experimental/BinbunVFX/impact_explosions/src/shader/explosion_smoke.gdshader" id="2_vxewg"]
[ext_resource type="Shader" uid="uid://d28ltkmbbdcjb" path="res://experimental/BinbunVFX/impact_explosions/src/shader/sparks.gdshader" id="3_wbyke"]
[ext_resource type="Texture2D" uid="uid://85fb3gemkbhp" path="res://experimental/BinbunVFX/shared/texture/cracks_01.png" id="4_ro6ym"]
[ext_resource type="Texture2D" uid="uid://bbxo5nkvy537a" path="res://experimental/BinbunVFX/shared/texture/cracks_emission_01.png" id="5_c84e7"]
[ext_resource type="Script" uid="uid://bdk8hhttligw" path="res://experimental/BinbunVFX/shared/script/vfx_light.gd" id="6_xgs5v"]
[sub_resource type="Gradient" id="Gradient_pc1m8"]
@@ -23,9 +23,9 @@ domain_warp_fractal_lacunarity = 6.89
domain_warp_fractal_gain = 0.765
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_vxewg"]
seamless = true
color_ramp = SubResource("Gradient_pc1m8")
noise = SubResource("FastNoiseLite_vxewg")
color_ramp = SubResource("Gradient_pc1m8")
seamless = true
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ro6ym"]
resource_local_to_scene = true
@@ -77,9 +77,9 @@ domain_warp_fractal_octaves = 2
domain_warp_fractal_lacunarity = 4.165
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_c84e7"]
noise = SubResource("FastNoiseLite_pc1m8")
seamless = true
normalize = false
noise = SubResource("FastNoiseLite_pc1m8")
[sub_resource type="FastNoiseLite" id="FastNoiseLite_wbyke"]
frequency = 0.005
@@ -92,9 +92,9 @@ domain_warp_frequency = 0.005
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_xgs5v"]
width = 128
height = 128
invert = true
seamless = true
noise = SubResource("FastNoiseLite_wbyke")
seamless = true
invert = true
[sub_resource type="ShaderMaterial" id="ShaderMaterial_c84e7"]
render_priority = 0
@@ -354,14 +354,16 @@ _data = {
&"main": SubResource("Animation_pc1m8")
}
[node name="VFXExplosion_05" type="Node3D"]
[node name="VFXExplosion_05" type="Node3D" unique_id=2086130807]
script = ExtResource("1_vxewg")
preview = false
one_shot = true
primary_color = Color(0.890196, 0.627451, 0.0901961, 1)
secondary_color = Color(0.890196, 0, 0.152941, 1)
tertiary_color = Color(0.215686, 0.215686, 0.180392, 1)
light_color = Color(0.890196, 0.627451, 0.0901961, 1)
[node name="Core" type="GPUParticles3D" parent="."]
[node name="Core" type="GPUParticles3D" parent="." unique_id=615851446]
material_override = SubResource("ShaderMaterial_ro6ym")
emitting = false
amount = 1
@@ -371,7 +373,7 @@ explosiveness = 0.8
process_material = SubResource("ParticleProcessMaterial_jilrt")
draw_pass_1 = SubResource("SphereMesh_6lo2p")
[node name="Smoke" type="GPUParticles3D" parent="."]
[node name="Smoke" type="GPUParticles3D" parent="." unique_id=103514712]
layers = 540672
material_override = SubResource("ShaderMaterial_c84e7")
emitting = false
@@ -382,7 +384,7 @@ explosiveness = 1.0
process_material = SubResource("ParticleProcessMaterial_ifykw")
draw_pass_1 = SubResource("SphereMesh_tgerl")
[node name="Sparks" type="GPUParticles3D" parent="."]
[node name="Sparks" type="GPUParticles3D" parent="." unique_id=1319420001]
layers = 540672
material_override = SubResource("ShaderMaterial_xgs5v")
emitting = false
@@ -393,7 +395,7 @@ transform_align = 3
process_material = SubResource("ParticleProcessMaterial_ro6ym")
draw_pass_1 = SubResource("QuadMesh_pc1m8")
[node name="Decal" type="Decal" parent="."]
[node name="Decal" type="Decal" parent="." unique_id=1106971543]
sorting_offset = -1.0
size = Vector3(1, 1, 1)
texture_albedo = ExtResource("4_ro6ym")
@@ -402,7 +404,7 @@ emission_energy = 4.0
modulate = Color(1, 0.32549, 0, 1)
cull_mask = 507903
[node name="Light" type="OmniLight3D" parent="."]
[node name="Light" type="OmniLight3D" parent="." unique_id=1083331450]
light_color = Color(0.890196, 0.627451, 0.0901961, 1)
light_energy = 4.0
light_size = 4.0
@@ -411,7 +413,5 @@ omni_range = 8.0
script = ExtResource("6_xgs5v")
base_energy = 4.0
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_vxewg")
}
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=133068635]
libraries/ = SubResource("AnimationLibrary_vxewg")

View File

@@ -1,4 +1,4 @@
[gd_resource type="ShaderMaterial" load_steps=6 format=3 uid="uid://dnw08mtonx63d"]
[gd_resource type="ShaderMaterial" format=3 uid="uid://dnw08mtonx63d"]
[ext_resource type="Shader" uid="uid://b1sjgiq8o4tvd" path="res://experimental/BinbunVFX/impact_explosions/src/shader/explosion_smoke.gdshader" id="1_5yu7f"]

View File

@@ -15,9 +15,8 @@ class_name VFXController
@export var one_shot : bool = false:
set(value):
if Engine.is_editor_hint():
one_shot = value
preview = false
one_shot = value
preview = false
@export var autoplay : bool = true
@@ -122,7 +121,7 @@ var particles : Array[GPUParticles3D] = []
func _ready() -> void:
if Engine.is_editor_hint():
return
print(one_shot)
if autoplay: play()
func _enter_tree() -> void:

View File

@@ -3,14 +3,18 @@
name="Windows Desktop"
platform="Windows Desktop"
runnable=true
advanced_options=false
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="../exports/net-gunner/windows/Net Gunner.exe"
export_path="../Exports/Net Gunner/Net Gunner.exe"
patches=PackedStringArray()
patch_delta_encoding=false
patch_delta_compression_level_zstd=19
patch_delta_min_reduction=0.1
patch_delta_include_filters="*"
patch_delta_exclude_filters=""
encryption_include_filters=""
encryption_exclude_filters=""
seed=0

BIN
external/contain-icon.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

40
external/contain-icon.png.import vendored Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cg4fu3fa248cm"
path="res://.godot/imported/contain-icon.png-a3e48c385316cd8572a89a3e09b9d50c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/contain-icon.png"
dest_files=["res://.godot/imported/contain-icon.png-a3e48c385316cd8572a89a3e09b9d50c.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
external/data key.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

40
external/data key.png.import vendored Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dney1f72lglvc"
path="res://.godot/imported/data key.png-d3aaa65d15e04d8d24928d7be7bcc0f3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/data key.png"
dest_files=["res://.godot/imported/data key.png-d3aaa65d15e04d8d24928d7be7bcc0f3.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
external/destroy-icon.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

41
external/destroy-icon.png.import vendored Normal file
View File

@@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://u12dmhohea1g"
path.s3tc="res://.godot/imported/destroy-icon.png-9ceefbafae80256ab845a59897063ca8.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://external/destroy-icon.png"
dest_files=["res://.godot/imported/destroy-icon.png-9ceefbafae80256ab845a59897063ca8.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

BIN
external/empty key.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

40
external/empty key.png.import vendored Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cm8jpwerkad5s"
path="res://.godot/imported/empty key.png-1d3023da527407e91dac8797664c494a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/empty key.png"
dest_files=["res://.godot/imported/empty key.png-1d3023da527407e91dac8797664c494a.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
external/infect-icon.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

40
external/infect-icon.png.import vendored Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bbls00lwa4y5n"
path="res://.godot/imported/infect-icon.png-8db1aa042afba559f74a0df4c022ad79.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/infect-icon.png"
dest_files=["res://.godot/imported/infect-icon.png-8db1aa042afba559f74a0df4c022ad79.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
external/progress_fill.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 B

40
external/progress_fill.png.import vendored Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://g7k311jjr73e"
path="res://.godot/imported/progress_fill.png-0edd49454969b595fd5cd4e41197d4b2.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/progress_fill.png"
dest_files=["res://.godot/imported/progress_fill.png-0edd49454969b595fd5cd4e41197d4b2.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
external/progress_over.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 B

40
external/progress_over.png.import vendored Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cp188cfq4qeas"
path="res://.godot/imported/progress_over.png-123d5e181e53b8525430d778ea9358ff.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/progress_over.png"
dest_files=["res://.godot/imported/progress_over.png-123d5e181e53b8525430d778ea9358ff.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
external/purge-icon.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

40
external/purge-icon.png.import vendored Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://pdtmy6qryxb2"
path="res://.godot/imported/purge-icon.png-19a8010519a7938e0198b676b1cc9c83.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/purge-icon.png"
dest_files=["res://.godot/imported/purge-icon.png-19a8010519a7938e0198b676b1cc9c83.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
external/redirect-icon.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

40
external/redirect-icon.png.import vendored Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://duwob32i2ccsk"
path="res://.godot/imported/redirect-icon.png-fe9a5e1b9c27a2ed13e5cd77575b5b34.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/redirect-icon.png"
dest_files=["res://.godot/imported/redirect-icon.png-fe9a5e1b9c27a2ed13e5cd77575b5b34.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
external/sample audio/a.wav vendored Normal file

Binary file not shown.

24
external/sample audio/a.wav.import vendored Normal file
View File

@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://dhlg3pk3tbirp"
path="res://.godot/imported/a.wav-512eaf7f1be1e1dbb02db32d769d1e7c.sample"
[deps]
source_file="res://external/sample audio/a.wav"
dest_files=["res://.godot/imported/a.wav-512eaf7f1be1e1dbb02db32d769d1e7c.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2

BIN
external/sample audio/b.wav vendored Normal file

Binary file not shown.

24
external/sample audio/b.wav.import vendored Normal file
View File

@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://7dsv6kcptvar"
path="res://.godot/imported/b.wav-c59cd0574c9eda65844ca10622a04f6a.sample"
[deps]
source_file="res://external/sample audio/b.wav"
dest_files=["res://.godot/imported/b.wav-c59cd0574c9eda65844ca10622a04f6a.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2

BIN
external/sample audio/c.wav vendored Normal file

Binary file not shown.

24
external/sample audio/c.wav.import vendored Normal file
View File

@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://dr3jq3tnvtwu"
path="res://.godot/imported/c.wav-95e1dea73d2cd00bc271f8a5505d51d0.sample"
[deps]
source_file="res://external/sample audio/c.wav"
dest_files=["res://.godot/imported/c.wav-95e1dea73d2cd00bc271f8a5505d51d0.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2

BIN
external/sample audio/d.wav vendored Normal file

Binary file not shown.

24
external/sample audio/d.wav.import vendored Normal file
View File

@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://dsikjobcle18a"
path="res://.godot/imported/d.wav-85e5f5f34f2501a9d76f76f4be908185.sample"
[deps]
source_file="res://external/sample audio/d.wav"
dest_files=["res://.godot/imported/d.wav-85e5f5f34f2501a9d76f76f4be908185.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2

BIN
external/sample audio/e.wav vendored Normal file

Binary file not shown.

24
external/sample audio/e.wav.import vendored Normal file
View File

@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://dornjmfg37bv0"
path="res://.godot/imported/e.wav-33e3ff5e179b6933a12f0965dbee05eb.sample"
[deps]
source_file="res://external/sample audio/e.wav"
dest_files=["res://.godot/imported/e.wav-33e3ff5e179b6933a12f0965dbee05eb.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2

BIN
external/sample audio/f.wav vendored Normal file

Binary file not shown.

24
external/sample audio/f.wav.import vendored Normal file
View File

@@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://bqu2otr8b1oj6"
path="res://.godot/imported/f.wav-e8b08693b137a9f5e83ffd51a7709a8e.sample"
[deps]
source_file="res://external/sample audio/f.wav"
dest_files=["res://.godot/imported/f.wav-e8b08693b137a9f5e83ffd51a7709a8e.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2

BIN
external/test portraits/a.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

40
external/test portraits/a.png.import vendored Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://13pdg1vs81as"
path="res://.godot/imported/a.png-ebbbc7f6f20fea8e38d2eb9b9f504ae6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/test portraits/a.png"
dest_files=["res://.godot/imported/a.png-ebbbc7f6f20fea8e38d2eb9b9f504ae6.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
external/test portraits/b.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

40
external/test portraits/b.png.import vendored Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ca6iihdssrh14"
path="res://.godot/imported/b.png-c4aed0756051058e2c54ebf8a9768024.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/test portraits/b.png"
dest_files=["res://.godot/imported/b.png-c4aed0756051058e2c54ebf8a9768024.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
external/test portraits/c.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

40
external/test portraits/c.png.import vendored Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dm7fo7tt00p1"
path="res://.godot/imported/c.png-959ec224d08023f8cd903e843fd686a9.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/test portraits/c.png"
dest_files=["res://.godot/imported/c.png-959ec224d08023f8cd903e843fd686a9.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
external/test portraits/d.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 KiB

40
external/test portraits/d.png.import vendored Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b2ovogspuupqa"
path="res://.godot/imported/d.png-eab85833b41c1be7a701598ea9d65289.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/test portraits/d.png"
dest_files=["res://.godot/imported/d.png-eab85833b41c1be7a701598ea9d65289.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
external/test portraits/e.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

40
external/test portraits/e.png.import vendored Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b2rynijk10l8a"
path="res://.godot/imported/e.png-2e8cf58eaf7604a4ffa5b244bcce0759.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/test portraits/e.png"
dest_files=["res://.godot/imported/e.png-2e8cf58eaf7604a4ffa5b244bcce0759.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
external/test portraits/f.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

40
external/test portraits/f.png.import vendored Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c265jqwykqc2s"
path="res://.godot/imported/f.png-781e05d9cb8315bdfb553bff384fdaac.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/test portraits/f.png"
dest_files=["res://.godot/imported/f.png-781e05d9cb8315bdfb553bff384fdaac.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
external/title.clip vendored

Binary file not shown.

Binary file not shown.

BIN
external/trap selector.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

40
external/trap selector.png.import vendored Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dugybab2o58x2"
path="res://.godot/imported/trap selector.png-1a97026f833c205954f35aceaa8da4a4.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/trap selector.png"
dest_files=["res://.godot/imported/trap selector.png-1a97026f833c205954f35aceaa8da4a4.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
external/trigger-icon.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

40
external/trigger-icon.png.import vendored Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://xomk6sb0cnfy"
path="res://.godot/imported/trigger-icon.png-28f3bc3b679f225965e92f3adaf23e10.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/trigger-icon.png"
dest_files=["res://.godot/imported/trigger-icon.png-28f3bc3b679f225965e92f3adaf23e10.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@@ -1,4 +1,4 @@
[gd_resource type="MeshLibrary" load_steps=47 format=4 uid="uid://elmgvto6udwo"]
[gd_resource type="MeshLibrary" format=4 uid="uid://elmgvto6udwo"]
[ext_resource type="Texture2D" uid="uid://bfmitswemgn53" path="res://models/manufactory/grill_0.png" id="1_8jwmj"]
[ext_resource type="Texture2D" uid="uid://bvp5nsky547ah" path="res://models/manufactory/floor_0.png" id="2_vcvx8"]

View File

@@ -1,4 +1,4 @@
[gd_resource type="MeshLibrary" load_steps=38 format=4 uid="uid://bp5402nbrw3hx"]
[gd_resource type="MeshLibrary" format=4 uid="uid://bp5402nbrw3hx"]
[ext_resource type="Shader" uid="uid://dtq021j73hhht" path="res://visuals/shaders/maptile.gdshader" id="1_kn88x"]
[ext_resource type="Material" uid="uid://dljweksgxvqv6" path="res://visuals/materials/maptile.tres" id="1_to1cc"]

View File

@@ -1,4 +1,4 @@
[gd_resource type="MeshLibrary" load_steps=10 format=4 uid="uid://cc7im8ms2w2wb"]
[gd_resource type="MeshLibrary" format=4 uid="uid://cc7im8ms2w2wb"]
[ext_resource type="Material" uid="uid://dljweksgxvqv6" path="res://visuals/materials/maptile.tres" id="1_eh4cn"]

1
models/datablock.gltf Normal file
View File

@@ -0,0 +1 @@
{"asset":{"version":"2.0","generator":"Blockbench 5.0.7 glTF exporter"},"scenes":[{"nodes":[0],"name":"blockbench_export"}],"scene":0,"nodes":[{"rotation":[0.3535533905932738,0.3535533905932738,0.14644660940672624,0.8535533905932737],"name":"mesh","mesh":0}],"bufferViews":[{"buffer":0,"byteOffset":0,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":288,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":576,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":768,"byteLength":72,"target":34963}],"buffers":[{"byteLength":840,"uri":"data:application/octet-stream;base64,AAAAPwAAgD8AAAA/AAAAPwAAAAAAAAA/AAAAPwAAgD8AAAC/AAAAPwAAAAAAAAC/AAAAvwAAgD8AAAA/AAAAvwAAgD8AAAC/AAAAvwAAAAAAAAA/AAAAvwAAAAAAAAC/AAAAPwAAgD8AAAA/AAAAPwAAgD8AAAC/AAAAvwAAgD8AAAA/AAAAvwAAgD8AAAC/AAAAPwAAAAAAAAA/AAAAvwAAAAAAAAA/AAAAPwAAAAAAAAC/AAAAvwAAAAAAAAC/AAAAPwAAgD8AAAA/AAAAvwAAgD8AAAA/AAAAPwAAAAAAAAA/AAAAvwAAAAAAAAA/AAAAPwAAgD8AAAC/AAAAPwAAAAAAAAC/AAAAvwAAgD8AAAC/AAAAvwAAAAAAAAC/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAAAAAACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAAAAAACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAIA/AAAAAAAAgD8AAIA/AAAAAAAAAAAAAAAAAACAPwAAgD8AAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAIA/AAAAAAAAgD8AAIA/AgAAAAEAAgABAAMABgAEAAUABgAFAAcACgAIAAkACgAJAAsADgAMAA0ADgANAA8AEgAQABEAEgARABMAFgAUABUAFgAVABcA"}],"accessors":[{"bufferView":0,"componentType":5126,"count":24,"max":[0.5,1,0.5],"min":[-0.5,0,-0.5],"type":"VEC3"},{"bufferView":1,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":2,"componentType":5126,"count":24,"max":[1,1],"min":[0,0],"type":"VEC2"},{"bufferView":3,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"}],"materials":[{"pbrMetallicRoughness":{"metallicFactor":0,"roughnessFactor":1,"baseColorTexture":{"index":0}},"alphaMode":"MASK","alphaCutoff":0.05,"doubleSided":true}],"textures":[{"sampler":0,"source":0,"name":"texture"}],"samplers":[{"magFilter":9728,"minFilter":9728,"wrapS":33071,"wrapT":33071}],"images":[{"mimeType":"image/png","uri":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAgUlEQVR4AeyWsQ0AIQwDI8ZgDuZgWOZgDtb4lwu7/eYTGiOdIqXA5irac/m0uHxUYO8doPcemSAD8N0qwEX1VIE5Z4DsAsgAzFEBLqqnC9iADdiADdiADdiADdiADcjAWitA9rccGYA5KsBF9VSBMUaAc05kggzAh6oAF3/Pr/teAAAA//+XbCPxAAAABklEQVQDAKj338Fk9RQnAAAAAElFTkSuQmCC"}],"meshes":[{"primitives":[{"mode":4,"attributes":{"POSITION":0,"NORMAL":1,"TEXCOORD_0":2},"indices":3,"material":0}]}]}

View File

@@ -0,0 +1,42 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://d187i1jot4wmy"
path="res://.godot/imported/datablock.gltf-bd1206a04074a56813fd4c73675028f6.scn"
[deps]
source_file="res://models/datablock.gltf"
dest_files=["res://.godot/imported/datablock.gltf-bd1206a04074a56813fd4c73675028f6.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={}
gltf/naming_version=2
gltf/embedded_image_handling=1

BIN
models/datablock_0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

View File

@@ -0,0 +1,44 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b7s2n7xcvntpl"
path.s3tc="res://.godot/imported/datablock_0.png-be2ea7c3074a4bce475d2e7d6a4e74f6.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
generator_parameters={
"md5": "78f80e90042787b6f29cb279213d54f5"
}
[deps]
source_file="res://models/datablock_0.png"
dest_files=["res://.godot/imported/datablock_0.png-be2ea7c3074a4bce475d2e7d6a4e74f6.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

View File

@@ -7,6 +7,11 @@ resource_name = "texture_0"
transparency = 4
cull_mode = 2
shading_mode = 0
diffuse_mode = 3
specular_mode = 2
disable_ambient_light = true
disable_fog = true
disable_specular_occlusion = true
albedo_texture = ExtResource("1_anj20")
texture_filter = 0
texture_repeat = false

View File

@@ -8,11 +8,15 @@
config_version=5
[animation]
compatibility/default_parent_skeleton_in_mesh_instance_3d=true
[application]
config/name="Net Gunner"
run/main_scene="uid://dd40q2mv84pmc"
config/features=PackedStringArray("4.5", "Forward Plus")
config/features=PackedStringArray("4.6", "Forward Plus")
config/icon="res://visuals/images/icon.svg"
[autoload]
@@ -24,8 +28,8 @@ Multiplayer="*res://scripts/autos/multiplayer.gd"
window/size/viewport_width=1920
window/size/viewport_height=1080
window/size/initial_position_type=0
window/size/resizable=false
window/size/maximize_disabled=true
[dotnet]
@@ -45,8 +49,7 @@ combat="Combat valid targets."
ui_accept={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194309,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194310,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194310,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":true,"script":null)
]
@@ -55,56 +58,67 @@ ui_menu={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194370,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":6,"pressure":0.0,"pressed":true,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194309,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
north={
"deadzone": 0.2,
"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":-1.0,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null)
]
}
south={
"deadzone": 0.2,
"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":1.0,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null)
]
}
east={
"deadzone": 0.2,
"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":1.0,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null)
]
}
west={
"deadzone": 0.2,
"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":-1.0,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null)
]
}
"left cycle hack"={
"deadzone": 0.2,
"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":9,"pressure":0.0,"pressed":true,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":49,"key_label":0,"unicode":49,"location":0,"echo":false,"script":null)
]
}
"right cycle hack"={
"deadzone": 0.2,
"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":10,"pressure":0.0,"pressed":true,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":51,"key_label":0,"unicode":51,"location":0,"echo":false,"script":null)
]
}
detect={
"deadzone": 0.2,
"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":3,"pressure":0.0,"pressed":true,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
install={
"deadzone": 0.2,
"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":2,"pressure":0.0,"pressed":true,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
attack={
"deadzone": 0.2,
"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":1,"pressure":0.0,"pressed":true,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
detonate={
"deadzone": 0.2,
"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":true,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}

View File

@@ -1,73 +1,11 @@
[gd_scene load_steps=13 format=3 uid="uid://ck4x56txf676a"]
[gd_scene load_steps=6 format=3 uid="uid://ck4x56txf676a"]
[ext_resource type="Script" uid="uid://grs3nyom325o" path="res://scripts/character_select.gd" id="1_bow2h"]
[ext_resource type="PackedScene" uid="uid://46rpw0rrd51m" path="res://templates/pawn_display.tscn" id="2_5wdeo"]
[ext_resource type="Texture2D" uid="uid://dri0a20l6kpbj" path="res://visuals/images/icon.svg" id="2_uxcyu"]
[ext_resource type="AudioStream" uid="uid://vcatohtmt8bk" path="res://audio/old-music/16 - Character Select.mp3" id="3_bow2h"]
[ext_resource type="AudioStream" uid="uid://cwmfd8ov3lj1h" path="res://audio/sounds/menu select.wav" id="7_bqp8h"]
[ext_resource type="AudioStream" uid="uid://doelc8yt5snc2" path="res://audio/sounds/Keypad A.wav" id="8_5cdo8"]
[sub_resource type="Shader" id="Shader_fa52j"]
code = "shader_type canvas_item;
uniform sampler2D main_texture;
uniform float granularity : hint_range(5, 30) = 15.0;
uniform float opacity_limit;
float random (vec2 uv) {
return fract(sin(dot(uv.xy,
vec2(12.9898,78.233))) * 43758.5453123);
}
void vertex() {
// Called for every vertex the material is visible on.
}
void fragment() {
// Called for every pixel the material is visible on.
vec2 uv = UV;
float g = ( pow(granularity, 2));
uv = round((uv * g)) / g;
uv.y = TIME * uv.y + TIME * .05;
uv.x = 10.0 * TIME * uv.x + TIME * 1.0;
float val = random(uv);
float op = random(-uv) / val;
float alpha = 1.0;
if(op < opacity_limit){
alpha = 0.0;
}
vec4 color = vec4(val, val, val, alpha * COLOR.a);
COLOR = color;
}
//void light() {
// // Called for every pixel for every light affecting the CanvasItem.
// // Uncomment to replace the default light processing function with this one.
//}
"
[sub_resource type="ShaderMaterial" id="ShaderMaterial_5wdeo"]
shader = SubResource("Shader_fa52j")
shader_parameter/granularity = 10.0000002375
shader_parameter/opacity_limit = 0.86
[sub_resource type="Gradient" id="Gradient_ak2if"]
offsets = PackedFloat32Array(0)
colors = PackedColorArray(0, 0, 0, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_fa52j"]
gradient = SubResource("Gradient_ak2if")
width = 1
[sub_resource type="Gradient" id="Gradient_w1hxv"]
offsets = PackedFloat32Array(1)
colors = PackedColorArray(1, 1, 1, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_bqp8h"]
gradient = SubResource("Gradient_w1hxv")
width = 1
[node name="Control" type="Control" groups=["scenes"]]
layout_mode = 3
anchors_preset = 15
@@ -90,416 +28,109 @@ anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Control" type="Control" parent="Panel"]
[node name="PawnDisplays" type="Control" parent="Panel"]
unique_name_in_owner = true
anchors_preset = 0
offset_left = 94.0
offset_top = 98.0
offset_right = 134.0
offset_bottom = 138.0
[node name="P1PawnDisplay" parent="Panel/Control" instance=ExtResource("2_5wdeo")]
unique_name_in_owner = true
[node name="PawnDisplay" parent="Panel/PawnDisplays" instance=ExtResource("2_5wdeo")]
layout_mode = 0
offset_left = 0.0
offset_top = 0.0
offset_right = 700.0
offset_bottom = 700.0
offset_left = -29.0
offset_top = -65.0
offset_right = 471.0
offset_bottom = 435.0
[node name="P2PawnDisplay" parent="Panel/Control" instance=ExtResource("2_5wdeo")]
unique_name_in_owner = true
[node name="PawnDisplay2" parent="Panel/PawnDisplays" instance=ExtResource("2_5wdeo")]
layout_mode = 0
offset_left = 1032.0
offset_top = 0.0
offset_right = 1732.0
offset_bottom = 700.0
offset_left = 1258.0
offset_top = -65.0
offset_right = 1758.0
offset_bottom = 435.0
[node name="PawnName" parent="Panel/Control/P2PawnDisplay/Control" index="0"]
modulate = Color(0.78848296, 0, 0.22455063, 1)
[node name="PawnDisplay3" parent="Panel/PawnDisplays" instance=ExtResource("2_5wdeo")]
layout_mode = 0
offset_left = 36.0
offset_top = 451.0
offset_right = 536.0
offset_bottom = 951.0
[node name="Panel2" type="Panel" parent="."]
[node name="PawnDisplay4" parent="Panel/PawnDisplays" instance=ExtResource("2_5wdeo")]
layout_mode = 0
offset_left = 1192.0
offset_top = 456.0
offset_right = 1692.0
offset_bottom = 956.0
[node name="Panel2" type="Control" parent="."]
custom_minimum_size = Vector2(0, 250)
layout_mode = 1
anchors_preset = 12
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 0
anchors_preset = 0
offset_left = 727.0
offset_top = 98.0
offset_right = 877.0
offset_bottom = 348.0
[node name="HBoxContainer" type="HBoxContainer" parent="Panel2"]
[node name="PawnPickPortraits" type="GridContainer" parent="Panel2"]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -512.5
offset_top = -75.0
offset_right = 512.5
offset_bottom = 75.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/separation = 25
alignment = 1
[node name="Panel" type="Panel" parent="Panel2/HBoxContainer"]
custom_minimum_size = Vector2(150, 150)
layout_mode = 2
[node name="Portrait" type="TextureRect" parent="Panel2/HBoxContainer/Panel"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_uxcyu")
expand_mode = 1
[node name="Control" type="Control" parent="Panel2/HBoxContainer/Panel"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Static" type="TextureRect" parent="Panel2/HBoxContainer/Panel/Control"]
material = SubResource("ShaderMaterial_5wdeo")
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture1D_fa52j")
expand_mode = 1
[node name="Green Tint" type="TextureRect" parent="Panel2/HBoxContainer/Panel/Control"]
modulate = Color(0, 0.6039216, 0, 0.42745098)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture1D_bqp8h")
expand_mode = 1
[node name="NinePatchRect" type="NinePatchRect" parent="Panel2/HBoxContainer/Panel"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Panel2" type="Panel" parent="Panel2/HBoxContainer"]
custom_minimum_size = Vector2(150, 150)
layout_mode = 2
[node name="Portrait" type="TextureRect" parent="Panel2/HBoxContainer/Panel2"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_uxcyu")
expand_mode = 1
[node name="Control" type="Control" parent="Panel2/HBoxContainer/Panel2"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Static" type="TextureRect" parent="Panel2/HBoxContainer/Panel2/Control"]
material = SubResource("ShaderMaterial_5wdeo")
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture1D_fa52j")
expand_mode = 1
[node name="Green Tint" type="TextureRect" parent="Panel2/HBoxContainer/Panel2/Control"]
modulate = Color(0, 0.6039216, 0, 0.42745098)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture1D_bqp8h")
expand_mode = 1
[node name="NinePatchRect" type="NinePatchRect" parent="Panel2/HBoxContainer/Panel2"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Panel3" type="Panel" parent="Panel2/HBoxContainer"]
custom_minimum_size = Vector2(150, 150)
layout_mode = 2
[node name="Portrait" type="TextureRect" parent="Panel2/HBoxContainer/Panel3"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_uxcyu")
expand_mode = 1
[node name="Control" type="Control" parent="Panel2/HBoxContainer/Panel3"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Static" type="TextureRect" parent="Panel2/HBoxContainer/Panel3/Control"]
material = SubResource("ShaderMaterial_5wdeo")
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture1D_fa52j")
expand_mode = 1
[node name="Green Tint" type="TextureRect" parent="Panel2/HBoxContainer/Panel3/Control"]
modulate = Color(0, 0.6039216, 0, 0.42745098)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture1D_bqp8h")
expand_mode = 1
[node name="NinePatchRect" type="NinePatchRect" parent="Panel2/HBoxContainer/Panel3"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Panel4" type="Panel" parent="Panel2/HBoxContainer"]
custom_minimum_size = Vector2(150, 150)
layout_mode = 2
[node name="Portrait" type="TextureRect" parent="Panel2/HBoxContainer/Panel4"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_uxcyu")
expand_mode = 1
[node name="Control" type="Control" parent="Panel2/HBoxContainer/Panel4"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Static" type="TextureRect" parent="Panel2/HBoxContainer/Panel4/Control"]
material = SubResource("ShaderMaterial_5wdeo")
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture1D_fa52j")
expand_mode = 1
[node name="Green Tint" type="TextureRect" parent="Panel2/HBoxContainer/Panel4/Control"]
modulate = Color(0, 0.6039216, 0, 0.42745098)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture1D_bqp8h")
expand_mode = 1
[node name="NinePatchRect" type="NinePatchRect" parent="Panel2/HBoxContainer/Panel4"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Panel5" type="Panel" parent="Panel2/HBoxContainer"]
custom_minimum_size = Vector2(150, 150)
layout_mode = 2
[node name="Portrait" type="TextureRect" parent="Panel2/HBoxContainer/Panel5"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_uxcyu")
expand_mode = 1
[node name="Control" type="Control" parent="Panel2/HBoxContainer/Panel5"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Static" type="TextureRect" parent="Panel2/HBoxContainer/Panel5/Control"]
material = SubResource("ShaderMaterial_5wdeo")
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture1D_fa52j")
expand_mode = 1
[node name="Green Tint" type="TextureRect" parent="Panel2/HBoxContainer/Panel5/Control"]
modulate = Color(0, 0.6039216, 0, 0.42745098)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture1D_bqp8h")
expand_mode = 1
[node name="NinePatchRect" type="NinePatchRect" parent="Panel2/HBoxContainer/Panel5"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Panel6" type="Panel" parent="Panel2/HBoxContainer"]
custom_minimum_size = Vector2(150, 150)
layout_mode = 2
[node name="Portrait" type="TextureRect" parent="Panel2/HBoxContainer/Panel6"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_uxcyu")
expand_mode = 1
[node name="Control" type="Control" parent="Panel2/HBoxContainer/Panel6"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Static" type="TextureRect" parent="Panel2/HBoxContainer/Panel6/Control"]
material = SubResource("ShaderMaterial_5wdeo")
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture1D_fa52j")
expand_mode = 1
[node name="Green Tint" type="TextureRect" parent="Panel2/HBoxContainer/Panel6/Control"]
modulate = Color(0, 0.6039216, 0, 0.42745098)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture1D_bqp8h")
expand_mode = 1
[node name="NinePatchRect" type="NinePatchRect" parent="Panel2/HBoxContainer/Panel6"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -75.0
offset_top = -114.0
offset_right = 383.0
offset_bottom = 806.0
grow_horizontal = 2
grow_vertical = 2
columns = 3
[node name="SelectorStart" type="Control" parent="Panel2"]
unique_name_in_owner = true
anchors_preset = 0
offset_left = 438.0
offset_top = 40.0
offset_right = 478.0
offset_bottom = 80.0
offset_left = -9.0
offset_right = 31.0
offset_bottom = 40.0
[node name="Panel3" type="Panel" parent="."]
layout_mode = 1
anchors_preset = 10
anchor_right = 1.0
offset_bottom = 75.0
grow_horizontal = 2
[node name="Label" type="Label" parent="Panel3"]
[node name="Label" type="Label" parent="."]
layout_mode = 1
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -75.5
offset_top = -23.0
offset_right = 75.5
offset_left = -188.5
offset_top = -1060.0
offset_right = 188.5
offset_bottom = -1005.0
grow_horizontal = 2
grow_vertical = 0
theme_override_font_sizes/font_size = 40
text = "CHARACTER SELECT"
horizontal_alignment = 1
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
[node name="Music" type="AudioStreamPlayer" parent="."]
stream = ExtResource("3_bow2h")
volume_db = -5.0
autoplay = true
bus = &"Music"
[node name="SelectSound" type="AudioStreamPlayer" parent="."]
unique_name_in_owner = true
stream = ExtResource("7_bqp8h")
[node name="Announcer" type="AudioStreamPlayer" parent="."]
unique_name_in_owner = true
volume_db = 12.381
bus = &"Voice"
[node name="SwitchSound" type="AudioStreamPlayer" parent="."]
unique_name_in_owner = true
stream = ExtResource("8_5cdo8")
bus = &"SFX"
[connection signal="spawned" from="SelectorSpawner" to="." method="_on_selector_spawner_spawned"]
[connection signal="child_entered_tree" from="Panel2/SelectorStart" to="." method="_on_selector_start_child_entered_tree"]
[editable path="Panel/Control/P1PawnDisplay"]
[editable path="Panel/Control/P2PawnDisplay"]

View File

@@ -0,0 +1,139 @@
[gd_scene load_steps=6 format=3 uid="uid://ck4x56txf676a"]
[ext_resource type="Script" uid="uid://grs3nyom325o" path="res://scripts/character_select.gd" id="1_bow2h"]
[ext_resource type="PackedScene" uid="uid://46rpw0rrd51m" path="res://templates/pawn_display.tscn" id="2_5wdeo"]
[ext_resource type="AudioStream" uid="uid://vcatohtmt8bk" path="res://audio/old-music/16 - Character Select.mp3" id="3_bow2h"]
[ext_resource type="AudioStream" uid="uid://cwmfd8ov3lj1h" path="res://audio/sounds/menu select.wav" id="7_bqp8h"]
[ext_resource type="AudioStream" uid="uid://doelc8yt5snc2" path="res://audio/sounds/Keypad A.wav" id="8_5cdo8"]
[node name="Control" type="Control" groups=["scenes"]]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_bow2h")
[node name="SelectorSpawner" type="MultiplayerSpawner" parent="."]
unique_name_in_owner = true
_spawnable_scenes = PackedStringArray("uid://bvypswoe6diaq")
spawn_path = NodePath("../Panel2/SelectorStart")
[node name="Panel" type="Panel" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="PawnDisplays" type="Control" parent="Panel"]
unique_name_in_owner = true
anchors_preset = 0
offset_left = 94.0
offset_top = 98.0
offset_right = 134.0
offset_bottom = 138.0
[node name="PawnDisplay" parent="Panel/PawnDisplays" instance=ExtResource("2_5wdeo")]
layout_mode = 0
offset_left = -29.0
offset_top = -65.0
offset_right = 471.0
offset_bottom = 435.0
[node name="PawnDisplay2" parent="Panel/PawnDisplays" instance=ExtResource("2_5wdeo")]
layout_mode = 0
offset_left = 1258.0
offset_top = -65.0
offset_right = 1758.0
offset_bottom = 435.0
[node name="PawnDisplay3" parent="Panel/PawnDisplays" instance=ExtResource("2_5wdeo")]
visible = false
layout_mode = 0
offset_left = 36.0
offset_top = 451.0
offset_right = 536.0
offset_bottom = 951.0
[node name="PawnDisplay4" parent="Panel/PawnDisplays" instance=ExtResource("2_5wdeo")]
visible = false
layout_mode = 0
offset_left = 1192.0
offset_top = 456.0
offset_right = 1692.0
offset_bottom = 956.0
[node name="Panel2" type="Control" parent="."]
custom_minimum_size = Vector2(0, 250)
anchors_preset = 0
offset_left = 727.0
offset_top = 98.0
offset_right = 877.0
offset_bottom = 348.0
[node name="PawnPickPortraits" type="GridContainer" parent="Panel2"]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -75.0
offset_top = -114.0
offset_right = 383.0
offset_bottom = 806.0
grow_horizontal = 2
grow_vertical = 2
columns = 3
[node name="SelectorStart" type="Control" parent="Panel2"]
unique_name_in_owner = true
anchors_preset = 0
offset_left = 438.0
offset_top = 40.0
offset_right = 478.0
offset_bottom = 80.0
[node name="Label" type="Label" parent="."]
layout_mode = 1
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -188.5
offset_top = -1060.0
offset_right = 188.5
offset_bottom = -1005.0
grow_horizontal = 2
grow_vertical = 0
theme_override_font_sizes/font_size = 40
text = "CHARACTER SELECT"
horizontal_alignment = 1
[node name="Music" type="AudioStreamPlayer" parent="."]
stream = ExtResource("3_bow2h")
volume_db = -5.0
autoplay = true
bus = &"Music"
[node name="SelectSound" type="AudioStreamPlayer" parent="."]
unique_name_in_owner = true
stream = ExtResource("7_bqp8h")
[node name="Announcer" type="AudioStreamPlayer" parent="."]
unique_name_in_owner = true
volume_db = 12.381
bus = &"Voice"
[node name="SwitchSound" type="AudioStreamPlayer" parent="."]
unique_name_in_owner = true
stream = ExtResource("8_5cdo8")
bus = &"SFX"
[connection signal="spawned" from="SelectorSpawner" to="." method="_on_selector_spawner_spawned"]
[connection signal="child_entered_tree" from="Panel2/SelectorStart" to="." method="_on_selector_start_child_entered_tree"]

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=13 format=4 uid="uid://dewb10lmvj1yy"]
[gd_scene format=4 uid="uid://dewb10lmvj1yy"]
[ext_resource type="Script" uid="uid://d3t381vws7vns" path="res://scripts/level.gd" id="1_0a1dj"]
[ext_resource type="PackedScene" uid="uid://bgocskbofewsr" path="res://templates/HUD.tscn" id="2_uckv6"]
@@ -8,10 +8,19 @@
[ext_resource type="MeshLibrary" uid="uid://bp5402nbrw3hx" path="res://manufactory_minimap_mesh_library.tres" id="6_0a1dj"]
[ext_resource type="Texture2D" uid="uid://dri0a20l6kpbj" path="res://visuals/images/icon.svg" id="7_cttrw"]
[ext_resource type="AudioStream" uid="uid://cr0n18se6jnig" path="res://audio/music/Industrial Matts Fridge Intensity 2.wav" id="9_d3ajt"]
[ext_resource type="Script" uid="uid://b5npi1ys4lnf4" path="res://scripts/multiplayer_level_setup.gd" id="9_owm7e"]
[ext_resource type="PackedScene" uid="uid://dyvov4i48mqoi" path="res://templates/datablock_pickup.tscn" id="10_owm7e"]
[sub_resource type="Environment" id="Environment_x4b8f"]
background_energy_multiplier = 0.29
background_mode = 1
ambient_light_color = Color(1, 1, 1, 1)
reflected_light_source = 1
tonemap_white = 16.0
glow_enabled = true
fog_mode = 1
fog_light_color = Color(0.21401742, 0.23577034, 0.2696176, 1)
fog_light_energy = 0.0
fog_density = 1.0
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_d3ajt"]
resource_name = "material_0"
@@ -56,19 +65,20 @@ _surfaces = [{
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_tlwuy")
[node name="Manufactory Level" type="Node3D"]
[node name="Manufactory Level" type="Node3D" unique_id=2007761685]
process_mode = 4
script = ExtResource("1_0a1dj")
difficulty = 5
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="." unique_id=668430953]
transform = Transform3D(-0.8660254, -0.43301278, 0.25, 0, 0.49999997, 0.86602545, -0.50000006, 0.75, -0.43301266, 0, 0, 0)
light_energy = 0.3
shadow_enabled = true
[node name="CanvasLayer" type="CanvasLayer" parent="."]
[node name="CanvasLayer" type="CanvasLayer" parent="." unique_id=2044543056]
layer = 1000
[node name="HUD" parent="CanvasLayer" instance=ExtResource("2_uckv6")]
[node name="HUD" parent="CanvasLayer" unique_id=195816212 instance=ExtResource("2_uckv6")]
[node name="SubViewportContainer" parent="CanvasLayer/HUD/Control/PanelContainer/HBoxContainer/VBoxContainer3/PanelContainer3" index="0"]
stretch = true
@@ -81,7 +91,7 @@ transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, -4.5
keep_aspect = 1
size = 12.0
[node name="Floor" type="GridMap" parent="."]
[node name="Floor" type="GridMap" parent="." unique_id=215025120]
unique_name_in_owner = true
mesh_library = ExtResource("3_uckv6")
cell_size = Vector3(1, 1, 1)
@@ -92,7 +102,7 @@ data = {
}
metadata/_editor_floor_ = Vector3(0, 1, 0)
[node name="Ramps" type="GridMap" parent="."]
[node name="Ramps" type="GridMap" parent="." unique_id=244769383]
unique_name_in_owner = true
mesh_library = ExtResource("3_uckv6")
cell_size = Vector3(1, 1, 1)
@@ -103,7 +113,7 @@ data = {
}
metadata/_editor_floor_ = Vector3(0, 1, 0)
[node name="Walls" type="GridMap" parent="."]
[node name="Walls" type="GridMap" parent="." unique_id=1038720310]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.02, 0)
mesh_library = ExtResource("3_uckv6")
@@ -115,7 +125,7 @@ data = {
}
metadata/_editor_floor_ = Vector3(0, -1, 0)
[node name="Markers" type="GridMap" parent="."]
[node name="Markers" type="GridMap" parent="." unique_id=1606234936]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.02, 0)
mesh_library = ExtResource("4_owm7e")
@@ -125,39 +135,39 @@ collision_layer = 0
collision_mask = 0
metadata/_editor_floor_ = Vector3(0, -1, 0)
[node name="PawnSpawner" type="MultiplayerSpawner" parent="."]
[node name="PawnSpawner" type="MultiplayerSpawner" parent="." unique_id=333902362]
_spawnable_scenes = PackedStringArray("uid://c8xf3qawk5c6u")
spawn_path = NodePath("../Pawns")
[node name="SpawnPoint" type="Node3D" parent="PawnSpawner"]
[node name="SpawnPoint" type="Node3D" parent="PawnSpawner" unique_id=1185633012]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 1, -3.5)
[node name="SpawnPoint2" type="Node3D" parent="PawnSpawner"]
[node name="SpawnPoint2" type="Node3D" parent="PawnSpawner" unique_id=976477052]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.5, 1, 3.5)
[node name="HackSpawner" type="MultiplayerSpawner" parent="."]
[node name="HackSpawner" type="MultiplayerSpawner" parent="." unique_id=1999108404]
spawn_path = NodePath("../Hacks")
[node name="CameraSpawner" type="MultiplayerSpawner" parent="."]
[node name="CameraSpawner" type="MultiplayerSpawner" parent="." unique_id=807881233]
_spawnable_scenes = PackedStringArray("uid://cqa0p34mbk6so")
spawn_path = NodePath("../Cameras")
[node name="Pawns" type="Node3D" parent="."]
[node name="Pawns" type="Node3D" parent="." unique_id=2008074288]
unique_name_in_owner = true
[node name="Cameras" type="Node3D" parent="."]
[node name="Cameras" type="Node3D" parent="." unique_id=2035933542]
unique_name_in_owner = true
[node name="Hacks" type="Node3D" parent="."]
[node name="Hacks" type="Node3D" parent="." unique_id=723078195]
unique_name_in_owner = true
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1142068462]
environment = SubResource("Environment_x4b8f")
[node name="Minimap" type="Node3D" parent="."]
[node name="Minimap" type="Node3D" parent="." unique_id=1843183771]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4, 10000, 3)
[node name="Blackout" type="Sprite3D" parent="Minimap"]
[node name="Blackout" type="Sprite3D" parent="Minimap" unique_id=581657187]
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0, 0, 0)
layers = 524288
cast_shadow = 0
@@ -165,11 +175,11 @@ modulate = Color(0, 0, 0, 1)
pixel_size = 1.0
texture = ExtResource("7_cttrw")
[node name="MapMarkers" type="Node3D" parent="Minimap"]
[node name="MapMarkers" type="Node3D" parent="Minimap" unique_id=1291203398]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 100, 0)
[node name="Floor" type="GridMap" parent="Minimap"]
[node name="Floor" type="GridMap" parent="Minimap" unique_id=395813874]
mesh_library = ExtResource("6_0a1dj")
cell_size = Vector3(1, 1, 1)
cell_center_y = false
@@ -179,7 +189,7 @@ data = {
}
metadata/_editor_floor_ = Vector3(0, 1, 0)
[node name="Ramps" type="GridMap" parent="Minimap"]
[node name="Ramps" type="GridMap" parent="Minimap" unique_id=124018348]
mesh_library = ExtResource("6_0a1dj")
cell_size = Vector3(1, 1, 1)
cell_center_y = false
@@ -189,7 +199,7 @@ data = {
}
metadata/_editor_floor_ = Vector3(0, 1, 0)
[node name="Walls" type="GridMap" parent="Minimap"]
[node name="Walls" type="GridMap" parent="Minimap" unique_id=746652676]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.02, 0)
mesh_library = ExtResource("6_0a1dj")
cell_size = Vector3(1, 1, 1)
@@ -201,210 +211,241 @@ data = {
}
metadata/_editor_floor_ = Vector3(0, -1, 0)
[node name="SpotLight3D" type="SpotLight3D" parent="."]
[node name="SpotLight3D" type="SpotLight3D" parent="." unique_id=37271490]
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, -0.5129843, 6.6643066, -0.1329956)
light_specular = 0.0
spot_range = 5.378
spot_attenuation = -2.16
spot_angle = 36.82
[node name="SpotLight3D2" type="SpotLight3D" parent="."]
[node name="SpotLight3D2" type="SpotLight3D" parent="." unique_id=641072981]
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, -5.540702, 6.6643066, -0.1329956)
light_specular = 0.0
spot_range = 5.378
spot_attenuation = -2.16
spot_angle = 36.82
[node name="SpotLight3D3" type="SpotLight3D" parent="."]
[node name="SpotLight3D3" type="SpotLight3D" parent="." unique_id=1333976439]
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 4.6534586, 6.6643066, -0.1329956)
light_specular = 0.0
spot_range = 5.378
spot_attenuation = -2.16
spot_angle = 36.82
[node name="OmniLight3D" type="OmniLight3D" parent="."]
[node name="OmniLight3D" type="OmniLight3D" parent="." unique_id=1909988767]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.49440002, 3.0875854, -4.9137535)
light_color = Color(1, 0, 0, 1)
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D"]
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D" unique_id=133248821]
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, -0.08604097)
gi_mode = 0
mesh = SubResource("ArrayMesh_owm7e")
skeleton = NodePath("")
[node name="OmniLight3D2" type="OmniLight3D" parent="."]
[node name="OmniLight3D2" type="OmniLight3D" parent="." unique_id=304745731]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4944, 3.0875854, -4.9137535)
light_color = Color(1, 0, 0, 1)
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D2"]
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D2" unique_id=1808850215]
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, -0.08604097)
gi_mode = 0
mesh = SubResource("ArrayMesh_owm7e")
skeleton = NodePath("")
[node name="OmniLight3D3" type="OmniLight3D" parent="."]
[node name="OmniLight3D3" type="OmniLight3D" parent="." unique_id=355585582]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.4944, 3.0875854, -4.9137535)
light_color = Color(1, 0, 0, 1)
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D3"]
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D3" unique_id=1259074903]
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, -0.08604097)
gi_mode = 0
mesh = SubResource("ArrayMesh_owm7e")
skeleton = NodePath("")
[node name="OmniLight3D4" type="OmniLight3D" parent="."]
[node name="OmniLight3D4" type="OmniLight3D" parent="." unique_id=1972483358]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.4944, 3.0875854, -4.9137535)
light_color = Color(1, 0, 0, 1)
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D4"]
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D4" unique_id=2036928185]
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, -0.08604097)
gi_mode = 0
mesh = SubResource("ArrayMesh_owm7e")
skeleton = NodePath("")
[node name="OmniLight3D5" type="OmniLight3D" parent="."]
[node name="OmniLight3D5" type="OmniLight3D" parent="." unique_id=170185981]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.4944, 3.0875854, -4.9137535)
light_color = Color(1, 0, 0, 1)
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D5"]
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D5" unique_id=61235060]
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, -0.08604097)
gi_mode = 0
mesh = SubResource("ArrayMesh_owm7e")
skeleton = NodePath("")
[node name="OmniLight3D19" type="OmniLight3D" parent="."]
[node name="OmniLight3D19" type="OmniLight3D" parent="." unique_id=474389246]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5056, 3.0875854, -4.9137535)
light_color = Color(1, 0, 0, 1)
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D19"]
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D19" unique_id=1532900879]
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, -0.08604097)
gi_mode = 0
mesh = SubResource("ArrayMesh_owm7e")
skeleton = NodePath("")
[node name="OmniLight3D20" type="OmniLight3D" parent="."]
[node name="OmniLight3D20" type="OmniLight3D" parent="." unique_id=1972838124]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.5056, 3.0875854, -4.9137535)
light_color = Color(1, 0, 0, 1)
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D20"]
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D20" unique_id=1296342216]
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, -0.08604097)
gi_mode = 0
mesh = SubResource("ArrayMesh_owm7e")
skeleton = NodePath("")
[node name="OmniLight3D21" type="OmniLight3D" parent="."]
[node name="OmniLight3D21" type="OmniLight3D" parent="." unique_id=398513612]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.5056, 3.0875854, -4.9137535)
light_color = Color(1, 0, 0, 1)
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D21"]
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D21" unique_id=1944269155]
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, -0.08604097)
gi_mode = 0
mesh = SubResource("ArrayMesh_owm7e")
skeleton = NodePath("")
[node name="OmniLight3D22" type="OmniLight3D" parent="."]
[node name="OmniLight3D22" type="OmniLight3D" parent="." unique_id=1681365728]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5056, 3.0875854, -4.9137535)
light_color = Color(1, 0, 0, 1)
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D22"]
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D22" unique_id=786089361]
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, -0.08604097)
gi_mode = 0
mesh = SubResource("ArrayMesh_owm7e")
skeleton = NodePath("")
[node name="OmniLight3D6" type="OmniLight3D" parent="."]
[node name="OmniLight3D6" type="OmniLight3D" parent="." unique_id=547194387]
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, -0.49440002, 3.0875854, 4.911974)
light_color = Color(1, 0, 0, 1)
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D6"]
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D6" unique_id=512906346]
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, -0.08604097)
gi_mode = 0
mesh = SubResource("ArrayMesh_owm7e")
skeleton = NodePath("")
[node name="OmniLight3D7" type="OmniLight3D" parent="."]
[node name="OmniLight3D7" type="OmniLight3D" parent="." unique_id=1724106126]
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 1.5056, 3.0875854, 4.911974)
light_color = Color(1, 0, 0, 1)
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D7"]
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D7" unique_id=807673846]
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, -0.08604097)
gi_mode = 0
mesh = SubResource("ArrayMesh_owm7e")
skeleton = NodePath("")
[node name="OmniLight3D8" type="OmniLight3D" parent="."]
[node name="OmniLight3D8" type="OmniLight3D" parent="." unique_id=1611968657]
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 3.5056, 3.0875854, 4.9119744)
light_color = Color(1, 0, 0, 1)
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D8"]
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D8" unique_id=913875010]
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, -0.08604097)
gi_mode = 0
mesh = SubResource("ArrayMesh_owm7e")
skeleton = NodePath("")
[node name="OmniLight3D9" type="OmniLight3D" parent="."]
[node name="OmniLight3D9" type="OmniLight3D" parent="." unique_id=977714008]
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 5.5056, 3.0875854, 4.9119744)
light_color = Color(1, 0, 0, 1)
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D9"]
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D9" unique_id=884035157]
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, -0.08604097)
gi_mode = 0
mesh = SubResource("ArrayMesh_owm7e")
skeleton = NodePath("")
[node name="OmniLight3D10" type="OmniLight3D" parent="."]
[node name="OmniLight3D10" type="OmniLight3D" parent="." unique_id=1002271415]
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, 7.5056, 3.0875854, 4.9119744)
light_color = Color(1, 0, 0, 1)
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D10"]
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D10" unique_id=661572040]
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, -0.08604097)
gi_mode = 0
mesh = SubResource("ArrayMesh_owm7e")
skeleton = NodePath("")
[node name="OmniLight3D23" type="OmniLight3D" parent="."]
[node name="OmniLight3D23" type="OmniLight3D" parent="." unique_id=1509896259]
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, -2.4944, 3.0875854, 4.911974)
light_color = Color(1, 0, 0, 1)
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D23"]
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D23" unique_id=1676385448]
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, -0.08604097)
gi_mode = 0
mesh = SubResource("ArrayMesh_owm7e")
skeleton = NodePath("")
[node name="OmniLight3D24" type="OmniLight3D" parent="."]
[node name="OmniLight3D24" type="OmniLight3D" parent="." unique_id=262681409]
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, -4.4944, 3.0875854, 4.9119735)
light_color = Color(1, 0, 0, 1)
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D24"]
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D24" unique_id=1296577728]
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, -0.08604097)
gi_mode = 0
mesh = SubResource("ArrayMesh_owm7e")
skeleton = NodePath("")
[node name="OmniLight3D25" type="OmniLight3D" parent="."]
[node name="OmniLight3D25" type="OmniLight3D" parent="." unique_id=1284627134]
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, -6.4944, 3.0875854, 4.9119735)
light_color = Color(1, 0, 0, 1)
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D25"]
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D25" unique_id=2061842491]
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, -0.08604097)
gi_mode = 0
mesh = SubResource("ArrayMesh_owm7e")
skeleton = NodePath("")
[node name="OmniLight3D26" type="OmniLight3D" parent="."]
[node name="OmniLight3D26" type="OmniLight3D" parent="." unique_id=1280373119]
transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, -8.4944, 3.0875854, 4.9119735)
light_color = Color(1, 0, 0, 1)
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D26"]
[node name="cylinder" type="MeshInstance3D" parent="OmniLight3D26" unique_id=1622692363]
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, -0.08604097)
gi_mode = 0
mesh = SubResource("ArrayMesh_owm7e")
skeleton = NodePath("")
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer" parent="."]
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer" parent="." unique_id=482928380]
stream = ExtResource("9_d3ajt")
volume_db = -24.684
autoplay = true
[node name="MultiplayerLevelSetup" type="Node" parent="." unique_id=780891989]
unique_name_in_owner = true
script = ExtResource("9_owm7e")
[node name="Datablock Pickup" parent="." unique_id=1877046457 instance=ExtResource("10_owm7e")]
transform = Transform3D(0.99999994, 0, 0, 0, 0.9426415, -0.33380684, 0, 0.33380687, 0.94264144, 0.5, 1.790432, 0.5)
type = 3
[node name="Datablock Pickup2" parent="." unique_id=150000037 instance=ExtResource("10_owm7e")]
transform = Transform3D(0.99999994, 0, 0, 0, 0.9426415, -0.33380684, 0, 0.33380687, 0.94264144, 1.6036651, 1.790432, 0.5)
type = 3
[node name="Datablock Pickup3" parent="." unique_id=1762645391 instance=ExtResource("10_owm7e")]
transform = Transform3D(0.99999994, 0, 0, 0, 0.9426415, -0.33380684, 0, 0.33380687, 0.94264144, 1.6036651, 1.790432, 1.2620864)
type = 3
[node name="Datablock Pickup4" parent="." unique_id=1738016273 instance=ExtResource("10_owm7e")]
transform = Transform3D(0.99999994, 0, 0, 0, 0.9426415, -0.33380684, 0, 0.33380687, 0.94264144, 2.623424, 1.790432, 1.2620864)
type = 3
[node name="Datablock Pickup5" parent="." unique_id=1023893103 instance=ExtResource("10_owm7e")]
transform = Transform3D(0.99999994, 0, 0, 0, 0.9426415, -0.33380684, 0, 0.33380687, 0.94264144, 3.47398, 1.790432, 1.2620864)
type = 3
[node name="Datablock Pickup6" parent="." unique_id=1468142867 instance=ExtResource("10_owm7e")]
transform = Transform3D(0.99999994, 0, 0, 0, 0.9426415, -0.33380684, 0, 0.33380687, 0.94264144, 3.47398, 1.790432, -0.07430935)
type = 3
[connection signal="spawned" from="PawnSpawner" to="MultiplayerLevelSetup" method="_on_pawn_spawner_spawned"]
[connection signal="spawned" from="CameraSpawner" to="MultiplayerLevelSetup" method="_on_camera_spawner_spawned"]
[editable path="CanvasLayer/HUD"]

View File

@@ -1,13 +1,13 @@
[gd_scene load_steps=2 format=3 uid="uid://cjnws52vwfxvq"]
[gd_scene format=3 uid="uid://cjnws52vwfxvq"]
[ext_resource type="Script" uid="uid://dep7nr2nkdmga" path="res://scripts/multiplayer_setup.gd" id="1_lckj3"]
[node name="MultiplayerSetup" type="MultiplayerSpawner" groups=["level_spawner"]]
_spawnable_scenes = PackedStringArray("uid://ti65jukt8gvs", "uid://ck4x56txf676a", "uid://by6suwmds7xq2")
[node name="MultiplayerSetup" type="MultiplayerSpawner" unique_id=176078763 groups=["level_spawner"]]
_spawnable_scenes = PackedStringArray("uid://ti65jukt8gvs", "uid://ck4x56txf676a", "uid://dewb10lmvj1yy")
spawn_path = NodePath(".")
script = ExtResource("1_lckj3")
[node name="Setup" type="Control" parent="." groups=["scenes"]]
[node name="Setup" type="Control" parent="." unique_id=592991887 groups=["scenes"]]
unique_name_in_owner = true
layout_mode = 3
anchors_preset = 15
@@ -16,7 +16,7 @@ anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Panel" type="PanelContainer" parent="Setup"]
[node name="Panel" type="PanelContainer" parent="Setup" unique_id=774991646]
custom_minimum_size = Vector2(400, 400)
layout_mode = 1
anchors_preset = 8
@@ -31,74 +31,74 @@ offset_bottom = 200.0
grow_horizontal = 2
grow_vertical = 2
[node name="Menu" type="VBoxContainer" parent="Setup/Panel"]
[node name="Menu" type="VBoxContainer" parent="Setup/Panel" unique_id=709115404]
unique_name_in_owner = true
layout_mode = 2
[node name="HostButton" type="Button" parent="Setup/Panel/Menu"]
[node name="HostButton" type="Button" parent="Setup/Panel/Menu" unique_id=1601205077]
layout_mode = 2
text = "Host Match"
[node name="JoinButton" type="Button" parent="Setup/Panel/Menu"]
[node name="JoinButton" type="Button" parent="Setup/Panel/Menu" unique_id=1615627263]
layout_mode = 2
text = "Join Match"
[node name="BackButton" type="Button" parent="Setup/Panel/Menu"]
[node name="BackButton" type="Button" parent="Setup/Panel/Menu" unique_id=254059501]
layout_mode = 2
text = "Back"
[node name="Hosting" type="VBoxContainer" parent="Setup/Panel"]
[node name="Hosting" type="VBoxContainer" parent="Setup/Panel" unique_id=407107849]
unique_name_in_owner = true
visible = false
layout_mode = 2
alignment = 1
[node name="Label" type="Label" parent="Setup/Panel/Hosting"]
[node name="Label" type="Label" parent="Setup/Panel/Hosting" unique_id=2125301460]
layout_mode = 2
text = "HOSTING MATCH"
horizontal_alignment = 1
[node name="HBoxContainer" type="HBoxContainer" parent="Setup/Panel/Hosting"]
[node name="HBoxContainer" type="HBoxContainer" parent="Setup/Panel/Hosting" unique_id=928342038]
layout_mode = 2
[node name="Label" type="Label" parent="Setup/Panel/Hosting/HBoxContainer"]
[node name="Label" type="Label" parent="Setup/Panel/Hosting/HBoxContainer" unique_id=363040015]
layout_mode = 2
text = "Handle"
[node name="HostHandle" type="TextEdit" parent="Setup/Panel/Hosting/HBoxContainer"]
[node name="HostHandle" type="TextEdit" parent="Setup/Panel/Hosting/HBoxContainer" unique_id=2061861493]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
[node name="HostButton" type="Button" parent="Setup/Panel/Hosting"]
[node name="HostButton" type="Button" parent="Setup/Panel/Hosting" unique_id=1547594882]
layout_mode = 2
text = "HOST"
[node name="BackButton" type="Button" parent="Setup/Panel/Hosting"]
[node name="BackButton" type="Button" parent="Setup/Panel/Hosting" unique_id=1120824464]
layout_mode = 2
text = "Back"
[node name="Host Waiting" type="VBoxContainer" parent="Setup/Panel"]
[node name="Host Waiting" type="VBoxContainer" parent="Setup/Panel" unique_id=115149027]
unique_name_in_owner = true
visible = false
layout_mode = 2
alignment = 1
[node name="Label" type="Label" parent="Setup/Panel/Host Waiting"]
[node name="Label" type="Label" parent="Setup/Panel/Host Waiting" unique_id=1590472201]
layout_mode = 2
text = "WAITING FOR OPPONENT"
horizontal_alignment = 1
[node name="IPLabel" type="Label" parent="Setup/Panel/Host Waiting"]
[node name="RoomLabel" type="Label" parent="Setup/Panel/Host Waiting" unique_id=773514896]
unique_name_in_owner = true
layout_mode = 2
text = "WAITING FOR OPPONENT"
horizontal_alignment = 1
[node name="PanelContainer" type="PanelContainer" parent="Setup/Panel/Host Waiting"]
[node name="PanelContainer" type="PanelContainer" parent="Setup/Panel/Host Waiting" unique_id=40497166]
layout_mode = 2
[node name="ParticipantsText" type="RichTextLabel" parent="Setup/Panel/Host Waiting/PanelContainer"]
[node name="ParticipantsText" type="RichTextLabel" parent="Setup/Panel/Host Waiting/PanelContainer" unique_id=371399776]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 70)
layout_mode = 2
@@ -107,56 +107,56 @@ bbcode_enabled = true
text = "[b]*YOU (Host)[/b]
[color=\"FFFF00\"]*THEM (Opponent)[/color]"
[node name="StartButton" type="Button" parent="Setup/Panel/Host Waiting"]
[node name="StartButton" type="Button" parent="Setup/Panel/Host Waiting" unique_id=173398251]
unique_name_in_owner = true
layout_mode = 2
disabled = true
text = "START"
[node name="ExitButton" type="Button" parent="Setup/Panel/Host Waiting"]
[node name="ExitButton" type="Button" parent="Setup/Panel/Host Waiting" unique_id=1286983085]
layout_mode = 2
text = "EXIT"
[node name="Joining" type="VBoxContainer" parent="Setup/Panel"]
[node name="Joining" type="VBoxContainer" parent="Setup/Panel" unique_id=2020733221]
unique_name_in_owner = true
visible = false
layout_mode = 2
alignment = 1
[node name="Label" type="Label" parent="Setup/Panel/Joining"]
[node name="Label" type="Label" parent="Setup/Panel/Joining" unique_id=1436620775]
layout_mode = 2
text = "JOINING MATCH"
horizontal_alignment = 1
[node name="HBoxContainer" type="HBoxContainer" parent="Setup/Panel/Joining"]
[node name="HBoxContainer" type="HBoxContainer" parent="Setup/Panel/Joining" unique_id=104470221]
layout_mode = 2
[node name="Label" type="Label" parent="Setup/Panel/Joining/HBoxContainer"]
[node name="Label" type="Label" parent="Setup/Panel/Joining/HBoxContainer" unique_id=1027524355]
layout_mode = 2
text = "HANDLE"
[node name="JoinHandle" type="TextEdit" parent="Setup/Panel/Joining/HBoxContainer"]
[node name="JoinHandle" type="TextEdit" parent="Setup/Panel/Joining/HBoxContainer" unique_id=167793285]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
[node name="HBoxContainer2" type="HBoxContainer" parent="Setup/Panel/Joining"]
[node name="HBoxContainer2" type="HBoxContainer" parent="Setup/Panel/Joining" unique_id=1688744864]
layout_mode = 2
[node name="Label" type="Label" parent="Setup/Panel/Joining/HBoxContainer2"]
[node name="Label" type="Label" parent="Setup/Panel/Joining/HBoxContainer2" unique_id=110317980]
layout_mode = 2
text = "IP ADDRESS"
text = "ROOM NAME"
[node name="IPEdit" type="TextEdit" parent="Setup/Panel/Joining/HBoxContainer2"]
[node name="RoomEdit" type="TextEdit" parent="Setup/Panel/Joining/HBoxContainer2" unique_id=591919434]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
[node name="JoinButton" type="Button" parent="Setup/Panel/Joining"]
[node name="JoinButton" type="Button" parent="Setup/Panel/Joining" unique_id=1484301932]
layout_mode = 2
text = "JOIN"
[node name="BackButton" type="Button" parent="Setup/Panel/Joining"]
[node name="BackButton" type="Button" parent="Setup/Panel/Joining" unique_id=2128199766]
layout_mode = 2
text = "Back"

File diff suppressed because one or more lines are too long

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=30 format=3 uid="uid://dd40q2mv84pmc"]
[gd_scene format=3 uid="uid://dd40q2mv84pmc"]
[ext_resource type="Script" uid="uid://dhu2psbhh1rl8" path="res://scripts/title_screen.gd" id="1_e54dn"]
[ext_resource type="Shader" uid="uid://b2g6yddun2l6e" path="res://visuals/shaders/noise.gdshader" id="2_3yumr"]
@@ -9,7 +9,6 @@
[ext_resource type="Texture2D" uid="uid://c4r0yuw28xqrc" path="res://visuals/textures/explosive_noise.tres" id="5_p07av"]
[ext_resource type="Texture2D" uid="uid://cllmt3pn6veff" path="res://visuals/images/title backsplash.png" id="5_u26n3"]
[ext_resource type="AudioStream" uid="uid://cwmfd8ov3lj1h" path="res://audio/sounds/menu select.wav" id="6_3yumr"]
[ext_resource type="Texture2D" uid="uid://dkef04mo56lma" path="res://visuals/images/title glow.png" id="6_ib7db"]
[ext_resource type="AudioStream" uid="uid://doelc8yt5snc2" path="res://audio/sounds/Keypad A.wav" id="7_cs5ya"]
[ext_resource type="Texture2D" uid="uid://bjwelo48s6aoh" path="res://visuals/images/title frame.png" id="11_u26n3"]
[ext_resource type="Material" uid="uid://cysw8uwdmtv1v" path="res://visuals/materials/lowres-text.tres" id="12_ib7db"]
@@ -159,7 +158,7 @@ shader_parameter/chars = ExtResource("14_p07av")
shader_parameter/noise_tex = ExtResource("15_khjys")
shader_parameter/offset = 0.0
[node name="Control" type="Control" groups=["scenes"]]
[node name="Control" type="Control" unique_id=265897606 groups=["scenes"]]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
@@ -168,7 +167,7 @@ grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_e54dn")
[node name="TextureRect2" type="TextureRect" parent="."]
[node name="TextureRect2" type="TextureRect" parent="." unique_id=1172032881]
modulate = Color(1, 1, 1, 0.7921569)
layout_mode = 1
anchors_preset = 15
@@ -179,7 +178,7 @@ grow_vertical = 2
texture = SubResource("GradientTexture1D_ig5kc")
expand_mode = 1
[node name="TextureRect" type="TextureRect" parent="."]
[node name="TextureRect" type="TextureRect" parent="." unique_id=1201431075]
visible = false
material = SubResource("ShaderMaterial_tpml5")
layout_mode = 1
@@ -191,7 +190,7 @@ grow_vertical = 2
texture = SubResource("GradientTexture1D_ig5kc")
expand_mode = 1
[node name="TextureRect8" type="TextureRect" parent="."]
[node name="TextureRect8" type="TextureRect" parent="." unique_id=1614450056]
texture_repeat = 2
material = SubResource("ShaderMaterial_khjys")
layout_mode = 1
@@ -203,7 +202,7 @@ grow_vertical = 2
texture = SubResource("GradientTexture1D_ig5kc")
expand_mode = 1
[node name="TextureRect11" type="TextureRect" parent="."]
[node name="TextureRect11" type="TextureRect" parent="." unique_id=2101346114]
modulate = Color(1, 1, 1, 0.5568628)
layout_mode = 1
anchors_preset = 15
@@ -214,7 +213,7 @@ grow_vertical = 2
texture = SubResource("GradientTexture1D_ig5kc")
expand_mode = 1
[node name="TextureRect9" type="TextureRect" parent="."]
[node name="TextureRect9" type="TextureRect" parent="." unique_id=632192186]
texture_repeat = 2
material = SubResource("ShaderMaterial_174rq")
layout_mode = 1
@@ -226,7 +225,7 @@ grow_vertical = 2
texture = SubResource("GradientTexture1D_ig5kc")
expand_mode = 1
[node name="TextureRect12" type="TextureRect" parent="."]
[node name="TextureRect12" type="TextureRect" parent="." unique_id=438194328]
modulate = Color(1, 1, 1, 0.3254902)
layout_mode = 1
anchors_preset = 15
@@ -237,7 +236,7 @@ grow_vertical = 2
texture = SubResource("GradientTexture1D_ig5kc")
expand_mode = 1
[node name="TextureRect10" type="TextureRect" parent="."]
[node name="TextureRect10" type="TextureRect" parent="." unique_id=449471159]
modulate = Color(1, 1, 1, 0.09411765)
texture_repeat = 2
material = SubResource("ShaderMaterial_neciy")
@@ -250,7 +249,7 @@ grow_vertical = 2
texture = SubResource("GradientTexture1D_ig5kc")
expand_mode = 1
[node name="Target" type="TextureRect" parent="."]
[node name="Target" type="TextureRect" parent="." unique_id=475604841]
unique_name_in_owner = true
texture_filter = 4
material = SubResource("CanvasItemMaterial_ib7db")
@@ -262,7 +261,7 @@ offset_bottom = 1073.0
pivot_offset = Vector2(595, 585)
texture = ExtResource("4_tklts")
[node name="TextureRect5" type="TextureRect" parent="."]
[node name="TextureRect5" type="TextureRect" parent="." unique_id=2006408689]
modulate = Color(0.23392546, 0.23392546, 0.2339254, 0.59607846)
texture_filter = 2
texture_repeat = 2
@@ -274,27 +273,28 @@ offset_right = 1772.7963
offset_bottom = 1073.0
texture = ExtResource("5_u26n3")
[node name="TextureRect3" type="TextureRect" parent="."]
[node name="TextureRect3" type="TextureRect" parent="." unique_id=125033678]
modulate = Color(1, 1, 1, 0.45490196)
texture_filter = 4
material = SubResource("CanvasItemMaterial_frs5l")
layout_mode = 0
offset_left = -45.5
offset_top = -65.0
offset_right = 1745.7963
offset_bottom = 1073.0
texture = ExtResource("6_ib7db")
offset_left = -21.5
offset_top = -39.0
offset_right = 1769.7963
offset_bottom = 1099.0
texture = ExtResource("5_u26n3")
[node name="TextureRect7" type="TextureRect" parent="."]
[node name="TextureRect7" type="TextureRect" parent="." unique_id=1229830978]
texture_filter = 4
material = SubResource("ShaderMaterial_mynnq")
layout_mode = 0
offset_left = -41.5
offset_top = -65.0
offset_top = -55.0
offset_right = 1749.7963
offset_bottom = 1073.0
offset_bottom = 1083.0
texture = ExtResource("4_cs5ya")
[node name="Panel2" type="Panel" parent="."]
[node name="Panel2" type="Panel" parent="." unique_id=1206239125]
layout_mode = 1
anchors_preset = 7
anchor_left = 0.5
@@ -308,7 +308,7 @@ offset_bottom = -161.0
grow_horizontal = 2
grow_vertical = 0
[node name="START" type="Label" parent="Panel2"]
[node name="START" type="Label" parent="Panel2" unique_id=1550575617]
unique_name_in_owner = true
modulate = Color(0.08549138, 0.3231256, 1, 1)
material = ExtResource("12_ib7db")
@@ -323,7 +323,7 @@ text = "PUSH START"
horizontal_alignment = 1
vertical_alignment = 1
[node name="Menu" type="Control" parent="Panel2"]
[node name="Menu" type="Control" parent="Panel2" unique_id=680935649]
unique_name_in_owner = true
visible = false
layout_mode = 1
@@ -333,7 +333,7 @@ anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="STORY" type="Label" parent="Panel2/Menu"]
[node name="STORY" type="Label" parent="Panel2/Menu" unique_id=1196585733]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 15
@@ -346,7 +346,7 @@ text = "STORY"
horizontal_alignment = 1
vertical_alignment = 1
[node name="VS-COM" type="Label" parent="Panel2/Menu"]
[node name="VS-COM" type="Label" parent="Panel2/Menu" unique_id=1028441985]
unique_name_in_owner = true
visible = false
layout_mode = 1
@@ -360,7 +360,7 @@ text = "VS COM"
horizontal_alignment = 1
vertical_alignment = 1
[node name="VS-MAN" type="Label" parent="Panel2/Menu"]
[node name="VS-MAN" type="Label" parent="Panel2/Menu" unique_id=1335984538]
unique_name_in_owner = true
visible = false
layout_mode = 1
@@ -374,7 +374,7 @@ text = "VS MAN"
horizontal_alignment = 1
vertical_alignment = 1
[node name="RECORD" type="Label" parent="Panel2/Menu"]
[node name="RECORD" type="Label" parent="Panel2/Menu" unique_id=340029097]
unique_name_in_owner = true
visible = false
layout_mode = 1
@@ -388,7 +388,7 @@ text = "RECORD"
horizontal_alignment = 1
vertical_alignment = 1
[node name="OPTION" type="Label" parent="Panel2/Menu"]
[node name="OPTION" type="Label" parent="Panel2/Menu" unique_id=1676029015]
unique_name_in_owner = true
visible = false
layout_mode = 1
@@ -402,32 +402,35 @@ text = "OPTION"
horizontal_alignment = 1
vertical_alignment = 1
[node name="Panel" type="Panel" parent="."]
[node name="Panel" type="Panel" parent="." unique_id=1226787454]
visible = false
layout_mode = 0
offset_right = 1152.0
offset_bottom = 648.0
[node name="Music" type="AudioStreamPlayer" parent="."]
[node name="Music" type="AudioStreamPlayer" parent="." unique_id=388799665]
stream = ExtResource("4_mykxm")
volume_db = -18.606
autoplay = true
bus = &"Music"
[node name="SelectSound" type="AudioStreamPlayer" parent="."]
[node name="SelectSound" type="AudioStreamPlayer" parent="." unique_id=1709518072]
unique_name_in_owner = true
stream = ExtResource("6_3yumr")
bus = &"UI"
[node name="SwitchSound" type="AudioStreamPlayer" parent="."]
[node name="SwitchSound" type="AudioStreamPlayer" parent="." unique_id=1984971356]
unique_name_in_owner = true
stream = ExtResource("7_cs5ya")
bus = &"UI"
[node name="TextureRect6" type="TextureRect" parent="."]
[node name="TextureRect6" type="TextureRect" parent="." unique_id=2093753614]
layout_mode = 0
offset_right = 1920.0
offset_bottom = 1080.0
texture = ExtResource("11_u26n3")
[node name="Label2" type="Label" parent="."]
[node name="Label2" type="Label" parent="." unique_id=77667356]
modulate = Color(0, 1, 0, 1)
texture_repeat = 2
material = ExtResource("12_ib7db")
@@ -445,7 +448,7 @@ text = "TRAP & GUN ACTION"
clip_text = true
text_overrun_behavior = 1
[node name="TextureRect4" type="TextureRect" parent="."]
[node name="TextureRect4" type="TextureRect" parent="." unique_id=589176934]
visible = false
material = SubResource("ShaderMaterial_lrxh4")
layout_mode = 0

70
scenes/vrep_loading.tscn Normal file
View File

@@ -0,0 +1,70 @@
[gd_scene load_steps=3 format=3 uid="uid://dq5mtoakhfxx4"]
[ext_resource type="Texture2D" uid="uid://cp188cfq4qeas" path="res://external/progress_over.png" id="1_wa8kr"]
[ext_resource type="Texture2D" uid="uid://g7k311jjr73e" path="res://external/progress_fill.png" id="2_0fdvr"]
[node name="Node2D" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="ColorRect" type="ColorRect" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
color = Color(0, 0, 0, 1)
[node name="RichTextLabel" type="RichTextLabel" parent="."]
layout_mode = 0
offset_left = 160.0
offset_top = 413.0
offset_right = 1765.0
offset_bottom = 618.0
theme_override_font_sizes/normal_font_size = 150
bbcode_enabled = true
text = "LOADING V-REP . . ."
fit_content = true
scroll_active = false
[node name="TextureProgressBar" type="TextureProgressBar" parent="."]
texture_filter = 1
layout_mode = 0
offset_left = 133.0
offset_top = 894.0
offset_right = 1731.0
offset_bottom = 987.0
nine_patch_stretch = true
stretch_margin_left = 10
stretch_margin_top = 10
stretch_margin_right = 10
stretch_margin_bottom = 10
texture_over = ExtResource("1_wa8kr")
texture_progress = ExtResource("2_0fdvr")
[node name="RichTextLabel2" type="RichTextLabel" parent="."]
layout_mode = 1
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -309.0
offset_top = -260.0
offset_right = 309.0
offset_bottom = -205.0
grow_horizontal = 2
grow_vertical = 0
theme_override_font_sizes/normal_font_size = 40
bbcode_enabled = true
text = "[center]Simulating Virtual Environment[/center]
"
fit_content = true
scroll_active = false

View File

@@ -7,6 +7,16 @@ enum Modes{
VS_MAN
}
var pawns : Dictionary = {
"A" : load("res://data/pawns/a.tres"),
"B" : load("res://data/pawns/b.tres"),
"C" : load("res://data/pawns/c.tres"),
"D" : load("res://data/pawns/d.tres"),
"E" : load("res://data/pawns/e.tres"),
"F" : load("res://data/pawns/f.tres")
}
const blinder_template = preload("res://templates/blinder.tscn")
const one_shot_template = preload("res://templates/one_shot.tscn")
@@ -15,13 +25,14 @@ const vs_com_level = preload("res://scenes/test_level.tscn")
const vs_man_level = preload("res://scenes/manufactory.tscn")
const pawn_select_scene = preload("res://scenes/character_select.tscn")
var cmd_args : Dictionary = {}
var player : PawnController
var hud : HUD
var level : Level
var mode : Modes = Modes.STORY
var multiplayer_game : bool = false
var num_players : int = 1
var pawns_selected : Dictionary[int, PawnBaseData] = {}
var pawns_selected : Dictionary[int, StringName] = {}
var level_synced : Dictionary[int, bool] = {}
var net_test : bool #TODO: Remove later
@@ -30,16 +41,21 @@ func _ready() -> void:
for arg in OS.get_cmdline_args():
if arg.begins_with("--"):
var flag = arg.lstrip("--")
if flag.contains("="):
var key_val = flag.split("=")
args[key_val[0]]=key_val[1]
args[flag]=true
if args.has("net_test"):
net_test = true
if args.has("instance_id"):
get_tree().root.title = "Net Gunner (Instance: %s)" % args.instance_id
cmd_args = args
func setup_player(pc : PawnController) -> void:
var is_local = false
Game.level.pawns[pc.id] = pc
if pc.id == Multiplayer.id:
is_local = true
level.pawns[pc.id] = pc
if is_local:
player = pc
if hud:
@@ -49,10 +65,11 @@ func is_multiplayer() -> bool:
return multiplayer_game
func start_level(pawns : Dictionary[int, PawnBaseData]) -> void:
func start_level(pawn_dict : Dictionary[int, StringName]) -> void:
pawns_selected = pawn_dict
if !Multiplayer.is_host():
return
pawns_selected = pawns
for i in Multiplayer.players.values():
level_synced[i] = false
level_synced[1] = true
@@ -117,13 +134,12 @@ func level_spawned(peer_id : int) -> void:
level_synced[peer_id] = true
check_level_ready()
func check_level_ready() -> void:
var ready : bool = true
var level_ready : bool = true
for id in level_synced:
if level_synced[id] == false:
ready = false
if ready:
level_ready = false
if level_ready:
level.setup()
func oneshot(stream : AudioStream) -> void:

View File

@@ -5,6 +5,7 @@ const SERVER_PORT = 8080
const SERVER_IP = "127.0.0.1"
var handle : String
var id : int = 1
var room_id : String
var players : Dictionary = {}
signal client_added(handle : String, id : int)
signal all_ready()
@@ -32,13 +33,14 @@ func become_host() -> void:
server_peer.host_room(true, JSON.stringify(metadata))
print("Hosting Room...")
var room_id = await server_peer.room_connected
await server_peer.room_connected
print("Connected to room: ", server_peer.room_id)
server_peer.get_rooms()
Multiplayer.room_id = server_peer.room_id
#server_peer.get_rooms()
print("GETTING ROOMS!")
var rooms = await server_peer.rooms_received
#var rooms = await server_peer.rooms_received
print("GOT ROOMS!")
print(rooms)
#print(rooms)
players[handle] = 1
player_readiness[1] = false
@@ -81,26 +83,26 @@ func is_server() -> bool:
func is_host() -> bool:
return id == 1
func _process(delta: float) -> void:
func _process(_delta: float) -> void:
if waiting:
var ready : bool = true
var group_ready : bool = true
for pr in player_readiness.values():
if !pr:
ready = false
group_ready = false
break
if ready:
if group_ready:
all_ready.emit()
waiting = false
for pr in player_readiness.keys():
player_readiness[pr] = false
func _add_player_to_game(id : int) -> void:
print("Player %s joined the game!" % id)
func _add_player_to_game(pid : int) -> void:
print("Player %s joined the game!" % pid)
await get_tree().create_timer(0.5).timeout
get_handle_from_peer(id)
get_handle_from_peer(pid)
func _remove_player_from_game(id : int) -> void:
print("Player %s left the game!" % id)
func _remove_player_from_game(pid : int) -> void:
print("Player %s left the game!" % pid)
func get_handle_from_peer(peer_id) -> void:
rpc_id(peer_id, "report_handle_to_peer", id)

View File

@@ -1,13 +1,6 @@
extends Control
class_name CharacterSelect extends Control
const pawns : Array[PawnBaseData] = [
preload("res://data/pawns/van_reily.tres"),
preload("res://data/pawns/lou_riche.tres"),
preload("res://data/pawns/tico.tres"),
preload("res://data/pawns/john_bishous.tres"),
preload("res://data/pawns/abdoll_relin.tres"),
preload("res://data/pawns/tenrou_ugetsu.tres")
]
const p_colors : Array[Color] = [
Color.ROYAL_BLUE,
@@ -16,31 +9,53 @@ const p_colors : Array[Color] = [
const selector_template = preload("res://templates/pawn_selector.tscn")
@onready var pawn_displays : Array[PawnDisplay] = [
%P1PawnDisplay,
%P2PawnDisplay
]
const pawn_pick_portrait_template = preload("res://templates/pawn_pick_portrait.tscn")
var selector_wait : float = 0
var selected : int = -1
var selectors : Dictionary[int,PawnSelector] = {}
var displays : Dictionary[int, PawnDisplay] = {}
var portraits : Dictionary[Vector2i, PawnPickPortrait] = {}
var announce_tween : Tween = null
@onready var announcer : AudioStreamPlayer = %Announcer
@onready var selector_start : Control = %SelectorStart
@onready var switch_sound : AudioStreamPlayer = %SwitchSound
@onready var select_sound : AudioStreamPlayer = %SelectSound
@onready var portrait_grid : GridContainer = %PawnPickPortraits
@onready var pawn_displays : Control = %PawnDisplays
func _ready() -> void:
var i : int = 0
var idx : Vector2i = Vector2i.ZERO
for pawn in Game.pawns.values():
var pp : PawnPickPortrait = pawn_pick_portrait_template.instantiate()
portrait_grid.add_child(pp)
pp.setup(pawn, i)
portraits[idx] = pp
i+=1
idx.x += 1
if idx.x >= portrait_grid.columns:
idx.y += 1
idx.x -= portrait_grid.columns
Multiplayer.waiting = true
var plist
if Game.is_multiplayer():
plist = Multiplayer.players.values()
for i in range(Game.num_players):
displays[plist[i]] = pawn_displays[i]
change_display(plist[i], 0)
for id in range(Game.num_players):
var display : PawnDisplay = pawn_displays.get_child(id)
displays[plist[id]] = display
display.visible = true
portraits[Vector2i.ZERO].num_players += 1
change_display(plist[id], 0)
else:
displays[1] = pawn_displays[0]
displays[1] = pawn_displays.get_child(0)
displays[1].visible = true
change_display(1, 0)
portraits[Vector2i.ZERO].num_players += 1
Multiplayer.all_ready.connect(add_selector, CONNECT_ONE_SHOT)
Multiplayer.set_player_ready.rpc(Multiplayer.id)
#Set up each pawn on bottom
@@ -64,12 +79,12 @@ func _process(delta : float) -> void:
if !selectors.has(Multiplayer.id):
return
var locked = true
var pawns_selected : Dictionary[int, PawnBaseData] = {}
var pawns_selected : Dictionary[int, StringName] = {}
for selector : PawnSelector in selectors.values():
if !selector.selected:
locked = false
else:
pawns_selected[selector.player_id] = pawns[selector.selection]
pawns_selected[selector.player_id] = portraits[selector.selection].pawn.name
if locked:
Game.start_level(pawns_selected)
@@ -85,26 +100,34 @@ func _process(delta : float) -> void:
input_vector = Input.get_vector("west","east","north","south")
var move_dir : Vector2 = Vector2.ZERO
var move_dir : Vector2i = Vector2.ZERO
if input_vector.x < 0:
move_dir.x -= 1
if input_vector.x > 0:
move_dir.x += 1
if move_dir.x != 0:
move_selector.rpc(selector.player_id, wrapi(selector.selection + sign(move_dir.x),0, len(pawns)))
move_dir = Vector2i((input_vector + .499 * sign(input_vector)).round())
if move_dir.length_squared() != 0:
var selection : Vector2i = selector.selection + move_dir
selection.x = wrapi(selection.x, 0, portrait_grid.columns)
selection.y = wrapi(selection.y, 0, ceili(float(portrait_grid.get_child_count()) / portrait_grid.columns))
move_selector.rpc(selector.player_id, selection)
selector_wait = 0.25
@rpc("any_peer","call_local","reliable")
func move_selector(peer_id : int, selection : int) -> void:
func move_selector(peer_id : int, selection : Vector2i) -> void:
var selector : PawnSelector = selectors[peer_id]
portraits[selector.selection].num_players -= 1
selector.selection = selection
change_display(peer_id, selector.selection)
var v = Vector2(175 * selector.selection, 0)
selector.position = Vector2(175 * selector.selection, 0)
portraits[selector.selection].num_players += 1
change_display(peer_id, portraits[selector.selection].pawn_idx)
var v = Vector2(154 * selector.selection.x, 154 * selector.selection.y)
selector.position = v
switch_sound.play()
if announce_tween != null and announce_tween.is_running():
announce_tween.stop()
if announcer.playing:
announcer.stop()
announce_tween = create_tween()
announce_tween.tween_interval(.25)
announcer.stream = portraits[selection].pawn.name_audio
announce_tween.tween_callback(announcer.play)
@rpc("any_peer","call_local","reliable")
func lock_selector(peer_id : int) -> void:
@@ -115,9 +138,10 @@ func lock_selector(peer_id : int) -> void:
func change_display(player : int, selection: int) -> void:
var pd : PawnDisplay = displays[player]
pd.set_pawn_name(pawns[selection].name)
pd.set_portrait(pawns[selection].portrait)
pd.set_hacks(pawns[selection].starting_hacks)
var pawn : PawnBaseData = Game.pawns.values()[selection]
pd.set_pawn_name(pawn.name)
pd.set_portrait(pawn.portrait)
pd.set_hacks(pawn.starting_hacks)
func _on_selector_start_child_entered_tree(node: Node) -> void:

17
scripts/collectable.gd Normal file
View File

@@ -0,0 +1,17 @@
class_name Pickup extends Area3D
enum Type{
DATABLOCK,
INTEGRITY,
SCAN,
BASIC_HACK,
ADVANCED_HACK
}
@export var type : Type
func _on_body_entered(body: Node3D) -> void:
if body is PawnController:
body.pickup(type)
queue_free()

View File

@@ -0,0 +1 @@
uid://du3s0b1kotb6l

View File

@@ -10,7 +10,7 @@ func _on_melee_range_changed(melee : bool) -> void:
range_attack_button.visible = !melee
melee_attack_button.visible = melee
func _process(delta: float) -> void:
func _process(_delta: float) -> void:
hack_button.set_pressed_no_signal(Input.is_action_pressed("install"))
detect_button.set_pressed_no_signal(Input.is_action_pressed("detect"))
switch_button.set_pressed_no_signal(Input.is_action_pressed("detonate"))

View File

@@ -47,7 +47,7 @@ var decompiling : bool
var failed : bool
var difficulty : int = 1
func _process(delta: float) -> void:
func _process(_delta: float) -> void:
timer_label.text = "%02f.3" % timer.time_left
func start_decompiling() -> void:
@@ -109,5 +109,5 @@ func succeed() -> void:
func _on_hack_failed() -> void:
fail()
func _on_hack_removed(type : Hack.Type) -> void:
func _on_hack_removed(_type : Hack.Type) -> void:
Game.player.close_modal()

View File

@@ -22,25 +22,25 @@ func _on_timeout() -> void:
func spread() -> void:
var new_squares : Dictionary[Vector3i, bool] = {}
for square in last_spread:
for sq in last_spread:
for i in range(-1, 2):
for j in range(-1, 2):
for k in range(-1, 2):
var ts = square + Vector3i(i, j, k)
new_squares[square + Vector3i(i, j, k)] = true
#var ts = sq + Vector3i(i, j, k)
new_squares[sq + Vector3i(i, j, k)] = true
last_spread = []
for square in new_squares.keys():
if squares.has(square):
for sq in new_squares.keys():
if squares.has(sq):
continue
var floor_square = square + Vector3i(0,-1,0)
var floor_square = sq + Vector3i(0,-1,0)
if(Game.level.floor_layer.get_cell_item(floor_square) == GridMap.INVALID_CELL_ITEM
and Game.level.ramp_layer.get_cell_item(floor_square) == GridMap.INVALID_CELL_ITEM):
continue
last_spread.append(square)
squares[square] = true
emit_gas(square)
last_spread.append(sq)
squares[sq] = true
emit_gas(sq)
func emit_gas(square) -> void:
func emit_gas(sq) -> void:
var gas = gas_square_template.instantiate()
gas.setup(hack_owner, damage)
Game.level.add_vfx(gas, square)
Game.level.add_vfx(gas, sq)

View File

@@ -16,9 +16,9 @@ func _physics_process(delta: float) -> void:
if time_remaining <= 0:
queue_free()
func setup(owner, damage) -> void:
self.hack_owner = hack_owner
self.damage = damage
func setup(h_owner, dam) -> void:
hack_owner = h_owner
damage = dam
time_remaining = 2.0
func _on_body_entered(body: Node3D) -> void:

View File

@@ -1,40 +1,40 @@
class_name Hack extends Area3D
enum Type{
BOMB,
MINE,
GAS,
FORCE_PANEL,
SWITCH,
PITFALL
DESTROY,
PURGE,
INFECT,
REDIRECT,
TRIGGER,
CONTAIN
}
const range_shapes : Dictionary = {
Hack.Type.BOMB : Vector3(4.25,3,4.25),
Hack.Type.GAS : Vector3(1,1,1),
Hack.Type.PITFALL : Vector3(1,1,1),
Hack.Type.FORCE_PANEL : Vector3(1,1,1),
Hack.Type.SWITCH : Vector3(3,1,3),
Hack.Type.MINE : Vector3(4.25,3,4.25),
const range_radius : Dictionary = {
Hack.Type.DESTROY : 2,
Hack.Type.INFECT : .5,
Hack.Type.CONTAIN : .5,
Hack.Type.REDIRECT : .5,
Hack.Type.TRIGGER : 1,
Hack.Type.PURGE : 1.5,
}
const hack_icons : Dictionary = {
Hack.Type.BOMB : preload("res://visuals/images/icons/t-bomb.png"),
Hack.Type.GAS : preload("res://visuals/images/icons/t-gas.png"),
Hack.Type.PITFALL : preload("res://visuals/images/icons/t-pitfall.png"),
Hack.Type.FORCE_PANEL : preload("res://visuals/images/icons/t-force_panel.png"),
Hack.Type.SWITCH : preload("res://visuals/images/icons/t-switch.png"),
Hack.Type.MINE : preload("res://visuals/images/icons/t-mine.png"),
Hack.Type.DESTROY : preload("res://external/destroy-icon.png"),
Hack.Type.INFECT : preload("res://external/infect-icon.png"),
Hack.Type.CONTAIN : preload("res://external/contain-icon.png"),
Hack.Type.REDIRECT : preload("res://external/redirect-icon.png"),
Hack.Type.TRIGGER : preload("res://external/trigger-icon.png"),
Hack.Type.PURGE : preload("res://external/purge-icon.png"),
}
const bomb_explosion_template = preload("res://templates/explosion.tscn")
const mine_explosion_template = preload("res://templates/explosion.tscn")
const pitfall_template = preload("res://templates/pitfall.tscn")
const switch_explosion_template = preload("res://templates/explosion.tscn")
const gas_emitter_template = preload("res://templates/gas_emitter.tscn")
const destroy_explosion_template = preload("res://experimental/BinbunVFX/impact_explosions/effects/explosion/vfx_explosion_01.tscn")
const purge_explosion_template = preload("res://experimental/BinbunVFX/impact_explosions/effects/explosion/vfx_explosion_03.tscn")
const contain_template = preload("res://templates/pitfall.tscn")
const trigger_explosion_template = preload("res://experimental/BinbunVFX/impact_explosions/effects/explosion/vfx_explosion_04.tscn")
const infect_emitter_template = preload("res://templates/gas_emitter.tscn")
const force_activate_sound = preload("res://audio/sounds/TomWinandySFX_UI_ScifiTech_Start_06.wav")
@onready var range_area : Area3D = %RangeArea
@onready var range_shape : BoxShape3D = %RangeShape.shape
@onready var range_shape : SphereShape3D = %RangeShape.shape
@onready var model : MeshInstance3D = %Model
@onready var icon : Sprite3D = %Icon
@onready var force_strip : Sprite3D = %ForceStrip
@@ -69,13 +69,13 @@ func _enter_tree() -> void:
func _exit_tree() -> void:
Game.level.remove_map_marker(self)
func setup(type : Type, direction : Vector3, hack_owner : int) -> void:
self.type = type
self.hack_owner = hack_owner
if type == Type.FORCE_PANEL:
var r : float = atan2(direction.z, direction.x)
func setup(new_type : Type, dir : Vector3, h_owner : int) -> void:
type = new_type
hack_owner = h_owner
if type == Type.REDIRECT:
var r : float = atan2(dir.z, dir.x)
var cardinal : float = roundi(r * 2 / PI) * PI / 2
self.direction = Vector3(cos(cardinal), 0, sin(cardinal))
direction = Vector3(cos(cardinal), 0, sin(cardinal))
func remove() -> void:
removed.emit(type)
@@ -108,27 +108,26 @@ func _on_reveal_timeout() -> void:
func _ready() -> void:
var owns_hack = hack_owner == Multiplayer.id
print("Setup Hack " + name)
material.set_shader_parameter("glow_color", Color.YELLOW if owns_hack else Color.RED)
icon.texture = hack_icons[type]
model.visible = owns_hack
icon.visible = owns_hack
range_shape.size = range_shapes[type]
range_shape.radius = range_radius[type]
match(type):
Type.BOMB:
Type.DESTROY:
damage = 15
Type.MINE:
Type.PURGE:
damage = 10
Type.SWITCH:
Type.TRIGGER:
damage = 5
Type.GAS:
Type.INFECT:
activation_timer.start()
Type.FORCE_PANEL:
Type.REDIRECT:
var r : float = atan2(direction.z, -direction.x) + PI/2
force_strip.rotate_y(r)
force_strip.visible = owns_hack
func _process(delta: float) -> void:
func _process(_delta: float) -> void:
just_revealed = false
func blast(body : PawnController) -> void:
@@ -140,29 +139,32 @@ func activate() -> void:
return
var explode : bool = false
match(type):
Type.PITFALL:
generate_pitfall(square)
Type.CONTAIN:
generate_contain(square)
for body in get_overlapping_bodies():
body.start_pitfall(square, 6.0)
#Generate the circle here
Type.FORCE_PANEL:
Type.REDIRECT:
Game.oneshot(force_activate_sound)
for body in get_overlapping_bodies():
body.fling(direction, 5.0)
Type.MINE:
var exp = mine_explosion_template.instantiate()
Game.level.add_vfx(exp, square)
Type.PURGE:
var expl = purge_explosion_template.instantiate()
expl.one_shot = true
Game.level.add_vfx(expl, square)
explode = true
Type.SWITCH:
var exp = switch_explosion_template.instantiate()
Game.level.add_vfx(exp, square)
Type.TRIGGER:
var expl = trigger_explosion_template.instantiate()
Game.level.add_vfx(expl, square)
explode = true
Type.BOMB:
var exp = bomb_explosion_template.instantiate()
Game.level.add_vfx(exp, square)
Type.DESTROY:
var expl = destroy_explosion_template.instantiate()
expl.one_shot = true
Game.level.add_vfx(expl, square)
explode = true
Type.GAS:
var emitter = gas_emitter_template.instantiate()
Type.INFECT:
var emitter = infect_emitter_template.instantiate()
emitter.hack_owner = hack_owner
emitter.square = square
emitter.damage = 4
@@ -179,13 +181,13 @@ func activate() -> void:
func trigger_adjacent_bombs() -> void:
for hack : Hack in range_area.get_overlapping_areas():
if hack.type == Type.BOMB and hack != self:
if hack.type == Type.DESTROY and hack != self:
hack.delay_trigger()
func generate_pitfall(suqare : Vector3i) -> void:
var pitfall = pitfall_template.instantiate()
pitfall.duration = 6.0
Game.level.add_vfx(pitfall, square)
func generate_contain(sq : Vector3i) -> void:
var contain = contain_template.instantiate()
contain.duration = 6.0
Game.level.add_vfx(contain, sq)
func blast_players() -> void:
for body in range_area.get_overlapping_bodies():
@@ -200,14 +202,14 @@ func delay_trigger() -> void:
func _on_body_entered(body: Node3D) -> void:
if type == Type.GAS or type == Type.BOMB:
if type == Type.TRIGGER or type == Type.INFECT or type == Type.DESTROY:
return
if body.id == hack_owner:
return
if !decompiling or body.id != decompile_id:
if !body.detecting:
if !body.is_detecting():
activate()

View File

@@ -22,7 +22,7 @@ func _on_hack_quantity_changed(hack_index, qty) -> void:
hicon.set_quantity(qty)
func _on_hack_cycled(hack_index) -> void:
hack_container.position.x = -hack_index * 150
hack_container.position.x = -hack_index * 162
%LeftArrow.visible = (hack_index != 0)
%RightArrow.visible = (hack_index != hack_container.get_children().size() - 1)
cycle_sound.play()

View File

@@ -17,8 +17,8 @@ func proximal_shake(distance : float) -> void:
var d = global_position.distance_squared_to(Game.player.global_position)
var d_sq = distance * distance
if d <= d_sq:
var str : float = (d_sq - d) / d_sq
var l_val : float = lerp(0.0, 1.0, str)
Input.start_joy_vibration(0, l_val,l_val,lerp(0.5, 1.0, str))
var strength : float = (d_sq - d) / d_sq
var l_val : float = lerp(0.0, 1.0, strength)
Input.start_joy_vibration(0, l_val,l_val,lerp(0.5, 1.0, strength))
Game.player.camera.add_trauma(l_val)

View File

@@ -1,12 +1,12 @@
class_name HackIcon extends Control
const hack_icons : Dictionary = {
Hack.Type.BOMB : preload("res://visuals/images/icons/bomb.png"),
Hack.Type.GAS : preload("res://visuals/images/icons/gas.png"),
Hack.Type.PITFALL : preload("res://visuals/images/icons/pitfall.png"),
Hack.Type.FORCE_PANEL : preload("res://visuals/images/icons/force_panel.png"),
Hack.Type.SWITCH : preload("res://visuals/images/icons/switch.png"),
Hack.Type.MINE : preload("res://visuals/images/icons/mine.png"),
Hack.Type.DESTROY : preload("res://external/destroy-icon.png"),
Hack.Type.INFECT : preload("res://external/infect-icon.png"),
Hack.Type.CONTAIN : preload("res://external/contain-icon.png"),
Hack.Type.REDIRECT : preload("res://external/redirect-icon.png"),
Hack.Type.TRIGGER : preload("res://external/trigger-icon.png"),
Hack.Type.PURGE : preload("res://external/purge-icon.png"),
}
@onready var icon_image : TextureRect = %Icon

View File

@@ -8,11 +8,11 @@ func _ready() -> void:
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
func _process(_delta: float) -> void:
pass
func _on_health_changed(current : int, max : int) -> void:
max_value = max
func _on_health_changed(current : int, max_amt : int) -> void:
max_value = max_amt
value = current
func _on_poison_status_changed(poisoned : bool) -> void:

View File

@@ -25,6 +25,6 @@ func set_ammo(ammo : int) -> void:
ammo_label.text = str(ammo)
ammo_label.modulate = Color.DIM_GRAY if ammo == 0 else Color.WHITE
func _on_ammo_changed(current : int, max : int) -> void:
func _on_ammo_changed(current : int, _max_amt : int) -> void:
set_ammo(current)

View File

@@ -24,7 +24,7 @@ const camera_offset = Vector3(0, 10, 5.25)
@onready var cameras_node : Node3D = %Cameras
@onready var map_markers_node : Node3D = %MapMarkers
@onready var spawn_points : Array[Node] = $PawnSpawner.get_children()
@onready var multiplayer_level_setup : MultiplayerLevelSetup = %MultiplayerLevelSetup
@export var difficulty : int = 1
@@ -34,41 +34,80 @@ var cameras : Dictionary[int, PawnCamera] = {}
var map_markers : Dictionary[Object, MapMarker] = {}
func _ready() -> void:
process_mode=Node.PROCESS_MODE_DISABLED
Game.level = self
if Game.mode == Game.Modes.STORY:
setup()
add_level_hack.call_deferred(Hack.Type.MINE, Vector3.ZERO, Vector3i(-2,2,0))
#add_level_hack.call_deferred(Hack.Type.PURGE, Vector3.ZERO, Vector3i(-2,2,0))
func setup() -> void:
if Multiplayer.is_host():
spawn_players()
@rpc("authority")
func spawn_players() -> void:
if Game.is_multiplayer():
spawn_players_multiplayer()
else:
spawn_players_singleplayer()
func spawn_players_singleplayer() -> void:
var pc : PawnController = pawn_controller.instantiate()
pawns[1] = pc
pawns_node.add_child(pc,true)
var pos : Vector3
if(spawn_points == null
or len(spawn_points) <= 1):
pos = Vector3(0,0,0)
else:
pos = spawn_points[0].global_position
pc.global_position = pos
pc.setup(1, Game.pawns_selected[1])
add_pawn_camera(pc)
cameras[1].register_pawn(1)
process_mode=Node.PROCESS_MODE_INHERIT
func spawn_players_multiplayer() -> void:
var count = 0
multiplayer_level_setup.set_players_unready(Multiplayer.players.values())
multiplayer_level_setup.set_pawns_expected.rpc(Game.pawns_selected.size())
for key in Game.pawns_selected:
var pc : PawnController = pawn_controller.instantiate()
var pd = Game.pawns_selected[key]
pawns[key] = pc
pawns_node.add_child(pc,true)
var hacks : Array = []
for hack : HackSet in pd.starting_hacks:
var dict = {
"type":hack.type,
"qty":hack.qty
}
hacks.append(dict)
var position : Vector3
await multiplayer_level_setup.all_players_ready
for key in pawns:
var pc = pawns[key]
var pos : Vector3
if(spawn_points == null
or len(spawn_points) <= count):
if key == Multiplayer.id:
position = Vector3(0,0,0)
pos = Vector3(0,0,0)
else:
position = Vector3(3,0,0)
pos = Vector3(3,0,0)
else:
position = spawn_points[count].global_position
pc.setup.rpc(key,hacks,position)
add_pawn_camera(pc)
pos = spawn_points[count].global_position
count += 1
pc.global_position = pos
pc.setup.rpc(key, Game.pawns_selected[key])
multiplayer_level_setup.set_players_unready(Multiplayer.players.values())
multiplayer_level_setup.set_cameras_expected.rpc(Game.pawns_selected.size())
for pc in pawns.values():
add_pawn_camera(pc)
await multiplayer_level_setup.all_players_ready
setup_cameras()
start_level.rpc()
@rpc("authority", "call_local")
func start_level() -> void:
process_mode=Node.PROCESS_MODE_INHERIT
func is_square_detected(crd) -> bool:
@@ -88,16 +127,22 @@ func detect_square(crd : Vector3i, mark : bool) -> bool:
hack.reveal()
return true
@rpc("any_peer", "call_local", "reliable")
func add_pawn_camera(pawn : PawnController) -> void:
if Multiplayer.is_host():
var camera : PawnCamera = camera_template.instantiate()
camera.position = pawn.global_position + camera_offset
cameras_node.add_child(camera,true)
camera.register_pawn.rpc(pawn.id)
cameras[pawn.id] = camera
func setup_cameras() -> void:
var camera_list = cameras_node.get_children()
var idx = 0
for pawn_id in pawns:
camera_list[idx].register_pawn.rpc(pawn_id)
cameras[pawn_id] = camera_list[idx]
idx += 1
func add_hack(hack : Hack, crd : Vector3i) -> void:
hack.square = crd
hacks[crd] = hack
@@ -153,7 +198,7 @@ func remove_map_marker(target) -> void:
func add_map_marker(target) -> void:
var marker : MapMarker
var height : float
var height : float = 0
if target is PawnController:
marker = map_marker_templates.pawn.instantiate()
height += 40

View File

@@ -2,17 +2,17 @@ class_name MapMarker extends Node3D
var target : Node3D
func register_target(target : Node3D) -> void:
self.target = target
func register_target(new_target : Node3D) -> void:
target = new_target
reposition()
func reposition() -> void:
var loc = target.position
position = Vector3(loc.x, position.y, loc.z)
func _process(delta: float) -> void:
func _process(_delta: float) -> void:
if target:
reposition()
func _on_hack_revealed(is_visible : bool) -> void:
visible = is_visible
func _on_hack_revealed(reveal : bool) -> void:
visible = reveal

View File

@@ -1,19 +0,0 @@
extends Level
#const pawn_controller_template = preload("res://templates/pawn_controller.tscn")
#
#@onready var player_spawner = %Spawner
#func _ready() -> void:
#print("LEVEL LOADING, ID: " + str(Multiplayer.id) + " with " + str(Multiplayer.players.size()) + " keys recognized")
#Game.level = self
#
#func setup() -> void:
#if Multiplayer.is_host():
#spawn_players()
#
#func spawn_players() -> void:
#for key in Game.pawns_selected:
#var pc : PawnController = pawn_controller_template.instantiate()
#var pd = Game.pawns_selected[key]
#player_spawner.add_pawn(pc, key)
#pc.setup(key,pd.starting_hacks)

View File

@@ -0,0 +1,62 @@
class_name MultiplayerLevelSetup extends Node
var players_ready : Dictionary[int, bool] = {}
var pawns_expected : int = 1
var cameras_expected : int = 1
signal all_pawns_spawned()
signal all_cameras_spawned()
signal all_players_ready()
@rpc("authority", "reliable")
func set_pawns_expected(num : int) -> void:
all_pawns_spawned.connect(_on_all_pawns_spawned, CONNECT_ONE_SHOT)
print("(Instance %s) Expecting %d Pawns" % [Game.cmd_args.instance_id, num])
pawns_expected = num
func set_players_unready(list : Array) -> void:
players_ready = {}
for id in list:
players_ready[id] = false
players_ready[1] = true
func check_all_ready() -> bool:
for id in players_ready:
if !players_ready[id]:
return false
return true
func _on_all_pawns_spawned() -> void:
player_ready.rpc_id(1,Multiplayer.id)
func _on_all_cameras_spawned() -> void:
player_ready.rpc_id(1,Multiplayer.id)
@rpc("any_peer", "reliable")
func player_ready(id : int) -> void:
print("(Instance %s) Player %d notified ready" % [Game.cmd_args.instance_id, id])
players_ready[id] = true
if(check_all_ready()):
print("(Instance %s) ALL PLAYERS READY!!" % [Game.cmd_args.instance_id])
all_players_ready.emit()
@rpc("authority", "reliable")
func set_cameras_expected(num : int) -> void:
all_cameras_spawned.connect(_on_all_cameras_spawned, CONNECT_ONE_SHOT)
cameras_expected = num
func _on_pawn_spawner_spawned(node: Node) -> void:
print("(Instance %s) Spawned %d Pawn" % [Game.cmd_args.instance_id, node.id])
pawns_expected -= 1
if pawns_expected == 0:
print("(Instance %s) ALL PAWNS SPAWNED!" % [Game.cmd_args.instance_id])
all_pawns_spawned.emit()
func _on_camera_spawner_spawned(_node: Node) -> void:
cameras_expected -= 1
if cameras_expected == 0:
all_cameras_spawned.emit()

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