From f2be362d08346b75f754d8faa525f39c816789c8 Mon Sep 17 00:00:00 2001 From: Sainan Date: Mon, 3 Mar 2025 11:30:14 +0100 Subject: [PATCH] active drones always have damage, just sometimes it's 0 --- src/controllers/api/dronesController.ts | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/controllers/api/dronesController.ts b/src/controllers/api/dronesController.ts index 704d3bb0..eef59c68 100644 --- a/src/controllers/api/dronesController.ts +++ b/src/controllers/api/dronesController.ts @@ -22,8 +22,8 @@ export const dronesController: RequestHandler = async (req, res) => { ItemId: toOid(drone._id), ItemType: drone.ItemType, CurrentHP: drone.CurrentHP, - DamageTime: drone.DamageTime ? toMongoDate(drone.DamageTime) : undefined, - PendingDamage: drone.PendingDamage, + DamageTime: toMongoDate(drone.DamageTime!), + PendingDamage: drone.PendingDamage!, Resources: [ { ItemType: drone.ResourceType!, @@ -49,12 +49,13 @@ export const dronesController: RequestHandler = async (req, res) => { } drone.System = parseInt(req.query.systemIndex as string); const system = ExportSystems[drone.System - 1]; - if (Math.random() < system.damageChance) { - drone.DamageTime = config.instantResourceExtractorDrones - ? new Date() - : new Date(Date.now() + getRandomInt(3 * 3600 * 1000, 4 * 3600 * 1000)); - drone.PendingDamage = getRandomInt(system.droneDamage.minValue, system.droneDamage.maxValue); - } + drone.DamageTime = config.instantResourceExtractorDrones + ? new Date() + : new Date(Date.now() + getRandomInt(3 * 3600 * 1000, 4 * 3600 * 1000)); + drone.PendingDamage = + Math.random() < system.damageChance + ? getRandomInt(system.droneDamage.minValue, system.droneDamage.maxValue) + : 0; const resource = getRandomWeightedReward3(system.resources, droneMeta.probabilities)!; //logger.debug(`drone rolled`, resource); drone.ResourceType = "/Lotus/" + resource.StoreItem.substring(18); @@ -76,7 +77,7 @@ export const dronesController: RequestHandler = async (req, res) => { } else if ("collectDroneId" in req.query) { const drone = inventory.Drones.id(req.query.collectDroneId as string)!; - if (drone.DamageTime && new Date() >= drone.DamageTime) { + if (new Date() >= drone.DamageTime!) { drone.CurrentHP -= drone.PendingDamage!; drone.RepairStart = new Date(); } @@ -129,8 +130,8 @@ interface IActiveDrone { ItemId: IOid; ItemType: string; CurrentHP: number; - DamageTime?: IMongoDate; - PendingDamage?: number; + DamageTime: IMongoDate; + PendingDamage: number; Resources: { ItemType: string; BinTotal: number;