Custom RNG Device
using { /Fortnite.com/Devices }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Verse.org/Random }
using { /Verse.org/Simulation }
custom_rng_device := class(creative_device):
@editable
ActivateTrigger:trigger_device = trigger_device{}
@editable
ChoiceTriggers:[]trigger_device = array{}
@editable
ChooseOptionsOnce:logic = true
var UnusedTriggers:[]trigger_device = array{}
OnBegin<override>()<suspends>:void=
Sleep(0.0)
DeviceSetup()
DeviceSetup():void =
ActivateTrigger.TriggeredEvent.Subscribe(ChooseTrigger)
set UnusedTriggers = Shuffle(ChoiceTriggers)
ChooseTrigger(MaybeAgent:?agent):void =
if (ChosenTrigger := UnusedTriggers[0], Agent := MaybeAgent?):
ChosenTrigger.Trigger(Agent)
if (ChooseOptionsOnce?):
set UnusedTriggers = for (Index -> Trigger : UnusedTriggers, Index <> 0):
Trigger
else:
set UnusedTriggers = Shuffle(ChoiceTriggers)
ChooseTrigger(MaybeAgent)