Thanks for your response Wolfgang,

Yes, getMyUnits() returns an ArrayList<Unit>; I don't believe this likely
to be the problem since I have these in other rules that are functioning.
More debugging shows that the error is occurring in routine
Value.stringValue. Do you see anywhere where I am trying to get the string
value of a list?

Hunter
 On Mon, Mar 12, 2012 at 9:38 AM, Wolfgang Laun <wolfgang.l...@gmail.com>wrote:

> Are you sure that
>   (?*bwapi* getMyUnits)
> returns a list?
>
> Jess' foreach isn't quite as tolerant as for in Java 1.5 and later.
> You may have to return an java.util.iterator.
>
> -W
>
>
> On 10/03/2012, Hunter McMillen <mcmil...@gmail.com> wrote:
> > I am receiving the error in the subject line when one of my rules is
> > firing. I can't seem to find any other forum posts about it, here is my
> > rule:
> >
> > (defrule build-supply-depot
> > (minerals (value ?x&:(> ?x 100)))
> > =>
> > (try
> > (foreach ?u (?*bwapi* getMyUnits)
> > (if (= (?u getTypeID) ?*SCV_ID*) then
> > (bind ?p (call get-next-build-tile()))
> > (call ?*bwapi* drawCircle ?p.x ?p.y 100 111 FALSE FALSE)
> > (call ?*bwapi* build (?u getID) ?p.x ?p.y
> > (UnitType$UnitTypes.Terran_Supply_Depot ordinal))
> > (break)))
> > catch
> > (printout t (call ?ERROR toString) crlf)
> > )
> > )
> >
> > and here is the exact error message:
> >
> >         while executing (foreach ?u (call ?*bwapi* getMyUnits)
> >                                    (if (= (call ?u getTypeID) ?*SCV_ID*)
> > then
> >                                    (bind ?p (call get-next-build-tile ))
> >                                    (call ?*bwapi* drawCircle ?p.x ?p.y
> 100
> > 111 FALSE FALSE)
> >                                    (call ?*bwapi* build (call ?u getID)
> > ?p.x ?p.y (UnitType$UnitTypes.Terran_Supply_Depot ordinal))
> >                                    (break))).
> >
> >   Message: '' is a list, not  a string.
> >
> > But the error doesn't give me a line number.
> >
> > Any help would be appreciated.
> > Thanks,
> > Hunter McMillen
> >
>
> --------------------------------------------------------------------
> To unsubscribe, send the words 'unsubscribe jess-users y...@address.com'
> in the BODY of a message to majord...@sandia.gov, NOT to the list
> (use your own address!) List problems? Notify owner-jess-us...@sandia.gov.
> --------------------------------------------------------------------
>
>

Reply via email to