Skip to content
This repository was archived by the owner on Jun 25, 2023. It is now read-only.

Commit c472769

Browse files
committed
Release version
1 parent 8949bf4 commit c472769

7 files changed

Lines changed: 38 additions & 15 deletions

File tree

Buildings/ReactorData.cs

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,32 @@
33
using Mafi.Core.Mods;
44
using Mafi.Core.Products;
55
using Mafi.Core.Factory.NuclearReactors;
6+
using Mafi.Core.Prototypes;
7+
using System;
68

79
namespace NuclearPlus.Buildings;
810

911
internal class ReactorData : IModData
1012
{
13+
14+
private EntityCostsTpl ReactorCostBuilder(ProtoRegistrator registrator,
15+
double productCostMulti,
16+
double maintenanceCostsMulti,
17+
double workersCostMulti
18+
) {
19+
var reactorCost = registrator.PrototypesDb.GetOrThrow<NuclearReactorProto>(Ids.Buildings.NuclearReactor).Costs;
20+
var costs = new EntityCostsTpl.Builder()
21+
.Maintenance(
22+
(int)Math.Round(reactorCost.Maintenance.MaintenancePerMonth.Value.ToIntCeiled() * maintenanceCostsMulti),
23+
reactorCost.Maintenance.Product.Id
24+
)
25+
.Workers((int)Math.Round(reactorCost.Workers * workersCostMulti));
26+
foreach (var product in reactorCost.Price.Products) {
27+
costs.Product(((int)Math.Round(product.Quantity.Value * productCostMulti)), product.Product.Id);
28+
}
29+
return costs;
30+
}
31+
1132
public void RegisterData(ProtoRegistrator registrator)
1233
{
1334
var uraniumRod = registrator.PrototypesDb.GetOrThrow<ProductProto>(Ids.Products.UraniumRod);
@@ -17,15 +38,17 @@ public void RegisterData(ProtoRegistrator registrator)
1738

1839
registrator.NuclearReactorProtoBuilder()
1940
.Start("Plutonium nuclear reactor", NuclearPlusIds.Buildings.PlutoniumReactor)
20-
.Description("This reactor can utilize plutonium rods.")
41+
.Description("This reactor can utilize plutonium rods. Plutonium is around 100 times more energy dense than uranium, thus only 1% of the fuel is used.")
42+
.SetCost(ReactorCostBuilder(registrator, 2, 1.2, 1.2))
2143
.AddFuelPair(plutoniumRod, spentFuel, 18000.Seconds())
2244
.SetCategories(Ids.ToolbarCategories.MachinesElectricity)
2345
.SetCustomIconPath(registrator.PrototypesDb.GetOrThrow<NuclearReactorProto>(Ids.Buildings.NuclearReactor).Graphics.IconPath)
2446
.BuildAndAdd();
2547

2648
registrator.NuclearReactorProtoBuilder()
2749
.Start("Plutonium fast breeder reactor", NuclearPlusIds.Buildings.PlutoniumBreederReactor)
28-
.Description("This reactor can utilize plutonium rods. The output of this reactor contains more fissile material than was consumed in the reaction. Plutonium is around 100 times more energy dense than uranium, thus only 1% of the fuel is used.")
50+
.Description("This reactor can utilize plutonium rods. Plutonium is around 100 times more energy dense than uranium, thus only 1% of the fuel is used. The output of this reactor contains more fissile material than was consumed in the reaction.")
51+
.SetCost(ReactorCostBuilder(registrator, 2, 1.5, 1.5))
2952
.AddFuelPair(plutoniumRod, breederSpentFuel, 18000.Seconds())
3053
.SetCategories(Ids.ToolbarCategories.MachinesElectricity)
3154
.SetCustomIconPath(registrator.PrototypesDb.GetOrThrow<NuclearReactorProto>(Ids.Buildings.NuclearReactor).Graphics.IconPath)
@@ -34,6 +57,7 @@ public void RegisterData(ProtoRegistrator registrator)
3457
registrator.NuclearReactorProtoBuilder()
3558
.Start("Uranium fast breeder reactor", NuclearPlusIds.Buildings.BreederReactor)
3659
.Description("This reactor can utilize uranium rods. The output of this reactor contains more fissile material than was consumed in the reaction.")
60+
.SetCost(ReactorCostBuilder(registrator, 2, 2, 1.5))
3761
.AddFuelPair(uraniumRod, breederSpentFuel, 180.Seconds())
3862
.SetCategories(Ids.ToolbarCategories.MachinesElectricity)
3963
.SetCustomIconPath(registrator.PrototypesDb.GetOrThrow<NuclearReactorProto>(Ids.Buildings.NuclearReactor).Graphics.IconPath)

NuclearPlus.Core.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
using System;
22
using System.Reflection;
33

4-
public static class Core
4+
internal static class Core
55
{
6-
public static string Name => Assembly.GetCallingAssembly().GetName().Name;
7-
public static string Version => Assembly.GetCallingAssembly().GetName().Version.ToString();
8-
public static int VersionInt => int.Parse(Version.Replace(".", ""));
9-
public static void LogWithVersion(Action<string> logger, string message) => logger($"{Core.Name}[{Core.Version}]: {message}");
6+
internal static string Name => Assembly.GetCallingAssembly().GetName().Name;
7+
internal static string Version => Assembly.GetCallingAssembly().GetName().Version.ToString();
8+
internal static int VersionInt => int.Parse(Version.Replace(".", ""));
9+
internal static void LogWithVersion(Action<string> logger, string message) => logger($"{Core.Name}[{Core.Version}]: {message}");
1010
}

NuclearPlus.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
</Target>
2121
<PropertyGroup>
2222
<OutputType>Library</OutputType>
23-
<TargetFramework>net46</TargetFramework>
23+
<TargetFramework>net48</TargetFramework>
2424
<Configurations>Debug;Release</Configurations>
2525
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
2626
<Authors>NotoriousPyro</Authors>

NuclearPlusIds.Products.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public static class Products
1717
public static readonly ProductProto.ID UranylNitrate = Ids.Products.CreateId("UranylNitrate");
1818
public static readonly ProductProto.ID PlutoniumNitrate = Ids.Products.CreateId("PlutoniumNitrate");
1919
public static readonly ProductProto.ID BreederSpentFuel = Ids.Products.CreateId("BreederSpentFuel");
20-
public static readonly ProductProto.ID BreederSpentFuelFromUranium = Ids.Products.CreateId("BreederSpentFuelFromUranium");
20+
//public static readonly ProductProto.ID BreederSpentFuelFromUranium = Ids.Products.CreateId("BreederSpentFuelFromUranium");
2121
public static readonly ProductProto.ID PlutoniumRod = Ids.Products.CreateId("PlutoniumRod");
2222
public static readonly ProductProto.ID PlutoniumPellets = Ids.Products.CreateId("PlutoniumPellets");
2323
}

README.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,12 @@ Download the latest release: https://github.com/NotoriousPyro/NuclearPlus/releas
3333
# How to use
3434
3535
## Basic setup
36-
![Basic setup](docs/basicsetup.png)
36+
***COMING SOON...***
3737
3838
## Research
39-
Research is currently limited to a single item which unlocks everything, this may be changed later...
39+
Research is via:
4040
* **Advanced nuclear**: dependant on Nuclear reactor first being completed.
41-
![Research: Advanced Nuclear](docs/research_advancednuclear.png)
41+
* **Plutonoum power production**: dependant on Robotic III and Advanced nuclear first being completed.
42+
![Research](docs/research.png)
43+
![Research Tree](docs/research_tree.png)
4244
43-
## Recipes
44-
* Incineration plant
45-
![Recipes: ](docs/recipes_.png)

docs/research.png

293 KB
Loading

docs/research_tree.png

43.9 KB
Loading

0 commit comments

Comments
 (0)