mirror of
https://github.com/Steffo99/pineapple-surf.git
synced 2024-11-22 15:54:20 +00:00
47 lines
1.1 KiB
GDScript3
47 lines
1.1 KiB
GDScript3
|
extends BaseWeapon
|
||
|
class_name PeaShooter
|
||
|
|
||
|
const FIRE_RATE := 0.15
|
||
|
var last_fired := 0
|
||
|
var remaining := 10
|
||
|
|
||
|
@onready var ray = $RayCast3D
|
||
|
|
||
|
|
||
|
func _init() -> void:
|
||
|
self.weaponSlot = WeaponSlot.ONE
|
||
|
self.ammoType = AmmoType.SINGLE
|
||
|
|
||
|
|
||
|
# Called when the node enters the scene tree for the first time.
|
||
|
func _ready() -> void:
|
||
|
pass # Replace with function body.
|
||
|
|
||
|
|
||
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||
|
func _process(delta: float) -> void:
|
||
|
var current_time = Time.get_ticks_msec()
|
||
|
|
||
|
if Input.is_action_just_pressed("fire") and current_time > (last_fired + FIRE_RATE*1000):
|
||
|
if remaining > 0:
|
||
|
shoot()
|
||
|
|
||
|
|
||
|
func shoot() -> void:
|
||
|
last_fired = Time.get_ticks_msec()
|
||
|
# audio_player.play()
|
||
|
# $AnimationPlayer.seek(0)
|
||
|
# $AnimationPlayer.play("shoot")
|
||
|
|
||
|
if ray.is_colliding():
|
||
|
var normal = ray.get_collision_normal() as Vector3
|
||
|
var point = ray.get_collision_point() as Vector3
|
||
|
var object = ray.get_collider() as Node3D
|
||
|
# decalInstance.position = point
|
||
|
# object.add_child(decalInstance)
|
||
|
else:
|
||
|
# We should show a particle fx where the seed bouced off
|
||
|
pass
|
||
|
|
||
|
remaining -= 1
|