<?php
$result['gdata'] = array (
'turn' =>
array (
'number' => 1,
'time' => 1742734046,
'step' =>
array (
27 => 1,
1 => 0,
),
'skip' =>
array (
27 => 0,
1 => 0,
),
),
'robot' =>
array (
'active' =>
array (
27 => 'first',
1 => 'first',
),
'destroyed' =>
array (
27 => 1,
1 => 0,
),
),
'info' =>
array (
27 =>
array (
'first' =>
array (
'hp' => 11,
'energy' => 28,
'heat' => 37,
'recharge' => 9,
'cool' => 11,
'armor' =>
array (
0 => 49,
1 => 17,
2 => 17,
),
'max_heat' => 67,
'max_energy' => 65,
'use' =>
array (
'top_weapon' =>
array (
's1' => 1,
),
),
),
),
1 =>
array (
'first' =>
array (
'hp' => -34,
'energy' => 65,
'heat' => 41,
'recharge' => 9,
'cool' => 1,
'armor' =>
array (
0 => 49,
1 => 17,
2 => 17,
),
'max_heat' => 54,
'max_energy' => 65,
'use' =>
array (
),
),
),
),
'pos' =>
array (
27 =>
array (
'p' => 2,
'd' => 'r',
),
1 =>
array (
'p' => 7,
'd' => 'l',
),
),
'role' =>
array (
27 => 1,
1 => 3,
),
);
$result['bdata'] = array (
'type' => 1,
'hash' => '!kxEQ3tbMBsS',
'pos' =>
array (
27 =>
array (
'p' => 2,
'd' => 'r',
),
1 =>
array (
'p' => 7,
'd' => 'l',
),
),
'bot' =>
array (
1 => 1,
),
'users' =>
array (
27 =>
array (
'selected' =>
array (
'select' =>
array (
1 => 1,
),
'start' => 1,
),
'prgs' =>
array (
'level' => 100,
'xp' => 56796,
'all_xp' => 343204,
),
),
1 =>
array (
'selected' =>
array (
'select' =>
array (
1 => 1,
),
'start' => 1,
),
'prgs' =>
array (
'level' => 500,
'xp' => 56796,
'all_xp' => 343204,
),
),
),
'info' =>
array (
27 =>
array (
'first' =>
array (
'hp' => 11,
'energy' => 65,
'heat' => 67,
'recharge' => 9,
'cool' => 11,
'armor' =>
array (
0 => 49,
1 => 17,
2 => 17,
),
),
),
1 =>
array (
'first' =>
array (
'hp' => 11,
'energy' => 65,
'heat' => 67,
'recharge' => 9,
'cool' => 11,
'armor' =>
array (
0 => 49,
1 => 17,
2 => 17,
),
),
),
),
'turn' =>
array (
'step' =>
array (
27 => 1,
1 => 0,
),
),
);
$result['hdata'] = array (
1 =>
array (
0 =>
array (
'usr' => 27,
'menu' => 'attack',
'opt' => 'top_weapon',
'slt' => 's1',
'loss' =>
array (
'energy_' => 65,
'energy' => 37,
'max_energy' => 65,
'heat_' => 0,
'heat' => 37,
'max_heat' => 67,
),
'active' =>
array (
27 => 'first',
1 => 'first',
),
'pos' =>
array (
27 =>
array (
'p' => 2,
'd' => 'r',
),
1 =>
array (
'p' => 7,
'd' => 'l',
),
),
'dmg' =>
array (
1 =>
array (
'first' =>
array (
'hp' => 45,
'overheat' => 41,
'reduce' => 13,
'recovery' => 13,
'hp_' => 11,
'heat_' => 0,
'max_heat' => 67,
),
),
),
),
1 =>
array (
0 =>
array (
'usr' => 1,
'state' =>
array (
0 => 12,
1 => 6,
),
),
),
),
);
$reward = [];
foreach (array_keys($result['bdata']['users']) as $uid)
$reward[$uid] = ['dmg' => 0, 'xp' => 0, 'lvl' => 0];
$dbonus = [0 => 1, 1 => 5, 2 => 15, 3 => 25];
foreach ($result['hdata'] as $number => $turn)
foreach ($turn as $action)
foreach ($action as $type => $data)
if ($type === 'dmg') {
foreach ($data as $uid => $dmg) {
$dmg = $dmg[key($dmg)];
$elvl = $result['bdata']['users'][$uid]['prgs']['level'];
$slvl = $result['bdata']['users'][$action['usr']]['prgs']['level'];
$mlvl = $slvl > $elvl ? ($slvl / $elvl) : ($elvl / $slvl) ;
var_dump($elvl);
var_dump($slvl);
// echo PHP_EOL;
var_dump($mlvl);
// var_dump( ($dmg['hp'] / $mlvl) + abs($mlvl) );
// var_dump($result['gdata']["robot"]["destroyed"][$action['usr']]);
$dmg['hp'] = $slvl > $elvl ? $dmg['hp'] / $mlvl : $dmg['hp'] * $mlvl;
$dmg['hp'] += ($dmg['hp'] / 100) * $dbonus[$result['gdata']["robot"]["destroyed"][$action['usr']]];
$dmg['hp'] = (int)floor($dmg['hp']);
$reward[$action['usr']]['xp']+= $dmg['hp'];
}
// (new Func)->logit(serialize($data));
//(new Func)->logit(serialize($action['usr']));
// (new Func)->logit(serialize($type));
// var_dump($action);
// var_dump($data);
// var_dump($type);
//var_dump($action['usr']);
}
echo PHP_EOL;
var_dump($reward);