Skip to content

Force staff / charge weapon secondary fire via charge metadata #43

Description

@hummat

Problem

Force staffs and other charge-based weapons have a secondary fire mode (hold-to-charge AoE explosion) that bots never use. #31 fixes primary fire for these weapons, but the secondary fire requires the charge shot system in bt_bot_shoot_action.

Context

bt_bot_shoot_action already has a charge shot system (lines 62-73):

  • can_charge_shot — enables charge behavior
  • charge_action_input — input to queue (default "brace")
  • charge_shot_delay — timing
  • always_charge_before_firing, charge_against_armored_enemy, etc.

Force staff p1 secondary fire flow:

  1. charge input (action_two_hold) → action_charge (hold)
  2. charge_release input (action_two_hold release) → triggers explosion
  3. OR trigger_explosion input (action_one_pressed + action_two_hold hold) → fires while charging

This is fundamentally different from ADS — it's a hold-and-release combat mode, not scope-in-for-accuracy.

Desired behavior

Inject charge metadata for weapons with charge-based secondary fire:

attack_meta_data = {
    can_charge_shot = true,
    charge_action_input = "charge",
    -- ... timing/condition fields
}

Weapons affected

  • Force staff p1 (charge → explosion)
  • Potentially other staff variants
  • Any weapon where action_two_hold maps to a charged secondary rather than ADS

Why this is separate from #41

#41 is about weapon-aware ADS gestalt selection (when to scope in). This issue is about teaching bots a new fire mode (charged secondary) via existing bt_bot_shoot_action charge infrastructure.

Why this is separate from #31

#31 fixes fire/aim input name resolution for the vanilla fallback chain. This requires populating additional charge metadata fields that #31 deliberately scoped out, since the charge system is a separate code path in bt_bot_shoot_action.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2: laterPlanned but not urgentarea: bot-behaviorGeneral bot behavior beyond ability activationenhancementNew feature or requestneeds-testingImplemented, awaiting in-game verification

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions