HB/pages/flotte.js

262 lines
8.2 KiB
JavaScript
Raw Normal View History

2007-03-31 10:00:00 +00:00
function vitesse() {
var vi;
vi = document.getElementsByName("vitesse")[0].value;
vi = vi / 10;
return(vi);
}
function target() {
var galaxie;
var systeme;
var planete;
galaxie = document.getElementsByName("galaxie_arr")[0].value;
systeme = document.getElementsByName("systeme_arr")[0].value;
planete = document.getElementsByName("planete_arr")[0].value;
return("["+galaxie+":"+systeme+":"+planete+"]");
}
function setTarget(galaxie, ss, planete) {
document.getElementsByName('galaxie_arr')[0].value = galaxie;
document.getElementsByName('systeme_arr')[0].value = ss;
document.getElementsByName('planete_arr')[0].value = planete;
}
function setMission(mission) {
document.getElementsByName('ordre')[0].selectedIndex = mission;
return;
}
function setUnion(unionid) {
document.getElementsByName('union2')[0].selectedIndex = unionid;
}
function setTargetLong(galaxie, ss, planete, categorie, mission, cnt) {
setTarget(galaxie, ss, planete, categorie);
setMission(mission);
setUnions(cnt);
}
function min(a, b) {
a = a * 1;
b = b * 1;
if (a > b) {
return b;
} else {
return a;
}
}
function maxvitesse() {
var msp = 1000000000;
for (i = 1; i<=14; i++) {
if (document.getElementsByName("vaisseau" + i)[0]) {
if ((document.getElementsByName("vitesse" + i)[0].value * 1) >= 1
&& (document.getElementsByName("vaisseau" + i)[0].value * 1) >= 1) {
msp = min(msp, document.getElementsByName("vitesse" + i)[0].value);
}
}
}
return(msp);
}
function distance() {
var galaxie_dep;
var systeme_dep;
var planete_dep;
var galaxie_arr;
var systeme_arr;
var planete_arr;
var dist;
galaxie_dep = document.getElementsByName("galaxie_dep")[0].value;
systeme_dep = document.getElementsByName("systeme_dep")[0].value;
planete_dep = document.getElementsByName("planete_dep")[0].value;
galaxie_arr = document.getElementsByName("galaxie_arr")[0].value;
systeme_arr = document.getElementsByName("systeme_arr")[0].value;
planete_arr = document.getElementsByName("planete_arr")[0].value;
dist = 0;
if ((galaxie_arr - galaxie_dep) != 0) {
dist = Math.abs(galaxie_arr - galaxie_dep) * 20000;
} else if ((systeme_arr - systeme_dep) != 0) {
dist = Math.abs(systeme_arr - systeme_dep) * 95 + 2700;
} else if ((planete_arr - planete_dep) != 0) {
dist = Math.abs(planete_arr - planete_dep) * 5 + 1000;
} else {
dist = 5;
}
return(dist);
}
function duree() {
var coef_vit;
coef_vit = document.getElementsByName("facteurvitesse")[0].value;
mvit = maxvitesse();
vit = vitesse();
dist = distance();
return Math.ceil(((35000 / vit * Math.sqrt(dist * 10 / mvit) + 10) / coef_vit));
}
function conso() {
var conso = 0;
var conso_base = 0;
var valeurs;
var i;
coef_vit = document.getElementsByName("facteurvitesse")[0].value;
dist = distance();
dur = duree();
for (i = 1; i <= 14; i++) {
if (document.getElementsByName("vaisseau" + i)[0]) {
vitv = document.getElementsByName("vitesse" + i)[0].value;
vite = 35000 / (dur * coef_vit - 10) * Math.sqrt(dist * 10 / vitv);
conso_base = document.getElementsByName("conso" + i)[0].value
* document.getElementsByName("vaisseau" + i)[0].value;
conso += conso_base * dist / 35000 * ((vite / 10) + 1) * ((vite / 10) + 1);
}
}
conso = Math.round(conso) + 1;
return(conso);
}
function stockage() {
var stockage = 0;
for (i=1; i<=14; i++) {
if (document.getElementsByName("vaisseau" + i)[0]) {
if ((document.getElementsByName("vaisseau" + i)[0].value * 1) >= 1) {
stockage
+= document.getElementsByName("vaisseau" + i)[0].value
* document.getElementsByName("capacite" + i)[0].value
}
}
}
stockage -= conso();
return(stockage);
}
function Infov() {
document.getElementById("distance").innerHTML = distance();
var secondes = duree();
document.forms["flotte"].elements["temps"].value = secondes;
var heures = Math.floor(secondes / 3600);
secondes -= heures * 3600;
var minutes = Math.floor(secondes / 60);
secondes -= minutes * 60;
if (minutes < 10) minutes = "0" + minutes;
if (secondes < 10) secondes = "0" + secondes;
document.getElementById("duree").innerHTML = heures + ":" + minutes + ":" + secondes + " h";
var stor = stockage();
var cons = conso();
document.getElementById("maxvitesse").innerHTML = maxvitesse();
if (stor >= 0) {
document.getElementById("conso").innerHTML = '<font color="lime">'+cons+'</font>';
document.getElementById("stockage").innerHTML = '<font color="lime">'+stor+'</font>';
} else {
document.getElementById("conso").innerHTML = '<font color="red">'+cons+'</font>';
document.getElementById("stockage").innerHTML = '<font color="red">'+stor+'</font>';
}
}
function setRessource(id, val) {
if (document.getElementsByName(id)[0]) {
document.getElementsByName("ressource" + id + "_aff")[0].value = val;
}
}
function maxRessource(id) {
var ressource = document.getElementsByName("ressource" + id)[0].value;
var ressourcechoisie = document.getElementsByName("ressource" + id + "_aff")[0].value;
var stockCap = stockage();
var r1Transport = document.getElementsByName("ressource1_aff")[0].value;
var r2Transport = document.getElementsByName("ressource2_aff")[0].value;
var r3Transport = document.getElementsByName("ressource3_aff")[0].value;
var freeCapacity = Math.min(Math.max(stockCap - r1Transport - r2Transport - r3Transport + ressourcechoisie*1, 0), ressource);
if (document.getElementsByName("ressource" + id + "_aff")[0]) {
document.getElementsByName("ressource" + id + "_aff")[0].value = freeCapacity;
}
calculateTransportCapacity();
}
function maxTritium() {
var stockCap = stockage(); // Capacit<69>e de stoquage
var r1toTransport = document.getElementsByName("ressource1_aff")[0].value; // valeur inscrite dans le titane a envoy<6F> pas le titane qu'on a quai
var r2toTransport = document.getElementsByName("ressource2_aff")[0].value; //pareille pour le carbone
var r3Transport = document.getElementsByName("ressource3")[0].value - (conso()+1); //tritium a quai - conso
var freeCapacity = stockCap - r1toTransport - r2toTransport; // capacit<69>e de stoquage moins le titane/carbonne deja "a envoyer"
// si on a plus de place pour foutre du tritium <20>a reste a 0
if (freeCapacity < 0) {
document.getElementsByName("ressource3_aff")[0].value = "0";
}
// si on a encore de la place
if (freeCapacity > 0) {
// si on a plus de place que de tritium a quai
if (freeCapacity >= r3Transport){
document.getElementsByName("ressource3_aff")[0].value = r3Transport;
// si on a moins de place que de tritium a quai on calcule pour tritium 1000 avec une place de 500
}
if (freeCapacity < r3Transport){
document.getElementsByName("ressource3_aff")[0].value = freeCapacity;
}
}
calculateTransportCapacity();
}
function maxRessources() {
var id;
var stockCap = stockage();
var r1Transport = document.getElementsByName("ressource1")[0].value;
var r2Transport = document.getElementsByName("ressource2")[0].value;
var r3Transport = document.getElementsByName("ressource3")[0].value - (conso()+1);
var freeCapacity = stockCap - r1Transport - r2Transport - r3Transport;
if (freeCapacity < 0) {
r1Transport = Math.min(r1Transport, stockCap);
r2Transport = Math.min(r2Transport, stockCap - r1Transport);
r3Transport = Math.min(r3Transport, stockCap - r1Transport - r2Transport);
}
document.getElementsByName("ressource1_aff")[0].value = Math.max(r1Transport, 0);
document.getElementsByName("ressource2_aff")[0].value = Math.max(r2Transport, 0);
document.getElementsByName("ressource3_aff")[0].value = Math.max(r3Transport, 0);
calculateTransportCapacity();
}
function calculateTransportCapacity() {
var r1= Math.abs(document.getElementsByName("ressource1_aff")[0].value);
var r2= Math.abs(document.getElementsByName("ressource2_aff")[0].value);
var r3= Math.abs(document.getElementsByName("ressource3_aff")[0].value);
tc = stockage() - r1 - r2 - r3;
if (tc < 0) {
document.getElementById("reste_ressources").innerHTML="<font color=red>"+tc+"</font>";
} else {
document.getElementById("reste_ressources").innerHTML="<font color=lime>"+tc+"</font>";
}
return tc;
}