using Content.Server.AI.Utility.Actions; using Content.Server.AI.Utility.Actions.Combat.Melee; using Content.Server.AI.Utility.Considerations; using Content.Server.AI.Utility.Considerations.Combat.Melee; using Content.Server.AI.Utility.Considerations.Hands; using Content.Server.AI.WorldState; using Content.Server.AI.WorldState.States; using Content.Server.AI.WorldState.States.Combat.Nearby; namespace Content.Server.AI.Utility.ExpandableActions.Combat.Melee { public sealed class PickUpMeleeWeaponExp : ExpandableUtilityAction { public override float Bonus => UtilityAction.CombatPrepBonus; protected override IEnumerable> GetCommonConsiderations(Blackboard context) { var considerationsManager = IoCManager.Resolve(); return new[] { considerationsManager.Get() .BoolCurve(context), considerationsManager.Get() .InverseBoolCurve(context), }; } public override IEnumerable GetActions(Blackboard context) { var owner = context.GetState().GetValue(); foreach (var entity in context.GetState().GetValue()) { yield return new PickUpMeleeWeapon() {Owner = owner, Target = entity, Bonus = Bonus}; } } } }