IntroMenu.dl.ts 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344
  1. // File created automatically by custom Dialogger on 4/7/2019, 6:04:12 PM
  2. // Do not tamper with this file.
  3. // It will be replaced automatically by Dialogger and all changes will be lost.
  4. // Instead change IntroMenu.dl.
  5. module DialogueTrees {
  6. export let IntroMenu = (function () {
  7. let tree : DialogueTree = new DialogueTree("IntroMenu");
  8. let node : DialogueNode;
  9. let choice : DialogueChoice;
  10. let text : DialogueText;
  11. let branch : DialogueBranch;
  12. let set : DialogueSet;
  13. let nodetree : DialogueNodeTree;
  14. node = new DialogueNode("b018bb28-4efc-493b-ac37-31634c4e6406");
  15. node.setNext("f448e718-9d24-4191-9913-ccc36d97c4c0");
  16. tree.addStartNode(node);
  17. choice = new DialogueChoice("3b8c8bcb-0ac8-40dc-9f62-4abbde0d0f7f");
  18. choice.setSay(() => { return new Say("Start Game");});
  19. choice.setNext("719e71dd-9989-4015-93af-9fb7096002c1");
  20. tree.addNode(choice);
  21. choice = new DialogueChoice("53710087-4002-41b7-b089-cadabedbcafd");
  22. choice.setSay(() => { return new Say("Load from file");});
  23. choice.setNext("f25f6525-dad6-45d7-a391-246c1b02b569");
  24. tree.addNode(choice);
  25. choice = new DialogueChoice("b4593a36-ca83-4afc-b01b-e71344ca6e1f");
  26. choice.setSay(() => { return new Say("Settings");});
  27. choice.setNext("d4a379b5-06c9-4fca-a25c-b1a31b6bf93d");
  28. tree.addNode(choice);
  29. choice = new DialogueChoice("4c5032a5-5509-4a00-b8c7-788e7ddbf17d");
  30. choice.setSay(() => { return new Say("About");});
  31. choice.setNext("6b3f385b-8283-4635-9c73-e2303d77642d");
  32. tree.addNode(choice);
  33. node = new DialogueNode("674841a6-3752-4c81-977d-19e111536203");
  34. node.setName("2");
  35. node.setChoices(["3b8c8bcb-0ac8-40dc-9f62-4abbde0d0f7f","53710087-4002-41b7-b089-cadabedbcafd","4c5032a5-5509-4a00-b8c7-788e7ddbf17d","b4593a36-ca83-4afc-b01b-e71344ca6e1f","a55f46fa-98a9-4dff-9f1c-4f88c18ce8dd"]);
  36. tree.addNode(node);
  37. text = new DialogueText("bc32e411-3c54-4747-ad79-506fc5a9d6c9");
  38. text.setSay(() => { return new Say(Say.CENTERED, new SayImage("introLogo"), Say.LINE_BREAK, new SayItalic("The Obelisk is an adult interactive fiction game set in a post-apocalyptic world ravaged by a magical structure."));});
  39. text.setNext("36da9ea6-909c-4c0c-94d1-a17fef44452d");
  40. tree.addNode(text);
  41. text = new DialogueText("36da9ea6-909c-4c0c-94d1-a17fef44452d");
  42. text.setSay(() => { return new Say("A sleek, black obelisk appeared, monsters pouring from it, threatening the world. Many tried to reach the obelisk, only to return changed - monstrous. Civilization was unable to cope with the creatures and humanity soon returned to its old, tribal ways, humans becoming rarer with each passing day. Centuries have passed and technology is now scarce, with people leading simpler lives in small settlements.", Say.PARAGRAPH_BREAK, "You were born in the ashes of the old world, living in isolation as you and your fellow men attempt to stay safe from the evils of The Obelisk. ", Say.PARAGRAPH_BREAK, "Now, fate has decided you must go, reach The Obelisk and destroy it. Will you succeed in stopping it, or will you lose yourself to all the changes it will bring to you?");});
  43. text.setNext("674841a6-3752-4c81-977d-19e111536203");
  44. tree.addNode(text);
  45. node = new DialogueNode("9f11871f-eebd-4b9a-b3db-ed9be8cf78e7");
  46. node.setName("1");
  47. node.setNext("9eeb2100-917d-41fd-b756-6d3b80e92463");
  48. tree.addNode(node);
  49. branch = new DialogueBranch("5d1dfb86-abd9-4ad6-bf07-8ced5476e401");
  50. branch.setVariable(() => { return PlayBegins.LOAD_FAILED;});
  51. branch.addBranch("415dc32a-1549-429d-9ac4-8cd1b4c92c14", () => { return true;});
  52. branch.setNext("f82fc177-b4bd-4f06-b7ab-216259e056a5");
  53. tree.addNode(branch);
  54. set = new DialogueSet("f82fc177-b4bd-4f06-b7ab-216259e056a5");
  55. set.setFunction(() => {
  56. Elements.endMenu();
  57. });
  58. tree.addNode(set);
  59. set = new DialogueSet("9eeb2100-917d-41fd-b756-6d3b80e92463");
  60. set.setFunction(() => {
  61. Elements.startMenu(); Elements.clearMainScreen();
  62. });
  63. set.setNext("bc32e411-3c54-4747-ad79-506fc5a9d6c9");
  64. tree.addNode(set);
  65. node = new DialogueNode("415dc32a-1549-429d-9ac4-8cd1b4c92c14");
  66. node.setNext("1");
  67. tree.addNode(node);
  68. set = new DialogueSet("f448e718-9d24-4191-9913-ccc36d97c4c0");
  69. set.setFunction(() => {
  70. tree.setRepeatChoices(false);
  71. });
  72. set.setNext("9f11871f-eebd-4b9a-b3db-ed9be8cf78e7");
  73. tree.addNode(set);
  74. choice = new DialogueChoice("ef9253b9-5c24-46cc-8e2d-5562a1544f07");
  75. choice.setSay(() => { return new Say(SaveHandler.getSayForSlot(0));});
  76. choice.setNext("9594cf06-6062-4952-b378-6aedaafe2951");
  77. tree.addNode(choice);
  78. choice = new DialogueChoice("82c512c6-0115-4d72-a413-5728a623f04b");
  79. choice.setSay(() => { return new Say(SaveHandler.getSayForSlot(1));});
  80. choice.setNext("fe95cfb3-b9f5-4b12-83aa-94d26e5bcac0");
  81. tree.addNode(choice);
  82. choice = new DialogueChoice("7315835a-4d95-4377-828c-8a4ca7e49f87");
  83. choice.setSay(() => { return new Say(SaveHandler.getSayForSlot(2));});
  84. choice.setNext("dc884974-7bb2-436f-b3a4-cdf8550bd494");
  85. tree.addNode(choice);
  86. choice = new DialogueChoice("50afd6f8-87ce-49bf-b689-4819bc5dc8e7");
  87. choice.setSay(() => { return new Say(SaveHandler.getSayForSlot(3));});
  88. choice.setNext("62f5ea88-c6f0-4469-87f2-ea3b37638509");
  89. tree.addNode(choice);
  90. choice = new DialogueChoice("d79e9955-f81e-4ac9-8246-a02b0bd49dae");
  91. choice.setSay(() => { return new Say(SaveHandler.getSayForSlot(4));});
  92. choice.setNext("ee4ecd8b-59e2-43a6-8150-8a835d6eeae1");
  93. tree.addNode(choice);
  94. node = new DialogueNode("719e71dd-9989-4015-93af-9fb7096002c1");
  95. node.setName("SlotChoices");
  96. node.setChoices(["ef9253b9-5c24-46cc-8e2d-5562a1544f07","82c512c6-0115-4d72-a413-5728a623f04b","7315835a-4d95-4377-828c-8a4ca7e49f87","50afd6f8-87ce-49bf-b689-4819bc5dc8e7","d79e9955-f81e-4ac9-8246-a02b0bd49dae","9483a087-04d0-48dd-884f-946930771b95","defe0f4c-4452-40f3-aff1-ba076263fcbc"]);
  97. tree.addNode(node);
  98. set = new DialogueSet("9594cf06-6062-4952-b378-6aedaafe2951");
  99. set.setFunction(() => {
  100. SaveHandler.setSlot(0);
  101. });
  102. set.setNext("a6b6b3d2-25ef-41b1-a5b5-25143f1b41f9");
  103. tree.addNode(set);
  104. set = new DialogueSet("fe95cfb3-b9f5-4b12-83aa-94d26e5bcac0");
  105. set.setFunction(() => {
  106. SaveHandler.setSlot(1);
  107. });
  108. set.setNext("a6b6b3d2-25ef-41b1-a5b5-25143f1b41f9");
  109. tree.addNode(set);
  110. set = new DialogueSet("dc884974-7bb2-436f-b3a4-cdf8550bd494");
  111. set.setFunction(() => {
  112. SaveHandler.setSlot(2);
  113. });
  114. set.setNext("a6b6b3d2-25ef-41b1-a5b5-25143f1b41f9");
  115. tree.addNode(set);
  116. set = new DialogueSet("62f5ea88-c6f0-4469-87f2-ea3b37638509");
  117. set.setFunction(() => {
  118. SaveHandler.setSlot(3);
  119. });
  120. set.setNext("a6b6b3d2-25ef-41b1-a5b5-25143f1b41f9");
  121. tree.addNode(set);
  122. set = new DialogueSet("ee4ecd8b-59e2-43a6-8150-8a835d6eeae1");
  123. set.setFunction(() => {
  124. SaveHandler.setSlot(4);
  125. });
  126. set.setNext("a6b6b3d2-25ef-41b1-a5b5-25143f1b41f9");
  127. tree.addNode(set);
  128. set = new DialogueSet("f25f6525-dad6-45d7-a391-246c1b02b569");
  129. set.setFunction(() => {
  130. return SaveHandler.loadFromFile();
  131. });
  132. set.setNext("5d1dfb86-abd9-4ad6-bf07-8ced5476e401");
  133. tree.addNode(set);
  134. choice = new DialogueChoice("9483a087-04d0-48dd-884f-946930771b95");
  135. choice.setSay(() => { return new Say("Erase a save");});
  136. choice.setConditions(() => { return !SaveHandler.isErasing();});
  137. choice.setNext("ee65c84a-021f-44d3-aa34-50235f438c96");
  138. tree.addNode(choice);
  139. choice = new DialogueChoice("defe0f4c-4452-40f3-aff1-ba076263fcbc");
  140. choice.setSay(() => { return new Say("Don't erase my saves!");});
  141. choice.setConditions(() => { return SaveHandler.isErasing();});
  142. choice.setNext("ee65c84a-021f-44d3-aa34-50235f438c96");
  143. tree.addNode(choice);
  144. set = new DialogueSet("ee65c84a-021f-44d3-aa34-50235f438c96");
  145. set.setFunction(() => {
  146. SaveHandler.toggleErasing()
  147. });
  148. set.setNext("6f15f7d6-4944-4b93-9d47-7046e8ae1f15");
  149. tree.addNode(set);
  150. node = new DialogueNode("6f15f7d6-4944-4b93-9d47-7046e8ae1f15");
  151. node.setNext("SlotChoices");
  152. tree.addNode(node);
  153. set = new DialogueSet("915492f1-8fa7-4ddc-9dc0-6b0340f738c8");
  154. set.setFunction(() => {
  155. return SaveHandler.loadFromStorage();
  156. });
  157. set.setNext("f82fc177-b4bd-4f06-b7ab-216259e056a5");
  158. tree.addNode(set);
  159. node = new DialogueNode("d4a379b5-06c9-4fca-a25c-b1a31b6bf93d");
  160. node.setNext("Settings");
  161. tree.addNode(node);
  162. node = new DialogueNode("6b3f385b-8283-4635-9c73-e2303d77642d");
  163. node.setNext("About");
  164. tree.addNode(node);
  165. node = new DialogueNode("b75c038c-654c-4c62-8f49-2f4518f52cff");
  166. node.setName("Settings");
  167. node.setNext("2392c787-0c2a-46fb-b06c-928e5f447a9f");
  168. tree.addNode(node);
  169. text = new DialogueText("d33456b8-72b6-4214-90b3-3eba2442b287");
  170. text.setSay(() => { return new Say("Not implemented.");});
  171. text.setNext("bc24b446-d6a2-4284-93fb-67ad3598fcd1");
  172. tree.addNode(text);
  173. set = new DialogueSet("bc24b446-d6a2-4284-93fb-67ad3598fcd1");
  174. set.setFunction(() => {
  175. return Elements.waitForAnyKey();
  176. });
  177. set.setNext("81f9d62b-907e-48ae-84fe-78c7cecc4fe3");
  178. tree.addNode(set);
  179. node = new DialogueNode("81f9d62b-907e-48ae-84fe-78c7cecc4fe3");
  180. node.setNext("1");
  181. tree.addNode(node);
  182. node = new DialogueNode("c342e112-5c73-4c82-8882-47ca3a71c914");
  183. node.setName("About");
  184. node.setNext("d33456b8-72b6-4214-90b3-3eba2442b287");
  185. tree.addNode(node);
  186. choice = new DialogueChoice("a55f46fa-98a9-4dff-9f1c-4f88c18ce8dd");
  187. choice.setSay(() => { return new Say("Note about content (Spoiler Alert)");});
  188. choice.setNext("7c2060aa-66ce-4dbb-88d2-0c8f190e0a6c");
  189. tree.addNode(choice);
  190. text = new DialogueText("59a3cb30-d4ba-4b46-8157-b900fc7022dd");
  191. text.setSay(() => { return new Say(Say.CENTERED, new SayImage("introLogo"), Say.LINE_BREAK, new SayItalic("The Obelisk is an adult interactive fiction game set in a post-apocalyptic world ravaged by a magical structure."));});
  192. text.setNext("1b8bdc9d-a4bf-40aa-a382-f7813c158840");
  193. tree.addNode(text);
  194. set = new DialogueSet("c27829b7-7199-4b1e-9334-536258546cfc");
  195. set.setFunction(() => {
  196. return Elements.waitForAnyKey();
  197. });
  198. set.setNext("42401145-9154-40c3-a9d3-4f83df97b89e");
  199. tree.addNode(set);
  200. node = new DialogueNode("42401145-9154-40c3-a9d3-4f83df97b89e");
  201. node.setNext("1");
  202. tree.addNode(node);
  203. set = new DialogueSet("7c2060aa-66ce-4dbb-88d2-0c8f190e0a6c");
  204. set.setFunction(() => {
  205. Elements.clearMainScreen();
  206. });
  207. set.setNext("59a3cb30-d4ba-4b46-8157-b900fc7022dd");
  208. tree.addNode(set);
  209. text = new DialogueText("1b8bdc9d-a4bf-40aa-a382-f7813c158840");
  210. text.setSay(() => { return new Say("In this story, the Obelisk will attempt to give the player exactly what the player wants, but that's not always what the player thinks they want. This is a pornographic game first and a roleplaying game second, which means that it is assumed that the player character wants sex - even if they don't act like it.", Say.PARAGRAPH_BREAK, "Therefore, this game will \"fit\" for players who go in with that mentality, but it ", new SayBold("will"), " look differently for players with a different point of view for their characters. While roleplaying is encouraged, that is not how the game was written, so if you're playing it that way, it's just your choice.", Say.PARAGRAPH_BREAK, "There is no sex without explicit consent from the NPCs: implicit consent is only used for the player character, because that's part of the story. It is possible to remove the player's consent, thereby having no unwanted sex scenes occur, by setting up the content options, which will disable content without explicit consent (i.e. disabling M/M Sex Scenes means this kind of thing will only happen if you actively ask an NPC for it).", Say.PARAGRAPH_BREAK, "While the content options are there to tailor your experience, the game is made with \"all content is available\" in mind, which might result in a playthrough that's not much fun if you disable too many things. Still, that's your choice. Game on.");});
  211. text.setNext("c27829b7-7199-4b1e-9334-536258546cfc");
  212. tree.addNode(text);
  213. branch = new DialogueBranch("a6b6b3d2-25ef-41b1-a5b5-25143f1b41f9");
  214. branch.setVariable(() => { return SaveHandler.isVirgin();});
  215. branch.addBranch("d0dcd7c6-26ae-41d0-99a6-e0cae17ae381", () => { return true;});
  216. branch.setNext("915492f1-8fa7-4ddc-9dc0-6b0340f738c8");
  217. tree.addNode(branch);
  218. text = new DialogueText("b8ee6702-8d38-4bd7-9b24-df8c901a50d4");
  219. text.setSay(() => { return new Say(new SayBold("A note on saves: "), "The selected slot will be saved to browser storage, so it will be deleted if the browser ever decides to delete it. The game will write to that save slot every turn, so you don't need to worry about that. Alternatively, you can manually save in-game, which will save to a file.");});
  220. text.setNext("50876e13-23b9-43c0-b6b1-a89b1683d5e7");
  221. tree.addNode(text);
  222. set = new DialogueSet("50876e13-23b9-43c0-b6b1-a89b1683d5e7");
  223. set.setFunction(() => {
  224. return Elements.waitForAnyKey();
  225. });
  226. set.setNext("915492f1-8fa7-4ddc-9dc0-6b0340f738c8");
  227. tree.addNode(set);
  228. set = new DialogueSet("d0dcd7c6-26ae-41d0-99a6-e0cae17ae381");
  229. set.setFunction(() => {
  230. Elements.clearMainScreen();
  231. });
  232. set.setNext("b8ee6702-8d38-4bd7-9b24-df8c901a50d4");
  233. tree.addNode(set);
  234. nodetree = new DialogueNodeTree("2392c787-0c2a-46fb-b06c-928e5f447a9f");
  235. nodetree.setTree(() => { return DialogueTrees.Settings; });
  236. nodetree.setNext("3c334c63-9030-4fba-884e-a147f40eb8f5");
  237. tree.addNode(nodetree);
  238. node = new DialogueNode("3c334c63-9030-4fba-884e-a147f40eb8f5");
  239. node.setNext("1");
  240. tree.addNode(node);
  241. return tree;
  242. })();
  243. }