// Exert: PowerUp.c 峨嵋九阳功加力
// Date : AHA 97/06/29

#include <ansi.h>

inherit F_CLEAN_UP;

void remove_effect(object me, int amount);

int exert(object me, object target)
{
	int skill;

	if( target != me ) 
		return notify_fail("峨嵋九阳功只能用于提升自己的战斗力。\n");

	if (!me->is_fighting())
		return notify_fail("你只能在战斗中用峨嵋九阳功来提升战斗力。\n");

	if( (int)me->query("neili") < 100  ) 
		return notify_fail("你的内力不够。\n");
	if( (int)me->query_temp("powerup") ) 
		return notify_fail("你已经在运功中了。\n");

	skill = me->query_skill("force");
	me->add("neili", -100);

	message_vision(HIY "$N吸了一口气，运起峨嵋九阳功，双目中神光一闪，浑身上下似增添了"
        		"无穷气力。\n" NOR, me);

	me->add_temp("apply/attack", skill/3);
	me->add_temp("apply/dodge", skill/3);
	me->set_temp("powerup", 1);

	me->start_call_out( (: call_other, this_object(), "remove_effect", 
                         me, skill/3 :), skill);

	if( me->is_fighting() ) me->start_busy(3);

	return 1;
}

void remove_effect(object me, int amount)
{
	me->add_temp("apply/attack", - amount);
	me->add_temp("apply/dodge", - amount);
	me->delete_temp("powerup");
	tell_object(me, "你的峨嵋九阳功运行完毕，将内力收回丹田。\n");
}
