diff --git a/locale/en.po b/locale/en.po index c5622ed3858..b1780bb1875 100644 --- a/locale/en.po +++ b/locale/en.po @@ -4376,7 +4376,7 @@ msgid "NUCLEUS_DESCRIPTION" msgstr "The defining feature of eukaryotic cells. The nucleus also includes the endoplasmic reticulum and the Golgi body. It is an evolution of prokaryotic cells to develop a system of internal membranes, done by assimilating another prokaryote inside of themselves. This allows them to compartmentalize, or ward off, the different processes happening inside the cell and prevent them from overlapping. This allows their new membrane-bound organelles to be much more complex, efficient, and specialized than if they were free-floating in the cytoplasm. However, this comes at the cost of making the cell much larger and requiring a lot of the cell's energy to maintain." msgid "NUCLEUS_SMALL_DESCRIPTION" -msgstr "Allows for the evolution of more complex, membrane-bound organelles and reduces the damage taken by 50%. Costs a lot of ATP to maintain. This is an irreversible evolution." +msgstr "Allows for the evolution of more complex, membrane-bound organelles and reduces the damage taken by 50%. Reduces osmoregulation and basic movement costs by 25%. Costs a lot of ATP to maintain. This is an irreversible evolution." msgid "NUMLOCK" msgstr "Num Lock" diff --git a/locale/ru.po b/locale/ru.po index a86c98248d6..d3ee5668400 100644 --- a/locale/ru.po +++ b/locale/ru.po @@ -4376,7 +4376,7 @@ msgid "NUCLEUS_DESCRIPTION" msgstr "Определяющая особенность эукариотических клеток. Ядро также включает эндоплазматический ретикулум и комплекс Гольджи. Это эволюция прокариотических клеток, направленная на развитие системы внутренних мембран, осуществляемая путем ассимиляции другого прокариота внутри своей клетки. Это позволяет клетке разделить или изолировать различные процессы, происходящие внутри клетки, и предотвратить их перекрытие. Это позволяет новым мембранным органеллам быть гораздо более сложными, эффективными и специализированными, чем если бы они свободно плавали в цитоплазме. Однако это происходит за счет того, что клетка становится намного больше и для поддержания нового приобретения требуется намного больше энергии." msgid "NUCLEUS_SMALL_DESCRIPTION" -msgstr "Позволяет эволюционировать более сложным, мембранным органеллам. Обслуживание требует больших затрат АТФ. Это необратимая эволюция." +msgstr "Позволяет эволюционировать более сложным, мембранным органеллам. Уменьшает получаемый урон на 50%. Уменьшает стоимость осморегуляции и базовую стоимость передвижения на 25%. Обслуживание требует больших затрат АТФ. Это необратимая эволюция." msgid "NUMLOCK" msgstr "Num Lock" diff --git a/src/microbe_stage/systems/MicrobeMovementSystem.cs b/src/microbe_stage/systems/MicrobeMovementSystem.cs index 7bcfb6f261a..d3594f39aac 100644 --- a/src/microbe_stage/systems/MicrobeMovementSystem.cs +++ b/src/microbe_stage/systems/MicrobeMovementSystem.cs @@ -225,6 +225,11 @@ private Vector3 CalculateMovementForce(in Entity entity, ref MicrobeControl cont // movement cost var cost = Constants.BASE_MOVEMENT_ATP_COST * organelles.HexCount * length * delta * strainMultiplier; + if (!cellProperties.IsBacteria) + { + cost *= Constants.NUCLEUS_MOVEMENT_COST_MODIFIER; + } + var got = compounds.TakeCompound(Compound.ATP, cost); // Halve base movement speed if out of ATP diff --git a/src/microbe_stage/systems/OsmoregulationAndHealingSystem.cs b/src/microbe_stage/systems/OsmoregulationAndHealingSystem.cs index eed9395cfb1..e2b1613d8dc 100644 --- a/src/microbe_stage/systems/OsmoregulationAndHealingSystem.cs +++ b/src/microbe_stage/systems/OsmoregulationAndHealingSystem.cs @@ -147,6 +147,12 @@ private void TakeOsmoregulationEnergyCost(in Entity entity, ref CellProperties c osmoregulationCost *= 20.0f / (20.0f + colonySize); } + // 30% osmoregulation bonus if have nucleus + if (!cellProperties.IsBacteria) + { + osmoregulationCost *= Constants.NUCLEUS_OSMOREGULATION_COST_MODIFIER; + } + var environmentalMultiplier = environmentalEffects.OsmoregulationMultiplier; // TODO: remove this safety check once it is no longer possible for this problem to happen diff --git a/src/microbe_stage/systems/ProcessSystem.cs b/src/microbe_stage/systems/ProcessSystem.cs index 3ea20864b58..9b272be55b5 100644 --- a/src/microbe_stage/systems/ProcessSystem.cs +++ b/src/microbe_stage/systems/ProcessSystem.cs @@ -38,6 +38,8 @@ namespace Systems; [RuntimeCost(26)] public partial class ProcessSystem : BaseSystem { + public static OrganelleDefinition Nucleus = SimulationParameters.Instance.GetOrganelleType("nucleus"); + #if CHECK_USED_STATISTICS private readonly List usedStatistics = new(); #endif @@ -811,6 +813,8 @@ private static void CalculateSimplePartOfEnergyBalance(IReadOnlyList