Tale (13): uitspelen, reageren op acties

Friday 18 May 2012, 20:40:00 | mud / i.f.

Release 0.3: wat is er deze keer toegevoegd?

Je kunt het verhaal 'uitspelen'. Er is een story_completed exception en player status toegevoegd die gezet kan worden, waarna het game over is.

Score wordt gedisabled als MAX_SCORE=0/None, tijd/datum weergave disabled als DISPLAY_GAMETIME=False

'read' commando toegevoegd om dingen te kunnen lezen.

Driver heeft een state attribuut waar globale game state variabelen in geplaatst kunnen worden. Deze is ook beschikbaar op de context als 'state'. Wordt mee opgeslagen in savegames.

Location en player hebben een lijst met custom verbs die gezet kunnen worden om extra commando's te herkennen. Als je op een object self.verbs zet dan worden die vanzelf op de container gezet (location of player), en weer weggehaald als het object uit de container verdwijnt dmv remove. Een custom verb kan een bestaande verb overriden, maar als de handle_verb False teruggeeft, wordt alsnog de gewone verb uitgevoerd.

Reageren op acties

MudObject, Living, Exit: notify_action(parsed, actor), een handige manier om te reageren op acties. Gedefinieerd op Location, roept recursief alle items, livings en items in inventory aan. Het verschil met de gewone tell() aanroep is dat die alleen maar een stukje tekst meekrijgt, en niet recursief wordt aangeroepen. Waarom een event methode en niet een callback laten registreren? Dat laatste is weliswaar een stuk efficiƫnter maar het is veel handiger en minder foutgevoelig als dit soort events allemaal automatisch al verzonden worden. Als het allemaal te traag wordt zien we dan later wel weer. Er is ook een nieuwe @disable_notify_action decorator bijgekomen om bepaalde commands niet een notify_action event te laten triggeren.

player.peek_output() toegevoegd om b.v. vanuit een notify_action te kunnen spieken wat de output tot nu toe was (b.v. bij 'coin').

Custom verbs

Objecten (en livings) kunnen nieuwe 'verbs' definiƫren, als voorbeeld staat er nu een computer in de 'Alley of doors' waar je commando's op kunt typen om de deuren van het slot te halen. Hij registreert een paar nieuwe verbs zoals 'hack', 'type' en 'enter'.

Ik heb het setup script wat verfijnd en een eerste opzet van Sphinx documentatie bijgevoegd.

Voor de volgende keer: wat bugs fixen die ik gaandeweg nog ben tegengekomen (b.v. alles is case-sensitive :-() en toch echt maar eens gaan beginnen aan het ondersteunen van losse game modules ipv hardcoded

People have replied:

Richard

2012-05-19 23:35:00

If you're interested in having your MUD development related posts aggregated on Planet MUD-Dev (planet-muddev.disinterest.org), I'd love to have your blog there. However, the posts would have to be written in English and tagged in such a way to separate them from the off-topic ones via a feed. Anyway, contact me at the email address attached to this post if you decide it appeals to you :-)