Sekhmet
The Pharaoh's Guidance
Unit #065
| HP | PWR | CP | Speed | Range | Tier |
|---|---|---|---|---|---|
| 9 (+3) | 3 (+1) | 3 (+2) | Normal | Distant | A |
Abilities
Passive
g actions cannot be performed in response to Relentless Attack or Relentless March.
Engine Implementation
def _sekhmet_no_quick_response(state, demon) -> dict:
"""#065 Sekhmet — Passive: Quick suppression for Relentless actions.
Implementation lives in execute_ability step 9 (abilities.py). When
Relentless Attack or Relentless March resolves, the ACTION_DECLARED
event is suppressed, preventing the opponent's Quick response window.
"""
return {}
register_passive("065", 0, _sekhmet_no_quick_response)
Relentless Attack — 2 AP
i: Relentless Attack: 2 AP: Deal k damage to Target In Range Demon. e: This action's performer cannot perform Relentless Attack.
Engine Implementation
def _sekhmet_relentless_attack(
state: GameState, demon: DemonInstance, targets, choices, rng
) -> GameState:
"""#065 Sekhmet — Relentless Attack
Allied, 2 AP: Deal this demon's PWR damage to Target In Range Demon.
Status: This action's performer cannot perform Relentless Attack.
Status expires end of current main phase.
Allied: ANY allied demon can perform this (ability_implementation_guide.json).
The performer uses ITS OWN PWR (get_effective_pwr(state, demon)).
After dealing damage, the performer gains "cannot_perform_relentless_attack" status.
Targets: [target_in_range_demon]
"""
target = targets[0]
pwr = get_effective_pwr(state, demon)
state = deal_damage(state, demon, target, pwr)
# Status: performer cannot perform Relentless Attack again this phase
performer_in_new = next(
(d for d in state.demons if d.instance_id == demon.instance_id), None
)
if performer_in_new is not None:
state = apply_status(
state, performer_in_new, performer_in_new,
"cannot_perform_relentless_attack", 1
)
return state
register_ability("065", 1, _sekhmet_relentless_attack)
Relentless March — 1 AP
i: Relentless March: 1 AP: Move this 1 Lane. e: This action's performer has -1 AP Cost on their next action.
Engine Implementation
def _sekhmet_relentless_march(
state: GameState, demon: DemonInstance, targets, choices, rng
) -> GameState:
"""#065 Sekhmet — Relentless March
Allied, 1 AP: Move this demon 1 Lane.
Status: This action's performer has -1 AP Cost on their next action.
Status expires end of current main phase.
Allied: ANY allied demon can perform this (ability_implementation_guide.json).
The performer moves itself 1 lane (choices["lane"]).
After moving, performer gets -1 AP Cost status.
Targets: None
Choices: {"lane": int}
"""
state = _move_to_lane(state, demon, choices["lane"])
performer_in_new = next(
(d for d in state.demons if d.instance_id == demon.instance_id), None
)
if performer_in_new is not None:
state = apply_status(
state, performer_in_new, performer_in_new, "ap_cost", -1
)
return state
register_ability("065", 2, _sekhmet_relentless_march)