Esempio n. 1
0
    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])));
    }
Esempio n. 2
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));
    }