Added rider plugin and turned Empowered Action into a forge-resources-managed ability
This commit is contained in:
@@ -19,7 +19,6 @@
|
||||
[ext_resource type="Resource" uid="uid://t612lts1wi1s" path="res://inputs/base_mode/move_right.tres" id="6_q7bng"]
|
||||
[ext_resource type="Script" uid="uid://cwbvxlfvmocc1" path="res://scenes/player_controller/scripts/StairsSystem.cs" id="7_bmt5a"]
|
||||
[ext_resource type="Resource" uid="uid://brswsknpgwal2" path="res://inputs/base_mode/move_front.tres" id="7_m8gvy"]
|
||||
[ext_resource type="Resource" uid="uid://7dpkk5rk3di5" path="res://scenes/player_controller/resources/forge/empowered_action.tres" id="7_qheee"]
|
||||
[ext_resource type="PackedScene" uid="uid://bctpe34ddamg5" path="res://scenes/components/knockback/CKnockback.tscn" id="7_x835q"]
|
||||
[ext_resource type="Resource" uid="uid://s1l0n1iitc6m" path="res://inputs/base_mode/move_back.tres" id="8_jb43f"]
|
||||
[ext_resource type="Resource" uid="uid://j1o5ud0plk4" path="res://inputs/base_mode/aim_release.tres" id="8_lhb11"]
|
||||
@@ -28,6 +27,7 @@
|
||||
[ext_resource type="PackedScene" uid="uid://wq1okogkhc5l" path="res://scenes/player_controller/components/mantle/mantle_system.tscn" id="8_qu4wy"]
|
||||
[ext_resource type="AudioStream" uid="uid://clfggn87oeg1s" path="res://scenes/player_controller/audio/InteractiveSFX.tres" id="9_jb43f"]
|
||||
[ext_resource type="Resource" uid="uid://bebstkm608wxx" path="res://inputs/base_mode/aim_pressed.tres" id="9_nob5r"]
|
||||
[ext_resource type="Resource" uid="uid://dccuj66egxfwh" path="res://scenes/player_controller/resources/empowered_action.tres" id="10_2rkt1"]
|
||||
[ext_resource type="Resource" uid="uid://bdit2jy5gbpts" path="res://inputs/base_mode/jump.tres" id="10_4u7i3"]
|
||||
[ext_resource type="Script" uid="uid://cxihb42t2mfqi" path="res://addons/forge/nodes/ForgeAttributeSet.cs" id="10_pw5r7"]
|
||||
[ext_resource type="Script" uid="uid://ccovd5i0wr3kk" path="res://addons/forge/editor/attributes/AttributeValues.cs" id="11_2rkt1"]
|
||||
@@ -142,8 +142,8 @@ bg_color = Color(0.15869555, 0.64034444, 0.906125, 1)
|
||||
[node name="Player" type="CharacterBody3D" unique_id=709076448]
|
||||
collision_mask = 272
|
||||
script = ExtResource("1_poq2x")
|
||||
EmpoweredAction = ExtResource("7_qheee")
|
||||
ManaRegen = ExtResource("3_n24vh")
|
||||
EmpoweredActionAbility = ExtResource("10_2rkt1")
|
||||
AbilityLoadout = [ExtResource("4_11013")]
|
||||
AimAssistStrength = 0.3
|
||||
AimAssistReductionWhenCloseToTarget = 0.1
|
||||
|
||||
156
scenes/player_controller/resources/empowered_action.tres
Normal file
156
scenes/player_controller/resources/empowered_action.tres
Normal file
@@ -0,0 +1,156 @@
|
||||
[gd_resource type="Resource" script_class="ForgeAbilityData" format=3 uid="uid://dccuj66egxfwh"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://dhxfbxh54pyxp" path="res://addons/forge/resources/abilities/ForgeAbilityData.cs" id="1_7rg1m"]
|
||||
[ext_resource type="Script" uid="uid://cw525n4mjqgw0" path="res://addons/forge/resources/ForgeTagContainer.cs" id="1_16foq"]
|
||||
[ext_resource type="Resource" uid="uid://crgwob8t8yysq" path="res://scenes/player_controller/resources/forge/instant_end_behavior.tres" id="1_odwcb"]
|
||||
[ext_resource type="Script" uid="uid://cn3b4ya15fg7e" path="res://addons/forge/resources/magnitudes/ForgeScalableFloat.cs" id="1_qpqxp"]
|
||||
[ext_resource type="Script" uid="uid://2gm1hdhi8u08" path="res://addons/forge/resources/magnitudes/ForgeModifierMagnitude.cs" id="2_3t6pm"]
|
||||
[ext_resource type="Script" uid="uid://dngf30hxy5go4" path="res://addons/forge/resources/components/ModifierTags.cs" id="2_g4w5p"]
|
||||
[ext_resource type="Script" uid="uid://1hgogislo1l6" path="res://addons/forge/resources/magnitudes/ForgeScalableInt.cs" id="3_16foq"]
|
||||
[ext_resource type="Script" uid="uid://b83hf13nj37k3" path="res://addons/forge/resources/ForgeEffectData.cs" id="4_g4w5p"]
|
||||
[ext_resource type="Script" uid="uid://cmrsxccn0ei4j" path="res://addons/forge/resources/ForgeCue.cs" id="7_ekcln"]
|
||||
[ext_resource type="Script" uid="uid://bdfcavbjyhxxa" path="res://addons/forge/resources/ForgeModifier.cs" id="8_odwcb"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_h116a"]
|
||||
script = ExtResource("1_16foq")
|
||||
ContainerTags = Array[String](["cooldown.empoweredaction"])
|
||||
metadata/_custom_type_script = "uid://cw525n4mjqgw0"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_mgrka"]
|
||||
script = ExtResource("2_g4w5p")
|
||||
TagsToAdd = SubResource("Resource_h116a")
|
||||
metadata/_custom_type_script = "uid://dngf30hxy5go4"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ekcln"]
|
||||
script = ExtResource("1_qpqxp")
|
||||
BaseValue = 1.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_odwcb"]
|
||||
script = ExtResource("1_qpqxp")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_psy6a"]
|
||||
script = ExtResource("1_qpqxp")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_j4bwy"]
|
||||
script = ExtResource("1_qpqxp")
|
||||
BaseValue = 1.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_s60jg"]
|
||||
script = ExtResource("1_qpqxp")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_wdif6"]
|
||||
script = ExtResource("1_qpqxp")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_inx6r"]
|
||||
script = ExtResource("1_qpqxp")
|
||||
BaseValue = 0.5
|
||||
metadata/_custom_type_script = "uid://cn3b4ya15fg7e"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_4jm88"]
|
||||
script = ExtResource("2_3t6pm")
|
||||
ScalableFloat = SubResource("Resource_inx6r")
|
||||
Coefficient = SubResource("Resource_j4bwy")
|
||||
PreMultiplyAdditiveValue = SubResource("Resource_wdif6")
|
||||
PostMultiplyAdditiveValue = SubResource("Resource_s60jg")
|
||||
CalculatorCoefficient = SubResource("Resource_ekcln")
|
||||
CalculatorPreMultiplyAdditiveValue = SubResource("Resource_psy6a")
|
||||
CalculatorPostMultiplyAdditiveValue = SubResource("Resource_odwcb")
|
||||
metadata/_custom_type_script = "uid://2gm1hdhi8u08"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_lmnuh"]
|
||||
script = ExtResource("3_16foq")
|
||||
BaseValue = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_xp6fe"]
|
||||
script = ExtResource("3_16foq")
|
||||
BaseValue = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_egh2b"]
|
||||
script = ExtResource("4_g4w5p")
|
||||
Name = "Empowered Action Cooldown"
|
||||
Modifiers = []
|
||||
Components = Array[Object]([SubResource("Resource_mgrka")])
|
||||
Executions = []
|
||||
DurationType = 2
|
||||
Duration = SubResource("Resource_4jm88")
|
||||
StackLimit = SubResource("Resource_xp6fe")
|
||||
InitialStack = SubResource("Resource_lmnuh")
|
||||
Cues = []
|
||||
metadata/_custom_type_script = "uid://b83hf13nj37k3"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_4mhqs"]
|
||||
script = ExtResource("1_16foq")
|
||||
ContainerTags = Array[String](["cues.resources.mana"])
|
||||
metadata/_custom_type_script = "uid://cw525n4mjqgw0"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_itmis"]
|
||||
script = ExtResource("7_ekcln")
|
||||
CueKeys = SubResource("Resource_4mhqs")
|
||||
MaxValue = 100
|
||||
MagnitudeType = 2
|
||||
MagnitudeAttribute = "PlayerAttributeSet.Mana"
|
||||
metadata/_custom_type_script = "uid://cmrsxccn0ei4j"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_8dsdw"]
|
||||
script = ExtResource("3_16foq")
|
||||
BaseValue = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_clulf"]
|
||||
script = ExtResource("1_qpqxp")
|
||||
BaseValue = 1.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_4kkx2"]
|
||||
script = ExtResource("1_qpqxp")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_5vdhj"]
|
||||
script = ExtResource("1_qpqxp")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_nx5he"]
|
||||
script = ExtResource("1_qpqxp")
|
||||
BaseValue = 1.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_st5kh"]
|
||||
script = ExtResource("1_qpqxp")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_wl5ql"]
|
||||
script = ExtResource("1_qpqxp")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_uv4a1"]
|
||||
script = ExtResource("1_qpqxp")
|
||||
BaseValue = -30.0
|
||||
metadata/_custom_type_script = "uid://cn3b4ya15fg7e"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_dhni4"]
|
||||
script = ExtResource("8_odwcb")
|
||||
Attribute = "PlayerAttributeSet.Mana"
|
||||
ScalableFloat = SubResource("Resource_uv4a1")
|
||||
Coefficient = SubResource("Resource_nx5he")
|
||||
PreMultiplyAdditiveValue = SubResource("Resource_wl5ql")
|
||||
PostMultiplyAdditiveValue = SubResource("Resource_st5kh")
|
||||
CalculatorCoefficient = SubResource("Resource_clulf")
|
||||
CalculatorPreMultiplyAdditiveValue = SubResource("Resource_5vdhj")
|
||||
CalculatorPostMultiplyAdditiveValue = SubResource("Resource_4kkx2")
|
||||
metadata/_custom_type_script = "uid://bdfcavbjyhxxa"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_w5rmc"]
|
||||
script = ExtResource("3_16foq")
|
||||
BaseValue = 1
|
||||
|
||||
[sub_resource type="Resource" id="Resource_mtef8"]
|
||||
script = ExtResource("4_g4w5p")
|
||||
Name = "Empowered Action Cost"
|
||||
Modifiers = Array[Object]([SubResource("Resource_dhni4")])
|
||||
Components = []
|
||||
Executions = []
|
||||
StackLimit = SubResource("Resource_w5rmc")
|
||||
InitialStack = SubResource("Resource_8dsdw")
|
||||
Cues = Array[Object]([SubResource("Resource_itmis")])
|
||||
metadata/_custom_type_script = "uid://b83hf13nj37k3"
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_7rg1m")
|
||||
Name = "Empowered Action"
|
||||
CooldownEffects = [SubResource("Resource_egh2b")]
|
||||
CostEffect = SubResource("Resource_mtef8")
|
||||
AbilityBehavior = ExtResource("1_odwcb")
|
||||
metadata/_custom_type_script = "uid://dhxfbxh54pyxp"
|
||||
@@ -0,0 +1,24 @@
|
||||
[gd_resource type="Resource" script_class="ForgeAbilityData" format=3 uid="uid://ifeavnlps7hy"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cw525n4mjqgw0" path="res://addons/forge/resources/ForgeTagContainer.cs" id="1_l3coe"]
|
||||
[ext_resource type="Script" uid="uid://dhxfbxh54pyxp" path="res://addons/forge/resources/abilities/ForgeAbilityData.cs" id="1_ot53g"]
|
||||
[ext_resource type="Script" uid="uid://dpakv7agvir6y" path="res://addons/forge/resources/ForgeTag.cs" id="2_un8hi"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_l76xb"]
|
||||
script = ExtResource("1_l3coe")
|
||||
ContainerTags = Array[String](["abilities.weapon"])
|
||||
metadata/_custom_type_script = "uid://cw525n4mjqgw0"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_g5tg7"]
|
||||
script = ExtResource("2_un8hi")
|
||||
Tag = "events.weapon.startedflying"
|
||||
metadata/_custom_type_script = "uid://dpakv7agvir6y"
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_ot53g")
|
||||
Name = "Exploding Sword"
|
||||
CooldownEffects = null
|
||||
TriggerSource = 1
|
||||
TriggerTag = SubResource("Resource_g5tg7")
|
||||
AbilityTags = SubResource("Resource_l76xb")
|
||||
metadata/_custom_type_script = "uid://dhxfbxh54pyxp"
|
||||
@@ -0,0 +1,7 @@
|
||||
[gd_resource type="Resource" script_class="ForgeInstantEndBehavior" format=3 uid="uid://crgwob8t8yysq"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://c7s5v7ii4nujg" path="res://forge/abilities/ForgeInstantEndBehavior.cs" id="1_hly5b"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_hly5b")
|
||||
metadata/_custom_type_script = "uid://c7s5v7ii4nujg"
|
||||
@@ -114,13 +114,19 @@ public partial class PlayerController : CharacterBody3D,
|
||||
[ExportGroup("General")]
|
||||
[Export]
|
||||
public ForgeTagContainer BaseTags { get; set; } = new();
|
||||
[Export] public REmpoweredAction EmpoweredAction = null!;
|
||||
[Export] public RManaRegen ManaRegen = null!;
|
||||
|
||||
[ExportGroup("Abilities")]
|
||||
[ExportSubgroup("Common and defaults")]
|
||||
[Export] public ForgeAbilityData EmpoweredActionAbility = null!;
|
||||
[Export] public ForgeAbilityData[] DefaultPermanentAbilities = [];
|
||||
[ExportSubgroup("WeaponThrow")]
|
||||
[Export] public RExplodingSword[] AbilityLoadout = [];
|
||||
|
||||
[ExportGroup("Effects")]
|
||||
[ExportSubgroup("Common and defaults")]
|
||||
[Export] public ForgeEffectData[] DefaultPermanentEffects = [];
|
||||
|
||||
// Combat stuff
|
||||
[ExportCategory("Combat")]
|
||||
[ExportGroup("General")]
|
||||
@@ -469,13 +475,21 @@ public partial class PlayerController : CharacterBody3D,
|
||||
Abilities = new(this);
|
||||
Events = new();
|
||||
|
||||
var empoweredActionData = EmpoweredAction.Ability(tagsManager);
|
||||
// Grant permanently
|
||||
_empoweredActionHandle = Abilities.GrantAbilityPermanently(
|
||||
empoweredActionData,
|
||||
EmpoweredActionAbility.GetAbilityData(),
|
||||
abilityLevel: 1,
|
||||
levelOverridePolicy: LevelComparison.None,
|
||||
sourceEntity: this);
|
||||
foreach (var ability in DefaultPermanentAbilities)
|
||||
{
|
||||
Abilities.GrantAbilityPermanently(
|
||||
ability.GetAbilityData(),
|
||||
abilityLevel: 1,
|
||||
levelOverridePolicy: LevelComparison.None,
|
||||
sourceEntity: this);
|
||||
}
|
||||
// var empoweredActionData = EmpoweredAction.Ability(tagsManager);
|
||||
// // Grant permanently
|
||||
|
||||
var manaRegenEffect = new Effect(ManaRegen.ManaRegen(tagsManager), new EffectOwnership(this, this));
|
||||
_manaRegenEffectHandle = EffectsManager.ApplyEffect(manaRegenEffect);
|
||||
@@ -2068,8 +2082,8 @@ public partial class PlayerController : CharacterBody3D,
|
||||
|
||||
// Inhibit Mana Regeneration for a while after using an empowered action
|
||||
// TODO: Use Forge events instead of relying on direct referencing
|
||||
_manaRegenEffectHandle!.SetInhibit(true);
|
||||
GetTree().CreateTimer(EmpoweredAction.ManaRegenPause).Timeout += () => {_manaRegenEffectHandle!.SetInhibit(false);};
|
||||
// _manaRegenEffectHandle!.SetInhibit(true);
|
||||
// GetTree().CreateTimer(EmpoweredAction.ManaRegenPause).Timeout += () => {_manaRegenEffectHandle!.SetInhibit(false);};
|
||||
|
||||
_isWallJumpAvailable = true;
|
||||
_canDashAirborne = true;
|
||||
|
||||
Reference in New Issue
Block a user