enabled enforced static typing
BIN
PCs/Mechanic/ClassCards/Assault/assaultmod.res
Normal file
BIN
PCs/Mechanic/ClassCards/Assault/assaultmodel.glb
Normal file
47
PCs/Mechanic/ClassCards/Assault/assaultmodel.glb.import
Normal file
@ -0,0 +1,47 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://ciu2crn0o7htc"
|
||||
path="res://.godot/imported/assaultmodel.glb-073600f1438ee9835f657eb91f1c5485.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Mechanic/ClassCards/Assault/assaultmodel.glb"
|
||||
dest_files=["res://.godot/imported/assaultmodel.glb-073600f1438ee9835f657eb91f1c5485.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
|
||||
meshes/force_disable_compression=false
|
||||
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": false,
|
||||
"save_to_file/make_streamable": "",
|
||||
"save_to_file/path": "res://assaultmod.res"
|
||||
}
|
||||
}
|
||||
}
|
||||
gltf/naming_version=0
|
||||
gltf/embedded_image_handling=0
|
BIN
PCs/Mechanic/ClassCards/Assault/assaulttex.png
Normal file
After Width: | Height: | Size: 25 KiB |
34
PCs/Mechanic/ClassCards/Assault/assaulttex.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ndhxw3xc8gxq"
|
||||
path="res://.godot/imported/assaulttex.png-08b38f9d8284c97f25704f353f842c2e.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Mechanic/ClassCards/Assault/assaulttex.png"
|
||||
dest_files=["res://.godot/imported/assaulttex.png-08b38f9d8284c97f25704f353f842c2e.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
|
17
PCs/Mechanic/ClassCards/Assault/card_assault.tres
Normal file
@ -0,0 +1,17 @@
|
||||
[gd_resource type="Resource" script_class="Card" load_steps=6 format=3 uid="uid://deer0awg4d18o"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/card.gd" id="1_yqa4b"]
|
||||
[ext_resource type="PackedScene" uid="uid://2eehfcrsednw" path="res://PCs/Mechanic/ClassCards/Assault/weapon_assault.tscn" id="3_28y3b"]
|
||||
[ext_resource type="Resource" uid="uid://bdmsiw45xxhiv" path="res://PCs/Mechanic/ClassCards/Assault/tower_stats.tres" id="3_ks0jw"]
|
||||
[ext_resource type="PackedScene" uid="uid://bbfm4i4xlkwdr" path="res://PCs/Mechanic/ClassCards/Assault/tower_assault.tscn" id="4_5nu32"]
|
||||
[ext_resource type="Resource" uid="uid://smctw4ogm4rx" path="res://PCs/Mechanic/ClassCards/Assault/weapon_stats.tres" id="4_est7t"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_yqa4b")
|
||||
rarity = 0
|
||||
faction = 0
|
||||
turret_scene = ExtResource("4_5nu32")
|
||||
weapon_scene = ExtResource("3_28y3b")
|
||||
weapon_stats = ExtResource("4_est7t")
|
||||
tower_stats = ExtResource("3_ks0jw")
|
||||
display_name = "Assault"
|
BIN
PCs/Mechanic/ClassCards/Assault/g_assault.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
34
PCs/Mechanic/ClassCards/Assault/g_assault.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://celay30i4soud"
|
||||
path="res://.godot/imported/g_assault.png-0ca3df6e10c02c70c867c99ade5c81da.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Mechanic/ClassCards/Assault/g_assault.png"
|
||||
dest_files=["res://.godot/imported/g_assault.png-0ca3df6e10c02c70c867c99ade5c81da.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
PCs/Mechanic/ClassCards/Assault/shot1.wav
Normal file
24
PCs/Mechanic/ClassCards/Assault/shot1.wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://chrf1dcq2ujw0"
|
||||
path="res://.godot/imported/shot1.wav-c464c422ce6f3ea76414bfcacc678016.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Mechanic/ClassCards/Assault/shot1.wav"
|
||||
dest_files=["res://.godot/imported/shot1.wav-c464c422ce6f3ea76414bfcacc678016.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
1
PCs/Mechanic/ClassCards/Assault/tower_assault.gd
Normal file
@ -0,0 +1 @@
|
||||
class_name AssaultTower extends HitscanTower
|
27
PCs/Mechanic/ClassCards/Assault/tower_assault.tscn
Normal file
@ -0,0 +1,27 @@
|
||||
[gd_scene load_steps=7 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="Resource" uid="uid://bdmsiw45xxhiv" path="res://PCs/Mechanic/ClassCards/Assault/tower_stats.tres" id="2_gg1gn"]
|
||||
[ext_resource type="Script" path="res://PCs/Mechanic/ClassCards/Assault/tower_assault.gd" id="2_olbck"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://oxjhqfwlcx5l" path="res://PCs/Mechanic/ClassCards/Assault/assaultmod.res" id="4_1d5pl"]
|
||||
[ext_resource type="AudioStream" uid="uid://chrf1dcq2ujw0" path="res://PCs/Mechanic/ClassCards/Assault/shot1.wav" id="5_3eokp"]
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_dagyn"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("5_3eokp")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="AssaultTower" instance=ExtResource("1_uadu5")]
|
||||
script = ExtResource("2_olbck")
|
||||
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")
|
||||
|
||||
[node name="AudioStreamPlayer3D" parent="Yaw" index="0"]
|
||||
stream = SubResource("AudioStreamRandomizer_dagyn")
|
25
PCs/Mechanic/ClassCards/Assault/tower_stats.tres
Normal file
@ -0,0 +1,25 @@
|
||||
[gd_resource type="Resource" script_class="CardText" load_steps=6 format=3 uid="uid://bdmsiw45xxhiv"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/stat_attribute.gd" id="1_qgv2j"]
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/card_text.gd" id="2_7wr4x"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_bukji"]
|
||||
script = ExtResource("1_qgv2j")
|
||||
key = "Fire Delay"
|
||||
value = 0.5
|
||||
|
||||
[sub_resource type="Resource" id="Resource_2e75s"]
|
||||
script = ExtResource("1_qgv2j")
|
||||
key = "Damage"
|
||||
value = 1.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_1vpnf"]
|
||||
script = ExtResource("1_qgv2j")
|
||||
key = "Range"
|
||||
value = 10.0
|
||||
|
||||
[resource]
|
||||
script = ExtResource("2_7wr4x")
|
||||
target_type = 1
|
||||
attributes = Array[ExtResource("1_qgv2j")]([SubResource("Resource_bukji"), SubResource("Resource_2e75s"), SubResource("Resource_1vpnf")])
|
||||
text = "Fires a shot every /Fire Delay\\ seconds dealing /Damage\\ damage at a range of /Range\\m"
|
1
PCs/Mechanic/ClassCards/Assault/weapon_assault.gd
Normal file
@ -0,0 +1 @@
|
||||
class_name AssaultWeapon extends HitscanWeapon
|
25
PCs/Mechanic/ClassCards/Assault/weapon_assault.tscn
Normal file
@ -0,0 +1,25 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://2eehfcrsednw"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://difwo7wlyqr3h" path="res://Scenes/Weapons/hitscan_weapon.tscn" id="1_wkxf7"]
|
||||
[ext_resource type="Resource" uid="uid://smctw4ogm4rx" path="res://PCs/Mechanic/ClassCards/Assault/weapon_stats.tres" id="2_fnp5x"]
|
||||
[ext_resource type="Texture2D" uid="uid://celay30i4soud" path="res://PCs/Mechanic/ClassCards/Assault/g_assault.png" id="3_kuj4t"]
|
||||
[ext_resource type="AudioStream" uid="uid://chrf1dcq2ujw0" path="res://PCs/Mechanic/ClassCards/Assault/shot1.wav" id="4_gdaci"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_604rb"]
|
||||
atlas = ExtResource("3_kuj4t")
|
||||
region = Rect2(0, 0, 64, 64)
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_rhtcf"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("4_gdaci")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="HitscanWeapon" instance=ExtResource("1_wkxf7")]
|
||||
stats = ExtResource("2_fnp5x")
|
||||
|
||||
[node name="Sprite3D" parent="." index="0"]
|
||||
texture = SubResource("AtlasTexture_604rb")
|
||||
|
||||
[node name="AudioStreamPlayer3D" parent="." index="5"]
|
||||
stream = SubResource("AudioStreamRandomizer_rhtcf")
|
30
PCs/Mechanic/ClassCards/Assault/weapon_stats.tres
Normal file
@ -0,0 +1,30 @@
|
||||
[gd_resource type="Resource" script_class="CardText" load_steps=7 format=3 uid="uid://smctw4ogm4rx"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/stat_attribute.gd" id="1_rbqj6"]
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/card_text.gd" id="2_k26ta"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_bcrtt"]
|
||||
script = ExtResource("1_rbqj6")
|
||||
key = "Damage"
|
||||
value = 3.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_llper"]
|
||||
script = ExtResource("1_rbqj6")
|
||||
key = "Range"
|
||||
value = 15.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_7i2dt"]
|
||||
script = ExtResource("1_rbqj6")
|
||||
key = "Fire Delay"
|
||||
value = 0.2
|
||||
|
||||
[sub_resource type="Resource" id="Resource_8cirl"]
|
||||
script = ExtResource("1_rbqj6")
|
||||
key = "Energy"
|
||||
value = 1.0
|
||||
|
||||
[resource]
|
||||
script = ExtResource("2_k26ta")
|
||||
target_type = 0
|
||||
attributes = Array[ExtResource("1_rbqj6")]([SubResource("Resource_bcrtt"), SubResource("Resource_llper"), SubResource("Resource_7i2dt"), SubResource("Resource_8cirl")])
|
||||
text = "Fires a shot every /Fire Delay\\ seconds dealing /Damage\\ damage at a range of /Range\\m"
|
BIN
PCs/Mechanic/ClassCards/BombLauncher/bomb.png
Normal file
After Width: | Height: | Size: 799 B |
34
PCs/Mechanic/ClassCards/BombLauncher/bomb.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b54d5dc4jmlau"
|
||||
path="res://.godot/imported/bomb.png-2ced482db6410a133061cb96ae312d66.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Mechanic/ClassCards/BombLauncher/bomb.png"
|
||||
dest_files=["res://.godot/imported/bomb.png-2ced482db6410a133061cb96ae312d66.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
|
19
PCs/Mechanic/ClassCards/BombLauncher/bomb_projectile.gd
Normal file
@ -0,0 +1,19 @@
|
||||
class_name BombProjectile extends ExplosiveProjectile
|
||||
|
||||
var max_bounces: int = 1
|
||||
var bounces: int = 0
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
apply_central_impulse(direction.normalized() * force)
|
||||
#print(direction.length())
|
||||
#print(force)
|
||||
if owner_id == 0:
|
||||
max_bounces = 0
|
||||
|
||||
|
||||
func _on_body_entered(_body: Node) -> void:
|
||||
bounces += 1
|
||||
var collided_body: bool = get_colliding_bodies()[0].get_collision_layer_value(3)
|
||||
if bounces > max_bounces or collided_body:
|
||||
explode()
|
27
PCs/Mechanic/ClassCards/BombLauncher/bomb_projectile.tscn
Normal file
@ -0,0 +1,27 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://c8oq5unisjqne"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://7f4dfphgiswr" path="res://Scenes/Projectiles/explosive_projectile.tscn" id="1_kf2wi"]
|
||||
[ext_resource type="Script" path="res://PCs/Mechanic/ClassCards/BombLauncher/bomb_projectile.gd" id="2_qvo4u"]
|
||||
[ext_resource type="Texture2D" uid="uid://b54d5dc4jmlau" path="res://PCs/Mechanic/ClassCards/BombLauncher/bomb.png" id="3_ilhep"]
|
||||
[ext_resource type="AudioStream" uid="uid://qeav4v23p0dd" path="res://PCs/Mechanic/ClassCards/BombLauncher/shot1.wav" id="4_uh8y6"]
|
||||
|
||||
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_bbpul"]
|
||||
bounce = 0.6
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_sy5qq"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("4_uh8y6")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="Bomb" instance=ExtResource("1_kf2wi")]
|
||||
physics_material_override = SubResource("PhysicsMaterial_bbpul")
|
||||
gravity_scale = 1.0
|
||||
script = ExtResource("2_qvo4u")
|
||||
|
||||
[node name="Sprite3D" parent="." index="1"]
|
||||
pixel_size = 0.015
|
||||
texture = ExtResource("3_ilhep")
|
||||
|
||||
[node name="AudioStreamPlayer" parent="." index="2"]
|
||||
stream = SubResource("AudioStreamRandomizer_sy5qq")
|
BIN
PCs/Mechanic/ClassCards/BombLauncher/bombamod.glb
Normal file
47
PCs/Mechanic/ClassCards/BombLauncher/bombamod.glb.import
Normal file
@ -0,0 +1,47 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://c7oec0i1k76et"
|
||||
path="res://.godot/imported/bombamod.glb-ec24c701df24ed2f5be5a049d326f0e0.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Mechanic/ClassCards/BombLauncher/bombamod.glb"
|
||||
dest_files=["res://.godot/imported/bombamod.glb-ec24c701df24ed2f5be5a049d326f0e0.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
|
||||
meshes/force_disable_compression=false
|
||||
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": false,
|
||||
"save_to_file/make_streamable": "",
|
||||
"save_to_file/path": "res://bombamodel.res"
|
||||
}
|
||||
}
|
||||
}
|
||||
gltf/naming_version=0
|
||||
gltf/embedded_image_handling=0
|
BIN
PCs/Mechanic/ClassCards/BombLauncher/bombamodel.res
Normal file
BIN
PCs/Mechanic/ClassCards/BombLauncher/bombatex.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
34
PCs/Mechanic/ClassCards/BombLauncher/bombatex.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cxwtwh2al18cb"
|
||||
path="res://.godot/imported/bombatex.png-11a28bcdce03a3a9cf1fd79845aeb32c.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Mechanic/ClassCards/BombLauncher/bombatex.png"
|
||||
dest_files=["res://.godot/imported/bombatex.png-11a28bcdce03a3a9cf1fd79845aeb32c.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
|
17
PCs/Mechanic/ClassCards/BombLauncher/card_bomb_launcher.tres
Normal file
@ -0,0 +1,17 @@
|
||||
[gd_resource type="Resource" script_class="Card" load_steps=6 format=3 uid="uid://blgngx360vff1"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/card.gd" id="1_qtxcq"]
|
||||
[ext_resource type="Resource" uid="uid://8eaecilvan23" path="res://PCs/Mechanic/ClassCards/BombLauncher/tower_stats.tres" id="3_gknxe"]
|
||||
[ext_resource type="PackedScene" uid="uid://c3fqlkytyc62u" path="res://PCs/Mechanic/ClassCards/BombLauncher/weapon_bomb_launcher.tscn" id="3_s56j6"]
|
||||
[ext_resource type="Resource" uid="uid://co6eorobj1xuu" path="res://PCs/Mechanic/ClassCards/BombLauncher/weapon_stats.tres" id="4_s74ea"]
|
||||
[ext_resource type="PackedScene" uid="uid://d2cch7qrwocg8" path="res://PCs/Mechanic/ClassCards/BombLauncher/tower_bomb_launcher.tscn" id="4_vc8pe"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_qtxcq")
|
||||
rarity = 0
|
||||
faction = 0
|
||||
turret_scene = ExtResource("4_vc8pe")
|
||||
weapon_scene = ExtResource("3_s56j6")
|
||||
weapon_stats = ExtResource("4_s74ea")
|
||||
tower_stats = ExtResource("3_gknxe")
|
||||
display_name = "Bomb Launcher"
|
BIN
PCs/Mechanic/ClassCards/BombLauncher/grenade_launcher.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://3qcdx7n440sc"
|
||||
path="res://.godot/imported/grenade_launcher.png-233e235e73731bd49fc11367e78b190d.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Mechanic/ClassCards/BombLauncher/grenade_launcher.png"
|
||||
dest_files=["res://.godot/imported/grenade_launcher.png-233e235e73731bd49fc11367e78b190d.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
PCs/Mechanic/ClassCards/BombLauncher/shot1.wav
Normal file
24
PCs/Mechanic/ClassCards/BombLauncher/shot1.wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://qeav4v23p0dd"
|
||||
path="res://.godot/imported/shot1.wav-6ef5a8f56db406930c5787ba0d90c212.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Mechanic/ClassCards/BombLauncher/shot1.wav"
|
||||
dest_files=["res://.godot/imported/shot1.wav-6ef5a8f56db406930c5787ba0d90c212.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
20
PCs/Mechanic/ClassCards/BombLauncher/tower_bomb_launcher.gd
Normal file
@ -0,0 +1,20 @@
|
||||
class_name BombLauncherTower extends ProjectileTower
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
super._ready()
|
||||
force = sqrt((target_range * ProjectSettings.get_setting("physics/3d/default_gravity")) / sin(2 * 45))
|
||||
|
||||
|
||||
func aim() -> void:
|
||||
super.aim()
|
||||
var pos: Vector2 = Vector2(global_position.x, global_position.z)
|
||||
var t_pos: Vector2 = Vector2(targeted_enemy.global_position.x, targeted_enemy.global_position.z)
|
||||
var x: float = pos.distance_to(t_pos)
|
||||
var y: float = targeted_enemy.global_position.y - yaw_model.global_position.y
|
||||
var v: float = force
|
||||
var g: float = ProjectSettings.get_setting("physics/3d/default_gravity")
|
||||
var v2: float = pow(v, 2)
|
||||
var angle: float = atan((v2 + sqrt(pow(v, 4) - g * ((g * pow(x, 2)) + (2 * y * v2)))) / (g * x))
|
||||
yaw_model.look_at(Vector3(t_pos.x, yaw_model.global_position.y, t_pos.y))
|
||||
yaw_model.rotate(yaw_model.global_transform.basis.x.normalized(), angle)
|
@ -0,0 +1,29 @@
|
||||
[gd_scene load_steps=8 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="Script" path="res://PCs/Mechanic/ClassCards/BombLauncher/tower_bomb_launcher.gd" id="2_vlaa6"]
|
||||
[ext_resource type="PackedScene" uid="uid://c8oq5unisjqne" path="res://PCs/Mechanic/ClassCards/BombLauncher/bomb_projectile.tscn" id="3_562if"]
|
||||
[ext_resource type="Resource" uid="uid://8eaecilvan23" path="res://PCs/Mechanic/ClassCards/BombLauncher/tower_stats.tres" id="4_xgwj1"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://cbuu5w43qins8" path="res://PCs/Mechanic/ClassCards/BombLauncher/bombamodel.res" id="5_yixga"]
|
||||
[ext_resource type="AudioStream" uid="uid://qeav4v23p0dd" path="res://PCs/Mechanic/ClassCards/BombLauncher/shot1.wav" id="6_mc58j"]
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_svy8m"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("6_mc58j")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="BombLauncherTower" instance=ExtResource("1_r8hbo")]
|
||||
script = ExtResource("2_vlaa6")
|
||||
projectile_scene = ExtResource("3_562if")
|
||||
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")
|
||||
|
||||
[node name="AudioStreamPlayer3D" parent="Yaw" index="0"]
|
||||
stream = SubResource("AudioStreamRandomizer_svy8m")
|
25
PCs/Mechanic/ClassCards/BombLauncher/tower_stats.tres
Normal file
@ -0,0 +1,25 @@
|
||||
[gd_resource type="Resource" script_class="CardText" load_steps=6 format=3 uid="uid://8eaecilvan23"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/stat_attribute.gd" id="1_eglp5"]
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/card_text.gd" id="2_1vuma"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_yb48y"]
|
||||
script = ExtResource("1_eglp5")
|
||||
key = "Fire Delay"
|
||||
value = 4.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ewwvw"]
|
||||
script = ExtResource("1_eglp5")
|
||||
key = "Damage"
|
||||
value = 10.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_qu5dv"]
|
||||
script = ExtResource("1_eglp5")
|
||||
key = "Range"
|
||||
value = 8.0
|
||||
|
||||
[resource]
|
||||
script = ExtResource("2_1vuma")
|
||||
target_type = 1
|
||||
attributes = Array[ExtResource("1_eglp5")]([SubResource("Resource_yb48y"), SubResource("Resource_ewwvw"), SubResource("Resource_qu5dv")])
|
||||
text = "Launch a bomb that deals /Damage\\ damage every /Fire Delay\\ seconds"
|
@ -0,0 +1,7 @@
|
||||
class_name BombLauncherWeapon extends ProjectileWeapon
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
super._ready()
|
||||
var launch_range: float = stats.get_attribute("Range")
|
||||
force = sqrt((launch_range * ProjectSettings.get_setting("physics/3d/default_gravity")) / sin(2.0 * 45.0))
|
@ -0,0 +1,29 @@
|
||||
[gd_scene load_steps=9 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="Script" path="res://PCs/Mechanic/ClassCards/BombLauncher/weapon_bomb_launcher.gd" id="2_g5ihb"]
|
||||
[ext_resource type="Resource" uid="uid://co6eorobj1xuu" path="res://PCs/Mechanic/ClassCards/BombLauncher/weapon_stats.tres" id="3_73ol1"]
|
||||
[ext_resource type="PackedScene" uid="uid://c8oq5unisjqne" path="res://PCs/Mechanic/ClassCards/BombLauncher/bomb_projectile.tscn" id="3_jxt6m"]
|
||||
[ext_resource type="Texture2D" uid="uid://3qcdx7n440sc" path="res://PCs/Mechanic/ClassCards/BombLauncher/grenade_launcher.png" id="5_iyrt8"]
|
||||
[ext_resource type="AudioStream" uid="uid://qeav4v23p0dd" path="res://PCs/Mechanic/ClassCards/BombLauncher/shot1.wav" id="6_rg62n"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_4fobv"]
|
||||
atlas = ExtResource("5_iyrt8")
|
||||
region = Rect2(0, 0, 64, 64)
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_l37cm"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("6_rg62n")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="BombLauncherWeapon" instance=ExtResource("1_gbycb")]
|
||||
script = ExtResource("2_g5ihb")
|
||||
projectile_scene = ExtResource("3_jxt6m")
|
||||
stats = ExtResource("3_73ol1")
|
||||
|
||||
[node name="Sprite3D" parent="." index="0"]
|
||||
texture = SubResource("AtlasTexture_4fobv")
|
||||
|
||||
[node name="AudioStreamPlayer3D" parent="." index="3"]
|
||||
stream = SubResource("AudioStreamRandomizer_l37cm")
|
30
PCs/Mechanic/ClassCards/BombLauncher/weapon_stats.tres
Normal file
@ -0,0 +1,30 @@
|
||||
[gd_resource type="Resource" script_class="CardText" load_steps=7 format=3 uid="uid://co6eorobj1xuu"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/stat_attribute.gd" id="1_vg7y2"]
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/card_text.gd" id="2_fe8lx"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_yb48y"]
|
||||
script = ExtResource("1_vg7y2")
|
||||
key = "Fire Delay"
|
||||
value = 2.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ewwvw"]
|
||||
script = ExtResource("1_vg7y2")
|
||||
key = "Damage"
|
||||
value = 10.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_qu5dv"]
|
||||
script = ExtResource("1_vg7y2")
|
||||
key = "Range"
|
||||
value = 10.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_67t30"]
|
||||
script = ExtResource("1_vg7y2")
|
||||
key = "Energy"
|
||||
value = 10.0
|
||||
|
||||
[resource]
|
||||
script = ExtResource("2_fe8lx")
|
||||
target_type = 0
|
||||
attributes = Array[ExtResource("1_vg7y2")]([SubResource("Resource_yb48y"), SubResource("Resource_ewwvw"), SubResource("Resource_qu5dv"), SubResource("Resource_67t30")])
|
||||
text = "Launch a bomb that deals /Damage\\ damage every /Fire Delay\\ seconds"
|
17
PCs/Mechanic/ClassCards/Flamethrower/card_flamethrower.tres
Normal file
@ -0,0 +1,17 @@
|
||||
[gd_resource type="Resource" script_class="Card" load_steps=6 format=3 uid="uid://dg4pjt47q8xpw"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/card.gd" id="1_xmwih"]
|
||||
[ext_resource type="Resource" uid="uid://cdtjbxs21peqg" path="res://PCs/Mechanic/ClassCards/Flamethrower/tower_stats.tres" id="3_sjxkl"]
|
||||
[ext_resource type="PackedScene" uid="uid://dhv7m4lky7bd8" path="res://PCs/Mechanic/ClassCards/Flamethrower/weapon_flamethrower.tscn" id="4_800j1"]
|
||||
[ext_resource type="PackedScene" uid="uid://dkoj1766ygo3f" path="res://PCs/Mechanic/ClassCards/Flamethrower/tower_flamethrower.tscn" id="4_rgkdc"]
|
||||
[ext_resource type="Resource" uid="uid://yjknwdimtm8g" path="res://PCs/Mechanic/ClassCards/Flamethrower/weapon_stats.tres" id="5_qi4e4"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_xmwih")
|
||||
rarity = 2
|
||||
faction = 0
|
||||
turret_scene = ExtResource("4_rgkdc")
|
||||
weapon_scene = ExtResource("4_800j1")
|
||||
weapon_stats = ExtResource("5_qi4e4")
|
||||
tower_stats = ExtResource("3_sjxkl")
|
||||
display_name = "Flamethrower"
|
19
PCs/Mechanic/ClassCards/Flamethrower/flame_particles.tres
Normal file
@ -0,0 +1,19 @@
|
||||
[gd_resource type="ParticleProcessMaterial" load_steps=3 format=3 uid="uid://gyeamtekshor"]
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_eiw3y"]
|
||||
interpolation_color_space = 2
|
||||
offsets = PackedFloat32Array(0, 0.178862, 0.455285, 1)
|
||||
colors = PackedColorArray(0.94, 0.830333, 0, 1, 1, 0.222923, 0.00252032, 1, 0.517571, 0.0343237, 0.0001635, 1, 0.0352941, 0, 0, 1)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_arw7j"]
|
||||
gradient = SubResource("Gradient_eiw3y")
|
||||
|
||||
[resource]
|
||||
direction = Vector3(0, 0, -1)
|
||||
spread = 15.0
|
||||
initial_velocity_min = 3.0
|
||||
initial_velocity_max = 3.0
|
||||
gravity = Vector3(0, 0, 0)
|
||||
scale_min = 0.3
|
||||
scale_max = 0.3
|
||||
color_ramp = SubResource("GradientTexture1D_arw7j")
|
BIN
PCs/Mechanic/ClassCards/Flamethrower/flamethrower.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
34
PCs/Mechanic/ClassCards/Flamethrower/flamethrower.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://33ebstkmuw2s"
|
||||
path="res://.godot/imported/flamethrower.png-4e0bfe40fbd4f77b77136006bb324ee0.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Mechanic/ClassCards/Flamethrower/flamethrower.png"
|
||||
dest_files=["res://.godot/imported/flamethrower.png-4e0bfe40fbd4f77b77136006bb324ee0.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
PCs/Mechanic/ClassCards/Flamethrower/flamethrower_mesh.res
Normal file
@ -0,0 +1,7 @@
|
||||
class_name FlamethrowerTower extends ShapecastTower
|
||||
|
||||
|
||||
func build_status_object() -> StatusEffect:
|
||||
var status: StatusDoT = StatusDoT.new()
|
||||
status.stats = status_stats
|
||||
return status
|
58
PCs/Mechanic/ClassCards/Flamethrower/tower_flamethrower.tscn
Normal file
@ -0,0 +1,58 @@
|
||||
[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="Script" path="res://PCs/Mechanic/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://cdtjbxs21peqg" path="res://PCs/Mechanic/ClassCards/Flamethrower/tower_stats.tres" id="4_by7c8"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://b4p0d4y8fdeox" path="res://PCs/Mechanic/ClassCards/Flamethrower/flamethrower_mesh.res" id="5_tc7nr"]
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_r367g"]
|
||||
size = Vector3(3, 2, 3)
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_ay233"]
|
||||
offsets = PackedFloat32Array(0, 0.178862, 0.455285, 1)
|
||||
colors = PackedColorArray(0.94, 0.830333, 0, 1, 1, 0.222923, 0.00252032, 1, 0.517571, 0.0343237, 0.0001635, 1, 0.0352941, 0, 0, 1)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_7rrxx"]
|
||||
gradient = SubResource("Gradient_ay233")
|
||||
|
||||
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_r7587"]
|
||||
direction = Vector3(0, 0, -1)
|
||||
spread = 15.0
|
||||
initial_velocity_min = 3.0
|
||||
initial_velocity_max = 3.0
|
||||
gravity = Vector3(0, 0, 0)
|
||||
color_ramp = SubResource("GradientTexture1D_7rrxx")
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_p8aw8"]
|
||||
vertex_color_use_as_albedo = true
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_h4c6o"]
|
||||
material = SubResource("StandardMaterial3D_p8aw8")
|
||||
size = Vector3(0.3, 0.3, 0.3)
|
||||
|
||||
[node name="ShapecastTower" instance=ExtResource("1_jagpf")]
|
||||
script = ExtResource("2_7vewc")
|
||||
status_stats = ExtResource("3_aop2h")
|
||||
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"]
|
||||
shape = SubResource("BoxShape3D_r367g")
|
||||
target_position = Vector3(0, 0, -2)
|
||||
collision_mask = 4
|
||||
|
||||
[node name="GPUParticles3D" parent="Yaw/ShapeCast3D" index="0"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.534666)
|
||||
amount = 16
|
||||
process_material = SubResource("ParticleProcessMaterial_r7587")
|
||||
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")
|
25
PCs/Mechanic/ClassCards/Flamethrower/tower_stats.tres
Normal file
@ -0,0 +1,25 @@
|
||||
[gd_resource type="Resource" script_class="CardText" load_steps=6 format=3 uid="uid://cdtjbxs21peqg"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/stat_attribute.gd" id="1_ikp33"]
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/card_text.gd" id="2_wptab"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_j28f4"]
|
||||
script = ExtResource("1_ikp33")
|
||||
key = "Fire Delay"
|
||||
value = 0.5
|
||||
|
||||
[sub_resource type="Resource" id="Resource_likes"]
|
||||
script = ExtResource("1_ikp33")
|
||||
key = "Damage"
|
||||
value = 0.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_b65mk"]
|
||||
script = ExtResource("1_ikp33")
|
||||
key = "Range"
|
||||
value = 3.0
|
||||
|
||||
[resource]
|
||||
script = ExtResource("2_wptab")
|
||||
target_type = 1
|
||||
attributes = Array[ExtResource("1_ikp33")]([SubResource("Resource_j28f4"), SubResource("Resource_likes"), SubResource("Resource_b65mk")])
|
||||
text = "Hold to apply Burning to enemies in front of you"
|
BIN
PCs/Mechanic/ClassCards/Flamethrower/untirastflametled.glb
Normal file
@ -0,0 +1,47 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://dw1inygy0r6l6"
|
||||
path="res://.godot/imported/untirastflametled.glb-12e913b5d762efa0d6fd03caa51bf325.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Mechanic/ClassCards/Flamethrower/untirastflametled.glb"
|
||||
dest_files=["res://.godot/imported/untirastflametled.glb-12e913b5d762efa0d6fd03caa51bf325.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
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
animation/trimming=false
|
||||
animation/remove_immutable_tracks=true
|
||||
import_script/path=""
|
||||
_subresources={
|
||||
"meshes": {
|
||||
"untirastflametled_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": false,
|
||||
"save_to_file/make_streamable": "",
|
||||
"save_to_file/path": "res://flamethrower_mesh.res"
|
||||
}
|
||||
}
|
||||
}
|
||||
gltf/naming_version=0
|
||||
gltf/embedded_image_handling=1
|
@ -0,0 +1,7 @@
|
||||
class_name FlamethrowerWeapon extends ShapecastWeapon
|
||||
|
||||
|
||||
func build_status_object() -> StatusEffect:
|
||||
var status: StatusDoT = StatusDoT.new()
|
||||
status.stats = status_stats
|
||||
return status
|
@ -0,0 +1,23 @@
|
||||
[gd_scene load_steps=8 format=3 uid="uid://dhv7m4lky7bd8"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dp4gfr5h0tbcd" path="res://Scenes/Weapons/shapecast_weapon.tscn" id="1_ovmdp"]
|
||||
[ext_resource type="Script" path="res://PCs/Mechanic/ClassCards/Flamethrower/weapon_flamethrower.gd" id="2_227rf"]
|
||||
[ext_resource type="Resource" uid="uid://dbanx8taicddm" path="res://Resources/StatusEffects/on_fire.tres" id="3_fqch8"]
|
||||
[ext_resource type="Resource" uid="uid://yjknwdimtm8g" path="res://PCs/Mechanic/ClassCards/Flamethrower/weapon_stats.tres" id="4_oafdt"]
|
||||
[ext_resource type="Texture2D" uid="uid://oblavj8vj30n" path="res://PCs/Mechanic/ClassCards/GlueLauncher/glue_gun.png" id="5_wdw3e"]
|
||||
[ext_resource type="Material" uid="uid://gyeamtekshor" path="res://PCs/Mechanic/ClassCards/Flamethrower/flame_particles.tres" id="6_idhp2"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_3hank"]
|
||||
atlas = ExtResource("5_wdw3e")
|
||||
region = Rect2(0, 0, 64, 64)
|
||||
|
||||
[node name="FlamethrowerWeapon" instance=ExtResource("1_ovmdp")]
|
||||
script = ExtResource("2_227rf")
|
||||
status_stats = ExtResource("3_fqch8")
|
||||
stats = ExtResource("4_oafdt")
|
||||
|
||||
[node name="Sprite3D" parent="." index="0"]
|
||||
texture = SubResource("AtlasTexture_3hank")
|
||||
|
||||
[node name="GPUParticles3D" parent="ShapeCast3D" index="0"]
|
||||
process_material = ExtResource("6_idhp2")
|
30
PCs/Mechanic/ClassCards/Flamethrower/weapon_stats.tres
Normal file
@ -0,0 +1,30 @@
|
||||
[gd_resource type="Resource" script_class="CardText" load_steps=7 format=3 uid="uid://yjknwdimtm8g"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/stat_attribute.gd" id="1_xqcf3"]
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/card_text.gd" id="2_drgp3"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_j28f4"]
|
||||
script = ExtResource("1_xqcf3")
|
||||
key = "Fire Delay"
|
||||
value = 0.4
|
||||
|
||||
[sub_resource type="Resource" id="Resource_likes"]
|
||||
script = ExtResource("1_xqcf3")
|
||||
key = "Damage"
|
||||
value = 1.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_b65mk"]
|
||||
script = ExtResource("1_xqcf3")
|
||||
key = "Range"
|
||||
value = 3.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_rjpjf"]
|
||||
script = ExtResource("1_xqcf3")
|
||||
key = "Energy"
|
||||
value = 6.0
|
||||
|
||||
[resource]
|
||||
script = ExtResource("2_drgp3")
|
||||
target_type = 0
|
||||
attributes = Array[ExtResource("1_xqcf3")]([SubResource("Resource_j28f4"), SubResource("Resource_likes"), SubResource("Resource_b65mk"), SubResource("Resource_rjpjf")])
|
||||
text = "Hold to apply Burning to enemies in front of you"
|
17
PCs/Mechanic/ClassCards/Gatling/card_gatling.tres
Normal file
@ -0,0 +1,17 @@
|
||||
[gd_resource type="Resource" script_class="Card" load_steps=6 format=3 uid="uid://cvto66tp7rrst"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/card.gd" id="1_5html"]
|
||||
[ext_resource type="Resource" uid="uid://nxl5wabgl36t" path="res://PCs/Mechanic/ClassCards/Gatling/tower_stats.tres" id="3_4hykq"]
|
||||
[ext_resource type="PackedScene" uid="uid://dkxi1ssoa44jn" path="res://PCs/Mechanic/ClassCards/Gatling/weapon_gatling.tscn" id="3_wkjyf"]
|
||||
[ext_resource type="Resource" uid="uid://cj2x1jvo8l4ot" path="res://PCs/Mechanic/ClassCards/Gatling/weapon_stats.tres" id="4_76fd1"]
|
||||
[ext_resource type="PackedScene" uid="uid://bjuc3x7u3f271" path="res://PCs/Mechanic/ClassCards/Gatling/tower_gatling.tscn" id="4_thk7u"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_5html")
|
||||
rarity = 0
|
||||
faction = 0
|
||||
turret_scene = ExtResource("4_thk7u")
|
||||
weapon_scene = ExtResource("3_wkjyf")
|
||||
weapon_stats = ExtResource("4_76fd1")
|
||||
tower_stats = ExtResource("3_4hykq")
|
||||
display_name = "Gatling"
|
BIN
PCs/Mechanic/ClassCards/Gatling/gatling.glb
Normal file
47
PCs/Mechanic/ClassCards/Gatling/gatling.glb.import
Normal file
@ -0,0 +1,47 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://c8l43de2o07kb"
|
||||
path="res://.godot/imported/gatling.glb-b1cdb057de83f85b535d782b44473471.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Mechanic/ClassCards/Gatling/gatling.glb"
|
||||
dest_files=["res://.godot/imported/gatling.glb-b1cdb057de83f85b535d782b44473471.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
|
||||
meshes/force_disable_compression=false
|
||||
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": false,
|
||||
"save_to_file/make_streamable": "",
|
||||
"save_to_file/path": "res://gattlemesh.res"
|
||||
}
|
||||
}
|
||||
}
|
||||
gltf/naming_version=0
|
||||
gltf/embedded_image_handling=1
|
BIN
PCs/Mechanic/ClassCards/Gatling/gatling.png
Normal file
After Width: | Height: | Size: 13 KiB |
34
PCs/Mechanic/ClassCards/Gatling/gatling.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bjh6e8t8br6rq"
|
||||
path="res://.godot/imported/gatling.png-5b9cafa84c7fff64bbbb5f97ee9dcdd4.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Mechanic/ClassCards/Gatling/gatling.png"
|
||||
dest_files=["res://.godot/imported/gatling.png-5b9cafa84c7fff64bbbb5f97ee9dcdd4.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
PCs/Mechanic/ClassCards/Gatling/gattlemesh.res
Normal file
BIN
PCs/Mechanic/ClassCards/Gatling/shot1.wav
Normal file
24
PCs/Mechanic/ClassCards/Gatling/shot1.wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://1j0rquv4awjs"
|
||||
path="res://.godot/imported/shot1.wav-609b18f764f81167875f9b6fe5cf0123.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Mechanic/ClassCards/Gatling/shot1.wav"
|
||||
dest_files=["res://.godot/imported/shot1.wav-609b18f764f81167875f9b6fe5cf0123.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
37
PCs/Mechanic/ClassCards/Gatling/tower_gatling.gd
Normal file
@ -0,0 +1,37 @@
|
||||
class_name GatlingTower extends HitscanTower
|
||||
|
||||
var time_since_firing_started: float = 0.0
|
||||
var time_to_reach_max_speed: float = 0.0
|
||||
var max_speed_multiplier: float = 0.0
|
||||
var current_time_between_shots: float = 0.0
|
||||
var final_time_between_shots: float = 0.0
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
super._ready()
|
||||
time_to_reach_max_speed = stats.get_attribute("Speed Time")
|
||||
max_speed_multiplier = stats.get_attribute("Speed Multiplier")
|
||||
final_time_between_shots = time_between_shots / max_speed_multiplier
|
||||
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
if time_since_firing < current_time_between_shots:
|
||||
time_since_firing += delta
|
||||
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
if !targeted_enemy:
|
||||
acquire_target()
|
||||
else:
|
||||
if !targeted_enemy.alive or global_position.distance_to(targeted_enemy.global_position) > target_range:
|
||||
targeted_enemy = null
|
||||
time_since_firing_started = 0.0
|
||||
current_time_between_shots = time_between_shots
|
||||
if targeted_enemy:
|
||||
aim()
|
||||
time_since_firing_started += delta
|
||||
var progress: float = clamp(time_since_firing_started / time_to_reach_max_speed, 0, 1.0)
|
||||
current_time_between_shots = lerpf(time_between_shots, final_time_between_shots, progress)
|
||||
if time_since_firing >= current_time_between_shots:
|
||||
time_since_firing -= current_time_between_shots
|
||||
shoot()
|
27
PCs/Mechanic/ClassCards/Gatling/tower_gatling.tscn
Normal file
@ -0,0 +1,27 @@
|
||||
[gd_scene load_steps=7 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="Script" path="res://PCs/Mechanic/ClassCards/Gatling/tower_gatling.gd" id="2_ipjp1"]
|
||||
[ext_resource type="Resource" uid="uid://nxl5wabgl36t" path="res://PCs/Mechanic/ClassCards/Gatling/tower_stats.tres" id="3_oicqw"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://dler7wcqj0bm6" path="res://PCs/Mechanic/ClassCards/Gatling/gattlemesh.res" id="4_wihc0"]
|
||||
[ext_resource type="AudioStream" uid="uid://1j0rquv4awjs" path="res://PCs/Mechanic/ClassCards/Gatling/shot1.wav" id="5_vv714"]
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_wpani"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("5_vv714")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="GatlingTower" instance=ExtResource("1_su74p")]
|
||||
script = ExtResource("2_ipjp1")
|
||||
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")
|
||||
|
||||
[node name="AudioStreamPlayer3D" parent="Yaw" index="0"]
|
||||
stream = SubResource("AudioStreamRandomizer_wpani")
|
37
PCs/Mechanic/ClassCards/Gatling/tower_stats.tres
Normal file
@ -0,0 +1,37 @@
|
||||
[gd_resource type="Resource" script_class="CardText" load_steps=8 format=3 uid="uid://nxl5wabgl36t"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/stat_attribute.gd" id="1_w20qq"]
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/card_text.gd" id="2_ky46y"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_oayfg"]
|
||||
script = ExtResource("1_w20qq")
|
||||
key = "Fire Delay"
|
||||
value = 0.6
|
||||
|
||||
[sub_resource type="Resource" id="Resource_fekle"]
|
||||
script = ExtResource("1_w20qq")
|
||||
key = "Damage"
|
||||
value = 1.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ud8xi"]
|
||||
script = ExtResource("1_w20qq")
|
||||
key = "Range"
|
||||
value = 10.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_cvkxf"]
|
||||
script = ExtResource("1_w20qq")
|
||||
key = "Speed Multiplier"
|
||||
value = 2.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_pivwn"]
|
||||
script = ExtResource("1_w20qq")
|
||||
key = "Speed Time"
|
||||
value = 3.0
|
||||
|
||||
[resource]
|
||||
script = ExtResource("2_ky46y")
|
||||
target_type = 1
|
||||
attributes = Array[ExtResource("1_w20qq")]([SubResource("Resource_oayfg"), SubResource("Resource_fekle"), SubResource("Resource_ud8xi"), SubResource("Resource_cvkxf"), SubResource("Resource_pivwn")])
|
||||
text = "Fires a shot every /Fire Delay\\ seconds dealing /Damage\\ damage at a range of /Range\\m
|
||||
|
||||
While attacking the same target, gradually accelerates to /Speed Multiplier\\x the fire rate over /Speed Time\\s"
|
40
PCs/Mechanic/ClassCards/Gatling/weapon_gatling.gd
Normal file
@ -0,0 +1,40 @@
|
||||
class_name GatlingWeapon extends HitscanWeapon
|
||||
|
||||
var time_since_firing_started: float = 0.0
|
||||
var time_to_reach_max_speed: float = 0.0
|
||||
var max_speed_multiplier: float = 0.0
|
||||
var current_time_between_shots: float = 0.0
|
||||
var final_time_between_shots: float = 0.0
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
super._ready()
|
||||
time_to_reach_max_speed = stats.get_attribute("Speed Time")
|
||||
max_speed_multiplier = stats.get_attribute("Speed Multiplier")
|
||||
final_time_between_shots = time_between_shots / max_speed_multiplier
|
||||
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
super._process(delta)
|
||||
if trigger_held:
|
||||
time_since_firing_started += delta
|
||||
var progress: float = clamp(time_since_firing_started / time_to_reach_max_speed, 0.0, 1.0)
|
||||
current_time_between_shots = lerpf(time_between_shots, final_time_between_shots, progress)
|
||||
if current_energy < energy_cost:
|
||||
time_since_firing_started = 0.0
|
||||
current_time_between_shots = time_between_shots
|
||||
|
||||
|
||||
func _physics_process(_delta: float) -> void:
|
||||
if trigger_held and current_energy >= energy_cost and time_since_firing >= current_time_between_shots:
|
||||
time_since_firing -= current_time_between_shots
|
||||
current_energy -= energy_cost
|
||||
energy_changed.emit(current_energy)
|
||||
shoot()
|
||||
networked_shoot.rpc()
|
||||
|
||||
|
||||
func release_trigger() -> void:
|
||||
super.release_trigger()
|
||||
time_since_firing_started = 0.0
|
||||
current_time_between_shots = time_between_shots
|
27
PCs/Mechanic/ClassCards/Gatling/weapon_gatling.tscn
Normal file
@ -0,0 +1,27 @@
|
||||
[gd_scene load_steps=8 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="Resource" uid="uid://cj2x1jvo8l4ot" path="res://PCs/Mechanic/ClassCards/Gatling/weapon_stats.tres" id="2_fnyjd"]
|
||||
[ext_resource type="Texture2D" uid="uid://bjh6e8t8br6rq" path="res://PCs/Mechanic/ClassCards/Gatling/gatling.png" id="2_rv8ps"]
|
||||
[ext_resource type="Script" path="res://PCs/Mechanic/ClassCards/Gatling/weapon_gatling.gd" id="2_wm4al"]
|
||||
[ext_resource type="AudioStream" uid="uid://1j0rquv4awjs" path="res://PCs/Mechanic/ClassCards/Gatling/shot1.wav" id="5_gelfi"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_0im1y"]
|
||||
atlas = ExtResource("2_rv8ps")
|
||||
region = Rect2(0, 0, 64, 64)
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_778e1"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("5_gelfi")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="WeaponGatling" instance=ExtResource("1_fwlu5")]
|
||||
script = ExtResource("2_wm4al")
|
||||
stats = ExtResource("2_fnyjd")
|
||||
|
||||
[node name="Sprite3D" parent="." index="0"]
|
||||
texture = SubResource("AtlasTexture_0im1y")
|
||||
|
||||
[node name="AudioStreamPlayer3D" parent="." index="5"]
|
||||
stream = SubResource("AudioStreamRandomizer_778e1")
|
42
PCs/Mechanic/ClassCards/Gatling/weapon_stats.tres
Normal file
@ -0,0 +1,42 @@
|
||||
[gd_resource type="Resource" script_class="CardText" load_steps=9 format=3 uid="uid://cj2x1jvo8l4ot"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/stat_attribute.gd" id="1_7oh83"]
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/card_text.gd" id="2_y36gr"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_fi7tc"]
|
||||
script = ExtResource("1_7oh83")
|
||||
key = "Fire Delay"
|
||||
value = 0.4
|
||||
|
||||
[sub_resource type="Resource" id="Resource_r6h5d"]
|
||||
script = ExtResource("1_7oh83")
|
||||
key = "Damage"
|
||||
value = 2.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_gwg1i"]
|
||||
script = ExtResource("1_7oh83")
|
||||
key = "Range"
|
||||
value = 20.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ogk1x"]
|
||||
script = ExtResource("1_7oh83")
|
||||
key = "Speed Multiplier"
|
||||
value = 3.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_wdp3h"]
|
||||
script = ExtResource("1_7oh83")
|
||||
key = "Speed Time"
|
||||
value = 4.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_d1lvi"]
|
||||
script = ExtResource("1_7oh83")
|
||||
key = "Energy"
|
||||
value = 1.0
|
||||
|
||||
[resource]
|
||||
script = ExtResource("2_y36gr")
|
||||
target_type = 0
|
||||
attributes = Array[ExtResource("1_7oh83")]([SubResource("Resource_fi7tc"), SubResource("Resource_r6h5d"), SubResource("Resource_gwg1i"), SubResource("Resource_ogk1x"), SubResource("Resource_wdp3h"), SubResource("Resource_d1lvi")])
|
||||
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\\s"
|
17
PCs/Mechanic/ClassCards/GlueLauncher/card_glue_launcher.tres
Normal file
@ -0,0 +1,17 @@
|
||||
[gd_resource type="Resource" script_class="Card" load_steps=6 format=3 uid="uid://fwsg5av1egp2"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/card.gd" id="1_tdu8a"]
|
||||
[ext_resource type="Resource" uid="uid://boj1ho5x0sxtq" path="res://PCs/Mechanic/ClassCards/GlueLauncher/weapon_stats.tres" id="3_dukui"]
|
||||
[ext_resource type="Resource" uid="uid://bvkwgmbxje0dp" path="res://PCs/Mechanic/ClassCards/GlueLauncher/tower_stats.tres" id="3_e5fta"]
|
||||
[ext_resource type="PackedScene" uid="uid://bb44pintbwdcf" path="res://PCs/Mechanic/ClassCards/GlueLauncher/tower_glue_launcher.tscn" id="4_xcrut"]
|
||||
[ext_resource type="PackedScene" uid="uid://takm6diuy71m" path="res://PCs/Mechanic/ClassCards/GlueLauncher/weapon_glue_launcher.tscn" id="5_l3c38"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_tdu8a")
|
||||
rarity = 1
|
||||
faction = 0
|
||||
turret_scene = ExtResource("4_xcrut")
|
||||
weapon_scene = ExtResource("5_l3c38")
|
||||
weapon_stats = ExtResource("3_dukui")
|
||||
tower_stats = ExtResource("3_e5fta")
|
||||
display_name = "Glue Launcher"
|
BIN
PCs/Mechanic/ClassCards/GlueLauncher/glue_gun.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
34
PCs/Mechanic/ClassCards/GlueLauncher/glue_gun.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://oblavj8vj30n"
|
||||
path="res://.godot/imported/glue_gun.png-a2acb2baa6297047565493c79f3e6176.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Mechanic/ClassCards/GlueLauncher/glue_gun.png"
|
||||
dest_files=["res://.godot/imported/glue_gun.png-a2acb2baa6297047565493c79f3e6176.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
PCs/Mechanic/ClassCards/GlueLauncher/glue_launcher_model.res
Normal file
BIN
PCs/Mechanic/ClassCards/GlueLauncher/gluegun.glb
Normal file
47
PCs/Mechanic/ClassCards/GlueLauncher/gluegun.glb.import
Normal file
@ -0,0 +1,47 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://dd2lht485rtdu"
|
||||
path="res://.godot/imported/gluegun.glb-a62ec3086901b47fbe2d5360451456ee.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Mechanic/ClassCards/GlueLauncher/gluegun.glb"
|
||||
dest_files=["res://.godot/imported/gluegun.glb-a62ec3086901b47fbe2d5360451456ee.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
|
||||
meshes/force_disable_compression=false
|
||||
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": false,
|
||||
"save_to_file/make_streamable": "",
|
||||
"save_to_file/path": "res://glue_launcher_model.res"
|
||||
}
|
||||
}
|
||||
}
|
||||
gltf/naming_version=0
|
||||
gltf/embedded_image_handling=1
|
BIN
PCs/Mechanic/ClassCards/GlueLauncher/glueguntex.png
Normal file
After Width: | Height: | Size: 11 KiB |
34
PCs/Mechanic/ClassCards/GlueLauncher/glueguntex.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ukdbh416xfrl"
|
||||
path="res://.godot/imported/glueguntex.png-07f9d2cd55a7bc474ea1c2a9c9004c28.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Mechanic/ClassCards/GlueLauncher/glueguntex.png"
|
||||
dest_files=["res://.godot/imported/glueguntex.png-07f9d2cd55a7bc474ea1c2a9c9004c28.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
PCs/Mechanic/ClassCards/GlueLauncher/shot1.wav
Normal file
24
PCs/Mechanic/ClassCards/GlueLauncher/shot1.wav.import
Normal file
@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://v3j5lw827y85"
|
||||
path="res://.godot/imported/shot1.wav-cb885b12e493666bc374ac80b2b48618.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Mechanic/ClassCards/GlueLauncher/shot1.wav"
|
||||
dest_files=["res://.godot/imported/shot1.wav-cb885b12e493666bc374ac80b2b48618.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
@ -0,0 +1,7 @@
|
||||
class_name GlueLauncherTower extends StatusApplyingTower
|
||||
|
||||
|
||||
func build_status_object() -> StatusEffect:
|
||||
var status: StatusSlow = StatusSlow.new()
|
||||
status.stats = status_stats
|
||||
return status
|
@ -0,0 +1,29 @@
|
||||
[gd_scene load_steps=8 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="Script" path="res://PCs/Mechanic/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://bvkwgmbxje0dp" path="res://PCs/Mechanic/ClassCards/GlueLauncher/tower_stats.tres" id="4_etcd4"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://cehyrhbd7pu83" path="res://PCs/Mechanic/ClassCards/GlueLauncher/glue_launcher_model.res" id="5_dsftx"]
|
||||
[ext_resource type="AudioStream" uid="uid://v3j5lw827y85" path="res://PCs/Mechanic/ClassCards/GlueLauncher/shot1.wav" id="6_lntow"]
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_r4ak7"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("6_lntow")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="GlueLauncherTower" instance=ExtResource("1_r1dvg")]
|
||||
script = ExtResource("2_ot8fu")
|
||||
status_stats = ExtResource("3_ibb53")
|
||||
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")
|
||||
|
||||
[node name="AudioStreamPlayer3D" parent="Yaw" index="0"]
|
||||
stream = SubResource("AudioStreamRandomizer_r4ak7")
|
25
PCs/Mechanic/ClassCards/GlueLauncher/tower_stats.tres
Normal file
@ -0,0 +1,25 @@
|
||||
[gd_resource type="Resource" script_class="CardText" load_steps=6 format=3 uid="uid://bvkwgmbxje0dp"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/stat_attribute.gd" id="1_ytycf"]
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/card_text.gd" id="2_226sm"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_gbocu"]
|
||||
script = ExtResource("1_ytycf")
|
||||
key = "Damage"
|
||||
value = 0.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_6a2im"]
|
||||
script = ExtResource("1_ytycf")
|
||||
key = "Range"
|
||||
value = 10.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_7npe0"]
|
||||
script = ExtResource("1_ytycf")
|
||||
key = "Fire Delay"
|
||||
value = 2.0
|
||||
|
||||
[resource]
|
||||
script = ExtResource("2_226sm")
|
||||
target_type = 1
|
||||
attributes = Array[ExtResource("1_ytycf")]([SubResource("Resource_gbocu"), SubResource("Resource_6a2im"), SubResource("Resource_7npe0")])
|
||||
text = "Fires every /Fire Delay\\s, making the target Sticky at a range of /Range\\m"
|
@ -0,0 +1,7 @@
|
||||
class_name GlueLauncherWeapon extends StatusApplyingWeapon
|
||||
|
||||
|
||||
func build_status_object() -> StatusEffect:
|
||||
var status: StatusSlow = StatusSlow.new()
|
||||
status.stats = status_stats
|
||||
return status
|
@ -0,0 +1,29 @@
|
||||
[gd_scene load_steps=9 format=3 uid="uid://takm6diuy71m"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://nrdexcyatika" path="res://Scenes/Weapons/status_applying_weapon.tscn" id="1_7v0k2"]
|
||||
[ext_resource type="Script" path="res://PCs/Mechanic/ClassCards/GlueLauncher/weapon_glue_launcher.gd" id="2_12ex2"]
|
||||
[ext_resource type="Resource" uid="uid://d0643gfp52x3s" path="res://Resources/StatusEffects/sticky.tres" id="3_xtk6n"]
|
||||
[ext_resource type="Resource" uid="uid://boj1ho5x0sxtq" path="res://PCs/Mechanic/ClassCards/GlueLauncher/weapon_stats.tres" id="4_c3ve8"]
|
||||
[ext_resource type="Texture2D" uid="uid://oblavj8vj30n" path="res://PCs/Mechanic/ClassCards/GlueLauncher/glue_gun.png" id="5_obawu"]
|
||||
[ext_resource type="AudioStream" uid="uid://v3j5lw827y85" path="res://PCs/Mechanic/ClassCards/GlueLauncher/shot1.wav" id="6_6qk7c"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ehcsl"]
|
||||
atlas = ExtResource("5_obawu")
|
||||
region = Rect2(0, 0, 64, 64)
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_cc15t"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("6_6qk7c")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="GlueLauncherWeapon" instance=ExtResource("1_7v0k2")]
|
||||
script = ExtResource("2_12ex2")
|
||||
status_stats = ExtResource("3_xtk6n")
|
||||
stats = ExtResource("4_c3ve8")
|
||||
|
||||
[node name="Sprite3D" parent="." index="0"]
|
||||
texture = SubResource("AtlasTexture_ehcsl")
|
||||
|
||||
[node name="AudioStreamPlayer3D" parent="." index="5"]
|
||||
stream = SubResource("AudioStreamRandomizer_cc15t")
|
30
PCs/Mechanic/ClassCards/GlueLauncher/weapon_stats.tres
Normal file
@ -0,0 +1,30 @@
|
||||
[gd_resource type="Resource" script_class="CardText" load_steps=7 format=3 uid="uid://boj1ho5x0sxtq"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/stat_attribute.gd" id="1_8ysxs"]
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/card_text.gd" id="2_nlx26"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_gbocu"]
|
||||
script = ExtResource("1_8ysxs")
|
||||
key = "Damage"
|
||||
value = 0.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_6a2im"]
|
||||
script = ExtResource("1_8ysxs")
|
||||
key = "Range"
|
||||
value = 13.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_7npe0"]
|
||||
script = ExtResource("1_8ysxs")
|
||||
key = "Fire Delay"
|
||||
value = 0.5
|
||||
|
||||
[sub_resource type="Resource" id="Resource_o1b5x"]
|
||||
script = ExtResource("1_8ysxs")
|
||||
key = "Energy"
|
||||
value = 8.0
|
||||
|
||||
[resource]
|
||||
script = ExtResource("2_nlx26")
|
||||
target_type = 0
|
||||
attributes = Array[ExtResource("1_8ysxs")]([SubResource("Resource_gbocu"), SubResource("Resource_6a2im"), SubResource("Resource_7npe0"), SubResource("Resource_o1b5x")])
|
||||
text = "Fires every /Fire Delay\\s, making the target Sticky at a range of /Range\\m"
|
17
PCs/Mechanic/ClassCards/Reactor/card_reactor.tres
Normal file
@ -0,0 +1,17 @@
|
||||
[gd_resource type="Resource" script_class="Card" load_steps=6 format=3 uid="uid://b3o112jw3loiu"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/card.gd" id="1_0ciid"]
|
||||
[ext_resource type="Resource" uid="uid://cssdyxk8oefsd" path="res://PCs/Mechanic/ClassCards/Reactor/tower_stats.tres" id="3_7vuex"]
|
||||
[ext_resource type="PackedScene" uid="uid://yymj42pp6v1t" path="res://PCs/Mechanic/ClassCards/Reactor/weapon_reactor.tscn" id="3_de72q"]
|
||||
[ext_resource type="PackedScene" uid="uid://dqrkn0vp2tmrh" path="res://PCs/Mechanic/ClassCards/Reactor/tower_reactor.tscn" id="4_1krig"]
|
||||
[ext_resource type="Resource" uid="uid://ipfr7emuarbj" path="res://PCs/Mechanic/ClassCards/Reactor/weapon_stats.tres" id="4_wilo7"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_0ciid")
|
||||
rarity = 4
|
||||
faction = 0
|
||||
turret_scene = ExtResource("4_1krig")
|
||||
weapon_scene = ExtResource("3_de72q")
|
||||
weapon_stats = ExtResource("4_wilo7")
|
||||
tower_stats = ExtResource("3_7vuex")
|
||||
display_name = "Reactor"
|
19
PCs/Mechanic/ClassCards/Reactor/radiation_particles.tres
Normal file
@ -0,0 +1,19 @@
|
||||
[gd_resource type="ParticleProcessMaterial" load_steps=3 format=3 uid="uid://bjab6t4n0s5ac"]
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_eiw3y"]
|
||||
interpolation_color_space = 2
|
||||
offsets = PackedFloat32Array(0, 0.0894309, 1)
|
||||
colors = PackedColorArray(0, 0.831373, 0, 1, 4.21144e-08, 0.320987, -4.81308e-08, 0.721201, 0, 0.254902, 0, 0)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_arw7j"]
|
||||
gradient = SubResource("Gradient_eiw3y")
|
||||
|
||||
[resource]
|
||||
direction = Vector3(0, 0, -1)
|
||||
spread = 15.0
|
||||
initial_velocity_min = 3.0
|
||||
initial_velocity_max = 3.0
|
||||
gravity = Vector3(0, 0, 0)
|
||||
scale_min = 0.3
|
||||
scale_max = 0.3
|
||||
color_ramp = SubResource("GradientTexture1D_arw7j")
|
BIN
PCs/Mechanic/ClassCards/Reactor/reactor.glb
Normal file
47
PCs/Mechanic/ClassCards/Reactor/reactor.glb.import
Normal file
@ -0,0 +1,47 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://ck330svnmd13b"
|
||||
path="res://.godot/imported/reactor.glb-78f0454309e4a59542393d127446955d.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Mechanic/ClassCards/Reactor/reactor.glb"
|
||||
dest_files=["res://.godot/imported/reactor.glb-78f0454309e4a59542393d127446955d.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
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
animation/trimming=false
|
||||
animation/remove_immutable_tracks=true
|
||||
import_script/path=""
|
||||
_subresources={
|
||||
"meshes": {
|
||||
"reactor_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": false,
|
||||
"save_to_file/make_streamable": "",
|
||||
"save_to_file/path": "res://reactor_mesh.res"
|
||||
}
|
||||
}
|
||||
}
|
||||
gltf/naming_version=0
|
||||
gltf/embedded_image_handling=1
|
BIN
PCs/Mechanic/ClassCards/Reactor/reactor.png
Normal file
After Width: | Height: | Size: 24 KiB |
35
PCs/Mechanic/ClassCards/Reactor/reactor.png.import
Normal file
@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b87fn56wyiqmj"
|
||||
path.s3tc="res://.godot/imported/reactor.png-3367435042a21b2db8f09b5b2802c987.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Mechanic/ClassCards/Reactor/reactor.png"
|
||||
dest_files=["res://.godot/imported/reactor.png-3367435042a21b2db8f09b5b2802c987.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
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
PCs/Mechanic/ClassCards/Reactor/reactor_mesh.res
Normal file
14
PCs/Mechanic/ClassCards/Reactor/tower_reactor.gd
Normal file
@ -0,0 +1,14 @@
|
||||
class_name ReactorTower extends RangeAffectingTower
|
||||
|
||||
@export var particles: GPUParticles3D
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
super._ready()
|
||||
particles.process_material.emission_ring_radius = target_range
|
||||
|
||||
|
||||
func build_status_object() -> StatusEffect:
|
||||
var status: StatusDoT = StatusDoT.new()
|
||||
status.stats = status_stats
|
||||
return status
|
52
PCs/Mechanic/ClassCards/Reactor/tower_reactor.tscn
Normal file
@ -0,0 +1,52 @@
|
||||
[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="Script" path="res://PCs/Mechanic/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://cssdyxk8oefsd" path="res://PCs/Mechanic/ClassCards/Reactor/tower_stats.tres" id="4_rkhup"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://d280k3kx6hh7h" path="res://PCs/Mechanic/ClassCards/Reactor/reactor_mesh.res" id="5_it8eo"]
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_ranod"]
|
||||
interpolation_color_space = 2
|
||||
offsets = PackedFloat32Array(0.252033, 1)
|
||||
colors = PackedColorArray(0, 0.533333, 0, 1, 0, 1, 0, 0.34902)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_iinp2"]
|
||||
gradient = SubResource("Gradient_ranod")
|
||||
|
||||
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_q1hpa"]
|
||||
emission_shape = 6
|
||||
emission_ring_axis = Vector3(0, 1, 0)
|
||||
emission_ring_height = 0.1
|
||||
emission_ring_radius = 30.0
|
||||
emission_ring_inner_radius = 0.0
|
||||
gravity = Vector3(0, 3, 0)
|
||||
color_ramp = SubResource("GradientTexture1D_iinp2")
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_rl0f7"]
|
||||
transparency = 1
|
||||
vertex_color_use_as_albedo = true
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_fr4f1"]
|
||||
material = SubResource("StandardMaterial3D_rl0f7")
|
||||
size = Vector3(0.3, 0.3, 0.3)
|
||||
|
||||
[node name="ReactorTower" node_paths=PackedStringArray("particles") instance=ExtResource("1_afsqn")]
|
||||
script = ExtResource("2_6w83m")
|
||||
particles = NodePath("GPUParticles3D")
|
||||
status_stats = ExtResource("3_xhrj0")
|
||||
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"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.6, 0)
|
||||
amount = 12
|
||||
lifetime = 0.6
|
||||
process_material = SubResource("ParticleProcessMaterial_q1hpa")
|
||||
draw_pass_1 = SubResource("BoxMesh_fr4f1")
|
25
PCs/Mechanic/ClassCards/Reactor/tower_stats.tres
Normal file
@ -0,0 +1,25 @@
|
||||
[gd_resource type="Resource" script_class="CardText" load_steps=6 format=3 uid="uid://cssdyxk8oefsd"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/stat_attribute.gd" id="1_peekg"]
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/card_text.gd" id="2_8w61k"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_j28f4"]
|
||||
script = ExtResource("1_peekg")
|
||||
key = "Fire Delay"
|
||||
value = 2.5
|
||||
|
||||
[sub_resource type="Resource" id="Resource_likes"]
|
||||
script = ExtResource("1_peekg")
|
||||
key = "Damage"
|
||||
value = 0.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_b65mk"]
|
||||
script = ExtResource("1_peekg")
|
||||
key = "Range"
|
||||
value = 20.0
|
||||
|
||||
[resource]
|
||||
script = ExtResource("2_8w61k")
|
||||
target_type = 1
|
||||
attributes = Array[ExtResource("1_peekg")]([SubResource("Resource_j28f4"), SubResource("Resource_likes"), SubResource("Resource_b65mk")])
|
||||
text = "Slowly applies Radioactive to enemies around itself at a range of /Range\\m"
|
7
PCs/Mechanic/ClassCards/Reactor/weapon_reactor.gd
Normal file
@ -0,0 +1,7 @@
|
||||
class_name ReactorWeapon extends ShapecastWeapon
|
||||
|
||||
|
||||
func build_status_object() -> StatusEffect:
|
||||
var status: StatusDoT = StatusDoT.new()
|
||||
status.stats = status_stats
|
||||
return status
|
31
PCs/Mechanic/ClassCards/Reactor/weapon_reactor.tscn
Normal file
@ -0,0 +1,31 @@
|
||||
[gd_scene load_steps=10 format=3 uid="uid://yymj42pp6v1t"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dp4gfr5h0tbcd" path="res://Scenes/Weapons/shapecast_weapon.tscn" id="1_du35a"]
|
||||
[ext_resource type="Script" path="res://PCs/Mechanic/ClassCards/Reactor/weapon_reactor.gd" id="2_oe7hd"]
|
||||
[ext_resource type="Resource" uid="uid://dxlisoas4xlmo" path="res://Resources/StatusEffects/radioactive.tres" id="3_hsfwd"]
|
||||
[ext_resource type="Resource" uid="uid://ipfr7emuarbj" path="res://PCs/Mechanic/ClassCards/Reactor/weapon_stats.tres" id="4_83mkk"]
|
||||
[ext_resource type="Texture2D" uid="uid://oblavj8vj30n" path="res://PCs/Mechanic/ClassCards/GlueLauncher/glue_gun.png" id="5_bawfy"]
|
||||
[ext_resource type="Material" uid="uid://bjab6t4n0s5ac" path="res://PCs/Mechanic/ClassCards/Reactor/radiation_particles.tres" id="6_0sgt1"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_0dpt5"]
|
||||
atlas = ExtResource("5_bawfy")
|
||||
region = Rect2(0, 0, 64, 64)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_l4nsh"]
|
||||
transparency = 1
|
||||
vertex_color_use_as_albedo = true
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_5o1ws"]
|
||||
material = SubResource("StandardMaterial3D_l4nsh")
|
||||
|
||||
[node name="ReactorWeapon" instance=ExtResource("1_du35a")]
|
||||
script = ExtResource("2_oe7hd")
|
||||
status_stats = ExtResource("3_hsfwd")
|
||||
stats = ExtResource("4_83mkk")
|
||||
|
||||
[node name="Sprite3D" parent="." index="0"]
|
||||
texture = SubResource("AtlasTexture_0dpt5")
|
||||
|
||||
[node name="GPUParticles3D" parent="ShapeCast3D" index="0"]
|
||||
process_material = ExtResource("6_0sgt1")
|
||||
draw_pass_1 = SubResource("BoxMesh_5o1ws")
|
30
PCs/Mechanic/ClassCards/Reactor/weapon_stats.tres
Normal file
@ -0,0 +1,30 @@
|
||||
[gd_resource type="Resource" script_class="CardText" load_steps=7 format=3 uid="uid://ipfr7emuarbj"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/stat_attribute.gd" id="1_b6ubt"]
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/card_text.gd" id="2_ahbcx"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_j28f4"]
|
||||
script = ExtResource("1_b6ubt")
|
||||
key = "Fire Delay"
|
||||
value = 0.5
|
||||
|
||||
[sub_resource type="Resource" id="Resource_likes"]
|
||||
script = ExtResource("1_b6ubt")
|
||||
key = "Damage"
|
||||
value = 1.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_b65mk"]
|
||||
script = ExtResource("1_b6ubt")
|
||||
key = "Range"
|
||||
value = 3.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_b4805"]
|
||||
script = ExtResource("1_b6ubt")
|
||||
key = "Energy"
|
||||
value = 11.0
|
||||
|
||||
[resource]
|
||||
script = ExtResource("2_ahbcx")
|
||||
target_type = 0
|
||||
attributes = Array[ExtResource("1_b6ubt")]([SubResource("Resource_j28f4"), SubResource("Resource_likes"), SubResource("Resource_b65mk"), SubResource("Resource_b4805")])
|
||||
text = "Hold to apply Radioactive to enemies in front of you"
|
@ -0,0 +1,17 @@
|
||||
[gd_resource type="Resource" script_class="Card" load_steps=6 format=3 uid="uid://b37r54q84vqoi"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/Resources/card.gd" id="1_ly0o5"]
|
||||
[ext_resource type="Resource" uid="uid://c65rq455ma8f6" path="res://PCs/Mechanic/ClassCards/RocketLauncher/tower_stats.tres" id="3_06my6"]
|
||||
[ext_resource type="PackedScene" uid="uid://bdp7icdejayvr" path="res://PCs/Mechanic/ClassCards/RocketLauncher/weapon_rocket_launcher.tscn" id="3_qo5gv"]
|
||||
[ext_resource type="Resource" uid="uid://d2yo07m2mp2mp" path="res://PCs/Mechanic/ClassCards/RocketLauncher/weapon_stats.tres" id="4_cmvfg"]
|
||||
[ext_resource type="PackedScene" uid="uid://b3q0f6w30nwsh" path="res://PCs/Mechanic/ClassCards/RocketLauncher/tower_rocket_launcher.tscn" id="4_hff2k"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_ly0o5")
|
||||
rarity = 0
|
||||
faction = 0
|
||||
turret_scene = ExtResource("4_hff2k")
|
||||
weapon_scene = ExtResource("3_qo5gv")
|
||||
weapon_stats = ExtResource("4_cmvfg")
|
||||
tower_stats = ExtResource("3_06my6")
|
||||
display_name = "Rocket Launcher"
|
BIN
PCs/Mechanic/ClassCards/RocketLauncher/rocket.png
Normal file
After Width: | Height: | Size: 835 B |
34
PCs/Mechanic/ClassCards/RocketLauncher/rocket.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bode8mfmr3r1h"
|
||||
path="res://.godot/imported/rocket.png-77edbc49fe71a63a62ed874f90d7b439.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Mechanic/ClassCards/RocketLauncher/rocket.png"
|
||||
dest_files=["res://.godot/imported/rocket.png-77edbc49fe71a63a62ed874f90d7b439.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
PCs/Mechanic/ClassCards/RocketLauncher/rocket.png.kra
Normal file
BIN
PCs/Mechanic/ClassCards/RocketLauncher/rocket_launcher.glb
Normal file
@ -0,0 +1,47 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://buyx8g4vlh7g7"
|
||||
path="res://.godot/imported/rocket_launcher.glb-37982edba72c4d23ecb61dd773429a36.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Mechanic/ClassCards/RocketLauncher/rocket_launcher.glb"
|
||||
dest_files=["res://.godot/imported/rocket_launcher.glb-37982edba72c4d23ecb61dd773429a36.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
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
animation/trimming=false
|
||||
animation/remove_immutable_tracks=true
|
||||
import_script/path=""
|
||||
_subresources={
|
||||
"meshes": {
|
||||
"rocket_launcher_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": false,
|
||||
"save_to_file/make_streamable": "",
|
||||
"save_to_file/path": "res://rocket_launcher_model.res"
|
||||
}
|
||||
}
|
||||
}
|
||||
gltf/naming_version=0
|
||||
gltf/embedded_image_handling=1
|
BIN
PCs/Mechanic/ClassCards/RocketLauncher/rocket_launcher.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://by1y15lm0bppe"
|
||||
path="res://.godot/imported/rocket_launcher.png-89f364514f7ef0b363fc8ad5d17ac350.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PCs/Mechanic/ClassCards/RocketLauncher/rocket_launcher.png"
|
||||
dest_files=["res://.godot/imported/rocket_launcher.png-89f364514f7ef0b363fc8ad5d17ac350.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
|