public function create_object($data) { $data = \Core\Dict::create($data); $assassin = Agent::mapper()->create_object(array('id' => $data->assassin, 'alias' => $data->assassin_agent_alias)); $target = Agent::mapper()->create_object(array('id' => $data->target, 'alias' => $data->target_agent_alias)); $weapon = Weapon::mapper()->create_object(array('id' => $data->weapon_id, 'name' => $data->weapon_name)); return Kill::create(array('id' => $data->id, 'description' => $data->description, 'assassin' => $assassin, 'target' => $target, 'weapon' => $weapon, 'game' => $game, 'when_happened' => new \DateTime($data->when_happened)), True); }
/** * Kill the target of $agent_id. * @param $agent_id The Agent ID of the <b>hunter</b>. */ public function kill_agent_target($agent_id, array $kill_data) { $this->_check_players_loaded(); if ($this->state == 0) { throw new GameNotStartedError(); } if ($this->state == 2) { throw new GameEndedError(); } $this->_storage = \Core\Storage::container()->get_storage('Player'); $player = $this->get_player($agent_id); $target = $this->_get_player_from_cycle($player->target); $kill_data['target'] = $target['id']; $kill_data['assassin'] = $player['id']; $kill_data['game'] = $this->id; $kill = Kill::create($kill_data); $kill->check_valid_date($this->start_date, $this->end_date); $this->_kill_player($target, $kill_data['pkn']); \Core\Storage::container()->get_storage('Kill')->save($kill); }