CannonLover is a Protoss bot that cannon rushes the natural expansion of the opponent, mainly to contain and hurt the enemy's economy.
After a few minutes (or from start on 4-player maps) it switches to a dedicated macro strategy, with aggressive expansions and a standard Protoss death ball (zealots, sentries, stalkers, observers and colossus/immortals).
It is coded in Python 3 using the python-sc2 framework, and the code is freely available on GitHub.
- Early-game cannon rush logic.
- Well-developed macro follow-up that is much more advanced than the actual cannon rush.
- Army units compare nearby friendly vs enemy army size before taking an engagement (measured by health + shield). This greatly helps armies take favorable engagemenets, and flee when taking heavy losses.
- Remembers enemy units no longer in sight to better know when to engage, and to avoid dying on ramps.
- Evasive blink stalker micro when stalkers are taking damage.
- Checks ratio of enemy roach/hydra, stalker/zealot and marine/marauder (plus flying units like vikings) to decide if it should build immortals or colossus.