/* 
 * Kompania Krogulca
 *
 * Copyright(C):    Khazzar (jedrekz@pascom.pl)
 * Data:            26.08.2003
 * 
 */

#include "def.h"

inherit "/std/object";
inherit "/cmd/std/command_driver.c";

#include "../engine/spec.h"

#define MUNDUR           "mundur_kompanii_krogulca"
 
int zalozony = 0;
int wear(string co);
int remove(string co);

void
create_object()
{
   ustaw_nazwe(({"mundur","munduru","mundurowi","mundur","mundurem",
                 "mundurze"}),
               ({"mundury","mundurow","mundurom","mundury","mundurami",
                 "mundurach"}), PL_MESKI_NOS_NZYW);

   dodaj_przym("czarny", "czarni");

   set_long("Czarny mundur z wyszytym na piersi srebrna nicia wizerunkiem " +
            "krogulca.\n");

   add_prop(OBJ_M_NO_SELL, "Nie oddasz nikomu munduru!\n");
   add_prop(OBJ_M_NO_DROP, "Nie odlozysz munduru!\n");
   add_prop(OBJ_M_NO_GIVE, "Nie oddasz nikomu munduru!\n");
   add_prop(OBJ_M_NO_STEAL,1);
}

string
query_recover()
{
    return 0;
}

string
query_auto_load ()
{
    return MASTER_OB(TO);
}

int
wear(string co)
{
    notify_fail("Zaloz co?\n");
    if ( co!="mundur" )
        if ( co!="wszystko" ) return 0;

    notify_fail("Juz masz na sobie czarny mundur.\n");
    if (zalozony) return 0;

    TP->add_subloc(MUNDUR, TO);
    move(TP, MUNDUR);

    TP->catch_msg("Zakladasz mundur Kompanii Krogulca.\n");
    tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " zaklada czarny " +
              "mundur.\n",({TP}));
    zalozony=1;
    return 1;
}

int
remove(string co)
{
    notify_fail("Zdejmij co?\n");
    if ( co!="mundur" ) 
        if ( co!="wszystko" ) return 0;

    notify_fail("Nie masz nic takiego na sobie.\n");
    if (!zalozony) return 0;

    TP->remove_subloc(MUNDUR);
    move(TP);

    TP->catch_msg("Zdejmujesz mundur Kompanii Krogulca.\n");
    tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " zdejmuje czarny " +
              "mundur.\n",({TP}));
    zalozony=0;
    return 1;
}

string
show_subloc(string subloc, object on_obj, object for_obj)
{
    string mundur="", koncowka="";

    if (on_obj == for_obj) koncowka += "sz";

    mundur += "Ma" + koncowka + " na sobie czarny mundur z wyszytym " +
                    "na piersi srebrna nicia wizerunkiem krogulca. ";

    switch( ENGINE->query_data(on_obj, RANGA) )
    {
        case KAPRAL       : mundur += "Nosi" + koncowka + " dystynkcje " +
                            "kaprala.\n"; break;
        case SIERZANT     : mundur += "Nosi" + koncowka + " dystynkcje " +
                            "sierzanta.\n"; break;
        case CHORAZY      : mundur += "Nosi" + koncowka + " dystynkcje " +
                            "chorazego.\n"; break;
        case PODPORUCZNIK : mundur += "Nosi" + koncowka + " dystynkcje " +
                            "podporucznika.\n"; break;
        case PORUCZNIK    : mundur += "Nosi" + koncowka + " dystynkcje " +
                            "porucznika.\n"; break;
        case KAPITAN      : mundur += "Nosi" + koncowka + " dystynkcje " +
                            "kapitana.\n"; break;
        default : mundur += "\n";
    }

    return mundur;
}

void
init()
{
    ::init();
    setuid();
    seteuid(getuid());
    add_action ("remove" , "zdejmij");
    add_action ("wear"   , "zaloz");
    add_action(&bij(),"uderz");
    set_alarm(1.0, 0.0, "startuj_w_domu");
}

int
czy_mundur_kompanii()
{
    return 1;
}

int
startuj_w_domu()
{
//    if (!ENGINE->query_member(TP))
//    {
//        write("Mundur rozpada sie.\n");
//        TO->remove_object();
//        return 1;
//    }
//
    if (ENGINE->query_data(TP, RANGA) == REKRUT)
    { 
        TP->move(N_LOCATIONS + "barak_rek_a");
            TP->command("sp");
            
        write("Budzi cie glos sierzanta: Wstawaj rekrucie, obowiazki " +
              "czekaja!\n");

        tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " budzi sie i " +
                  "wstaje z pryczy.\n",({TP}));
        return 1;
    }
    TP->move(N_LOCATIONS + "barak_zol_a");
    TP->command("sp");
    
    write("Budzisz sie i wstajesz ze swojej pryczy.\n");

    tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " budzi sie i " +
                  "wstaje z pryczy.\n",({TP}));

    return 1;
}
