;;-*-Lisp-*-
(in-package goal)

;; name: des-bush-part.gc
;; name in dgo: des-bush-part
;; dgos: LBBSDRP1, LBBRING3, LBBRING4, LBBSDRP2, LBBRING2, LBBSPIRT, LBBSPID, LBBRING5, LBBSPRT3, LBBSPRT2, LBBRING1, LBBRING6, LBBSDRP3

;; DECOMP BEGINS

(defpartgroup group-spirit-goal
  :id 1540
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 20)
  :parts ((sp-item 5114 :flags (sp7)) (sp-item 5115 :flags (sp7)))
  )

(defpart 5114
  :init-specs ((:texture (glow level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 5) (meters 0.25))
    (:rot-x (degrees 11.25))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 64.0)
    (:g 64.0)
    (:b 255.0)
    (:a 128.0)
    (:timer (seconds 0.017))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
    (:userdata 4096.0)
    )
  )

(defpart 5116
  :init-specs ((:texture (glow level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 1.6) (meters 1))
    (:rot-x (degrees 11.25))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 64.0)
    (:g 64.0)
    (:b 255.0)
    (:a 128.0)
    (:timer (seconds 0.017))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
    (:userdata 4096.0)
    )
  )

(defpartgroup group-bb-ring-finder
  :id 1541
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 640)
  :parts ((sp-item 5116 :flags (sp7)) (sp-item 5115 :flags (sp7)))
  )

(defpart 5117
  :init-specs ((:texture (glow-soft level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 1))
    (:scale-y :copy scale-x)
    (:r 0.0)
    (:g 0.0)
    (:b 128.0)
    (:a 50.0)
    (:fade-r 0.027777778)
    (:fade-b -0.027777778)
    (:fade-a -0.055555556)
    (:timer (seconds 6))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
    )
  )

(define *bb-ring-alpha* 50)

(defpartgroup group-bb-ring-finder-nofade
  :id 1542
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 640)
  :parts ((sp-item 5118 :flags (sp7)) (sp-item 5115 :flags (sp7)))
  )

(defpart 5118
  :init-specs ((:texture (glow-soft level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 1))
    (:scale-y :copy scale-x)
    (:r 0.0)
    (:g 0.0)
    (:b 128.0)
    (:a 50.0)
    (:fade-r 0.027777778)
    (:fade-b -0.027777778)
    (:timer (seconds -0.005))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
    (:func 'spt-func-bb-ring-fader)
    )
  )

;; WARN: Return type mismatch float vs none.
(defun spt-func-bb-ring-fader ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo))
  (set! (-> arg2 coneradius) (the float *bb-ring-alpha*))
  (none)
  )

(defpart 5115
  :init-specs ((:texture (starflash level-default-sprite))
    (:num 1.5)
    (:x (meters 0) (meters 1))
    (:y (meters -1) (meters 2))
    (:scale-x (meters 0.1) (meters 0.2))
    (:scale-y :copy scale-x)
    (:r 50.0)
    (:g 50.0)
    (:b 120.0)
    (:a 64.0)
    (:vel-x (meters -0.006666667) (meters 0.013333334))
    (:vel-y (meters 0.006666667) (meters 0.0016666667))
    (:vel-z (meters -0.006666667) (meters 0.013333334))
    (:scalevel-x (meters 0.00033333333))
    (:scalevel-y :copy scalevel-x)
    (:fade-a 0.0)
    (:accel-y (meters -0.00033333333) (meters -0.00016666666))
    (:timer (seconds 1.667))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
    (:rotate-y (degrees 0) (degrees 3600))
    )
  )

(defpartgroup group-score-drop-c
  :id 1543
  :linger-duration (seconds 2)
  :flags (sp0)
  :bounds (static-bspherem 0 0 0 2)
  :parts ((sp-item 5123 :flags (sp7))
    (sp-item 5124 :flags (sp6 sp7))
    (sp-item 5125 :flags (sp3) :binding 5119)
    (sp-item 5119 :flags (sp2 sp3) :binding 5120)
    (sp-item 5125 :flags (sp3) :binding 5121)
    (sp-item 5121 :flags (sp2 sp3) :binding 5120)
    (sp-item 5125 :flags (sp3) :binding 5122)
    (sp-item 5122 :flags (sp2 sp3) :binding 5120)
    (sp-item 5120 :flags (sp2))
    (sp-item 5120 :flags (sp2))
    (sp-item 5120 :flags (sp2))
    )
  )

(defpart 5123
  :init-specs ((:texture (laser-hit2 level-default-sprite))
    (:num 0.3)
    (:scale-x (meters 0.3))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 16.0 16.0)
    (:b :copy g)
    (:a 0.0)
    (:scalevel-x (meters 0.05) (meters 0.016666668))
    (:scalevel-y :copy scalevel-x)
    (:fade-a 0.85333335)
    (:timer (seconds 1))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
    (:next-time (seconds 0.335))
    (:next-launcher 5126)
    (:rotate-y (degrees 0))
    )
  )

(defpart 5126
  :init-specs ((:fade-a -0.85333335))
  )

(defpart 5124
  :init-specs ((:texture (time-bubble lbbsdrp1-sprite))
    (:num 1.0)
    (:scale-x (meters 6))
    (:rot-x (degrees 22.5))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 32.0)
    (:b 32.0)
    (:a 64.0)
    (:omega (degrees 4511.25))
    (:timer (seconds 0.017))
    (:flags (sp-cpuinfo-flag-3))
    (:userdata 409.6)
    (:rotate-y (degrees 90))
    )
  )

(defpart 5125
  :init-specs ((:texture (hotdot level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 1))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 128.0)
    (:b 128.0)
    (:a 0.0)
    (:timer (seconds -0.005))
    (:flags (sp-cpuinfo-flag-3))
    (:func 'sparticle-track-root)
    (:rotate-y (degrees 90))
    )
  )

(defpart 5119
  :init-specs ((:texture (time-bubble-orbiter lbbsdrp1-sprite))
    (:num 1.0)
    (:y (meters 2))
    (:z (meters 2))
    (:scale-x (meters 1))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 64.0)
    (:b 64.0)
    (:a 128.0)
    (:omega (degrees 0))
    (:vel-x (meters 0.053333335))
    (:vel-y (meters 0))
    (:timer (seconds -0.005))
    (:flags (ready-to-launch aux-list))
    (:rotate-y (degrees 0))
    )
  )

(defpart 5121
  :init-specs ((:texture (time-bubble-orbiter lbbsdrp1-sprite))
    (:num 1.0)
    (:y (meters -2))
    (:z (meters 2))
    (:scale-x (meters 1))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 64.0)
    (:b 64.0)
    (:a 128.0)
    (:omega (degrees 45))
    (:vel-x (meters -0.053333335))
    (:vel-y (meters 0))
    (:timer (seconds -0.005))
    (:flags (ready-to-launch aux-list))
    (:rotate-y (degrees 0))
    )
  )

(defpart 5122
  :init-specs ((:texture (time-bubble-orbiter lbbsdrp1-sprite))
    (:num 1.0)
    (:z (meters 2))
    (:scale-x (meters 1))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 64.0)
    (:b 64.0)
    (:a 128.0)
    (:omega (degrees 90))
    (:vel-x (meters 0.053333335))
    (:vel-y (meters 0))
    (:timer (seconds -0.005))
    (:flags (ready-to-launch aux-list))
    (:rotate-y (degrees 0))
    )
  )

(defpart 5120
  :init-specs ((:texture (middot level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 0.8))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 0.0)
    (:b 0.0)
    (:a 32.0)
    (:scalevel-x (meters -0.006666667))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.32)
    (:timer (seconds 0.335))
    (:flags (sp-cpuinfo-flag-3))
    )
  )

(defpartgroup group-score-drop-b
  :id 1544
  :linger-duration (seconds 2)
  :flags (sp0)
  :bounds (static-bspherem 0 0 0 2)
  :parts ((sp-item 5130 :flags (sp7))
    (sp-item 5131 :flags (sp6 sp7))
    (sp-item 5132 :flags (sp3) :binding 5127)
    (sp-item 5127 :flags (sp2 sp3) :binding 5128)
    (sp-item 5132 :flags (sp3) :binding 5129)
    (sp-item 5129 :flags (sp2 sp3) :binding 5128)
    (sp-item 5128 :flags (sp2))
    (sp-item 5128 :flags (sp2))
    )
  )

(defpart 5130
  :init-specs ((:texture (laser-hit2 level-default-sprite))
    (:num 0.3)
    (:scale-x (meters 0.3))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 250.0)
    (:g 230.0 20.0)
    (:b 16.0 16.0)
    (:a 0.0)
    (:scalevel-x (meters 0.05) (meters 0.016666668))
    (:scalevel-y :copy scalevel-x)
    (:fade-a 0.85333335)
    (:timer (seconds 1))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
    (:next-time (seconds 0.335))
    (:next-launcher 5133)
    (:rotate-y (degrees 0))
    )
  )

(defpart 5133
  :init-specs ((:fade-a -0.85333335))
  )

(defpart 5131
  :init-specs ((:texture (time-bubble lbbsdrp1-sprite))
    (:num 1.0)
    (:scale-x (meters 6))
    (:rot-x (degrees 22.5))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 255.0)
    (:b 32.0)
    (:a 64.0)
    (:omega (degrees 4511.25))
    (:timer (seconds 0.017))
    (:flags (sp-cpuinfo-flag-3))
    (:userdata 409.6)
    (:rotate-y (degrees 90))
    )
  )

(defpart 5132
  :init-specs ((:texture (hotdot level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 1))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 128.0)
    (:b 128.0)
    (:a 0.0)
    (:timer (seconds -0.005))
    (:flags (sp-cpuinfo-flag-3))
    (:func 'sparticle-track-root)
    (:rotate-y (degrees 90))
    )
  )

(defpart 5127
  :init-specs ((:texture (time-bubble-orbiter lbbsdrp1-sprite))
    (:num 1.0)
    (:z (meters 2))
    (:scale-x (meters 1))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 255.0)
    (:b 64.0)
    (:a 128.0)
    (:omega (degrees 0))
    (:vel-x (meters 0.053333335))
    (:vel-y (meters 0))
    (:timer (seconds -0.005))
    (:flags (ready-to-launch aux-list))
    (:rotate-y (degrees 0))
    )
  )

(defpart 5129
  :init-specs ((:texture (time-bubble-orbiter lbbsdrp1-sprite))
    (:num 1.0)
    (:z (meters 2))
    (:scale-x (meters 1))
    (:scale-y :copy scale-x)
    (:r 255.0)
    (:g 255.0)
    (:b 64.0)
    (:a 128.0)
    (:omega (degrees 180))
    (:vel-x (meters 0.053333335))
    (:vel-y (meters 0))
    (:timer (seconds -0.005))
    (:flags (ready-to-launch aux-list))
    (:rotate-y (degrees 0))
    )
  )

(defpart 5128
  :init-specs ((:texture (middot level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 0.8))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 128.0)
    (:b 0.0)
    (:a 32.0)
    (:scalevel-x (meters -0.006666667))
    (:scalevel-y :copy scalevel-x)
    (:fade-a -0.32)
    (:timer (seconds 0.335))
    (:flags (sp-cpuinfo-flag-3))
    )
  )

(defpartgroup group-score-drop-a
  :id 1545
  :linger-duration (seconds 2)
  :flags (sp0)
  :bounds (static-bspherem 0 0 0 2)
  :parts ((sp-item 5137 :flags (sp7))
    (sp-item 5138 :flags (sp6 sp7))
    (sp-item 5139 :flags (sp3) :binding 5134)
    (sp-item 5134 :flags (sp2 sp3) :binding 5135)
    (sp-item 5139 :flags (sp3) :binding 5136)
    )
  )

(defpart 5137
  :init-specs ((:texture (laser-hit2 level-default-sprite))
    (:num 0.3)
    (:scale-x (meters 0.3))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 16.0 16.0)
    (:g :copy r)
    (:b 255.0)
    (:a 0.0)
    (:scalevel-x (meters 0.05) (meters 0.016666668))
    (:scalevel-y :copy scalevel-x)
    (:fade-a 0.85333335)
    (:timer (seconds 1))
    (:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
    (:next-time (seconds 0.335))
    (:next-launcher 5140)
    (:rotate-y (degrees 0))
    )
  )

(defpart 5140
  :init-specs ((:fade-a -0.85333335))
  )

(defpart 5138
  :init-specs ((:texture (time-bubble lbbsdrp1-sprite))
    (:num 1.0)
    (:scale-x (meters 6))
    (:rot-x (degrees 22.5))
    (:scale-y :copy scale-x)
    (:r 32.0)
    (:g 32.0)
    (:b 255.0)
    (:a 64.0)
    (:omega (degrees 4511.25))
    (:timer (seconds 0.017))
    (:flags (sp-cpuinfo-flag-3))
    (:userdata 409.6)
    (:rotate-y (degrees 90))
    )
  )

(defpart 5139
  :init-specs ((:texture (hotdot level-default-sprite))
    (:num 1.0)
    (:scale-x (meters 1))
    (:scale-y :copy scale-x)
    (:r 128.0)
    (:g 128.0)
    (:b 128.0)
    (:a 0.0)
    (:timer (seconds -0.005))
    (:flags (sp-cpuinfo-flag-3))
    (:func 'sparticle-track-root)
    (:rotate-y (degrees 90))
    )
  )

(defpart 5134
  :init-specs ((:texture (time-bubble-orbiter lbbsdrp1-sprite))
    (:num 1.0)
    (:y (meters 4))
    (:z (meters 0.2))
    (:scale-x (meters 1))
    (:scale-y :copy scale-x)
    (:r 64.0)
    (:g 64.0)
    (:b 255.0)
    (:a 128.0)
    (:omega (degrees 0))
    (:vel-x (meters 0.053333335))
    (:vel-y (meters 0))
    (:timer (seconds -0.005))
    (:flags (ready-to-launch aux-list))
    (:rotate-y (degrees 0))
    )
  )

(defpartgroup group-spirit-explode
  :id 1546
  :flags (sp0 sp4)
  :bounds (static-bspherem 0 0 0 20)
  :parts ((sp-item 5141 :period (seconds 20) :length (seconds 0.035))
    (sp-item 5142 :period (seconds 20) :length (seconds 0.035))
    )
  )

(defpart 5141
  :init-specs ((:texture (explosion-nebula level-default-sprite))
    (:num 10.0)
    (:scale-x (meters 3) (meters 2))
    (:rot-z (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 30.0)
    (:g 80.0 20.0)
    (:b 255.0)
    (:a 255.0)
    (:vel-y (meters 0) (meters 0.06666667))
    (:scalevel-x (meters 0.033333335))
    (:scalevel-y :copy scalevel-x)
    (:fade-r -0.2)
    (:fade-g -0.53333336)
    (:fade-a -1.7 -1.7)
    (:friction 0.93)
    (:timer (seconds 0.5))
    (:flags (sp-cpuinfo-flag-3))
    (:conerot-x (degrees 0) (degrees 360))
    (:rotate-y (degrees 0) (degrees 3600))
    )
  )

(defpart 5142
  :init-specs ((:texture (explosion-edge level-default-sprite))
    (:num 20.0)
    (:scale-x (meters 3) (meters 2))
    (:rot-x (degrees 0))
    (:rot-y (degrees 0) (degrees 360))
    (:scale-y :copy scale-x)
    (:r 30.0)
    (:g 80.0 20.0)
    (:b 255.0)
    (:a 128.0)
    (:vel-y (meters 0.33333334) (meters 0.13333334))
    (:scalevel-x (meters 0.033333335))
    (:scalevel-y :copy scalevel-x)
    (:fade-r -0.1)
    (:fade-g -0.26666668)
    (:fade-a -0.42666668 -0.42666668)
    (:friction 0.75)
    (:timer (seconds 1))
    (: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))
    )
  )
