private Dictionary <string, object> GetNextItemDown(PillPart currentItem, bool bypassFinalizeMoviment) { int positionsDown = 1; GridItem nextItem = null; if (!bypassFinalizeMoviment) { while ((currentItem.PositionRow - positionsDown >= 0) && (_grid.GetItem(currentItem.PositionRow - positionsDown, currentItem.PositionColumn) != null) && (!_grid.GetItem(currentItem.PositionRow - positionsDown, currentItem.PositionColumn).FinalizedMoviment() && _grid.GetItem(currentItem.PositionRow - positionsDown, currentItem.PositionColumn).OnlyDownMoviment())) { positionsDown += 1; } } if (currentItem.PositionRow - positionsDown >= 0) { nextItem = _grid.GetItem(currentItem.PositionRow - positionsDown, currentItem.PositionColumn); } Dictionary <string, object> results = new Dictionary <string, object>(); results.Add("nextItem", nextItem); results.Add("positionsDown", positionsDown); return(results); }
public Pill(int id, Transform parent, Transform self, Grid grid) { Id = id; PillParts = new Dictionary <string, PillPart> { { "first", null }, { "second", null } }; PillParts["first"] = new PillPart(id, true, grid); PillParts["first"].PositionColumn = Constants.InitPositionColumnPillPart0; PillParts["second"] = new PillPart(id, false, grid); PillParts["second"].PositionColumn = Constants.InitPositionColumnPillPart1; PillParts["first"].PositionRow = PillParts["second"].PositionRow = Constants.Rows - 1; self.name = "pill" + Id; SpriteRenderer[] allChildren = self.GetComponentsInChildren <SpriteRenderer>(); List <GameObject> pillParts = new List <GameObject>(); foreach (SpriteRenderer child in allChildren) { pillParts.Add(child.gameObject); } PillParts["first"].Behaviour = pillParts[0].GetComponent <PillPartBehaviour>(); PillParts["second"].Behaviour = pillParts[1].GetComponent <PillPartBehaviour>(); PillParts["first"].Behaviour.PillPartObj = PillParts["first"]; PillParts["second"].Behaviour.PillPartObj = PillParts["second"]; State = PillState.HORIZONTAL; }
private bool IsValidPosition(int positionsDown, PillPart current) { if (current.GetPositionRow() - positionsDown >= 0) { return(true); } else { return(false); } }