Aschbourne_PRC8/_module/nss/_uoa_alcohol.nss

125 lines
5.0 KiB
Plaintext
Raw Normal View History

2024-06-14 10:48:20 -04:00
void main()
{
object oPC = OBJECT_SELF;
string sTag = GetLocalString(oPC,"sDrink");
int iDrunk = GetLocalInt(oPC,"iDrunk");
int iDose = 1;
if (sTag=="drink_cup_001") iDose=1; //Apple Cider
if (sTag=="drink_cup_002") iDose=2; //House Cider
if (sTag=="drink_cup_003") iDose=2; //Scrumpy
if (sTag=="drink_cup_004") iDose=2; //Cyser
if (sTag=="drink_cup_005") iDose=2; //Blueberry Cider
if (sTag=="drink_cup_006") iDose=2; //Blackberry Cider
if (sTag=="drink_cup_007") iDose=2; //Grape Cider
if (sTag=="drink_cup_008") iDose=3; //Somerset Cider
if (sTag=="drink_cup_009") iDose=3; //Red Wine
if (sTag=="drink_cup_010") iDose=3; //White Wine
if (sTag=="drink_cup_011") iDose=3; //Purple Wine
if (sTag=="drink_cup_012") iDose=5; //Sherry
if (sTag=="drink_cup_013") iDose=2; //Standard Lager
if (sTag=="drink_cup_014") iDose=2; //Dry Lager
if (sTag=="drink_cup_015") iDose=2; //Light Lager
if (sTag=="drink_cup_016") iDose=3; //Draught Lager
if (sTag=="drink_cup_017") iDose=4; //Red Malt Lager
if (sTag=="drink_cup_018") iDose=4; //Gold Malt Lager
if (sTag=="drink_cup_019") iDose=5; //Ice Lager
if (sTag=="drink_cup_020") iDose=6; //Stout Lager
if (sTag=="drink_cup_021") iDose=3; //Standard Ale
if (sTag=="drink_cup_022") iDose=4; //Stout Ale
if (sTag=="drink_cup_023") iDose=5; //Porter Ale
if (sTag=="drink_cup_024") iDose=6; //Barleywine Ale
if (sTag=="drink_cup_025") iDose=6; //Kolsch Ale
if (sTag=="drink_cup_026") iDose=2; //Honeymead
if (sTag=="drink_cup_027") iDose=2; //Sackmead
if (sTag=="drink_cup_028") iDose=2; //Apple Muslin Mead
if (sTag=="drink_cup_029") iDose=3; //Metheglin
if (sTag=="drink_cup_030") iDose=3; //Morat
if (sTag=="drink_cup_031") iDose=4; //Hippocras
if (sTag=="drink_cup_032") iDose=4; //Pyment
if (sTag=="drink_cup_033") iDose=5; //Braggot
if (sTag=="drink_cup_034") iDose=5; //Oxymel
if (sTag=="drink_cup_035") iDose=6; //Rhodomel
if (sTag=="drink_cup_036") iDose=10; //Corn Whiskey
if (sTag=="drink_cup_037") iDose=11; //Acorn Whiskey
if (sTag=="drink_cup_038") iDose=12; //Sake
if (sTag=="drink_cup_039") iDose=6; //Old Rum
if (sTag=="drink_cup_040") iDose=7; //White Rum
if (sTag=="drink_cup_041") iDose=8; //Gold Rum
if (sTag=="drink_cup_042") iDose=9; //Amber Rum
if (sTag=="drink_cup_043") iDose=10; //Dark Rum
if (sTag=="drink_cup_044") return; //Vinegar
if (sTag=="drink_cup_045") iDose=8; //Vodka
if (sTag=="drink_cup_046") iDose=9; //Gin
iDrunk=iDrunk+iDose;
SetLocalInt(oPC,"iDrunk",iDrunk);
//Determine drunk state
int iCon = GetAbilityScore(oPC,ABILITY_CONSTITUTION);
int iSave = GetFortitudeSavingThrow(oPC);
int iSaveBonus = iCon/6;
if (GetRacialType(oPC)==RACIAL_TYPE_DWARF) iSaveBonus = iCon;
if (GetRacialType(oPC)==RACIAL_TYPE_ELF) iSaveBonus = iCon/2;
if (GetRacialType(oPC)==RACIAL_TYPE_HALFELF) iSaveBonus = iCon/3;
if (GetRacialType(oPC)==RACIAL_TYPE_HALFLING) iSaveBonus = iCon/3;
if (GetRacialType(oPC)==RACIAL_TYPE_HALFORC) iSaveBonus = iCon/3;
if (GetRacialType(oPC)==RACIAL_TYPE_GNOME) iSaveBonus = iCon/4;
int iSaveRoll = d20(1)+iSaveBonus;
iDrunk = iDrunk+5;
if (iSaveRoll<iDrunk)
{
int iSaveDiff = iDrunk-iSaveRoll;
/*
string sMessage;
switch (iSaveDiff)
{
case 0:{sMessage="you feel sober.";break;}
case 1:{sMessage="You feel sober.";break;}
case 2:{sMessage="You feel good.";break;}
case 3:{sMessage="You feel happy.";break;}
case 4:{sMessage="You feel lightheaded.";break;}
case 5:{sMessage="You are tipsy.";break;}
case 6:{sMessage="You are drunk.";break;}
case 7:{sMessage="You are drunk.";break;}
case 8:{sMessage="You are very drunk.";break;}
case 9:{sMessage="You are very drunk.";break;}
case 10:{sMessage="You are very drunk.";break;}
case 11:{sMessage="You are inebriated.";break;}
case 12:{sMessage="You are inebriated.";break;}
case 13:{sMessage="You are unable to walk properly.";break;}
case 14:{sMessage="You are unable to walk properly.";break;}
case 15:{sMessage="You are unable to walk properly.";break;}
case 16:{sMessage="You are unable to stand.";break;}
case 17:{sMessage="You are unable to stand.";break;}
case 18:{sMessage="You are unable to stand.";break;}
case 19:{sMessage="You are unable to stand.";break;}
case 20:{sMessage="You pass out...";break;}
default:{sMessage="You pass out....";break;}
}
FloatingTextStringOnCreature(sMessage,oPC,FALSE);
*/
if (iDrunk-iCon>5)
{
AssignCommand(oPC,SpeakString("*Hic!*",TALKVOLUME_TALK));
AssignCommand(oPC,ActionPlayAnimation(ANIMATION_FIREFORGET_DODGE_DUCK,1.0));
}
if (iSaveDiff>5)
{
if (GetLocalInt(oPC,"iAmDrunk")==0)
{
SetLocalInt(oPC,"iAmDrunk",99);
ExecuteScript("_uoa_drunk",oPC);
return;
}
}
}
}