IF
	AttackedBy([ENEMY],DEFAULT)
	Range(LastAttackerOf(Myself),5)
	!StateCheck(LastAttackerOf(Myself),STATE_PANIC)
	!Class(Myself,FIGHTER_MAGE_THIEF)
THEN
	RESPONSE #100
		Shout(3)
		EquipMostDamagingMelee()
		AttackReevaluate(LastAttackerOf(Myself),30)
END

IF
	AttackedBy([ENEMY],DEFAULT)
THEN
	RESPONSE #100
		Shout(3)
		EquipRanged()
		AttackReevaluate(LastAttackerOf(Myself),30)
END

IF
	Heard([ALLY],3)
	!InParty(LastAttackerOf(LastHeardBy(Myself)))
	Range(LastAttackerOf(LastHeardBy(Myself)),5)
	!StateCheck(LastAttackerOf(LastHeardBy(Myself)),STATE_PANIC)
	!Class(Myself,FIGHTER_MAGE_THIEF)
THEN
	RESPONSE #100
		EquipMostDamagingMelee()
		AttackReevaluate(LastAttackerOf(LastHeardBy(Myself)),30)
END

IF
	Heard([ALLY],3)
	!InParty(LastAttackerOf(LastHeardBy(Myself)))
THEN
	RESPONSE #100
		EquipRanged()
		AttackReevaluate(LastAttackerOf(LastHeardBy(Myself)),30)
END

IF
	See(NearestEnemyOf(Myself))
	!InParty(NearestEnemyOf(Myself))
	Range(NearestEnemyOf(Myself),5)
	!StateCheck(NearestEnemyOf(Myself),STATE_PANIC)
	!Class(Myself,FIGHTER_MAGE_THIEF)
THEN
	RESPONSE #100
		Shout(4)
		EquipMostDamagingMelee()
		AttackReevaluate(NearestEnemyOf(Myself),30)
END

IF
	See(NearestEnemyOf(Myself))
	!InParty(NearestEnemyOf(Myself))
THEN
	RESPONSE #100
		Shout(4)
		EquipRanged()
		AttackReevaluate(NearestEnemyOf(Myself),30)
END

IF
	Heard([ALLY],4)
	!InParty(NearestEnemyOf(LastHeardBy(Myself)))
	Range(NearestEnemyOf(LastHeardBy(Myself)),5)
	!StateCheck(NearestEnemyOf(LastHeardBy(Myself)),STATE_PANIC)
	!Class(Myself,FIGHTER_MAGE_THIEF)
THEN
	RESPONSE #100
		EquipMostDamagingMelee()
		AttackReevaluate(NearestEnemyOf(LastHeardBy(Myself)),30)
END

IF
	Heard([ALLY],4)
	!InParty(NearestEnemyOf(LastHeardBy(Myself)))
THEN
	RESPONSE #100
		EquipRanged()
		AttackReevaluate(NearestEnemyOf(LastHeardBy(Myself)),30)
END