public void quarkClicked(quarkScript quark) { if(currentCombo.Count==0 || isQuarkValidForCombo(quark)) { quarkAddedToCombo(); } else { clearCurrentCombo(); } currentCombo.Add(quark); comboTimeout = 0.5f + 1f/(currentCombo.Count); quark.activate(true,0.5f + 1f/(currentCombo.Count)); }
private bool isQuarkValidForCombo(quarkScript quark) { bool isSameColor = quark.quarkType == currentCombo[0].quarkType; bool isInVerticalLineWithLast = Mathf.Abs(quark.transform.position.x - currentCombo[currentCombo.Count-1].transform.position.x) < pieceLineWidth; bool isInHoriontalLineWithLast = Mathf.Abs(quark.transform.position.y - currentCombo[currentCombo.Count-1].transform.position.y) < pieceLineHeight; return isSameColor && (isInHoriontalLineWithLast || isInVerticalLineWithLast) && !currentCombo.Contains(quark); }