示例#1
0
 public EraseCellEventActions(CellEventGenerator eventGenerator, CellMapper cellMapper, GameCameraController gameCameraController)
     : base(
         null,
         null,
         new ClickToEraseCellEvent(eventGenerator, cellMapper),
         new DragToMoveCamera(gameCameraController),
         null
         )
 {
 }
示例#2
0
        /// <summary>
        /// <paramref name="direction"/>方向に道路があるか返す
        /// </summary>
        private bool ExistsRoad(CellMapper mapper, CellEvent owner, Vector2Int direction)
        {
            var position = owner.Origin + direction;

            if (!mapper.CellEvent.Map.ContainsKey(position))
            {
                return(false);
            }

            return(mapper.CellEvent.Map[position] is IRoad);
        }
示例#3
0
 public ClickToDevelopCell(
     CellGenerator cellGenerator,
     CellMapper cellMapper,
     int replaceCellRecordId,
     int blankCellRecordId,
     int generateBlankRange
     )
 {
     this.cellGenerator       = cellGenerator;
     this.cellMapper          = cellMapper;
     this.replaceCellRecordId = replaceCellRecordId;
     this.blankCellRecordId   = blankCellRecordId;
     this.generateBlankRange  = generateBlankRange;
 }
示例#4
0
        public List <HoursLogTableTemp> ProcessFile(string fullPath)
        {
            using (var stream = File.Open(fullPath, FileMode.Open, FileAccess.Read))
            {
                IExcelDataReader reader;
                using (reader = ExcelReaderFactory.CreateReader(stream))
                {
                    var config = new ExcelDataSetConfiguration
                    {
                        ConfigureDataTable = r => new ExcelDataTableConfiguration
                        {
                            UseHeaderRow = false
                        }
                    };

                    var dataSet   = reader.AsDataSet(config);
                    var dataTable = dataSet.Tables;
                    var rows      = dataTable[0].Rows;
                    var columns   = dataTable[0].Columns;

                    var hoursLogged = new List <HoursLogTableTemp>();

                    for (var row = 0; row < rows.Count; row++)
                    {
                        var log = new HoursLogTableTemp
                        {
                            RowID   = 0,
                            RowData = new List <string>()
                        };

                        var cell = new CellMapper();

                        for (var col = 0; col < columns.Count; col++)
                        {
                            log.RowID = row;
                            log.RowData.Add((rows[row][col]).ToString());
                        }

                        log.ColCount = columns.Count;
                        hoursLogged.Add(log);
                    }
                    return(hoursLogged);
                }
            }
        }
示例#5
0
        private void Restore_QP()
        {
            var column_F  = tables.BazaInfoHydro.Column("F");
            var column_QP = tables.CalcsHydro.Column("QP");

            var equationName = "QP = b * F";

            var cellMapper = CellMapper.Combine(new ZeroOrGreaterCellMapper(),
                                                new RoundDoubleCellMapper(5));

            CalcUtils.RestoreColumn(tables.CoeffsTable,
                                    column_F, column_QP,
                                    cellMapper, equationName,
                                    false);

            tables.Result.Column("QP").SetDataFrom(
                tables.CalcsHydro.Column("QP_Used"));
        }
示例#6
0
 public DevelopCellActions(
     CellGenerator cellGenerator,
     CellMapper cellMapper,
     int replaceCellRecordId,
     int blankCellRecordId,
     int generateBlankRange,
     GameCameraController gameCameraController
     )
     : base(
         null,
         null,
         new ClickToDevelopCell(
             cellGenerator,
             cellMapper,
             replaceCellRecordId,
             blankCellRecordId,
             generateBlankRange
             ),
         new DragToMoveCamera(gameCameraController),
         null
         )
 {
 }
示例#7
0
 public ClickToEraseCellEvent(CellEventGenerator eventGenerator, CellMapper cellMapper)
 {
     this.eventGenerator = eventGenerator;
     this.cellMapper     = cellMapper;
 }
示例#8
0
        public Constants.CellEventGenerateEvalute CanGenerate(Cell origin, int cellEventRecordId, CellMapper cellMapper)
        {
            Assert.IsNotNull(this.condition);

            var cellPositions = Vector2IntUtility.GetRange(origin.Position, Vector2Int.one * this.size, p => cellMapper.Cell.Map.ContainsKey(p));

            // 配置したいところにセルがない場合は生成できない
            if (cellPositions.Count != this.size * this.size)
            {
                return(Constants.CellEventGenerateEvalute.NotCell);
            }

            // 配置したいセルにイベントがあった場合は生成できない
            var cells = cellMapper.GetCells(cellPositions);

            if (Array.FindIndex(cells, c => cellMapper.HasEvent(c)) != -1)
            {
                return(Constants.CellEventGenerateEvalute.AlreadyExistsCellEvent);
            }

            // コストが満たしていない場合は生成できない
            var gameSystem = GameSystem.Instance;
            var masterData = gameSystem.MasterData.LevelUpCost.Records.Get(cellEventRecordId, 0);

            Assert.IsNotNull(masterData, $"CellEventRecordId = {cellEventRecordId}の{typeof(MasterDataLevelUpCost.Record)}がありませんでした");
            if (!masterData.Cost.IsEnough(gameSystem.User, gameSystem.MasterData.Item))
            {
                return(Constants.CellEventGenerateEvalute.NotEnoughCost);
            }

            // セルイベントごとの条件を満たしていない場合は生成できない
            if (!this.condition.Evalute(cells))
            {
                return(Constants.CellEventGenerateEvalute.NotEnoughCondition);
            }

            return(Constants.CellEventGenerateEvalute.Possible);
        }