Mummy: Difference between revisions
Content deleted Content added
Piranhaplant (talk | contribs) No edit summary |
Piranhaplant (talk | contribs) No edit summary |
||
Line 19: | Line 19: | ||
this.animationFrame = (this.animationFrame + 1) % 4 |
this.animationFrame = (this.animationFrame + 1) % 4 |
||
this.sprite.tileData.lowBytes = |
this.sprite.tileData.lowBytes = animations[this.direction][this.animationFrame] |
||
this.sprite.tileData.bank = 0x90 |
this.sprite.tileData.bank = 0x90 |
||
if (this.direction < DOWN_LEFT) { |
if (this.direction < DOWN_LEFT) { |
||
Line 58: | Line 58: | ||
{{ROM name|$7E:00DE}} += 0x14 |
{{ROM name|$7E:00DE}} += 0x14 |
||
this.cyclesUntilAnimUpdate = 7 |
this.cyclesUntilAnimUpdate = 7 |
||
init() |
|||
{{ROM name|$81:832C}}(this.spawnAnimation) |
{{ROM name|$81:832C}}(this.spawnAnimation) |
||
this.sprite.type = MONSTER |
this.sprite.type = MONSTER |
||
Line 71: | Line 71: | ||
zombie.checkForTarget_Hard() |
zombie.checkForTarget_Hard() |
||
this.state() |
this.state() |
||
updateAnimation() |
|||
} |
} |
||
Revision as of 20:17, 13 July 2024
Monster data | |
---|---|
![]() | |
HP | 5 |
Points | 100 |
Special | {{{special}}} |
Resists | {{{resists}}} |
Weak to | {{{weak_to}}} |
Entity data | |
---|---|
Entity pointer | $81:8C17 |
The mummy is a respawning monster.
Behavior
Mummies share most of their code with the hard version of zombies, and thus behave identically. The only differences are their starting health and graphics.
RAM map
See Zombie#RAM map.
Pseudocode
updateAnimation() { this.cyclesUntilAnimUpdate -= 1 if (this.cyclesUntilAnimUpdate == 0) { this.cyclesUntilAnimUpdate = 4 this.animationFrame = (this.animationFrame + 1) % 4 this.sprite.tileData.lowBytes = animations[this.direction][this.animationFrame] this.sprite.tileData.bank = 0x90 if (this.direction < DOWN_LEFT) { this.sprite.flipX = false } else { this.sprite.flipX = true } } } animations = { { 0xE1D4, 0xE1FD, 0xE226, 0xE24F }, { 0xE278, 0xE2A1, 0xE2CA, 0xE2F3 }, { 0xE118, 0xE149, 0xE172, 0xE1A3 }, { 0xE118, 0xE149, 0xE172, 0xE1A3 }, { 0xE118, 0xE149, 0xE172, 0xE1A3 }, { 0xE1D4, 0xE1FD, 0xE226, 0xE24F }, { 0xE118, 0xE149, 0xE172, 0xE1A3 }, { 0xE118, 0xE149, 0xE172, 0xE1A3 }, { 0xE118, 0xE149, 0xE172, 0xE1A3 } } init() { createMonsterSprite() this.animationFrame = 0 this.freezeTimer = 0 this.x = args.x this.sprite.x = args.x this.sprite.z = 0 this.y = args.y this.sprite.y = args.y this.sprite.tileData = $90:E118 this.sprite.alternatePalette = 6 this.sprite.visible = true } main() { $7E:00DE += 0x14 this.cyclesUntilAnimUpdate = 7 init() showAnimation(this.spawnAnimation) this.sprite.type = MONSTER zombie.wanderInRandomDirection_Hard() this.health = 4 this.dontTargetTimer = -1 setCollisionHandler(zombie.collisionHandler) this.deathStatus = 0 while (this.deathStatus == 0) { waitFrames(2) zombie.checkForTarget_Hard() this.state() updateAnimation() } if (this.deathStatus == 0xF5F5) { mummiesKilled += 1 showMonsterDeath(this.deathAnimation, this.deathStatus, 0x90) } $7E:00DE -= 0x14 while ($7E:00DE < 0) { } deleteSprite(this.sprite) } spawnAnimation = { { 0xE31C, 14 }, { 0xE35D, 14 }, { 0xE39E, 10 }, { 0xE1D4, 6 }, { 0, 0 } } deathAnimation = { { 0xDDC2, 5 }, { 0xDDDB, 5 }, { 0xDE0C, 5 }, { 0xDE3D, 5 }, { 0xDE66, 5 }, { 0xDE8F, 5 }, { 0xDEA8, 5 }, { 0xDEC1, 5 }, { 0xDED2, 5 }, { 0xDEE3, 5 }, { 0xDEF4, 5 }, { 0, 0 } }