Example #1
0
 /**
  * Frigjør relasjonene en spiller har i spillet
  * Oppdaterer også ranklisten
  * @param int $previous_level spillernivået før død/deaktivering
  */
 protected function release_relations($previous_level, player $up_attack = null, $instant = null)
 {
     // oppdater ranklisten
     /*if ($previous_level < ess::$g['access_noplay'])
     		\Kofradia\DB::get()->exec("
     			UPDATE users_players, (SELECT up_id ref_up_id FROM users_players WHERE up_points = {$this->data['up_points']} AND up_id != $this->id AND up_access_level < ".ess::$g['access_noplay']." LIMIT 1) ref
     			SET up_rank_pos = GREATEST(1, up_rank_pos - 1) WHERE ref_up_id IS NULL AND up_points < {$this->data['up_points']}");*/
     \Kofradia\DB::get()->exec("UPDATE users_players_rank SET upr_up_access_level = 0 WHERE upr_up_id = {$this->id}");
     ranklist::update();
     $ret = $this->release_relations_low_health(true, $up_attack, $instant);
     // overfør ansvar for bomberom
     $result = \Kofradia\DB::get()->query("\n\t\t\tSELECT up_id\n\t\t\tFROM users_players\n\t\t\tWHERE up_brom_up_id = {$this->id}");
     if ($result->rowCount() > 0) {
         // TODO: skal spilleren som overtar ansvaret få noen beskjed?
         // TODO: hvis ingen overtar ansvaret: skal spilleren som mister ansvarsspiller få beskjed om dette?
         // skal vi gi ansvaret videre?
         $resp = $this->data['up_brom_up_id'] ? "IF(up_id = {$this->data['up_brom_up_id']}, NULL, {$this->data['up_brom_up_id']})" : "NULL";
         // sett nytt ansvar
         \Kofradia\DB::get()->exec("\n\t\t\t\tUPDATE users_players\n\t\t\t\tSET up_brom_up_id = {$resp}\n\t\t\t\tWHERE up_brom_up_id = {$this->id}");
     }
     // fjern ansvaret for denne spilleren
     if ($this->data['up_brom_up_id']) {
         \Kofradia\DB::get()->exec("\n\t\t\t\tUPDATE users_players\n\t\t\t\tSET up_brom_up_id = NULL\n\t\t\t\tWHERE up_id = {$this->id}");
     }
     // fjern fra aktive auksjoner
     auksjon::player_release($this);
     // fjern fra poker
     poker_round::player_dies($this);
     return $ret;
 }