Exemple #1
0
 public static function normalizeVector($arr, $to_len = 1)
 {
     $len = Vect::length($arr) / $to_len;
     if ($len) {
         return array($arr[0] / $len, $arr[1] / $len, $arr[2] / $len);
     } else {
         return array(0, 0, 0);
     }
     print_r(debug_backtrace());
     die('Division by zero');
 }
Exemple #2
0
// Переносим влияние параметров друг на друга
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) {
        $out = $_SESSION['diag'][$param];
Exemple #3
0
 public static function getDamageQuot($system)
 {
     $length = Vect::length(Vect::diffVector($_SESSION['systems'][$system]['color'], $_SESSION['crit_color']));
     if ($length == 0) {
         return Autodoc::MAX_TOOL_DAMAGE_QUOTIENT;
     }
     return min(Autodoc::MAX_TOOL_DAMAGE_QUOTIENT, Autodoc::TOOL_COLOR_DAMAGE_BASE / $length);
 }