
/*
 * File:		kadet_soul.c
 * Autor:		Aglarond (uzupelnienia by Kylo)
 * Date:		??.??.??
 * Last Update:	21.02.98
 * Opis:		Soul dla gildi (dawnej kadetow)
 */
      
inherit "/cmd/std/command_driver";

#include <adverbs.h>
#include <cmdparse.h>
#include <composite.h>
#include <filter_funs.h>
#include <macros.h>
#include <options.h>
#include <stdproperties.h>
#include "defs.h"

#define TP this_player()
#define SOULDESC(x) (this_player()->add_prop(LIVE_S_SOULEXTRA, x))
#define CHECK_MOUTH_BLOCKED; \
            if (Prop = this_player()->query_prop(LIVE_M_MOUTH_BLOCKED)) { \
            notify_fail(stringp(Prop) ? Prop : \
                "Nie jestes w stanie wydobyc z siebie zadnego dzwieku.\n"); \
            return 0; }

private mixed Prop;             /* Uzywana przez CHECK_MOUTH_BLOCKED. */

string
get_soul_id()
{
	return GUILD_NAME;
}

int
query_cmd_soul()
{
	return 1;
}

mapping
query_cmdlist()
{
	return 
	([
		"?":"pomoc",

		"bacznosc":"bacznosc",
		
		"melduj":"melduj",
		
		"ostrzez":"ostrzez",
		
		"lrozejrzyj":"rozejrzyj",

		"salutuj":"salutuj",
		"zanuc":"zanuc",
		
	]);
}

int
pomoc(string str)
{
	str = lower_case(str);
	if (str == "gildia" || str == "dla gildii" || str == "w kadetach"
		|| str == "kadeci" || str == "w gildii")
	{
		write("Nasza gildia kadetow udostepnia ci pare " +
			"wspaniale emoty:\n" +
			"\n bacznosc [jak] - przyjecie postawy zasadniczej" +
			"\n melduj komu o czym - zlozenie meldunku" +
			"\n ostrzez [kogo] " +
			"\n rozejrzyj sie [jak] " +
			"\n zanuc [jak] - nucenie piosenki" +
			"\n zasalutuj [jak] [komu] - oddawanie honorow" +
			"\n\nWszelkie komentarze prosze kierowac do Aglaronda.\n");
        
        return 1;
    }
    notify_fail("Do czego pomoc chcesz uzyskac?\n");
    return 0;
}


int
bacznosc(string str)
{
    string jak;
    
    jak = check_adverb(str, "dumnie");
    if (jak !=NO_ADVERB)
    {
        write(capitalize(jak) + " prezysz swoja piers stajac na bacznosc.\n");
        allbb( jak + " prezy swoja piers stajac na bacznosc.");
        return 1;
    }
    notify_fail("Bacznosc [jak] ?\n");
}

int
melduj(string str)
{
    object *cele;
    string str1;

    CHECK_MOUTH_BLOCKED;

    if (str && CAN_SEE_IN_ROOM(this_player()))
    {
        parse_command(str, environment(this_player()),
                      "%l:" + PL_CEL + " 'o' %s", cele, str1);
        if (cele && sizeof(cele = FILTER_LIVE(NORMAL_ACCESS(cele
                                - ({this_player()}), 0, 0))))
        {
            if (strlen(str1))
            {
                if (this_player()->query_option(OPT_ECHO))
                    actor("Meldujesz", cele, PL_CEL, "o " + str1 + ".");
                else
                    write("Ok.\n");
                all2actbb("sklada meldunek.", cele, PL_CEL);
                target("melduje ci o " + str1 + ".", cele);
                return 1;
            }
            notify_fail("Melduj " + COMPOSITE_LIVE(cele, PL_CEL)
                      + " o czym ?\n");
            return 0;
        }
    }
    notify_fail("Melduj komu o czym ?\n");
    return 0;
}

int
ostrzez(string str)
{
    object *cele;

	CHECK_MOUTH_BLOCKED;
	
    if (!str)
	{
		write("Spogladasz groznie do okola i mowisz: Nie radze " +
			"robic zadnych rzeczy sprzecznych z prawem.\n ");
		allbb("spoglada groznie do okola i mowi: Nie radze " +
			"robic zadnych rzeczy sprzecznych z prawem.");
		return 1;
	}
	cele = parse_this(str, "%l:" + PL_BIE);
    if (sizeof(cele))
	{
		actor("Spogladasz groznie na",
			cele, PL_BIE,"i mowisz: Nie radze " +
			"robic zadnych rzeczy sprzecznych z prawem.");
		all2actbb("spoglada groznie na",
			cele, PL_BIE,"i mowi: Nie radze " +
			"robic zadnych rzeczy sprzecznych z prawem.");
		targetbb("spoglada groznie na ciebie i mowi: Nie radze " +
			"robic zadnych rzeczy sprzecznych z prawem.", cele);
		return 1;
	}
	notify_fail("Ostrzez [kogo] ?\n");
    return 0;
}

int
rozejrzyj(string str)
{
	string jak;

	if (str)
	{
		sscanf(str,"sie %s",jak);
		jak = check_adverb(jak, "uwaznie");
		if (jak !=NO_ADVERB)
		{
			write(capitalize(jak) + " rozgladasz sie do okola, lustrujac " +
				"wszystko swym przenikliwym wzrokiem.\n");
			allbb( jak + " rozglada sie do okola, wydaje sie ze nic nie zdola " +
				"sie ukryc przed jego przenikliwym wzrokiem.");
			return 1;
		}
	}
	notify_fail("rozejrzyj sie [jak] ?\n");
}

int
salutuj(string str)
{
    object *cele;
    string *jak;
   	      
    jak = parse_adverb_with_space(str, "sluzbiscie", 0);
    
	if (sizeof(this_player()->query_weapon(-1)))
	{
		if (!jak[0])
		{
			write("Oddajesz" + jak[1] + " honory prezentujac bron.\n");
			allbb("oddaje" + jak[1] + " honory prezentujac bron.");
			return 1;
		}
		cele = parse_this(jak[0], "%l:" + PL_CEL);
		if (sizeof(cele))
		{
			actor("Oddajesz" + jak[1] + " honory", cele, PL_CEL,
				"prezentujac bron.");
			all2actbb("oddaje" + jak[1] + " honory", cele, PL_CEL,
				"prezentujac bron.");
			targetbb("oddaje ci" + jak[1] + " honory prezentujac bron.",
				cele);
			return 1;
		}
	
	}
	else
	{
		if (!jak[0])
		{
			write("Oddajesz" + jak[1] + " honory uniesiona do czola " +
			"dlonia.\n");
			allbb("oddaje" + jak[1] + " honory uniesiona do czola dlonia.");
			return 1;
		}
		cele = parse_this(jak[0], "%l:" + PL_CEL);
		if (sizeof(cele))
		{
			actor("Oddajesz" + jak[1] + " honory", cele, PL_CEL, " uniesiona " +
				"do czola dlonia.");
			all2actbb("oddaje" + jak[1] + " honory", cele, PL_CEL, " uniesiona " +
				"do czola dlonia.");
			targetbb("oddaje ci" + jak[1] + " honory uniesiona do czola " +
				"dlonia", cele);
			return 1;
		}
	}	
	notify_fail("Salutuj [jak] [komu] ?\n");
    return 0;
}

int 
zanuc(string str)
{
    string jak;

    CHECK_MOUTH_BLOCKED;

    jak = check_adverb_with_space(str, "wesolo");
	if (jak !=NO_ADVERB_WITH_SPACE)
	{
		SOULDESC("nuci sobie" + jak + " piosenke");
		write("Nucisz sobie" + jak + " piosenke.\n");
		all("nuci sobie" + jak + " piosenke.");
		return 1;
	}
	notify_fail("Zanuc [jak] ?\n");
	return 0;
}





