1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167module rec Duets.Data.World.Cities.Prague.NovéMěsto
open Duets.Data.World.Cities.Prague
open Duets.Data.World.Cities
open Duets.Entities
open Duets.Entities.Calendar
let václavskéNáměstí (city: City) (zone: Zone) =
let street =
World.Street.create
Ids.Street.václavskéNáměstí
(StreetType.Split(North, 3))
|> World.Street.attachContext
"""
Wenceslas Square is actually a broad boulevard rather than a traditional square,
serving as Prague's commercial and cultural heart. The upper end features
the monumental National Museum building and the iconic equestrian statue of Saint Wenceslas.
The boulevard is lined with hotels, restaurants, shops, and Art Nouveau
buildings including the famous Hotel Evropa. Historic significance marks every corner
this was the site of major political demonstrations including the 1989 Velvet Revolution.
The atmosphere is cosmopolitan and bustling, with street vendors, tourists,
and locals mixing in equal measure. At night, neon signs illuminate the wide promenade.
"""
let carDealers =
[ ("Praha Premium Motors",
93<quality>,
zone.Id,
{ Dealer =
(Character.from
"Viktor Černý"
Male
(Shorthands.Winter 9<days> 1977<years>))
PriceRange = CarPriceRange.Premium }) ]
|> List.map (PlaceCreators.createCarDealer street.Id)
let casinos =
[ ("Casino Admiral", 88<quality>, zone.Id) ]
|> List.map (PlaceCreators.createCasino street.Id)
let bars =
[ ("The Alchemist Bar", 92<quality>, zone.Id) ]
|> List.map (PlaceCreators.createBar street.Id)
let restaurants =
[ ("Výtopna Railway Restaurant", 88<quality>, Czech, zone.Id) ]
|> List.map (PlaceCreators.createRestaurant street.Id)
let hospitals =
[ ("General University Hospital", 95<quality>, zone.Id) ]
|> List.map (PlaceCreators.createHospital street.Id)
let radioStudios =
[ ("Radio 1", 92<quality>, "Pop", zone.Id) ]
|> List.map (PlaceCreators.createRadioStudio city street.Id)
let metroStation =
("Můstek Station", zone.Id) |> (PlaceCreators.createMetro street.Id)
let street =
street
|> World.Street.addPlaces carDealers
|> World.Street.addPlaces casinos
|> World.Street.addPlaces bars
|> World.Street.addPlaces restaurants
|> World.Street.addPlaces hospitals
|> World.Street.addPlaces radioStudios
|> World.Street.addPlace metroStation
street, metroStation
let vodičkova (zone: Zone) =
let street =
World.Street.create "Vodičkova" StreetType.OneWay
|> World.Street.attachContext
"""
Vodičkova is a busy commercial street connecting Wenceslas Square to the
Vltava River area, characterized by its shopping arcades and historic passages.
The famous Lucerna Palace complex, built by Václav Havel's grandfather,
dominates the street with its Art Nouveau architecture and the iconic upside-down horse statue.
Pedestrian traffic is constant, with shoppers moving between department stores and boutiques.
The street features a mix of architectural styles from different eras, with ornate
early 20th-century facades alongside more utilitarian communist-era buildings.
Underground passages connect to the metro and various shopping arcades.
"""
let concertSpaces =
[ ("Lucerna Music Bar",
800,
90<quality>,
Layouts.concertSpaceLayout1,
zone.Id) ]
|> List.map (PlaceCreators.createConcertSpace street.Id)
street |> World.Street.addPlaces concertSpaces
let národní (zone: Zone) =
let street =
World.Street.create Ids.Street.národní StreetType.OneWay
|> World.Street.attachContext
"""
Národní třída (National Avenue) runs from Wenceslas Square to the Vltava River,
passing through the heart of cultural Prague. The street is anchored by the
majestic National Theatre with its golden roof, a symbol of Czech national revival.
Along the route, numerous cultural institutions, cafes, and historic buildings
line the wide sidewalks. The street witnessed pivotal moments in Czech history,
particularly during the 1989 demonstrations. Art Nouveau and neo-Renaissance
architecture predominates, with the famous Café Louvre maintaining its historic
interiors. The atmosphere is intellectual and cultural, with theater-goers,
students, and artists frequenting the area.
"""
let merchandiseWorkshops =
[ ("Tiskárna Praha", zone.Id) ]
|> List.map (PlaceCreators.createMerchandiseWorkshop street.Id)
let concertSpaces =
[ ("National Theatre",
1000,
95<quality>,
Layouts.concertSpaceLayout4,
zone.Id)
("Rock Café", 350, 88<quality>, Layouts.concertSpaceLayout2, zone.Id) ]
|> List.map (PlaceCreators.createConcertSpace street.Id)
let bars =
[ ("Bukowski's Bar", 86<quality>, zone.Id) ]
|> List.map (PlaceCreators.createBar street.Id)
let restaurants =
[ ("Café Louvre", 90<quality>, French, zone.Id) ]
|> List.map (PlaceCreators.createRestaurant street.Id)
let hotels =
[ ("Hotel Perla", 85<quality>, 120m<dd>, zone.Id) ]
|> List.map (PlaceCreators.createHotel street.Id)
street
|> World.Street.addPlaces merchandiseWorkshops
|> World.Street.addPlaces concertSpaces
|> World.Street.addPlaces bars
|> World.Street.addPlaces restaurants
|> World.Street.addPlaces hotels
let createZone city =
let novéMěstoZone = World.Zone.create Ids.Zone.novéMěsto
let václavskéNáměstí, metroStation = václavskéNáměstí city novéMěstoZone
let národní = národní novéMěstoZone
let vodičkova = vodičkova novéMěstoZone
let station =
{ Lines = [ Red; Blue ]
LeavesToStreet = václavskéNáměstí.Id
PlaceId = metroStation.Id }
novéMěstoZone
|> World.Zone.addStreet (
World.Node.create václavskéNáměstí.Id václavskéNáměstí
)
|> World.Zone.addStreet (World.Node.create národní.Id národní)
|> World.Zone.addStreet (World.Node.create vodičkova.Id vodičkova)
|> World.Zone.connectStreets václavskéNáměstí.Id národní.Id West
|> World.Zone.connectStreets václavskéNáměstí.Id vodičkova.Id South
|> World.Zone.addMetroStation station