OpenRPG/Flexinode: Difference between revisions

From David's Notebook
Jump to navigationJump to search
No edit summary
mNo edit summary
 
(3 intermediate revisions by one other user not shown)
Line 1: Line 1:
==Feature requests==
[[OpenRPG/Bugs#Feature_requests]]
==Description==
A flexinode is an OpenRPG game tree node that can used used for any rule system.
A flexinode is an OpenRPG game tree node that can used used for any rule system.


Line 4: Line 7:


* a name (as displayed in the tree)
* a name (as displayed in the tree)
* a 'right click action' (text and one or more dice rolls to be sent to the chat)


And may also have:
And may also have:


* one or more variables.
* a value
* a 'double click action' (text which may contain one or more dice rolls to be sent to the chat)
* a tag (a short name, used to uniquely identify the node)
* a description of the node.
* a longer description for the action.


Flexinodes can be nested arbitrarily.
Many nodes can be includes in folders and sub-folders to form hierarchical collections.


Actions can include dice rolls which reference the value of the node and of other nodes. This means that tags must be unique within a flexinode collection.
Actions can include dice rolls which can include variable references. Variables are searched for in this order:

# current node
# child nodes
# parent node
# parent's children
# parent's children's children (etc.)
# grandparent
# grandparent's children
# etc.

This means a flexinode can contain several complete flexinode character trees and each subtree will use its own variables.

The longer action description will be presented as a tooltip in the chat window.


== Examples ==
== Examples ==
Line 24: Line 39:
Abilities (folder)
Abilities (folder)
:Strength
:Strength
::value = 15
::strength = 15
::str = (strength - 10) / 2
::tag = str
::action = [1d20 + str.d20.ability_mod()]
::action: [1d20 + str]
...
...


Attacks (folder)
Attacks (folder)
:Longsword
:Longsword
::action = [1d20 + str.d20.ability_mod()] Damage: [1d8 + str.d20.ability_mod()]
::action: [1d20 + str] ===> [1d8 + str]
::description = One-handed, primary attack
::description: One-handed, primary attack


Right clicking the action would result in
Right clicking the longsword node would produce:


<b title="One-handed, primary attack">Longsword</b>: [1d20 + 3] ==> (15) = 18 Damage: [1d8 + 3] ==> (3) = 6
<b title="One-handed, primary attack">Longsword</b>: [1d20 + 3] => (15) = 18 ===> [1d8 + 3] ==> (3) = 6


=== 4e ===
=== 4e ===
Line 42: Line 57:
A 4e node for a power might look like:
A 4e node for a power might look like:


Character
Level
:value = 3
:level = 3
:tag = level
...
...


Abilities (folder)
Abilities (folder)
:Intelligence
:Intelligence
::value = 15
::intelligence = 15
::int = (intelligence - 10 / 2
::tag = int
::action = : [1d20 + round_down(level / 2) + int.d20.ability_mod()]
::action = : [1d20 + level/2 + int]
...
...


Powers (folder)
Powers (folder)
:Magic Missile
:Magic Missile
::action = vs Reflex: [1d20 + round_down(level / 2 ) + int.d20.ability_mod()] Damage: [1d4 + int.d20.ability_mod()]
::action: [1d20 + level/2 + int] (vs Ref) ===> [1d4 + int]
::description = At will power
::description: At will power

Right clicking the Magic Missile node would produce:


<b title="At will power">Magic Missile</b> vs Reflex: [1d20 + 4] ==> (13) = 17 Damage: [1d4 + 3] ==> (3) = 6
<b title="At will power">Magic Missile:</b> [1d20 + 4] => (13) = 17 (vs Ref) ===> [1d4 + 3] => (3) = 6

Latest revision as of 20:23, 2 June 2009

Feature requests

OpenRPG/Bugs#Feature_requests

Description

A flexinode is an OpenRPG game tree node that can used used for any rule system.

They have:

  • a name (as displayed in the tree)

And may also have:

  • one or more variables.
  • a 'double click action' (text which may contain one or more dice rolls to be sent to the chat)
  • a longer description for the action.

Flexinodes can be nested arbitrarily.

Actions can include dice rolls which can include variable references. Variables are searched for in this order:

  1. current node
  2. child nodes
  3. parent node
  4. parent's children
  5. parent's children's children (etc.)
  6. grandparent
  7. grandparent's children
  8. etc.

This means a flexinode can contain several complete flexinode character trees and each subtree will use its own variables.

The longer action description will be presented as a tooltip in the chat window.

Examples

d20

A subset of a d20 node for a simple attack might look like:

Abilities (folder)

Strength
strength = 15
str = (strength - 10) / 2
action: [1d20 + str]

...

Attacks (folder)

Longsword
action: [1d20 + str] ===> [1d8 + str]
description: One-handed, primary attack

Right clicking the longsword node would produce:

Longsword: [1d20 + 3] => (15) = 18 ===> [1d8 + 3] ==> (3) = 6

4e

A 4e node for a power might look like:

Character

level = 3

...

Abilities (folder)

Intelligence
intelligence = 15
int = (intelligence - 10 / 2
action = : [1d20 + level/2 + int]

...

Powers (folder)

Magic Missile
action: [1d20 + level/2 + int] (vs Ref) ===> [1d4 + int]
description: At will power

Right clicking the Magic Missile node would produce:

Magic Missile: [1d20 + 4] => (13) = 17 (vs Ref) ===> [1d4 + 3] => (3) = 6