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)); } } }
public bool CanPass(TileColor inputColor) { if (m_NeedExactColour) { return(inputColor == TriggerColour); } else { return(TileColor.ContainColour(inputColor, TriggerColour)); } }