TowerDefense/Towers/Projectiles/ProjectileResource.gd
Varylios d352574618 feat: add James Boss
-  Add standard boss class
 - Improve projectile
 - Update layer and mask collision
2025-09-14 01:31:18 +02:00

19 lines
943 B
GDScript

extends Resource
class_name ProjectileResource
const projectileScene : PackedScene = preload("res://Towers/Projectiles/projectile.tscn")
@export var speed : int = 20
@export var damage : int = 1
@export var maxTargets : int = 1 ## Usefull when [enum Projectile.TYPE] is [param PIERCING] or [param BOUNCING]
@export var type : Projectile.TYPE = Projectile.TYPE.BASIC
@export_flags("Enemies", "Alliés") var allowedTargets : int = 1
## Usefull when [enum Projectile.TYPE] is [param AOE], [param PIERCING] or [param BOUNCING]
## When [enum Projectile.TYPE] is [param BOUNCING] the shape is for target new entity in range
@export var damageArea : Shape3D
@export var sprite : Texture2D = load("res://Assets/Emotes/emote_star.png")
func shoot(target: Node3D, gobalPos: Vector3) -> void:
var projectile : Projectile = projectileScene.instantiate()
projectile.loadProjectile(self, target)
EventBus.projectile_shooted.emit(projectile, gobalPos)