diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..b839234 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,64 @@ +{ + "cSpell.enableFiletypes": [ + "yarnspinner" + ], + "cSpell.languageSettings": [ + { + "languageId": "yarnspinner", + "patterns": [ + { + "name": "yarn-commands", + "pattern": "/<<[^>]*>>/g" + }, + { + "name": "yarn-expressions", + "pattern": "/\\{[^}]*\\}/g" + }, + { + "name": "yarn-variables", + "pattern": "/\\$[a-zA-Z_][a-zA-Z0-9_]*/g" + }, + { + "name": "yarn-markup", + "pattern": "/\\[[^\\]]*\\]/g" + }, + { + "name": "yarn-hashtags", + "pattern": "/#[a-zA-Z_][a-zA-Z0-9_:-]*/g" + }, + { + "name": "yarn-node-markers", + "pattern": "/^(---|===)$/gm" + }, + { + "name": "yarn-headers", + "pattern": "/^(title|tags|position|color|colorID|tracking|custom|style):.*/gm" + }, + { + "name": "yarn-character-names", + "pattern": "/^\\s*[A-Za-z_][A-Za-z0-9_]*(?=:)/gm" + }, + { + "name": "yarn-comments", + "pattern": "/\\/\\/.*$/gm" + } + ], + "ignoreRegExpList": [ + "yarn-commands", + "yarn-expressions", + "yarn-variables", + "yarn-markup", + "yarn-hashtags", + "yarn-node-markers", + "yarn-headers", + "yarn-character-names", + "yarn-comments" + ] + } + ], + "cSpell.words": [ + "Cassian", + "Thal", + "Vaselian" + ] +} \ No newline at end of file diff --git a/NightclubArcadia/Assets/Dialogue/Characters/Bartender.yarn b/NightclubArcadia/Assets/Dialogue/Characters/Bartender.yarn index dcb2628..0bbb3c4 100644 --- a/NightclubArcadia/Assets/Dialogue/Characters/Bartender.yarn +++ b/NightclubArcadia/Assets/Dialogue/Characters/Bartender.yarn @@ -8,6 +8,7 @@ // Each variation sets $went_inside so the calling scene knows the verdict. title: Bartender_Talk +position: -121,-60 --- <> <> @@ -56,6 +57,7 @@ title: Bartender_Talk === title: SC101_Hook_Drink_Bartender_Talk +position: 116,222 --- Bartender: One Estate coming right up. <> @@ -85,6 +87,7 @@ AMNESTY: Is that the taste of our favorite drink? I cannot remember ... === title: SC101_Hook_Questions_Bartender_Talk +position: -139,224 --- Bartender: Sure, what do you want to know? -> Question 1 diff --git a/NightclubArcadia/Assets/Dialogue/Characters/Chevalier Cassian Thal.yarn b/NightclubArcadia/Assets/Dialogue/Characters/Chevalier Cassian Thal.yarn index b6a9d05..1743146 100644 --- a/NightclubArcadia/Assets/Dialogue/Characters/Chevalier Cassian Thal.yarn +++ b/NightclubArcadia/Assets/Dialogue/Characters/Chevalier Cassian Thal.yarn @@ -1,18 +1,19 @@ // Everything Ser Cassian Thal ever says. // // These nodes share a title, which makes them a node group. Callers just -// `<>` and Yarn runs the most specific variation whose +// `<>` and Yarn runs the most specific variation whose // `when:` conditions pass. Adding a new variation later means adding a node, // not editing a growing <> chain. // // Each variation sets $went_inside so the calling scene knows the verdict. title: Chevalier_Cassian_Thal_Talk +position: 44,-117 --- <> Chevalier Cassian Thal: Well met good sir. <> -<> + <> Narrator: You introduce yourself to the man. He takes measure before bowing his head and tipping his forehead with a half-open fist. Chevalier Cassian Thal: {$player_name_full}, nice to meet you. I'm Chevalier Cassian Thal of Basel and Cyprus. THE FLOAT: His name reeks of money. Old money. @@ -24,10 +25,15 @@ title: Chevalier_Cassian_Thal_Talk -> Leave it be. <> <> +<> + <> +<> === title: SC101_Inquire_Cypurs_Chevalier_Cassian_Thal_Talk +position: -175,95 --- +<> Chevalier Cassian Thal: Oh, a sharp question, {$player_name_full}. Narrator: The knight laughs. Chevalier Cassian Thal: I assume you should ask your friend Mr. Doss, I am of no right to reveal this connection. @@ -39,3 +45,106 @@ Chevalier Cassian Thal: I assume you should ask your friend Mr. Doss, I am of no CONFLUENCE: There he is again: Mr. Doss. <> === + +title: SC101_Hook_Asks_Candidate_Chevalier_Cassian_Thal_Talk +position: 146,85 +--- +<> + Chevalier Cassian Thal: This were a lot of questions. Now tell me something about yourself, old chap. +<> +<> +<> + Narrator: Chevalier Cassian Thal turns towards the head of the table again, just, when another man stands up. + <> +<> +=== + +title: SC101_Asks_Candidate_Chevalier_Cassian_Thal_Talk +position: 157,261 +--- +<> +<> +<> + Narrator: He leans in and whispers: + Chevalier Cassian Thal: I assume you are here to observe the gathering in the interest of ... our friends of the Vaselian Concordat? + -> Yes, I am. + <> + <> + -> You must be mistaken. + <> + <> + <> +<> + Chevalier Cassian Thal: I got the feeling I may read my answers in tomorrow's newspaper. + Narrator: He says it with a boyish grin, as if he is sure he hasn't disclosed anything contentious. + -> You actually may. + <> + <> + -> No, I got nothing to do with newspapers and such! + <> + <> + <> +<> + Chevalier Cassian Thal: You probably look to settle your parent's debts? + FACEWORK: He doesn't seem emotional about it, he is just interested. + -> I actually am. + <> + <> + -> Oh, I don't know about any debt, I hope they didn't borrow money from you? + <> + <> + Chevalier Cassian Thal: Oh god, no, they didn't borrow anything from us. + CONFLUENCE: Us? + <> +<> +=== + +title: SC101_Declares_Asset_Chevalier_Cassian_Thal_Talk +position: -9,670 +--- +<> +Narrator: Chevalier Cassian Thal looks knowingly and cannot hide a little smirk. +Chevalier Cassian Thal: Well, then let us hope the ... others follow the Knight's compromise. +Narrator: He winks at you. +FACEWORK: He seems to know more about us, than we know about ourselves. Though if we back out now he will become suspicious. +=== + +title: SC101_Declares_Journalist_Chevalier_Cassian_Thal_Talk +position: -222,667 +--- +<> +Narrator: Chevalier Cassian Thal laughs. +Chevalier Cassian Thal: Well, then let me give you something to write about: You and your readers will be surprised to hear, what you will witness in a second. +CONFLUENCE: He can hardly hide his smirk. +=== + +title: SC101_Declares_Inheritor_Chevalier_Cassian_Thal_Talk +position: 207,664 +--- +<> +Chevalier Cassian Thal: You may very well get your chance this week, my boy. +FACEWORK: His look is benevolent, nearly fatherly. +CONFLUENCE: What should our parents have done, that requires repayment? +=== + +title: SC101_Deny_Candidate_Chevalier_Cassian_Thal_Talk +position: 436,260 +--- +Chevalier Cassian Thal: Oh, I am rarely wrong in matters like these. Though enlighten me: What else could have been your wish coming here? +FACEWORK: He looks genuinely interested. +<> +<> + -> No, you are totally right, indeed. + <> + <> + <> + <> + <> + <> + <> + -> Actually ... + <> +<> + <> +<> +=== diff --git a/NightclubArcadia/Assets/Dialogue/Common.yarn b/NightclubArcadia/Assets/Dialogue/Common.yarn index 723482e..39c615e 100644 --- a/NightclubArcadia/Assets/Dialogue/Common.yarn +++ b/NightclubArcadia/Assets/Dialogue/Common.yarn @@ -27,6 +27,10 @@ title: Declarations <> <> +// Used by top_skill +<> +<> + // Candidate lean. Three permanently-live readings of who the PC is; they are // not mutually exclusive and never resolve. Writers <> these; no code // reads them. There is deliberately NO derived "winning candidate" variable — @@ -97,4 +101,6 @@ title: Declarations // Character dialogue gates <> <> +<> +<> === diff --git a/NightclubArcadia/Assets/Dialogue/NightclubArcadia.yarnproject b/NightclubArcadia/Assets/Dialogue/NightclubArcadia.yarnproject index 6908092..8f682c9 100644 --- a/NightclubArcadia/Assets/Dialogue/NightclubArcadia.yarnproject +++ b/NightclubArcadia/Assets/Dialogue/NightclubArcadia.yarnproject @@ -1,15 +1,61 @@ { - "projectFileVersion": 4, - "sourceFiles": [ - "**/*.yarn" - ], - "excludeFiles": [ - "**/*~/*", - "./Samples/Yarn Spinner*/*" - ], - "localisation": {}, - "baseLanguage": "en", - "compilerOptions": { - "diagnosticsSeverity": {} - } + "projectFileVersion": 4, + "sourceFiles": [ + "**/*.yarn" + ], + "excludeFiles": [ + "**/*~/*", + "./Samples/Yarn Spinner*/*" + ], + "localisation": {}, + "baseLanguage": "en", + "compilerOptions": { + "diagnosticsSeverity": {} + }, + "projectName": "NightclubArcade", + "authorName": [ + "LennartGrabowski" + ], + "editorOptions": { + "yarnScriptEditor": { + "projectGraphPositions": { + "Bartender.yarn": { + "x": 282, + "y": 12 + }, + "Bradford Kane.yarn": { + "x": 1320, + "y": 2287 + }, + "Chevalier Cassian Thal.yarn": { + "x": 1794, + "y": 2275 + }, + "Commentary.yarn": { + "x": 12, + "y": 231 + }, + "Common.yarn": { + "x": 12, + "y": 12 + }, + "Chair.yarn": { + "x": 840, + "y": 1072 + }, + "Debug.yarn": { + "x": -1, + "y": 483 + }, + "SC101.yarn": { + "x": 820, + "y": -3 + }, + "SC102.yarn": { + "x": 2734, + "y": 2559 + } + } + } + } } \ No newline at end of file diff --git a/NightclubArcadia/Assets/Dialogue/Objects/Chair.yarn b/NightclubArcadia/Assets/Dialogue/Objects/Chair.yarn index 2921e0f..854cead 100644 --- a/NightclubArcadia/Assets/Dialogue/Objects/Chair.yarn +++ b/NightclubArcadia/Assets/Dialogue/Objects/Chair.yarn @@ -8,27 +8,40 @@ // Each variation sets $went_inside so the calling scene knows the verdict. title: Chair_Interaction +position: -334,-601 --- Narrator: An empty chair with a place card: {$player_name}. -> Sit down. <> - Narrator: You sit down between two very distinguished gentlemen. - <> - <> - <> - <> - <> - <> - <> - <> - <> - <> - <> + <> -> Not yet. -<> + <> +=== + +title: SC101_Hook_Sitting_Chair_Interaction +position: -328,-360 +--- +Narrator: You sit down between two very distinguished gentlemen. +<> + <> + <> +<> + <> + <> +<> + <> + <> +<> + <> + <> +<> + <> + <> +<> === title: SC101_Hook_First_Sitting_Chair_Interaction +position: -320,-51 --- -> Look at the details of the place card. <> @@ -36,9 +49,12 @@ title: SC101_Hook_First_Sitting_Chair_Interaction <> -> Introduce yourself to the gentleman on your right. <> +-> Stand up. + <> === title: SC101_Hook_Left_Not_Right_Chair_Interaction +position: -95,-48 --- -> Look at the details of the place card. <> @@ -46,9 +62,12 @@ title: SC101_Hook_Left_Not_Right_Chair_Interaction <> -> Introduce yourself to the gentleman on your right. <> +-> Stand up. + <> === title: SC101_Hook_Right_Not_Left_Chair_Interaction +position: 134,-32 --- -> Look at the details of the place card. <> @@ -56,9 +75,12 @@ title: SC101_Hook_Right_Not_Left_Chair_Interaction <> -> Talk to Bradford Kane. <> +-> Stand up. + <> === title: SC101_Hook_Both_Chair_Interaction +position: 363,-36 --- -> Look at the details of the place card. <> @@ -66,9 +88,12 @@ title: SC101_Hook_Both_Chair_Interaction <> -> Talk to Bradford Kane. <> +-> Stand up. + <> === title: SC101_Hook_Place_Card_Chair_Interaction +position: -296,331 --- Narrator: You take the place card and take a look. <> diff --git a/NightclubArcadia/Assets/Dialogue/Scenes/SC101.yarn b/NightclubArcadia/Assets/Dialogue/Scenes/SC101.yarn index 10ae72d..23aa409 100644 --- a/NightclubArcadia/Assets/Dialogue/Scenes/SC101.yarn +++ b/NightclubArcadia/Assets/Dialogue/Scenes/SC101.yarn @@ -25,11 +25,13 @@ // Body stays neutral on purpose: no lean, no candidate attachment. title: Start +position: -17,-276 --- <> === title: SC101_Desk +position: -19,-36 --- <> <> @@ -44,6 +46,7 @@ Narrator: You're drawn toward a seat — toward a waiting conversation you didn' === title: SC101_Hook_MadeAsset +position: -40,567 --- CONFLUENCE: One: the seating chart's alphabetical. Two: one gap in it, held open past the start time. Three, and three is the one, {$player_name}: whoever printed this knew you'd be late to your own arrival. Which means somebody in this room has already met you, {$player_name}, and you're the only one who doesn't know it. <> @@ -51,6 +54,7 @@ CONFLUENCE: One: the seating chart's alphabetical. Two: one gap in it, held open === title: SC101_Hook_Journalist +position: -299,452 --- FACEWORK: His hands gave it away before his face did — a flinch toward you, checked, turned into reaching for a drink that wasn't there. That's not a stranger's hands. What did you do to earn that flinch? <> @@ -58,6 +62,7 @@ FACEWORK: His hands gave it away before his face did — a flinch toward you, ch === title: SC101_Hook_Inheritor +position: 335,366 --- STANDING ORDER: You are standing in a doorway, {$player_name_full}. That's the whole of what's certain. Build outward from there — a person who starts anywhere else is a person coming apart in public. <> @@ -65,6 +70,7 @@ STANDING ORDER: You are standing in a doorway, {$player_name_full}. That's the w === title: SC101_Hook_Neutral +position: 87,310 --- HOUSE POUR: Cigar smoke, spilled aperitif, and under it — cold, sharp — the ammonia bite of a floor mopped in a hurry, love. Someone's trying to make this room smell like money. It smells like panic with good cologne on top. === diff --git a/NightclubArcadia/Assets/Dialogue/Scenes/SC102.yarn b/NightclubArcadia/Assets/Dialogue/Scenes/SC102.yarn new file mode 100644 index 0000000..a221bbd --- /dev/null +++ b/NightclubArcadia/Assets/Dialogue/Scenes/SC102.yarn @@ -0,0 +1,6 @@ +// SC-102 — The figure at the head of the table just stood up. + +title: SC102_Table +--- +Figure at the head of the table: "Welcome." +=== diff --git a/NightclubArcadia/Assets/Dialogue/Scenes/SC102.yarn.meta b/NightclubArcadia/Assets/Dialogue/Scenes/SC102.yarn.meta new file mode 100644 index 0000000..7980950 --- /dev/null +++ b/NightclubArcadia/Assets/Dialogue/Scenes/SC102.yarn.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 717dc562b961f41c49f5615fb8415f67 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 94073015eacc34c1d8fc6786e43d60ca, type: 3} diff --git a/NightclubArcadia/Assets/Scripts/Dialogue/DialougueSkillComparison.cs b/NightclubArcadia/Assets/Scripts/Dialogue/DialougueSkillComparison.cs new file mode 100644 index 0000000..e18e8a8 --- /dev/null +++ b/NightclubArcadia/Assets/Scripts/Dialogue/DialougueSkillComparison.cs @@ -0,0 +1,13 @@ +using UnityEngine; +using Yarn.Unity; + +public class SkillFunctions : MonoBehaviour +{ + [YarnFunction("top_skill")] + public static string TopSkill(float a, string aName, float b, string bName, float c, string cName) + { + if (a >= b && a >= c) return aName; + if (b >= a && b >= c) return bName; + return cName; + } +} diff --git a/NightclubArcadia/Assets/Scripts/Dialogue/DialougueSkillComparison.cs.meta b/NightclubArcadia/Assets/Scripts/Dialogue/DialougueSkillComparison.cs.meta new file mode 100644 index 0000000..6ad2d80 --- /dev/null +++ b/NightclubArcadia/Assets/Scripts/Dialogue/DialougueSkillComparison.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: f7e92eaa5873f456281db864a1a7871b \ No newline at end of file