52 lines
1.5 KiB
Plaintext
52 lines
1.5 KiB
Plaintext
|
scn EBxGetBottleByDrink
|
||
|
|
||
|
int iCount
|
||
|
ref rDrink
|
||
|
ref rBaseForm
|
||
|
ref rBottle
|
||
|
|
||
|
begin function { rDrink }
|
||
|
|
||
|
if IsReference rDrink
|
||
|
set rBaseForm to rDrink.GetBaseForm
|
||
|
else
|
||
|
set rBaseForm to rDrink
|
||
|
endif
|
||
|
|
||
|
if rBaseForm == IrradiatedScotch || rBaseForm == Scotch || rBaseForm == ScotchGood
|
||
|
set rBottle to ScotchBottle01Empty01
|
||
|
elseif rBaseForm == SSBottleFull || rBaseForm == IrradiatedSSBottleFull
|
||
|
set rBottle to SSBottleEmpty
|
||
|
elseif rBaseForm == Beer || rBaseForm == IrradiatedBeer
|
||
|
set rBottle to EBxBeerBottleEmpty
|
||
|
elseif rBaseForm == Vodka
|
||
|
set rBottle to EBxVodkaBottleEmpty
|
||
|
elseif rBaseForm == Whiskey || rBaseForm == IrradiatedWhiskey || rBaseForm == WhiskeyDixon
|
||
|
set rBottle to WhiskeyBottle01Empty01
|
||
|
elseif rBaseForm == Wine
|
||
|
set rBottle to EBxWineBottleEmpty
|
||
|
elseif eval rBaseForm == EBxBrahminMilk || IsRefInList WaterLIST rDrink > -1
|
||
|
|
||
|
; prevent endless loop
|
||
|
if ListGetCount NVDLC03AllEmptyBottlesLIST > 0
|
||
|
|
||
|
while rBottle == 0 || rBottle == SSBottleEmptyNoFloat
|
||
|
set iCount to ListGetCount NVDLC03AllEmptyBottlesLIST
|
||
|
set iCount to Rand 0 iCount
|
||
|
set rBottle to ListGetNthForm NVDLC03AllEmptyBottlesLIST iCount
|
||
|
loop
|
||
|
|
||
|
endif
|
||
|
|
||
|
elseif IsRefInList NukaBottleDrinks rDrink > -1
|
||
|
set rBottle to NukaColaBottle
|
||
|
elseif eval GetAddictionEffect rBaseForm == WithdrawalAlcohol || IsRefInList AlchoholicDrinks rDrink > -1
|
||
|
set rBottle to ScotchBottle01Empty01
|
||
|
elseif IsRefInList NonAlchoholicDrinks rDrink > -1
|
||
|
set rBottle to SodaBottleEmpty01
|
||
|
endif
|
||
|
|
||
|
SetFunctionValue rBottle
|
||
|
|
||
|
end
|