Skip to content

Commit

Permalink
remove self hit on spawn
Browse files Browse the repository at this point in the history
  • Loading branch information
myin142 committed Oct 21, 2023
1 parent 94a6e80 commit 284e85a
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 5 deletions.
5 changes: 4 additions & 1 deletion godot/src/player.gd
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,19 @@ signal died()
@onready var hand: Node2D = $Hand
@onready var shot_point = $Hand/ShotPoint

var thrown = false

func _ready():
input.just_pressed.connect(_on_just_pressed)

func _on_just_pressed(ev: InputEvent):
if ev.is_action_pressed("throw"):
if ev.is_action_pressed("throw") and not thrown:
thrown = true
var projectile = projectile_scene.instantiate()
projectile.global_position = shot_point.global_position
projectile.global_rotation = shot_point.global_rotation
get_tree().current_scene.add_child(projectile)
projectile.freed.connect(func(): thrown = false)

func _process(delta):
hand.global_rotation = Vector2.RIGHT.angle_to(global_position.direction_to(get_global_mouse_position()))
Expand Down
15 changes: 13 additions & 2 deletions godot/src/props/projectile.gd
Original file line number Diff line number Diff line change
@@ -1,13 +1,20 @@
extends Area2D

signal freed()

@export var speed := 300
@export var dir := Vector2.RIGHT
@export var max_reflections := 4
@export var damage := 5

@onready var collision_shape_2d = $CollisionShape2D

var reflected := 0

func _ready():
collision_shape_2d.disabled = true
get_tree().create_timer(0.05).timeout.connect(func(): collision_shape_2d.disabled = false) # prevent player from hitting himself

dir = dir.rotated(global_rotation)
area_entered.connect(func(area):
if area is Mirror:
Expand All @@ -16,11 +23,15 @@ func _ready():
reflected += 1

if reflected > max_reflections:
queue_free()
_remove()
elif area is Hitbox:
area.damage(damage)
queue_free()
_remove()
)

func _remove():
freed.emit()
queue_free()

func _physics_process(delta):
translate(dir * speed * delta)
4 changes: 3 additions & 1 deletion godot/src/props/projectile.tscn
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
[ext_resource type="Script" path="res://src/props/projectile.gd" id="1_ffy6e"]

[sub_resource type="RectangleShape2D" id="RectangleShape2D_str41"]
size = Vector2(32, 4)
size = Vector2(4, 32)

[node name="Projectile" type="Area2D"]
collision_layer = 0
Expand All @@ -17,4 +17,6 @@ scale = Vector2(0.234375, 0.0256348)
texture = ExtResource("1_exxtt")

[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
rotation = -1.5708
shape = SubResource("RectangleShape2D_str41")
one_way_collision = true
1 change: 0 additions & 1 deletion godot/src/props/shard_emitter.gd
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ var shattered = false
func _ready() -> void:
if get_parent() is Sprite2D:
var _rect = get_parent().get_rect()
print(_rect)
var points = []
#add outer frame points
points.append(_rect.position)
Expand Down

0 comments on commit 284e85a

Please sign in to comment.