44 lines
1.4 KiB
Plaintext
44 lines
1.4 KiB
Plaintext
|
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
|
||
|
;======================================================;
|