33 lines
942 B
Plaintext
33 lines
942 B
Plaintext
|
//File name: zep_marilith_end
|
||
|
//Usage/Description: OnCombatRound End script for Marilith.
|
||
|
|
||
|
#include "zep_inc_scrptdlg"
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
object oTarget = GetAttackTarget();
|
||
|
int nTargetAC = GetAC(oTarget);
|
||
|
int nRoll = d20();
|
||
|
int nCrit = FALSE;
|
||
|
if(nRoll >= 19) //crit on natural 19-20
|
||
|
{
|
||
|
if (d20()+8 >nTargetAC)
|
||
|
{
|
||
|
nCrit = TRUE;
|
||
|
}
|
||
|
}
|
||
|
if(nRoll + 8 >= nTargetAC)
|
||
|
{
|
||
|
int nDamage = d8() + 2;
|
||
|
effect eDamage = EffectDamage(nDamage, DAMAGE_TYPE_SLASHING, DAMAGE_POWER_NORMAL);
|
||
|
if(nCrit == TRUE)
|
||
|
{
|
||
|
nDamage = d8(2) + 4;
|
||
|
eDamage = EffectDamage(nDamage, DAMAGE_TYPE_SLASHING, DAMAGE_POWER_NORMAL);
|
||
|
}
|
||
|
string sMessageToPC = GetStringByStrRef(nZEPMarilithDMG,GENDER_MALE);
|
||
|
SendMessageToPC(oTarget, sMessageToPC+IntToString(nDamage));
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oTarget);
|
||
|
}
|
||
|
}
|