diff --git a/mojotrollz/api/char/charcreation.php b/mojotrollz/api/char/charcreation.php index c5ed73a..7d79274 100644 --- a/mojotrollz/api/char/charcreation.php +++ b/mojotrollz/api/char/charcreation.php @@ -1,11 +1,12 @@ $value){ + if(method_exists('charcreation_validator','is_'.$key)){ + $result[$key.'_ok'] = call_user_func('charcreation_validator::is_'.$key,$value);} + } + + return $result; + } + private static function session_default(){ return array( 'char_name' => self::DEFAULT_CHAR_NAME, 'char_gender' => self::DEFAULT_CHAR_GENDER, @@ -34,7 +58,7 @@ class charcreation { 'char_skill_tree' => 0, 'char_equip' => 0, 'char_guild' => 0, - 'char_spawn' => 0);} + 'char_spawn' => self::DEFAULT_CHAR_SPAWN);} public static function checkClassRace($class,$race){ switch($race){ diff --git a/mojotrollz/api/char/charcreation_validator.php b/mojotrollz/api/char/charcreation_validator.php index 08c5ebe..e705bea 100644 --- a/mojotrollz/api/char/charcreation_validator.php +++ b/mojotrollz/api/char/charcreation_validator.php @@ -1,72 +1,110 @@ 2) && !preg_match('/[^A-Za-z]/',$value);} public static function char_name($value){ $data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY); - if( strlen($value) > 12 || //strlen($value) < 2 || - preg_match('/[^A-Za-z]/',$value)){ - $data['char_name'] = charcreation::DEFAULT_CHAR_NAME; - } else { - $data['char_name'] = $value;} + $data['char_name'] = self::is_char_name($value) ? $value : charcreation::DEFAULT_CHAR_NAME; \SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data); } + public static function is_char_gender($value){ + return ($value == ('female' || 'male'));} public static function char_gender($value){ $data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY); - $data['char_gender'] = ($value == ('female' || 'male')) ? $value : charcreation::DEFAULT_CHAR_GENDER; + $data['char_gender'] = self::is_char_gender($value) ? $value : charcreation::DEFAULT_CHAR_GENDER; \SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data); } + + public static function is_char_race($value){ + return player_races::is($value);} public static function char_race($value){ $data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY); $data['char_race'] = $value; - if(!charcreation::checkClassRace($data['char_class'], $data['char_race'])){ + if(!is_char_race($value) || !charcreation::checkClassRace($data['char_class'], $data['char_race'])){ $data['char_class'] = charcreation::DEFAULT_CHAR_CLASS;} \SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data); } + + public static function is_char_class($value){ + return player_classes::is($value);} public static function char_class($value){ $data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY); $data['char_class'] = $value; - if(!charcreation::checkClassRace($data['char_class'], $data['char_race'])){ + if(!self::is_char_class($value) || !charcreation::checkClassRace($data['char_class'], $data['char_race'])){ $data['char_race'] = charcreation::DEFAULT_CHAR_RACE;} \SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data); } + public static function is_char_skin_color($value){ + return true;} public static function char_skin_color($value){ $data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY); $data['char_skin_color'] = $value; \SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data); } + + public static function is_char_hair($value){ + return true;} public static function char_hair($value){ $data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY); $data['char_hair'] = $value; \SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data); } + + public static function is_char_hair_color($value){ + return true;} public static function char_hair_color($value){ $data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY); $data['char_hair_color'] = $value; \SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data); } + public static function is_char_face($value){ + return true;} public static function char_face($value){ $data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY); $data['char_face'] = $value; \SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data); } + + public static function is_char_facial_hair($value){ + return true;} public static function char_facial_hair($value){ $data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY); $data['char_facial_hair'] = $value; \SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data); } + + public static function is_char_facial_hair_color($value){ + return true;} public static function char_facial_hair_color($value){ $data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY); $data['char_facial_hair_color'] = $value; \SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data); } + public static function is_char_skill_tree($value){ + return false;} public static function char_skill_tree($value){} + + public static function is_char_equip($value){ + return false;} public static function char_equip($value){} + + public static function is_char_guild($value){ + return false;} public static function char_guild($value){} + + public static function is_char_spawn($value){ + return player_spawns::is($value);} public static function char_spawn($value){ $data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY); - $data['char_spawn'] = $value; + if((player_races::is_horde($data['char_race']) && player_spawns::is_horde($value)) || + (player_races::is_alliance($data['char_race']) && player_spawns::is_alliance($value)) ){ + $data['char_spawn'] = $value; + } else { + $data['char_spawn'] = charcreation::DEFAULT_CHAR_SPAWN; + } \SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data); } } \ No newline at end of file diff --git a/mojotrollz/api/database/player_races.php b/mojotrollz/api/database/player_races.php index bbce732..cf715e7 100644 --- a/mojotrollz/api/database/player_races.php +++ b/mojotrollz/api/database/player_races.php @@ -47,8 +47,8 @@ class player_races { } } - public static function is($class){ - switch($class){ + public static function is($race){ + switch($race){ case self::HUMAN: case self::ORC: case self::DWARF: @@ -62,4 +62,28 @@ class player_races { return false; } } + + public static function is_horde($race){ + switch($race){ + case self::ORC: + case self::SCOURGE: + case self::TAUREN: + case self::TROLL: + return true; + default: + return false; + } + } + + public static function is_alliance($race){ + switch($race){ + case self::HUMAN: + case self::DWARF: + case self::NIGHTELF: + case self::GNOME: + return true; + default: + return false; + } + } } \ No newline at end of file diff --git a/mojotrollz/api/database/player_spawns.php b/mojotrollz/api/database/player_spawns.php index 97ede34..dcf5956 100644 --- a/mojotrollz/api/database/player_spawns.php +++ b/mojotrollz/api/database/player_spawns.php @@ -41,10 +41,32 @@ class player_spawns { switch($city){ case self::UNDERCITY: case self::IRONFORGE: - case self::STROMWIND: + case self::STORMWIND: case self::DARNASSUS: case self::ORGRIMMAR: - case self::THUNDERBLUF: + case self::THUNDERBLUFF: + return true; + default: + return false; + } + } + + public static function is_horde($city){ + switch($city){ + case self::UNDERCITY: + case self::ORGRIMMAR: + case self::THUNDERBLUFF: + return true; + default: + return false; + } + } + + public static function is_alliance($city){ + switch($city){ + case self::IRONFORGE: + case self::STORMWIND: + case self::DARNASSUS: return true; default: return false; diff --git a/mojotrollz/files/wowicons/fail.png b/mojotrollz/files/wowicons/fail.png new file mode 100644 index 0000000..307090a Binary files /dev/null and b/mojotrollz/files/wowicons/fail.png differ diff --git a/mojotrollz/files/wowicons/ok.png b/mojotrollz/files/wowicons/ok.png new file mode 100644 index 0000000..e5c63fa Binary files /dev/null and b/mojotrollz/files/wowicons/ok.png differ diff --git a/mojotrollz/files/wowicons/ok_summary.png b/mojotrollz/files/wowicons/ok_summary.png new file mode 100644 index 0000000..8cf9a5e Binary files /dev/null and b/mojotrollz/files/wowicons/ok_summary.png differ diff --git a/mojotrollz/page/wizard_summary/tpl/summary.tpl b/mojotrollz/page/wizard_summary/tpl/summary.tpl index 5726e38..2f84a48 100644 --- a/mojotrollz/page/wizard_summary/tpl/summary.tpl +++ b/mojotrollz/page/wizard_summary/tpl/summary.tpl @@ -1,77 +1,72 @@
-

Summary

+

Summary

- - + - + - + - + - + - + - + - + - + - + - + - + - +
Name ${char_name}${char_name_ok}
Gender ${char_gender_ok}
Race ${char_race_ok}
Class ${char_class_ok}
Skin Color ${char_skin_color}${char_skin_color_ok}
Hair ${char_hair}${char_hair_ok}
Hair Color ${char_hair_color}${char_hair_color_ok}
Face ${char_face}${char_face_ok}
Facial Hair ${char_facial_hair}${char_facial_hair_ok}
Facial Hair Color ${char_facial_hair_color}${char_facial_hair_color_ok}
Skill Tree ${char_skill_tree}${char_skill_tree_ok}
Guild ${char_guild}${char_guild_ok}
Spawn ${char_spawn_ok}
\ No newline at end of file diff --git a/mojotrollz/page/wizard_summary/wizard_summary.php b/mojotrollz/page/wizard_summary/wizard_summary.php index dfe464e..c6ff08a 100644 --- a/mojotrollz/page/wizard_summary/wizard_summary.php +++ b/mojotrollz/page/wizard_summary/wizard_summary.php @@ -2,7 +2,14 @@ class wizard_summary extends SYSTEM\PAGE\Page { public function html(){ - $vars = charcreation::data(NULL,false); + $vars = charcreation::check(); + foreach($vars as $key=>$value){ + if($value){ + $vars[$key] = 'ok'; + } else { + $vars[$key] = 'fail';} + } + $vars = array_merge($vars,charcreation::data(NULL,false)); $vars['char_skin_color'] = \DBD\RACE_VISUALS_BY_ID::Q1(array($vars['char_race'],race_visuals::VISUAL_SKIN,$vars['char_skin_color']))['name']; $vars['char_hair'] = \DBD\RACE_VISUALS_BY_ID::Q1(array($vars['char_race'],race_visuals::VISUAL_HAIR,$vars['char_hair']))['name']; @@ -15,6 +22,7 @@ class wizard_summary extends SYSTEM\PAGE\Page { $vars['char_class'] = player_classes::name($vars['char_class']); $vars['char_spawn'] = player_spawns::name($vars['char_spawn']); + $vars['WOWICONS'] = \SYSTEM\FILES\files::getURL('wowicons'); $vars['WOW_GENDER'] = \SYSTEM\FILES\files::getURL('gender'); $vars['WOW_RACE'] = \SYSTEM\FILES\files::getURL('race'); $vars['WOW_CLASS'] = \SYSTEM\FILES\files::getURL('class'); diff --git a/mojotrollz/page/wizard_toolbar/tpl/wizard_toolbar.tpl b/mojotrollz/page/wizard_toolbar/tpl/wizard_toolbar.tpl index 4e80a34..bd0c73c 100644 --- a/mojotrollz/page/wizard_toolbar/tpl/wizard_toolbar.tpl +++ b/mojotrollz/page/wizard_toolbar/tpl/wizard_toolbar.tpl @@ -6,5 +6,5 @@ - + \ No newline at end of file diff --git a/mojotrollz/page/wizard_toolbar/wizard_toolbar.php b/mojotrollz/page/wizard_toolbar/wizard_toolbar.php index 730b80a..b833341 100644 --- a/mojotrollz/page/wizard_toolbar/wizard_toolbar.php +++ b/mojotrollz/page/wizard_toolbar/wizard_toolbar.php @@ -18,6 +18,7 @@ class wizard_toolbar extends SYSTEM\PAGE\Page { $vars['char_class'] = player_classes::name($vars['char_class']); $vars['char_race'] = player_races::name($vars['char_race']); $vars['char_spawn'] = player_spawns::name($vars['char_spawn']); + $vars['char_summary'] = charcreation::check_all() ? 'ok_summary' : 'default'; $vars['last'] = $this->last; $vars['next'] = $this->next; $vars['WOWICONS'] = \SYSTEM\FILES\files::getURL('wowicons');