Make cards

This commit is contained in:
2025-10-05 01:56:01 +02:00
parent 822d23ccca
commit db8dc3982c
32 changed files with 97 additions and 57 deletions

View File

@@ -1,6 +1,6 @@
[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"]
offset_right = 1.0

View File

@@ -1,6 +1,6 @@
[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"]
script = ExtResource("1_25dn0")

View File

@@ -2,10 +2,16 @@ extends Area2D
@export var speed = 70
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):
if body.is_in_group("mobs"):
body.take_hit()
self.queue_free()
func _on_timer_timeout() -> void:
self.queue_free()

View File

@@ -1,7 +1,7 @@
[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="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"]
size = Vector2(226, 168)
@@ -16,4 +16,10 @@ texture = ExtResource("1_g08wh")
position = Vector2(-11, -2)
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="timeout" from="Timer" to="." method="_on_timer_timeout"]

View File

@@ -1,6 +1,6 @@
extends Node
@export var CursorBullet: PackedScene
@export var CursorBullet: PackedScene = preload("res://CardInjects/CursorGun/cursor_bullet.tscn")
@export var max_ammo = 10
var ammo = 10
@@ -10,12 +10,12 @@ func activate(world, activator):
world.add_child(bullet)
bullet.position = activator.position
bullet.look_at(target)
if activator.get_collision_layer_bit(1): # player object
bullet.set_collision_layer_bit(1, false)
bullet.set_collision_layer_bit(2, true)
elif activator.get_collision_layer_bit(2): # enemy object
bullet.set_collision_layer_bit(1, true)
bullet.set_collision_layer_bit(2, false)
if activator.get_collision_layer_value(1): # player object
bullet.set_collision_layer_value (1, false)
bullet.set_collision_layer_value(2, true)
elif activator.get_collision_layer_value(2): # enemy object
bullet.set_collision_layer_value(1, true)
bullet.set_collision_layer_value(2, false)
else:
assert(false, "who are you, activator?")
ammo -= 1

View 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")

View File

@@ -1,8 +1,8 @@
[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")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]

View File

@@ -10,14 +10,15 @@ func activate(world, activator):
firewall.position = activator.position
firewall.position += firewall.position.direction_to(target) \
* clamp(firewall.position.distance_to(target), min_range, max_range)
if activator.get_collision_layer_bit(1): # player object
firewall.set_collision_layer_bit(1, false)
firewall.set_collision_layer_bit(2, true)
elif activator.get_collision_layer_bit(2): # enemy object
firewall.set_collision_layer_bit(1, true)
firewall.set_collision_layer_bit(2, false)
if activator.get_collision_layer_value(1): # player object
firewall.get_node("Area2D").set_collision_layer_value(1, false)
firewall.get_node("Area2D").set_collision_layer_value(2, true)
elif activator.get_collision_layer_value(2): # enemy object
firewall.get_node("Area2D").set_collision_layer_value(1, true)
firewall.get_node("Area2D").set_collision_layer_value(2, false)
else:
assert(false, "who are you, activator?")
world.add_child(firewall)
func discard(world, activator):

View File

@@ -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")

View File

@@ -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

View File

@@ -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")

View File

@@ -1,6 +1,6 @@
[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"]
particle_flag_disable_z = true

View File

@@ -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

View File

@@ -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")

View 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")]

View File

@@ -1,6 +1,6 @@
[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"]
[node name="Card" instance=ExtResource("1_wwyou")]

View 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")]

View 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")]

View File

@@ -3,7 +3,7 @@ extends Panel
@export var player: 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
func _ready() -> void:

View File

@@ -2,7 +2,7 @@
[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" 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"]
[node name="Level" type="Node2D"]

View File

@@ -31,6 +31,9 @@ var charged = false;
var dash_cooldown_timer = 0;
var dash_on_cooldown = false;
func get_target_pos():
return self.get_global_mouse_position()
func update_move_direction():
move_direction = Vector2.ZERO
if Input.is_action_pressed("move_right"):

View File

@@ -29,7 +29,6 @@ unique_name_in_owner = true
scale = Vector2(0.1, 0.1)
sprite_frames = SubResource("SpriteFrames_onrkg")
collision_layer = 2
[node name="Hurtbox" type="CollisionShape2D" parent="."]
scale = Vector2(2.5, 2.5)
shape = SubResource("CircleShape2D_i3pqv")