static void OnChangeMatch3TileIcon(string GUID, Rect iconRect) { string assetpath = AssetDatabase.GUIDToAssetPath(GUID); string extension = System.IO.Path.GetExtension(assetpath); if (extension == ".asset") { Sprite sprite = null; MineTile tile = AssetDatabase.LoadAssetAtPath <MineTile>(assetpath); if (!tile) { return; } sprite = tile.sprite; if (!sprite) { return; } iconRect = CalculateOffsetOfIcon(iconRect); Texture2D icon = sprite.texture; iconRect.width = iconRect.height; iconRect.height = iconRect.height; if (icon) { GUI.DrawTexture(iconRect, icon); } } }
private Vector3 placeConer(MineTile tile, Vector3 pos) { if (tile.Position.x == 0 && tile.Position.y == m_GameManager.m_BoardWidth - 1) { pos = new Vector3(tile.Position.x - 0.5f, tile.Position.y + 0.5f); PlaceBorder(m_BorderEdgeCorner, pos); } if (tile.Position.x == m_GameManager.m_BoardHieght - 1 && tile.Position.y == 0) { pos = new Vector3(tile.Position.x + 0.5f, tile.Position.y - 0.5f); PlaceBorder(m_BorderEdgeCorner, pos); } if (tile.Position.x == m_GameManager.m_BoardHieght - 1 && tile.Position.y == m_GameManager.m_BoardWidth - 1) { pos = new Vector3(tile.Position.x + 0.5f, tile.Position.y + 0.5f); PlaceBorder(m_BorderEdgeCorner, pos); } if (tile.Position.x == 0 && tile.Position.y == 0) { pos = new Vector3(tile.Position.x - 0.5f, tile.Position.y - 0.5f); PlaceBorder(m_BorderEdgeCorner, pos); } return(pos); }
public void Unflagging_an_untouched_tile_should_do_nothing() { var tile = new MineTile(); tile.GetStatus().Should().Be(TileStatus.Untouched); tile.UnFlag(); tile.GetStatus().Should().Be(TileStatus.Untouched); }
public void Flagging_an_untouched_tile_should_flag_it() { var tile = new MineTile(); tile.GetStatus().Should().Be(TileStatus.Untouched); tile.Flag(); tile.GetStatus().Should().Be(TileStatus.Flagged); }
public void Revealing_an_untouched_tile_should_set_status_to_clicked() { var tile = new MineTile(); tile.GetStatus().Should().Be(TileStatus.Untouched); tile.Reveal(); tile.GetStatus().Should().Be(TileStatus.Revealed); }
public void Clicking_a_mine_tile_should_mark_it_clicked() { var tile = new MineTile(); tile.GetStatus().Should().Be(TileStatus.Untouched); tile.Click(); tile.GetStatus().Should().Be(TileStatus.Revealed); }
public override void OnInspectorGUI() { MineTile e = (MineTile)target; serializedObject.Update(); DrawSpritePreview(sprite, tile.sprite); EditorGUILayout.PropertyField(colliderType); serializedObject.ApplyModifiedProperties(); }
public void Flagging_a_clicked_tile_should_throw_an_error() { var tile = new MineTile(); tile.Click(); tile.GetStatus().Should().Be(TileStatus.Revealed); var ex = Assert.Throws <InvalidOperationException>(() => tile.Flag()); ex.Message.Should().Be("Cannot flag a clicked tile."); }
public void Flagging_a_flagged_tile_should_do_nothing() { var tile = new MineTile(); tile.Flag(); tile.GetStatus().Should().Be(TileStatus.Flagged); tile.Flag(); tile.GetStatus().Should().Be(TileStatus.Flagged); }
public void Clicking_a_mine_tile_should_remove_the_flag() { var tile = new MineTile(); tile.Flag(); tile.GetStatus().Should().Be(TileStatus.Flagged); tile.Click(); tile.GetStatus().Should().Be(TileStatus.Untouched); }
public void Revealing_a_flagged_tile_should_set_status_to_clicked() { var tile = new MineTile(); tile.Flag(); tile.GetStatus().Should().Be(TileStatus.Flagged); tile.Reveal(); tile.GetStatus().Should().Be(TileStatus.Revealed); }
public void Revealing_a_clicked_tile_should_do_nothing() { var tile = new MineTile(); tile.Click(); tile.GetStatus().Should().Be(TileStatus.Revealed); tile.Reveal(); tile.GetStatus().Should().Be(TileStatus.Revealed); }
public StructureTile CreateStructureFromType(StructureType type, BaseTileData data) { StructureTile newTile = null; StructureBinding structureBinding = BuildingManager.Instance.StructuresTemplates.GetStructureBindingFromType(type); if (structureBinding != null) { switch (type) { case StructureType.PowerPlant: newTile = new PowerPlantTile(); break; case StructureType.Sawmill: newTile = new SawmillTile(); break; case StructureType.PumpingStation: newTile = new PumpingStationTile(); WaterClusterManager.Instance.RegisterPumpingStation(data); break; case StructureType.Village: newTile = new VillageTile(); break; case StructureType.Mine: newTile = new MineTile(); break; case StructureType.Relay: newTile = new RelayTile(); break; case StructureType.MainRelay: newTile = new MainRelayTile(); break; default: throw new MissingStructureTypeDefinitionException(); } data.structureTile = newTile; BuildingView building = Instantiate(structureBinding.building, data.worldPosition, Quaternion.identity, transform); building.dataTile = newTile; newTile._building = building; newTile.GridPosition = data.GridPosition; ResourcesManager.Instance.RegisterStructure(newTile); RelayManager.Instance.RegisterStructure(data); } return(newTile); }
void PlaceFlagOrQuestionMark(Vector3Int cursorPosition) { MineTile actualTile = markingArea.GetTile <MineTile>(cursorPosition); if (actualTile == container.empty) { markingArea.SetTile(cursorPosition, container.flag); flagsPositions.Add(cursorPosition); } else if (actualTile == container.flag) { markingArea.SetTile(cursorPosition, container.questionMark); flagsPositions.Remove(cursorPosition); } else if (actualTile == container.questionMark) { markingArea.SetTile(cursorPosition, container.empty); } }
public void Init() { empty = Resources.Load <MineTile>(path + "Empty"); mine = Resources.Load <MineTile>(path + "Mine"); hitMine = Resources.Load <MineTile>(path + "hitMine"); notMine = Resources.Load <MineTile>(path + "notMine"); flag = Resources.Load <MineTile>(path + "flag"); questionMark = Resources.Load <MineTile>(path + "questionMark"); numbers[0] = Resources.Load <MineTile>(path + "zero"); numbers[1] = Resources.Load <MineTile>(path + "one"); numbers[2] = Resources.Load <MineTile>(path + "two"); numbers[3] = Resources.Load <MineTile>(path + "tree"); numbers[4] = Resources.Load <MineTile>(path + "four"); numbers[5] = Resources.Load <MineTile>(path + "five"); numbers[6] = Resources.Load <MineTile>(path + "six"); numbers[7] = Resources.Load <MineTile>(path + "seven"); numbers[8] = Resources.Load <MineTile>(path + "eight"); }
private void AddMine(Point mine, string mineDescription) { if (_tiles == null) { return; } int x = mine.X ?? 0; int y = mine.Y ?? 0; if (!IsInsideBoard(x, y)) { throw new IndexOutOfBoardException(mineDescription, x, y); } if (!IsEmptySpace(x, y)) { throw new IndexOcupiedException(mineDescription, x, y); } _tiles[x, y] = new MineTile(); }