int cmdSchaenden(int id, int plnid)
{
int friedhof;
int apcost = 3;
if (!(svTickStatus)) {
cmdErrorString = "Wenn die Zeit steht, können noch keine Gräber geschändet werden.
";
return -3;
}
/* if (cmdRace[dbMaind[id].raceid].name != "Elras") {
cmdErrorString = "Unser Volk kann das nicht.
";
cmdErrorString = cmdRace[dbMaind[id].raceid].name;
return -1;
}*/
if (apcost > dbMaind[id].ressource[CMD_RESSOURCE_AP]) {
cmdErrorString = "Wir haben nicht genug Aktionspunkte, um die Gräber zu schänden.
";
return -1;
}
if ((dbPlanetd[plnid].owner == -1) && (dbMaind[id].besucher != plnid)) {
cmdErrorString = "Du bist gerade nicht auf Besuch bei diesem Dorf.
";
return -1;
}
if ((dbMaind[id].besucher != plnid) || (dbPlanetd[plnid].owner != -1)) {
cmdErrorString = "Du kannst nur in unkontrollierten Dörfern den Friedhof schänden";
return -1;
}
if (dbMaind[id].schloss[CMD_SCHLOSS_OPFER] < 2) {
cmdErrorString = "Unser Ritualplatz hat nicht die entsprechende Ausbaustufe";
return -1;
}
if (dbPlanetd[plnid].population > dbPlanetd[plnid].size*CMD_HUMAN_SURVIVOR) {
cmdErrorString = "Es sind noch zu viele Bewohner in diesem Dorf";
return -1;
}
if (dbPlanetd[plnid].friedhof*0.85 < dbPlanetd[plnid].size*0.33) {
cmdErrorString = "Es sind nicht genug Gräber auf dem Friedhof vorhanden";
return -1;
}
cmdAddFleet(id, CMD_UNIT_SKELETT, dbPlanetd[plnid].friedhof * 0.15, (dbPlanetd[plnid].position >> 8) & 0xFFF, dbPlanetd[plnid].position >> 20);
dbPlanetd[plnid].friedhof *= 0.85;
dbMaind[id].ressource[CMD_RESSOURCE_AP] -= apcost;
int randvar = rand()%100;
char *retstr;
char *retunit;
int type;
int quantity;
int filarbon;
if (randvar < 40) { //40%
type = CMD_UNIT_HEILTRANK;
quantity = 2*dbPlanetd[plnid].friedhof/6;
filarbon = 40 * dbPlanetd[plnid].friedhof;
cmdAddFleet(id, type, quantity, (dbPlanetd[plnid].position >> 8) & 0xFFF, dbPlanetd[plnid].position >> 20);
dbMaind[id].totalunit[type] += quantity;
dbMaind[id].ressource[CMD_RESSOURCE_FILAR] += filarbon;
retstr = "In einem recht frischen Grab findest du eine kleine Menge alchemistischer Fläschchen.";
retunit = "Heiltränke";
}
else if (randvar < 63) { //23%
type = CMD_UNIT_SCHWERT;
quantity = dbPlanetd[plnid].friedhof/6;
filarbon = 20 * dbPlanetd[plnid].friedhof;
cmdAddFleet(id, type, quantity, (dbPlanetd[plnid].position >> 8) & 0xFFF, dbPlanetd[plnid].position >> 20);
dbMaind[id].totalunit[type] += quantity;
dbMaind[id].ressource[CMD_RESSOURCE_FILAR] += filarbon;
retstr = "Im Grab eines Ritter findest du einen guten Teil seiner irdischen Besitztümer. Er scheint reich gewesen zu sein.";
retunit = "Stahlschwerter";
}
else if (randvar < 83) { //20%
type = CMD_UNIT_RUESTUNG;
quantity = dbPlanetd[plnid].friedhof/6;
filarbon = 20 * dbPlanetd[plnid].friedhof;
cmdAddFleet(id, type, quantity, (dbPlanetd[plnid].position >> 8) & 0xFFF, dbPlanetd[plnid].position >> 20);
dbMaind[id].totalunit[type] += quantity;
dbMaind[id].ressource[CMD_RESSOURCE_FILAR] += filarbon;
retstr = "Im Grab eines Ritter findest du einen guten Teil seiner irdischen Besitztümer. Er scheint reich gewesen zu sein.";
retunit = "Rüstungen";
}
else if (randvar < 97) { //15%
type = 0;
quantity = 0;
filarbon = 60 * dbPlanetd[plnid].friedhof;
cmdAddFleet(id, type, quantity, (dbPlanetd[plnid].position >> 8) & 0xFFF, dbPlanetd[plnid].position >> 20);
dbMaind[id].totalunit[type] += quantity;
dbMaind[id].ressource[CMD_RESSOURCE_FILAR] += filarbon;
retstr = "In einem verwitterten Grab stößt du auf eine kleine Menge Filar.";
retunit = "";
}
else { //2%
type = CMD_UNIT_DIEBIN;
quantity = 1;
filarbon = 30 * dbPlanetd[plnid].friedhof;
cmdAddFleet(id, type, quantity, (dbPlanetd[plnid].position >> 8) & 0xFFF, dbPlanetd[plnid].position >> 20);
dbMaind[id].totalunit[type] += quantity;
dbMaind[id].ressource[CMD_RESSOURCE_FILAR] += filarbon;
retstr = "Bei genauer Betrachtung entdeckst du hinter ein paar Büschen eine Höhle, in der sich ein paar Diebinnen versteckt halten.";
retunit = "Diebinnen";
}
if (quantity > 0) {
sprintf(cmdErrorBuffer, "%s
Ihr erhaltet %d Filar und %d %s.", retstr, filarbon, quantity, retunit);
} else {
sprintf(cmdErrorBuffer, "%s
Ihr erhaltet %d Filar.", retstr, filarbon);
}
cmdErrorString = cmdErrorBuffer;
return quantity;
}