Implementing logical puzzles for Stendhal: Difference between revisions

Content deleted Content added
imported>Hendrik Brummermann
Created page with "{{Stendhal code design}}{{Navigation for Stendhal Top|Developing}}__NOTOC__ This page describes a concept for implementing logical puzzles in Stendhal. {{Future Concept}} =..."
imported>Hendrik Brummermann
No edit summary
Line 33:
 
=== Door ===
 
A door is a barrier that prevents player from crossing unless it is ''active''.
 
=== Moveable block ===
 
=== Moveable block receiver ===
 
=== Timer ===
 
; time :
: datatype: integer
: required
: The number of seconds until an action occurs.
 
; target :
: datatype: entity reference
: required
: The target entity to modify
 
; propname :
: datatype: string
: required
: The name of the property of the target entity that will be changed
 
; propvalue :
: datatype: string
: required
: The new value of the property of the target entity
 
== Backend implementation ==
 
* Although most puzzles will be confined to one zone each, the backend must support multi zone puzzles.
* Entity references default to entities in the same zone, unless an optional zone name was specified.
* Event bus or listeners
* Events are fired on change of a property (setting a property to the value, which it already had, must not fire an event)
* Limit number of nested events to prevent infinite loops