302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
...
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
...
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
|
-- makeshift: cheap, weak, low quality
-- imperial ("da red wunz go fasta"): powerful, low quality
-- commune ("snooty sophisticates"): limited power, high quality, expensive
-- usukwinya ("value engineering"): high power, mid quality, affordable
-- eluthrai ("uncompromising"): high power, high quality, wildly expensive
-- firstborn ("god-tier"): exceptional
local batteryTiers = {
makeshift = {
name = 'Makeshift'; capacity = .5, decay = 3, leak = 2, dischargeRate = 1,
fab = starlit.type.fab {
element = {copper=10};
cost = {power = 0.3};
time = {print = .25};
};
desc = "Every attosecond this electrical abomination doesn't explode in your face is but the unearned grace of the Wild Gods.";
complexity = 1;
sw = {rarity = 1};
};
imperial = {
name = 'Imperial'; capacity = 2, decay = 2, leak = 2, dischargeRate = 2;
fab = starlit.type.fab {
element = {copper=15, iron = 20};
size = { print = 0.1 };
cost = {power = 2};
time = {print = .5};
};
desc = "The Empire's native technology is a lumbering titan: bulky, inefficient, unreliable, ugly, and awesomely powerful. Their batteries are no exception, with raw capacity and throughput that exceed even Usukinwya designs.";
drm = 1;
complexity = 2;
sw = {rarity = 2};
};
commune = {
name = 'Commune'; capacity = 1, decay = .5, leak = .2, dischargeRate = 1;
fab = starlit.type.fab {
element = {vanadium = 50};
metal = {steel=10};
size = { print = 0.05 };
cost = {power = 1};
};
desc = "The Commune's proprietary battery designs prioritize reliability, compactness, and maintenance concerns above raw throughput, with an elegance of engineering and design that would make a Su'ikuri cry.";
complexity = 5;
sw = {rarity = 3};
};
usukwinya = {
name = 'Usukwinya'; capacity = 2, decay = 1, leak = 1, dischargeRate = 1.5,
fab = starlit.type.fab {
element = {argon=10};
metal = {vanadium=30};
size = { print = 0.07 };
cost = {power = .8};
};
desc = "A race of consummate value engineers, the Usukwinya have spent thousands of years refining their tech to be as cheap to build as possible, without compromising much on quality. The Tradebirds drive an infamously hard bargain, but their batteries are more than worth their meagre cost.";
drm = 2;
sw = {rarity = 10};
complexity = 15;
};
eluthrai = {
name = 'Eluthrai'; capacity = 3, decay = .4, leak = .1, dischargeRate = 1.5,
fab = starlit.type.fab {
element = {beryllium=20, platinum=20, technetium = 1};
metal = {cinderstone = 10};
size = { print = 0.03 };
cost = {power = 10};
time = {print = 2};
};
desc = "The uncompromising Eluthrai are never satisfied until every quantifiable characteristic of their tech is maximally optimised down to the picoscale. Their batteries are some of the best in the Reach, and unquestionably the most expensive -- especially for those lesser races trying to copy the designs without the benefit of the sublime autofabricator ecosystem of the Eluthrai themselves.";
complexity = 200;
sw = {rarity = 0}; -- you think you're gonna buy eluthran schematics on SuperDiscountNanoWare.space??
};
firstborn = {
name = 'Firstborn'; capacity = 5, decay = 0.1, leak = 0, dischargeRate = 3;
fab = starlit.type.fab {
element = {neodymium=20, xenon=150, technetium=5};
metal = {sunsteel = 10};
crystal = {astrite = 1};
size = { print = 0.05 };
cost = {power = 50};
time = {print = 4};
};
desc = "Firstborn engineering seamlessly merges psionic effects with a mastery of the physical universe unattained by even the greatest of the living Starsouls. Their batteries reach levels of performance that strongly imply Quantum Gravity Theory -- and several major holy books -- need to be rewritten. From the ground up.";
complexity = 1000;
sw = {rarity = 0}; -- lol no
};
}
local batterySizes = {
................................................................................
huge = {name = 'Huge', capacity = 3, dischargeRate = 2, complexity = 1, matMult = 2,
fab = starlit.type.fab {size={print=0.8},cost={power=8},time={print=120}}};
}
local batteryTypes = {
supercapacitor = {
name = 'Supercapacitor';
desc = 'Room-temperature superconductors make for very reliable, high-dischargeRate, but low-capacity batteries.';
fab = starlit.type.fab {
metal = { enodium = 5 };
size = {print=0.8};
cost = {power = 1e3};
};
sw = {
cost = {
................................................................................
for bTierName, bTier in pairs(batteryTiers) do
for bSizeName, bSize in pairs(batterySizes) do
-- elemath(elementCost, bType.fab.element or {}, bSize.matMult)
-- elemath(elementCost, bTier.fab.element or {}, bSize.matMult)
-- elemath(metalCost, bType.fab.metal or {}, bSize.matMult)
-- elemath(metalCost, bTier.fab.metal or {}, bSize.matMult)
local fab = bType.fab + bTier.fab + bSize.fab + starlit.type.fab {
element = {copper = 10, silicon = 5};
}
local baseID = string.format('battery_%s_%s_%s',
bTypeName, bTierName, bSizeName)
local id = 'starlit_electronics:'..baseID
local name = string.format('%s %s Battery', bTier.name, bType.name)
if bSize.name then name = bSize.name .. ' ' .. name end
local function batStat(s)
|
>
|
|
|
|
|
>
|
|
|
|
|
|
>
>
|
|
|
|
|
|
>
|
|
<
|
|
|
>
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
...
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
...
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
|
-- makeshift: cheap, weak, low quality
-- imperial ("da red wunz go fasta"): powerful, low quality
-- commune ("snooty sophisticates"): limited power, high quality, expensive
-- usukwinya ("value engineering"): high power, mid quality, affordable
-- eluthrai ("uncompromising"): high power, high quality, wildly expensive
-- firstborn ("god-tier"): exceptional
print(dump(starlit.world.tier.fabsum('commune', 'battery')))
local batteryTiers = {
makeshift = {
name = 'Makeshift'; capacity = .5, decay = 3, leak = 2, dischargeRate = 1,
-- fab = starlit.type.fab {
-- element = {copper=10};
-- cost = {power = 0.3};
-- time = {print = .25};
-- };
fab = starlit.world.tier.fabsum('makeshift', 'battery');
desc = "Every attosecond this electrical abomination doesn't explode in your face is but the unearned grace of the Wild Gods.";
complexity = 1;
sw = {rarity = 1};
};
imperial = {
name = 'Imperial'; capacity = 2, decay = 2, leak = 2, dischargeRate = 2;
-- fab = starlit.type.fab {
-- element = {iron = 20};
-- size = { print = 0.1 };
-- cost = {power = 2};
-- time = {print = .5};
-- };
fab = starlit.world.tier.fabsum('imperial', 'battery');
desc = "The Empire's native technology is a lumbering titan: bulky, inefficient, unreliable, ugly, and awesomely powerful. Their batteries are no exception, with raw capacity and throughput that exceed even Usukinwya designs.";
drm = 1;
complexity = 2;
sw = {rarity = 2};
};
commune = {
name = 'Commune'; capacity = 1, decay = .5, leak = .2, dischargeRate = 1;
fab = starlit.world.tier.fabsum('commune', 'battery');
-- fab = starlit.type.fab {
-- element = {vanadium=10};
-- metal = {aluminum=10};
-- size = { print = 0.05 };
-- cost = {power = 1};
-- };
desc = "The Commune's proprietary battery designs prioritize reliability, compactness, and maintenance concerns above raw throughput, with an elegance of engineering and design that would make a Su'ikuri cry.";
complexity = 5;
sw = {rarity = 3};
};
usukwinya = {
name = 'Usukwinya'; capacity = 2, decay = 1, leak = 1, dischargeRate = 1.5,
fab = starlit.world.tier.fabsum('usukwinya', 'battery');
-- fab = starlit.type.fab {
-- element = {argon=10, vanadium=10};
-- size = { print = 0.07 };
-- cost = {power = .8};
-- };
desc = "A race of consummate value engineers, the Usukwinya have spent thousands of years refining their tech to be as cheap to build as possible, without compromising much on quality. The Tradebirds drive an infamously hard bargain, but their batteries are more than worth their meagre cost.";
drm = 2;
sw = {rarity = 10};
complexity = 15;
};
eluthrai = {
name = 'Eluthrai'; capacity = 3, decay = .4, leak = .1, dischargeRate = 1.5,
fab = starlit.world.tier.fabsum('eluthrai', 'battery');
-- fab = starlit.type.fab {
-- element = {beryllium=20, platinum=20, technetium = 1};
-- metal = {cinderstone = 10};
-- size = { print = 0.03 };
-- cost = {power = 10};
-- time = {print = 2};
-- };
desc = "The uncompromising Eluthrai are never satisfied until every quantifiable characteristic of their tech is maximally optimised down to the picoscale. Their batteries are some of the best in the Reach, and unquestionably the most expensive -- especially for those lesser races trying to copy the designs without the benefit of the sublime autofabricator ecosystem of the Eluthrai themselves.";
complexity = 200;
sw = {rarity = 0}; -- you think you're gonna buy eluthran schematics on SuperDiscountNanoWare.space??
};
firstborn = {
name = 'Firstborn'; capacity = 5, decay = 0.1, leak = 0, dischargeRate = 3;
fab = starlit.world.tier.fabsum('firstborn', 'battery');
-- fab = starlit.type.fab {
-- element = {neodymium=20, xenon=150, technetium=5};
-- metal = {sunsteel = 10};
-- crystal = {astrite = 1};
-- size = { print = 0.05 };
-- cost = {power = 50};
-- time = {print = 4};
-- };
desc = "Firstborn engineering seamlessly merges psionic effects with a mastery of the physical universe unattained by even the greatest of the living Starsouls. Their batteries reach levels of performance that strongly imply Quantum Gravity Theory -- and several major holy books -- need to be rewritten. From the ground up.";
complexity = 1000;
sw = {rarity = 0}; -- lol no
};
}
local batterySizes = {
................................................................................
huge = {name = 'Huge', capacity = 3, dischargeRate = 2, complexity = 1, matMult = 2,
fab = starlit.type.fab {size={print=0.8},cost={power=8},time={print=120}}};
}
local batteryTypes = {
supercapacitor = {
name = 'Supercapacitor';
desc = 'Room-temperature superconductors make for very reliable, high-discharge rate, but low-capacity batteries.';
fab = starlit.type.fab {
metal = { enodium = 5 };
size = {print=0.8};
cost = {power = 1e3};
};
sw = {
cost = {
................................................................................
for bTierName, bTier in pairs(batteryTiers) do
for bSizeName, bSize in pairs(batterySizes) do
-- elemath(elementCost, bType.fab.element or {}, bSize.matMult)
-- elemath(elementCost, bTier.fab.element or {}, bSize.matMult)
-- elemath(metalCost, bType.fab.metal or {}, bSize.matMult)
-- elemath(metalCost, bTier.fab.metal or {}, bSize.matMult)
local fab = bType.fab + bTier.fab + bSize.fab + starlit.type.fab {
element = {copper = 10};
}
local baseID = string.format('battery_%s_%s_%s',
bTypeName, bTierName, bSizeName)
local id = 'starlit_electronics:'..baseID
local name = string.format('%s %s Battery', bTier.name, bType.name)
if bSize.name then name = bSize.name .. ' ' .. name end
local function batStat(s)
|