Esempio n. 1
0
 /**
  * считает кол-во очков у ивента
  * @param $event DotaEvent
  */
 public static function calculateScores($event)
 {
     $params = DotaParams::loadParams();
     $hero_ids = [];
     foreach ($event->dotaEventHeroStat as $hero) {
         $hero_ids[] = $hero->hero_id;
     }
     $hero_roles = DotaHero::getHeroesRolesList($hero_ids);
     //echo'<pre>';print_r($hero_roles);echo'</pre>';//die;
     //echo'<pre>';print_r($event->dotaEventHeroStat);echo'</pre>';die;
     foreach ($event->dotaEventHeroStat as $hero) {
         $level = $hero->level + $hero->level_corr;
         $kills = $hero->kills + $hero->kills_corr;
         $deaths = $hero->deaths + $hero->deaths_corr;
         $assists = $hero->assists + $hero->assists_corr;
         $gold_per_min = $hero->gold_per_min + $hero->gold_per_min_corr;
         $xp_per_min = $hero->xp_per_min + $hero->xp_per_min_corr;
         $bans = $hero->bans + $hero->bans_corr;
         $picks = $hero->picks + $hero->picks_corr;
         $scores = $level * $hero_roles[$hero->hero_id] + $kills * $params['ratio_kills'] + $deaths * $params['ratio_deaths'] + $assists * $params['ratio_assists'] + $gold_per_min * $params['ratio_gold_per_min'] + $xp_per_min * $params['ratio_xp_per_min'] + $bans * $params['scores_per_ban'] + $picks * $params['scores_per_pick'];
         //$scores = ($kills * $params['ratio_kills']) + ($deaths * $params['ratio_deaths']) + ($assists * $params['ratio_assists']) + ($gold_per_min * $params['ratio_gold_per_min']) + ($xp_per_min * $params['ratio_xp_per_min']);
         $hero->scores = $scores;
         $hero->save();
     }
 }