enabled enforced static typing
This commit is contained in:
@@ -1,10 +1,9 @@
|
||||
extends Weapon
|
||||
class_name HitscanWeapon
|
||||
class_name HitscanWeapon extends Weapon
|
||||
|
||||
@export var raycast : RayCast3D
|
||||
@export var range_debug_indicator : CSGSphere3D
|
||||
@export var raycast: RayCast3D
|
||||
@export var range_debug_indicator: CSGSphere3D
|
||||
|
||||
var attack_range := 0.0
|
||||
var attack_range: float = 0.0
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
@@ -15,12 +14,12 @@ func _ready() -> void:
|
||||
raycast.global_position = hero.camera.global_position
|
||||
|
||||
|
||||
func shoot():
|
||||
func shoot() -> void:
|
||||
super.shoot()
|
||||
if raycast.is_colliding():
|
||||
var target = raycast.get_collider()
|
||||
var target: CharacterBody3D = raycast.get_collider()
|
||||
if target != null:
|
||||
var target_hitbox = target.shape_owner_get_owner(raycast.get_collider_shape())
|
||||
var target_hitbox: Hitbox = target.shape_owner_get_owner(raycast.get_collider_shape())
|
||||
if target_hitbox is Hitbox:
|
||||
hit(target, target_hitbox)
|
||||
if Data.preferences.display_self_damage_indicators:
|
||||
@@ -28,14 +27,14 @@ func shoot():
|
||||
networked_hit.rpc(get_tree().root.get_path_to(target), get_tree().root.get_path_to(target_hitbox))
|
||||
|
||||
|
||||
func hit(_target, target_hitbox : Hitbox):
|
||||
func hit(_target: CharacterBody3D, target_hitbox: Hitbox) -> void:
|
||||
target_hitbox.damage(damage)
|
||||
|
||||
|
||||
@rpc("reliable")
|
||||
func networked_hit(target_path : String, target_hitbox_path : String):
|
||||
var target = get_tree().root.get_node(target_path)
|
||||
var target_hitbox = get_tree().root.get_node(target_hitbox_path) as Hitbox
|
||||
func networked_hit(target_path: String, target_hitbox_path: String) -> void:
|
||||
var target: CharacterBody3D = get_tree().root.get_node(target_path)
|
||||
var target_hitbox: Hitbox = get_tree().root.get_node(target_hitbox_path) as Hitbox
|
||||
hit(target, target_hitbox)
|
||||
if Data.preferences.display_party_damage_indicators:
|
||||
spawn_damage_indicator(target.sprite.global_position)
|
||||
|
@@ -1,25 +1,24 @@
|
||||
extends Weapon
|
||||
class_name ProjectileWeapon
|
||||
class_name ProjectileWeapon extends Weapon
|
||||
|
||||
@export var projectile_scene : PackedScene
|
||||
@export var projectile_scene: PackedScene
|
||||
|
||||
var force := 20.0
|
||||
var projectile_id := 0
|
||||
var force: float = 20.0
|
||||
var projectile_id: int = 0
|
||||
|
||||
|
||||
func shoot():
|
||||
func shoot() -> void:
|
||||
super.shoot()
|
||||
networked_spawn_projectile.rpc(multiplayer.get_unique_id(), -global_transform.basis.z)
|
||||
|
||||
|
||||
@rpc("reliable")
|
||||
func networked_shoot():
|
||||
func networked_shoot() -> void:
|
||||
super.networked_shoot()
|
||||
|
||||
|
||||
@rpc("reliable", "call_local")
|
||||
func networked_spawn_projectile(peer_id, direction):
|
||||
var projectile = projectile_scene.instantiate() as Projectile
|
||||
func networked_spawn_projectile(peer_id: int, direction: Vector3) -> void:
|
||||
var projectile: Projectile = projectile_scene.instantiate() as Projectile
|
||||
projectile.position = global_position
|
||||
projectile.damage = damage
|
||||
projectile.direction = direction
|
||||
|
@@ -1,12 +1,11 @@
|
||||
extends Weapon
|
||||
class_name ShapecastWeapon
|
||||
class_name ShapecastWeapon extends Weapon
|
||||
|
||||
@export var shapecast : ShapeCast3D
|
||||
@export var range_debug_indicator : CSGSphere3D
|
||||
@export var status_stats : StatusStats
|
||||
@export var particles : GPUParticles3D
|
||||
@export var shapecast: ShapeCast3D
|
||||
@export var range_debug_indicator: CSGSphere3D
|
||||
@export var status_stats: StatusStats
|
||||
@export var particles: GPUParticles3D
|
||||
|
||||
var attack_range := 0.0
|
||||
var attack_range: float = 0.0
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
@@ -22,12 +21,12 @@ func _process(delta: float) -> void:
|
||||
particles.emitting = trigger_held
|
||||
|
||||
|
||||
func shoot():
|
||||
func shoot() -> void:
|
||||
super.shoot()
|
||||
for index in shapecast.get_collision_count():
|
||||
var target = shapecast.get_collider(index)
|
||||
for index: int in shapecast.get_collision_count():
|
||||
var target: CharacterBody3D = shapecast.get_collider(index)
|
||||
if target:
|
||||
var target_hitbox = target.shape_owner_get_owner(shapecast.get_collider_shape(index))
|
||||
var target_hitbox: Hitbox = target.shape_owner_get_owner(shapecast.get_collider_shape(index))
|
||||
if target_hitbox is Hitbox:
|
||||
hit(target, target_hitbox)
|
||||
if Data.preferences.display_self_damage_indicators:
|
||||
@@ -36,20 +35,20 @@ func shoot():
|
||||
|
||||
|
||||
func build_status_object() -> StatusEffect:
|
||||
var status = StatusEffect.new()
|
||||
var status: StatusEffect = StatusEffect.new()
|
||||
status.stats = status_stats
|
||||
return status
|
||||
|
||||
|
||||
func hit(target, target_hitbox : Hitbox):
|
||||
func hit(target: CharacterBody3D, target_hitbox: Hitbox) -> void:
|
||||
target_hitbox.damage(damage)
|
||||
target.status_manager.add_effect(build_status_object())
|
||||
|
||||
|
||||
@rpc("reliable")
|
||||
func networked_hit(target_path : String, target_hitbox_path : String):
|
||||
var target = get_tree().root.get_node(target_path)
|
||||
var target_hitbox = get_tree().root.get_node(target_hitbox_path) as Hitbox
|
||||
func networked_hit(target_path: String, target_hitbox_path: String) -> void:
|
||||
var target: CharacterBody3D = get_tree().root.get_node(target_path) as CharacterBody3D
|
||||
var target_hitbox: Hitbox = get_tree().root.get_node(target_hitbox_path) as Hitbox
|
||||
hit(target, target_hitbox)
|
||||
if Data.preferences.display_party_damage_indicators:
|
||||
spawn_damage_indicator(target.sprite.global_position)
|
||||
|
@@ -1,15 +1,14 @@
|
||||
extends HitscanWeapon
|
||||
class_name StatusApplyingWeapon
|
||||
class_name StatusApplyingWeapon extends HitscanWeapon
|
||||
|
||||
@export var status_stats : StatusStats
|
||||
@export var status_stats: StatusStats
|
||||
|
||||
|
||||
func hit(target, target_hitbox : Hitbox):
|
||||
func hit(target: CharacterBody3D, target_hitbox: Hitbox) -> void:
|
||||
super.hit(target, target_hitbox)
|
||||
target.status_manager.add_effect(build_status_object())
|
||||
|
||||
|
||||
func build_status_object() -> StatusEffect:
|
||||
var status = StatusEffect.new()
|
||||
var status: StatusEffect = StatusEffect.new()
|
||||
status.stats = status_stats
|
||||
return status
|
||||
|
@@ -1,27 +1,26 @@
|
||||
extends Node3D
|
||||
class_name Weapon
|
||||
class_name Weapon extends Node3D
|
||||
|
||||
signal energy_changed(energy)
|
||||
signal energy_changed(energy: int)
|
||||
|
||||
@export var stats : CardText
|
||||
@export var animator : AnimationPlayer
|
||||
@export var audio_player : AudioStreamPlayer3D
|
||||
@export var recharge_timer : Timer
|
||||
@export var stats: CardText
|
||||
@export var animator: AnimationPlayer
|
||||
@export var audio_player: AudioStreamPlayer3D
|
||||
@export var recharge_timer: Timer
|
||||
|
||||
var damage_particle_scene = preload("res://Scenes/damage_particle.tscn")
|
||||
var hero : Hero
|
||||
var trigger_held := false
|
||||
var second_trigger_held := false
|
||||
var time_since_firing := 0.0
|
||||
var time_between_shots := 0.0
|
||||
var damage := 0.0
|
||||
var max_energy := 100.0
|
||||
var current_energy := 100.0
|
||||
var energy_cost := 1.0
|
||||
var recharging := false
|
||||
var recharge_speed := 0.0
|
||||
var recharge_acceleration = 2.0
|
||||
var recharge_max_speed = 25.0
|
||||
var damage_particle_scene: PackedScene = preload("res://Scenes/damage_particle.tscn")
|
||||
var hero: Hero
|
||||
var trigger_held: bool = false
|
||||
var second_trigger_held: bool = false
|
||||
var time_since_firing: float = 0.0
|
||||
var time_between_shots: float = 0.0
|
||||
var damage: float = 0.0
|
||||
var max_energy: float = 100.0
|
||||
var current_energy: float = 100.0
|
||||
var energy_cost: float = 1.0
|
||||
var recharging: bool = false
|
||||
var recharge_speed: float = 0.0
|
||||
var recharge_acceleration: float = 2.0
|
||||
var recharge_max_speed: float = 25.0
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
@@ -30,7 +29,7 @@ func _ready() -> void:
|
||||
energy_cost = stats.get_attribute("Energy")
|
||||
|
||||
|
||||
func set_hero(value):
|
||||
func set_hero(value: Hero) -> void:
|
||||
hero = value
|
||||
|
||||
|
||||
@@ -56,33 +55,33 @@ func _physics_process(_delta: float) -> void:
|
||||
networked_shoot.rpc()
|
||||
|
||||
|
||||
func hold_trigger():
|
||||
func hold_trigger() -> void:
|
||||
trigger_held = true
|
||||
|
||||
|
||||
func release_trigger():
|
||||
func release_trigger() -> void:
|
||||
if trigger_held:
|
||||
recharge_timer.start()
|
||||
trigger_held = false
|
||||
|
||||
|
||||
func hold_second_trigger():
|
||||
func hold_second_trigger() -> void:
|
||||
second_trigger_held = true
|
||||
|
||||
|
||||
func release_second_trigger():
|
||||
func release_second_trigger() -> void:
|
||||
second_trigger_held = false
|
||||
|
||||
|
||||
func spawn_damage_indicator(pos):
|
||||
func spawn_damage_indicator(pos: Vector3) -> void:
|
||||
if damage > 0:
|
||||
var marker = damage_particle_scene.instantiate()
|
||||
var marker: Node3D = damage_particle_scene.instantiate()
|
||||
get_tree().root.add_child(marker)
|
||||
marker.set_number(damage)
|
||||
marker.position = pos
|
||||
|
||||
|
||||
func shoot():
|
||||
func shoot() -> void:
|
||||
animator.play("shoot")
|
||||
audio_player.play()
|
||||
recharging = false
|
||||
@@ -91,7 +90,7 @@ func shoot():
|
||||
|
||||
|
||||
@rpc
|
||||
func networked_shoot():
|
||||
func networked_shoot() -> void:
|
||||
animator.play("shoot")
|
||||
audio_player.play()
|
||||
|
||||
|
Reference in New Issue
Block a user