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; }
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); }
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; }
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); }
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; }
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; }