Ejemplo n.º 1
0
    private void ProcessUnitWithUnitsCollision(Unit unit)
    {
        List <Unit> neighbours = grid.GetUnitNeighbours(unit);

        for (int i = 0; i < neighbours.Count; i++)
        {
            if (unit == neighbours[i])
            {
                continue;
            }

            if (!neighbours[i].IsAlive)
            {
                continue;
            }

            if (!MathHelper.AreUnitsCollide(unit, neighbours[i]))
            {
                continue;
            }

            if (AreUnitsInOneTeam(unit, neighbours[i]))
            {
                MakeUnitsBounce(unit, neighbours[i]);
            }
            else
            {
                MakeUnitsFight(unit, neighbours[i]);
            }
        }
    }
Ejemplo n.º 2
0
    private bool IsUnitCollideWithOthers(Unit unit)
    {
        foreach (Unit anotherUnit in units)
        {
            if (unit == anotherUnit)
            {
                break;
            }

            if (MathHelper.AreUnitsCollide(unit, anotherUnit))
            {
                return(true);
            }
        }
        return(false);
    }