jak-project/goal_src/jak3/levels/factory/fac-part.gc
Hat Kid e2e5289788
decomp3: font widescreen and shadow hacks, generic renderer, misc files (#3483)
- `pecker-ingame`
- `des-bbush-tasks`
- `des-burning-bush`
- `des-bush-part`
- `des-bush`
- `mh-centipede`
- `mh-centipede-part`
- `mh-wasp`
- `mh-wasp-part`
- `needle-fish`
- `des-bush-time-chase`
- `timer-path`
- `mission-squad-control-h`
- `mh-bat`
- `hover-nav-factoryd`
- `hover-nav-factoryc`
- `conveyor`
- `fac-part`
- `factory-part`
- `factoryc-mood`
- `factoryc-obs`
- `factoryc-obs2`
- `lfaccar-init`
- `factory-boss-part`
- `factory-boss-scenes`
- `factory-boss-setup`
- `factory-boss-states`
- `factory-mood`
- `factoryc-manager`
- `lfacrm1-mood`
- `lfacrm2-mood`
- `missile-bot`
- `sew-laser-turret`
- `ai-task-h`
- `ash-h`
- `ash-shot`
- `ash-states`
- `ash-task`
- `ash`
- `bot-h`
- `bot-states`
- `bot`
- `ash-oasis-course`
- `oasis-defense`
- `comb-field`
- `comb-mood`
- `comb-obs`
- `comb-part`
- `comb-scenes`
- `comb-sentry`
- `comb-travel`
- `comba-init`
- `combx-scenes`
- `h-sled`
- `destroy-dark-eco`
- `fac-gunturret`
- `fac-robotank-turret`
- `fac-robotank`
- `fac-tower`
- `factory-h`
- `factory-hud`
- `factory-manager`
- `factorya-init`
- `ffight-projectile`
- `ftank-projectile`
- `fturret-projectile`
- `h-warf`
- `warf-projectile`
2024-04-28 08:59:46 -04:00

2393 lines
77 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; name: fac-part.gc
;; name in dgo: fac-part
;; dgos: FACTORYA
(define-extern *range-ffexplo-dust-color* curve-color-fast)
(define-extern *range-ffexplo-dust-alpha* curve2d-fast)
(define-extern *range-ffexplo-dust-scale-x* curve2d-fast)
(define-extern *range-ffexplo-dust-scale-y* curve2d-fast)
(define-extern *curve-ffexplo-dust-alpha* curve2d-fast)
(define-extern *curve-ffexplo-dust-scale-x* curve2d-fast)
(define-extern *curve-ffexplo-dust-scale-y* curve2d-fast)
(define-extern *range-ffexplo-color* curve-color-fast)
(define-extern *range-ffexplo-alpha* curve2d-fast)
(define-extern *range-ffexplo-scale-x* curve2d-fast)
(define-extern *range-ffexplo-scale-y* curve2d-fast)
(define-extern *curve-ffexplo-alpha* curve2d-fast)
(define-extern *curve-ffexplo-scale-x* curve2d-fast)
(define-extern *curve-ffexplo-scale-y* curve2d-fast)
(define-extern *range-fgtexplo-color* curve-color-fast)
(define-extern *range-fgtexplo-alpha* curve2d-fast)
(define-extern *range-fgtexplo-scale-x* curve2d-fast)
(define-extern *range-fgtexplo-scale-y* curve2d-fast)
(define-extern *curve-fgtexplo-alpha* curve2d-fast)
(define-extern *curve-fgtexplo-scale-x* curve2d-fast)
(define-extern *curve-fgtexplo-scale-y* curve2d-fast)
(define-extern *range-ftexplo-dust-color* curve-color-fast)
(define-extern *range-ftexplo-dust-alpha* curve2d-fast)
(define-extern *range-ftexplo-dust-scale-x* curve2d-fast)
(define-extern *range-ftexplo-dust-scale-y* curve2d-fast)
(define-extern *curve-ftexplo-dust-alpha* curve2d-fast)
(define-extern *curve-ftexplo-dust-scale-x* curve2d-fast)
(define-extern *curve-ftexplo-dust-scale-y* curve2d-fast)
(define-extern *range-ftexplo-color* curve-color-fast)
(define-extern *range-ftexplo-alpha* curve2d-fast)
(define-extern *range-ftexplo-scale-x* curve2d-fast)
(define-extern *range-ftexplo-scale-y* curve2d-fast)
(define-extern *curve-ftexplo-alpha* curve2d-fast)
(define-extern *curve-ftexplo-scale-x* curve2d-fast)
(define-extern *curve-ftexplo-scale-y* curve2d-fast)
(define-extern *range-gthoexplo-color* curve-color-fast)
(define-extern *range-gthoexplo-alpha* curve2d-fast)
(define-extern *range-gthoexplo-scale-x* curve2d-fast)
(define-extern *range-gthoexplo-scale-y* curve2d-fast)
(define-extern *curve-gthoexplo-alpha* curve2d-fast)
(define-extern *curve-gthoexplo-scale-x* curve2d-fast)
(define-extern *curve-gthoexplo-scale-y* curve2d-fast)
;; DECOMP BEGINS
(defpartgroup group-hellcat-thrust
:id 728
:flags (sp0 sp4)
:bounds (static-bspherem 0 0 0 10)
:parts ((sp-item 2761 :flags (is-3d sp3 sp7)) (sp-item 2762 :flags (sp3 sp7)))
)
(defpart 2761
:init-specs ((:texture (laser-hit2 level-default-sprite))
(:num 1.0)
(:z (meters 0))
(:scale-x (meters 0))
(:rot-x (degrees 0))
(:rot-y (degrees 0))
(:rot-z (degrees 0))
(:scale-y (meters 0))
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 200.0)
(:vel-y (meters 0))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:conerot-z (degrees 0))
(:rotate-x (degrees 90))
(:rotate-y (degrees 0))
)
)
(defpart 2762
:init-specs ((:texture (glow level-default-sprite))
(:num 3.0)
(:scale-x (meters 0))
(:scale-y (meters 0))
(:r 40.0)
(:g 100.0 28.0)
(:b 255.0)
(:a 30.0 8.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:conerot-z (degrees 0))
(:rotate-y (degrees 0))
)
)
(defpartgroup group-hellcat-thrust-afterburn
:id 729
:flags (sp0 sp4)
:bounds (static-bspherem 0 0 0 10)
:parts ((sp-item 2763 :flags (sp3 sp7)))
)
(defpart 2763
:init-specs ((:texture (glow level-default-sprite))
(:num 3.0)
(:scale-x (meters 4) (meters 1))
(:scale-y :copy scale-x)
(:r 40.0)
(:g 100.0 28.0)
(:b 255.0)
(:a 128.0 8.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
(:conerot-z (degrees 0))
(:rotate-y (degrees 0))
)
)
(defpartgroup group-fac-fighter-explosion
:id 730
:duration (seconds 4)
:flags (sp0 sp5)
:bounds (static-bspherem 0 0 0 15)
:parts ((sp-item 2765 :flags (sp3) :period (seconds 30) :length (seconds 0.017))
(sp-item 2766 :period (seconds 30) :length (seconds 0.035))
(sp-item 2767 :flags (sp3) :period (seconds 30) :length (seconds 0.017))
(sp-item 2768 :period (seconds 30) :length (seconds 0.035))
(sp-item 2769 :period (seconds 30) :length (seconds 0.035))
(sp-item 2770 :flags (sp3) :period (seconds 30) :length (seconds 0.017))
(sp-item 2771 :period (seconds 30) :length (seconds 0.167))
(sp-item 2772 :period (seconds 30) :length (seconds 0.5))
(sp-item 2773 :flags (sp3) :binding 2764)
(sp-item 2773 :flags (sp3) :binding 2764)
(sp-item 2773 :flags (sp3) :binding 2764)
(sp-item 2773 :flags (sp3) :binding 2764)
(sp-item 2773 :flags (sp3) :binding 2764)
(sp-item 2764 :flags (sp2) :period (seconds 4) :length (seconds 2))
(sp-item 2764 :flags (sp2) :period (seconds 4) :length (seconds 2))
(sp-item 2764 :flags (sp2) :period (seconds 4) :length (seconds 2))
(sp-item 2764 :flags (sp2) :period (seconds 4) :length (seconds 2))
(sp-item 2764 :flags (sp2) :period (seconds 4) :length (seconds 2))
)
)
(defpart 2765
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 20))
(:rot-x (degrees 225))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 128.0)
(:b 40.0)
(:a 64.0)
(:fade-a -0.21333334)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 40960.0)
)
)
(defpart 2766
:init-specs ((:texture (hotdot level-default-sprite))
(:num 10.0 10.0)
(:scale-x (meters 0.8) (meters 1.2))
(:rot-y (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 80.0 20.0)
(:b 30.0)
(:a 128.0)
(:vel-y (meters 0.16666667) (meters 0.33333334))
(:scalevel-x (meters -0.0016666667))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.17777778)
(:fade-b -0.06666667)
(:fade-a -0.28444445 -0.28444445)
(:friction 0.9)
(:timer (seconds 1.5))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3))
(:conerot-x (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 2767
:init-specs ((:texture (explosion-nebula level-default-sprite))
(:num 30.0)
(:scale-x (meters 3) (meters 2))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 160.0)
(:b 40.0)
(:a 128.0)
(:vel-y (meters 0) (meters 0.06666667))
(:scalevel-x (meters 0.016666668))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.22857143)
(:fade-b -0.08571429)
(:fade-a -0.36571428 -0.36571428)
(:friction 0.93)
(:timer (seconds 1.167))
(:flags (sp-cpuinfo-flag-3))
(:conerot-x (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 2768
:init-specs ((:texture (explosion-edge level-default-sprite))
(:num 5.0)
(:scale-x (meters 3) (meters 2))
(:rot-y (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 8.0 8.0)
(:g :copy r)
(:b :copy r)
(:a 64.0)
(:vel-y (meters 0.33333334) (meters 0.13333334))
(:scalevel-x (meters 0.06666667))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.10666667 -0.10666667)
(:friction 0.7)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
(:func 'sparticle-2d-spline-align-instant)
(:conerot-x (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 2769
:init-specs ((:texture (explosion-nebula level-default-sprite))
(:birth-func 'birth-func-curve)
(:num 30.0)
(:scale-x (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 1.0)
(:g 1.0)
(:b 128.0)
(:a 128.0)
(:vel-y (meters 0.05))
(:friction 0.97)
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-13))
(:userdata 0.0)
(:func 'live-func-curve)
(:conerot-x (degrees 0) (degrees 360))
(:conerot-z (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(if #t
(set! *range-ffexplo-dust-color* (new 'static 'curve-color-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'inline-array vector 4
(new 'static 'vector :x 70.0 :y 70.0 :z 70.0 :w 128.0)
(new 'static 'vector :x 40.0 :y 40.0 :z 40.0 :w 128.0)
(new 'static 'vector :x 40.0 :y 40.0 :z 40.0 :w 128.0)
(new 'static 'vector :x 40.0 :y 40.0 :z 40.0 :w 128.0)
)
:one-over-x-deltas (new 'static 'vector :x 1.0 :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *range-ffexplo-dust-alpha* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'vector :x 64.0 :y 32.0 :z 33.0 :w 34.0)
:one-over-x-deltas (new 'static 'vector :x -32.0 :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *range-ffexplo-dust-scale-x* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'vector :x 8.0 :y 20.0 :z 21.0 :w 22.0)
:one-over-x-deltas (new 'static 'vector :x 12.0 :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *range-ffexplo-dust-scale-y* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'vector :x 8.0 :y 20.0 :z 21.0 :w 22.0)
:one-over-x-deltas (new 'static 'vector :x 12.0 :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *curve-ffexplo-dust-alpha* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -0.7 :z -1.0 :w -2.0)
:ys (new 'static 'vector :y 1.0 :w 1.0)
:one-over-x-deltas (new 'static 'vector :x 1.4285715 :y -3.3333333 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *curve-ffexplo-dust-scale-x* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -0.5 :z -1.0 :w -2.0)
:ys (new 'static 'vector :x 0.2 :y 0.8 :z 1.2 :w 2.2)
:one-over-x-deltas (new 'static 'vector :x 1.2 :y 0.8000001 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *curve-ffexplo-dust-scale-y* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -0.5 :z -1.0 :w -2.0)
:ys (new 'static 'vector :x 0.2 :y 0.8 :z 1.2 :w 2.2)
:one-over-x-deltas (new 'static 'vector :x 1.2 :y 0.8000001 :z 1.0 :w 1.0)
)
)
)
(define *part-fac-fighter-explosion-dust-in-curve-settings* (new 'static 'particle-curve-settings
:lifetime-base (seconds 0.5)
:lifetime-offset (seconds 1)
:flags (particle-curve-flags pcf0)
)
)
(set! (-> *part-id-table* 2769 init-specs 14 initial-valuef)
(the-as float *part-fac-fighter-explosion-dust-in-curve-settings*)
)
(set! (-> *part-fac-fighter-explosion-dust-in-curve-settings* color-start) *range-ffexplo-dust-color*)
(set! (-> *part-fac-fighter-explosion-dust-in-curve-settings* alpha-start) *range-ffexplo-dust-alpha*)
(set! (-> *part-fac-fighter-explosion-dust-in-curve-settings* scale-x-start) *range-ffexplo-dust-scale-x*)
(set! (-> *part-fac-fighter-explosion-dust-in-curve-settings* scale-y-start) *range-ffexplo-dust-scale-y*)
(set! (-> *part-fac-fighter-explosion-dust-in-curve-settings* r-scalar) #f)
(set! (-> *part-fac-fighter-explosion-dust-in-curve-settings* g-scalar) #f)
(set! (-> *part-fac-fighter-explosion-dust-in-curve-settings* b-scalar) #f)
(set! (-> *part-fac-fighter-explosion-dust-in-curve-settings* a-scalar) *curve-ffexplo-dust-alpha*)
(set! (-> *part-fac-fighter-explosion-dust-in-curve-settings* scale-x-scalar) *curve-ffexplo-dust-scale-x*)
(set! (-> *part-fac-fighter-explosion-dust-in-curve-settings* scale-y-scalar) *curve-ffexplo-dust-scale-y*)
(defpart 2771
:init-specs ((:texture (explosion-edge level-default-sprite))
(:num 5.0)
(:scale-x (meters 3) (meters 2))
(:rot-y (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 80.0 20.0)
(:b 30.0)
(:a 128.0)
(:vel-y (meters 0.33333334) (meters 0.13333334))
(:scalevel-x (meters 0.033333335))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.17777778)
(:fade-b -0.06666667)
(:fade-a -0.28444445 -0.28444445)
(:friction 0.7)
(:timer (seconds 1.5))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3))
(:func 'sparticle-2d-spline-align-instant)
(:conerot-x (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 2772
:init-specs ((:texture (explo-texture level-default-sprite))
(:birth-func 'birth-func-curve)
(:num 8.0)
(:x (meters -1) (meters 2))
(:y (meters 0) (meters 2))
(:scale-x (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 128.0)
(:vel-y (meters 0.06666667) (meters 0.033333335))
(:friction 0.9)
(:timer (seconds 1))
(:flags ())
(:userdata 0.0)
(:func 'live-func-curve)
(:conerot-x (degrees 20) (degrees 90))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(if #t
(set! *range-ffexplo-color* (new 'static 'curve-color-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'inline-array vector 4
(new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0)
(new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0)
(new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0)
(new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0)
)
:one-over-x-deltas (new 'static 'vector :x 1.0 :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *range-ffexplo-alpha* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'vector :x 128.0 :y 128.0 :z 129.0 :w 130.0)
:one-over-x-deltas (new 'static 'vector :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *range-ffexplo-scale-x* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'vector :x 3.0 :y 5.0 :z 6.0 :w 7.0)
:one-over-x-deltas (new 'static 'vector :x 2.0 :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *range-ffexplo-scale-y* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'vector :x 3.0 :y 5.0 :z 6.0 :w 7.0)
:one-over-x-deltas (new 'static 'vector :x 2.0 :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *curve-ffexplo-alpha* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -0.05 :z -0.7 :w -1.0)
:ys (new 'static 'vector :y 1.0 :z 0.8)
:one-over-x-deltas (new 'static 'vector :x 20.0 :y -0.3076923 :z -2.6666665 :w 1.0)
)
)
)
(if #t
(set! *curve-ffexplo-scale-x* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -0.8 :z -1.0 :w -2.0)
:ys (new 'static 'vector :y 1.0 :z 1.5 :w 2.5)
:one-over-x-deltas (new 'static 'vector :x 1.25 :y 2.5000002 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *curve-ffexplo-scale-y* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -0.8 :z -1.0 :w -2.0)
:ys (new 'static 'vector :y 1.0 :z 1.5 :w 2.5)
:one-over-x-deltas (new 'static 'vector :x 1.25 :y 2.5000002 :z 1.0 :w 1.0)
)
)
)
(define *part-fac-fighter-explosion-texture-curve-settings* (new 'static 'particle-curve-settings
:lifetime-base (seconds 0.1)
:lifetime-offset (seconds 0.6)
:flags (particle-curve-flags pcf0)
)
)
(set! (-> *part-id-table* 2772 init-specs 16 initial-valuef)
(the-as float *part-fac-fighter-explosion-texture-curve-settings*)
)
(set! (-> *part-fac-fighter-explosion-texture-curve-settings* color-start) *range-ffexplo-color*)
(set! (-> *part-fac-fighter-explosion-texture-curve-settings* alpha-start) *range-ffexplo-alpha*)
(set! (-> *part-fac-fighter-explosion-texture-curve-settings* scale-x-start) *range-ffexplo-scale-x*)
(set! (-> *part-fac-fighter-explosion-texture-curve-settings* scale-y-start) *range-ffexplo-scale-y*)
(set! (-> *part-fac-fighter-explosion-texture-curve-settings* r-scalar) #f)
(set! (-> *part-fac-fighter-explosion-texture-curve-settings* g-scalar) #f)
(set! (-> *part-fac-fighter-explosion-texture-curve-settings* b-scalar) #f)
(set! (-> *part-fac-fighter-explosion-texture-curve-settings* a-scalar) *curve-ffexplo-alpha*)
(set! (-> *part-fac-fighter-explosion-texture-curve-settings* scale-x-scalar) *curve-ffexplo-scale-x*)
(set! (-> *part-fac-fighter-explosion-texture-curve-settings* scale-y-scalar) *curve-ffexplo-scale-y*)
(defpart 2770
:init-specs ((:texture (starflash level-default-sprite))
(:num 1.0)
(:scale-x (meters 20))
(:rot-x (degrees 2.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 80.0)
(:b 40.0)
(:a 128.0)
(:omega (degrees 6767.9995))
(:scalevel-x (meters -0.33333334))
(:scalevel-y :copy scalevel-x)
(:timer (seconds 0.135))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 4096.0)
)
)
(defpart 2773
:init-specs ((:texture (hotdot level-default-sprite))
(:num 1.0)
(:scale-x (meters 4) (meters 4))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 200.0)
(:a 128.0)
(:vel-y (meters 0.06666667) (meters 0.06666667))
(:scalevel-x (meters -0.033333335) (meters -0.033333335))
(:scalevel-y :copy scalevel-x)
(:accel-y (meters -0.00066666666) (meters -0.00066666666))
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3))
(:conerot-x (degrees 0) (degrees 170))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 2764
:init-specs ((:texture (explo-texture level-default-sprite))
(:birth-func 'birth-func-inherit-size)
(:num 1.0)
(:scale-x (meters 0.00024414062) (meters 0.00012207031))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 128.0)
(:b 32.0)
(:a 128.0)
(:fade-a -0.36571428 -0.36571428)
(:accel-y (meters 0) (meters -0.00033333333))
(:timer (seconds 1.167))
(:flags (sp-cpuinfo-flag-3))
)
)
(defpartgroup group-fac-gun-tower-explosion
:id 731
:duration (seconds 4)
:flags (sp0 sp4)
:bounds (static-bspherem 0 0 0 15)
:parts ((sp-item 2775 :flags (sp3) :period (seconds 5) :length (seconds 0.017))
(sp-item 2776 :flags (sp3) :period (seconds 5) :length (seconds 0.017))
(sp-item 2777 :flags (sp3) :period (seconds 5) :length (seconds 0.017))
(sp-item 2778 :period (seconds 5) :length (seconds 0.335))
(sp-item 2779 :period (seconds 5) :length (seconds 0.5))
(sp-item 2780 :flags (sp3) :binding 2774)
(sp-item 2780 :flags (sp3) :binding 2774)
(sp-item 2780 :flags (sp3) :binding 2774)
(sp-item 2774 :flags (sp2) :period (seconds 5) :length (seconds 2))
(sp-item 2774 :flags (sp2) :period (seconds 5) :length (seconds 2))
(sp-item 2774 :flags (sp2) :period (seconds 5) :length (seconds 2))
)
)
(defpart 2775
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 200))
(:rot-x (degrees 225))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 128.0)
(:b 40.0)
(:a 64.0)
(:fade-a -0.10666667)
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 40960.0)
)
)
(defpart 2776
:init-specs ((:texture (explosion-nebula level-default-sprite))
(:num 10.0)
(:scale-x (meters 20) (meters 10))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 255.0)
(:a 255.0)
(:vel-y (meters 0) (meters 0.4))
(:scalevel-x (meters 0.06666667))
(:rotvel-z (degrees -0.2) 1 (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.85 -0.85)
(:friction 0.93)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-3))
(:conerot-x (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 2778
:init-specs ((:texture (explosion-edge level-default-sprite))
(:num 5.0)
(:scale-x (meters 30) (meters 20))
(:rot-y (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 80.0 20.0)
(:b 30.0)
(:a 128.0)
(:vel-y (meters 2.6666667) (meters 1))
(:scalevel-x (meters 0.33333334))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.13333334)
(:fade-b -0.05)
(:fade-a -0.21333334 -0.21333334)
(:friction 0.7)
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3))
(:func 'sparticle-2d-spline-align-instant)
(:conerot-x (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 2779
:init-specs ((:texture (explo-texture level-default-sprite))
(:birth-func 'birth-func-curve)
(:num 4.0)
(:x (meters -10) (meters 20))
(:y (meters 0) (meters 10))
(:scale-x (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 128.0)
(:vel-y (meters 0.33333334) (meters 0.16666667))
(:friction 0.95)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-14))
(:userdata 0.0)
(:func 'live-func-curve)
(:conerot-x (degrees 20) (degrees 90))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(if #t
(set! *range-fgtexplo-color* (new 'static 'curve-color-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'inline-array vector 4
(new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0)
(new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0)
(new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0)
(new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0)
)
:one-over-x-deltas (new 'static 'vector :x 1.0 :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *range-fgtexplo-alpha* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'vector :x 128.0 :y 128.0 :z 129.0 :w 130.0)
:one-over-x-deltas (new 'static 'vector :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *range-fgtexplo-scale-x* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'vector :x 20.0 :y 40.0 :z 41.0 :w 42.0)
:one-over-x-deltas (new 'static 'vector :x 20.0 :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *range-fgtexplo-scale-y* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'vector :x 20.0 :y 40.0 :z 41.0 :w 42.0)
:one-over-x-deltas (new 'static 'vector :x 20.0 :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *curve-fgtexplo-alpha* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -0.05 :z -0.7 :w -1.0)
:ys (new 'static 'vector :y 1.0 :z 0.8)
:one-over-x-deltas (new 'static 'vector :x 20.0 :y -0.3076923 :z -2.6666665 :w 1.0)
)
)
)
(if #t
(set! *curve-fgtexplo-scale-x* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -0.8 :z -1.0 :w -2.0)
:ys (new 'static 'vector :y 1.0 :z 1.5 :w 2.5)
:one-over-x-deltas (new 'static 'vector :x 1.25 :y 2.5000002 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *curve-fgtexplo-scale-y* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -0.8 :z -1.0 :w -2.0)
:ys (new 'static 'vector :y 1.0 :z 1.5 :w 2.5)
:one-over-x-deltas (new 'static 'vector :x 1.25 :y 2.5000002 :z 1.0 :w 1.0)
)
)
)
(define *part-fac-tower-explosion-texture-curve-settings* (new 'static 'particle-curve-settings
:lifetime-base (seconds 0.5)
:lifetime-offset (seconds 0.6)
:flags (particle-curve-flags pcf0)
)
)
(set! (-> *part-id-table* 2779 init-specs 16 initial-valuef)
(the-as float *part-fac-tower-explosion-texture-curve-settings*)
)
(set! (-> *part-fac-tower-explosion-texture-curve-settings* color-start) *range-fgtexplo-color*)
(set! (-> *part-fac-tower-explosion-texture-curve-settings* alpha-start) *range-fgtexplo-alpha*)
(set! (-> *part-fac-tower-explosion-texture-curve-settings* scale-x-start) *range-fgtexplo-scale-x*)
(set! (-> *part-fac-tower-explosion-texture-curve-settings* scale-y-start) *range-fgtexplo-scale-y*)
(set! (-> *part-fac-tower-explosion-texture-curve-settings* r-scalar) #f)
(set! (-> *part-fac-tower-explosion-texture-curve-settings* g-scalar) #f)
(set! (-> *part-fac-tower-explosion-texture-curve-settings* b-scalar) #f)
(set! (-> *part-fac-tower-explosion-texture-curve-settings* a-scalar) *curve-fgtexplo-alpha*)
(set! (-> *part-fac-tower-explosion-texture-curve-settings* scale-x-scalar) *curve-fgtexplo-scale-x*)
(set! (-> *part-fac-tower-explosion-texture-curve-settings* scale-y-scalar) *curve-fgtexplo-scale-y*)
(defpart 2777
:init-specs ((:texture (starflash level-default-sprite))
(:num 1.0)
(:scale-x (meters 200))
(:rot-x (degrees 2.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 80.0)
(:b 40.0)
(:a 128.0)
(:omega (degrees 6767.9995))
(:scalevel-x (meters -3.3333333))
(:scalevel-y :copy scalevel-x)
(:timer (seconds 0.135))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 4096.0)
)
)
(defpart 2780
:init-specs ((:texture (hotdot level-default-sprite))
(:num 1.0)
(:scale-x (meters 20) (meters 20))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 200.0)
(:a 128.0)
(:vel-y (meters 0.33333334) (meters 0.33333334))
(:scalevel-x (meters -0.13333334) (meters -0.13333334))
(:scalevel-y :copy scalevel-x)
(:accel-y (meters -0.00066666666) (meters -0.00066666666))
(:friction 0.99)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3))
(:conerot-x (degrees 0) (degrees 170))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 2774
:init-specs ((:texture (explo-texture level-default-sprite))
(:birth-func 'birth-func-inherit-size)
(:num 0.5)
(:scale-x (meters 0.00024414062) (meters 0.00012207031))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 200.0)
(:b 80.0)
(:a 128.0)
(:fade-a -0.21333334 -0.21333334)
(:accel-y (meters 0) (meters -0.00033333333))
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-3))
)
)
(defpartgroup group-fac-tank-explosion
:id 732
:duration (seconds 4)
:flags (sp0 sp5)
:bounds (static-bspherem 0 0 0 15)
:parts ((sp-item 2782 :flags (sp3) :period (seconds 30) :length (seconds 0.017))
(sp-item 2783 :period (seconds 30) :length (seconds 0.035))
(sp-item 2784 :flags (sp3) :period (seconds 30) :length (seconds 0.017))
(sp-item 2785 :period (seconds 30) :length (seconds 0.035))
(sp-item 2786 :period (seconds 30) :length (seconds 0.035))
(sp-item 2787 :flags (sp3) :period (seconds 30) :length (seconds 0.017))
(sp-item 2788 :period (seconds 30) :length (seconds 0.167))
(sp-item 2789 :period (seconds 30) :length (seconds 0.5))
(sp-item 2790 :flags (sp3) :binding 2781)
(sp-item 2790 :flags (sp3) :binding 2781)
(sp-item 2790 :flags (sp3) :binding 2781)
(sp-item 2790 :flags (sp3) :binding 2781)
(sp-item 2790 :flags (sp3) :binding 2781)
(sp-item 2781 :flags (sp2) :period (seconds 4) :length (seconds 2))
(sp-item 2781 :flags (sp2) :period (seconds 4) :length (seconds 2))
(sp-item 2781 :flags (sp2) :period (seconds 4) :length (seconds 2))
(sp-item 2781 :flags (sp2) :period (seconds 4) :length (seconds 2))
(sp-item 2781 :flags (sp2) :period (seconds 4) :length (seconds 2))
)
)
(defpart 2782
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 20))
(:rot-x (degrees 225))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 128.0)
(:b 60.0)
(:a 64.0)
(:fade-a -0.21333334)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 40960.0)
)
)
(defpart 2783
:init-specs ((:texture (hotdot level-default-sprite))
(:num 10.0 10.0)
(:scale-x (meters 0.8) (meters 1.2))
(:rot-y (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 80.0 20.0)
(:b 30.0 20.0)
(:a 128.0)
(:vel-y (meters 0.16666667) (meters 0.33333334))
(:scalevel-x (meters -0.0016666667))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.17777778)
(:fade-b -0.06666667)
(:fade-a -0.28444445 -0.28444445)
(:friction 0.9)
(:timer (seconds 1.5))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3))
(:conerot-x (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 2784
:init-specs ((:texture (explosion-nebula level-default-sprite))
(:num 30.0)
(:scale-x (meters 3) (meters 2))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 160.0)
(:b 40.0 20.0)
(:a 128.0)
(:vel-y (meters 0) (meters 0.06666667))
(:scalevel-x (meters 0.016666668))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.22857143)
(:fade-b -0.08571429)
(:fade-a -0.36571428 -0.36571428)
(:friction 0.93)
(:timer (seconds 1.167))
(:flags (sp-cpuinfo-flag-3))
(:conerot-x (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 2785
:init-specs ((:texture (explosion-edge level-default-sprite))
(:num 5.0)
(:scale-x (meters 3) (meters 2))
(:rot-y (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 8.0 8.0)
(:g :copy r)
(:b :copy r)
(:a 64.0)
(:vel-y (meters 0.33333334) (meters 0.13333334))
(:scalevel-x (meters 0.06666667))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.10666667 -0.10666667)
(:friction 0.75)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
(:func 'sparticle-2d-spline-align-instant)
(:conerot-x (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 2786
:init-specs ((:texture (explosion-nebula level-default-sprite))
(:birth-func 'birth-func-curve)
(:num 30.0)
(:scale-x (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 1.0)
(:g 1.0)
(:b 128.0)
(:a 128.0)
(:vel-y (meters 0.05))
(:friction 0.97)
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-13))
(:userdata 0.0)
(:func 'live-func-curve)
(:conerot-x (degrees 0) (degrees 360))
(:conerot-z (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(if #t
(set! *range-ftexplo-dust-color* (new 'static 'curve-color-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'inline-array vector 4
(new 'static 'vector :x 70.0 :y 70.0 :z 70.0 :w 128.0)
(new 'static 'vector :x 40.0 :y 40.0 :z 40.0 :w 128.0)
(new 'static 'vector :x 40.0 :y 40.0 :z 40.0 :w 128.0)
(new 'static 'vector :x 40.0 :y 40.0 :z 40.0 :w 128.0)
)
:one-over-x-deltas (new 'static 'vector :x 1.0 :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *range-ftexplo-dust-alpha* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'vector :x 64.0 :y 32.0 :z 33.0 :w 34.0)
:one-over-x-deltas (new 'static 'vector :x -32.0 :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *range-ftexplo-dust-scale-x* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'vector :x 8.0 :y 20.0 :z 21.0 :w 22.0)
:one-over-x-deltas (new 'static 'vector :x 12.0 :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *range-ftexplo-dust-scale-y* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'vector :x 8.0 :y 20.0 :z 21.0 :w 22.0)
:one-over-x-deltas (new 'static 'vector :x 12.0 :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *curve-ftexplo-dust-alpha* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -0.7 :z -1.0 :w -2.0)
:ys (new 'static 'vector :y 1.0 :w 1.0)
:one-over-x-deltas (new 'static 'vector :x 1.4285715 :y -3.3333333 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *curve-ftexplo-dust-scale-x* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -0.5 :z -1.0 :w -2.0)
:ys (new 'static 'vector :x 0.2 :y 0.8 :z 1.2 :w 2.2)
:one-over-x-deltas (new 'static 'vector :x 1.2 :y 0.8000001 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *curve-ftexplo-dust-scale-y* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -0.5 :z -1.0 :w -2.0)
:ys (new 'static 'vector :x 0.2 :y 0.8 :z 1.2 :w 2.2)
:one-over-x-deltas (new 'static 'vector :x 1.2 :y 0.8000001 :z 1.0 :w 1.0)
)
)
)
(define *part-fac-tank-explosion-dust-in-curve-settings* (new 'static 'particle-curve-settings
:lifetime-base (seconds 0.5)
:lifetime-offset (seconds 1)
:flags (particle-curve-flags pcf0)
)
)
(set! (-> *part-id-table* 2786 init-specs 14 initial-valuef)
(the-as float *part-fac-tank-explosion-dust-in-curve-settings*)
)
(set! (-> *part-fac-tank-explosion-dust-in-curve-settings* color-start) *range-ftexplo-dust-color*)
(set! (-> *part-fac-tank-explosion-dust-in-curve-settings* alpha-start) *range-ftexplo-dust-alpha*)
(set! (-> *part-fac-tank-explosion-dust-in-curve-settings* scale-x-start) *range-ftexplo-dust-scale-x*)
(set! (-> *part-fac-tank-explosion-dust-in-curve-settings* scale-y-start) *range-ftexplo-dust-scale-y*)
(set! (-> *part-fac-tank-explosion-dust-in-curve-settings* r-scalar) #f)
(set! (-> *part-fac-tank-explosion-dust-in-curve-settings* g-scalar) #f)
(set! (-> *part-fac-tank-explosion-dust-in-curve-settings* b-scalar) #f)
(set! (-> *part-fac-tank-explosion-dust-in-curve-settings* a-scalar) *curve-ftexplo-dust-alpha*)
(set! (-> *part-fac-tank-explosion-dust-in-curve-settings* scale-x-scalar) *curve-ftexplo-dust-scale-x*)
(set! (-> *part-fac-tank-explosion-dust-in-curve-settings* scale-y-scalar) *curve-ftexplo-dust-scale-y*)
(defpart 2788
:init-specs ((:texture (explosion-edge level-default-sprite))
(:num 5.0)
(:scale-x (meters 3) (meters 2))
(:rot-y (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 80.0 20.0)
(:b 30.0)
(:a 128.0)
(:vel-y (meters 0.33333334) (meters 0.13333334))
(:scalevel-x (meters 0.033333335))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.17777778)
(:fade-b -0.06666667)
(:fade-a -0.28444445 -0.28444445)
(:friction 0.75)
(:timer (seconds 1.5))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3))
(:func 'sparticle-2d-spline-align-instant)
(:conerot-x (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 2789
:init-specs ((:texture (explo-texture level-default-sprite))
(:birth-func 'birth-func-curve)
(:num 8.0)
(:x (meters -1) (meters 2))
(:y (meters 0) (meters 2))
(:scale-x (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 128.0)
(:vel-y (meters 0.06666667) (meters 0.033333335))
(:friction 0.9)
(:timer (seconds 1))
(:flags ())
(:userdata 0.0)
(:func 'live-func-curve)
(:conerot-x (degrees 20) (degrees 90))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(if #t
(set! *range-ftexplo-color* (new 'static 'curve-color-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'inline-array vector 4
(new 'static 'vector :x 255.0 :y 200.0 :z 100.0 :w 128.0)
(new 'static 'vector :x 255.0 :y 200.0 :z 100.0 :w 128.0)
(new 'static 'vector :x 255.0 :y 200.0 :z 100.0 :w 128.0)
(new 'static 'vector :x 255.0 :y 200.0 :z 100.0 :w 128.0)
)
:one-over-x-deltas (new 'static 'vector :x 1.0 :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *range-ftexplo-alpha* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'vector :x 128.0 :y 128.0 :z 129.0 :w 130.0)
:one-over-x-deltas (new 'static 'vector :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *range-ftexplo-scale-x* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'vector :x 5.0 :y 7.0 :z 8.0 :w 9.0)
:one-over-x-deltas (new 'static 'vector :x 2.0 :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *range-ftexplo-scale-y* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'vector :x 5.0 :y 7.0 :z 8.0 :w 9.0)
:one-over-x-deltas (new 'static 'vector :x 2.0 :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *curve-ftexplo-alpha* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -0.05 :z -0.7 :w -1.0)
:ys (new 'static 'vector :y 1.0 :z 0.8)
:one-over-x-deltas (new 'static 'vector :x 20.0 :y -0.3076923 :z -2.6666665 :w 1.0)
)
)
)
(if #t
(set! *curve-ftexplo-scale-x* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -0.8 :z -1.0 :w -2.0)
:ys (new 'static 'vector :y 1.0 :z 1.5 :w 2.5)
:one-over-x-deltas (new 'static 'vector :x 1.25 :y 2.5000002 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *curve-ftexplo-scale-y* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -0.8 :z -1.0 :w -2.0)
:ys (new 'static 'vector :y 1.0 :z 1.5 :w 2.5)
:one-over-x-deltas (new 'static 'vector :x 1.25 :y 2.5000002 :z 1.0 :w 1.0)
)
)
)
(define *part-fac-tank-explosion-texture-curve-settings* (new 'static 'particle-curve-settings
:lifetime-base (seconds 0.1)
:lifetime-offset (seconds 0.6)
:flags (particle-curve-flags pcf0)
)
)
(set! (-> *part-id-table* 2789 init-specs 16 initial-valuef)
(the-as float *part-fac-tank-explosion-texture-curve-settings*)
)
(set! (-> *part-fac-tank-explosion-texture-curve-settings* color-start) *range-ftexplo-color*)
(set! (-> *part-fac-tank-explosion-texture-curve-settings* alpha-start) *range-ftexplo-alpha*)
(set! (-> *part-fac-tank-explosion-texture-curve-settings* scale-x-start) *range-ftexplo-scale-x*)
(set! (-> *part-fac-tank-explosion-texture-curve-settings* scale-y-start) *range-ftexplo-scale-y*)
(set! (-> *part-fac-tank-explosion-texture-curve-settings* r-scalar) #f)
(set! (-> *part-fac-tank-explosion-texture-curve-settings* g-scalar) #f)
(set! (-> *part-fac-tank-explosion-texture-curve-settings* b-scalar) #f)
(set! (-> *part-fac-tank-explosion-texture-curve-settings* a-scalar) *curve-ftexplo-alpha*)
(set! (-> *part-fac-tank-explosion-texture-curve-settings* scale-x-scalar) *curve-ftexplo-scale-x*)
(set! (-> *part-fac-tank-explosion-texture-curve-settings* scale-y-scalar) *curve-ftexplo-scale-y*)
(defpart 2787
:init-specs ((:texture (starflash level-default-sprite))
(:num 1.0)
(:scale-x (meters 20))
(:rot-x (degrees 2.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 80.0)
(:b 40.0)
(:a 128.0)
(:omega (degrees 6767.9995))
(:scalevel-x (meters -0.33333334))
(:scalevel-y :copy scalevel-x)
(:timer (seconds 0.135))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 4096.0)
)
)
(defpart 2790
:init-specs ((:texture (explosion-nebula level-default-sprite))
(:num 1.0)
(:scale-x (meters 4) (meters 4))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 200.0)
(:a 128.0)
(:vel-y (meters 0.06666667) (meters 0.06666667))
(:scalevel-x (meters -0.02) (meters -0.02))
(:rotvel-z (degrees -300) (degrees 600))
(:scalevel-y :copy scalevel-x)
(:accel-y (meters -0.00066666666) (meters -0.001))
(:friction 0.95)
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3))
(:conerot-x (degrees 0) (degrees 70))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 2781
:init-specs ((:texture (explo-texture level-default-sprite))
(:birth-func 'birth-func-inherit-size)
(:num 1.0)
(:scale-x (meters 0.00024414062) (meters 0.00012207031))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 200.0)
(:b 100.0)
(:a 128.0)
(:fade-r -1.7)
(:fade-g -1.3333334)
(:fade-b -1.0)
(:fade-a -0.36571428 -0.36571428)
(:accel-y (meters 0) (meters -0.00033333333))
(:timer (seconds 1.167))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2))
)
)
(defpartgroup group-fac-target-explosion
:id 733
:duration (seconds 4)
:flags (sp0 sp5)
:bounds (static-bspherem 0 0 0 15)
:parts ((sp-item 2791 :flags (sp3) :period (seconds 30) :length (seconds 0.017))
(sp-item 2792 :period (seconds 30) :length (seconds 0.035))
(sp-item 2793 :period (seconds 30) :length (seconds 0.035))
)
)
(defpart 2791
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:y (meters 2))
(:scale-x (meters 20))
(:rot-x (degrees 225))
(:scale-y :copy scale-x)
(:r 220.0)
(:g 200.0)
(:b 40.0)
(:a 64.0)
(:fade-a -0.21333334)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 40960.0)
)
)
(defpart 2792
:init-specs ((:texture (hotdot level-default-sprite))
(:num 50.0)
(:y (meters 2))
(:scale-x (meters 0.8) (meters 1.2))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 30.0)
(:a 128.0)
(:vel-y (meters 0.16666667) (meters 0.33333334))
(:scalevel-x (meters -0.0016666667))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.28444445 -0.28444445)
(:accel-y (meters -0.0016666667))
(:friction 0.9)
(:timer (seconds 1.5))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3))
(:conerot-x (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 2793
:init-specs ((:texture (dust-sparkle factorya-sprite))
(:num 10.0 10.0)
(:y (meters 2))
(:scale-x (meters 5) (meters 10))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 30.0)
(:a 128.0)
(:vel-y (meters 0.033333335) (meters 0.33333334))
(:scalevel-x (meters 0.06666667))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.28444445 -0.28444445)
(:accel-y (meters -0.0016666667))
(:friction 0.75)
(:timer (seconds 1.5))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3))
(:conerot-x (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 2794
:init-specs ((:texture (glow level-default-sprite))
(:num 1.0)
(:scale-x (meters 1.75))
(:rot-x (degrees 0.225))
(:rot-z (degrees -4) (degrees 8))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 0.0 64.0)
(:b 0.0)
(:a 64.0 32.0)
(:omega (degrees 4511.25))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 409.6)
)
)
(defpart 2795
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 20))
(:rot-x (degrees 22.5))
(:scale-y :copy scale-x)
(:r 64.0)
(:g 20.0)
(:b 0.0)
(:a 128.0)
(:omega (degrees 9013.5))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3 glow))
(:userdata 40.96)
)
)
(defpart 2796
:init-specs ((:texture (colorflash level-default-sprite))
(:num 1.0)
(:scale-x (meters 8))
(:rot-x (degrees 9))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 140.0)
(:b 20.0 20.0)
(:a 64.0)
(:omega (degrees 9013.5))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3 glow))
(:userdata 40.96)
)
)
(defpartgroup group-gun-tower-hit-explosion
:id 734
:duration (seconds 4)
:linger-duration (seconds 1)
:flags (sp0 sp4)
:bounds (static-bspherem 0 0 0 15)
:parts ((sp-item 2797 :flags (sp3 sp7)))
)
(defpart 2797
:init-specs ((:texture (laser-hit2 level-default-sprite))
(:num 2.0)
(:scale-x (meters 3) (meters 2))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 30.0)
(:b 0.0)
(:a 255.0)
(:vel-z (meters -0.033333335))
(:scalevel-x (meters 0.6666667))
(:scalevel-y :copy scalevel-x)
(:fade-a -4.25)
(:timer (seconds 0.2))
(:flags (sp-cpuinfo-flag-3))
(:rotate-y (degrees 0))
)
)
(defpartgroup group-gun-tower-hit-object
:id 735
:duration (seconds 4)
:flags (sp0 sp5)
:bounds (static-bspherem 0 0 0 15)
:parts ((sp-item 2799 :flags (sp3) :period (seconds 30) :length (seconds 0.017))
(sp-item 2800 :period (seconds 30) :length (seconds 0.035))
(sp-item 2801 :flags (sp3) :period (seconds 30) :length (seconds 0.017))
(sp-item 2802 :flags (sp3) :period (seconds 30) :length (seconds 0.017))
(sp-item 2803 :period (seconds 30) :length (seconds 0.167))
(sp-item 2804 :period (seconds 30) :length (seconds 0.5))
(sp-item 2805 :flags (sp3) :binding 2798)
(sp-item 2805 :flags (sp3) :binding 2798)
(sp-item 2805 :flags (sp3) :binding 2798)
(sp-item 2805 :flags (sp3) :binding 2798)
(sp-item 2805 :flags (sp3) :binding 2798)
(sp-item 2798 :flags (sp2) :period (seconds 4) :length (seconds 2))
(sp-item 2798 :flags (sp2) :period (seconds 4) :length (seconds 2))
(sp-item 2798 :flags (sp2) :period (seconds 4) :length (seconds 2))
(sp-item 2798 :flags (sp2) :period (seconds 4) :length (seconds 2))
(sp-item 2798 :flags (sp2) :period (seconds 4) :length (seconds 2))
)
)
(defpart 2799
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 20))
(:rot-x (degrees 225))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 128.0)
(:b 40.0)
(:a 64.0)
(:fade-a -0.21333334)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 40960.0)
)
)
(defpart 2800
:init-specs ((:texture (hotdot level-default-sprite))
(:num 10.0 10.0)
(:scale-x (meters 0.8) (meters 1.2))
(:rot-y (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 80.0 20.0)
(:b 30.0)
(:a 128.0)
(:vel-y (meters 0.16666667) (meters 0.33333334))
(:scalevel-x (meters -0.0016666667))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.17777778)
(:fade-b -0.06666667)
(:fade-a -0.28444445 -0.28444445)
(:friction 0.9)
(:timer (seconds 1.5))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3))
(:conerot-x (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 2801
:init-specs ((:texture (explosion-nebula level-default-sprite))
(:num 30.0)
(:scale-x (meters 3) (meters 2))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 160.0)
(:b 40.0)
(:a 128.0)
(:vel-y (meters 0) (meters 0.06666667))
(:scalevel-x (meters 0.016666668))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.22857143)
(:fade-b -0.08571429)
(:fade-a -0.36571428 -0.36571428)
(:friction 0.93)
(:timer (seconds 1.167))
(:flags (sp-cpuinfo-flag-3))
(:conerot-x (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 2803
:init-specs ((:texture (explosion-edge level-default-sprite))
(:num 5.0)
(:scale-x (meters 3) (meters 2))
(:rot-y (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 80.0 20.0)
(:b 30.0)
(:a 128.0)
(:vel-y (meters 0.33333334) (meters 0.13333334))
(:scalevel-x (meters 0.033333335))
(:scalevel-y :copy scalevel-x)
(:fade-g -0.17777778)
(:fade-b -0.06666667)
(:fade-a -0.28444445 -0.28444445)
(:friction 0.7)
(:timer (seconds 1.5))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3))
(:func 'sparticle-2d-spline-align-instant)
(:conerot-x (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 2804
:init-specs ((:texture (explo-texture level-default-sprite))
(:birth-func 'birth-func-curve)
(:num 8.0)
(:x (meters -1) (meters 2))
(:y (meters 0) (meters 2))
(:scale-x (meters 1))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 128.0)
(:a 128.0)
(:vel-y (meters 0.06666667) (meters 0.033333335))
(:friction 0.9)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-14))
(:userdata 0.0)
(:func 'live-func-curve)
(:conerot-x (degrees 20) (degrees 90))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(if #t
(set! *range-gthoexplo-color* (new 'static 'curve-color-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'inline-array vector 4
(new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0)
(new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0)
(new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0)
(new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0)
)
:one-over-x-deltas (new 'static 'vector :x 1.0 :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *range-gthoexplo-alpha* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'vector :x 128.0 :y 128.0 :z 129.0 :w 130.0)
:one-over-x-deltas (new 'static 'vector :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *range-gthoexplo-scale-x* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'vector :x 3.0 :y 5.0 :z 6.0 :w 7.0)
:one-over-x-deltas (new 'static 'vector :x 2.0 :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *range-gthoexplo-scale-y* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -1.0 :z -2.0 :w -3.0)
:ys (new 'static 'vector :x 3.0 :y 5.0 :z 6.0 :w 7.0)
:one-over-x-deltas (new 'static 'vector :x 2.0 :y 1.0 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *curve-gthoexplo-alpha* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -0.05 :z -0.7 :w -1.0)
:ys (new 'static 'vector :y 1.0 :z 0.8)
:one-over-x-deltas (new 'static 'vector :x 20.0 :y -0.3076923 :z -2.6666665 :w 1.0)
)
)
)
(if #t
(set! *curve-gthoexplo-scale-x* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -0.8 :z -1.0 :w -2.0)
:ys (new 'static 'vector :y 1.0 :z 1.5 :w 2.5)
:one-over-x-deltas (new 'static 'vector :x 1.25 :y 2.5000002 :z 1.0 :w 1.0)
)
)
)
(if #t
(set! *curve-gthoexplo-scale-y* (new 'static 'curve2d-fast
:xs (new 'static 'vector :y -0.8 :z -1.0 :w -2.0)
:ys (new 'static 'vector :y 1.0 :z 1.5 :w 2.5)
:one-over-x-deltas (new 'static 'vector :x 1.25 :y 2.5000002 :z 1.0 :w 1.0)
)
)
)
(define *part-gun-tower-hit-object-texture-curve-settings* (new 'static 'particle-curve-settings
:lifetime-base (seconds 0.1)
:lifetime-offset (seconds 0.6)
:flags (particle-curve-flags pcf0)
)
)
(set! (-> *part-id-table* 2804 init-specs 16 initial-valuef)
(the-as float *part-gun-tower-hit-object-texture-curve-settings*)
)
(set! (-> *part-gun-tower-hit-object-texture-curve-settings* color-start) *range-gthoexplo-color*)
(set! (-> *part-gun-tower-hit-object-texture-curve-settings* alpha-start) *range-gthoexplo-alpha*)
(set! (-> *part-gun-tower-hit-object-texture-curve-settings* scale-x-start) *range-gthoexplo-scale-x*)
(set! (-> *part-gun-tower-hit-object-texture-curve-settings* scale-y-start) *range-gthoexplo-scale-y*)
(set! (-> *part-gun-tower-hit-object-texture-curve-settings* r-scalar) #f)
(set! (-> *part-gun-tower-hit-object-texture-curve-settings* g-scalar) #f)
(set! (-> *part-gun-tower-hit-object-texture-curve-settings* b-scalar) #f)
(set! (-> *part-gun-tower-hit-object-texture-curve-settings* a-scalar) *curve-gthoexplo-alpha*)
(set! (-> *part-gun-tower-hit-object-texture-curve-settings* scale-x-scalar) *curve-gthoexplo-scale-x*)
(set! (-> *part-gun-tower-hit-object-texture-curve-settings* scale-y-scalar) *curve-gthoexplo-scale-y*)
(defpart 2802
:init-specs ((:texture (starflash level-default-sprite))
(:num 1.0)
(:scale-x (meters 20))
(:rot-x (degrees 2.25))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 80.0)
(:b 40.0)
(:a 128.0)
(:omega (degrees 6767.9995))
(:scalevel-x (meters -0.33333334))
(:scalevel-y :copy scalevel-x)
(:timer (seconds 0.135))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 4096.0)
)
)
(defpart 2805
:init-specs ((:texture (hotdot level-default-sprite))
(:num 1.0)
(:scale-x (meters 4) (meters 4))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 255.0)
(:b 200.0)
(:a 128.0)
(:vel-y (meters 0.06666667) (meters 0.06666667))
(:scalevel-x (meters -0.033333335) (meters -0.033333335))
(:scalevel-y :copy scalevel-x)
(:accel-y (meters -0.00066666666) (meters -0.00066666666))
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3))
(:conerot-x (degrees 0) (degrees 170))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 2798
:init-specs ((:texture (explo-texture level-default-sprite))
(:birth-func 'birth-func-inherit-size)
(:num 1.0)
(:scale-x (meters 0.00024414062) (meters 0.00012207031))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 255.0)
(:g 128.0)
(:b 32.0)
(:a 128.0)
(:fade-a -0.36571428 -0.36571428)
(:accel-y (meters 0) (meters -0.00033333333))
(:timer (seconds 1.167))
(:flags (sp-cpuinfo-flag-3))
)
)
(defpartgroup group-fac-positionlight-yellow-glow
:id 736
:bounds (static-bspherem 0 0 0 3)
:parts ((sp-item 2806 :fade-after (meters 120) :flags (sp6)))
)
(defpart 2806
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 10) (meters 0.1))
(:rot-x (degrees 9))
(:rot-z (degrees -17))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 80.0)
(:b 0.0)
(:a 40.0 10.0)
(:omega (degrees 2715.75))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 819.2)
)
)
(defpartgroup group-fac-launchpad-red-glow
:id 737
:bounds (static-bspherem 0 0 0 3)
:parts ((sp-item 2807 :fade-after (meters 120) :flags (sp6)))
)
(defpart 2807
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 10) (meters 0.1))
(:rot-x (degrees 9))
(:rot-z (degrees -17))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 0.0)
(:b 0.0)
(:a 40.0 10.0)
(:omega (degrees 2715.75))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 819.2)
)
)
(defpartgroup group-fac-hangingbrace-white-glow
:id 738
:bounds (static-bspherem 0 0 0 3)
:parts ((sp-item 2808 :fade-after (meters 120) :flags (sp6)))
)
(defpart 2808
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 10) (meters 0.1))
(:rot-x (degrees 9))
(:rot-z (degrees -17))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 100.0)
(:b 80.0)
(:a 40.0 10.0)
(:omega (degrees 2715.75))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 819.2)
)
)
(defpartgroup group-fac-spot-white-glow
:id 739
:flags (sp0 sp4)
:bounds (static-bspherem 0 0 0 30)
:parts ((sp-item 2809 :fade-after (meters 400) :flags (sp6))
(sp-item 2810 :fade-after (meters 400) :flags (is-3d sp6 sp7))
(sp-item 2811 :fade-after (meters 400) :flags (is-3d sp6 sp7))
(sp-item 2812 :fade-after (meters 400) :flags (is-3d sp6 sp7))
(sp-item 2813 :fade-after (meters 400) :flags (is-3d sp6 sp7))
)
)
(defpart 2809
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 20) (meters 0.1))
(:rot-x (degrees 13.500001))
(:rot-z (degrees -17))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 100.0)
(:b 80.0)
(:a 40.0 10.0)
(:omega (degrees 2715.75))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 819.2)
)
)
(defpart 2810
:init-specs ((:texture (vol-light level-default-sprite))
(:num 1.0)
(:x (meters 0))
(:y (meters 0))
(:z (meters 19.5))
(:scale-x (meters 10))
(:rot-x (degrees 0))
(:rot-y (degrees 0))
(:rot-z (degrees 0))
(:scale-y (meters 40))
(:r 128.0)
(:g 128.0)
(:b 64.0)
(:a 20.0 5.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3))
(:rotate-x (degrees 0))
(:rotate-y (degrees 0))
(:rotate-z (degrees 0))
)
)
(defpart 2811
:init-specs ((:texture (vol-light level-default-sprite))
(:num 1.0)
(:x (meters 0))
(:y (meters 0))
(:z (meters 19.5))
(:scale-x (meters 10))
(:rot-x (degrees 0))
(:rot-y (degrees 0))
(:rot-z (degrees 45))
(:scale-y (meters 40))
(:r 128.0)
(:g 128.0)
(:b 64.0)
(:a 20.0 5.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3))
(:rotate-x (degrees 0))
(:rotate-y (degrees 0))
(:rotate-z (degrees 0))
)
)
(defpart 2812
:init-specs ((:texture (vol-light level-default-sprite))
(:num 1.0)
(:x (meters 0))
(:y (meters 0))
(:z (meters 19.5))
(:scale-x (meters 10))
(:rot-x (degrees 0))
(:rot-y (degrees 0))
(:rot-z (degrees -45))
(:scale-y (meters 40))
(:r 128.0)
(:g 128.0)
(:b 64.0)
(:a 20.0 5.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3))
(:rotate-x (degrees 0))
(:rotate-y (degrees 0))
(:rotate-z (degrees 0))
)
)
(defpart 2813
:init-specs ((:texture (vol-light level-default-sprite))
(:num 1.0)
(:x (meters 0))
(:y (meters 0))
(:z (meters 19.5))
(:scale-x (meters 10))
(:rot-x (degrees 0))
(:rot-y (degrees 0))
(:rot-z (degrees 90))
(:scale-y (meters 40))
(:r 128.0)
(:g 128.0)
(:b 64.0)
(:a 20.0 5.0)
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-3))
(:rotate-x (degrees 0))
(:rotate-y (degrees 0))
(:rotate-z (degrees 0))
)
)
(defpartgroup group-fac-bulb-red-glow
:id 740
:bounds (static-bspherem 0 0 0 3)
:parts ((sp-item 2814 :fade-after (meters 120) :flags (sp6)))
)
(defpart 2814
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 6) (meters 0.1))
(:rot-x (degrees 9))
(:rot-z (degrees -17))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 0.0)
(:b 0.0)
(:a 40.0 10.0)
(:omega (degrees 2715.75))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 819.2)
)
)
(defpartgroup group-fac-topsidewall-white-glow
:id 741
:bounds (static-bspherem 0 0 0 3)
:parts ((sp-item 2815 :fade-after (meters 120) :flags (sp6)))
)
(defpart 2815
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 15) (meters 0.1))
(:rot-x (degrees 9))
(:rot-z (degrees -17))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 100.0)
(:b 80.0)
(:a 40.0 10.0)
(:omega (degrees 2715.75))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 819.2)
)
)
(defpartgroup group-fac-cornertower-white-glow
:id 742
:bounds (static-bspherem 0 0 0 3)
:parts ((sp-item 2816 :fade-after (meters 120) :flags (sp6)))
)
(defpart 2816
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 10) (meters 0.1))
(:rot-x (degrees 9))
(:rot-z (degrees -17))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 100.0)
(:b 80.0)
(:a 40.0 10.0)
(:omega (degrees 2715.75))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 819.2)
)
)
(defpartgroup group-fac-supportarm-white-glow
:id 743
:bounds (static-bspherem 0 0 0 3)
:parts ((sp-item 2817 :fade-after (meters 120) :flags (sp6)))
)
(defpart 2817
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 6) (meters 0.1))
(:rot-x (degrees 9))
(:rot-z (degrees -17))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 100.0)
(:b 80.0)
(:a 40.0 10.0)
(:omega (degrees 2715.75))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 819.2)
)
)
(defpartgroup group-fac-blinklite-glow
:id 744
:bounds (static-bspherem 0 0 0 8)
:parts ((sp-item 2818 :flags (sp6)))
)
(defpart 2818
:init-specs ((:texture (glow level-default-sprite))
(:num 1.0)
(:scale-x (meters 3) (meters 2))
(:rot-x (degrees 9))
(:rot-z (degrees -17))
(:scale-y :copy scale-x)
(:r 64.0)
(:g 64.0)
(:b 255.0)
(:a 40.0 10.0)
(:omega (degrees 9011.25))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 819.2)
)
)
(defpartgroup group-fac-steam
:id 745
:flags (sp0 sp4)
:bounds (static-bspherem 0 0 0 6)
:parts ((sp-item 2819 :fade-after (meters 100) :falloff-to (meters 140) :flags (sp7)))
)
(defpart 2819
:init-specs ((:texture (big-cloud level-default-sprite))
(:birth-func 'birth-func-texture-group)
(:num 0.1 0.1)
(:x (meters -2) (meters 4))
(:y (meters -1) (meters 2))
(:z (meters 0))
(:scale-x (meters 2) (meters 2))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0 64.0)
(:g :copy r)
(:b :copy g)
(:a 0.0)
(:vel-z (meters -0.0033333334) (meters -0.0033333334))
(:scalevel-x (meters 0.0033333334) (meters 0.006666667))
(:rotvel-z (degrees -0.1) (degrees 0.2))
(:scalevel-y :copy scalevel-x)
(:fade-a 0.26666668)
(:accel-y (meters 0.00006666667))
(:timer (seconds 4))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 launch-along-z))
(:userdata :data (new 'static 'boxed-array :type int32 40 1 0 #x405c00 #x400000))
(:next-time (seconds 0.5))
(:next-launcher 2820)
(:launchrot-x (degrees -5) (degrees 10))
(:launchrot-y (degrees -5) (degrees 10))
(:rotate-y (degrees 0))
)
)
(defpart 2820
:init-specs ((:fade-a -0.03809524 -0.03809524))
)
(defpartgroup group-fac-volumelight-yellow-glow
:id 746
:bounds (static-bspherem 0 0 0 3)
:parts ((sp-item 2821 :fade-after (meters 120) :flags (sp6)))
)
(defpart 2821
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 10) (meters 0.1))
(:rot-x (degrees 9))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 80.0)
(:b 0.0)
(:a 80.0 10.0)
(:omega (degrees 2715.75))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 4096.0)
)
)
(defpartgroup group-fac-glowlite-yellow-glow
:id 747
:bounds (static-bspherem 0 0 0 3)
:parts ((sp-item 2822 :fade-after (meters 120) :flags (sp6)))
)
(defpart 2822
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 15) (meters 0.1))
(:rot-x (degrees 9))
(:rot-z (degrees -17))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 0.0)
(:a 40.0 10.0)
(:omega (degrees 2715.75))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 819.2)
)
)
(defpartgroup group-fac-glowt-yellow-glow
:id 748
:bounds (static-bspherem 0 0 0 3)
:parts ((sp-item 2823 :fade-after (meters 120) :flags (sp6)))
)
(defpart 2823
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 10) (meters 0.1))
(:rot-x (degrees 9))
(:rot-z (degrees -17))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 80.0)
(:b 0.0)
(:a 40.0 5.0)
(:omega (degrees 2715.75))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 819.2)
)
)
(defpartgroup group-fac-grate-yellow-glow
:id 749
:bounds (static-bspherem 0 0 0 3)
:parts ((sp-item 2824 :fade-after (meters 120) :flags (sp6)))
)
(defpart 2824
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 8) (meters 0.1))
(:rot-x (degrees 9))
(:rot-z (degrees -17))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 80.0)
(:b 0.0)
(:a 80.0 5.0)
(:omega (degrees 2715.75))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 819.2)
)
)
(defpartgroup group-fac-break-floor-bust
:id 750
:flags (sp0 sp4)
:bounds (static-bspherem 0 0 0 10)
:parts ((sp-item 2825 :flags (sp7) :period (seconds 20) :length (seconds 0.067)))
)
(defpart 2825
:init-specs ((:texture (dirtpuff01 level-default-sprite))
(:num 6.0)
(:x (meters 0) (meters 4))
(:scale-x (meters 2) (meters 3))
(:rot-z (degrees -90))
(:scale-y :copy scale-x)
(:r 190.0)
(:g 170.0)
(:b 150.0)
(:a 64.0 64.0)
(:vel-y (meters 0.033333335) (meters 0.033333335))
(:scalevel-x (meters 0.006666667) (meters 0.0033333334))
(:rotvel-z (degrees -0.06666667) (degrees 0.13333334))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.21333334 -0.21333334)
(:accel-y (meters -0.00016666666))
(:friction 0.9)
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
(:conerot-x (degrees 80) (degrees 90))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpartgroup group-fac-break-fence-bust
:id 751
:flags (sp0 sp4)
:bounds (static-bspherem 0 0 0 20)
:parts ((sp-item 2826 :flags (sp7) :period (seconds 20) :length (seconds 0.067)))
)
(defpart 2826
:init-specs ((:texture (big-cloud level-default-sprite))
(:num 10.0)
(:x (meters -6) (meters 12))
(:y (meters -4) (meters 8))
(:scale-x (meters 4) (meters 4))
(:rot-z (degrees -90))
(:scale-y :copy scale-x)
(:r 100.0 80.0)
(:g :copy r)
(:b :copy r)
(:a 64.0 64.0)
(:scalevel-x (meters 0.0033333334) (meters 0.0033333334))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.21333334 -0.21333334)
(:accel-y (meters -0.00016666666))
(:friction 0.9)
(:timer (seconds 2))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13))
(:rotate-y (degrees 0))
)
)
(defpartgroup group-fac-robopod-bust
:id 752
:flags (sp0 sp4)
:bounds (static-bspherem 0 0 0 20)
:parts ((sp-item 2827 :flags (sp3) :period (seconds 30) :length (seconds 0.017))
(sp-item 2828 :period (seconds 30) :length (seconds 0.035))
(sp-item 2829 :period (seconds 30) :length (seconds 0.035))
)
)
(defpart 2827
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:y (meters 2))
(:scale-x (meters 20))
(:rot-x (degrees 225))
(:scale-y :copy scale-x)
(:r 220.0)
(:g 200.0)
(:b 40.0)
(:a 64.0)
(:fade-a -0.21333334)
(:timer (seconds 1))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 40960.0)
)
)
(defpart 2828
:init-specs ((:texture (hotdot level-default-sprite))
(:num 50.0)
(:y (meters 2))
(:scale-x (meters 0.8) (meters 1.2))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 30.0)
(:a 128.0)
(:vel-y (meters 0.16666667) (meters 0.33333334))
(:scalevel-x (meters -0.0016666667))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.28444445 -0.28444445)
(:accel-y (meters -0.0016666667))
(:friction 0.9)
(:timer (seconds 1.5))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3))
(:conerot-x (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpart 2829
:init-specs ((:texture (dust-sparkle factorya-sprite))
(:num 10.0 10.0)
(:y (meters 2))
(:scale-x (meters 2) (meters 4))
(:rot-z (degrees 0) (degrees 360))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 128.0)
(:b 30.0)
(:a 128.0)
(:vel-y (meters 0.033333335) (meters 0.33333334))
(:scalevel-x (meters 0.006666667))
(:rotvel-z (degrees -0.2) (degrees 0.4))
(:scalevel-y :copy scalevel-x)
(:fade-a -0.28444445 -0.28444445)
(:accel-y (meters -0.0016666667))
(:friction 0.75)
(:timer (seconds 1.5))
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-3))
(:conerot-x (degrees 0) (degrees 360))
(:rotate-y (degrees 0) (degrees 3600))
)
)
(defpartgroup group-fac-switch-glow-red
:id 753
:flags (sp0 sp4)
:bounds (static-bspherem 0 0 0 20)
:parts ((sp-item 2830 :flags (sp6 sp7)))
)
(defpart 2830
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 2.5) (meters 0.1))
(:rot-x (degrees 9))
(:rot-z (degrees -17))
(:scale-y :copy scale-x)
(:r 128.0)
(:g 0.0)
(:b 0.0)
(:a 40.0 1.0)
(:omega (degrees 2715.75))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 819.2)
)
)
(defpartgroup group-fac-switch-glow-green
:id 754
:flags (sp0 sp4)
:bounds (static-bspherem 0 0 0 20)
:parts ((sp-item 2831 :flags (sp6 sp7)))
)
(defpart 2831
:init-specs ((:texture (glow-soft level-default-sprite))
(:num 1.0)
(:scale-x (meters 2.5) (meters 0.1))
(:rot-x (degrees 9))
(:rot-z (degrees -17))
(:scale-y :copy scale-x)
(:r 0.0)
(:g 128.0)
(:b 0.0)
(:a 40.0 1.0)
(:omega (degrees 2715.75))
(:timer (seconds 0.017))
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
(:userdata 819.2)
)
)
(defpartgroup group-fac-rotfan-barrier
:id 755
:flags (sp0 sp4)
:bounds (static-bspherem 0 0 0 20)
:parts ((sp-item 2832 :flags (is-3d sp7)))
)
(defpart 2832
:init-specs ((:texture (fan-blade factorya-sprite))
(:num 0.017)
(:scale-x (meters 38))
(:rot-z (degrees 90))
(:scale-y :copy scale-x)
(:r 60.0)
(:g 70.0)
(:b 128.0)
(:a 40.0 10.0)
(:rotvel-y (degrees -3.0000002))
(:timer (seconds 2))
(:flags ())
(:rotate-y (degrees 0))
)
)