first draft of the new card gameplay
This commit is contained in:
@@ -79,6 +79,10 @@ func card_picked_up(card_item: CardItem) -> void:
|
||||
|
||||
func _on_static_body_3d_button_interacted(_value: int, reply: Hero) -> void:
|
||||
reply_player = reply
|
||||
if reply.energy >= 3:
|
||||
reply.energy -= 3
|
||||
else:
|
||||
return
|
||||
button_collider.disabled = true
|
||||
$StaticBody3D/AudioStreamPlayer3D.play()
|
||||
randomize_cards(reply.hero_class.faction)
|
||||
|
||||
@@ -29,8 +29,8 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.847404, 0.610684)
|
||||
collision_layer = 16
|
||||
collision_mask = 0
|
||||
script = ExtResource("4_eavi1")
|
||||
press_cost = 15
|
||||
hover_text = "[center]#Interact# draft a card for $15"
|
||||
press_cost = 3
|
||||
hover_text = "[center]#Interact# draft a card for 3 Energy"
|
||||
|
||||
[node name="CollisionShape3D2" type="CollisionShape3D" parent="StaticBody3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.866025, -0.5, 0, 0.5, 0.866025, -6.55949e-05, 0.349496, -0.579584)
|
||||
|
||||
@@ -4,6 +4,8 @@ class_name TowerBase extends StaticBody3D
|
||||
@export var block: Node3D
|
||||
@export var collider: CollisionShape3D
|
||||
@export var minimap_icon: Sprite3D
|
||||
@export var duration_label: Label
|
||||
@export var duration_sprites: Array[Sprite3D] = []
|
||||
|
||||
var game_manager: GameManager
|
||||
var owner_id: int
|
||||
@@ -14,6 +16,12 @@ var has_card: bool :
|
||||
return
|
||||
get:
|
||||
return inventory.size != 0
|
||||
var duration: int = 0 :
|
||||
set(value):
|
||||
duration = value
|
||||
duration_label.text = str(value)
|
||||
get():
|
||||
return duration
|
||||
|
||||
|
||||
func set_color(color: Color) -> void:
|
||||
@@ -36,24 +44,44 @@ func toggle_collision() -> void:
|
||||
collider.disabled = !collider.disabled
|
||||
|
||||
|
||||
func iterate_duration() -> void:
|
||||
duration -= 1
|
||||
if duration <= 0:
|
||||
networked_remove_tower.rpc()
|
||||
|
||||
|
||||
func enable_duration_sprites() -> void:
|
||||
for sprite: Sprite3D in duration_sprites:
|
||||
sprite.visible = true
|
||||
|
||||
|
||||
func disable_duration_sprites() -> void:
|
||||
for sprite: Sprite3D in duration_sprites:
|
||||
sprite.visible = false
|
||||
|
||||
|
||||
@rpc("reliable", "call_local", "any_peer")
|
||||
func networked_spawn_tower(card_index: int, caller_id: int) -> void:
|
||||
var card: Card = Data.cards[card_index]
|
||||
inventory.add(card)
|
||||
tower = inventory.contents.keys()[0].turret_scene.instantiate() as Tower
|
||||
tower.stats = inventory.contents.keys()[0].tower_stats
|
||||
tower = inventory.item_at(0).turret_scene.instantiate() as Tower
|
||||
tower.stats = inventory.item_at(0).tower_stats
|
||||
tower.name = "tower"
|
||||
tower.base_name = name
|
||||
tower.owner_id = caller_id
|
||||
tower.position = Vector3(0, 1.2, 0)
|
||||
minimap_icon.modulate = Color.RED
|
||||
duration = card.duration
|
||||
enable_duration_sprites()
|
||||
add_child(tower)
|
||||
|
||||
|
||||
@rpc("reliable", "call_local", "any_peer")
|
||||
func networked_remove_tower() -> void:
|
||||
game_manager.connected_players_nodes[tower.owner_id].add_card(inventory.remove_at(0))
|
||||
game_manager.connected_players_nodes[tower.owner_id].unready_self()
|
||||
inventory.remove_at(0)
|
||||
#game_manager.connected_players_nodes[tower.owner_id].add_card(inventory.remove_at(0))
|
||||
#game_manager.connected_players_nodes[tower.owner_id].unready_self()
|
||||
tower.queue_free()
|
||||
disable_duration_sprites()
|
||||
tower = null
|
||||
minimap_icon.modulate = Color.GREEN
|
||||
|
||||
@@ -1,21 +1,26 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://ddbbwx0yy16lh"]
|
||||
[gd_scene load_steps=8 format=3 uid="uid://ddbbwx0yy16lh"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://si58bm4r7r2i" path="res://Scenes/TowerBase/tower_base.gd" id="1_kalmg"]
|
||||
[ext_resource type="Script" uid="uid://do24iuot0j7d7" path="res://Scripts/inventory.gd" id="2_m0oxx"]
|
||||
[ext_resource type="Material" uid="uid://bi0grduhgdma4" path="res://Scenes/TowerBase/new_shader_material.tres" id="3_ueedj"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://cr83c74ys8rll" path="res://Scenes/TowerBase/textmesh.res" id="4_8j8ue"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://cm5xjp442ew0y" path="res://Scenes/TowerBase/textmesh.res" id="4_8j8ue"]
|
||||
[ext_resource type="Texture2D" uid="uid://ba85u6i558x4w" path="res://Assets/Textures/minimap_node.png" id="4_lbvtm"]
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_lc72v"]
|
||||
size = Vector3(1.381, 1.377, 1.381)
|
||||
|
||||
[node name="TowerBase" type="StaticBody3D" node_paths=PackedStringArray("inventory", "block", "collider", "minimap_icon") groups=["TowerBases"]]
|
||||
[sub_resource type="ViewportTexture" id="ViewportTexture_ueedj"]
|
||||
viewport_path = NodePath("SubViewport")
|
||||
|
||||
[node name="TowerBase" type="StaticBody3D" node_paths=PackedStringArray("inventory", "block", "collider", "minimap_icon", "duration_label", "duration_sprites") groups=["TowerBases"]]
|
||||
collision_layer = 17
|
||||
script = ExtResource("1_kalmg")
|
||||
inventory = NodePath("Inventory")
|
||||
block = NodePath("MeshInstance3D")
|
||||
collider = NodePath("CollisionShape3D")
|
||||
minimap_icon = NodePath("MinimapIcon")
|
||||
duration_label = NodePath("SubViewport/Label")
|
||||
duration_sprites = [NodePath("Sprite3D"), NodePath("Sprite3D2"), NodePath("Sprite3D3"), NodePath("Sprite3D4")]
|
||||
|
||||
[node name="Inventory" type="Node" parent="."]
|
||||
script = ExtResource("2_m0oxx")
|
||||
@@ -35,3 +40,42 @@ layers = 4
|
||||
modulate = Color(0, 1, 0, 1)
|
||||
texture_filter = 0
|
||||
texture = ExtResource("4_lbvtm")
|
||||
|
||||
[node name="SubViewport" type="SubViewport" parent="."]
|
||||
transparent_bg = true
|
||||
size = Vector2i(128, 128)
|
||||
|
||||
[node name="Label" type="Label" parent="SubViewport"]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_font_sizes/font_size = 128
|
||||
text = "4"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="Sprite3D" type="Sprite3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0.6)
|
||||
visible = false
|
||||
double_sided = false
|
||||
texture = SubResource("ViewportTexture_ueedj")
|
||||
|
||||
[node name="Sprite3D2" type="Sprite3D" parent="."]
|
||||
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 0, 2, -0.6)
|
||||
visible = false
|
||||
double_sided = false
|
||||
texture = SubResource("ViewportTexture_ueedj")
|
||||
|
||||
[node name="Sprite3D3" type="Sprite3D" parent="."]
|
||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0.6, 2, 0)
|
||||
visible = false
|
||||
double_sided = false
|
||||
texture = SubResource("ViewportTexture_ueedj")
|
||||
|
||||
[node name="Sprite3D4" type="Sprite3D" parent="."]
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -0.6, 2, 0)
|
||||
visible = false
|
||||
double_sided = false
|
||||
texture = SubResource("ViewportTexture_ueedj")
|
||||
|
||||
@@ -4,12 +4,14 @@
|
||||
[ext_resource type="Texture2D" uid="uid://dlqnhs8or4ik2" path="res://Assets/Textures/cardhand.png" id="1_d5oo3"]
|
||||
[ext_resource type="Texture2D" uid="uid://buf8t5gc7iw3a" path="res://Assets/TextureAtlases/rarityborders.tres" id="3_pclfx"]
|
||||
|
||||
[node name="Node2D" type="Node2D" node_paths=PackedStringArray("rarity_sprite", "title_text", "description", "target_label")]
|
||||
[node name="Node2D" type="Node2D" node_paths=PackedStringArray("rarity_sprite", "title_text", "description", "target_label", "energy_cost", "duration")]
|
||||
script = ExtResource("1_2cfmh")
|
||||
rarity_sprite = NodePath("Sprite2D2")
|
||||
title_text = NodePath("Title")
|
||||
description = NodePath("Description")
|
||||
target_label = NodePath("Title2")
|
||||
energy_cost = NodePath("EnergyCost")
|
||||
duration = NodePath("Duration")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture_filter = 1
|
||||
@@ -60,3 +62,23 @@ text = "In here goes some card text that really be quite long sometimes if you'r
|
||||
|
||||
In fact, sometimes its really really really rediculously long, when it needs to be and im too dumb to shorten it"
|
||||
fit_content = true
|
||||
|
||||
[node name="EnergyCost" type="Label" parent="."]
|
||||
offset_left = 340.0
|
||||
offset_top = 55.0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 40.0
|
||||
theme_override_colors/font_color = Color(0.228497, 0.570097, 0.884935, 1)
|
||||
text = "3"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="Duration" type="Label" parent="."]
|
||||
offset_left = 125.0
|
||||
offset_top = 55.0
|
||||
offset_right = 42.0
|
||||
offset_bottom = 95.0
|
||||
theme_override_colors/font_color = Color(0.228497, 0.570097, 0.884935, 1)
|
||||
text = "4"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
Reference in New Issue
Block a user