//Cracked by Roath
//changan city
inherit ROOM;

void create ()
{
        set ("short", "粮仓");
        set ("long", @LONG

这是一家生意兴隆的粮店。丰老板坐在柜台后面笑容可鞠地接待着客
人。活计们在一边忙忙碌碌地工作着。如果你身无分文，你还可以在
这里向丰老板打一些零工，以赚一些钱。粮店的墙上贴着一张破旧的
告示(gaoshi)。
LONG);
        set("item_desc", ([
                "gaoshi" : "现在正紧缺人手，急需雇佣一批短工来干活。work开始工作。\n", 
        ]));
        set("exits", ([
                "west" : __DIR__"liangdian",
                "east" : __DIR__"liangdian6",
//                "north" : __DIR__"liangdian4",
//                "south" : __DIR__"liangdian5",
        ]));
        set("objects", ([ 
                __DIR__"npc/feng" : 1,
        ]));
        set("no_clean_up", 0);
        setup();
}

void clear_clone()
{
        string *dir = ({
                "baihu-w","qinglong-e","zhuque-s","beiyin",
        });
        tell_room(this_object(),"丰老板乐呵呵的对你说：今日天色已晚，各位辛苦了，还是请回吧。\n");
        filter_array(all_inventory(this_object()),(:userp:))->move(sprintf("/d/city/%s%d",dir[random(sizeof(dir))],(1+random(3))));
        destruct(this_object());
}
//防止人数过多，导致进不了该房间或此房间的玩家动作异常
int check_inv(object room)
{
        if( !room )
                return 0;
        if( sizeof(all_inventory(room))>=25 )
                return 0;
        return 1;
}                       

int check_env(object who)
{
        int i,flag=0;
        object r;
        if( !who )
                return 0;
        if( !present(who,this_object()) )
                return 0;
        if( check_inv(this_object()) )
                return 1;
        r = find_object(__DIR__"liangdian6");
        if( !r )
        {
                tell_object(who,"丰老板笑眯眯地对你说：真对不住，人手已经够了。\n");
                tell_object(who,"「这年头搵工真难啊~~~」你垂头丧气的离开了粮仓。\n");
                who->move(sprintf(__DIR__"beiyin%d",(1+random(5))),1);
                return 0;       
        }                       
        who->move(r);
        return 0;
}

void init()
{
        object me = this_player();
        if( clonep(this_object()) )
                add_action("do_work", "work");
        else if( userp(me) )
        {
                if( check_env(me) )
                        add_action("do_work", "work");
        }               
}

int do_work(string arg)
{
        object me = this_player();

        if(sizeof(filter_array(all_inventory(this_object()),(:userp:)))>10) 
                return notify_fail("丰老板笑眯眯地对你说：真对不住，人手已经够了。\n");
        if( me->is_busy() ) 
                return notify_fail("你正在忙着呢。\n");
        if( me->query("kee")<=50 || me->query("sen")<=50 )
                return notify_fail("丰老板赶紧把你扶起来：先歇一会儿。\n");            
        if( !me->query_temp("working_in_liangdian")) 
        {
                tell_object(me,"你从车上卸下一袋袋的大米，又垒在墙边，累的腰酸腿疼！\n");
                me->receive_damage("kee",50,me);
                me->receive_damage("sen",50,me);
                me->set_temp("working_in_liangdian",1);
                me->start_busy(2+random(3));
                me->start_call_out( (: call_other, __FILE__, "reset_work", me:),3+random(10));
                
        } 
        else    tell_object(me,"丰老板赶紧把你扶起来：先歇一会儿。\n");
        return 1;
}

void reset_work (object me)
{
        object ob;

        if( !me )
                return;
        if( !present(me,this_object()) || !living(me) )
        {       
                me->delete_temp("working_in_liangdian");
                return;
        }
        me->delete_temp("working_in_liangdian");
        me->start_busy(1);
        ob = new("/obj/money/gold");
        ob->move(me);
        tell_object(me,"丰老板笑眯眯地对你说：辛苦啦，这是你的工钱。\n",me);
}

