Skip to content

Summons - #508

Merged
neeerp merged 4 commits into
v83/books-fame-noticesfrom
v83/summons
Oct 17, 2026
Merged

neeerp merged 4 commits into
v83/books-fame-noticesfrom
v83/summons

Conversation

@neeerp

@neeerp neeerp commented Oct 17, 2026 •

Copy link
Copy Markdown
Owner

Summon skills (Puppet, Silver Hawk, Octopus, Elquines, the souls, Beholder...) now work on both sides.

What changed

  • Server:
    • USE_SKILL casts a summon at the client's spot (within 250x150 of the owner), spending MP and itemCon and giving its buff.
    • The field keeps summons and shows SPAWN/REMOVE/MOVE_SUMMON.
    • It checks SUMMON_ATTACK against mobCount and a 2x damage cap, breaks Puppets at their x HP, and brings followers along on a map change.
  • HeavenClient:
    • MapSummons draws and animates summons (v83 CSummoned);
    • SummonRules holds follow/circle movement, placement and damage;
    • summons attack on the owner's 3 s / 1.5 s clock, and others' summon attacks play.
  • Puppet: a local Puppet makes the mobs this client controls chase it for 3-4 minutes (FUN_00679847). A mob touching it rolls touch damage (FUN_00793687) and sends DAMAGE_SUMMON.
  • Beholder: the client heals its owner with Aura of the Beholder, else buffs a stat with Hex, each in its skill's time (FUN_007a4080, FUN_007a5ab4, FUN_007a5c99), and sends BEHOLDER (0xB2). The server checks the pace and shows the others SUMMON_SKILL (0xB3).
  • Statuses: summons' hits carry their skill's status. Silver Hawk and Golden Eagle stun at the level's prop; Elquines and Frostprey always freeze, for the level's x seconds.
  • Docs: agent_docs/combat.md gains a Summons section.

Verification

  • New client test summon_rules; new server unit tests for casting, attacks and the Puppet.
  • New harness test summons, including the Beholder and an Arch Mage's Elquines freezing a mob for 3 s.

Reviewed with sol-loop: 2 rounds with gpt-6.1-sol on high.

Stacked on #507

@neeerp neeerp mentioned this pull request Oct 17, 2026
Server: USE_SKILL casts a summon at the client's spot (within 250x150 of
the owner), spending MP and itemCon and giving its buff; the field keeps
summons, shows SPAWN/REMOVE/MOVE_SUMMON, checks SUMMON_ATTACK against
mobCount and a 2x damage cap, breaks Puppets at their x HP, and brings
followers along on a map change.

HeavenClient: MapSummons draws and animates summons (v83 CSummoned);
SummonRules holds follow/circle movement, placement and damage; Combat
places the cast, targets and attacks on the owner's 3 s / 1.5 s clock,
and plays others' attacks; chat lines on expiry.

Harness: summons test. Docs: combat.md Summons. Report 158.
A local Puppet's spawn makes each mob this client moves that is chasing
someone chase the Puppet for 3-4 minutes; its removal lets them go
(FUN_00679847). A mob touching an unblinking Puppet rolls 40/(lv+70)
times its attack times 10-85% of it, over 100 (FUN_00793687), shows it,
and sends DAMAGE_SUMMON (0x7a627a).
The client heals its owner with Aura of the Beholder, else buffs one stat
with Hex, each in its skill's time (FUN_007a4080, FUN_007a5ab4,
FUN_007a5c99), and sends BEHOLDER (0xB2). The server checks the skills,
holds each to its pace in the field, heals or gives the Hex buff, and
shows the others SUMMON_SKILL (0xB3).
A summon's hits now carry its skill's status, as a player's attacks do.
Silver Hawk and Golden Eagle stun at the level's prop (50% to 99%).
Elquines and Frostprey always freeze; their data has no prop. Each status
lasts the level's x seconds, inferred from the freezes' x growing from 1
to 3. The client only shows the status it is sent.

The harness has an Arch Mage's Elquines freeze a mob for 3 s. The
Beholder test now finds its own summon on the shared map.
@neeerp
neeerp added this pull request to stack #515 October 17, 2026 23:30
@neeerp
neeerp merged commit 6253206 into v83/skill-and-mob-details Oct 17, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant