<?php require_once 'engine/init.php'; include 'layout/overall/header.php'; 
protect_page();
admin_only($user_data);

// PREP: Create a function that echos player skills
function playerSkill($skills, $id) {
	if (!$skills) return 0;
	else {
		return $skills[$id]['value'];
	}
}

// UPDATE SKILLS POST
if (isset($_POST['pid']) && (int)$_POST['pid'] > 0) {
	$pid = (int)$_POST['pid'];
	if ($config['TFSVersion'] != 'TFS_10') $status = user_is_online($pid);
	else $status = user_is_online_10($pid);

	if (!$status) {
		// New player level
		$level = (int)$_POST['level'];
		
		// Fetch stat gain for vocation
		$statgain = $config['vocations_gain'][(int)$_POST['vocation']];
		$playercnf = $config['player'];

		/*
		if ((int)$_POST['vocation'] !== 0) {
			// Fetch base level and stats:
			$baselevel = $config['level'];
			$basehealth = $config['health'];
			$basemana = $config['mana'];
			$basecap = $config['cap'];
		} else { // No vocation stats
			// Fetch base level and stats:
			$baselevel = $config['nvlevel'];
			$basehealth = $config['nvHealth'];
			$basemana = $config['nvMana'];
			$basecap = $config['nvCap'];
		}
		*/
		
		$LevelsFromBase = $level - $playercnf['base']['level'];
		$newhp = $playercnf['base']['health'] + ($statgain['hp'] * $LevelsFromBase);
		$newmp = $playercnf['base']['mana'] + ($statgain['mp'] * $LevelsFromBase);
		$newcap = $playercnf['base']['cap'] + ($statgain['cap'] * $LevelsFromBase);

		// Calibrate hp/mana/cap
		if ($config['TFSVersion'] != 'TFS_10') {
mysql_update("UPDATE `player_skills` SET `value`='". (int)$_POST['fist'] ."' WHERE `player_id`='$pid' AND `skillid`='0' LIMIT 1;");
mysql_update("UPDATE `player_skills` SET `value`='". (int)$_POST['club'] ."' WHERE `player_id`='$pid' AND `skillid`='1' LIMIT 1;");
mysql_update("UPDATE `player_skills` SET `value`='". (int)$_POST['sword'] ."' WHERE `player_id`='$pid' AND `skillid`='2' LIMIT 1;");
mysql_update("UPDATE `player_skills` SET `value`='". (int)$_POST['axe'] ."' WHERE `player_id`='$pid' AND `skillid`='3' LIMIT 1;");
mysql_update("UPDATE `player_skills` SET `value`='". (int)$_POST['dist'] ."' WHERE `player_id`='$pid' AND `skillid`='4' LIMIT 1;");
mysql_update("UPDATE `player_skills` SET `value`='". (int)$_POST['shield'] ."' WHERE `player_id`='$pid' AND `skillid`='5' LIMIT 1;");
mysql_update("UPDATE `player_skills` SET `value`='". (int)$_POST['fish'] ."' WHERE `player_id`='$pid' AND `skillid`='6' LIMIT 1;");
mysql_update("UPDATE `players` SET `maglevel`='". (int)$_POST['magic'] ."' WHERE `id`='$pid' LIMIT 1;");
mysql_update("UPDATE `players` SET `vocation`='". (int)$_POST['vocation'] ."' WHERE `id`='$pid' LIMIT 1;");
mysql_update("UPDATE `players` SET `level`='". $level ."' WHERE `id`='$pid' LIMIT 1;");
mysql_update("UPDATE `players` SET `experience`='". level_to_experience($level) ."' WHERE `id`='$pid' LIMIT 1;");
// Update HP/mana/cap accordingly to level & vocation
mysql_update("UPDATE `players` SET `health`='". $newhp ."', `healthmax`='". $newhp ."', `mana`='". $newmp ."', `manamax`='". $newmp ."', `cap`='". $newcap ."' WHERE `id`='$pid' LIMIT 1;");
		} else {
			mysql_update("UPDATE `players` SET `health`='". $newhp ."', `healthmax`='". $newhp ."', `mana`='". $newmp ."', `manamax`='". $newmp ."', `cap`='". $newcap ."', `vocation`='". (int)$_POST['vocation'] ."', `skill_fist`='". (int)$_POST['fist'] ."', `skill_club`='". (int)$_POST['club'] ."', `skill_sword`='". (int)$_POST['sword'] ."', `skill_axe`='". (int)$_POST['axe'] ."', `skill_dist`='". (int)$_POST['dist'] ."', `skill_shielding`='". (int)$_POST['shield'] ."', `skill_fishing`='". (int)$_POST['fish'] ."', `maglevel`='". (int)$_POST['magic'] ."', `level`='". $level ."', `experience`='". level_to_experience($level) ."' WHERE `id`='$pid' LIMIT 1;");
		}
?>
<h1>Player skills updated!</h1>
<?php
	} else {
		?>
		<font color="red" size="7">Player must be offline!</font>
		<?php
	}
}

// Stage 1: Fetch name
if (isset($_GET['name'])) {
	$name = getValue($_GET['name']);
} else $name = false;
//if (isset($_POST['name'])) $name = getValue($_POST['name']);

// Stage 2: Fetch user id and skills
$skills = false;
$pid = 0;
if ($name !== false) {
	if (user_character_exist($name)) {
		$pid = user_character_id($name);

		if ($config['TFSVersion'] != 'TFS_10') {
			$skills = mysql_select_multi("SELECT `value` FROM `player_skills` WHERE `player_id`='$pid' LIMIT 7;");
			$player = mysql_select_single("SELECT `maglevel`, `level`, `vocation` FROM `players` WHERE `id`='$pid' LIMIT 1;");
			$skills[] = array('value' => $player['maglevel']);
			$skills[] = array('value' => $player['level']);
			$skills[] = array('value' => $player['vocation']);
		} else {
			$player = mysql_select_single("SELECT `skill_fist`, `skill_club`, `skill_sword`, `skill_axe`, `skill_dist`, `skill_shielding`, `skill_fishing`, `maglevel`, `level`, `vocation` FROM `players` WHERE `id`='$pid' LIMIT 1;");
			$skills = array(
				0 => array('value' => $player['skill_fist']),
				1 => array('value' => $player['skill_club']),
				2 => array('value' => $player['skill_sword']),
				3 => array('value' => $player['skill_axe']),
				4 => array('value' => $player['skill_dist']),
				5 => array('value' => $player['skill_shielding']),
				6 => array('value' => $player['skill_fishing']),
				7 => array('value' => $player['maglevel']),
				8 => array('value' => $player['level']),
				9 => array('value' => $player['vocation'])
			);
		}

		//data_dump($skills, false, "Player skills");
	} else $name = false;
}

?>
<form action="" method="<?php if (!$name) echo "get"; else echo "post";?>">
	<input type="hidden" name="pid" value="<?php echo $pid; ?>">
	<table class="table">
		<tr class="yellow">
			<td colspan="2"><center><font size="6">Player skills administration</font></center></td>
		</tr>
		<tr>
			<td>
				<input name="name" type="text" placeholder="Character name" <?php if ($name !== false) echo "value='$name' disabled";?>>
				<br><br>
				Vocation:<br>
				<select name="vocation" <?php if (!$name) echo "disabled";?>>
					<?php
					$vocations = $config['vocations'];
					foreach ($vocations as $vid => $vname) {
						?>
						<option value="<?php echo $vid; ?>" <?php if ($vid == playerSkill($skills, 9)) echo "selected"?> ><?php echo $vname; ?></option>
						<?php
					}
					?>
				</select>
				<br><br>
				Fist fighting:<br>
				<input name="fist" type="text" <?php if (!$name) echo "disabled";?> value="<?php echo playerSkill($skills, 0); ?>">
				<br><br>
				Club fighting:<br>
				<input name="club" type="text" <?php if (!$name) echo "disabled";?> value="<?php echo playerSkill($skills, 1); ?>">
				<br><br>
				Sword fighting:<br>
				<input name="sword" type="text" <?php if (!$name) echo "disabled";?> value="<?php echo playerSkill($skills, 2); ?>">
				<br><br>
				Axe fighting:<br>
				<input name="axe" type="text" <?php if (!$name) echo "disabled";?> value="<?php echo playerSkill($skills, 3); ?>">
				<br><br>
			</td>
			<td>
				Dist fighting:<br>
				<input name="dist" type="text" <?php if (!$name) echo "disabled";?> value="<?php echo playerSkill($skills, 4); ?>">
				<br><br>
				Shield fighting:<br>
				<input name="shield" type="text" <?php if (!$name) echo "disabled";?> value="<?php echo playerSkill($skills, 5); ?>">
				<br><br>
				Fish fighting:<br>
				<input name="fish" type="text" <?php if (!$name) echo "disabled";?> value="<?php echo playerSkill($skills, 6); ?>">
				<br><br>
				Level:<br>
				<input name="level" type="text" <?php if (!$name) echo "disabled";?> value="<?php echo playerSkill($skills, 8); ?>">
				<br><br>
				Magic level:<br>
				<input name="magic" type="text" <?php if (!$name) echo "disabled";?> value="<?php echo playerSkill($skills, 7); ?>">
				<br><br>
			</td>
		</tr>
		<tr>
			<td colspan="2">
				<?php
					if (!$name) {
						?>
						<input class="btn btn-primary" type="submit" value="Fetch character skills info">
						<?php
					} else {
						?>
						<input class="btn btn-success" type="submit" value="UPDATE SKILLS">
						<?php
					}
				?>
			</td>
		</tr>
	</table>
	<a href="admin_skills.php">Reset fields / search new character</a>
</form>
<?php
// end
 include 'layout/overall/footer.php'; ?>