Hyperlink Combat System
version 1 by Philip Black
[ Now we define a relation between factions which indicates whether these factions will attack each other. ]
Hating relates various factions to various factions.
The verb to hate (he hates, they hate, he hated, it is hated, he is hating) implies the hating relation.
[ The opposing relationship makes it easier to see if two people are antagonists. ]
Opposing relates a person (called X) to a person (called Y) when the faction of X hates the faction of Y.
The verb to oppose (he opposes, they oppose, he opposed, it is opposed, he is opposing) implies the opposing relation.
The opposition test subject is a person that varies.
Definition: a person is opposer if it opposes opposition test subject.
Friendly hates Hostile. Hostile hates Friendly.
A person has a faction. A person is usually passive.
The player is Friendly.
[ We need a rulebook to decide whether people are going to battle each other in the current location. If not, we're not going to run all our ATTACK-machinery. ]
[The hate rules are a rulebook.
[ Depreciated - check the combat status instead ]
To decide whether hate is present (deprecated):
follow the hate rules;
if rule succeeded:
Last hate rule (this is the standard hate rule):
[ This is for speed. It is the most common case where we decide yes. ]
if the player is a Friendly alive person and Friendly hates Hostile and at least one Hostile alive person is enclosed by the location:
repeat with X running through alive not passive persons enclosed by the location:
repeat with Y running through alive persons enclosed by the location:
if X opposes Y: