blob: 1e6dd20c4101c0c84df0a20a0f6c78bbaada22a3 [file] [log] [blame]
#include <properties.h>
#include <wizlevels.h>
#include <moving.h>
#include "haus.h"
inherit "std/room";
create()
{
::create();
SetProp( P_INDOORS, 1 );
SetProp( P_LIGHT, 1 );
SetProp( P_INT_SHORT, "Am Antragsschalter" );
SetProp( P_INT_LONG,
"Du stehst am Antragsschalter der Bank. Hinter einer Rauchglasscheibe scheint\n"
+"sich ein Schalterbeamter zu befinden, Du kannst aber nichts genaueres er-\n"
+"kennen.\n"
+"Wenn Du Dich traust, kannst Du hier einen Bausparvertrag beantragen und einen\n"
+"beantragten Vertrag unterschreiben.\n"
+"Die Syntax dazu lautet:\n"
+"beantrage vertrag (fuer einen Bausparvertrag)\n"
+"beantrage ausbauvertrag (fuer den Ausbau des Hauses)\n"
+"unterschreibe vertrag (um den jeweiligen Vertrag zu unterschreiben)\n" );
AddDetail( ({ "boden" }),
"Der tiefschwarze Boden gibt Dir das Gefuehl, im absoluten Nichts zu stehen.\n" );
AddDetail( ({ "wand", "waende" }),
"Dunkle Schatten tanzen ueber die Waende.\n" );
AddDetail( ({ "decke" }),
"Sie scheint Dir in dieser unheimlichen Umgebung auf den Kopf fallen zu\n"
+"wollen.\n" );
AddDetail( ({ "nichts" }),
"Du siehst nichts.\n" );
AddDetail( ({ "schatten" }),
"Die Schatten irritieren Dich sehr.\n" );
AddDetail( ({ "schalter" }),
"An diesem Schalter kannst Du einen Bausparvertrag beantragen und unter-\n"
+"schreiben.\n" );
AddDetail( ({ "beamte", "beamter", "beamten", "schalterbeamte", "schalterbeamten", "schalterbeamter" }),
"Du kannst ihn nur schemenhaft hinter der Rauchglasscheibe des Schalters er-\n"
+"kennen. Die Umrisse scheinen allerdings zu keiner Lebensform zu gehoeren,\n"
+"derer Du Dich erinnern koenntest.\n" );
AddDetail( ({ "scheibe", "glasscheibe", "rauchglas", "rauchglasscheibe" }),
"Ein schemenhafter Beamter sitzt dahinter.\n" );
AddDetail( ({ "umrisse" }),
"Sie sind aeusserst beunruhigend.\n" );
AddCmd( ({ "beantrage" }), "beantragen" );
AddCmd( ({ "unterschreib", "unterschreibe" }), "unterschreiben" );
AddExit( "raus", PATH+"seherbank" );
}
void
BecomesNetDead(object pl)
{
pl->move(PATH+"seherbank", M_GO, 0, "wird rausgeworfen", "schlafwandelt herein");
}
int
beantragen(string str)
{
object tp, vertrag;
int haus;
tp = this_player();
if (!str || (haus = member( ({"ausbauvertrag", "vertrag", "bausparvertrag"}), str)) <0) {
notify_fail( "Versuch mal 'beantrage vertrag'!\n" );
return 0;
}
if (!IS_SEER(tp)) {
notify_fail( "Nur Seher koennen einen Bausparvertrag beantragen!\n" );
return 0;
}
if (tp->QueryProp(P_KILLS)) {
write("Verbrecher werden hier nicht bedient!\n");
return 1;
}
if (vertrag = present("sehe\rvertrag", tp))
write( "Der Beamte schnarrt: Aber Sie haben doch schon einen Vertrag!\n" );
else if (haus && (present("sehe\rhaus", tp) || VERWALTER->FindeHaus(getuid(tp)))) {
write( "Der Beamte schnarrt: Sie duerfen nur EIN Haus besitzen!\n" );
HLOG( "BANK.LOG", "Antrag: "+getuid(tp)+" stellte zweiten Antrag.\n" );
}
else if (!haus && !VERWALTER->FindeHaus(getuid(tp))) {
write( "Der Beamte faucht: Haben sie denn ueberhaupt schon ein Haus aufgestellt?\n"
+"Vorher koennen sie natuerlich keine Erweiterungen beantragen!\n" );
}
else {
if (!haus && VERWALTER->HausProp(getuid(tp),HP_ROOMS) == 9) {
write( "Der Beamte droehnt: Ihr Haus hat schon die hoechste Ausbaustufe erreicht!\n");
return 1;
}
(vertrag = clone_object(PATH+"bausparvertrag"))->move(tp, M_NOCHECK);
write( "Die Schatten verdichten sich zu einem Blatt Papier, welches in Deine Haende\n"
+"geweht wird. Mit droehnender Stimme erklaert der Schalterbeamte:\n"
+"Dies ist Ihr Bausparvertrag. Bitte lesen Sie ihn sich gruendlich durch, be-\n"
+"vor Sie ihn unterschreiben! Wenn Sie ihn erst einmal unterschrieben haben,\n"
+"koennen sie nicht wieder davon zuruecktreten (es sei denn, Sie zerreissen\n"
+"ihn oder ueberziehen die Ratenzahlungen)! Sie sind nicht gezwungen, den Ver-\n"
+"trag sofort zu unterschreiben. Im Hauptraum der Bank befindet sich ein In-\n"
+"formationsstand, an dem Sie Kommentare zu diesem Vertrag kaeuflich erwerben\n"
+"koennen. Wenn Ihnen einige Passagen des Vertrags unverstaendlich sind, wird\n"
+"Ihnen in den Kommentaren sicherlich geholfen.\n"
+"Das Leisten der Unterschrift ist jedoch nur hier an diesem Schalter\n"
+"moeglich!\n" );
if (!haus)
vertrag->Sign(V_RAUM);
HLOG( "BANK.LOG", "Antrag: "+getuid(tp)+" bekam einen "+(haus ? "Haus" : "Raum")+"vertrag.\n" );
}
return 1;
}
int
unterschreiben(string str)
{
object tp, vertrag;
int flag;
tp = this_player();
notify_fail( "Was willst Du denn unterschreiben?\n" );
if (!str || !(vertrag = present(str, tp)) || !vertrag->id("sehe\rvertrag"))
return 0;
if ((flag = vertrag->QueryProp(P_AUTOLOADOBJ)[1]) & V_SIGNED) {
write( "Der Schalterbeamte sagt: Aber der Vertrag ist doch schon unterschrieben!\n" );
return 1;
}
write( "Der Schalterbeamte sagt: Fuer welche Vertragsvariante haben sie sich\n"
+"entschieden? Tippen Sie 'sanft' fuer den sanften Weg zum eigenen Heim\n"
+"oder 'schnell' fuer den schnellen Weg.\n] " );
input_to("sign", 0, vertrag, flag|V_EP);
return 1;
}
void
sign(string str, object vertrag, int flag)
{
object block;
string s;
int *al;
if (str == "sanft" || str == "schnell") {
write( "Der Schalterbeamte gibt Dir einen Fuellfederhalter sowie ein Skalpell.\n"
+"Schwungvoll setzt Du Deine Unterschrift unter den Vertrag. Dann piekst\n"
+"Du Dir mit dem Skalpell in den Finger und bestaetigst die Unterschrift\n"
+"mit einem dunklen Tropfen Deines Blutes.\n"
+"Ploetzlich zucken Blitze um Dich herum auf, und der Schalterbeamte lacht\n"
+"droehnend auf. Du hast das Gefuehl, dass hier etwas nicht ganz mit rechten\n"
+"Dingen vor sich geht. Dann bestaetigt der Beamte die Unterschrift und\n"
+"uebergibt Dir den ersten Block, auf dem Deine Raten vermerkt werden.\n"
+"Der Beamte erklaert: Damit auf den Block auch eingezahlt wird, muss man\n"
+"ihn wie eine Ruestung anziehen!\n" );
this_player()->reduce_hit_points(50);
vertrag->Sign(flag | (str == "sanft" ? V_SIGNED : V_SIGNED | V_FAST));
(block = clone_object(PATH+"block"))->move(this_player(), M_NOCHECK);
block->SetProp("schwer", V_FAST & vertrag->QueryProp(P_AUTOLOADOBJ)[1]);
al = block->QueryProp(P_AUTOLOADOBJ);
al[V_FLAGS] |= B_ACTIVE;
block->SetProp(P_AUTOLOADOBJ, al);
s = "Antrag: "+getuid(this_player())+" unterschrieb den Vertrag ("+str+").\n";
HLOG( "BANK.LOG", s );
HLOG( getuid(this_player()), s );
}
else {
write( "Der Schalterbeamte sagt: Nur 'sanft' oder 'schnell', bitte!\n" );
input_to("sign", 0, vertrag, flag);
}
}