Skip to content

Implement baseline combat, projectiles, spells, and monster AI #50

Description

@zoeyrose

Outcome

Provide a complete but deliberately narrow combat path that proves the common action, actor, item, scene, encounter, and protocol foundations.

Scope and invariants

  • Implement basic melee, ranged projectile, and spell actions with target validation, range/line rules, protections, blocking, damage/healing, ownership attribution, and death processing.
  • Represent projectile and delayed effects as deterministic simulation entities/events with captured identities and cancellation rules.
  • Create bounded monster perception, target selection, path/action decision, leash/reset, and common action submission; AI cannot bypass player action rules.
  • Define friendly-fire/PvP/owner/pet attribution and disclosure policy explicitly.
  • Emit semantic telegraph/action/effect events for Rust presentation without server-owned animation or prose.

Acceptance criteria

  • Scenarios cover hit/miss/block/protection, projectile travel, interrupted/dead targets, reflected/owned sources as required, monster reset, simultaneous actions, reward attribution, and reconnect.
  • Player and monster AI use the same action service; architecture tests reject privileged damage mutation.
  • Replay and seeded RNG reproduce outcomes exactly.
  • One melee monster, projectile, and spell flow work in the M3 slice; advanced discipline issues layer on them.
  • Load/tick benchmarks cover dense combat and bounded AI work.

Dependencies and parallelization

Depends on #17, #23, #25, #37, #41, #48, and #49. Navigation may begin with a bounded simple policy; advanced techniques remain M5.

Independent implementation

Implement from the preserved issue-level/product behavior and independently authored fixtures. Do not copy or mechanically translate GPL server/Python code or tests. Replacement code is MIT; consumed content and assets keep their own licenses.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Fields

    Priority

    None yet

    Effort

    None yet

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions