func (sc *spawnCreeps) Input(ent game.Ent, g *game.Game, pressAmt float64, trigger bool) { cp := ent.(*game.ControlPoint) if pressAmt == 0 { delete(cp.Processes, sc.id) return } _, ok := cp.Processes[sc.id].(*omniDrain) if !ok && cp.Controlled { cp.Processes[sc.id] = &omniDrain{Gid: cp.Gid} return } if !cp.Controlled { delete(cp.Processes, sc.id) return } if proc, _ := cp.Processes[sc.id].(*omniDrain); proc != nil && trigger { g.AddEnt(ent) delete(cp.Processes, sc.id) creepCount := int(proc.Stored.Magnitude() / 300) g.AddCreeps(cp.Pos(), creepCount, cp.Side(), map[string]interface{}{"target": cp.Targets[0]}) } }