class 1 puncher : warrior_ag_slow_type1
{
handler:
	EventHandler MY_DYING(always_list,c1,code_info,i0,i9,last_attacker,lparty,member,random1_list,target)
	{
		always_list = gg::AllocCodeInfoList();
		random1_list = gg::AllocCodeInfoList();
		target = last_attacker;
		if( myself::HaveMemo(target,329) )
		{
			random1_list::SetInfo(0,target);
		}
		target = last_attacker;
		always_list::SetInfo(1,target);
		target = last_attacker;
		if( myself::HaveMemo(target,426) == 1 )
		{
			random1_list::SetInfo(2,target);
		}
		if( gg::IsNull(lparty) == 0 )
		{
			for(i9 = 0; i9 < lparty.member_count; i9 = ( i9 + 1 ))
			{
				target = myself::GetMemberOfParty(lparty,i9);
				if( myself::HaveMemo(target,426) == 1 )
				{
					random1_list::SetInfo(2,target);
				}
			}
		}
		while( gg::IsNull(code_info = always_list::Next()) == 0 )
		{
			if( code_info.code == 1 )
			{
				myself::SetCurrentQuestID(222);
				target = code_info::RandomSelectOne();
				if( gg::IsNull(target) == 0 && myself::DistFromMe(target) <= 1500 )
				{
					c1 = myself::GetLastAttacker();
					if( c1.master )
					{
						c1 = c1.master;
					}
					if( myself::HaveMemo(c1,222) && myself::OwnItemCount(c1,2763) > 0 && myself::OwnItemCount(c1,2768) < 10 && myself::GetMemoState(c1,222) == 1 )
					{
						i0 = myself::GetMemoStateEx(c1,222,1);
						myself::SetMemoStateEx(c1,222,1,( i0 + 1 ));
						c1.quest_last_reward_time = myself::GetCurrentTick();
						myself::GiveItem1(c1,2768,1);
						if( myself::OwnItemCount(c1,2768) >= 10 )
						{
							myself::SoundEffect(c1,"ItemSound.quest_middle");
							if( i0 >= 9 )
							{
								myself::SetFlagJournal(c1,222,3);
								myself::SetMemoStateEx(c1,222,1,0);
							}
						}
						else
						{
							myself::SoundEffect(c1,"ItemSound.quest_itemget");
						}
					}
				}
			}
		}
		code_info = random1_list::RandomSelectOne();
		if( gg::IsNull(code_info) == 0 )
		{
			switch(code_info.code)
			{
				case 0:
				{
					myself::SetCurrentQuestID(329);
					target = code_info::RandomSelectOne();
					if( gg::IsNull(target) == 0 && myself::DistFromMe(target) <= 1500 )
					{
						i0 = gg::Rand(100);
						if( i0 < 2 )
						{
							myself::GiveItem1(target,1346,1);
							myself::SoundEffect(target,"ItemSound.quest_itemget");
						}
						else if( i0 < 50 )
						{
							myself::GiveItem1(target,1365,1);
							myself::SoundEffect(target,"ItemSound.quest_itemget");
						}
					}
					break;
				}
				case 2:
				{
					myself::SetCurrentQuestID(426);
					target = code_info::RandomSelectOne();
					if( gg::IsNull(target) == 0 && myself::DistFromMe(target) <= 1500 )
					{
						if( gg::Rand(1000) < 265 )
						{
							myself::GiveItem1(target,7586,1);
							myself::SoundEffect(target,"ItemSound.quest_itemget");
						}
					}
					break;
				}
			}
		}
		super;
	}

}
