public static function getInstance() { if (!isset(self::$Instance)) { self::$Instance = new self(); } return self::$Instance; }
public function __construct($player_id) { PlayerData::getInstance()->setId($player_id); $this->name = PlayerData::getInstance()->getName(); $this->paramaters = PlayerData::getInstance()->getParam(); $this->hp = $this->paramaters['hp']; $this->atk = $this->paramaters['atk']; $this->def = $this->paramaters['def']; $this->mp = $this->paramaters['mp']; $this->actions = PlayerData::getInstance()->getAction(); }
/** * 赋予经验值 * @param $intExp * @return bool */ public function appendExp($intExp) { // 取得用户数据实例 $objPlayerData = PlayerData::find($this->id); // 总计经验值取得 $intTotalExp = $objPlayerData->exp + $intExp; // 新等级检索 TODO Index $objNewLevel = PlayerLevel::where('exp', '<=', $intTotalExp)->orderBy('level', 'DESC')->first(); // 经验值赋予 $objPlayerData->exp = $intTotalExp; // 是否升级 $isLevelUp = false; // 是否升级 if ($objNewLevel->level > $objPlayerData->level) { $objPlayerData->level = $objNewLevel->level; $isLevelUp = $objPlayerData->level; } // 保存 TODO Transaction if ($objPlayerData->save()) { return $isLevelUp; } else { return false; } }