Compare commits

...

2 Commits

Author SHA1 Message Date
David Markowitz
e42fffd533 use aggregate initializers 2023-08-07 19:44:37 -07:00
David Markowitz
471e711458 wow 2023-08-07 19:23:35 -07:00
3 changed files with 914 additions and 624 deletions

View File

@@ -1,13 +1,13 @@
#include "ZoneNsWaves.h"
WaveConstants ZoneNsWaves::GetConstants() {
return {
60,
2,
6,
2,
"surprise",
"intro"
return WaveConstants{
.acceptedDelay = 60,
.startDelay = 2,
.waveTime = 6,
.waveCompleteDelay = 2,
.eventGroup = "surprise",
.introCelebration = "intro"
};
}
@@ -42,405 +42,455 @@ std::vector<std::string> ZoneNsWaves::GetSpawnerNames() {
std::vector<WaveMission> ZoneNsWaves::GetWaveMissions() {
return {
{190, 7, 1242},
{240, 7, 1226},
{450, 15, 1243},
{600, 15, 1227},
{720, 22, 1244},
{840, 22, 1228},
{1080, 29, 1245},
{1200, 29, 1229},
WaveMission{
.time = 190,
.wave = 7,
.missionID = 1242
},
WaveMission{
.time = 240,
.wave = 7,
.missionID = 1226
},
WaveMission{
.time = 450,
.wave = 15,
.missionID = 1243
},
WaveMission{
.time = 600,
.wave = 15,
.missionID = 1227
},
WaveMission{
.time = 720,
.wave = 22,
.missionID = 1244
},
WaveMission{
.time = 840,
.wave = 22,
.missionID = 1228
},
WaveMission{
.time = 1080,
.wave = 29,
.missionID = 1245
},
WaveMission{
.time = 1200,
.wave = 29,
.missionID = 1229
},
};
}
std::vector<Wave> ZoneNsWaves::GetWaves() {
return {
return std::vector<Wave>{
// Wave 1
Wave {
Wave{
std::vector<MobDefinition> {
{ SpawnLOTS::stromling_minifig, 8, GetSpawnerName(SpawnerName::interior_A) },
{ SpawnLOTS::stromling_minifig, 2, GetSpawnerName(SpawnerName::ag_A) },
{ SpawnLOTS::stromling_minifig, 2, GetSpawnerName(SpawnerName::concert_A) },
{ SpawnLOTS::stromling_minifig, 2, GetSpawnerName(SpawnerName::gf_A) },
{ .lot = SpawnLOTS::stromling_minifig, .amountToSpawn = 8, .spawnerName = GetSpawnerName(SpawnerName::interior_A) },
{ .lot = SpawnLOTS::stromling_minifig, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::ag_A) },
{ .lot = SpawnLOTS::stromling_minifig, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::concert_A) },
{ .lot = SpawnLOTS::stromling_minifig, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::gf_A) },
}
},
// Wave 2
Wave {
std::vector<MobDefinition> {
{ SpawnLOTS::stromling, 8, GetSpawnerName(SpawnerName::interior_A) },
{ SpawnLOTS::stromling, 2, GetSpawnerName(SpawnerName::ag_A) },
{ SpawnLOTS::stromling, 2, GetSpawnerName(SpawnerName::concert_A) },
{ SpawnLOTS::stromling, 2, GetSpawnerName(SpawnerName::gf_A) },
}
// Wave 2
Wave{
std::vector<MobDefinition> {
{ .lot = SpawnLOTS::stromling, .amountToSpawn = 8, .spawnerName = GetSpawnerName(SpawnerName::interior_A) },
{ .lot = SpawnLOTS::stromling, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::ag_A) },
{ .lot = SpawnLOTS::stromling, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::concert_A) },
{ .lot = SpawnLOTS::stromling, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::gf_A) },
}
},
// Wave 3
Wave {
Wave{
std::vector<MobDefinition> {
{ SpawnLOTS::stromling, 4, GetSpawnerName(SpawnerName::interior_A) },
{ SpawnLOTS::mech, 2, GetSpawnerName(SpawnerName::interior_B) },
{ SpawnLOTS::stromling, 3, GetSpawnerName(SpawnerName::ag_A) },
{ SpawnLOTS::stromling, 3, GetSpawnerName(SpawnerName::concert_A) },
{ SpawnLOTS::stromling, 3, GetSpawnerName(SpawnerName::gf_A) },
{ .lot = SpawnLOTS::stromling, .amountToSpawn = 4, .spawnerName = GetSpawnerName(SpawnerName::interior_A) },
{ .lot = SpawnLOTS::mech, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::interior_B) },
{ .lot = SpawnLOTS::stromling, .amountToSpawn = 3, .spawnerName = GetSpawnerName(SpawnerName::ag_A) },
{ .lot = SpawnLOTS::stromling, .amountToSpawn = 3, .spawnerName = GetSpawnerName(SpawnerName::concert_A) },
{ .lot = SpawnLOTS::stromling, .amountToSpawn = 3, .spawnerName = GetSpawnerName(SpawnerName::gf_A) },
},
},
},
// Wave 4
Wave {
Wave{
std::vector<MobDefinition> {
{ SpawnLOTS::stromling, 3, GetSpawnerName(SpawnerName::interior_A) },
{ SpawnLOTS::mech, 1, GetSpawnerName(SpawnerName::interior_B) },
{ SpawnLOTS::stromling, 2, GetSpawnerName(SpawnerName::ag_A) },
{ SpawnLOTS::mech, 1, GetSpawnerName(SpawnerName::ag_B) },
{ SpawnLOTS::stromling, 2, GetSpawnerName(SpawnerName::concert_A) },
{ SpawnLOTS::mech, 1, GetSpawnerName(SpawnerName::concert_B) },
{ SpawnLOTS::stromling, 2, GetSpawnerName(SpawnerName::gf_A) },
{ SpawnLOTS::mech, 1, GetSpawnerName(SpawnerName::gf_B) },
{ .lot = SpawnLOTS::stromling, .amountToSpawn = 3, .spawnerName = GetSpawnerName(SpawnerName::interior_A) },
{ .lot = SpawnLOTS::mech, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::interior_B) },
{ .lot = SpawnLOTS::stromling, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::ag_A) },
{ .lot = SpawnLOTS::mech, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::ag_B) },
{ .lot = SpawnLOTS::stromling, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::concert_A) },
{ .lot = SpawnLOTS::mech, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::concert_B) },
{ .lot = SpawnLOTS::stromling, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::gf_A) },
{ .lot = SpawnLOTS::mech, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::gf_B) },
}
},
},
// Wave 5
Wave {
std::vector<MobDefinition> {
{ SpawnLOTS::stromling, 2, GetSpawnerName(SpawnerName::interior_A) },
{ SpawnLOTS::spiderling, 1, GetSpawnerName(SpawnerName::interior_C) },
{ SpawnLOTS::hammerling_melee, 2, GetSpawnerName(SpawnerName::ag_A) },
{ SpawnLOTS::mech, 1, GetSpawnerName(SpawnerName::ag_B) },
{ SpawnLOTS::stromling, 1, GetSpawnerName(SpawnerName::concert_A) },
{ SpawnLOTS::mech, 1, GetSpawnerName(SpawnerName::concert_B) },
{ SpawnLOTS::stromling, 1, GetSpawnerName(SpawnerName::gf_A) },
{ SpawnLOTS::mech, 1, GetSpawnerName(SpawnerName::gf_B) },
}
},
// Wave 5
Wave{
std::vector<MobDefinition> {
{ .lot = SpawnLOTS::stromling, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::interior_A) },
{ .lot = SpawnLOTS::spiderling, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::interior_C) },
{ .lot = SpawnLOTS::hammerling_melee, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::ag_A) },
{ .lot = SpawnLOTS::mech, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::ag_B) },
{ .lot = SpawnLOTS::stromling, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::concert_A) },
{ .lot = SpawnLOTS::mech, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::concert_B) },
{ .lot = SpawnLOTS::stromling, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::gf_A) },
{ .lot = SpawnLOTS::mech, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::gf_B) },
}
},
// Wave 6
Wave {
std::vector<MobDefinition> {
{ SpawnLOTS::hammerling_melee, 1, GetSpawnerName(SpawnerName::interior_A) },
{ SpawnLOTS::mech, 2, GetSpawnerName(SpawnerName::interior_B) },
{ SpawnLOTS::spiderling, 1, GetSpawnerName(SpawnerName::interior_C) },
{ SpawnLOTS::hammerling_melee, 2, GetSpawnerName(SpawnerName::ag_A) },
{ SpawnLOTS::mech, 1, GetSpawnerName(SpawnerName::ag_B) },
{ SpawnLOTS::spiderling, 1, GetSpawnerName(SpawnerName::ag_C) },
{ SpawnLOTS::stromling, 2, GetSpawnerName(SpawnerName::concert_A) },
{ SpawnLOTS::mech, 1, GetSpawnerName(SpawnerName::concert_B) },
{ SpawnLOTS::stromling, 2, GetSpawnerName(SpawnerName::gf_A) },
{ SpawnLOTS::mech, 1, GetSpawnerName(SpawnerName::gf_B) },
}
// Wave 6
Wave{
std::vector<MobDefinition> {
{ .lot = SpawnLOTS::hammerling_melee, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::interior_A) },
{ .lot = SpawnLOTS::mech, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::interior_B) },
{ .lot = SpawnLOTS::spiderling, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::interior_C) },
{ .lot = SpawnLOTS::hammerling_melee, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::ag_A) },
{ .lot = SpawnLOTS::mech, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::ag_B) },
{ .lot = SpawnLOTS::spiderling, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::ag_C) },
{ .lot = SpawnLOTS::stromling, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::concert_A) },
{ .lot = SpawnLOTS::mech, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::concert_B) },
{ .lot = SpawnLOTS::stromling, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::gf_A) },
{ .lot = SpawnLOTS::mech, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::gf_B) },
}
},
// Wave 7
Wave{
.waveMobs = std::vector<MobDefinition> {
{ .lot = SpawnLOTS::stromling_boss, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::Boss) },
},
.soloMissions = {1885},
.missions = {},
.cinematic = "Stromling_Boss",
.cinematicLength = 5.0f
},
// Wave 7
Wave {
std::vector<MobDefinition> {
{ SpawnLOTS::stromling_boss, 1, GetSpawnerName(SpawnerName::Boss) },
},
{1885},
{},
"Stromling_Boss",
5.0f
},
// Wave 8
Wave{
.waveMobs = std::vector<MobDefinition> {
{.lot = SpawnLOTS::mushroom, .amountToSpawn = 6, .spawnerName = GetSpawnerName(SpawnerName::Reward_01) },
{.lot = SpawnLOTS::mushroom, .amountToSpawn = 3, .spawnerName = GetSpawnerName(SpawnerName::interior_Reward) },
},
.soloMissions = {},
.missions = {},
.cinematic = "",
.cinematicLength = -1.0f,
.timeLimit = 25,
},
// Wave 8
Wave {
std::vector<MobDefinition> {
{SpawnLOTS::mushroom, 6, GetSpawnerName(SpawnerName::Reward_01) },
{SpawnLOTS::mushroom, 3, GetSpawnerName(SpawnerName::interior_Reward) },
}, {}, {}, "", -1.0f,
25,
},
// Wave 9
Wave{
std::vector<MobDefinition> {
{ .lot = SpawnLOTS::pirate, .amountToSpawn = 4, .spawnerName = GetSpawnerName(SpawnerName::interior_A) },
{ .lot = SpawnLOTS::pirate, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::concert_A) },
{ .lot = SpawnLOTS::pirate, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::gf_A) },
{ .lot = SpawnLOTS::admiral, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::gf_B) },
}
},
// Wave 9
Wave {
std::vector<MobDefinition> {
{ SpawnLOTS::pirate, 4, GetSpawnerName(SpawnerName::interior_A) },
{ SpawnLOTS::pirate, 2, GetSpawnerName(SpawnerName::concert_A) },
{ SpawnLOTS::pirate, 2, GetSpawnerName(SpawnerName::gf_A) },
{ SpawnLOTS::admiral, 1, GetSpawnerName(SpawnerName::gf_B) },
}
},
// Wave 10
Wave{
std::vector<MobDefinition> {
{ .lot = SpawnLOTS::pirate, .amountToSpawn = 4, .spawnerName = GetSpawnerName(SpawnerName::interior_A) },
{ .lot = SpawnLOTS::mech, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::interior_B) },
{ .lot = SpawnLOTS::pirate, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::ag_A) },
{ .lot = SpawnLOTS::mech, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::ag_B) },
{ .lot = SpawnLOTS::pirate, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::concert_A) },
{ .lot = SpawnLOTS::mech, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::concert_B) },
{ .lot = SpawnLOTS::pirate, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::gf_A) },
{ .lot = SpawnLOTS::admiral, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::gf_B) },
}
},
// Wave 10
Wave {
std::vector<MobDefinition> {
{ SpawnLOTS::pirate, 4, GetSpawnerName(SpawnerName::interior_A) },
{ SpawnLOTS::mech, 2, GetSpawnerName(SpawnerName::interior_B) },
{ SpawnLOTS::pirate, 2, GetSpawnerName(SpawnerName::ag_A) },
{ SpawnLOTS::mech, 1, GetSpawnerName(SpawnerName::ag_B) },
{ SpawnLOTS::pirate, 2, GetSpawnerName(SpawnerName::concert_A) },
{ SpawnLOTS::mech, 1, GetSpawnerName(SpawnerName::concert_B) },
{ SpawnLOTS::pirate, 2, GetSpawnerName(SpawnerName::gf_A) },
{ SpawnLOTS::admiral, 2, GetSpawnerName(SpawnerName::gf_B) },
}
},
// Wave 11
Wave{
std::vector<MobDefinition> {
{ .lot = SpawnLOTS::pirate, .amountToSpawn = 4, .spawnerName = GetSpawnerName(SpawnerName::interior_A) },
{ .lot = SpawnLOTS::spiderling, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::interior_C) },
{ .lot = SpawnLOTS::pirate, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::ag_A) },
{ .lot = SpawnLOTS::spiderling, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::ag_C) },
{ .lot = SpawnLOTS::pirate, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::concert_A) },
{ .lot = SpawnLOTS::spiderling, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::concert_C) },
{ .lot = SpawnLOTS::pirate, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::gf_A) },
{ .lot = SpawnLOTS::spiderling, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::gf_C) },
}
},
// Wave 11
Wave {
std::vector<MobDefinition> {
{ SpawnLOTS::pirate, 4, GetSpawnerName(SpawnerName::interior_A) },
{ SpawnLOTS::spiderling, 2, GetSpawnerName(SpawnerName::interior_C) },
{ SpawnLOTS::pirate, 2, GetSpawnerName(SpawnerName::ag_A) },
{ SpawnLOTS::spiderling, 1, GetSpawnerName(SpawnerName::ag_C) },
{ SpawnLOTS::pirate, 2, GetSpawnerName(SpawnerName::concert_A) },
{ SpawnLOTS::spiderling, 1, GetSpawnerName(SpawnerName::concert_C) },
{ SpawnLOTS::pirate, 2, GetSpawnerName(SpawnerName::gf_A) },
{ SpawnLOTS::spiderling, 1, GetSpawnerName(SpawnerName::gf_C) },
}
},
// Wave 12
Wave{
std::vector<MobDefinition> {
{ .lot = SpawnLOTS::pirate, .amountToSpawn = 4, .spawnerName = GetSpawnerName(SpawnerName::interior_A) },
{ .lot = SpawnLOTS::hammerling, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::interior_B) },
{ .lot = SpawnLOTS::spiderling, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::interior_C) },
{ .lot = SpawnLOTS::mech, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::ag_B) },
{ .lot = SpawnLOTS::spiderling, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::ag_C) },
{ .lot = SpawnLOTS::pirate, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::concert_A) },
{ .lot = SpawnLOTS::admiral, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::concert_C) },
{ .lot = SpawnLOTS::pirate, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::gf_A) },
{ .lot = SpawnLOTS::admiral, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::gf_C) },
}
},
// Wave 12
Wave {
std::vector<MobDefinition> {
{ SpawnLOTS::pirate, 4, GetSpawnerName(SpawnerName::interior_A) },
{ SpawnLOTS::hammerling, 2, GetSpawnerName(SpawnerName::interior_B) },
{ SpawnLOTS::spiderling, 2, GetSpawnerName(SpawnerName::interior_C) },
{ SpawnLOTS::mech, 2, GetSpawnerName(SpawnerName::ag_B) },
{ SpawnLOTS::spiderling, 1, GetSpawnerName(SpawnerName::ag_C) },
{ SpawnLOTS::pirate, 2, GetSpawnerName(SpawnerName::concert_A) },
{ SpawnLOTS::admiral, 1, GetSpawnerName(SpawnerName::concert_C) },
{ SpawnLOTS::pirate, 2, GetSpawnerName(SpawnerName::gf_A) },
{ SpawnLOTS::admiral, 1, GetSpawnerName(SpawnerName::gf_C) },
}
},
// Wave 13
Wave{
std::vector<MobDefinition> {
{ .lot = SpawnLOTS::pirate, .amountToSpawn = 3, .spawnerName = GetSpawnerName(SpawnerName::interior_A) },
{ .lot = SpawnLOTS::admiral, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::interior_B) },
{ .lot = SpawnLOTS::pirate, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::ag_A) },
{ .lot = SpawnLOTS::admiral, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::ag_B) },
{ .lot = SpawnLOTS::pirate, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::concert_A) },
{ .lot = SpawnLOTS::admiral, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::concert_B) },
{ .lot = SpawnLOTS::pirate, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::gf_A) },
{ .lot = SpawnLOTS::admiral, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::gf_B) },
}
},
// Wave 13
Wave {
std::vector<MobDefinition> {
{ SpawnLOTS::pirate, 3, GetSpawnerName(SpawnerName::interior_A) },
{ SpawnLOTS::admiral, 2, GetSpawnerName(SpawnerName::interior_B) },
{ SpawnLOTS::pirate, 2, GetSpawnerName(SpawnerName::ag_A) },
{ SpawnLOTS::admiral, 1, GetSpawnerName(SpawnerName::ag_B) },
{ SpawnLOTS::pirate, 2, GetSpawnerName(SpawnerName::concert_A) },
{ SpawnLOTS::admiral, 1, GetSpawnerName(SpawnerName::concert_B) },
{ SpawnLOTS::pirate, 2, GetSpawnerName(SpawnerName::gf_A) },
{ SpawnLOTS::admiral, 1, GetSpawnerName(SpawnerName::gf_B) },
}
},
// Wave 14
Wave{
std::vector<MobDefinition> {
{ .lot = SpawnLOTS::pirate, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::interior_A) },
{ .lot = SpawnLOTS::admiral, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::interior_B) },
{ .lot = SpawnLOTS::mech, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::interior_C) },
{ .lot = SpawnLOTS::pirate, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::ag_A) },
{ .lot = SpawnLOTS::admiral, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::ag_B) },
{ .lot = SpawnLOTS::mech, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::ag_C) },
{ .lot = SpawnLOTS::pirate, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::concert_A) },
{ .lot = SpawnLOTS::admiral, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::concert_B) },
{ .lot = SpawnLOTS::mech, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::concert_C) },
{ .lot = SpawnLOTS::pirate, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::gf_A) },
{ .lot = SpawnLOTS::admiral, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::gf_B) },
{ .lot = SpawnLOTS::mech, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::gf_C) },
}
},
// Wave 14
Wave {
std::vector<MobDefinition> {
{ SpawnLOTS::pirate, 2, GetSpawnerName(SpawnerName::interior_A) },
{ SpawnLOTS::admiral, 2, GetSpawnerName(SpawnerName::interior_B) },
{ SpawnLOTS::mech, 2, GetSpawnerName(SpawnerName::interior_C) },
{ SpawnLOTS::pirate, 2, GetSpawnerName(SpawnerName::ag_A) },
{ SpawnLOTS::admiral, 1, GetSpawnerName(SpawnerName::ag_B) },
{ SpawnLOTS::mech, 1, GetSpawnerName(SpawnerName::ag_C) },
{ SpawnLOTS::pirate, 2, GetSpawnerName(SpawnerName::concert_A) },
{ SpawnLOTS::admiral, 1, GetSpawnerName(SpawnerName::concert_B) },
{ SpawnLOTS::mech, 1, GetSpawnerName(SpawnerName::concert_C) },
{ SpawnLOTS::pirate, 2, GetSpawnerName(SpawnerName::gf_A) },
{ SpawnLOTS::admiral, 1, GetSpawnerName(SpawnerName::gf_B) },
{ SpawnLOTS::mech, 1, GetSpawnerName(SpawnerName::gf_C) },
}
},
// Wave 15
Wave{
.waveMobs = std::vector<MobDefinition> {
{ .lot = SpawnLOTS::ape_boss, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::Ape_Boss) },
// Wave 15
Wave {
std::vector<MobDefinition> {
{ SpawnLOTS::ape_boss, 1, GetSpawnerName(SpawnerName::Ape_Boss) },
},
.soloMissions = {1886},
.missions = {},
.cinematic = "Gorilla_Boss",
.cinematicLength = 5.0f
},
},
{1886},
{},
"Gorilla_Boss",
5.0f
},
// Wave 16
Wave{
.waveMobs = std::vector<MobDefinition> {
{.lot = SpawnLOTS::outhouse, .amountToSpawn = 3, .spawnerName = GetSpawnerName(SpawnerName::interior_Reward) },
{.lot = SpawnLOTS::mushroom, .amountToSpawn = 6, .spawnerName = GetSpawnerName(SpawnerName::Reward_01) },
},
.soloMissions = {},
.missions = {},
.cinematic = "",
.cinematicLength = -1.0f,
.timeLimit = 25,
},
// Wave 16
Wave {
std::vector<MobDefinition> {
{SpawnLOTS::outhouse, 3, GetSpawnerName(SpawnerName::interior_Reward) },
{SpawnLOTS::mushroom, 6, GetSpawnerName(SpawnerName::Reward_01) },
}, {}, {}, "", -1.0f,
25,
},
// Wave 17
Wave{
std::vector<MobDefinition> {
{ .lot = SpawnLOTS::hammerling_melee, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::interior_A) },
{ .lot = SpawnLOTS::hammerling_melee, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::interior_B) },
{ .lot = SpawnLOTS::hammerling_melee, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::ag_A) },
{ .lot = SpawnLOTS::hammerling_melee, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::ag_B) },
{ .lot = SpawnLOTS::hammerling_melee, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::concert_A) },
{ .lot = SpawnLOTS::hammerling_melee, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::concert_B) },
{ .lot = SpawnLOTS::hammerling_melee, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::gf_A) },
{ .lot = SpawnLOTS::hammerling_melee, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::gf_B) },
}
},
// Wave 17
Wave {
std::vector<MobDefinition> {
{ SpawnLOTS::hammerling_melee, 2, GetSpawnerName(SpawnerName::interior_A) },
{ SpawnLOTS::hammerling_melee, 2, GetSpawnerName(SpawnerName::interior_B) },
{ SpawnLOTS::hammerling_melee, 1, GetSpawnerName(SpawnerName::ag_A) },
{ SpawnLOTS::hammerling_melee, 2, GetSpawnerName(SpawnerName::ag_B) },
{ SpawnLOTS::hammerling_melee, 1, GetSpawnerName(SpawnerName::concert_A) },
{ SpawnLOTS::hammerling_melee, 2, GetSpawnerName(SpawnerName::concert_B) },
{ SpawnLOTS::hammerling_melee, 1, GetSpawnerName(SpawnerName::gf_A) },
{ SpawnLOTS::hammerling_melee, 2, GetSpawnerName(SpawnerName::gf_B) },
}
},
// Wave 18
Wave{
std::vector<MobDefinition> {
{ .lot = SpawnLOTS::hammerling_melee, .amountToSpawn = 4, .spawnerName = GetSpawnerName(SpawnerName::interior_A) },
{ .lot = SpawnLOTS::hammerling, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::interior_B) },
{ .lot = SpawnLOTS::hammerling_melee, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::concert_A) },
{ .lot = SpawnLOTS::hammerling, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::concert_B) },
{ .lot = SpawnLOTS::hammerling_melee, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::ag_A) },
{ .lot = SpawnLOTS::hammerling, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::ag_B) },
{ .lot = SpawnLOTS::hammerling_melee, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::gf_A) },
{ .lot = SpawnLOTS::hammerling, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::gf_B) },
}
},
// Wave 18
Wave {
std::vector<MobDefinition> {
{ SpawnLOTS::hammerling_melee, 4, GetSpawnerName(SpawnerName::interior_A) },
{ SpawnLOTS::hammerling, 2, GetSpawnerName(SpawnerName::interior_B) },
{ SpawnLOTS::hammerling_melee, 2, GetSpawnerName(SpawnerName::concert_A) },
{ SpawnLOTS::hammerling, 1, GetSpawnerName(SpawnerName::concert_B) },
{ SpawnLOTS::hammerling_melee, 2, GetSpawnerName(SpawnerName::ag_A) },
{ SpawnLOTS::hammerling, 1, GetSpawnerName(SpawnerName::ag_B) },
{ SpawnLOTS::hammerling_melee, 2, GetSpawnerName(SpawnerName::gf_A) },
{ SpawnLOTS::hammerling, 1, GetSpawnerName(SpawnerName::gf_B) },
}
},
// Wave 19
Wave{
std::vector<MobDefinition> {
{ .lot = SpawnLOTS::hammerling, .amountToSpawn = 4, .spawnerName = GetSpawnerName(SpawnerName::interior_A) },
{ .lot = SpawnLOTS::sentry, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::interior_B) },
{ .lot = SpawnLOTS::hammerling, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::ag_A) },
{ .lot = SpawnLOTS::sentry, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::ag_B) },
{ .lot = SpawnLOTS::hammerling, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::concert_A) },
{ .lot = SpawnLOTS::sentry, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::concert_B) },
{ .lot = SpawnLOTS::hammerling, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::gf_A) },
{ .lot = SpawnLOTS::sentry, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::gf_B) },
}
},
// Wave 19
Wave {
std::vector<MobDefinition> {
{ SpawnLOTS::hammerling, 4, GetSpawnerName(SpawnerName::interior_A) },
{ SpawnLOTS::sentry, 2, GetSpawnerName(SpawnerName::interior_B) },
{ SpawnLOTS::hammerling, 2, GetSpawnerName(SpawnerName::ag_A) },
{ SpawnLOTS::sentry, 1, GetSpawnerName(SpawnerName::ag_B) },
{ SpawnLOTS::hammerling, 2, GetSpawnerName(SpawnerName::concert_A) },
{ SpawnLOTS::sentry, 1, GetSpawnerName(SpawnerName::concert_B) },
{ SpawnLOTS::hammerling, 2, GetSpawnerName(SpawnerName::gf_A) },
{ SpawnLOTS::sentry, 1, GetSpawnerName(SpawnerName::gf_B) },
}
},
// Wave 20
Wave{
std::vector<MobDefinition> {
{ .lot = SpawnLOTS::ronin, .amountToSpawn = 3, .spawnerName = GetSpawnerName(SpawnerName::interior_A) },
{ .lot = SpawnLOTS::sentry, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::interior_B) },
{ .lot = SpawnLOTS::spiderling_ve, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::interior_C) },
{ .lot = SpawnLOTS::hammerling, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::ag_A) },
{ .lot = SpawnLOTS::sentry, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::ag_B) },
{ .lot = SpawnLOTS::spiderling_ve, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::ag_C) },
{ .lot = SpawnLOTS::hammerling, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::concert_A) },
{ .lot = SpawnLOTS::sentry, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::concert_B) },
{ .lot = SpawnLOTS::spiderling_ve, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::concert_C) },
{ .lot = SpawnLOTS::hammerling, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::gf_A) },
{ .lot = SpawnLOTS::sentry, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::gf_B) },
{ .lot = SpawnLOTS::spiderling_ve, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::gf_C) },
}
},
// Wave 20
Wave {
std::vector<MobDefinition> {
{ SpawnLOTS::ronin, 3, GetSpawnerName(SpawnerName::interior_A) },
{ SpawnLOTS::sentry, 2, GetSpawnerName(SpawnerName::interior_B) },
{ SpawnLOTS::spiderling_ve, 1, GetSpawnerName(SpawnerName::interior_C) },
{ SpawnLOTS::hammerling, 1, GetSpawnerName(SpawnerName::ag_A) },
{ SpawnLOTS::sentry, 1, GetSpawnerName(SpawnerName::ag_B) },
{ SpawnLOTS::spiderling_ve, 1, GetSpawnerName(SpawnerName::ag_C) },
{ SpawnLOTS::hammerling, 1, GetSpawnerName(SpawnerName::concert_A) },
{ SpawnLOTS::sentry, 1, GetSpawnerName(SpawnerName::concert_B) },
{ SpawnLOTS::spiderling_ve, 1, GetSpawnerName(SpawnerName::concert_C) },
{ SpawnLOTS::hammerling, 1, GetSpawnerName(SpawnerName::gf_A) },
{ SpawnLOTS::sentry, 1, GetSpawnerName(SpawnerName::gf_B) },
{ SpawnLOTS::spiderling_ve, 1, GetSpawnerName(SpawnerName::gf_C) },
}
},
// Wave 21
Wave{
std::vector<MobDefinition> {
{ .lot = SpawnLOTS::admiral, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::interior_A) },
{ .lot = SpawnLOTS::ronin, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::interior_B) },
{ .lot = SpawnLOTS::spiderling_ve, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::interior_C) },
{ .lot = SpawnLOTS::admiral, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::ag_A) },
{ .lot = SpawnLOTS::ronin, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::ag_B) },
{ .lot = SpawnLOTS::spiderling_ve, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::ag_C) },
{ .lot = SpawnLOTS::admiral, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::concert_A) },
{ .lot = SpawnLOTS::ronin, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::concert_B) },
{ .lot = SpawnLOTS::spiderling_ve, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::concert_C) },
{ .lot = SpawnLOTS::admiral, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::gf_A) },
{ .lot = SpawnLOTS::ronin, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::gf_B) },
{ .lot = SpawnLOTS::spiderling_ve, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::gf_C) },
}
},
// Wave 21
Wave {
std::vector<MobDefinition> {
{ SpawnLOTS::admiral, 2, GetSpawnerName(SpawnerName::interior_A) },
{ SpawnLOTS::ronin, 2, GetSpawnerName(SpawnerName::interior_B) },
{ SpawnLOTS::spiderling_ve, 2, GetSpawnerName(SpawnerName::interior_C) },
{ SpawnLOTS::admiral, 1, GetSpawnerName(SpawnerName::ag_A) },
{ SpawnLOTS::ronin, 1, GetSpawnerName(SpawnerName::ag_B) },
{ SpawnLOTS::spiderling_ve, 1, GetSpawnerName(SpawnerName::ag_C) },
{ SpawnLOTS::admiral, 1, GetSpawnerName(SpawnerName::concert_A) },
{ SpawnLOTS::ronin, 1, GetSpawnerName(SpawnerName::concert_B) },
{ SpawnLOTS::spiderling_ve, 1, GetSpawnerName(SpawnerName::concert_C) },
{ SpawnLOTS::admiral, 1, GetSpawnerName(SpawnerName::gf_A) },
{ SpawnLOTS::ronin, 1, GetSpawnerName(SpawnerName::gf_B) },
{ SpawnLOTS::spiderling_ve, 1, GetSpawnerName(SpawnerName::gf_C) },
}
},
// Wave 22
Wave{
.waveMobs = std::vector<MobDefinition> {
{ .lot = SpawnLOTS::spiderling_boss, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::Cavalry_Boss) },
},
.soloMissions = {1887},
.missions = {},
.cinematic = "Spiderling_Boss",
.cinematicLength = 5.0f
},
// Wave 22
Wave {
std::vector<MobDefinition> {
{ SpawnLOTS::spiderling_boss, 1, GetSpawnerName(SpawnerName::Cavalry_Boss) },
},
{1887},
{},
"Spiderling_Boss",
5.0f
},
// Wave 23
Wave{
.waveMobs = std::vector<MobDefinition> {
{ .lot = SpawnLOTS::outhouse, .amountToSpawn = 6, .spawnerName = GetSpawnerName(SpawnerName::Reward_01) },
{ .lot = SpawnLOTS::outhouse, .amountToSpawn = 3, .spawnerName = GetSpawnerName(SpawnerName::interior_Reward) },
{ .lot = SpawnLOTS::maelstrom_chest, .amountToSpawn = 4, .spawnerName = GetSpawnerName(SpawnerName::Obstacle) },
},
.soloMissions = {},
.missions = {},
.cinematic = "",
.cinematicLength = -1.0f,
.timeLimit = 25,
},
// Wave 23
Wave {
std::vector<MobDefinition> {
{ SpawnLOTS::outhouse, 6, GetSpawnerName(SpawnerName::Reward_01) },
{ SpawnLOTS::outhouse, 3, GetSpawnerName(SpawnerName::interior_Reward) },
{ SpawnLOTS::maelstrom_chest, 4, GetSpawnerName(SpawnerName::Obstacle) },
}, {}, {}, "", -1.0f,
25,
},
// Wave 24
Wave{
std::vector<MobDefinition> {
{ .lot = SpawnLOTS::pirate, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::gf_A) },
{ .lot = SpawnLOTS::pirate, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::concert_A) },
{ .lot = SpawnLOTS::pirate, .amountToSpawn = 3, .spawnerName = GetSpawnerName(SpawnerName::ag_A) },
{ .lot = SpawnLOTS::ronin, .amountToSpawn = 3, .spawnerName = GetSpawnerName(SpawnerName::interior_A) },
{ .lot = SpawnLOTS::ronin, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::interior_B) },
}
},
// Wave 24
Wave {
std::vector<MobDefinition> {
{ SpawnLOTS::pirate, 2, GetSpawnerName(SpawnerName::gf_A) },
{ SpawnLOTS::pirate, 2, GetSpawnerName(SpawnerName::concert_A) },
{ SpawnLOTS::pirate, 3, GetSpawnerName(SpawnerName::ag_A) },
{ SpawnLOTS::ronin, 3, GetSpawnerName(SpawnerName::interior_A) },
{ SpawnLOTS::ronin, 2, GetSpawnerName(SpawnerName::interior_B) },
}
},
// Wave 25
Wave{
std::vector<MobDefinition> {
{ .lot = SpawnLOTS::cavalry, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::interior_A) },
{ .lot = SpawnLOTS::cavalry, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::interior_B) },
{ .lot = SpawnLOTS::admiral_cp, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::ag_B) },
{ .lot = SpawnLOTS::admiral_cp, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::gf_B) },
{ .lot = SpawnLOTS::admiral_cp, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::concert_B) },
{ .lot = SpawnLOTS::spiderling, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::gf_A) },
{ .lot = SpawnLOTS::spiderling, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::concert_A) },
{ .lot = SpawnLOTS::spiderling, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::ag_A) },
}
},
// Wave 25
Wave {
std::vector<MobDefinition> {
{ SpawnLOTS::cavalry, 2, GetSpawnerName(SpawnerName::interior_A) },
{ SpawnLOTS::cavalry, 1, GetSpawnerName(SpawnerName::interior_B) },
{ SpawnLOTS::admiral_cp, 1, GetSpawnerName(SpawnerName::ag_B) },
{ SpawnLOTS::admiral_cp, 1, GetSpawnerName(SpawnerName::gf_B) },
{ SpawnLOTS::admiral_cp, 1, GetSpawnerName(SpawnerName::concert_B) },
{ SpawnLOTS::spiderling, 2, GetSpawnerName(SpawnerName::gf_A) },
{ SpawnLOTS::spiderling, 2, GetSpawnerName(SpawnerName::concert_A) },
{ SpawnLOTS::spiderling, 1, GetSpawnerName(SpawnerName::ag_A) },
}
},
// Wave 26
Wave{
std::vector<MobDefinition> {
{ .lot = SpawnLOTS::ronin, .amountToSpawn = 3, .spawnerName = GetSpawnerName(SpawnerName::interior_A) },
{ .lot = SpawnLOTS::ronin, .amountToSpawn = 3, .spawnerName = GetSpawnerName(SpawnerName::interior_B) },
{ .lot = SpawnLOTS::spiderling_ve, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::ag_B) },
{ .lot = SpawnLOTS::spiderling_ve, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::gf_B) },
{ .lot = SpawnLOTS::spiderling_ve, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::concert_B) },
{ .lot = SpawnLOTS::admiral_cp, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::gf_C) },
{ .lot = SpawnLOTS::admiral_cp, .amountToSpawn = 2, .spawnerName = GetSpawnerName(SpawnerName::ag_C) },
{ .lot = SpawnLOTS::admiral_cp, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::concert_C) },
}
},
// Wave 26
Wave {
std::vector<MobDefinition> {
{ SpawnLOTS::ronin, 3, GetSpawnerName(SpawnerName::interior_A) },
{ SpawnLOTS::ronin, 3, GetSpawnerName(SpawnerName::interior_B) },
{ SpawnLOTS::spiderling_ve, 1, GetSpawnerName(SpawnerName::ag_B) },
{ SpawnLOTS::spiderling_ve, 1, GetSpawnerName(SpawnerName::gf_B) },
{ SpawnLOTS::spiderling_ve, 1, GetSpawnerName(SpawnerName::concert_B) },
{ SpawnLOTS::admiral_cp, 2, GetSpawnerName(SpawnerName::gf_C) },
{ SpawnLOTS::admiral_cp, 2, GetSpawnerName(SpawnerName::ag_C) },
{ SpawnLOTS::admiral_cp, 1, GetSpawnerName(SpawnerName::concert_C) },
}
},
// Wave 27
Wave{
std::vector<MobDefinition> {
{ .lot = SpawnLOTS::ronin, .amountToSpawn = 5, .spawnerName = GetSpawnerName(SpawnerName::interior_A) },
{ .lot = SpawnLOTS::ronin, .amountToSpawn = 4, .spawnerName = GetSpawnerName(SpawnerName::interior_B) },
{ .lot = SpawnLOTS::cavalry, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::ag_C) },
{ .lot = SpawnLOTS::cavalry, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::gf_C) },
{ .lot = SpawnLOTS::cavalry, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::concert_C) },
{ .lot = SpawnLOTS::admiral_cp, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::ag_B) },
{ .lot = SpawnLOTS::admiral_cp, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::gf_B) },
{ .lot = SpawnLOTS::admiral_cp, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::concert_B) },
}
},
// Wave 27
Wave {
std::vector<MobDefinition> {
{ SpawnLOTS::ronin, 5, GetSpawnerName(SpawnerName::interior_A) },
{ SpawnLOTS::ronin, 4, GetSpawnerName(SpawnerName::interior_B) },
{ SpawnLOTS::cavalry, 1, GetSpawnerName(SpawnerName::ag_C) },
{ SpawnLOTS::cavalry, 1, GetSpawnerName(SpawnerName::gf_C) },
{ SpawnLOTS::cavalry, 1, GetSpawnerName(SpawnerName::concert_C) },
{ SpawnLOTS::admiral_cp, 1, GetSpawnerName(SpawnerName::ag_B) },
{ SpawnLOTS::admiral_cp, 1, GetSpawnerName(SpawnerName::gf_B) },
{ SpawnLOTS::admiral_cp, 1, GetSpawnerName(SpawnerName::concert_B) },
}
},
// Wave 28
Wave{
.waveMobs = std::vector<MobDefinition> {
{ .lot = SpawnLOTS::dragon_statue, .amountToSpawn = 12, .spawnerName = GetSpawnerName(SpawnerName::Reward_01) },
},
.soloMissions = {},
.missions = {},
.cinematic = "",
.cinematicLength = -1.0f,
.timeLimit = 30,
},
// Wave 28
Wave {
std::vector<MobDefinition> {
{ SpawnLOTS::dragon_statue, 12, GetSpawnerName(SpawnerName::Reward_01) },
}, {}, {}, "", -1.0f,
30,
},
// Wave 29
Wave{
.waveMobs = std::vector<MobDefinition> {
{ .lot = SpawnLOTS::horseman_boss01, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::Horseman_01) },
{ .lot = SpawnLOTS::horseman_boss02, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::Horseman_02) },
{ .lot = SpawnLOTS::horseman_boss03, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::Horseman_03) },
{ .lot = SpawnLOTS::horseman_boss04, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::Horseman_04) },
},
.soloMissions = {1888},
.missions = {1236, 1237, 1249},
.cinematic = "Horsemen_Boss",
.cinematicLength = 5.0f
},
// Wave 29
Wave {
std::vector<MobDefinition> {
{ SpawnLOTS::horseman_boss01, 1, GetSpawnerName(SpawnerName::Horseman_01) },
{ SpawnLOTS::horseman_boss02, 1, GetSpawnerName(SpawnerName::Horseman_02) },
{ SpawnLOTS::horseman_boss03, 1, GetSpawnerName(SpawnerName::Horseman_03) },
{ SpawnLOTS::horseman_boss04, 1, GetSpawnerName(SpawnerName::Horseman_04) },
},
{1888},
{1236, 1237, 1249},
"Horsemen_Boss",
5.0f
},
// Wave 30 (treasure)
Wave {
std::vector<MobDefinition> {
{ SpawnLOTS::treasure_chest, 1, GetSpawnerName(SpawnerName::Treasure_01) },
}, {}, {},
"Treasure_Camera",
5.0f,
(uint32_t)-1,
true,
60,
},
// Wave 30 (treasure)
Wave{
.waveMobs = std::vector<MobDefinition> {
{ .lot = SpawnLOTS::treasure_chest, .amountToSpawn = 1, .spawnerName = GetSpawnerName(SpawnerName::Treasure_01) },
},
.soloMissions = {},
.missions = {},
.cinematic = "Treasure_Camera",
.cinematicLength = 5.0f,
.timeLimit = (uint32_t)-1,
.notifyWin = true,
.winDelay = 60,
},
};
}

View File

@@ -788,207 +788,446 @@ void SGCannon::ToggleSuperCharge(Entity* self, bool enable) {
}
std::vector<std::vector<SGEnemy>> SGCannon::GetWaves() {
return {
// Wave 1
{
// Ship 1
{
std::vector<std::string> { "Wave_1_Ship_1", "Wave_1_Ship_3" },
6015, 0.0, 2.0, true, 0.0, 2.0,
2.0, 1500, false, 0.0, 1.0,
1.0, false, true
return
std::vector<std::vector<SGEnemy>>{
std::vector<SGEnemy>{
SGEnemy{
.spawnPaths = std::vector<std::string>{"Wave_1_Ship_1", "Wave_1_Ship_3"},
.lot = 6015,
.minSpawnTime = 0.0,
.maxSpawnTime = 2.0,
.respawns = true,
.minRespawnTime = 0.0,
.maxRespawnTime = 2.0,
.initialSpeed = 2.0,
.score = 1500,
.changeSpeedAtWaypoint = false,
.speedChangeChance = 0.0,
.minSpeed = 1.0,
.maxSpeed = 1.0,
.isMovingPlatform = false,
.despawnOnLastWaypoint = true
},
// Ship 2
{
std::vector<std::string> { "Wave_1_Ship_2", "Wave_1_Ship_4" },
6300, 0.0, 2.0, true, 0.0, 2.0,
2.0, 500, false, 0.0, 1.0,
1.0, false, true
},
// Sub 1
{
std::vector<std::string> { "Wave_1_Sub_1", "Wave_1_Sub_2" },
6016, 0.0, 2.0, true, 0.0, 2.0,
10.0, 1000, false, 0.0, 1.0,
1.0, true, true
},
// Sub 2
{
std::vector<std::string> { "Wave_2_Sub_1", "Wave_2_Sub_2" },
6016, 0.0, 2.0, true, 0.0, 2.0,
2.0, 1000, false, 0.0, 1.0,
1.0, true, true
},
// Friendly
{
std::vector<std::string> { "Wave_3_FShip_1", "Wave_3_FShip_2" },
2168,0.0,5.0,true, 2.0, 5.0,
1.0, -1000, false, 0.0, 1.0,
1.0, false,true
}
},
// Wave 2
{
// Ship 1
{
std::vector<std::string> { "Wave_1_Ship_1", "Wave_1_Ship_3" },
6015, 0.0, 2.0, true, 0.0, 2.0,
2.0, 1500, false, 0.0, 1.0,
1.0, false, true
SGEnemy{
.spawnPaths = std::vector<std::string>{"Wave_1_Ship_2", "Wave_1_Ship_4"},
.lot = 6300,
.minSpawnTime = 0.0,
.maxSpawnTime = 2.0,
.respawns = true,
.minRespawnTime = 0.0,
.maxRespawnTime = 2.0,
.initialSpeed = 2.0,
.score = 500,
.changeSpeedAtWaypoint = false,
.speedChangeChance = 0.0,
.minSpeed = 1.0,
.maxSpeed = 1.0,
.isMovingPlatform = false,
.despawnOnLastWaypoint = true
},
// Ship 2
{
std::vector<std::string> { "Wave_1_Ship_2", "Wave_1_Ship_4" },
6300, 0.0, 2.0, true, 0.0, 2.0,
2.0, 500, false, 0.0, 1.0,
1.0, false, true
},
// Ship 3
{
std::vector<std::string> { "Wave_2_Ship_1" },
6300, 0.0, 2.0, true, 0.0, 2.0,
2.0, 500, false, 0.0, 1.0,
1.0, false, true
},
// Ship 4
{
std::vector<std::string> { "Wave_2_Ship_2" },
6015, 0.0, 2.0, true, 0.0, 2.0,
2.0, 500, false, 0.0, 1.0,
1.0, false, true
},
// Sub 1
{
std::vector<std::string> { "Wave_1_Sub_1", "Wave_1_Sub_2" },
6016, 0.0, 2.0, true, 0.0, 2.0,
2.0, 1000, false, 0.0, 1.0,
1.0, true, true
},
// Sub 2
{
std::vector<std::string> { "Wave_2_Sub_1", "Wave_2_Sub_2" },
6016, 0.0, 2.0, true, 0.0, 2.0,
2.0, 1000, false, 0.0, 1.0,
1.0, true, true
},
// Duck
{
std::vector<std::string> { "Wave_1_Duck_1", "Wave_1_Duck_2" },
5946, 5.0, 10.0, true, 5.0, 10.0,
4.0, 5000, false, 0.0, 1.0,
1.0, false, true
},
// Friendly
{
std::vector<std::string> { "Wave_3_FShip_1", "Wave_3_FShip_2" },
2168,0.0,5.0,true, 2.0, 5.0,
1.0, -1000, false, 0.0, 1.0,
1.0, false,true
}
},
// Wave 3
{
// Ship 1
{
std::vector<std::string> { "Wave_1_Ship_1", "Wave_1_Ship_3" },
6015, 0.0, 2.0, true, 0.0, 2.0,
2.0, 1500, false, 0.0, 1.0,
1.0, false, true
SGEnemy{
.spawnPaths = std::vector<std::string>{"Wave_1_Sub_1", "Wave_1_Sub_2"},
.lot = 6016,
.minSpawnTime = 0.0,
.maxSpawnTime = 2.0,
.respawns = true,
.minRespawnTime = 0.0,
.maxRespawnTime = 2.0,
.initialSpeed = 10.0,
.score = 1000,
.changeSpeedAtWaypoint = false,
.speedChangeChance = 0.0,
.minSpeed = 1.0,
.maxSpeed = 1.0,
.isMovingPlatform = true,
.despawnOnLastWaypoint = true
},
// Ship 2
{
std::vector<std::string> { "Wave_1_Ship_2", "Wave_1_Ship_4" },
6300, 0.0, 2.0, true, 0.0, 2.0,
2.0, 500, false, 0.0, 1.0,
1.0, false, true
SGEnemy{
.spawnPaths = std::vector<std::string>{"Wave_2_Sub_1", "Wave_2_Sub_2"},
.lot = 6016,
.minSpawnTime = 0.0,
.maxSpawnTime = 2.0,
.respawns = true,
.minRespawnTime = 0.0,
.maxRespawnTime = 2.0,
.initialSpeed = 2.0,
.score = 1000,
.changeSpeedAtWaypoint = false,
.speedChangeChance = 0.0,
.minSpeed = 1.0,
.maxSpeed = 1.0,
.isMovingPlatform = true,
.despawnOnLastWaypoint = true
},
SGEnemy{
.spawnPaths = std::vector<std::string>{"Wave_3_FShip_1", "Wave_3_FShip_2"},
.lot = 2168,
.minSpawnTime = 0.0,
.maxSpawnTime = 5.0,
.respawns = true,
.minRespawnTime = 2.0,
.maxRespawnTime = 5.0,
.initialSpeed = 1.0,
.score = -1000,
.changeSpeedAtWaypoint = false,
.speedChangeChance = 0.0,
.minSpeed = 1.0,
.maxSpeed = 1.0,
.isMovingPlatform = false,
.despawnOnLastWaypoint = true
}
},
// Ship 3
{
std::vector<std::string> { "Wave_2_Ship_1", "Wave_2_Ship_2" },
6015, 0.0, 2.0, true, 0.0, 2.0,
2.0, 500, false, 0.0, 1.0,
1.0, false, true
std::vector<SGEnemy>{
SGEnemy{
.spawnPaths = std::vector<std::string>{"Wave_1_Ship_1", "Wave_1_Ship_3"},
.lot = 6015,
.minSpawnTime = 0.0,
.maxSpawnTime = 2.0,
.respawns = true,
.minRespawnTime = 0.0,
.maxRespawnTime = 2.0,
.initialSpeed = 2.0,
.score = 1500,
.changeSpeedAtWaypoint = false,
.speedChangeChance = 0.0,
.minSpeed = 1.0,
.maxSpeed = 1.0,
.isMovingPlatform = false,
.despawnOnLastWaypoint = true
},
SGEnemy{
.spawnPaths = std::vector<std::string>{"Wave_1_Ship_2", "Wave_1_Ship_4"},
.lot = 6300,
.minSpawnTime = 0.0,
.maxSpawnTime = 2.0,
.respawns = true,
.minRespawnTime = 0.0,
.maxRespawnTime = 2.0,
.initialSpeed = 2.0,
.score = 500,
.changeSpeedAtWaypoint = false,
.speedChangeChance = 0.0,
.minSpeed = 1.0,
.maxSpeed = 1.0,
.isMovingPlatform = false,
.despawnOnLastWaypoint = true
},
SGEnemy{
.spawnPaths = std::vector<std::string>{"Wave_2_Ship_1"},
.lot = 6300,
.minSpawnTime = 0.0,
.maxSpawnTime = 2.0,
.respawns = true,
.minRespawnTime = 0.0,
.maxRespawnTime = 2.0,
.initialSpeed = 2.0,
.score = 500,
.changeSpeedAtWaypoint = false,
.speedChangeChance = 0.0,
.minSpeed = 1.0,
.maxSpeed = 1.0,
.isMovingPlatform = false,
.despawnOnLastWaypoint = true
},
SGEnemy{
.spawnPaths = std::vector<std::string>{"Wave_2_Ship_2"},
.lot = 6015,
.minSpawnTime = 0.0,
.maxSpawnTime = 2.0,
.respawns = true,
.minRespawnTime = 0.0,
.maxRespawnTime = 2.0,
.initialSpeed = 2.0,
.score = 500,
.changeSpeedAtWaypoint = false,
.speedChangeChance = 0.0,
.minSpeed = 1.0,
.maxSpeed = 1.0,
.isMovingPlatform = false,
.despawnOnLastWaypoint = true
},
SGEnemy{
.spawnPaths = std::vector<std::string>{"Wave_1_Sub_1", "Wave_1_Sub_2"},
.lot = 6016,
.minSpawnTime = 0.0,
.maxSpawnTime = 2.0,
.respawns = true,
.minRespawnTime = 0.0,
.maxRespawnTime = 2.0,
.initialSpeed = 2.0,
.score = 1000,
.changeSpeedAtWaypoint = false,
.speedChangeChance = 0.0,
.minSpeed = 1.0,
.maxSpeed = 1.0,
.isMovingPlatform = true,
.despawnOnLastWaypoint = true
},
SGEnemy{
.spawnPaths = std::vector<std::string>{"Wave_2_Sub_1", "Wave_2_Sub_2"},
.lot = 6016,
.minSpawnTime = 0.0,
.maxSpawnTime = 2.0,
.respawns = true,
.minRespawnTime = 0.0,
.maxRespawnTime = 2.0,
.initialSpeed = 2.0,
.score = 1000,
.changeSpeedAtWaypoint = false,
.speedChangeChance = 0.0,
.minSpeed = 1.0,
.maxSpeed = 1.0,
.isMovingPlatform = true,
.despawnOnLastWaypoint = true
},
SGEnemy{
.spawnPaths = std::vector<std::string>{"Wave_1_Duck_1", "Wave_1_Duck_2"},
.lot = 5946,
.minSpawnTime = 5.0,
.maxSpawnTime = 10.0,
.respawns = true,
.minRespawnTime = 5.0,
.maxRespawnTime = 10.0,
.initialSpeed = 4.0,
.score = 5000,
.changeSpeedAtWaypoint = false,
.speedChangeChance = 0.0,
.minSpeed = 1.0,
.maxSpeed = 1.0,
.isMovingPlatform = false,
.despawnOnLastWaypoint = true
},
SGEnemy{
.spawnPaths = std::vector<std::string>{"Wave_3_FShip_1", "Wave_3_FShip_2"},
.lot = 2168,
.minSpawnTime = 0.0,
.maxSpawnTime = 5.0,
.respawns = true,
.minRespawnTime = 2.0,
.maxRespawnTime = 5.0,
.initialSpeed = 1.0,
.score = -1000,
.changeSpeedAtWaypoint = false,
.speedChangeChance = 0.0,
.minSpeed = 1.0,
.maxSpeed = 1.0,
.isMovingPlatform = false,
.despawnOnLastWaypoint = true
}
},
// Ship 4
{
std::vector<std::string> { "Wave_3_Ship_1", "Wave_3_Ship_2" },
6300, 0.0, 2.0, true, 0.0, 2.0,
2.0, 1500, false, 0.0, 1.0,
1.0, false, true
},
std::vector<SGEnemy>{
// Sub 1
{
std::vector<std::string> { "Wave_1_Sub_1", "Wave_1_Sub_2" },
6016, 0.0, 2.0, true, 0.0, 2.0,
2.0, 1000, false, 0.0, 1.0,
1.0, true, true
},
SGEnemy{
.spawnPaths = std::vector<std::string>{"Wave_1_Ship_1", "Wave_1_Ship_3"},
.lot = 6015,
.minSpawnTime = 0.0,
.maxSpawnTime = 2.0,
.respawns = true,
.minRespawnTime = 0.0,
.maxRespawnTime = 2.0,
.initialSpeed = 2.0,
.score = 1500,
.changeSpeedAtWaypoint = false,
.speedChangeChance = 0.0,
.minSpeed = 1.0,
.maxSpeed = 1.0,
.isMovingPlatform = false,
.despawnOnLastWaypoint = true
},
// Sub 2
{
std::vector<std::string> { "Wave_2_Sub_1", "Wave_2_Sub_2" },
6016, 0.0, 2.0, true, 0.0, 2.0,
2.0, 1000, false, 0.0, 1.0,
1.0, true, true
},
SGEnemy{
.spawnPaths = std::vector<std::string>{"Wave_1_Ship_2", "Wave_1_Ship_4"},
.lot = 6300,
.minSpawnTime = 0.0,
.maxSpawnTime = 2.0,
.respawns = true,
.minRespawnTime = 0.0,
.maxRespawnTime = 2.0,
.initialSpeed = 2.0,
.score = 500,
.changeSpeedAtWaypoint = false,
.speedChangeChance = 0.0,
.minSpeed = 1.0,
.maxSpeed = 1.0,
.isMovingPlatform = false,
.despawnOnLastWaypoint = true
},
// Sub 3
{
std::vector<std::string> { "Wave_3_Sub_1", "Wave_3_Sub_2" },
6016, 0.0, 2.0, true, 0.0, 2.0,
2.0, 1000, false, 0.0, 1.0,
1.0, true, true
},
SGEnemy{
.spawnPaths = std::vector<std::string>{"Wave_2_Ship_1", "Wave_2_Ship_2"},
.lot = 6015,
.minSpawnTime = 0.0,
.maxSpawnTime = 2.0,
.respawns = true,
.minRespawnTime = 0.0,
.maxRespawnTime = 2.0,
.initialSpeed = 2.0,
.score = 500,
.changeSpeedAtWaypoint = false,
.speedChangeChance = 0.0,
.minSpeed = 1.0,
.maxSpeed = 1.0,
.isMovingPlatform = false,
.despawnOnLastWaypoint = true
},
// Duck
{
std::vector<std::string> { "Wave_1_Duck_1", "Wave_1_Duck_2" },
5946, 5.0, 10.0, true, 5.0, 10.0,
4.0, 5000, false, 0.0, 1.0,
1.0, false, true
},
SGEnemy{
.spawnPaths = std::vector<std::string>{"Wave_3_Ship_1", "Wave_3_Ship_2"},
.lot = 6300,
.minSpawnTime = 0.0,
.maxSpawnTime = 2.0,
.respawns = true,
.minRespawnTime = 0.0,
.maxRespawnTime = 2.0,
.initialSpeed = 2.0,
.score = 1500,
.changeSpeedAtWaypoint = false,
.speedChangeChance = 0.0,
.minSpeed = 1.0,
.maxSpeed = 1.0,
.isMovingPlatform = false,
.despawnOnLastWaypoint = true
},
// Ness
{
std::vector<std::string> { "Wave_1_Ness_1", "Wave_1_Ness_2", "Wave_2_Ness_1" },
2565, 10.0, 15.0, true, 10.0, 15.0,
2.0, 10000, false, 0.0, 1.0,
1.0, true, true
},
SGEnemy{
.spawnPaths = std::vector<std::string>{"Wave_1_Sub_1", "Wave_1_Sub_2"},
.lot = 6016,
.minSpawnTime = 0.0,
.maxSpawnTime = 2.0,
.respawns = true,
.minRespawnTime = 0.0,
.maxRespawnTime = 2.0,
.initialSpeed = 2.0,
.score = 1000,
.changeSpeedAtWaypoint = false,
.speedChangeChance = 0.0,
.minSpeed = 1.0,
.maxSpeed = 1.0,
.isMovingPlatform = true,
.despawnOnLastWaypoint = true
},
// Friendly 1
{
std::vector<std::string> { "Wave_3_FShip_1", "Wave_3_FShip_2" },
2168,0.0,5.0,true, 2.0, 5.0,
1.0, -1000, false, 0.0, 1.0,
1.0, false,true
},
SGEnemy{
.spawnPaths = std::vector<std::string>{"Wave_2_Sub_1", "Wave_2_Sub_2"},
.lot = 6016,
.minSpawnTime = 0.0,
.maxSpawnTime = 2.0,
.respawns = true,
.minRespawnTime = 0.0,
.maxRespawnTime = 2.0,
.initialSpeed = 2.0,
.score = 1000,
.changeSpeedAtWaypoint = false,
.speedChangeChance = 0.0,
.minSpeed = 1.0,
.maxSpeed = 1.0,
.isMovingPlatform = true,
.despawnOnLastWaypoint = true
},
// Friendly 2
{
std::vector<std::string> { "Wave_3_FShip_1", "Wave_3_FShip_2" },
2168,0.0,5.0,true, 2.0, 5.0,
1.0, -1000, false, 0.0, 1.0,
1.0, false,true
SGEnemy{
.spawnPaths = std::vector<std::string>{"Wave_3_Sub_1", "Wave_3_Sub_2"},
.lot = 6016,
.minSpawnTime = 0.0,
.maxSpawnTime = 2.0,
.respawns = true,
.minRespawnTime = 0.0,
.maxRespawnTime = 2.0,
.initialSpeed = 2.0,
.score = 1000,
.changeSpeedAtWaypoint = false,
.speedChangeChance = 0.0,
.minSpeed = 1.0,
.maxSpeed = 1.0,
.isMovingPlatform = true,
.despawnOnLastWaypoint = true
},
SGEnemy{
.spawnPaths = std::vector<std::string>{"Wave_1_Duck_1", "Wave_1_Duck_2"},
.lot = 5946,
.minSpawnTime = 5.0,
.maxSpawnTime = 10.0,
.respawns = true,
.minRespawnTime = 5.0,
.maxRespawnTime = 10.0,
.initialSpeed = 4.0,
.score = 5000,
.changeSpeedAtWaypoint = false,
.speedChangeChance = 0.0,
.minSpeed = 1.0,
.maxSpeed = 1.0,
.isMovingPlatform = false,
.despawnOnLastWaypoint = true
},
SGEnemy{
.spawnPaths = std::vector<std::string>{"Wave_1_Ness_1", "Wave_1_Ness_2", "Wave_2_Ness_1"},
.lot = 2565,
.minSpawnTime = 10.0,
.maxSpawnTime = 15.0,
.respawns = true,
.minRespawnTime = 10.0,
.maxRespawnTime = 15.0,
.initialSpeed = 2.0,
.score = 10000,
.changeSpeedAtWaypoint = false,
.speedChangeChance = 0.0,
.minSpeed = 1.0,
.maxSpeed = 1.0,
.isMovingPlatform = true,
.despawnOnLastWaypoint = true
},
SGEnemy{
.spawnPaths = std::vector<std::string>{"Wave_3_FShip_1", "Wave_3_FShip_2"},
.lot = 2168,
.minSpawnTime = 0.0,
.maxSpawnTime = 5.0,
.respawns = true,
.minRespawnTime = 2.0,
.maxRespawnTime = 5.0,
.initialSpeed = 1.0,
.score = -1000,
.changeSpeedAtWaypoint = false,
.speedChangeChance = 0.0,
.minSpeed = 1.0,
.maxSpeed = 1.0,
.isMovingPlatform = false,
.despawnOnLastWaypoint = true
},
SGEnemy{
.spawnPaths = std::vector<std::string>{"Wave_3_FShip_1", "Wave_3_FShip_2"},
.lot = 2168,
.minSpawnTime = 0.0,
.maxSpawnTime = 5.0,
.respawns = true,
.minRespawnTime = 2.0,
.maxRespawnTime = 5.0,
.initialSpeed = 1.0,
.score = -1000,
.changeSpeedAtWaypoint = false,
.speedChangeChance = 0.0,
.minSpeed = 1.0,
.maxSpeed = 1.0,
.isMovingPlatform = false,
.despawnOnLastWaypoint = true
}
}
}
};
}
@@ -1026,41 +1265,41 @@ void SGCannon::ResetVars(Entity* self) {
}
SGConstants SGCannon::GetConstants() {
return {
Vector3 { -908.542480, 229.773178, -908.542480 },
Quaternion { 0.91913521289825, 0, 0.39394217729568, 0 },
1864,
34,
1822,
Vector3 { 6.652, -2, 1.5 },
157,
129.0,
30.0,
800.0,
Vector3 { 0, 4.3, 9 },
6297,
1822,
249,
228,
-1,
58.6,
true,
2,
10,
25000,
"QBRewardGroup",
1864,
50000,
157,
100000,
187,
200000,
188,
400000,
189,
800000,
190,
4.0,
7.0
return SGConstants{
.playerStartPosition = Vector3 { -908.542480, 229.773178, -908.542480 },
.playerStartRotation = Quaternion { 0.91913521289825, 0, 0.39394217729568, 0 },
.cannonLot = 1864,
.impactSkillID = 34,
.projectileLot = 1822,
.playerOffset = Vector3 { 6.652, -2, 1.5 },
.rewardModelMatrix = 157,
.cannonVelocity = 129.0,
.cannonMinDistance = 30.0,
.cannonRefireRate = 800.0,
.cannonBarrelOffset = Vector3 { 0, 4.3, 9 },
.cannonSuperchargedProjectileLot = 6297,
.cannonProjectileLot = 1822,
.cannonSuperChargeSkill = 249,
.cannonSkill = 228,
.cannonTimeout = -1,
.cannonFOV = 58.6,
.useLeaderboards = true,
.streakModifier = 2,
.chargedTime = 10,
.chargedPoints = 25000,
.rewardModelGroup = "QBRewardGroup",
.activityID = 1864,
.scoreReward1 = 50000,
.scoreLootMatrix1 = 157,
.scoreReward2 = 100000,
.scoreLootMatrix2 = 187,
.scoreReward3 = 200000,
.scoreLootMatrix3 = 188,
.scoreReward4 = 400000,
.scoreLootMatrix4 = 189,
.scoreReward5 = 800000,
.scoreLootMatrix5 = 190,
.firstWaveStartTime = 4.0,
.inBetweenWavePause = 7.0
};
}

View File

@@ -2,18 +2,18 @@
Constants ZoneAgSurvival::GetConstants() {
return Constants{
60,
2,
7,
5,
10,
5,
15,
10,
0,
true,
std::vector<uint32_t> {8, 13, 18, 23, 28, 32},
std::vector<uint32_t> {2, 10, 15, 20, 25, 30}
.acceptedDelay = 60,
.startDelay = 2,
.waveTime = 7,
.rewardInterval = 5,
.coolDownTime = 10,
.mobSet2Wave = 5,
.mobSet3Wave = 15,
.unlockNetwork3 = 10,
.lotPhase = 0,
.useMobLots = true,
.baseMobsStartTier = std::vector<uint32_t> {8, 13, 18, 23, 28, 32},
.randMobsStartTier = std::vector<uint32_t> {2, 10, 15, 20, 25, 30}
};
}
@@ -48,58 +48,58 @@ MobSets ZoneAgSurvival::GetMobSets() {
SpawnerNetworks ZoneAgSurvival::GetSpawnerNetworks() {
return SpawnerNetworks{
SpawnerNetworkCollection {
BaseMobSet,
{
.mobSetName = BaseMobSet,
.networks = {
SpawnerNetwork {
std::vector<std::string> { "Base_MobA", "Base_MobB", "Base_MobC" },
"",
false,
false
.names = std::vector<std::string> { "Base_MobA", "Base_MobB", "Base_MobC" },
.number = "",
.isLocked = false,
.isActive = false
},
}
},
SpawnerNetworkCollection {
RandMobSet,
{
.mobSetName = RandMobSet,
.networks = {
SpawnerNetwork {
std::vector<std::string> {"MobA_", "MobB_", "MobC_"},
"01",
false,
false
.names = std::vector<std::string> {"MobA_", "MobB_", "MobC_"},
.number = "01",
.isLocked = false,
.isActive = false
},
SpawnerNetwork {
std::vector<std::string> {"MobA_", "MobB_", "MobC_"},
"02",
false,
false
.names = std::vector<std::string> {"MobA_", "MobB_", "MobC_"},
.number = "02",
.isLocked = false,
.isActive = false
},
SpawnerNetwork {
std::vector<std::string> {"MobA_", "MobB_", "MobC_"},
"03",
true,
false
.names = std::vector<std::string> {"MobA_", "MobB_", "MobC_"},
.number = "03",
.isLocked = true,
.isActive = false
},
}
},
SpawnerNetworkCollection {
"",
{
.mobSetName = "",
.networks = {
SpawnerNetwork {
std::vector<std::string> { "Rewards_" },
"01",
false,
false
.names = std::vector<std::string> { "Rewards_" },
.number = "01",
.isLocked = false,
.isActive = false
},
}
},
SpawnerNetworkCollection {
"",
{
.mobSetName = "",
.networks = {
SpawnerNetwork {
std::vector<std::string> { "Smash_" },
"01",
false,
false
.names = std::vector<std::string> { "Smash_" },
.number = "01",
.isLocked = false,
.isActive = false
},
}
}
@@ -107,6 +107,7 @@ SpawnerNetworks ZoneAgSurvival::GetSpawnerNetworks() {
}
std::map<uint32_t, uint32_t> ZoneAgSurvival::GetMissionsToUpdate() {
// Mission : time to complete mission
return std::map<uint32_t, uint32_t> {
{ 479, 60 },
{ 1153, 180 },