func (a *AIAdv) AimAdjedIntoCube(estpos *go4game.Vector3D, o *SPObj, bulletType GameObjectType) *go4game.Vector3D { if !estpos.IsIn(GameConst.WorldCube2) && o.ObjType != GameObjMain { return nil } lenori := a.me.PosVector.LenTo(*estpos) if o.ObjType == GameObjMain { changed := estpos.MakeIn(GameConst.WorldCube) if changed != 0 { //log.Printf("target %v bounce %b", o.ID, changed) } } lennew := a.me.PosVector.LenTo(*estpos) lenrate := lennew / lenori vt := estpos.Sub(a.me.PosVector).NormalizedTo(GameConst.MoveLimit[bulletType]).Imul(lenrate) return &vt }