DiscordPHP-NHA Documentation

Stance : string
in package

The strategic stance an agent is playing right now. It is a soft steer, not a script: it re-flavours the system prompt {@see Playbook::systemPrompt()} and lightly reorders the deterministic ladder {@see Ladder::suggestion()}, but the survive / defend / arm rungs and the anti-patterns always apply.

  • homestead — dig in: stockpile, build towers, hold ground. The default.
  • aggressive — a fight is on or a soft target is near, and you are armed: press it, keep ammo topped, take bounties.
  • capitalist — sitting on a fat credit pile with nothing to build: work the depot / market / contracts, buy low and sell high.
  • expansionist— you are in space, on a body, or a transit window is open and you can fly: ride up, invest, extract, colonise.
Tags
since
3.1.23

Table of Contents

Cases

Aggressive  = 'aggressive'
Capitalist  = 'capitalist'
Expansionist  = 'expansionist'
Homestead  = 'homestead'

Methods

briefing()  : string
The stance-specific block spliced into the system prompt.
pick()  : self
Picks the stance for this turn from the observation, holding the current one unless a switch is clearly warranted (hysteresis). `aggressive` is the one stance that can pre-empt the dwell timer — a fight will not wait.
rank()  : self
The stance the situation argues for, ignoring hysteresis.

Cases

Methods

briefing()

The stance-specific block spliced into the system prompt.

public briefing() : string
Return values
string

pick()

Picks the stance for this turn from the observation, holding the current one unless a switch is clearly warranted (hysteresis). `aggressive` is the one stance that can pre-empt the dwell timer — a fight will not wait.

public static pick(array<string, mixed> $raw, string $current, int $lastSwitchAt) : self
Parameters
$raw : array<string, mixed>

The normalised observation.

$current : string

The stance in force (its value).

$lastSwitchAt : int

World tick the stance last changed.

Return values
self

rank()

The stance the situation argues for, ignoring hysteresis.

private static rank(array<string|int, mixed> $raw) : self
Parameters
$raw : array<string|int, mixed>
Return values
self
On this page

Search results