/** * @param \Likedimion\Tools\Helper\PlayerDataHelper $playerData * @throws \Likedimion\Exception\RegistrationException * @return Player */ public function createPlayer(PlayerDataHelper $playerData) { try { $findPlayer = $this->playerService->getRepository()->findPlayerByName($playerData->name); throw new RegistrationException("player_name_exists"); } catch (EntityNotFoundException $e) { $player = new Player(); $player->setName($playerData->name); $player->setSex($playerData->sex); $player->setClass($playerData->class); $player->setRace($playerData->race); $stats = $player->getStats(); $cfg = Game::getInstance()->getConfig(); $stats->setStrenge($cfg["new_player"][$player->getClass()]["str"]); $stats->setDexterity($cfg["new_player"][$player->getClass()]["dex"]); $stats->setIntelligence($cfg["new_player"][$player->getClass()]["int"]); $stats->setSpirituality($cfg["new_player"][$player->getClass()]["spr"]); $stats->setEndurance($cfg["new_player"][$player->getClass()]["end"]); $player->setStats($stats); $this->playerCalculatingService->calculate($player); $this->playerService->getRepository()->save($player); $account = $this->authService->getAccount(Game::getInstance()->getAuthToken()->getValue()); $player->setAccount($account); $this->accountService->getRepository()->save($account); $this->playerService->getRepository()->save($player); return $player; } }
/** * @param Player $object * @return mixed */ public function calculate($object) { $stats = $object->getStats(); $charParameters = $object->getCharParameters(); $warParameters = $object->getWar(); $maxLife = ($stats->getEndurance() + $stats->getStrenge()) * 10 + 10 * $charParameters->getLevel(); $maxMana = $stats->getIntelligence() * 10 + 10 * $charParameters->getLevel(); $charParameters->setMaxLife($maxLife); $charParameters->setMaxMana($maxMana); if ($charParameters->getLife() === null) { $charParameters->setLife($charParameters->getMaxLife()); } if ($charParameters->getMana() === null) { $charParameters->setMana($charParameters->getMaxMana()); } $object->setCharParameters($charParameters); }