Exemplo n.º 1
0
func (h *HateFlag) Do(obj gameObjectsBase.Activer) {
	if _, exists := obj.GetTarget(); exists {
		return
	}
	center := obj.GetCenter()
	lt, rb := h.field.GetSquareArea(center.X, center.Y, obj.GetRadiusVision())
	for i := int(lt.Y); i < int(rb.Y); i++ {
		for j := int(lt.X); j < int(rb.X); j++ {
			for _, m := range h.field.GetActors(j, i) {
				if m.GetKind().GetRace() == h.hated && obj.GetID() != m.GetID() {
					obj.SetTarget(m)
					return
				}
			}
		}
	}
}