Ideas for Stendhal/Pushable Blocks: Difference between revisions

Jump to navigation Jump to search
Content deleted Content added
imported>Madmetzger
Created page with "On this page we want to gather requirements for the implementation of blocks that can be pushed by players, like it is in the game Sokoban. == Requirements == * Configurabi..."
imported>AntumDeluge
m AntumDeluge moved page Stendhal/ideas/Pushable Blocks to Ideas for Stendhal/Pushable Blocks over redirect: Undoing previous move
 
(22 intermediate revisions by 2 users not shown)
Line 1: Line 1:
On this page we want to gather requirements for the implementation of blocks that can be pushed by players, like it is in the game Sokoban.
On this page we want to gather requirements for the implementation of blocks that can be pushed by players, like it is in the game Sokoban.


== Basic Requirements ==
Adding of pushable blocks should be easy for contributors, this means either via map editor or zone configurator.


To be flexible with the client side representation and being able to customize a block's look to its usage and context, it is necessary to adjust the choice of sprite from the server side.
== Requirements ==


For different types of puzzles or task it is helpful to be able to determine beforehand how often a block should be pushable. It is sufficient to distinguish between one time pushing and pushing without limit.
* Configurability for graphics at client side
* Determine how often pushing is possible
** currently there is just once or as unlimited
* Perform actions under certain circumstances


The fulfillment of this basic requirements enables the creation of basic puzzles, where for example blocks need to be pushed away to get to a certain spot.
== Needed configurability for actions and conditions ==

* List use cases
== Extended Requirements ==
In order to use the pushable blocks for more advanced puzzles, there are more things to consider. To get to the necessary requirements we will start by identifying possible use cases.
=== Use Cases ===
Collection of ideas for possible use cases:
* In a dungeon there is a door, which can be opened by placing a boulder on an activation plate.
* Imagine a quest, where a player needs to help an NPC on a farm for example. The NPC wants the hay carts to be brought into one area and the stray needs to be put to another place.
* A mine cart is used to help an NPC to transport coal from one point to another. Whenever the target is reached, the cart should be emptied. It should be filled at the starting point again.
=== Requirements from example use cases ===
* Definition of targets for blocks
* Definition of specific targets for blocks
* Perform an action when a target is reached
* The performed action must be able to depend on the pushing player
* Switching of block representation on reaching a specific point