Example #1
0
        public override TaskState Execute()
        {
            var map = blackboard.Critter.GetMap ();
            if (map == null)
                return TaskState.Failed;

            var critters = new CritterArray ();
            map.GetCritters (0, find, critters);

            List<Critter> found = new List<Critter> ();

            foreach (var critter in critters) {
                if (critter == GetCritter () || !Check (critter))
                    continue;
                found.Add (critter);
            }
            if (found.Count == 0)
                return TaskState.Failed;

            if (chooser != null) {
                var critter = chooser.Choose (found);
                found.Clear ();
                found.Add (critter);
            }

            GetBlackboard ().SetCritters (key, found);

            return TaskState.Success;
        }
Example #2
0
 public uint CreateLocation(ushort pid, ushort wx, ushort wy, CritterArray critters)
 {
     return Global_CreateLocation(pid, wx, wy, (IntPtr)critters);
 }
Example #3
0
 static void HandleArray_scope(Critter cr, int rc)
 {
     var arr = new CritterArray { cr };
     Tests.Assert (cr.RefCount == rc + 1, "Critter reference in array, rc++.");
     var cr2 = arr[0];
     Tests.Assert (cr.RefCount == rc + 1, "Fetching reference to same native resource, rc the same.");
     arr[0] = null;
     Tests.Assert (cr.RefCount == rc, "Reference cleared, rc--.");
     arr[0] = cr;
 }
Example #4
0
 public uint GetAllNpc(ushort pid, CritterArray npc)
 {
     return Global_GetAllNpc(pid, (IntPtr)npc);
 }
Example #5
0
 public virtual uint GetCrittersSeeing(CritterArray critters, bool look_on_them, Find find_type, CritterArray critters_result)
 {
     return Map_GetCrittersSeeing(thisptr, critters.ThisPtr, look_on_them, (int)find_type, critters_result != null ? critters_result.ThisPtr : IntPtr.Zero);
 }
Example #6
0
 public virtual uint GetCrittersWhoViewPath(ushort from_hx, ushort from_hy, ushort to_hx, ushort to_hy, float angle, uint dist, Find find_type, CritterArray critters)
 {
     return Map_GetCrittersWhoViewPath(thisptr, from_hx, from_hy, to_hx, to_hy, angle, dist, (int)find_type, critters != null ? critters.ThisPtr : IntPtr.Zero);
 }
Example #7
0
 public virtual uint GetCrittersHex(ushort hx, ushort hy, uint radius, Find find_type, CritterArray critters)
 {
     return Map_GetCritters(thisptr, hx, hy, radius, (int)find_type, critters != null ? critters.ThisPtr : IntPtr.Zero);
 }
Example #8
0
 public virtual uint GetCrittersInPath(ushort from_hx, ushort from_hy, ushort to_hx, ushort to_hy, float angle, uint dist, Find find_type, CritterArray critters, out ushort pre_block_hx, out ushort pre_block_hy, out ushort block_hx, out ushort block_hy)
 {
     return Map_GetCrittersInPathBlock(thisptr, from_hx, from_hy, to_hx, to_hy, angle, dist, (int)find_type, critters != null ? critters.ThisPtr : IntPtr.Zero, out pre_block_hx, out pre_block_hy, out block_hx, out block_hy);
 }
Example #9
0
 public virtual uint GetCritters(ushort pid, Find find_type, CritterArray critters = null)
 {
     return Map_GetCrittersByPids(thisptr, pid, (int)find_type, critters != null ? critters.ThisPtr : IntPtr.Zero);
 }
 public virtual bool TransitToGlobal(CritterArray array)
 {
     return Crit_TransitToGlobalWithGroup(thisptr, array.ThisPtr);
 }
 public virtual uint GetTalkedPlayers(CritterArray players)
 {
     return Npc_GetTalkedPlayers(thisptr, players != null ? players.ThisPtr : IntPtr.Zero);
 }
 public virtual uint GetFollowGroup(Find find_type, CritterArray critters)
 {
     return Crit_GetFollowGroup(thisptr, (int)find_type, critters != null ? critters.ThisPtr : IntPtr.Zero);
 }
 public virtual uint GetCritters(bool look_on_me, Find find_type, CritterArray critters)
 {
     return Crit_GetCritters(thisptr, look_on_me, (int)find_type, critters != null ? critters.ThisPtr : IntPtr.Zero);
 }