/* DragoSim Skript by Dragosan: http://www.dragosan.net/dragosim/
  simuliert den rundenbasierten Kampf des Browserspieles Ogame: http://www.ogame.de */

/* Arrays */
// allgemein

var dragosim_name         = new Array();
var dragosim_kbs          = new Array();
var dragosim_spio_kbs     = new Array();
var dragosim_kurz         = new Array();
var dragosim_art          = new Array();

var dragosim_angriff      = new Array();
var dragosim_schild       = new Array();
var dragosim_huelle       = new Array();

var dragosim_metall       = new Array();
var dragosim_kristall     = new Array();
var dragosim_deuterium    = new Array();

var dragosim_transport    = new Array();

// Angreifer

var dragosim_angreifer_anzahl   = new Array();

var dragosim_angreifer_angriff      = new Array();
var dragosim_angreifer_schild       = new Array();
var dragosim_angreifer_huelle       = new Array();

var dragosim_angreifer_objekt           = new Array();
var dragosim_angreifer_schaden          = new Array();
var dragosim_angreifer_rundenschaden    = new Array();
var dragosim_angreifer_rundenschild     = new Array();
var dragosim_angreifer_rundenexplosion  = new Array();

var dragosim_angreifer_runter         = new Array();

// var dragosim_angreifer_insgesamt      = new Array();

// Verteidiger

var dragosim_verteidiger_anzahl   = new Array();

var dragosim_verteidiger_angriff      = new Array();
var dragosim_verteidiger_schild       = new Array();
var dragosim_verteidiger_huelle       = new Array();

var dragosim_verteidiger_objekt           = new Array();
var dragosim_verteidiger_schaden          = new Array();
var dragosim_verteidiger_rundenschaden    = new Array();
var dragosim_verteidiger_rundenschild     = new Array();
var dragosim_verteidiger_rundenexplosion  = new Array();

var dragosim_verteidiger_runter         = new Array();

// var dragosim_verteidiger_insgesamt      = new Array();

/* Variablen */
// allgemein

var dragosim_forschungsbonus, dragosim_maximale_rundenanzahl;
var dragosim_bonus_sp, dragosim_bonus_kr_lj;
var dragosim_explosion_ab, dragosim_exposion_startwert, dragosim_exposion_zunahme;
var dragosim_verteidigung_aus;
var dragosim_runde;
var dragosim_scanbericht_vorhanden = 0;
var dragosim_scanbericht_scan = 0;
var dragosim_scanbericht_metall = 0;
var dragosim_scanbericht_kristall = 0;
var dragosim_scanbericht_deuterium = 0;

var dragosim_runter = 0;

var dragosim_ob = '';
var dragosim_db   = '';
var dragosim_db_angreifer_vorher  = '<span class="kb_angreifer">';
var dragosim_db_angreifer_nachher = '</span>';
var dragosim_db_verteidiger_vorher  = '<span class="kb_verteidiger">';
var dragosim_db_verteidiger_nachher = '</span>';

// Angreifer

var dragosim_angreifer_anzahl_insgesamt, dragosim_angreifer_angriff_insgesamt, dragosim_angreifer_schild_insgesamt, dragosim_angreifer_huelle_insgesamt;
var dragosim_angreifer_angriff_effektiv_insgesamt, dragosim_angreifer_schild_effektiv_insgesamt, dragosim_angreifer_huelle_effektiv_insgesamt;
var dragosim_angreifer_metall_insgesamt, dragosim_angreifer_kristall_insgesamt, dragosim_angreifer_deuterium_insgesamt;

var dragosim_angreifer_transport_insgesamt, dragosim_angreifer_transport_frei, dragosim_angreifer_transport_genutzt, dragosim_scanbericht_metall_erbeutet, dragosim_scanbericht_kristall_erbeutet, dragosim_scanbericht_deuterium_erbeutet;;

var dragosim_angreifer_mehrfach = 0;
var dragosim_angreifer_schildrund = 0;

// Verteidiger

var dragosim_verteidiger_anzahl_insgesamt, dragosim_verteidiger_angriff_insgesamt, dragosim_verteidiger_schild_insgesamt, dragosim_verteidiger_huelle_insgesamt;
var dragosim_verteidiger_angriff_effektiv_insgesamt, dragosim_verteidiger_schild_effektiv_insgesamt, dragosim_verteidiger_huelle_effektiv_insgesamt;
var dragosim_verteidiger_metall_insgesamt, dragosim_verteidiger_kristall_insgesamt, dragosim_verteidiger_deuterium_insgesamt;

var dragosim_verteidiger_mehrfach = 0;
var dragosim_verteidiger_schildrund = 0;

/* Initialisierung der Werte */
// Prototop

// dragosim_typ(name,kbs,kurz,art,angriff,schild,huelle,metall,kristall,deuterium,transport)


// Forschungstypen

dragosim_typ('Waffentechnik','Waffen:+','w_t','forschung');
dragosim_typ('Schildtechnik','Schilde:+','s_t','forschung');
dragosim_typ('Raumschiffpanzerung','Hülle:+','r_p','forschung');

// Schiffstypen

dragosim_typ('Kleiner Transporter','Kl.Trans','k_t','schiff','5','10','400','2000','2000','0','5000');
dragosim_typ('Großer Transporter','Gr.Trans','g_t','schiff','5','25','1200','6000','6000','0','25000');

dragosim_typ('Leichter Jäger','L.Jäger','l_j','schiff','50','10','400','3000','1000','0','50');
dragosim_typ('Schwerer Jäger','S.Jäger','s_j','schiff','150','25','1000','6000','4000','0','100');

dragosim_typ('Kreuzer','Kreuzer','kr','schiff','400','50','2700','20000','7000','2000','800');
dragosim_typ('Schlachtschiff','Schlachts.','sc','schiff','1000','200','6000','40000','20000','0','1500');

dragosim_typ('Kolonieschiff','Kol. Schiff.','ko','schiff','50','100','3000','10000','20000','10000','7500');
dragosim_typ('Recycler','Recy.','re','schiff','1','10','1600','10000','6000','2000','20000');
dragosim_typ('Spionagesonde','Spio.Sonde','sp','schiff','0.01','0.01','100','0','1000','0','0');

dragosim_typ('Bomber','Bomber','bo','schiff','1000','500','7500','50000','25000','15000','500');

dragosim_typ('Solar Satellit','S.Satellit','so','schiff','1','1','200','0','2000','500','0');

dragosim_typ('Zerstörer','Zerst.','z','schiff','2000','500','11000','60000','50000','15000','2000');
dragosim_typ('Todesstern','Rip','t','schiff','200000','50000','900000','5000000','4000000','1000000','1000000');

// Verteidigungstypen

dragosim_typ('Raketenwerfer','Rak.','ra','verteidigung','80','20','200','2000','0','0','0');

dragosim_typ('Leichtes Lasergeschütz','L.Laser','l_l','verteidigung','100','25','200','1500','500','0','0');
dragosim_typ('Schweres Lasergeschütz','S.Laser','s_l','verteidigung','250','100','800','6000','2000','0','0');

dragosim_typ('Gaußkanone','Gauß','g','verteidigung','1100','200','3500','20000','15000','2000','0');
dragosim_typ('Ionengeschütz','Ion.W','i','verteidigung','150','500','800','2000','6000','0','0');
dragosim_typ('Plasmawerfer','Plasma','p','verteidigung','3000','300','10000','50000','50000','30000','0');

dragosim_typ('Kleine Schildkuppel','S.Kuppel','k_s','verteidigung','1','2000','2000','10000','10000','0','0');
dragosim_typ('Grosse Schildkuppel','GS.Kuppel','g_s','verteidigung','1','10000','10000','50000','50000','0','0');

/* Parameter */

var dragosim_forschungsbonus = 0.1;
var dragosim_maximale_rundenanzahl = 6;

var dragosim_bonus_sp = 4/5;
var dragosim_bonus_kr_l_j = 2/3;

var dragosim_explosion_ab = 0.25;
var dragosim_explosion_startwert = 0;
var dragosim_explosion_zunahme = 4/3;

var dragosim_verteidigung_aus = 70/100;

/* Funktionen */
// Formular nach Parametern initialisieren

function dragosim_params_init() {
 if (query_param('scanbericht')) {
  dragosim_scanbericht(query_param('scanbericht'));
 }
 for (x = 0; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];
  mom_name = dragosim_name[mom_kurz];
  
    // modified
   
   dragosim_scanbericht_metall = query_param('metall');
   dragosim_scanbericht_kristall = query_param('kristall');
   dragosim_scanbericht_deuterium = query_param('deuterium');
   dragosim_scanbericht_scan = query_param('text');
  dragosim_scanbericht_vorhanden = 1;
  
  mom_param_a = query_param('a_' + mom_kurz);
  mom_param_v = query_param('v_' + mom_kurz);
  if (mom_param_a != '') {
   set('0_a_'+mom_kurz,'value', mom_param_a);
  }
  if (mom_param_v != '') {
   set('0_v_'+mom_kurz,'value', mom_param_v);
  }
 }
}

// Kampfbericht einlesen --- DIESE FUNKTION WIRD NICHT GENUTZT!!!
/*
function dragosim_kb(text) {
 y = text.indexOf('Waffen:+');
 if (y != -1) {
  z = parseInt(text.substring(y + 8,text.length));
  z /= 10;
  set('0_a_w_t','value',z);
 }
 y = text.indexOf('Schilde:+');
 if (y != -1) {
  z = parseInt(text.substring(y + 9,text.length));
  z /= 10;
  set('0_a_s_t','value',z);
 }
 y = text.indexOf('Hülle:+');
 if (y != -1) {
  z = parseInt(text.substring(y + 7,text.length));
  z /= 10;
  set('0_a_r_p','value',z);
 }
 y = text.indexOf('Typ ');
 text = text.substring(y+4,text.length);
 y = text.indexOf("\nAnz. ");
 type = text.substring(0,y);
 text = text.substring(y+6,text.length);

 var types = new Array();
 var types_hash = new Array();

 if (type.length > 0) {
  if (type.indexOf(' ') == -1) {
   types[0] = type;
  } else {
   types = type.split(' ');
  }
 }

 for (x = 0; x < types.length; x++) {
  y = types[x];
  types_hash[y] = x;
 }

 y = text.indexOf("\nBewaff. ");
 type_value = text.substring(0,y);
 text = text.substring(y+9,text.length);

 var type_values = new Array();

 if (type_value.length > 0) {
  if (type_value.indexOf(' ') == -1) {
   type_values[0] = type_value;
  } else {
   type_values = type_value.split(' ');
  }
 }

 for (x = 0; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];
  mom_kbs = dragosim_kbs[mom_kurz];
  if (types_hash[mom_kbs] != undefined) {
   y = types_hash[mom_kbs];
   if (get('0_a_'+mom_kurz,'type') != 'hidden') {
    set('0_a_'+mom_kurz,'value',type_values[y]);
   } else {
    set('0_a_'+mom_kurz,'value','');
   }
  }
 }

 y = text.indexOf('Verteidiger');
 text = text.substring(y+11,text.length);
 y = text.indexOf('Waffen:+');
 if (y != -1) {
  z = parseInt(text.substring(y + 8,text.length));
  z /= 10;
  set('0_v_w_t','value',z);
 }
 y = text.indexOf('Schilde:+');
 if (y != -1) {
  z = parseInt(text.substring(y + 9,text.length));
  z /= 10;
  set('0_v_s_t','value',z);
 }
 y = text.indexOf('Hülle:+');
 if (y != -1) {
  z = parseInt(text.substring(y + 7,text.length));
  z /= 10;
  set('0_v_r_p','value',z);
 }
 y = text.indexOf('Typ ');
 text = text.substring(y+4,text.length);
 y = text.indexOf("\nAnz. ");
 type = text.substring(0,y);
 text = text.substring(y+6,text.length);

 var types = new Array();
 var types_hash = new Array();

 if (type.length > 0) {
  if (type.indexOf(' ') == -1) {
   types[0] = type;
  } else {
   types = type.split(' ');
  }
 }

 for (x = 0; x < types.length; x++) {
  y = types[x];
  types_hash[y] = x;
 }

 y = text.indexOf("\nBewaff. ");
 type_value = text.substring(0,y);
 text = text.substring(y+9,text.length);

 var type_values = new Array();

 if (type_value.length > 0) {
  if (type_value.indexOf(' ') == -1) {
   type_values[0] = type_value;
  } else {
   type_values = type_value.split(' ');
  }
 }

 for (x = 0; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];
  mom_kbs = dragosim_kbs[mom_kurz];
  if (types_hash[mom_kbs] != undefined) {
   y = types_hash[mom_kbs];
   if (get('0_v_'+mom_kurz,'type') != 'hidden') {
    set('0_v_'+mom_kurz,'value',type_values[y]);
   } else {
    set('0_v_'+mom_kurz,'value','');
   }
  }
 }
}
*/

// Scanbericht resetten

function dragosim_scanbericht_reset() {
 dragosim_scanbericht_vorhanden = 0;
 dragosim_scanbericht_metall = 0;
 dragosim_scanbericht_kristall = 0;
 dragosim_scanbericht_deuterium = 0;
 dragosim_runter = 0;
}

// Scanbericht einlesen

function dragosim_scanbericht(text) {

 ausdruck = /(Rohstoffe auf )(.+ \[\d+:\d+:\d+\] um \d+-\d+ \d+:\d+:\d+)/;
 ausdruck.exec(text);
 dragosim_scanbericht_scan = RegExp.$2;
 text_gefunden = RegExp.$1+RegExp.$2;
 text = text.substring(text.indexOf(text_gefunden) + text_gefunden.length,text.length);

 dragosim_scanbericht_vorhanden = 1;

 y = text.indexOf('Metall');
 if (y != -1) {
  z = parseInt(text.substring(y + 7,text.length));
  dragosim_scanbericht_metall = z;
 } else {
  dragosim_scanbericht_metall = 0;
 }
 y = text.indexOf('Kristall');
 if (y != -1) {
  z = parseInt(text.substring(y + 9,text.length));
  dragosim_scanbericht_kristall = z;
 } else {
  dragosim_scanbericht_kristall = 0;
 }
 y = text.indexOf('Deuterium');
 if (y != -1) {
  z = parseInt(text.substring(y + 10,text.length));
  dragosim_scanbericht_deuterium = z;
 } else {
  dragosim_scanbericht_deuterium = 0;
 }

 for (x = 0; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];
  mom_name = dragosim_name[mom_kurz];
  y = text.indexOf(mom_name);
  if (y != -1 && get('0_v_'+mom_kurz,'type') != 'hidden') {
   z = parseInt(text.substring(y + mom_name.length,text.length));
   set('0_v_'+mom_kurz,'value',z);
  } else {
   set('0_v_'+mom_kurz,'value','');
  }
 }
}

// angreifende Flotte aus der Uebersicht einlesen

function dragosim_scanbericht_verteidiger(text) {
 for (x = 3; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];
  mom_name = dragosim_name[mom_kurz];
  y = text.indexOf('*'+mom_name);
  mom_text = text.substring(0,y);
  y = mom_text.lastIndexOf(' ');
  if (y != -1 && get('0_a_'+mom_kurz,'type') != 'hidden') {
   z = parseInt(text.substring(y + 1,text.length));
   set('0_a_'+mom_kurz,'value',z);
  } else {
   set('0_a_'+mom_kurz,'value','');
  }
 }
}

// eigene Flotten fuer Angreifer einlesen

function dragosim_eigene_flotten(text) {
 for (x = 3; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];
  mom_name = dragosim_name[mom_kurz];
  y = text.indexOf(mom_name);
  if (y != -1 && get('0_a_'+mom_kurz,'type') != 'hidden') {
   z = parseInt(text.substring(y + mom_name.length + 2,text.length));
   set('0_a_'+mom_kurz,'value',z);
  } else {
   set('0_a_'+mom_kurz,'value','');
  }
 }
}

// eigene Flotten fuer Verteidiger einlesen

function dragosim_eigene_flotten_verteidiger(text) {
 for (x = 3; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];
  mom_name = dragosim_name[mom_kurz];
  y = text.indexOf(mom_name);
  if (y != -1 && get('0_v_'+mom_kurz,'type') != 'hidden') {
   z = parseInt(text.substring(y + mom_name.length + 2,text.length));
   set('0_v_'+mom_kurz,'value',z);
  } else {
   set('0_v_'+mom_kurz,'value','');
  }
 }
}

// eigene Flotten fuer Verteidiger aus KB einlesen

function dragosim_kampfbericht(text) {
var tables = new Array();
tables = text.split('Typ ');
var temptech;
temptech = tables[1].split('Waffen:+')[1];
set('0_v_w_t','value',temptech.substring(0,temptech.indexOf('%'))/10);
temptech = temptech.split('Schilde:+')[1];
set('0_v_s_t','value',temptech.substring(0,temptech.indexOf('%'))/10);
temptech = temptech.split('Hülle:+')[1];
set('0_v_r_p','value',temptech.substring(0,temptech.indexOf('%'))/10);
if (tables[tables.length-1].indexOf('Vernichtet')==-1) { text = tables[tables.length-1]; } else { text = ''; }
var myKBZeilen=text.split("\n");
if (myKBZeilen.length > 2) {
 myKBZeilen[0]=myKBZeilen[0].replace("Typ ","");
 myKBZeilen[0]=myKBZeilen[0].replace("Kol. Schiff.","Kol.Schiff");
 myKBZeilen[1]=myKBZeilen[1].replace("Anz.","");
 var myKBSchiffe=myKBZeilen[0].split(" ");
 var myKBSchiffzahl=myKBZeilen[1].split(" ");
 for (x=0;x<myKBSchiffe.length;x++) {
  if (myKBSchiffe[x]!="" && myKBSchiffe[x]!=" ") {
   myKBSchiffe[x]=myKBSchiffe[x].replace("Kol.Schiff.","Kol. Schiff");
   set('0_v_'+dragosim_spio_kbs[myKBSchiffe[x]],'value',myKBSchiffzahl[x+1]);
   }
  }
 }
}

// eigene Flotten fuer Angreifer aus KB einlesen

function dragosim_kampfbericht_verteidiger(text) {
var tables = new Array();
tables = text.split('Typ ');
var temptech;
temptech = tables[0].split('Waffen:+')[1];
set('0_a_w_t','value',temptech.substring(0,temptech.indexOf('%'))/10);
temptech = temptech.split('Schilde:+')[1];
set('0_a_s_t','value',temptech.substring(0,temptech.indexOf('%'))/10);
temptech = temptech.split('Hülle:+')[1];
set('0_a_r_p','value',temptech.substring(0,temptech.indexOf('%'))/10);
if (tables[tables.length-2].indexOf('Vernichtet')==-1) { text = tables[tables.length-2]; } else { text = ''; }
var myKBZeilen=text.split("\n");
if (myKBZeilen.length > 2) {
 myKBZeilen[0]=myKBZeilen[0].replace("Typ ","");
 myKBZeilen[0]=myKBZeilen[0].replace("Kol. Schiff.","Kol.Schiff");
 myKBZeilen[1]=myKBZeilen[1].replace("Anz.","");
 var myKBSchiffe=myKBZeilen[0].split(" ");
 var myKBSchiffzahl=myKBZeilen[1].split(" ");
 for (x=0;x<myKBSchiffe.length;x++) {
  if (myKBSchiffe[x]!="" && myKBSchiffe[x]!=" ") {
   myKBSchiffe[x]=myKBSchiffe[x].replace("Kol.Schiff.","Kol. Schiff");
   set('0_a_'+dragosim_spio_kbs[myKBSchiffe[x]],'value',myKBSchiffzahl[x+1]);
   }
  }
 }
}

// eigene Forschung fuer Angreifer einlesen

function dragosim_eigene_forschung(text) {
 for (x = 0; x < 3; x++) {
  mom_kurz = dragosim_kurz[x];
  mom_name = dragosim_name[mom_kurz];
  y = text.indexOf(mom_name);
  if (y != -1) {
   z = parseInt(text.substring(y + mom_name.length + 8,text.length));
   set('0_a_'+mom_kurz,'value',z);
  } else {
   set('0_a_'+mom_kurz,'value','');
  }
 }
}

// eigene Forschung fuer Verteidiger einlesen

function dragosim_eigene_forschung_verteidiger(text) {
 for (x = 0; x < 3; x++) {
  mom_kurz = dragosim_kurz[x];
  mom_name = dragosim_name[mom_kurz];
  y = text.indexOf(mom_name);
  if (y != -1) {
   z = parseInt(text.substring(y + mom_name.length + 8,text.length));
   set('0_v_'+mom_kurz,'value',z);
  } else {
   set('0_v_'+mom_kurz,'value','');
  }
 }
}

// das Herunterrechnen der Einheiten rueckgaengig machen

function dragosim_runter_reverse() {
 if (dragosim_runter == 1) {
  for (x = 3; x < dragosim_kurz.length; x++) {
   mom_kurz = dragosim_kurz[x];
   mom_a    = dragosim_angreifer_runter[mom_kurz];
   mom_v    = dragosim_verteidiger_runter[mom_kurz];
   if (isNaN(mom_a) == 1 || mom_a <= 0) {
    set('0_a_' + mom_kurz,'value','');
   } else {
    set('0_a_' + mom_kurz,'value',mom_a);
   }
   if (isNaN(mom_v) == 1 || mom_v <= 0) {
    set('0_v_' + mom_kurz,'value','');
   } else {
    set('0_v_' + mom_kurz,'value',mom_v);
   }
  }
  set('runter_einheiten','innerhtml','keine');
  set('runter_bilanz','innerhtml','keine');
  dragosim_runter = 0;
 }
}

// Einheiten herunterrechnen um einen Faktor

function dragosim_runter_faktor(faktor, ausgleichen) {
 faktor = Number(faktor);
 if (faktor == 0) {
  return;
 }

 dragosim_runter = 1;

 for (x = 3; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];

  mom_a = parseInt(get('0_a_' + mom_kurz,'value'));
  mom_v = parseInt(get('0_v_' + mom_kurz,'value'));
  if (isNaN(mom_a) == 1 || mom_a < 0) {
   mom_a = 0;
  }
  if (isNaN(mom_v) == 1 || mom_v < 0) {
   mom_v = 0;
  }
  dragosim_angreifer_runter[mom_kurz]   = mom_a;
  dragosim_verteidiger_runter[mom_kurz] = mom_v;
 }

 dragosim_runter_initialisieren();

 mom_anzahl_vorher = mom_anzahl;

 dragosim_angreifer_metall_insgesamt_vorher    = dragosim_angreifer_metall_insgesamt / faktor;
 dragosim_angreifer_kristall_insgesamt_vorher  = dragosim_angreifer_kristall_insgesamt / faktor;
 dragosim_angreifer_deuterium_insgesamt_vorher = dragosim_angreifer_deuterium_insgesamt / faktor;

 dragosim_verteidiger_metall_insgesamt_vorher    = dragosim_verteidiger_metall_insgesamt / faktor;
 dragosim_verteidiger_kristall_insgesamt_vorher  = dragosim_verteidiger_kristall_insgesamt / faktor;
 dragosim_verteidiger_deuterium_insgesamt_vorher = dragosim_verteidiger_deuterium_insgesamt / faktor;

 for (x = 3; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];
  mom_name = dragosim_name[mom_kurz];
  y = parseInt(get('0_v_'+mom_kurz,'value'));
  if (isNaN(y) == 1 || y < 0) {
   y = 0;
  }
  if (y != 0) {
   y = Math.round(y/faktor);
   if (y == 0) {
    y = '';
   }
   set('0_v_'+mom_kurz,'value',y);
  }
  y = parseInt(get('0_a_'+mom_kurz,'value'));
  if (isNaN(y) == 1 || y < 0) {
   y = 0;
  }
  if (y != 0) {
   y = Math.round(y/faktor);
   if (y == 0) {
    y = '';
   }
   set('0_a_'+mom_kurz,'value',y);
  }
 }

 mom_anzahl = 0;
 for (x = 3; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];
  mom_name = dragosim_name[mom_kurz];
  mom_anzahl += Number(get('0_a_'+mom_kurz,'value'));
  mom_anzahl += Number(get('0_v_'+mom_kurz,'value'));
 }

 dragosim_runter_initialisieren()

 dragosim_angreifer_metall_differenz    = dragosim_angreifer_metall_insgesamt_vorher - dragosim_angreifer_metall_insgesamt;
 dragosim_angreifer_kristall_differenz  = dragosim_angreifer_kristall_insgesamt_vorher - dragosim_angreifer_kristall_insgesamt;
 dragosim_angreifer_deuterium_differenz = dragosim_angreifer_deuterium_insgesamt_vorher - dragosim_angreifer_deuterium_insgesamt;

 dragosim_verteidiger_metall_differenz    = dragosim_verteidiger_metall_insgesamt_vorher - dragosim_verteidiger_metall_insgesamt;
 dragosim_verteidiger_kristall_differenz  = dragosim_verteidiger_kristall_insgesamt_vorher - dragosim_verteidiger_kristall_insgesamt;
 dragosim_verteidiger_deuterium_differenz = dragosim_verteidiger_deuterium_insgesamt_vorher - dragosim_verteidiger_deuterium_insgesamt;

 metall_differenz    = dragosim_angreifer_metall_differenz - dragosim_verteidiger_metall_differenz;
 kristall_differenz  = dragosim_angreifer_kristall_differenz - dragosim_verteidiger_kristall_differenz;
 deuterium_differenz = dragosim_angreifer_deuterium_differenz - dragosim_verteidiger_deuterium_differenz;

 differenz = metall_differenz + kristall_differenz + deuterium_differenz;

 if (ausgleichen == true && differenz != 0) {
  if (differenz > 0) {
   seite = 'a';
  } else {
   metall_differenz    *= -1;
   kristall_differenz  *= -1;
   deuterium_differenz *= -1;
   seite = 'v';
  }
  for (x = dragosim_kurz.length - 1; x >= 3; x--) {
   mom_kurz = dragosim_kurz[x];
   if (dragosim_art[mom_kurz] == 'schiff'
      && mom_kurz != 'k_t' && mom_kurz != 'g_t'
      && mom_kurz != 'ko' && mom_kurz != 're'
      && mom_kurz != 'sp' && mom_kurz != 'so') {
    mom_min = -1;
    if (dragosim_metall[mom_kurz] > 0) {
    mom_metall = Math.floor(metall_differenz / dragosim_metall[mom_kurz]);
    mom_min = mom_metall;
    }
    if (dragosim_kristall[mom_kurz] > 0) {
    mom_kristall = Math.floor(kristall_differenz / dragosim_kristall[mom_kurz]);
    if (mom_kristall < mom_min) {
     mom_min = mom_kristall;
    }
    }
    if (dragosim_deuterium[mom_kurz] > 0) {
    mom_deuterium = Math.floor(deuterium_differenz / dragosim_deuterium[mom_kurz]);
    if (mom_deuterium < mom_min) {
     mom_min = mom_deuterium;
    }
    }
    if (mom_min > 0) {
    metall_differenz   -= mom_min * dragosim_metall[mom_kurz];
    kristall_differenz  -= mom_min * dragosim_kristall[mom_kurz];
    deuterium_differenz -= mom_min * dragosim_deuterium[mom_kurz];
    y = parseInt(get('0_'+seite+'_'+mom_kurz,'value'));
    y += mom_min;
    if (isNaN(y) == 1 || y < 0) {
     y = 0;
    }
    set('0_'+seite+'_'+mom_kurz,'value',y);
    }
   }
  }
  differenz = metall_differenz + kristall_differenz + deuterium_differenz;
  if (seite == 'v') {
   differenz *= -1;
  }
 }

 faktor = String(faktor);
 if (faktor.indexOf('.') != -1) {
  a = parseInt(faktor.substring(faktor.indexOf('.')+2,faktor.indexOf('.')+3));
  b = parseInt(faktor.substring(faktor.indexOf('.')+1,faktor.indexOf('.')+2));
  faktor = parseInt(faktor.substring(0,faktor.indexOf('.')));
  if (a >= 5) {
   if (b == 9) {
    faktor++;
   } else {
    faktor = faktor + '.' + (b+1);
   }
  }
 }
 set('runter_einheiten','innerhtml',mom_anzahl_vorher+'<span class=spacer> </span>-> '+mom_anzahl+'<span class=spacer> </span>('+faktor+'x)');
 if (differenz > 0) {
  set('runter_bilanz','innerhtml','+ '+dragosim_dk(differenz)+'<span class=spacer> </span>Res. für V.');
 } else if (differenz == 0) {
  set('runter_bilanz','innerhtml','ausgeglichen');
 } else {
  set('runter_bilanz','innerhtml','+ '+dragosim_dk(-differenz)+'<span class=spacer> </span>Res. für A.');
 }
}

// Einheiten herunterrechnen auf eine Anzahl

function dragosim_runter_anzahl(anzahl, ausgleichen) {
 anzahl = Number(anzahl);
 if (anzahl <= 0) {
  return 0;
 }
 mom_anzahl = 0;
 for (x = 3; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];
  mom_a = parseInt(get('0_a_' + mom_kurz,'value'));
  mom_v = parseInt(get('0_v_' + mom_kurz,'value'));
  if (isNaN(mom_a) == 1 || mom_a < 0) {
   mom_a = 0;
  }
  if (isNaN(mom_v) == 1 || mom_v < 0) {
   mom_v = 0;
  }
  mom_anzahl += mom_a;
  mom_anzahl += mom_v;
 }
 if (mom_anzahl > anzahl) {
  dragosim_runter_faktor(mom_anzahl/anzahl, ausgleichen);
 }
}

// Initialisieren fuer das Herunterrechnen der Einheiten

function dragosim_runter_initialisieren() {
 mom_anzahl = 0;

 dragosim_angreifer_metall_insgesamt    = 0;
 dragosim_angreifer_kristall_insgesamt  = 0;
 dragosim_angreifer_deuterium_insgesamt = 0;

 dragosim_verteidiger_metall_insgesamt    = 0;
 dragosim_verteidiger_kristall_insgesamt  = 0;
 dragosim_verteidiger_deuterium_insgesamt = 0;

 for (x = 3; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];

  mom_a = parseInt(get('0_a_' + mom_kurz,'value'));
  mom_v = parseInt(get('0_v_' + mom_kurz,'value'));
  if (isNaN(mom_a) == 1 || mom_a < 0) {
   mom_a = 0;
  }
  if (isNaN(mom_v) == 1 || mom_v < 0) {
   mom_v = 0;
  }

  mom_anzahl += mom_a + mom_v;

  if (dragosim_art[mom_kurz] == 'schiff' &&
      (mom_kurz == 'k_t' || mom_kurz == 'g_t' ||
       mom_kurz == 'ko' || mom_kurz == 're' ||
       mom_kurz == 'sp' || mom_kurz == 'so')) {
   continue;
  }

  dragosim_angreifer_metall_insgesamt    += mom_a * dragosim_metall[mom_kurz];
  dragosim_angreifer_kristall_insgesamt  += mom_a * dragosim_kristall[mom_kurz];
  dragosim_angreifer_deuterium_insgesamt += mom_a * dragosim_deuterium[mom_kurz];

  dragosim_verteidiger_metall_insgesamt    += mom_v * dragosim_metall[mom_kurz];
  dragosim_verteidiger_kristall_insgesamt  += mom_v * dragosim_kristall[mom_kurz];
  dragosim_verteidiger_deuterium_insgesamt += mom_v * dragosim_deuterium[mom_kurz];
 }
}


// Kontrollroutine

function dragosim() {

/*
 forschungsbonus = parseFloat(eval(get('p_forschungsbonus','value')));
 maximale_rundenanzahl = parseFloat(eval(get('p_maximale_rundenanzahl','value')));

 bonus_sp = parseFloat(eval(get('p_bonus_sp','value')));
 bonus_kr_l_j = parseFloat(eval(get('p_bonus_kr_l_j','value')));;

 explosion_ab = parseFloat(eval(get('p_explosion_ab','value')));
 explosion_startwert = parseFloat(eval(get('p_explosion_startwert','value')));
 explosion_zunahme = parseFloat(eval(get('p_explosion_zunahme','value')));

 verteidigung_aus = parseFloat(eval(get('p_verteidigung_aus','value')));

 if (isNaN(forschungsbonus) == 0 && forschungsbonus >= 0) {
  dragosim_forschungsbonus = forschungsbonus;
 }
 if (isNaN(maximale_rundenanzahl) == 0 && maximale_rundenanzahl >= 0 && maximale_rundenanzahl < 7) {
  dragosim_maximale_rundenanzahl = maximale_rundenanzahl;
 }
 if (isNaN(bonus_sp) == 0 && bonus_sp >= 0 && bonus_sp <= 1) {
  dragosim_bonus_sp = bonus_sp;
 }
 if (isNaN(bonus_kr_l_j) == 0 && bonus_kr_l_j >= 0 && bonus_kr_l_j <= 1) {
  dragosim_bonus_kr_l_j = bonus_kr_l_j;
 }
 if (isNaN(explosion_ab) == 0 && explosion_ab >= 0 && explosion_ab <= 1) {
  dragosim_explosion_ab = explosion_ab;
 }
 if (isNaN(explosion_startwert) == 0) {
  dragosim_explosion_startwert = explosion_startwert;
 }
 if (isNaN(explosion_zunahme) == 0) {
  dragosim_explosion_zunahme = explosion_zunahme;
 }
 if (isNaN(verteidigung_aus) == 0 && verteidigung_aus >= 0 && verteidigung_aus <= 1) {
  dragosim_verteidigung_aus = verteidigung_aus;
 }
*/

// alert('DragoSim: Start');
 dragosim_runde = 0;
 dragosim_initialisieren();
 dragosim_anzeigen(0);
 dragosim_runde = 1;

 dragosim_ob = '';
 dragosim_ob += "Folgende Flotten standen sich gerade bei einer Simulation gegenüber:<br><br>\n<center>\nAngreifer DragoSim(1:33:7)\n";
 dragosim_ob += "<br>Waffen:+" + dragosim_angreifer_anzahl['w_t']*10 + "% ";
 dragosim_ob += "Schilde:+"    + dragosim_angreifer_anzahl['s_t']*10 + "% ";
 dragosim_ob += "Hülle:+"      + dragosim_angreifer_anzahl['r_p']*10 + "% \n";
 dragosim_tabelle_angreifer();
 dragosim_ob += "\n";
 dragosim_ob += "<br>\nVerteidiger oGame(1:1:1)\n";
 dragosim_ob += "<br>Waffen:+" + dragosim_verteidiger_anzahl['w_t']*10 + "% ";
 dragosim_ob += "Schilde:+"    + dragosim_verteidiger_anzahl['s_t']*10 + "% ";
 dragosim_ob += "Hülle:+"      + dragosim_verteidiger_anzahl['r_p']*10 + "% \n";
 dragosim_tabelle_verteidiger();
 dragosim_ob += "\n";

 // db

 dragosim_db = '';
 dragosim_db += "Folgende Flotten standen sich gerade bei einer Simulation gegenüber:<br><hr><br><center><b>Ausgangssituation</b><br><br>\n\n<b>Angreifer</b><span class=spacer> </span>" + dragosim_db_a("DragoSim(1:33:7)") + "\n";
 dragosim_db += "<br>Waffen:+" + dragosim_db_a(dragosim_angreifer_anzahl['w_t']*10) + "% ";
 dragosim_db += "Schilde:+"    + dragosim_db_a(dragosim_angreifer_anzahl['s_t']*10) + "% ";
 dragosim_db += "Hülle:+"      + dragosim_db_a(dragosim_angreifer_anzahl['r_p']*10) + "% \n";
 dragosim_tabelle_angreifer_db(true);
 dragosim_db += "\n\n";
 dragosim_db += "<br>\n\n<b>Verteidiger</b><span class=spacer> </span>" + dragosim_db_verteidiger_vorher + "oGame(1:1:1)" + dragosim_db_verteidiger_nachher + "\n";
 dragosim_db += "<br>Waffen:+" + dragosim_db_v(dragosim_verteidiger_anzahl['w_t']*10) + "% ";
 dragosim_db += "Schilde:+"    + dragosim_db_v(dragosim_verteidiger_anzahl['s_t']*10) + "% ";
 dragosim_db += "Hülle:+"      + dragosim_db_v(dragosim_verteidiger_anzahl['r_p']*10) + "% \n";
 dragosim_tabelle_verteidiger_db(true);
 dragosim_db += "\n";


// alert('DragoSim: Initialisierung abgeschlossen');
 dragosim_angreifer_metall_insgesamt_vorher   = 0;
 dragosim_angreifer_kristall_insgesamt_vorher = 0;
 dragosim_angreifer_deuterium_insgesamt_vorher = 0;

 mom_angreifer_metall_insgesamt   = 0;
 mom_angreifer_kristall_insgesamt = 0;
 mom_angreifer_deuterium_insgesamt = 0;

 for (x = 0; x < dragosim_angreifer_objekt.length; x++) {
  mom_kurz = dragosim_angreifer_objekt[x];
  if (dragosim_art[mom_kurz] == 'verteidigung' && document.getElementById('def_ins_tf').checked == false) {
   mom_angreifer_metall_insgesamt    += dragosim_metall[mom_kurz];
   mom_angreifer_kristall_insgesamt  += dragosim_kristall[mom_kurz];
   mom_angreifer_deuterium_insgesamt += dragosim_deuterium[mom_kurz];
  } else {
   dragosim_angreifer_metall_insgesamt_vorher    += dragosim_metall[mom_kurz];
   dragosim_angreifer_kristall_insgesamt_vorher  += dragosim_kristall[mom_kurz];
   dragosim_angreifer_deuterium_insgesamt_vorher  += dragosim_deuterium[mom_kurz];
  }
 }

 dragosim_verteidiger_metall_insgesamt_vorher   = 0;
 dragosim_verteidiger_kristall_insgesamt_vorher = 0;

 mom_verteidiger_metall_insgesamt   = 0;
 mom_verteidiger_kristall_insgesamt = 0;

 for (x = 0; x < dragosim_verteidiger_objekt.length; x++) {
  mom_kurz = dragosim_verteidiger_objekt[x];
  if (dragosim_art[mom_kurz] == 'verteidigung' && document.getElementById('def_ins_tf').checked == false) {
   mom_verteidiger_metall_insgesamt    += dragosim_metall[mom_kurz];
   mom_verteidiger_kristall_insgesamt  += dragosim_kristall[mom_kurz];
  } else {
   dragosim_verteidiger_metall_insgesamt_vorher    += dragosim_metall[mom_kurz];
   dragosim_verteidiger_kristall_insgesamt_vorher  += dragosim_kristall[mom_kurz];
  }
 }

 mom_angreifer_metall_insgesamt_vorher = mom_angreifer_metall_insgesamt + dragosim_angreifer_metall_insgesamt_vorher;
 mom_angreifer_kristall_insgesamt_vorher = mom_angreifer_kristall_insgesamt + dragosim_angreifer_kristall_insgesamt_vorher;
 mom_angreifer_deuterium_insgesamt_vorher = mom_angreifer_deuterium_insgesamt + dragosim_angreifer_deuterium_insgesamt_vorher;

 mom_verteidiger_metall_insgesamt_vorher = mom_verteidiger_metall_insgesamt + dragosim_verteidiger_metall_insgesamt_vorher;
 mom_verteidiger_kristall_insgesamt_vorher = mom_verteidiger_kristall_insgesamt + dragosim_verteidiger_kristall_insgesamt_vorher;

 dragosim_ausgang = dragosim_status();

 // Berechnung: Start

 while(dragosim_ausgang == 'unentschieden' && dragosim_runde <= dragosim_maximale_rundenanzahl) {
  mom_angreifer   = dragosim_angreifer_objekt.length;
  mom_verteidiger = dragosim_verteidiger_objekt.length;
  dragosim_angreifer_mehrfach   = 0;
  dragosim_angreifer_schildrund   = 0;
  dragosim_verteidiger_mehrfach = 0;
  dragosim_verteidiger_schildrund = 0;

  dragosim_berechnen(dragosim_runde);

  dragosim_ob += "<br>Die angreifende Flotte schiesst insgesamt " + dragosim_ok(mom_angreifer);
  if (dragosim_angreifer_mehrfach > 0) {
   dragosim_ob += "(+" + dragosim_ok(dragosim_angreifer_mehrfach) + ")";
  }
  dragosim_ob += "<span class=spacer> </span>mal mit Gesamtstärke " + dragosim_ok(dragosim_angreifer_angriff_effektiv_insgesamt) + "<span class=spacer> </span>auf den Verteidiger.<br> Die Schilde des Verteidigers absorbieren " + dragosim_ok(dragosim_verteidiger_schild_effektiv_insgesamt);
  if (dragosim_verteidiger_schildrund > 0) {
   dragosim_ob += "(+" + dragosim_ok(dragosim_verteidiger_schildrund) + ")";
  }  
  dragosim_ob += "<span class=spacer> </span>Schadenspunkte.<br>";

  dragosim_ob += "<br>Die verteidigende Flotte schiesst insgesamt " + dragosim_ok(mom_verteidiger);
  if (dragosim_verteidiger_mehrfach > 0) {
   dragosim_ob += "(+" + dragosim_ok(dragosim_verteidiger_mehrfach) + ")";
  }
  dragosim_ob += "<span class=spacer> </span>mal mit Gesamtstärke " + dragosim_ok(dragosim_verteidiger_angriff_effektiv_insgesamt) + "<span class=spacer> </span>auf den Angreifer.<br> Die Schilde des Angreifers absorbieren " + dragosim_ok(dragosim_angreifer_schild_effektiv_insgesamt);
  if (dragosim_angreifer_schildrund > 0) {
   dragosim_ob += "(+" + dragosim_ok(dragosim_angreifer_schildrund) + ")";
  }
  dragosim_ob += "<span class=spacer> </span>Schadenspunkte.<br>";

  // db

  mom_angreifer_angriff_insgesamt   = dragosim_angreifer_angriff_effektiv_insgesamt   + dragosim_verteidiger_schild_effektiv_insgesamt;
  mom_verteidiger_angriff_insgesamt = dragosim_verteidiger_angriff_effektiv_insgesamt + dragosim_angreifer_schild_effektiv_insgesamt;

  dragosim_db += "<br><hr><br><b>Runde " + dragosim_runde + "</b><br>";
  dragosim_db += "<br>Die angreifende Flotte schießt " +
                 dragosim_db_a(dragosim_dk(mom_angreifer));
  if (dragosim_angreifer_mehrfach > 0) {
   dragosim_db += "<span class=spacer> </span>(+" +
                  dragosim_db_a(dragosim_dk(dragosim_angreifer_mehrfach)) +
                  "<span class=spacer> </span>Rapid Fire)";
  }
  dragosim_db += "<span class=spacer> </span>mal auf die Verteidiger.";
  dragosim_db += "<br>Von " +
                 dragosim_db_a(dragosim_dk(mom_angreifer_angriff_insgesamt)) +
                 "<span class=spacer> </span>Schaden absorbieren die Schilde der Verteidiger " +
                 dragosim_db_v(dragosim_dk(dragosim_verteidiger_schild_effektiv_insgesamt)) +
                 "<span class=spacer> </span>Schaden, so dass effektiv nur ein Schaden von " +
                 dragosim_db_a(dragosim_dk(dragosim_angreifer_angriff_effektiv_insgesamt)) +
                 "<span class=spacer> </span>verursacht wird. " + dragosim_db_v(dragosim_dk(dragosim_verteidiger_schildrund)) + " Schaden verpuffen vollständig ohne Wirkung auf den Schilden der Verteidiger.<br>";

  dragosim_db += "<br>Die verteidigende Flotte schießt " +
                 dragosim_db_v(dragosim_dk(mom_verteidiger));
  if (dragosim_verteidiger_mehrfach > 0) {
   dragosim_db += "<span class=spacer> </span>(+" +
                  dragosim_db_v(dragosim_dk(dragosim_verteidiger_mehrfach)) +
                  "<span class=spacer> </span>Rapid Fire)";
  }
  dragosim_db += "<span class=spacer> </span>mal auf die Angreifer.";
  dragosim_db += "<br>Von " +
                 dragosim_db_v(dragosim_dk(mom_verteidiger_angriff_insgesamt)) +
                 "<span class=spacer> </span>Schaden absorbieren die Schilde der Angreifer " +
                 dragosim_db_a(dragosim_dk(dragosim_angreifer_schild_effektiv_insgesamt)) +
                 "<span class=spacer> </span>Schaden, so dass effektiv nur ein Schaden von " +
                 dragosim_db_v(dragosim_dk(dragosim_verteidiger_angriff_effektiv_insgesamt)) +
                 "<span class=spacer> </span>verursacht wird. " + dragosim_db_a(dragosim_dk(dragosim_angreifer_schildrund)) + " Schaden verpuffen vollständig ohne Wirkung auf den Schilden der Angreifer.<br>";


//  dragosim_anzeigen(dragosim_runde);

  dragosim_ob += "<br>\nAngreifer DragoSim\n";
  dragosim_tabelle_angreifer();
  dragosim_ob += "\n\n";
  dragosim_ob += "<br>\nVerteidiger oGame\n";
  dragosim_tabelle_verteidiger();
  dragosim_ob += "\n";

  // db

  dragosim_db += "<br>\n\n<b>Angreifer</b><span class=spacer> </span>" + dragosim_db_a("DragoSim") + "\n";
  dragosim_tabelle_angreifer_db();
  dragosim_db += "\n\n";
  dragosim_db += "<br>\n\n<b>Verteidiger</b><span class=spacer> </span>" + dragosim_db_v("oGame")  + "\n";
  dragosim_tabelle_verteidiger_db();
  dragosim_db += "\n";

  dragosim_runde++;
  dragosim_ausgang = dragosim_status();
 }

 // Berechnung: Ende

 dragosim_anzeigen(dragosim_maximale_rundenanzahl);

 // Finale Auswertung

 // Truemmerfeld

 dragosim_angreifer_metall_insgesamt   = 0;
 dragosim_angreifer_kristall_insgesamt = 0;
 dragosim_angreifer_deuterium_insgesamt = 0;

 mom_angreifer_metall_insgesamt   = 0;
 mom_angreifer_kristall_insgesamt = 0;
 mom_angreifer_deuterium_insgesamt = 0;

 for (x = 0; x < dragosim_angreifer_objekt.length; x++) {
  mom_kurz = dragosim_angreifer_objekt[x];
  if (dragosim_art[mom_kurz] == 'verteidigung' && document.getElementById('def_ins_tf').checked == false) {
   mom_angreifer_metall_insgesamt    += dragosim_metall[mom_kurz];
   mom_angreifer_kristall_insgesamt  += dragosim_kristall[mom_kurz];
   mom_angreifer_deuterium_insgesamt += dragosim_deuterium[mom_kurz];
  } else {
   dragosim_angreifer_metall_insgesamt    += dragosim_metall[mom_kurz];
   dragosim_angreifer_kristall_insgesamt  += dragosim_kristall[mom_kurz];
   dragosim_angreifer_deuterium_insgesamt += dragosim_deuterium[mom_kurz];
  }
 }

 dragosim_verteidiger_metall_insgesamt   = 0;
 dragosim_verteidiger_kristall_insgesamt = 0;

 mom_verteidiger_metall_insgesamt   = 0;
 mom_verteidiger_kristall_insgesamt = 0;

 for (x = 0; x < dragosim_verteidiger_objekt.length; x++) {
  mom_kurz = dragosim_verteidiger_objekt[x];
  if (dragosim_art[mom_kurz] == 'verteidigung' && document.getElementById('def_ins_tf').checked == false) {
   mom_verteidiger_metall_insgesamt    += dragosim_metall[mom_kurz];
   mom_verteidiger_kristall_insgesamt  += dragosim_kristall[mom_kurz];
  } else {
   dragosim_verteidiger_metall_insgesamt    += dragosim_metall[mom_kurz];
   dragosim_verteidiger_kristall_insgesamt  += dragosim_kristall[mom_kurz];
  }
 }

 mom_angreifer_metall_insgesamt_kaputt = mom_angreifer_metall_insgesamt_vorher - mom_angreifer_metall_insgesamt - dragosim_angreifer_metall_insgesamt;
 mom_angreifer_kristall_insgesamt_kaputt = mom_angreifer_kristall_insgesamt_vorher - mom_angreifer_kristall_insgesamt - dragosim_angreifer_kristall_insgesamt;

 mom_verteidiger_metall_insgesamt_kaputt = mom_verteidiger_metall_insgesamt_vorher - mom_verteidiger_metall_insgesamt - dragosim_verteidiger_metall_insgesamt;
 mom_verteidiger_kristall_insgesamt_kaputt = mom_verteidiger_kristall_insgesamt_vorher - mom_verteidiger_kristall_insgesamt - dragosim_verteidiger_kristall_insgesamt;

 dragosim_angreifer_metall_insgesamt_kaputt     = dragosim_angreifer_metall_insgesamt_vorher - dragosim_angreifer_metall_insgesamt;
 dragosim_angreifer_kristall_insgesamt_kaputt   = dragosim_angreifer_kristall_insgesamt_vorher - dragosim_angreifer_kristall_insgesamt;
 dragosim_angreifer_deuterium_insgesamt_kaputt   = dragosim_angreifer_deuterium_insgesamt_vorher - dragosim_angreifer_deuterium_insgesamt;

 dragosim_verteidiger_metall_insgesamt_kaputt     = dragosim_verteidiger_metall_insgesamt_vorher - dragosim_verteidiger_metall_insgesamt;
 dragosim_verteidiger_kristall_insgesamt_kaputt   = dragosim_verteidiger_kristall_insgesamt_vorher - dragosim_verteidiger_kristall_insgesamt;

 dragosim_metall_insgesamt_kaputt   = Math.floor(0.3 * (dragosim_angreifer_metall_insgesamt_kaputt + dragosim_verteidiger_metall_insgesamt_kaputt));
 dragosim_kristall_insgesamt_kaputt = Math.floor(0.3 * (dragosim_angreifer_kristall_insgesamt_kaputt + dragosim_verteidiger_kristall_insgesamt_kaputt));

 mom_recycler = (dragosim_metall_insgesamt_kaputt + dragosim_kristall_insgesamt_kaputt) / 20000;

 if (String(mom_recycler).indexOf('.') != -1) {
  mom_recycler = Number(String(mom_recycler).substring(0,String(mom_recycler).indexOf('.'))) + 1;
 }
 if (mom_recycler == 1) {
  mom_recycler = mom_recycler+'<span class=spacer> </span>Recycler';
 } else {
  mom_recycler = mom_recycler+'<span class=spacer> </span>Recyclern';
 }

// set('truemmerfeld','innerhtml','Ein Trümmerfeld aus '+dragosim_k(dragosim_metall_insgesamt_kaputt)+'<span class=spacer> </span>Metall '+dragosim_k(dragosim_kristall_insgesamt_kaputt)+'<span class=spacer> </span>Kristall könnte nun von '+mom_recycler+'<span class=spacer> </span>gesammelt werden.');

 mom_mondchance = 0;

 if (mom_recycler.indexOf(0) == 0) {
  set('truemmerfeld','innerhtml','Kein Trümmerfeld vorhanden.');
  set('mondchance','innerhtml','Kein Trümmerfeld vorhanden.');
  set('verluste','innerhtml','Keine Verluste vorhanden.');
 } else {
  if (dragosim_angreifer_metall_insgesamt_kaputt > 0 && dragosim_angreifer_kristall_insgesamt_kaputt == 0) {
   set('truemmerfeld','innerhtml',dragosim_dk(dragosim_metall_insgesamt_kaputt)+'<span class=spacer> </span>Metall &#040 '+dragosim_dk(dragosim_metall_insgesamt_kaputt/dragosim_angreifer_metall_insgesamt_kaputt*100)+'&#037&#041, '+dragosim_dk(dragosim_kristall_insgesamt_kaputt)+'<span class=spacer> </span>Kristall ~ '+mom_recycler);
  } else if (dragosim_angreifer_metall_insgesamt_kaputt == 0 && dragosim_angreifer_kristall_insgesamt_kaputt > 0) {
   set('truemmerfeld','innerhtml',dragosim_dk(dragosim_metall_insgesamt_kaputt)+'<span class=spacer> </span>Metall, '+dragosim_dk(dragosim_kristall_insgesamt_kaputt)+'<span class=spacer> </span>Kristall &#040 '+dragosim_dk(dragosim_kristall_insgesamt_kaputt/dragosim_angreifer_kristall_insgesamt_kaputt*100)+'&#037&#041 ~ '+mom_recycler);
  } else if (dragosim_angreifer_metall_insgesamt_kaputt == 0 && dragosim_angreifer_kristall_insgesamt_kaputt == 0) {
   set('truemmerfeld','innerhtml',dragosim_dk(dragosim_metall_insgesamt_kaputt)+'<span class=spacer> </span>Metall, '+dragosim_dk(dragosim_kristall_insgesamt_kaputt)+'<span class=spacer> </span>Kristall ~ '+mom_recycler);
  } else {
   set('truemmerfeld','innerhtml',dragosim_dk(dragosim_metall_insgesamt_kaputt)+'<span class=spacer> </span>Metall &#040 '+dragosim_dk(dragosim_metall_insgesamt_kaputt/dragosim_angreifer_metall_insgesamt_kaputt*100)+'&#037&#041, '+dragosim_dk(dragosim_kristall_insgesamt_kaputt)+'<span class=spacer> </span>Kristall &#040 '+dragosim_dk(dragosim_kristall_insgesamt_kaputt/dragosim_angreifer_kristall_insgesamt_kaputt*100)+'&#037&#041 ~ '+mom_recycler);
  }

  // Mondbildung

  mom_mondchance = Math.floor((dragosim_metall_insgesamt_kaputt + dragosim_kristall_insgesamt_kaputt) / 100000);

  if (mom_mondchance > 20) {
   mom_mondchance = 20;
  }

  if (mom_mondchance == 0) {
   set('mondchance','innerhtml','Zu wenig Trümmer vorhanden.');
  } else {
   set('mondchance','innerhtml','Mit '+mom_mondchance+'% Wahrscheinlichkeit bildet sich ein Mond.');
  }

  // Verluste Angreifer

  if (dragosim_angreifer_metall_insgesamt_kaputt + dragosim_angreifer_kristall_insgesamt_kaputt == 0) {
   set('verluste','innerhtml','Keine Verluste vorhanden.');
  } else {
   set('verluste','innerhtml',dragosim_dk(dragosim_angreifer_metall_insgesamt_kaputt)+'<span class=spacer> </span>Metall, '+dragosim_dk(dragosim_angreifer_kristall_insgesamt_kaputt)+'<span class=spacer> </span>Kristall und '+dragosim_dk(dragosim_angreifer_deuterium_insgesamt_kaputt)+'<span class=spacer> </span>Deuterium');
  }
 }

 // Rohstoffbeute

 mom_transporter = 'Transporter';

 dragosim_scanbericht_metall_insgesamt    = Math.floor(0.5 * dragosim_scanbericht_metall);
 dragosim_scanbericht_kristall_insgesamt  = Math.floor(0.5 * dragosim_scanbericht_kristall);
 dragosim_scanbericht_deuterium_insgesamt = Math.floor(0.5 * dragosim_scanbericht_deuterium);

 mom_kleiner_transporter = (dragosim_scanbericht_metall_insgesamt + dragosim_scanbericht_kristall_insgesamt + dragosim_scanbericht_deuterium_insgesamt) / 5000;

 dragosim_scanbericht_metall_erbeutet    = 0;
 dragosim_scanbericht_kristall_erbeutet  = 0;
 dragosim_scanbericht_deuterium_erbeutet = 0;

 dragosim_angreifer_transport_verbraucht = 0;

 if (dragosim_scanbericht_metall_insgesamt < dragosim_angreifer_transport_insgesamt / 3){
  dragosim_scanbericht_metall_erbeutet = dragosim_scanbericht_metall_insgesamt;
 } else {
  dragosim_scanbericht_metall_erbeutet = dragosim_angreifer_transport_insgesamt / 3;
 }

 dragosim_angreifer_transport_insgesamt -= dragosim_scanbericht_metall_erbeutet;

 if (dragosim_scanbericht_kristall_insgesamt < dragosim_angreifer_transport_insgesamt / 2){
  dragosim_scanbericht_kristall_erbeutet = dragosim_scanbericht_kristall_insgesamt;
 } else {
  dragosim_scanbericht_kristall_erbeutet = dragosim_angreifer_transport_insgesamt / 2;
 }

 dragosim_angreifer_transport_insgesamt -= dragosim_scanbericht_kristall_erbeutet;

 if (dragosim_scanbericht_deuterium_insgesamt < dragosim_angreifer_transport_insgesamt){
  dragosim_scanbericht_deuterium_erbeutet = dragosim_scanbericht_deuterium_insgesamt;
 } else {
  dragosim_scanbericht_deuterium_erbeutet = dragosim_angreifer_transport_insgesamt;
 }

 dragosim_angreifer_transport_insgesamt -= dragosim_scanbericht_deuterium_erbeutet;

 if (dragosim_scanbericht_metall_insgesamt - dragosim_scanbericht_metall_erbeutet < dragosim_angreifer_transport_insgesamt / 2){
  dragosim_scanbericht_metall_erbeutet += dragosim_scanbericht_metall_insgesamt - dragosim_scanbericht_metall_erbeutet;
  dragosim_angreifer_transport_insgesamt -=  dragosim_scanbericht_metall_insgesamt - dragosim_scanbericht_metall_erbeutet;
 } else {
  dragosim_scanbericht_metall_erbeutet += dragosim_angreifer_transport_insgesamt / 2;
  dragosim_angreifer_transport_insgesamt -= dragosim_angreifer_transport_insgesamt / 2;
 }
 if (dragosim_scanbericht_kristall_insgesamt - dragosim_scanbericht_kristall_erbeutet < dragosim_angreifer_transport_insgesamt){
  dragosim_scanbericht_kristall_erbeutet += dragosim_scanbericht_kristall_insgesamt - dragosim_scanbericht_kristall_erbeutet;
  dragosim_angreifer_transport_insgesamt -= dragosim_scanbericht_kristall_insgesamt - dragosim_scanbericht_kristall_erbeutet;
 } else {
  dragosim_scanbericht_kristall_erbeutet += dragosim_angreifer_transport_insgesamt;
  dragosim_angreifer_transport_insgesamt -= dragosim_angreifer_transport_insgesamt;
 }

 dragosim_scanbericht_metall_erbeutet    = Math.floor(dragosim_scanbericht_metall_erbeutet);
 dragosim_scanbericht_kristall_erbeutet  = Math.floor(dragosim_scanbericht_kristall_erbeutet);
 dragosim_scanbericht_deuterium_erbeutet = Math.floor(dragosim_scanbericht_deuterium_erbeutet);

/*
 dragosim_scanbericht_transport_min = dragosim_scanbericht_deuterium_insgesamt;

 if (dragosim_scanbericht_kristall_insgesamt < dragosim_scanbericht_transport_min) {
  dragosim_scanbericht_transport_min = dragosim_scanbericht_kristall_insgesamt;
 }

 if (dragosim_scanbericht_metall_insgesamt < dragosim_scanbericht_transport_min) {
  dragosim_scanbericht_transport_min = dragosim_scanbericht_metall_insgesamt;
 }

 if (Math.floor(dragosim_angreifer_transport_insgesamt / 3) < dragosim_scanbericht_transport_min) {
  dragosim_scanbericht_transport_min = Math.floor(dragosim_angreifer_transport_insgesamt / 3);
 }

 dragosim_scanbericht_metall_erbeutet    = dragosim_scanbericht_transport_min;
 dragosim_scanbericht_kristall_erbeutet  = dragosim_scanbericht_transport_min;
 dragosim_scanbericht_deuterium_erbeutet = dragosim_scanbericht_transport_min;

 dragosim_angreifer_transport_verbraucht = 3 * dragosim_scanbericht_transport_min;

 dragosim_scanbericht_transport_min = dragosim_scanbericht_deuterium_insgesamt - dragosim_scanbericht_deuterium_erbeutet;
 if (dragosim_angreifer_transport_verbraucht < dragosim_angreifer_transport_insgesamt && dragosim_scanbericht_transport_min > 0) {
  if (dragosim_angreifer_transport_insgesamt - dragosim_angreifer_transport_verbraucht < dragosim_scanbericht_transport_min) {
   dragosim_scanbericht_transport_min = dragosim_angreifer_transport_insgesamt - dragosim_angreifer_transport_verbraucht;
  }
  dragosim_scanbericht_deuterium_erbeutet += dragosim_scanbericht_transport_min;
  dragosim_angreifer_transport_verbraucht += dragosim_scanbericht_transport_min;
 }

 dragosim_scanbericht_transport_min = dragosim_scanbericht_kristall_insgesamt - dragosim_scanbericht_kristall_erbeutet;
 if (dragosim_angreifer_transport_verbraucht < dragosim_angreifer_transport_insgesamt && dragosim_scanbericht_transport_min > 0) {
  if (dragosim_angreifer_transport_insgesamt - dragosim_angreifer_transport_verbraucht < dragosim_scanbericht_transport_min) {
   dragosim_scanbericht_transport_min = dragosim_angreifer_transport_insgesamt - dragosim_angreifer_transport_verbraucht;
  }
  dragosim_scanbericht_kristall_erbeutet += dragosim_scanbericht_transport_min;
  dragosim_angreifer_transport_verbraucht += dragosim_scanbericht_transport_min;
 }

 dragosim_scanbericht_transport_min = dragosim_scanbericht_metall_insgesamt - dragosim_scanbericht_metall_erbeutet;
 if (dragosim_angreifer_transport_verbraucht < dragosim_angreifer_transport_insgesamt && dragosim_scanbericht_transport_min > 0) {
  if (dragosim_angreifer_transport_insgesamt - dragosim_angreifer_transport_verbraucht < dragosim_scanbericht_transport_min) {
   dragosim_scanbericht_transport_min = dragosim_angreifer_transport_insgesamt - dragosim_angreifer_transport_verbraucht;
  }
  dragosim_scanbericht_metall_erbeutet += dragosim_scanbericht_transport_min;
  dragosim_angreifer_transport_verbraucht += dragosim_scanbericht_transport_min;
 }

 dragosim_angreifer_transport_frei = dragosim_angreifer_transport_insgesamt - dragosim_scanbericht_metall_erbeutet - dragosim_scanbericht_kristall_erbeutet - dragosim_scanbericht_deuterium_erbeutet;

 dragosim_angreifer_transport_genutzt = 100 * dragosim_angreifer_transport_verbraucht/(dragosim_scanbericht_metall_insgesamt + dragosim_scanbericht_kristall_insgesamt + dragosim_scanbericht_deuterium_insgesamt);
*/
 dragosim_angreifer_transport_frei = dragosim_angreifer_transport_insgesamt;

 dragosim_angreifer_transport_genutzt = 100 * (dragosim_scanbericht_metall_erbeutet + dragosim_scanbericht_kristall_erbeutet + dragosim_scanbericht_deuterium_erbeutet)/(dragosim_scanbericht_metall_insgesamt + dragosim_scanbericht_kristall_insgesamt + dragosim_scanbericht_deuterium_insgesamt);

// alert('M: '+dragosim_scanbericht_metall_erbeutet+'; K: '+dragosim_scanbericht_kristall_erbeutet+'; D: '+dragosim_scanbericht_deuterium_erbeutet);

 if (String(mom_kleiner_transporter).indexOf('.') != -1) {
  mom_kleiner_transporter = Number(String(mom_kleiner_transporter).substring(0,String(mom_kleiner_transporter).indexOf('.'))) + 1;
 }
 mom_kleiner_transporter = mom_kleiner_transporter+'<span class=spacer> </span>kleinen';

 mom_grosser_transporter = (dragosim_scanbericht_metall_insgesamt + dragosim_scanbericht_kristall_insgesamt + dragosim_scanbericht_deuterium_insgesamt) / 25000;

 if (String(mom_grosser_transporter).indexOf('.') != -1) {
  mom_grosser_transporter = Number(String(mom_grosser_transporter).substring(0,String(mom_grosser_transporter).indexOf('.'))) + 1;
 }
 if (mom_grosser_transporter == 1) {
  mom_grosser_transporter = mom_grosser_transporter+'<span class=spacer> </span>großen Transporter';
 } else {
  mom_grosser_transporter = mom_grosser_transporter+'<span class=spacer> </span>großen Transportern';
 }

 // Beute (theoretisch)

 if (dragosim_scanbericht_vorhanden == 1) {
  set('scan','innerhtml',dragosim_scanbericht_scan);
//  set('beute','innerhtml','Eine Beute aus '+dragosim_k(dragosim_scanbericht_metall_insgesamt)+'<span class=spacer> </span>Metall '+dragosim_k(dragosim_scanbericht_kristall_insgesamt)+'<span class=spacer> </span>Kristall '+dragosim_k(dragosim_scanbericht_deuterium_insgesamt)+'<span class=spacer> </span>Deuterium könnte nun von '+mom_kleiner_transporter+'<span class=spacer> </span>oder '+mom_grosser_transporter+'<span class=spacer> </span>mitgenommen werden.');
  set('beute','innerhtml',dragosim_dk(dragosim_scanbericht_metall_insgesamt)+'<span class=spacer> </span>Metall, '+dragosim_dk(dragosim_scanbericht_kristall_insgesamt)+'<span class=spacer> </span>Kristall, '+dragosim_dk(dragosim_scanbericht_deuterium_insgesamt)+'<span class=spacer> </span>Deuterium ~ '+mom_grosser_transporter);
 } else {
  set('scan','innerhtml','Kein Scanbericht vorhanden');
  set('beute','innerhtml','Kein Scanbericht vorhanden.');
 }

 // Beute (praktisch)

 if (dragosim_ausgang == 'gewonnen') {
  if (dragosim_scanbericht_vorhanden == 1) {
/*   set('beute_praktisch','innerhtml','Eine effektive Beute aus '+dragosim_k(dragosim_scanbericht_metall_erbeutet)+'<span class=spacer> </span>Metall '+dragosim_k(dragosim_scanbericht_kristall_erbeutet)+'<span class=spacer> </span>Kristall '+dragosim_k(dragosim_scanbericht_deuterium_erbeutet)+'<span class=spacer> </span>Deuterium kann mitgenommen werden, wobei '+
  dragosim_k(dragosim_angreifer_transport_frei)+'<span class=spacer> </span>Laderaum für Sprit frei bleibt (entspricht ' +dragosim_k(dragosim_angreifer_transport_genutzt)+'<span class=spacer> </span>% der möglichen Beute).');
*/
   set('beute_praktisch','innerhtml',dragosim_dk(dragosim_scanbericht_metall_erbeutet)+'<span class=spacer> </span>Metall, '+dragosim_dk(dragosim_scanbericht_kristall_erbeutet)+'<span class=spacer> </span>Kristall, '+dragosim_dk(dragosim_scanbericht_deuterium_erbeutet)+'<span class=spacer> </span>Deuterium ~ '+dragosim_dk(dragosim_angreifer_transport_genutzt)+'% Ausbeute + '+dragosim_dk(dragosim_angreifer_transport_frei)+'<span class=spacer> </span>Sprit');
  } else {
   set('beute_praktisch','innerhtml','Kein Scanbericht vorhanden.');
  }
 } else {
  set('beute_praktisch','innerhtml','Keine Beute möglich.');
 }

 // Ausgang

 if (dragosim_runde == 2) {
  mom_runde = (dragosim_runde - 1)+'<span class=spacer> </span>Runde';
 } else {
  mom_runde = (dragosim_runde - 1)+'<span class=spacer> </span>Runden';
 }
/*
 if (dragosim_runde <= 4) {
  mom_art = ' nach ';
 } else {
  if (dragosim_runde <= 5) {
   mom_art = ' normal nach ';
  } else {
   mom_art = ' knapp nach ';
  }
 }
*/

 dragosim_ob += "</center>";

 // db

 dragosim_db += "<br><hr><br><b>Ergebnis</b><br><br></center>";

 mom_art = ' nach ';
 if (dragosim_ausgang == 'unentschieden') {
  mom_ausgang = 'Der Kampf geht unentschieden aus';
  dragosim_ob += "<p>Die Schlacht endet unentschieden, beide Flotten ziehen sich auf ihre Heimatplaneten zurück"

  // db

  dragosim_db += "<p>Die Schlacht endet <b>unentschieden</b>, beide Flotten ziehen sich auf ihre Heimatplaneten zurück"
 }
 if (dragosim_ausgang == 'gewonnen') {
  mom_ausgang = 'Der Angreifer gewinnt den Kampf';
  dragosim_ob += "<p>Der Angreifer hat die Schlacht gewonnen!<br>Er erbeutet " +
                 dragosim_ok(dragosim_scanbericht_metall_erbeutet) + "<span class=spacer> </span>Metall, " +
                 dragosim_ok(dragosim_scanbericht_kristall_erbeutet) + "<span class=spacer> </span>Kristall und " +
                 dragosim_ok(dragosim_scanbericht_deuterium_erbeutet) + "<span class=spacer> </span>Deuterium.";
  // db

  dragosim_db += "<p>Der <b>Angreifer</b><span class=spacer> </span>hat die Schlacht gewonnen!<br>Er erbeutet " +
                 dragosim_db_a(dragosim_dk(dragosim_scanbericht_metall_erbeutet)) + "<span class=spacer> </span>Metall, " +
                 dragosim_db_a(dragosim_dk(dragosim_scanbericht_kristall_erbeutet)) + "<span class=spacer> </span>Kristall und " +
                 dragosim_db_a(dragosim_dk(dragosim_scanbericht_deuterium_erbeutet)) + "<span class=spacer> </span>Deuterium.";
 }
 if (dragosim_ausgang == 'verloren') {
  mom_ausgang = 'Der Verteidiger gewinnt den Kampf';
  dragosim_ob += "<p>Der Verteidiger hat die Schlacht gewonnen!";

  // db

  dragosim_db += "<p>Der <b>Verteidiger</b><span class=spacer> </span>hat die Schlacht gewonnen!";
 }
 set('ausgang','innerhtml',mom_ausgang+mom_art+mom_runde+'.');
 dragosim_ob += "<p>Der Angreifer hat insgesamt " + dragosim_ok(mom_angreifer_metall_insgesamt_kaputt + mom_angreifer_kristall_insgesamt_kaputt) + "<span class=spacer> </span>Units verloren.";
 dragosim_ob += "<br>Der Verteidiger hat insgesamt " + dragosim_ok(mom_verteidiger_metall_insgesamt_kaputt + mom_verteidiger_kristall_insgesamt_kaputt) + "<span class=spacer> </span>Units verloren.";
 dragosim_ob += "<br>Auf diesen Raumkoordinaten liegen nun " + dragosim_ok(dragosim_metall_insgesamt_kaputt) + "<span class=spacer> </span>Metall";
 dragosim_ob += "<span class=spacer> </span>und " + dragosim_ok(dragosim_kristall_insgesamt_kaputt) + "<span class=spacer> </span>Kristall. ";

 // db

 dragosim_db += "<p>Der <b>Angreifer</b><span class=spacer> </span>hat insgesamt " + dragosim_db_a(dragosim_dk(mom_angreifer_metall_insgesamt_kaputt + mom_angreifer_kristall_insgesamt_kaputt)) + "<span class=spacer> </span>Units verloren.";
 dragosim_db += "<br>Der <b>Verteidiger</b><span class=spacer> </span>hat insgesamt " + dragosim_db_v(dragosim_dk(mom_verteidiger_metall_insgesamt_kaputt + mom_verteidiger_kristall_insgesamt_kaputt)) + "<span class=spacer> </span>Units verloren.";
 dragosim_db += "<br><br>Auf diesen Raumkoordinaten liegen nun <b>" + dragosim_dk(dragosim_metall_insgesamt_kaputt) + "</b><span class=spacer> </span> Metall";
 dragosim_db += "<span class=spacer> </span>und <b>" + dragosim_dk(dragosim_kristall_insgesamt_kaputt) + "</b><span class=spacer> </span>Kristall. ";

 if (mom_mondchance > 0) {
  dragosim_ob += "<br><br>Die Chance einer Mondentstehung beträgt " + mom_mondchance + "%";

  // db

  dragosim_db += "<br><br>Die Chance einer <b>Mondentstehung</b><span class=spacer> </span>beträgt <b>" + dragosim_db_v(mom_mondchance) + "</b>%";
  dragosim_db += "<br>Die enormen Mengen an freiem Metall und Kristall könnten sich anziehen und einen Trabanten um den Planeten formen.";
 }

  dragosim_db += "<br><br>Ca. " + dragosim_db_v(70) + "% der <b>Verteidigungsanlagen</b><span class=spacer> </span>könnten wieder repariert werden.";

/*
 while (dragosim_runde <= 6) {
  dragosim_nicht_gespielt_anzeigen(dragosim_runde);
  dragosim_runde++;
 }
*/
 set('dragosim_ob','innerhtml',dragosim_ob);
 set('dragosim_db','innerhtml',dragosim_db);
// alert('DragoSim: Ende');
}

// Tabelle fuer Angreifer

function dragosim_tabelle_angreifer() {
 if (dragosim_angreifer_objekt.length == 0) {
  dragosim_ob += '<br><b>Vernichtet</b><br>';
  return;
 }
 dragosim_ob += '<table border=1><tr><th>Typ</th>';
 for (x = 3; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];
  if (dragosim_angreifer_anzahl[mom_kurz] > 0) {
   dragosim_ob += '<th>' + dragosim_kbs[mom_kurz] + '</th>';
  }
 }
 dragosim_ob += '</tr><tr><th>Anz.</th>';
 for (x = 3; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];
  if (dragosim_angreifer_anzahl[mom_kurz] > 0) {
   dragosim_ob += '<th>' + dragosim_ok(dragosim_angreifer_anzahl[mom_kurz]) + '</th>';
  }
 }
 dragosim_ob += '</tr><tr><th>Bewaff.</th>';
 for (x = 3; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];
  if (dragosim_angreifer_anzahl[mom_kurz] > 0) {
   dragosim_ob += '<th>' + dragosim_ok(dragosim_angreifer_angriff[mom_kurz]) + '</th>';
  }
 }
 dragosim_ob += '</tr><tr><th>Schilde</th>';
 for (x = 3; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];
  if (dragosim_angreifer_anzahl[mom_kurz] > 0) {
   dragosim_ob += '<th>' + dragosim_ok(dragosim_angreifer_schild[mom_kurz]) + '</th>';
  }
 }
 dragosim_ob += '</tr><tr><th>Hülle</th>';
 for (x = 3; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];
  if (dragosim_angreifer_anzahl[mom_kurz] > 0) {
   dragosim_ob += '<th>' + dragosim_ok(dragosim_angreifer_huelle[mom_kurz]) + '</th>';
  }
 }
 dragosim_ob += '</tr></table>';
}

// Tabelle fuer Verteidiger

function dragosim_tabelle_verteidiger() {
 if (dragosim_verteidiger_objekt.length == 0) {
  dragosim_ob += '<br><b>Vernichtet</b><br>';
  return;
 }
 dragosim_ob += '<table border=1><tr><th>Typ</th>';
 for (x = 3; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];
  if (dragosim_verteidiger_anzahl[mom_kurz] > 0) {
   dragosim_ob += '<th>' + dragosim_kbs[mom_kurz] + '</th>';
  }
 }
 dragosim_ob += '</tr><tr><th>Anz.</th>';
 for (x = 3; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];
  if (dragosim_verteidiger_anzahl[mom_kurz] > 0) {
   dragosim_ob += '<th>' + dragosim_ok(dragosim_verteidiger_anzahl[mom_kurz]) + '</th>';
  }
 }
 dragosim_ob += '</tr><tr><th>Bewaff.</th>';
 for (x = 3; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];
  if (dragosim_verteidiger_anzahl[mom_kurz] > 0) {
   dragosim_ob += '<th>' + dragosim_ok(dragosim_verteidiger_angriff[mom_kurz]) + '</th>';
  }
 }
 dragosim_ob += '</tr><tr><th>Schilde</th>';
 for (x = 3; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];
  if (dragosim_verteidiger_anzahl[mom_kurz] > 0) {
   dragosim_ob += '<th>' + dragosim_ok(dragosim_verteidiger_schild[mom_kurz]) + '</th>';
  }
 }
 dragosim_ob += '</tr><tr><th>Hülle</th>';
 for (x = 3; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];
  if (dragosim_verteidiger_anzahl[mom_kurz] > 0) {
   dragosim_ob += '<th>' + dragosim_ok(dragosim_verteidiger_huelle[mom_kurz]) + '</th>';
  }
 }
 dragosim_ob += '</tr></table>';
}

// Tabelle fuer Angreifer fuer DragoSim (Anzahl)

function dragosim_tabelle_angreifer_db(sub) {
 if (dragosim_angreifer_objekt.length == 0) {
  dragosim_db += '<br><b>Vernichtet</b><br>';
  return;
 }
 dragosim_db += '<table border=0 cellspacing=3 cellpadding=2 class="main"><tr><td class="spezial"><b>Typ</b></td>';
 for (x = 3; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];
  if (dragosim_angreifer_anzahl[mom_kurz] > 0) {
   dragosim_db += '<td class="spezial"><b>' + dragosim_kbs[mom_kurz] + '</b></td>';
  }
 }
 dragosim_db += '</tr><tr><td class="typ_td"><b>Anz.</b></td>';
 for (x = 3; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];
  if (dragosim_angreifer_anzahl[mom_kurz] > 0) {
   dragosim_db += '<td align="right">' + dragosim_db_a(dragosim_dk(dragosim_angreifer_anzahl[mom_kurz])) + '</td>';
  }
 }
 if (sub) {
  dragosim_tabelle_angreifer_sub_db();
 }
 dragosim_db += '</tr></table>';
}

// Tabelle fuer Angreifer fuer DragoSim (Bewaff., Schilde, Huelle)

function dragosim_tabelle_angreifer_sub_db() {
 dragosim_db += '</tr><tr><td class="typ_td"><b>Bewaff.</b></td>';
 for (x = 3; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];
  if (dragosim_angreifer_anzahl[mom_kurz] > 0) {
   dragosim_db += '<td align="right">' + dragosim_db_a(dragosim_dk(dragosim_angreifer_angriff[mom_kurz])) + '</td>';
  }
 }
 dragosim_db += '</tr><tr><td class="typ_td"><b>Schilde</b></td>';
 for (x = 3; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];
  if (dragosim_angreifer_anzahl[mom_kurz] > 0) {
   dragosim_db += '<td align="right">' + dragosim_db_a(dragosim_dk(dragosim_angreifer_schild[mom_kurz])) + '</td>';
  }
 }
 dragosim_db += '</tr><tr><td class="typ_td"><b>Hülle</b></td>';
 for (x = 3; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];
  if (dragosim_angreifer_anzahl[mom_kurz] > 0) {
   dragosim_db += '<td align="right">' + dragosim_db_a(dragosim_dk(dragosim_angreifer_huelle[mom_kurz])) + '</td>';
  }
 }
}

// Tabelle fuer Verteidiger fuer DragoSim

function dragosim_tabelle_verteidiger_db(sub) {
 if (dragosim_verteidiger_objekt.length == 0) {
  dragosim_db += '<br><b>Vernichtet</b><br>';
  return;
 }
 dragosim_db += '<table border=0 cellspacing=3 cellpadding=2 class="main"><tr><td class="spezial"><b>Typ</b></td>';
 for (x = 3; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];
  if (dragosim_verteidiger_anzahl[mom_kurz] > 0) {
   dragosim_db += '<td class="spezial"><b>' + dragosim_kbs[mom_kurz] + '</b></td>';
  }
 }
 dragosim_db += '</tr><tr><td class="typ_td"><b>Anz.</b></td>';
 for (x = 3; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];
  if (dragosim_verteidiger_anzahl[mom_kurz] > 0) {
   dragosim_db += '<td align="right">' + dragosim_db_v(dragosim_dk(dragosim_verteidiger_anzahl[mom_kurz])) + '</td>';
  }
 }
 if (sub) {
  dragosim_tabelle_verteidiger_sub_db();
 }
 dragosim_db += '</tr></table>';
}

// Tabelle fuer Verteidiger fuer DragoSim (Bewaff., Schilde, Huelle)

function dragosim_tabelle_verteidiger_sub_db() {
 dragosim_db += '</tr><tr><td class="typ_td"><b>Bewaff.</b></td>';
 for (x = 3; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];
  if (dragosim_verteidiger_anzahl[mom_kurz] > 0) {
   dragosim_db += '<td align="right">' + dragosim_db_v(dragosim_dk(dragosim_verteidiger_angriff[mom_kurz])) + '</td>';
  }
 }
 dragosim_db += '</tr><tr><td class="typ_td"><b>Schilde</b></td>';
 for (x = 3; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];
  if (dragosim_verteidiger_anzahl[mom_kurz] > 0) {
   dragosim_db += '<td align="right">' + dragosim_db_v(dragosim_dk(dragosim_verteidiger_schild[mom_kurz])) + '</td>';
  }
 }
 dragosim_db += '</tr><tr><td class="typ_td"><b>Hülle</b></td>';
 for (x = 3; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];
  if (dragosim_verteidiger_anzahl[mom_kurz] > 0) {
   dragosim_db += '<td align="right">' + dragosim_db_v(dragosim_dk(dragosim_verteidiger_huelle[mom_kurz])) + '</td>';
  }
 }
}

// Anzeige Angreifer fuer DragoSim

function dragosim_db_a(text) {
 return (dragosim_db_angreifer_vorher + text + dragosim_db_angreifer_nachher);
}

// Anzeige Verteidiger fuer DragoSim

function dragosim_db_v(text) {
 return (dragosim_db_verteidiger_vorher + text + dragosim_db_verteidiger_nachher);
}
// Ansicht initialisieren

function dragosim_view_init() {
                                                                                                                                                                                                                                                                                                                                                                 dragosim_href = location.href;
 /* Platzhalter */                                                                                                                                                                                                                                                                                                                                                                if(dragosim_href.indexOf('file://') != 0 && parent && parent != window) {
 /* fuer */                                                                                                                                                                                                                                                                                                                                                                alert("Dies ist eine nicht genehmige Anzeige des DragoSim in einem Frameset.\nDaher werden Sie jetzt auf die Originalseite umgeleitet!");
 /* eine */                                                                                                                                                                                                                                                                                                                                                                parent.location.href = 'http://homepages.tu-darmstadt.de/~fritschi/dragosim/dragosim.html' + location.search;
 /* eventuelle */                                                                                                                                                                                                                                                                                                                                                                }
 /* Initialisierung */                                                                                                                                                                                                                                                                                                                                                                if (dragosim_href.indexOf('file://') != 0 && dragosim_href.indexOf('http://homepages.tu-darmstadt.de/~fritschi/dragosim/dragosim.html') != 0) {
 /* der */                                                                                                                                                                                                                                                                                                                                                                 alert("Dies ist eine nicht genehmigte gespiegelte Version des DragoSim.\nDaher werden Sie jetzt auf die Originalseite umgeleitet!");
 /* Anzeige */                                                                                                                                                                                                                                                                                                                                                                 parent.location.href = 'http://homepages.tu-darmstadt.de/~fritschi/dragosim/dragosim.html' + location.search;
                                                                                                                                                                                                                                                                                                                                                                 }
}


// Initialisierung der Anzahl

function dragosim_initialisieren() {

 /* Arrays neu erstellen */
 // Angreifer

 dragosim_angreifer_anzahl   = new Array();

 dragosim_angreifer_angriff      = new Array();
 dragosim_angreifer_schild       = new Array();
 dragosim_angreifer_verteidigung = new Array();

 dragosim_angreifer_objekt           = new Array();
 dragosim_angreifer_schaden          = new Array();
 dragosim_angreifer_rundenschaden    = new Array();
 dragosim_angreifer_rundenschild     = new Array();
 dragosim_angreifer_rundenexplosion  = new Array();

 // Verteidiger

 dragosim_verteidiger_anzahl   = new Array();

 dragosim_verteidiger_angriff      = new Array();
 dragosim_verteidiger_schild       = new Array();
 dragosim_verteidiger_verteidigung = new Array();

 dragosim_verteidiger_objekt           = new Array();
 dragosim_verteidiger_schaden          = new Array();
 dragosim_verteidiger_rundenschaden    = new Array();
 dragosim_verteidiger_rundenschild     = new Array();
 dragosim_verteidiger_rundenexplosion  = new Array();

 /* Variablen auf 0 setzen */
 // Angreifer

 dragosim_angreifer_anzahl_insgesamt    = 0;
 dragosim_angreifer_angriff_insgesamt   = 0;
 dragosim_angreifer_schild_insgesamt    = 0;
 dragosim_angreifer_huelle_insgesamt  = 0;
 dragosim_angreifer_angriff_effektiv_insgesamt   = 0;
 dragosim_angreifer_schild_effektiv_insgesamt    = 0;
 dragosim_angreifer_huelle_effektiv_insgesamt    = 0;
 dragosim_angreifer_metall_insgesamt    = 0;
 dragosim_angreifer_kristall_insgesamt  = 0;
 dragosim_angreifer_deuterium_insgesamt = 0;
 dragosim_angreifer_transport_insgesamt = 0;

 // Verteidiger

 dragosim_verteidiger_anzahl_insgesamt    = 0;
 dragosim_verteidiger_angriff_insgesamt   = 0;
 dragosim_verteidiger_schild_insgesamt    = 0;
 dragosim_verteidiger_huelle_insgesamt  = 0;
 dragosim_verteidiger_angriff_effektiv_insgesamt   = 0;
 dragosim_verteidiger_schild_effektiv_insgesamt    = 0;
 dragosim_verteidiger_huelle_effektiv_insgesamt    = 0;
 dragosim_verteidiger_metall_insgesamt    = 0;
 dragosim_verteidiger_kristall_insgesamt  = 0;
 dragosim_verteidiger_deuterium_insgesamt = 0;

 /* Werte zuweisen */
 // Forschungsanzahl

 for (x = 0; x < 3; x++) {
  mom_kurz = dragosim_kurz[x];
  mom_a = parseInt(get('0_a_' + mom_kurz,'value'));
  mom_v = parseInt(get('0_v_' + mom_kurz,'value'));
  if (isNaN(mom_a) == 1 || mom_a < 0) {
   dragosim_angreifer_anzahl[mom_kurz] = 0;
  } else {
   dragosim_angreifer_anzahl[mom_kurz] = mom_a;
  }
  if (isNaN(mom_v) == 1 || mom_v < 0) {
   dragosim_verteidiger_anzahl[mom_kurz] = 0;
  } else {
   dragosim_verteidiger_anzahl[mom_kurz] = mom_v;
  }
 }


 mom_angreifer_angriff = (1 + (dragosim_angreifer_anzahl['w_t'] * dragosim_forschungsbonus));
 mom_angreifer_schild = (1 + (dragosim_angreifer_anzahl['s_t'] * dragosim_forschungsbonus));
 mom_angreifer_huelle = (1 + (dragosim_angreifer_anzahl['r_p'] * dragosim_forschungsbonus));

 mom_verteidiger_angriff = (1 + (dragosim_verteidiger_anzahl['w_t'] * dragosim_forschungsbonus));
 mom_verteidiger_schild = (1 + (dragosim_verteidiger_anzahl['s_t'] * dragosim_forschungsbonus));
 mom_verteidiger_huelle = (1 + (dragosim_verteidiger_anzahl['r_p'] * dragosim_forschungsbonus));

 for (x = 3; x < dragosim_kurz.length; x++) {
  mom_kurz = dragosim_kurz[x];

 // Angriffs-, Schild- und Verteidigungswerte

  dragosim_angreifer_angriff[mom_kurz]  = dragosim_angriff[mom_kurz] * mom_angreifer_angriff;
  dragosim_angreifer_schild[mom_kurz]   = dragosim_schild[mom_kurz] * mom_angreifer_schild;
  dragosim_angreifer_huelle[mom_kurz]   = dragosim_huelle[mom_kurz] * mom_angreifer_huelle;

  dragosim_verteidiger_angriff[mom_kurz]  = dragosim_angriff[mom_kurz] * mom_verteidiger_angriff;
  dragosim_verteidiger_schild[mom_kurz]   = dragosim_schild[mom_kurz] * mom_verteidiger_schild;
  dragosim_verteidiger_huelle[mom_kurz]   = dragosim_huelle[mom_kurz] * mom_verteidiger_huelle;

 // Flotten- und Verteidigungsanzahl

  mom_a = parseInt(get('0_a_' + mom_kurz,'value'));
  mom_v = parseInt(get('0_v_' + mom_kurz,'value'));
  if (isNaN(mom_a) == 1 || mom_a < 0) {
   dragosim_angreifer_anzahl[mom_kurz] = 0;
   mom_a = 0;
  } else {
   dragosim_angreifer_anzahl[mom_kurz] = mom_a;
  }
  mom_o = dragosim_angreifer_objekt.length;
  for (y = 0; y < mom_a; y++) {
   dragosim_angreifer_objekt[mom_o + y]  = mom_kurz;
   dragosim_angreifer_schaden[mom_o + y] = 0;
  }
  if (isNaN(mom_v) == 1 || mom_v < 0) {
   dragosim_verteidiger_anzahl[mom_kurz] = 0;
   mom_v = 0;
  } else {
   dragosim_verteidiger_anzahl[mom_kurz] = mom_v;
  }
  mom_o = dragosim_verteidiger_objekt.length;
  for (y = 0; y < mom_v; y++) {
   dragosim_verteidiger_objekt[mom_o + y]  = mom_kurz;
   dragosim_verteidiger_schaden[mom_o + y] = 0;
  }

 // Gesamtanzahl

  dragosim_angreifer_anzahl_insgesamt    += mom_a;
  dragosim_angreifer_angriff_insgesamt   += mom_a * dragosim_angreifer_angriff[mom_kurz];
  dragosim_angreifer_schild_insgesamt    += mom_a * dragosim_angreifer_schild[mom_kurz];
  dragosim_angreifer_huelle_insgesamt    += mom_a * dragosim_angreifer_huelle[mom_kurz];
  dragosim_angreifer_metall_insgesamt    += mom_a * dragosim_metall[mom_kurz];
  dragosim_angreifer_kristall_insgesamt  += mom_a * dragosim_kristall[mom_kurz];
  dragosim_angreifer_deuterium_insgesamt += mom_a * dragosim_deuterium[mom_kurz];
  dragosim_angreifer_transport_insgesamt += mom_a * dragosim_transport[mom_kurz];

  dragosim_verteidiger_anzahl_insgesamt    += mom_v;
  dragosim_verteidiger_angriff_insgesamt   += mom_v * dragosim_verteidiger_angriff[mom_kurz];
  dragosim_verteidiger_schild_insgesamt    += mom_v * dragosim_verteidiger_schild[mom_kurz];
  dragosim_verteidiger_huelle_insgesamt    += mom_v * dragosim_verteidiger_huelle[mom_kurz];
  dragosim_verteidiger_metall_insgesamt    += mom_v * dragosim_metall[mom_kurz];
  dragosim_verteidiger_kristall_insgesamt  += mom_v * dragosim_kristall[mom_kurz];
  dragosim_verteidiger_deuterium_insgesamt += mom_v * dragosim_deuterium[mom_kurz];
 }
}

// Berechnung einer Runde

function dragosim_berechnen(runde) {
 var curdam;

 /* Arrays neu erstellen */

 for (x = 0; x < dragosim_angreifer_objekt.length; x++) {
  mom_kurz = dragosim_angreifer_objekt[x];
  dragosim_angreifer_rundenschaden[x]   = 0;
  dragosim_angreifer_rundenschild[x]    = dragosim_angreifer_schild[mom_kurz];
  dragosim_angreifer_rundenexplosion[x] = 0;
 }
 for (x = 0; x < dragosim_verteidiger_objekt.length; x++) {
  mom_kurz = dragosim_verteidiger_objekt[x];
  dragosim_verteidiger_rundenschaden[x]   = 0;
  dragosim_verteidiger_rundenschild[x]    = dragosim_verteidiger_schild[mom_kurz];
  dragosim_verteidiger_rundenexplosion[x] = 0;
 }

 /* Variablen auf 0 setzen */
 // Angreifer

 dragosim_angreifer_anzahl_insgesamt    = 0;
 dragosim_angreifer_angriff_insgesamt   = 0;
 dragosim_angreifer_schild_insgesamt    = 0;
 dragosim_angreifer_huelle_insgesamt    = 0;
 dragosim_angreifer_angriff_effektiv_insgesamt   = 0;
 dragosim_angreifer_schild_effektiv_insgesamt    = 0;
 dragosim_angreifer_huelle_effektiv_insgesamt    = 0;
 dragosim_angreifer_metall_insgesamt    = 0;
 dragosim_angreifer_kristall_insgesamt  = 0;
 dragosim_angreifer_deuterium_insgesamt = 0;
 dragosim_angreifer_transport_insgesamt = 0;

 // Verteidiger

 dragosim_verteidiger_anzahl_insgesamt    = 0;
 dragosim_verteidiger_angriff_insgesamt   = 0;
 dragosim_verteidiger_schild_insgesamt    = 0;
 dragosim_verteidiger_huelle_insgesamt    = 0;
 dragosim_verteidiger_angriff_effektiv_insgesamt   = 0;
 dragosim_verteidiger_schild_effektiv_insgesamt    = 0;
 dragosim_verteidiger_huelle_effektiv_insgesamt    = 0;
 dragosim_verteidiger_metall_insgesamt    = 0;
 dragosim_verteidiger_kristall_insgesamt  = 0;
 dragosim_verteidiger_deuterium_insgesamt = 0;

 /* Werte zuweisen */
 // Angreifer schiessen

 for (x = 0; x < dragosim_angreifer_objekt.length; x++) {
  mom_kurz = dragosim_angreifer_objekt[x];
  mom_schuesse = 0;
  mom_schuesse_maximal = 1;
  while (mom_schuesse < mom_schuesse_maximal && dragosim_verteidiger_objekt.length > 0) {
   y = parseInt(dragosim_verteidiger_objekt.length * Math.random());
   if (y == dragosim_verteidiger_objekt.length) {
    y--;
   }
   mom_ziel = dragosim_verteidiger_objekt[y];
   // ANFANG korrekte Schildberechnung
   if (dragosim_verteidiger_rundenschild[y] == 0) curdam = dragosim_angreifer_angriff[mom_kurz]; else curdam = Math.floor(dragosim_angreifer_angriff[mom_kurz]/dragosim_verteidiger_schild[mom_ziel]*100)/100*dragosim_verteidiger_schild[mom_ziel];
    if (dragosim_angreifer_angriff[mom_kurz] > dragosim_verteidiger_rundenschild[y]) {
     dragosim_verteidiger_schild_effektiv_insgesamt += dragosim_verteidiger_rundenschild[y];
     dragosim_verteidiger_rundenschaden[y]          += curdam - dragosim_verteidiger_rundenschild[y];
     dragosim_verteidiger_rundenschild[y]            = 0;
    } else {
     dragosim_verteidiger_schild_effektiv_insgesamt += curdam;
     dragosim_verteidiger_rundenschild[y]           -= curdam;
    }  
    if (dragosim_verteidiger_rundenschild[y] != 0) dragosim_verteidiger_schildrund += ((dragosim_angreifer_angriff[mom_kurz]/dragosim_verteidiger_schild[mom_ziel]*100) % 1)/100*dragosim_verteidiger_schild[mom_ziel];
   // ENDE
/*
   // ANFANG falsche Schildberechnung (Schildbug in oGame)
   if (x >= dragosim_verteidiger_objekt.length) {
    dragosim_verteidiger_rundenschild[x] = 0;
   }
   if (dragosim_angreifer_angriff[mom_kurz] > dragosim_verteidiger_rundenschild[x]) {
    dragosim_verteidiger_schild_effektiv_insgesamt += dragosim_verteidiger_rundenschild[x];
    dragosim_verteidiger_rundenschaden[y]          += dragosim_angreifer_angriff[mom_kurz] - dragosim_verteidiger_rundenschild[x];
    dragosim_verteidiger_rundenschild[x]            = 0;
   } else {
    dragosim_verteidiger_schild_effektiv_insgesamt += dragosim_angreifer_angriff[mom_kurz];
    dragosim_verteidiger_rundenschild[x]           -= dragosim_angreifer_angriff[mom_kurz];
   }
   // ENDE
*/
   mom_explosion = dragosim_explosion(dragosim_verteidiger_schaden[y] / dragosim_verteidiger_huelle[mom_ziel], (dragosim_verteidiger_rundenschaden[y] + dragosim_verteidiger_schaden[y]) / dragosim_verteidiger_huelle[mom_ziel]);
   if (Math.random() <= mom_explosion) {
    dragosim_verteidiger_rundenexplosion[y] = 1;
   }
   mom_schuesse++;

   // ANFANG Rapidfire (aktiv fuer Angreifer)
 if (document.getElementById('rapid_angreifer').checked == true) {
   if (mom_ziel == 'sp' && ( mom_kurz != 'sp' ||  mom_kurz != 'so' || mom_kurz != 't')) {
    if (Math.random() <= 0.80) {
     mom_schuesse_maximal++; dragosim_angreifer_mehrfach++;
     continue;
    }
   }
     if (mom_ziel == 'so' && ( mom_kurz != 'sp' ||  mom_kurz != 'so' || mom_kurz != 't')) {
    if (Math.random() <= 0.80) {
     mom_schuesse_maximal++; dragosim_verteidiger_mehrfach++;
     continue;
    }
   }
   if (mom_kurz == 'kr') {
    if (mom_ziel == 'l_j') {
     if (Math.random() <= 0.66) {
      mom_schuesse_maximal++; dragosim_angreifer_mehrfach++;
      continue;
     }
    } else if (mom_ziel == 'ra') {
     if (Math.random() <= 0.90) {
      mom_schuesse_maximal++; dragosim_angreifer_mehrfach++;
      continue;
     }
    }
   }
   if (mom_kurz == 'z' && mom_ziel == 'l_l') {
    if (Math.random() <= 0.90) {
     mom_schuesse_maximal++; dragosim_angreifer_mehrfach++;
     continue;
    }
   }
   if (mom_kurz == 'bo') {
    if (mom_ziel == 'ra' || mom_ziel == 'l_l') {
     if (Math.random() <= 0.95) {
      mom_schuesse_maximal++; dragosim_angreifer_mehrfach++;
      continue;
     }
    } else if (mom_ziel == 's_l' || mom_ziel == 'i') {
     if (Math.random() <= 0.90) {
      mom_schuesse_maximal++; dragosim_angreifer_mehrfach++;
      continue;
     }
    }
   }
   if (mom_kurz == 't') {
    if (mom_ziel == 'z') {
     if (Math.random() <= 0.80) {
      mom_schuesse_maximal++; dragosim_angreifer_mehrfach++;
      continue;
     }
    } else if (mom_ziel == 'kr') {
     if (Math.random() <= 0.97) {
      mom_schuesse_maximal++; dragosim_angreifer_mehrfach++;
      continue;
     }
    }else if (mom_ziel == 'bo') {
     if (Math.random() <= 0.96) {
      mom_schuesse_maximal++; dragosim_angreifer_mehrfach++;
      continue;
     }
    }else if (mom_ziel == 'sc') {
     if (Math.random() <= 0.969) {
      mom_schuesse_maximal++; dragosim_angreifer_mehrfach++;
      continue;
     }
    }else if (mom_ziel == 's_j' || mom_ziel == 'i' || mom_ziel == 's_l' ) {
     if (Math.random() <= 0.99) {
      mom_schuesse_maximal++; dragosim_angreifer_mehrfach++;
      continue;
     }
    }else if (mom_ziel == 'l_j' || mom_ziel == 'ra' || mom_ziel == 'l_l' ) {
     if (Math.random() <= 0.995) {
      mom_schuesse_maximal++; dragosim_angreifer_mehrfach++;
      continue;
     }
    }else if ( mom_ziel == 'g') {
     if (Math.random() <= 0.98) {
      mom_schuesse_maximal++; dragosim_angreifer_mehrfach++;
      continue;
     }
    } else if (mom_ziel == 'ko' || mom_ziel == 're' || mom_ziel == 'sp' || mom_ziel == 'so' || mom_ziel == 'k_t' || mom_ziel == 'g_t' ) {
     if (Math.random() <= 0.996) {
      mom_schuesse_maximal++; dragosim_angreifer_mehrfach++;
      continue;
     }
    }
   }
}
   // ENDE Rapidfire
  }
 }
 // Verteidiger schiessen
 for (x = 0; x < dragosim_verteidiger_objekt.length; x++) {
  mom_kurz = dragosim_verteidiger_objekt[x];
  mom_schuesse = 0;
  mom_schuesse_maximal = 1;
  while (mom_schuesse < mom_schuesse_maximal && dragosim_angreifer_objekt.length > 0) {
   y = parseInt(dragosim_angreifer_objekt.length * Math.random());
   if (y == dragosim_angreifer_objekt.length) {
    y--;
   }
   mom_ziel = dragosim_angreifer_objekt[y];
   // ANFANG korrekte Schildberechnung
    if (dragosim_angreifer_rundenschild[y] == 0) curdam = dragosim_verteidiger_angriff[mom_kurz]; else curdam = Math.floor(dragosim_verteidiger_angriff[mom_kurz]/dragosim_angreifer_schild[mom_ziel]*100)/100*dragosim_angreifer_schild[mom_ziel];
    if (dragosim_verteidiger_angriff[mom_kurz] > dragosim_angreifer_rundenschild[y]) {
     dragosim_angreifer_schild_effektiv_insgesamt += dragosim_angreifer_rundenschild[y];
     dragosim_angreifer_rundenschaden[y]          += curdam - dragosim_angreifer_rundenschild[y];
     dragosim_angreifer_rundenschild[y]            = 0;
    } else {
     dragosim_angreifer_schild_effektiv_insgesamt += curdam;
     dragosim_angreifer_rundenschild[y]           -= curdam;
    }
    if (dragosim_angreifer_rundenschild[y] != 0) dragosim_angreifer_schildrund += ((dragosim_verteidiger_angriff[mom_kurz]/dragosim_angreifer_schild[mom_ziel]*100) % 1)/100*dragosim_angreifer_schild[mom_ziel];

   // ENDE
/*
   // ANFANG falsche Schildberechnung (Schildbug in oGame)
   if (x >= dragosim_angreifer_objekt.length) {
    dragosim_angreifer_rundenschild[x] = 0;
   }
   if (dragosim_verteidiger_angriff[mom_kurz] > dragosim_angreifer_rundenschild[x]) {
    dragosim_angreifer_schild_effektiv_insgesamt += dragosim_angreifer_rundenschild[x];
    dragosim_angreifer_rundenschaden[y]          += dragosim_verteidiger_angriff[mom_kurz] - dragosim_angreifer_rundenschild[x];
    dragosim_angreifer_rundenschild[x]            = 0;
   } else {
    dragosim_angreifer_schild_effektiv_insgesamt += dragosim_verteidiger_angriff[mom_kurz];
    dragosim_angreifer_rundenschild[x]           -= dragosim_verteidiger_angriff[mom_kurz];
   }
   // ENDE
*/
   mom_explosion = dragosim_explosion(dragosim_angreifer_schaden[y] / dragosim_angreifer_huelle[mom_ziel], (dragosim_angreifer_rundenschaden[y] + dragosim_angreifer_schaden[y]) / dragosim_angreifer_huelle[mom_ziel]);
   if (Math.random() <= mom_explosion) {
    dragosim_angreifer_rundenexplosion[y] = 1;
   }
   mom_schuesse++;

   // ANFANG Rapidfire
 if (document.getElementById('rapid_verteidiger').checked == true) {
   if (mom_ziel == 'sp' && ( mom_kurz != 'sp' ||  mom_kurz != 'so' || mom_kurz != 't')) {
    if (Math.random() <= 0.80) {
     mom_schuesse_maximal++; dragosim_verteidiger_mehrfach++;
     continue;
    }
   }
      if (mom_ziel == 'so' && ( mom_kurz != 'sp' ||  mom_kurz != 'so' || mom_kurz != 't')) {
    if (Math.random() <= 0.80) {
     mom_schuesse_maximal++; dragosim_verteidiger_mehrfach++;
     continue;
    }
   }
   if (mom_kurz == 'kr' && mom_ziel == 'l_j') {
    if (Math.random() <= 0.66) {
     mom_schuesse_maximal++; dragosim_verteidiger_mehrfach++;
     continue;
    }
   }
     if (mom_kurz == 't') {
    if (mom_ziel == 'z') {
     if (Math.random() <= 0.80) {
      mom_schuesse_maximal++; dragosim_angreifer_mehrfach++;
      continue;
     }
    } else if (mom_ziel == 'kr') {
     if (Math.random() <= 0.97) {
      mom_schuesse_maximal++; dragosim_angreifer_mehrfach++;
      continue;
     }
    }else if (mom_ziel == 'bo') {
     if (Math.random() <= 0.96) {
      mom_schuesse_maximal++; dragosim_angreifer_mehrfach++;
      continue;
     }
    }else if (mom_ziel == 'sc') {
     if (Math.random() <= 0.966) {
      mom_schuesse_maximal++; dragosim_angreifer_mehrfach++;
      continue;
     }
    }else if (mom_ziel == 's_j' || mom_ziel == 'i' || mom_ziel == 's_l' ) {
     if (Math.random() <= 0.99) {
      mom_schuesse_maximal++; dragosim_angreifer_mehrfach++;
      continue;
     }
    }else if (mom_ziel == 'l_j' || mom_ziel == 'ra' || mom_ziel == 'l_l' ) {
     if (Math.random() <= 0.995) {
      mom_schuesse_maximal++; dragosim_angreifer_mehrfach++;
      continue;
     }
    }else if ( mom_ziel == 'g') {
     if (Math.random() <= 0.98) {
      mom_schuesse_maximal++; dragosim_angreifer_mehrfach++;
      continue;
     }
    } else if (mom_ziel == 'ko' || mom_ziel == 're' || mom_ziel == 'sp' || mom_ziel == 'so' || mom_ziel == 'k_t' || mom_ziel == 'g_t') {
     if (Math.random() <= 0.996) {
      mom_schuesse_maximal++; dragosim_angreifer_mehrfach++;
      continue;
     }
    }
   }
}
   // ENDE Rapidfire
  }
 }

 // Angreifer explodieren

 for (x = 0; x < dragosim_angreifer_objekt.length; x++) {
  mom_kurz = dragosim_angreifer_objekt[x];
  dragosim_angreifer_schaden[x] += dragosim_angreifer_rundenschaden[x];
  dragosim_verteidiger_angriff_effektiv_insgesamt += dragosim_angreifer_rundenschaden[x];
  if (dragosim_angreifer_rundenexplosion[x] == 1) {
   dragosim_angreifer_objekt[x]          = dragosim_angreifer_objekt[dragosim_angreifer_objekt.length - 1];
   dragosim_angreifer_schaden[x]         = dragosim_angreifer_schaden[dragosim_angreifer_objekt.length - 1];
   dragosim_angreifer_rundenschaden[x]   = dragosim_angreifer_rundenschaden[dragosim_angreifer_objekt.length - 1];
   dragosim_angreifer_rundenschild[x]    = dragosim_angreifer_rundenschild[dragosim_angreifer_objekt.length - 1];
   dragosim_angreifer_rundenexplosion[x] = dragosim_angreifer_rundenexplosion[dragosim_angreifer_objekt.length - 1];
   dragosim_angreifer_objekt.length--;
   dragosim_angreifer_anzahl[mom_kurz]--;
   x--;
  }
 }

 // Verteidiger explodieren

 for (x = 0; x < dragosim_verteidiger_objekt.length; x++) {
  mom_kurz = dragosim_verteidiger_objekt[x];
  dragosim_verteidiger_schaden[x] += dragosim_verteidiger_rundenschaden[x];
  dragosim_angreifer_angriff_effektiv_insgesamt += dragosim_verteidiger_rundenschaden[x];
  if (dragosim_verteidiger_rundenexplosion[x] == 1) {
   dragosim_verteidiger_objekt[x]          = dragosim_verteidiger_objekt[dragosim_verteidiger_objekt.length - 1];
   dragosim_verteidiger_schaden[x]         = dragosim_verteidiger_schaden[dragosim_verteidiger_objekt.length - 1];
   dragosim_verteidiger_rundenschaden[x]   = dragosim_verteidiger_rundenschaden[dragosim_verteidiger_objekt.length - 1];
   dragosim_verteidiger_rundenschild[x]    = dragosim_verteidiger_rundenschild[dragosim_verteidiger_objekt.length - 1];
   dragosim_verteidiger_rundenexplosion[x] = dragosim_verteidiger_rundenexplosion[dragosim_verteidiger_objekt.length - 1];
   dragosim_verteidiger_objekt.length--;
   dragosim_verteidiger_anzahl[mom_kurz]--;
   x--;
  }
 }

 // neue Gesamtwerte berechnen

 for (x = 0; x < dragosim_angreifer_objekt.length; x++) {
  mom_kurz = dragosim_angreifer_objekt[x];
  dragosim_angreifer_anzahl_insgesamt    += 1;
  dragosim_angreifer_angriff_insgesamt   += dragosim_angreifer_angriff[mom_kurz];
  dragosim_angreifer_schild_insgesamt    += dragosim_angreifer_schild[mom_kurz];
  dragosim_angreifer_huelle_insgesamt    += dragosim_angreifer_huelle[mom_kurz];
  dragosim_angreifer_metall_insgesamt    += dragosim_metall[mom_kurz];
  dragosim_angreifer_kristall_insgesamt  += dragosim_kristall[mom_kurz];
  dragosim_angreifer_deuterium_insgesamt += dragosim_deuterium[mom_kurz];
  dragosim_angreifer_transport_insgesamt += dragosim_transport[mom_kurz];

  dragosim_angreifer_huelle_effektiv_insgesamt += dragosim_angreifer_huelle[mom_kurz] - dragosim_angreifer_schaden[x];
 }
 for (x = 0; x < dragosim_verteidiger_objekt.length; x++) {
  mom_kurz = dragosim_verteidiger_objekt[x];
  dragosim_verteidiger_anzahl_insgesamt    += 1;
  dragosim_verteidiger_angriff_insgesamt   += dragosim_verteidiger_angriff[mom_kurz];
  dragosim_verteidiger_schild_insgesamt    += dragosim_verteidiger_schild[mom_kurz];
  dragosim_verteidiger_huelle_insgesamt    += dragosim_verteidiger_huelle[mom_kurz] - dragosim_verteidiger_schaden[x];
  dragosim_verteidiger_metall_insgesamt    += dragosim_metall[mom_kurz];
  dragosim_verteidiger_kristall_insgesamt  += dragosim_kristall[mom_kurz];
  dragosim_verteidiger_deuterium_insgesamt += dragosim_deuterium[mom_kurz];

  dragosim_verteidiger_huelle_effektiv_insgesamt += dragosim_verteidiger_huelle[mom_kurz] - dragosim_verteidiger_schaden[x];
 }

/*
 dragosim_angreifer_insgesamt[dragosim_runde+'_anzahl']    = dragosim_angreifer_anzahl_insgesamt;
 dragosim_angreifer_insgesamt[dragosim_runde+'_angriff']   = dragosim_angreifer_angriff_insgesamt;
 dragosim_angreifer_insgesamt[dragosim_runde+'_schild']    = dragosim_angreifer_schild_insgesamt;
 dragosim_angreifer_insgesamt[dragosim_runde+'_huelle']    = dragosim_angreifer_huelle_insgesamt;
 dragosim_angreifer_insgesamt[dragosim_runde+'_angriff_effektiv']   = dragosim_angreifer_angriff_effektiv_insgesamt;
 dragosim_angreifer_insgesamt[dragosim_runde+'_schild_effektiv']    = dragosim_angreifer_schild_effektiv_insgesamt;
 dragosim_angreifer_insgesamt[dragosim_runde+'_huelle_effektiv']    = dragosim_angreifer_huelle_effektiv_insgesamt;
 dragosim_angreifer_insgesamt[dragosim_runde+'_metall']    = dragosim_angreifer_metall_insgesamt;
 dragosim_angreifer_insgesamt[dragosim_runde+'_kristall']  = dragosim_angreifer_kristall_insgesamt;
 dragosim_angreifer_insgesamt[dragosim_runde+'_deuterium'] = dragosim_angreifer_deuterium_insgesamt;
*/
}

// Explosionswahrscheinlichkeit

function dragosim_explosion(schaden_vorher, schaden_nachher) {
 if (schaden_nachher >= 1) {
  return 1;
 } else if (schaden_nachher > 0.3)  {
  return schaden_nachher;
 } else {
  return -1;
 }
/*
 if (arguments.length == 3) {
  schaden_maximal = arguments[2];
 } else {
  schaden_maximal = 1;
 }
 explosion_vorher = dragosim_explosion_insgesamt(schaden_vorher);
 explosion_nachher = dragosim_explosion_insgesamt(schaden_nachher);

/

 if (schaden_maximal < 1 && schaden_nachher >= schaden_maximal) {
  return 1;
 } else {
  return explosion_nachher - explosion_vorher;
 }

/

 if (explosion_nachher >= 1 || schaden_nachher >= schaden_maximal) {
  return 1;
 } else {
  return (explosion_nachher - explosion_vorher) / (1 - explosion_vorher);
//  return explosion_nachher - explosion_vorher;
 }
*/
}

function dragosim_explosion_insgesamt(schaden) {
 if (schaden < dragosim_explosion_ab) {
  return 0;
 } else {
  return dragosim_explosion_startwert + (dragosim_explosion_zunahme * (schaden - dragosim_explosion_ab));
 }
}

// Anzeige einer Runde

function dragosim_anzeigen(runde) {
 if (runde > 0) {
  for (x = 3; x < dragosim_kurz.length; x++) {
   mom_kurz = dragosim_kurz[x];
   mom_a    = runde+'_a_'+mom_kurz;
   mom_v    = runde+'_v_'+mom_kurz;
   set(mom_a,'innerhtml',dragosim_k(dragosim_angreifer_anzahl[mom_kurz]));
   set(mom_v,'innerhtml',dragosim_k(dragosim_verteidiger_anzahl[mom_kurz]));
  }
 }

 set(runde+'_a_anzahl','innerhtml',dragosim_k(dragosim_angreifer_anzahl_insgesamt));
 set(runde+'_a_angriff','innerhtml',dragosim_k(dragosim_angreifer_angriff_insgesamt));
 set(runde+'_a_schild','innerhtml',dragosim_k(dragosim_angreifer_schild_insgesamt));
 set(runde+'_a_huelle','innerhtml',dragosim_k(dragosim_angreifer_huelle_insgesamt));
 set(runde+'_a_metall','innerhtml',dragosim_k(dragosim_angreifer_metall_insgesamt));
 set(runde+'_a_kristall','innerhtml',dragosim_k(dragosim_angreifer_kristall_insgesamt));
 set(runde+'_a_deuterium','innerhtml',dragosim_k(dragosim_angreifer_deuterium_insgesamt));
 set(runde+'_a_alle_ressourcen','innerhtml',dragosim_k(dragosim_angreifer_metall_insgesamt+dragosim_angreifer_kristall_insgesamt+dragosim_angreifer_deuterium_insgesamt));

 set(runde+'_v_anzahl','innerhtml',dragosim_k(dragosim_verteidiger_anzahl_insgesamt));
 set(runde+'_v_angriff','innerhtml',dragosim_k(dragosim_verteidiger_angriff_insgesamt));
 set(runde+'_v_schild','innerhtml',dragosim_k(dragosim_verteidiger_schild_insgesamt));
 set(runde+'_v_huelle','innerhtml',dragosim_k(dragosim_verteidiger_huelle_insgesamt));
 set(runde+'_v_metall','innerhtml',dragosim_k(dragosim_verteidiger_metall_insgesamt));
 set(runde+'_v_kristall','innerhtml',dragosim_k(dragosim_verteidiger_kristall_insgesamt));
 set(runde+'_v_deuterium','innerhtml',dragosim_k(dragosim_verteidiger_deuterium_insgesamt));
 set(runde+'_v_alle_ressourcen','innerhtml',dragosim_k(dragosim_verteidiger_metall_insgesamt+dragosim_verteidiger_kristall_insgesamt+dragosim_verteidiger_deuterium_insgesamt));
}

// Anzeige einer nicht gespielten Runde

function dragosim_nicht_gespielt_anzeigen(runde) {
 if (runde > 0) {
  for (x = 3; x < dragosim_kurz.length; x++) {
   mom_kurz = dragosim_kurz[x];
   set(runde+'_a_'+mom_kurz,'innerhtml','<span class=spacer> </span>');
   set(runde+'_v_'+mom_kurz,'innerhtml','<span class=spacer> </span>');
  }
 }

 set(runde+'_a_anzahl','innerhtml','<span class=spacer> </span>');
 set(runde+'_a_angriff','innerhtml','<span class=spacer> </span>');
 set(runde+'_a_schild','innerhtml','<span class=spacer> </span>');
 set(runde+'_a_huelle','innerhtml','<span class=spacer> </span>');
 set(runde+'_a_metall','innerhtml','<span class=spacer> </span>');
 set(runde+'_a_kristall','innerhtml','<span class=spacer> </span>');
 set(runde+'_a_deuterium','innerhtml','<span class=spacer> </span>');
 set(runde+'_a_alle_ressourcen','innerhtml','<span class=spacer> </span>');

 set(runde+'_v_anzahl','innerhtml','<span class=spacer> </span>');
 set(runde+'_v_angriff','innerhtml','<span class=spacer> </span>');
 set(runde+'_v_schild','innerhtml','<span class=spacer> </span>');
 set(runde+'_v_huelle','innerhtml','<span class=spacer> </span>');
 set(runde+'_v_metall','innerhtml','<span class=spacer> </span>');
 set(runde+'_v_kristall','innerhtml','<span class=spacer> </span>');
 set(runde+'_v_deuterium','innerhtml','<span class=spacer> </span>');
 set(runde+'_v_alle_ressourcen','innerhtml','<span class=spacer> </span>');
}

// Anzahl fuer oGame Kampfbericht

function dragosim_ok(anzahl) {
 return dragosim_float_to_string(anzahl, '.');
}

// Anzahl schoen fuer Kampfbericht (0 wird angezeigt)

function dragosim_dk(anzahl) {
 anzahl_komma_max = 1000;

 if (anzahl < anzahl_komma_max && String(anzahl).indexOf('.') != -1) {
  return dragosim_float_to_string(anzahl, ',');
 } else if (anzahl == 0 || anzahl == '') {
  return '<span title="'+anzahl+'">0</span>';
 } else {
  return dragosim_k(anzahl);
 }
}

// float nach string mit 3 Nachkommastellen

function dragosim_float_to_string(anzahl, trennzeichen) {
 anzahl += 0.0005;
 string_anzahl = String(anzahl);
 string_punkt  = string_anzahl.indexOf('.');

 string_anzahl = string_anzahl.substring(0, string_punkt) +
                 trennzeichen +
                 string_anzahl.substring(string_punkt + 1, string_punkt + 4);
 while (string_anzahl.lastIndexOf('0') == string_anzahl.length - 1) {
  string_anzahl = string_anzahl.substring(0, string_anzahl.length - 1);
 }
 if (string_anzahl.lastIndexOf(trennzeichen) == string_anzahl.length - 1) {
  string_anzahl = string_anzahl.substring(0, string_anzahl.length - 1);
 }
 return string_anzahl;
}

// Anzahl schoen mit Punkten fuer alle 1000er Schritte (0 wird nicht angezeigt)

function dragosim_k(anzahl) {
 neue_anzahl = String(Math.round(anzahl));
 neue_einheit = '';

 neue_punkte = Math.floor(neue_anzahl.length / 3);

 if (anzahl == 0) {
  neue_anzahl = '<span class=spacer> </span>';
 }
 if (neue_punkte > 0) {
  neue_abschnitte = new Array();
  var n = 0;
  while (neue_anzahl.length > 3) {
   neue_abschnitte[n] = neue_anzahl.substring(neue_anzahl.length - 3, neue_anzahl.length);
   neue_anzahl = neue_anzahl.substring(0, neue_anzahl.length - 3);
   n++;
  }
  neue_abschnitte[n] = neue_anzahl;
  neue_anzahl = '';
  for (n = neue_abschnitte.length - 1; n > 0 ; n--) {
   neue_anzahl += neue_abschnitte[n] + '.';
  }
  neue_anzahl += neue_abschnitte[0];
 }
 return '<span title="'+anzahl+'">'+neue_anzahl+''+neue_einheit+'</span>';
}

// Status einer Runde

function dragosim_status(runde) {
 if (dragosim_angreifer_anzahl_insgesamt == 0) {
  return 'verloren';
 }
 if (dragosim_verteidiger_anzahl_insgesamt == 0) {
  return 'gewonnen';
 }
 return 'unentschieden';
}

// Typ hinzufuegen

function dragosim_typ(name,kbs,kurz,art,angriff,schild,huelle,metall,kristall,deuterium,transport) {
 mom = dragosim_kurz.length;
 dragosim_kurz[mom]          = kurz;

 dragosim_name[kurz]         = name;
 dragosim_kbs[kurz]          = kbs;
 dragosim_spio_kbs[kbs]      = kurz;
 dragosim_art[kurz]          = art;
 dragosim_angriff[kurz]      = angriff;
 dragosim_schild[kurz]       = schild;
 dragosim_huelle[kurz]       = huelle;
 dragosim_metall[kurz]       = parseInt(metall);
 dragosim_kristall[kurz]     = parseInt(kristall);
 dragosim_deuterium[kurz]    = parseInt(deuterium);
 dragosim_transport[kurz]    = parseInt(transport);
}


