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);
|
playerRepository.save(player);
|
||||||
|
|
||||||
if (game.getKeyFragmentsAmount() >= 4) {
|
if (game.getKeyFragmentsAmount() >= 5) {
|
||||||
// All key fragments were found
|
// All key fragments were found
|
||||||
game.setWon(true);
|
game.setWon(true);
|
||||||
}
|
}
|
||||||
|
@ -46,6 +46,7 @@ public class Character {
|
|||||||
@JoinColumn(name = "interaction_data_id", referencedColumnName = "id")
|
@JoinColumn(name = "interaction_data_id", referencedColumnName = "id")
|
||||||
private cz.jzitnik.chronos.entities.Interaction interactionData;
|
private cz.jzitnik.chronos.entities.Interaction interactionData;
|
||||||
|
|
||||||
|
@Lob
|
||||||
private String dialog;
|
private String dialog;
|
||||||
|
|
||||||
public Character(String name, Room room, 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();
|
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 {
|
} else {
|
||||||
character.setInteractedWith(true);
|
character.setInteractedWith(true);
|
||||||
characterRepository.save(character);
|
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 {
|
} else {
|
||||||
// Standard rock-paper-scissors game logic
|
// Standard rock-paper-scissors game logic
|
||||||
|
@ -201,13 +201,16 @@ public class TicTacToe implements InteractionPlayer {
|
|||||||
characterRepository.save(character);
|
characterRepository.save(character);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var items = new ArrayList<Item>();
|
||||||
|
|
||||||
if (type == TicTacToeResponse.Type.GAME_WON) {
|
if (type == TicTacToeResponse.Type.GAME_WON) {
|
||||||
var item = new Item(ItemType.KEY_FRAGMENT, character.getInteractionData().getPlayer());
|
var item = new Item(ItemType.KEY_FRAGMENT, character.getInteractionData().getPlayer());
|
||||||
|
items.add(item);
|
||||||
itemService.addItem(character.getInteractionData().getPlayer(), item);
|
itemService.addItem(character.getInteractionData().getPlayer(), item);
|
||||||
}
|
}
|
||||||
|
|
||||||
var response = new TicTacToeResponse(type, board, false);
|
var response = new TicTacToeResponse(type, board, false);
|
||||||
ObjectMapper objectMapper = new ObjectMapper();
|
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(
|
var elf = new Character(
|
||||||
"Skřítek",
|
"Skřítek",
|
||||||
outside,
|
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_items.add(new Item(ItemType.LUCK_POTION, elf));
|
||||||
elf.setInventory(elf_items);
|
elf.setInventory(elf_items);
|
||||||
@ -38,12 +44,15 @@ public class InitGameService {
|
|||||||
var farmar = new Character(
|
var farmar = new Character(
|
||||||
"Farmář",
|
"Farmář",
|
||||||
stodola,
|
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.setInteraction(Interaction.Farmer);
|
||||||
farmar.setInteractionData(new cz.jzitnik.chronos.entities.Interaction(
|
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
|
farmar
|
||||||
));
|
));
|
||||||
stodola_characters.add(farmar);
|
stodola_characters.add(farmar);
|
||||||
@ -58,12 +67,14 @@ public class InitGameService {
|
|||||||
var cashier = new Character(
|
var cashier = new Character(
|
||||||
"Prodavač",
|
"Prodavač",
|
||||||
shop,
|
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.setInteraction(Interaction.Cashier);
|
||||||
cashier.setInteractionData(new cz.jzitnik.chronos.entities.Interaction(
|
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
|
cashier
|
||||||
));
|
));
|
||||||
shop_characters.add(cashier);
|
shop_characters.add(cashier);
|
||||||
|
@ -111,7 +111,7 @@ public class TicTacToe {
|
|||||||
return askForMove(board);
|
return askForMove(board);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!board[move].equals("_")) {
|
if (!board[move - 1].equals("_")) {
|
||||||
Cli.error("Toto pole již bylo obsazeno!");
|
Cli.error("Toto pole již bylo obsazeno!");
|
||||||
return askForMove(board);
|
return askForMove(board);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user