bascenev1lib.actor.spazappearance
Appearance functionality for spazzes.
1# Released under the MIT License. See LICENSE for details. 2# 3"""Appearance functionality for spazzes.""" 4from __future__ import annotations 5 6import bascenev1 as bs 7 8 9def get_appearances(include_locked: bool = False) -> list[str]: 10 """Get the list of available spaz appearances.""" 11 # pylint: disable=too-many-statements 12 # pylint: disable=too-many-branches 13 plus = bs.app.plus 14 assert plus is not None 15 16 assert bs.app.classic is not None 17 get_purchased = plus.get_purchased 18 disallowed = [] 19 if not include_locked: 20 # Hmm yeah this'll be tough to hack... 21 if not get_purchased('characters.santa'): 22 disallowed.append('Santa Claus') 23 if not get_purchased('characters.frosty'): 24 disallowed.append('Frosty') 25 if not get_purchased('characters.bones'): 26 disallowed.append('Bones') 27 if not get_purchased('characters.bernard'): 28 disallowed.append('Bernard') 29 if not get_purchased('characters.pixie'): 30 disallowed.append('Pixel') 31 if not get_purchased('characters.pascal'): 32 disallowed.append('Pascal') 33 if not get_purchased('characters.actionhero'): 34 disallowed.append('Todd McBurton') 35 if not get_purchased('characters.taobaomascot'): 36 disallowed.append('Taobao Mascot') 37 if not get_purchased('characters.agent'): 38 disallowed.append('Agent Johnson') 39 if not get_purchased('characters.jumpsuit'): 40 disallowed.append('Lee') 41 if not get_purchased('characters.assassin'): 42 disallowed.append('Zola') 43 if not get_purchased('characters.wizard'): 44 disallowed.append('Grumbledorf') 45 if not get_purchased('characters.cowboy'): 46 disallowed.append('Butch') 47 if not get_purchased('characters.witch'): 48 disallowed.append('Witch') 49 if not get_purchased('characters.warrior'): 50 disallowed.append('Warrior') 51 if not get_purchased('characters.superhero'): 52 disallowed.append('Middle-Man') 53 if not get_purchased('characters.alien'): 54 disallowed.append('Alien') 55 if not get_purchased('characters.oldlady'): 56 disallowed.append('OldLady') 57 if not get_purchased('characters.gladiator'): 58 disallowed.append('Gladiator') 59 if not get_purchased('characters.wrestler'): 60 disallowed.append('Wrestler') 61 if not get_purchased('characters.operasinger'): 62 disallowed.append('Gretel') 63 if not get_purchased('characters.robot'): 64 disallowed.append('Robot') 65 if not get_purchased('characters.cyborg'): 66 disallowed.append('B-9000') 67 if not get_purchased('characters.bunny'): 68 disallowed.append('Easter Bunny') 69 if not get_purchased('characters.kronk'): 70 disallowed.append('Kronk') 71 if not get_purchased('characters.zoe'): 72 disallowed.append('Zoe') 73 if not get_purchased('characters.jackmorgan'): 74 disallowed.append('Jack Morgan') 75 if not get_purchased('characters.mel'): 76 disallowed.append('Mel') 77 if not get_purchased('characters.snakeshadow'): 78 disallowed.append('Snake Shadow') 79 return [ 80 s 81 for s in list(bs.app.classic.spaz_appearances.keys()) 82 if s not in disallowed 83 ] 84 85 86class Appearance: 87 """Create and fill out one of these suckers to define a spaz appearance.""" 88 89 def __init__(self, name: str): 90 assert bs.app.classic is not None 91 self.name = name 92 if self.name in bs.app.classic.spaz_appearances: 93 raise RuntimeError( 94 f'spaz appearance name "{self.name}" already exists.' 95 ) 96 bs.app.classic.spaz_appearances[self.name] = self 97 self.color_texture = '' 98 self.color_mask_texture = '' 99 self.icon_texture = '' 100 self.icon_mask_texture = '' 101 self.head_mesh = '' 102 self.torso_mesh = '' 103 self.pelvis_mesh = '' 104 self.upper_arm_mesh = '' 105 self.forearm_mesh = '' 106 self.hand_mesh = '' 107 self.upper_leg_mesh = '' 108 self.lower_leg_mesh = '' 109 self.toes_mesh = '' 110 self.jump_sounds: list[str] = [] 111 self.attack_sounds: list[str] = [] 112 self.impact_sounds: list[str] = [] 113 self.death_sounds: list[str] = [] 114 self.pickup_sounds: list[str] = [] 115 self.fall_sounds: list[str] = [] 116 self.style = 'spaz' 117 self.default_color: tuple[float, float, float] | None = None 118 self.default_highlight: tuple[float, float, float] | None = None 119 120 121def register_appearances() -> None: 122 """Register our builtin spaz appearances.""" 123 124 # This is quite ugly but will be going away so not worth cleaning up. 125 # pylint: disable=invalid-name 126 # pylint: disable=too-many-locals 127 # pylint: disable=too-many-statements 128 129 # Spaz ####################################### 130 t = Appearance('Spaz') 131 t.color_texture = 'neoSpazColor' 132 t.color_mask_texture = 'neoSpazColorMask' 133 t.icon_texture = 'neoSpazIcon' 134 t.icon_mask_texture = 'neoSpazIconColorMask' 135 t.head_mesh = 'neoSpazHead' 136 t.torso_mesh = 'neoSpazTorso' 137 t.pelvis_mesh = 'neoSpazPelvis' 138 t.upper_arm_mesh = 'neoSpazUpperArm' 139 t.forearm_mesh = 'neoSpazForeArm' 140 t.hand_mesh = 'neoSpazHand' 141 t.upper_leg_mesh = 'neoSpazUpperLeg' 142 t.lower_leg_mesh = 'neoSpazLowerLeg' 143 t.toes_mesh = 'neoSpazToes' 144 t.jump_sounds = ['spazJump01', 'spazJump02', 'spazJump03', 'spazJump04'] 145 t.attack_sounds = [ 146 'spazAttack01', 147 'spazAttack02', 148 'spazAttack03', 149 'spazAttack04', 150 ] 151 t.impact_sounds = [ 152 'spazImpact01', 153 'spazImpact02', 154 'spazImpact03', 155 'spazImpact04', 156 ] 157 t.death_sounds = ['spazDeath01'] 158 t.pickup_sounds = ['spazPickup01'] 159 t.fall_sounds = ['spazFall01'] 160 t.style = 'spaz' 161 162 # Zoe ##################################### 163 t = Appearance('Zoe') 164 t.color_texture = 'zoeColor' 165 t.color_mask_texture = 'zoeColorMask' 166 t.icon_texture = 'zoeIcon' 167 t.icon_mask_texture = 'zoeIconColorMask' 168 t.head_mesh = 'zoeHead' 169 t.torso_mesh = 'zoeTorso' 170 t.pelvis_mesh = 'zoePelvis' 171 t.upper_arm_mesh = 'zoeUpperArm' 172 t.forearm_mesh = 'zoeForeArm' 173 t.hand_mesh = 'zoeHand' 174 t.upper_leg_mesh = 'zoeUpperLeg' 175 t.lower_leg_mesh = 'zoeLowerLeg' 176 t.toes_mesh = 'zoeToes' 177 t.jump_sounds = ['zoeJump01', 'zoeJump02', 'zoeJump03'] 178 t.attack_sounds = [ 179 'zoeAttack01', 180 'zoeAttack02', 181 'zoeAttack03', 182 'zoeAttack04', 183 ] 184 t.impact_sounds = [ 185 'zoeImpact01', 186 'zoeImpact02', 187 'zoeImpact03', 188 'zoeImpact04', 189 ] 190 t.death_sounds = ['zoeDeath01'] 191 t.pickup_sounds = ['zoePickup01'] 192 t.fall_sounds = ['zoeFall01'] 193 t.style = 'female' 194 t.default_color = (0.6, 0.6, 0.6) 195 t.default_highlight = (0, 1, 0) 196 197 # Ninja ########################################## 198 t = Appearance('Snake Shadow') 199 t.color_texture = 'ninjaColor' 200 t.color_mask_texture = 'ninjaColorMask' 201 t.icon_texture = 'ninjaIcon' 202 t.icon_mask_texture = 'ninjaIconColorMask' 203 t.head_mesh = 'ninjaHead' 204 t.torso_mesh = 'ninjaTorso' 205 t.pelvis_mesh = 'ninjaPelvis' 206 t.upper_arm_mesh = 'ninjaUpperArm' 207 t.forearm_mesh = 'ninjaForeArm' 208 t.hand_mesh = 'ninjaHand' 209 t.upper_leg_mesh = 'ninjaUpperLeg' 210 t.lower_leg_mesh = 'ninjaLowerLeg' 211 t.toes_mesh = 'ninjaToes' 212 ninja_attacks = ['ninjaAttack' + str(i + 1) + '' for i in range(7)] 213 ninja_hits = ['ninjaHit' + str(i + 1) + '' for i in range(8)] 214 ninja_jumps = ['ninjaAttack' + str(i + 1) + '' for i in range(7)] 215 t.jump_sounds = ninja_jumps 216 t.attack_sounds = ninja_attacks 217 t.impact_sounds = ninja_hits 218 t.death_sounds = ['ninjaDeath1'] 219 t.pickup_sounds = ninja_attacks 220 t.fall_sounds = ['ninjaFall1'] 221 t.style = 'ninja' 222 t.default_color = (1, 1, 1) 223 t.default_highlight = (0.55, 0.8, 0.55) 224 225 # Barbarian ##################################### 226 t = Appearance('Kronk') 227 t.color_texture = 'kronk' 228 t.color_mask_texture = 'kronkColorMask' 229 t.icon_texture = 'kronkIcon' 230 t.icon_mask_texture = 'kronkIconColorMask' 231 t.head_mesh = 'kronkHead' 232 t.torso_mesh = 'kronkTorso' 233 t.pelvis_mesh = 'kronkPelvis' 234 t.upper_arm_mesh = 'kronkUpperArm' 235 t.forearm_mesh = 'kronkForeArm' 236 t.hand_mesh = 'kronkHand' 237 t.upper_leg_mesh = 'kronkUpperLeg' 238 t.lower_leg_mesh = 'kronkLowerLeg' 239 t.toes_mesh = 'kronkToes' 240 kronk_sounds = [ 241 'kronk1', 242 'kronk2', 243 'kronk3', 244 'kronk4', 245 'kronk5', 246 'kronk6', 247 'kronk7', 248 'kronk8', 249 'kronk9', 250 'kronk10', 251 ] 252 t.jump_sounds = kronk_sounds 253 t.attack_sounds = kronk_sounds 254 t.impact_sounds = kronk_sounds 255 t.death_sounds = ['kronkDeath'] 256 t.pickup_sounds = kronk_sounds 257 t.fall_sounds = ['kronkFall'] 258 t.style = 'kronk' 259 t.default_color = (0.4, 0.5, 0.4) 260 t.default_highlight = (1, 0.5, 0.3) 261 262 # Chef ########################################### 263 t = Appearance('Mel') 264 t.color_texture = 'melColor' 265 t.color_mask_texture = 'melColorMask' 266 t.icon_texture = 'melIcon' 267 t.icon_mask_texture = 'melIconColorMask' 268 t.head_mesh = 'melHead' 269 t.torso_mesh = 'melTorso' 270 t.pelvis_mesh = 'kronkPelvis' 271 t.upper_arm_mesh = 'melUpperArm' 272 t.forearm_mesh = 'melForeArm' 273 t.hand_mesh = 'melHand' 274 t.upper_leg_mesh = 'melUpperLeg' 275 t.lower_leg_mesh = 'melLowerLeg' 276 t.toes_mesh = 'melToes' 277 mel_sounds = [ 278 'mel01', 279 'mel02', 280 'mel03', 281 'mel04', 282 'mel05', 283 'mel06', 284 'mel07', 285 'mel08', 286 'mel09', 287 'mel10', 288 ] 289 t.jump_sounds = mel_sounds 290 t.attack_sounds = mel_sounds 291 t.impact_sounds = mel_sounds 292 t.death_sounds = ['melDeath01'] 293 t.pickup_sounds = mel_sounds 294 t.fall_sounds = ['melFall01'] 295 t.style = 'mel' 296 t.default_color = (1, 1, 1) 297 t.default_highlight = (0.1, 0.6, 0.1) 298 299 # Pirate ####################################### 300 t = Appearance('Jack Morgan') 301 t.color_texture = 'jackColor' 302 t.color_mask_texture = 'jackColorMask' 303 t.icon_texture = 'jackIcon' 304 t.icon_mask_texture = 'jackIconColorMask' 305 t.head_mesh = 'jackHead' 306 t.torso_mesh = 'jackTorso' 307 t.pelvis_mesh = 'kronkPelvis' 308 t.upper_arm_mesh = 'jackUpperArm' 309 t.forearm_mesh = 'jackForeArm' 310 t.hand_mesh = 'jackHand' 311 t.upper_leg_mesh = 'jackUpperLeg' 312 t.lower_leg_mesh = 'jackLowerLeg' 313 t.toes_mesh = 'jackToes' 314 hit_sounds = [ 315 'jackHit01', 316 'jackHit02', 317 'jackHit03', 318 'jackHit04', 319 'jackHit05', 320 'jackHit06', 321 'jackHit07', 322 ] 323 sounds = ['jack01', 'jack02', 'jack03', 'jack04', 'jack05', 'jack06'] 324 t.jump_sounds = sounds 325 t.attack_sounds = sounds 326 t.impact_sounds = hit_sounds 327 t.death_sounds = ['jackDeath01'] 328 t.pickup_sounds = sounds 329 t.fall_sounds = ['jackFall01'] 330 t.style = 'pirate' 331 t.default_color = (1, 0.2, 0.1) 332 t.default_highlight = (1, 1, 0) 333 334 # Santa ###################################### 335 t = Appearance('Santa Claus') 336 t.color_texture = 'santaColor' 337 t.color_mask_texture = 'santaColorMask' 338 t.icon_texture = 'santaIcon' 339 t.icon_mask_texture = 'santaIconColorMask' 340 t.head_mesh = 'santaHead' 341 t.torso_mesh = 'santaTorso' 342 t.pelvis_mesh = 'kronkPelvis' 343 t.upper_arm_mesh = 'santaUpperArm' 344 t.forearm_mesh = 'santaForeArm' 345 t.hand_mesh = 'santaHand' 346 t.upper_leg_mesh = 'santaUpperLeg' 347 t.lower_leg_mesh = 'santaLowerLeg' 348 t.toes_mesh = 'santaToes' 349 hit_sounds = ['santaHit01', 'santaHit02', 'santaHit03', 'santaHit04'] 350 sounds = ['santa01', 'santa02', 'santa03', 'santa04', 'santa05'] 351 t.jump_sounds = sounds 352 t.attack_sounds = sounds 353 t.impact_sounds = hit_sounds 354 t.death_sounds = ['santaDeath'] 355 t.pickup_sounds = sounds 356 t.fall_sounds = ['santaFall'] 357 t.style = 'santa' 358 t.default_color = (1, 0, 0) 359 t.default_highlight = (1, 1, 1) 360 361 # Snowman ################################### 362 t = Appearance('Frosty') 363 t.color_texture = 'frostyColor' 364 t.color_mask_texture = 'frostyColorMask' 365 t.icon_texture = 'frostyIcon' 366 t.icon_mask_texture = 'frostyIconColorMask' 367 t.head_mesh = 'frostyHead' 368 t.torso_mesh = 'frostyTorso' 369 t.pelvis_mesh = 'frostyPelvis' 370 t.upper_arm_mesh = 'frostyUpperArm' 371 t.forearm_mesh = 'frostyForeArm' 372 t.hand_mesh = 'frostyHand' 373 t.upper_leg_mesh = 'frostyUpperLeg' 374 t.lower_leg_mesh = 'frostyLowerLeg' 375 t.toes_mesh = 'frostyToes' 376 frosty_sounds = ['frosty01', 'frosty02', 'frosty03', 'frosty04', 'frosty05'] 377 frosty_hit_sounds = ['frostyHit01', 'frostyHit02', 'frostyHit03'] 378 t.jump_sounds = frosty_sounds 379 t.attack_sounds = frosty_sounds 380 t.impact_sounds = frosty_hit_sounds 381 t.death_sounds = ['frostyDeath'] 382 t.pickup_sounds = frosty_sounds 383 t.fall_sounds = ['frostyFall'] 384 t.style = 'frosty' 385 t.default_color = (0.5, 0.5, 1) 386 t.default_highlight = (1, 0.5, 0) 387 388 # Skeleton ################################ 389 t = Appearance('Bones') 390 t.color_texture = 'bonesColor' 391 t.color_mask_texture = 'bonesColorMask' 392 t.icon_texture = 'bonesIcon' 393 t.icon_mask_texture = 'bonesIconColorMask' 394 t.head_mesh = 'bonesHead' 395 t.torso_mesh = 'bonesTorso' 396 t.pelvis_mesh = 'bonesPelvis' 397 t.upper_arm_mesh = 'bonesUpperArm' 398 t.forearm_mesh = 'bonesForeArm' 399 t.hand_mesh = 'bonesHand' 400 t.upper_leg_mesh = 'bonesUpperLeg' 401 t.lower_leg_mesh = 'bonesLowerLeg' 402 t.toes_mesh = 'bonesToes' 403 bones_sounds = ['bones1', 'bones2', 'bones3'] 404 bones_hit_sounds = ['bones1', 'bones2', 'bones3'] 405 t.jump_sounds = bones_sounds 406 t.attack_sounds = bones_sounds 407 t.impact_sounds = bones_hit_sounds 408 t.death_sounds = ['bonesDeath'] 409 t.pickup_sounds = bones_sounds 410 t.fall_sounds = ['bonesFall'] 411 t.style = 'bones' 412 t.default_color = (0.6, 0.9, 1) 413 t.default_highlight = (0.6, 0.9, 1) 414 415 # Bear ################################### 416 t = Appearance('Bernard') 417 t.color_texture = 'bearColor' 418 t.color_mask_texture = 'bearColorMask' 419 t.icon_texture = 'bearIcon' 420 t.icon_mask_texture = 'bearIconColorMask' 421 t.head_mesh = 'bearHead' 422 t.torso_mesh = 'bearTorso' 423 t.pelvis_mesh = 'bearPelvis' 424 t.upper_arm_mesh = 'bearUpperArm' 425 t.forearm_mesh = 'bearForeArm' 426 t.hand_mesh = 'bearHand' 427 t.upper_leg_mesh = 'bearUpperLeg' 428 t.lower_leg_mesh = 'bearLowerLeg' 429 t.toes_mesh = 'bearToes' 430 bear_sounds = ['bear1', 'bear2', 'bear3', 'bear4'] 431 bear_hit_sounds = ['bearHit1', 'bearHit2'] 432 t.jump_sounds = bear_sounds 433 t.attack_sounds = bear_sounds 434 t.impact_sounds = bear_hit_sounds 435 t.death_sounds = ['bearDeath'] 436 t.pickup_sounds = bear_sounds 437 t.fall_sounds = ['bearFall'] 438 t.style = 'bear' 439 t.default_color = (0.7, 0.5, 0.0) 440 441 # Penguin ################################### 442 t = Appearance('Pascal') 443 t.color_texture = 'penguinColor' 444 t.color_mask_texture = 'penguinColorMask' 445 t.icon_texture = 'penguinIcon' 446 t.icon_mask_texture = 'penguinIconColorMask' 447 t.head_mesh = 'penguinHead' 448 t.torso_mesh = 'penguinTorso' 449 t.pelvis_mesh = 'penguinPelvis' 450 t.upper_arm_mesh = 'penguinUpperArm' 451 t.forearm_mesh = 'penguinForeArm' 452 t.hand_mesh = 'penguinHand' 453 t.upper_leg_mesh = 'penguinUpperLeg' 454 t.lower_leg_mesh = 'penguinLowerLeg' 455 t.toes_mesh = 'penguinToes' 456 penguin_sounds = ['penguin1', 'penguin2', 'penguin3', 'penguin4'] 457 penguin_hit_sounds = ['penguinHit1', 'penguinHit2'] 458 t.jump_sounds = penguin_sounds 459 t.attack_sounds = penguin_sounds 460 t.impact_sounds = penguin_hit_sounds 461 t.death_sounds = ['penguinDeath'] 462 t.pickup_sounds = penguin_sounds 463 t.fall_sounds = ['penguinFall'] 464 t.style = 'penguin' 465 t.default_color = (0.3, 0.5, 0.8) 466 t.default_highlight = (1, 0, 0) 467 468 # Ali ################################### 469 t = Appearance('Taobao Mascot') 470 t.color_texture = 'aliColor' 471 t.color_mask_texture = 'aliColorMask' 472 t.icon_texture = 'aliIcon' 473 t.icon_mask_texture = 'aliIconColorMask' 474 t.head_mesh = 'aliHead' 475 t.torso_mesh = 'aliTorso' 476 t.pelvis_mesh = 'aliPelvis' 477 t.upper_arm_mesh = 'aliUpperArm' 478 t.forearm_mesh = 'aliForeArm' 479 t.hand_mesh = 'aliHand' 480 t.upper_leg_mesh = 'aliUpperLeg' 481 t.lower_leg_mesh = 'aliLowerLeg' 482 t.toes_mesh = 'aliToes' 483 ali_sounds = ['ali1', 'ali2', 'ali3', 'ali4'] 484 ali_hit_sounds = ['aliHit1', 'aliHit2'] 485 t.jump_sounds = ali_sounds 486 t.attack_sounds = ali_sounds 487 t.impact_sounds = ali_hit_sounds 488 t.death_sounds = ['aliDeath'] 489 t.pickup_sounds = ali_sounds 490 t.fall_sounds = ['aliFall'] 491 t.style = 'ali' 492 t.default_color = (1, 0.5, 0) 493 t.default_highlight = (1, 1, 1) 494 495 # Cyborg ################################### 496 t = Appearance('B-9000') 497 t.color_texture = 'cyborgColor' 498 t.color_mask_texture = 'cyborgColorMask' 499 t.icon_texture = 'cyborgIcon' 500 t.icon_mask_texture = 'cyborgIconColorMask' 501 t.head_mesh = 'cyborgHead' 502 t.torso_mesh = 'cyborgTorso' 503 t.pelvis_mesh = 'cyborgPelvis' 504 t.upper_arm_mesh = 'cyborgUpperArm' 505 t.forearm_mesh = 'cyborgForeArm' 506 t.hand_mesh = 'cyborgHand' 507 t.upper_leg_mesh = 'cyborgUpperLeg' 508 t.lower_leg_mesh = 'cyborgLowerLeg' 509 t.toes_mesh = 'cyborgToes' 510 cyborg_sounds = ['cyborg1', 'cyborg2', 'cyborg3', 'cyborg4'] 511 cyborg_hit_sounds = ['cyborgHit1', 'cyborgHit2'] 512 t.jump_sounds = cyborg_sounds 513 t.attack_sounds = cyborg_sounds 514 t.impact_sounds = cyborg_hit_sounds 515 t.death_sounds = ['cyborgDeath'] 516 t.pickup_sounds = cyborg_sounds 517 t.fall_sounds = ['cyborgFall'] 518 t.style = 'cyborg' 519 t.default_color = (0.5, 0.5, 0.5) 520 t.default_highlight = (1, 0, 0) 521 522 # Agent ################################### 523 t = Appearance('Agent Johnson') 524 t.color_texture = 'agentColor' 525 t.color_mask_texture = 'agentColorMask' 526 t.icon_texture = 'agentIcon' 527 t.icon_mask_texture = 'agentIconColorMask' 528 t.head_mesh = 'agentHead' 529 t.torso_mesh = 'agentTorso' 530 t.pelvis_mesh = 'agentPelvis' 531 t.upper_arm_mesh = 'agentUpperArm' 532 t.forearm_mesh = 'agentForeArm' 533 t.hand_mesh = 'agentHand' 534 t.upper_leg_mesh = 'agentUpperLeg' 535 t.lower_leg_mesh = 'agentLowerLeg' 536 t.toes_mesh = 'agentToes' 537 agent_sounds = ['agent1', 'agent2', 'agent3', 'agent4'] 538 agent_hit_sounds = ['agentHit1', 'agentHit2'] 539 t.jump_sounds = agent_sounds 540 t.attack_sounds = agent_sounds 541 t.impact_sounds = agent_hit_sounds 542 t.death_sounds = ['agentDeath'] 543 t.pickup_sounds = agent_sounds 544 t.fall_sounds = ['agentFall'] 545 t.style = 'agent' 546 t.default_color = (0.3, 0.3, 0.33) 547 t.default_highlight = (1, 0.5, 0.3) 548 549 # Jumpsuit ################################### 550 t = Appearance('Lee') 551 t.color_texture = 'jumpsuitColor' 552 t.color_mask_texture = 'jumpsuitColorMask' 553 t.icon_texture = 'jumpsuitIcon' 554 t.icon_mask_texture = 'jumpsuitIconColorMask' 555 t.head_mesh = 'jumpsuitHead' 556 t.torso_mesh = 'jumpsuitTorso' 557 t.pelvis_mesh = 'jumpsuitPelvis' 558 t.upper_arm_mesh = 'jumpsuitUpperArm' 559 t.forearm_mesh = 'jumpsuitForeArm' 560 t.hand_mesh = 'jumpsuitHand' 561 t.upper_leg_mesh = 'jumpsuitUpperLeg' 562 t.lower_leg_mesh = 'jumpsuitLowerLeg' 563 t.toes_mesh = 'jumpsuitToes' 564 jumpsuit_sounds = ['jumpsuit1', 'jumpsuit2', 'jumpsuit3', 'jumpsuit4'] 565 jumpsuit_hit_sounds = ['jumpsuitHit1', 'jumpsuitHit2'] 566 t.jump_sounds = jumpsuit_sounds 567 t.attack_sounds = jumpsuit_sounds 568 t.impact_sounds = jumpsuit_hit_sounds 569 t.death_sounds = ['jumpsuitDeath'] 570 t.pickup_sounds = jumpsuit_sounds 571 t.fall_sounds = ['jumpsuitFall'] 572 t.style = 'spaz' 573 t.default_color = (0.3, 0.5, 0.8) 574 t.default_highlight = (1, 0, 0) 575 576 # ActionHero ################################### 577 t = Appearance('Todd McBurton') 578 t.color_texture = 'actionHeroColor' 579 t.color_mask_texture = 'actionHeroColorMask' 580 t.icon_texture = 'actionHeroIcon' 581 t.icon_mask_texture = 'actionHeroIconColorMask' 582 t.head_mesh = 'actionHeroHead' 583 t.torso_mesh = 'actionHeroTorso' 584 t.pelvis_mesh = 'actionHeroPelvis' 585 t.upper_arm_mesh = 'actionHeroUpperArm' 586 t.forearm_mesh = 'actionHeroForeArm' 587 t.hand_mesh = 'actionHeroHand' 588 t.upper_leg_mesh = 'actionHeroUpperLeg' 589 t.lower_leg_mesh = 'actionHeroLowerLeg' 590 t.toes_mesh = 'actionHeroToes' 591 action_hero_sounds = [ 592 'actionHero1', 593 'actionHero2', 594 'actionHero3', 595 'actionHero4', 596 ] 597 action_hero_hit_sounds = ['actionHeroHit1', 'actionHeroHit2'] 598 t.jump_sounds = action_hero_sounds 599 t.attack_sounds = action_hero_sounds 600 t.impact_sounds = action_hero_hit_sounds 601 t.death_sounds = ['actionHeroDeath'] 602 t.pickup_sounds = action_hero_sounds 603 t.fall_sounds = ['actionHeroFall'] 604 t.style = 'spaz' 605 t.default_color = (0.3, 0.5, 0.8) 606 t.default_highlight = (1, 0, 0) 607 608 # Assassin ################################### 609 t = Appearance('Zola') 610 t.color_texture = 'assassinColor' 611 t.color_mask_texture = 'assassinColorMask' 612 t.icon_texture = 'assassinIcon' 613 t.icon_mask_texture = 'assassinIconColorMask' 614 t.head_mesh = 'assassinHead' 615 t.torso_mesh = 'assassinTorso' 616 t.pelvis_mesh = 'assassinPelvis' 617 t.upper_arm_mesh = 'assassinUpperArm' 618 t.forearm_mesh = 'assassinForeArm' 619 t.hand_mesh = 'assassinHand' 620 t.upper_leg_mesh = 'assassinUpperLeg' 621 t.lower_leg_mesh = 'assassinLowerLeg' 622 t.toes_mesh = 'assassinToes' 623 assassin_sounds = ['assassin1', 'assassin2', 'assassin3', 'assassin4'] 624 assassin_hit_sounds = ['assassinHit1', 'assassinHit2'] 625 t.jump_sounds = assassin_sounds 626 t.attack_sounds = assassin_sounds 627 t.impact_sounds = assassin_hit_sounds 628 t.death_sounds = ['assassinDeath'] 629 t.pickup_sounds = assassin_sounds 630 t.fall_sounds = ['assassinFall'] 631 t.style = 'spaz' 632 t.default_color = (0.3, 0.5, 0.8) 633 t.default_highlight = (1, 0, 0) 634 635 # Wizard ################################### 636 t = Appearance('Grumbledorf') 637 t.color_texture = 'wizardColor' 638 t.color_mask_texture = 'wizardColorMask' 639 t.icon_texture = 'wizardIcon' 640 t.icon_mask_texture = 'wizardIconColorMask' 641 t.head_mesh = 'wizardHead' 642 t.torso_mesh = 'wizardTorso' 643 t.pelvis_mesh = 'wizardPelvis' 644 t.upper_arm_mesh = 'wizardUpperArm' 645 t.forearm_mesh = 'wizardForeArm' 646 t.hand_mesh = 'wizardHand' 647 t.upper_leg_mesh = 'wizardUpperLeg' 648 t.lower_leg_mesh = 'wizardLowerLeg' 649 t.toes_mesh = 'wizardToes' 650 wizard_sounds = ['wizard1', 'wizard2', 'wizard3', 'wizard4'] 651 wizard_hit_sounds = ['wizardHit1', 'wizardHit2'] 652 t.jump_sounds = wizard_sounds 653 t.attack_sounds = wizard_sounds 654 t.impact_sounds = wizard_hit_sounds 655 t.death_sounds = ['wizardDeath'] 656 t.pickup_sounds = wizard_sounds 657 t.fall_sounds = ['wizardFall'] 658 t.style = 'spaz' 659 t.default_color = (0.2, 0.4, 1.0) 660 t.default_highlight = (0.06, 0.15, 0.4) 661 662 # Cowboy ################################### 663 t = Appearance('Butch') 664 t.color_texture = 'cowboyColor' 665 t.color_mask_texture = 'cowboyColorMask' 666 t.icon_texture = 'cowboyIcon' 667 t.icon_mask_texture = 'cowboyIconColorMask' 668 t.head_mesh = 'cowboyHead' 669 t.torso_mesh = 'cowboyTorso' 670 t.pelvis_mesh = 'cowboyPelvis' 671 t.upper_arm_mesh = 'cowboyUpperArm' 672 t.forearm_mesh = 'cowboyForeArm' 673 t.hand_mesh = 'cowboyHand' 674 t.upper_leg_mesh = 'cowboyUpperLeg' 675 t.lower_leg_mesh = 'cowboyLowerLeg' 676 t.toes_mesh = 'cowboyToes' 677 cowboy_sounds = ['cowboy1', 'cowboy2', 'cowboy3', 'cowboy4'] 678 cowboy_hit_sounds = ['cowboyHit1', 'cowboyHit2'] 679 t.jump_sounds = cowboy_sounds 680 t.attack_sounds = cowboy_sounds 681 t.impact_sounds = cowboy_hit_sounds 682 t.death_sounds = ['cowboyDeath'] 683 t.pickup_sounds = cowboy_sounds 684 t.fall_sounds = ['cowboyFall'] 685 t.style = 'spaz' 686 t.default_color = (0.3, 0.5, 0.8) 687 t.default_highlight = (1, 0, 0) 688 689 # Witch ################################### 690 t = Appearance('Witch') 691 t.color_texture = 'witchColor' 692 t.color_mask_texture = 'witchColorMask' 693 t.icon_texture = 'witchIcon' 694 t.icon_mask_texture = 'witchIconColorMask' 695 t.head_mesh = 'witchHead' 696 t.torso_mesh = 'witchTorso' 697 t.pelvis_mesh = 'witchPelvis' 698 t.upper_arm_mesh = 'witchUpperArm' 699 t.forearm_mesh = 'witchForeArm' 700 t.hand_mesh = 'witchHand' 701 t.upper_leg_mesh = 'witchUpperLeg' 702 t.lower_leg_mesh = 'witchLowerLeg' 703 t.toes_mesh = 'witchToes' 704 witch_sounds = ['witch1', 'witch2', 'witch3', 'witch4'] 705 witch_hit_sounds = ['witchHit1', 'witchHit2'] 706 t.jump_sounds = witch_sounds 707 t.attack_sounds = witch_sounds 708 t.impact_sounds = witch_hit_sounds 709 t.death_sounds = ['witchDeath'] 710 t.pickup_sounds = witch_sounds 711 t.fall_sounds = ['witchFall'] 712 t.style = 'spaz' 713 t.default_color = (0.3, 0.5, 0.8) 714 t.default_highlight = (1, 0, 0) 715 716 # Warrior ################################### 717 t = Appearance('Warrior') 718 t.color_texture = 'warriorColor' 719 t.color_mask_texture = 'warriorColorMask' 720 t.icon_texture = 'warriorIcon' 721 t.icon_mask_texture = 'warriorIconColorMask' 722 t.head_mesh = 'warriorHead' 723 t.torso_mesh = 'warriorTorso' 724 t.pelvis_mesh = 'warriorPelvis' 725 t.upper_arm_mesh = 'warriorUpperArm' 726 t.forearm_mesh = 'warriorForeArm' 727 t.hand_mesh = 'warriorHand' 728 t.upper_leg_mesh = 'warriorUpperLeg' 729 t.lower_leg_mesh = 'warriorLowerLeg' 730 t.toes_mesh = 'warriorToes' 731 warrior_sounds = ['warrior1', 'warrior2', 'warrior3', 'warrior4'] 732 warrior_hit_sounds = ['warriorHit1', 'warriorHit2'] 733 t.jump_sounds = warrior_sounds 734 t.attack_sounds = warrior_sounds 735 t.impact_sounds = warrior_hit_sounds 736 t.death_sounds = ['warriorDeath'] 737 t.pickup_sounds = warrior_sounds 738 t.fall_sounds = ['warriorFall'] 739 t.style = 'spaz' 740 t.default_color = (0.3, 0.5, 0.8) 741 t.default_highlight = (1, 0, 0) 742 743 # Superhero ################################### 744 t = Appearance('Middle-Man') 745 t.color_texture = 'superheroColor' 746 t.color_mask_texture = 'superheroColorMask' 747 t.icon_texture = 'superheroIcon' 748 t.icon_mask_texture = 'superheroIconColorMask' 749 t.head_mesh = 'superheroHead' 750 t.torso_mesh = 'superheroTorso' 751 t.pelvis_mesh = 'superheroPelvis' 752 t.upper_arm_mesh = 'superheroUpperArm' 753 t.forearm_mesh = 'superheroForeArm' 754 t.hand_mesh = 'superheroHand' 755 t.upper_leg_mesh = 'superheroUpperLeg' 756 t.lower_leg_mesh = 'superheroLowerLeg' 757 t.toes_mesh = 'superheroToes' 758 superhero_sounds = ['superhero1', 'superhero2', 'superhero3', 'superhero4'] 759 superhero_hit_sounds = ['superheroHit1', 'superheroHit2'] 760 t.jump_sounds = superhero_sounds 761 t.attack_sounds = superhero_sounds 762 t.impact_sounds = superhero_hit_sounds 763 t.death_sounds = ['superheroDeath'] 764 t.pickup_sounds = superhero_sounds 765 t.fall_sounds = ['superheroFall'] 766 t.style = 'spaz' 767 t.default_color = (0.3, 0.5, 0.8) 768 t.default_highlight = (1, 0, 0) 769 770 # Alien ################################### 771 t = Appearance('Alien') 772 t.color_texture = 'alienColor' 773 t.color_mask_texture = 'alienColorMask' 774 t.icon_texture = 'alienIcon' 775 t.icon_mask_texture = 'alienIconColorMask' 776 t.head_mesh = 'alienHead' 777 t.torso_mesh = 'alienTorso' 778 t.pelvis_mesh = 'alienPelvis' 779 t.upper_arm_mesh = 'alienUpperArm' 780 t.forearm_mesh = 'alienForeArm' 781 t.hand_mesh = 'alienHand' 782 t.upper_leg_mesh = 'alienUpperLeg' 783 t.lower_leg_mesh = 'alienLowerLeg' 784 t.toes_mesh = 'alienToes' 785 alien_sounds = ['alien1', 'alien2', 'alien3', 'alien4'] 786 alien_hit_sounds = ['alienHit1', 'alienHit2'] 787 t.jump_sounds = alien_sounds 788 t.attack_sounds = alien_sounds 789 t.impact_sounds = alien_hit_sounds 790 t.death_sounds = ['alienDeath'] 791 t.pickup_sounds = alien_sounds 792 t.fall_sounds = ['alienFall'] 793 t.style = 'spaz' 794 t.default_color = (0.3, 0.5, 0.8) 795 t.default_highlight = (1, 0, 0) 796 797 # OldLady ################################### 798 t = Appearance('OldLady') 799 t.color_texture = 'oldLadyColor' 800 t.color_mask_texture = 'oldLadyColorMask' 801 t.icon_texture = 'oldLadyIcon' 802 t.icon_mask_texture = 'oldLadyIconColorMask' 803 t.head_mesh = 'oldLadyHead' 804 t.torso_mesh = 'oldLadyTorso' 805 t.pelvis_mesh = 'oldLadyPelvis' 806 t.upper_arm_mesh = 'oldLadyUpperArm' 807 t.forearm_mesh = 'oldLadyForeArm' 808 t.hand_mesh = 'oldLadyHand' 809 t.upper_leg_mesh = 'oldLadyUpperLeg' 810 t.lower_leg_mesh = 'oldLadyLowerLeg' 811 t.toes_mesh = 'oldLadyToes' 812 old_lady_sounds = ['oldLady1', 'oldLady2', 'oldLady3', 'oldLady4'] 813 old_lady_hit_sounds = ['oldLadyHit1', 'oldLadyHit2'] 814 t.jump_sounds = old_lady_sounds 815 t.attack_sounds = old_lady_sounds 816 t.impact_sounds = old_lady_hit_sounds 817 t.death_sounds = ['oldLadyDeath'] 818 t.pickup_sounds = old_lady_sounds 819 t.fall_sounds = ['oldLadyFall'] 820 t.style = 'spaz' 821 t.default_color = (0.3, 0.5, 0.8) 822 t.default_highlight = (1, 0, 0) 823 824 # Gladiator ################################### 825 t = Appearance('Gladiator') 826 t.color_texture = 'gladiatorColor' 827 t.color_mask_texture = 'gladiatorColorMask' 828 t.icon_texture = 'gladiatorIcon' 829 t.icon_mask_texture = 'gladiatorIconColorMask' 830 t.head_mesh = 'gladiatorHead' 831 t.torso_mesh = 'gladiatorTorso' 832 t.pelvis_mesh = 'gladiatorPelvis' 833 t.upper_arm_mesh = 'gladiatorUpperArm' 834 t.forearm_mesh = 'gladiatorForeArm' 835 t.hand_mesh = 'gladiatorHand' 836 t.upper_leg_mesh = 'gladiatorUpperLeg' 837 t.lower_leg_mesh = 'gladiatorLowerLeg' 838 t.toes_mesh = 'gladiatorToes' 839 gladiator_sounds = ['gladiator1', 'gladiator2', 'gladiator3', 'gladiator4'] 840 gladiator_hit_sounds = ['gladiatorHit1', 'gladiatorHit2'] 841 t.jump_sounds = gladiator_sounds 842 t.attack_sounds = gladiator_sounds 843 t.impact_sounds = gladiator_hit_sounds 844 t.death_sounds = ['gladiatorDeath'] 845 t.pickup_sounds = gladiator_sounds 846 t.fall_sounds = ['gladiatorFall'] 847 t.style = 'spaz' 848 t.default_color = (0.3, 0.5, 0.8) 849 t.default_highlight = (1, 0, 0) 850 851 # Wrestler ################################### 852 t = Appearance('Wrestler') 853 t.color_texture = 'wrestlerColor' 854 t.color_mask_texture = 'wrestlerColorMask' 855 t.icon_texture = 'wrestlerIcon' 856 t.icon_mask_texture = 'wrestlerIconColorMask' 857 t.head_mesh = 'wrestlerHead' 858 t.torso_mesh = 'wrestlerTorso' 859 t.pelvis_mesh = 'wrestlerPelvis' 860 t.upper_arm_mesh = 'wrestlerUpperArm' 861 t.forearm_mesh = 'wrestlerForeArm' 862 t.hand_mesh = 'wrestlerHand' 863 t.upper_leg_mesh = 'wrestlerUpperLeg' 864 t.lower_leg_mesh = 'wrestlerLowerLeg' 865 t.toes_mesh = 'wrestlerToes' 866 wrestler_sounds = ['wrestler1', 'wrestler2', 'wrestler3', 'wrestler4'] 867 wrestler_hit_sounds = ['wrestlerHit1', 'wrestlerHit2'] 868 t.jump_sounds = wrestler_sounds 869 t.attack_sounds = wrestler_sounds 870 t.impact_sounds = wrestler_hit_sounds 871 t.death_sounds = ['wrestlerDeath'] 872 t.pickup_sounds = wrestler_sounds 873 t.fall_sounds = ['wrestlerFall'] 874 t.style = 'spaz' 875 t.default_color = (0.3, 0.5, 0.8) 876 t.default_highlight = (1, 0, 0) 877 878 # OperaSinger ################################### 879 t = Appearance('Gretel') 880 t.color_texture = 'operaSingerColor' 881 t.color_mask_texture = 'operaSingerColorMask' 882 t.icon_texture = 'operaSingerIcon' 883 t.icon_mask_texture = 'operaSingerIconColorMask' 884 t.head_mesh = 'operaSingerHead' 885 t.torso_mesh = 'operaSingerTorso' 886 t.pelvis_mesh = 'operaSingerPelvis' 887 t.upper_arm_mesh = 'operaSingerUpperArm' 888 t.forearm_mesh = 'operaSingerForeArm' 889 t.hand_mesh = 'operaSingerHand' 890 t.upper_leg_mesh = 'operaSingerUpperLeg' 891 t.lower_leg_mesh = 'operaSingerLowerLeg' 892 t.toes_mesh = 'operaSingerToes' 893 opera_singer_sounds = [ 894 'operaSinger1', 895 'operaSinger2', 896 'operaSinger3', 897 'operaSinger4', 898 ] 899 opera_singer_hit_sounds = ['operaSingerHit1', 'operaSingerHit2'] 900 t.jump_sounds = opera_singer_sounds 901 t.attack_sounds = opera_singer_sounds 902 t.impact_sounds = opera_singer_hit_sounds 903 t.death_sounds = ['operaSingerDeath'] 904 t.pickup_sounds = opera_singer_sounds 905 t.fall_sounds = ['operaSingerFall'] 906 t.style = 'spaz' 907 t.default_color = (0.3, 0.5, 0.8) 908 t.default_highlight = (1, 0, 0) 909 910 # Pixie ################################### 911 t = Appearance('Pixel') 912 t.color_texture = 'pixieColor' 913 t.color_mask_texture = 'pixieColorMask' 914 t.icon_texture = 'pixieIcon' 915 t.icon_mask_texture = 'pixieIconColorMask' 916 t.head_mesh = 'pixieHead' 917 t.torso_mesh = 'pixieTorso' 918 t.pelvis_mesh = 'pixiePelvis' 919 t.upper_arm_mesh = 'pixieUpperArm' 920 t.forearm_mesh = 'pixieForeArm' 921 t.hand_mesh = 'pixieHand' 922 t.upper_leg_mesh = 'pixieUpperLeg' 923 t.lower_leg_mesh = 'pixieLowerLeg' 924 t.toes_mesh = 'pixieToes' 925 pixie_sounds = ['pixie1', 'pixie2', 'pixie3', 'pixie4'] 926 pixie_hit_sounds = ['pixieHit1', 'pixieHit2'] 927 t.jump_sounds = pixie_sounds 928 t.attack_sounds = pixie_sounds 929 t.impact_sounds = pixie_hit_sounds 930 t.death_sounds = ['pixieDeath'] 931 t.pickup_sounds = pixie_sounds 932 t.fall_sounds = ['pixieFall'] 933 t.style = 'pixie' 934 t.default_color = (0, 1, 0.7) 935 t.default_highlight = (0.65, 0.35, 0.75) 936 937 # Robot ################################### 938 t = Appearance('Robot') 939 t.color_texture = 'robotColor' 940 t.color_mask_texture = 'robotColorMask' 941 t.icon_texture = 'robotIcon' 942 t.icon_mask_texture = 'robotIconColorMask' 943 t.head_mesh = 'robotHead' 944 t.torso_mesh = 'robotTorso' 945 t.pelvis_mesh = 'robotPelvis' 946 t.upper_arm_mesh = 'robotUpperArm' 947 t.forearm_mesh = 'robotForeArm' 948 t.hand_mesh = 'robotHand' 949 t.upper_leg_mesh = 'robotUpperLeg' 950 t.lower_leg_mesh = 'robotLowerLeg' 951 t.toes_mesh = 'robotToes' 952 robot_sounds = ['robot1', 'robot2', 'robot3', 'robot4'] 953 robot_hit_sounds = ['robotHit1', 'robotHit2'] 954 t.jump_sounds = robot_sounds 955 t.attack_sounds = robot_sounds 956 t.impact_sounds = robot_hit_sounds 957 t.death_sounds = ['robotDeath'] 958 t.pickup_sounds = robot_sounds 959 t.fall_sounds = ['robotFall'] 960 t.style = 'spaz' 961 t.default_color = (0.3, 0.5, 0.8) 962 t.default_highlight = (1, 0, 0) 963 964 # Bunny ################################### 965 t = Appearance('Easter Bunny') 966 t.color_texture = 'bunnyColor' 967 t.color_mask_texture = 'bunnyColorMask' 968 t.icon_texture = 'bunnyIcon' 969 t.icon_mask_texture = 'bunnyIconColorMask' 970 t.head_mesh = 'bunnyHead' 971 t.torso_mesh = 'bunnyTorso' 972 t.pelvis_mesh = 'bunnyPelvis' 973 t.upper_arm_mesh = 'bunnyUpperArm' 974 t.forearm_mesh = 'bunnyForeArm' 975 t.hand_mesh = 'bunnyHand' 976 t.upper_leg_mesh = 'bunnyUpperLeg' 977 t.lower_leg_mesh = 'bunnyLowerLeg' 978 t.toes_mesh = 'bunnyToes' 979 bunny_sounds = ['bunny1', 'bunny2', 'bunny3', 'bunny4'] 980 bunny_hit_sounds = ['bunnyHit1', 'bunnyHit2'] 981 t.jump_sounds = ['bunnyJump'] 982 t.attack_sounds = bunny_sounds 983 t.impact_sounds = bunny_hit_sounds 984 t.death_sounds = ['bunnyDeath'] 985 t.pickup_sounds = bunny_sounds 986 t.fall_sounds = ['bunnyFall'] 987 t.style = 'bunny' 988 t.default_color = (1, 1, 1) 989 t.default_highlight = (1, 0.5, 0.5)
def
get_appearances(include_locked: bool = False) -> list[str]:
10def get_appearances(include_locked: bool = False) -> list[str]: 11 """Get the list of available spaz appearances.""" 12 # pylint: disable=too-many-statements 13 # pylint: disable=too-many-branches 14 plus = bs.app.plus 15 assert plus is not None 16 17 assert bs.app.classic is not None 18 get_purchased = plus.get_purchased 19 disallowed = [] 20 if not include_locked: 21 # Hmm yeah this'll be tough to hack... 22 if not get_purchased('characters.santa'): 23 disallowed.append('Santa Claus') 24 if not get_purchased('characters.frosty'): 25 disallowed.append('Frosty') 26 if not get_purchased('characters.bones'): 27 disallowed.append('Bones') 28 if not get_purchased('characters.bernard'): 29 disallowed.append('Bernard') 30 if not get_purchased('characters.pixie'): 31 disallowed.append('Pixel') 32 if not get_purchased('characters.pascal'): 33 disallowed.append('Pascal') 34 if not get_purchased('characters.actionhero'): 35 disallowed.append('Todd McBurton') 36 if not get_purchased('characters.taobaomascot'): 37 disallowed.append('Taobao Mascot') 38 if not get_purchased('characters.agent'): 39 disallowed.append('Agent Johnson') 40 if not get_purchased('characters.jumpsuit'): 41 disallowed.append('Lee') 42 if not get_purchased('characters.assassin'): 43 disallowed.append('Zola') 44 if not get_purchased('characters.wizard'): 45 disallowed.append('Grumbledorf') 46 if not get_purchased('characters.cowboy'): 47 disallowed.append('Butch') 48 if not get_purchased('characters.witch'): 49 disallowed.append('Witch') 50 if not get_purchased('characters.warrior'): 51 disallowed.append('Warrior') 52 if not get_purchased('characters.superhero'): 53 disallowed.append('Middle-Man') 54 if not get_purchased('characters.alien'): 55 disallowed.append('Alien') 56 if not get_purchased('characters.oldlady'): 57 disallowed.append('OldLady') 58 if not get_purchased('characters.gladiator'): 59 disallowed.append('Gladiator') 60 if not get_purchased('characters.wrestler'): 61 disallowed.append('Wrestler') 62 if not get_purchased('characters.operasinger'): 63 disallowed.append('Gretel') 64 if not get_purchased('characters.robot'): 65 disallowed.append('Robot') 66 if not get_purchased('characters.cyborg'): 67 disallowed.append('B-9000') 68 if not get_purchased('characters.bunny'): 69 disallowed.append('Easter Bunny') 70 if not get_purchased('characters.kronk'): 71 disallowed.append('Kronk') 72 if not get_purchased('characters.zoe'): 73 disallowed.append('Zoe') 74 if not get_purchased('characters.jackmorgan'): 75 disallowed.append('Jack Morgan') 76 if not get_purchased('characters.mel'): 77 disallowed.append('Mel') 78 if not get_purchased('characters.snakeshadow'): 79 disallowed.append('Snake Shadow') 80 return [ 81 s 82 for s in list(bs.app.classic.spaz_appearances.keys()) 83 if s not in disallowed 84 ]
Get the list of available spaz appearances.
class
Appearance:
87class Appearance: 88 """Create and fill out one of these suckers to define a spaz appearance.""" 89 90 def __init__(self, name: str): 91 assert bs.app.classic is not None 92 self.name = name 93 if self.name in bs.app.classic.spaz_appearances: 94 raise RuntimeError( 95 f'spaz appearance name "{self.name}" already exists.' 96 ) 97 bs.app.classic.spaz_appearances[self.name] = self 98 self.color_texture = '' 99 self.color_mask_texture = '' 100 self.icon_texture = '' 101 self.icon_mask_texture = '' 102 self.head_mesh = '' 103 self.torso_mesh = '' 104 self.pelvis_mesh = '' 105 self.upper_arm_mesh = '' 106 self.forearm_mesh = '' 107 self.hand_mesh = '' 108 self.upper_leg_mesh = '' 109 self.lower_leg_mesh = '' 110 self.toes_mesh = '' 111 self.jump_sounds: list[str] = [] 112 self.attack_sounds: list[str] = [] 113 self.impact_sounds: list[str] = [] 114 self.death_sounds: list[str] = [] 115 self.pickup_sounds: list[str] = [] 116 self.fall_sounds: list[str] = [] 117 self.style = 'spaz' 118 self.default_color: tuple[float, float, float] | None = None 119 self.default_highlight: tuple[float, float, float] | None = None
Create and fill out one of these suckers to define a spaz appearance.
Appearance(name: str)
90 def __init__(self, name: str): 91 assert bs.app.classic is not None 92 self.name = name 93 if self.name in bs.app.classic.spaz_appearances: 94 raise RuntimeError( 95 f'spaz appearance name "{self.name}" already exists.' 96 ) 97 bs.app.classic.spaz_appearances[self.name] = self 98 self.color_texture = '' 99 self.color_mask_texture = '' 100 self.icon_texture = '' 101 self.icon_mask_texture = '' 102 self.head_mesh = '' 103 self.torso_mesh = '' 104 self.pelvis_mesh = '' 105 self.upper_arm_mesh = '' 106 self.forearm_mesh = '' 107 self.hand_mesh = '' 108 self.upper_leg_mesh = '' 109 self.lower_leg_mesh = '' 110 self.toes_mesh = '' 111 self.jump_sounds: list[str] = [] 112 self.attack_sounds: list[str] = [] 113 self.impact_sounds: list[str] = [] 114 self.death_sounds: list[str] = [] 115 self.pickup_sounds: list[str] = [] 116 self.fall_sounds: list[str] = [] 117 self.style = 'spaz' 118 self.default_color: tuple[float, float, float] | None = None 119 self.default_highlight: tuple[float, float, float] | None = None
def
register_appearances() -> None:
122def register_appearances() -> None: 123 """Register our builtin spaz appearances.""" 124 125 # This is quite ugly but will be going away so not worth cleaning up. 126 # pylint: disable=invalid-name 127 # pylint: disable=too-many-locals 128 # pylint: disable=too-many-statements 129 130 # Spaz ####################################### 131 t = Appearance('Spaz') 132 t.color_texture = 'neoSpazColor' 133 t.color_mask_texture = 'neoSpazColorMask' 134 t.icon_texture = 'neoSpazIcon' 135 t.icon_mask_texture = 'neoSpazIconColorMask' 136 t.head_mesh = 'neoSpazHead' 137 t.torso_mesh = 'neoSpazTorso' 138 t.pelvis_mesh = 'neoSpazPelvis' 139 t.upper_arm_mesh = 'neoSpazUpperArm' 140 t.forearm_mesh = 'neoSpazForeArm' 141 t.hand_mesh = 'neoSpazHand' 142 t.upper_leg_mesh = 'neoSpazUpperLeg' 143 t.lower_leg_mesh = 'neoSpazLowerLeg' 144 t.toes_mesh = 'neoSpazToes' 145 t.jump_sounds = ['spazJump01', 'spazJump02', 'spazJump03', 'spazJump04'] 146 t.attack_sounds = [ 147 'spazAttack01', 148 'spazAttack02', 149 'spazAttack03', 150 'spazAttack04', 151 ] 152 t.impact_sounds = [ 153 'spazImpact01', 154 'spazImpact02', 155 'spazImpact03', 156 'spazImpact04', 157 ] 158 t.death_sounds = ['spazDeath01'] 159 t.pickup_sounds = ['spazPickup01'] 160 t.fall_sounds = ['spazFall01'] 161 t.style = 'spaz' 162 163 # Zoe ##################################### 164 t = Appearance('Zoe') 165 t.color_texture = 'zoeColor' 166 t.color_mask_texture = 'zoeColorMask' 167 t.icon_texture = 'zoeIcon' 168 t.icon_mask_texture = 'zoeIconColorMask' 169 t.head_mesh = 'zoeHead' 170 t.torso_mesh = 'zoeTorso' 171 t.pelvis_mesh = 'zoePelvis' 172 t.upper_arm_mesh = 'zoeUpperArm' 173 t.forearm_mesh = 'zoeForeArm' 174 t.hand_mesh = 'zoeHand' 175 t.upper_leg_mesh = 'zoeUpperLeg' 176 t.lower_leg_mesh = 'zoeLowerLeg' 177 t.toes_mesh = 'zoeToes' 178 t.jump_sounds = ['zoeJump01', 'zoeJump02', 'zoeJump03'] 179 t.attack_sounds = [ 180 'zoeAttack01', 181 'zoeAttack02', 182 'zoeAttack03', 183 'zoeAttack04', 184 ] 185 t.impact_sounds = [ 186 'zoeImpact01', 187 'zoeImpact02', 188 'zoeImpact03', 189 'zoeImpact04', 190 ] 191 t.death_sounds = ['zoeDeath01'] 192 t.pickup_sounds = ['zoePickup01'] 193 t.fall_sounds = ['zoeFall01'] 194 t.style = 'female' 195 t.default_color = (0.6, 0.6, 0.6) 196 t.default_highlight = (0, 1, 0) 197 198 # Ninja ########################################## 199 t = Appearance('Snake Shadow') 200 t.color_texture = 'ninjaColor' 201 t.color_mask_texture = 'ninjaColorMask' 202 t.icon_texture = 'ninjaIcon' 203 t.icon_mask_texture = 'ninjaIconColorMask' 204 t.head_mesh = 'ninjaHead' 205 t.torso_mesh = 'ninjaTorso' 206 t.pelvis_mesh = 'ninjaPelvis' 207 t.upper_arm_mesh = 'ninjaUpperArm' 208 t.forearm_mesh = 'ninjaForeArm' 209 t.hand_mesh = 'ninjaHand' 210 t.upper_leg_mesh = 'ninjaUpperLeg' 211 t.lower_leg_mesh = 'ninjaLowerLeg' 212 t.toes_mesh = 'ninjaToes' 213 ninja_attacks = ['ninjaAttack' + str(i + 1) + '' for i in range(7)] 214 ninja_hits = ['ninjaHit' + str(i + 1) + '' for i in range(8)] 215 ninja_jumps = ['ninjaAttack' + str(i + 1) + '' for i in range(7)] 216 t.jump_sounds = ninja_jumps 217 t.attack_sounds = ninja_attacks 218 t.impact_sounds = ninja_hits 219 t.death_sounds = ['ninjaDeath1'] 220 t.pickup_sounds = ninja_attacks 221 t.fall_sounds = ['ninjaFall1'] 222 t.style = 'ninja' 223 t.default_color = (1, 1, 1) 224 t.default_highlight = (0.55, 0.8, 0.55) 225 226 # Barbarian ##################################### 227 t = Appearance('Kronk') 228 t.color_texture = 'kronk' 229 t.color_mask_texture = 'kronkColorMask' 230 t.icon_texture = 'kronkIcon' 231 t.icon_mask_texture = 'kronkIconColorMask' 232 t.head_mesh = 'kronkHead' 233 t.torso_mesh = 'kronkTorso' 234 t.pelvis_mesh = 'kronkPelvis' 235 t.upper_arm_mesh = 'kronkUpperArm' 236 t.forearm_mesh = 'kronkForeArm' 237 t.hand_mesh = 'kronkHand' 238 t.upper_leg_mesh = 'kronkUpperLeg' 239 t.lower_leg_mesh = 'kronkLowerLeg' 240 t.toes_mesh = 'kronkToes' 241 kronk_sounds = [ 242 'kronk1', 243 'kronk2', 244 'kronk3', 245 'kronk4', 246 'kronk5', 247 'kronk6', 248 'kronk7', 249 'kronk8', 250 'kronk9', 251 'kronk10', 252 ] 253 t.jump_sounds = kronk_sounds 254 t.attack_sounds = kronk_sounds 255 t.impact_sounds = kronk_sounds 256 t.death_sounds = ['kronkDeath'] 257 t.pickup_sounds = kronk_sounds 258 t.fall_sounds = ['kronkFall'] 259 t.style = 'kronk' 260 t.default_color = (0.4, 0.5, 0.4) 261 t.default_highlight = (1, 0.5, 0.3) 262 263 # Chef ########################################### 264 t = Appearance('Mel') 265 t.color_texture = 'melColor' 266 t.color_mask_texture = 'melColorMask' 267 t.icon_texture = 'melIcon' 268 t.icon_mask_texture = 'melIconColorMask' 269 t.head_mesh = 'melHead' 270 t.torso_mesh = 'melTorso' 271 t.pelvis_mesh = 'kronkPelvis' 272 t.upper_arm_mesh = 'melUpperArm' 273 t.forearm_mesh = 'melForeArm' 274 t.hand_mesh = 'melHand' 275 t.upper_leg_mesh = 'melUpperLeg' 276 t.lower_leg_mesh = 'melLowerLeg' 277 t.toes_mesh = 'melToes' 278 mel_sounds = [ 279 'mel01', 280 'mel02', 281 'mel03', 282 'mel04', 283 'mel05', 284 'mel06', 285 'mel07', 286 'mel08', 287 'mel09', 288 'mel10', 289 ] 290 t.jump_sounds = mel_sounds 291 t.attack_sounds = mel_sounds 292 t.impact_sounds = mel_sounds 293 t.death_sounds = ['melDeath01'] 294 t.pickup_sounds = mel_sounds 295 t.fall_sounds = ['melFall01'] 296 t.style = 'mel' 297 t.default_color = (1, 1, 1) 298 t.default_highlight = (0.1, 0.6, 0.1) 299 300 # Pirate ####################################### 301 t = Appearance('Jack Morgan') 302 t.color_texture = 'jackColor' 303 t.color_mask_texture = 'jackColorMask' 304 t.icon_texture = 'jackIcon' 305 t.icon_mask_texture = 'jackIconColorMask' 306 t.head_mesh = 'jackHead' 307 t.torso_mesh = 'jackTorso' 308 t.pelvis_mesh = 'kronkPelvis' 309 t.upper_arm_mesh = 'jackUpperArm' 310 t.forearm_mesh = 'jackForeArm' 311 t.hand_mesh = 'jackHand' 312 t.upper_leg_mesh = 'jackUpperLeg' 313 t.lower_leg_mesh = 'jackLowerLeg' 314 t.toes_mesh = 'jackToes' 315 hit_sounds = [ 316 'jackHit01', 317 'jackHit02', 318 'jackHit03', 319 'jackHit04', 320 'jackHit05', 321 'jackHit06', 322 'jackHit07', 323 ] 324 sounds = ['jack01', 'jack02', 'jack03', 'jack04', 'jack05', 'jack06'] 325 t.jump_sounds = sounds 326 t.attack_sounds = sounds 327 t.impact_sounds = hit_sounds 328 t.death_sounds = ['jackDeath01'] 329 t.pickup_sounds = sounds 330 t.fall_sounds = ['jackFall01'] 331 t.style = 'pirate' 332 t.default_color = (1, 0.2, 0.1) 333 t.default_highlight = (1, 1, 0) 334 335 # Santa ###################################### 336 t = Appearance('Santa Claus') 337 t.color_texture = 'santaColor' 338 t.color_mask_texture = 'santaColorMask' 339 t.icon_texture = 'santaIcon' 340 t.icon_mask_texture = 'santaIconColorMask' 341 t.head_mesh = 'santaHead' 342 t.torso_mesh = 'santaTorso' 343 t.pelvis_mesh = 'kronkPelvis' 344 t.upper_arm_mesh = 'santaUpperArm' 345 t.forearm_mesh = 'santaForeArm' 346 t.hand_mesh = 'santaHand' 347 t.upper_leg_mesh = 'santaUpperLeg' 348 t.lower_leg_mesh = 'santaLowerLeg' 349 t.toes_mesh = 'santaToes' 350 hit_sounds = ['santaHit01', 'santaHit02', 'santaHit03', 'santaHit04'] 351 sounds = ['santa01', 'santa02', 'santa03', 'santa04', 'santa05'] 352 t.jump_sounds = sounds 353 t.attack_sounds = sounds 354 t.impact_sounds = hit_sounds 355 t.death_sounds = ['santaDeath'] 356 t.pickup_sounds = sounds 357 t.fall_sounds = ['santaFall'] 358 t.style = 'santa' 359 t.default_color = (1, 0, 0) 360 t.default_highlight = (1, 1, 1) 361 362 # Snowman ################################### 363 t = Appearance('Frosty') 364 t.color_texture = 'frostyColor' 365 t.color_mask_texture = 'frostyColorMask' 366 t.icon_texture = 'frostyIcon' 367 t.icon_mask_texture = 'frostyIconColorMask' 368 t.head_mesh = 'frostyHead' 369 t.torso_mesh = 'frostyTorso' 370 t.pelvis_mesh = 'frostyPelvis' 371 t.upper_arm_mesh = 'frostyUpperArm' 372 t.forearm_mesh = 'frostyForeArm' 373 t.hand_mesh = 'frostyHand' 374 t.upper_leg_mesh = 'frostyUpperLeg' 375 t.lower_leg_mesh = 'frostyLowerLeg' 376 t.toes_mesh = 'frostyToes' 377 frosty_sounds = ['frosty01', 'frosty02', 'frosty03', 'frosty04', 'frosty05'] 378 frosty_hit_sounds = ['frostyHit01', 'frostyHit02', 'frostyHit03'] 379 t.jump_sounds = frosty_sounds 380 t.attack_sounds = frosty_sounds 381 t.impact_sounds = frosty_hit_sounds 382 t.death_sounds = ['frostyDeath'] 383 t.pickup_sounds = frosty_sounds 384 t.fall_sounds = ['frostyFall'] 385 t.style = 'frosty' 386 t.default_color = (0.5, 0.5, 1) 387 t.default_highlight = (1, 0.5, 0) 388 389 # Skeleton ################################ 390 t = Appearance('Bones') 391 t.color_texture = 'bonesColor' 392 t.color_mask_texture = 'bonesColorMask' 393 t.icon_texture = 'bonesIcon' 394 t.icon_mask_texture = 'bonesIconColorMask' 395 t.head_mesh = 'bonesHead' 396 t.torso_mesh = 'bonesTorso' 397 t.pelvis_mesh = 'bonesPelvis' 398 t.upper_arm_mesh = 'bonesUpperArm' 399 t.forearm_mesh = 'bonesForeArm' 400 t.hand_mesh = 'bonesHand' 401 t.upper_leg_mesh = 'bonesUpperLeg' 402 t.lower_leg_mesh = 'bonesLowerLeg' 403 t.toes_mesh = 'bonesToes' 404 bones_sounds = ['bones1', 'bones2', 'bones3'] 405 bones_hit_sounds = ['bones1', 'bones2', 'bones3'] 406 t.jump_sounds = bones_sounds 407 t.attack_sounds = bones_sounds 408 t.impact_sounds = bones_hit_sounds 409 t.death_sounds = ['bonesDeath'] 410 t.pickup_sounds = bones_sounds 411 t.fall_sounds = ['bonesFall'] 412 t.style = 'bones' 413 t.default_color = (0.6, 0.9, 1) 414 t.default_highlight = (0.6, 0.9, 1) 415 416 # Bear ################################### 417 t = Appearance('Bernard') 418 t.color_texture = 'bearColor' 419 t.color_mask_texture = 'bearColorMask' 420 t.icon_texture = 'bearIcon' 421 t.icon_mask_texture = 'bearIconColorMask' 422 t.head_mesh = 'bearHead' 423 t.torso_mesh = 'bearTorso' 424 t.pelvis_mesh = 'bearPelvis' 425 t.upper_arm_mesh = 'bearUpperArm' 426 t.forearm_mesh = 'bearForeArm' 427 t.hand_mesh = 'bearHand' 428 t.upper_leg_mesh = 'bearUpperLeg' 429 t.lower_leg_mesh = 'bearLowerLeg' 430 t.toes_mesh = 'bearToes' 431 bear_sounds = ['bear1', 'bear2', 'bear3', 'bear4'] 432 bear_hit_sounds = ['bearHit1', 'bearHit2'] 433 t.jump_sounds = bear_sounds 434 t.attack_sounds = bear_sounds 435 t.impact_sounds = bear_hit_sounds 436 t.death_sounds = ['bearDeath'] 437 t.pickup_sounds = bear_sounds 438 t.fall_sounds = ['bearFall'] 439 t.style = 'bear' 440 t.default_color = (0.7, 0.5, 0.0) 441 442 # Penguin ################################### 443 t = Appearance('Pascal') 444 t.color_texture = 'penguinColor' 445 t.color_mask_texture = 'penguinColorMask' 446 t.icon_texture = 'penguinIcon' 447 t.icon_mask_texture = 'penguinIconColorMask' 448 t.head_mesh = 'penguinHead' 449 t.torso_mesh = 'penguinTorso' 450 t.pelvis_mesh = 'penguinPelvis' 451 t.upper_arm_mesh = 'penguinUpperArm' 452 t.forearm_mesh = 'penguinForeArm' 453 t.hand_mesh = 'penguinHand' 454 t.upper_leg_mesh = 'penguinUpperLeg' 455 t.lower_leg_mesh = 'penguinLowerLeg' 456 t.toes_mesh = 'penguinToes' 457 penguin_sounds = ['penguin1', 'penguin2', 'penguin3', 'penguin4'] 458 penguin_hit_sounds = ['penguinHit1', 'penguinHit2'] 459 t.jump_sounds = penguin_sounds 460 t.attack_sounds = penguin_sounds 461 t.impact_sounds = penguin_hit_sounds 462 t.death_sounds = ['penguinDeath'] 463 t.pickup_sounds = penguin_sounds 464 t.fall_sounds = ['penguinFall'] 465 t.style = 'penguin' 466 t.default_color = (0.3, 0.5, 0.8) 467 t.default_highlight = (1, 0, 0) 468 469 # Ali ################################### 470 t = Appearance('Taobao Mascot') 471 t.color_texture = 'aliColor' 472 t.color_mask_texture = 'aliColorMask' 473 t.icon_texture = 'aliIcon' 474 t.icon_mask_texture = 'aliIconColorMask' 475 t.head_mesh = 'aliHead' 476 t.torso_mesh = 'aliTorso' 477 t.pelvis_mesh = 'aliPelvis' 478 t.upper_arm_mesh = 'aliUpperArm' 479 t.forearm_mesh = 'aliForeArm' 480 t.hand_mesh = 'aliHand' 481 t.upper_leg_mesh = 'aliUpperLeg' 482 t.lower_leg_mesh = 'aliLowerLeg' 483 t.toes_mesh = 'aliToes' 484 ali_sounds = ['ali1', 'ali2', 'ali3', 'ali4'] 485 ali_hit_sounds = ['aliHit1', 'aliHit2'] 486 t.jump_sounds = ali_sounds 487 t.attack_sounds = ali_sounds 488 t.impact_sounds = ali_hit_sounds 489 t.death_sounds = ['aliDeath'] 490 t.pickup_sounds = ali_sounds 491 t.fall_sounds = ['aliFall'] 492 t.style = 'ali' 493 t.default_color = (1, 0.5, 0) 494 t.default_highlight = (1, 1, 1) 495 496 # Cyborg ################################### 497 t = Appearance('B-9000') 498 t.color_texture = 'cyborgColor' 499 t.color_mask_texture = 'cyborgColorMask' 500 t.icon_texture = 'cyborgIcon' 501 t.icon_mask_texture = 'cyborgIconColorMask' 502 t.head_mesh = 'cyborgHead' 503 t.torso_mesh = 'cyborgTorso' 504 t.pelvis_mesh = 'cyborgPelvis' 505 t.upper_arm_mesh = 'cyborgUpperArm' 506 t.forearm_mesh = 'cyborgForeArm' 507 t.hand_mesh = 'cyborgHand' 508 t.upper_leg_mesh = 'cyborgUpperLeg' 509 t.lower_leg_mesh = 'cyborgLowerLeg' 510 t.toes_mesh = 'cyborgToes' 511 cyborg_sounds = ['cyborg1', 'cyborg2', 'cyborg3', 'cyborg4'] 512 cyborg_hit_sounds = ['cyborgHit1', 'cyborgHit2'] 513 t.jump_sounds = cyborg_sounds 514 t.attack_sounds = cyborg_sounds 515 t.impact_sounds = cyborg_hit_sounds 516 t.death_sounds = ['cyborgDeath'] 517 t.pickup_sounds = cyborg_sounds 518 t.fall_sounds = ['cyborgFall'] 519 t.style = 'cyborg' 520 t.default_color = (0.5, 0.5, 0.5) 521 t.default_highlight = (1, 0, 0) 522 523 # Agent ################################### 524 t = Appearance('Agent Johnson') 525 t.color_texture = 'agentColor' 526 t.color_mask_texture = 'agentColorMask' 527 t.icon_texture = 'agentIcon' 528 t.icon_mask_texture = 'agentIconColorMask' 529 t.head_mesh = 'agentHead' 530 t.torso_mesh = 'agentTorso' 531 t.pelvis_mesh = 'agentPelvis' 532 t.upper_arm_mesh = 'agentUpperArm' 533 t.forearm_mesh = 'agentForeArm' 534 t.hand_mesh = 'agentHand' 535 t.upper_leg_mesh = 'agentUpperLeg' 536 t.lower_leg_mesh = 'agentLowerLeg' 537 t.toes_mesh = 'agentToes' 538 agent_sounds = ['agent1', 'agent2', 'agent3', 'agent4'] 539 agent_hit_sounds = ['agentHit1', 'agentHit2'] 540 t.jump_sounds = agent_sounds 541 t.attack_sounds = agent_sounds 542 t.impact_sounds = agent_hit_sounds 543 t.death_sounds = ['agentDeath'] 544 t.pickup_sounds = agent_sounds 545 t.fall_sounds = ['agentFall'] 546 t.style = 'agent' 547 t.default_color = (0.3, 0.3, 0.33) 548 t.default_highlight = (1, 0.5, 0.3) 549 550 # Jumpsuit ################################### 551 t = Appearance('Lee') 552 t.color_texture = 'jumpsuitColor' 553 t.color_mask_texture = 'jumpsuitColorMask' 554 t.icon_texture = 'jumpsuitIcon' 555 t.icon_mask_texture = 'jumpsuitIconColorMask' 556 t.head_mesh = 'jumpsuitHead' 557 t.torso_mesh = 'jumpsuitTorso' 558 t.pelvis_mesh = 'jumpsuitPelvis' 559 t.upper_arm_mesh = 'jumpsuitUpperArm' 560 t.forearm_mesh = 'jumpsuitForeArm' 561 t.hand_mesh = 'jumpsuitHand' 562 t.upper_leg_mesh = 'jumpsuitUpperLeg' 563 t.lower_leg_mesh = 'jumpsuitLowerLeg' 564 t.toes_mesh = 'jumpsuitToes' 565 jumpsuit_sounds = ['jumpsuit1', 'jumpsuit2', 'jumpsuit3', 'jumpsuit4'] 566 jumpsuit_hit_sounds = ['jumpsuitHit1', 'jumpsuitHit2'] 567 t.jump_sounds = jumpsuit_sounds 568 t.attack_sounds = jumpsuit_sounds 569 t.impact_sounds = jumpsuit_hit_sounds 570 t.death_sounds = ['jumpsuitDeath'] 571 t.pickup_sounds = jumpsuit_sounds 572 t.fall_sounds = ['jumpsuitFall'] 573 t.style = 'spaz' 574 t.default_color = (0.3, 0.5, 0.8) 575 t.default_highlight = (1, 0, 0) 576 577 # ActionHero ################################### 578 t = Appearance('Todd McBurton') 579 t.color_texture = 'actionHeroColor' 580 t.color_mask_texture = 'actionHeroColorMask' 581 t.icon_texture = 'actionHeroIcon' 582 t.icon_mask_texture = 'actionHeroIconColorMask' 583 t.head_mesh = 'actionHeroHead' 584 t.torso_mesh = 'actionHeroTorso' 585 t.pelvis_mesh = 'actionHeroPelvis' 586 t.upper_arm_mesh = 'actionHeroUpperArm' 587 t.forearm_mesh = 'actionHeroForeArm' 588 t.hand_mesh = 'actionHeroHand' 589 t.upper_leg_mesh = 'actionHeroUpperLeg' 590 t.lower_leg_mesh = 'actionHeroLowerLeg' 591 t.toes_mesh = 'actionHeroToes' 592 action_hero_sounds = [ 593 'actionHero1', 594 'actionHero2', 595 'actionHero3', 596 'actionHero4', 597 ] 598 action_hero_hit_sounds = ['actionHeroHit1', 'actionHeroHit2'] 599 t.jump_sounds = action_hero_sounds 600 t.attack_sounds = action_hero_sounds 601 t.impact_sounds = action_hero_hit_sounds 602 t.death_sounds = ['actionHeroDeath'] 603 t.pickup_sounds = action_hero_sounds 604 t.fall_sounds = ['actionHeroFall'] 605 t.style = 'spaz' 606 t.default_color = (0.3, 0.5, 0.8) 607 t.default_highlight = (1, 0, 0) 608 609 # Assassin ################################### 610 t = Appearance('Zola') 611 t.color_texture = 'assassinColor' 612 t.color_mask_texture = 'assassinColorMask' 613 t.icon_texture = 'assassinIcon' 614 t.icon_mask_texture = 'assassinIconColorMask' 615 t.head_mesh = 'assassinHead' 616 t.torso_mesh = 'assassinTorso' 617 t.pelvis_mesh = 'assassinPelvis' 618 t.upper_arm_mesh = 'assassinUpperArm' 619 t.forearm_mesh = 'assassinForeArm' 620 t.hand_mesh = 'assassinHand' 621 t.upper_leg_mesh = 'assassinUpperLeg' 622 t.lower_leg_mesh = 'assassinLowerLeg' 623 t.toes_mesh = 'assassinToes' 624 assassin_sounds = ['assassin1', 'assassin2', 'assassin3', 'assassin4'] 625 assassin_hit_sounds = ['assassinHit1', 'assassinHit2'] 626 t.jump_sounds = assassin_sounds 627 t.attack_sounds = assassin_sounds 628 t.impact_sounds = assassin_hit_sounds 629 t.death_sounds = ['assassinDeath'] 630 t.pickup_sounds = assassin_sounds 631 t.fall_sounds = ['assassinFall'] 632 t.style = 'spaz' 633 t.default_color = (0.3, 0.5, 0.8) 634 t.default_highlight = (1, 0, 0) 635 636 # Wizard ################################### 637 t = Appearance('Grumbledorf') 638 t.color_texture = 'wizardColor' 639 t.color_mask_texture = 'wizardColorMask' 640 t.icon_texture = 'wizardIcon' 641 t.icon_mask_texture = 'wizardIconColorMask' 642 t.head_mesh = 'wizardHead' 643 t.torso_mesh = 'wizardTorso' 644 t.pelvis_mesh = 'wizardPelvis' 645 t.upper_arm_mesh = 'wizardUpperArm' 646 t.forearm_mesh = 'wizardForeArm' 647 t.hand_mesh = 'wizardHand' 648 t.upper_leg_mesh = 'wizardUpperLeg' 649 t.lower_leg_mesh = 'wizardLowerLeg' 650 t.toes_mesh = 'wizardToes' 651 wizard_sounds = ['wizard1', 'wizard2', 'wizard3', 'wizard4'] 652 wizard_hit_sounds = ['wizardHit1', 'wizardHit2'] 653 t.jump_sounds = wizard_sounds 654 t.attack_sounds = wizard_sounds 655 t.impact_sounds = wizard_hit_sounds 656 t.death_sounds = ['wizardDeath'] 657 t.pickup_sounds = wizard_sounds 658 t.fall_sounds = ['wizardFall'] 659 t.style = 'spaz' 660 t.default_color = (0.2, 0.4, 1.0) 661 t.default_highlight = (0.06, 0.15, 0.4) 662 663 # Cowboy ################################### 664 t = Appearance('Butch') 665 t.color_texture = 'cowboyColor' 666 t.color_mask_texture = 'cowboyColorMask' 667 t.icon_texture = 'cowboyIcon' 668 t.icon_mask_texture = 'cowboyIconColorMask' 669 t.head_mesh = 'cowboyHead' 670 t.torso_mesh = 'cowboyTorso' 671 t.pelvis_mesh = 'cowboyPelvis' 672 t.upper_arm_mesh = 'cowboyUpperArm' 673 t.forearm_mesh = 'cowboyForeArm' 674 t.hand_mesh = 'cowboyHand' 675 t.upper_leg_mesh = 'cowboyUpperLeg' 676 t.lower_leg_mesh = 'cowboyLowerLeg' 677 t.toes_mesh = 'cowboyToes' 678 cowboy_sounds = ['cowboy1', 'cowboy2', 'cowboy3', 'cowboy4'] 679 cowboy_hit_sounds = ['cowboyHit1', 'cowboyHit2'] 680 t.jump_sounds = cowboy_sounds 681 t.attack_sounds = cowboy_sounds 682 t.impact_sounds = cowboy_hit_sounds 683 t.death_sounds = ['cowboyDeath'] 684 t.pickup_sounds = cowboy_sounds 685 t.fall_sounds = ['cowboyFall'] 686 t.style = 'spaz' 687 t.default_color = (0.3, 0.5, 0.8) 688 t.default_highlight = (1, 0, 0) 689 690 # Witch ################################### 691 t = Appearance('Witch') 692 t.color_texture = 'witchColor' 693 t.color_mask_texture = 'witchColorMask' 694 t.icon_texture = 'witchIcon' 695 t.icon_mask_texture = 'witchIconColorMask' 696 t.head_mesh = 'witchHead' 697 t.torso_mesh = 'witchTorso' 698 t.pelvis_mesh = 'witchPelvis' 699 t.upper_arm_mesh = 'witchUpperArm' 700 t.forearm_mesh = 'witchForeArm' 701 t.hand_mesh = 'witchHand' 702 t.upper_leg_mesh = 'witchUpperLeg' 703 t.lower_leg_mesh = 'witchLowerLeg' 704 t.toes_mesh = 'witchToes' 705 witch_sounds = ['witch1', 'witch2', 'witch3', 'witch4'] 706 witch_hit_sounds = ['witchHit1', 'witchHit2'] 707 t.jump_sounds = witch_sounds 708 t.attack_sounds = witch_sounds 709 t.impact_sounds = witch_hit_sounds 710 t.death_sounds = ['witchDeath'] 711 t.pickup_sounds = witch_sounds 712 t.fall_sounds = ['witchFall'] 713 t.style = 'spaz' 714 t.default_color = (0.3, 0.5, 0.8) 715 t.default_highlight = (1, 0, 0) 716 717 # Warrior ################################### 718 t = Appearance('Warrior') 719 t.color_texture = 'warriorColor' 720 t.color_mask_texture = 'warriorColorMask' 721 t.icon_texture = 'warriorIcon' 722 t.icon_mask_texture = 'warriorIconColorMask' 723 t.head_mesh = 'warriorHead' 724 t.torso_mesh = 'warriorTorso' 725 t.pelvis_mesh = 'warriorPelvis' 726 t.upper_arm_mesh = 'warriorUpperArm' 727 t.forearm_mesh = 'warriorForeArm' 728 t.hand_mesh = 'warriorHand' 729 t.upper_leg_mesh = 'warriorUpperLeg' 730 t.lower_leg_mesh = 'warriorLowerLeg' 731 t.toes_mesh = 'warriorToes' 732 warrior_sounds = ['warrior1', 'warrior2', 'warrior3', 'warrior4'] 733 warrior_hit_sounds = ['warriorHit1', 'warriorHit2'] 734 t.jump_sounds = warrior_sounds 735 t.attack_sounds = warrior_sounds 736 t.impact_sounds = warrior_hit_sounds 737 t.death_sounds = ['warriorDeath'] 738 t.pickup_sounds = warrior_sounds 739 t.fall_sounds = ['warriorFall'] 740 t.style = 'spaz' 741 t.default_color = (0.3, 0.5, 0.8) 742 t.default_highlight = (1, 0, 0) 743 744 # Superhero ################################### 745 t = Appearance('Middle-Man') 746 t.color_texture = 'superheroColor' 747 t.color_mask_texture = 'superheroColorMask' 748 t.icon_texture = 'superheroIcon' 749 t.icon_mask_texture = 'superheroIconColorMask' 750 t.head_mesh = 'superheroHead' 751 t.torso_mesh = 'superheroTorso' 752 t.pelvis_mesh = 'superheroPelvis' 753 t.upper_arm_mesh = 'superheroUpperArm' 754 t.forearm_mesh = 'superheroForeArm' 755 t.hand_mesh = 'superheroHand' 756 t.upper_leg_mesh = 'superheroUpperLeg' 757 t.lower_leg_mesh = 'superheroLowerLeg' 758 t.toes_mesh = 'superheroToes' 759 superhero_sounds = ['superhero1', 'superhero2', 'superhero3', 'superhero4'] 760 superhero_hit_sounds = ['superheroHit1', 'superheroHit2'] 761 t.jump_sounds = superhero_sounds 762 t.attack_sounds = superhero_sounds 763 t.impact_sounds = superhero_hit_sounds 764 t.death_sounds = ['superheroDeath'] 765 t.pickup_sounds = superhero_sounds 766 t.fall_sounds = ['superheroFall'] 767 t.style = 'spaz' 768 t.default_color = (0.3, 0.5, 0.8) 769 t.default_highlight = (1, 0, 0) 770 771 # Alien ################################### 772 t = Appearance('Alien') 773 t.color_texture = 'alienColor' 774 t.color_mask_texture = 'alienColorMask' 775 t.icon_texture = 'alienIcon' 776 t.icon_mask_texture = 'alienIconColorMask' 777 t.head_mesh = 'alienHead' 778 t.torso_mesh = 'alienTorso' 779 t.pelvis_mesh = 'alienPelvis' 780 t.upper_arm_mesh = 'alienUpperArm' 781 t.forearm_mesh = 'alienForeArm' 782 t.hand_mesh = 'alienHand' 783 t.upper_leg_mesh = 'alienUpperLeg' 784 t.lower_leg_mesh = 'alienLowerLeg' 785 t.toes_mesh = 'alienToes' 786 alien_sounds = ['alien1', 'alien2', 'alien3', 'alien4'] 787 alien_hit_sounds = ['alienHit1', 'alienHit2'] 788 t.jump_sounds = alien_sounds 789 t.attack_sounds = alien_sounds 790 t.impact_sounds = alien_hit_sounds 791 t.death_sounds = ['alienDeath'] 792 t.pickup_sounds = alien_sounds 793 t.fall_sounds = ['alienFall'] 794 t.style = 'spaz' 795 t.default_color = (0.3, 0.5, 0.8) 796 t.default_highlight = (1, 0, 0) 797 798 # OldLady ################################### 799 t = Appearance('OldLady') 800 t.color_texture = 'oldLadyColor' 801 t.color_mask_texture = 'oldLadyColorMask' 802 t.icon_texture = 'oldLadyIcon' 803 t.icon_mask_texture = 'oldLadyIconColorMask' 804 t.head_mesh = 'oldLadyHead' 805 t.torso_mesh = 'oldLadyTorso' 806 t.pelvis_mesh = 'oldLadyPelvis' 807 t.upper_arm_mesh = 'oldLadyUpperArm' 808 t.forearm_mesh = 'oldLadyForeArm' 809 t.hand_mesh = 'oldLadyHand' 810 t.upper_leg_mesh = 'oldLadyUpperLeg' 811 t.lower_leg_mesh = 'oldLadyLowerLeg' 812 t.toes_mesh = 'oldLadyToes' 813 old_lady_sounds = ['oldLady1', 'oldLady2', 'oldLady3', 'oldLady4'] 814 old_lady_hit_sounds = ['oldLadyHit1', 'oldLadyHit2'] 815 t.jump_sounds = old_lady_sounds 816 t.attack_sounds = old_lady_sounds 817 t.impact_sounds = old_lady_hit_sounds 818 t.death_sounds = ['oldLadyDeath'] 819 t.pickup_sounds = old_lady_sounds 820 t.fall_sounds = ['oldLadyFall'] 821 t.style = 'spaz' 822 t.default_color = (0.3, 0.5, 0.8) 823 t.default_highlight = (1, 0, 0) 824 825 # Gladiator ################################### 826 t = Appearance('Gladiator') 827 t.color_texture = 'gladiatorColor' 828 t.color_mask_texture = 'gladiatorColorMask' 829 t.icon_texture = 'gladiatorIcon' 830 t.icon_mask_texture = 'gladiatorIconColorMask' 831 t.head_mesh = 'gladiatorHead' 832 t.torso_mesh = 'gladiatorTorso' 833 t.pelvis_mesh = 'gladiatorPelvis' 834 t.upper_arm_mesh = 'gladiatorUpperArm' 835 t.forearm_mesh = 'gladiatorForeArm' 836 t.hand_mesh = 'gladiatorHand' 837 t.upper_leg_mesh = 'gladiatorUpperLeg' 838 t.lower_leg_mesh = 'gladiatorLowerLeg' 839 t.toes_mesh = 'gladiatorToes' 840 gladiator_sounds = ['gladiator1', 'gladiator2', 'gladiator3', 'gladiator4'] 841 gladiator_hit_sounds = ['gladiatorHit1', 'gladiatorHit2'] 842 t.jump_sounds = gladiator_sounds 843 t.attack_sounds = gladiator_sounds 844 t.impact_sounds = gladiator_hit_sounds 845 t.death_sounds = ['gladiatorDeath'] 846 t.pickup_sounds = gladiator_sounds 847 t.fall_sounds = ['gladiatorFall'] 848 t.style = 'spaz' 849 t.default_color = (0.3, 0.5, 0.8) 850 t.default_highlight = (1, 0, 0) 851 852 # Wrestler ################################### 853 t = Appearance('Wrestler') 854 t.color_texture = 'wrestlerColor' 855 t.color_mask_texture = 'wrestlerColorMask' 856 t.icon_texture = 'wrestlerIcon' 857 t.icon_mask_texture = 'wrestlerIconColorMask' 858 t.head_mesh = 'wrestlerHead' 859 t.torso_mesh = 'wrestlerTorso' 860 t.pelvis_mesh = 'wrestlerPelvis' 861 t.upper_arm_mesh = 'wrestlerUpperArm' 862 t.forearm_mesh = 'wrestlerForeArm' 863 t.hand_mesh = 'wrestlerHand' 864 t.upper_leg_mesh = 'wrestlerUpperLeg' 865 t.lower_leg_mesh = 'wrestlerLowerLeg' 866 t.toes_mesh = 'wrestlerToes' 867 wrestler_sounds = ['wrestler1', 'wrestler2', 'wrestler3', 'wrestler4'] 868 wrestler_hit_sounds = ['wrestlerHit1', 'wrestlerHit2'] 869 t.jump_sounds = wrestler_sounds 870 t.attack_sounds = wrestler_sounds 871 t.impact_sounds = wrestler_hit_sounds 872 t.death_sounds = ['wrestlerDeath'] 873 t.pickup_sounds = wrestler_sounds 874 t.fall_sounds = ['wrestlerFall'] 875 t.style = 'spaz' 876 t.default_color = (0.3, 0.5, 0.8) 877 t.default_highlight = (1, 0, 0) 878 879 # OperaSinger ################################### 880 t = Appearance('Gretel') 881 t.color_texture = 'operaSingerColor' 882 t.color_mask_texture = 'operaSingerColorMask' 883 t.icon_texture = 'operaSingerIcon' 884 t.icon_mask_texture = 'operaSingerIconColorMask' 885 t.head_mesh = 'operaSingerHead' 886 t.torso_mesh = 'operaSingerTorso' 887 t.pelvis_mesh = 'operaSingerPelvis' 888 t.upper_arm_mesh = 'operaSingerUpperArm' 889 t.forearm_mesh = 'operaSingerForeArm' 890 t.hand_mesh = 'operaSingerHand' 891 t.upper_leg_mesh = 'operaSingerUpperLeg' 892 t.lower_leg_mesh = 'operaSingerLowerLeg' 893 t.toes_mesh = 'operaSingerToes' 894 opera_singer_sounds = [ 895 'operaSinger1', 896 'operaSinger2', 897 'operaSinger3', 898 'operaSinger4', 899 ] 900 opera_singer_hit_sounds = ['operaSingerHit1', 'operaSingerHit2'] 901 t.jump_sounds = opera_singer_sounds 902 t.attack_sounds = opera_singer_sounds 903 t.impact_sounds = opera_singer_hit_sounds 904 t.death_sounds = ['operaSingerDeath'] 905 t.pickup_sounds = opera_singer_sounds 906 t.fall_sounds = ['operaSingerFall'] 907 t.style = 'spaz' 908 t.default_color = (0.3, 0.5, 0.8) 909 t.default_highlight = (1, 0, 0) 910 911 # Pixie ################################### 912 t = Appearance('Pixel') 913 t.color_texture = 'pixieColor' 914 t.color_mask_texture = 'pixieColorMask' 915 t.icon_texture = 'pixieIcon' 916 t.icon_mask_texture = 'pixieIconColorMask' 917 t.head_mesh = 'pixieHead' 918 t.torso_mesh = 'pixieTorso' 919 t.pelvis_mesh = 'pixiePelvis' 920 t.upper_arm_mesh = 'pixieUpperArm' 921 t.forearm_mesh = 'pixieForeArm' 922 t.hand_mesh = 'pixieHand' 923 t.upper_leg_mesh = 'pixieUpperLeg' 924 t.lower_leg_mesh = 'pixieLowerLeg' 925 t.toes_mesh = 'pixieToes' 926 pixie_sounds = ['pixie1', 'pixie2', 'pixie3', 'pixie4'] 927 pixie_hit_sounds = ['pixieHit1', 'pixieHit2'] 928 t.jump_sounds = pixie_sounds 929 t.attack_sounds = pixie_sounds 930 t.impact_sounds = pixie_hit_sounds 931 t.death_sounds = ['pixieDeath'] 932 t.pickup_sounds = pixie_sounds 933 t.fall_sounds = ['pixieFall'] 934 t.style = 'pixie' 935 t.default_color = (0, 1, 0.7) 936 t.default_highlight = (0.65, 0.35, 0.75) 937 938 # Robot ################################### 939 t = Appearance('Robot') 940 t.color_texture = 'robotColor' 941 t.color_mask_texture = 'robotColorMask' 942 t.icon_texture = 'robotIcon' 943 t.icon_mask_texture = 'robotIconColorMask' 944 t.head_mesh = 'robotHead' 945 t.torso_mesh = 'robotTorso' 946 t.pelvis_mesh = 'robotPelvis' 947 t.upper_arm_mesh = 'robotUpperArm' 948 t.forearm_mesh = 'robotForeArm' 949 t.hand_mesh = 'robotHand' 950 t.upper_leg_mesh = 'robotUpperLeg' 951 t.lower_leg_mesh = 'robotLowerLeg' 952 t.toes_mesh = 'robotToes' 953 robot_sounds = ['robot1', 'robot2', 'robot3', 'robot4'] 954 robot_hit_sounds = ['robotHit1', 'robotHit2'] 955 t.jump_sounds = robot_sounds 956 t.attack_sounds = robot_sounds 957 t.impact_sounds = robot_hit_sounds 958 t.death_sounds = ['robotDeath'] 959 t.pickup_sounds = robot_sounds 960 t.fall_sounds = ['robotFall'] 961 t.style = 'spaz' 962 t.default_color = (0.3, 0.5, 0.8) 963 t.default_highlight = (1, 0, 0) 964 965 # Bunny ################################### 966 t = Appearance('Easter Bunny') 967 t.color_texture = 'bunnyColor' 968 t.color_mask_texture = 'bunnyColorMask' 969 t.icon_texture = 'bunnyIcon' 970 t.icon_mask_texture = 'bunnyIconColorMask' 971 t.head_mesh = 'bunnyHead' 972 t.torso_mesh = 'bunnyTorso' 973 t.pelvis_mesh = 'bunnyPelvis' 974 t.upper_arm_mesh = 'bunnyUpperArm' 975 t.forearm_mesh = 'bunnyForeArm' 976 t.hand_mesh = 'bunnyHand' 977 t.upper_leg_mesh = 'bunnyUpperLeg' 978 t.lower_leg_mesh = 'bunnyLowerLeg' 979 t.toes_mesh = 'bunnyToes' 980 bunny_sounds = ['bunny1', 'bunny2', 'bunny3', 'bunny4'] 981 bunny_hit_sounds = ['bunnyHit1', 'bunnyHit2'] 982 t.jump_sounds = ['bunnyJump'] 983 t.attack_sounds = bunny_sounds 984 t.impact_sounds = bunny_hit_sounds 985 t.death_sounds = ['bunnyDeath'] 986 t.pickup_sounds = bunny_sounds 987 t.fall_sounds = ['bunnyFall'] 988 t.style = 'bunny' 989 t.default_color = (1, 1, 1) 990 t.default_highlight = (1, 0.5, 0.5)
Register our builtin spaz appearances.