BEGIN condition CON_*
(returns TRUE when ALL OF THE BELOW is TRUE)

INTEGER IsOnce = 0 | 1
can be evaluated only once (1) or always (0);
if once, any other objects which use this condition will be inaccessible after this condition is evaluated somewhere

REFERENCES OnTriggered = TRG_*
TRUE when all triggers in this list are TRUE

REFERENCES OnUnTriggered = TRG_*
TRUE when all triggers in this list are FALSE

REFERENCES QuestActive = QUE_*
TRUE when all quests in this list are active (opened and not finished)

REFERENCES QuestDone = QUE_*
TRUE when all quests in this list are done (opened and finished)

ATOMS Characters = NPC_*
TRUE when all characters in this list are present in the player’s location

REFERENCES OnDead = NPC_*
TRUE when all characters in this list are dead

REFERENCES SubConditions = CON_*
list of sub-conditions to evaluate

ATOM SubConditionOp = or | nor | and | nand
boolean operators for the above list;
the operator must return true for the parent condition to evaluate as true;
NOT can be implemented as a "nand" of a single condition

FLOAT AlignmentMin = float
test of the player's alignment, an alignment below this number returns FALSE

FLOAT AlignmentMax = float
test of the player's alignment, an alignment above this number returns FALSE

ATOMS Abilities = SKL_* | SPE_*

test of a player's ability (skills or spells), the actual testing is below…

INTEGERS AbilitiesMinLevel = integer
level of the evaluated ability, below is FALSE

FLOATS AbilitiesMinProficiency = float

proficiency of the evaluated ability, below is FALSE

ATOMS Inventory = ITM_*
items that have to be in player's possession

INTEGER TimeFlags = integer
tests for current time-of-day
5 = decimal representation of binary: 1111 (meaning: morning:TRUE, afternoon:TRUE, evening:TRUE, night:TRUE)
3 = decimal representation of binary: 0011 (meaning: morning:FALSE, afternoon:FALSE, evening:TRUE, night:TRUE)

END


PROGRAMMING NOTES

- bla.