first Prototype
This commit is contained in:
parent
89503407e7
commit
c887a2168c
78 changed files with 2494 additions and 2 deletions
40
scenes/bullet/bullet.gd
Normal file
40
scenes/bullet/bullet.gd
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
class_name Bullet extends CharacterBody2D
|
||||
|
||||
@onready var damageArea = $DamageArea
|
||||
@onready var rangeTimer = $rangeTimer
|
||||
|
||||
var speed = 10 * 10000
|
||||
|
||||
var damage: int = 1
|
||||
var penetration: int = 1
|
||||
var penetratedCount: int = 0
|
||||
var range: float = 1.0
|
||||
|
||||
func _ready() -> void:
|
||||
damageArea.damage = damage
|
||||
rangeTimer.start(range)
|
||||
|
||||
func spawn(_positon: Vector2, _rotation: float, _damage: int, _range: float = 8.0, _penetration: int = 1, _speed: int = 10) -> void:
|
||||
global_position = _positon
|
||||
rotation = _rotation
|
||||
damage = _damage
|
||||
$DamageArea.damage = _damage
|
||||
penetration = _penetration
|
||||
range = _range
|
||||
speed = _speed * 10000
|
||||
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
velocity = Vector2.UP.rotated(rotation) * speed * delta
|
||||
move_and_slide()
|
||||
|
||||
func _on_damage_area_area_entered(area: Area2D) -> void:
|
||||
penetratedCount += 1
|
||||
checkPenetration()
|
||||
|
||||
func checkPenetration():
|
||||
if penetration <= penetratedCount:
|
||||
queue_free()
|
||||
|
||||
func _on_range_timer_timeout() -> void:
|
||||
queue_free()
|
||||
Loading…
Add table
Add a link
Reference in a new issue