Ejemplo n.º 1
0
    public void TileHit(Vector2Int HitDirection, TileColor tileColour)
    {
        //Check if the light can pass through
        if (TileColor.ContainColour(tileColour, FilterColour))
        {
            LightPositions = creator.LightBouncePositions(arrayPosition, HitDirection, tileColour);

            Vector3[] tempArray = new Vector3[LightPositions.Length];

            if (bInstantBeam)
            {
                lineRenderer.positionCount = tempArray.Length;
            }

            for (int i = 0; i < tempArray.Length; i++)
            {
                tempArray[i] = (Vector2)LightPositions[i].lightPosition;

                if (bInstantBeam)
                {
                    lineRenderer.SetPosition(i, tempArray[i]);

                    if (LightPositions[i].hitTile != null)
                    {
                        LightPositions[i].hitTile.TileHit(Utility.NormalizeVec2Int(LightPositions[i].lightPosition - LightPositions[i - 1].lightPosition), tileColour);
                    }
                }
            }

            if (!bInstantBeam)
            {
                StartCoroutine(MoveLightBeam(tempArray));
            }
        }
    }
Ejemplo n.º 2
0
 public bool CanPass(TileColor inputColor)
 {
     if (m_NeedExactColour)
     {
         return(inputColor == TriggerColour);
     }
     else
     {
         return(TileColor.ContainColour(inputColor, TriggerColour));
     }
 }