full multiplayer plus new models

This commit is contained in:
Lexi Quinn 2023-11-19 18:47:52 +11:00
parent 422c163dcd
commit edbb3261c6
126 changed files with 2343 additions and 492 deletions

BIN
Assets/Textures/bush.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://drbfdp7kugbri"
path="res://.godot/imported/bush.png-a6c82829fcb64df130cd76e0fff091d0.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Textures/bush.png"
dest_files=["res://.godot/imported/bush.png-a6c82829fcb64df130cd76e0fff091d0.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

BIN
Assets/Textures/bush.png~ Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

BIN
Assets/Textures/dirt.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cnvndwp3q7rke"
path="res://.godot/imported/dirt.png-b7d765add9f3db18f86c41222bdb9877.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Textures/dirt.png"
dest_files=["res://.godot/imported/dirt.png-b7d765add9f3db18f86c41222bdb9877.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -2,16 +2,16 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://c5tgmdqqpg2x" uid="uid://cq2s0qsp26qa1"
path="res://.godot/imported/icon.svg-8c0dfe7377b8350deb604d8d5f0f7e7b.ctex" path="res://.godot/imported/grassydirt.png-9eba1411debd33adad4958931e36d232.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://Assets/Textures/icon.svg" source_file="res://Assets/Textures/grassydirt.png"
dest_files=["res://.godot/imported/icon.svg-8c0dfe7377b8350deb604d8d5f0f7e7b.ctex"] dest_files=["res://.godot/imported/grassydirt.png-9eba1411debd33adad4958931e36d232.ctex"]
[params] [params]
@ -32,6 +32,3 @@ process/hdr_as_srgb=false
process/hdr_clamp_exposure=false process/hdr_clamp_exposure=false
process/size_limit=0 process/size_limit=0
detect_3d/compress_to=1 detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View File

@ -1 +0,0 @@
<svg height="128" width="128" xmlns="http://www.w3.org/2000/svg"><rect x="2" y="2" width="124" height="124" rx="14" fill="#363d52" stroke="#212532" stroke-width="4"/><g transform="scale(.101) translate(122 122)"><g fill="#fff"><path d="M105 673v33q407 354 814 0v-33z"/><path fill="#478cbf" d="m105 673 152 14q12 1 15 14l4 67 132 10 8-61q2-11 15-15h162q13 4 15 15l8 61 132-10 4-67q3-13 15-14l152-14V427q30-39 56-81-35-59-83-108-43 20-82 47-40-37-88-64 7-51 8-102-59-28-123-42-26 43-46 89-49-7-98 0-20-46-46-89-64 14-123 42 1 51 8 102-48 27-88 64-39-27-82-47-48 49-83 108 26 42 56 81zm0 33v39c0 276 813 276 813 0v-39l-134 12-5 69q-2 10-14 13l-162 11q-12 0-16-11l-10-65H447l-10 65q-4 11-16 11l-162-11q-12-3-14-13l-5-69z"/><path d="M483 600c3 34 55 34 58 0v-86c-3-34-55-34-58 0z"/><circle cx="725" cy="526" r="90"/><circle cx="299" cy="526" r="90"/></g><g fill="#414042"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></g></svg>

Before

Width:  |  Height:  |  Size: 950 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://lvvnrb5jugum"
path="res://.godot/imported/logo_title.png-584bbd0c554e5d25a7b89d32d9b2447e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Textures/logo_title.png"
dest_files=["res://.godot/imported/logo_title.png-584bbd0c554e5d25a7b89d32d9b2447e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 181 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 753 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://4gff4l03ibpm"
path="res://.godot/imported/scaffold.png-6a95d279ff88a2151679f6aebd1fade4.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Textures/scaffold.png"
dest_files=["res://.godot/imported/scaffold.png-6a95d279ff88a2151679f6aebd1fade4.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 317 KiB

BIN
Assets/Textures/stone.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dgwsvkmnesjjm"
path="res://.godot/imported/stone.png-99a1d84e837affaec2c24c254b7b77e4.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Textures/stone.png"
dest_files=["res://.godot/imported/stone.png-99a1d84e837affaec2c24c254b7b77e4.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

View File

@ -1,9 +1,17 @@
[gd_scene load_steps=4 format=3 uid="uid://bbfm4i4xlkwdr"] [gd_scene load_steps=5 format=3 uid="uid://bbfm4i4xlkwdr"]
[ext_resource type="PackedScene" uid="uid://dumiyjlnea4gq" path="res://Scenes/Towers/hitscan_tower.tscn" id="1_uadu5"] [ext_resource type="PackedScene" uid="uid://dumiyjlnea4gq" path="res://Scenes/Towers/hitscan_tower.tscn" id="1_uadu5"]
[ext_resource type="Resource" uid="uid://bdmsiw45xxhiv" path="res://PCs/Universal/ClassCards/Assault/tower_stats.tres" id="2_gg1gn"] [ext_resource type="Resource" uid="uid://bdmsiw45xxhiv" path="res://PCs/Universal/ClassCards/Assault/tower_stats.tres" id="2_gg1gn"]
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Assault/tower_assault.gd" id="2_olbck"] [ext_resource type="Script" path="res://PCs/Universal/ClassCards/Assault/tower_assault.gd" id="2_olbck"]
[ext_resource type="ArrayMesh" uid="uid://bmejdnnnuroll" path="res://assaultmod.res" id="4_1d5pl"]
[node name="AssaultTower" instance=ExtResource("1_uadu5")] [node name="AssaultTower" instance=ExtResource("1_uadu5")]
script = ExtResource("2_olbck") script = ExtResource("2_olbck")
stats = ExtResource("2_gg1gn") stats = ExtResource("2_gg1gn")
[node name="Pitch" parent="." index="1"]
visible = false
[node name="Yaw" parent="." index="2"]
transform = Transform3D(0.4, 0, 0, 0, 0.4, 0, 0, 0, 0.4, 0, 0.910336, 0)
mesh = ExtResource("4_1d5pl")

View File

@ -1,11 +1,19 @@
[gd_scene load_steps=5 format=3 uid="uid://cq5q6c28pwi47"] [gd_scene load_steps=6 format=3 uid="uid://cq5q6c28pwi47"]
[ext_resource type="PackedScene" uid="uid://dxwtlvv632ae8" path="res://Scenes/Towers/status_applying_tower.tscn" id="1_lnpfa"] [ext_resource type="PackedScene" uid="uid://dxwtlvv632ae8" path="res://Scenes/Towers/status_applying_tower.tscn" id="1_lnpfa"]
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Blowdart/tower_blowdart.gd" id="2_s3qd0"] [ext_resource type="Script" path="res://PCs/Universal/ClassCards/Blowdart/tower_blowdart.gd" id="2_s3qd0"]
[ext_resource type="Resource" uid="uid://cbskijhnnj3kw" path="res://Resources/StatusEffects/poisoned.tres" id="3_ix50y"] [ext_resource type="Resource" uid="uid://cbskijhnnj3kw" path="res://Resources/StatusEffects/poisoned.tres" id="3_ix50y"]
[ext_resource type="Resource" uid="uid://cfbap4o68urti" path="res://PCs/Universal/ClassCards/Blowdart/tower_stats.tres" id="4_1w7pa"] [ext_resource type="Resource" uid="uid://cfbap4o68urti" path="res://PCs/Universal/ClassCards/Blowdart/tower_stats.tres" id="4_1w7pa"]
[ext_resource type="ArrayMesh" uid="uid://yxho5jipkwi2" path="res://blowdart.res" id="5_2kqqw"]
[node name="BlowdartTower" instance=ExtResource("1_lnpfa")] [node name="BlowdartTower" instance=ExtResource("1_lnpfa")]
script = ExtResource("2_s3qd0") script = ExtResource("2_s3qd0")
status_stats = ExtResource("3_ix50y") status_stats = ExtResource("3_ix50y")
stats = ExtResource("4_1w7pa") stats = ExtResource("4_1w7pa")
[node name="Pitch" parent="." index="1"]
visible = false
[node name="Yaw" parent="." index="2"]
transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 0.614838, 0)
mesh = ExtResource("5_2kqqw")

View File

@ -5,7 +5,7 @@
[ext_resource type="Texture2D" uid="uid://b54d5dc4jmlau" path="res://PCs/Universal/ClassCards/BombLauncher/bomb.png" id="3_ilhep"] [ext_resource type="Texture2D" uid="uid://b54d5dc4jmlau" path="res://PCs/Universal/ClassCards/BombLauncher/bomb.png" id="3_ilhep"]
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_bbpul"] [sub_resource type="PhysicsMaterial" id="PhysicsMaterial_bbpul"]
bounce = 0.3 bounce = 0.6
[node name="Bomb" instance=ExtResource("1_kf2wi")] [node name="Bomb" instance=ExtResource("1_kf2wi")]
physics_material_override = SubResource("PhysicsMaterial_bbpul") physics_material_override = SubResource("PhysicsMaterial_bbpul")

View File

@ -1,6 +1,7 @@
extends ProjectileTower extends ProjectileTower
class_name BombLauncherTower class_name BombLauncherTower
func _ready() -> void: func _ready() -> void:
super._ready() super._ready()
force = sqrt((target_range * ProjectSettings.get_setting("physics/3d/default_gravity")) / sin(2 * 45)) force = sqrt((target_range * ProjectSettings.get_setting("physics/3d/default_gravity")) / sin(2 * 45))
@ -11,7 +12,7 @@ func aim():
var pos = Vector2(global_position.x, global_position.z) var pos = Vector2(global_position.x, global_position.z)
var t_pos = Vector2(targeted_enemy.global_position.x, targeted_enemy.global_position.z) var t_pos = Vector2(targeted_enemy.global_position.x, targeted_enemy.global_position.z)
var x = pos.distance_to(t_pos) var x = pos.distance_to(t_pos)
var y = targeted_enemy.global_position.y - global_position.y var y = targeted_enemy.global_position.y - yaw_model.global_position.y
var v = force var v = force
var g = ProjectSettings.get_setting("physics/3d/default_gravity") var g = ProjectSettings.get_setting("physics/3d/default_gravity")
var v2 = pow(v, 2) var v2 = pow(v, 2)

View File

@ -1,11 +1,19 @@
[gd_scene load_steps=5 format=3 uid="uid://d2cch7qrwocg8"] [gd_scene load_steps=6 format=3 uid="uid://d2cch7qrwocg8"]
[ext_resource type="PackedScene" uid="uid://t0b32qb8eub2" path="res://Scenes/Towers/projectile_tower.tscn" id="1_r8hbo"] [ext_resource type="PackedScene" uid="uid://t0b32qb8eub2" path="res://Scenes/Towers/projectile_tower.tscn" id="1_r8hbo"]
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/BombLauncher/tower_bomb_launcher.gd" id="2_vlaa6"] [ext_resource type="Script" path="res://PCs/Universal/ClassCards/BombLauncher/tower_bomb_launcher.gd" id="2_vlaa6"]
[ext_resource type="PackedScene" uid="uid://c8oq5unisjqne" path="res://PCs/Universal/ClassCards/BombLauncher/bomb_projectile.tscn" id="3_562if"] [ext_resource type="PackedScene" uid="uid://c8oq5unisjqne" path="res://PCs/Universal/ClassCards/BombLauncher/bomb_projectile.tscn" id="3_562if"]
[ext_resource type="Resource" uid="uid://8eaecilvan23" path="res://PCs/Universal/ClassCards/BombLauncher/tower_stats.tres" id="4_xgwj1"] [ext_resource type="Resource" uid="uid://8eaecilvan23" path="res://PCs/Universal/ClassCards/BombLauncher/tower_stats.tres" id="4_xgwj1"]
[ext_resource type="ArrayMesh" uid="uid://ckst32066g4vg" path="res://bombamodel.res" id="5_yixga"]
[node name="BombLauncherTower" instance=ExtResource("1_r8hbo")] [node name="BombLauncherTower" instance=ExtResource("1_r8hbo")]
script = ExtResource("2_vlaa6") script = ExtResource("2_vlaa6")
projectile_scene = ExtResource("3_562if") projectile_scene = ExtResource("3_562if")
stats = ExtResource("4_xgwj1") stats = ExtResource("4_xgwj1")
[node name="Pitch" parent="." index="1"]
visible = false
[node name="Yaw" parent="." index="2"]
transform = Transform3D(0.4, 0, 0, 0, 0.4, 0, 0, 0, 0.4, 0, 0.870628, 0)
mesh = ExtResource("5_yixga")

View File

@ -1,11 +1,19 @@
[gd_scene load_steps=5 format=3 uid="uid://c3fqlkytyc62u"] [gd_scene load_steps=7 format=3 uid="uid://c3fqlkytyc62u"]
[ext_resource type="PackedScene" uid="uid://bqdllitxbbpyp" path="res://Scenes/Weapons/projectile_weapon.tscn" id="1_gbycb"] [ext_resource type="PackedScene" uid="uid://bqdllitxbbpyp" path="res://Scenes/Weapons/projectile_weapon.tscn" id="1_gbycb"]
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/BombLauncher/weapon_bomb_launcher.gd" id="2_g5ihb"] [ext_resource type="Script" path="res://PCs/Universal/ClassCards/BombLauncher/weapon_bomb_launcher.gd" id="2_g5ihb"]
[ext_resource type="Resource" uid="uid://co6eorobj1xuu" path="res://PCs/Universal/ClassCards/BombLauncher/weapon_stats.tres" id="3_73ol1"] [ext_resource type="Resource" uid="uid://co6eorobj1xuu" path="res://PCs/Universal/ClassCards/BombLauncher/weapon_stats.tres" id="3_73ol1"]
[ext_resource type="PackedScene" uid="uid://c8oq5unisjqne" path="res://PCs/Universal/ClassCards/BombLauncher/bomb_projectile.tscn" id="3_jxt6m"] [ext_resource type="PackedScene" uid="uid://c8oq5unisjqne" path="res://PCs/Universal/ClassCards/BombLauncher/bomb_projectile.tscn" id="3_jxt6m"]
[ext_resource type="Texture2D" uid="uid://3qcdx7n440sc" path="res://PCs/Universal/ClassCards/BombLauncher/grenade_launcher.png" id="5_iyrt8"]
[sub_resource type="AtlasTexture" id="AtlasTexture_4fobv"]
atlas = ExtResource("5_iyrt8")
region = Rect2(0, 0, 64, 64)
[node name="BombLauncherWeapon" instance=ExtResource("1_gbycb")] [node name="BombLauncherWeapon" instance=ExtResource("1_gbycb")]
script = ExtResource("2_g5ihb") script = ExtResource("2_g5ihb")
projectile_scene = ExtResource("3_jxt6m") projectile_scene = ExtResource("3_jxt6m")
stats = ExtResource("3_73ol1") stats = ExtResource("3_73ol1")
[node name="Sprite3D" parent="." index="0"]
texture = SubResource("AtlasTexture_4fobv")

View File

@ -1,11 +1,19 @@
[gd_scene load_steps=5 format=3 uid="uid://dwwgvgn0ds8tk"] [gd_scene load_steps=6 format=3 uid="uid://dwwgvgn0ds8tk"]
[ext_resource type="PackedScene" uid="uid://t0b32qb8eub2" path="res://Scenes/Towers/projectile_tower.tscn" id="1_rkdu6"] [ext_resource type="PackedScene" uid="uid://t0b32qb8eub2" path="res://Scenes/Towers/projectile_tower.tscn" id="1_rkdu6"]
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Fireball/tower_fireball.gd" id="2_td8dh"] [ext_resource type="Script" path="res://PCs/Universal/ClassCards/Fireball/tower_fireball.gd" id="2_td8dh"]
[ext_resource type="PackedScene" uid="uid://ddpixntjsbpqp" path="res://PCs/Universal/ClassCards/Fireball/fireball_projectile.tscn" id="3_1akv8"] [ext_resource type="PackedScene" uid="uid://ddpixntjsbpqp" path="res://PCs/Universal/ClassCards/Fireball/fireball_projectile.tscn" id="3_1akv8"]
[ext_resource type="Resource" uid="uid://dnvqghpwyuw84" path="res://PCs/Universal/ClassCards/Fireball/tower_stats.tres" id="4_uu77s"] [ext_resource type="Resource" uid="uid://dnvqghpwyuw84" path="res://PCs/Universal/ClassCards/Fireball/tower_stats.tres" id="4_uu77s"]
[ext_resource type="ArrayMesh" uid="uid://d34yiqnnaie8r" path="res://magetowermesh.res" id="5_7rkfh"]
[node name="FireballTower" instance=ExtResource("1_rkdu6")] [node name="FireballTower" instance=ExtResource("1_rkdu6")]
script = ExtResource("2_td8dh") script = ExtResource("2_td8dh")
projectile_scene = ExtResource("3_1akv8") projectile_scene = ExtResource("3_1akv8")
stats = ExtResource("4_uu77s") stats = ExtResource("4_uu77s")
[node name="Pitch" parent="." index="1"]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, 0, 0)
mesh = ExtResource("5_7rkfh")
[node name="Yaw" parent="." index="2"]
transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 1.74532, 0)

View File

@ -1,12 +1,13 @@
[gd_scene load_steps=11 format=3 uid="uid://dkoj1766ygo3f"] [gd_scene load_steps=12 format=3 uid="uid://dkoj1766ygo3f"]
[ext_resource type="PackedScene" uid="uid://8uxu72vjo0cv" path="res://Scenes/Towers/shapecast_tower.tscn" id="1_jagpf"] [ext_resource type="PackedScene" uid="uid://8uxu72vjo0cv" path="res://Scenes/Towers/shapecast_tower.tscn" id="1_jagpf"]
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Flamethrower/tower_flamethrower.gd" id="2_7vewc"] [ext_resource type="Script" path="res://PCs/Universal/ClassCards/Flamethrower/tower_flamethrower.gd" id="2_7vewc"]
[ext_resource type="Resource" uid="uid://dbanx8taicddm" path="res://Resources/StatusEffects/on_fire.tres" id="3_aop2h"] [ext_resource type="Resource" uid="uid://dbanx8taicddm" path="res://Resources/StatusEffects/on_fire.tres" id="3_aop2h"]
[ext_resource type="Resource" uid="uid://cdtjbxs21peqg" path="res://PCs/Universal/ClassCards/Flamethrower/tower_stats.tres" id="4_by7c8"] [ext_resource type="Resource" uid="uid://cdtjbxs21peqg" path="res://PCs/Universal/ClassCards/Flamethrower/tower_stats.tres" id="4_by7c8"]
[ext_resource type="ArrayMesh" uid="uid://p2jerp4ab8ch" path="res://flamethrower_mesh.res" id="5_tc7nr"]
[sub_resource type="BoxShape3D" id="BoxShape3D_r367g"] [sub_resource type="BoxShape3D" id="BoxShape3D_r367g"]
size = Vector3(2, 2, 3) size = Vector3(3, 2, 3)
[sub_resource type="Gradient" id="Gradient_ay233"] [sub_resource type="Gradient" id="Gradient_ay233"]
offsets = PackedFloat32Array(0, 0.178862, 0.455285, 1) offsets = PackedFloat32Array(0, 0.178862, 0.455285, 1)
@ -35,6 +36,12 @@ script = ExtResource("2_7vewc")
status_stats = ExtResource("3_aop2h") status_stats = ExtResource("3_aop2h")
stats = ExtResource("4_by7c8") stats = ExtResource("4_by7c8")
[node name="Pitch" parent="." index="1"]
visible = false
[node name="Yaw" parent="." index="2"]
mesh = null
[node name="ShapeCast3D" parent="Yaw" index="0"] [node name="ShapeCast3D" parent="Yaw" index="0"]
shape = SubResource("BoxShape3D_r367g") shape = SubResource("BoxShape3D_r367g")
target_position = Vector3(0, 0, -2) target_position = Vector3(0, 0, -2)
@ -45,3 +52,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.534666)
amount = 16 amount = 16
process_material = SubResource("ParticleProcessMaterial_r7587") process_material = SubResource("ParticleProcessMaterial_r7587")
draw_pass_1 = SubResource("BoxMesh_h4c6o") draw_pass_1 = SubResource("BoxMesh_h4c6o")
[node name="MeshInstance3D" type="MeshInstance3D" parent="Yaw" index="1"]
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0, 0, 0)
mesh = ExtResource("5_tc7nr")

View File

@ -1,9 +1,17 @@
[gd_scene load_steps=4 format=3 uid="uid://bjuc3x7u3f271"] [gd_scene load_steps=5 format=3 uid="uid://bjuc3x7u3f271"]
[ext_resource type="PackedScene" uid="uid://dumiyjlnea4gq" path="res://Scenes/Towers/hitscan_tower.tscn" id="1_su74p"] [ext_resource type="PackedScene" uid="uid://dumiyjlnea4gq" path="res://Scenes/Towers/hitscan_tower.tscn" id="1_su74p"]
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Gatling/tower_gatling.gd" id="2_ipjp1"] [ext_resource type="Script" path="res://PCs/Universal/ClassCards/Gatling/tower_gatling.gd" id="2_ipjp1"]
[ext_resource type="Resource" uid="uid://nxl5wabgl36t" path="res://PCs/Universal/ClassCards/Gatling/tower_stats.tres" id="3_oicqw"] [ext_resource type="Resource" uid="uid://nxl5wabgl36t" path="res://PCs/Universal/ClassCards/Gatling/tower_stats.tres" id="3_oicqw"]
[ext_resource type="ArrayMesh" uid="uid://dler7wcqj0bm6" path="res://gattlemesh.res" id="4_wihc0"]
[node name="GatlingTower" instance=ExtResource("1_su74p")] [node name="GatlingTower" instance=ExtResource("1_su74p")]
script = ExtResource("2_ipjp1") script = ExtResource("2_ipjp1")
stats = ExtResource("3_oicqw") stats = ExtResource("3_oicqw")
[node name="Pitch" parent="." index="1"]
visible = false
[node name="Yaw" parent="." index="2"]
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0, 0.426474, 0)
mesh = ExtResource("4_wihc0")

View File

@ -25,6 +25,7 @@ func _process(delta: float) -> void:
func _physics_process(_delta: float) -> void: func _physics_process(_delta: float) -> void:
if trigger_held and time_since_firing >= current_time_between_shots: if trigger_held and time_since_firing >= current_time_between_shots:
print(current_time_between_shots)
time_since_firing -= current_time_between_shots time_since_firing -= current_time_between_shots
shoot() shoot()
networked_shoot.rpc() networked_shoot.rpc()

View File

@ -1,14 +1,16 @@
[gd_scene load_steps=5 format=3 uid="uid://dkxi1ssoa44jn"] [gd_scene load_steps=6 format=3 uid="uid://dkxi1ssoa44jn"]
[ext_resource type="PackedScene" uid="uid://difwo7wlyqr3h" path="res://Scenes/Weapons/hitscan_weapon.tscn" id="1_fwlu5"] [ext_resource type="PackedScene" uid="uid://difwo7wlyqr3h" path="res://Scenes/Weapons/hitscan_weapon.tscn" id="1_fwlu5"]
[ext_resource type="Resource" uid="uid://cj2x1jvo8l4ot" path="res://PCs/Universal/ClassCards/Gatling/weapon_stats.tres" id="2_fnyjd"] [ext_resource type="Resource" uid="uid://cj2x1jvo8l4ot" path="res://PCs/Universal/ClassCards/Gatling/weapon_stats.tres" id="2_fnyjd"]
[ext_resource type="Texture2D" uid="uid://cx5cwn11fuugq" path="res://PCs/Universal/ClassCards/Gatling/gatling.png" id="2_rv8ps"] [ext_resource type="Texture2D" uid="uid://cx5cwn11fuugq" path="res://PCs/Universal/ClassCards/Gatling/gatling.png" id="2_rv8ps"]
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Gatling/weapon_gatling.gd" id="2_wm4al"]
[sub_resource type="AtlasTexture" id="AtlasTexture_0im1y"] [sub_resource type="AtlasTexture" id="AtlasTexture_0im1y"]
atlas = ExtResource("2_rv8ps") atlas = ExtResource("2_rv8ps")
region = Rect2(0, 0, 64, 64) region = Rect2(0, 0, 64, 64)
[node name="HitscanWeapon" instance=ExtResource("1_fwlu5")] [node name="WeaponGatling" instance=ExtResource("1_fwlu5")]
script = ExtResource("2_wm4al")
stats = ExtResource("2_fnyjd") stats = ExtResource("2_fnyjd")
[node name="Sprite3D" parent="." index="0"] [node name="Sprite3D" parent="." index="0"]

View File

@ -21,12 +21,12 @@ value = 20.0
[sub_resource type="Resource" id="Resource_ogk1x"] [sub_resource type="Resource" id="Resource_ogk1x"]
script = ExtResource("1_vpmor") script = ExtResource("1_vpmor")
key = "Speed Multiplier" key = "Speed Multiplier"
value = 2.0 value = 2.5
[sub_resource type="Resource" id="Resource_wdp3h"] [sub_resource type="Resource" id="Resource_wdp3h"]
script = ExtResource("1_vpmor") script = ExtResource("1_vpmor")
key = "Speed Time" key = "Speed Time"
value = 3.0 value = 4.0
[resource] [resource]
script = ExtResource("1_630yu") script = ExtResource("1_630yu")
@ -34,4 +34,4 @@ target_type = 0
attributes = Array[ExtResource("1_vpmor")]([SubResource("Resource_fi7tc"), SubResource("Resource_r6h5d"), SubResource("Resource_gwg1i"), SubResource("Resource_ogk1x"), SubResource("Resource_wdp3h")]) attributes = Array[ExtResource("1_vpmor")]([SubResource("Resource_fi7tc"), SubResource("Resource_r6h5d"), SubResource("Resource_gwg1i"), SubResource("Resource_ogk1x"), SubResource("Resource_wdp3h")])
text = "Fires a shot every /Fire Delay\\ seconds dealing /Damage\\ damage at a range of /Range\\m text = "Fires a shot every /Fire Delay\\ seconds dealing /Damage\\ damage at a range of /Range\\m
While held, gradually accelerates to /Speed Multiplier\\x the fire rate over /Speed Time\\" While held, gradually accelerates to /Speed Multiplier\\x the fire rate over /Speed Time\\s"

View File

@ -1,11 +1,19 @@
[gd_scene load_steps=5 format=3 uid="uid://bb44pintbwdcf"] [gd_scene load_steps=6 format=3 uid="uid://bb44pintbwdcf"]
[ext_resource type="PackedScene" uid="uid://dxwtlvv632ae8" path="res://Scenes/Towers/status_applying_tower.tscn" id="1_r1dvg"] [ext_resource type="PackedScene" uid="uid://dxwtlvv632ae8" path="res://Scenes/Towers/status_applying_tower.tscn" id="1_r1dvg"]
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/GlueLauncher/tower_glue_launcher.gd" id="2_ot8fu"] [ext_resource type="Script" path="res://PCs/Universal/ClassCards/GlueLauncher/tower_glue_launcher.gd" id="2_ot8fu"]
[ext_resource type="Resource" uid="uid://d0643gfp52x3s" path="res://Resources/StatusEffects/sticky.tres" id="3_ibb53"] [ext_resource type="Resource" uid="uid://d0643gfp52x3s" path="res://Resources/StatusEffects/sticky.tres" id="3_ibb53"]
[ext_resource type="Resource" uid="uid://bvkwgmbxje0dp" path="res://PCs/Universal/ClassCards/GlueLauncher/tower_stats.tres" id="4_etcd4"] [ext_resource type="Resource" uid="uid://bvkwgmbxje0dp" path="res://PCs/Universal/ClassCards/GlueLauncher/tower_stats.tres" id="4_etcd4"]
[ext_resource type="ArrayMesh" uid="uid://cehyrhbd7pu83" path="res://glue_launcher_model.res" id="5_dsftx"]
[node name="GlueLauncherTower" instance=ExtResource("1_r1dvg")] [node name="GlueLauncherTower" instance=ExtResource("1_r1dvg")]
script = ExtResource("2_ot8fu") script = ExtResource("2_ot8fu")
status_stats = ExtResource("3_ibb53") status_stats = ExtResource("3_ibb53")
stats = ExtResource("4_etcd4") stats = ExtResource("4_etcd4")
[node name="Pitch" parent="." index="1"]
visible = false
[node name="Yaw" parent="." index="2"]
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0, 0.484804, 0)
mesh = ExtResource("5_dsftx")

View File

@ -1,11 +1,19 @@
[gd_scene load_steps=5 format=3 uid="uid://miawrarbb1up"] [gd_scene load_steps=6 format=3 uid="uid://miawrarbb1up"]
[ext_resource type="PackedScene" uid="uid://t0b32qb8eub2" path="res://Scenes/Towers/projectile_tower.tscn" id="1_d6g88"] [ext_resource type="PackedScene" uid="uid://t0b32qb8eub2" path="res://Scenes/Towers/projectile_tower.tscn" id="1_d6g88"]
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Icicle/tower_icicle.gd" id="2_qcpgh"] [ext_resource type="Script" path="res://PCs/Universal/ClassCards/Icicle/tower_icicle.gd" id="2_qcpgh"]
[ext_resource type="PackedScene" uid="uid://dyurjxotdkf1u" path="res://PCs/Universal/ClassCards/Icicle/icicle_projectile.tscn" id="3_o4uqf"] [ext_resource type="PackedScene" uid="uid://dyurjxotdkf1u" path="res://PCs/Universal/ClassCards/Icicle/icicle_projectile.tscn" id="3_o4uqf"]
[ext_resource type="Resource" uid="uid://d34bfj5togyyt" path="res://PCs/Universal/ClassCards/Icicle/tower_stats.tres" id="4_3il5a"] [ext_resource type="Resource" uid="uid://d34bfj5togyyt" path="res://PCs/Universal/ClassCards/Icicle/tower_stats.tres" id="4_3il5a"]
[ext_resource type="ArrayMesh" uid="uid://d34yiqnnaie8r" path="res://magetowermesh.res" id="5_soa3a"]
[node name="IcicleTower" instance=ExtResource("1_d6g88")] [node name="IcicleTower" instance=ExtResource("1_d6g88")]
script = ExtResource("2_qcpgh") script = ExtResource("2_qcpgh")
projectile_scene = ExtResource("3_o4uqf") projectile_scene = ExtResource("3_o4uqf")
stats = ExtResource("4_3il5a") stats = ExtResource("4_3il5a")
[node name="Pitch" parent="." index="1"]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, 0, 0)
mesh = ExtResource("5_soa3a")
[node name="Yaw" parent="." index="2"]
transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 1.745, 0)

View File

@ -1,9 +1,10 @@
[gd_scene load_steps=10 format=3 uid="uid://dqrkn0vp2tmrh"] [gd_scene load_steps=11 format=3 uid="uid://dqrkn0vp2tmrh"]
[ext_resource type="PackedScene" uid="uid://bi6b2r6wek7he" path="res://Scenes/Towers/range_affecting_tower.tscn" id="1_afsqn"] [ext_resource type="PackedScene" uid="uid://bi6b2r6wek7he" path="res://Scenes/Towers/range_affecting_tower.tscn" id="1_afsqn"]
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Reactor/tower_reactor.gd" id="2_6w83m"] [ext_resource type="Script" path="res://PCs/Universal/ClassCards/Reactor/tower_reactor.gd" id="2_6w83m"]
[ext_resource type="Resource" uid="uid://dxlisoas4xlmo" path="res://Resources/StatusEffects/radioactive.tres" id="3_xhrj0"] [ext_resource type="Resource" uid="uid://dxlisoas4xlmo" path="res://Resources/StatusEffects/radioactive.tres" id="3_xhrj0"]
[ext_resource type="Resource" uid="uid://cssdyxk8oefsd" path="res://PCs/Universal/ClassCards/Reactor/tower_stats.tres" id="4_rkhup"] [ext_resource type="Resource" uid="uid://cssdyxk8oefsd" path="res://PCs/Universal/ClassCards/Reactor/tower_stats.tres" id="4_rkhup"]
[ext_resource type="ArrayMesh" uid="uid://d280k3kx6hh7h" path="res://reactor_mesh.res" id="5_it8eo"]
[sub_resource type="Gradient" id="Gradient_ranod"] [sub_resource type="Gradient" id="Gradient_ranod"]
interpolation_color_space = 2 interpolation_color_space = 2
@ -36,6 +37,13 @@ particles = NodePath("GPUParticles3D")
status_stats = ExtResource("3_xhrj0") status_stats = ExtResource("3_xhrj0")
stats = ExtResource("4_rkhup") stats = ExtResource("4_rkhup")
[node name="Pitch" parent="." index="1"]
visible = false
[node name="Yaw" parent="." index="2"]
transform = Transform3D(0.55, 0, 0, 0, 0.55, 0, 0, 0, 0.55, 0, 0.13062, 0)
mesh = ExtResource("5_it8eo")
[node name="GPUParticles3D" type="GPUParticles3D" parent="." index="5"] [node name="GPUParticles3D" type="GPUParticles3D" parent="." index="5"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.6, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.6, 0)
amount = 12 amount = 12

View File

@ -1,9 +1,10 @@
[gd_scene load_steps=10 format=3 uid="uid://bqaynyhxdr4to"] [gd_scene load_steps=11 format=3 uid="uid://bqaynyhxdr4to"]
[ext_resource type="PackedScene" uid="uid://bi6b2r6wek7he" path="res://Scenes/Towers/range_affecting_tower.tscn" id="1_4hvoi"] [ext_resource type="PackedScene" uid="uid://bi6b2r6wek7he" path="res://Scenes/Towers/range_affecting_tower.tscn" id="1_4hvoi"]
[ext_resource type="Resource" uid="uid://fed6kimfbcwv" path="res://Resources/StatusEffects/cold.tres" id="2_u4dux"] [ext_resource type="Resource" uid="uid://fed6kimfbcwv" path="res://Resources/StatusEffects/cold.tres" id="2_u4dux"]
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Refrigerator/tower_refrigerator.gd" id="2_yhcmv"] [ext_resource type="Script" path="res://PCs/Universal/ClassCards/Refrigerator/tower_refrigerator.gd" id="2_yhcmv"]
[ext_resource type="Resource" uid="uid://st0qrut5nxrm" path="res://PCs/Universal/ClassCards/Refrigerator/tower_stats.tres" id="3_jjh3a"] [ext_resource type="Resource" uid="uid://st0qrut5nxrm" path="res://PCs/Universal/ClassCards/Refrigerator/tower_stats.tres" id="3_jjh3a"]
[ext_resource type="ArrayMesh" uid="uid://bwvls7rj0oqyv" path="res://fridge_mesh.res" id="5_mrvl8"]
[sub_resource type="Gradient" id="Gradient_lm6vx"] [sub_resource type="Gradient" id="Gradient_lm6vx"]
offsets = PackedFloat32Array(0, 0.682927, 1) offsets = PackedFloat32Array(0, 0.682927, 1)
@ -37,7 +38,15 @@ particles = NodePath("GPUParticles3D")
status_stats = ExtResource("2_u4dux") status_stats = ExtResource("2_u4dux")
stats = ExtResource("3_jjh3a") stats = ExtResource("3_jjh3a")
[node name="Pitch" parent="." index="1"]
visible = false
[node name="Yaw" parent="." index="2"]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, 0.53317, 0)
mesh = ExtResource("5_mrvl8")
[node name="GPUParticles3D" type="GPUParticles3D" parent="." index="5"] [node name="GPUParticles3D" type="GPUParticles3D" parent="." index="5"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.418807, 0)
amount = 32 amount = 32
process_material = SubResource("ParticleProcessMaterial_ijefe") process_material = SubResource("ParticleProcessMaterial_ijefe")
draw_pass_1 = SubResource("BoxMesh_btdsr") draw_pass_1 = SubResource("BoxMesh_btdsr")

View File

@ -1,9 +1,17 @@
[gd_scene load_steps=4 format=3 uid="uid://b3q0f6w30nwsh"] [gd_scene load_steps=5 format=3 uid="uid://b3q0f6w30nwsh"]
[ext_resource type="PackedScene" uid="uid://t0b32qb8eub2" path="res://Scenes/Towers/projectile_tower.tscn" id="1_su4lx"] [ext_resource type="PackedScene" uid="uid://t0b32qb8eub2" path="res://Scenes/Towers/projectile_tower.tscn" id="1_su4lx"]
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/RocketLauncher/tower_rocket_launcher.gd" id="2_33124"] [ext_resource type="Script" path="res://PCs/Universal/ClassCards/RocketLauncher/tower_rocket_launcher.gd" id="2_33124"]
[ext_resource type="PackedScene" uid="uid://p2vwo8ivben6" path="res://PCs/Universal/ClassCards/RocketLauncher/rocket_projectile.tscn" id="3_8kvhb"] [ext_resource type="PackedScene" uid="uid://p2vwo8ivben6" path="res://PCs/Universal/ClassCards/RocketLauncher/rocket_projectile.tscn" id="3_8kvhb"]
[ext_resource type="ArrayMesh" uid="uid://buyx8g4vlh7g7" path="res://rocket_launcher_model.res" id="4_ahc6v"]
[node name="RocketLauncherTower" instance=ExtResource("1_su4lx")] [node name="RocketLauncherTower" instance=ExtResource("1_su4lx")]
script = ExtResource("2_33124") script = ExtResource("2_33124")
projectile_scene = ExtResource("3_8kvhb") projectile_scene = ExtResource("3_8kvhb")
[node name="Pitch" parent="." index="1"]
visible = false
[node name="Yaw" parent="." index="2"]
transform = Transform3D(0.4, 0, 0, 0, 0.4, 0, 0, 0, 0.4, 0, 0.667653, 0)
mesh = ExtResource("4_ahc6v")

View File

@ -1,10 +1,17 @@
[gd_scene load_steps=4 format=3 uid="uid://bt4qbc5lp4nhr"] [gd_scene load_steps=5 format=3 uid="uid://bt4qbc5lp4nhr"]
[ext_resource type="PackedScene" uid="uid://dumiyjlnea4gq" path="res://Scenes/Towers/hitscan_tower.tscn" id="1_x1nem"] [ext_resource type="PackedScene" uid="uid://dumiyjlnea4gq" path="res://Scenes/Towers/hitscan_tower.tscn" id="1_x1nem"]
[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Sniper/tower_sniper.gd" id="2_v5fr7"] [ext_resource type="Script" path="res://PCs/Universal/ClassCards/Sniper/tower_sniper.gd" id="2_v5fr7"]
[ext_resource type="Resource" uid="uid://eb0by6ba1d43" path="res://PCs/Universal/ClassCards/Sniper/tower_stats.tres" id="3_a0vis"] [ext_resource type="Resource" uid="uid://eb0by6ba1d43" path="res://PCs/Universal/ClassCards/Sniper/tower_stats.tres" id="3_a0vis"]
[ext_resource type="ArrayMesh" uid="uid://b4vwe267lt1ua" path="res://snipermodel.res" id="4_pwbtb"]
[node name="HitscanTower" instance=ExtResource("1_x1nem")] [node name="HitscanTower" instance=ExtResource("1_x1nem")]
script = ExtResource("2_v5fr7") script = ExtResource("2_v5fr7")
target_type = 3
stats = ExtResource("3_a0vis") stats = ExtResource("3_a0vis")
[node name="Pitch" parent="." index="1"]
visible = false
[node name="Yaw" parent="." index="2"]
transform = Transform3D(0.4, 0, 0, 0, 0.4, 0, 0, 0, 0.4, 0, 0.765984, 0)
mesh = ExtResource("4_pwbtb")

View File

@ -22,7 +22,7 @@
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_jbu13"] [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_jbu13"]
[sub_resource type="AtlasTexture" id="AtlasTexture_kr8sn"] [sub_resource type="AtlasTexture" id="AtlasTexture_66cl7"]
resource_local_to_scene = true resource_local_to_scene = true
atlas = ExtResource("6_yyp8i") atlas = ExtResource("6_yyp8i")
region = Rect2(0, 0, 96, 96) region = Rect2(0, 0, 96, 96)
@ -103,7 +103,7 @@ collision_mask = 24
[node name="EightDirectionSprite" parent="." instance=ExtResource("2_ib0t5")] [node name="EightDirectionSprite" parent="." instance=ExtResource("2_ib0t5")]
transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0.915529, 0) transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0.915529, 0)
texture = SubResource("AtlasTexture_kr8sn") texture = SubResource("AtlasTexture_66cl7")
[node name="Inventory" type="Node" parent="."] [node name="Inventory" type="Node" parent="."]
script = ExtResource("6_cf5ap") script = ExtResource("6_cf5ap")
@ -430,15 +430,16 @@ horizontal_alignment = 1
vertical_alignment = 1 vertical_alignment = 1
[node name="WaveCount" type="Label" parent="HUD"] [node name="WaveCount" type="Label" parent="HUD"]
anchors_preset = 5 anchors_preset = -1
anchor_left = 0.5 anchor_left = 0.5
anchor_right = 0.5 anchor_right = 0.5
offset_left = -30.0 offset_left = -30.0
offset_top = 83.0 offset_top = 81.0
offset_right = 30.0 offset_right = 30.0
offset_bottom = 109.0 offset_bottom = 109.0
grow_horizontal = 2 grow_horizontal = 2
theme_override_colors/font_color = Color(0, 0, 0, 1) theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 18
text = "1" text = "1"
horizontal_alignment = 1 horizontal_alignment = 1
vertical_alignment = 1 vertical_alignment = 1

View File

@ -19,9 +19,13 @@ layout_mode = 2
layout_mode = 2 layout_mode = 2
text = "Unable to connect to server" text = "Unable to connect to server"
[node name="Button" type="Button" parent="VBoxContainer"] [node name="MarginContainer" type="MarginContainer" parent="VBoxContainer"]
layout_mode = 2
theme_override_constants/margin_right = 28
[node name="Button" type="Button" parent="VBoxContainer/MarginContainer"]
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 8 size_flags_horizontal = 8
text = "OK" text = "OK"
[connection signal="pressed" from="VBoxContainer/Button" to="." method="_on_button_pressed"] [connection signal="pressed" from="VBoxContainer/MarginContainer/Button" to="." method="_on_button_pressed"]

View File

@ -26,13 +26,23 @@ text = "Some Text?"
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"] [node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"]
layout_mode = 2 layout_mode = 2
[node name="Confirm" type="Button" parent="VBoxContainer/HBoxContainer"] [node name="MarginContainer" type="MarginContainer" parent="VBoxContainer/HBoxContainer"]
layout_mode = 2
theme_override_constants/margin_left = 30
theme_override_constants/margin_right = 30
[node name="Confirm" type="Button" parent="VBoxContainer/HBoxContainer/MarginContainer"]
layout_mode = 2 layout_mode = 2
text = "Confirm" text = "Confirm"
[node name="Cancel" type="Button" parent="VBoxContainer/HBoxContainer"] [node name="MarginContainer2" type="MarginContainer" parent="VBoxContainer/HBoxContainer"]
layout_mode = 2
theme_override_constants/margin_left = 30
theme_override_constants/margin_right = 30
[node name="Cancel" type="Button" parent="VBoxContainer/HBoxContainer/MarginContainer2"]
layout_mode = 2 layout_mode = 2
text = "Cancel" text = "Cancel"
[connection signal="pressed" from="VBoxContainer/HBoxContainer/Confirm" to="." method="_on_confirm_pressed"] [connection signal="pressed" from="VBoxContainer/HBoxContainer/MarginContainer/Confirm" to="." method="_on_confirm_pressed"]
[connection signal="pressed" from="VBoxContainer/HBoxContainer/Cancel" to="." method="_on_cancel_pressed"] [connection signal="pressed" from="VBoxContainer/HBoxContainer/MarginContainer2/Cancel" to="." method="_on_cancel_pressed"]

View File

@ -1,9 +1,14 @@
[gd_scene load_steps=3 format=3 uid="uid://8yv7excojcg0"] [gd_scene load_steps=6 format=3 uid="uid://8yv7excojcg0"]
[ext_resource type="Theme" uid="uid://b6a0ip4p72tgx" path="res://new_theme.tres" id="1_p1cib"] [ext_resource type="Theme" uid="uid://b6a0ip4p72tgx" path="res://new_theme.tres" id="1_p1cib"]
[ext_resource type="Script" path="res://Scripts/main_menu.gd" id="2_ivytu"] [ext_resource type="Script" path="res://Scripts/main_menu.gd" id="2_ivytu"]
[ext_resource type="Texture2D" uid="uid://lvvnrb5jugum" path="res://Assets/Textures/logo_title.png" id="3_8jkeb"]
[ext_resource type="PackedScene" uid="uid://y1qa1g3ic8sp" path="res://Worlds/GreenPlanet/Levels/first_level.tscn" id="3_l8r4a"]
[node name="MainMenu" type="Control"] [sub_resource type="ViewportTexture" id="ViewportTexture_5u75i"]
viewport_path = NodePath("SubViewport")
[node name="MainMenu" type="Control" node_paths=PackedStringArray("bg_level")]
layout_mode = 3 layout_mode = 3
anchors_preset = 15 anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
@ -12,55 +17,84 @@ grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
theme = ExtResource("1_p1cib") theme = ExtResource("1_p1cib")
script = ExtResource("2_ivytu") script = ExtResource("2_ivytu")
bg_level = NodePath("SubViewport/GridMap")
[node name="Title" type="PanelContainer" parent="."] [node name="TextureRect" type="TextureRect" parent="."]
layout_mode = 1 layout_mode = 1
anchors_preset = -1 anchors_preset = 15
anchor_left = 0.5 anchor_right = 1.0
anchor_right = 0.5 anchor_bottom = 1.0
offset_left = -559.5
offset_top = 25.0
offset_right = 559.5
offset_bottom = 113.0
grow_horizontal = 2
[node name="Label" type="Label" parent="Title"]
layout_mode = 2
text = "MULTIPLAYER TOWER DEFENSE CARD GAME ROGUELIKE !!!"
horizontal_alignment = 1
vertical_alignment = 1
[node name="MainControls" type="PanelContainer" parent="."]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -71.0
offset_top = -81.0
offset_right = 71.0
offset_bottom = 81.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
texture = SubResource("ViewportTexture_5u75i")
[node name="VBoxContainer" type="VBoxContainer" parent="MainControls"] [node name="TextureRect2" type="TextureRect" parent="."]
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -627.0
offset_top = 73.0
offset_right = 1293.0
offset_bottom = 1153.0
grow_horizontal = 2
scale = Vector2(0.67, 0.67)
texture = ExtResource("3_8jkeb")
expand_mode = 1
[node name="MainControls" type="VBoxContainer" parent="."]
layout_mode = 1
anchors_preset = -1
anchor_top = 1.0
anchor_bottom = 1.0
offset_left = 130.0
offset_top = -188.0
offset_right = 143.0
offset_bottom = -80.0
grow_vertical = 0
[node name="MarginContainer" type="MarginContainer" parent="MainControls"]
layout_mode = 2 layout_mode = 2
theme_override_constants/margin_left = 0
theme_override_constants/margin_top = 3
theme_override_constants/margin_right = 0
theme_override_constants/margin_bottom = 3
[node name="PlayButton" type="Button" parent="MainControls/VBoxContainer"] [node name="PlayButton" type="Button" parent="MainControls/MarginContainer"]
layout_mode = 2 layout_mode = 2
text = "Play" text = "Play"
[node name="MultiplayerButton" type="Button" parent="MainControls/VBoxContainer"] [node name="MarginContainer2" type="MarginContainer" parent="MainControls"]
layout_mode = 2
theme_override_constants/margin_left = 0
theme_override_constants/margin_top = 3
theme_override_constants/margin_right = 0
theme_override_constants/margin_bottom = 3
[node name="MultiplayerButton" type="Button" parent="MainControls/MarginContainer2"]
layout_mode = 2 layout_mode = 2
text = "Multiplayer" text = "Multiplayer"
[node name="OptionsButton" type="Button" parent="MainControls/VBoxContainer"] [node name="MarginContainer3" type="MarginContainer" parent="MainControls"]
layout_mode = 2
theme_override_constants/margin_left = 0
theme_override_constants/margin_top = 3
theme_override_constants/margin_right = 0
theme_override_constants/margin_bottom = 3
[node name="OptionsButton" type="Button" parent="MainControls/MarginContainer3"]
layout_mode = 2 layout_mode = 2
text = "Options text = "Options
" "
[node name="QuitButton" type="Button" parent="MainControls/VBoxContainer"] [node name="MarginContainer4" type="MarginContainer" parent="MainControls"]
layout_mode = 2
theme_override_constants/margin_left = 0
theme_override_constants/margin_top = 3
theme_override_constants/margin_right = 0
theme_override_constants/margin_bottom = 3
[node name="QuitButton" type="Button" parent="MainControls/MarginContainer4"]
layout_mode = 2 layout_mode = 2
text = "Quit text = "Quit
" "
@ -68,15 +102,15 @@ text = "Quit
[node name="ProfileEditor" type="PanelContainer" parent="."] [node name="ProfileEditor" type="PanelContainer" parent="."]
layout_mode = 1 layout_mode = 1
anchors_preset = -1 anchors_preset = -1
anchor_left = 0.5 anchor_left = 1.0
anchor_top = 1.0 anchor_top = 1.0
anchor_right = 0.5 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_left = -181.5 offset_left = -429.0
offset_top = -140.0 offset_top = -140.0
offset_right = 181.5 offset_right = -55.0
offset_bottom = -30.0 offset_bottom = -40.0
grow_horizontal = 2 grow_horizontal = 0
grow_vertical = 0 grow_vertical = 0
[node name="VBoxContainer" type="VBoxContainer" parent="ProfileEditor"] [node name="VBoxContainer" type="VBoxContainer" parent="ProfileEditor"]
@ -92,14 +126,28 @@ layout_mode = 2
[node name="DisplayName" type="Label" parent="ProfileEditor/VBoxContainer/HBoxContainer"] [node name="DisplayName" type="Label" parent="ProfileEditor/VBoxContainer/HBoxContainer"]
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 3
text = "Dummy Name" text = "Dummy Name"
[node name="DisplayNameEdit" type="Button" parent="ProfileEditor/VBoxContainer/HBoxContainer"] [node name="MarginContainer" type="MarginContainer" parent="ProfileEditor/VBoxContainer/HBoxContainer"]
layout_mode = 2 layout_mode = 2
theme_override_constants/margin_left = 29
theme_override_constants/margin_top = 2
theme_override_constants/margin_right = 31
theme_override_constants/margin_bottom = 4
[node name="DisplayNameEdit" type="Button" parent="ProfileEditor/VBoxContainer/HBoxContainer/MarginContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "Change" text = "Change"
[connection signal="pressed" from="MainControls/VBoxContainer/PlayButton" to="." method="_on_play_button_pressed"] [node name="SubViewport" type="SubViewport" parent="."]
[connection signal="pressed" from="MainControls/VBoxContainer/MultiplayerButton" to="." method="_on_multiplayer_button_pressed"] size = Vector2i(1920, 1080)
[connection signal="pressed" from="MainControls/VBoxContainer/OptionsButton" to="." method="_on_options_button_pressed"]
[connection signal="pressed" from="MainControls/VBoxContainer/QuitButton" to="." method="_on_quit_button_pressed"] [node name="GridMap" parent="SubViewport" instance=ExtResource("3_l8r4a")]
[connection signal="pressed" from="ProfileEditor/VBoxContainer/HBoxContainer/DisplayNameEdit" to="." method="_on_display_name_edit_pressed"]
[connection signal="pressed" from="MainControls/MarginContainer/PlayButton" to="." method="_on_play_button_pressed"]
[connection signal="pressed" from="MainControls/MarginContainer2/MultiplayerButton" to="." method="_on_multiplayer_button_pressed"]
[connection signal="pressed" from="MainControls/MarginContainer3/OptionsButton" to="." method="_on_options_button_pressed"]
[connection signal="pressed" from="MainControls/MarginContainer4/QuitButton" to="." method="_on_quit_button_pressed"]
[connection signal="pressed" from="ProfileEditor/VBoxContainer/HBoxContainer/MarginContainer/DisplayNameEdit" to="." method="_on_display_name_edit_pressed"]

View File

@ -6,7 +6,7 @@
[ext_resource type="PackedScene" uid="uid://bf2nosqt5f82e" path="res://Scenes/Menus/keybind_options.tscn" id="5_4k33c"] [ext_resource type="PackedScene" uid="uid://bf2nosqt5f82e" path="res://Scenes/Menus/keybind_options.tscn" id="5_4k33c"]
[ext_resource type="PackedScene" uid="uid://bwc45ogto8thn" path="res://Scenes/Menus/audio_options.tscn" id="6_4vs8p"] [ext_resource type="PackedScene" uid="uid://bwc45ogto8thn" path="res://Scenes/Menus/audio_options.tscn" id="6_4vs8p"]
[node name="OptionsMenu" type="PanelContainer"] [node name="OptionsMenu" type="PanelContainer" node_paths=PackedStringArray("gameplay", "graphics", "keybinds")]
anchors_preset = 15 anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
@ -17,6 +17,9 @@ offset_bottom = -30.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
script = ExtResource("1_bievw") script = ExtResource("1_bievw")
gameplay = NodePath("VBoxContainer/TabContainer/Gameplay")
graphics = NodePath("VBoxContainer/TabContainer/Graphics")
keybinds = NodePath("VBoxContainer/TabContainer/Keybinds")
[node name="VBoxContainer" type="VBoxContainer" parent="."] [node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 2 layout_mode = 2
@ -43,13 +46,27 @@ layout_mode = 2
layout_mode = 2 layout_mode = 2
alignment = 2 alignment = 2
[node name="Cancel" type="Button" parent="VBoxContainer/HBoxContainer"] [node name="MarginContainer" type="MarginContainer" parent="VBoxContainer/HBoxContainer"]
layout_mode = 2
theme_override_constants/margin_left = 30
theme_override_constants/margin_top = 5
theme_override_constants/margin_right = 30
theme_override_constants/margin_bottom = 5
[node name="Cancel" type="Button" parent="VBoxContainer/HBoxContainer/MarginContainer"]
layout_mode = 2 layout_mode = 2
text = "Discard" text = "Discard"
[node name="Confirm" type="Button" parent="VBoxContainer/HBoxContainer"] [node name="MarginContainer2" type="MarginContainer" parent="VBoxContainer/HBoxContainer"]
layout_mode = 2
theme_override_constants/margin_left = 30
theme_override_constants/margin_top = 5
theme_override_constants/margin_right = 30
theme_override_constants/margin_bottom = 5
[node name="Confirm" type="Button" parent="VBoxContainer/HBoxContainer/MarginContainer2"]
layout_mode = 2 layout_mode = 2
text = "Confirm" text = "Confirm"
[connection signal="pressed" from="VBoxContainer/HBoxContainer/Cancel" to="." method="_on_cancel_pressed"] [connection signal="pressed" from="VBoxContainer/HBoxContainer/MarginContainer/Cancel" to="." method="_on_cancel_pressed"]
[connection signal="pressed" from="VBoxContainer/HBoxContainer/Confirm" to="." method="_on_confirm_pressed"] [connection signal="pressed" from="VBoxContainer/HBoxContainer/MarginContainer2/Confirm" to="." method="_on_confirm_pressed"]

View File

@ -39,23 +39,51 @@ grow_vertical = 2
[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer"] [node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer"]
layout_mode = 2 layout_mode = 2
[node name="Resume" type="Button" parent="PanelContainer/VBoxContainer"] [node name="MarginContainer" type="MarginContainer" parent="PanelContainer/VBoxContainer"]
layout_mode = 2
theme_override_constants/margin_left = 24
theme_override_constants/margin_top = 5
theme_override_constants/margin_right = 24
theme_override_constants/margin_bottom = 5
[node name="Resume" type="Button" parent="PanelContainer/VBoxContainer/MarginContainer"]
layout_mode = 2 layout_mode = 2
text = "Resume" text = "Resume"
[node name="Options" type="Button" parent="PanelContainer/VBoxContainer"] [node name="MarginContainer2" type="MarginContainer" parent="PanelContainer/VBoxContainer"]
layout_mode = 2
theme_override_constants/margin_left = 24
theme_override_constants/margin_top = 5
theme_override_constants/margin_right = 24
theme_override_constants/margin_bottom = 5
[node name="Options" type="Button" parent="PanelContainer/VBoxContainer/MarginContainer2"]
layout_mode = 2 layout_mode = 2
text = "Options" text = "Options"
[node name="QuitToMainMenu" type="Button" parent="PanelContainer/VBoxContainer"] [node name="MarginContainer3" type="MarginContainer" parent="PanelContainer/VBoxContainer"]
layout_mode = 2
theme_override_constants/margin_left = 24
theme_override_constants/margin_top = 5
theme_override_constants/margin_right = 24
theme_override_constants/margin_bottom = 5
[node name="QuitToMainMenu" type="Button" parent="PanelContainer/VBoxContainer/MarginContainer3"]
layout_mode = 2 layout_mode = 2
text = "Quit to main menu" text = "Quit to main menu"
[node name="QuitToDesktop" type="Button" parent="PanelContainer/VBoxContainer"] [node name="MarginContainer4" type="MarginContainer" parent="PanelContainer/VBoxContainer"]
layout_mode = 2
theme_override_constants/margin_left = 24
theme_override_constants/margin_top = 5
theme_override_constants/margin_right = 24
theme_override_constants/margin_bottom = 5
[node name="QuitToDesktop" type="Button" parent="PanelContainer/VBoxContainer/MarginContainer4"]
layout_mode = 2 layout_mode = 2
text = "Quit to desktop" text = "Quit to desktop"
[connection signal="pressed" from="PanelContainer/VBoxContainer/Resume" to="." method="_on_resume_pressed"] [connection signal="pressed" from="PanelContainer/VBoxContainer/MarginContainer/Resume" to="." method="_on_resume_pressed"]
[connection signal="pressed" from="PanelContainer/VBoxContainer/Options" to="." method="_on_options_pressed"] [connection signal="pressed" from="PanelContainer/VBoxContainer/MarginContainer2/Options" to="." method="_on_options_pressed"]
[connection signal="pressed" from="PanelContainer/VBoxContainer/QuitToMainMenu" to="." method="_on_quit_to_main_menu_pressed"] [connection signal="pressed" from="PanelContainer/VBoxContainer/MarginContainer3/QuitToMainMenu" to="." method="_on_quit_to_main_menu_pressed"]
[connection signal="pressed" from="PanelContainer/VBoxContainer/QuitToDesktop" to="." method="_on_quit_to_desktop_pressed"] [connection signal="pressed" from="PanelContainer/VBoxContainer/MarginContainer4/QuitToDesktop" to="." method="_on_quit_to_desktop_pressed"]

View File

@ -23,9 +23,14 @@ layout_mode = 2
layout_mode = 2 layout_mode = 2
placeholder_text = "Dummy Text" placeholder_text = "Dummy Text"
[node name="Button" type="Button" parent="VBoxContainer"] [node name="MarginContainer" type="MarginContainer" parent="VBoxContainer"]
layout_mode = 2
theme_override_constants/margin_left = 30
theme_override_constants/margin_right = 30
[node name="Button" type="Button" parent="VBoxContainer/MarginContainer"]
layout_mode = 2 layout_mode = 2
text = "Confirm text = "Confirm
" "
[connection signal="pressed" from="VBoxContainer/Button" to="." method="_on_button_pressed"] [connection signal="pressed" from="VBoxContainer/MarginContainer/Button" to="." method="_on_button_pressed"]

View File

@ -37,10 +37,10 @@ layout_mode = 1
anchors_preset = -1 anchors_preset = -1
anchor_left = 0.5 anchor_left = 0.5
anchor_right = 0.5 anchor_right = 0.5
offset_left = -52.5 offset_left = -312.0
offset_top = 300.0 offset_top = 331.0
offset_right = -173.0 offset_right = -157.0
offset_bottom = 31.0 offset_bottom = 369.0
grow_horizontal = 2 grow_horizontal = 2
text = "play again :3" text = "play again :3"
@ -49,10 +49,10 @@ layout_mode = 1
anchors_preset = -1 anchors_preset = -1
anchor_left = 0.5 anchor_left = 0.5
anchor_right = 0.5 anchor_right = 0.5
offset_left = 348.0 offset_left = 11.0
offset_top = 300.0 offset_top = 331.0
offset_right = -173.0 offset_right = 262.0
offset_bottom = 31.0 offset_bottom = 369.0
grow_horizontal = 2 grow_horizontal = 2
text = "quit to main menu :<" text = "quit to main menu :<"

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=12 format=3 uid="uid://1b2ikdanl66b"] [gd_scene load_steps=13 format=3 uid="uid://1b2ikdanl66b"]
[ext_resource type="Script" path="res://Scripts/card_printer.gd" id="1_7rhtj"] [ext_resource type="Script" path="res://Scripts/card_printer.gd" id="1_7rhtj"]
[ext_resource type="PackedScene" uid="uid://dixtx38u4jhd7" path="res://Scenes/UI/card_hand.tscn" id="2_7ouw1"] [ext_resource type="PackedScene" uid="uid://dixtx38u4jhd7" path="res://Scenes/UI/card_hand.tscn" id="2_7ouw1"]
@ -11,6 +11,9 @@ albedo_color = Color(0.203922, 0.592157, 0.592157, 1)
[sub_resource type="BoxShape3D" id="BoxShape3D_0ebt5"] [sub_resource type="BoxShape3D" id="BoxShape3D_0ebt5"]
size = Vector3(2.672, 1.75, 1) size = Vector3(2.672, 1.75, 1)
[sub_resource type="BoxShape3D" id="BoxShape3D_und3g"]
size = Vector3(0.816972, 0.233429, 0.632978)
[sub_resource type="ViewportTexture" id="ViewportTexture_yf4je"] [sub_resource type="ViewportTexture" id="ViewportTexture_yf4je"]
viewport_path = NodePath("SubViewport") viewport_path = NodePath("SubViewport")
@ -43,6 +46,10 @@ material = SubResource("StandardMaterial3D_s02au")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.875, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.875, 0)
shape = SubResource("BoxShape3D_0ebt5") shape = SubResource("BoxShape3D_0ebt5")
[node name="CollisionShape3D2" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.6825, 0.484672, 0)
shape = SubResource("BoxShape3D_und3g")
[node name="SubViewport" type="SubViewport" parent="."] [node name="SubViewport" type="SubViewport" parent="."]
transparent_bg = true transparent_bg = true
render_target_update_mode = 4 render_target_update_mode = 4
@ -84,8 +91,8 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.444448, 0.610684)
collision_layer = 16 collision_layer = 16
collision_mask = 0 collision_mask = 0
script = ExtResource("3_iia6u") script = ExtResource("3_iia6u")
press_cost = 10 press_cost = 20
hover_text = "Spend 10 Coins to print card" hover_text = "Spend 20 Coins to print card"
[node name="CollisionShape3D2" type="CollisionShape3D" parent="StaticBody3D"] [node name="CollisionShape3D2" type="CollisionShape3D" parent="StaticBody3D"]
shape = SubResource("BoxShape3D_ikdwj") shape = SubResource("BoxShape3D_ikdwj")
@ -131,6 +138,11 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0466152, -0.0297148, -0.09
shape = SubResource("BoxShape3D_gv3t5") shape = SubResource("BoxShape3D_gv3t5")
disabled = true disabled = true
[node name="CSGBox3D2" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.6825, 0.484672, 0)
size = Vector3(0.816972, 0.233429, 0.632978)
material = SubResource("StandardMaterial3D_s02au")
[connection signal="button_interacted" from="StaticBody3D" to="." method="_on_static_body_3d_button_interacted"] [connection signal="button_interacted" from="StaticBody3D" to="." method="_on_static_body_3d_button_interacted"]
[connection signal="button_interacted" from="StaticBody3D2" to="." method="retrieve_card"] [connection signal="button_interacted" from="StaticBody3D2" to="." method="retrieve_card"]
[connection signal="button_interacted" from="StaticBody3D3" to="." method="retrieve_card"] [connection signal="button_interacted" from="StaticBody3D3" to="." method="retrieve_card"]

View File

@ -8,6 +8,7 @@ viewport_path = NodePath("SubViewport")
[node name="Node3D" type="Sprite3D"] [node name="Node3D" type="Sprite3D"]
pixel_size = 0.0006 pixel_size = 0.0006
billboard = 1 billboard = 1
no_depth_test = true
fixed_size = true fixed_size = true
render_priority = 1 render_priority = 1
texture = SubResource("ViewportTexture_ppqlh") texture = SubResource("ViewportTexture_ppqlh")

View File

@ -3,37 +3,37 @@
[ext_resource type="Texture2D" uid="uid://ba85u6i558x4w" path="res://Assets/Textures/minimap_node.png" id="1_phew5"] [ext_resource type="Texture2D" uid="uid://ba85u6i558x4w" path="res://Assets/Textures/minimap_node.png" id="1_phew5"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xt3aj"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xt3aj"]
albedo_color = Color(0.0980392, 0.309804, 0.180392, 1) albedo_color = Color(0.356863, 0.87451, 0.94902, 1)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_gbm1j"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_gbm1j"]
albedo_color = Color(0.0980392, 0.309804, 0.180392, 1) albedo_color = Color(0.356863, 0.87451, 0.94902, 1)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_18qg8"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_18qg8"]
albedo_color = Color(0.0980392, 0.309804, 0.180392, 1) albedo_color = Color(0.356863, 0.87451, 0.94902, 1)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ip8b2"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ip8b2"]
albedo_color = Color(0.0980392, 0.309804, 0.180392, 1) albedo_color = Color(0.356863, 0.87451, 0.94902, 1)
[node name="Node3D" type="Node3D"] [node name="Node3D" type="Node3D"]
[node name="CSGBox3D2" type="CSGBox3D" parent="."] [node name="CSGBox3D2" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.02, 0.575) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.02, 0.475)
size = Vector3(0.525, 0.04, 0.05) size = Vector3(1, 0.04, 0.05)
material = SubResource("StandardMaterial3D_xt3aj") material = SubResource("StandardMaterial3D_xt3aj")
[node name="CSGBox3D3" type="CSGBox3D" parent="."] [node name="CSGBox3D3" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.02, -0.575) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.02, -0.475)
size = Vector3(0.525, 0.04, 0.05) size = Vector3(1, 0.04, 0.05)
material = SubResource("StandardMaterial3D_gbm1j") material = SubResource("StandardMaterial3D_gbm1j")
[node name="CSGBox3D4" type="CSGBox3D" parent="."] [node name="CSGBox3D4" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.575, 0.02, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.475, 0.02, 0)
size = Vector3(0.05, 0.04, 0.525) size = Vector3(0.05, 0.04, 1)
material = SubResource("StandardMaterial3D_18qg8") material = SubResource("StandardMaterial3D_18qg8")
[node name="CSGBox3D5" type="CSGBox3D" parent="."] [node name="CSGBox3D5" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.575, 0.02, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.475, 0.02, 0)
size = Vector3(0.05, 0.04, 0.525) size = Vector3(0.05, 0.04, 1)
material = SubResource("StandardMaterial3D_ip8b2") material = SubResource("StandardMaterial3D_ip8b2")
[node name="Sprite3D" type="Sprite3D" parent="."] [node name="Sprite3D" type="Sprite3D" parent="."]

View File

@ -26,7 +26,7 @@ func point_is_build_location(point_id):
return !non_build_locations.has(point_id) return !non_build_locations.has(point_id)
func test_path_if_point_toggled(point_id): func test_path_if_point_toggled(point_id) -> bool:
if astar.is_point_disabled(point_id): if astar.is_point_disabled(point_id):
astar.set_point_disabled(point_id, false) astar.set_point_disabled(point_id, false)
else: else:
@ -60,6 +60,29 @@ func networked_spawn_wall(pos : Vector3, name_id : int):
tower_path.add_child(base) tower_path.add_child(base)
func build_random_maze(block_limit):
var untested_point_ids = []
for index in (grid_size.x * grid_size.y):
untested_point_ids.append(index)
if block_limit <= 0 or block_limit > untested_point_ids.size():
block_limit = untested_point_ids.size()
for index in block_limit:
var random_point = untested_point_ids.pick_random()
untested_point_ids.erase(random_point)
if test_path_if_point_toggled(random_point):
networked_toggle_point.rpc(random_point)
func place_random_towers(tower_limit):
var untowered_bases = tower_bases.duplicate()
if tower_limit <= 0 or tower_limit > untowered_bases.size():
tower_limit = untowered_bases.size()
for index in tower_limit:
var random_base = untowered_bases.pick_random() as TowerBase
untowered_bases.erase(random_base)
random_base.add_card(Data.cards.pick_random())
func find_path() -> bool: func find_path() -> bool:
var path = astar.get_point_path(astar.get_point_count() - 2, astar.get_point_count() - 1) var path = astar.get_point_path(astar.get_point_count() - 2, astar.get_point_count() - 1)
if !path.is_empty(): if !path.is_empty():

26
Scripts/CinemaCam.gd Normal file
View File

@ -0,0 +1,26 @@
extends Node3D
class_name CinematicCamManager
@export var path_follows : Array[PathFollow3D]
@export var cameras : Array[Camera3D]
@export var pan_speed := 1.0
var current_cam := 0
var does_its_thing := true
func _ready() -> void:
for path_follow in path_follows:
path_follow.progress_ratio = 0.0
if does_its_thing:
cameras[0].make_current()
func _process(delta: float) -> void:
if does_its_thing:
path_follows[current_cam].progress_ratio += pan_speed * delta
if path_follows[current_cam].progress_ratio >= 1.0:
current_cam += 1
if current_cam >= cameras.size():
current_cam = 0
path_follows[current_cam].progress_ratio = 0.0
cameras[current_cam].make_current()

View File

@ -3,7 +3,7 @@ class_name ProjectileTower
@export var projectile_scene : PackedScene @export var projectile_scene : PackedScene
var force := 20.0 var force := 150.0
var projectile_id := 0 var projectile_id := 0
@ -21,7 +21,7 @@ func networked_shoot():
@rpc("reliable", "call_local") @rpc("reliable", "call_local")
func networked_spawn_projectile(peer_id): func networked_spawn_projectile(peer_id):
var projectile = projectile_scene.instantiate() as Projectile var projectile = projectile_scene.instantiate() as Projectile
projectile.position = global_position + Vector3.UP projectile.position = yaw_model.global_position
projectile.damage = damage projectile.damage = damage
projectile.direction = -yaw_model.global_transform.basis.z projectile.direction = -yaw_model.global_transform.basis.z
projectile.force = force projectile.force = force

View File

@ -17,6 +17,10 @@ func _physics_process(_delta: float) -> void:
fire(enemy) fire(enemy)
func aim():
pass
func fire(target): func fire(target):
if is_instance_valid(target) and target.alive: if is_instance_valid(target) and target.alive:
target.damage(damage) target.damage(damage)

View File

@ -5,7 +5,7 @@ signal completed
func set_popup(prompt_text, dismiss_text): func set_popup(prompt_text, dismiss_text):
$VBoxContainer/Label.text = prompt_text $VBoxContainer/Label.text = prompt_text
$VBoxContainer/Button.text = dismiss_text $VBoxContainer/MarginContainerButton.text = dismiss_text
func _on_button_pressed() -> void: func _on_button_pressed() -> void:

View File

@ -49,8 +49,8 @@ func retrieve_card(i):
var card = cards[i].stats var card = cards[i].stats
var item = item_card_scene.instantiate() as ItemCard var item = item_card_scene.instantiate() as ItemCard
item.card = card item.card = card
item.position = Vector3(1.683, 0, 0)
add_child(item) add_child(item)
item.position += -transform.basis.z * 2
button_collider.disabled = false button_collider.disabled = false
button_box.position = Vector3(0,0,0) button_box.position = Vector3(0,0,0)

View File

@ -5,8 +5,8 @@ signal completed(outcome)
func set_popup(prompt_text, confirm_text, cancel_text): func set_popup(prompt_text, confirm_text, cancel_text):
$VBoxContainer/Label.text = prompt_text $VBoxContainer/Label.text = prompt_text
$VBoxContainer/HBoxContainer/Confirm.text = confirm_text $VBoxContainer/HBoxContainer/MarginContainer/Confirm.text = confirm_text
$VBoxContainer/HBoxContainer/Cancel.text = cancel_text $VBoxContainer/HBoxContainer/MarginContainer2/Cancel.text = cancel_text
func _on_confirm_pressed() -> void: func _on_confirm_pressed() -> void:

View File

@ -9,8 +9,8 @@ var preferences : PlayerPreferences
var player_profile : PlayerProfile var player_profile : PlayerProfile
var player_keymap : PlayerKeymap var player_keymap : PlayerKeymap
var wall_cost := 4 var wall_cost := 1
var printer_cost := 10 var printer_cost := 20
enum TargetType {UNDEFINED = 0, LAND = 1, AIR = 2, BOTH = 3} enum TargetType {UNDEFINED = 0, LAND = 1, AIR = 2, BOTH = 3}
enum EnemyType {UNDEFINED = 0, LAND = 1, AIR = 2} enum EnemyType {UNDEFINED = 0, LAND = 1, AIR = 2}
enum Rarity {COMMON = 0, UNCOMMON = 1, RARE = 2, EPIC = 3, LEGENDARY = 4} enum Rarity {COMMON = 0, UNCOMMON = 1, RARE = 2, EPIC = 3, LEGENDARY = 4}

View File

@ -22,10 +22,13 @@ var level : Level
var enemies := 0 var enemies := 0
var objective_health := 120 var objective_health := 120
var wave := 0 var wave := 0
var endless_mode := false
var upcoming_wave var upcoming_wave
var pot : float var pot : float
var UILayer : CanvasLayer var UILayer : CanvasLayer
var chatbox : Chatbox var chatbox : Chatbox
var wave_limit := 20
var starting_cash := 16
func _ready() -> void: func _ready() -> void:
@ -44,6 +47,20 @@ func parse_command(text : String, peer_id : int):
connected_players_nodes[peer_id].inventory.add(gift) connected_players_nodes[peer_id].inventory.add(gift)
if text.substr(1, 2) == "tr": if text.substr(1, 2) == "tr":
chatbox.append_message("SERVER", Color.TOMATO, "[color=#f7a8b8]t[color=#55cdfc]r[color=#ffffff]a[color=#55cdfc]n[color=#f7a8b8]s [color=#e50000]r[color=#ff8d00]i[color=#ffee00]g[color=#028121]h[color=#004cff]t[color=#760088]s[color=white]!!") chatbox.append_message("SERVER", Color.TOMATO, "[color=#f7a8b8]t[color=#55cdfc]r[color=#ffffff]a[color=#55cdfc]n[color=#f7a8b8]s [color=#e50000]r[color=#ff8d00]i[color=#ffee00]g[color=#028121]h[color=#004cff]t[color=#760088]s[color=white]!!")
if text.substr(1, 11) == "random_maze":
level.a_star_graph_3d.build_random_maze(50)
if text.substr(1, 13) == "random_towers":
level.a_star_graph_3d.place_random_towers(level.a_star_graph_3d.tower_bases.size() / 3.0)
if text.substr(1, 11) == "set_endless":
if is_multiplayer_authority():
networked_set_endless.rpc(true)
else:
chatbox.append_message("SERVER", Color.TOMATO, "Unable to edit gamemode")
if text.substr(1, 12) == "set_standard":
if is_multiplayer_authority():
networked_set_endless.rpc(false)
else:
chatbox.append_message("SERVER", Color.TOMATO, "Unable to edit gamemode")
# if text.substr(1, 17) == "show tower ranges": # if text.substr(1, 17) == "show tower ranges":
# pass # pass
# if text.substr(1, 20) = "show gauntlet ranges": # if text.substr(1, 20) = "show gauntlet ranges":
@ -82,6 +99,7 @@ func spawn_players(player_array, player_profiles, chatbox_open_signal, chatbox_c
enemy_number_changed.connect(player.hud.set_enemy_count) enemy_number_changed.connect(player.hud.set_enemy_count)
add_child(player) add_child(player)
p_i += 1 p_i += 1
level.cinematic_cam.does_its_thing = false
start_game() start_game()
@ -116,6 +134,15 @@ func networked_set_upcoming_wave(wave_dict, coins):
connected_players_nodes[key].hud.set_upcoming_wave(upcoming_wave) connected_players_nodes[key].hud.set_upcoming_wave(upcoming_wave)
@rpc("reliable", "call_local")
func networked_set_endless(value):
endless_mode = value
if endless_mode:
chatbox.append_message("SERVER", Color.TOMATO, "Endless mode enabled!")
else:
chatbox.append_message("SERVER", Color.TOMATO, "Endless mode disabled!")
func increase_enemy_count(): func increase_enemy_count():
enemies += 1 enemies += 1
enemy_number_changed.emit(enemies) enemy_number_changed.emit(enemies)
@ -131,7 +158,7 @@ func enemy_died(enemy):
return return
if enemies == 0: if enemies == 0:
end_wave() end_wave()
if wave >= 20: if !endless_mode and wave >= wave_limit:
win_game() win_game()
@ -146,7 +173,7 @@ func damage_goal(enemy, penalty):
lose_game() lose_game()
elif enemies == 0: elif enemies == 0:
end_wave() end_wave()
if wave >= 20: if !endless_mode and wave >= wave_limit:
win_game() win_game()
@ -174,7 +201,7 @@ func start_game():
level.a_star_graph_3d.find_path() level.a_star_graph_3d.find_path()
set_upcoming_wave() set_upcoming_wave()
for peer_id in connected_players_nodes: for peer_id in connected_players_nodes:
connected_players_nodes[peer_id].currency = 20 connected_players_nodes[peer_id].currency = starting_cash / connected_players_nodes.size()
game_started.emit() game_started.emit()

View File

@ -1,4 +1,5 @@
extends VBoxContainer extends VBoxContainer
class_name KeybindsOptionsMenu
var keybind_popup = load("res://Scenes/UI/keybind_popup.tscn") var keybind_popup = load("res://Scenes/UI/keybind_popup.tscn")
var keybind_boxes = [] var keybind_boxes = []

View File

@ -6,3 +6,4 @@ class_name Level
@export var enemy_spawns : Array[Node3D] = [] @export var enemy_spawns : Array[Node3D] = []
@export var enemy_goals : Array[Node3D] = [] @export var enemy_goals : Array[Node3D] = []
@export var a_star_graph_3d : AStarGraph3D @export var a_star_graph_3d : AStarGraph3D
@export var cinematic_cam : CinematicCamManager

View File

@ -4,9 +4,28 @@ var confirmation_popup_scene = preload("res://Scenes/Menus/confirmation_popup.ts
var text_input_popup_scene = preload("res://Scenes/Menus/text_input_popup.tscn") var text_input_popup_scene = preload("res://Scenes/Menus/text_input_popup.tscn")
var multiplayer_lobby_scene_path = "res://Scenes/multiplayer_lobby.tscn" var multiplayer_lobby_scene_path = "res://Scenes/multiplayer_lobby.tscn"
var options_menu_scene = preload("res://Scenes/Menus/options_menu.tscn") var options_menu_scene = preload("res://Scenes/Menus/options_menu.tscn")
@export var bg_level : Level
func _ready() -> void: func _ready() -> void:
$ProfileEditor/VBoxContainer/HBoxContainer/DisplayName.text = Data.player_profile.display_name $ProfileEditor/VBoxContainer/HBoxContainer/DisplayName.text = Data.player_profile.display_name
bg_level.a_star_graph_3d.make_grid()
bg_level.a_star_graph_3d.find_path()
bg_level.a_star_graph_3d.build_random_maze(50)
bg_level.a_star_graph_3d.place_random_towers(20)
var new_wave = WaveManager.generate_wave(400, bg_level.enemy_pool)
for spawn in bg_level.enemy_spawns:
spawn.signal_for_after_enemy_died = enemy_died
spawn.signal_for_after_enemy_reached_goal = damage_goal
spawn.signal_for_when_enemy_spawns.connect(increase_enemy_count)
spawn.spawn_wave(new_wave)
func enemy_died(some_arg):
pass
func damage_goal():
pass
func increase_enemy_count():
pass
func _on_display_name_edit_pressed() -> void: func _on_display_name_edit_pressed() -> void:

View File

@ -1,12 +1,18 @@
extends Control extends Control
class_name OptionsMenu class_name OptionsMenu
@export var gameplay : GameplayOptionsMenu
@export var graphics : GraphicsOptionsMenu
@export var keybinds : KeybindsOptionsMenu
func _on_cancel_pressed() -> void: func _on_cancel_pressed() -> void:
queue_free() queue_free()
func _on_confirm_pressed() -> void: func _on_confirm_pressed() -> void:
gameplay.save()
graphics.save()
Data.graphics.apply_graphical_settings(get_viewport()) Data.graphics.apply_graphical_settings(get_viewport())
Data.graphics.save_profile_to_disk() Data.graphics.save_profile_to_disk()
Data.preferences.save_profile_to_disk() Data.preferences.save_profile_to_disk()

View File

@ -1,58 +0,0 @@
extends Node3D
class_name OldTower
@export var model : Node3D
@export var range_sphere : CSGSphere3D
@export var minimap_range_sphere : CSGSphere3D
var targeted_enemy
var cooldown := 0.0
var other_cooldown := 0.0
func _ready() -> void:
cooldown = 1.0 / stats.fire_rate
range_sphere.radius = stats.fire_range
minimap_range_sphere.radius = stats.fire_range
#minimap_range_sphere.set_visible(true)
func preview_range(value):
range_sphere.set_visible(value)
minimap_range_sphere.set_visible(value)
func _process(delta: float) -> void:
other_cooldown -= delta
if !targeted_enemy:
acquire_target()
else:
if model.global_position.distance_to(targeted_enemy.global_position) > stats.fire_range:
targeted_enemy = null
if targeted_enemy:
aim()
if other_cooldown <= 0:
shoot()
other_cooldown = cooldown
func shoot():
targeted_enemy.damage(stats.damage)
func aim():
model.look_at(targeted_enemy.global_position)
func acquire_target():
var most_progressed_enemy = null
for enemy in get_tree().get_nodes_in_group("Enemies"):
if model.global_position.distance_to(enemy.global_position) > stats.fire_range:
continue
var em_1 = enemy.movement_controller as EnemyMovement
var em_2 : EnemyMovement
if most_progressed_enemy != null:
em_2 = most_progressed_enemy.movement_controller as EnemyMovement
if (most_progressed_enemy == null or em_1.distance_remaining < em_2.distance_remaining) and enemy.stats.target_type & stats.can_target:
most_progressed_enemy = enemy
if most_progressed_enemy != null:
targeted_enemy = most_progressed_enemy

View File

@ -0,0 +1,26 @@
[gd_scene load_steps=3 format=3 uid="uid://d3h3lmlf3hljl"]
[ext_resource type="Texture2D" uid="uid://drbfdp7kugbri" path="res://Assets/Textures/bush.png" id="1_2ubx8"]
[ext_resource type="Texture2D" uid="uid://dg47vgt0uccw1" path="res://Assets/Textures/minimap_tree.png" id="2_6w34c"]
[node name="Bush" type="Node3D"]
[node name="Sprite3D" type="Sprite3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.15464, 0)
pixel_size = 0.05
alpha_cut = 1
texture_filter = 0
texture = ExtResource("1_2ubx8")
[node name="Sprite3D2" type="Sprite3D" parent="."]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 2.15464, 0)
pixel_size = 0.05
alpha_cut = 1
texture_filter = 0
texture = ExtResource("1_2ubx8")
[node name="Sprite3D3" type="Sprite3D" parent="."]
transform = Transform3D(7.5, 0, 0, 0, -3.27835e-07, 7.5, 0, -7.5, -3.27835e-07, 0, 5.98547, 0)
layers = 4
texture_filter = 0
texture = ExtResource("2_6w34c")

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,7 +1,8 @@
[gd_scene load_steps=9 format=3 uid="uid://b7s8i67yqvwbw"] [gd_scene load_steps=12 format=3 uid="uid://b7s8i67yqvwbw"]
[ext_resource type="Texture2D" uid="uid://r8cr41blojpm" path="res://Assets/Textures/stone wall 7.png" id="1_ftah0"]
[ext_resource type="Texture2D" uid="uid://blnfsojw4ukq4" path="res://Assets/Textures/grass.png" id="1_nc7wu"] [ext_resource type="Texture2D" uid="uid://blnfsojw4ukq4" path="res://Assets/Textures/grass.png" id="1_nc7wu"]
[ext_resource type="Texture2D" uid="uid://dgwsvkmnesjjm" path="res://Assets/Textures/stone.png" id="2_udt8k"]
[ext_resource type="Texture2D" uid="uid://cnvndwp3q7rke" path="res://Assets/Textures/dirt.png" id="3_1edgw"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ulcfh"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ulcfh"]
albedo_texture = ExtResource("1_nc7wu") albedo_texture = ExtResource("1_nc7wu")
@ -14,7 +15,8 @@ orientation = 1
[sub_resource type="BoxShape3D" id="BoxShape3D_mtfk2"] [sub_resource type="BoxShape3D" id="BoxShape3D_mtfk2"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_jnpkd"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_jnpkd"]
albedo_texture = ExtResource("1_ftah0") albedo_texture = ExtResource("2_udt8k")
texture_filter = 0
[sub_resource type="QuadMesh" id="QuadMesh_twahx"] [sub_resource type="QuadMesh" id="QuadMesh_twahx"]
material = SubResource("StandardMaterial3D_jnpkd") material = SubResource("StandardMaterial3D_jnpkd")
@ -22,9 +24,19 @@ orientation = 1
[sub_resource type="BoxShape3D" id="BoxShape3D_d3j6k"] [sub_resource type="BoxShape3D" id="BoxShape3D_d3j6k"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_e3y4s"]
albedo_texture = ExtResource("3_1edgw")
texture_filter = 0
[sub_resource type="QuadMesh" id="QuadMesh_u8bp3"]
material = SubResource("StandardMaterial3D_e3y4s")
size = Vector2(2, 2)
center_offset = Vector3(0, -1, 1)
[node name="Library" type="Node3D"] [node name="Library" type="Node3D"]
[node name="MeshInstance3D" type="MeshInstance3D" parent="."] [node name="MeshInstance3D" type="MeshInstance3D" parent="."]
transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0)
mesh = SubResource("QuadMesh_yxhjj") mesh = SubResource("QuadMesh_yxhjj")
[node name="StaticBody3D" type="StaticBody3D" parent="MeshInstance3D"] [node name="StaticBody3D" type="StaticBody3D" parent="MeshInstance3D"]
@ -34,7 +46,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0)
shape = SubResource("BoxShape3D_mtfk2") shape = SubResource("BoxShape3D_mtfk2")
[node name="MeshInstance3D2" type="MeshInstance3D" parent="."] [node name="MeshInstance3D2" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.07427, 0, 0) transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 2, 0, 0)
mesh = SubResource("QuadMesh_twahx") mesh = SubResource("QuadMesh_twahx")
[node name="StaticBody3D" type="StaticBody3D" parent="MeshInstance3D2"] [node name="StaticBody3D" type="StaticBody3D" parent="MeshInstance3D2"]
@ -42,3 +54,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0)
[node name="CollisionShape3D" type="CollisionShape3D" parent="MeshInstance3D2/StaticBody3D"] [node name="CollisionShape3D" type="CollisionShape3D" parent="MeshInstance3D2/StaticBody3D"]
shape = SubResource("BoxShape3D_d3j6k") shape = SubResource("BoxShape3D_d3j6k")
[node name="MeshInstance3D3" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0, 0)
mesh = SubResource("QuadMesh_u8bp3")

BIN
assaultmod.res Normal file

Binary file not shown.

BIN
assaultmodel.glb Normal file

Binary file not shown.

45
assaultmodel.glb.import Normal file
View File

@ -0,0 +1,45 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://ciu2crn0o7htc"
path="res://.godot/imported/assaultmodel.glb-c8e5e4674872be4256882c2b710ccd90.scn"
[deps]
source_file="res://assaultmodel.glb"
dest_files=["res://.godot/imported/assaultmodel.glb-c8e5e4674872be4256882c2b710ccd90.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={
"meshes": {
"assaultmodel_Cube": {
"generate/lightmap_uv": 0,
"generate/lods": 0,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 60.0,
"lods/normal_split_angle": 25.0,
"save_to_file/enabled": true,
"save_to_file/make_streamable": "",
"save_to_file/path": "res://assaultmod.res"
}
}
}
gltf/embedded_image_handling=0

BIN
assaulttex.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

34
assaulttex.png.import Normal file
View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ndhxw3xc8gxq"
path="res://.godot/imported/assaulttex.png-6e11a170a27a126d24f7975db5bc05f7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assaulttex.png"
dest_files=["res://.godot/imported/assaulttex.png-6e11a170a27a126d24f7975db5bc05f7.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

BIN
blowdart.glb Normal file

Binary file not shown.

45
blowdart.glb.import Normal file
View File

@ -0,0 +1,45 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://nhkh1qnqtll6"
path="res://.godot/imported/blowdart.glb-2617a336df09b573280ccf8682d7c3db.scn"
[deps]
source_file="res://blowdart.glb"
dest_files=["res://.godot/imported/blowdart.glb-2617a336df09b573280ccf8682d7c3db.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={
"meshes": {
"blowdart_Cube": {
"generate/lightmap_uv": 0,
"generate/lods": 0,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 60.0,
"lods/normal_split_angle": 25.0,
"save_to_file/enabled": true,
"save_to_file/make_streamable": "",
"save_to_file/path": "res://blowdart.res"
}
}
}
gltf/embedded_image_handling=1

BIN
blowdart.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

34
blowdart.png.import Normal file
View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cmgtiw6p50bbi"
path="res://.godot/imported/blowdart.png-89805f290c965afb19be973b67aee777.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://blowdart.png"
dest_files=["res://.godot/imported/blowdart.png-89805f290c965afb19be973b67aee777.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

BIN
blowdart.res Normal file

Binary file not shown.

BIN
bombamod.glb Normal file

Binary file not shown.

45
bombamod.glb.import Normal file
View File

@ -0,0 +1,45 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://c7oec0i1k76et"
path="res://.godot/imported/bombamod.glb-9cd4bd592733c8fe463d0d059a606443.scn"
[deps]
source_file="res://bombamod.glb"
dest_files=["res://.godot/imported/bombamod.glb-9cd4bd592733c8fe463d0d059a606443.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={
"meshes": {
"bombamod_Cube": {
"generate/lightmap_uv": 0,
"generate/lods": 0,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 60.0,
"lods/normal_split_angle": 25.0,
"save_to_file/enabled": true,
"save_to_file/make_streamable": "",
"save_to_file/path": "res://bombamodel.res"
}
}
}
gltf/embedded_image_handling=0

BIN
bombamodel.res Normal file

Binary file not shown.

BIN
bombatex.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

34
bombatex.png.import Normal file
View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cxwtwh2al18cb"
path="res://.godot/imported/bombatex.png-9dbb47ba6064c156118cceb5fb9a6cdc.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://bombatex.png"
dest_files=["res://.godot/imported/bombatex.png-9dbb47ba6064c156118cceb5fb9a6cdc.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

View File

@ -5,8 +5,14 @@ content_margin_left = 5.0
content_margin_top = 2.0 content_margin_top = 2.0
content_margin_right = 5.0 content_margin_right = 5.0
content_margin_bottom = 2.0 content_margin_bottom = 2.0
bg_color = Color(0.505882, 0.678431, 0.901961, 1) bg_color = Color(0, 0, 0, 0.572549)
corner_radius_top_left = 30 border_width_left = 2
corner_radius_top_right = 30 border_width_top = 2
corner_radius_bottom_right = 30 border_width_right = 2
corner_radius_bottom_left = 30 border_width_bottom = 2
border_color = Color(0.862745, 0.862745, 0.862745, 0.780392)
border_blend = true
expand_margin_left = 30.0
expand_margin_top = 2.0
expand_margin_right = 30.0
expand_margin_bottom = 5.0

BIN
flamethrower.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

34
flamethrower.png.import Normal file
View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://33ebstkmuw2s"
path="res://.godot/imported/flamethrower.png-b7ebd4e56d3a0a576d95c57120e28da0.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://flamethrower.png"
dest_files=["res://.godot/imported/flamethrower.png-b7ebd4e56d3a0a576d95c57120e28da0.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

BIN
flamethrower_mesh.res Normal file

Binary file not shown.

BIN
fridge.glb Normal file

Binary file not shown.

45
fridge.glb.import Normal file
View File

@ -0,0 +1,45 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://c6bawh1fc8dpm"
path="res://.godot/imported/fridge.glb-fc8eb7a817edc810c3127301db604b88.scn"
[deps]
source_file="res://fridge.glb"
dest_files=["res://.godot/imported/fridge.glb-fc8eb7a817edc810c3127301db604b88.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={
"meshes": {
"fridge_Cube": {
"generate/lightmap_uv": 0,
"generate/lods": 0,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 60.0,
"lods/normal_split_angle": 25.0,
"save_to_file/enabled": true,
"save_to_file/make_streamable": "",
"save_to_file/path": "res://fridge_mesh.res"
}
}
}
gltf/embedded_image_handling=1

BIN
fridge.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

34
fridge.png.import Normal file
View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cs77k4nnd1tql"
path="res://.godot/imported/fridge.png-13d1eccf6f0cb3bedbda59f6f5716000.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://fridge.png"
dest_files=["res://.godot/imported/fridge.png-13d1eccf6f0cb3bedbda59f6f5716000.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

BIN
fridge_mesh.res Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
gatling.glb Normal file

Binary file not shown.

45
gatling.glb.import Normal file
View File

@ -0,0 +1,45 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://c8l43de2o07kb"
path="res://.godot/imported/gatling.glb-4b067db175131d6c02f2fca189542755.scn"
[deps]
source_file="res://gatling.glb"
dest_files=["res://.godot/imported/gatling.glb-4b067db175131d6c02f2fca189542755.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={
"meshes": {
"gatling_Cube": {
"generate/lightmap_uv": 0,
"generate/lods": 0,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 60.0,
"lods/normal_split_angle": 25.0,
"save_to_file/enabled": true,
"save_to_file/make_streamable": "",
"save_to_file/path": "res://gattlemesh.res"
}
}
}
gltf/embedded_image_handling=1

BIN
gatling.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

34
gatling.png.import Normal file
View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bjh6e8t8br6rq"
path="res://.godot/imported/gatling.png-1ebead1b9b8aeec51c018f4be308dec1.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://gatling.png"
dest_files=["res://.godot/imported/gatling.png-1ebead1b9b8aeec51c018f4be308dec1.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

BIN
gattlemesh.res Normal file

Binary file not shown.

BIN
glue_launcher_model.res Normal file

Binary file not shown.

BIN
gluegun.glb Normal file

Binary file not shown.

45
gluegun.glb.import Normal file
View File

@ -0,0 +1,45 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://dd2lht485rtdu"
path="res://.godot/imported/gluegun.glb-cbcef9fb1740eebcdeeca8e1e3fadbb0.scn"
[deps]
source_file="res://gluegun.glb"
dest_files=["res://.godot/imported/gluegun.glb-cbcef9fb1740eebcdeeca8e1e3fadbb0.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={
"meshes": {
"gluegun_Cube": {
"generate/lightmap_uv": 0,
"generate/lods": 0,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 60.0,
"lods/normal_split_angle": 25.0,
"save_to_file/enabled": true,
"save_to_file/make_streamable": "",
"save_to_file/path": "res://glue_launcher_model.res"
}
}
}
gltf/embedded_image_handling=1

BIN
gluegun.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

34
gluegun.png.import Normal file
View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ukdbh416xfrl"
path="res://.godot/imported/gluegun.png-290a851e4b41fcbe30fec47bcbe5d928.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://gluegun.png"
dest_files=["res://.godot/imported/gluegun.png-290a851e4b41fcbe30fec47bcbe5d928.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

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