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); }