diff --git a/src/library/Syroot.Worms.Armageddon/Scheme.cs b/src/library/Syroot.Worms.Armageddon/Scheme.cs index 9e56141..2df5f35 100644 --- a/src/library/Syroot.Worms.Armageddon/Scheme.cs +++ b/src/library/Syroot.Worms.Armageddon/Scheme.cs @@ -1059,7 +1059,385 @@ namespace Syroot.Worms.Armageddon set { _rwVersionOverride = value; - // TODO: Configure V3 settings according to selected version. + + // Configure V3 settings according to selected version. + void setBattyRope1To2() => BattyRope = true; + void setBattyRope3And5To9() + { + setBattyRope1To2(); + RopeKnockForce = 100; + } + + void set150Speed() => GameSpeed = 1.5f; + + void setTestStuff1() + { + ExplosionFallDamage = true; + GirderRadiusAssist = true; + IndianRopeGlitch = true; + KeepControlHeadBump = true; + KeepControlSkim = SkimControlLoss.Keep; + RopeKnockForce = 100; + RopeRollDrops = RopeRollDrops.Rope; + SkipWalk = SkipWalk.Facilitated; + } + void setTestStuff2() + { + setTestStuff1(); + BattyRope = true; + RopeRollDrops = RopeRollDrops.RopeJump; + KeepControlXImpact = true; + } + void setTestStuff3() + { + setTestStuff2(); + ProjectileMaxSpeed = 0; + RopeMaxSpeed = 0; + } + void setTestStuff4() + { + setTestStuff3(); + AntiLockPower = true; + CircularAim = true; + GirderRadiusAssist = false; + JetpackMaxSpeed = 5 * 2; + ProjectileMaxSpeed = 32 * 2; + RopeMaxSpeed = 16 * 2; + } + void setTestStuff5() + { + setTestStuff4(); + ProjectileMaxSpeed = 0; + } + void setTestStuff6To9() + { + setTestStuff5(); + GirderRadiusAssist = true; + } + + void setRacingStuffPre() + { + WormPhasingAlly = WormPhasing.WormsWeapons; + WormPhasingEnemy = WormPhasing.WormsWeapons; + WormSelectKeepHotSeat = true; + } + void setRacingStuff() + { + WormPhasingAlly = WormPhasing.Worms; + WormPhasingEnemy = WormPhasing.Worms; + WormSelectKeepHotSeat = true; + } + + void setBoomRacing() + { + WormPhasingEnemy = WormPhasing.WormsWeaponsDamage; + WormSelectKeepHotSeat = true; + } + + switch (_rwVersionOverride) + { + case 11: // 3.5 Beta 3pre15[BattyRope1] + case 12: // 3.5 Beta 3pre15[BattyRope2] + setBattyRope1To2(); + break; + case 15: // 3.5 Beta 3pre17[BattyRope3] + case 36: // 3.6.23.0[BattyRope5] + case 63: // 3.6.27.9[BattyRope5] + case 73: // 3.6.28.0[BattyRope5] + case 86: // 3.6.29.3[BattyRope6] + case 96: // 3.6.29.20[BattyRope6] + case 102: // 3.6.29.21[BattyRope6] + case 108: // 3.6.29.22[BattyRope7] + case 115: // 3.6.29.23[BattyRope7] + case 122: // 3.6.29.24[BattyRope7] + case 138: // 3.6.29.47[BattyRope8] + case 145: // 3.6.29.49[BattyRope8] + case 154: // 3.6.30.0[BattyRope8] + case 162: // 3.6.31.0[BattyRope8] + case 183: // 3.6.31.3[BattyRope8] + case 190: // 3.6.31.5[BattyRope8] + case 197: // 3.6.31.7[BattyRope8] + case 204: // 3.6.31.12[BattyRope8] + case 211: // 3.6.31.14[BattyRope8] + case 218: // 3.6.31.22[BattyRope8] + case 225: // 3.6.31.23[BattyRope8] + case 232: // 3.6.31.31[BattyRope9] + case 239: // 3.7.0.0 RC1-3[BattyRope9] + case 246: // 3.7.0.0[BattyRope9] + case 253: // 3.7.0.2[BattyRope9] + case 260: // 3.7.0.3[BattyRope9] + case 267: // 3.7.0.4[BattyRope9] + case 274: // 3.7.0.5[BattyRope9] + case 281: // 3.7.1.0[BattyRope9] + case 288: // 3.7.1.3[BattyRope9] + case 295: // 3.7.2.1[BattyRope9] + case 302: // 3.7.2.4[BattyRope9] + case 309: // 3.7.2.8[BattyRope9] + case 316: // 3.7.2.15[BattyRope9] + case 323: // 3.7.2.20[BattyRope9] + case 330: // 3.7.2.24[BattyRope9] + case 337: // 3.7.2.25[BattyRope9] + case 344: // 3.7.2.26[BattyRope9] + case 351: // 3.7.2.27[BattyRope9] + case 358: // 3.7.2.29[BattyRope9] + case 365: // 3.7.2.31[BattyRope9] + case 372: // 3.7.2.32[BattyRope9] + case 379: // 3.7.2.33[BattyRope9] + case 386: // 3.7.2.34[BattyRope9] + case 393: // 3.7.2.36[BattyRope9] + case 400: // 3.7.2.40[BattyRope9] + case 407: // 3.7.2.42[BattyRope9] + case 414: // 3.7.2.44[BattyRope9] + case 421: // 3.7.2.45[BattyRope9] + case 428: // 3.7.2.73[BattyRope9] + case 435: // 3.7.2.74[BattyRope9] + case 442: // 3.7.2.78[BattyRope9] + case 449: // 3.7.2.82[BattyRope9] + case 456: // 3.7.2.90[BattyRope9] + case 463: // 3.7.2.91[BattyRope9] + case 470: // 3.7.2.92[BattyRope9] + case 477: // 3.7.2.95[BattyRope9] + setBattyRope3And5To9(); + break; + case 25: // 3.6.19.16[150% speed] + case 27: // 3.6.19.17[150% speed] + case 64: // 3.6.27.9[150% speed] + case 74: // 3.6.28.0[150% speed] + case 87: // 3.6.29.3[150% speed] + case 97: // 3.6.29.20[150% speed] + case 103: // 3.6.29.21[150% speed] + case 109: // 3.6.29.22[150% speed] + case 116: // 3.6.29.23[150% speed] + case 123: // 3.6.29.24[150% speed] + case 139: // 3.6.29.47[150% speed] + case 146: // 3.6.29.49[150% speed] + case 155: // 3.6.30.0[150% speed] + case 163: // 3.6.31.0[150% speed] + case 184: // 3.6.31.3[150% speed] + case 191: // 3.6.31.5[150% speed] + case 198: // 3.6.31.7[150% speed] + case 205: // 3.6.31.12[150% speed] + case 212: // 3.6.31.14[150% speed] + case 219: // 3.6.31.22[150% speed] + case 226: // 3.6.31.23[150% speed] + case 233: // 3.6.31.31[150% speed] + case 240: // 3.7.0.0 RC1-3[150% speed] + case 247: // 3.7.0.0[150% speed] + case 254: // 3.7.0.2[150% speed] + case 261: // 3.7.0.3[150% speed] + case 268: // 3.7.0.4[150% speed] + case 275: // 3.7.0.5[150% speed] + case 282: // 3.7.1.0[150% speed] + case 289: // 3.7.1.3[150% speed] + case 296: // 3.7.2.1[150% speed] + case 303: // 3.7.2.4[150% speed] + case 310: // 3.7.2.8[150% speed] + case 317: // 3.7.2.15[150% speed] + case 324: // 3.7.2.20[150% speed] + case 331: // 3.7.2.24[150% speed] + case 338: // 3.7.2.25[150% speed] + case 345: // 3.7.2.26[150% speed] + case 352: // 3.7.2.27[150% speed] + case 359: // 3.7.2.29[150% speed] + case 366: // 3.7.2.31[150% speed] + case 373: // 3.7.2.32[150% speed] + case 380: // 3.7.2.33[150% speed] + case 387: // 3.7.2.34[150% speed] + case 394: // 3.7.2.36[150% speed] + case 401: // 3.7.2.40[150% speed] + case 408: // 3.7.2.42[150% speed] + case 415: // 3.7.2.44[150% speed] + case 422: // 3.7.2.45[150% speed] + case 429: // 3.7.2.73[150% speed] + case 436: // 3.7.2.74[150% speed] + case 443: // 3.7.2.78[150% speed] + case 450: // 3.7.2.82[150% speed] + case 457: // 3.7.2.90[150% speed] + case 464: // 3.7.2.91[150% speed] + case 471: // 3.7.2.92[150% speed] + case 478: // 3.7.2.95[150% speed] + set150Speed(); + break; + case 39: // 3.6.24.1[TestStuff1] + setTestStuff1(); + break; + case 40: // 3.6.24.1[TestStuff2] + setTestStuff2(); + break; + case 46: // 3.6.26.4c[TestStuff3] + case 65: // 3.6.27.9[TestStuff3] + setTestStuff3(); + break; + case 69: // 3.6.27.11[TestStuff4] + setTestStuff4(); + break; + case 75: // 3.6.28.0[TestStuff5] + setTestStuff5(); + break; + case 88: // 3.6.29.3[TestStuff6] + case 98: // 3.6.29.20[TestStuff6] + case 104: // 3.6.29.21[TestStuff6] + case 110: // 3.6.29.22[TestStuff7] + case 117: // 3.6.29.23[TestStuff7] + case 124: // 3.6.29.24[TestStuff7] + case 140: // 3.6.29.47[TestStuff8] + case 147: // 3.6.29.49[TestStuff8] + case 156: // 3.6.30.0[TestStuff8] + case 164: // 3.6.31.0[TestStuff8] + case 185: // 3.6.31.3[TestStuff8] + case 192: // 3.6.31.5[TestStuff8] + case 199: // 3.6.31.7[TestStuff8] + case 206: // 3.6.31.12[TestStuff8] + case 213: // 3.6.31.14[TestStuff8] + case 220: // 3.6.31.22[TestStuff8] + case 227: // 3.6.31.23[TestStuff8] + case 234: // 3.6.31.31[TestStuff9] + case 241: // 3.7.0.0 RC1-3[TestStuff9] + case 248: // 3.7.0.0[TestStuff9] + case 255: // 3.7.0.2[TestStuff9] + case 262: // 3.7.0.3[TestStuff9] + case 269: // 3.7.0.4[TestStuff9] + case 276: // 3.7.0.5[TestStuff9] + case 283: // 3.7.1.0[TestStuff9] + case 290: // 3.7.1.3[TestStuff9] + case 297: // 3.7.2.1[TestStuff9] + case 304: // 3.7.2.4[TestStuff9] + case 311: // 3.7.2.8[TestStuff9] + case 318: // 3.7.2.15[TestStuff9] + case 325: // 3.7.2.20[TestStuff9] + case 332: // 3.7.2.24[TestStuff9] + case 339: // 3.7.2.25[TestStuff9] + case 346: // 3.7.2.26[TestStuff9] + case 353: // 3.7.2.27[TestStuff9] + case 360: // 3.7.2.29[TestStuff9] + case 367: // 3.7.2.31[TestStuff9] + case 374: // 3.7.2.32[TestStuff9] + case 381: // 3.7.2.33[TestStuff9] + case 388: // 3.7.2.34[TestStuff9] + case 395: // 3.7.2.36[TestStuff9] + case 402: // 3.7.2.40[TestStuff9] + case 409: // 3.7.2.42[TestStuff9] + case 416: // 3.7.2.44[TestStuff9] + case 423: // 3.7.2.45[TestStuff9] + case 430: // 3.7.2.73[TestStuff9] + case 437: // 3.7.2.74[TestStuff9] + case 444: // 3.7.2.78[TestStuff9] + case 451: // 3.7.2.82[TestStuff9] + case 458: // 3.7.2.90[TestStuff9] + case 465: // 3.7.2.91[TestStuff9] + case 472: // 3.7.2.92[TestStuff9] + case 479: // 3.7.2.95[TestStuff9] + setTestStuff6To9(); + break; + case 99: // 3.6.29.20[RacingStuff-pre] + setRacingStuffPre(); + break; + case 105: // 3.6.29.21[RacingStuff] + case 111: // 3.6.29.22[RacingStuff] + case 118: // 3.6.29.23[RacingStuff] + case 125: // 3.6.29.24[RacingStuff] + case 141: // 3.6.29.47[RacingStuff] + case 148: // 3.6.29.49[RacingStuff] + case 157: // 3.6.30.0[RacingStuff] + case 165: // 3.6.31.0[RacingStuff] + case 186: // 3.6.31.3[RacingStuff] + case 193: // 3.6.31.5[RacingStuff] + case 200: // 3.6.31.7[RacingStuff] + case 207: // 3.6.31.12[RacingStuff] + case 214: // 3.6.31.14[RacingStuff] + case 221: // 3.6.31.22[RacingStuff] + case 228: // 3.6.31.23[RacingStuff] + case 235: // 3.6.31.31[RacingStuff] + case 242: // 3.7.0.0 RC1-3[RacingStuff] + case 249: // 3.7.0.0[RacingStuff] + case 256: // 3.7.0.2[RacingStuff] + case 263: // 3.7.0.3[RacingStuff] + case 270: // 3.7.0.4[RacingStuff] + case 277: // 3.7.0.5[RacingStuff] + case 284: // 3.7.1.0[RacingStuff] + case 291: // 3.7.1.3[RacingStuff] + case 298: // 3.7.2.1[RacingStuff] + case 305: // 3.7.2.4[RacingStuff] + case 312: // 3.7.2.8[RacingStuff] + case 319: // 3.7.2.15[RacingStuff] + case 326: // 3.7.2.20[RacingStuff] + case 333: // 3.7.2.24[RacingStuff] + case 340: // 3.7.2.25[RacingStuff] + case 347: // 3.7.2.26[RacingStuff] + case 354: // 3.7.2.27[RacingStuff] + case 361: // 3.7.2.29[RacingStuff] + case 368: // 3.7.2.31[RacingStuff] + case 375: // 3.7.2.32[RacingStuff] + case 382: // 3.7.2.33[RacingStuff] + case 389: // 3.7.2.34[RacingStuff] + case 396: // 3.7.2.36[RacingStuff] + case 403: // 3.7.2.40[RacingStuff] + case 410: // 3.7.2.42[RacingStuff] + case 417: // 3.7.2.44[RacingStuff] + case 424: // 3.7.2.45[RacingStuff] + case 431: // 3.7.2.73[RacingStuff] + case 438: // 3.7.2.74[RacingStuff] + case 445: // 3.7.2.78[RacingStuff] + case 452: // 3.7.2.82[RacingStuff] + case 459: // 3.7.2.90[RacingStuff] + case 466: // 3.7.2.91[RacingStuff] + case 473: // 3.7.2.92[RacingStuff] + case 480: // 3.7.2.95[RacingStuff] + setRacingStuff(); + break; + case 112: // 3.6.29.22[BoomRacing] + case 119: // 3.6.29.23[BoomRacing] + case 126: // 3.6.29.24[BoomRacing] + case 142: // 3.6.29.47[BoomRacing] + case 149: // 3.6.29.49[BoomRacing] + case 158: // 3.6.30.0[BoomRacing] + case 166: // 3.6.31.0[BoomRacing] + case 187: // 3.6.31.3[BoomRacing] + case 194: // 3.6.31.5[BoomRacing] + case 201: // 3.6.31.7[BoomRacing] + case 208: // 3.6.31.12[BoomRacing] + case 215: // 3.6.31.14[BoomRacing] + case 222: // 3.6.31.22[BoomRacing] + case 229: // 3.6.31.23[BoomRacing] + case 236: // 3.6.31.31[BoomRacing] + case 243: // 3.7.0.0 RC1-3[BoomRacing] + case 250: // 3.7.0.0[BoomRacing] + case 257: // 3.7.0.2[BoomRacing] + case 264: // 3.7.0.3[BoomRacing] + case 271: // 3.7.0.4[BoomRacing] + case 278: // 3.7.0.5[BoomRacing] + case 285: // 3.7.1.0[BoomRacing] + case 292: // 3.7.1.3[BoomRacing] + case 299: // 3.7.2.1[BoomRacing] + case 306: // 3.7.2.4[BoomRacing] + case 313: // 3.7.2.8[BoomRacing] + case 320: // 3.7.2.15[BoomRacing] + case 327: // 3.7.2.20[BoomRacing] + case 334: // 3.7.2.24[BoomRacing] + case 341: // 3.7.2.25[BoomRacing] + case 348: // 3.7.2.26[BoomRacing] + case 355: // 3.7.2.27[BoomRacing] + case 362: // 3.7.2.29[BoomRacing] + case 369: // 3.7.2.31[BoomRacing] + case 376: // 3.7.2.32[BoomRacing] + case 383: // 3.7.2.33[BoomRacing] + case 390: // 3.7.2.34[BoomRacing] + case 397: // 3.7.2.36[BoomRacing] + case 404: // 3.7.2.40[BoomRacing] + case 411: // 3.7.2.42[BoomRacing] + case 418: // 3.7.2.44[BoomRacing] + case 425: // 3.7.2.45[BoomRacing] + case 432: // 3.7.2.73[BoomRacing] + case 439: // 3.7.2.74[BoomRacing] + case 446: // 3.7.2.78[BoomRacing] + case 453: // 3.7.2.82[BoomRacing] + case 460: // 3.7.2.90[BoomRacing] + case 467: // 3.7.2.91[BoomRacing] + case 474: // 3.7.2.92[BoomRacing] + case 481: // 3.7.2.95[BoomRacing] + setBoomRacing(); + break; + } } }