wootook-reloaded/includes/raketenangriff.php
Gregory PLANCHAT ec7e40e1aa Refactored to 2 namespaces: Wootook & Legacies
Signed-off-by: Gregory PLANCHAT <g.planchat@gmail.com>
2011-10-04 19:57:00 +02:00

161 lines
No EOL
5.6 KiB
PHP
Raw Blame History

<?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
?>