From f0f324d5e8ad47bc2ba933594a2f9d516ef52fb2 Mon Sep 17 00:00:00 2001 From: andrewgdewar Date: Tue, 31 Dec 2024 23:24:43 -0700 Subject: [PATCH] 2.6.3 --- config/config.json | 8 +- dist/DewardianDev-MOAR-2.6.1.zip | Bin 38350 -> 0 bytes dist/DewardianDev-MOAR-2.6.3.zip | Bin 0 -> 39365 bytes package.json | 2 +- src/Spawning/Spawning.ts | 10 ++- src/Spawning/buildPmcs.ts | 18 ++--- src/Spawning/buildScavMarksmanWaves.ts | 46 +++++------- src/Spawning/updateSpawnLocations.ts | 99 +++++++++++++++++++++---- src/Spawning/utils.ts | 51 +++++++------ 9 files changed, 151 insertions(+), 83 deletions(-) delete mode 100644 dist/DewardianDev-MOAR-2.6.1.zip create mode 100644 dist/DewardianDev-MOAR-2.6.3.zip diff --git a/config/config.json b/config/config.json index 9b3461e..aea7478 100644 --- a/config/config.json +++ b/config/config.json @@ -9,7 +9,11 @@ "startingPmcs": false, - "pmcWaveDistribution": 0.8, + "playerOpenZones": false, + "pmcOpenZones": false, + "allOpenZones": false, + + "pmcWaveDistribution": 0.7, "pmcWaveQuantity": 1, "zombiesEnabled": false, @@ -18,7 +22,7 @@ "zombieHealth": 1, "maxBotCap": 25, - "maxBotPerZone": 7, + "maxBotPerZone": 5, "moreScavGroups": false, "morePmcGroups": false, diff --git a/dist/DewardianDev-MOAR-2.6.1.zip b/dist/DewardianDev-MOAR-2.6.1.zip deleted file mode 100644 index b0216ae1590cc97816633a827b01953843c234bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38350 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 F{RccvTI&D+ diff --git a/dist/DewardianDev-MOAR-2.6.3.zip b/dist/DewardianDev-MOAR-2.6.3.zip new file mode 100644 index 0000000000000000000000000000000000000000..9a32793d11021044c0677f2ebe12a62729e2e486 GIT binary patch literal 39365 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

F{;0wb>x#WaQDhk3!d6jn&BOjoA;+VPL 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 literal 0 HcmV?d00001 diff --git a/package.json b/package.json index a8bbb14..a8d8b82 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "MOAR", - "version": "2.6.1", + "version": "2.6.3", "main": "src/mod.js", "license": "MIT", "author": "DewardianDev", diff --git a/src/Spawning/Spawning.ts b/src/Spawning/Spawning.ts index 1aaad28..8128486 100644 --- a/src/Spawning/Spawning.ts +++ b/src/Spawning/Spawning.ts @@ -7,7 +7,11 @@ import { ConfigServer } from "@spt/servers/ConfigServer"; import { ConfigTypes } from "@spt/models/enums/ConfigTypes"; import { DependencyContainer } from "tsyringe"; import { globalValues } from "../GlobalValues"; -import { cloneDeep, getRandomPresetOrCurrentlySelectedPreset } from "../utils"; +import { + cloneDeep, + getRandomPresetOrCurrentlySelectedPreset, + saveToFile, +} from "../utils"; import { ILocationConfig } from "@spt/models/spt/config/ILocationConfig.d"; import { originalMapList } from "./constants"; import { buildBossWaves } from "./buildBossWaves"; @@ -127,7 +131,7 @@ export const buildWaves = (container: DependencyContainer) => { rezervbase: { pmcbot: { min: 0, max: 0 } }, }; - updateSpawnLocations(locationList); + updateSpawnLocations(locationList, config); setEscapeTimeOverrides(locationList, _mapConfig, Logger, config); @@ -143,7 +147,7 @@ export const buildWaves = (container: DependencyContainer) => { } buildPmcs(config, locationList); - + originalMapList.forEach((name, index) => { if (!locations[name]) { console.log("[MOAR] OH CRAP we have a problem!", name); diff --git a/src/Spawning/buildPmcs.ts b/src/Spawning/buildPmcs.ts index 8b19992..ef7e0d4 100644 --- a/src/Spawning/buildPmcs.ts +++ b/src/Spawning/buildPmcs.ts @@ -30,10 +30,9 @@ export default function buildPmcs( .filter( ({ Categories, BotZoneName }) => !!BotZoneName && - (Categories.includes("Player") || - (map === "laboratory" && - !BotZoneName.includes("BotZoneGate"))) && - !BotZoneName.includes("snipe") + !BotZoneName.includes("snipe") && + (Categories.includes("Player") || Categories.includes("All")) && + !BotZoneName.includes("BotZoneGate") ) .map(({ BotZoneName, ...rest }) => { return BotZoneName; @@ -41,14 +40,12 @@ export default function buildPmcs( ), ...pmcHotZones, ]); + // Make labs have only named zones if (map === "laboratory") { pmcZones = new Array(10).fill(pmcZones).flat(1); - // console.log(pmcZones); } - const timeLimit = locationList[index].base.EscapeTimeLimit * 60; - const { pmcWaveCount } = mapConfig[map]; const escapeTimeLimitRatio = Math.round( @@ -58,13 +55,12 @@ export default function buildPmcs( const totalWaves = Math.round( pmcWaveCount * config.pmcWaveQuantity * escapeTimeLimitRatio ); - // console.log(pmcZones.length, totalWaves); + const numberOfZoneless = totalWaves - pmcZones.length; if (numberOfZoneless > 0) { const addEmpty = new Array(numberOfZoneless).fill(""); pmcZones = shuffle([...pmcZones, ...addEmpty]); } - // if (map === "laboratory") console.log(numberOfZoneless, pmcZones); if (config.debug) { console.log(`${map} PMC count ${totalWaves} \n`); @@ -74,11 +70,9 @@ export default function buildPmcs( `${map} PMC wave count changed from ${pmcWaveCount} to ${totalWaves} due to escapeTimeLimit adjustment` ); } + const timeLimit = locationList[index].base.EscapeTimeLimit * 60; const waves = buildPmcWaves(pmcWaveCount, timeLimit, config, pmcZones); - // if (map === "laboratory") - // console.log(waves.map(({ BossZone }) => BossZone)); - // apply our new waves locationList[index].base.BossLocationSpawn = [ ...waves, ...locationList[index].base.BossLocationSpawn, diff --git a/src/Spawning/buildScavMarksmanWaves.ts b/src/Spawning/buildScavMarksmanWaves.ts index 93b9baf..9d58dae 100644 --- a/src/Spawning/buildScavMarksmanWaves.ts +++ b/src/Spawning/buildScavMarksmanWaves.ts @@ -89,19 +89,16 @@ export default function buildScavMarksmanWaves( const sniperLocations = new Set( [...locationList[index].base.SpawnPointParams] .filter( - ({ Categories, Sides, BotZoneName }) => - !!BotZoneName && - Sides.includes("Savage") && - !Categories.includes("Boss") + ({ Categories, DelayToCanSpawnSec, BotZoneName, Sides }) => + !Categories.includes("Boss") && + Sides[0] === "Savage" && + (BotZoneName?.toLowerCase().includes("snipe") || + DelayToCanSpawnSec > 40) ) - .filter( - ({ BotZoneName, DelayToCanSpawnSec }) => - BotZoneName?.toLowerCase().includes("snipe") || - DelayToCanSpawnSec > 300 - ) - .map(({ BotZoneName }) => BotZoneName) + .map(({ BotZoneName }) => BotZoneName || "") ); + if (sniperLocations.size) { locationList[index].base.MinMaxBots = [ { @@ -112,32 +109,21 @@ export default function buildScavMarksmanWaves( ]; } - const scavZones = shuffle([ + let scavZones = shuffle([ ...new Set( [...locationList[index].base.SpawnPointParams] .filter( ({ Categories, Sides, BotZoneName }) => !!BotZoneName && - Sides.includes("Savage") && - !Categories.includes("Boss") + Categories.includes("Bot") && + (Sides.includes("Savage") || Sides.includes("All")) ) .map(({ BotZoneName }) => BotZoneName) .filter((name) => !sniperLocations.has(name)) ), ]); - // Reduced Zone Delay - locationList[index].base.SpawnPointParams = locationList[ - index - ].base.SpawnPointParams.map((spawn) => ({ - ...spawn, - DelayToCanSpawnSec: - spawn.DelayToCanSpawnSec > 20 - ? Math.round(spawn.DelayToCanSpawnSec / 10) - : spawn.DelayToCanSpawnSec, - })); - const timeLimit = locationList[index].base.EscapeTimeLimit * 60; const { scavWaveCount } = mapConfig[map]; const escapeTimeLimitRatio = Math.round( @@ -149,12 +135,19 @@ export default function buildScavMarksmanWaves( scavWaveCount * scavWaveQuantity * escapeTimeLimitRatio ); + const numberOfZoneless = scavTotalWaveCount - scavZones.length; + // console.log(numberOfZoneless); + if (numberOfZoneless > 0) { + const addEmpty = new Array(numberOfZoneless).fill(""); + scavZones = shuffle([...scavZones, ...addEmpty]); + } + // console.log(scavZones); config.debug && escapeTimeLimitRatio !== 1 && console.log( `${map} Scav wave count changed from ${scavWaveCount} to ${scavTotalWaveCount} due to escapeTimeLimit adjustment` ); - + const timeLimit = locationList[index].base.EscapeTimeLimit * 60; let snipers = waveBuilder( sniperLocations.size, Math.round(timeLimit / 4), @@ -166,14 +159,13 @@ export default function buildScavMarksmanWaves( [], shuffle([...sniperLocations]), 80, - false, + true, true ); if (snipersHaveFriends) snipers = snipers.map((wave) => ({ ...wave, - slots_min: 0, ...(snipersHaveFriends && wave.slots_max < 2 ? { slots_min: 1, slots_max: 2 } : {}), diff --git a/src/Spawning/updateSpawnLocations.ts b/src/Spawning/updateSpawnLocations.ts index f4464b8..c4f9cf4 100644 --- a/src/Spawning/updateSpawnLocations.ts +++ b/src/Spawning/updateSpawnLocations.ts @@ -1,36 +1,103 @@ import { ILocation } from "@spt/models/eft/common/ILocation"; import { configLocations } from "./constants"; import mapConfig from "../../config/mapConfig.json"; +import _config from "../../config/config.json"; -export default function updateSpawnLocations(locationList: ILocation[]) { +export default function updateSpawnLocations( + locationList: ILocation[], + config: typeof _config +) { for (let index = 0; index < locationList.length; index++) { const map = configLocations[index]; - + // console.log(map); const limit = mapConfig[map].spawnMinDistance; // console.log("\n" + map); locationList[index].base.SpawnPointParams.forEach( ( - { ColliderParams, BotZoneName, DelayToCanSpawnSec, Categories, Sides }, + { + ColliderParams, + BotZoneName, + DelayToCanSpawnSec, + Categories, + Sides, + Infiltration, + }, innerIndex ) => { if ( - ColliderParams?._props?.Radius !== undefined && - ColliderParams?._props?.Radius < limit && + !Categories.includes("Boss") && !BotZoneName?.toLowerCase().includes("snipe") && - DelayToCanSpawnSec < 300 + DelayToCanSpawnSec < 41 ) { - // console.log( - // "----", - // ColliderParams._props.Radius, - // "=>", - // limit, - // BotZoneName - // ); + // Make it so players can spawn anywhere. + if ( + config.playerOpenZones && + !!Infiltration && + (Sides.includes("Pmc") || Sides.includes("All")) && + Categories.length === 1 && + Categories[0] === "Player" + ) { + locationList[index].base.SpawnPointParams[innerIndex].Categories = [ + "Player", + "Coop", + innerIndex % 2 === 0 ? "Group" : "Opposite", + ]; + + // console.log( + // BotZoneName || "none", + // locationList[index].base.SpawnPointParams[innerIndex].Categories, + // locationList[index].base.SpawnPointParams[innerIndex].Sides + // ); + } + + if ( + config.pmcOpenZones && + Categories.includes("Bot") && + Sides[0] === "Savage" && + !Infiltration + ) { + locationList[index].base.SpawnPointParams[innerIndex].Categories = [ + "Player", + "Bot", + ]; + } + + if (!Infiltration && config.allOpenZones) { + locationList[index].base.SpawnPointParams[innerIndex].Categories = [ + "Bot", + "Player", + "Coop", + innerIndex % 2 === 0 ? "Group" : "Opposite", + ]; + locationList[index].base.SpawnPointParams[innerIndex].Sides = [ + "All", + ]; + } - locationList[index].base.SpawnPointParams[ - innerIndex - ].ColliderParams._props.Radius = limit; + if ( + ColliderParams?._props?.Radius !== undefined && + ColliderParams?._props?.Radius < limit + ) { + locationList[index].base.SpawnPointParams[ + innerIndex + ].ColliderParams._props.Radius = limit; + } + } else { + if (!Categories.includes("Boss") && DelayToCanSpawnSec > 40) { + locationList[index].base.SpawnPointParams[ + innerIndex + ].DelayToCanSpawnSec = Math.round( + DelayToCanSpawnSec * Math.random() * Math.random() + ); + // console.log( + // count, + // BotZoneName, + // DelayToCanSpawnSec, + // locationList[index].base.SpawnPointParams[innerIndex] + // .DelayToCanSpawnSec + // ); + } } } ); diff --git a/src/Spawning/utils.ts b/src/Spawning/utils.ts index 77f60d6..3aa28c2 100644 --- a/src/Spawning/utils.ts +++ b/src/Spawning/utils.ts @@ -44,7 +44,7 @@ export const waveBuilder = ( ); const min = !offset && waves.length < 1 ? 0 : timeStart; - const max = !offset && waves.length < 1 ? 0 : timeStart + 10; + const max = !offset && waves.length < 1 ? 0 : timeStart + 60; if (waves.length >= 1 || offset) timeStart = timeStart + stage; const BotPreset = getDifficulty(difficulty); @@ -55,8 +55,9 @@ export const waveBuilder = ( ); if (slotMax < 1) slotMax = 1; - const slotMin = (Math.round(Math.random() * slotMax) || 1) - 1; + let slotMin = (Math.round(Math.random() * slotMax) || 1) - 1; + if (wildSpawnType === "marksman" && slotMin < 1) slotMin = 1; waves.push({ BotPreset, BotSide: getBotSide(wildSpawnType), @@ -189,11 +190,12 @@ export const getRandomZombieType = () => zombieTypesCaps[Math.round((zombieTypesCaps.length - 1) * Math.random())]; export const buildPmcWaves = ( - totalWaves: number, + pmcTotal: number, escapeTimeLimit: number, config: typeof _config, bossZones: string[] ): IBossLocationSpawn[] => { + if (!pmcTotal) return []; let { pmcMaxGroupSize, pmcDifficulty, @@ -201,15 +203,12 @@ export const buildPmcWaves = ( morePmcGroups, pmcWaveDistribution, } = config; + const averageTime = (escapeTimeLimit * 0.8) / pmcTotal; - const averageTime = escapeTimeLimit / totalWaves; - const firstHalf = Math.round(averageTime * (1 - pmcWaveDistribution)); - const secondHalf = Math.round(averageTime * (1 + pmcWaveDistribution)); - let timeStart = -1; const waves: IBossLocationSpawn[] = []; - let maxSlotsReached = totalWaves; + let maxSlotsReached = pmcTotal; - while (totalWaves > 0) { + while (pmcTotal > 0) { let bossEscortAmount = Math.round( (morePmcGroups ? 1 : Math.random()) * Math.random() * @@ -217,20 +216,24 @@ export const buildPmcWaves = ( ); if (bossEscortAmount < 0) bossEscortAmount = 0; - const accelerate = totalWaves > 5 && waves.length < totalWaves / 3; - const stage = startingPmcs - ? 10 - : Math.round( - waves.length < Math.round(totalWaves * 0.5) - ? accelerate - ? firstHalf / 3 - : firstHalf - : secondHalf - ); - if (waves.length >= 1) timeStart = timeStart + stage; + // const totalCountThisWave = bossEscortAmount + 1; + const totalCountThusFar = pmcTotal - maxSlotsReached; + + const timeToUse = + totalCountThusFar < pmcTotal * pmcWaveDistribution + ? Math.round( + averageTime * (1 - pmcWaveDistribution) * totalCountThusFar + ) + : Math.round( + escapeTimeLimit * (1 - pmcWaveDistribution) + + (1 - pmcWaveDistribution) * totalCountThusFar * averageTime + ); + + let timeStart = + (startingPmcs ? totalCountThusFar * totalCountThusFar * 3 : timeToUse) || + -1; - // console.log(timeStart, BossEscortAmount); const side = Math.random() > 0.5 ? "pmcBEAR" : "pmcUSEC"; const BossDifficult = getDifficulty(pmcDifficulty); @@ -260,7 +263,10 @@ export const buildPmcWaves = ( maxSlotsReached -= 1 + bossEscortAmount; if (maxSlotsReached <= 0) break; } - + // console.log( + // escapeTimeLimit, + // waves.map(({ Time }) => Time) + // ); return waves; }; @@ -270,6 +276,7 @@ export const buildZombie = ( waveDistribution: number, BossChance: number = 100 ): IBossLocationSpawn[] => { + if (!totalWaves) return []; const averageTime = (escapeTimeLimit * 60) / totalWaves; const firstHalf = Math.round(averageTime * (1 - waveDistribution)); const secondHalf = Math.round(averageTime * (1 + waveDistribution));