enderalse/source/scripts/defaultrumbleonactivate.psc

44 lines
1.4 KiB
Plaintext
Raw Permalink Normal View History

scriptname defaultRumbleOnActivate extends objectreference
{Quick script that shakes camera and/or controller on activation. Customizable via properties}
;======================================================;
import game ; import game script for access to shake functions
import utility ; import utility for access to wait()
float property cameraIntensity = 0.25 auto
{How hard to shake camera, range:0-1}
float property shakeLeft = 0.25 auto
{How hard to shake left motor, range:0-1}
float property shakeRight = 0.25 auto
{How hard to shake right motor, range:0-1}
float property duration = 0.25 auto
{how long to shake controller}
bool property repeatable = true auto
{by default, this happens per activation}
;======================================================;
auto STATE active
EVENT onActivate(objectReference actronaut)
shakeCamera(NONE, cameraIntensity)
shakeController(shakeLeft,shakeRight,duration)
gotoState("busy")
wait(duration)
if repeatable == true
gotoSTATE("active")
else
gotoState("inactive")
endif
endEVENT
endSTATE
;======================================================;
STATE busy
EVENT onActivate(objectReference actronaut)
; don't do anything until previous shake is over with
endEVENT
endSTATE
;======================================================;
STATE inactive
; empty state. Script is dead now.
endSTATE
;======================================================;