Skip to main content

Movement

The Antivirus Avatar moves at 6 pixels per frame in any of the four cardinal directions.
KeyAction
W or Up ArrowMove up
S or Down ArrowMove down
A or Left ArrowMove left
D or Right ArrowMove right

Combat

KeyAction
SpaceFire a plasma bolt / skip scan animation in Level 1
Plasma bolts travel in the last movement direction recorded before firing. If you stop moving and shoot, the bolt continues in whichever direction you were last heading. Plan your shots before you halt.

Interaction and system

KeyAction
EInteract with the active terminal (must be within 80 px)
EscEmergency exit — quits the game immediately
Terminal interaction requires you to be within 80 pixels of the terminal object. The objective pointer arrow guides you to the correct location. Watch the mission objective text in the HUD — it updates when you enter interaction range.

Screen shake reference

Screen shake intensity varies by event, giving tactile feedback about what just happened:
EventShake intensity
Fire plasma bolt5 units
Enemy killed10 units
Player takes damage20 units

Player stats

StatValue
Movement speed6 px/frame
Max health100 HP
Damage per enemy collision15 HP
Motion trail length10 positions
Trail alpha range150 → 0 (fade)
Sprite size32×32 px

Listener shell commands

Once the reverse shell connects in Level 2, the operator controls the listener terminal using these commands:
CommandDescription
lsList files in the current directory
cd <path>Change directory
cat <file>Print file contents
pwdPrint current working directory
download <filename>Download a file from the target
quitClose the shell connection
Launch the game with the --windowed flag when you plan to use the listener shell. A smaller game window lets you keep both the listener terminal and the game visible simultaneously without switching focus.
python game/main_game.py --windowed

Build docs developers (and LLMs) love