コード例 #1
0
ファイル: spawn_creeps.go プロジェクト: runningwild/jota
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]})
	}
}