diff --git a/doc/classes b/doc/classes new file mode 100644 index 0000000..d98c49e --- /dev/null +++ b/doc/classes @@ -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. diff --git a/doc/rules b/doc/rules new file mode 100644 index 0000000..768914c --- /dev/null +++ b/doc/rules @@ -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. diff --git a/src/jsds_crafty.js b/src/jsds_crafty.js index d2b595c..aab88ca 100644 --- a/src/jsds_crafty.js +++ b/src/jsds_crafty.js @@ -153,7 +153,6 @@ /* At the end, disable mouse-control for all creatures */ - var focused = false; var last_sel; var end_init = function() { Crafty("Creature").each( function() {