private depthPenetrateKill GetDepthAndKillForDisplay(BoardCursorCore launcherCur, BoardWar launcher, BoardWar victim) { int invertedx = victim.width - launcherCur.getX() - 1; int[] lengthType = launcher.GetLaunchDetails(launcherCur.getX()); launcher.UpdateBlockNexter(lengthType[0]); int topy = victim.GetHighestYAtX(invertedx); int d = victim.GetHitDepth(invertedx, lengthType[0], lengthType[1], topy); return(new depthPenetrateKill(d, d < topy, topy - d, victim.CanBeKilled(invertedx, lengthType[0]))); }
private depthInfo getTypeAndDepth(BoardWar board, int x) { int topy = board.GetHighestYAtX(x); int type = board.GetTopValueAtX(x); int depth = 1; for (int y = topy - 1; y >= 0; y--) { Tile val = board.GetValueAtXY(x, y); if (!val.IsDead() && val.GetColorVal() != type) { break; } depth++; } return(new depthInfo(x, type, depth, 0, topy)); }