inherit "/d/Imperium/std/room";
inherit "/cmd/std/command_driver.c";

#include <filter_funs.h>
#include <ss_types.h>
#include <stdproperties.h>
#include <wa_types.h>
#include <cmdparse.h>
#include <macros.h>

void
create_imperium_room()
{
    set_short("Mroczna, tajemnicza komnata");
    set_long("To ciemne pomieszczenie jest rozswietlana jedynie bladymi " +
             "plomykami swiec. Nie wiszisz tu ni drzwi ni zadnych okien, " +
             "a nawet sciany nikna gdzies w mroku. W mroku dostrzegasz " +
             "pojedyncze szafy i stoly z rozmaitymi, dziwnymi sprzetami, " +
             "tajemniczymi ksiegami, dziwnymi miksturami i sterta starych  " +
             "manuskryptow rozrzuconych w pozornym nieladzie.\n");

    add_prop(ROOM_I_INSIDE,1);
    add_prop(ROOM_I_LIGHT,100);

    add_exit("/d/Imperium/Nuln/lokacje/plac.c","nuln");
}

int
query_wiz()
{
    if (!this_player()->query_wiz_level())
    {
        write("Slucham?\n");
        return 0;
    }
    return 1;
}

void
init()
{
    ::init();
    add_action("awansuj", "awansuj");
    add_action("wyrzuc", "wyrzuc");
}

int
awansuj(string kogo)
{
    object *cel = parse_this(kogo,"%l:"+PL_BIE);

    query_wiz();
 
    notify_fail("Kogo chcesz awansowac?\n");
    if (!sizeof(cel)) return 0;

    if ( !("/d/Imperium/Straz/admin")->query_czlonek(cel[0]->query_real_name()) )
    {
        if ( ("/d/Imperium/Straz/admin")->add_member(cel[0]->query_real_name()) )
        {
            setuid();
            seteuid(getuid());

            clone_object("/d/Imperium/Straz/szarfa")->move(cel[0]);
            write("Przyjales go do Strazy Krain.\n");
            return 1;
        }
        notify_fail("Blad w funkcji add_member().\n");
        return 0;
    }

    if ( ("/d/Imperium/Straz/admin")->query_sierzant(cel[0]->query_real_name()) ) 
    {
        ("/d/Imperium/Straz/admin")->set_komendant(cel[0]->query_real_name());
        write("Mianowales go komendantem Strazy Krain.\n");
        return 1;
    }

    if ( ("/d/Imperium/Straz/admin")->set_sierzant(cel[0]->query_real_name()) )
    {
        write("Mianowales go sierzantem Strazy Krain.\n");
        return 1;
    }
    notify_fail("Blad w funkcji set_sierzant).\n");
    return 0;
}

int
wyrzuc(string kogo)
{
    object *cel = parse_this(kogo,"%l:"+PL_BIE);

    query_wiz();
 
    notify_fail("Kogo chcesz wyrzucic?\n");
    if (!sizeof(cel)) return 0;

    if ( ("/d/Imperium/Straz/admin")->query_czlonek(cel[0]->query_real_name()) )
    {
        if ( ("/d/Imperium/Straz/admin")->remove_member(cel[0]->query_real_name()) )
        {
            write("Wyrzuciles go ze Strazy Krain.\n");
            return 1;
        }
        notify_fail("Blad w funkcji remove_member().\n");
        return 0;
    }

    notify_fail("Przecierz on nie nalezy do Strazy Krain.\n");
    return 0;
}
