First draft of rules- and classes-doc-file
This commit is contained in:
parent
12d5139256
commit
2ec97d295e
3 changed files with 129 additions and 1 deletions
24
doc/classes
Normal file
24
doc/classes
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
JSDSH currently uses two different class-trees (one for the crafty/graphical objects, one for "game" objects),
|
||||||
|
although this (and everything marked with (*)) is subject to change in the future.
|
||||||
|
|
||||||
|
The Crafty-Classes that are not defined by the library (included from jsds_crafty.js) are:
|
||||||
|
|
||||||
|
Thing: A base class, providing the Canvas- and Color-Mechanisms and positioning.
|
||||||
|
Creature: Creatures are everything tha may attack and move (that is, players and monsters)
|
||||||
|
Additional to Thing, this class provides mechanisms for moving the element by mouse or arrow-keys,
|
||||||
|
collision-control to prevent overlaps, and bindings.
|
||||||
|
(*) Furthermore, every creture-object has a variable set to the associated game-object.
|
||||||
|
|
||||||
|
The following additional functions and variables are defined in jsds_crafty.js:
|
||||||
|
|
||||||
|
last_sel: contains a reference to the game-object associated to the last clicked object.
|
||||||
|
end_init(): This function should be called as last after an adventure is loaded and initialized. Usually,
|
||||||
|
when using arrow key control, crafty moves every EACH object where it is activated.
|
||||||
|
end_init disables this control for each object of type "Creature", and sets a hook needed to work
|
||||||
|
around a bug in crafty.
|
||||||
|
reset_bug(): resets the problems with a bug in crafty that causes a key-down-event to be (constantly) triggered
|
||||||
|
when the JSDSH-Tab is the one the browser falls back to after closing another tab.
|
||||||
|
(Strange, I know…).
|
||||||
|
If this happens, DON'T CLICK ANOTHER OBJECT! Open the JS-console and run reset_bug() manually.
|
||||||
|
If you accidantily clicke ONE other object, it is still possible to get back to the old state
|
||||||
|
Manually reset_bug(), de- and refocus the window, and run reset_bug() once more.
|
105
doc/rules
Normal file
105
doc/rules
Normal file
|
@ -0,0 +1,105 @@
|
||||||
|
== Basics ==
|
||||||
|
|
||||||
|
Dungeonslayers is a simple Pen-and-Paper Roll-play-game like Dungeons and Dragons
|
||||||
|
that is designed to have "simple" rules and thus be easily playable by beginners.
|
||||||
|
|
||||||
|
A simple overview can be found here:
|
||||||
|
http://www.dungeonslayers.net/regeln/
|
||||||
|
|
||||||
|
A more detailed quick-start-guide can be found here:
|
||||||
|
http://dungeonslayers.net/download/DS4FirstSlay.pdf
|
||||||
|
|
||||||
|
The complete rules can be downloaded here:
|
||||||
|
http://dungeonslayers.net/download/Dungeonslayers4.pdf
|
||||||
|
|
||||||
|
(all links currently only in german)
|
||||||
|
|
||||||
|
JSDSH is designed to be a helper for the gamemaster, some kind of "referee" and the player of all characters
|
||||||
|
that happen to appear during adventures. This means that JSDSH does not intend to be a fully playable RPG,
|
||||||
|
and doesn't implement every feature (although the list of wished features is quite long), and thus the
|
||||||
|
gamemaster still has to keep track of a lot of "things", like the order that characters or
|
||||||
|
non-player-characters act during fights.
|
||||||
|
|
||||||
|
|
||||||
|
== Tests and Attributes ==
|
||||||
|
|
||||||
|
"Tests" are the most crucial element in Dungeonslayers. Every action that is not trivial,
|
||||||
|
like sneaking into a room, needs a test to find out whether a character manages to to it.
|
||||||
|
|
||||||
|
In Dungeonslayers, all tests are evaluated using a D20 (a 20-sided Dice), against some testing
|
||||||
|
value. This value is specified by attributes, properties and other measures a character holds,
|
||||||
|
which ones depending on the action tried to accomplish.
|
||||||
|
|
||||||
|
The Attributes should be self-explaining:
|
||||||
|
- Body
|
||||||
|
- Agility
|
||||||
|
- Spirit
|
||||||
|
|
||||||
|
Additional to this, there are so called properties:
|
||||||
|
- Strength
|
||||||
|
- Hardness (how much does a character bear?)
|
||||||
|
- Movement (how well can a char. control his body?)
|
||||||
|
- Skill (for everything that requires finesse)
|
||||||
|
- Mind (knowledge and ability to solve puzzles)
|
||||||
|
- Aura (everything magical)
|
||||||
|
|
||||||
|
There are some values derived from those by formulas:
|
||||||
|
- life
|
||||||
|
- defense
|
||||||
|
- initiative (sets the order for actions)
|
||||||
|
- walk (distance a character may walk during one round)
|
||||||
|
- melee (short-distance attack value)
|
||||||
|
- shoot (long distance)
|
||||||
|
- chant (spells that just have an effect)
|
||||||
|
- shoot_chant (for spells like fireballs that need to be aimed)
|
||||||
|
|
||||||
|
Other modifiers include:
|
||||||
|
- fixed spell bonuses
|
||||||
|
- armor and weapon bonuses
|
||||||
|
- magical bonus (temporary or persistent)
|
||||||
|
- …
|
||||||
|
|
||||||
|
For example, sneaking might be tested against (agility + movement).
|
||||||
|
A simple test (test value < 20) is succesfull, if the player rolls a number smaller than the test value.
|
||||||
|
Often, the thrown value is used for effects of the test, like damage or lifepoints healed.
|
||||||
|
A value of 1 is a so called ever-success and leads to the test being succesful with the highest value possible
|
||||||
|
for a succesfull test (i.e. if the tested value is 12, and the player throws a 1, he is succesful with a result
|
||||||
|
of 12).
|
||||||
|
|
||||||
|
if the test-value gets larger than 20, the tests are rolled for blocks of twenty each, where only the first one
|
||||||
|
may lead to a failure of the test. /* This behaviour is not yet implemented */
|
||||||
|
(Example: a character has an attack-value of 46 (20+20+6). Thus, he may throw the dice 3 times:
|
||||||
|
- the first one may lead to a failure of the test ONLY BY A 20, a 1 leads to a result of 46.
|
||||||
|
- the second simply gets added.
|
||||||
|
- the third value gets added only if its smaller than 6.)
|
||||||
|
|
||||||
|
JSDSH currently only supports simple tests, and no ever-success. Some values may be modified by clicking onto a
|
||||||
|
character, the menu shows on the right.
|
||||||
|
|
||||||
|
|
||||||
|
== Attacks ==
|
||||||
|
|
||||||
|
If a (non-player-)character C1 decides to attack another character C2, the follwing happens:
|
||||||
|
C1 does a test for attacks, corresponding to the weapon he chooses (sword => melee, bow => shoot, …)
|
||||||
|
The test-result (if succesfull) is the attack value
|
||||||
|
|
||||||
|
If the attack is defendible, C2 tests for defense, if succesfull, the attack value gets reduced by the result.
|
||||||
|
If this is larger than 0, the life-points of C2 get reduced by this value.
|
||||||
|
|
||||||
|
Otherwise, the life-points get reduced by the attack value.
|
||||||
|
|
||||||
|
The value for a shoot might be modified by obstacles or other characters in the shoot range, usually the needed
|
||||||
|
value gets lowered by 2 per obstacle
|
||||||
|
|
||||||
|
Modifiers in JSDSH ar accessable by clicking on a character. They appear on the right of the game-field.
|
||||||
|
By right-clicking on another character, the currently selected character attacks it with the type of attack
|
||||||
|
selected.
|
||||||
|
|
||||||
|
|
||||||
|
== Walking ==
|
||||||
|
|
||||||
|
A character may only walk his value in "walking" during one round, and attack once. This may happen in any
|
||||||
|
order, but not splitted.
|
||||||
|
|
||||||
|
JSDSH only shows the distance to the startpoint in direct line. Note, that the startpoint gets reseted every
|
||||||
|
time a new player is selected.
|
|
@ -153,7 +153,6 @@
|
||||||
|
|
||||||
/* At the end, disable mouse-control for all creatures
|
/* At the end, disable mouse-control for all creatures
|
||||||
*/
|
*/
|
||||||
var focused = false;
|
|
||||||
var last_sel;
|
var last_sel;
|
||||||
var end_init = function() {
|
var end_init = function() {
|
||||||
Crafty("Creature").each( function() {
|
Crafty("Creature").each( function() {
|
||||||
|
|
Loading…
Reference in a new issue