Beispiel #1
0
        public BaseField AddField(Direction location, BaseField field, bool updateRowColumn = true)
        {
            _fieldDictionary[location] = field;

            if (updateRowColumn)
            {
                field.Row = Row;
                field.Column = Column;

                switch (location)
                {
                    case Direction.Up:
                        field.Row = Row + 1;
                        break;
                    case Direction.Down:
                        field.Row = Row - 1;
                        break;
                    case Direction.Left:
                        field.Column = Column - 1;
                        break;
                    case Direction.Right:
                        field.Column = Column + 1;
                        break;
                }
            }

            if (field.GetField(location.Opposite()) == null)
                field.AddField(location.Opposite(), this, false);
            
            return this;
        }
Beispiel #2
0
        public BaseField AddField(Direction location, int count, Type fieldType)
        {
            BaseField newField = this;

            for (int i = 0; i < count; i++)
            {
                BaseField tempNewField = Activator.CreateInstance(fieldType) as BaseField;
                newField.AddField(location, tempNewField);

                newField = tempNewField;
            }
            return(this);
        }
Beispiel #3
0
        BaseField CreateSeventhRow(BaseField sixth)
        {
            sixth.AddField(Direction.Up, new CityField());

            var seventh = sixth.GetField(Direction.Up);

            seventh.AddField(Direction.Right, 8, typeof(CityField));

            var b1 = seventh.GetField(Direction.Right, 4) as CityField;
            AddBaricade(b1);            

            seventh.GetField(Direction.Right, 8)
                   .AddField(Direction.Down, sixth.GetField(Direction.Right, 8));

            return seventh;
        }
Beispiel #4
0
        public BaseField AddField(Direction location, BaseField field, bool updateRowColumn = true)
        {
            _fieldDictionary[location] = field;

            if (updateRowColumn)
            {
                field.Row    = Row;
                field.Column = Column;

                switch (location)
                {
                case Direction.Up:
                    field.Row = Row + 1;
                    break;

                case Direction.Down:
                    field.Row = Row - 1;
                    break;

                case Direction.Left:
                    field.Column = Column - 1;
                    break;

                case Direction.Right:
                    field.Column = Column + 1;
                    break;
                }
            }

            if (field.GetField(location.Opposite()) == null)
            {
                field.AddField(location.Opposite(), this, false);
            }

            return(this);
        }
Beispiel #5
0
        BaseField CreateSecondRow(BaseField first)
        {
            var second = first.AddField(Direction.Up, new RestingField())
                                        .GetField(Direction.Up);

            second.AddField(Direction.Right);

            second.GetField(Direction.Right)
                  .AddField(Direction.Right, new RestingField());

            second.GetField(Direction.Right, 2)
                  .AddField(Direction.Right, 2);

            second.GetField(Direction.Right, 4)
                  .AddField(Direction.Right, new RestingField());

            second.GetField(Direction.Right, 5)
                  .AddField(Direction.Right, 2);

            second.GetField(Direction.Right, 7)
                  .AddField(Direction.Right, new RestingField());

            second.GetField(Direction.Right, 8)
                  .AddField(Direction.Right);

            second.GetField(Direction.Right, 9)
                  .AddField(Direction.Right, new RestingField());

            // Link First & Second
            first.GetField(Direction.Right, 2)
               .AddField(Direction.Up, second.GetField(Direction.Right, 2));

            first.GetField(Direction.Right, 5)
               .AddField(Direction.Up, second.GetField(Direction.Right, 5));

            first.GetField(Direction.Right, 8)
               .AddField(Direction.Up, second.GetField(Direction.Right, 8));

            first.GetField(Direction.Right, 10)
               .AddField(Direction.Up, second.GetField(Direction.Right, 10));

            return second;
        }
Beispiel #6
0
        BaseField CreateFifthRow(BaseField fourth)
        {
            var fifth = fourth.AddField(Direction.Up, new CityField())
                  .GetField(Direction.Up);

            fifth.AddField(Direction.Right, 6, typeof(CityField));

            var b1 = fifth.GetField(Direction.Right, 2) as CityField;
            AddBaricade(b1);

            var b2 = fifth.GetField(Direction.Right, 4) as CityField;
            AddBaricade(b2);

            fourth.GetField(Direction.Right, 6)
                  .AddField(Direction.Up, fifth.GetField(Direction.Right, 6));

            return fifth;
        }