Deterioro de los alimentos




Introduce el deterioro de los alimentos en el juego.

Características

  • La mayoría de los alimentos que no están enlatados o conservados ahora pueden echarse a perder.
  • Las bebidas preparadas (como los tés) ahora pueden echarse a perder.
  • Se pueden fabricar refrigeradores a batería. Las recetas se pueden aprender a través de esquemas o comprando el beneficio de Ingeniería avanzada.

Mods dependientes y compatibles

Este mod tiene el prefijo de un número, para poder cargarlo después de todos los mods dependientes.

Este mod depende del mod 0-SphereIICore . Fue diseñado y probado para ser utilizado con la versión 19.3.1.14 de ese mod.

Es posible que este mod no funcione con diferentes versiones de 0-SphereIICore. Use otras versiones bajo su propio riesgo.

Detalles técnicos

Este mod usa XPath para modificar archivos XML y no requiere SDX o DMT.

Sin embargo, el mod 0-SphereIICore requiere DMT . No es compatible con EAC.

Después de la instalación, se recomienda encarecidamente comenzar un nuevo juego.

Cómo funciona el deterioro de los alimentos

Este mod depende del código de deterioro de alimentos proporcionado por el mod 0-SphereIICore . Ese mod tiene un código C# personalizado que se puede configurar a través de XML. Se basa libremente en la degradación de elementos del juego de vainilla.

El deterioro de los alimentos se calcula cuando el jugador abre un contenedor con una o más pilas de artículos consumibles en él. El término que utiliza SpereII para este cálculo es cálculo de pérdida.

Un cálculo de pérdida solo puede ocurrir después de una cierta cantidad de tics de juego desde la última vez que se calculó la pérdida. Este número de ticks se llama ticks por pérdida. Los ticks por pérdida se pueden configurar en XML y se pueden establecer individualmente por artículo consumible.

El cálculo de la pérdida puede ocurrir varias veces a la vez, si los ticks por pérdida se hubieran alcanzado varias veces desde que se abrió el contenedor por última vez. Por ejemplo, si los ticks por pérdida son 100 y han pasado 1000 ticks desde la última vez que el usuario abrió el contenedor, entonces el cálculo de la pérdida ocurrirá 10 veces cuando el usuario abra ese contenedor.

Cada vez que se produce el cálculo de pérdida, utiliza una serie de valores diferentes para determinar la cantidad de alimentos que se echan a perder:

  • La cantidad de deterioro comienza como una cantidad especificada para ese artículo consumible en el XML del artículo. Esta cantidad se llama deterioro por marca (aunque probablemente debería llamarse «desperdicio por pérdida» o «desperdicio por cálculo»).
  • La pila de artículos consumibles siempre se ubica en algún contenedor, y ese contenedor agrega un número a la cantidad de deterioro. El contenedor puede ser la mochila del jugador, la barra de herramientas del jugador o un contenedor de botín. Las tres ubicaciones tienen sus valores establecidos globalmente en XML.
  • Si la pila de elementos se encuentra en un contenedor de botín, ese contenedor puede compensar la cantidad global de deterioro que se agrega para todos los contenedores de botín. Esto se llama el bono de conservación del contenedor. El bono de conservación se resta de la cantidad de deterioro.

Una vez que se calcula esa cantidad, se compara con la cantidad total de deterioro que puede ocurrir antes de que se eche a perder un artículo consumible. Esa cantidad total de deterioro se denomina deterioro máximo.

Este proceso ocurre hasta que la cantidad de deterioro calculada es menor que el deterioro máximo:

  • Se elimina un artículo consumible de la pila de artículos.
  • Se crea un artículo estropeado, que representa una versión estropeada del artículo original. El artículo estropeado se puede especificar en el XML para cada artículo consumible, o por defecto es carne podrida. Si esto se establece en el artículo consumible en sí, entonces el artículo consumible se echa a perder.
  • El artículo estropeado se coloca en la mochila del jugador, creando una nueva pila si es necesario. (Va a la mochila del jugador sin importar qué contenedor tenía el artículo original). Si no hay espacio en la mochila del jugador, el artículo estropeado se deja caer al suelo.
  • El deterioro máximo se resta de la cantidad de deterioro calculada.

Aquí están los detalles sobre cómo configurar todo esto en los archivos XML.

Bloque de configuración de funciones XML

SphereII creó un bloque en blocks.xml que está diseñado para contener datos de configuración de características para todo el mod Core. Cada nodo de propiedad en ese bloque está dedicado a una función y ese nodo tiene nodos de propiedad secundarios que contienen los datos de configuración.

El nodo de propiedad que se ocupa del deterioro de los alimentos tiene la clase «FoodSpoilage». Estos son los nombres de los nodos de propiedad secundarios y las funciones que configuran:

  • “Registro”: activa o desactiva el registro detallado.
  • “FoodSpoilage”: Activa o desactiva el deterioro de los alimentos en el juego.
  • “Cinturón de herramientas”: la cantidad de deterioro que se agrega, por cálculo de pérdida, cuando las pilas de artículos consumibles se encuentran en el cinturón de herramientas del jugador.
  • “Mochila”: la cantidad de desperdicio que se agrega, por cálculo de pérdida, cuando las pilas de artículos consumibles se encuentran en la mochila del jugador.
  • “Contenedor”: la cantidad de deterioro que se agregará, según el cálculo de pérdida, cuando las pilas de artículos consumibles se encuentren en contenedores de botín.
  • “Deterioro mínimo”: El deterioro mínimo absoluto por cálculo de pérdida.
  • “TickPerLoss”: los ticks predeterminados por pérdida.
  • “Artículo estropeado”: ​​el artículo predeterminado en el que se convierten los artículos consumibles cuando se estropean.

XML de artículos consumibles

Estos se pueden agregar como nuevas propiedades a cada elemento en items.xml que es consumible.

  • “Estropeable”: habilita o deshabilita el deterioro de alimentos en este artículo. Nota: Establecer el valor en «falso» no funciona. Si un artículo consumible no se estropea, elimine esta propiedad por completo.
  • “ShowQuality”: muestra si solo se muestra la barra de calidad debajo del elemento.
  • “QualityTierColor”: el número de nivel para el color de la barra de calidad debajo del elemento. Puede ser un número entero del 0 al 7.
  • “Artículo estropeado”: ​​el artículo en el que se convierte este artículo consumible cuando se estropea.
  • “TickPerLoss”: los ticks por pérdida de este artículo consumible.
  • “SpoilageMax”: el máximo deterioro antes de que se eche a perder un artículo consumible.
  • “SpoilagePerTick”: El deterioro “por tick” (en realidad, por pérdida).

Contenedor Bloque XML

Esto se puede agregar como una nueva propiedad a cada contenedor en blocks.xml , según se desee.

“PreserveBonus”: La bonificación de conservación, por cálculo de pérdida, para este contenedor.

Sugerencias para personalizar

Khzmusik recomienda mantener SpoilageMax y SpoilagePerTick en sus valores predeterminados de 1000 y 1, respectivamente. Esto facilita las matemáticas.

Si SpoilageMax es 1000 y SpoilagePerTick es 1, entonces TickPerLoss debería ser el número de días en el juego que tarda un elemento en estropearse en condiciones ideales, multiplicado por 24. (Las matemáticas funcionan porque hay 1000 ticks por juego). hora.)

Si queremos que se echen a perder N elementos en esos días en el juego, establezca SpoilagePerTick en N (pero no ajuste TickPerLoss ).

Habrá una cantidad adicional de elementos dañados según la ubicación de la pila y el valor PreserveBonus del bloque contenedor (si corresponde). Por ejemplo, si la pila está en un «Contenedor» (establecido en 4 en el bloque de configuración), y el bloque contenedor tiene un PreserveBonus de 1, se echarán a perder 3 elementos adicionales en esa cantidad de días en el juego. (El deterioro no ocurrirá hasta el próximo tick de pérdida, según lo determine TickPerLoss ).

Esto en realidad hace posibles algunas cosas bastante complicadas. Por ejemplo, supongamos que no desea que el pan de maíz se vea muy afectado por el recipiente en el que se encuentra. Pero aún desea que se echen a perder tantos elementos como cualquier otro alimento, por ejemplo, 3 veces por semana.

En este caso, puede usar un número más largo de días en el juego para representar el tiempo que tarda una pieza de pan de maíz en echarse a perder, digamos, 4 semanas. Para compensarlo, establece el SpoilagePerTick en 12, por lo que todavía promedia 3 por semana.

Incluso si se echan a perder 4 piezas adicionales de pan de maíz porque están en un contenedor sin valor de PreserveBonus , esas 4 piezas se reparten en 4 semanas, por lo que los jugadores las notarán mucho menos.

Por otro lado, si desea que el estofado de carne se vea muy afectado por el contenedor en el que se encuentra, use un número corto de días en el juego, digamos, 3, y establezca SpoilagePerTick en 1. Si está en un contenedor sin valor PreserveBonus , 4 tazones extra de estofado se echarán a perder durante esos 3 días. Pero si está en un contenedor con un valor PreserveBonus de 2, solo se echarán a perder 2 tazones adicionales de estofado durante esos mismos tres días en el juego.

Posibles Mejoras

Estas son algunas ideas sobre posibles características que podrían mejorar el mod. No ha investigado si son posibles/prácticos de implementar.

Bloques de conservación de alimentos sin alimentación

Estos no requerirían energía.

Los que son solo contenedores especialmente construidos (por ejemplo, la caja fuerte para tartas) tendrían un PreserveBonus muy bajo y los que funcionan por convección (por ejemplo, el enfriador de ollas de barro) tendrían un PreserveBonus medio-bajo .

Los que funcionan por convección idealmente requerirían reponerse con un recurso (por ejemplo, agua o bolas de nieve), pero aún no sabe cómo hacerlo, o si es posible.

Mejoras en contenedores motorizados

En lugar de autoalimentarse perpetuamente con una batería, los contenedores alimentados (refrigeradores) deben utilizar el sistema de alimentación 7D2D. Todavía no sabe cómo/si esto podría implementarse.

También se podrían crear otros tipos de contenedores:

  • Enfriador de cerveza eléctrico/mini-nevera
  • Congelador eléctrico: PreserveBonus sería mayor que el deterioro del «Contenedor».
    • Si se implementa, establezca el deterioro mínimo en cero (aunque 0.1 está codificado en SphereII Core).

registro de cambios

El café ahora se echa a perder, al igual que la cerveza; IPA agregado que no (debe ser elaborado)

Descargar este mod

El tema del foro del mod está aquí .

Estamos muy agradecidos a: Khzmusik

Etiquetas: ,

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

ARTÍCULOS Y DESCARGAS MÁS RECIENTES