feat: Started working on game dialogs
This commit is contained in:
parent
fdce5f2a62
commit
fc432caa58
@ -122,7 +122,7 @@ public class GameController {
|
||||
|
||||
playerRepository.save(player);
|
||||
|
||||
if (game.getKeyFragmentsAmount() >= 4) {
|
||||
if (game.getKeyFragmentsAmount() >= 5) {
|
||||
// All key fragments were found
|
||||
game.setWon(true);
|
||||
}
|
||||
|
@ -46,6 +46,7 @@ public class Character {
|
||||
@JoinColumn(name = "interaction_data_id", referencedColumnName = "id")
|
||||
private cz.jzitnik.chronos.entities.Interaction interactionData;
|
||||
|
||||
@Lob
|
||||
private String dialog;
|
||||
|
||||
public Character(String name, Room room, String dialog) {
|
||||
|
@ -80,6 +80,6 @@ public class Game {
|
||||
|
||||
var unplayedCharacters = characters.stream().filter(character -> !character.isInteractedWith()).toList().size();
|
||||
|
||||
return (roomItems + unplayedCharacters + ownedFragments) >= (4 - keyFragmentsAmount);
|
||||
return (roomItems + unplayedCharacters + ownedFragments) >= (5 - keyFragmentsAmount);
|
||||
}
|
||||
}
|
||||
|
@ -61,7 +61,7 @@ public class RockPaperScissors implements InteractionPlayer {
|
||||
} else {
|
||||
character.setInteractedWith(true);
|
||||
characterRepository.save(character);
|
||||
return new InteractionResponse(false, "Prohrál jsi. Žádný fragment klíče ode mě už nedostaneš. Zkus to u někoho jiného.", new ArrayList<>());
|
||||
return new InteractionResponse(false, "Prohrál jsi. Žádný fragment klíče ode mě nedostaneš. Zkus to u někoho jiného.", new ArrayList<>());
|
||||
}
|
||||
} else {
|
||||
// Standard rock-paper-scissors game logic
|
||||
|
@ -201,13 +201,16 @@ public class TicTacToe implements InteractionPlayer {
|
||||
characterRepository.save(character);
|
||||
}
|
||||
|
||||
var items = new ArrayList<Item>();
|
||||
|
||||
if (type == TicTacToeResponse.Type.GAME_WON) {
|
||||
var item = new Item(ItemType.KEY_FRAGMENT, character.getInteractionData().getPlayer());
|
||||
items.add(item);
|
||||
itemService.addItem(character.getInteractionData().getPlayer(), item);
|
||||
}
|
||||
|
||||
var response = new TicTacToeResponse(type, board, false);
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
return new InteractionResponse(true, objectMapper.writeValueAsString(response), new ArrayList<>());
|
||||
return new InteractionResponse(true, objectMapper.writeValueAsString(response), items);
|
||||
}
|
||||
}
|
||||
|
@ -22,7 +22,13 @@ public class InitGameService {
|
||||
var elf = new Character(
|
||||
"Skřítek",
|
||||
outside,
|
||||
"Ahoj já jsem skřítek... Můj dialog doplnit"
|
||||
"Ahoj, vím že se teď asi ptáš co tu děláš a tak dále a tak dále, ale teď na to není prostor. "
|
||||
+ "Zastavil se tu totiž čas a já potřebuji abys mi pomohl ho dát zpět do pochodu. "
|
||||
+ "Musíš najít 5 fragmentů klíče a přinést je zpět na náměstí, kde je vhodíš do brány času, a vše znovu obživne. "
|
||||
+ "Čeká tě spousta úkolů které musíš splnit na to aby jsi dostal/a fragmenty klíče. "
|
||||
+ "Taky ode mě dostaneš lektvar štěstí který ti pomůže u farmáře. "
|
||||
+ "Ale nezapomeň, v batohu můžeš nést maximálně jen tři věci. "
|
||||
+ "No nic, jdi udělat to co máš. Hodně štěstí!"
|
||||
);
|
||||
elf_items.add(new Item(ItemType.LUCK_POTION, elf));
|
||||
elf.setInventory(elf_items);
|
||||
@ -38,12 +44,15 @@ public class InitGameService {
|
||||
var farmar = new Character(
|
||||
"Farmář",
|
||||
stodola,
|
||||
"Ahoj já jsem farmář a budeš se mnou hrát kámen nůžky papír. Dialog doplnit."
|
||||
"Ahoj! Určitě už víš co se stalo, zastavil se čas a skřítek ho potřebuje znovu obnovit. "
|
||||
+ "Ale mně se to takhle líbí, proto ti fragment klíče nedám jen tak zadarmo. "
|
||||
+ "Musíš si semnou zahrát kámen, nůžky papír. Pokud vyhraješ, dám ti fragment klíče. "
|
||||
+ "Pokud ne, tak ti fragment klíče už nikdy nedám. Hodně štěstí, budeš ho potřebovat."
|
||||
);
|
||||
farmar.setInteraction(Interaction.Farmer);
|
||||
farmar.setInteractionData(new cz.jzitnik.chronos.entities.Interaction(
|
||||
"Tak si zahrajeme kámen nůžky papír",
|
||||
"Se mnou někdo již hrál kámen nůžky papír. Další fragment klíče nemám.",
|
||||
"",
|
||||
"Už si semnou zahrát nemůžeš, někdo tu byl před tebou a dostal ode mě fragment klíče.",
|
||||
farmar
|
||||
));
|
||||
stodola_characters.add(farmar);
|
||||
@ -58,12 +67,14 @@ public class InitGameService {
|
||||
var cashier = new Character(
|
||||
"Prodavač",
|
||||
shop,
|
||||
"Ahoj já jsem prodavač a budeš se mnou hrát šibenici."
|
||||
"Dobrý den přejete si něco? Ne? Co teda chcete? Joo fragment klíče. To ale nepůjde jen tak snadno. "
|
||||
+ "Nejdřív si se mnou musíš zahrát šibenici, jestli vyhraješ tak ti samozřejmě dám fragment klíče ale pokud ne... "
|
||||
+ "tak tě na tu šibenici pověsím! Ne dělám si srandu. Pojď si zahrát."
|
||||
);
|
||||
cashier.setInteraction(Interaction.Cashier);
|
||||
cashier.setInteractionData(new cz.jzitnik.chronos.entities.Interaction(
|
||||
"Tak si zahrajeme šibenici",
|
||||
"Se mnou někdo již hrál šibenici. Další fragment klíče nemám.",
|
||||
"",
|
||||
"Už si semnou zahrát nemůžeš, někdo tu byl před tebou a dostal ode mě fragment klíče.",
|
||||
cashier
|
||||
));
|
||||
shop_characters.add(cashier);
|
||||
|
@ -111,7 +111,7 @@ public class TicTacToe {
|
||||
return askForMove(board);
|
||||
}
|
||||
|
||||
if (!board[move].equals("_")) {
|
||||
if (!board[move - 1].equals("_")) {
|
||||
Cli.error("Toto pole již bylo obsazeno!");
|
||||
return askForMove(board);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user