Closed JakubBrojacz closed 4 years ago
Czy w takim razie powinniśmy dodać do wiadomości zwrotnej od GMa o wykonaniu ruchu (108) pole "holding" informujące o tym, że agent trzyma teraz kawałek (bo wszedł na pole, na którym leżał kawałek)? Czy może skoro w wiadomości od GMa jest closestPiece (odległość do najbliższego kawałka) to agent powinien się sam domyślić, że podniósł kawałek, jeśli closestPiece wynosi 0? A jak Game Master wygenerował kawałek na polu, na którym stoi agent (i automatycznie przekazujemy ten kawałek agentowi) powinniśmy mu wysłać wiadomość PickUp, czy w ogóle mu nie mówić? Jeśliby dodać pole "holding" do wiadomości zwrotnej o ruchu (108) to wtedy problem wygenerowania kawałka na agencie częściowo rozwiązywałby się sam, bo wtedy agent dowiadywałby się przy następnym ruchu, że trzyma kawałek.
To jaką decyzję podejmujemy? Bo przydałoby się to już wyjaśnić. Proponuję, albo zostawić tę wersję, że to agent zawsze podejmuje decyzję, czy chce podnieść kawałek, albo dodać to dodatkowe pole w wiadomości informujące, czy podniesiono kawałek (chociaż jeżeli będzie dodatkowe pole, to pojawia się pytanie jaką odległość zwrócić, jeżeli agent wszedł na kawałek - zero, czy do kolejnego kawałka). Jeżeli zawsze miałoby to się dziać automatycznie, to chyba w ogóle nie potrzebujemy akcji podniesienia. Jeżeli ta akcja miałaby zostać, to w pliku konfiguracyjnym GM nie ma kary za tę akcję.
Automatyczne podnoszenie kawałka tylko komplikuje i unicestwia akcję discovery poniekąd oraz akcję pickpiece
Automatyczne podnoszenie kawałka nie wpływa na akcję discovery. Jedynie sprawia że akcja pickpiece przestaje mieć sens.
"Odłożenie wygenerowanego przez Game Mastera fragmentu na pole na którym znajduje sie Agent, skutkuje natychmiastowym podniesieniem fragmentu przez tego Agenta" psuje też koncepcję tego że większość wiadomości od GMa do Agenta jest odpowiedzią na żądanie Agenta, bo należałoby przekazać Agentowi tę informację.
"Odłożenie wygenerowanego przez Game Mastera fragmentu na pole na którym znajduje sie Agent, skutkuje natychmiastowym podniesieniem fragmentu przez tego Agenta" psuje też koncepcję tego że większość wiadomości od GMa do Agenta jest odpowiedzią na żądanie Agenta, bo należałoby przekazać Agentowi tę informację.
Właściwie to wtedy trzeba by to przekazywać w odpowiedzi na akcję zniszczenia/odłożenia kawałka - #70
Agent powinien odbierać to czy dostaje kawałek w odpowiedzi na żądanie ruchu. Wtedy GM już przed wysyłaniem takiej odpowiedzi wkładałby kawałek do swojego modelu gracza. A gracz automatycznie ustawiał by sobie wtedy, że ma kawałek.
Właściwie to wtedy trzeba by to przekazywać w odpowiedzi na akcję zniszczenia/odłożenia kawałka - #70
Właśnie nie do końca, bo co jesli gracz sie nie ruszy a GM wygeneruje kawałek tam gdzie on stoi. Musiałoby to byc przekazane asynchronicznie. Dlatego może żeby uniknąć niejasności z automatycznym podnoszeniem łatwiej byłoby podnosić tylko gdy gracz tego zażądał.
Z jednej strony w wiadomościach agenta mamy wiadomość z kodem 008 o podniesienie fragmentu i w diagramach też mamy, że agent ma wysyłać prośbę o podniesienie, a z drugiej w module GM, Abstract Field, metoda PickUp(Player) jest napisane:
Metoda abstrakcyjna, która podnosi fragment z planszy i przypisuje go do gracza. Wywoływana jest na wejście gracza (przemieszczenie się gracza do tego pola) do danego pola
, czyli jej wywoływana automatycznie; tak samo w zasadach gry o fragmentach:Odłożenie wygenerowanego przez Game Mastera fragmentu na pole na którym znajduje się Agent, skutkuje natychmiastowym podniesieniem fragmentu przez tego Agenta, jeśli nie trzyma on już innego fragmentu.
Pytanie o doprecyzowanie: W jakich warunkach agent podnosi fragment automatycznie i w jaki sposób przekazać mu, że otrzymał taki fragment jeśli zrobił to automatycznie?Częściowo omawiane w #26