161 lines
No EOL
5.6 KiB
PHP
161 lines
No EOL
5.6 KiB
PHP
<?php
|
||
/**
|
||
* This file is part of Wootook
|
||
*
|
||
* @license http://www.gnu.org/licenses/gpl-3.0.txt
|
||
* @see http://www.wootook.com/
|
||
*
|
||
* Copyright (c) 2009-Present, Wootook Support Team <http://www.xnova-ng.org>
|
||
* All rights reserved.
|
||
*
|
||
* This program is free software: you can redistribute it and/or modify
|
||
* it under the terms of the GNU General Public License as published by
|
||
* the Free Software Foundation, either version 3 of the License, or
|
||
* (at your option) any later version.
|
||
*
|
||
* This program is distributed in the hope that it will be useful,
|
||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
* GNU General Public License for more details.
|
||
*
|
||
* You should have received a copy of the GNU General Public License
|
||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||
*
|
||
* --> NOTICE <--
|
||
* This file is part of the core development branch, changing its contents will
|
||
* make you unable to use the automatic updates manager. Please refer to the
|
||
* documentation for further information about customizing Wootook.
|
||
*
|
||
*/
|
||
|
||
function raketenangriff($verteidiger_panzerung, $angreifer_waffen, $iraks, $def, $primaerziel = '0') {
|
||
// Variablen initialisieren
|
||
$temp = '';
|
||
$temp2 = '';
|
||
|
||
$def[10] = $iraks;
|
||
|
||
$metall = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||
$kristall = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||
$deut = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||
$verblieben = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||
|
||
for($temp = 0; $temp < 11; $temp++) {
|
||
$verblieben[$temp] = $def[$temp];
|
||
}
|
||
|
||
$kaputt = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||
|
||
$hull = Array();
|
||
|
||
$hull[0] = 200 * (1 + $verteidiger_panzerung / 10);
|
||
$hull[1] = $hull[0];
|
||
$hull[2] = 800 * (1 + ($verteidiger_panzerung / 10));
|
||
$hull[3] = 3500 * (1 + ($verteidiger_panzerung / 10));
|
||
$hull[4] = $hull[2];
|
||
$hull[5] = 10000 * (1 + ($verteidiger_panzerung / 10));
|
||
$hull[6] = 2000 * (1 + ($verteidiger_panzerung / 10));
|
||
$hull[7] = $hull[5];
|
||
$hull[8] = 1500 * (1 + ($verteidiger_panzerung / 10));
|
||
|
||
$metall_cost_tab = Array( 2, 1.5, 6, 20, 2, 50, 10, 50, 12.5, 8);
|
||
$kristall_cost_tab = Array( 0, 0.5, 2, 15, 6, 50, 10, 50, 2.5, 0);
|
||
$deut_cost_tab = Array( 0, 0, 0, 2, 0, 30, 0, 0, 10.0, 2);
|
||
|
||
$schaden = floor(($def[10] - $def[9]) * (12000 * (1 + ($angreifer_waffen / 10))));
|
||
if ($schaden < 0)
|
||
$schaden = 0;
|
||
|
||
switch ($primaerziel) {
|
||
case 0:
|
||
$beschussreihenfolge = Array(0, 1, 2, 3, 4, 5, 6, 7, 8);
|
||
break;
|
||
case 1:
|
||
$beschussreihenfolge = Array(1, 0, 2, 3, 4, 5, 6, 7, 8);
|
||
break;
|
||
case 2:
|
||
$beschussreihenfolge = Array(2, 0, 1, 3, 4, 5, 6, 7, 8);
|
||
break;
|
||
case 3:
|
||
$beschussreihenfolge = Array(3, 0, 1, 2, 4, 5, 6, 7, 8);
|
||
break;
|
||
case 4:
|
||
$beschussreihenfolge = Array(4, 0, 1, 2, 3, 5, 6, 7, 8);
|
||
break;
|
||
case 5:
|
||
$beschussreihenfolge = Array(5, 0, 1, 2, 3, 4, 6, 7, 8);
|
||
break;
|
||
case 6:
|
||
$beschussreihenfolge = Array(6, 0, 1, 2, 3, 4, 5, 7, 8);
|
||
break;
|
||
case 7:
|
||
$beschussreihenfolge = Array(7, 0, 1, 2, 3, 4, 5, 6, 8);
|
||
break;
|
||
case 8:
|
||
$beschussreihenfolge = Array(0, 1, 2, 3, 4, 5, 6, 7, 8);
|
||
break;
|
||
}
|
||
// Simulation
|
||
// das Einfachste: I-Raks und Abfangraks ausrechnen...
|
||
$verblieben[10] = 0;
|
||
$kaputt[10] += $def[10];
|
||
$metall[10] += $kaputt[10] * $metall_cost_tab[8];
|
||
$kristall[10] += $kaputt[10] * $kristall_cost_tab[8];
|
||
$deut[10] += $kaputt[10] * $deut_cost_tab[8];
|
||
|
||
$verblieben[9] = ($def[9] - $def[10]);
|
||
if ($verblieben[9] < 0)
|
||
$verblieben[9] = 0;
|
||
|
||
$kaputt[11] = $def[9] - $verblieben[9];
|
||
$kaputt[9] += ($def[9] - $verblieben[9]);
|
||
$metall[9] += $kaputt[9] * $metall_cost_tab[9];
|
||
$kristall[9] += $kaputt[9] * $kristall_cost_tab[9];
|
||
$deut[9] += $kaputt[9] * $deut_cost_tab[9];
|
||
$metall[11] += $metall[9];
|
||
$kristall[11] += $kristall[9];
|
||
$deut[11] += $deut[9];
|
||
// und jetzt der Reihe nach alles ABKNALLEN!!!
|
||
for($temp = 0; $temp < 9; $temp++) {
|
||
if ($schaden >= ($hull[$beschussreihenfolge[$temp]] * $def[$beschussreihenfolge[$temp]])) {
|
||
$kaputt[$beschussreihenfolge[$temp]] += $def[$beschussreihenfolge[$temp]];
|
||
|
||
$verblieben[$beschussreihenfolge[$temp]] = 0;
|
||
|
||
$schaden -= ($hull[$beschussreihenfolge[$temp]] * $kaputt[$beschussreihenfolge[$temp]]);
|
||
} else {
|
||
$kaputt[$beschussreihenfolge[$temp]] += floor($schaden / $hull[$beschussreihenfolge[$temp]]);
|
||
|
||
$schaden -= $kaputt[$beschussreihenfolge[$temp]] * $hull[$beschussreihenfolge[$temp]];
|
||
|
||
$verblieben[$beschussreihenfolge[$temp]] = ($def[$beschussreihenfolge[$temp]] - $kaputt[$beschussreihenfolge[$temp]]);
|
||
}
|
||
|
||
$metall[$beschussreihenfolge[$temp]] += $kaputt[$beschussreihenfolge[$temp]] * $metall_cost_tab[$beschussreihenfolge[$temp]];
|
||
$kristall[$beschussreihenfolge[$temp]] += $kaputt[$beschussreihenfolge[$temp]] * $kristall_cost_tab[$beschussreihenfolge[$temp]];
|
||
$deut[$beschussreihenfolge[$temp]] += $kaputt[$beschussreihenfolge[$temp]] * $deut_cost_tab[$beschussreihenfolge[$temp]];
|
||
|
||
$verblieben[11] += $verblieben[$beschussreihenfolge[$temp]];
|
||
$kaputt[11] += $kaputt[$beschussreihenfolge[$temp]];
|
||
$metall[11] += $metall[$beschussreihenfolge[$temp]];
|
||
$kristall[11] += $kristall[$beschussreihenfolge[$temp]];
|
||
$deut[11] += $deut[$beschussreihenfolge[$temp]];
|
||
}
|
||
|
||
$return = array();
|
||
|
||
$return['verbleibt'] = $verblieben; // <20>brige Def
|
||
$return['zerstoert'] = $kaputt; // Zerst<73>rte Def
|
||
$return['verluste_metall'] = $metall; // Gesamtverluste Metall
|
||
$return['verluste_kristall'] = $kristall; // Gesamtverluste Kristall
|
||
$return['verluste_deuterium'] = $deut; // Gesamtverluste Deuterium
|
||
|
||
return $return;
|
||
}
|
||
|
||
// 11 => Immer gesamt
|
||
// Copyright (c) 2007 by -= MoF =- for Deutsches UGamela Forum
|
||
// Date N/A
|
||
// Open Source
|
||
|
||
?>
|