2024-06-20 15:47:42 -04:00

77 lines
2.6 KiB
Plaintext

void main()
{
object oObject = GetFirstObjectInShape(SHAPE_SPHERE, 9.0, GetLocation(OBJECT_SELF),OBJECT_TYPE_CREATURE);
do {
if (d12()<3)
{
int iFallingDC = 16;
int iPCFortSave;
string sSaveResult;
iPCFortSave = FortitudeSave(oObject, iFallingDC);
switch(iPCFortSave)
{
case 0:
{
sSaveResult = "FAILURE";
break;
}
case 1:
{
sSaveResult = "SUCCESS";
break;
}
case 2:
{
sSaveResult = "IMMUNE";
break;
}
}
if (sSaveResult == "FAILURE")
{
effect ePuke = EffectVisualEffect(VFX_COM_CHUNK_YELLOW_SMALL);
effect eSeasick = EffectKnockdown();
string sPukeTalk = "BBBLLLLAAAARRRRGGGGHHHHH!!!!";
string sPukeApology = "I don't think I'm going to make it to port...";
AssignCommand(oObject, ClearAllActions());
AssignCommand(oObject, ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK,1.0,1.5));
AssignCommand(oObject, ActionSpeakString(sPukeTalk));
AssignCommand(oObject, PlayVoiceChat(VOICE_CHAT_PAIN3,oObject));
DelayCommand(1.75, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, ePuke, oObject, 1.0));
AssignCommand(oObject, DelayCommand(1.85, PlaySound("as_cv_gutterspl1")));
DelayCommand(2.5, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSeasick, oObject, 5.0));
AssignCommand(oObject, DelayCommand(5.0, ActionSpeakString(sPukeApology)));
}
if (sSaveResult == "SUCCESS")
{
string sPukeTalk = "Ugh - this tub rolls like a dire boar in dragon dung!";
string sPukeApology = "I hope I can keep my lunch down";
AssignCommand(oObject, ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK,1.0,2.5));
AssignCommand(oObject, ActionSpeakString(sPukeTalk));
AssignCommand(oObject, DelayCommand(6.0, ActionSpeakString(sPukeApology)));
}
if (sSaveResult == "IMMUNE")
{
string sPukeTalk = "Yo-ho, yo-ho, de dum de dum de da";
string sPukeApology = "Ah, there's nothing like a good sea voyage!";
AssignCommand(oObject, ClearAllActions());
AssignCommand(oObject, ActionPlayAnimation(ANIMATION_FIREFORGET_VICTORY3,1.0,1.5));
AssignCommand(oObject, ActionSpeakString(sPukeTalk));
AssignCommand(oObject, DelayCommand(5.0, ActionSpeakString(sPukeApology)));
}
}
else return;
} while ((oObject = GetNextObjectInShape(SHAPE_SPHERE, 9.0, GetLocation(OBJECT_SELF),OBJECT_TYPE_CREATURE)) != OBJECT_INVALID);
}