Re: [IDEA][RP] The Mana System

From: DJ Pure (pure@ozramp.net.au)
Date: 01/01/97


G'day all,

	<snip topic introduction about mana being scratched and mem taking over>

Ok. I've being writing down notes for about a month now about this. This
are some of the things I've come up with.

There needs to be an addition to the player's structure with a 2D array (or
something) that holds the spell levels/cirlces whatever, and in the each
level/circle, there needs to hold the maximum number of spells per level
and somehow the current number of spells at whatever level they are.

eg.
// ****PSEDO CODE ONLY!!!!

array ->     [9][9][8][7][6][5][4][3][2][1] // max number of spells/level
for level XXXXX spellcaster. array pos 0 = level 1 spells.

	// Second array (the 2D bit from above)
	[9]
	[<struct that holds the names for MAX_NUM_SPELLS {for level 1 spells} or
something.>]
	[<struct that holds the names for MAX_NUM_SPELLS {for level 2 spells} or
something.>]
	[<struct that holds the names for MAX_NUM_SPELLS {for level 3 spells} or
something.>]
	.... etc.

Now that's a damn rough idea about holding the memorisations.
Now for spells. I was thinking maybe somehow revamp the spells totally ....
something C++ .... because aren't
all spells an object, just with different properties?? I donno .. my coding
sucks. But for C, maybe remove the mana line and make it a SPELL_LEVEL
line. That way, when spells are cast, the have to check to see if it is the
memorisation array (remove if so) and then cast it. 

But then there can be some spells which only can be quested for, so maybe
another 2D array is in order, for what spells are KNOWN to the player (like
a spellbook thingy). This way, if a quested spell is succefully got (and
recorded in a spellbook for mages) then "tick/cross off" and spell in the
spell_array.

eg. Spell_array
//NOTE _ PSEDO CODE ONLY!!!!!!

spell_array [<level 1 spells> [<level 2 spells>] [level 3 spells] ...

// and in level 1 spells

	[1]	// magic missile is known
	[1]	// sleep is known
	[0]	// cure light is UNKNOWN
	[1]	// know alignment is known
	[0]	// create water is unknown
	[1]	// blah 1 is known
	[1]	// my code sucks is known

this is all i have come up with .... but this is only a rough outline.
any suggesstions.
<please!>

Jussy
+-----------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
|   http://cspo.queensu.ca/~fletcher/Circle/list_faq.html   |
+-----------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/18/00 PST