game2006api/webapp/mt/MapMode.php
aozhiwei f608bd4ec8 1
2024-07-09 13:57:29 +08:00

81 lines
1.8 KiB
PHP

<?php
namespace mt;
require_once('mt/ServerTaskTime.php');
require_once('mt/RankSeason.php');
class MapMode
{
const PRACTICE_MODE = 101;
const GOLD_MODE = 201;
const BET_MODE = 301;
const RANKING_MODE = 401;
const TREASURE_BOX_MODE = 501;
public static function find($id){
return getXVal(self::getMetaList(), $id);
}
public static function findByMapMode($modeId){
foreach (self::getMetaList() as $meta){
if ($meta['mapMode'] == $modeId){
return $meta;
}
}
return array();
}
public static function traverseMeta($cb)
{
foreach (self::getMetaList() as $meta) {
if (!$cb($meta)) {
break;
}
}
}
public static function checkLimitTime($meta)
{
switch ($meta['limit_time']) {
case 1:
{
if ($meta['mapMode'] == self::RANKING_MODE) {
$currentSeasonMeta = RankSeason::getCurrentSeason();
if (empty($currentSeasonMeta)) {
return false;
}
}
}
break;
case 2:
{
if ($meta['mapMode'] == self::TREASURE_BOX_MODE) {
$currentServerTask = ServerTaskTime::getCurrentTime();
if (empty($currentServerTask)) {
return false;
}
}
}
break;
default:
{
return true;
}
break;
}
return true;
}
protected static function getMetaList()
{
if (!self::$metaList) {
self::$metaList = getMetaTable('mapMode@mapMode.php');
}
return self::$metaList;
}
protected static $metaList;
}