This file is indexed.

/usr/share/games/trackballs/levels/lv1.scm is in trackballs-data 1.2.4-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
;;; level 1
;; Note. This level is much more complex than the others since
;; I want to demonstrate the flexibility of what can be done with
;; the GUILE scripting language. If you are looking to create a level
;; yourself it is better to look at one of the other levels first and when
;; you have gotten started you might look here for some ideas.

(day)
(set-track-name (_ "Warmup"))
(set-author "Mathias Broxvall")
(fog)

(restart-time 60.0)

(set-start-position 252 252)
(start-time 150)

(snow 0.5)
;(add-goal 252 250 #f "lv2") for debugging
;(add-modpill 252 253 *mod-large* 30 -1)
;(add-modpill 253 253 *mod-small* 30 -1)

(if (= (difficulty) *easy*) (add-modpill 252 253 *mod-spike* 30 -1))

;; Secret bonus level
(define bonus-goto "lv2")
(add-goal 253 203 #f "bonus")
(add-modpill 253 196 *mod-frozen* 5 (- 22 (* 3 (difficulty))))

;; This would create a forcefield and a switch turning it on/off
(if (= (difficulty) *hard*)
  (let ()
    (define ff (forcefield 251.0 250 0.0 
               2.0 0.0 0.0 
               0.5 *ff-kill*))
    (switch 252 249 (lambda () (set-onoff ff #t)) (lambda () (set-onoff ff #f)))
    ))

;; This is the goal
(add-goal 219 204 #f "lv2")

(add-flag 252 232 250 #f 1.0) ;; After the jump
(add-flag 241 245 150 #t 0.1) ;; Where the black ball is
(add-flag 231 229 100 #f 1.0)
(add-flag 224 212 100 #t 0.1)
(add-flag 219 199 150 #t 0.1)
(add-flag 224 198 250 #t 0.1)

(define speed 0.2)
(cond
 ((= (difficulty) *easy*) (set! speed 0.10))
 ((= (difficulty) *normal*) (set! speed 0.20))
 ((= (difficulty) *hard*) (set! speed 0.30))
)

(add-spike 250 228 speed -0.00)
(add-spike 249 228 speed -0.20)
(add-spike 248 228 speed -0.40)
(add-spike 247 228 speed -0.60)
(add-spike 246 228 speed -0.80)
(add-spike 245 228 speed -1.00)

(add-flag 240 219 150 #t 0.1)
(add-flag 232 218 250 #t 0.1)


; new
(add-sidespike 245 245 speed 0.0 4)
(add-sidespike 247 245 speed 0.1 4)
(add-sidespike 249 245 speed 0.2 4)

(set-primary-color (sign (_ "Mr. Black") 1.0 15.0 0.0 241 245) 0.8 0.8 0.4)
(define mr-black (new-mr-black 241 245))
(if (= (difficulty) *hard*) (set-modtime mr-black *mod-spike* -1.))
(set-acceleration mr-black 2.0)

(define *min-value* 0.0)
(define *max-value* 1.0)
(define *starting-direction* 1.0)

(define mr-black-animator
  (animator
     1.0 0.0 *starting-direction* *min-value* *max-value* *animator-bounce*
     (lambda (value) (set-primary-color mr-black value value 0.0))
     )
  )


;(set-onoff mr-black #f)
;(set-modtime mr-black *mod-spike* -1.)
;(set-primary-color mr-black 0.5 1.0 0.5)
;(set-specular-color mr-black 0.5 1.0 0.5)

(set-primary-color (sign (_ "and his Minions") 1.0 15.0 0.0 233 245) 0.8 0.8 0.4)
(new-baby 233 245)
(new-baby 231.7 244.5)
(new-baby 233.0 245.5)
(new-baby 231.7 244.2)
(new-baby 232.3 246.0)
(new-baby 233.4 245.7)

(cond
 ((= (difficulty) *easy*) (set! speed 0.60))
 ((= (difficulty) *normal*) (set! speed 0.40))
 ((= (difficulty) *hard*) (set! speed 0.20))
)

(define plat1 (add-cyclic-platform 
 ;;; Positions
         238 228 239 229
 ;;; Low, High, Time Offset, Speed
 3. 4. 0. speed)
)

(add-cyclic-platform 
 ;;; Positions
 236 228 237 229
 ;;; Low, High, Time Offset, Speed
 2. 4. 0.5 (+ 0.10 speed))

(add-cyclic-platform 
 ;;; Positions
 234 228 235 229
 ;;; Low, High, Time Offset, Speed
 3. 4. 0. speed)

(add-cyclic-platform 
 ;;; Positions
 230 225 231 229
 ;;; Low, High, Time Offset, Speed
 2. 3. 0.5 speed)

(diamond 241.5 228.5)

;;; modpill-types:
;;; *mod-speed* - "Speedball": Makes the player go faster
;;; *mod-jump* - "Jumpjets": Makes the player jump higher
;;; *mod-spike* - "Spikes": Damages other balls more in collisions. Increases friction on ice
;;; *mod-glass* - "Glassball": Makes ball more sensitive to crashes
;;; *mod-dizzy* - "Dizzy": Makes ball dizzy 
;;; *mod-frozen* - "Frozen": Player can't move ball as long as it is frozen

(add-modpill 231 212 *mod-spike* 25 40)

;;;;;;;;;;;;;;;;;;;;;;;;,
;;; Note. These are some extra functions you can use

;; Calls your lambda expression when player is close to X,Y
;(trigger X Y R (lambda () <something to do>))

(sign "debug test" 1.0 15.0 0.0 10.5 10.5)