} // Переносим влияние параметров друг на друга foreach ($delta_flu as $param => $value) { $_SESSION['diag'][$param] += $value; } // Переносим изменения от лекарств foreach ($delta_influable as $param => $value) { $_SESSION['diag'][$param] += $value; } // Возможно - меняем АД гап if (rand(0, 10) > 5) { boundAdd($_SESSION['diag']['AD_gap'], 0.01 * rand(-1, 1), 1.4, 1.6); } foreach ($_SESSION['systems'] as $system => &$system_data) { $system_data['html_color'] = rgb2html100($system_data['color']); $system_data['stress_color'] = polynom_value($system_data['stress'], array(0 => '#00CC00', 800 => '#FF0000', 1000 => '#000000', 1001 => '#000000')); $system_data['crit_range'] = round(Vect::length(Vect::diffVector($system_data['color'], $_SESSION['crit_color'])), 1); } // Определяем предположительные диагностические значения $est_range = Autodoc::$estimate_range; foreach ($est_range as $param => &$value) { // if ($param != 'temp') continue; $value *= $_SESSION['blood']['lost'] / 1000; if ($param == 'temp') { $value = round($value, 1); } else { $value = round($value); } // value - длина диапазона // Не нужен разброс if ($param == 'temp' && $value <= 0.1 || $value <= 1) {
public static function getDiagColor($param, $value) { $value_colors = array('low_death' => '#000000', 'low_terminal' => '#FF0000', 'low_norm' => '#00DD00', 'high_norm' => '#00DD00', 'high_terminal' => '#FF0000', 'high_death' => '#000000'); $levels = Autodoc::$diag_results[$param]['levels']; foreach ($levels as $level => $num) { $arr[$num] = $value_colors[$level]; } $vals = array_keys($arr); if ($value <= min($vals) || $value >= max($vals)) { return '#000000'; } $arr[($levels['low_terminal'] + $levels['low_norm']) / 2] = '#DDDD00'; $arr[($levels['high_terminal'] + $levels['high_norm']) / 2] = '#DDDD00'; ksort($arr); return polynom_value($value, $arr); }