generated from VLADIMIR/template
add dialogs
This commit is contained in:
parent
856f12f2e3
commit
edd3db35ae
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@ -3,6 +3,7 @@
|
|||||||
"ввода",
|
"ввода",
|
||||||
"внимательно",
|
"внимательно",
|
||||||
"Детективы",
|
"Детективы",
|
||||||
|
"диалога",
|
||||||
"диалогом",
|
"диалогом",
|
||||||
"корректный",
|
"корректный",
|
||||||
"Можно",
|
"Можно",
|
||||||
@ -14,10 +15,12 @@
|
|||||||
"открытую",
|
"открытую",
|
||||||
"открыть",
|
"открыть",
|
||||||
"получение",
|
"получение",
|
||||||
|
"после",
|
||||||
"правила",
|
"правила",
|
||||||
"Приложение",
|
"Приложение",
|
||||||
"приложением",
|
"приложением",
|
||||||
"проходами",
|
"проходами",
|
||||||
|
"проходом",
|
||||||
"скрытой",
|
"скрытой",
|
||||||
"скрытую",
|
"скрытую",
|
||||||
"существует",
|
"существует",
|
||||||
|
|||||||
@ -79,7 +79,7 @@ func (s *StoryService) GetPlace(code string) *models.Place {
|
|||||||
func (s *StoryService) GetPlaces(codes []string) []*models.Place {
|
func (s *StoryService) GetPlaces(codes []string) []*models.Place {
|
||||||
places := make([]*models.Place, 0, 100)
|
places := make([]*models.Place, 0, 100)
|
||||||
m := map[string]any{}
|
m := map[string]any{}
|
||||||
for _, code := range codes {
|
for i, code := range codes {
|
||||||
place := s.GetPlace(code)
|
place := s.GetPlace(code)
|
||||||
_, ok := m[place.Code]
|
_, ok := m[place.Code]
|
||||||
if place.Hidden && !ok {
|
if place.Hidden && !ok {
|
||||||
@ -89,6 +89,17 @@ func (s *StoryService) GetPlaces(codes []string) []*models.Place {
|
|||||||
for _, door := range place.Doors {
|
for _, door := range place.Doors {
|
||||||
m[door.Code] = struct{}{}
|
m[door.Code] = struct{}{}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if i > 0 {
|
||||||
|
for j := range places[i-1].Doors {
|
||||||
|
if places[i-1].Doors[j].Code != place.Code {
|
||||||
|
if places[i-1].Doors[j].Show {
|
||||||
|
places[i-1].Doors[j].Show = false
|
||||||
|
delete(m, places[i-1].Doors[j].Code)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return places
|
return places
|
||||||
}
|
}
|
||||||
|
|||||||
@ -203,6 +203,7 @@ func TestStoryService_GetPlaces(t *testing.T) {
|
|||||||
"Текст",
|
"Текст",
|
||||||
models.WithPlaceDoors(
|
models.WithPlaceDoors(
|
||||||
models.NewDoor("Ы-2", "Название"),
|
models.NewDoor("Ы-2", "Название"),
|
||||||
|
models.NewDoor("Ы-3", "Название"),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
models.NewPlace(
|
models.NewPlace(
|
||||||
@ -211,9 +212,15 @@ func TestStoryService_GetPlaces(t *testing.T) {
|
|||||||
"Текст",
|
"Текст",
|
||||||
models.WithPlaceHidden(true),
|
models.WithPlaceHidden(true),
|
||||||
),
|
),
|
||||||
|
models.NewPlace(
|
||||||
|
"Ы-3",
|
||||||
|
"Название",
|
||||||
|
"Текст",
|
||||||
|
models.WithPlaceHidden(true),
|
||||||
|
),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
codes: []string{"Ы-1", "Ы-2"},
|
codes: []string{"Ы-1", "Ы-2", "Ы-3"},
|
||||||
want: []*models.Place{
|
want: []*models.Place{
|
||||||
models.NewPlace(
|
models.NewPlace(
|
||||||
"Ы-1",
|
"Ы-1",
|
||||||
@ -221,6 +228,7 @@ func TestStoryService_GetPlaces(t *testing.T) {
|
|||||||
"Текст",
|
"Текст",
|
||||||
models.WithPlaceDoors(
|
models.WithPlaceDoors(
|
||||||
models.NewDoor("Ы-2", "Название"),
|
models.NewDoor("Ы-2", "Название"),
|
||||||
|
models.NewDoor("Ы-3", "Название"),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
models.NewPlace(
|
models.NewPlace(
|
||||||
@ -229,6 +237,163 @@ func TestStoryService_GetPlaces(t *testing.T) {
|
|||||||
"Текст",
|
"Текст",
|
||||||
models.WithPlaceHidden(true),
|
models.WithPlaceHidden(true),
|
||||||
),
|
),
|
||||||
|
models.NewPlace(
|
||||||
|
"Ы-3",
|
||||||
|
"Название",
|
||||||
|
"Текст",
|
||||||
|
models.WithPlaceHidden(true),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Открываем скрытую точку диалога",
|
||||||
|
story: &models.Story{
|
||||||
|
Places: []*models.Place{
|
||||||
|
models.NewPlace(
|
||||||
|
"Ы-1",
|
||||||
|
"Название",
|
||||||
|
"Текст",
|
||||||
|
models.WithPlaceDoors(
|
||||||
|
models.NewDoor("Ы-2", "Название", models.WithDoorShow(true)),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
models.NewPlace(
|
||||||
|
"Ы-2",
|
||||||
|
"Название",
|
||||||
|
"Текст",
|
||||||
|
models.WithPlaceHidden(true),
|
||||||
|
),
|
||||||
|
models.NewPlace(
|
||||||
|
"Ы-3",
|
||||||
|
"Название",
|
||||||
|
"Текст",
|
||||||
|
),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
codes: []string{"Ы-1", "Ы-3", "Ы-2"},
|
||||||
|
want: []*models.Place{
|
||||||
|
models.NewPlace(
|
||||||
|
"Ы-1",
|
||||||
|
"Название",
|
||||||
|
"Текст",
|
||||||
|
models.WithPlaceDoors(
|
||||||
|
models.NewDoor("Ы-2", "Название", models.WithDoorShow(false)),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
models.NewPlace(
|
||||||
|
"Ы-3",
|
||||||
|
"Название",
|
||||||
|
"Текст",
|
||||||
|
),
|
||||||
|
models.NewNotFoundPlace("Ы-2"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Открываем скрытую точку диалога",
|
||||||
|
story: &models.Story{
|
||||||
|
Places: []*models.Place{
|
||||||
|
models.NewPlace(
|
||||||
|
"Ы-1",
|
||||||
|
"Название",
|
||||||
|
"Текст",
|
||||||
|
models.WithPlaceDoors(
|
||||||
|
models.NewDoor("Ы-2", "Название", models.WithDoorShow(true)),
|
||||||
|
models.NewDoor("Ы-3", "Название", models.WithDoorShow(true)),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
models.NewPlace(
|
||||||
|
"Ы-2",
|
||||||
|
"Название",
|
||||||
|
"Текст",
|
||||||
|
models.WithPlaceHidden(true),
|
||||||
|
),
|
||||||
|
models.NewPlace(
|
||||||
|
"Ы-3",
|
||||||
|
"Название",
|
||||||
|
"Текст",
|
||||||
|
models.WithPlaceHidden(true),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
codes: []string{"Ы-1", "Ы-2", "Ы-3"},
|
||||||
|
want: []*models.Place{
|
||||||
|
models.NewPlace(
|
||||||
|
"Ы-1",
|
||||||
|
"Название",
|
||||||
|
"Текст",
|
||||||
|
models.WithPlaceDoors(
|
||||||
|
models.NewDoor("Ы-2", "Название", models.WithDoorShow(true)),
|
||||||
|
models.NewDoor("Ы-3", "Название", models.WithDoorShow(false)),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
models.NewPlace(
|
||||||
|
"Ы-2",
|
||||||
|
"Название",
|
||||||
|
"Текст",
|
||||||
|
models.WithPlaceHidden(true),
|
||||||
|
),
|
||||||
|
models.NewNotFoundPlace("Ы-3"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Открываем скрытую точку после диалога",
|
||||||
|
story: &models.Story{
|
||||||
|
Places: []*models.Place{
|
||||||
|
models.NewPlace(
|
||||||
|
"Ы-1",
|
||||||
|
"Название",
|
||||||
|
"Текст",
|
||||||
|
models.WithPlaceDoors(
|
||||||
|
models.NewDoor("Ы-2", "Название", models.WithDoorShow(true)),
|
||||||
|
models.NewDoor("Ы-3", "Название", models.WithDoorShow(true)),
|
||||||
|
models.NewDoor("Ы-4", "Название"),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
models.NewPlace(
|
||||||
|
"Ы-2",
|
||||||
|
"Название",
|
||||||
|
"Текст",
|
||||||
|
models.WithPlaceHidden(true),
|
||||||
|
),
|
||||||
|
models.NewPlace(
|
||||||
|
"Ы-3",
|
||||||
|
"Название",
|
||||||
|
"Текст",
|
||||||
|
models.WithPlaceHidden(true),
|
||||||
|
),
|
||||||
|
models.NewPlace(
|
||||||
|
"Ы-4",
|
||||||
|
"Название",
|
||||||
|
"Текст",
|
||||||
|
models.WithPlaceHidden(true),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
codes: []string{"Ы-1", "Ы-2", "Ы-3", "Ы-4"},
|
||||||
|
want: []*models.Place{
|
||||||
|
models.NewPlace(
|
||||||
|
"Ы-1",
|
||||||
|
"Название",
|
||||||
|
"Текст",
|
||||||
|
models.WithPlaceDoors(
|
||||||
|
models.NewDoor("Ы-2", "Название", models.WithDoorShow(true)),
|
||||||
|
models.NewDoor("Ы-3", "Название", models.WithDoorShow(false)),
|
||||||
|
models.NewDoor("Ы-4", "Название"),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
models.NewPlace(
|
||||||
|
"Ы-2",
|
||||||
|
"Название",
|
||||||
|
"Текст",
|
||||||
|
models.WithPlaceHidden(true),
|
||||||
|
),
|
||||||
|
models.NewNotFoundPlace("Ы-3"),
|
||||||
|
models.NewPlace(
|
||||||
|
"Ы-4",
|
||||||
|
"Название",
|
||||||
|
"Текст",
|
||||||
|
models.WithPlaceHidden(true),
|
||||||
|
),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user