Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App;
- require_once '../vendor/autoload.php';
- use Symfony\Component\VarDumper\VarDumper as dd;
- define('RESTORE_PER_MINUTE', 5);
- define('Pl_file', 'player.json');
- /**
- * Class Player
- * @property Game
- **/
- class Player extends Game
- {
- /**
- * @var Player
- **/
- protected $_player;
- /**
- * Constructing player obj from session
- **/
- public function __construct()
- {
- $this->_player = $this->_checkPlayer();
- }
- /**
- * @return Player|mixed|object
- */
- private function _checkPlayer()
- {
- if (file_exists(Pl_file)) {
- $this->_player = json_decode(
- file_get_contents(Pl_file)
- );
- return $this->_player;
- }
- $player = (object)[
- 'hp' => 100,
- 'energy' => 50,
- 'max_energy' => 50,
- 'mana' => 95,
- 'gold' => 350,
- 'full_at' => '00.00.0000 00:00:00'
- ];
- file_put_contents(Pl_file, json_encode($player));
- $this->_player = $player;
- return $player;
- }
- /**
- * @param $action_id
- * @return mixed
- */
- public function spentEnergy($action_id)
- {
- $actions = [
- 1 => 5,
- 2 => 7,
- 3 => 40
- ];
- if ($actions[$action_id]) {
- $energy = $this->_getPlayerKey('energy');
- $max_energy = $this->_getPlayerKey('max_energy');
- if ($energy >= $actions[$action_id]) {
- $current = $energy - $actions[$action_id];
- $times = ceil(($max_energy - $current) / RESTORE_PER_MINUTE);
- return $this->_setPlayerKey(['energy', 'full_at'], [$current, time() + $times * 60]);
- }
- }
- return false;
- }
- /**
- * @return Player|mixed|object
- */
- public function player()
- {
- return ($this->_checkPlayer());
- }
- /**
- * @param array $keys
- * @param array $values
- * @return int
- */
- private function _setPlayerKey(array $keys, array $values)
- {
- $player = json_decode($_COOKIE['Player']);
- foreach ($keys as $i => $key) {
- $player->{$key} = $values[$i];
- }
- return file_put_contents(Pl_file, json_encode($player));
- }
- /**
- * @param $key
- * @return mixed
- */
- private function _getPlayerKey($key)
- {
- return $this->_player->{$key};
- }
- }
- $player = new Player();
- dd::dump($player->player());
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement