Clone

From ZAMN Hacking
Revision as of 22:03, 19 April 2024 by Piranhaplant (talk | contribs)
Monster data
HP 1
Points 20
Entity data
Entity pointer $81:8E89 (normal)
$81:8F1F (hard)

The clone is a respawning monster. There are two different types of clones: normal and hard.

Cloning behavior

Both types of clones start by picking a player to clone. If there is only one player in the game, that player is selected. If there are two players in the game, one of them is selected at random. If there are no players left in the game, the clone will not spawn.

Normal clone

Normal clones can be in one of two states:

  • Targeting: The clone will move towards the nearest player at a speed of 0.75 px/frame. This only targets players, not victims or decoys. If there is no player within 239 pixels on a single axis, then the clone will despawn.
  • Mimicking: The clone will move in the direction of the cloned player's d-pad input at a speed of 0.75 px/frame.

Clones start in the targeting state, but will switch to the mimicking state after 1 frame. Afterwards, the clone will repeatedly switch to the opposite state after a random amount of time between 1 and 255 frames (about 4.25 seconds).

Hard clone

Hard clones always target the nearest player. They move at a speed of 1.5 px/frame, twice as fast as the normal clone. They will also despawn if there is no player within 239 pixels on a single axis.

Animation

Clones have a 4 frame animation cycle, with 8 frames in between each animation frame. There is a separate set of animation frames for each of the 4 orthogonal directions, chosen based on which direction the clone is moving. There is also a separate set of animations for Zeke and Julie, chosen based on the character of the player who is being cloned. If the clone is moving diagonal, it uses the left or right animation. If the clone is not moving, it uses a single right-facing sprite for all 4 animation frames.

Bugs

  • Freezing or bubbling a clone, then letting it despawn will count as killing it. This is because the logic for if a clone was killed or not checks if it was ever hit by a weapon, not if it lost all its HP.
  • The normal clone can randomly get a value of 0 for the amount of time in between state changes. If this happens, the value will roll over and it will take a full 65536 frames (about 18.2 minutes) for it to change states again.