77 lines
2.6 KiB
Plaintext
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);
|
|
}
|
|
|