Tags: misc gamehacking reverse 

Rating: 3.5

### [**replay (1411 frames)**](http://github.com/ypl-coffee/CTF/tree/master/spamandflags-2020)

I was unable to make it faster than 1330 frames.

A few tricks:
1. After being hit by an enemy, Android enters a short period of invincibility. I used it to skip the second orb.
2. Both `RndSpike`s and the `TRex` uses homebrew deterministic PRNG implemented in `Rnd.py`. **[@ArRu](https://ctftime.org/user/79156)** wrote a simulator based on that to help me "fortune-telling" the spike movements. For example, if a **"move right"** (`0b01000`) caused a spike to go up in front of Android, changing it to **"move right while crouching"** (`0b01010`) may solve the problem.
3. One way to kill `TRex` safely is to wait it `run` towards you and hit it outside the boss room:
![TRex.png](https://github.com/ypl-coffee/CTF/blob/master/spamandflags-2020/TRex.png?raw=true)
4. A faster way to kill `TRex`: Crouching (`0b00010`) cancels Android's attack animation. Doing `0b10000, 0b00010, 0b10000, 0b00010...` deals 1 damage every 2 frames.

Here's some flags:
![flags.png](https://raw.githubusercontent.com/ypl-coffee/CTF/master/spamandflags-2020/flags.png)

Original writeup (https://github.com/ypl-coffee/CTF/tree/master/spamandflags-2020).