【PE】希望之路 脚本
2022-12-14 12:34 作者:--Reisen-- | 我要投稿

可以自由使用,但请注明来源,遵守 License。
AvZ 版本:AvZ2 2.0.0
#include "avz.h"
#include "AvZDSL/AvZDSL.h"
#include "legacy/avz_more.h"
#include "DanceCheat/DanceCheat.h"
#include "fodder/fodder.h"
using namespace std;
APvzBase* pb;
AMainObject* mo;
class : AStateHook {
void _BeforeScript() override {
pb = AGetPvzBase();
mo = AGetMainObject();
}
} _mo_initializer;
#define CardR(...) AMkRelOp(ACard(__VA_ARGS__))
ARelOp IceDayR() {
ARelTime t = rand() % 2 ? 298 : 299;
return -t[
AMkRelOp(aIceFiller.Coffee()),
AMkRelOp(AIce3(int(t)))
];
}
ARelOp UseIceR(int row, int col) {
return -100_cs[
AMkRelOp(ACard(AICE_SHROOM, row, col))
];
}
ARelOp UseImitatorIceR(int row, int col) {
ARelTime t = rand() % 2 ? 419 : 420; // 模仿者生效时间可能取 319 或 320
return -t[
CardR(AICE_SHROOM, row, col),
AMkRelOp(AIce3(int(t)))
];
}
ARelOp IceNightR(int row, int col) {
return -420_cs[AMkRelOp(
int idx = AGetSeedIndex(AICE_SHROOM, true);
if(idx != -1 && AGetMainObject()->SeedArray()[idx].IsUsable()) // 复制冰可用
ANow + 420_cs[UseImitatorIceR(row, col)];
else
ANow + 420_cs[UseIceR(row, col)];
)];
}
ARelOp FireR(int row, float col, bool wait_until_recover = false) {
std::vector<APosition> pos;
while(row) {
pos.push_back({row % 10, col});
row /= 10;
}
std::reverse(pos.begin(), pos.end());
if(wait_until_recover)
return -373_cs[AMkRelOp(aCobManager.RecoverFire(pos))];
else
return -373_cs[AMkRelOp(aCobManager.Fire(pos))];
}
class AMaidCheatsR {
public:
static ARelOp CallPartner() {
return AMkRelOp(AMaidCheats::CallPartner());
}
static ARelOp Dancing() {
return AMkRelOp(AMaidCheats::Dancing());
}
static ARelOp Move() {
return AMkRelOp(AMaidCheats::Move());
}
static ARelOp Stop() {
return AMkRelOp(AMaidCheats::Stop());
}
};
ALogger<APvzGui> l;
template <typename... Ts>
ARelOp InfoR(Ts... args) {
return AMkRelOp(l.Info(args...));
}
/*
ch6/I6-3889cs 非定态
正常:IHP-ccPPDH|PSH/Bcc 1149|(288/265)
PSD/B延迟:PSD/B-PAA'a|IPH-ccPPDH 990|1149
热过渡:IPP|PI/PIHHA(A'a) 735|(318/225)
连拦:IPP-ccPD/PHA
1, 3, 7, 9, 11, 13, 16, 18: PSD/B
2, 4, 6, 8, 12, 19: IPP-PPDD
5: PSD/B 延迟
14: 热过渡刷新
17: 连拦延迟
*/
FodderR f({APUFF_SHROOM, ASUN_SHROOM, ASCAREDY_SHROOM, AFLOWER_POT});
void AScript() {
ASetReloadMode(AReloadMode::MAIN_UI);
AConnect(AKey('Q'), []{ throw AException(""); });
ASetGameSpeed(1);
ASetZombies({AZOMBIE, APOLE_VAULTING_ZOMBIE, AFOOTBALL_ZOMBIE, ADANCING_ZOMBIE, AZOMBONI, ADOLPHIN_RIDER_ZOMBIE, ADIGGER_ZOMBIE, APOGO_ZOMBIE, ABUNGEE_ZOMBIE, ALADDER_ZOMBIE, ACATAPULT_ZOMBIE, AGARGANTUAR, AGIGA_GARGANTUAR});
ASelectCards({AICE_SHROOM, AM_ICE_SHROOM, ACOFFEE_BEAN, ACHERRY_BOMB, AJALAPENO, ASQUASH, APUFF_SHROOM, ASUN_SHROOM, ASCAREDY_SHROOM, AFLOWER_POT});
aIceFiller.Start({{3, 6}, {3, 7}, {3, 8}});
cresc::AverageSpawn({AGARGANTUAR, AGIGA_GARGANTUAR});
DanceCheat(DanceCheatMode::FAST);
AWave(1, 3, 7, 9, 11, 13, 16, 18)[
225_cs[FireR(1, 9) + 63_cs[FireR(2, 9)]],
398_cs[FireR(1, 8.6625)],
265_cs[FireR(5, 8.2625)],
445_cs[f({5, 6}, 134)]
].AssumeWaveLength(601);
AWave(2, 4, 8, 12, 19)[
100_cs[IceDayR()],
173_cs[FireR(1, 9)],
535_cs[FireR(5, 7.375)],
776_cs[f({5, 6}, 1)],
949_cs[
FireR(25, 9),
212_cs[FireR(1, 8)],
232_cs[FireR(5, 8.4125)]
]
].AssumeWaveLength(1149);
10_wave[
-300_cs[AMaidCheatsR::Stop()],
207_cs[f({1, 2}, 100)],
401_cs[FireR(2, 9), 106_cs[IceDayR()]],
225_cs[FireR(6, 9) + 63_cs[FireR(5, 9)]],
398_cs[FireR(5, 8.6625)]
].AssumeWaveLength(601);
5_wave[
225_cs[FireR(1, 9) + 63_cs[FireR(2, 9)]],
398_cs[FireR(1, 8.6625)],
265_cs[FireR(5, 8.2625)],
789_cs[CardR({{ACHERRY_BOMB, 5, 9}, {AJALAPENO, 6, 9}})],
790_cs[FireR(5, 9)],
890_cs[CardR(ASQUASH, 5, 9)]
].SetWaveLength(990);
6_wave[
100_cs[IceDayR()],
173_cs[FireR(5, 9)],
535_cs[FireR(1, 7.6875)],
776_cs[f({5, 6}, 1)],
949_cs[
FireR(25, 9),
212_cs[FireR(1, 8)],
232_cs[FireR(5, 8.4125)]
]
].AssumeWaveLength(1149);
14_wave[
100_cs[IceDayR()],
173_cs[FireR(1, 9)],
535_cs[FireR(5, 7.375)],
727_cs[f({1, 2})]
].SetWaveLength(735);
15_wave[
225_cs[FireR(5, 9)],
318_cs[FireR(2, 9), IceDayR()],
401_cs[
FireR(56, 9),
-100_cs[CardR(AJALAPENO, 5, 9)],
-182_cs[CardR(ASQUASH, 6, 9)]
]
].AssumeWaveLength(601);
17_wave[
100_cs[IceDayR()],
173_cs[FireR(1, 9)],
535_cs[FireR(5, 7.375)],
776_cs[f({5, 6}, 1)],
949_cs[
FireR(25, 9),
212_cs[FireR(1, 8)],
232_cs[
FireR(5, 8.4125),
225_cs - 100_cs[CardR(ACHERRY_BOMB, 5, 9)]
]
]
].SetWaveLength(1381);
9_wave + 601_cs[
100_cs[IceDayR()],
173_cs[FireR(3, 9)],
535_cs[FireR(5, 7.375)],
949_cs + 232_cs[
FireR(5566, 9),
AMaidCheatsR::Dancing()
],
4300_cs - 601_cs[FireR(1, 9)]
];
19_wave + 1149_cs[
288_cs[FireR(13, 9) + 212_cs[FireR(1, 8.6625)]],
255_cs[FireR(5, 8.6625)],
601_cs + 173_cs[
FireR(5, 9),
AMaidCheatsR::Dancing()
],
4300_cs - 1149_cs[FireR(1, 9)]
];
20_wave[
-300_cs[AMaidCheatsR::Stop()],
245_cs[FireR(4, 7.5)],
341_cs[FireR(25, 9)],
341_cs + 105_cs[FireR(25, 9)],
341_cs + 105_cs + 110_cs[FireR(1356, 8.6625)],
5500_cs[FireR(1, 9)]
];
for(int t = 1500; t < 4300; t += 212)
9_wave + ARelTime(t)[f({1})];
for(int t = 2000; t < 4300; t += 212)
19_wave + ARelTime(t)[f({1})];
for(int t = 1000; t < 5500; t += 212)
20_wave + ARelTime(t)[f({1})];
}