conforms file names to consistant standard
This commit is contained in:
57
weapons/fireworks_weapon/scn_fireworks_weapon.tscn
Normal file
57
weapons/fireworks_weapon/scn_fireworks_weapon.tscn
Normal file
@@ -0,0 +1,57 @@
|
||||
[gd_scene format=3 uid="uid://bdp7icdejayvr"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bqdllitxbbpyp" path="res://scenes/weapons/projectile_weapon.tscn" id="1_gxaua"]
|
||||
[ext_resource type="Script" uid="uid://cuxi02s34ohs" path="res://weapons/fireworks_weapon/scr_fireworks_weapon.gd" id="2_8x1tf"]
|
||||
[ext_resource type="PackedScene" uid="uid://p2vwo8ivben6" path="res://projectiles/rocket/scn_rocket.tscn" id="2_lfuvh"]
|
||||
[ext_resource type="PackedScene" uid="uid://csufsbi64asau" path="res://weapons/fireworks_weapon/scn_target_icon.tscn" id="3_2x5va"]
|
||||
[ext_resource type="Resource" uid="uid://d2yo07m2mp2mp" path="res://weapons/fireworks_weapon/weapon_stats.tres" id="3_i1hxj"]
|
||||
[ext_resource type="Texture2D" uid="uid://by1y15lm0bppe" path="res://weapons/fireworks_weapon/tex_fireworks_weapon.png" id="4_iygkf"]
|
||||
[ext_resource type="Texture2D" uid="uid://cc2umukpibmx1" path="res://weapons/fireworks_weapon/tex_target_list.png" id="6_jlv88"]
|
||||
[ext_resource type="AudioStream" uid="uid://dknygn5eyuhxt" path="res://audio/aud_shot.wav" id="8_genbv"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_y0imp"]
|
||||
resource_local_to_scene = true
|
||||
atlas = ExtResource("4_iygkf")
|
||||
region = Rect2(0, 0, 64, 64)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ewxon"]
|
||||
atlas = ExtResource("6_jlv88")
|
||||
region = Rect2(0, 0, 128, 128)
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_5w2i3"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("8_genbv")
|
||||
|
||||
[node name="RocketLauncher" unique_id=2076073673 node_paths=PackedStringArray("targeting_raycast", "targeting_ui_rect") instance=ExtResource("1_gxaua")]
|
||||
script = ExtResource("2_8x1tf")
|
||||
target_icon_scene = ExtResource("3_2x5va")
|
||||
targeting_raycast = NodePath("RayCast3D")
|
||||
targeting_ui_rect = NodePath("TextureRect")
|
||||
projectile_scene = ExtResource("2_lfuvh")
|
||||
stats = ExtResource("3_i1hxj")
|
||||
|
||||
[node name="Sprite3D" parent="." index="0" unique_id=1457062627]
|
||||
texture = SubResource("AtlasTexture_y0imp")
|
||||
|
||||
[node name="RayCast3D" type="RayCast3D" parent="." index="2" unique_id=2956936]
|
||||
target_position = Vector3(0, 0, -100)
|
||||
collision_mask = 4
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="." index="3" unique_id=685568998]
|
||||
visible = false
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -20.0
|
||||
offset_top = -20.0
|
||||
offset_right = 20.0
|
||||
offset_bottom = 20.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
texture = SubResource("AtlasTexture_ewxon")
|
||||
|
||||
[node name="AudioStreamPlayer3D" parent="." index="5" unique_id=1246168083]
|
||||
stream = SubResource("AudioStreamRandomizer_5w2i3")
|
||||
12
weapons/fireworks_weapon/scn_target_icon.tscn
Normal file
12
weapons/fireworks_weapon/scn_target_icon.tscn
Normal file
@@ -0,0 +1,12 @@
|
||||
[gd_scene format=3 uid="uid://csufsbi64asau"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://hnfa76d6tdi" path="res://weapons/fireworks_weapon/tex_target_icon.png" id="1_glkwu"]
|
||||
|
||||
[node name="Node3D" type="Sprite3D" unique_id=1768912620]
|
||||
sorting_offset = 20.0
|
||||
pixel_size = 0.002
|
||||
billboard = 1
|
||||
no_depth_test = true
|
||||
fixed_size = true
|
||||
texture_filter = 0
|
||||
texture = ExtResource("1_glkwu")
|
||||
84
weapons/fireworks_weapon/scr_fireworks_weapon.gd
Normal file
84
weapons/fireworks_weapon/scr_fireworks_weapon.gd
Normal file
@@ -0,0 +1,84 @@
|
||||
class_name RocketLauncherWeapon
|
||||
extends ProjectileWeapon
|
||||
|
||||
@export var target_icon_scene: PackedScene
|
||||
@export var targeting_raycast: RayCast3D
|
||||
@export var targeting_ui_rect: TextureRect
|
||||
|
||||
var target_max: int = 3
|
||||
var targets: Array[EnemyController] = []
|
||||
var target_icons: Array[Sprite3D] = []
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
super._ready()
|
||||
targeting_raycast.global_position = hero.camera.global_position
|
||||
target_max = floori(stats.get_attribute("Target Limit"))
|
||||
for x: int in target_max:
|
||||
var icon: Sprite3D = target_icon_scene.instantiate()
|
||||
add_child(icon)
|
||||
icon.set_visible(false)
|
||||
target_icons.append(icon)
|
||||
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
super._process(delta)
|
||||
if !trigger_held or time_since_firing < time_between_shots or current_energy < energy_cost:
|
||||
return
|
||||
var target_list: Array[EnemyController] = []
|
||||
for target: EnemyController in targets:
|
||||
if is_instance_valid(target):
|
||||
target_list.append(target)
|
||||
targets = target_list
|
||||
for x: int in target_icons.size():
|
||||
if x < targets.size():
|
||||
target_icons[x].global_position = targets[x].d_n.global_position
|
||||
target_icons[x].set_visible(true)
|
||||
else:
|
||||
target_icons[x].set_visible(false)
|
||||
targeting_ui_rect.set_visible(true)
|
||||
targeting_ui_rect.texture.region = Rect2(128 * targets.size(), 0, 128, 128)
|
||||
if targets.size() < target_max and targeting_raycast.is_colliding() and !targets.has(targeting_raycast.get_collider()):
|
||||
targets.append(targeting_raycast.get_collider())
|
||||
|
||||
|
||||
func release_trigger() -> void:
|
||||
super.release_trigger()
|
||||
if targets.size() > 0 and current_energy >= energy_cost and time_since_firing >= time_between_shots:
|
||||
#TODO: make it "rockets fired" not "targets"
|
||||
current_energy -= targets.size()
|
||||
energy_spent.emit(targets.size(), stats.energy_type)
|
||||
time_since_firing -= time_between_shots
|
||||
shoot()
|
||||
|
||||
|
||||
func shoot() -> void:
|
||||
animator.play("shoot")
|
||||
recharging = false
|
||||
recharge_speed = 0.0
|
||||
for target: EnemyController in targets:
|
||||
networked_spawn_rocket.rpc(get_tree().root.get_path_to(target), multiplayer.get_unique_id())
|
||||
targets.clear()
|
||||
targeting_ui_rect.set_visible(false)
|
||||
for icon: Sprite3D in target_icons:
|
||||
icon.set_visible(false)
|
||||
|
||||
|
||||
@rpc("reliable", "call_local")
|
||||
func networked_spawn_rocket(target_node_path: String, peer_id: int) -> void:
|
||||
var target: EnemyController = get_tree().root.get_node(target_node_path)
|
||||
var projectile: RocketProjectile = projectile_scene.instantiate() as RocketProjectile
|
||||
projectile.position = global_position
|
||||
var effect: Effect = Effect.new()
|
||||
effect.damage = damage
|
||||
projectile.effect = effect
|
||||
projectile.target = target
|
||||
projectile.owner_id = peer_id
|
||||
projectile.name = str(peer_id) + str(projectile_id)
|
||||
get_tree().root.add_child(projectile)
|
||||
projectile.apply_central_impulse(Vector3.UP * 3.0)
|
||||
projectile_id += 1
|
||||
|
||||
|
||||
func _physics_process(_delta: float) -> void:
|
||||
pass
|
||||
1
weapons/fireworks_weapon/scr_fireworks_weapon.gd.uid
Normal file
1
weapons/fireworks_weapon/scr_fireworks_weapon.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://cuxi02s34ohs
|
||||
BIN
weapons/fireworks_weapon/tex_fireworks_weapon.png
Normal file
BIN
weapons/fireworks_weapon/tex_fireworks_weapon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.6 KiB |
40
weapons/fireworks_weapon/tex_fireworks_weapon.png.import
Normal file
40
weapons/fireworks_weapon/tex_fireworks_weapon.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://by1y15lm0bppe"
|
||||
path="res://.godot/imported/tex_fireworks_weapon.png-0f5c82ad05c467b21bde7424a649389d.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://weapons/fireworks_weapon/tex_fireworks_weapon.png"
|
||||
dest_files=["res://.godot/imported/tex_fireworks_weapon.png-0f5c82ad05c467b21bde7424a649389d.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
BIN
weapons/fireworks_weapon/tex_target_icon.png
Normal file
BIN
weapons/fireworks_weapon/tex_target_icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
40
weapons/fireworks_weapon/tex_target_icon.png.import
Normal file
40
weapons/fireworks_weapon/tex_target_icon.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://hnfa76d6tdi"
|
||||
path="res://.godot/imported/tex_target_icon.png-4d58043f9364cd458b836633766204cc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://weapons/fireworks_weapon/tex_target_icon.png"
|
||||
dest_files=["res://.godot/imported/tex_target_icon.png-4d58043f9364cd458b836633766204cc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
BIN
weapons/fireworks_weapon/tex_target_list.png
Normal file
BIN
weapons/fireworks_weapon/tex_target_list.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.2 KiB |
40
weapons/fireworks_weapon/tex_target_list.png.import
Normal file
40
weapons/fireworks_weapon/tex_target_list.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cc2umukpibmx1"
|
||||
path="res://.godot/imported/tex_target_list.png-084475b7d45748b42cc08353544cdf4b.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://weapons/fireworks_weapon/tex_target_list.png"
|
||||
dest_files=["res://.godot/imported/tex_target_list.png-084475b7d45748b42cc08353544cdf4b.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
17
weapons/fireworks_weapon/weapon_stats.tres
Normal file
17
weapons/fireworks_weapon/weapon_stats.tres
Normal file
@@ -0,0 +1,17 @@
|
||||
[gd_resource type="Resource" script_class="CardText" format=3 uid="uid://d2yo07m2mp2mp"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bsuinotkvh7eu" path="res://scripts/resources/feature.gd" id="1_h5r83"]
|
||||
[ext_resource type="Resource" uid="uid://dfup264h2pun7" path="res://scripts/features/heavy_rounds/heavy_rounds_feature.tres" id="2_lnb6u"]
|
||||
[ext_resource type="Script" uid="uid://dg7gxxqfqxcmc" path="res://scripts/resources/cassette_text.gd" id="2_ow0r7"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("2_ow0r7")
|
||||
energy_type = 1
|
||||
attributes = Dictionary[String, float]({
|
||||
"Damage": 8.0,
|
||||
"Energy": 12.0,
|
||||
"Fire Delay": 2.0,
|
||||
"Target Limit": 3.0
|
||||
})
|
||||
features = Array[ExtResource("1_h5r83")]([ExtResource("2_lnb6u")])
|
||||
text = "DESC_WEAPON_ROCKET"
|
||||
Reference in New Issue
Block a user