Files
boe-scenarios/BoEArchFull/Normal/Dependency (Utility)/Party Dependency.txt
2025-08-01 10:47:35 -05:00

223 lines
8.7 KiB
Plaintext

MAKING THE PARTY DEPENDENT ON SOME SUBSTANCE
A BoE Programming Sequence by Brett Bixler
PURPOSE
The purpose of this programming sequence is to make the party dependent on some substance for their survival. This particular example will use water as the dependent substance. You can substitute virtually any substance you desire, however. Please don't use this to make the party drug dependent. Drug dependency is a serious issue and should never be treated lightly, even in a fantasy game. The whole Scribbane issue in Exile III always bothered me a great deal.
SETUP
Timers
Set a Global General Timer, 1200 moves, CALL Global Spec 0
Special Items
Create 10 Special Items (1 = 1 Unit of Water to 10 = 10 Units of Water)
Special Item 1 Description = "You should replenish your supply as soon as possible!"
Special Item 2 Description = "You are running low."
Special Item 3 Description = "You are at 1/3 capacity."
Special Item 4 Description = "You are at slightly less than half capacity."
Special Item 5 Description = "You are at half capacity."
Special Item 6 Description = "You are at slightly more than half capacity."
Special Item 7 Description = "You are at roughly 2/3 capacity."
Special Item 8 Description = "You are at 3/4 capacity."
Special Item 9 Description = "You are at slightly less than full capacity."
Special Item 10 Description = "You are at full capacity."
As the party uses up a Unit of Water (based on a set time interval) the current special item
(say Special Item 10) is removed and the next lowest Special Item (Special Item 9) is given to the party.
Finding a source of water at any time removes all Special Items 1-10, then gives the party Special Item 10.
In other words, the party fills up on water units.
Stuff Done Flags Needed
SDF 240,0 is the counter for Units of Water the Party current is carrying. SDF 240,1 and 240,2
are used to illustrate examples of water acquisition routines.
When SDF 240,0 = 20 the party has 10 Units of water.
This counter is decremented by 1 via a global set timer interval until it reaches 10,
indicating no water remains.
Finding a source of water at any time resets this counter to 20.
The counter continues to decrement by 1 after the party runs out of water, causing the following effects:
At SDF 240,0 = 10 there is no water. A warning message appears.
At SDF 240,0 = 9 health damage occurs between 8-20 points. Another warning message appears.
At SDF 240,0 = 8 health damage occurs between 18-50 points and the party is dumbfounded.
A final warning message appears.
At SDF 240,0 = 7 the party dies.
Water Sources
There are two types of water sources: limited and unlimited.
A limited source may be usable only one or possibly several times.
An unlimited source is usable indefinitely.
Creating a Limited Water Source
To create a limited source, use a Stuff Done Flag of your choice, assign it an initial value,
and decrement it by 1 each time the party uses the source. When the SDF = 0, the source is depleted.
For example, if you were using SDF 240,1 at a limited water location and wanted water available
to the party only three times, you would set SDF 240,1 = 3 via a one-shot node
either at the beginning of the scenario, or when a special is stepped upon:
0 One-Time and Set [240,2]
1 Set SDF 240,1=3
Then use this code sequence within the town/dungeon/outdoor location:
0 IF SDF 240,1 >= 1 GOTO 2; IF < 1 THEN GOTO 1
1 Display Msg. ("This water source has dried up! Too bad."); END
//Set Water Unit Counter to Max.
2 Set SDF 240,0=20 ("You top off your water supply! This water source is drying up;
it may not be of use in the future.")
//Now Call the Global Water Unit Routine.
3 Increment SDF 240,1 by -1
4 Call Global Spec 0; END
Creating an Unlimited Water Source
When the party arrives at an unlimited water source (a lake, river, etc.), use this code sequence:
0 - Set SDF 240,0 = 20 ("You top off your water supply!")
1 - Call Global Spec 0; END
Global Code
//Sequence for using up a unit of water. Called every 1200 turns.
//Remove all Special Item Water Units.
0 Give Special Item 1 "1 Unit of Water" (Take Away)
1 Give Special Item 2 "2 Units of Water" (Take Away)
2 Give Special Item 3 "3 Units of Water" (Take Away)
3 Give Special Item 4 "4 Units of Water" (Take Away)
4 Give Special Item 5 "5 Units of Water" (Take Away)
5 Give Special Item 6 "6 Units of Water" (Take Away)
6 Give Special Item 7 "7 Units of Water" (Take Away)
7 Give Special Item 8 "8 Units of Water" (Take Away)
8 Give Special Item 9 "9 Units of Water" (Take Away)
9 Give Special Item 10 "10 Units of Water" (Take Away)
//Determine & give current Units.
//10 Units
10 IF SDF 240,0 >= 20 GOTO 11; IF < 20 THEN GOTO 13
11 Give Special Item 10 "10 Units of Water" (Give)
12 Display Sm Msg ("You have 10 Units of water."); GOTO 50
//9 Units
13 IF SDF 240,0 >= 19 GOTO 14; IF < 19 THEN GOTO 16
14 Give Special Item 9 "9 Units of Water" (Give)
15 Display Sm Msg ("You have 9 Units of water."); GOTO 50
//8 Units
16 IF SDF 240,0 >= 18 GOTO 17; IF < 18 THEN GOTO 19
17 Give Special Item 8 "8 Units of Water" (Give)
18 Display Sm Msg ("You have 8 Units of water."); GOTO 50
//7 Units
19 IF SDF 240,0 >= 17 GOTO 20; IF < 17 THEN GOTO 22
20 Give Special Item 7 "7 Units of Water" (Give)
21 Display Sm Msg ("You have 7 Units of water."); GOTO 50
//6 Units
22 IF SDF 240,0 >= 16 GOTO 23; IF < 16 THEN GOTO 25
23 Give Special Item 6 "6 Units of Water" (Give)
24 Display Sm Msg ("You have 6 Units of water."); GOTO 50
//5 Units
25 IF SDF 240,0 >= 15 GOTO 26; IF < 15 THEN GOTO 28
26 Give Special Item 5 "5 Units of Water" (Give)
27 Display Sm Msg ("You have 5 Units of water."); GOTO 50
//4 Units
28 IF SDF 240,0 >= 14 GOTO 29; IF < 14 THEN GOTO 31
29 Give Special Item 4 "4 Units of Water" (Give)
30 Display Sm Msg ("You have 4 Units of water."); GOTO 50
//3 Units
31 IF SDF 240,0 >= 13 GOTO 32; IF < 13 THEN GOTO 34
32 Give Special Item 3 "3 Units of Water" (Give)
33 Display Sm Msg ("You have 3 Units of water."); GOTO 50
//2 Units
34 IF SDF 240,0 >= 12 GOTO 35; IF < 12 THEN GOTO 37
35 Give Special Item 2 "2 Units of Water" (Give)
36 Display Sm Msg ("You have 2 Units of water."); GOTO 50
//1 Unit
37 IF SDF 240,0 >= 11 GOTO 38; IF < 11 THEN GOTO 40
38 Give Special Item 1 "1 Unit of Water" (Give) ("You have only 1 Unit of water!
You better replenish your supply as soon as possible!")
39 Display Sm Msg ("You have 1 Unit of water."); GOTO 50
//Out of water
40 IF SDF 240,0 >= 10 GOTO 41; IF < 10 THEN GOTO 42
41 Display Msg ("You are out of water! You better replenish your supply as soon as possible!"); GOTO 50
//Out of water a second time
42 IF SDF 240,0 >= 9 GOTO 43; IF < 9 THEN GOTO 44
43 Do Damage 3d5 + 5; Type = Physical
("You are out of water! Thirst racks your bodies as dehydration set in! You better replenish your supply as soon as possible!"); GOTO 50
//Out of water a third time
44 IF SDF 240,0 >= 8 GOTO 46; IF < 8 THEN GOTO 49
45 Do Damage 8d5 + 10; Type = Physical
("You are out of water! Thirst racks your bodies as severe dehydration continues! You are near death! You MUST replenish your supply as soon as possible!")
46 Affect Dumbfounding by 3 (Adds); GOTO 50
//Party is dead, Jim.
47 Kill/Raise Dead; Dust (Kill)
("Falling to your knees in a haze of dry agony, the world goes black around you... You die of dehydration.")
48 Kill/Raise Dead; Dust (Kill)
49 End Scenario; END
//Decrement SDF 240,0 by 1 to indicate a drop in Units
50 Increment SDF 240,0 by -1
//Play a swallowing sound
51 Play Sound 56; END
Possible Variations
Many exist. Here are the more obvious:
* Instead of 10 units, use only 5 or less. Less coding, less use of Special Items.
The current programming sequence uses 1/5 of the available Special Items and a large chunk of global code.
This may cause difficulties in larger scenarios.
* Prolong the agony of the party after they run out of the substance.
Currently, the party dies when lacking the substance after being checked three times.
With the current setup, you could add as many as 7 more checks.
* Make the "punishment" for not having the substance more severe.
* To increase the challenge, decrease the global timer from 1200 to 900, 700, etc.
This will increase the use of the substance.
* Add code to turn the global timer off and on.
In this example, you may decide to check the water supply only in desert conditions.
* Have the supply robbed from the party, forcing an immediate panic. Great chase possibilities here.
* Instead of making the substance naturally available, force the party into quests, etc. to acquire it.
For example, oxygen for the Chlorine Swamps.
* Provide places where only a Unit or two is available.
See the Code Sequence in Action
The code sequence is programmed in the accompanying "Water" scenario,
Town 0 and the Global Code for the scenario.