A Programming Model for Boss Encounters in 2D Action Games