Added modular traps for use in levels
This commit is contained in:
18
Traps/Spawn Trap.gd
Normal file
18
Traps/Spawn Trap.gd
Normal 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
20
Traps/Spawn Trap.tscn
Normal 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"]
|
Reference in New Issue
Block a user