decayingCells.hx 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. function buildMainRooms()
  2. {
  3. Struct.createSpecificRoom("PrisonFlaskRoom").setName("start")
  4. .chain(Struct.createSpecificRoom("PerkShop").setName("perk"))
  5. .chain(Struct.createSpecificRoom("PrisonMonsterDoor").setName("monster"))
  6. .chain(Struct.createSpecificExit("T_PrisonDepths", "aPDangerousExit").setName("mainExit"));
  7. Struct.createRoomWithType("BuyableTreasure")
  8. .addBefore("mainExit");
  9. Struct.createRoomWithType("WallJumpGate")
  10. .addBefore("mainExit");
  11. Struct.createSpecificRoom("ChristmasGift")
  12. .addBefore("mainExit");
  13. Struct.createSpecificRoom("Pokeball")
  14. .addBefore("mainExit");
  15. Struct.createSpecificRoom("aPMoreEasyGetItem")
  16. .branchBetween("monster", "mainExit")
  17. .setName("moreeasy");
  18. Struct.createShop().branchBetween("monster", "mainExit");
  19. Struct.createRoomWithType("Treasure").branchBetween("monster", "mainExit");
  20. Struct.createRunicZDoor(Struct.createRoomWithType("Treasure"), 3, Struct.allRooms);
  21. Struct.createRunicZDoor(Struct.createRoomWithType("Treasure"), 1, Struct.allRooms);
  22. }
  23. function buildSecondaryRooms()
  24. {
  25. trace("buildSecondaryRooms");
  26. var exit = Struct.getRoomByName("mainExit");
  27. var mains = Struct.allRooms.filter(function(_room) return _room.parent != null &&
  28. _room.parent != Struct.getRoomByName("start") &&
  29. _room.parent != Struct.getRoomByName("perk") &&
  30. _room.parent != Struct.getRoomByName("monster") &&
  31. _room != exit && _room.isMainLevel() && _room.isParentOf(exit) && _room.childrenCount > 1);
  32. var mainsCopy = mains.copy();
  33. for(i in 0...Random.irange(1, 4)) {
  34. if(mainsCopy.length == 0) {
  35. mainsCopy = mains.copy();
  36. }
  37. Struct.createRoomWithTypeFromGroup("Combat", "Prison").addBefore(Random.arraySplice(mainsCopy).getName());
  38. }
  39. for(i in 0...2) {
  40. Struct.createRoomWithTypeFromGroup("Combat", "Prison").addBefore("mainExit");
  41. }
  42. }
  43. function addTeleports()
  44. {
  45. var rooms = Struct.allRooms.filter(function(_room) return _room.isMainLevel() );
  46. var exit = Struct.getRoomByName("mainExit");
  47. for(room in rooms) {
  48. if( room.type == "Corridor" && room.childrenCount > 1 && room.calcTypeDistance("Teleport", true) > 1 ){
  49. room.setType("Teleport");
  50. }
  51. }
  52. for(room in rooms) {
  53. if(room.calcTypeDistance("Teleport", true) > 2){
  54. Struct.createRoomWithType("Teleport").addBefore(room.getName());
  55. }
  56. }
  57. }
  58. function buildTimedDoors()
  59. {
  60. var dh = new DecisionHelper(Struct.allRooms);
  61. dh.score(function(_room) return _room.spawnDistance <= 5 ? -4 : _room.spawnDistance >= 8 ? -10 : 0);
  62. dh.score(function(_room) return Random.irange(0, 1));
  63. Struct.createTimedBranchBefore(dh.getBest());
  64. }
  65. function finalize()
  66. {
  67. Struct.createRoomWithType("TeleportGate")
  68. .addBefore("mainExit");
  69. Struct.createSpecificRoom("aPRollZone")
  70. .addBefore("moreeasy");
  71. }
  72. function buildMobRoster(_mobList)
  73. {
  74. addMobRosterFrom("PrisonStart", _mobList);
  75. }
  76. function setLevelProps(_levelProps)
  77. {
  78. setLevelPropsFrom("PrisonStart", _levelProps);
  79. _levelProps.timedDoor = 8.0;
  80. _levelProps.timedGoldMul = 2.0;
  81. _levelProps.timedScrolls = 1;
  82. _levelProps.wind = 0.0;
  83. _levelProps.musicIntro = "music/prisonstart_loop.ogg";
  84. _levelProps.musicLoop = "music/prisonstart_loop.ogg";
  85. _levelProps.doorColor = 11278336;
  86. _levelProps.zDoorColor = 11278336;
  87. _levelProps.loadingColor = 2491170;
  88. _levelProps.loadingDescColor = 6652612;
  89. }
  90. function setLevelInfo(_levelInfo){
  91. setLevelInfoFrom("PrisonStart", _levelInfo);
  92. _levelInfo.baseLootLevel = 3;
  93. _levelInfo.baseMobTier = 5;
  94. _levelInfo.biome = "PrisonStart";
  95. _levelInfo.cellBonus = 0.0;
  96. _levelInfo.doubleUps = 1;
  97. _levelInfo.eliteRoomChance = 1.0;
  98. _levelInfo.eliteWanderChance = 1.0;
  99. _levelInfo.extraMobTier = 0;
  100. _levelInfo.flags = 1;
  101. _levelInfo.goldBonus = 0;
  102. _levelInfo.mobDensity = 1.3;
  103. _levelInfo.name = "Decaying Cells";
  104. _levelInfo.tripleUps = 2;
  105. }