<?php
/*
 * Created on 02.05.2014
 *
 * @copyright (c) 2014 animegame.eu
 * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public Licence
 *
 */


#include_once(ROOT_PATH.'/include/event.inc.php');

$GLOBALS['TMP_DB_TABLE_RACE_TYPE']=array(
	array(
		'name'	=> 'Onepiece',
		'id'	=> 1,
		'gm_only' => false,
	),
	array(
		'name'	=> 'Dragonball',
		'id'	=> 2,
		'gm_only' => false,
	),
	array(
		'name'	=> 'NPC',
		'id'	=> 3,
		'gm_only' => true,
	),
);

// Dieses Array ist zum simulieren der Datenbank da!
$GLOBALS['TMP_DB_TABLE_RACES']=array(

	array(
		'name'		=> 'Mensch',
		'type'		=> 2,
		'id'		=> 1,
		'hp'		=> 150,
		'mp'		=> 30,
		'str'		=> 15,
		'def'		=> 9,
		'spd'		=> 13,
		'lck'		=> 4,
		'stm'		=> 8,
		'special' 	=> false
	),
	array(
		'name'		=> 'Saiyajin',
		'type'		=> 2,
		'id'		=> 2,
		'hp'		=> 120,
		'mp'		=> 30,
		'str'		=> 18,
		'def'		=> 10,
		'spd'		=> 9,
		'lck'		=> 5,
		'stm'		=> 10,
		'special' 	=> false
	),
	array(
		'name'		=> 'Dämon',
		'type'		=> 2,
		'id'		=> 3,
		'hp'		=> 160,
		'mp'		=> 50,
		'str'		=> 8,
		'def'		=> 9,
		'spd'		=> 18,
		'lck'		=> 4,
		'stm'		=> 5,
		'special' 	=> false
	),
	array(
		'name'		=> 'Mutant',
		'type'		=> 2,
		'id'		=> 4,
		'hp'		=> 180,
		'mp'		=> 15,
		'str'		=> 13,
		'def'		=> 9,
		'spd'		=> 18,
		'lck'		=> 4,
		'stm'		=> 5,
		'special' 	=> false
	),
	array(
		'name'		=> 'Cyborg',
		'type'		=> 2,
		'id'		=> 5,
		'hp'		=> 250,
		'mp'		=> 20,
		'str'		=> 11,
		'def'		=> 30,
		'spd'		=> 0,
		'lck'		=> 0,
		'stm'		=> 0,
		'special' 	=> false
	),
	array(
		'name'		=> 'Namekianer',
		'type'		=> 2,
		'id'		=> 6,
		'hp'		=> 100,
		'mp'		=> 10,
		'str'		=> 18,
		'def'		=> 10,
		'spd'		=> 14,
		'lck'		=> 6,
		'stm'		=> 10,
		'special' 	=> false
	),
	array(
		'name'		=> 'Tsufurujin',
		'type'		=> 2,
		'id'		=> 13,
		'hp'		=> 50,
		'mp'		=> 120,
		'str'		=> 0,
		'def'		=> 0,
		'spd'		=> 11,
		'lck'		=> 30,
		'stm'		=> 0,
		'special'	=> false,
	),
	// Start 'One Piece'
	array(
		'name'		=> 'Pirat',
		'type'		=> 1,
		'id'		=> 7,
		'hp'		=> 100,
		'mp'		=> 25,
		'str'		=> 20,
		'def'		=> 10,
		'spd'		=> 15,
		'lck'		=> 3,
		'stm'		=> 7,
		'special' 	=> false
	),
	// In-Between Special chars
	array(
		'name'		=> 'Shichibukai',
		'type'		=> 1,
		'id'		=> 8,
		'hp'		=> 1000,
		'mp'		=> 150,
		'str'		=> 100,
		'def'		=> 100,
		'spd'		=> 100,
		'lck'		=> 100,
		'stm'		=> 100,
		'tp'		=> 500,
		'special' 	=> true
	),
	array(
		'name'		=> 'Kaioshin',
		'type'		=> 2,
		'id'		=> 9,
		'hp'		=> 1000,
		'mp'		=> 150,
		'str'		=> 100,
		'def'		=> 100,
		'spd'		=> 100,
		'lck'		=> 100,
		'stm'		=> 100,
		'tp'		=> 500,
		'special' 	=> true
	),
	// Continue 'One Piece'
	array(
		'name'		=> 'Schwertkämpfer',
		'type'		=> 1,
		'id'		=> 10,
		'hp'		=> 100,
		'mp'		=> 25,
		'str'		=> 25,
		'def'		=> 10,
		'spd'		=> 10,
		'lck'		=> 2,
		'stm'		=> 8,
		'special' 	=> false
	),
	array(
		'name'		=> 'Grandline Maschine',
		'type'		=> 1,
		'id'		=> 11,
		'hp'		=> 400,
		'mp'		=> 5,
		'str'		=> 5,
		'def'		=> 5,
		'spd'		=> 5,
		'lck'		=> 0,
		'stm'		=> 10,
		'special' 	=> false
	),
	// NPC chars
	array(
		'name'		=> 'NPC',
		'type'		=> 3,
		'id'		=> 12,
		'hp'		=> 0,
		'mp'		=> 0,
		'str'		=> 0,
		'def'		=> 0,
		'spd'		=> 0,
		'lck'		=> 0,
		'stm'		=> 0,
		'special'	=> true
	),
);

// now sort the arrays 


// Dieses Array ist dafuer da, dass nicht unnötig viele SQL-Abfragen gemacht werden!
// Fehlgriff im Design, aber solange wir nichts Klassenbasiert machen, gehts nicht anders
$GLOBALS['char_buffered_races'] = array ();
$GLOBALS['char_buffered_race_types'] = array(); 


function getRassen() {
	return getRaces();
}

/**
 * Diese Funktion gibt ein array mit allen rassen aus 'id' => array('name', 'type', ...);
 */
function getRaces() {
	if(count($GLOBALS['char_buffered_races']) == 0) {
		// FIXME: This is a simulated SQL Request!
		foreach($GLOBALS['TMP_DB_TABLE_RACES'] as $race) {
			$GLOBALS['char_buffered_races'][$race['id']] = $race;
		}
	}
	return $GLOBALS['char_buffered_races'];
}

function getRassenTypeMapping() {
	return getRaceTypes();
}

function getRaceTypes(){
	if(count($GLOBALS['char_buffered_race_types']) == 0) {
		foreach($GLOBALS['TMP_DB_TABLE_RACE_TYPE'] as $racetype) {
			$GLOBALS['char_buffered_race_types'][$racetype['id']] = $racetype;
		}
	}
	return $GLOBALS['char_buffered_race_types'];
}

function getRaceById($id) {
	$races = getRassen();
	return $races[$id];
}

function getRaceByName($name) {
	// TODO: Improve performance for this
	$races = getRaces();
	foreach($races as $race) {
		if($race['name'] == $name) {
			return $race;
		}
	}
	return NULL;
}

function getRacesByType($type) {
	$races = getRaces();
	$result = array();
	foreach($races as $race) {
		if($race['type'] == $type['id']) {
			$result[] = $race;
		}
	}
	return $result;
}

function getRaceTypeById($id) {
	$types = getRaceTypes();
	return $types[$id];
}

function getRaceTypeName($name) {
	$types = getRaceTypes();
	foreach($types as $type) {
		if($type['name'] == $name) {
			return $type;
		}
	}
	return NULL;
}

function getSpecialRaceIds() {
	$races = getRaces();
	$result = array();
	foreach($races as $race) {
		if($race['special']) {
			$result[] = $race;
		}
	}
	return $result;
}

#print_r(getRassen());

#print_r(getRaceById(1));

#print_r(getRaceByName('Dämon'));