Skip to main content

Tener planos enumerados en raceTypes le permite a la IA saber qué se le permite construir, pero no sirve de mucho si en realidad no tienen un buen plano para construir. Para hacerlo, el juego busca en ShipBlueprintTemplates.yaml el diseño del plano especificado en raceTypes. Esta sección repasará lo que constituye un plano y cómo usarlo para diseñar barcos.

Comencemos con un ejemplo simple de un plano de barco. Este es un diseño simple para una fragata Alkari. Tiene todos los componentes para planos más complejos, pero es bastante fácil de entender:

– clave: design_frigate_alkari nombre: SHIP_DESIGN_FRIGATE casco: hull_fragate perfil: blitzer baseSystems: armadura: shipslot_armor drive: shipslot_drive computadora: shipslot_computer shield: shipslot_shield pointDefense: shipmodule: shipmodulesubtype_cannleload: cantidad de módulos: 2 bombas: tamaño verdadero Prioridad: 1 slotCount: 1 orientación: mods frontales : – modifier_continuous_fire_lasers – modifier_auto_fire – modifier_enveloping – modifier_heavy_mount specialSystems: maxSlots: 4 moduleList: – shipmodule_battle_pods – shipmodule_inertial_nullifier – shipmodule_inertial_stabilizer – shipmodule_hard_shield – shipmodule_hyperx_capacitors # Fallback Specials en orden de conveniencia para la carrera – shipmodule_engmented_ines

Como puede ver, el plano está dividido en varias secciones diferentes que definen los atributos básicos de la nave, qué armas lleva y qué sistemas especiales equipa. Yendo de arriba a abajo, esto es lo que significa todo esto:

– clave: design_frigate_alkari

La clave es lo que usa el juego para encontrar este plano. Tiene que ser único y tiene que estar incluido en la sección de plantillas BlueprintTemplates disponibles de la carrera de raceTypes.yaml para que el juego lo use. Tiendo a seguir el patrón usado aquí, pero puedes llamarlo como quieras.

nombre: SHIP_DESIGN_FRIGATE casco: hull_fragate perfil: blitzer

Estas líneas le dicen al juego cuál es el nombre del barco, qué tipo de casco usar y qué perfil de IA darle al barco en combate. Puedes escribir lo que quieras para el nombre, pero si quieres permitir que otros jugadores traduzcan el nombre a otros idiomas, mantén lo que está allí.

Hull le dice al juego qué atributos tiene el barco. Los tipos de casco se definen en ShipHullTypes.yaml, pero para nuestros propósitos, las opciones son:

casco_fragata
destructor_del_casco
casco_crucero
casco_acorazado
casco_titan
hull_doomstar

Perfil es lo mismo que establecer un perfil en el juego con el diseñador de planos. Esto solo le dice al juego cómo debe comportarse la nave en táctica. Si no desea ningún perfil, puede eliminar esta línea.

baseSystems: armadura: naveslot_armor unidad: naveslot_drive computadora: naveslot_computadora escudo: naveslot_escudo

La siguiente sección cubre qué sistemas básicos monta el barco. En su mayoría, esto debe dejarse solo a menos que desee ignorar uno de estos. Estos son nombres genéricos y el juego actualizará la tragamonedas a medida que haya mejores equipos disponibles. El juego los agrega a la nave antes de determinar el espacio disponible para las armas.

pointDefense: shipmodule: shipmodulesubtype_cannon cantidad: 2

Esta sección le dice al juego qué tipo y cuántas armas de defensa puntual poner en el barco. Es un número directo a diferencia de las ranuras para armas y se agrega a la nave antes que las armas.

bombPayload: shipmodule: shipmodulesubtype_bomb cantidad: 1

Esta sección le dice al juego qué tipo y cuántas bombas poner en el barco. También es un número directo agregado a la nave antes de las armas como la defensa puntual.

WeaponSlots: – slot: shipmodulesubtype_cannon priorityMods: true sizePriority: 1 slotCount: 1 fronting: front mods: – modifier_continuous_fire_lasers – modifier_auto_fire – modifier_enveloping – modifier_heavy_mount

WeaponSlots es la carne del diseño del barco. Así es como el juego determina qué armas poner en el barco y cuántas. Cada diseño puede tener tantas armas añadidas como quieras, pero el juego solo pondrá tantas armas en un barco como ranuras para armas tenga el barco. Cada definición de arma contiene múltiples propiedades:

– ranura: shipmodulesubtype_cannon

Determina el tipo de arma y puede ser un arma específica. Si se deja genérico, el juego actualizará la ranura a medida que haya nuevas armas disponibles.

PriorizarMods: verdadero

El valor puede ser verdadero o falso. Le dice al juego que use un arma más antigua que tenga las modificaciones deseadas disponibles en lugar de usar un arma más nueva sin modificaciones. Dependiendo del arma, esto puede resultar en diseños más débiles. UCP deshabilita este control a través de globals.yaml.

tamañoPrioridad: 1

Este valor lo usa el juego para determinar cuánto espacio asignar a una ranura de arma. En nuestro ejemplo, solo tenemos un arma, por lo que el valor no tiene efecto. WhatIsSol determinó que la fórmula utilizada para determinar cuánto espacio obtiene cada espacio es la siguiente:

(1 / (sumar todas las prioridades de tamaño)) * Prioridad de tamaño de arma = % de espacio asignado a la ranura

Veamos un ejemplo para ver cómo se desarrolla esto:
Primero, el juego agrega cualquier punto de defensa, bombas y especiales al barco. El espacio restante se usa para armas, digamos que quedan 50 espacios. En este ejemplo, tenemos dos armas. Uno con sizePriority: 1 y otro con sizePriority: 2.

Sumamos el total de Prioridad de tamaño de ambas armas que nos da 3 y dividimos uno por el resultado. Eso hace que cada “participación” valga el 33% del espacio disponible. Entonces, el arma uno obtiene el 33 %, mientras que el arma dos obtiene el 66 %, lo que da como resultado aproximadamente 16,5 espacios para el arma uno y 33 espacios para el arma dos. Luego intenta llenar cada ranura con tantas armas como quepan en el espacio.

número de ranuras: 1

Buggy y quitado con UCP.

frente: frente

Determina el arma que enfrenta el barco. Las opciones válidas son delantera, trasera, laterales, cualquiera. Dejar esto hará que las armas queden orientadas en cualquier dirección.

mods: – modifier_continuous_fire_lasers – modifier_auto_fire – modifier_enveloping – modifier_heavy_mount

Determina qué modificaciones quiere agregar la IA al arma. Si PriorityMods es verdadero, agregará la primera arma que coincida con todas las modificaciones deseadas. Las modificaciones disponibles para cada tipo de arma se definen en ShipModuleModTypes.yaml.

specialSystems: maxSlots: 4 moduleList: – shipmodule_battle_pods – shipmodule_inertial_nullifier – shipmodule_inertial_stabilizer – shipmodule_hard_shield – shipmodule_hyperx_capacitors # Especiales alternativos en orden de conveniencia para la carrera – shipmodueng_au

La última sección del plano determina qué sistemas especiales intentará montar la nave hasta el número indicado en maxSlots. maxSlots no puede ser mayor que la cantidad de espacios en un tipo de casco, pero puede ser menor. Las ofertas especiales se montan recorriendo la lista de arriba a abajo, omitiendo los artículos que no están disponibles. A medida que estén disponibles, el barco dejará caer los artículos más bajos en la lista que superen el límite de maxSlots. Se agregan especiales antes de asignar espacio a las armas.

Sigue leyendo: