basic pew pew without damage or collision

This commit is contained in:
Medenos
2023-01-14 22:51:05 -05:00
parent 1d6a5eeea9
commit 4412fd21ea
31 changed files with 374 additions and 64 deletions

24
Weapons/basic_weapon.gd Normal file
View File

@@ -0,0 +1,24 @@
extends Node2D
@export var PROJECTILE : PackedScene;
@export var COOLDOWN = .5;
@export var SPREAD = 10;
@onready var raycast = $RayCast2D;
@onready var cooldown_timer = $CooldownTimer;
var is_on_cooldown = false;
func fire():
if !is_on_cooldown:
is_on_cooldown = true;
cooldown_timer.start(COOLDOWN);
var current_projectile : Area2D = PROJECTILE.instantiate();
get_node("/root").add_child(current_projectile);
current_projectile.transform = raycast.get_global_transform()
current_projectile.launch((get_global_mouse_position() - global_position).normalized());
func _on_cooldown_timer_timeout():
is_on_cooldown = false;

22
Weapons/basic_weapon.tscn Normal file
View File

@@ -0,0 +1,22 @@
[gd_scene load_steps=4 format=3 uid="uid://cmtuq84761y0i"]
[ext_resource type="Script" path="res://Weapons/basic_weapon.gd" id="1_cser3"]
[ext_resource type="Texture2D" uid="uid://df71outtqfcu0" path="res://Sprites/placeholder_weapon.png" id="1_k30lm"]
[ext_resource type="PackedScene" uid="uid://cpo8qy3y0fuui" path="res://Projectiles/basic_projectile.tscn" id="2_fbg12"]
[node name="basic_weapon" type="Node2D"]
script = ExtResource("1_cser3")
PROJECTILE = ExtResource("2_fbg12")
[node name="Sprite2D" type="Sprite2D" parent="."]
position = Vector2(20, 0)
scale = Vector2(2, 2)
texture = ExtResource("1_k30lm")
[node name="RayCast2D" type="RayCast2D" parent="."]
position = Vector2(44, 0)
target_position = Vector2(50, 0)
[node name="CooldownTimer" type="Timer" parent="."]
[connection signal="timeout" from="CooldownTimer" to="." method="_on_cooldown_timer_timeout"]