public Boolean Contains(Mobile unit) { if (units.Contains(unit)) return true; else return false; }
public Vector2 GetOffset(Mobile unit, Map myMap) { // Save tiles for leader and unit position: Tile leaderTile = myMap.GetContainingTile(leader); Tile unitTile = myMap.GetContainingTile(unit); if (leaderTile == null || unitTile == null) return new Vector2(0, -0); // Upper left if (unitTile.xPosition < leaderTile.xPosition && unitTile.yPosition <= leaderTile.yPosition) { ulCounter++; if(ulCounter == 1) return new Vector2(-32, 0); else return new Vector2(-32, -32); } // Upper right if (unitTile.xPosition >= leaderTile.xPosition && unitTile.yPosition < leaderTile.yPosition) { urCounter++; if (urCounter == 1) return new Vector2(0, -32); else return new Vector2(32, -32); } // Bottom right if (unitTile.xPosition > leaderTile.xPosition && unitTile.yPosition >= leaderTile.yPosition) { brCounter++; if(brCounter == 1) return new Vector2(32, 0); else return new Vector2(32, 32); } // Bottom left if (unitTile.xPosition <= leaderTile.xPosition && unitTile.yPosition > leaderTile.yPosition) { blCounter++; if (blCounter == 1) return new Vector2(32, 0); else return new Vector2(-32, 32); } else return new Vector2(0, 0); }
public UnitGroup(List<Mobile> unitList, Vector2 newDest) { units = unitList; destination = newDest; urCounter = 0; brCounter = 0; blCounter = 0; ulCounter = 0; // Leader of group is the unit closest to the destination: float distance = 999999; foreach(Mobile unit in units) { float testDistance = Vector2.Distance(new Vector2(unit.Bounds.Center.X, unit.Bounds.Center.Y), new Vector2(destination.X, destination.Y)); if (testDistance < distance) { leader = unit; } } }
public void chooseSelector(Mobile levelChooser) { switch (currentMap.name) { case "Content/MainScreen.txt": allSelectors[1].isColliding(levelChooser); break; case "Content/levelSelect.txt": if (allSelectors[2].getInteraction() == true) { allSelectors[2].isColliding(levelChooser); } if (allSelectors[3].getInteraction() == true) { allSelectors[3].isColliding(levelChooser); } if (allSelectors[4].getInteraction() == true) { allSelectors[4].isColliding(levelChooser); } break; case "Content/defeatScreen.txt": if (allSelectors[0].getInteraction() == true) { //Console.WriteLine("We're checking for collision with defeatScreen!"); //Console.WriteLine("Who are we checking for collision with?!?!? " + levelChooser); allSelectors[0].isColliding(levelChooser); } break; case "Content/victoryScreen.txt": if (allSelectors[5].getInteraction() == true) { //Console.WriteLine("You're checking for collision with " + allSelectors[5].getInteraction()); allSelectors[5].isColliding(levelChooser); //Console.WriteLine("Current map is: " + currentMap.name); } break; } }
public UnitGroup GetGroup(Mobile unit) { foreach(UnitGroup group in unitGroups){ if (group.Contains(unit)) return group; } return null; }