diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..6f64a99 Binary files /dev/null and b/.DS_Store differ diff --git a/resources/abilities/fortune/.DS_Store b/resources/abilities/fortune/.DS_Store new file mode 100644 index 0000000..d9aee5d Binary files /dev/null and b/resources/abilities/fortune/.DS_Store differ diff --git a/resources/abilities/fortune/regenerate/regenerate_1.tres b/resources/abilities/fortune/regenerate/regenerate_1.tres new file mode 100644 index 0000000..74464f4 --- /dev/null +++ b/resources/abilities/fortune/regenerate/regenerate_1.tres @@ -0,0 +1,30 @@ +[gd_resource type="Resource" script_class="StatusEffect" format=3 uid="uid://dnx5kk4jemlol"] + +[ext_resource type="Script" uid="uid://c4rwprj6d61c0" path="res://scripts/status_effects/status_effect.gd" id="1_3lxtv"] +[ext_resource type="Script" uid="uid://c2ci25gmhnb4w" path="res://scripts/status_effects/status_effect_stack.gd" id="2_seamv"] +[ext_resource type="Script" uid="uid://w6h7oqtjl61k" path="res://scripts/status_effects/status_effect_modifier.gd" id="3_qvorr"] +[ext_resource type="Script" uid="uid://d0uvf6jnorxpw" path="res://scripts/status_effects/status_effect_trigger.gd" id="4_663xp"] +[ext_resource type="Script" uid="uid://c84i4tkx4t6au" path="res://scripts/ability/action/heal_action.gd" id="5_u1w0k"] + +[sub_resource type="Resource" id="Resource_nr16a"] +script = ExtResource("5_u1w0k") +heal_amount = 10 +metadata/_custom_type_script = "uid://c84i4tkx4t6au" + +[sub_resource type="Resource" id="Resource_kwfm3"] +script = ExtResource("4_663xp") +action = SubResource("Resource_nr16a") +metadata/_custom_type_script = "uid://d0uvf6jnorxpw" + +[sub_resource type="Resource" id="Resource_c1t11"] +script = ExtResource("2_seamv") +description = "Heals you 10hp each turn." +triggers = Array[ExtResource("4_663xp")]([SubResource("Resource_kwfm3")]) +metadata/_custom_type_script = "uid://c2ci25gmhnb4w" + +[resource] +script = ExtResource("1_3lxtv") +stacks = Array[ExtResource("2_seamv")]([SubResource("Resource_c1t11")]) +limited_duration = false +name = "Regenerate" +metadata/_custom_type_script = "uid://c4rwprj6d61c0" diff --git a/resources/abilities/fortune/regenerate/regenerate_2.tres b/resources/abilities/fortune/regenerate/regenerate_2.tres new file mode 100644 index 0000000..c64eba1 --- /dev/null +++ b/resources/abilities/fortune/regenerate/regenerate_2.tres @@ -0,0 +1,30 @@ +[gd_resource type="Resource" script_class="StatusEffect" format=3 uid="uid://drofrxl7aww0y"] + +[ext_resource type="Script" uid="uid://c4rwprj6d61c0" path="res://scripts/status_effects/status_effect.gd" id="1_btp7v"] +[ext_resource type="Script" uid="uid://c2ci25gmhnb4w" path="res://scripts/status_effects/status_effect_stack.gd" id="2_a3qf0"] +[ext_resource type="Script" uid="uid://w6h7oqtjl61k" path="res://scripts/status_effects/status_effect_modifier.gd" id="3_4hhlr"] +[ext_resource type="Script" uid="uid://d0uvf6jnorxpw" path="res://scripts/status_effects/status_effect_trigger.gd" id="4_vxtwa"] +[ext_resource type="Script" uid="uid://c84i4tkx4t6au" path="res://scripts/ability/action/heal_action.gd" id="5_gqngc"] + +[sub_resource type="Resource" id="Resource_nr16a"] +script = ExtResource("5_gqngc") +heal_amount = 20 +metadata/_custom_type_script = "uid://c84i4tkx4t6au" + +[sub_resource type="Resource" id="Resource_kwfm3"] +script = ExtResource("4_vxtwa") +action = SubResource("Resource_nr16a") +metadata/_custom_type_script = "uid://d0uvf6jnorxpw" + +[sub_resource type="Resource" id="Resource_c1t11"] +script = ExtResource("2_a3qf0") +description = "Heals you 20hp each turn." +triggers = Array[ExtResource("4_vxtwa")]([SubResource("Resource_kwfm3")]) +metadata/_custom_type_script = "uid://c2ci25gmhnb4w" + +[resource] +script = ExtResource("1_btp7v") +stacks = Array[ExtResource("2_a3qf0")]([SubResource("Resource_c1t11")]) +limited_duration = false +name = "Regenerate Level 2" +metadata/_custom_type_script = "uid://c4rwprj6d61c0" diff --git a/resources/abilities/fortune/regenerate/regenerate_3.tres b/resources/abilities/fortune/regenerate/regenerate_3.tres new file mode 100644 index 0000000..4d1ded4 --- /dev/null +++ b/resources/abilities/fortune/regenerate/regenerate_3.tres @@ -0,0 +1,47 @@ +[gd_resource type="Resource" script_class="StatusEffect" format=3 uid="uid://beqwfdr24afn5"] + +[ext_resource type="Script" uid="uid://c4rwprj6d61c0" path="res://scripts/status_effects/status_effect.gd" id="1_omrdo"] +[ext_resource type="Script" uid="uid://c2ci25gmhnb4w" path="res://scripts/status_effects/status_effect_stack.gd" id="2_glgyw"] +[ext_resource type="Script" uid="uid://w6h7oqtjl61k" path="res://scripts/status_effects/status_effect_modifier.gd" id="3_wsmau"] +[ext_resource type="Script" uid="uid://d0uvf6jnorxpw" path="res://scripts/status_effects/status_effect_trigger.gd" id="4_2f3ui"] +[ext_resource type="Script" uid="uid://c84i4tkx4t6au" path="res://scripts/ability/action/heal_action.gd" id="5_hmm2u"] +[ext_resource type="Script" uid="uid://dkyoonc2qagl3" path="res://scripts/ability/action/luck_chance_action.gd" id="6_lchance"] +[ext_resource type="Script" uid="uid://4uj0ujy2m4of" path="res://scripts/ability/action/remove_status_action.gd" id="7_rmstat"] + +[sub_resource type="Resource" id="Resource_nr16a"] +script = ExtResource("5_hmm2u") +heal_amount = 20 +metadata/_custom_type_script = "uid://c84i4tkx4t6au" + +[sub_resource type="Resource" id="Resource_kwfm3"] +script = ExtResource("4_2f3ui") +action = SubResource("Resource_nr16a") +metadata/_custom_type_script = "uid://d0uvf6jnorxpw" + +[sub_resource type="Resource" id="Resource_rmv01"] +script = ExtResource("7_rmstat") +remove_stacks = 99 +metadata/_custom_type_script = "uid://4uj0ujy2m4of" + +[sub_resource type="Resource" id="Resource_luck01"] +script = ExtResource("6_lchance") +success_action = SubResource("Resource_rmv01") +metadata/_custom_type_script = "uid://dkyoonc2qagl3" + +[sub_resource type="Resource" id="Resource_cure01"] +script = ExtResource("4_2f3ui") +action = SubResource("Resource_luck01") +metadata/_custom_type_script = "uid://d0uvf6jnorxpw" + +[sub_resource type="Resource" id="Resource_c1t11"] +script = ExtResource("2_glgyw") +description = "Heals you 20hp each turn. May cure an ailment." +triggers = Array[ExtResource("4_2f3ui")]([SubResource("Resource_kwfm3"), SubResource("Resource_cure01")]) +metadata/_custom_type_script = "uid://c2ci25gmhnb4w" + +[resource] +script = ExtResource("1_omrdo") +stacks = Array[ExtResource("2_glgyw")]([SubResource("Resource_c1t11")]) +limited_duration = false +name = "Regenerate Level 3" +metadata/_custom_type_script = "uid://c4rwprj6d61c0" diff --git a/resources/abilities/fortune/regenerate/regenerate_4.tres b/resources/abilities/fortune/regenerate/regenerate_4.tres new file mode 100644 index 0000000..19ab657 --- /dev/null +++ b/resources/abilities/fortune/regenerate/regenerate_4.tres @@ -0,0 +1,48 @@ +[gd_resource type="Resource" script_class="StatusEffect" format=3 uid="uid://r64xcaj0mr4c"] + +[ext_resource type="Script" uid="uid://c4rwprj6d61c0" path="res://scripts/status_effects/status_effect.gd" id="1_sqsqw"] +[ext_resource type="Script" uid="uid://c2ci25gmhnb4w" path="res://scripts/status_effects/status_effect_stack.gd" id="2_kggwh"] +[ext_resource type="Script" uid="uid://w6h7oqtjl61k" path="res://scripts/status_effects/status_effect_modifier.gd" id="3_cwu6n"] +[ext_resource type="Script" uid="uid://d0uvf6jnorxpw" path="res://scripts/status_effects/status_effect_trigger.gd" id="4_2gru0"] +[ext_resource type="Script" uid="uid://c84i4tkx4t6au" path="res://scripts/ability/action/heal_action.gd" id="5_o2d0y"] +[ext_resource type="Script" uid="uid://dkyoonc2qagl3" path="res://scripts/ability/action/luck_chance_action.gd" id="6_v6n5j"] +[ext_resource type="Script" uid="uid://4uj0ujy2m4of" path="res://scripts/ability/action/remove_status_action.gd" id="7_vnlfn"] + +[sub_resource type="Resource" id="Resource_nr16a"] +script = ExtResource("5_o2d0y") +heal_amount = 30 +overheal = true +metadata/_custom_type_script = "uid://c84i4tkx4t6au" + +[sub_resource type="Resource" id="Resource_kwfm3"] +script = ExtResource("4_2gru0") +action = SubResource("Resource_nr16a") +metadata/_custom_type_script = "uid://d0uvf6jnorxpw" + +[sub_resource type="Resource" id="Resource_rmv01"] +script = ExtResource("7_vnlfn") +remove_stacks = 99 +metadata/_custom_type_script = "uid://4uj0ujy2m4of" + +[sub_resource type="Resource" id="Resource_luck01"] +script = ExtResource("6_v6n5j") +success_action = SubResource("Resource_rmv01") +metadata/_custom_type_script = "uid://dkyoonc2qagl3" + +[sub_resource type="Resource" id="Resource_cure01"] +script = ExtResource("4_2gru0") +action = SubResource("Resource_luck01") +metadata/_custom_type_script = "uid://d0uvf6jnorxpw" + +[sub_resource type="Resource" id="Resource_c1t11"] +script = ExtResource("2_kggwh") +description = "Heals you 30hp each turn. May cure an ailment. Can heal past max HP." +triggers = Array[ExtResource("4_2gru0")]([SubResource("Resource_kwfm3"), SubResource("Resource_cure01")]) +metadata/_custom_type_script = "uid://c2ci25gmhnb4w" + +[resource] +script = ExtResource("1_sqsqw") +stacks = Array[ExtResource("2_kggwh")]([SubResource("Resource_c1t11")]) +limited_duration = false +name = "Regenerate Level 4" +metadata/_custom_type_script = "uid://c4rwprj6d61c0" diff --git a/scripts/.DS_Store b/scripts/.DS_Store new file mode 100644 index 0000000..e3df0c1 Binary files /dev/null and b/scripts/.DS_Store differ diff --git a/scripts/ability/.DS_Store b/scripts/ability/.DS_Store new file mode 100644 index 0000000..219deed Binary files /dev/null and b/scripts/ability/.DS_Store differ diff --git a/scripts/ability/action/.DS_Store b/scripts/ability/action/.DS_Store new file mode 100644 index 0000000..3f23402 Binary files /dev/null and b/scripts/ability/action/.DS_Store differ diff --git a/scripts/ability/action/heal_action.gd b/scripts/ability/action/heal_action.gd index 5fbd3ed..08e81e9 100644 --- a/scripts/ability/action/heal_action.gd +++ b/scripts/ability/action/heal_action.gd @@ -2,7 +2,14 @@ extends TargetAction class_name HealAction @export var heal_amount: int +@export var overheal: bool func run(context: ActionContext) -> void: for target in resolve_targets(context): - BattleManager.apply_healing(heal_amount, context.source, target) + if overheal: + var overflow = maxi(0, target.current_health + heal_amount - target.max_health) + target.max_health += overflow + BattleManager.apply_healing(heal_amount, context.source, target) + + else: + BattleManager.apply_healing(heal_amount, context.source, target) diff --git a/scripts/status_effects/.DS_Store b/scripts/status_effects/.DS_Store new file mode 100644 index 0000000..5d91879 Binary files /dev/null and b/scripts/status_effects/.DS_Store differ diff --git a/workspaces/.DS_Store b/workspaces/.DS_Store new file mode 100644 index 0000000..9108e86 Binary files /dev/null and b/workspaces/.DS_Store differ diff --git a/workspaces/artemis/artemis-main.tscn b/workspaces/artemis/artemis-main.tscn index 5a5ef29..f64e8d2 100644 --- a/workspaces/artemis/artemis-main.tscn +++ b/workspaces/artemis/artemis-main.tscn @@ -4,11 +4,11 @@ [ext_resource type="Script" uid="uid://c2dcuh7wij0sh" path="res://scripts/battle_logic/battle_character.gd" id="1_ha2wl"] [ext_resource type="Script" uid="uid://ny1mjfoo1mqc" path="res://scripts/ability/ability.gd" id="2_dq3ge"] [ext_resource type="Script" uid="uid://doviul66xwvvb" path="res://workspaces/artemis/health_label.gd" id="3_dq3ge"] -[ext_resource type="Resource" uid="uid://b6mlqpxywhb6g" path="res://resources/abilities/heal.tres" id="3_lhvlb"] +[ext_resource type="Resource" uid="uid://b6mlqpxywhb6g" path="res://resources/abilities/umi/heal.tres" id="3_lhvlb"] [ext_resource type="Resource" uid="uid://c71y0pm2tt1g" path="res://resources/abilities/fortune/pierce/pierce_1.tres" id="4_lhvlb"] -[ext_resource type="Resource" uid="uid://bnv8ckim477pc" path="res://resources/abilities/strength.tres" id="6_vmnyc"] -[ext_resource type="Resource" uid="uid://y06qhqwsm5s3" path="res://resources/abilities/burn.tres" id="7_ra02i"] -[ext_resource type="Resource" uid="uid://sg2oek573oja" path="res://resources/abilities/bleed.tres" id="8_6onex"] +[ext_resource type="Resource" uid="uid://bnv8ckim477pc" path="res://resources/abilities/fortune/strength.tres" id="6_vmnyc"] +[ext_resource type="Resource" uid="uid://y06qhqwsm5s3" path="res://resources/abilities/umi/burn.tres" id="7_ra02i"] +[ext_resource type="Resource" uid="uid://sg2oek573oja" path="res://resources/abilities/fortune/bleed.tres" id="8_6onex"] [ext_resource type="Script" uid="uid://b1qn3ek7b7ps4" path="res://workspaces/artemis/turn_label.gd" id="8_h88bq"] [node name="Node2D" type="Node2D" unique_id=217755439 node_paths=PackedStringArray("player_team", "boss_team")]