HealingPurchasedEvent
A temple service was paid for and cast.
Full documentation: HealingPurchasedEvent. Wire type: healing_purchased.
Default visibility: player
Message codes: town.healing.purchased
JSON Schema
{
"$defs": {
"Visibility": {
"description": "Who is allowed to see an event.\n\nEvery event has one of these two values, and the split exists because B/X keeps some rolls behind the\nreferee's screen. Filter a log on it before you show anything to a player, or call\n`GameSession.view`, which builds the player's and the referee's\nviews for you. A narrator playing referee reads both.\n\nThe values are the lowercase strings and they serialize into every event, so a renamed value is a\n`schema_version` bump.\n\nExamples:\n ```python\n from osrlib.core.events import DamageDealtEvent, HitPointsReportedEvent, Visibility\n\n log = [\n DamageDealtEvent(target_id=\"monster-0001\", amount=5),\n HitPointsReportedEvent(target_id=\"monster-0001\", current_hp=2, max_hp=7),\n ]\n shown = [event.code for event in log if event.visibility is Visibility.PLAYER]\n assert shown == [\"combat.damage.dealt\"] # the goblin's remaining hit points stay hidden\n ```",
"enum": [
"player",
"referee"
],
"title": "Visibility",
"type": "string"
}
},
"description": "A temple service was paid for and cast.\n\nEmitted by `PurchaseHealing` in town,\nfollowed by the kernel events of the spell itself. The temple charges the party,\nso `payers` and `payments_gp` say which purses covered the fee and what each one\nput in.",
"properties": {
"code": {
"default": "town.healing.purchased",
"title": "Code",
"type": "string",
"description": "The message code, always `town.healing.purchased`."
},
"visibility": {
"$ref": "#/$defs/Visibility",
"default": "player",
"description": "Player visibility: the party bought it."
},
"event_type": {
"const": "healing_purchased",
"default": "healing_purchased",
"title": "Event Type",
"type": "string",
"description": "The wire discriminator, `healing_purchased`."
},
"character_id": {
"title": "Character Id",
"type": "string",
"description": "The member the service was cast on. Their purse is charged first, but the party covers\nwhatever is left, so read `payers` for who actually paid."
},
"service": {
"title": "Service",
"type": "string",
"description": "Which service was bought, as the key the town's price list uses."
},
"cost_gp": {
"title": "Cost Gp",
"type": "integer",
"description": "What it cost, in gold pieces."
},
"payers": {
"default": [],
"items": {
"type": "string"
},
"title": "Payers",
"type": "array",
"description": "Whose purses paid, in the order they were charged: the treated member first, then the rest\nof the party in marching order, dead members included. A purse pays in whole gold pieces, as\nmuch of the outstanding fee as its gold covers, so the last purse charged pays what is left and\nthe purses behind it are never opened. A member whose purse stayed shut is absent. It is empty\non an event loaded from a save written before the field existed."
},
"payments_gp": {
"default": [],
"items": {
"type": "integer"
},
"title": "Payments Gp",
"type": "array",
"description": "What each purse in `payers` paid, in gold pieces and in the same order. The entries sum to\n`cost_gp`."
}
},
"required": [
"character_id",
"service",
"cost_gp"
],
"title": "HealingPurchasedEvent",
"type": "object"
}