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