bottle-rinse-repeat/src/EBxMilkBrahmin.gek

76 lines
1.6 KiB
Plaintext
Raw Permalink Normal View History

2022-07-23 15:38:20 +00:00
scn EBxMilkBrahmin
ref rBrahmin
ref rActionRef
ref rOwner
int iChance
int iTimestamp
int iLastMilked
begin function { rBrahmin, rActionRef }
if playerRef.IsSneaking || rBrahmin.GetDead ; Keep tipping intact
return
endif
if playerRef.GetItemCount EBxUpgradableToPuraList == 0
ShowMessage EBxMsgNoBottles
return
endif
if playerRef.GetItemCount caps001 == 0
ShowMessage EBxMsgNoCaps
return
endif
let iTimestamp := (GetUserTime)["Hour"]
if iTimestamp == 0
let iTimestamp := 24
endif
let iLastMilked := rBrahmin.GetAV Variable09
if iLastMilked != 0
if iLastMilked == iTimestamp
ShowMessage EBxMsgBrahminMilked
return
elseif iTimestamp < iLastMilked
rBrahmin.SetAV Variable09 0
endif
endif
let iChance := playerRef.GetAV luck * 10 - GetRandomPercent + 1
if iChance < 0
ShowMessage EBxMsgBrahminMilked
rBrahmin.SetAV Variable09 iTimestamp
return
endif
rBrahmin.PlaySound NPCBrahminIdleMoo
call EBxReplaceFormListWithItem EBxBrahminMilk EBxUpgradableToPuraList
if EBxCanteenSipsMax > 0
call EBxReplenishCanteen EBxBrahminMilk 0
endif
rBrahmin.SetAV Variable09 iTimestamp
; TODO: Show owned brahmin's prompt in red
;
; set rOwner to rBrahmin.GetOwner
; if IsFormValid rOwner == 0
; set rOwner to rBrahmin.GetParentCellOwner
; endif
; if IsFormValid rOwner
; if rOwner != PlayerFaction && rOwner != playerRef.GetBaseForm
; if eval GetType rOwner != 8 || PlayerRef.GetInFaction rOwner != 1 || rBrahmin.GetOwningFactionRequiredRank > PlayerRef.GetFactionRank rOwner
; playerRef.SendStealingAlarm rBrahmin
; endif
; endif
; endif
end