Added modular traps for use in levels

This commit is contained in:
VoidTwo
2021-11-28 21:40:36 -06:00
parent 4c55683bde
commit 94833ec06a
3 changed files with 55 additions and 5 deletions

18
Traps/Spawn Trap.gd Normal file
View File

@@ -0,0 +1,18 @@
extends Area2D
export var enemy_path: String = 'res://Enemies/ENEMY.tscn'
export var relative_x_tiles: int
export var relative_y_tiles: int
func _on_spawn_trap_area_entered(_area: Area2D) -> void:
set_deferred('monitoring', false)
$Tile.set_deferred('disabled', true)
var enemy: KinematicBody2D = load(enemy_path).instance()
enemy.position.x = position.x + (relative_x_tiles * 16 + 8)
enemy.position.y = position.y + (relative_y_tiles * 16 + 8)
var enemies: YSort = get_tree().get_current_scene().get_node('YSort/Enemies')
enemies.call_deferred('add_child', enemy)
return

20
Traps/Spawn Trap.tscn Normal file
View File

@@ -0,0 +1,20 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://Traps/Spawn Trap.gd" type="Script" id=1]
[sub_resource type="RectangleShape2D" id=1]
extents = Vector2( 8, 8 )
[node name="Spawn Trap" type="Area2D"]
light_mask = 0
collision_layer = 0
collision_mask = 2
input_pickable = false
monitorable = false
script = ExtResource( 1 )
[node name="Tile" type="CollisionShape2D" parent="."]
position = Vector2( 8, 8 )
shape = SubResource( 1 )
[connection signal="area_entered" from="." to="." method="_on_spawn_trap_area_entered"]