Make cards
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
[gd_scene load_steps=2 format=3 uid="uid://b0g5wd4n3py3x"]
|
[gd_scene load_steps=2 format=3 uid="uid://b0g5wd4n3py3x"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://c4x7n1r3ce1bc" path="res://Card/BaseCard.gd" id="1_hoajl"]
|
[ext_resource type="Script" uid="uid://c4x7n1r3ce1bc" path="res://BaseCard/BaseCard.gd" id="1_hoajl"]
|
||||||
|
|
||||||
[node name="Card" type="PanelContainer"]
|
[node name="Card" type="PanelContainer"]
|
||||||
offset_right = 1.0
|
offset_right = 1.0
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
[gd_scene load_steps=2 format=3 uid="uid://bf1241le7dwfs"]
|
[gd_scene load_steps=2 format=3 uid="uid://bf1241le7dwfs"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://c0jwjfs64x5tm" path="res://CardInjects/cursor_gun_card_inject.gd" id="1_25dn0"]
|
[ext_resource type="Script" uid="uid://c0jwjfs64x5tm" path="res://CardInjects/CursorGun/cursor_gun_card_inject.gd" id="1_25dn0"]
|
||||||
|
|
||||||
[node name="CursorGunCardInject" type="Node"]
|
[node name="CursorGunCardInject" type="Node"]
|
||||||
script = ExtResource("1_25dn0")
|
script = ExtResource("1_25dn0")
|
||||||
@@ -2,10 +2,16 @@ extends Area2D
|
|||||||
|
|
||||||
@export var speed = 70
|
@export var speed = 70
|
||||||
|
|
||||||
|
|
||||||
func _physics_process(delta):
|
func _physics_process(delta):
|
||||||
self.position += speed * delta
|
var direction = Vector2.RIGHT.rotated(self.rotation)
|
||||||
|
self.position += direction * speed * delta
|
||||||
|
|
||||||
func _on_body_entered(body):
|
func _on_body_entered(body):
|
||||||
if body.is_in_group("mobs"):
|
if body.is_in_group("mobs"):
|
||||||
body.take_hit()
|
body.take_hit()
|
||||||
|
self.queue_free()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_timer_timeout() -> void:
|
||||||
self.queue_free()
|
self.queue_free()
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
[gd_scene load_steps=4 format=3 uid="uid://2fmcxd2b8ff3"]
|
[gd_scene load_steps=4 format=3 uid="uid://2fmcxd2b8ff3"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://dg6dkalarcq2w" path="res://assets/Cursor_projectile_symbol.png" id="1_g08wh"]
|
[ext_resource type="Texture2D" uid="uid://dg6dkalarcq2w" path="res://assets/Cursor_projectile_symbol.png" id="1_g08wh"]
|
||||||
[ext_resource type="Script" uid="uid://bmms1edsh26dp" path="res://cursor_bullet.gd" id="1_ln2dr"]
|
[ext_resource type="Script" uid="uid://bmms1edsh26dp" path="res://CardInjects/CursorGun/cursor_bullet.gd" id="1_ln2dr"]
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_g08wh"]
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_g08wh"]
|
||||||
size = Vector2(226, 168)
|
size = Vector2(226, 168)
|
||||||
@@ -16,4 +16,10 @@ texture = ExtResource("1_g08wh")
|
|||||||
position = Vector2(-11, -2)
|
position = Vector2(-11, -2)
|
||||||
shape = SubResource("RectangleShape2D_g08wh")
|
shape = SubResource("RectangleShape2D_g08wh")
|
||||||
|
|
||||||
|
[node name="Timer" type="Timer" parent="."]
|
||||||
|
wait_time = 5.0
|
||||||
|
one_shot = true
|
||||||
|
autostart = true
|
||||||
|
|
||||||
[connection signal="body_entered" from="." to="." method="_on_body_entered"]
|
[connection signal="body_entered" from="." to="." method="_on_body_entered"]
|
||||||
|
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
@export var CursorBullet: PackedScene
|
@export var CursorBullet: PackedScene = preload("res://CardInjects/CursorGun/cursor_bullet.tscn")
|
||||||
@export var max_ammo = 10
|
@export var max_ammo = 10
|
||||||
var ammo = 10
|
var ammo = 10
|
||||||
|
|
||||||
@@ -10,12 +10,12 @@ func activate(world, activator):
|
|||||||
world.add_child(bullet)
|
world.add_child(bullet)
|
||||||
bullet.position = activator.position
|
bullet.position = activator.position
|
||||||
bullet.look_at(target)
|
bullet.look_at(target)
|
||||||
if activator.get_collision_layer_bit(1): # player object
|
if activator.get_collision_layer_value(1): # player object
|
||||||
bullet.set_collision_layer_bit(1, false)
|
bullet.set_collision_layer_value (1, false)
|
||||||
bullet.set_collision_layer_bit(2, true)
|
bullet.set_collision_layer_value(2, true)
|
||||||
elif activator.get_collision_layer_bit(2): # enemy object
|
elif activator.get_collision_layer_value(2): # enemy object
|
||||||
bullet.set_collision_layer_bit(1, true)
|
bullet.set_collision_layer_value(1, true)
|
||||||
bullet.set_collision_layer_bit(2, false)
|
bullet.set_collision_layer_value(2, false)
|
||||||
else:
|
else:
|
||||||
assert(false, "who are you, activator?")
|
assert(false, "who are you, activator?")
|
||||||
ammo -= 1
|
ammo -= 1
|
||||||
8
growth/CardInjects/Firewall/FirewallCardInject.tscn
Normal file
8
growth/CardInjects/Firewall/FirewallCardInject.tscn
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
[gd_scene load_steps=3 format=3 uid="uid://otxia3v8iw07"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://dpyarqogod6d3" path="res://CardInjects/Firewall/firewall_card_inject.gd" id="1_fd08f"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://33rplipuwv2k" path="res://CardInjects/Firewall/firewall.tscn" id="2_sbju6"]
|
||||||
|
|
||||||
|
[node name="FirewallCardInject" type="Node"]
|
||||||
|
script = ExtResource("1_fd08f")
|
||||||
|
FireWall = ExtResource("2_sbju6")
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
[gd_scene load_steps=2 format=3 uid="uid://33rplipuwv2k"]
|
[gd_scene load_steps=2 format=3 uid="uid://33rplipuwv2k"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://bmt6oqrixatxt" path="res://firewall.gd" id="1_qwxdp"]
|
[ext_resource type="Script" uid="uid://bmt6oqrixatxt" path="res://CardInjects/Firewall/firewall.gd" id="1_qwxdp"]
|
||||||
|
|
||||||
[node name="Firewall" type="Node"]
|
[node name="Firewall" type="Node2D"]
|
||||||
script = ExtResource("1_qwxdp")
|
script = ExtResource("1_qwxdp")
|
||||||
|
|
||||||
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
||||||
@@ -10,14 +10,15 @@ func activate(world, activator):
|
|||||||
firewall.position = activator.position
|
firewall.position = activator.position
|
||||||
firewall.position += firewall.position.direction_to(target) \
|
firewall.position += firewall.position.direction_to(target) \
|
||||||
* clamp(firewall.position.distance_to(target), min_range, max_range)
|
* clamp(firewall.position.distance_to(target), min_range, max_range)
|
||||||
if activator.get_collision_layer_bit(1): # player object
|
if activator.get_collision_layer_value(1): # player object
|
||||||
firewall.set_collision_layer_bit(1, false)
|
firewall.get_node("Area2D").set_collision_layer_value(1, false)
|
||||||
firewall.set_collision_layer_bit(2, true)
|
firewall.get_node("Area2D").set_collision_layer_value(2, true)
|
||||||
elif activator.get_collision_layer_bit(2): # enemy object
|
elif activator.get_collision_layer_value(2): # enemy object
|
||||||
firewall.set_collision_layer_bit(1, true)
|
firewall.get_node("Area2D").set_collision_layer_value(1, true)
|
||||||
firewall.set_collision_layer_bit(2, false)
|
firewall.get_node("Area2D").set_collision_layer_value(2, false)
|
||||||
else:
|
else:
|
||||||
assert(false, "who are you, activator?")
|
assert(false, "who are you, activator?")
|
||||||
|
world.add_child(firewall)
|
||||||
|
|
||||||
|
|
||||||
func discard(world, activator):
|
func discard(world, activator):
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
[gd_scene load_steps=2 format=3 uid="uid://otxia3v8iw07"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://dpyarqogod6d3" path="res://CardInjects/firewall_card_inject.gd" id="1_fd08f"]
|
|
||||||
|
|
||||||
[node name="FirewallCardInject" type="Node"]
|
|
||||||
script = ExtResource("1_fd08f")
|
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
extends Node
|
||||||
|
|
||||||
|
@export var RocketProjectile: PackedScene
|
||||||
|
|
||||||
|
func activate(world, activator):
|
||||||
|
var rocket = RocketProjectile.instantiate()
|
||||||
|
var target = activator.get_target_pos()
|
||||||
|
rocket.position = activator.position
|
||||||
|
rocket.look_at(target)
|
||||||
|
if activator.get_collision_layer_value(1): # player object
|
||||||
|
rocket.get_node("Area2D").set_collision_layer_value(1, false)
|
||||||
|
rocket.get_node("Area2D").set_collision_layer_value(2, true)
|
||||||
|
elif activator.get_collision_layer_value(2): # enemy object
|
||||||
|
rocket.get_node("Area2D").set_collision_layer_value(1, true)
|
||||||
|
rocket.get_node("Area2D").set_collision_layer_value(2, false)
|
||||||
|
else:
|
||||||
|
assert(false, "who are you, activator?")
|
||||||
|
world.add_child(rocket)
|
||||||
|
|
||||||
|
func discard(world, activator):
|
||||||
|
pass
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
[gd_scene load_steps=3 format=3 uid="uid://cquq44uspy17w"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://bijee1o0qyiis" path="res://CardInjects/RocketLauncher/rocket_launcher_card_inject.gd" id="1_fa8xn"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://csqaw6y03bohh" path="res://CardInjects/RocketLauncher/rocket_projectile.tscn" id="2_g05lu"]
|
||||||
|
|
||||||
|
[node name="RocketLauncherCardInject" type="Node"]
|
||||||
|
script = ExtResource("1_fa8xn")
|
||||||
|
RocketProjectile = ExtResource("2_g05lu")
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
[gd_scene load_steps=3 format=3 uid="uid://csqaw6y03bohh"]
|
[gd_scene load_steps=3 format=3 uid="uid://csqaw6y03bohh"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://2gkeyxrjxt1b" path="res://rocket_projectile.gd" id="1_7grw8"]
|
[ext_resource type="Script" uid="uid://2gkeyxrjxt1b" path="res://CardInjects/RocketLauncher/rocket_projectile.gd" id="1_7grw8"]
|
||||||
|
|
||||||
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_7grw8"]
|
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_7grw8"]
|
||||||
particle_flag_disable_z = true
|
particle_flag_disable_z = true
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
extends Node
|
|
||||||
|
|
||||||
@export var RocketProjectile: PackedScene
|
|
||||||
|
|
||||||
func activate(world, activator):
|
|
||||||
var rocket = RocketProjectile.instantiate()
|
|
||||||
var target = activator.get_target_pos()
|
|
||||||
rocket.position = activator.position
|
|
||||||
rocket.look_at(target)
|
|
||||||
if activator.get_collision_layer_bit(1): # player object
|
|
||||||
rocket.set_collision_layer_bit(1, false)
|
|
||||||
rocket.set_collision_layer_bit(2, true)
|
|
||||||
elif activator.get_collision_layer_bit(2): # enemy object
|
|
||||||
rocket.set_collision_layer_bit(1, true)
|
|
||||||
rocket.set_collision_layer_bit(2, false)
|
|
||||||
else:
|
|
||||||
assert(false, "who are you, activator?")
|
|
||||||
|
|
||||||
|
|
||||||
func discard(world, activator):
|
|
||||||
pass
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
[gd_scene load_steps=2 format=3 uid="uid://cquq44uspy17w"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://bijee1o0qyiis" path="res://CardInjects/rocket_launcher_card_inject.gd" id="1_fa8xn"]
|
|
||||||
|
|
||||||
[node name="RocketLauncherCardInject" type="Node"]
|
|
||||||
script = ExtResource("1_fa8xn")
|
|
||||||
7
growth/Cards/CursorGunCard.tscn
Normal file
7
growth/Cards/CursorGunCard.tscn
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
[gd_scene load_steps=3 format=3 uid="uid://cmuig2rqt65f3"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://b0g5wd4n3py3x" path="res://BaseCard/BaseCard.tscn" id="1_3qnhj"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bf1241le7dwfs" path="res://CardInjects/CursorGun/CursorGunCardInject.tscn" id="2_rrs0u"]
|
||||||
|
|
||||||
|
[node name="Card" instance=ExtResource("1_3qnhj")]
|
||||||
|
behaviors = [ExtResource("2_rrs0u")]
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
[gd_scene load_steps=3 format=3 uid="uid://ee0t3qv6gyam"]
|
[gd_scene load_steps=3 format=3 uid="uid://ee0t3qv6gyam"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://b0g5wd4n3py3x" path="res://Card/BaseCard.tscn" id="1_wwyou"]
|
[ext_resource type="PackedScene" uid="uid://b0g5wd4n3py3x" path="res://BaseCard/BaseCard.tscn" id="1_wwyou"]
|
||||||
[ext_resource type="PackedScene" uid="uid://b3piw7awjaxgj" path="res://CardInjects/DashCardInject.tscn" id="2_2qs8v"]
|
[ext_resource type="PackedScene" uid="uid://b3piw7awjaxgj" path="res://CardInjects/DashCardInject.tscn" id="2_2qs8v"]
|
||||||
|
|
||||||
[node name="Card" instance=ExtResource("1_wwyou")]
|
[node name="Card" instance=ExtResource("1_wwyou")]
|
||||||
|
|||||||
7
growth/Cards/FirewallCard.tscn
Normal file
7
growth/Cards/FirewallCard.tscn
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
[gd_scene load_steps=3 format=3 uid="uid://bbjra84inrnnu"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://b0g5wd4n3py3x" path="res://BaseCard/BaseCard.tscn" id="1_jb1yu"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://otxia3v8iw07" path="res://CardInjects/Firewall/FirewallCardInject.tscn" id="2_il4cq"]
|
||||||
|
|
||||||
|
[node name="Card" instance=ExtResource("1_jb1yu")]
|
||||||
|
behaviors = [ExtResource("2_il4cq")]
|
||||||
7
growth/Cards/RocketLauncherCard.tscn
Normal file
7
growth/Cards/RocketLauncherCard.tscn
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
[gd_scene load_steps=3 format=3 uid="uid://cwrwbf1ib5845"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://b0g5wd4n3py3x" path="res://BaseCard/BaseCard.tscn" id="1_j4w8m"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cquq44uspy17w" path="res://CardInjects/RocketLauncher/rocket_launcher_card_inject.tscn" id="2_203iy"]
|
||||||
|
|
||||||
|
[node name="Card" instance=ExtResource("1_j4w8m")]
|
||||||
|
behaviors = [ExtResource("2_203iy")]
|
||||||
@@ -3,7 +3,7 @@ extends Panel
|
|||||||
@export var player: NodePath
|
@export var player: NodePath
|
||||||
@export var world: NodePath
|
@export var world: NodePath
|
||||||
|
|
||||||
var dash_card_scene = preload("res://Cards/DashCard.tscn")
|
var dash_card_scene = preload("res://Cards/FirewallCard.tscn")
|
||||||
var active_card_index = 0
|
var active_card_index = 0
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dhhnr3xkxbxlu" path="res://player.tscn" id="1_vonw3"]
|
[ext_resource type="PackedScene" uid="uid://dhhnr3xkxbxlu" path="res://player.tscn" id="1_vonw3"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bsv3h2lpv7h77" path="res://virus.tscn" id="2_oi3di"]
|
[ext_resource type="PackedScene" uid="uid://bsv3h2lpv7h77" path="res://virus.tscn" id="2_oi3di"]
|
||||||
[ext_resource type="PackedScene" path="res://hand.tscn" id="3_oi3di"]
|
[ext_resource type="PackedScene" uid="uid://co8jnr2dew5ts" path="res://hand.tscn" id="3_oi3di"]
|
||||||
[ext_resource type="TileSet" uid="uid://c20bl25rqyf68" path="res://assets/tiles/new_tile_set.tres" id="4_0b4ue"]
|
[ext_resource type="TileSet" uid="uid://c20bl25rqyf68" path="res://assets/tiles/new_tile_set.tres" id="4_0b4ue"]
|
||||||
|
|
||||||
[node name="Level" type="Node2D"]
|
[node name="Level" type="Node2D"]
|
||||||
|
|||||||
@@ -31,6 +31,9 @@ var charged = false;
|
|||||||
var dash_cooldown_timer = 0;
|
var dash_cooldown_timer = 0;
|
||||||
var dash_on_cooldown = false;
|
var dash_on_cooldown = false;
|
||||||
|
|
||||||
|
func get_target_pos():
|
||||||
|
return self.get_global_mouse_position()
|
||||||
|
|
||||||
func update_move_direction():
|
func update_move_direction():
|
||||||
move_direction = Vector2.ZERO
|
move_direction = Vector2.ZERO
|
||||||
if Input.is_action_pressed("move_right"):
|
if Input.is_action_pressed("move_right"):
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ unique_name_in_owner = true
|
|||||||
scale = Vector2(0.1, 0.1)
|
scale = Vector2(0.1, 0.1)
|
||||||
sprite_frames = SubResource("SpriteFrames_onrkg")
|
sprite_frames = SubResource("SpriteFrames_onrkg")
|
||||||
|
|
||||||
collision_layer = 2
|
|
||||||
[node name="Hurtbox" type="CollisionShape2D" parent="."]
|
[node name="Hurtbox" type="CollisionShape2D" parent="."]
|
||||||
scale = Vector2(2.5, 2.5)
|
scale = Vector2(2.5, 2.5)
|
||||||
shape = SubResource("CircleShape2D_i3pqv")
|
shape = SubResource("CircleShape2D_i3pqv")
|
||||||
|
|||||||
Reference in New Issue
Block a user