PlayerDialogueCatalog.Exchanges.cs

This file holds the player dialogue catalog. It defines a static array of dialogue exchanges based on different player speech cues, providing corresponding prompts and responses in Russian and English.

using System.Collections.Generic;
using System.Linq;

namespace Socer;

public static partial class PlayerDialogueCatalog
{
    static PlayerDialogueFlavor.Exchange E(PlayerSpeechCue cue,int number,string ru,string en,string replyRu,string replyEn)
    {
        int id=30000+(int)cue*100+number*2;
        return new(id,new(id,ru,en),new(id+1,replyRu,replyEn),Cue:cue);
    }
    public static readonly PlayerDialogueFlavor.Exchange[] Exchanges=FirstExchanges().Concat(OtherExchanges()).Concat(RareExchanges()).ToArray();
    static IEnumerable<PlayerDialogueFlavor.Exchange> FirstExchanges()=>new[]{
        E(PlayerSpeechCue.Request,0,"Я открыт, ты в курсе?","I'm open, you know?","В курсе. Проверял твоё терпение.","I know. Testing your patience."),
        E(PlayerSpeechCue.Request,1,"Пас мне, я с утра не трогал мяч!","Pass here, haven't touched it all morning!","Это матч, а не очередь на завтрак.","It's a match, not a breakfast queue."),
        E(PlayerSpeechCue.Request,2,"Сюда, я даже имя твоё помню!","Here, I even remember your name!","А я твои последние три приёма.","I remember your last three first touches."),
        E(PlayerSpeechCue.Through,0,"Запускай, я побежал!","Send it, I'm running!","Только тормоза потом найди!","Just find the brakes afterwards!"),
        E(PlayerSpeechCue.Through,1,"Я за спину, сразу давай!","I'm going behind, play it now!","Давай, я тебя взглядом провожу!","Go on, I'll wave you off!"),
        E(PlayerSpeechCue.Through,2,"На ход, у меня сегодня скорость!","Through ball, I've got pace today!","Сегодня? А вчера что было?","Today? What happened yesterday?"),
        E(PlayerSpeechCue.Support,0,"Стеночку со мной сыграешь?","Fancy a one-two with me?","Если обратно отдашь, конечно.","If you give it back, sure."),
        E(PlayerSpeechCue.Support,1,"Помоги, я тут один против всех!","Help, it's me against everyone!","Меня тоже в число всех не включай.","Don't count me as everyone."),
        E(PlayerSpeechCue.Support,2,"Подойди ближе, есть идея!","Come closer, I've got an idea!","Опять идея без гарантии?","Another idea without a warranty?"),
        E(PlayerSpeechCue.Pressure,0,"Сзади двое, забирай у меня!","Two behind me, take it off me!","Ты хоть один раз без багажа приди.","Try arriving without baggage for once."),
        E(PlayerSpeechCue.Pressure,1,"Меня накрыли, выход нужен!","They're on me, need an outlet!","Слева дверь, я её держу!","Door on the left, holding it open!"),
        E(PlayerSpeechCue.Pressure,2,"Здесь тесно, подойди!","Crowded here, come closer!","Ещё одного человека зовёшь?","So you're inviting another person?"),
        E(PlayerSpeechCue.Shield,0,"Держу мяч, обегай!","Holding the ball, run round me!","Ты его надолго арендуешь?","How long's the lease?"),
        E(PlayerSpeechCue.Shield,1,"Я корпус поставил, придумай ход!","Body in the way, think of a move!","План простой: отдай живому человеку.","Simple plan: pass to a living person."),
        E(PlayerSpeechCue.Shield,2,"Меня не сдвинут, открывайся!","They won't move me, get open!","Убедительно. Но я бы поспешил.","Convincing. I'd hurry anyway."),
        E(PlayerSpeechCue.CrossNear,0,"К ближней, сейчас прострелю!","Near post, crossing low now!","Иду! Только без проверки на прочность!","Coming! Don't test my durability!"),
        E(PlayerSpeechCue.CrossNear,1,"Первую штангу закрывай!","Cover the first post!","Я игрок, не штора, но попробую.","I'm a player, not a curtain, but I'll try."),
        E(PlayerSpeechCue.CrossNear,2,"На ближнюю готов?","Ready at the near post?","Ногой да. Душой пока нет.","Foot's ready. Soul isn't."),
        E(PlayerSpeechCue.CrossFar,0,"Дальний угол, переложу через всех!","Far post, over everyone's heads!","Через всех можно, через стадион не надо.","Over them is fine, not over the stadium."),
        E(PlayerSpeechCue.CrossFar,1,"На дальнюю выходи, я вижу тебя!","Get to the far post, I see you!","Я сам себя отсюда еле вижу!","I can barely see myself from here!"),
        E(PlayerSpeechCue.CrossFar,2,"Навес пошёл, встречай головой!","Cross coming, meet it with your head!","Голова занята паникой, но ладно.","Head's busy panicking, but fine."),
        E(PlayerSpeechCue.LineDown,0,"Все назад, закройте центр!","Everyone back, close the middle!","Ладно, экскурсия закончена.","Right, tour's over."),
        E(PlayerSpeechCue.LineDown,1,"Линию ниже, не оставляй меня!","Drop the line, don't leave me!","Иду, я не на море отдыхал!","Coming, I wasn't on a beach!"),
        E(PlayerSpeechCue.LineDown,2,"Сюда стянись, тут дыра!","Tuck in here, there's a hole!","Я защитник, а не монтажная пена.","I'm a defender, not expanding foam."),
        E(PlayerSpeechCue.LineUp,0,"Поднимайся, чего к воротам прирос?","Step up, grown roots by the goal?","Уютно было. Всё, выселяюсь.","It was cosy. Moving out now."),
        E(PlayerSpeechCue.LineUp,1,"Выходим вместе, по моей команде!","Step out together, on my call!","Считай громче, я после трёх теряюсь.","Count loudly, I get lost after three."),
        E(PlayerSpeechCue.LineUp,2,"Выше линия, не бойтесь!","Line up, don't be scared!","Мы не боимся, мы обдумываем.","We're not scared, we're considering it."),
        E(PlayerSpeechCue.Distribution,0,"Далеко выбью, на подбор идите!","Kicking long, win the second ball!","Далеко — это ещё на нашей карте?","Long as in still on our map?"),
        E(PlayerSpeechCue.Distribution,1,"Кому в ноги из ворот?","Who wants it to feet from goal?","Мне, только без мяча под мышкой!","Me, just don't throw me under it!"),
        E(PlayerSpeechCue.Distribution,2,"По краям разбежались, раздача!","Spread wide, handing it out!","Вот за бесплатное мы всегда готовы.","Always ready when it's free."),
        E(PlayerSpeechCue.Wall,0,"Плотнее стенка, между вами щель!","Close the wall, there's a gap!","Это вентиляция. Ладно, закрываю.","That's ventilation. Fine, closing it."),
        E(PlayerSpeechCue.Wall,1,"Не отворачивайся от удара!","Don't turn away from the shot!","Мои инстинкты с тобой не согласны.","My instincts disagree with you."),
        E(PlayerSpeechCue.Wall,2,"Прыгаем все вместе, понял?","We jump together, got it?","Понял. Земля тоже в курсе?","Got it. Does the ground know?"),
        E(PlayerSpeechCue.ShortRestart,0,"Коротко дам, обратно верни!","Short ball, give it back!","Прям как деньги до зарплаты.","Like borrowing till payday."),
        E(PlayerSpeechCue.ShortRestart,1,"Ближе подойди, разыграем!","Come short, let's play it out!","Я уже ближе, дальше только в карман.","Any closer and I'm in your pocket."),
        E(PlayerSpeechCue.ShortRestart,2,"Не навешиваем, по земле пойдём!","No cross, keep it on the ground!","Поддерживаю, я с небом поссорился.","Agreed, I've fallen out with the sky."),
        E(PlayerSpeechCue.Finish,0,"Бью! Готовьтесь к отскоку!","Shooting! Ready for the rebound!","Ты сразу в гол попробуй, для разнообразия.","Try scoring directly, for a change."),
        E(PlayerSpeechCue.Finish,1,"Вижу угол, сейчас проверю!","See a corner, testing it now!","Проверь аккуратно, он нам ещё нужен.","Carefully, we'll need that corner later."),
        E(PlayerSpeechCue.Finish,2,"Уберите ноги, я заряжаю!","Feet out of the way, loading up!","Свои тоже убери, вдруг помешают.","Move yours too, just in case."),
        E(PlayerSpeechCue.Goal,0,"Видел, как я положил?!","See how I finished that?!","Видел, уже готовлю твою автобиографию.","Saw it, drafting your autobiography."),
        E(PlayerSpeechCue.Goal,1,"Есть! Я же говорил, залетит!","Yes! Told you it'd go in!","Ты так последние пять раз говорил.","You said that the last five times."),
        E(PlayerSpeechCue.Goal,2,"Мой гол, всем обниматься!","My goal, group hug!","Сначала догоним тебя, звезда!","Have to catch you first, superstar!"),
        E(PlayerSpeechCue.Miss,0,"Да как я отсюда не забил?!","How did I miss from there?!","Не торопись, мы тоже разбираемся.","Give us time, we're working it out too."),
        E(PlayerSpeechCue.Miss,1,"Неудачно нога встала.","Foot landed awkwardly.","А мяч решил встать на трибуне.","Ball decided to land in the stands."),
        E(PlayerSpeechCue.Miss,2,"В следующий точно забью!","Definitely scoring the next one!","Записал. У меня уже блокнот кончается.","Noted. Running out of notebook here."),
        E(PlayerSpeechCue.IgnoredPass,0,"Я же один стоял, почему не дал?","I was alone, why didn't you pass?","Я думал, тебе нравится одиночество.","Thought you liked the solitude."),
        E(PlayerSpeechCue.IgnoredPass,1,"На меня хоть раз посмотри!","Look at me at least once!","Смотрю. Но мяч пока стесняется.","Looking. Ball's still feeling shy."),
        E(PlayerSpeechCue.IgnoredPass,2,"Ты мне пас должен уже!","You owe me a pass now!","Проценты ногами принимаешь?","Do you take interest payments in runs?")
    };
}