active drones always have damage, just sometimes it's 0
All checks were successful
Build / build (20) (push) Successful in 36s
Build / build (18) (push) Successful in 52s
Build / build (22) (push) Successful in 56s

This commit is contained in:
Sainan 2025-03-03 11:30:14 +01:00
parent bdc882b886
commit f2be362d08

View File

@ -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;