#spellBook
! Make a table of Spells to Cast from a given list.  the list is in the form of the lists as done in the spellList file.
!
! 	$ARGS[0] = Type of List: cast, learn, list
!				This determines the info to be displayed as wel las the HTML formatting
! 	$ARGS[1] = the name of the array to use for the spell list.
!	$ARGS[2] = (optional) return Action Code - a dynamic piece of code to run instead of generic return.
!	$ARGS[3] = (optional) Additional code to put in spell link (all spells)
!

$spellBookVar['Type'] = $ARGS[0]
$spellBookVar['Array'] = $ARGS[1]
$spellBookVar['ActionCode'] = $ARGS[2]
$spellBookVar['CodeAfterSpell'] = $ARGS[3]

! Make sure opptional variables have defaults
if $spellBookVar['ActionCode'] = '':
	$spellBookVar['ActionCode'] = 'gt $loc, $metka'
end
if $spellBookVar['CodeAfterSpell'] = '':
	$spellBookVar['CodeAfterSpell'] = 'gt $loc, $metka'
end

! lets the user back out if they don''t want ot cast.
dynamic "act 'Never mind': <<$spellBookVar['ActionCode']>>"

! This just makes sure the current spellLists are loaded
gs 'spellList'

!-----------------------------------------------------------------------------------------------
! Choose the type of spell list to determine what info will be displayed and the HTML formatting
!	1) 'TableText' = The header for the table.  The header row
!	2) 'RowCode' = The code used inside the loop to build the HTML text for that Row.

!! 'learn' type is for displaying which seplls the user is currently learning.
if $spellBookVar['Type'] = 'learn':
	$spellBookVar['TableText'] = "
	<center>
		<table CELLPADDING = '5'>
			<tr>
				<th align='left'>Spell</th>
				<th align='left'>Percent Learned</th>
			</tr>"
	$spellBookVar['RowCode'] = {
		if spellLearn[$ThisSpellName] > 0 and spellKnown[$ThisSpellName] ! 1:
			$result = " 
			<tr>
				<td align='left'><<$spellName[$ThisSpellName]>></td>
				<td align='right'><<spellLearn[$ThisSpellName]>></td>
			</tr>"
			spellBookVar['Counter'] += 1
		else
			$result = ''
		end
	}
!! 'list' type is list of castable spells.  This makes a table of spells for the user to cast.
elseif $spellBookVar['Type'] = 'cast':
	$spellBookVar['TableText'] = "
	<center>
		<table CELLPADDING = '5'>
			<tr>
				<th align='left'>Spell</th>
				<th align='left'>Mana</th>
				<th align='left'>Description</th>
			</tr>"
	$spellBookVar['RowCode'] = {
		if spellKnown[$ThisSpellName] = 1:
			if $spellOptDesc[$ThisSpellName] = '':
			! If the spell has no Options, we jsut list it out for casting
				$tmpHTMLCode = " 
				<tr>
					<td align='left'><a href=""EXEC: gs 'castSpell', '<<$ThisSpellName>>'& <<$spellBookVar['CodeAfterSpell']>>""><<$spellName[$ThisSpellName]>></a></td>
					<td align='right'><<spellMana[$ThisSpellName]>></td>
					<td align='left'><<$spellDesc[$ThisSpellName]>></td>
				</tr>"
			else
			! If the spell does have options, we make a row for spell info, and loop through additional rows
			!	with options for the user to pick
				$tmpHTMLCode = " 
				<tr>
					<td align='left'><<$spellName[$ThisSpellName]>></td>
					<td align='right'><<spellMana[$ThisSpellName]>></td>
					<td align='left'><<$spellDesc[$ThisSpellName]>></td>
				</tr>"
				n=0
				:RowCodeLoop98
				if n < arrsize('<<$spellOptDesc[$ThisSpellName]>>'):
					$spellBookVar['tmpVal'] = dyneval('$result = <<$spellOptVal[$ThisSpellName]>>[<<n>>]')
					$spellBookVar['tmpName']= dyneval('$result = <<$spellOptDesc[$ThisSpellName]>>[<<n>>]')
					$tmpHTMLCode += " 
					<tr>
						<td align='left'></td>
						<td align='left'><a href=""EXEC: gs 'castSpell', '<<$ThisSpellName>>', '<<$spellBookVar['tmpVal']>>' & <<$spellBookVar['CodeAfterSpell']>>""><<$spellBookVar['tmpName']>></a></td>
						<td align='left'></td>
					</tr>"
					n += 1
					jump 'RowCodeLoop98'
				end

			end
			$result = $tmpHTMLCode
			spellBookVar['Counter'] += 1
			killvar '$tmpHTMLCode'
			killvar 'n'
		else
			$result = ''
		end
	}
!! 'list' type is list of castable targetable spells.  This makes a table of spells for the user to cast in combat.
elseif $spellBookVar['Type'] = 'targetable':
	$spellBookVar['TableText'] = "
	<center>
		<table CELLPADDING = '5'>
			<tr>
				<th align='left'>Spell</th>
				<th align='left'>Mana</th>
				<th align='left'>Targets</th>
				<th align='left'>Description</th>
			</tr>"
	$spellBookVar['RowCode'] = {
		if spellKnown[$ThisSpellName] = 1:
			$tmpHTMLCode = " 
			<tr>
				<td align='left'><<$spellName[$ThisSpellName]>></td>
				<td align='right'><<spellMana[$ThisSpellName]>></td>
				<td align='center'>"
			if $spellTarget[$ThisSpellName] = 'self':
				$tmpHTMLCode += " 
				<a href=""EXEC: *clr & gs 'castSpell', '<<$ThisSpellName>>', 'pcs', 0, 0 & <<$spellBookVar['CodeAfterSpell']>>"">You</a>"
			elseif $spellTarget[$ThisSpellName] = 'team':
				n=0
				:RowCodeLoop96
				if n < arrsize('pcs_health'):
					$spellBookVar['tmpName']= dyneval('$result = $pcs_name[<<n>>]')
					$tmpHTMLCode += " 
					<a href=""EXEC: *clr & gs 'castSpell', '<<$ThisSpellName>>', 'pcs', <<n>>, 0 & <<$spellBookVar['CodeAfterSpell']>>""><<$spellBookVar['tmpName']>></a>
					<br>"
					n += 1
					jump 'RowCodeLoop96'
				end
			else
				n=0
				:RowCodeLoop97
				if n < arrsize('opp_health'):
					$spellBookVar['tmpName']= dyneval('$result = $opp_name[<<n>>]')
					$tmpHTMLCode += " 
					<a href=""EXEC: *clr & gs 'castSpell', '<<$ThisSpellName>>', 'opp', <<n>>, 0 & <<$spellBookVar['CodeAfterSpell']>>""><<$spellBookVar['tmpName']>></a>
					<br>"
					n += 1
					jump 'RowCodeLoop97'
				end
			end
			$tmpHTMLCode += " </td>
				<td align='left'><<$spellDesc[$ThisSpellName]>></td>
			</tr>"

			$result = $tmpHTMLCode
			spellBookVar['Counter'] += 1
			killvar '$tmpHTMLCode'
			killvar 'n'
		else
			$result = ''
		end
	}
!! Default is a list of spells with descriptio nand mana cost listed.
else
	$spellBookVar['TableText'] = "
	<center>
		<table CELLPADDING = '5'>
			<tr>
				<th align='left'>Spell</th>
				<th align='left'>Mana</th>
				<th align='left'>Description</th>
			</tr>"
	$spellBookVar['RowCode'] = {
		if spellKnown[$ThisSpellName] = 1:
			if $spellOptDesc[$ThisSpellName] = '':
			! If the spell has no Options, we jsut list it out for casting
				$tmpHTMLCode = " 
				<tr>
					<td align='left'><<$spellName[$ThisSpellName]>></td>
					<td align='right'><<spellMana[$ThisSpellName]>></td>
					<td align='left'><<$spellDesc[$ThisSpellName]>></td>
				</tr>"
			else
			! If the spell does have options, we make a row for spell info, and loop through additional rows
			!	with options for the user to pick
				$tmpHTMLCode = " 
				<tr>
					<td align='left'><<$spellName[$ThisSpellName]>></td>
					<td align='right'><<spellMana[$ThisSpellName]>></td>
					<td align='left'><<$spellDesc[$ThisSpellName]>></td>
				</tr>"
				n=0
				:RowCodeLoop99
				if n < arrsize('<<$spellOptDesc[$ThisSpellName]>>'):
					$spellBookVar['tmpVal'] = dyneval('$result = <<$spellOptVal[$ThisSpellName]>>[<<n>>]')
					$spellBookVar['tmpName']= dyneval('$result = <<$spellOptDesc[$ThisSpellName]>>[<<n>>]')
					$tmpHTMLCode += " 
					<tr>
						<td align='left'></td>
						<td align='left'><<$spellBookVar['tmpName']>></td>
						<td align='left'></td>
					</tr>"
					n += 1
					jump 'RowCodeLoop99'
				end

			end
			$result = $tmpHTMLCode
			spellBookVar['Counter'] += 1
			killvar '$tmpHTMLCode'
			killvar 'n'
		else
			$result = ''
		end
	}
end

i = 0
spellBookVar['ArraySize'] = dyneval("result = arrsize('<<$spellBookVar['Array']>>')")
spellBookVar['Counter'] = 0
:SpellListLoop
$ThisSpellName = dyneval("$result = <<$spellBookVar['Array']>>[<<i>>]")
if i < spellBookVar['ArraySize']:
	!$spellBookVar['RowCode']
	$spellBookVar['TableText'] += dyneval($spellBookVar['RowCode'])
	i += 1
	jump 'SpellListLoop'
end

$spellBookVar['TableText'] += " 
	</table>
</center>"

if spellBookVar['Counter'] = 0:
	$spellBookVar['TableText'] = "<center>You have no spells in this list.</center>"
end
!*pl $spellBookVar['TableText']
$result = func('cleanHTML',$spellBookVar['TableText'])

killvar 'i'
killvar '$ThisSpellName'
killvar '$spellBookVar'
killvar 'spellBookVar'
--- spellBook ---------------------------------