void RemoveInner( ref InfluenceNode influenceNode, Actor toRemove ) { if( influenceNode == null ) return; else if( influenceNode.actor == toRemove ) influenceNode = influenceNode.next; else RemoveInner( ref influenceNode.next, toRemove ); }
static void RemoveInfluenceInner(ref InfluenceNode influenceNode, Actor toRemove) { if (influenceNode == null) { return; } RemoveInfluenceInner(ref influenceNode.Next, toRemove); if (influenceNode.Actor == toRemove) { influenceNode = influenceNode.Next; } }
public bool MoveNext() { while (node != null) { Current = node.Actor; node = node.Next; if (!Current.Disposed) { return(true); } } return(false); }
internal void AddInfluence(Actor a, IEnumerable <CPos> cells) { foreach (var c in cells) { var uv = c.ToMPos(map); if (influence.Contains(uv)) { influence[uv] = new InfluenceNode { Next = influence[uv], Actor = a } } ; } }
void RemoveInner(ref InfluenceNode influenceNode, Actor toRemove) { if (influenceNode == null) { return; } else if (influenceNode.actor == toRemove) { influenceNode = influenceNode.next; } if (influenceNode != null) { RemoveInner(ref influenceNode.next, toRemove); } }
public void AddInfluence(Actor self, IOccupySpace ios) { foreach (var c in ios.OccupiedCells()) { var uv = c.First.ToMPos(map); if (!influence.Contains(uv)) { continue; } influence[uv] = new InfluenceNode { Next = influence[uv], SubCell = c.Second, Actor = self }; List <CellTrigger> triggers; if (cellTriggerInfluence.TryGetValue(c.First, out triggers)) { foreach (var t in triggers) { t.Dirty = true; } } } }
public ActorsAtEnumerable(InfluenceNode node) { this.node = node; }
public ActorsAtEnumerator(InfluenceNode node) { this.node = node; current = null; }
void RemoveInfluenceInner(ref InfluenceNode influenceNode, Actor toRemove) { if (influenceNode == null) return; if (influenceNode.Actor == toRemove) influenceNode = influenceNode.Next; if (influenceNode != null) RemoveInfluenceInner(ref influenceNode.Next, toRemove); }