Warning: include_once(/var/www/html/pmwiki-2.2.86/cookbook/soap4pmwiki/soap4pmwiki.php): failed to open stream: No such file or directory in /var/www/html/fields/dbp09/local/config.php on line 4

Warning: include_once(): Failed opening '/var/www/html/pmwiki-2.2.86/cookbook/soap4pmwiki/soap4pmwiki.php' for inclusion (include_path='.:/opt/php/lib/php') in /var/www/html/fields/dbp09/local/config.php on line 4

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/fields/dbp09/local/config.php:4) in /var/www/html/pmwiki-2.2.86/pmwiki.php on line 1250
Datenbankpraktikum SS 2009 - Gruppe 1 - Backend-kampfsystem

Kampfsystem

Kurzbeschreibung

Das Kampfsystem wertet Angriffe aus und aktualisiert die beteiligten Flotten. Dabei werden mit Hilfe von Formeln und einer Kampfmatrix zunächst die jeweiligen Stärken ermittelt und daraus eine dementsprechende Verlustberechnung durchgeführt.

Funktionalität

Zur Berechnung eines Kampfes wird nur das Troopmovement des Angreifers benötigt, denn dort sind sowohl die Schiffe des Angreifers als auch der Zielplanet enthalten, über welchen man auf die sich dort befindlichen Schiffe und Verteidigungsanlagen zugreifen kann. Wenn durch den Ticker ermittelt wird das die Ankunftszeit erreicht worden ist, wird der BackendFightController aufgerufen. Jeder Schiffstyp hat eine bestimmte Angriffskraft, welche in der Moduldatei rules_and_regulations.rb hinterlegt ist. Ein Raumschiff kann in verschiedenen Stufen gebaut werden, wobei die Angriffsstärke dementsprechend ansteigt.

Die Berechnung der Stärken von Angreifer und Verteidiger geschieht analog. Dabei wird zunächst ein Array erzeugt, welches die summierten Angriffsstärken der jeweiligen Schiffstypen enthält, wobei auch die jeweilige Stufe berücksichtigt wird. Diese beiden Arrays werden nun mit Hilfe der Kampfformel und der Kampfmatrix miteinader verknüpft. In dieser Kampfmatrix sind die Stärken der Schiffe gegen jeweils andere Schiffstypen aufgeführt. Dabei erhält man die jeweilige Angriffsstärke der Angreiferflotte gegenüber der Verteidigerflotte bzw. umgekehrt.

Kampfmatrix M:

JägerBomberKreuzerSchlachtschiffZerstörer
Jäger15111
Bomber11121,3
Kreuzer1,21,1111
Schlachtschiff111,211,4
Zerstörer111,41,11

Kampfformeln:

als Angriffswert für den Angreifer und
als Angriffswert für den Angegriffenen.

A: Angriffsstärkenarray
B: Verteidigerstärkenarray

In diese zwei Angriffswerte fließen nun noch die Technologie, die Taktik und die Rasse der jeweiligen Spieler ein, welche wiederum Boni oder Mali bedeuten können. Außerdem werden die Verteidigungsanlagen auf dem Angegriffenem Planeten(falls vorhanden) mit in die Kampfkräfte einbezogen. Ein "Laser" bedeutet zusätzliche Angriffskraft des Verteidigers, ein "Schutzschild" Verlust von Angriffskraft des Angreifers. Wenn diese Berechnungen erfolgt sind, liegen uns zwei Angriffswerte vor, die Flotte mit dem höherem Wert wird als Sieger aus dem Kampf hervorgehen.

Darauf folgt die Verlustberechnung, bei der wir uns darauf geeinigt haben, dass der Verlierer der Schlacht seine gesammte Flotte verliert. Die Flotte des Gewinners wird einer Verlustberechnung unterzogen. Bei einem Unentschieden verliert der Angreifer seine gesammte Flotte und der Verteidiger all seine Kriegsschiffe. Transporter, Kolonieschiffe und ähnliches werden jedoch verschont.
Bei der Verlustberechnung der Gewinnerflotte wird von jedem Schiffstyp der gleiche prozentuale Anteil zerstört. Dieser Prozentsatz wird über eine Formel ermittelt, welche durch die Kräftedifferenz der Flotten beeinflusst wird.

Beide beteiligten User bekommen einen Kampfbericht über den AUsgang der Schlacht zugesendet. Im Bericht des Verlierers wird nur darüber informiert dass die gesammte Flotte beim Angriff zerstört worden ist und ob der Planet eingenommen wurde. Im Bericht des Gewinners werden die eigenen Verluste angezeigt, eventuell erbeutete Rohstoffe und ob der Planet erobert werden konnte.


Page last modified on August 23, 2009, at 03:29 PM