CoompanionApp/shared/help-catalog.ts

539 lines
14 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

export type HelpLocale = "en" | "fr";
export type LocalizedText = {
en: string;
fr: string;
};
export type HelpPropertyColor = "brown" | "cyan" | "pink" | "green" | "red" | "yellow" | "orange" | "blue";
export type HelpProperty = {
id: string;
color: HelpPropertyColor;
name: LocalizedText;
price: number;
houseCost: number;
rent: number;
rent1: number;
rent2: number;
rent3: number;
rent4: number;
rent5: number;
mortgage: number;
};
export type HelpVehicle = {
id: string;
name: LocalizedText;
tier: LocalizedText;
price: LocalizedText;
text: LocalizedText;
};
export type HelpWeapon = {
id: string;
name: LocalizedText;
tier: LocalizedText;
price: LocalizedText;
text: LocalizedText;
};
export function getLocalizedText(value: LocalizedText, locale: HelpLocale): string {
return value[locale];
}
export const helpProperties: HelpProperty[] = [
{
id: "negotown",
name: { en: "Negotown", fr: "Négotown" },
price: 60,
houseCost: 50,
rent: 2,
rent1: 10,
rent2: 30,
rent3: 90,
rent4: 160,
rent5: 250,
mortgage: 30,
color: "brown",
},
{
id: "black-arretxea",
name: { en: "Black Arretxea", fr: "Black Arretxea" },
price: 60,
houseCost: 50,
rent: 4,
rent1: 20,
rent2: 60,
rent3: 180,
rent4: 320,
rent5: 450,
mortgage: 30,
color: "brown",
},
{
id: "17-rue-des-patates",
name: { en: "17 rue des patates", fr: "17 rue des patates" },
price: 100,
houseCost: 50,
rent: 6,
rent1: 30,
rent2: 90,
rent3: 270,
rent4: 400,
rent5: 550,
mortgage: 50,
color: "cyan",
},
{
id: "69-rue-des-patates",
name: { en: "69 rue des patates", fr: "69 rue des patates" },
price: 100,
houseCost: 50,
rent: 6,
rent1: 30,
rent2: 90,
rent3: 270,
rent4: 400,
rent5: 550,
mortgage: 50,
color: "cyan",
},
{
id: "420-rue-des-patates",
name: { en: "420 rue des patates", fr: "420 rue des patates" },
price: 120,
houseCost: 50,
rent: 8,
rent1: 40,
rent2: 100,
rent3: 300,
rent4: 450,
rent5: 600,
mortgage: 60,
color: "cyan",
},
{
id: "nuketown",
name: { en: "Nuketown", fr: "Nuketown" },
price: 140,
houseCost: 100,
rent: 10,
rent1: 50,
rent2: 150,
rent3: 450,
rent4: 625,
rent5: 750,
mortgage: 70,
color: "pink",
},
{
id: "hijacked",
name: { en: "Hijacked", fr: "Hijacked" },
price: 140,
houseCost: 100,
rent: 10,
rent1: 50,
rent2: 150,
rent3: 450,
rent4: 625,
rent5: 750,
mortgage: 70,
color: "pink",
},
{
id: "bassland",
name: { en: "Bassland", fr: "Bassland" },
price: 160,
houseCost: 100,
rent: 12,
rent1: 60,
rent2: 180,
rent3: 500,
rent4: 700,
rent5: 900,
mortgage: 80,
color: "pink",
},
{
id: "numera-fight-club",
name: { en: "Numera Fight Club", fr: "Numera Fight Club" },
price: 180,
houseCost: 100,
rent: 14,
rent1: 70,
rent2: 200,
rent3: 550,
rent4: 750,
rent5: 950,
mortgage: 90,
color: "green",
},
{
id: "snoopys-id",
name: { en: "Snoopy's ID", fr: "Snoopy's ID" },
price: 180,
houseCost: 100,
rent: 14,
rent1: 70,
rent2: 200,
rent3: 550,
rent4: 750,
rent5: 950,
mortgage: 90,
color: "green",
},
{
id: "jahland-dispensory",
name: { en: "Jahland Dispensory", fr: "Jahland Dispensory" },
price: 200,
houseCost: 100,
rent: 16,
rent1: 80,
rent2: 220,
rent3: 600,
rent4: 800,
rent5: 1000,
mortgage: 100,
color: "green",
},
{
id: "pink-hoodie-studio",
name: { en: "Pink Hoodie Studio", fr: "Pink Hoodie Studio" },
price: 220,
houseCost: 150,
rent: 18,
rent1: 90,
rent2: 250,
rent3: 700,
rent4: 875,
rent5: 1050,
mortgage: 110,
color: "red",
},
{
id: "mp7-studio",
name: { en: "MP7 Studio", fr: "MP7 Studio" },
price: 220,
houseCost: 150,
rent: 18,
rent1: 90,
rent2: 250,
rent3: 700,
rent4: 875,
rent5: 1050,
mortgage: 110,
color: "red",
},
{
id: "pct-studio",
name: { en: "PCT Studio", fr: "PCT Studio" },
price: 240,
houseCost: 150,
rent: 20,
rent1: 100,
rent2: 300,
rent3: 750,
rent4: 925,
rent5: 1100,
mortgage: 120,
color: "red",
},
{
id: "elysee",
name: { en: "l'Elysée", fr: "l'Elysée" },
price: 260,
houseCost: 150,
rent: 22,
rent1: 110,
rent2: 330,
rent3: 800,
rent4: 975,
rent5: 1150,
mortgage: 130,
color: "yellow",
},
{
id: "bar-freak-show",
name: { en: "Bar Freak Show", fr: "Bar Freak Show" },
price: 260,
houseCost: 150,
rent: 22,
rent1: 110,
rent2: 330,
rent3: 800,
rent4: 975,
rent5: 1150,
mortgage: 130,
color: "yellow",
},
{
id: "garage-de-benoir",
name: { en: "Garage de Benoir", fr: "Garage de Benoir" },
price: 280,
houseCost: 150,
rent: 24,
rent1: 120,
rent2: 360,
rent3: 850,
rent4: 1025,
rent5: 1200,
mortgage: 140,
color: "yellow",
},
{
id: "rue-vendredi-des-noirs",
name: { en: "Rue vendredi des noirs", fr: "Rue vendredi des noirs" },
price: 300,
houseCost: 200,
rent: 26,
rent1: 130,
rent2: 390,
rent3: 900,
rent4: 1100,
rent5: 1275,
mortgage: 150,
color: "orange",
},
{
id: "domaine-de-m-p",
name: { en: "Domaine de M. P", fr: "Domaine de M. P" },
price: 300,
houseCost: 200,
rent: 26,
rent1: 130,
rent2: 390,
rent3: 900,
rent4: 1100,
rent5: 1275,
mortgage: 150,
color: "orange",
},
{
id: "villa-du-rj",
name: { en: "Villa du RJ", fr: "Villa du RJ" },
price: 320,
houseCost: 200,
rent: 28,
rent1: 150,
rent2: 450,
rent3: 1000,
rent4: 1200,
rent5: 1400,
mortgage: 160,
color: "orange",
},
{
id: "negoplaza",
name: { en: "Negoplaza", fr: "Négoplaza" },
price: 350,
houseCost: 200,
rent: 35,
rent1: 175,
rent2: 500,
rent3: 1100,
rent4: 1300,
rent5: 1500,
mortgage: 175,
color: "blue",
},
{
id: "lbtrd-tower",
name: { en: "LBTRD Tower", fr: "LBTRD Tower" },
price: 400,
houseCost: 200,
rent: 50,
rent1: 200,
rent2: 600,
rent3: 1400,
rent4: 1700,
rent5: 2000,
mortgage: 200,
color: "blue",
},
];
export const helpVehicles: HelpVehicle[] = [
{
id: "trottinette-sans-plomb-75",
name: {
en: "Trottinette au sans-plomb 75",
fr: "Trottinette au sans-plomb 75",
},
tier: { en: "Tier 0", fr: "Tier 0" },
price: { en: "150₦", fr: "150₦" },
text: {
en: "Roll a die: 12 breakdown (no effect). 35 move forward 1 space. 6 explosion, move back 2 spaces.",
fr: "Lancer un dé : 12 panne (aucun effet). 35 avance d1 case. 6 explosion, recule de 2 cases.",
},
},
{
id: "exosquelette-backflips",
name: {
en: "Exosquelette à méga backflips",
fr: "Exosquelette à méga backflips",
},
tier: { en: "Tier 0", fr: "Tier 0" },
price: { en: "150₦", fr: "150₦" },
text: {
en: "Roll a die: 12 breakdown. 35 move back 1 space. 6 explosion, move forward 2 spaces.",
fr: "Lancer un dé : 12 panne. 35 recule d1 case. 6 explosion, avance de 2 cases.",
},
},
{
id: "automobile",
name: { en: "Automobile", fr: "Automobile" },
tier: { en: "Tier 1", fr: "Tier 1" },
price: { en: "250₦", fr: "250₦" },
text: {
en: "Move forward 1 extra space after normal movement.",
fr: "Avance d1 case supplémentaire après le déplacement normal.",
},
},
{
id: "helicoptere",
name: { en: "Hélicoptère", fr: "Hélicoptère" },
tier: { en: "Tier 2", fr: "Tier 2" },
price: { en: "400₦", fr: "400₦" },
text: {
en: "Choose to move forward or back by 1 to 3 spaces after normal movement.",
fr: "Choisir davancer ou reculer de 1 à 3 cases après le déplacement normal.",
},
},
{
id: "tank",
name: { en: "Tank", fr: "Tank" },
tier: { en: "Tier 3", fr: "Tier 3" },
price: { en: "450₦", fr: "450₦" },
text: {
en: "Move forward 2 or 3 spaces. Protects you from negative effects of the landing space and the passed-over space. If you land on another player, they go to Hospital.",
fr: "Avance de 2 ou 3 cases. Protège le joueur des effets négatifs de la case darrivée et de la case survolée. Si vous arrivez sur un joueur, il est envoyé à lHôpital.",
},
},
{
id: "avion-de-chasse",
name: { en: "Avion de chasse", fr: "Avion de chasse" },
tier: { en: "Tier 4", fr: "Tier 4" },
price: { en: "600₦", fr: "600₦" },
text: {
en: "Choose to move forward 1 to 6 spaces after normal movement.",
fr: "Choisir davancer de 1 à 6 cases après le déplacement normal.",
},
},
{
id: "teleporteur-de-poche",
name: { en: "Téléporteur de poche", fr: "Téléporteur de poche" },
tier: { en: "Tier 5", fr: "Tier 5" },
price: { en: "800₦", fr: "800₦" },
text: {
en: "Teleport instantly to any space, ignoring dice and intermediate spaces.",
fr: "Téléportation immédiate vers nimporte quelle case, sans tenir compte des dés.",
},
},
];
export const helpWeapons: HelpWeapon[] = [
{
id: "rpg-7",
name: { en: "RPG-7", fr: "RPG-7" },
tier: { en: "Tier 0", fr: "Tier 0" },
price: { en: "150₦", fr: "150₦" },
text: {
en: "Unlimited stock. Destroys a house on your property or an adjacent one. Up to 2 shots per turn. Roll: 14 hit, 5 miss, 6 explosion (go to Hospital). On a mortgaged property, a hit resets it.",
fr: "Stock illimité. Détruit une maison sur la propriété où vous êtes ou adjacente. Jusquà 2 tirs par tour. Jet : 14 réussite, 5 raté, 6 explosion (direction Hôpital). Sur propriété hypothéquée, un tir réussi la réinitialise.",
},
},
{
id: "c4",
name: { en: "C4 (charges)", fr: "C4 (charges)" },
tier: { en: "Tier 0", fr: "Tier 0" },
price: {
en: "40₦ first, then x2 / x3…",
fr: "40₦ la 1re, puis x2 / x3…",
},
text: {
en: "Unlimited charges. Place on a house by passing over or stopping. Any player passing can remove a charge and keep it. From two rounds after placement, the placer may detonate: destroy house, player on space → Hospital, player adjacent → Prison (terrorist). EMP disables C4 while active.",
fr: "Charges illimitées. Pose sur une maison en passant ou en sarrêtant. Toute charge peut être retirée par nimporte quel joueur en passant (il la récupère). À partir de 2 rounds après la pose, le poseur peut déclencher : maison détruite, joueur sur place → Hôpital, joueur adjacent → Prison (terroriste). Bombe IEM désactive les C4 tant quelle est active.",
},
},
{
id: "glock-26",
name: { en: "Glock 26", fr: "Glock 26" },
tier: { en: "Tier 1", fr: "Tier 1" },
price: { en: "200₦", fr: "200₦" },
text: {
en: "Extort a player on the same or adjacent space for 300₦. If the target also has a Glock, roll: 46 attacker wins, 13 attacker loses. Loser is extorted and sent to Hospital.",
fr: "Racket dun joueur sur la même case ou adjacente pour 300₦. Si la cible possède aussi une Glock, jet : 46 victoire de lattaquant, 13 défaite. Le perdant est racketté et envoyé à lHôpital.",
},
},
{
id: "ar15",
name: { en: "AR15", fr: "AR15" },
tier: { en: "Tier 2", fr: "Tier 2" },
price: { en: "400₦", fr: "400₦" },
text: {
en: "Cancels the effect of any space the player is on.",
fr: "Annule leffet de nimporte quelle case sur laquelle le joueur se trouve.",
},
},
{
id: "mortar",
name: { en: "Mortar", fr: "Mortier" },
tier: { en: "Tier 3", fr: "Tier 3" },
price: { en: "400₦", fr: "400₦" },
text: {
en: "3 shots. Each shot destroys a house on an adjacent space; if none, the property is mortgaged; if already mortgaged, the property is reset.",
fr: "3 tirs. Chaque tir détruit une maison sur une case adjacente ; sil ny a pas de maison, la propriété est hypothéquée ; si elle lest déjà, elle est réinitialisée.",
},
},
{
id: "emp-bomb",
name: { en: "EMP Bomb", fr: "Bombe IEM" },
tier: { en: "Tier 4", fr: "Tier 4" },
price: { en: "400₦", fr: "400₦" },
text: {
en: "For one turn: all spaces are disabled, remote actions disabled, private communication forbidden (except same space), all C4 charges disabled.",
fr: "Pendant un tour : toutes les cases sont désactivées, les actions à distance sont désactivées, les communications privées interdites (sauf même case), toutes les charges de C4 sont désactivées.",
},
},
{
id: "artillery-piece",
name: { en: "Artillery piece", fr: "Pièce dartillerie" },
tier: { en: "Tier 5", fr: "Tier 5" },
price: { en: "600₦", fr: "600₦" },
text: {
en: "Removes all houses from a single property.",
fr: "Supprime toutes les maisons dune propriété appartenant à un joueur.",
},
},
{
id: "rods-from-gods",
name: { en: "Rods From Gods", fr: "Rods From Gods" },
tier: { en: "Tier 6", fr: "Tier 6" },
price: { en: "1500₦", fr: "1500₦" },
text: {
en: "Razes an entire color set: removes all houses and resets properties.",
fr: "Rase une couleur entière : supprime toutes les maisons et réinitialise les propriétés.",
},
},
{
id: "satan2",
name: { en: "Satan2", fr: "Satan2" },
tier: { en: "Game Ender", fr: "Game Ender" },
price: { en: "5000₦", fr: "5000₦" },
text: {
en: "Destroys all of NegoCity and grants immediate victory to the user.",
fr: "Détruit lintégralité de NegoCity et donne la victoire immédiate au joueur qui lutilise.",
},
},
{
id: "la-peste-negre",
name: { en: "La Peste Nègre", fr: "La Peste Nègre" },
tier: { en: "Game Ender", fr: "Game Ender" },
price: { en: "7000₦", fr: "7000₦" },
text: {
en: "La Peste Nègre (natural selection) eliminates all players except two. The two survivors automatically win.",
fr: "La Peste Nègre (sélection naturelle) élimine tous les joueurs sauf deux. Les deux survivants remportent automatiquement la partie.",
},
},
];