From ead52f6d5173ee736c9f21e3df481335065c6f5e Mon Sep 17 00:00:00 2001 From: Gabriel Kaszewski Date: Sun, 31 Aug 2025 15:17:11 +0200 Subject: [PATCH] Add new skills: Double Jump, Ground Pound, Brick Armor, and Brick Shield; implement skill removal signal in SkillManager (#11) --- Autoloads/SkillManager.cs | 4 ++ Mr. Brick Adventures.sln.DotSettings.user | 1 + objects/entities/brick_player.tscn | 2 +- objects/entities/bullet.tscn | 4 +- objects/fxs/shockwave.tscn | 23 ++++++ objects/items/shield.tscn | 38 ++++++++++ objects/movement_abilities/double_jump.tscn | 7 ++ .../brick_armor_skill_component.tscn | 7 ++ .../brick_shield_skill_component.tscn | 9 +++ objects/player_skills/double_jump_skill.tscn | 9 +++ .../ground_pound_skill_component.tscn | 9 +++ .../x_ray_vision_skill_component.tscn | 8 +++ objects/skill_manager.tscn | 9 ++- project.godot | 2 + resources/skills/brick_armor.tres | 25 +++++++ resources/skills/brick_shield.tres | 34 +++++++++ resources/skills/double_jump.tres | 23 ++++++ resources/skills/ground_pound_skill.tres | 23 ++++++ resources/skills/xray_vision.tres | 34 +++++++++ scenes/level_village_2.tscn | 2 +- scripts/Resources/SkillData.cs | 1 + scripts/UI/Marketplace.cs | 23 ++++++ scripts/UI/MarketplaceButton.cs | 4 ++ .../components/BrickArmorSkillComponent.cs | 48 +++++++++++++ .../BrickArmorSkillComponent.cs.uid | 1 + .../components/BrickShieldSkillComponent.cs | 72 +++++++++++++++++++ .../BrickShieldSkillComponent.cs.uid | 1 + scripts/components/BrickThrowComponent.cs | 1 + scripts/components/BulletComponent.cs | 1 + scripts/components/CageComponent.cs | 1 + scripts/components/CanBeLaunchedComponent.cs | 1 + scripts/components/CanPickUpComponent.cs | 1 + scripts/components/CannotStompComponent.cs | 1 + scripts/components/ChaseLevelComponent.cs | 1 + scripts/components/CleanupComponent.cs | 1 + scripts/components/CollapsableComponent.cs | 1 + scripts/components/CollectableComponent.cs | 1 + scripts/components/DamageComponent.cs | 1 + scripts/components/DestroyableComponent.cs | 1 + .../components/DoubleJumpSkillComponent.cs | 45 ++++++++++++ .../DoubleJumpSkillComponent.cs.uid | 1 + .../components/EffectInflictorComponent.cs | 1 + scripts/components/EnemyDeathComponent.cs | 1 + scripts/components/ExitDoorComponent.cs | 1 + scripts/components/ExplosiveComponent.cs | 1 + scripts/components/FadeAwayComponent.cs | 1 + scripts/components/FireEffectComponent.cs | 1 + scripts/components/FlashingComponent.cs | 1 + scripts/components/FlipComponent.cs | 1 + scripts/components/GravityMotionComponent.cs | 1 + .../components/GroundPoundSkillComponent.cs | 66 +++++++++++++++++ .../GroundPoundSkillComponent.cs.uid | 1 + scripts/components/HealComponent.cs | 1 + scripts/components/HealthComponent.cs | 1 + scripts/components/HitComponent.cs | 1 + .../HomingMissileMotionComponent.cs | 1 + scripts/components/IceEffectComponent.cs | 1 + .../components/InvulnerabilityComponent.cs | 1 + scripts/components/JumpPadComponent.cs | 1 + .../KillPlayerOutOfScreenComponent.cs | 1 + scripts/components/KnockbackComponent.cs | 1 + scripts/components/LaunchComponent.cs | 1 + scripts/components/LeverComponent.cs | 1 + scripts/components/LifetimeComponent.cs | 1 + scripts/components/MagneticSkillComponent.cs | 1 + .../components/Movement/DoubleJumpAbility.cs | 46 ++++++++++++ .../Movement/DoubleJumpAbility.cs.uid | 1 + scripts/components/OutOfScreenComponent.cs | 1 + .../components/PeriodicShootingComponent.cs | 1 + scripts/components/PlayerDeathComponent.cs | 1 + scripts/components/ProjectileInitComponent.cs | 1 + scripts/components/RequirementComponent.cs | 1 + scripts/components/ScoreComponent.cs | 1 + scripts/components/ShipShooterComponent.cs | 1 + .../components/SideToSideMovementComponent.cs | 1 + scripts/components/SkillUnlockerComponent.cs | 1 + scripts/components/SpaceshipEnterComponent.cs | 1 + scripts/components/SpaceshipExitComponent.cs | 1 + scripts/components/SpinComponent.cs | 1 + scripts/components/StatusEffectComponent.cs | 1 + scripts/components/StompDamageComponent.cs | 1 + scripts/components/StraightMotionComponent.cs | 1 + scripts/components/TerrainHitFx.cs | 1 + scripts/components/TooltipComponent.cs | 1 + scripts/components/TrailComponent.cs | 1 + scripts/components/TriggerLeverComponent.cs | 1 + .../UnlockOnRequirementComponent.cs | 1 + .../components/XRayVisionSkillComponent.cs | 51 +++++++++++++ .../XRayVisionSkillComponent.cs.uid | 1 + 89 files changed, 682 insertions(+), 7 deletions(-) create mode 100644 objects/fxs/shockwave.tscn create mode 100644 objects/items/shield.tscn create mode 100644 objects/movement_abilities/double_jump.tscn create mode 100644 objects/player_skills/brick_armor_skill_component.tscn create mode 100644 objects/player_skills/brick_shield_skill_component.tscn create mode 100644 objects/player_skills/double_jump_skill.tscn create mode 100644 objects/player_skills/ground_pound_skill_component.tscn create mode 100644 objects/player_skills/x_ray_vision_skill_component.tscn create mode 100644 resources/skills/brick_armor.tres create mode 100644 resources/skills/brick_shield.tres create mode 100644 resources/skills/double_jump.tres create mode 100644 resources/skills/ground_pound_skill.tres create mode 100644 resources/skills/xray_vision.tres create mode 100644 scripts/components/BrickArmorSkillComponent.cs create mode 100644 scripts/components/BrickArmorSkillComponent.cs.uid create mode 100644 scripts/components/BrickShieldSkillComponent.cs create mode 100644 scripts/components/BrickShieldSkillComponent.cs.uid create mode 100644 scripts/components/DoubleJumpSkillComponent.cs create mode 100644 scripts/components/DoubleJumpSkillComponent.cs.uid create mode 100644 scripts/components/GroundPoundSkillComponent.cs create mode 100644 scripts/components/GroundPoundSkillComponent.cs.uid create mode 100644 scripts/components/Movement/DoubleJumpAbility.cs create mode 100644 scripts/components/Movement/DoubleJumpAbility.cs.uid create mode 100644 scripts/components/XRayVisionSkillComponent.cs create mode 100644 scripts/components/XRayVisionSkillComponent.cs.uid diff --git a/Autoloads/SkillManager.cs b/Autoloads/SkillManager.cs index 3637ee5..d499789 100644 --- a/Autoloads/SkillManager.cs +++ b/Autoloads/SkillManager.cs @@ -19,6 +19,8 @@ public partial class SkillManager : Node [Signal] public delegate void ActiveThrowSkillChangedEventHandler(BrickThrowComponent throwComponent); + [Signal] + public delegate void SkillRemovedEventHandler(SkillData skillData); public override void _Ready() { @@ -145,6 +147,8 @@ public partial class SkillManager : Node } } ActiveComponents.Remove(skillName); + var sd = GetSkillByName(skillName); + if (sd != null) EmitSignalSkillRemoved(sd); } private void RemoveAllActiveSkills() diff --git a/Mr. Brick Adventures.sln.DotSettings.user b/Mr. Brick Adventures.sln.DotSettings.user index 120e0e1..2958c8e 100644 --- a/Mr. Brick Adventures.sln.DotSettings.user +++ b/Mr. Brick Adventures.sln.DotSettings.user @@ -1,4 +1,5 @@  + ForceIncluded ForceIncluded ForceIncluded ForceIncluded diff --git a/objects/entities/brick_player.tscn b/objects/entities/brick_player.tscn index bb7d46f..96dbd82 100644 --- a/objects/entities/brick_player.tscn +++ b/objects/entities/brick_player.tscn @@ -90,7 +90,7 @@ color_ramp = SubResource("GradientTexture1D_lgb3u") [node name="Brick Player" type="CharacterBody2D" node_paths=PackedStringArray("MovementAbilitiesContainer") groups=["player"]] collision_layer = 4 -collision_mask = 43 +collision_mask = 107 script = ExtResource("1_yysbb") MovementAbilitiesContainer = NodePath("Movements") GroundMovementScene = ExtResource("2_oefns") diff --git a/objects/entities/bullet.tscn b/objects/entities/bullet.tscn index e5f87ce..9b280c5 100644 --- a/objects/entities/bullet.tscn +++ b/objects/entities/bullet.tscn @@ -13,7 +13,7 @@ radius = 4.0 [node name="Bullet" type="Area2D"] -collision_layer = 8 +collision_layer = 64 collision_mask = 21 [node name="CollisionShape2D" type="CollisionShape2D" parent="."] @@ -50,7 +50,6 @@ LifeTime = 10.0 [node name="LaunchComponent" type="Node2D" parent="."] script = ExtResource("5_7bijt") Speed = 120.0 -metadata/_custom_type_script = "uid://873un8agkyja" [node name="StraightMotionComponent" type="Node" parent="." node_paths=PackedStringArray("LaunchComponent")] script = ExtResource("6_lycw2") @@ -61,7 +60,6 @@ script = ExtResource("7_2aweg") Area = NodePath("..") TerrainHitFx = NodePath("../TerrainHitFX") BulletSprite = NodePath("../Sprite2D") -metadata/_custom_type_script = "uid://cdnwrn8v05qhi" [node name="TerrainHitFX" parent="." instance=ExtResource("8_6th6w")] z_index = 3 diff --git a/objects/fxs/shockwave.tscn b/objects/fxs/shockwave.tscn new file mode 100644 index 0000000..67bf10a --- /dev/null +++ b/objects/fxs/shockwave.tscn @@ -0,0 +1,23 @@ +[gd_scene load_steps=4 format=3 uid="uid://d0074by8ith81"] + +[ext_resource type="Script" uid="uid://2i7p7v135u7c" path="res://scripts/components/DamageComponent.cs" id="1_dkcj7"] +[ext_resource type="Script" uid="uid://oyf25mpc5etr" path="res://scripts/components/LifetimeComponent.cs" id="2_mcqxt"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_jwgyp"] +size = Vector2(128, 20) + +[node name="Shockwave" type="Area2D"] +collision_layer = 0 +collision_mask = 72 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_jwgyp") + +[node name="DamageComponent" type="Node" parent="." node_paths=PackedStringArray("Area")] +script = ExtResource("1_dkcj7") +Area = NodePath("..") +metadata/_custom_type_script = "uid://2i7p7v135u7c" + +[node name="LifetimeComponent" type="Node" parent="."] +script = ExtResource("2_mcqxt") +LifeTime = 0.2 diff --git a/objects/items/shield.tscn b/objects/items/shield.tscn new file mode 100644 index 0000000..834e8ca --- /dev/null +++ b/objects/items/shield.tscn @@ -0,0 +1,38 @@ +[gd_scene load_steps=6 format=3 uid="uid://c6rgh0qn4jqlc"] + +[ext_resource type="Texture2D" uid="uid://c0xtjfpmkfolk" path="res://sprites/explosive_brick_skill_icon.png" id="1_n5wbm"] +[ext_resource type="Script" uid="uid://dgb8bqcri7nsj" path="res://scripts/components/HealthComponent.cs" id="2_yw7rl"] +[ext_resource type="Script" uid="uid://ctfrbj52ejay4" path="res://scripts/components/DestroyableComponent.cs" id="3_6t8cd"] +[ext_resource type="Script" uid="uid://2i7p7v135u7c" path="res://scripts/components/DamageComponent.cs" id="4_yw7rl"] + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_n5wbm"] +radius = 26.0 +height = 60.0 + +[node name="Shield" type="Sprite2D"] +modulate = Color(0.00784314, 1, 1, 1) +texture = ExtResource("1_n5wbm") + +[node name="Area2D" type="Area2D" parent="."] +collision_layer = 4 +collision_mask = 64 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] +position = Vector2(1, -3) +shape = SubResource("CapsuleShape2D_n5wbm") + +[node name="HealthComponent" type="Node2D" parent="."] +script = ExtResource("2_yw7rl") +Health = 0.5 +MaxHealth = 0.5 +metadata/_custom_type_script = "uid://dgb8bqcri7nsj" + +[node name="DestroyableComponent" type="Node2D" parent="." node_paths=PackedStringArray("Health")] +script = ExtResource("3_6t8cd") +Health = NodePath("../HealthComponent") +metadata/_custom_type_script = "uid://ctfrbj52ejay4" + +[node name="DamageComponent" type="Node" parent="." node_paths=PackedStringArray("Area")] +script = ExtResource("4_yw7rl") +Area = NodePath("../Area2D") +metadata/_custom_type_script = "uid://2i7p7v135u7c" diff --git a/objects/movement_abilities/double_jump.tscn b/objects/movement_abilities/double_jump.tscn new file mode 100644 index 0000000..231139c --- /dev/null +++ b/objects/movement_abilities/double_jump.tscn @@ -0,0 +1,7 @@ +[gd_scene load_steps=2 format=3 uid="uid://bktuhojquwesl"] + +[ext_resource type="Script" uid="uid://xc0j26e88np7" path="res://scripts/components/Movement/DoubleJumpAbility.cs" id="1_vu3oa"] + +[node name="DoubleJump" type="Node"] +script = ExtResource("1_vu3oa") +metadata/_custom_type_script = "uid://xc0j26e88np7" diff --git a/objects/player_skills/brick_armor_skill_component.tscn b/objects/player_skills/brick_armor_skill_component.tscn new file mode 100644 index 0000000..44e058a --- /dev/null +++ b/objects/player_skills/brick_armor_skill_component.tscn @@ -0,0 +1,7 @@ +[gd_scene load_steps=2 format=3 uid="uid://cdeh7wfc62fr4"] + +[ext_resource type="Script" uid="uid://5fyepa666cc8" path="res://scripts/components/BrickArmorSkillComponent.cs" id="1_i7tox"] + +[node name="BrickArmorSkillComponent" type="Node"] +script = ExtResource("1_i7tox") +metadata/_custom_type_script = "uid://5fyepa666cc8" diff --git a/objects/player_skills/brick_shield_skill_component.tscn b/objects/player_skills/brick_shield_skill_component.tscn new file mode 100644 index 0000000..a43f11a --- /dev/null +++ b/objects/player_skills/brick_shield_skill_component.tscn @@ -0,0 +1,9 @@ +[gd_scene load_steps=3 format=3 uid="uid://blwk5qduvdnxv"] + +[ext_resource type="Script" uid="uid://dbiu2qrr8sprx" path="res://scripts/components/BrickShieldSkillComponent.cs" id="1_gjjt4"] +[ext_resource type="PackedScene" uid="uid://c6rgh0qn4jqlc" path="res://objects/items/shield.tscn" id="2_wjvuq"] + +[node name="BrickShieldSkillComponent" type="Node"] +script = ExtResource("1_gjjt4") +ShieldScene = ExtResource("2_wjvuq") +metadata/_custom_type_script = "uid://dbiu2qrr8sprx" diff --git a/objects/player_skills/double_jump_skill.tscn b/objects/player_skills/double_jump_skill.tscn new file mode 100644 index 0000000..70ca790 --- /dev/null +++ b/objects/player_skills/double_jump_skill.tscn @@ -0,0 +1,9 @@ +[gd_scene load_steps=3 format=3 uid="uid://dwaxbojb44a6l"] + +[ext_resource type="Script" uid="uid://c61jxwtgiuqsy" path="res://scripts/components/DoubleJumpSkillComponent.cs" id="1_d8v8j"] +[ext_resource type="PackedScene" uid="uid://bktuhojquwesl" path="res://objects/movement_abilities/double_jump.tscn" id="2_romvo"] + +[node name="DoubleJumpSkill" type="Node"] +script = ExtResource("1_d8v8j") +_doubleJumpAbilityScene = ExtResource("2_romvo") +metadata/_custom_type_script = "uid://c61jxwtgiuqsy" diff --git a/objects/player_skills/ground_pound_skill_component.tscn b/objects/player_skills/ground_pound_skill_component.tscn new file mode 100644 index 0000000..8831a19 --- /dev/null +++ b/objects/player_skills/ground_pound_skill_component.tscn @@ -0,0 +1,9 @@ +[gd_scene load_steps=3 format=3 uid="uid://lu3wvpqefekn"] + +[ext_resource type="Script" uid="uid://3sclg5kdjg13" path="res://scripts/components/GroundPoundSkillComponent.cs" id="1_gx4wb"] +[ext_resource type="PackedScene" uid="uid://d0074by8ith81" path="res://objects/fxs/shockwave.tscn" id="2_3vdwu"] + +[node name="GroundPoundSkillComponent" type="Node"] +script = ExtResource("1_gx4wb") +ShockwaveScene = ExtResource("2_3vdwu") +metadata/_custom_type_script = "uid://3sclg5kdjg13" diff --git a/objects/player_skills/x_ray_vision_skill_component.tscn b/objects/player_skills/x_ray_vision_skill_component.tscn new file mode 100644 index 0000000..d940b89 --- /dev/null +++ b/objects/player_skills/x_ray_vision_skill_component.tscn @@ -0,0 +1,8 @@ +[gd_scene load_steps=2 format=3 uid="uid://dtxkjif7prm70"] + +[ext_resource type="Script" uid="uid://dl7vthhurirwc" path="res://scripts/components/XRayVisionSkillComponent.cs" id="1_ebn6n"] + +[node name="XRayVisionSkillComponent" type="Node"] +script = ExtResource("1_ebn6n") +SecretLayer = 2 +metadata/_custom_type_script = "uid://dl7vthhurirwc" diff --git a/objects/skill_manager.tscn b/objects/skill_manager.tscn index 8cb1e10..62f779f 100644 --- a/objects/skill_manager.tscn +++ b/objects/skill_manager.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=8 format=3 uid="uid://bi6v7u17vg1ww"] +[gd_scene load_steps=13 format=3 uid="uid://bi6v7u17vg1ww"] [ext_resource type="Script" uid="uid://dru77vj07e18s" path="res://Autoloads/SkillManager.cs" id="1_31033"] [ext_resource type="Script" uid="uid://d4crrfmbgxnqf" path="res://scripts/Resources/SkillData.cs" id="2_87da4"] @@ -7,7 +7,12 @@ [ext_resource type="Resource" uid="uid://cr5lo4h8wm0jc" path="res://resources/skills/fire_brick.tres" id="5_77gav"] [ext_resource type="Resource" uid="uid://ceakv6oqob6m7" path="res://resources/skills/ice_brick.tres" id="6_gib8v"] [ext_resource type="Resource" uid="uid://d3bjre2etov1n" path="res://resources/skills/magnetic.tres" id="7_6wy8o"] +[ext_resource type="Resource" uid="uid://bxsgq8703qx4u" path="res://resources/skills/double_jump.tres" id="8_87da4"] +[ext_resource type="Resource" uid="uid://cseilsspimw1n" path="res://resources/skills/ground_pound_skill.tres" id="9_77gav"] +[ext_resource type="Resource" uid="uid://c5dj06l86winx" path="res://resources/skills/xray_vision.tres" id="10_gib8v"] +[ext_resource type="Resource" uid="uid://d12defdtmlk0u" path="res://resources/skills/brick_shield.tres" id="11_6wy8o"] +[ext_resource type="Resource" uid="uid://dghnl301o1aiy" path="res://resources/skills/brick_armor.tres" id="12_gib8v"] [node name="SkillManager" type="Node"] script = ExtResource("1_31033") -AvailableSkills = Array[ExtResource("2_87da4")]([ExtResource("3_shjvi"), ExtResource("4_53vnv"), ExtResource("5_77gav"), ExtResource("6_gib8v"), ExtResource("7_6wy8o")]) +AvailableSkills = Array[ExtResource("2_87da4")]([ExtResource("3_shjvi"), ExtResource("4_53vnv"), ExtResource("5_77gav"), ExtResource("6_gib8v"), ExtResource("7_6wy8o"), ExtResource("8_87da4"), ExtResource("9_77gav"), ExtResource("10_gib8v"), ExtResource("11_6wy8o"), ExtResource("12_gib8v")]) diff --git a/project.godot b/project.godot index 096ff93..61becfc 100644 --- a/project.godot +++ b/project.godot @@ -193,12 +193,14 @@ locale/translations=PackedStringArray("res://translations.en.translation", "res: [layer_names] +2d_render/layer_2="SECRET" 2d_physics/layer_1="Terrain" 2d_physics/layer_2="Collectible Entities" 2d_physics/layer_3="Player" 2d_physics/layer_4="Enemy" 2d_physics/layer_5="player projectiles" 2d_physics/layer_6="Environment" +2d_physics/layer_7="Enemy Projectiles" [physics] diff --git a/resources/skills/brick_armor.tres b/resources/skills/brick_armor.tres new file mode 100644 index 0000000..59601fb --- /dev/null +++ b/resources/skills/brick_armor.tres @@ -0,0 +1,25 @@ +[gd_resource type="Resource" script_class="SkillData" load_steps=5 format=3 uid="uid://dghnl301o1aiy"] + +[ext_resource type="PackedScene" uid="uid://cdeh7wfc62fr4" path="res://objects/player_skills/brick_armor_skill_component.tscn" id="1_aqcna"] +[ext_resource type="Script" uid="uid://d4crrfmbgxnqf" path="res://scripts/Resources/SkillData.cs" id="1_unqwr"] +[ext_resource type="Script" uid="uid://dwb0e05pewcsn" path="res://scripts/Resources/SkillUpgrade.cs" id="2_kqsqd"] + +[sub_resource type="Resource" id="Resource_xwv1u"] +script = ExtResource("2_kqsqd") +Cost = 120 +Description = "" +Properties = Dictionary[String, Variant]({ +"health_bonus": 1.0 +}) +metadata/_custom_type_script = "uid://dwb0e05pewcsn" + +[resource] +script = ExtResource("1_unqwr") +Name = "BRICK_ARMOR" +Description = "BRICK_ARMOR_DESCRIPTION" +IsActive = false +Level = 1 +Type = 1 +Node = ExtResource("1_aqcna") +Upgrades = [SubResource("Resource_xwv1u"), SubResource("Resource_xwv1u")] +metadata/_custom_type_script = "uid://d4crrfmbgxnqf" diff --git a/resources/skills/brick_shield.tres b/resources/skills/brick_shield.tres new file mode 100644 index 0000000..0b6ff05 --- /dev/null +++ b/resources/skills/brick_shield.tres @@ -0,0 +1,34 @@ +[gd_resource type="Resource" script_class="SkillData" load_steps=6 format=3 uid="uid://d12defdtmlk0u"] + +[ext_resource type="Script" uid="uid://d4crrfmbgxnqf" path="res://scripts/Resources/SkillData.cs" id="1_m360g"] +[ext_resource type="PackedScene" uid="uid://blwk5qduvdnxv" path="res://objects/player_skills/brick_shield_skill_component.tscn" id="1_xjknp"] +[ext_resource type="Script" uid="uid://dwb0e05pewcsn" path="res://scripts/Resources/SkillUpgrade.cs" id="2_lr0w4"] + +[sub_resource type="Resource" id="Resource_mu2sy"] +script = ExtResource("2_lr0w4") +Cost = 100 +Description = "" +Properties = Dictionary[String, Variant]({ +"health": 0.25 +}) +metadata/_custom_type_script = "uid://dwb0e05pewcsn" + +[sub_resource type="Resource" id="Resource_5ab4a"] +script = ExtResource("2_lr0w4") +Cost = 150 +Description = "" +Properties = Dictionary[String, Variant]({ +"health": 0.5 +}) +metadata/_custom_type_script = "uid://dwb0e05pewcsn" + +[resource] +script = ExtResource("1_m360g") +Name = "BRICK_SHIELD" +Description = "BRICK_SHIELD_DESCRIPTION" +IsActive = false +Level = 1 +Type = 2 +Node = ExtResource("1_xjknp") +Upgrades = [SubResource("Resource_mu2sy"), SubResource("Resource_5ab4a")] +metadata/_custom_type_script = "uid://d4crrfmbgxnqf" diff --git a/resources/skills/double_jump.tres b/resources/skills/double_jump.tres new file mode 100644 index 0000000..b15b10f --- /dev/null +++ b/resources/skills/double_jump.tres @@ -0,0 +1,23 @@ +[gd_resource type="Resource" script_class="SkillData" load_steps=5 format=3 uid="uid://bxsgq8703qx4u"] + +[ext_resource type="Script" uid="uid://d4crrfmbgxnqf" path="res://scripts/Resources/SkillData.cs" id="1_p5qvt"] +[ext_resource type="PackedScene" uid="uid://dwaxbojb44a6l" path="res://objects/player_skills/double_jump_skill.tscn" id="1_t7o84"] +[ext_resource type="Script" uid="uid://dwb0e05pewcsn" path="res://scripts/Resources/SkillUpgrade.cs" id="2_kywbf"] + +[sub_resource type="Resource" id="Resource_0fn2n"] +script = ExtResource("2_kywbf") +Cost = 80 +Description = "" +Properties = Dictionary[String, Variant]({}) +metadata/_custom_type_script = "uid://dwb0e05pewcsn" + +[resource] +script = ExtResource("1_p5qvt") +Name = "DOUBLE_JUMP" +Description = "DOUBLE_JUMP_DESCRIPTION" +IsActive = false +Level = 1 +Type = 2 +Node = ExtResource("1_t7o84") +Upgrades = [SubResource("Resource_0fn2n")] +metadata/_custom_type_script = "uid://d4crrfmbgxnqf" diff --git a/resources/skills/ground_pound_skill.tres b/resources/skills/ground_pound_skill.tres new file mode 100644 index 0000000..b5bb2ba --- /dev/null +++ b/resources/skills/ground_pound_skill.tres @@ -0,0 +1,23 @@ +[gd_resource type="Resource" script_class="SkillData" load_steps=5 format=3 uid="uid://cseilsspimw1n"] + +[ext_resource type="PackedScene" uid="uid://lu3wvpqefekn" path="res://objects/player_skills/ground_pound_skill_component.tscn" id="1_auljr"] +[ext_resource type="Script" uid="uid://d4crrfmbgxnqf" path="res://scripts/Resources/SkillData.cs" id="1_i1qac"] +[ext_resource type="Script" uid="uid://dwb0e05pewcsn" path="res://scripts/Resources/SkillUpgrade.cs" id="2_tkhf7"] + +[sub_resource type="Resource" id="Resource_upxa7"] +script = ExtResource("2_tkhf7") +Cost = 300 +Description = "" +Properties = Dictionary[String, Variant]({}) +metadata/_custom_type_script = "uid://dwb0e05pewcsn" + +[resource] +script = ExtResource("1_i1qac") +Name = "GROUND_POUND_SKILL" +Description = "GROUND_POUND_SKILL_DESCRIPTION" +IsActive = false +Level = 1 +Type = 2 +Node = ExtResource("1_auljr") +Upgrades = [SubResource("Resource_upxa7")] +metadata/_custom_type_script = "uid://d4crrfmbgxnqf" diff --git a/resources/skills/xray_vision.tres b/resources/skills/xray_vision.tres new file mode 100644 index 0000000..4019da9 --- /dev/null +++ b/resources/skills/xray_vision.tres @@ -0,0 +1,34 @@ +[gd_resource type="Resource" script_class="SkillData" load_steps=6 format=3 uid="uid://c5dj06l86winx"] + +[ext_resource type="PackedScene" uid="uid://dtxkjif7prm70" path="res://objects/player_skills/x_ray_vision_skill_component.tscn" id="1_ax2d8"] +[ext_resource type="Script" uid="uid://d4crrfmbgxnqf" path="res://scripts/Resources/SkillData.cs" id="1_g8qe3"] +[ext_resource type="Script" uid="uid://dwb0e05pewcsn" path="res://scripts/Resources/SkillUpgrade.cs" id="2_o726x"] + +[sub_resource type="Resource" id="Resource_72ltj"] +script = ExtResource("2_o726x") +Cost = 200 +Description = "" +Properties = Dictionary[String, Variant]({ +"duration": 5.0 +}) +metadata/_custom_type_script = "uid://dwb0e05pewcsn" + +[sub_resource type="Resource" id="Resource_2kdfi"] +script = ExtResource("2_o726x") +Cost = 275 +Description = "" +Properties = Dictionary[String, Variant]({ +"duration": 10.0 +}) +metadata/_custom_type_script = "uid://dwb0e05pewcsn" + +[resource] +script = ExtResource("1_g8qe3") +Name = "XRAY_VISION" +Description = "XRAY_VISION_DESCRIPTION" +IsActive = false +Level = 1 +Type = 1 +Node = ExtResource("1_ax2d8") +Upgrades = [SubResource("Resource_72ltj"), SubResource("Resource_2kdfi")] +metadata/_custom_type_script = "uid://d4crrfmbgxnqf" diff --git a/scenes/level_village_2.tscn b/scenes/level_village_2.tscn index ea87e51..ff0b14e 100644 --- a/scenes/level_village_2.tscn +++ b/scenes/level_village_2.tscn @@ -59,7 +59,7 @@ ease = 2 [node name="Brick Player" parent="." instance=ExtResource("1_wcma7")] z_index = 1 -[node name="HitParticles" parent="Brick Player" index="26"] +[node name="HitParticles" parent="Brick Player" index="25"] process_material = SubResource("ParticleProcessMaterial_lgb3u") [node name="WorldEnvironment" parent="." instance=ExtResource("2_ot3dy")] diff --git a/scripts/Resources/SkillData.cs b/scripts/Resources/SkillData.cs index 8d14269..0f06e13 100644 --- a/scripts/Resources/SkillData.cs +++ b/scripts/Resources/SkillData.cs @@ -4,6 +4,7 @@ using Godot.Collections; namespace Mr.BrickAdventures.scripts.Resources; +[GlobalClass] public partial class SkillData : Resource { [Export] public string Name { get; set; } = "New Skill"; diff --git a/scripts/UI/Marketplace.cs b/scripts/UI/Marketplace.cs index 687f4f5..4b801c7 100644 --- a/scripts/UI/Marketplace.cs +++ b/scripts/UI/Marketplace.cs @@ -19,12 +19,17 @@ public partial class Marketplace : Control [Export] public PackedScene SkillButtonScene { get; set; } private GameManager _gameManager; + private SkillManager _skillManager; private readonly List