MeetTheRobinsons.asl 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. state("wilbur")
  2. {
  3. string50 map : 0x328810;
  4. string50 wrsplits : 0x328897;
  5. byte loading1 : 0x2FBC5C;
  6. }
  7. startup
  8. {
  9. settings.Add("l1", false, "All Levels");
  10. settings.Add("l2", true, "WR Splits");
  11. vars.missions5 = new Dictionary<string,string>
  12. {
  13. {"a1_robinson","Entering Robinson's house"},
  14. {"a1_robinson_storage","Storage Room"},
  15. {"a1_robinson_trainroom","Entering Training Room"},
  16. {"a1_robinsonhouse_ext","Exterior of House"},
  17. {"a1_subbasement","Entering Basement"},
  18. {"a1_subbasement2","Basement Part 2"},
  19. {"a1_subbasement3","Basement Part 3"},
  20. {"a1_subbasement_boss","Fighting Basement Boss"},
  21. {"a1_sciencefair","Science Fair"},
  22. {"a2_altfuture","Trainsit Station"},
  23. {"a2_altfuture_warehouse","Industrial District 1"},
  24. {"a2_oldtown","Old Town 1"},
  25. {"a2_altfuture_warehouse2","Future Warehouse Part 2"},
  26. {"a2_oldtown2","Old Town Part 2"},
  27. {"a2_lizzy","Hive"},
  28. {"a2_lizzy_boss","Hive Thrown Room"},
  29. {"a2_magma","Magma Industires Transit"},
  30. {"a2_magma_interior","Magma Industries Backdoor"},
  31. {"a2_prometheus","Magma Industries Prometheus"},
  32. {"a3_robinson","Robinson House Pre-Doris"},
  33. {"a3_industries","Doris Fight"},
  34. };
  35. foreach (var Tag in vars.missions5)
  36. {
  37. settings.Add(Tag.Key, true, Tag.Value, "l1");
  38. };
  39. vars.missions1 = new Dictionary<string,string>
  40. {
  41. {@"a1_robinson_storage\","Garage Early"},
  42. {@"a1_subbasement\","Basement 1"},
  43. {@"a1_subbasement2\","Basement 2"},
  44. {@"a1_subbasement3\","Basement 3"},
  45. {@"a1_sciencefair\","Science Fair"},
  46. {@"a2_robinson\","Walk Through Walks"},
  47. {@"a2_altfuture_warehouse\","Industrial District"},
  48. {@"a2_oldtown\","Havoc Gloves Early"},
  49. {@"a2_oldtown2\","Starving Orphans Skip"},
  50. {@"a2_lizzy\","Hive Skip"},
  51. {@"a2_lizzy_boss\","Puzzle Skip"},
  52. {@"a2_prometheus\","Prometheus"},
  53. {@"a3_robinson\","Mega Dorris"},
  54. };
  55. foreach (var Tag in vars.missions1)
  56. {
  57. settings.Add(Tag.Key, true, Tag.Value, "l2");
  58. };
  59. vars.onStart = (EventHandler)((s, e) =>
  60. {
  61. vars.doneMaps.Clear();
  62. });
  63. timer.OnStart += vars.onStart;
  64. if (timer.CurrentTimingMethod == TimingMethod.RealTime) // stolen from dude simulator 3, basically asks the runner to set their livesplit to game time
  65. {
  66. var timingMessage = MessageBox.Show (
  67. "This game uses Time without Loads (Game Time) as the main timing method.\n"+
  68. "LiveSplit is currently set to show Real Time (RTA).\n"+
  69. "Would you like to set the timing method to Game Time? This will make verification easier",
  70. "LiveSplit | Meet the Robinsons",
  71. MessageBoxButtons.YesNo,MessageBoxIcon.Question
  72. );
  73. if (timingMessage == DialogResult.Yes)
  74. {
  75. timer.CurrentTimingMethod = TimingMethod.GameTime;
  76. }
  77. }
  78. }
  79. init
  80. {
  81. vars.doneMaps = new List<string>(); // Keeping this in because the locations are based on rooms and not actual OBJs (open world map)
  82. }
  83. start
  84. {
  85. if (current.map == "a1_egypt") // Timing method starts on selecting new game or whatever
  86. {
  87. vars.doneMaps.Clear();
  88. return true;
  89. }
  90. }
  91. split
  92. {
  93. if ((settings["All Levels"]) && (settings[current.map]) && ((!vars.doneMaps.Contains(old.map))))
  94. {
  95. if (current.map != old.map)
  96. {
  97. vars.doneMaps.Add(current.map);
  98. return true;
  99. }
  100. }
  101. else
  102. {
  103. if ((current.wrsplits != old.wrsplits) && (settings[current.wrsplits]) && (!vars.doneMaps.Contains(old.wrsplits)))
  104. {
  105. vars.doneMaps.Add(current.wrsplits);
  106. return true;
  107. }
  108. }
  109. }
  110. reset
  111. {
  112. return (current.map == "fronted");
  113. }
  114. isLoading
  115. {
  116. return (current.loading1 == 1);
  117. }
  118. exit
  119. {
  120. timer.OnStart -= vars.onStart;
  121. }