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 @@
| 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} | +
-