Enderal SE https://mod.pub/enderal-se/38-enderal-se
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
2.2 KiB
81 lines
2.2 KiB
5 months ago
|
scriptName defaultFakeHarvestableScript extends objectReference
|
||
|
;
|
||
|
;This script is added on an activator to fake an object being harvestable
|
||
|
; it mimics the normal harvest behavior
|
||
|
;==============================================================
|
||
|
|
||
|
|
||
|
ingredient property IngredientHarvested auto
|
||
|
{ingredient added when harvested}
|
||
|
|
||
|
potion property PotionHarvested auto
|
||
|
{potion added when harvested}
|
||
|
|
||
|
bool property deleteSelfOnHarvest = false auto
|
||
|
{if true, delete this object when harvested}
|
||
|
|
||
|
message property HarvestMessage auto
|
||
|
{Message that appears when you have successfully harvested something}
|
||
|
|
||
|
message property FailureMessage auto
|
||
|
{Message that appears when you fail to harvest something}
|
||
|
|
||
|
globalVariable property DaysToResetFakeHarvest auto
|
||
|
{The amount of game days that it takes to become reharvestable}
|
||
|
|
||
|
float property lastHarvestedDay auto Hidden
|
||
|
{the game day this was last successfuly harvested, used to know when to respawn}
|
||
|
|
||
|
sound property HarvestSound auto
|
||
|
{Sounds played on harvest}
|
||
|
|
||
|
;===================================================================
|
||
|
;;STATE BLOCK
|
||
|
;===================================================================
|
||
|
|
||
|
auto state readyForHarvest
|
||
|
event onActivate(objectReference akActivator)
|
||
|
goToState("waitingToRespawn")
|
||
|
fakeHarvest(akActivator)
|
||
|
if deleteSelfOnHarvest
|
||
|
disable()
|
||
|
delete()
|
||
|
endif
|
||
|
endEvent
|
||
|
endState
|
||
|
|
||
|
state waitingToRespawn
|
||
|
event onBeginState()
|
||
|
lastHarvestedDay = utility.getCurrentGameTime()
|
||
|
endEvent
|
||
|
|
||
|
event onActivate(objectReference akActivator)
|
||
|
FailureMessage.show()
|
||
|
endEvent
|
||
|
|
||
|
event onCellLoad()
|
||
|
if (lastHarvestedDay + DaysToResetFakeHarvest.getValue()) <= utility.getCurrentGameTime()
|
||
|
goToState("readyForHarvest")
|
||
|
endif
|
||
|
endEvent
|
||
|
endState
|
||
|
|
||
|
;===================================================================
|
||
|
;;FUNCTION BLOCK
|
||
|
;===================================================================
|
||
|
|
||
|
function fakeHarvest(objectReference akActivator)
|
||
|
if (akActivator as actor)
|
||
|
HarvestMessage.show()
|
||
|
HarvestSound.play(self)
|
||
|
if IngredientHarvested
|
||
|
(akActivator as actor).addItem(IngredientHarvested, 1, true)
|
||
|
endif
|
||
|
|
||
|
if PotionHarvested
|
||
|
(akActivator as actor).addItem(PotionHarvested, 1, true)
|
||
|
endif
|
||
|
endif
|
||
|
endFunction
|
||
|
|