diff --git a/growth/CardInjects/Mine/mine_card_inject.gd b/growth/CardInjects/Mine/mine_card_inject.gd new file mode 100644 index 0000000..a3c8b5e --- /dev/null +++ b/growth/CardInjects/Mine/mine_card_inject.gd @@ -0,0 +1,26 @@ +extends Node + +@export var Mine: PackedScene +@export var max_range = 1500 +@export var min_range = 15 +@export var max_ammo = 5 +var ammo = max_ammo + +func activate(world, activator): + var mine = Mine.instantiate() + var target = activator.get_target_pos() + mine.position = activator.position + mine.position += mine.position.direction_to(target) \ + * clamp(mine.position.distance_to(target), min_range, max_range) + if activator.get_collision_layer_value(1): # player object + mine.get_node("Area2D").set_collision_layer_value(1, false) + mine.get_node("Area2D").set_collision_layer_value(2, true) + elif activator.get_collision_layer_value(2): # enemy object + mine.get_node("Area2D").set_collision_layer_value(1, true) + mine.get_node("Area2D").set_collision_layer_value(2, false) + else: + assert(false, "who are you, activator?") + world.add_child(mine) + +func discard(world, activator): + pass diff --git a/growth/CardInjects/Mine/mine_card_inject.gd.uid b/growth/CardInjects/Mine/mine_card_inject.gd.uid new file mode 100644 index 0000000..5d92285 --- /dev/null +++ b/growth/CardInjects/Mine/mine_card_inject.gd.uid @@ -0,0 +1 @@ +uid://hdyom3r5ebee diff --git a/growth/CardInjects/Mine/mine_card_inject.tscn b/growth/CardInjects/Mine/mine_card_inject.tscn new file mode 100644 index 0000000..a813b3b --- /dev/null +++ b/growth/CardInjects/Mine/mine_card_inject.tscn @@ -0,0 +1,8 @@ +[gd_scene load_steps=3 format=3 uid="uid://dbfulrblm07v3"] + +[ext_resource type="Script" uid="uid://hdyom3r5ebee" path="res://CardInjects/Mine/mine_card_inject.gd" id="1_oct4p"] +[ext_resource type="PackedScene" uid="uid://umv7m1lf4x6b" path="res://CardInjects/Mine/mine.tscn" id="2_wv1jf"] + +[node name="MineCardInject" type="Node"] +script = ExtResource("1_oct4p") +Mine = ExtResource("2_wv1jf")