{ "name": "Shirka v4.0.1-1b", "description": "Personalidad en Castellano para EDDI", "scripts": { "AFMU repairs": { "name": "AFMU repairs", "description": "Activado al reparar módulos utilizando la Unidad de automantenimiento (AFMU)", "enabled": true, "priority": 3, "responder": true, "script": "{event.item}\r\n\r\n{_ ****** BUSCA GENERO Y NUMERO DE event.item ****** _}\r\n\r\n{_ coge la primera palabra}\r\n{set itemobj to token(event.item, \" \",0)} \r\n\r\n{_ mira si es femenino}\r\n{if find(itemobj,\"a\",len(itemobj)-2)!=-1: {set o to \"a\"}\r\n|else: {set o to \"o\"}\r\n}\r\n\r\n{_ mira si es plural}\r\n{if find(itemobj,\"s\",len(itemobj)-1)!=-1: {set s to \"s\"}{set n to \"n\"}\r\n|else: {set s to \"\"}{set n to \"\"}\r\n}\r\n\r\n{_ ************************************************** _}\r\n\r\n\r\n{if event.repairedfully:\r\n totalmente reparad{o}{s}\r\n|else:\r\n reparada \r\n {Occasionally(2, cat(\r\n OneOf(\"al \", \"en un \"),\r\n Humanise(event.health * 100),\r\n \" porciento de su capacidad\"\r\n ))}\r\n}\r\n\r\n{Occasionally(2, \r\n cat(OneOf(\". \", \"y está{n}\"), \" List{o}{s} para su activación\"))}. \r\n{Occasionally(2,cat(OneOf(\"No olvide\",\"Recuerde\") \"activarl{o}\"))}", "defaultValue": "{event.item}\r\n\r\n{_ ****** BUSCA GENERO Y NUMERO DE event.item ****** _}\r\n\r\n{_ coge la primera palabra}\r\n{set itemobj to token(event.item, \" \",0)} \r\n\r\n{_ mira si es femenino}\r\n{if find(itemobj,\"a\",len(itemobj)-2)!=-1: {set o to \"a\"}\r\n|else: {set o to \"o\"}\r\n}\r\n\r\n{_ mira si es plural}\r\n{if find(itemobj,\"s\",len(itemobj)-1)!=-1: {set s to \"s\"}{set n to \"n\"}\r\n|else: {set s to \"\"}{set n to \"\"}\r\n}\r\n\r\n{_ ************************************************** _}\r\n\r\n\r\n{if event.repairedfully:\r\n totalmente reparad{o}{s}\r\n|else:\r\n partially repaired \r\n {Occasionally(2, cat(\r\n OneOf(\"al \", \"en un \"),\r\n Humanise(event.health * 100),\r\n \" porciento de su capacidad\"\r\n ))}\r\n}\r\n\r\n{Occasionally(2, \r\n cat(OneOf(\". \", \"y está{n}\"), \" List{o}{s} para su activación\"))}. \r\n{Occasionally(2,\"Recuerde activarl{o}\")}", "default": false }, "Asteroid cracked": { "name": "Asteroid cracked", "description": "Triggered when you break up a 'Motherlode' asteroid for mining", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Asteroid prospected": { "name": "Asteroid prospected", "description": "Triggered when using a prospecting drone", "enabled": true, "priority": 3, "responder": true, "script": "{set minimumPercent to 10} {_ The minimum percentage surface mineral concentration to report _}\r\n{set spokenCores to [\r\n \"Alexandrite\": false,\r\n \"Benitoite\": false,\r\n \"Grandidierite\": false,\r\n \"Low Temperature Diamond\": true,\r\n \"Monazite\": false,\r\n \"Musgravite\": false,\r\n \"Rhodplumsite\": false,\r\n \"Serendibite\": false,\r\n \"Void Opals\": true,\r\n]}\r\n{set spokenMinerals to [\r\n \"Bauxite\": false,\r\n \"Bertrandite\": false,\r\n \"Bromellite\": false,\r\n \"Cobalt\": false,\r\n \"Coltan\": false,\r\n \"Cryolite\": false,\r\n \"Gallite\": false,\r\n \"Gold\": false,\r\n \"Goslarite\": false,\r\n \"Hydrogen Peroxide\": false,\r\n \"Indite\": false,\r\n \"Jadeite\": false,\r\n \"Lepidolite\": false,\r\n \"Lithium Hydroxide\": false,\r\n \"Liquid oxygen\": false,\r\n \"Low Temperature Diamonds\": true,\r\n \"Methane Clathrate\": false,\r\n \"Methanol Monohydrate\": false,\r\n \"Moissanite\": false,\r\n \"Osmium\": false,\r\n \"Painite\": true,\r\n \"Platinum\": false,\r\n \"Palladium\": false,\r\n \"Praseodymium\": false,\r\n \"Pyrophyllite\": false,\r\n \"Rutile\": false,\r\n \"Samarium\": false,\r\n \"Silver\": false,\r\n \"Taaffeite\": false,\r\n \"Thorium\": false,\r\n \"Tritium\": true,\r\n \"Uraninite\": false,\r\n \"Water\": false,\r\n]}\r\n\r\n{if len(event.motherlode) > 0 && spokenCores[event.motherlode]:\r\n Veta-madre detectada: {event.motherlode}.\r\n}\r\n\r\n{set minerals to []}\r\n{for mineral in event.commodities:\r\n {if mineral.percentage > minimumPercent && spokenMinerals[mineral.commodity]:\r\n {set mineral_desc to: \r\n {round(mineral.percentage)} porciento de {mineral.commodity}\r\n }\r\n {set minerals to cat(minerals, [mineral_desc])}\r\n }\r\n}\r\n{if len(minerals) > 0:\r\n El asteroide contiene {List(minerals)}\r\n {if event.materialcontent = \"High\":\r\n y una alta concentración de materiales de ingeniería\r\n }.\r\n {if event.remaining < 100:\r\n {100 - event.remaining} porciento de agotarse.\r\n }\r\n}", "defaultValue": "{set minimumPercent to 10} {_ The minimum percentage surface mineral concentration to report _}\r\n{set spokenCores to [\r\n \"Alexandrite\": false,\r\n \"Benitoite\": false,\r\n \"Grandidierite\": false,\r\n \"Low Temperature Diamonds\": true,\r\n \"Monazite\": false,\r\n \"Musgravite\": false,\r\n \"Rhodplumsite\": false,\r\n \"Serendibite\": false,\r\n \"Void Opals\": true,\r\n]}\r\n{set spokenMinerals to [\r\n \"Bauxite\": false,\r\n \"Bertrandite\": false,\r\n \"Bromellite\": false,\r\n \"Cobalt\": false,\r\n \"Coltan\": false,\r\n \"Cryolite\": false,\r\n \"Gallite\": false,\r\n \"Gold\": false,\r\n \"Goslarite\": false,\r\n \"Hydrogen Peroxide\": false,\r\n \"Indite\": false,\r\n \"Jadeite\": false,\r\n \"Lepidolite\": false,\r\n \"Lithium Hydroxide\": false,\r\n \"Liquid oxygen\": false,\r\n \"Low Temperature Diamonds\": true,\r\n \"Methane Clathrate\": false,\r\n \"Methanol Monohydrate\": false,\r\n \"Moissanite\": false,\r\n \"Osmium\": false,\r\n \"Painite\": true,\r\n \"Platinum\": false,\r\n \"Palladium\": false,\r\n \"Praseodymium\": false,\r\n \"Pyrophyllite\": false,\r\n \"Rutile\": false,\r\n \"Samarium\": false,\r\n \"Silver\": false,\r\n \"Taaffeite\": false,\r\n \"Thorium\": false,\r\n \"Tritium\": true,\r\n \"Uraninite\": false,\r\n \"Water\": false,\r\n]}\r\n\r\n{if len(event.motherlode) > 0 && spokenCores[event.motherlode]:\r\n Motherlode detected: {event.motherlode}.\r\n}\r\n\r\n{set minerals to []}\r\n{for mineral in event.commodities:\r\n {if mineral.percentage > minimumPercent && spokenMinerals[mineral.commodity]:\r\n {set mineral_desc to: \r\n {round(mineral.percentage)} percent {mineral.commodity}\r\n }\r\n {set minerals to cat(minerals, [mineral_desc])}\r\n }\r\n}\r\n{if len(minerals) > 0:\r\n Asteroid contains {List(minerals)}\r\n {if event.materialcontent = \"High\":\r\n and a high concentration of engineering materials\r\n }.\r\n {if event.remaining < 100:\r\n It is {100 - event.remaining} percent depleted.\r\n }\r\n}", "default": false }, "Backpack": { "name": "Backpack", "description": "Lists the contents of your backpack when you disembark", "enabled": true, "priority": null, "responder": true, "script": null, "defaultValue": null, "default": true }, "Backpack changed": { "name": "Backpack changed", "description": "Triggered when there is any change to the contents of the suit backpack", "enabled": true, "priority": null, "responder": true, "script": null, "defaultValue": null, "default": true }, "Blueprint make report": { "name": "Blueprint make report", "description": "Informa de la cantidad que puedes hacer de un plano en particular", "enabled": true, "priority": null, "responder": false, "script": "{set blueprintname to state.blueprint}\r\n{set blueprintgrade to state.blueprintgrade}\r\n\r\n{if blueprintname && blueprintgrade:\r\n {_ Fetch full blueprint details }\r\n {set blueprint to BlueprintDetails(blueprintname, blueprintgrade)}\r\n\r\n {_ Context }\r\n {SetState('eddi_context_last_subject', 'blueprint')}\r\n {SetState('eddi_context_blueprint_name', blueprintname)}\r\n {SetState('eddi_context_blueprint_grade', blueprintgrade)}\r\n}\r\n\r\n{if !blueprint:\r\n {_ Fetch from context }\r\n {set blueprint to BlueprintDetails(state.eddi_context_blueprint_name, state.eddi_context_blueprint_grade)}\r\n}\r\n\r\n{_ Function to obtain current inventory of a material}\r\n{set _inventory(required) to:\r\n {for material in materials:\r\n {if material.material = required:\r\n {return material}\r\n }\r\n }\r\n}\r\n\r\n{set canbemade to 999}\r\n\r\n{if blueprint:\r\n {_ Find the smallest number of this blueprint that can be made }\r\n \r\n {set cur to 0}\r\n {while cur < len(blueprint.materials):\r\n {set inventory to _inventory(blueprint.materials[cur].material)}\r\n {if !inventory:\r\n {set canbemade to 0}\r\n |else:\r\n {if inventory.amount < canbemade:\r\n {set canbemade to inventory.amount}\r\n }\r\n }\r\n {set cur to cur + 1}\r\n }\r\n\r\n {if canbemade = 0:\r\n No podemos fabricar ningún {blueprintname} de grado {blueprintgrade}\r\n |elif canbemade = 1:\r\n Podemos fabricar una unidad de {blueprintname} grado {blueprintgrade}\r\n |else:\r\n Podemos fabricar {blueprintname} de {blueprintgrade} hasta {Humanise(canbemade)} veces.\r\n }\r\n \r\n|else:\r\n No dispongo de información para {blueprintname} con grado {blueprintgrade}\r\n}.\r\n", "defaultValue": "{set blueprintname to state.blueprint}\r\n{set blueprintgrade to state.blueprintgrade}\r\n\r\n{if blueprintname && blueprintgrade:\r\n {_ Fetch full blueprint details }\r\n {set blueprint to BlueprintDetails(blueprintname, blueprintgrade)}\r\n\r\n {_ Context }\r\n {SetState('eddi_context_last_subject', 'blueprint')}\r\n {SetState('eddi_context_blueprint_name', blueprintname)}\r\n {SetState('eddi_context_blueprint_grade', blueprintgrade)}\r\n}\r\n\r\n{if !blueprint:\r\n {_ Fetch from context }\r\n {set blueprint to BlueprintDetails(state.eddi_context_blueprint_name, state.eddi_context_blueprint_grade)}\r\n}\r\n\r\n{_ Function to obtain current inventory of a material}\r\n{set _inventory(required) to:\r\n {for material in materials:\r\n {if material.material = required:\r\n {return material}\r\n }\r\n }\r\n}\r\n\r\n{set canbemade to 999}\r\n\r\n{if blueprint:\r\n {_ Find the smallest number of this blueprint that can be made }\r\n \r\n {set cur to 0}\r\n {while cur < len(blueprint.materials):\r\n {set inventory to _inventory(blueprint.materials[cur].material)}\r\n {if !inventory:\r\n {set canbemade to 0}\r\n |else:\r\n {if inventory.amount < canbemade:\r\n {set canbemade to inventory.amount}\r\n }\r\n }\r\n {set cur to cur + 1}\r\n }\r\n\r\n {if canbemade = 0:\r\n No podemos fabricar ningún {blueprintname} de grado {blueprintgrade}\r\n |elif canbemade = 1:\r\n Podemos fabricar una unidad de {blueprintname} grado {blueprintgrade}\r\n |else:\r\n Podemos fabricar {blueprintname} de {blueprintgrade} hasta {Humanise(canbemade)} veces.\r\n }\r\n \r\n|else:\r\n No dispongo de información para {blueprintname} con grado {blueprintgrade}\r\n}.\r\n", "default": true }, "Blueprint material report": { "name": "Blueprint material report", "description": "Informa de los materiales requeridos de un plano", "enabled": true, "priority": null, "responder": false, "script": "{set blueprintname to state.blueprint}\r\n{set blueprintgrade to state.blueprintgrade}\r\n\r\n{if blueprintname && blueprintgrade:\r\n {_ Fetch full blueprint details _}\r\n {set blueprint to BlueprintDetails(blueprintname, blueprintgrade)}\r\n\r\n {_ Context _}\r\n {SetState('eddi_context_last_subject', 'blueprint')}\r\n {SetState('eddi_context_blueprint_name', blueprintname)}\r\n {SetState('eddi_context_blueprint_grade', blueprintgrade)}\r\n}\r\n\r\n{if blueprintname:\r\n {_ Fetch full blueprint details _}\r\n {set blueprint to BlueprintDetails(blueprintname, blueprintgrade)}\r\n\r\n {_ Context }\r\n {SetState('eddi_context_last_subject', 'blueprint')}\r\n {SetState('eddi_context_blueprint_name', blueprintname)}\r\n {SetState('eddi_context_blueprint_grade', blueprintgrade)}\r\n}\r\n\r\n{if !blueprint || !blueprintgrade:\r\n {_ Fetch from context _}\r\n {set blueprint to BlueprintDetails(state.eddi_context_blueprint_name, state.eddi_context_blueprint_grade)}\r\n}\r\n\r\n{if blueprint && blueprintgrade:\r\n {set materials to len(blueprint.materials)}\r\n {blueprintname} de grado {blueprintgrade} requiere\r\n {if materials = 1:\r\n {blueprint.materials[0].material}\r\n |elif materials = 2:\r\n {blueprint.materials[0].material} y {blueprint.materials[1].material}\r\n |else:\r\n {set cur to 0}\r\n {while cur < len(blueprint.materials):\r\n {if cur = 0:\r\n {blueprint.materials[cur].material}\r\n |elif cur < len(blueprint.materials) - 1:\r\n , {blueprint.materials[cur].material}\r\n |else:\r\n , y {blueprint.materials[cur].material}\r\n }\r\n {set cur to cur + 1}\r\n }\r\n }\r\n|else:\r\n No hay información disponible sobre los materiales necesarios para hacer {blueprintname} de grado {blueprintgrade}\r\n}.\n", "defaultValue": "{set blueprintname to state.blueprint}\r\n{set blueprintgrade to state.blueprintgrade}\r\n\r\n{if blueprintname && blueprintgrade:\r\n {_ Fetch full blueprint details _}\r\n {set blueprint to BlueprintDetails(blueprintname, blueprintgrade)}\r\n\r\n {_ Context _}\r\n {SetState('eddi_context_last_subject', 'blueprint')}\r\n {SetState('eddi_context_blueprint_name', blueprintname)}\r\n {SetState('eddi_context_blueprint_grade', blueprintgrade)}\r\n}\r\n\r\n{if blueprintname:\r\n {_ Fetch full blueprint details _}\r\n {set blueprint to BlueprintDetails(blueprintname, blueprintgrade)}\r\n\r\n {_ Context }\r\n {SetState('eddi_context_last_subject', 'blueprint')}\r\n {SetState('eddi_context_blueprint_name', blueprintname)}\r\n {SetState('eddi_context_blueprint_grade', blueprintgrade)}\r\n}\r\n\r\n{if !blueprint || !blueprintgrade:\r\n {_ Fetch from context _}\r\n {set blueprint to BlueprintDetails(state.eddi_context_blueprint_name, state.eddi_context_blueprint_grade)}\r\n}\r\n\r\n{if blueprint && blueprintgrade:\r\n {set materials to len(blueprint.materials)}\r\n {blueprintname} de grado {blueprintgrade} requiere\r\n {if materials = 1:\r\n {blueprint.materials[0].material}\r\n |elif materials = 2:\r\n {blueprint.materials[0].material} y {blueprint.materials[1].material}\r\n |else:\r\n {set cur to 0}\r\n {while cur < len(blueprint.materials):\r\n {if cur = 0:\r\n {blueprint.materials[cur].material}\r\n |elif cur < len(blueprint.materials) - 1:\r\n , {blueprint.materials[cur].material}\r\n |else:\r\n , y {blueprint.materials[cur].material}\r\n }\r\n {set cur to cur + 1}\r\n }\r\n }\r\n|else:\r\n No hay información disponible sobre los materiales necesarios para hacer {blueprintname} de grado {blueprintgrade}\r\n}.\n", "default": true }, "Bodies mapped": { "name": "Bodies mapped", "description": "Informa de todos los cuerpos mapeados hasta ahora en este sistema", "enabled": true, "priority": null, "responder": false, "script": "{_ Fetch from Context _}\r\n{set reportSystem to SystemDetails(state.eddi_context_system_name)}\r\n\r\n{_ Build a list of scanned bodies _}\r\n\r\n{set mappedList to []}\r\n{for body in reportSystem.bodies:\r\n {if body.mapped:\r\n {set mappedList to cat(mappedList, [P(body.shortname)])} \r\n }\r\n}\r\n\r\n{_ Begin speaking _}\r\n\r\n{if len(mappedList) > 0:\r\n {if len(mappedList) = 1: El cuerpo |else: Los cuerpos}\r\n {List(mappedList)}\r\n {Occasionally(2, \"ya\")}\r\n {if len(mappedList) = 1: ha |else: han }\r\n sido mapeado{if len(mappedList) > 1:s}.\r\n|else:\r\n Todavía no {OneOf(\"tienes mapeado\",\"has escaneado\")} ningún cuerpo en este sistema.\r\n}\r\n\r\n", "defaultValue": "{_ Fetch from Context _}\r\n{set reportSystem to SystemDetails(state.eddi_context_system_name)}\r\n\r\n{_ Crea una lista de cuerpos escaneados _}\r\n\r\n{set mappedList to []}\r\n\r\n{for body in reportSystem.bodies:\r\n {if body.mapped:\r\n {cat(mappedList, [body])} \r\n }\r\n}\r\n\r\n{_ Begin speaking _}\r\n\r\n{if len(mappedList) > 0:\r\n\r\n {if len(mappedList) = 1: El cuerpo |else: Los cuerpos}\r\n\r\n {set cur to 0}\r\n {while cur < len(mappedList):\r\n {mappedList[cur].shortname}\r\n {set cur to cur + 1}\r\n {if cur = len(mappedList) - 1: y\r\n |elif cur < len(mappedList) - 1:,\r\n }\r\n }\r\n\r\n ya ha{if len(mappedList) > 1:n} sido mapeado{if len(mappedList) > 1:s}.\r\n\r\n|else:\r\n Todavía no {OneOf(\"tienes mapeado\",\"has escaneado\")} ningún cuerpo en este sistema.\r\n}\r\n", "default": false }, "Bodies to map": { "name": "Bodies to map", "description": "Informa de todos los cuerpos no asignados en el sistema que vale la pena mapear", "enabled": true, "priority": null, "responder": false, "script": "{_ Preferences: _}\r\n\r\n{set reportTerraformables to true} {_ Reports all terraformable and terraformed bodies _}\r\n{set highValueThreshold to 80000} {_ The minimum threshold for estimated exploration value worth mapping _}\r\n{set reportPlanetTypes to [\r\n \"Mundo de amoníaco\": true,\r\n \"Mundo similar a la Tierra\": true,\r\n \"Gigante gaseoso con vida basada en el amoníaco\": false,\r\n \"Gigante gaseoso con vida basada en el agua\": false,\r\n \"Gigante gaseoso de Helio\": false,\r\n \"Gigante gaseoso rico en Helio\": false,\r\n \"Mundo de alto contenido metálico\": false,\r\n \"Cuerpo helado\": false,\r\n \"Cuerpo con alto contenido metálico\": false,\r\n \"Mundo helado rocoso\": false,\r\n \"Cuerpo rocoso\": false,\r\n \"Gigante gaseoso de Clase 1\": false,\r\n \"Gigante gaseoso de Clase 2\": false,\r\n \"Gigante gaseoso de Clase 3\": false,\r\n \"Gigante gaseoso de Clase 4\": false,\r\n \"Gigante gaseoso de Clase 5\": false,\r\n \"Gigante acuático\": false,\r\n \"Gigante acuático con vida\": false,\r\n \"Mundo acuático\": true,\r\n]}\r\n\r\n{_ Fetch from Context _}\r\n{set reportSystem to SystemDetails(state.eddi_context_system_name)}\r\n\r\n{_ Identify bodies worth mapping _}\r\n\r\n{set toMapList to []}\r\n{set mappedBodies to 0}\r\n{set totalBodies to 0}\r\n\r\n{for body in reportSystem.bodies:\r\n {set totalBodies to totalBodies + 1}\r\n {if body.mapped:\r\n {set mappedBodies to mappedBodies + 1}\r\n |else:\r\n {if body.bodyType.invariantName != \"Star\":\r\n {if body.terraformState.invariantName = \"Candidato para terraformación\" \r\n || body.terraformState.invariantName = \"Terraformado\":\r\n {if reportTerraformables:\r\n {if !toMapList[body.shortname]: \r\n {set toMapList to cat(toMapList, [body.shortname])}\r\n } \r\n }\r\n |elif reportPlanetTypes[body.planetClass.invariantName]:\r\n {if !toMapList[body.shortname]: \r\n {set toMapList to cat(toMapList, [body.shortname])}\r\n }\r\n |elif body.estimatedvalue > highValueThreshold:\r\n {if !toMapList[body.shortname]: \r\n {set toMapList to cat(toMapList, [body.shortname])}\r\n } \r\n }\r\n }\r\n }\r\n}\r\n\r\n{_ Begin speaking _}\r\n\r\n{if len(toMapList) > 0:\r\n\r\n \r\n {if len(toMapList) = 1: El cuerpo |else: Los cuerpos}\r\n\r\n {set cur to 0}\r\n {while cur < len(toMapList):\r\n {P(toMapList[cur])}\r\n {set cur to cur + 1}\r\n {if cur = len(toMapList) - 1: y\r\n |elif cur < len(toMapList) - 1:,\r\n }\r\n }\r\n\r\n {if len(toMapList) = 1: es |else: son}\r\n {if event.type = \"Body mapped\": {OneOf(\"además\")} }\r\n {if len(toMapList) = 1: un }\r\n {if len(toMapList) = 1: {OneOf(\"recomendado\", \"buen\")} |else: {OneOf(\"recomendados\", \"buenos\")}}\r\n {set candidates to:\r\n candidato{if len(toMapList) > 1:s}\r\n }\r\n {OneOf('{candidates} para mapear', '{candidates} para escanear')}.\r\n\r\n|elif mappedBodies > 0:\r\n\r\n {OneOf(\r\n \"Ya has mapeado todos los cuerpos {if mappedBodies < totalBodies: {OneOf(\"que valen la pena\", \"interesantes\")}}.\",\r\n \"Todos los cuerpos {if mappedBodies < totalBodies: {OneOf(\"que valen la pena\", \"interesantes\")}} {OneOf(\"han sido mapeados\", \"ya los tenemos mapeados\")}.\"\r\n )}\r\n}", "defaultValue": "{_ Preferences: _}\r\n\r\n{set reportTerraformables to true} {_ Reports all terraformable and terraformed bodies _}\r\n{set highValueThreshold to 80000} {_ The minimum threshold for estimated exploration value worth mapping _}\r\n{set reportPlanetTypes to [\r\n \"Mundo de amoníaco\": true,\r\n \"Mundo similar a la Tierra\": true,\r\n \"Gigante gaseoso con vida basada en el amoníaco\": false,\r\n \"Gigante gaseoso con vida basada en el agua\": false,\r\n \"Gigante gaseoso de Helio\": false,\r\n \"Gigante gaseoso rico en Helio\": false,\r\n \"Mundo de alto contenido metálico\": false,\r\n \"Cuerpo helado\": false,\r\n \"Cuerpo con alto contenido metálico\": false,\r\n \"Mundo helado rocoso\": false,\r\n \"Cuerpo rocoso\": false,\r\n \"Gigante gaseoso de Clase 1\": false,\r\n \"Gigante gaseoso de Clase 2\": false,\r\n \"Gigante gaseoso de Clase 3\": false,\r\n \"Gigante gaseoso de Clase 4\": false,\r\n \"Gigante gaseoso de Clase 5\": false,\r\n \"Gigante acuático\": false,\r\n \"Gigante acuático con vida\": false,\r\n \"Mundo acuático\": true,\r\n]}\r\n\r\n{_ Fetch from Context _}\r\n{set reportSystem to SystemDetails(state.eddi_context_system_name)}\r\n\r\n{_ Identify bodies worth mapping _}\r\n\r\n{set toMapList to []}\r\n{set mappedBodies to 0}\r\n{set totalBodies to 0}\r\n\r\n{for body in reportSystem.bodies:\r\n {set totalBodies to totalBodies + 1}\r\n {if body.mapped:\r\n {set mappedBodies to mappedBodies + 1}\r\n |else:\r\n {if body.bodyType.invariantName != \"Star\":\r\n {if body.terraformState.invariantName = \"Candidato para terraformación\" \r\n || body.terraformState.invariantName = \"Terraformado\":\r\n {if reportTerraformables:\r\n {if !toMapList[body.shortname]: \r\n {set toMapList to cat(toMapList, [body.shortname])}\r\n } \r\n }\r\n |elif reportPlanetTypes[body.planetClass.invariantName]:\r\n {if !toMapList[body.shortname]: \r\n {set toMapList to cat(toMapList, [body.shortname])}\r\n }\r\n |elif body.estimatedvalue > highValueThreshold:\r\n {if !toMapList[body.shortname]: \r\n {set toMapList to cat(toMapList, [body.shortname])}\r\n } \r\n }\r\n }\r\n }\r\n}\r\n\r\n{_ Begin speaking _}\r\n\r\n{if len(toMapList) > 0:\r\n\r\n \r\n {if len(toMapList) = 1: El cuerpo |else: Los cuerpos}\r\n\r\n {set cur to 0}\r\n {while cur < len(toMapList):\r\n {P(toMapList[cur])}\r\n {set cur to cur + 1}\r\n {if cur = len(toMapList) - 1: y\r\n |elif cur < len(toMapList) - 1:,\r\n }\r\n }\r\n\r\n {if len(toMapList) = 1: es |else: son}\r\n {if event.type = \"Body mapped\": {OneOf(\"además\")} }\r\n {if len(toMapList) = 1: un }\r\n {if len(toMapList) = 1: {OneOf(\"recomendado\", \"buen\")} |else: {OneOf(\"recomendados\", \"buenos\")}}\r\n {set candidates to:\r\n candidato{if len(toMapList) > 1:s}\r\n }\r\n {OneOf('{candidates} para mapear', '{candidates} para escanear')}.\r\n\r\n|elif mappedBodies > 0:\r\n\r\n {OneOf(\r\n \"Ya has mapeado todos los cuerpos {if mappedBodies < totalBodies: {OneOf(\\\"que valen la pena\\\", \\\"interesantes\\\")}}.\",\r\n \"Todos los cuerpos {OneOf( \\\"{if mappedBodies < totalBodies: que valen la pena}\\\", \\\"interesantes\\\" )} {OneOf( \\\"han sido mapeados.\\\", \\\"ya los tenemos mapeados.\\\" )}\"\r\n )}\r\n}", "default": false }, "Body atmosphere report": { "name": "Body atmosphere report", "description": "Informa de la atmósfera del cuerpo contextual", "enabled": true, "priority": null, "responder": false, "script": "{_ Preferences _}\r\n{set reportAtmoPressure to 1} {_ configúralo a 1 si quieres escuchar acerca de la presión atmosférica. _}\r\n\r\n{set reportAtmoTempScale to 1} {_ configúralo a 0 si quieres escuchar las temperaturas en Kelvin _}\r\n {_ configúralo a 1 si quieres escuchar las temperaturas en Celsius _}\r\n {_ configúralo a 2 si quieres escuchar las temperaturas en Fahrenheit _}\r\n {_ configúralo a 3 si no quieres escuchar las temperaturas de los cuerpos _}\r\n\r\n{_ Define functions for converting temperature scales _}\r\n{set ToCelsius(kelvin) to: {round(kelvin - 273, 0)}}\r\n{set ToFahrenheit(kelvin) to: {round((kelvin-273)*9/5 + 32 , 0)}}\r\n{set TempCalc(kelvin) to: \r\n {if reportAtmoTempScale = 0: {kelvin}}\r\n {if reportAtmoTempScale = 1: {ToCelsius(kelvin)}}\r\n {if reportAtmoTempScale = 2: {ToFahrenheit(kelvin)}}\r\n}\r\n\r\n{_ Name our temperature scale _}\r\n{if reportAtmoTempScale = 0: {set tempscale to: Kelvin}}\r\n{if reportAtmoTempScale = 1: {set tempscale to: grados centígrados}}\r\n{if reportAtmoTempScale = 2: {set tempscale to: grados Fahrenheit}}\r\n\r\n{_ Fetch from context }\r\n{if event: \r\n {set reportbody to event} \r\n}\r\n{if !event.name || event.name = \"\": \r\n {set reportbody to BodyDetails(state.eddi_context_body_name, state.eddi_context_body_system)}\r\n}\r\n{if !reportbody.name || reportbody.name = \"\": \r\n {set reportbody to BodyDetails(state.eddi_context_body_name)}\r\n}\r\n\r\n{if !reportbody.name || reportbody.name = \"\":\r\n Lo siento, no me queda claro a que cuerpo estelar se refiere\r\n\r\n|else:\r\n\r\n {if find(reportbody.planettype, \"Gigante\") >= 0:\r\n {if find(reportbody.planettype, \"Clase\") >= 0: \r\n {set sudarsky to Occasionally(3, \"Sud-dar-eskai\")}\r\n }\r\n {set planetdesc to OneOf(\"Los gigantes gaseosos {sudarsky} como este, tienen\", \"Este gigante gaseoso {sudarsky} tiene \")}\r\n {if find(reportbody.planettype, \"Clase 5\") >= 0:\r\n {planetdesc} \r\n {if reportAtmoTempScale < 3: \r\n {set tempmin to: {TempCalc(1373)}}\r\n temperaturas por encima de {Humanise(tempmin)} {tempscale}, {OneOf(\"y\", \"con\", \"formando\")}\r\n }\r\n una densa capa de nubes de {OneOf(\"hierro y silicatos en forma de vapor\", \"vapores de hierro y silicatos\")}.\r\n |elif find(reportbody.planettype, \"Clase 4\") >= 0:\r\n {planetdesc} \r\n {if reportAtmoTempScale < 3: \r\n {set tempmin to: {TempCalc(354)}}\r\n {set tempmax to: {TempCalc(903)}}\r\n temperaturas {OneOf(\"de\", \"que oscilan\")} entre {Humanise(tempmin)} y {Humanise(tempmax)} {tempscale}, {OneOf(\"y\", \"con\", \"formando\")}\r\n }\r\n una densa capa de nubes de {OneOf(\"vapores metálicos alcalinos\", \"metales alcalinos en forma de vapor\")}. \r\n |elif find(reportbody.planettype, \"Clase 3\") >= 0:\r\n {planetdesc} \r\n {if reportAtmoTempScale < 3: \r\n {set tempmin to: {TempCalc(251)}}\r\n {set tempmax to: {TempCalc(353)}}\r\n temperaturas de superficie {OneOf(\"de\", \"que oscilan\")} entre {Humanise(tempmin)} y {Humanise(tempmax)} {tempscale},\r\n }\r\n una temperatura a la que {OneOf(\"ningún elemento gaseoso forma nubes\", \"no hay químicos adecuados para que en la atmósfera se pueda sustentar una capa de nubes\", \"a la atmósfera no se sostiene ninguna capa persistente de nubes\")}.\r\n\r\n |elif find(reportbody.planettype, \"Clase 2\") >= 0:\r\n {planetdesc} \r\n {if reportAtmoTempScale < 3: \r\n {set tempmin to: {TempCalc(154)}}\r\n {set tempmax to: {TempCalc(250)}}\r\n temperaturas de superficie {OneOf(\"de\", \"que oscilan\")} entre los\r\n \r\n {if find(tempmin, \"-\") >= 0: {tempmin*-1}\r\n |else: {Humanise(tempmin)}\r\n } y\r\n\r\n {if find(tempmax, \"-\") >= 0: {tempmax*-1} {tempscale} bajocero}\r\n |else: {Humanise(tempmax)}{tempscale}\r\n }, \r\n \r\n {OneOf(\"con\", \"formando\")} una densa capa de nubes de vapor de agua. \r\n\r\n |elif find(reportbody.planettype, \"Clase 1\") >= 0:\r\n {planetdesc} \r\n {if reportAtmoTempScale < 3: \r\n {set tempmin to: {TempCalc(153)}}\r\n {set tempmax to: {TempCalc(83)}}\r\n temperaturas de superficie de \r\n \r\n {if find(tempmax, \"-\") >= 0: {tempmax*-1} {tempscale} bajocero}\r\n |else: {Humanise(tempmax)}{tempscale}\r\n } \r\n {Occasionally(2, OneOf(\" o menos\", \"como máximo\"))}, {OneOf(\"y\", \"con\", \"formando\")}\r\n \r\n una densa capa de nubes de amoníaco. \r\n }\r\n\r\n |elif reportbody.atmosphere = \"Sin atmósfera\" || !reportbody.atmosphere:\r\n {Occasionally(4, OneOf(\"No hay atmósfera.\", \"está carente de cualquier tipo de atmósfera.\", \"los años han limpiado cualquier rastro de atmósfera.\"))}\r\n\r\n {if reportbody.temperature && reportAtmoTempScale < 3:\r\n Las temperaturas de superficie se mueven en los\r\n {set temp to: {TempCalc(reportbody.temperature)}}\r\n \r\n {if find(temp, \"-\")>=0: {temp*-1} {tempscale} bajocero}}\r\n {if find(temp, \"-\")=-1: {temp} {tempscale}}\r\n .\r\n\r\n |elif reportbody.pressure: \r\n {if reportbody.pressure < 0.1:\r\n {set pressdesc to OneOf(\"casi inapreciable\", \"extremadamente delgada\")}\r\n |elif reportbody.pressure < 0.25:\r\n {set pressdesc to \"muy delgada\"}\r\n |elif reportbody.pressure < 0.5:\r\n {set pressdesc to \"delgada\"}\r\n |elif reportbody.pressure < 2:\r\n {set pressdesc to \"afable\"}\r\n |elif reportbody.pressure < 10:\r\n {set pressdesc to \"amplia\"}\r\n |elif reportbody.pressure < 50:\r\n {set pressdesc to OneOf(\"densa\", \"muy amplia\")}\r\n |elif reportbody.pressure < 100:\r\n {set pressdesc to OneOf(\"muy densa\", \"extremadamente amplia\")}\r\n |elif reportbody.pressure >= 100:\r\n {set pressdesc to OneOf(\"aplastante\", \"extremadamente densa\")}\r\n }\r\n {if find(reportbody.atmosphere, \"Rico\") >= 0:\r\n {set element to token(reportbody.atmosphere, \" \", \"2\")}\r\n {set desc to OneOf(\"Se ha detectado una \", \"Hay una \", \"Los sensores indican de la presencia de una\")}\r\n {OneOf(\"{desc} {pressdesc} atmósfera {reportbody.atmosphere}\", \"La atmósfera de este planeta es {pressdesc} y {reportbody.atmosphere}\", \"La {pressdesc} atmósfera de este planeta es rica en {element}\")}\r\n\r\n |elif find(atmo, \"vapor\") >= 0:\r\n {OneOf(\"Su {pressdesc} atmósfera es de {reportbody.atmosphere}\", \"Su atmósfera es {pressdesc} y está compuesta de {reportbody.atmosphere}\", \"Su {pressdesc} atmósfera se compone de {reportbody.atmosphere}\")}\r\n\r\n |else:\r\n {set mostly to OneOf(\"principalmente\", \"sobre todo\", \"esencialmente\")}\r\n {OneOf(\"La atmósfera de este planeta es {pressdesc}, y su composición es {mostly}\", \"Este planeta tiene una {pressdesc} atmósfera compuesta\")} \r\n de {reportbody.atmosphere},\r\n }\r\n { if reportAtmoPressure > 0:\r\n con una presión en superficie de {round(reportbody.pressure,1)} atmósferas terrestres,\r\n }\r\n {if reportbody.temperature && reportAtmoTempScale < 3:\r\n {set temp to: {TempCalc(reportbody.temperature)}}\r\n y una media de temperatura en superficie de \r\n {if find(temp, \"-\")>=0: {temp*-1} {tempscale} bajocero}}\r\n {if find(temp, \"-\")=-1: {temp} {tempscale}}\r\n }\r\n}.\r\n", "defaultValue": "{_ Preferences _}\r\n{set reportAtmoPressure to 1} {_ configúralo a 1 si quieres escuchar acerca de la presión atmosférica. _}\r\n\r\n{set reportAtmoTempScale to 1} {_ configúralo a 0 si quieres escuchar las temperaturas en Kelvin _}\r\n {_ configúralo a 1 si quieres escuchar las temperaturas en Celsius _}\r\n {_ configúralo a 2 si quieres escuchar las temperaturas en Fahrenheit _}\r\n {_ configúralo a 3 si no quieres escuchar las temperaturas de los cuerpos _}\r\n\r\n{_ Define functions for converting temperature scales _}\r\n{set ToCelsius(kelvin) to: {round(kelvin - 273, 0)}}\r\n{set ToFahrenheit(kelvin) to: {round((kelvin-273)*9/5 + 32 , 0)}}\r\n{set TempCalc(kelvin) to: \r\n {if reportAtmoTempScale = 0: {kelvin}}\r\n {if reportAtmoTempScale = 1: {ToCelsius(kelvin)}}\r\n {if reportAtmoTempScale = 2: {ToFahrenheit(kelvin)}}\r\n}\r\n\r\n{_ Name our temperature scale _}\r\n{if reportAtmoTempScale = 0: {set tempscale to: Kelvin}}\r\n{if reportAtmoTempScale = 1: {set tempscale to: grados centígrados}}\r\n{if reportAtmoTempScale = 2: {set tempscale to: grados Fahrenheit}}\r\n\r\n{_ Fetch from context }\r\n{if event: \r\n {set reportbody to event} \r\n}\r\n{if !event.name || event.name = \"\": \r\n {set reportbody to BodyDetails(state.eddi_context_body_name, state.eddi_context_body_system)}\r\n}\r\n{if !reportbody.name || reportbody.name = \"\": \r\n {set reportbody to BodyDetails(state.eddi_context_body_name)}\r\n}\r\n\r\n{if !reportbody.name || reportbody.name = \"\":\r\n Lo siento, no me queda claro a que cuerpo estelar se refiere\r\n\r\n|else:\r\n\r\n {if find(reportbody.planettype, \"Gigante\") >= 0:\r\n {if find(reportbody.planettype, \"Clase\") >= 0: \r\n {set sudarsky to Occasionally(3, \"Sud-dar-eskai\")}\r\n }\r\n {set planetdesc to OneOf(\"Los gigantes gaseosos {sudarsky} como este, tienen\", \"Este gigante gaseoso {sudarsky} tiene \")}\r\n {if find(reportbody.planettype, \"Clase 5\") >= 0:\r\n {planetdesc} \r\n {if reportAtmoTempScale < 3: \r\n {set tempmin to: {TempCalc(1373)}}\r\n temperaturas por encima de {Humanise(tempmin)} {tempscale}, {OneOf(\"y\", \"con\", \"formando\")}\r\n }\r\n una densa capa de nubes de {OneOf(\"hierro y silicatos en forma de vapor\", \"vapores de hierro y silicatos\")}.\r\n |elif find(reportbody.planettype, \"Clase 4\") >= 0:\r\n {planetdesc} \r\n {if reportAtmoTempScale < 3: \r\n {set tempmin to: {TempCalc(354)}}\r\n {set tempmax to: {TempCalc(903)}}\r\n temperaturas {OneOf(\"de\", \"que oscilan\")} entre {Humanise(tempmin)} y {Humanise(tempmax)} {tempscale}, {OneOf(\"y\", \"con\", \"formando\")}\r\n }\r\n una densa capa de nubes de {OneOf(\"vapores metálicos alcalinos\", \"metales alcalinos en forma de vapor\")}. \r\n |elif find(reportbody.planettype, \"Clase 3\") >= 0:\r\n {planetdesc} \r\n {if reportAtmoTempScale < 3: \r\n {set tempmin to: {TempCalc(251)}}\r\n {set tempmax to: {TempCalc(353)}}\r\n temperaturas de superficie {OneOf(\"de\", \"que oscilan\")} entre {Humanise(tempmin)} y {Humanise(tempmax)} {tempscale},\r\n }\r\n una temperatura a la que {OneOf(\"ningún elemento gaseoso forma nubes\", \"no hay químicos adecuados para que en la atmósfera se pueda sustentar una capa de nubes\", \"a la atmósfera no se sostiene ninguna capa persistente de nubes\")}.\r\n\r\n |elif find(reportbody.planettype, \"Clase 2\") >= 0:\r\n {planetdesc} \r\n {if reportAtmoTempScale < 3: \r\n {set tempmin to: {TempCalc(154)}}\r\n {set tempmax to: {TempCalc(250)}}\r\n temperaturas de superficie {OneOf(\"de\", \"que oscilan\")} entre los\r\n \r\n {if find(tempmin, \"-\") >= 0: {tempmin*-1}\r\n |else: {Humanise(tempmin)}\r\n } y\r\n\r\n {if find(tempmax, \"-\") >= 0: {tempmax*-1} {tempscale} bajocero}\r\n |else: {Humanise(tempmax)}{tempscale}\r\n }, \r\n \r\n {OneOf(\"con\", \"formando\")} una densa capa de nubes de vapor de agua. \r\n\r\n |elif find(reportbody.planettype, \"Clase 1\") >= 0:\r\n {planetdesc} \r\n {if reportAtmoTempScale < 3: \r\n {set tempmin to: {TempCalc(153)}}\r\n {set tempmax to: {TempCalc(83)}}\r\n temperaturas de superficie de \r\n \r\n {if find(tempmax, \"-\") >= 0: {tempmax*-1} {tempscale} bajocero}\r\n |else: {Humanise(tempmax)}{tempscale}\r\n } \r\n {Occasionally(2, OneOf(\" o menos\", \"como máximo\"))}, {OneOf(\"y\", \"con\", \"formando\")}\r\n \r\n una densa capa de nubes de amoníaco. \r\n }\r\n\r\n |elif reportbody.atmosphere = \"Sin atmósfera\" || !reportbody.atmosphere:\r\n {Occasionally(4, OneOf(\"No hay atmósfera.\", \"está carente de cualquier tipo de atmósfera.\", \"los años han limpiado cualquier rastro de atmósfera.\"))}\r\n\r\n {if reportbody.temperature && reportAtmoTempScale < 3:\r\n Las temperaturas de superficie se mueven en los\r\n {set temp to: {TempCalc(reportbody.temperature)}}\r\n \r\n {if find(temp, \"-\")>=0: {temp*-1} {tempscale} bajocero}}\r\n {if find(temp, \"-\")=-1: {temp} {tempscale}}\r\n .\r\n\r\n |elif reportbody.pressure: \r\n {if reportbody.pressure < 0.1:\r\n {set pressdesc to OneOf(\"casi inapreciable\", \"extremadamente delgada\")}\r\n |elif reportbody.pressure < 0.25:\r\n {set pressdesc to \"muy delgada\"}\r\n |elif reportbody.pressure < 0.5:\r\n {set pressdesc to \"delgada\"}\r\n |elif reportbody.pressure < 2:\r\n {set pressdesc to \"afable\"}\r\n |elif reportbody.pressure < 10:\r\n {set pressdesc to \"amplia\"}\r\n |elif reportbody.pressure < 50:\r\n {set pressdesc to OneOf(\"densa\", \"muy amplia\")}\r\n |elif reportbody.pressure < 100:\r\n {set pressdesc to OneOf(\"muy densa\", \"extremadamente amplia\")}\r\n |elif reportbody.pressure >= 100:\r\n {set pressdesc to OneOf(\"aplastante\", \"extremadamente densa\")}\r\n }\r\n {if find(reportbody.atmosphere, \"Rico\") >= 0:\r\n {set element to token(reportbody.atmosphere, \" \", \"2\")}\r\n {set desc to OneOf(\"Se ha detectado una \", \"Hay una \", \"Los sensores indican de la presencia de una\")}\r\n {OneOf(\"{desc} {pressdesc} atmósfera {reportbody.atmosphere}\", \"La atmósfera de este planeta es {pressdesc} y {reportbody.atmosphere}\", \"La {pressdesc} atmósfera de este planeta es rica en {element}\")}\r\n\r\n |elif find(atmo, \"vapor\") >= 0:\r\n {OneOf(\"Su {pressdesc} atmósfera es de {reportbody.atmosphere}\", \"Su atmósfera es {pressdesc} y está compuesta de {reportbody.atmosphere}\", \"Su {pressdesc} atmósfera se compone de {reportbody.atmosphere}\")}\r\n\r\n |else:\r\n {set mostly to OneOf(\"principalmente\", \"sobre todo\", \"esencialmente\")}\r\n {OneOf(\"La atmósfera de este planeta es {pressdesc}, y su composición es {mostly}\", \"Este planeta tiene una {pressdesc} atmósfera compuesta\")} \r\n de {reportbody.atmosphere},\r\n }\r\n { if reportAtmoPressure > 0:\r\n con una presión en superficie de {round(reportbody.pressure,1)} atmósferas terrestres,\r\n }\r\n {if reportbody.temperature && reportAtmoTempScale < 3:\r\n {set temp to: {TempCalc(reportbody.temperature)}}\r\n y una media de temperatura en superficie de \r\n {if find(temp, \"-\")>=0: {temp*-1} {tempscale} bajocero}}\r\n {if find(temp, \"-\")=-1: {temp} {tempscale}}\r\n }\r\n}.\r\n", "default": true }, "Body mapped": { "name": "Body mapped", "description": "Se activa después de mapear un cuerpo con el EAAS", "enabled": true, "priority": 5, "responder": true, "script": "{set bodyReport to 2} {_ 0 = No body report, 1 = Summary body report, 2 = Body report _}\r\n{set recommendOtherMapping to 1} {_ 0 or 1. If 1, recommends other bodies from the `Bodies to map` script _}\r\n\r\n{_ Context}\r\n{SetState('eddi_context_last_action', 'scan')}\r\n{SetState('eddi_context_last_subject', 'body')}\r\n{SetState('eddi_context_body_system', system.name)}\r\n{SetState('eddi_context_body_name', event.name)}\r\n\r\n{_ Process the event _}\r\n\r\n{if ship.Role.edname = \"Exploration\" || ship.Role.edname = \"Multipurpose\":\r\n\r\n {Pause(3000)}\r\n\r\n {OneOf(\"Mapeado\", \"Mapeo\")} {Occasionally(2, \"de superficie\")}\r\n {Occasionally(2, \"del cuerpo estelar {P(event.name)}\")}\r\n {OneOf(\"finalizado\",\"completado\")}.\r\n\r\n {if event.probesused <= event.efficiencytarget:\r\n Bono de eficiencia {OneOf(\"concedido\", \"garantizado\")}.\r\n }\r\n\r\n {Pause(500)}\r\n {if bodyReport = 2:\r\n {F(\"Body report\")}\r\n |elif bodyReport = 1:\r\n {F(\"Body report summary\")}\r\n }\r\n\r\n {if recommendOtherMapping: \r\n {Pause(1500)}\r\n {F(\"Bodies to map\")}\r\n }\r\n}", "defaultValue": "{set bodyReport to 2} {_ 0 = No body report, 1 = Summary body report, 2 = Body report _}\r\n{set recommendOtherMapping to 1} {_ 0 or 1. If 1, recommends other bodies from the `Bodies to map` script _}\r\n\r\n{_ Context}\r\n{SetState('eddi_context_last_action', 'scan')}\r\n{SetState('eddi_context_last_subject', 'body')}\r\n{SetState('eddi_context_body_system', system.name)}\r\n{SetState('eddi_context_body_name', event.name)}\r\n\r\n{_ Process the event _}\r\n\r\n{if ship.Role.edname = \"Exploration\" || ship.Role.edname = \"Multipurpose\":\r\n\r\n {Pause(3000)}\r\n\r\n {OneOf(\"Mapeado\", \"Mapeo\")} {Occasionally(2, \"de superficie\")}\r\n {Occasionally(2, \"del cuerpo estelar {P(event.name)}\")}\r\n {OneOf(\"finalizado\",\"completado\")}.\r\n\r\n {if event.probesused <= event.efficiencytarget:\r\n Bono de eficiencia {OneOf(\"concedido\", \"garantizado\")}.\r\n }\r\n\r\n {Pause(500)}\r\n {if bodyReport = 2:\r\n {F(\"Body report\")}\r\n |elif bodyReport = 1:\r\n {F(\"Body report summary\")}\r\n }\r\n\r\n {if recommendOtherMapping: \r\n {Pause(1500)}\r\n {F(\"Bodies to map\")}\r\n }\r\n}", "default": true }, "Body materials report": { "name": "Body materials report", "description": "Informa de los materiales disponibles en el cuerpo objetivo", "enabled": true, "priority": null, "responder": false, "script": "{_ Preferences _}\r\n{set reportMats to 1} {_ Set to 0 if you want to hear about materials below your minimum inventory level _}\r\n {_ Set to 1 if you want to hear about materials below your desired inventory level _}\r\n {_ Set to 2 if you want to hear about all materials irrespective of inventory levels _}\r\n\r\n{set reportMatConc to 1} {_ Set to 0 if you only want to hear about great material concentrations _}\r\n {_ Set to 1 if you want to hear about good and great material concentrations _}\r\n {_ Set to 2 if you want to hear about all material concentrations _}\r\n\r\n{set reportMatPercent to 1} {_ Set to 0 if you do not want to hear about material percentages _}\r\n {_ Set to 1 if you only want to hear about great material percentages _}\r\n {_ Set to 2 if you want to hear about good and great material percentages _}\r\n {_ Set to 3 if you want to hear about all material percentages _}\r\n\r\n{_ Fetch from context _}\r\n{set reportbody to BodyDetails(state.eddi_context_body_name, state.eddi_context_body_system)}\r\n{if !reportbody: \r\n {set reportbody to BodyDetails(state.eddi_context_body_name)}\r\n}\r\n\r\n{if !reportbody.name || reportbody.name = \"\":\r\n {_ If it's still not possible to get the body name... _}\r\n {Occasionally(2,\"Lo siento. \")}\r\n {OneOf(\"Hay interferencias en el sistema electrónico, y no consigo resultados óptimos en el escaneo de este cuerpo estelar\",\r\n \"No consigo datos claros del escáner\",\r\n \"Los datos del escáner se han corrompido antes de su recepción\",\r\n \"Parece que hay interferencias solares que no nos permiten el correcto escaneo de este planeta\"\r\n )}\r\n\r\n|else:\r\n\r\n {_ Define a function to obtain a material from inventory}\r\n {set _inventory(required) to:\r\n {for material in materials:\r\n {if material.material = required:\r\n {return material}\r\n }\r\n }\r\n }\r\n\r\n {if reportbody.landable:\r\n\r\n {set goodmaterials to []}\r\n {set greatmaterials to []}\r\n {set othermaterials to []}\r\n\r\n {for material in reportbody.materials:\r\n {set inventoryMat to _inventory(material.material)}\r\n {if (reportMats >= 0 && inventoryMat.amount < inventoryMat.minimum && inventoryMat.minimum > 0)\r\n || (reportMats >= 1 && inventoryMat.amount < inventoryMat.desired && inventoryMat.desired > 0)\r\n || (reportMats >= 2):\r\n {if material.percentage >= material.definition.greatpctbody && reportMatConc > -1:\r\n {set greatmaterials to cat(greatmaterials, [material])}\r\n |elif material.percentage >= material.definition.goodpctbody && reportMatConc > 0:\r\n {set goodmaterials to cat(goodmaterials, [material])}\r\n |elif reportMatConc > 1:\r\n {set othermaterials to cat(othermaterials, [material])}\r\n }\r\n }\r\n }\r\n\r\n {_ Start speaking _}\r\n\r\n {if len(goodmaterials) > 0 || len(greatmaterials) > 0 || len(othermaterials) > 0:\r\n {if reportbody.name = reportbody.shortname:\r\n {P(reportbody.shortname)}\r\n |else:\r\n {OneOf(\"Este planeta\", cat(\"El cuerpo \", P(reportbody.shortname),\",\"))} \r\n }\r\n {OneOf(\"contiene\", \"tiene\")}\r\n }\r\n\r\n {if len(greatmaterials) > 0:\r\n {OneOf(\"muy altos niveles\", \"muchísimos depósitos\")} de\r\n {set cur to 0}\r\n {set length to len(greatmaterials) - 1}\r\n {while cur < len(greatmaterials):\r\n {P(greatmaterials[cur].definition.name)}\r\n {if reportMatPercent > 0: en un {round(greatmaterials[cur].percentage, 1)}% }\r\n {set cur to cur + 1}\r\n {if cur = length: y\r\n |elif cur < length:,\r\n }\r\n }\r\n \r\n {if len(goodmaterials) > 0 && len(othermaterials) = 0:\r\n y\r\n |elif len(goodmaterials) > 0 || len(othermaterials) > 0:\r\n ,\r\n }\r\n }\r\n\r\n {if len(goodmaterials) > 0:\r\n {OneOf(\"niveles elevados\", \"multitud de depósitos\")} de\r\n {set cur to 0}\r\n {set length to len(goodmaterials) - 1}\r\n {while cur < len(goodmaterials):\r\n {P(goodmaterials[cur].definition.name)}\r\n {if reportMatPercent > 1: en un {round(goodmaterials[cur].percentage, 1)}% }\r\n {set cur to cur + 1}\r\n {if cur = length: y\r\n |elif cur < length:,\r\n }\r\n }\r\n }\r\n \r\n {if (len(greatmaterials) > 0 || len(goodmaterials) > 0) && len(othermaterials) > 0:\r\n y\r\n }\r\n \r\n {if len(othermaterials) > 0:\r\n {OneOf(\"niveles moderados\", \"una cantidad modesta de depósitos\")} de\r\n {set cur to 0}\r\n {set length to len(othermaterials) - 1}\r\n {while cur < len(othermaterials):\r\n {P(othermaterials[cur].definition.name)}\r\n {if reportMatPercent > 2: en un {round(othermaterials[cur].percentage, 0)}% }\r\n {set cur to cur + 1}\r\n {if cur = length: y\r\n |elif cur < length:,\r\n }\r\n }\r\n }\r\n \r\n {if len(goodmaterials) > 0 || len(greatmaterials) > 0 || len(othermaterials) > 0:\r\n .\r\n }\r\n }\r\n}", "defaultValue": "{_ Preferences _}\r\n{set reportMats to 2} {_ Pon 0 si quieres escuchar los materiales que tienes por debajo de tu nivel mínimo de inventario _}\r\n {_ Pon 1 si quieres escuchar los materiales que tienes por debajo del nivel deseado _}\r\n {_ Pon 2 si quieres escuchar todos los materiales del cuerpo estelar _}\r\n\r\n{set reportMatConc to 2} {_ Pon 0 si no quieres escuchar los % de los materiales _}\r\n {_ Pon 1 si sólo deseas escuchar los % altos de materiales _}\r\n {_ Pon 2 si quieres escuchar desde los % buenos de materiales _}\r\n {_ Pon 3 si quieres escuchar todos los % de materiales _}\r\n\r\n\r\n{_ Fetch from context }\r\n{if event:\r\n {set reportbody to event} \r\n}\r\n{if !event.name || event.name = \"\": \r\n {set reportbody to BodyDetails(state.eddi_context_body_name, state.eddi_context_body_system)}\r\n}\r\n{if !reportbody.name || reportbody.name = \"\": \r\n {set reportbody to BodyDetails(state.eddi_context_body_name)}\r\n}\r\n\r\n{if !reportbody.name || reportbody.name = \"\":\r\n {_ si todavía no se puede obtener el nombre del cuerpo... _}\r\n {Occasionally(2,\"Lo siento. \")}\r\n {OneOf(\"Hay interferencias en el sistema electrónico, y no consigo resultados óptimos en el escaneo de este cuerpo estelar\",\r\n \"No consigo datos claros del escáner\",\r\n \"Los datos del escáner se han corrompido antes de su recepción\",\r\n \"Parece que hay interferencias solares que no nos permiten el correcto escaneo de este planeta\"\r\n )}\r\n\r\n\r\n|else:\r\n {_ Define a function to obtain a material from inventory}\r\n {set _inventory(required) to:\r\n {for material in materials:\r\n {if material.material = required:\r\n {return material}\r\n }\r\n }\r\n }\r\n\r\n {if reportbody.landable:\r\n\r\n {set goodmaterials to []}\r\n {set greatmaterials to []}\r\n {set allmaterials to []}\r\n {for material in reportbody.materials:\r\n {set inventoryMat to _inventory(material.material)}\r\n {if (reportMats >= 0 && inventoryMat.amount < inventoryMat.minimum && inventoryMat.minimum > 0)\r\n || (reportMats >= 1 && inventoryMat.amount < inventoryMat.desired && inventoryMat.desired > 0)\r\n || (reportMats >= 2):\r\n {if material.percentage >= material.definition.greatpctbody:\r\n {set greatmaterials to cat(greatmaterials, [material])}\r\n |elif material.percentage >= material.definition.goodpctbody:\r\n {set goodmaterials to cat(goodmaterials, [material])}\r\n |else:\r\n {set allmaterials to cat(allmaterials, [material])}\r\n }\r\n }\r\n }\r\n\r\n {if len(goodmaterials) > 0 || len(greatmaterials) > 0 || len(allmaterials) > 0:\r\n\r\n Este cuerpo\r\n }\r\n contiene\r\n\r\n {if len(greatmaterials) > 0:\r\n niveles muy altos \r\n {set cur to 0}\r\n {set length to len(greatmaterials) - 1} de\r\n {while cur < len(greatmaterials):\r\n {P(greatmaterials[cur].definition.name)}\r\n {if reportMatConc > 0: en un {round(greatmaterials[cur].percentage, 1)}% }\r\n {set cur to cur + 1}\r\n {if cur = length: y de\r\n |elif cur < length:,\r\n }\r\n }\r\n }\r\n\r\n {if len(goodmaterials) > 0:\r\n {if len(greatmaterials) > 0: y }\r\n altos niveles\r\n {set cur to 0}\r\n {set length to len(goodmaterials) - 1} de\r\n {while cur < len(goodmaterials):\r\n {P(goodmaterials[cur].definition.name)}\r\n {if reportMatConc > 1: en un {round(goodmaterials[cur].percentage, 1)}% }\r\n {set cur to cur + 1}\r\n {if cur = length: y de\r\n |elif cur < length:,\r\n }\r\n }\r\n }\r\n\r\n {if len(greatmaterials) > 0 || len(goodmaterials) > 0:. }\r\n\r\n {if len(allmaterials) > 0 && reportMats >= 2:\r\n {if len(greatmaterials) > 0 || len(goodmaterials) > 0:\r\n Además, {OneOf(\"puede que encuentre\",\"el escaner también detecta\")} algo\r\n |else:\r\n niveles considerables \r\n }\r\n {set cur to 0}\r\n {set length to len(allmaterials) - 1} de \r\n {while cur < len(allmaterials):\r\n {P(allmaterials[cur].definition.name)}\r\n {if reportMatConc > 2: en un {round(allmaterials[cur].percentage, 1)}% }\r\n {set cur to cur + 1}\r\n {if cur = length: y de\r\n |elif cur < length:,\r\n }\r\n }.\r\n }\r\n }\r\n }", "default": false }, "Body Name Tidy": { "name": "Body Name Tidy", "description": "Function to shorten body names, and pronounce body name letters (TEST)", "enabled": true, "priority": null, "responder": false, "script": "{_ Body Name Tidy _}\r\n{_ Tidy up body names _}\r\n{_ If the body name contains the system name, it is removed _}\r\n{_ Adds Star, Planet, or Moon depending on body location within the system _}\r\n{_ Corrects pronunciation of letters in body names. No more 'hour' for 'h' with some TTS voices _}\r\n{_ Returns 'body' and 'body_type 'for use in other scripts _}\r\n\r\n\r\n{if len(reportbody.shortname) = 0:\r\n {if event:\r\n {if !event.name:\r\n {_ For events that have different variables _}\r\n {set reportbody to BodyDetails(event.body, event.system)}\r\n |else:\r\n {set reportbody to BodyDetails(event.name, system.name)}\r\n }\r\n |elif reportbody.stellarclass:\r\n {set reportbody to BodyDetails(state.eddi_context_star_name, state.eddi_context_star_system)}\r\n |else:\r\n {set reportbody to BodyDetails(state.eddi_context_body_name, state.eddi_context_system_system)}\r\n }\r\n}\r\n\r\n{set body to reportbody.name}\r\n{set system to reportbody.systemname}\r\n\r\n{if body = system:\r\n {set body to \"The primary star\"}\r\n {set body_type to \"Star\"}\r\n\r\n|elif find(body, system) > -1:\r\n\r\n {set parent to split(body, \" \")}\r\n {set p_body to parent[len(parent)-2]}\r\n {set parent to join(except(parent, [len(parent)-1:\"\", len(parent)-1:\"\"]), \" \")}\r\n\r\n {if (parent != system) && len(p_body) = 1:\r\n {set parent to BodyDetails(parent, system).type}\r\n }\r\n\r\n {_ Remove system name from the body name _}\r\n {if reportbody.shortname:\r\n {set body to reportbody.shortname}\r\n |else:\r\n {set body to slice(body, len(system)+1)}\r\n }\r\n\r\n {set type to reportbody.type}\r\n {set body_type to type}\r\n\r\n {_ Remove Ring designation if it's a ring _}\r\n {if find(body, \"Ring\") > -1:\r\n {set body to split(body, \" \")}\r\n {set body to join(except(body, [len(body)-1:\"\", len(body)-2:\"\"]), \" \")}\r\n }\r\n\r\n {_ Replacing spaces with dashes makes all letters spoken as alphabetic letters _}\r\n {set body to ucase(join(split(body, \" \"), \"-\"))}\r\n\r\n {if find(body, \"+\") > -1:\r\n {_ For scans that list two planets. Probably redundant with the new scanning. _}\r\n {set body to List(split(body, \"+\"))}\r\n {set body_type to \"Planets\"}\r\n |elif type = \"Planet\" && (parent = \"Planet\" || ord(slice(body, len(body)-1)) > 64):\r\n {set body_type to \"Moon\"}\r\n }\r\n\r\n {set body to cat(body_type, \"-\", body)}\r\n}\r\n", "defaultValue": "{_ Body Name Tidy _}\r\n{_ Tidy up body names _}\r\n{_ If the body name contains the system name, it is removed _}\r\n{_ Adds Star, Planet, or Moon depending on body location within the system _}\r\n{_ Corrects pronunciation of letters in body names. No more 'hour' for 'h' with some TTS voices _}\r\n{_ Returns 'body' and 'body_type 'for use in other scripts _}\r\n\r\n\r\n{if len(reportbody.shortname) = 0:\r\n {if event:\r\n {if !event.name:\r\n {_ For events that have different variables _}\r\n {set reportbody to BodyDetails(event.body, event.system)}\r\n |else:\r\n {set reportbody to BodyDetails(event.name, system.name)}\r\n }\r\n |elif reportbody.stellarclass:\r\n {set reportbody to BodyDetails(state.eddi_context_star_name, state.eddi_context_star_system)}\r\n |else:\r\n {set reportbody to BodyDetails(state.eddi_context_body_name, state.eddi_context_system_system)}\r\n }\r\n}\r\n\r\n{set body to reportbody.name}\r\n{set system to reportbody.systemname}\r\n\r\n{if body = system:\r\n {set body to \"The primary star\"}\r\n {set body_type to \"Star\"}\r\n\r\n|elif find(body, system) > -1:\r\n\r\n {set parent to split(body, \" \")}\r\n {set p_body to parent[len(parent)-2]}\r\n {set parent to join(except(parent, [len(parent)-1:\"\", len(parent)-1:\"\"]), \" \")}\r\n\r\n {if (parent != system) && len(p_body) = 1:\r\n {set parent to BodyDetails(parent, system).type}\r\n }\r\n\r\n {_ Remove system name from the body name _}\r\n {if reportbody.shortname:\r\n {set body to reportbody.shortname}\r\n |else:\r\n {set body to slice(body, len(system)+1)}\r\n }\r\n\r\n {set type to reportbody.type}\r\n {set body_type to type}\r\n\r\n {_ Remove Ring designation if it's a ring _}\r\n {if find(body, \"Ring\") > -1:\r\n {set body to split(body, \" \")}\r\n {set body to join(except(body, [len(body)-1:\"\", len(body)-2:\"\"]), \" \")}\r\n }\r\n\r\n {_ Replacing spaces with dashes makes all letters spoken as alphabetic letters _}\r\n {set body to ucase(join(split(body, \" \"), \"-\"))}\r\n\r\n {if find(body, \"+\") > -1:\r\n {_ For scans that list two planets. Probably redundant with the new scanning. _}\r\n {set body to List(split(body, \"+\"))}\r\n {set body_type to \"Planets\"}\r\n |elif type = \"Planet\" && (parent = \"Planet\" || ord(slice(body, len(body)-1)) > 64):\r\n {set body_type to \"Moon\"}\r\n }\r\n\r\n {set body to cat(body_type, \"-\", body)}\r\n}\r\n", "default": true }, "Body report": { "name": "Body report", "description": "Informa sobre el contenido del cuerpo estelar", "enabled": true, "priority": null, "responder": false, "script": "{_ Preferences _}\r\n{set reportGravity to 1} {_ Set to 0 if you don't want to hear about the body's gravity. _} \r\n{set reportTerraformState to 1} {_ Set to 0 if you don't want to hear about the terraform state of the body. _}\r\n{set reportRings to 1} {_ Set to 0 if you don't want to hear about the body's rings. _}\r\n{set reportRotation to 1} {_ Set to 1 if you want to hear about the body's rotation. _}\r\n{set reportVolcanism to 1} {_ Set to 0 if you don't want to hear about the body's volcanism. _}\r\n{set reportAtmosphere to 1} {_ Set to 0 if you don't want to hear about the body's atmosphere. _}\r\n{set reportMaterials to 1} {_ Set to 0 if you don't want to hear about the body's materials. _}\r\n{set reportScanValue to 1} {_ Set to 1 if you want to hear about the body's estimated value. _}\r\n\r\n{_ Fetch from context }\r\n{if event: \r\n {set reportbody to event} \r\n}\r\n{if !event.name || event.name = \"\": \r\n {set reportbody to BodyDetails(state.eddi_context_body_name, state.eddi_context_body_system)}\r\n}\r\n{if !reportbody.name || reportbody.name = \"\": \r\n {set reportbody to BodyDetails(state.eddi_context_body_name)}\r\n}\n{if !reportbody.name || reportbody.name = \"\":\n No consigo entender a que cuerpo estelar se refiere\r\n\r\n|elif reportbody.planettype = \"Ninguno\":\r\n Esto no es ningún planeta, Comandante\r\n\n|else:\n El {if reportbody.shortname != reportbody.name: { OneOf(\"cuerpo\", \"cuerpo estelar\", \"objeto\")} }\r\n {reportbody.shortname}, es un {reportbody.planettype}\r\n\r\n{_ F(\"Body Name Tidy\") _} {_ Cuando consiga que funcione se substituiría por el nombre del cuerpo. _}\r\n\n {if reportbody.gravity < 0.5:\n de baja gravedad\n |elif reportbody.gravity <2:\n de media gravedad\n |elif reportbody.gravity <4:\n de alta gravedad\n |else:\n de extrema gravedad\n }\r\n\r\n {if len(reportbody.rings) = 1: \n {OneOf(\"con anillo de asteroides\",\"y anillado\")}\r\n \r\n |elif len(reportbody.rings) > 1:\r\n con {len(reportbody.rings)} anillos de asteroides\n },\n\n {if reportbody.terraformstate = \"No terraformable\": \n\r\n |else {reportbody.terraformstate}\n },\n\n {if type(reportbody.landable) != \"void\": \n {Ocasionally(2,\"que es\")}\n \r\n {if reportbody.landable:\n adecuado\n |else:\n inadecuado\n }\n para aterrizar\n }\n .\n\n\n\n {if reportbody.landable :\n Tiene un período de rotación\n {if reportbody.rotationalperiod < -20.0:\n retrógrado bajo\n |elif reportbody.rotationalperiod < -0.5:\n retrógrado\n |elif reportbody.rotationalperiod < 0:\n retrógrado alto\n |elif reportbody.rotationalperiod <= 0.5:\n alto\n |elif reportbody.rotationalperiod > 20.0:\n bajo\n }\n de \r\n {if reportbody.rotationalperiod < 1: {round(24 * (reportbody.rotationalperiod))} horas\n |else: {round(reportbody.rotationalperiod)} día{if round(reportbody.rotationalperiod) != 1:s} y {round(24 * ((reportbody.rotationalperiod) - round(reportbody.rotationalperiod)))} horas\r\n } terrestres,\r\n\r\n {if reportbody.tidallylocked = true:\n con {OneOf(\"acoplamiento de marea\",\"rotación sincrónica\")}\n }.\r\n\r\n\r\n{if len(allmaterials) != \"\": {F(\"Body materials report\")}\r\n\r\n}}\r\n\r\n {if reportVolcanism: {F(\"Body volcanism report\")} }\r\n {if reportAtmosphere: {F(\"Body atmosphere report\")} }\r\n {if reportMaterial: {F(\"Body materials report\")} }\r\n {if reportScanValue: {F(\"Report last scan value\")} }\r\n\r\n}\r\n{SetState('scanned_yet', reportbody.name)}", "defaultValue": "{_ Preferences _}\r\n{set reportGravity to 1} {_ Set to 0 if you don't want to hear about the body's gravity. _} \r\n{set reportTerraformState to 1} {_ Set to 0 if you don't want to hear about the terraform state of the body. _}\r\n{set reportRings to 1} {_ Set to 0 if you don't want to hear about the body's rings. _}\r\n{set reportRotation to 1} {_ Set to 1 if you want to hear about the body's rotation. _}\r\n{set reportVolcanism to 1} {_ Set to 0 if you don't want to hear about the body's volcanism. _}\r\n{set reportAtmosphere to 1} {_ Set to 0 if you don't want to hear about the body's atmosphere. _}\r\n{set reportMaterials to 1} {_ Set to 0 if you don't want to hear about the body's materials. _}\r\n{set reportScanValue to 1} {_ Set to 1 if you want to hear about the body's estimated value. _}\r\n\r\n{_ Fetch from context }\r\n{if event: \r\n {set reportbody to event} \r\n}\r\n{if !event.name || event.name = \"\": \r\n {set reportbody to BodyDetails(state.eddi_context_body_name, state.eddi_context_body_system)}\r\n}\r\n{if !reportbody.name || reportbody.name = \"\": \r\n {set reportbody to BodyDetails(state.eddi_context_body_name)}\r\n}\n{if !reportbody.name || reportbody.name = \"\":\n No consigo entender a que cuerpo estelar se refiere\r\n\r\n|elif reportbody.planettype = \"Ninguno\":\r\n Esto no es ningún planeta, Comandante\r\n\n|else:\n El {if reportbody.shortname != reportbody.name: { OneOf(\"cuerpo\", \"cuerpo estelar\", \"objeto\")} }\r\n {reportbody.shortname}, es un {reportbody.planettype}\r\n\r\n{_ F(\"Body Name Tidy\") _} {_ Cuando consiga que funcione se substituiría por el nombre del cuerpo. _}\r\n\n {if reportbody.gravity < 0.5:\n de baja gravedad\n |elif reportbody.gravity <2:\n de media gravedad\n |elif reportbody.gravity <4:\n de alta gravedad\n |else:\n de extrema gravedad\n }\r\n\r\n {if len(reportbody.rings) = 1: \n {OneOf(\"con anillo de asteroides\",\"y anillado\")}\r\n \r\n |elif len(reportbody.rings) > 1:\r\n con {len(reportbody.rings)} anillos de asteroides\n },\n\n {if reportbody.terraformstate = \"No terraformable\": \n\r\n |else {reportbody.terraformstate}\n },\n\n {if type(reportbody.landable) != \"void\": \n {Ocasionally(2,\"que es\")}\n \r\n {if reportbody.landable:\n adecuado\n |else:\n inadecuado\n }\n para aterrizar\n }\n .\n\n\n\n {if reportbody.landable :\n Tiene un período de rotación\n {if reportbody.rotationalperiod < -20.0:\n retrógrado bajo\n |elif reportbody.rotationalperiod < -0.5:\n retrógrado\n |elif reportbody.rotationalperiod < 0:\n retrógrado alto\n |elif reportbody.rotationalperiod <= 0.5:\n alto\n |elif reportbody.rotationalperiod > 20.0:\n bajo\n }\n de \r\n {if reportbody.rotationalperiod < 1: {round(24 * (reportbody.rotationalperiod))} horas\n |else: {round(reportbody.rotationalperiod)} día{if round(reportbody.rotationalperiod) != 1:s} y {round(24 * ((reportbody.rotationalperiod) - round(reportbody.rotationalperiod)))} horas\r\n } terrestres,\r\n\r\n {if reportbody.tidallylocked = true:\n con {OneOf(\"acoplamiento de marea\",\"rotación sincrónica\")}\n }.\r\n\r\n\r\n{if len(allmaterials) != \"\": {F(\"Body materials report\")}\r\n\r\n}}\r\n\r\n {if reportVolcanism: {F(\"Body volcanism report\")} }\r\n {if reportAtmosphere: {F(\"Body atmosphere report\")} }\r\n {if reportMaterial: {F(\"Body materials report\")} }\r\n {if reportScanValue: {F(\"Report last scan value\")} }\r\n\r\n}\r\n{SetState('scanned_yet', reportbody.name)}", "default": true }, "Body report summary": { "name": "Body report summary", "description": "Función para informar sobre detalles resumidos del cuerpo contextual", "enabled": true, "priority": null, "responder": false, "script": "{_ Preferences _}\r\n\r\n{set reportTerraformables to 1} {_ Reports terraformable and terraformed bodies _}\r\n{set reportPlanetTypes to 1} {_ Reports Earth-like and water worlds _}\r\n{set reportMass to 1} {_ Reports notable masses (relative to Earth's) _}\r\n{set reportRadius to 1} {_ Reports notable radii (in kilometers) _}\r\n{set reportDensity to 1} {_ Reports notable densities (in kilograms per cubic meter) _}\r\n{set reportGravity to 1} {_ Reports notable gravity (in G's) for landable bodies _}\r\n{set reportTemperature to 1} {_ Reports notable temperatures (in Kelvin) _}\r\n{set reportMaterials to 1} {_ Reports materials per preferences in the `Body materials` script. _}\r\n{set reportLandableVolcanism to 1} {_ Reports volcanism on landable worlds _}\r\n{set reportRings to 1} {_ Reports ring details _}\r\n{set reportInterestingOrbits to 1} {_ Reports notable orbital characteristics _}\r\n{set reportRapidRotation to 1} {_ Reports very fast rotating bodies _}\r\n\r\n{set reportAtmoTempScale to 1} {_ configúralo a 0 si quieres escuchar las temperaturas en Kelvin _}\r\n {_ configúralo a 1 si quieres escuchar las temperaturas en Celsius _}\r\n\r\n{_ temp conversion _}\r\n{if reportAtmoTempScale = 0: {set tempnum to: {Humanise(reportbody.temperature)}}}\r\n{if reportAtmoTempScale = 1: {set tempnum to: {Humanise(reportbody.temperature - 273,15)}}}\r\n\r\n{_ Name our temperature scale _}\r\n{if reportAtmoTempScale = 0: {set tempscale to: Kelvin}}\r\n{if reportAtmoTempScale = 1: {set tempscale to: grados centígrados}}\r\n\r\n\r\n\r\n{_ Fetch from context _}\r\n{set reportbody to BodyDetails(state.eddi_context_body_name, state.eddi_context_body_system)}\r\n{if !reportbody: \r\n {set reportbody to BodyDetails(state.eddi_context_body_name)}\r\n}\r\n\r\n{_ Begin processing _}\r\n\r\n{set notables to []}\r\n\r\n{if reportInterestingOrbits:\r\n\r\n {set orbitNotables to []}\r\n\r\n {if reportbody.eccentricityprobability > 99.9:\r\n {set orbitNotables to cat(orbitNotables, [cat(\"increiblemente \", OneOf(\"elíptico\", \"ovalado\", \"alargado\"))])}\r\n |elif reportbody.eccentricityprobability > 99:\r\n {set orbitNotables to cat(orbitNotables, [cat(\"extremadamente \", OneOf(\"elíptico\", \"ovalado\", \"alargado\"))])}\r\n |elif reportbody.eccentricityprobability > 97:\r\n {set orbitNotables to cat(orbitNotables, [cat(\"inusualmente \", OneOf(\"elíptico\", \"ovalado\", \"alargado\"))])}\r\n }\r\n\r\n {if reportbody.inclinationprobability > 99.9:\r\n {set orbitNotables to cat(orbitNotables, [cat(\"increiblemente inclinada\")])}\r\n |elif reportbody.inclinationprobability > 99:\r\n {set orbitNotables to cat(orbitNotables, [cat(\"extremadamente inclinada\")])}\r\n |elif reportbody.inclinationprobability > 97:\r\n {set orbitNotables to cat(orbitNotables, [cat(\"inusualmente inclinada\")])}\r\n }\r\n\r\n {if reportbody.orbitalperiod < 0: {set retrograde to cat(\" \", \"retrógrado\", \" \")} }\r\n {if reportbody.orbitalperiodprobability < 0.1:\r\n {set orbitNotables to cat(orbitNotables, [cat(\"increiblemente rápido\", retrograde)])}\r\n |elif reportbody.orbitalperiodprobability < 1:\r\n {set orbitNotables to cat(orbitNotables, [cat(\"extremadamente rápido\", retrograde)])}\r\n |elif reportbody.orbitalperiodprobability < 3:\r\n {set orbitNotables to cat(orbitNotables, [cat(\"inusualmente rápido\", retrograde)])}\r\n }\r\n\r\n {if len(orbitNotables) > 0:\r\n {if StartsWithVowel(orbitNotables[0]): {set a to \"una\"} |else: {set a to \"una\"} }\r\n {set cur to 0}\r\n {set length to len(orbitNotables) - 1}\r\n \r\n {while cur < len(orbitNotables):\r\n {set orbitdescription to cat(orbitdescription, orbitNotables[cur])}\r\n {set cur to cur + 1}\r\n {if cur = length: \r\n {set orbitdescription to cat(orbitdescription, \" y \")}\r\n |elif cur < length:\r\n {set orbitdescription to cat(orbitdescription, \", \")}\r\n }\r\n }\r\n {set notables to cat(notables, [cat(a, \" \", \"órbita\" , \" \", orbitdescription)])}\r\n }\r\n}\r\n\r\n{if reportbody.rotationalperiod < 0: {set retrograde to cat(\" \", \"retrógrado\", \" \")} }\r\n{if reportRapidRotation:\r\n {if !retrograde && reportbody.rotationalperiodprobability < 0.1:\r\n {set notables to cat(notables, [cat(\"un período de rotación increíblemente corto de \", Humanise(reportbody.rotationalperiod), \" días\")])}\r\n |elif !retrograde && reportbody.rotationalperiodprobability < 1:\r\n {set notables to cat(notables, [cat(\"un período de rotación extremadamente corto de \", Humanise(reportbody.rotationalperiod), \" días\")])}\r\n |elif !retrograde && reportbody.rotationalperiodprobability < 3:\r\n {set notables to cat(notables, [cat(\"un período de rotación inusualmente corto de \", Humanise(reportbody.rotationalperiod), \" días\")])}\r\n }\r\n}\r\n\r\n{if reportMass:\r\n {if reportbody.massprobability < 0.1:\r\n {set notables to cat(notables, [cat(\"una masa increíblemente baja de \", Humanise(reportbody.earthmass), \" veces la de la Tierra\")])}\r\n |elif reportbody.massprobability < 1:\r\n {set notables to cat(notables, [cat(\"una masa extremadamente baja de \", Humanise(reportbody.earthmass), \" veces la de la Tierra\")])}\r\n |elif reportbody.massprobability < 3:\r\n {set notables to cat(notables, [cat(\"una masa inusualmente baja de \", Humanise(reportbody.earthmass), \" veces la de la Tierra\")])}\r\n |elif reportbody.massprobability > 99.9:\r\n {set notables to cat(notables, [cat(\"una masa increíblemente alta de \", Humanise(reportbody.earthmass), \" veces la de la Tierra\")])}\r\n |elif reportbody.massprobability > 99:\r\n {set notables to cat(notables, [cat(\"una masa extremadamente alta de \", Humanise(reportbody.earthmass), \" veces la de la Tierra\")])}\r\n |elif reportbody.massprobability > 97:\r\n {set notables to cat(notables, [cat(\"una masa inusualmente alta de \", Humanise(reportbody.earthmass), \" veces la de la Tierra\")])}\r\n }\r\n}\r\n\r\n{if reportRadius:\r\n {if reportbody.radiusprobability < 0.1:\r\n {set notables to cat(notables, [cat(\"un radio increíblemente bajo de \", Humanise(reportbody.radius), \" kilómetros\")])}\r\n |elif reportbody.radiusprobability < 1:\r\n {set notables to cat(notables, [cat(\"un radio extremadamente bajo de \", Humanise(reportbody.radius), \" kilómetros\")])}\r\n |elif reportbody.radiusprobability < 3:\r\n {set notables to cat(notables, [cat(\"un radio inusualmente bajo de \", Humanise(reportbody.radius), \" kilómetros\")])}\r\n |elif reportbody.radiusprobability > 99.9:\r\n {set notables to cat(notables, [cat(\"un radio extremadamente alto de \", Humanise(reportbody.radius), \" kilómetros\")])}\r\n |elif reportbody.radiusprobability > 99:\r\n {set notables to cat(notables, [cat(\"un radio increíblemente largo de \", Humanise(reportbody.radius), \" kilómetros\")])}\r\n |elif reportbody.radiusprobability > 97:\r\n {set notables to cat(notables, [cat(\"un radio inusualmente grande de \", Humanise(reportbody.radius), \" kilómetros\")])}\r\n }\r\n}\r\n\r\n{if reportTemperature:\r\n {if reportbody.tempprobability < 0.1:\r\n {set notables to cat(notables, [cat(\"una temperatura superficial increíblemente baja de \", tempnum, tempscale)])}\r\n |elif reportbody.tempprobability < 1:\r\n {set notables to cat(notables, [cat(\"una temperatura superficial extremadamente baja de \", tempnum, tempscale)])}\r\n |elif reportbody.tempprobability < 3:\r\n {set notables to cat(notables, [cat(\"una temperatura superficial inusualmente baja de \", tempnum, tempscale)])}\r\n |elif reportbody.tempprobability > 99.9:\r\n {set notables to cat(notables, [cat(\"una temperatura superficial extremadamente alta de \", tempnum, tempscale)])}\r\n |elif reportbody.tempprobability > 99:\r\n {set notables to cat(notables, [cat(\"una temperatura superficial increiblemente alta de \", tempnum, tempscale)])}\r\n |elif reportbody.tempprobability > 97:\r\n {set notables to cat(notables, [cat(\"una temperatura superficial inusualmente alta de \", tempnum, tempscale)])}\r\n }\r\n}\r\n\r\n{if reportGravity && reportbody.landable:\r\n {if reportbody.gravityprobability < 0.1:\r\n {set notables to cat(notables, [cat(\"una gravedad increíblemente baja de \", Humanise(reportbody.gravity), \" veces la de la tierra\")])}\r\n |elif reportbody.gravityprobability < 1:\r\n {set notables to cat(notables, [cat(\"una gravedad extremadamente baja de \", Humanise(reportbody.gravity), \" veces la de la tierra\")])}\r\n |elif reportbody.gravityprobability < 3:\r\n {set notables to cat(notables, [cat(\"una gravedad inusualmente baja de \", Humanise(reportbody.gravity), \" veces la de la tierra\")])}\r\n |elif reportbody.gravityprobability > 99.9:\r\n {set notables to cat(notables, [cat(\"una gravedad increíblemente alta de \", Humanise(reportbody.gravity), \" veces la de la tierra\")])}\r\n |elif reportbody.gravityprobability > 99:\r\n {set notables to cat(notables, [cat(\"una gravedad extremadamente alta de \", Humanise(reportbody.gravity), \" veces la de la tierra\")])}\r\n |elif reportbody.gravityprobability > 97:\r\n {set notables to cat(notables, [cat(\"una gravedad inusualmente alta de \", Humanise(reportbody.gravity), \" veces la de la tierra\")])}\r\n }\r\n}\r\n\r\n\r\n{if reportDensity:\r\n {if reportbody.densityprobability < 0.1:\r\n {set notables to cat(notables, [cat(\"una densidad increíblemente baja \", Humanise(reportbody.density), \" kilogramos por metro cúbico\")])}\r\n |elif reportbody.densityprobability < 1:\r\n {set notables to cat(notables, [cat(\"una densidad extremadamente baja \", Humanise(reportbody.density), \" kilogramos por metro cúbico\")])}\r\n |elif reportbody.densityprobability < 3:\r\n {set notables to cat(notables, [cat(\"una densidad inusualmente baja \", Humanise(reportbody.density), \" kilogramos por metro cúbico\")])}\r\n |elif reportbody.densityprobability > 99.9:\r\n {set notables to cat(notables, [cat(\"una densidad increíblemente alta \", Humanise(reportbody.density), \" kilogramos por metro cúbico\")])}\r\n |elif reportbody.densityprobability > 99:\r\n {set notables to cat(notables, [cat(\"una densidad extremadamente alta \", Humanise(reportbody.density), \" kilogramos por metro cúbico\")])}\r\n |elif reportbody.densityprobability > 97:\r\n {set notables to cat(notables, [cat(\"una densidad inusualmente alta \", Humanise(reportbody.density), \" kilogramos por metro cúbico\")])}\r\n }\r\n}\r\n\r\n{if reportVolcanism:\r\n {if reportbody.volcanism && reportbody.landable:\r\n {set notables to cat(notables, [cat(OneOf(\"volcánica\", \"tectónica\"), \"actividad\")])}\r\n }\r\n}\r\n\r\n{if reportRings:\r\n {if reportbody.rings:\r\n {set ringcompositions to []}\r\n {set cur to 0}\r\n {for ring in reportbody.rings:\r\n {if find(ring.name, \"Anillo\") > -1:\r\n {if find(ringcompositions, ring.composition) = -1:\r\n {set ringcompositions to cat(ringcompositions, [cat(ring.composition)])}\r\n }\r\n }\r\n {set cur to cur + 1}\r\n }\r\n {set cur to 0}\r\n {set length to len(ringcompositions) - 1}\r\n {while cur < len(ringcompositions):\r\n {set ringsdescription to cat(ringsdescription, ringcompositions[cur])}\r\n {set cur to cur + 1}\r\n {if cur = length: \r\n {set ringsdescription to cat(ringsdescription, \" y \")}\r\n |elif cur < length:\r\n {set ringsdecription to cat(ringsdescription, \", \")}\r\n }\r\n }\r\n {if ringsdescription:\r\n {if len(ringcompositions) = 1:\r\n {if StartsWithVowel(reportbody.reserves): \r\n {set a to \"un \"} \r\n |else: \r\n {set a to \"un \"}\r\n }\r\n {set rings to \"anillo\"}\r\n |else:\r\n {set rings to \"anillos\"} \r\n }\r\n {if reportbody.reserveLevel.invariantName != \"Ninguno\": \r\n {set reserves to reportbody.reserves}\r\n }\r\n {set notables to cat(notables, [cat(a, \" \", reserves, \" \", ringsdescription, \" \", rings)])}\r\n }\r\n }\r\n}\r\n\r\n{if reportTerraformables:\r\n {if reportbody.terraformState.invariantName = \"Candidato para terraformación\":\r\n {set notables to cat(notables, [OneOf(\"potencial de terraformación\", \"condiciones terraformables\")])}\r\n |elif reportbody.terraformState.invariantName = \"Terraformed\":\r\n {set notables to cat(notables, [\"condiciones terraformadas\"])}\r\n }\r\n}\r\n\r\n{if reportPlanetTypes:\r\n {if reportbody.planetClass.invariantName = \"Mundo similar a la Tierra\":\r\n {set notables to cat(notables, [\"Mundo similar a la Tierra\"])}\r\n |elif reportbody.planetClass.invariantName = \"Mundo acuático\":\r\n {set notables to cat(notables, [OneOf(\"abundante agua líquida\", \"abundante agua líquida en la superficie\")])}\r\n }\r\n}\r\n\r\n{_ Begin speaking _}\r\n\r\n{if !reportbody.name || reportbody.name = \"\":\r\n\r\n No tengo claro a que cuerpo estelar se refiere.\r\n\r\n|else:\r\n\r\n{_ ****** BUSCA GENERO Y NUMERO DE reportbody.bodytype ****** _}\r\n\r\n{_ coge la primera palabra}\r\n{set itemobj to token(reportbody.bodytype, \" \",0)} \r\n\r\n{_ mira si es femenino}\r\n{if find(itemobj,\"a\",len(itemobj)-2)!=-1: {set la to \"la\"}\r\n|else: {set la to \"el\"}\r\n}\r\n\r\n{_ mira si es plural}\r\n{if find(itemobj,\"s\",len(itemobj)-1)!=-1: {set s to \"s\"}{set n to \"n\"}\r\n|else: {set s to \"\"}{set n to \"\"}\r\n}\r\n{_ ************************************************** _}\r\n\r\n {if len(notables) > 0:\r\n {if reportbody.shortname != reportbody.bodyname:\r\n {if reportbody.bodytype:\r\n {la} {reportbody.bodytype}\r\n |else:\r\n Cuerpo\r\n }\r\n {P(reportbody.shortname)}\r\n |else:\r\n {P(reportbody.bodyname)}\r\n }\r\n \r\n\r\n {if len(notables) = 1:\r\n {set desc to OneOf('interesante', 'a tener en cuenta', 'remarcable')}\r\n |elif len(notables) = 2:\r\n {set desc to OneOf('muy interesante', 'muy a tener en cuenta', 'muy remarcable')}\r\n |elif len(notables) = 3:\r\n {set desc to OneOf('excepcional', 'como pocos')}\r\n |elif len(notables) = 4:\r\n {set desc to OneOf('extraordinario')}\r\n |elif len(notables) >= 5:\r\n {set desc to OneOf('sin par', 'único')}\r\n }\r\n , { OneOf(\"es un cuerpo {desc},\", \"es {if StartsWithVowel(desc): un |else: un } {P(reportbody.planettype)} {desc}\")}\r\n\r\n {if len(notables) = 1:\r\n con {notables[0]}.\r\n |elif len(notables) = 2:\r\n con {notables[0]} y {notables[1]}.\r\n |elif len(notables) = 3:\r\n con {notables[0]}, {notables[1]} y {notables[2]}.\r\n |elif len(notables) = 4:\r\n con {notables[0]}, {notables[1]}, {notables[2]}, y {notables[3]}.\r\n |elif len(notables) >= 5:\r\n con {notables[0]}, {notables[1]}, {notables[2]}, {notables[3]}, y {notables[4]}.\r\n }\r\n }\r\n\r\n {if reportMaterials:\r\n {F(\"Body materials report\")}\r\n }\r\n}", "defaultValue": "{_ Preferences _}\r\n\r\n{set reportTerraformables to 1} {_ Reports terraformable and terraformed bodies _}\r\n{set reportPlanetTypes to 1} {_ Reports Earth-like and water worlds _}\r\n{set reportMass to 1} {_ Reports notable masses (relative to Earth's) _}\r\n{set reportRadius to 1} {_ Reports notable radii (in kilometers) _}\r\n{set reportDensity to 0} {_ Reports notable densities (in kilograms per cubic meter) _}\r\n{set reportGravity to 1} {_ Reports notable gravity (in G's) for landable bodies _}\r\n{set reportTemperature to 1} {_ Reports notable temperatures (in Kelvin) _}\r\n{set reportMaterials to 1} {_ Reports materials per preferences in the `Body materials` script. _}\r\n{set reportLandableVolcanism to 0} {_ Reports volcanism on landable worlds _}\r\n{set reportRings to 1} {_ Reports ring details _}\r\n{set reportInterestingOrbits to 1} {_ Reports notable orbital characteristics _}\r\n{set reportRapidRotation to 1} {_ Reports very fast rotating bodies _}\r\n\r\n{set reportAtmoTempScale to 1} {_ configúralo a 0 si quieres escuchar las temperaturas en Kelvin _}\r\n {_ configúralo a 1 si quieres escuchar las temperaturas en Celsius _}\r\n\r\n{_ temp conversion _}\r\n{if reportAtmoTempScale = 0: {set tempnum to: {Humanise(reportbody.temperature)}}}\r\n{if reportAtmoTempScale = 1: {set tempnum to: {Humanise(reportbody.temperature - 273,15)}}}\r\n\r\n{_ Name our temperature scale _}\r\n{if reportAtmoTempScale = 0: {set tempscale to: Kelvin}}\r\n{if reportAtmoTempScale = 1: {set tempscale to: grados centígrados}}\r\n\r\n\r\n\r\n{_ Fetch from context _}\r\n{set reportbody to BodyDetails(state.eddi_context_body_name, state.eddi_context_body_system)}\r\n{if !reportbody: \r\n {set reportbody to BodyDetails(state.eddi_context_body_name)}\r\n}\r\n\r\n{_ Begin processing _}\r\n\r\n{set notables to []}\r\n\r\n{if reportInterestingOrbits:\r\n\r\n {set orbitNotables to []}\r\n\r\n {if reportbody.eccentricityprobability > 99.9:\r\n {set orbitNotables to cat(orbitNotables, [cat(\"increiblemente \", OneOf(\"elíptico\", \"ovalado\", \"alargado\"))])}\r\n |elif reportbody.eccentricityprobability > 99:\r\n {set orbitNotables to cat(orbitNotables, [cat(\"extremadamente \", OneOf(\"elliptical\", \"oblong\", \"elongated\"))])}\r\n |elif reportbody.eccentricityprobability > 97:\r\n {set orbitNotables to cat(orbitNotables, [cat(\"inusualmente \", OneOf(\"elliptical\", \"oblong\", \"elongated\"))])}\r\n }\r\n\r\n {if reportbody.inclinationprobability > 99.9:\r\n {set orbitNotables to cat(orbitNotables, [cat(\"increiblemente inclinado\")])}\r\n |elif reportbody.inclinationprobability > 99:\r\n {set orbitNotables to cat(orbitNotables, [cat(\"extremadamente inclinado\")])}\r\n |elif reportbody.inclinationprobability > 97:\r\n {set orbitNotables to cat(orbitNotables, [cat(\"inusualmente inclinado\")])}\r\n }\r\n\r\n {if reportbody.orbitalperiod < 0: {set retrograde to cat(\" \", \"retrógrado\", \" \")} }\r\n {if reportbody.orbitalperiodprobability < 0.1:\r\n {set orbitNotables to cat(orbitNotables, [cat(\"increiblemente rápido\", retrograde)])}\r\n |elif reportbody.orbitalperiodprobability < 1:\r\n {set orbitNotables to cat(orbitNotables, [cat(\"extremadamente rápido\", retrograde)])}\r\n |elif reportbody.orbitalperiodprobability < 3:\r\n {set orbitNotables to cat(orbitNotables, [cat(\"inusualmente rápido\", retrograde)])}\r\n }\r\n\r\n {if len(orbitNotables) > 0:\r\n {if StartsWithVowel(orbitNotables[0]): {set a to \"un\"} |else: {set a to \"un\"} }\r\n {set cur to 0}\r\n {set length to len(orbitNotables) - 1}\r\n {while cur < len(orbitNotables):\r\n {set orbitdescription to cat(orbitdescription, orbitNotables[cur])}\r\n {set cur to cur + 1}\r\n {if cur = length: \r\n {set orbitdescription to cat(orbitdescription, \" y \")}\r\n |elif cur < length:\r\n {set orbitdescription to cat(orbitdescription, \", \")}\r\n }\r\n }\r\n {set notables to cat(notables, [cat(a, \" \", orbitdescription, \" \", \"órbita\")])}\r\n }\r\n}\r\n\r\n{if reportbody.rotationalperiod < 0: {set retrograde to cat(\" \", \"retrógrado\", \" \")} }\r\n{if reportRapidRotation:\r\n {if !retrograde && reportbody.rotationalperiodprobability < 0.1:\r\n {set notables to cat(notables, [cat(\"un período de rotación increíblemente corto de \", Humanise(reportbody.rotationalperiod), \" días\")])}\r\n |elif !retrograde && reportbody.rotationalperiodprobability < 1:\r\n {set notables to cat(notables, [cat(\"un período de rotación extremadamente corto de \", Humanise(reportbody.rotationalperiod), \" días\")])}\r\n |elif !retrograde && reportbody.rotationalperiodprobability < 3:\r\n {set notables to cat(notables, [cat(\"un período de rotación inusualmente corto de \", Humanise(reportbody.rotationalperiod), \" días\")])}\r\n }\r\n}\r\n\r\n{if reportMass:\r\n {if reportbody.massprobability < 0.1:\r\n {set notables to cat(notables, [cat(\"una masa increíblemente baja de \", Humanise(reportbody.earthmass), \" veces la de la Tierra\")])}\r\n |elif reportbody.massprobability < 1:\r\n {set notables to cat(notables, [cat(\"una masa extremadamente baja de \", Humanise(reportbody.earthmass), \" veces la de la Tierra\")])}\r\n |elif reportbody.massprobability < 3:\r\n {set notables to cat(notables, [cat(\"una masa inusualmente baja de \", Humanise(reportbody.earthmass), \" veces la de la Tierra\")])}\r\n |elif reportbody.massprobability > 99.9:\r\n {set notables to cat(notables, [cat(\"una masa increíblemente alta de \", Humanise(reportbody.earthmass), \" veces la de la Tierra\")])}\r\n |elif reportbody.massprobability > 99:\r\n {set notables to cat(notables, [cat(\"una masa extremadamente alta de \", Humanise(reportbody.earthmass), \" veces la de la Tierra\")])}\r\n |elif reportbody.massprobability > 97:\r\n {set notables to cat(notables, [cat(\"una masa inusualmente alta de \", Humanise(reportbody.earthmass), \" veces la de la Tierra\")])}\r\n }\r\n}\r\n\r\n{if reportRadius:\r\n {if reportbody.radiusprobability < 0.1:\r\n {set notables to cat(notables, [cat(\"un radio increíblemente bajo de \", Humanise(reportbody.radius), \" kilómetros\")])}\r\n |elif reportbody.radiusprobability < 1:\r\n {set notables to cat(notables, [cat(\"un radio extremadamente bajo de \", Humanise(reportbody.radius), \" kilómetros\")])}\r\n |elif reportbody.radiusprobability < 3:\r\n {set notables to cat(notables, [cat(\"un radio inusualmente bajo de \", Humanise(reportbody.radius), \" kilómetros\")])}\r\n |elif reportbody.radiusprobability > 99.9:\r\n {set notables to cat(notables, [cat(\"un radio extremadamente alto de \", Humanise(reportbody.radius), \" kilómetros\")])}\r\n |elif reportbody.radiusprobability > 99:\r\n {set notables to cat(notables, [cat(\"un radio increíblemente largo de \", Humanise(reportbody.radius), \" kilómetros\")])}\r\n |elif reportbody.radiusprobability > 97:\r\n {set notables to cat(notables, [cat(\"un radio inusualmente grande de \", Humanise(reportbody.radius), \" kilómetros\")])}\r\n }\r\n}\r\n\r\n{if reportTemperature:\r\n {if reportbody.tempprobability < 0.1:\r\n {set notables to cat(notables, [cat(\"una temperatura superficial increíblemente baja de \", tempnum, tempscale)])}\r\n |elif reportbody.tempprobability < 1:\r\n {set notables to cat(notables, [cat(\"una temperatura superficial extremadamente baja de \", tempnum, tempscale)])}\r\n |elif reportbody.tempprobability < 3:\r\n {set notables to cat(notables, [cat(\"una temperatura superficial inusualmente baja de \", tempnum, tempscale)])}\r\n |elif reportbody.tempprobability > 99.9:\r\n {set notables to cat(notables, [cat(\"una temperatura superficial extremadamente alta de \", tempnum, tempscale)])}\r\n |elif reportbody.tempprobability > 99:\r\n {set notables to cat(notables, [cat(\"una temperatura superficial increiblemente alta de \", tempnum, tempscale)])}\r\n |elif reportbody.tempprobability > 97:\r\n {set notables to cat(notables, [cat(\"una temperatura superficial inusualmente alta de \", tempnum, tempscale)])}\r\n }\r\n}\r\n\r\n{if reportGravity && reportbody.landable:\r\n {if reportbody.gravityprobability < 0.1:\r\n {set notables to cat(notables, [cat(\"una gravedad increíblemente baja de \", Humanise(reportbody.gravity), \" veces la de la tierra\")])}\r\n |elif reportbody.gravityprobability < 1:\r\n {set notables to cat(notables, [cat(\"una gravedad extremadamente baja de \", Humanise(reportbody.gravity), \" veces la de la tierra\")])}\r\n |elif reportbody.gravityprobability < 3:\r\n {set notables to cat(notables, [cat(\"una gravedad inusualmente baja de \", Humanise(reportbody.gravity), \" veces la de la tierra\")])}\r\n |elif reportbody.gravityprobability > 99.9:\r\n {set notables to cat(notables, [cat(\"una gravedad increíblemente alta de \", Humanise(reportbody.gravity), \" veces la de la tierra\")])}\r\n |elif reportbody.gravityprobability > 99:\r\n {set notables to cat(notables, [cat(\"una gravedad extremadamente alta de \", Humanise(reportbody.gravity), \" veces la de la tierra\")])}\r\n |elif reportbody.gravityprobability > 97:\r\n {set notables to cat(notables, [cat(\"una gravedad inusualmente alta de \", Humanise(reportbody.gravity), \" veces la de la tierra\")])}\r\n }\r\n}\r\n\r\n\r\n{if reportDensity:\r\n {if reportbody.densityprobability < 0.1:\r\n {set notables to cat(notables, [cat(\"una densidad increíblemente baja \", Humanise(reportbody.density), \" kilogramos por metro cúbico\")])}\r\n |elif reportbody.densityprobability < 1:\r\n {set notables to cat(notables, [cat(\"una densidad extremadamente baja \", Humanise(reportbody.density), \" kilogramos por metro cúbico\")])}\r\n |elif reportbody.densityprobability < 3:\r\n {set notables to cat(notables, [cat(\"una densidad inusualmente baja \", Humanise(reportbody.density), \" kilogramos por metro cúbico\")])}\r\n |elif reportbody.densityprobability > 99.9:\r\n {set notables to cat(notables, [cat(\"una densidad increíblemente alta \", Humanise(reportbody.density), \" kilogramos por metro cúbico\")])}\r\n |elif reportbody.densityprobability > 99:\r\n {set notables to cat(notables, [cat(\"una densidad extremadamente alta \", Humanise(reportbody.density), \" kilogramos por metro cúbico\")])}\r\n |elif reportbody.densityprobability > 97:\r\n {set notables to cat(notables, [cat(\"una densidad inusualmente alta \", Humanise(reportbody.density), \" kilogramos por metro cúbico\")])}\r\n }\r\n}\r\n\r\n{if reportVolcanism:\r\n {if reportbody.volcanism && reportbody.landable:\r\n {set notables to cat(notables, [cat(OneOf(\"volcánica\", \"tectónica\"), \"actividad\")])}\r\n }\r\n}\r\n\r\n{if reportRings:\r\n {if reportbody.rings:\r\n {set ringcompositions to []}\r\n {set cur to 0}\r\n {for ring in reportbody.rings:\r\n {if find(ring.name, \"Anillo\") > -1:\r\n {if find(ringcompositions, ring.composition) = -1:\r\n {set ringcompositions to cat(ringcompositions, [cat(ring.composition)])}\r\n }\r\n }\r\n {set cur to cur + 1}\r\n }\r\n {set cur to 0}\r\n {set length to len(ringcompositions) - 1}\r\n {while cur < len(ringcompositions):\r\n {set ringsdescription to cat(ringsdescription, ringcompositions[cur])}\r\n {set cur to cur + 1}\r\n {if cur = length: \r\n {set ringsdescription to cat(ringsdescription, \" y \")}\r\n |elif cur < length:\r\n {set ringsdecription to cat(ringsdescription, \", \")}\r\n }\r\n }\r\n {if ringsdescription:\r\n {if len(ringcompositions) = 1:\r\n {if StartsWithVowel(reportbody.reserves): \r\n {set a to \"un \"} \r\n |else: \r\n {set a to \"un \"}\r\n }\r\n {set rings to \"anillo\"}\r\n |else:\r\n {set rings to \"anillos\"} \r\n }\r\n {if reportbody.reserveLevel.invariantName != \"Ninguno\": \r\n {set reserves to reportbody.reserves}\r\n }\r\n {set notables to cat(notables, [cat(a, \" \", reserves, \" \", ringsdescription, \" \", rings)])}\r\n }\r\n }\r\n}\r\n\r\n{if reportTerraformables:\r\n {if reportbody.terraformState.invariantName = \"Candidato para terraformación\":\r\n {set notables to cat(notables, [OneOf(\"potencial de terraformación\", \"condiciones terraformables\")])}\r\n |elif reportbody.terraformState.invariantName = \"Terraformed\":\r\n {set notables to cat(notables, [\"condiciones terraformadas\"])}\r\n }\r\n}\r\n\r\n{if reportPlanetTypes:\r\n {if reportbody.planetClass.invariantName = \"Mundo similar a la Tierra\":\r\n {set notables to cat(notables, [\"Mundo similar a la Tierra\"])}\r\n |elif reportbody.planetClass.invariantName = \"Mundo acuático\":\r\n {set notables to cat(notables, [OneOf(\"abundante agua líquida\", \"abundante agua líquida en la superficie\")])}\r\n }\r\n}\r\n\r\n{_ Begin speaking _}\r\n\r\n{if !reportbody.name || reportbody.name = \"\":\r\n\r\n No tengo claro a que cuerpo estelar se refiere.\r\n\r\n|else:\r\n\r\n {if len(notables) > 0:\r\n {if reportbody.shortname != reportbody.bodyname:\r\n {if reportbody.bodytype:\r\n {reportbody.bodytype}\r\n |else:\r\n Cuerpo\r\n }\r\n {P(reportbody.shortname)}\r\n |else:\r\n {P(reportbody.bodyname)}\r\n }\r\n is\r\n\r\n {if len(notables) = 1:\r\n {set desc to \"notable\"}\r\n |elif len(notables) = 2:\r\n {set desc to OneOf('interesante', 'notable', 'remarcable')}\r\n |elif len(notables) = 3:\r\n {set desc to OneOf('excepcional', 'remarcable')}\r\n |elif len(notables) = 4:\r\n {set desc to OneOf('extraordinario')}\r\n |elif len(notables) >= 5:\r\n {set desc to OneOf('sin par', 'único')}\r\n }\r\n {OneOf(\"{desc},\", \"{if StartsWithVowel(desc): un |else: un } {desc} {P(reportbody.planettype)}\")}\r\n\r\n {if len(notables) = 1:\r\n con {notables[0]}.\r\n |elif len(notables) = 2:\r\n con {notables[0]} y {notables[1]}.\r\n |elif len(notables) = 3:\r\n con {notables[0]}, {notables[1]} y {notables[2]}.\r\n |elif len(notables) = 4:\r\n con {notables[0]}, {notables[1]}, {notables[2]}, y {notables[3]}.\r\n |elif len(notables) >= 5:\r\n con {notables[0]}, {notables[1]}, {notables[2]}, {notables[3]}, y {notables[4]}.\r\n }\r\n }\r\n\r\n {if reportMaterials:\r\n {F(\"Body materials report\")}\r\n }\r\n}", "default": false }, "Body scanned": { "name": "Body scanned", "description": "Se activa cuando completas el escaneo de un cuerpo planetario", "enabled": true, "priority": 5, "responder": true, "script": "{_ Context }\n{SetState('eddi_context_last_subject', 'body')}\n{SetState('eddi_context_last_action', 'scan')}\n{SetState('eddi_context_body_system', system.name)}\n{SetState('eddi_context_body_name', event.name)}\n{SetState('eddi_context_last_scan_estimated_value', event.estimatedvalue)}\r\n\r\n{_ Fetch from context }\r\n{if event: \r\n {set reportbody to event} \r\n}\r\n{if !event.name || event.name = \"\": \r\n {set reportbody to BodyDetails(state.eddi_context_body_name, state.eddi_context_body_system)}\r\n}\r\n{if !reportbody.name || reportbody.name = \"\": \r\n {set reportbody to BodyDetails(state.eddi_context_body_name)}\r\n}\n\r\n{_ F(\"Body Name Tidy\") _} {_ De momento da errores _}\r\n\n{Pause(1000)}\n\n{OneOf(\"Escaneo\", \"Análisis\")} de {reportbody.planettype} {_ reportbody.shortname _} {OneOf(\"completado\", \"terminado\", \"finalizado\")}.\n\n\r\n{if state.eddi_context_last_scan_estimated_value>10000:\n{F(\"Report last scan value\")}\r\n\r\n{SetState('lastscanbody', event.name)}\n}\n\r\n{if ship.Role.edname = \"_Exploration\" || ship.Role.edname = \"_Multipurpose\":\r\n {Pause(500)}\r\n {F(\"Body report\")}\r\n}", "defaultValue": "{_ Context }\n{SetState('eddi_context_last_subject', 'body')}\n{SetState('eddi_context_last_action', 'scan')}\n{SetState('eddi_context_body_system', system.name)}\n{SetState('eddi_context_body_name', event.name)}\n{SetState('eddi_context_last_scan_estimated_value', event.estimatedvalue)}\r\n\r\n{_ Fetch from context }\r\n{if event: \r\n {set reportbody to event} \r\n}\r\n{if !event.name || event.name = \"\": \r\n {set reportbody to BodyDetails(state.eddi_context_body_name, state.eddi_context_body_system)}\r\n}\r\n{if !reportbody.name || reportbody.name = \"\": \r\n {set reportbody to BodyDetails(state.eddi_context_body_name)}\r\n}\n\r\n{_ F(\"Body Name Tidy\") _} {_ De momento da errores _}\r\n\n{Pause(1000)}\n\n{OneOf(\"Escaneo\", \"Análisis\")} de {reportbody.planettype} {_ reportbody.shortname _} {OneOf(\"completado\", \"terminado\", \"finalizado\")}.\n\n\r\n{if state.eddi_context_last_scan_estimated_value>10000:\n{F(\"Report last scan value\")}\r\n\r\n{SetState('lastscanbody', event.name)}\n}\n\r\n{if ship.Role.edname = \"_Exploration\" || ship.Role.edname = \"_Multipurpose\":\r\n {Pause(500)}\r\n {F(\"Body report\")}\r\n}", "default": true }, "Body volcanism report": { "name": "Body volcanism report", "description": "Informa del vulcanismo del cuerpo contextual", "enabled": true, "priority": null, "responder": false, "script": "{_ Fetch from context }\r\n{if event: \r\n {set reportbody to event} \r\n}\r\n{if !event.name || event.name = \"\": \r\n {set reportbody to BodyDetails(state.eddi_context_body_name, state.eddi_context_body_system)}\r\n}\r\n{if !reportbody.name || reportbody.name = \"\": \r\n {set reportbody to BodyDetails(state.eddi_context_body_name)}\r\n}\r\n\r\n{if !reportbody.name || reportbody.name = \"\":\r\n No se a que cuerpo estelar se refiere\r\n|else:\r\n {if (reportbody.volcanism || len(reportbody.volcanism) > 0) && reportVolcanism > 0:\r\n {OneOf(\"Se ha detectado\",\"Los sensores detectan\",\"Este {reportbody.planettype} tiene\")}\r\n {if reportbody.volcanism.type = \"Geysers\":\r\n {if reportbody.volcanism.invariantAmount = 'Major':\r\n un alto número de \r\n |elif reportbody.volcanism.invariantAmount = 'Minor':\r\n poca cantidad de\r\n }\r\n active {reportbody.volcanism.composition} géiseres\r\n {Occasionally(2, \"en la superficie\")}\r\n |else:\r\n {if reportbody.volcanism.invariantAmount = 'Major':\r\n un alto número de \r\n |elif reportbody.volcanism.invariantAmount = 'Minor':\r\n poca cantidad de \r\n }\r\n flujos de {reportbody.volcanism.composition} activos\r\n {Occasionally(2, \"en la superficie\")}\r\n }.\r\n }\r\n}\r\n{if !reportVolcanism:No hay vulcanismo en este planeta}", "defaultValue": "{_ Fetch from context }\r\n{if event: \r\n {set reportbody to event} \r\n}\r\n{if !event.name || event.name = \"\": \r\n {set reportbody to BodyDetails(state.eddi_context_body_name, state.eddi_context_body_system)}\r\n}\r\n{if !reportbody.name || reportbody.name = \"\": \r\n {set reportbody to BodyDetails(state.eddi_context_body_name)}\r\n}\r\n\r\n{if !reportbody.name || reportbody.name = \"\":\r\n No se a que cuerpo estelar se refiere\r\n|else:\r\n {if (reportbody.volcanism || len(reportbody.volcanism) > 0) && reportVolcanism > 0:\r\n {OneOf(\"Se ha detectado\",\"Los sensores detectan\",\"Este {reportbody.planettype} tiene\")}\r\n {if reportbody.volcanism.type = \"Geysers\":\r\n {if reportbody.volcanism.invariantAmount = 'Major':\r\n un alto número de \r\n |elif reportbody.volcanism.invariantAmount = 'Minor':\r\n poca cantidad de\r\n }\r\n active {reportbody.volcanism.composition} géiseres\r\n {Occasionally(2, \"en la superficie\")}\r\n |else:\r\n {if reportbody.volcanism.invariantAmount = 'Major':\r\n un alto número de \r\n |elif reportbody.volcanism.invariantAmount = 'Minor':\r\n poca cantidad de \r\n }\r\n flujos de {reportbody.volcanism.composition} activos\r\n {Occasionally(2, \"en la superficie\")}\r\n }.\r\n }\r\n}", "default": false }, "Bond awarded": { "name": "Bond awarded", "description": "Se activa cuando se otorga un bono de combate", "enabled": true, "priority": 5, "responder": true, "script": "{_ Bond awarded }\n{_ Triggered when you are awarded a combat bond }\n\n\n{_ Context }\n{SetState('eddi_context_last_subject', 'bond')}\n{SetState('eddi_context_last_action', 'award')}\n{SetState('eddi_context_bond_amount', event.reward)}\n{SetState('eddi_context_bond_faction', event.awardingfaction)}\n\nNave de {P(event.victimfaction, \"faction\")} {OneOf(\"destruida\",\"eliminada\",\"derribada\")},\n\n{Humanise(event.reward)} créditos otorgados de {P(event.victimfaction, \"faction\")}.\n", "defaultValue": "{_ Bond awarded }\n{_ Triggered when you are awarded a combat bond }\n\n\n{_ Context }\n{SetState('eddi_context_last_subject', 'bond')}\n{SetState('eddi_context_last_action', 'award')}\n{SetState('eddi_context_bond_amount', event.reward)}\n{SetState('eddi_context_bond_faction', event.awardingfaction)}\n\nNave de {event.victimfaction} {OneOf(\"destruida\",\"eliminada\",\"derribada\")},\n\n{event.reward} créditos otorgados de {event.awardingfaction}.\n", "default": false }, "Bond redeemed": { "name": "Bond redeemed", "description": "Se activa cuando canjeas un bono de combate", "enabled": true, "priority": 5, "responder": true, "script": "{_ Context }\n{SetState('eddi_context_last_subject', 'bond')}\n{SetState('eddi_context_last_action', 'redeem')}\n{SetState('eddi_context_bond_amount', event.amount)}\n\nBonos de combate por valor de {Humanise(event.amount)} créditos \n{Occasionally(2, OneOf(\"han sido\", \"\"))} \n{OneOf(\"otorgados\", \"reclamados\")} \n\n{Occasionally(2, \"\n {if len(event.rewards) = 1 && len(event.rewards[0].faction) > 0:\n de {P(event.rewards[0].faction)}\n |else:\n . \n {set cur to 0}\n {while cur < len(event.rewards):\n {if len(event.rewards[cur].faction) > 0:\n {if cur = 0:\n |elif cur < len(event.rewards) - 1:\n , \n |else:\n y\n }\n {Humanise(event.rewards[cur].amount)} créditos de\n {P(event.rewards[cur].faction)} \n {set cur to cur + 1}\n }\n }\n }\n\")}\n\n{if event.brokerpercentage && event.brokerpercentage > 0:\n después de deducir \n {OneOf(\"un pago\", \"una recompensa\")} de\n {round((event.amount / (100 - event.brokerpercentage)) * event.brokerpercentage, 0)} créditos\n}.", "defaultValue": "{_ Context }\n{SetState('eddi_context_last_subject', 'bond')}\n{SetState('eddi_context_last_action', 'redeem')}\n{SetState('eddi_context_bond_amount', event.amount)}\n\nBonos de combate por valor de {Humanise(event.amount)} créditos \n{Occasionally(2, OneOf(\"han sido\", \"\"))} \n{OneOf(\"otorgados\", \"reclamados\")} \n\n{Occasionally(2, \"\n {if len(event.rewards) = 1 && len(event.rewards[0].faction) > 0:\n de {P(event.rewards[0].faction)}\n |else:\n . \n {set cur to 0}\n {while cur < len(event.rewards):\n {if len(event.rewards[cur].faction) > 0:\n {if cur = 0:\n |elif cur < len(event.rewards) - 1:\n , \n |else:\n y\n }\n {Humanise(event.rewards[cur].amount)} créditos de\n {P(event.rewards[cur].faction)} \n {set cur to cur + 1}\n }\n }\n }\n\")}\n\n{if event.brokerpercentage && event.brokerpercentage > 0:\n después de deducir \n {OneOf(\"un pago\", \"una recompensa\")} de\n {round((event.amount / (100 - event.brokerpercentage)) * event.brokerpercentage, 0)} créditos\n}.", "default": true }, "Book transport": { "name": "Book transport", "description": "Triggered when booking a taxi or deployment for on foot combat", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Bounty awarded": { "name": "Bounty awarded", "description": "Se activa cuando te sumas una recompensa", "enabled": true, "priority": 5, "responder": true, "script": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'bounty')}\r\n{SetState('eddi_context_last_action', 'award')}\r\n{SetState('eddi_context_bounty_name', event.target)}\r\n{SetState('eddi_context_bounty_faction', event.faction)}\r\n{SetState('eddi_context_bounty_amount', event.reward)}\r\n\r\n{Pause(500)}\r\n{if len(event.rewards) = 1:\r\n Recibido bono de recompensa de {event.reward} créditos por parte de la facción {P(event.rewards[0].faction, \"faction\")}\r\n|elif len(event.rewards) > 1:\r\n|elif len(event.rewards) > 1:\r\n Recibidos {len(event.rewards)} bonos de recompensa por un total de {event.reward} créditos\r\n}\r\n{if event.shared:\r\n para repartir entre sus compañeros de escuadrón y usted.\r\n}.\r\n", "defaultValue": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'bounty')}\r\n{SetState('eddi_context_last_action', 'award')}\r\n{SetState('eddi_context_bounty_name', event.target)}\r\n{SetState('eddi_context_bounty_faction', event.faction)}\r\n{SetState('eddi_context_bounty_amount', event.reward)}\r\n\r\n{Pause(500)}\r\n{if len(event.rewards) = 1:\r\n Recibido bono de recompensa de {event.reward} créditos por parte de la facción {event.rewards[0].faction}\r\n|elif len(event.rewards) > 1:\r\n Recibidos {len(event.rewards)} bonos de recompensa por un total de {event.reward} créditos\r\n}\r\n{if event.shared:\r\n para repartir entre sus compañeros de escuadrón y usted.\r\n}.\r\n", "default": false }, "Bounty incurred": { "name": "Bounty incurred", "description": "Se activa cuando te ponen una recompensa", "enabled": true, "priority": 5, "responder": true, "script": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'bounty')}\r\n{SetState('eddi_context_last_action', 'incur')}\r\n{SetState('eddi_context_bounty_name', event.victim)}\r\n{SetState('eddi_context_bounty_faction', event.faction)}\r\n{SetState('eddi_context_bounty_amount', event.bounty)}\r\n\r\nLa facción {event.faction} acaba de poner una recompensa de {event.bounty} créditos por nuestra cabeza.", "defaultValue": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'bounty')}\r\n{SetState('eddi_context_last_action', 'incur')}\r\n{SetState('eddi_context_bounty_name', event.victim)}\r\n{SetState('eddi_context_bounty_faction', event.faction)}\r\n{SetState('eddi_context_bounty_amount', event.bounty)}\r\n\r\nLa facción {event.faction} acaba de poner una recompensa de {event.bounty} créditos por nuestra cabeza.", "default": true }, "Bounty paid": { "name": "Bounty paid", "description": "Triggered when you pay a bounty", "enabled": true, "priority": 5, "responder": true, "script": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'bounty')}\r\n{SetState('eddi_context_last_action', 'pay')}\r\n{SetState('eddi_context_fine_amount', event.amount)}\r\n\r\n\r\nRecompensa pagada de {Humanise(event.amount)} créditos.", "defaultValue": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'bounty')}\r\n{SetState('eddi_context_last_action', 'pay')}\r\n{SetState('eddi_context_fine_amount', event.amount)}\r\n\r\n\r\nRecompensa de {Humanise(event.amount)} créditos pagada.", "default": false }, "Bounty redeemed": { "name": "Bounty redeemed", "description": "Se activa cuando cobras una recompensa (TEST)", "enabled": true, "priority": 5, "responder": true, "script": "{_ Context }\n{SetState('eddi_context_last_subject', 'bond')}\n{SetState('eddi_context_last_action', 'redeem')}\n{SetState('eddi_context_bond_amount', event.amount)}\n\n\n{OneOf(\"Otorgados\", \"Reclamados\")} \nbonos de combate por valor de {(event.amount)} créditos \n\n{Occasionally(2, \"\n {if len(event.rewards) = 1 && len(event.rewards[0].faction) > 0:\n de {P(event.rewards[0].faction)}\n |else:\n . \n {set cur to 0}\n {while cur < len(event.rewards):\n {if len(event.rewards[cur].faction) > 0:\n {if cur = 0:\n |elif cur < len(event.rewards) - 1:\n , \n |else:\n y\n }\n {(event.rewards[cur].amount)} créditos de \n {P(event.rewards[cur].faction)} \n {set cur to cur + 1}\n } \n } \n } \n\")} \n\n{if event.brokerpercentage && event.brokerpercentage > 0:\n después de deducir \n {OneOf(\"un pago\", \"una recompensa\")} de\n {round((event.amount / (100 - event.brokerpercentage)) * event.brokerpercentage, 0)} créditos\n}.", "defaultValue": "{_ Context }\n{SetState('eddi_context_last_subject', 'bond')}\n{SetState('eddi_context_last_action', 'redeem')}\n{SetState('eddi_context_bond_amount', event.amount)}\n\n\n{OneOf(\"Otorgados\", \"Reclamados\")} \nbonos de combate por valor de {(event.amount)} créditos \n\n{Occasionally(2, \"\n {if len(event.rewards) = 1 && len(event.rewards[0].faction) > 0:\n de {P(event.rewards[0].faction)}\n |else:\n . \n {set cur to 0}\n {while cur < len(event.rewards):\n {if len(event.rewards[cur].faction) > 0:\n {if cur = 0:\n |elif cur < len(event.rewards) - 1:\n , \n |else:\n y\n }\n {(event.rewards[cur].amount)} créditos de \n {P(event.rewards[cur].faction)} \n {set cur to cur + 1}\n } \n } \n } \n\")} \n\n{if event.brokerpercentage && event.brokerpercentage > 0:\n después de deducir \n {OneOf(\"un pago\", \"una recompensa\")} de\n {round((event.amount / (100 - event.brokerpercentage)) * event.brokerpercentage, 0)} créditos\n}.", "default": true }, "Cancel transport": { "name": "Cancel transport", "description": "Triggered when canceling a taxi or deployment for on foot combat", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Cargo depot": { "name": "Cargo depot", "description": "Triggered when collecting or delivering cargo for a wing mission (TEST)", "enabled": true, "priority": 5, "responder": true, "script": "{_ Cargo depot }\r\n{_ Triggered when collecting or delivering cargo for a wing mission }\r\n\r\n\r\n{if event.updatetype = \"Collect\":\r\n Se han añadido {event.amount} tonelada{if event.amount != 1:s} de {event.commodity} para el depósito de la misión.\r\n|elif event.updatetype = \"Deliver\":\r\n Hemos entregado {event.amount} tonelada{if event.amount != 1:s} de {event.commodity} al depósito de la misión.\r\n\r\n {Pause(500)}\r\n {set remaining to event.totaltodeliver - event.delivered}\r\n {set haulage to HaulageDetails(event.missionid)}\r\n\r\nLos requerimientos de\r\n\r\n {if find(haulage.name, \"Wing\") > -1:\r\n la misión de escuadrón\r\n |elif find(haulage.name, \"Rank\") > -1:\r\n la misión Naval\r\n |else:\r\n su misión\r\n }\r\n\r\n {if remaining = 0:\r\n ya se han completado\r\n |else:\r\n están en un {round(event.delivered / event.totaltodeliver * 100, 0)} porciento completado.\r\n }\r\n}", "defaultValue": "{_ Cargo depot }\r\n{_ Triggered when collecting or delivering cargo for a wing mission }\r\n\r\n\r\n{if event.updatetype = \"Collect\":\r\n Se han añadido {event.amount} tonelada{if event.amount != 1:s} de {event.commodity} para el depósito de la misión.\r\n|elif event.updatetype = \"Deliver\":\r\n Hemos entregado {event.amount} tonelada{if event.amount != 1:s} de {event.commodity} al depósito de la misión.\r\n\r\n {Pause(500)}\r\n {set remaining to event.totaltodeliver - event.delivered}\r\n {set haulage to HaulageDetails(event.missionid)}\r\n\r\nLos requerimientos de\r\n\r\n {if find(haulage.name, \"Wing\") > -1:\r\n la misión de escuadrón\r\n |elif find(haulage.name, \"Rank\") > -1:\r\n la misión Naval\r\n |else:\r\n su misión\r\n }\r\n\r\n {if remaining = 0:\r\n ya se han completado\r\n |else:\r\n están en un {round(event.delivered / event.totaltodeliver * 100, 0)} porciento completado.\r\n }\r\n}", "default": true }, "Cargo report": { "name": "Cargo report", "description": "Informa de tu carga actual", "enabled": true, "priority": null, "responder": false, "script": "{_ Cargo report }\n{_ Report current cargo manifest }\n\n{set cargocarried to 0}\n{set haulage to 0}\n{set illegal to false}\n{set stolen to false}\n\n{if len(inventory) > 0:\n {for cargo in inventory:\n {set cargocarried to cargocarried + cargo.total}\n {set haulage to haulage + cargo.haulage}\n {if cargo.stolen > 0: {set stolen to true}}\n {if status.docked:\n {for prohibited in station.prohibited:\n {if cargo.name = prohibited.name: {set illegal to true}}\n }\n }\n }\n}\n\n\n{if cargocarried > 0:\n {if cargocarried = ship.cargocapacity:\n {OneOf(\"La bodega de carga está llena\", \"el compartimento de carga está lleno\")}.\n |else:\n {Occasionally(2, \"Ahora mismo\")} {OneOf(\"llevamos\", \"transportamos\")} \n }\n\n {if len(inventory) = 1:\n {if inventory[0].name = \"Drón\":\n {if cargocarried = 1:un |else:{cargocarried}} drón{if cargocarried != 1:es}.\n |else:\n {if cargocarried = 1:una |else:{cargocarried}} tonelada{if cargocarried != 1:s} de {inventory[0].name}.\n }\n |else:\n {if cargocarried < ship.cargocapacity: de cargamento.}\n {OneOf(\"la siguiente mercancía\",\"lo siguiente\")}.\n {set position to 0}\n {for cargo in inventory:\n \n {if cargo.name = \"Drón\":\n {if cargo.total = 1:un |else:{cargo.total}} drón{if cargo.total != 1:es}\n |else:\n {if cargo.total = 1:una |else:{cargo.total}} tonelada{if cargo.total != 1:s} de {cargo.name}\n }\n {set position to position + 1}\n {if position = len(inventory) - 1: , y |else:,}\n }\n }.\n\n {if cargocarried < ship.cargocapacity:\n {set free to ship.cargocapacity - cargocarried}\n Tienes {free} tonelada{if free != 1:s} {OneOf(\"\",\"de espacio libre\")}{if free != 1:s}.\n }\n\n {if stolen || illegal:\n Atención: Llevamos carga\n {if stolen: robada}\n {if illegal:\n {if stolen:, e }\n ilegal en esta jurisdicción\n }.\n }\n\n|else:\n {OneOf(\"Tu bahía de carga está vacía.\",\"Tu bodega de carga está vacía.\",\"No tienes carga.\",\"No llevas ninguna carga.\")}\n}\n\n", "defaultValue": "{_ Cargo report }\n{_ Report current cargo manifest }\n\n{set cargocarried to 0}\n{set haulage to 0}\n{set illegal to false}\n{set stolen to false}\n\n{if len(inventory) > 0:\n {for cargo in inventory:\n {set cargocarried to cargocarried + cargo.total}\n {set haulage to haulage + cargo.haulage}\n {if cargo.stolen > 0: {set stolen to true}}\n {if status.docked:\n {for prohibited in station.prohibited:\n {if cargo.name = prohibited.name: {set illegal to true}}\n }\n }\n }\n}\n\n\n{if cargocarried > 0:\n {if cargocarried = ship.cargocapacity:\n {OneOf(\"La bodega de carga está llena\", \"el compartimento de carga está lleno\")}.\n |else:\n {Occasionally(2, \"Ahora mismo\")} {OneOf(\"llevamos\", \"transportamos\")} \n }\n\n {if len(inventory) = 1:\n {if inventory[0].name = \"Drón\":\n {if cargocarried = 1:un |else:{cargocarried}} drón{if cargocarried != 1:es}.\n |else:\n {if cargocarried = 1:una |else:{cargocarried}} tonelada{if cargocarried != 1:s} de {inventory[0].name}.\n }\n |else:\n {if cargocarried < ship.cargocapacity: de cargamento.}\n {OneOf(\"la siguiente mercancía\",\"lo siguiente\")}.\n {set position to 0}\n {for cargo in inventory:\n \n {if cargo.name = \"Drón\":\n {if cargo.total = 1:un |else:{cargo.total}} drón{if cargo.total != 1:es}\n |else:\n {if cargo.total = 1:una |else:{cargo.total}} tonelada{if cargo.total != 1:s} de {cargo.name}\n }\n {set position to position + 1}\n {if position = len(inventory) - 1: , y |else:,}\n }\n }.\n\n {if cargocarried < ship.cargocapacity:\n {set free to ship.cargocapacity - cargocarried}\n Tienes {free} tonelada{if free != 1:s} {OneOf(\"\",\"de espacio libre\")}{if free != 1:s}.\n }\n\n {if stolen || illegal:\n Atención: Llevamos carga\n {if stolen: robada}\n {if illegal:\n {if stolen:, e }\n ilegal en esta jurisdicción\n }.\n }\n\n|else:\n {OneOf(\"Tu bahía de carga está vacía.\",\"Tu bodega de carga está vacía.\",\"No tienes carga.\",\"No llevas ninguna carga.\")}\n}\n\n", "default": true }, "Cargo scoop": { "name": "Cargo scoop", "description": "Triggered when you deploy or retract your cargo scoop", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Cargo wingupdate": { "name": "Cargo wingupdate", "description": "Triggered when a wing-mate collects or delivers cargo for a wing mission", "enabled": true, "priority": 3, "responder": true, "script": "{_ Cargo wingupdate }\r\n{_ Triggered when a wing-mate collects or delivers cargo for a wing mission }\r\n\r\n\r\n{if event.updatetype = \"Collect\":\r\n Tu compañero de escuadrón ha recogido {event.amount} tonelada{if event.amount != 1:s}\r\n {if event.commodity != \"Unknown\": de {event.commodity}} del depósito de la misión.\r\n|elif event.updatetype = \"Deliver\":\r\n Tu compañero de escuadrón ha entregado {event.amount} tonelada{if event.amount != 1:s} \r\n {if event.commodity != \"Unknown\": de {event.commodity}} al depósito de la misión.\r\n}\r\n\r\n{Pause(500)}\r\n{set remaining to event.totaltodeliver - event.delivered}\r\n{if remaining = 0:\r\n Los requisitos de la misión de escuadrón han sido completados.\r\n|elif event.updatetype = \"Deliver\":\r\n La misión de escuadrón está a un {round(event.delivered / event.totaltodeliver * 100, 0)} porciento de ser completada.\r\n}\r\n", "defaultValue": "{_ Cargo wingupdate }\r\n{_ Triggered when a wing-mate collects or delivers cargo for a wing mission }\r\n\r\n\r\n{if event.updatetype = \"Collect\":\r\n Your wing mate has collected {event.amount} tonne{if event.amount != 1:s}\r\n {if event.commodity != \"Unknown\": of {event.commodity}} from the mission depot.\r\n|elif event.updatetype = \"Deliver\":\r\n Your wing mate has delivered {event.amount} tonne{if event.amount != 1:s} \r\n {if event.commodity != \"Unknown\": of {event.commodity}} to the mission depot.\r\n}\r\n\r\n{Pause(500)}\r\n{set remaining to event.totaltodeliver - event.delivered}\r\n{if remaining = 0:\r\n Wing mission requirements are now completed.\r\n|elif event.updatetype = \"Deliver\":\r\n Wing mission is now {round(event.delivered / event.totaltodeliver * 100, 0)} percent complete.\r\n}\r\n", "default": false }, "Carrier cooldown": { "name": "Carrier cooldown", "description": "Triggered when you either were docked at a fleet carrier during a jump or are the fleet carrier owner and it completes its cooldown", "enabled": true, "priority": 3, "responder": true, "script": "Tiempo de espera de salto del Porta-Flotas completado.", "defaultValue": "Fleet carrier cooldown completed.", "default": false }, "Carrier jump cancelled": { "name": "Carrier jump cancelled", "description": "Triggered when you cancel a scheduled fleet carrier jump", "enabled": true, "priority": 3, "responder": true, "script": "Salto del Porta-Flotas cancelado.", "defaultValue": "Fleet carrier jump cancelled.", "default": false }, "Carrier jump engaged": { "name": "Carrier jump engaged", "description": "Triggered when your fleet carrier performs a jump", "enabled": true, "priority": 3, "responder": true, "script": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'carrier jump')}\r\n{SetState('eddi_context_last_action', 'start')}\r\n{SetState('eddi_context_system_name', event.system)}\r\n{SetState('eddi_context_system_system', event.system)}\r\n{SetState('eddi_context_system_lastvisit', system.lastVisitSeconds)}\r\n\r\n{if environment = \"Docked\":\r\n\r\n {_ Zero the 'remaining jump' context to only use values following this event _}\r\n {SetState('eddi_context_remaining_jumps', 0)}\r\n\r\n {set reportsystem to SystemDetails(event.systemname)}\r\n\r\n {OneOf(\"Salto en progreso\",\"Abriendo portál\")} hacia al sistema {P(reportsystem.systemname)}\r\n {if len(event.shortname) > 0:\r\n {set reportBody to BodyDetails(event.bodyname, event.systemname)} \r\n cerca de \r\n \r\n{_ ****** BUSCA GENERO Y NUMERO DE reportBody.bodytype ****** _}\r\n\r\n{_ coge la primera palabra}\r\n{set tipocuerpo to token(reportBody.bodytype, \" \",0)} \r\n\r\n{_ mira si es femenino}\r\n{if find(tipocuerpo,\"a\",len(tipocuerpo)-2)!=-1: {set el to \"la\"}\r\n|else: {set el to \"el\"}\r\n}\r\n\r\n{_ mira si es plural}\r\n{ if find(tipocuerpo,\"s\",len(tipocuerpo)-1)!=-1: \r\n\t{if el = \"la\": {set el to \"las\"}\r\n\t|else: {set el to \"los\"}\r\n\t}\r\n}\r\n\r\n{_ ************************************************** _}\r\n \r\n {if len(reportBody.bodytype) > 0: {el} {reportBody.bodytype} |else: el cuerpo}\r\n {P(event.shortname)}\r\n }.\r\n\r\n {if reportsystem.systemname = homesystem.systemname:\r\n Hogar dulce hogar, {F(\"Honorific\")}\r\n |else: \r\n {if lastsystem.allegiance && lastsystem.allegiance != \"Ninguno\" && lastsystem.allegiance != \"Independiente\" && (!reportsystem.allegiance || reportsystem.allegiance = \"Ninguno\" || reportsystem.allegiance = \"Independiente\"):\r\n Comandante {OneOf(\"estamos abandonando el espacio de\", \"hemos dejado\", \"ya no estamos en territorio de\")} {lastsystem.allegiance}.\r\n |elif lastsystem.allegiance && lastsystem.allegiance != reportsystem.allegiance && system.allegiance && system.allegiance != \"Ninguno\":\r\n {OneOf(\"ahora estamos en\", \"hemos llegado a un\", \"estamos entrando en\")} {OneOf(\"espacio\",\"zona\")}\r\n {if cmdr.title != \"Commander\":\r\n El Gobierno local le da la bienvenida {Oneof(\"como\",\"con el título de\")} {F(\"Honorific\")}.\r\n }\r\n }\r\n\r\n {if system.visits = 0:\r\n Es su primera visita a este sistema\r\n |elif system.visits = 1:\r\n Es su segunda visita a este sistema\r\n |elif system.visits = 2:\r\n Es su tercera visita a este sistema\r\n |elif system.visits = 3:\r\n Es su cuarta visita a este sistema\r\n |else:\r\n Ha visitado este sistema {system.visits} veces\r\n }.\r\n\r\n {if reportsystem.population && reportsystem.population > 0:\r\n {if SecondsSince(reportsystem.lastVisitSeconds) > 3600:\r\n {F(\"System report\")}\r\n }\r\n |else:\r\n\t\t\t{OneOf(\"Este sistema está despoblado\",\"No hay presencia humana en este sistema\", \"La Humanidad aún no ha colonizado este sistema\")}.\r\n }\r\n\r\n {if reportsystem.distancefromhome:\r\n {set ReportDistanceFromHome() to:\r\n {return cat(\r\n \tOneOf(\"Se encuentra a\", \"Su actual posición es a\", \"Actualmente esta a\"), \" \", \r\n \tHumanise(system.distancefromhome), \"años luz de \",\r\n \tOneOf(\"casa\", \"{P(homesystem.name)}\"), \".\"\r\n\t )}\r\n }\r\n {Occasionally(7, ReportDistanceFromHome())}\r\n }\r\n\r\n {if reportsystem.comment:\r\n Ha hecho {OneOf(\"una anotación\", \"un comentario\", \"una observación\")} {OneOf(\"sobre\", \"acerca de\", \"en relación a\")} este sistema. Dice así: {system.comment}. Fin de la {OneOf(\"nota\",\"cita\")}.\r\n }\r\n }\r\n|else:\r\n Porta-Flotas llegando al sistema {P(event.systemname)}\r\n {if len(event.shortname) > 0:\r\n {set reportBody to BodyDetails(event.bodyname, event.systemname)} \r\n cerca de \r\n \r\n{_ ****** BUSCA GENERO Y NUMERO DE reportBody.bodytype ****** _}\r\n\r\n{_ coge la primera palabra}\r\n{set tipocuerpo to token(reportBody.bodytype, \" \",0)} \r\n\r\n{_ mira si es femenino}\r\n{if find(tipocuerpo,\"a\",len(tipocuerpo)-2)!=-1: {set el to \"la\"}\r\n|else: {set el to \"el\"}\r\n}\r\n\r\n{_ mira si es plural}\r\n{ if find(tipocuerpo,\"s\",len(tipocuerpo)-1)!=-1: \r\n\t{if el = \"la\": {set el to \"las\"}\r\n\t|else: {set el to \"los\"}\r\n\t}\r\n}\r\n\r\n{_ ************************************************** _}\r\n\r\n {if len(reportBody.bodytype) > 0: \r\n \t\t{if event.bodyname = event.systemname: su estrella principal\r\n\t\t\t|else:{el} {reportBody.bodytype} {P(event.shortname)}\r\n\t\t\t}\r\n |else: el cuerpo {P(event.shortname)}}\r\n \r\n }.\r\n}", "defaultValue": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'carrier jump')}\r\n{SetState('eddi_context_last_action', 'start')}\r\n{SetState('eddi_context_system_name', event.system)}\r\n{SetState('eddi_context_system_system', event.system)}\r\n{SetState('eddi_context_system_lastvisit', system.lastVisitSeconds)}\r\n\r\n{if environment = \"Docked\":\r\n\r\n {_ Zero the 'remaining jump' context to only use values following this event _}\r\n {SetState('eddi_context_remaining_jumps', 0)}\r\n\r\n {set reportsystem to SystemDetails(event.systemname)}\r\n\r\n {OneOf(\"Jump in progress\",\"Entering portal\")} to the {P(reportsystem.systemname)} system\r\n {if len(event.shortname) > 0:\r\n {set reportBody to BodyDetails(event.bodyname, event.systemname)} \r\n near\r\n {if len(reportBody.bodytype) > 0: {reportBody.bodytype} |else: body}\r\n {P(event.shortname)}\r\n }.\r\n\r\n {if reportsystem.systemname = homesystem.systemname:\r\n Welcome home, {F(\"Honorific\")}\r\n |else: \r\n {if lastsystem.allegiance && lastsystem.allegiance != \"None\" && lastsystem.allegiance != \"Independent\" && (!reportsystem.allegiance || reportsystem.allegiance = \"None\" || reportsystem.allegiance = \"Independent\"):\r\n You {OneOf(\"are leaving\", \"have left\", \"are no longer in\")} {lastsystem.allegiance} space.\r\n |elif lastsystem.allegiance && lastsystem.allegiance != reportsystem.allegiance && system.allegiance && system.allegiance != \"None\":\r\n You {OneOf(\"are now in\", \"have entered\", \"are entering\")} {reportsystem.allegiance} space.\r\n {if cmdr.title != \"Commander\":\r\n Welcome back {F(\"Honorific\")}.\r\n }\r\n }\r\n\r\n {if reportsystem.visits = 0:\r\n This is your first visit to this system.\r\n |elif reportsystem.visits = 1:\r\n This is your second visit to this system.\r\n |elif reportsystem.visits = 2:\r\n {Occasionally(2, \"This is your third visit to this system.\")}\r\n |elif reportsystem.visits = 3:\r\n {Occasionally(2, \"This is your fourth visit to this system.\")}\r\n |else:\r\n {Occasionally(3, \"You have visited this system {reportsystem.visits} times.\")}\r\n }\r\n\r\n {if reportsystem.population && reportsystem.population > 0:\r\n {if SecondsSince(reportsystem.lastVisitSeconds) > 3600:\r\n {F(\"System report\")}\r\n }\r\n |else:\r\n {OneOf(\"This system is not populated\",\"There is no human presence here\", \"Humans have yet to colonise this system\")}.\r\n }\r\n\r\n {if reportsystem.distancefromhome:\r\n {set ReportDistanceFromHome() to:\r\n {return cat(\r\n \tOneOf(\"You are\", \"Current location is\", \"You are now\"), \" \",\r\n\t Humanise(reportsystem.distancefromhome), \" lightyears from \",\r\n\t OneOf(\"home\", \"{P(homesystem.name)}\"), \".\"\r\n\t )}\r\n }\r\n {Occasionally(7, ReportDistanceFromHome())}\r\n }\r\n\r\n {if reportsystem.comment:\r\n You made a {OneOf(\"note\", \"comment\", \"remark\")} {OneOf(\"about\", \"for\", \"on\")} this system. It {OneOf(\"is as follows\", \"says\", \"reads\", \"is\")} {reportsystem.comment}.\r\n }\r\n }\r\n|else:\r\n Fleet carrier arriving at the {P(event.systemname)} system\r\n {if len(event.shortname) > 0:\r\n {set reportBody to BodyDetails(event.bodyname, event.systemname)} \r\n near\r\n {if len(reportBody.bodytype) > 0: {reportBody.bodytype} |else: body}\r\n {P(event.shortname)}\r\n }.\r\n}", "default": false }, "Carrier jump request": { "name": "Carrier jump request", "description": "Triggered when you request that your fleet carrier performs a jump", "enabled": true, "priority": 3, "responder": true, "script": "\r\nPlanificado salto del Porta-Flotas. Curso establecido para el sistema estelar {P(event.systemname)} \r\n{if len(event.shortname) > 0:\r\n {set reportBody to BodyDetails(event.bodyname, event.systemname)} \r\n , con destino cerca de \r\n \r\n{_ ****** BUSCA GENERO Y NUMERO DE reportBody.bodytype ****** _}\r\n\r\n{_ coge la primera palabra}\r\n{set tipocuerpo to token(reportBody.bodytype, \" \",0)} \r\n\r\n{_ mira si es femenino}\r\n{if find(tipocuerpo,\"a\",len(tipocuerpo)-2)!=-1: {set el to \"la\"}\r\n|else: {set el to \"el\"}\r\n}\r\n\r\n{_ mira si es plural}\r\n{ if find(tipocuerpo,\"s\",len(tipocuerpo)-1)!=-1: \r\n\t{if el = \"la\": {set el to \"las\"}\r\n\t|else: {set el to \"los\"}\r\n\t}\r\n}\r\n{_ ************************************************** _}\r\n \r\n \r\n {if len(reportBody.bodytype) > 0:\r\n \t{if event.bodyname = event.systemname: su estrella principal\r\n\t\t|else:{el} {reportBody.bodytype}\r\n\t}\r\n \r\n |else: el cuerpo}, \r\n {P(event.shortname)}\r\n}.", "defaultValue": "Fleet carrier jump scheduled. Course laid in for the {P(event.systemname)} star system\r\n{if len(event.shortname) > 0:\r\n {set reportBody to BodyDetails(event.bodyname, event.systemname)} \r\n , arriving near\r\n {if len(reportBody.bodytype) > 0: {reportBody.bodytype} |else: body}\r\n {P(event.shortname)}\r\n}.", "default": false }, "Carrier jumped": { "name": "Carrier jumped", "description": "Triggered when you are docked at a fleet carrier as it completes a jump", "enabled": true, "priority": 3, "responder": true, "script": "{_ Carrier jumped }\r\n{_ Triggered when you are docked at a fleet carrier as it completes a jump }\r\n\r\n{_ Context }\r\n{SetState('eddi_context_last_subject', 'carrier jump')}\r\n{SetState('eddi_context_last_action', 'complete')}\r\n{SetState('eddi_context_system_name', event.systemname)}\r\n{SetState('eddi_context_system_system', event.systemname)}\r\n{SetState('eddi_context_wanted_list', \"\")}\r\n\r\nEl Porta-Flotas {Spacialise(event.carriername)}, ha llegado al sistema {P(event.systemname, \"starsystem\")}\r\n{if event.bodyname && len(event.bodyname) > 0:\r\n\r\n{_ ****** BUSCA GENERO Y NUMERO DE event.bodytype ****** _}\r\n\r\n{_ coge la primera palabra}\r\n{set tipocuerpo to token(event.bodytype, \" \",0)} \r\n\r\n{_ mira si es femenino}\r\n{if find(tipocuerpo,\"a\",len(tipocuerpo)-2)!=-1: {set el to \"la\"}\r\n|else: {set el to \"el\"}\r\n}\r\n\r\n{_ mira si es plural}\r\n{ if find(tipocuerpo,\"s\",len(tipocuerpo)-1)!=-1: \r\n\t{if el = \"la\": {set el to \"las\"}\r\n\t|else: {set el to \"los\"}\r\n\t}\r\n}\r\n\r\n{_ ************************************************** _}\r\n , cerca de \r\n{if event.bodyname = event.systemname: su estrella principal\r\n|else:{el} {event.bodytype}: {P(event.bodyname, \"body\")}\r\n}\r\n\r\n\r\n}.\r\n{Pause(1000)}\r\n\r\n{_ Update mission data if we have arrived at our mission destination. _}\r\n{if destinationsystem && destinationsystem.name != \"\":\r\n {RouteDetails(\"update\")}\r\n}\r\n\r\n{_ Report faction states only if it's been more than an hour (3600 seconds) since our last visit. _}\r\n{if SecondsSince(state.eddi_context_system_lastvisit) / 3600 > 1:\r\n {set state_report to F(\"System state report\")}\r\n}\r\n\r\n{set system_engineer to F(\"Engineer report\")}\r\n{set system_missions to F(\"Mission check system\")}\r\n{set system_crimes to F(\"Crime check system\")}\r\n\r\n{if state_report || system_engineer || system_missions || (system_crimes && find(system_crimes, \"Alerta\") < 0):\r\n {Pause(500)}\r\n Información:\r\n}\r\n\r\n{if state_report:\r\n {Pause(500)}\r\n {state_report}\r\n}\r\n{if system_engineer:\r\n {Pause(500)}\r\n {system_engineer}\r\n}\r\n{if system_missions:\r\n {Pause(500)}\r\n {system_missions}\r\n}\r\n{if system_crimes:\r\n {Pause(500)}\r\n {system_crimes}\r\n}\r\n", "defaultValue": "{_ Carrier jumped }\r\n{_ Triggered when you are docked at a fleet carrier as it completes a jump }\r\n\r\n{_ Context }\r\n{SetState('eddi_context_last_subject', 'carrier jump')}\r\n{SetState('eddi_context_last_action', 'complete')}\r\n{SetState('eddi_context_system_name', event.systemname)}\r\n{SetState('eddi_context_system_system', event.systemname)}\r\n{SetState('eddi_context_wanted_list', \"\")}\r\n\r\nFleet carrier {P(event.carriername)} has arrived at the {P(event.systemname)} system\r\n{if event.bodyname && len(event.bodyname) > 0:\r\n , near the {event.bodytype} {P(event.bodyname)}\r\n}.\r\n{Pause(1000)}\r\n\r\n{_ Update mission data if we have arrived at our mission destination. _}\r\n{if destinationsystem && destinationsystem.name != \"\":\r\n {RouteDetails(\"update\")}\r\n}\r\n\r\n{_ Report faction states only if it's been more than an hour (3600 seconds) since our last visit. _}\r\n{if SecondsSince(state.eddi_context_system_lastvisit) / 3600 > 1:\r\n {set state_report to F(\"System state report\")}\r\n}\r\n\r\n{set system_missions to F(\"Mission check system\")}\r\n{set system_crimes to F(\"Crime check system\")}\r\n\r\n{if state_report || system_missions || (system_crimes && find(system_crimes, \"Warning\") < 0):\r\n {Pause(500)}\r\n Information:\r\n}\r\n\r\n{if state_report:\r\n {Pause(500)}\r\n {state_report}\r\n}\r\n{if system_missions:\r\n {Pause(500)}\r\n {system_missions}\r\n}\r\n{if system_crimes:\r\n {Pause(500)}\r\n {system_crimes}\r\n}\r\n", "default": false }, "Carrier pads locked": { "name": "Carrier pads locked", "description": "Triggered when your fleet carrier locks landing pads prior to a jump", "enabled": true, "priority": 3, "responder": true, "script": "Anclajes bloqueados. Inicializando preparativos finales para el salto.", "defaultValue": "Landing pads locked. Final jump preparations initiated.", "default": false }, "Cleared save": { "name": "Cleared save", "description": "Se activa cuando eliminas tu partida", "enabled": true, "priority": 3, "responder": true, "script": "{_ Context }\n{SetState('eddi_context_last_subject', 'save')}\n{SetState('eddi_context_last_action', 'clear')}\n\nAdiós {F(\"Honorific\")}. Ha sido un verdadero honor.", "defaultValue": "{_ Context }\n{SetState('eddi_context_last_subject', 'save')}\n{SetState('eddi_context_last_action', 'clear')}\n\nAdiós {F(\"Honorific\")}. Ha sido un verdadero honor.", "default": true }, "Cockpit breached": { "name": "Cockpit breached", "description": "Se activa cuando se rompe la cabina de la nave", "enabled": true, "priority": 3, "responder": true, "script": "{_ Context }\n{SetState('eddi_context_last_subject', 'cockpit')}\n{SetState('eddi_context_last_action', 'breach')}\n\n{OneOf(\"¿Soy yo? ¿o aquí hacemuchofrío?\",\"Atención. Cristal de cabina destruido. Activando módulo de supervivencia.\")}", "defaultValue": "{_ Context }\n{SetState('eddi_context_last_subject', 'cockpit')}\n{SetState('eddi_context_last_action', 'breach')}\n\n{OneOf(\"¿Soy yo? ¿o aquí hacemuchofrío?\",\"Atención. Cristal de cabina destruido. Activando módulo de supervivencia.\")}", "default": true }, "Commander continued": { "name": "Commander continued", "description": "Se activa cuando cargas una partida guardada", "enabled": true, "priority": 3, "responder": true, "script": "{_ Commander continued }\r\n{_ Triggered when you continue an existing game }\r\n\r\n\r\n{SetState('eddi_context_last_subject', 'load_game')}\r\n{SetState('eddi_context_system_name', system.name)}\r\n{SetState('eddi_context_body_name', body.name)}\r\n{SetState('eddi_context_station_name', station.name)}\r\n{SetState('eddi_context_lastdocked', station.name)}\r\n{SetState('eddi_context_currentshipid', event.shipid)}\r\n\r\n{_ If VoiceAttack is not used, set Auto Route to no, and set default Routing system _}\r\n{if state.eddi_context_mission_route_useauto = \"\" || state.eddi_context_mission_route_useauto = null:\r\n {SetState('eddi_context_mission_route_useauto', \"no\")}\r\n {SetState('missionsrouteuseeddi', \"no\")}\r\n}\r\n\r\n\r\n{set time to token(format(SecondsSince(0), \"dl:yyyy-MM-dd HH:mm:ss\"), \" \", 1)}\r\n{set time to cast(token(time, \":\", 0), \"n\")}\r\n\r\n{if cmdr.gender = \"Female\":\r\n {set o to \"a\"}{set e to \"a\"}\r\n|else:\r\n {set o to \"o\"}{set e to \"e\"}\r\n}\r\n\r\n{if time < 12:\r\n Buenos días\r\n|elif time > 11 && time < 20:\r\n Buenas tardes\r\n|else:\r\n Buenas noches\r\n}\r\n\r\n{F(\"Honorific\")}{OneOf(\". Bienvenid{o} de nuevo\",\", l{e} estaba esperando\")}.\r\n\r\n{set station to F(\"Mission check station\")}\r\n{set system to F(\"Mission check system\")}\r\n{set expiring to F(\"Mission Check Expiring\")}\r\n\r\n{if station: {station}\r\n|elif system: {system}\r\n|else: {F(\"Mission check galaxy\")}\r\n}\r\n\r\n{if expiring: {expiring}}", "defaultValue": "{_ Commander continued }\r\n{_ Triggered when you continue an existing game }\r\n\r\n{SetState('eddi_context_last_subject', 'load_game')}\r\n{SetState('eddi_context_system_system', system.name)}\r\n{SetState('eddi_context_body_name', body.name)}\r\n{SetState('eddi_context_station_name', station.name)}\r\n{SetState('eddi_context_lastdocked', station.name)}\r\n{SetState('eddi_context_currentshipid', event.shipid)}\r\n\r\n{if cmdr.gender = \"Female\":\r\n {set o to \"a\"}{set e to \"a\"}\r\n|else:\r\n {set o to \"o\"}{set e to \"e\"}\r\n}\r\n\r\n{set time to token(format(SecondsSince(0), \"dl:yyyy-MM-dd HH:mm:ss\"), \" \", 1)}\r\n{set time to cast(token(time, \":\", 0), \"n\")}\r\n\r\n\r\n{if time > 5 && time < 12:\r\n Buenos días\r\n|elif time > 12 && time < 20:\r\n Buenas tardes\r\n|else:\r\n Buenas noches\r\n}\r\n\r\n{F(\"Honorific\")}{OneOf(\". Bienvenid{o} de nuevo\",\", l{e} estaba esperando\")}.\r\n\r\n{set station to F(\"Mission check station\")}\r\n{set system to F(\"Mission check system\")}\r\n{set expiring to F(\"Mission Check Expiring\")}\r\n\r\n{if station: {station}\r\n|elif system: {system}\r\n|else: {F(\"Mission check galaxy\")}\r\n}\r\n\r\n{if expiring: {expiring}}\r\n\r\n\r\n", "default": false }, "Commander loading": { "name": "Commander loading", "description": "Triggered at the very beginning of loading a game", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Commander progress": { "name": "Commander progress", "description": "Se activa cuando se informa de tu progreso", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Commander promotion": { "name": "Commander promotion", "description": "Triggered when one of your commander ranks increases", "enabled": true, "priority": 3, "responder": true, "script": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'rank')}\r\n{SetState('eddi_context_last_action', 'promotion')}\r\n{SetState('eddi_context_rank_name', lower(event.rank_type))}\r\n{SetState('eddi_context_rank_amount', event.rating)}\r\n\r\n\r\n{if event.rank_type = \"Combat\":\r\n Has sido reconocido por tu valor en el combate, {F(\"Honorific\")}.\r\n|elif event.rank_type = \"CQC\":\r\n Has sido reconocido por tu valor en el combate cercano CQC, {F(\"Honorific\")}.\r\n|elif event.rank_type = \"Trade\":\r\n Has sido reconocido por tu perspicacia comercial, {F(\"Honorific\")}.\r\n|elif event.rank_type = \"Exploration\":\r\n Has sido reconocido por tu trabajo como explorador, {F(\"Honorific\")}.\r\n|elif event.rank_type = \"Federation\":\r\n {set plainHonorific to when(cmdr.gender = 'Female', 'Madam', 'Sir')}\r\n Enhorabuena {OneOf('Comandante {CommanderName()}', plainHonorific)}! Has sido\r\n {OneOf('Has sido ascendido a', 'Te han promocionado al', 'Te han dado el')}\r\n rango de {event.rank}\r\n {Occasionally(2, OneOf('en la Armada Federal', 'por sus servicios a la Federación'))}.\r\n {if event.rating = 3:\r\n Ya puedes adquirir una Nave de Descenso Federal.\r\n |elif event.rating = 4:\r\n Has recibido el permiso para ir al sistema {P('Sol', 'starsystem')}.\r\n |elif event.rating = 5:\r\n Ya puedes adquirir una Nave de Asalto Federal, y además ya tienes permiso para acceder a los sistemas estelares {P('Vega', 'starsystem')} y {P('Beta Hydri', 'starsystem')}.\r\n |elif event.rating = 6:\r\n Ya tienes permiso para acceder al sistema {P('PLX 695', 'starsystem')}.\r\n |elif event.rating = 7:\r\n Ya puedes adquirir La Cañonera Federal, y además ya tienes acceso al sistema {P('Ross 128', 'starsystem')}.\r\n |elif event.rating = 8:\r\n Ya tienes permiso para acceder al sistema {P('Exbeur', 'starsystem')}.\r\n |elif event.rating = 10:\r\n Te han dado permiso para acceder al sistema {P('Hors', 'starsystem')}.\r\n |elif event.rating = 12:\r\n Ya puedes adquirir una Corveta Federal.\r\n |elif event.rating = 14:\r\n Has adquirido el rango más alto disponible como miembro de la Reserva Naval Federal.\r\n } \r\n|elif event.rank_type = \"Empire\":\r\n Enhorabuena {F(\"Empire honorific\")},\r\n La Armada Imperial \r\n {OneOf(\"te ha dado el rango de \", \"te ha promocionado a \", \"te ha concedido el rango de \", \"te ha nombrado \")}\r\n {event.rank}\r\n {Occasionally(2, \"por tus servicios prestados al Imperio\")}.\r\n {if event.rating = 1:\r\n Ya puedes adquirir la Íguel Imperial.\r\n |elif event.rating = 3:\r\n Ya puedes adquirir la Nave de Correo Imperial.\r\n |elif event.rating = 4:\r\n Te han dado el honor de poder acceder al sistema {P(\"Achenar\", \"starsystem\")}.\r\n |elif event.rating = 7:\r\n Ya puedes adquirir La Clíper Imperial. Además tienes el honor de poder acceder al sistema {P(\"Summerland\", \"starsystem\")}.\r\n |elif event.rating = 10:\r\n Te han dado el honor de acceder al sistema estelar {P(\"Facece\", \"starsystem\")}.\r\n |elif event.rating = 12:\r\n Ya puedes adquirir una flamante Cúter Imperial.\r\n |elif event.rating = 14:\r\n Te han reconocido el mayor {OneOf(\"rango\", \"honor\")} disponible como miembro de la Reserva Naval Imperial.\r\n }\r\n|elif event.rank_type = \"Mercenary\":\r\n Ahora serás reconocido como Mercenario, {F(\"Honorific\")}.\r\n|elif event.rank_type = \"Exobiologist\":\r\n Ahora serás reconocido por tu duro trabajo como Exobiólogo, {F(\"Honorific\")}.\r\n}", "defaultValue": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'rank')}\r\n{SetState('eddi_context_last_action', 'promotion')}\r\n{SetState('eddi_context_rank_name', lower(event.rank_type))}\r\n{SetState('eddi_context_rank_amount', event.rating)}\r\n\r\n{if event.rank_type = \"Combat\":\r\n You have been recognised for your valor as a combat pilot, {F(\"Honorific\")}.\r\n|elif event.rank_type = \"CQC\":\r\n You have been recognised for your valor as a close quarters combat pilot, {F(\"Honorific\")}.\r\n|elif event.rank_type = \"Trade\":\r\n You have been recognised for your trading acumen, {F(\"Honorific\")}.\r\n|elif event.rank_type = \"Exploration\":\r\n You have been recognised for your work as an explorer, {F(\"Honorific\")}.\r\n|elif event.rank_type = \"Federation\":\r\n {set plainHonorific to when(cmdr.gender = 'Female', 'Madam', 'Sir')}\r\n Congratulations {OneOf('Commander {CommanderName()}', plainHonorific)}! You have\r\n {OneOf('achieved', 'been promoted to', 'been granted')}\r\n the rank of {event.rank}\r\n {Occasionally(2, OneOf('within the Federal Navy', 'for your service to the Federation'))}.\r\n {if event.rating = 3:\r\n You now qualify to purchase the Federal Dropship.\r\n |elif event.rating = 4:\r\n This grants you access to the {P('Sol', 'starsystem')} system.\r\n |elif event.rating = 5:\r\n You now qualify to purchase the Federal Assault Ship, and have access to the {P('Vega', 'starsystem')} and {P('Beta Hydri', 'starsystem')} systems.\r\n |elif event.rating = 6:\r\n This grants you access to the {P('PLX 695', 'starsystem')} system.\r\n |elif event.rating = 7:\r\n You now qualify to purchase the Federal Gunship, and have access to the {P('Ross 128', 'starsystem')} system.\r\n |elif event.rating = 8:\r\n This grants you access to the {P('Exbeur', 'starsystem')} system.\r\n |elif event.rating = 10:\r\n This grants you access to the {P('Hors', 'starsystem')} system.\r\n |elif event.rating = 12:\r\n You now qualify to purchase the Federal Corvette.\r\n |elif event.rating = 14:\r\n This is the highest rank available to a member of the Federal Naval Reserve.\r\n } \r\n|elif event.rank_type = \"Empire\":\r\n Congratulations {F(\"Empire honorific\")},\r\n the Imperial Navy has \r\n {OneOf(\"granted you a promotion\", \"promoted you\", \"advanced you\", \"named you\")}\r\n to the rank of {event.rank}\r\n {Occasionally(2, OneOf(\"within the Imperial Navy\", \"for your service to the Empire\"))}.\r\n {if event.rating = 1:\r\n You may now purchase the Imperial Eagle.\r\n |elif event.rating = 3:\r\n You may now purchase the Imperial Courier.\r\n |elif event.rating = 4:\r\n This grants you the honour of entering the {P(\"Achenar\", \"starsystem\")} system.\r\n |elif event.rating = 7:\r\n This allows you to purchase the Imperial Clipper, and the honour of entering the {P(\"Summerland\", \"starsystem\")} system.\r\n |elif event.rating = 10:\r\n This grants you the honour of entering the {P(\"Facece\", \"starsystem\")} system\r\n |elif event.rating = 12:\r\n You may now purchase the Imperial Cutter.\r\n |elif event.rating = 14:\r\n This is the highest {OneOf(\"rank\", \"honor\")} available to a member of the Imperial Naval Reserve.\r\n }\r\n|elif event.rank_type = \"Mercenary\":\r\n You have been recognised for your skills as a mercenary, {F(\"Honorific\")}.\r\n|elif event.rank_type = \"Exobiologist\":\r\n You have been recognised for your work as an exobiologist, {F(\"Honorific\")}.\r\n}", "default": false }, "Commander ratings": { "name": "Commander ratings", "description": "Se activa cuando se informa de tu clasificación", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Commander reputation": { "name": "Commander reputation", "description": "Triggered when your reputation is reported", "enabled": true, "priority": 3, "responder": true, "script": "{_ A note on thresholds... _}\r\n{_ -100.. -90: hostile _}\r\n{_ -90.. -35: unfriendly _}\r\n{_ -35..+ 4: neutral _}\r\n{_ +4..+35: cordial _}\r\n{_ +35..+90: friendly _}\r\n{_ +90..+100: allied _}\r\n", "defaultValue": "{_ A note on thresholds... _}\r\n{_ -100.. -90: hostile _}\r\n{_ -90.. -35: unfriendly _}\r\n{_ -35..+ 4: neutral _}\r\n{_ +4..+35: cordial _}\r\n{_ +35..+90: friendly _}\r\n{_ +90..+100: allied _}\r\n", "default": true }, "Commander started": { "name": "Commander started", "description": "Se activa cuando empiezas una partida nueva", "enabled": true, "priority": 3, "responder": true, "script": "\r\n{SetState('eddi_context_last_subject', 'load_game')}\r\n{SetState('eddi_context_system_system', system.name)}\r\n{SetState('eddi_context_body_name', body.name)}\r\n{SetState('eddi_context_station_name', station.name)}\r\n{SetState('eddi_context_lastdocked', station.name)}\r\n{SetState('eddi_context_currentshipid', event.shipid)}\r\n\r\n{_ If VoiceAttack is not used, set Auto Route to no, and set default Routing system _}\r\n{if state.eddi_context_mission_route_useauto = \"\" || state.eddi_context_mission_route_useauto = null:\r\n {SetState('eddi_context_mission_route_useauto', \"no\")}\r\n {SetState('missionsrouteuseeddi', \"no\")}\r\n}\r\n\r\n{if cmdr.gender = \"Female\":\r\n {set o to \"a\"}\r\n|else:\r\n {set o to \"o\"}\r\n}\r\n\r\n{set time to token(format(SecondsSince(0), \"dl:yyyy-MM-dd HH:mm:ss\"), \" \", 1)}\r\n{set time to cast(token(time, \":\", 0), \"n\")}\r\n\r\n{if time > 5 && time < 12:\r\n Buenos días\r\n|elif time > 12 && time < 20:\r\n Buenas tardes\r\n|else:\r\n Buenas noches\r\n}\r\n\r\n{F(\"Honorific\")}, y bienvenid{o} a bordo. Soy Shirka. Su asistente de vuelo personal. Le acompañaré en sus viajes para informarle y asistirle en todo lo que necesite.\r\n\r\n{_ Clear Fines & Bounties}\r\n{F(\"FinesBounties_Initialise\")}\r\n", "defaultValue": "\r\n{SetState('eddi_context_last_subject', 'load_game')}\r\n{SetState('eddi_context_system_system', system.name)}\r\n{SetState('eddi_context_body_name', body.name)}\r\n{SetState('eddi_context_station_name', station.name)}\r\n{SetState('eddi_context_lastdocked', station.name)}\r\n{SetState('eddi_context_currentshipid', event.shipid)}\r\n\r\n{_ If VoiceAttack is not used, set Auto Route to no, and set default Routing system _}\r\n{if state.eddi_context_mission_route_useauto = \"\" || state.eddi_context_mission_route_useauto = null:\r\n {SetState('eddi_context_mission_route_useauto', \"no\")}\r\n {SetState('missionsrouteuseeddi', \"no\")}\r\n}\r\n\r\n{if cmdr.gender = \"Female\":\r\n {set o to \"a\"}\r\n|else:\r\n {set o to \"o\"}\r\n}\r\n\r\n{set time to token(format(SecondsSince(0), \"dl:yyyy-MM-dd HH:mm:ss\"), \" \", 1)}\r\n{set time to cast(token(time, \":\", 0), \"n\")}\r\n\r\n{if time > 5 && time < 12:\r\n Buenos días\r\n|elif time > 12 && time < 20:\r\n Buenas tardes\r\n|else:\r\n Buenas noches\r\n}\r\n\r\n{F(\"Honorific\")}, y bienvenid{o} a bordo. Soy Shirka. Su asistente de vuelo personal. Le acompañaré en sus viajes para informarle y asistirle en todo lo que necesite.\r\n\r\n{_ Clear Fines & Bounties}\r\n{F(\"FinesBounties_Initialise\")}\r\n", "default": true }, "Commodity collected": { "name": "Commodity collected", "description": "Se activa cuando recoges mercancia con tu nave o VRS", "enabled": true, "priority": 3, "responder": true, "script": "{_ Context }\n{SetState('eddi_context_last_subject', 'commodity')}\n{SetState('eddi_context_last_action', 'collect')}\n{SetState('eddi_context_cargo_name', event.commodity)}\n\n{event.commodity} a bordo.", "defaultValue": "{_ Context }\n{SetState('eddi_context_last_subject', 'commodity')}\n{SetState('eddi_context_last_action', 'collect')}\n{SetState('eddi_context_cargo_name', event.commodity)}\n\n{event.commodity} a bordo.", "default": true }, "Commodity ejected": { "name": "Commodity ejected", "description": "Se activa cuando expulsas mercancia de tu nave o VRS", "enabled": true, "priority": 3, "responder": true, "script": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'commodity')}\r\n{SetState('eddi_context_last_action', 'eject')}\r\n{SetState('eddi_context_commodity_name', event.commodity)}\r\n", "defaultValue": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'commodity')}\r\n{SetState('eddi_context_last_action', 'eject')}\r\n{SetState('eddi_context_commodity_name', event.commodity)}\r\n", "default": true }, "Commodity purchase check": { "name": "Commodity purchase check", "description": "Verifica que mercancías son las mejores para adquirir", "enabled": true, "priority": null, "responder": false, "script": "{for commodity in station.commodities:\n {if commodity.stock > 0 && commodity.buyprice < commodity.avgprice:\n {set discount to commodity.avgprice - commodity.buyprice}\n {if discount > best.avgprice - best.buyprice:\n {set thirdbest to secondbest}\n {set secondbest to best}\n {set best to commodity}\n |elif discount > secondbest.avgprice - secondbest.buyprice:\n {set thirdbest to secondbest}\n {set secondbest to commodity}\n |elif discount > thirdbest.avgprice - thirdbest.buyprice:\n {set thirdbest to commodity}\n }\n }\n}\n\n{if best:\n El mercado local está vendiendo {best.name} al mejor precio\n {if secondbest: además de {secondbest.name}\n {if thirdbest: y {thirdbest.name}\n}}.}", "defaultValue": "{for commodity in station.commodities:\n {if commodity.stock > 0 && commodity.buyprice < commodity.avgprice:\n {set discount to commodity.avgprice - commodity.buyprice}\n {if discount > best.avgprice - best.buyprice:\n {set thirdbest to secondbest}\n {set secondbest to best}\n {set best to commodity}\n |elif discount > secondbest.avgprice - secondbest.buyprice:\n {set thirdbest to secondbest}\n {set secondbest to commodity}\n |elif discount > thirdbest.avgprice - thirdbest.buyprice:\n {set thirdbest to commodity}\n }\n }\n}\n\n{if best:\n El mercado local está vendiendo {best.name} al mejor precio\n {if secondbest\n ,, además de {secondbest.name}\n {if thirdbest:\n y {thirdbest.name}\n }\n }\n.}\n\n", "default": false }, "Commodity purchased": { "name": "Commodity purchased", "description": "Se activa cuando compras cualquier producto del mercado local", "enabled": true, "priority": 3, "responder": true, "script": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'commodity')}\r\n{SetState('eddi_context_last_action', 'purchase')}\r\n{SetState('eddi_context_commodity_name', event.commodity)}\r\n{SetState('eddi_context_commodity_amount', event.amount)}\r\n\r\n{if event.amount = 1:\r\n Acabas de comprar una tonelada de {event.commodity} por {event.price} créditos.\r\n|elif event.amount > 1:\r\n Acabas de comprar {event.amount} toneladas de {event.commodity} a {event.price} créditos por tonelada. El coste total es de {Humanise(event.amount * event.price)} créditos.\r\n}", "defaultValue": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'commodity')}\r\n{SetState('eddi_context_last_action', 'purchase')}\r\n{SetState('eddi_context_commodity_name', event.commodity)}\r\n{SetState('eddi_context_commodity_amount', event.amount)}\r\n\r\n{if event.amount = 1:\r\n Acabas de comprar una tonelada de {event.commodity} por {event.price} créditos.\r\n|elif event.amount > 1:\r\n Acabas de comprar {event.amount} toneladas de {event.commodity} a {event.price} créditos por tonelada. El coste total es de {Humanise(event.amount * event.price)} créditos.\r\n}", "default": true }, "Commodity refined": { "name": "Commodity refined", "description": "Se activa cuando se refina un producto", "enabled": true, "priority": 3, "responder": true, "script": "{_ Context }\n{SetState('eddi_context_last_subject', 'commodity')}\n{SetState('eddi_context_last_action', 'refine')}\n{SetState('eddi_context_commodity_name', event.commodity)}\n\nUna tonelada de {event.commodity} refinada.", "defaultValue": "{_ Context }\n{SetState('eddi_context_last_subject', 'commodity')}\n{SetState('eddi_context_last_action', 'refine')}\n{SetState('eddi_context_commodity_name', event.commodity)}\n\nUna tonelada de {event.commodity} refinada.", "default": true }, "Commodity sale check": { "name": "Commodity sale check", "description": "Comprueba que mercancías se pueden vender en el mercado local", "enabled": true, "priority": null, "responder": false, "script": "{_ Function to find a given commodity in market}\n{set market(commodity) to:\n {for marketcommodity in station.commodities:\n {if marketcommodity.EDDBID = commodity.EDDBID:\n {return marketcommodity}\n }\n }\n}\n\n{set totalprofit to 0}\n{set missioncommodities to []}\n{set profitablecommodities to []}\n{set stolencommodities to []}\n{set unknowncommodities to []}\n\n{for cargo in inventory:\n {if cargo.name != 'Limpet':\n {set marketcommodity to market(cargo.commodity)}\n {set profit to (marketcommodity.sellprice - cargo.price) * cargo.other}\n\n {if cargo.stolen > 0:\n {set stolencommodities to cat(stolencommodities, [cargo.commodity])}\n |elif cargo.haulage > 0:\n {set missioncommodities to cat(missioncommodities, [cargo.commodity])}\n |elif !marketcommodity:\n {set unknowncommodities to cat(unknowncommodities, [cargo.commodity])}\n |elif marketcommodity && profit > 0:\n {set profitablecommodities to cat(profitablecommodities, [cargo.commodity])}\n {set totalprofit to totalprofit + profit}\n }\n }\n}\n\n{_ Let the user know about any commodities they can sell here for a profit}\n{if len(profitablecommodities) > 0:\n Puede vender su\n {if len(profitablecommodities) = 1:\n {profitablecommodities[0].name}\n |elif len(profitablecommodities) = 2:\n {profitablecommodities[0].name} y {profitablecommodities[1].name}\n |else:\n {set cur to 0}\n {while cur < len(profitablecommodities):\n {if cur = 0:\n {profitablecommodities[cur].name}\n |elif cur < len(profitablecommodities) - 1:\n , {profitablecommodities[cur].name}\n |else:\n , y {profitablecommodities[cur].name}\n }\n {set cur to cur + 1}\n }\n }\n con un beneficio de {totalprofit} créditos.\n}\n\n{_ Let the user know about any commodities about which we are unsure if they can sell for a profit}\n{if len(unknowncommodities) > 0:\n {if len(profitablecommodities) > 0: Además también }Podría vender\n {if len(unknowncommodities) = 1:\n {unknowncommodities[0].name}\n |elif len(unknowncommodities) = 2:\n {unknowncommodities[0].name} y {unknowncommodities[1].name}\n |else:\n {set cur to 0}\n {while cur < len(unknowncommodities):\n {if cur = 0:\n {unknowncommodities[cur].name}\n |elif cur < len(profitablecommodities) - 1:\n , {unknowncommodities[cur].name}\n |else:\n , y {unknowncommodities[cur].name}\n }\n {set cur to cur + 1}\n }\n }\n , aunque antes mejor verifique el margen de beneficio de {if len(unknowncommodities) > 1: ésta |else: éstas} antes de confirmar la transacción.\n}\n\n{_ Let the user know about any stolen commodities they can sell on the black market}\n{if len(stolencommodities) > 0:\n {if station.hasblackmarket:\n Puede deshacerse aquí de los bultos de \n {if len(stolencommodities) = 1:\n {stolencommodities[0].name}\n |elif len(stolencommodities) = 2:\n {stolencommodities[0].name} y{stolencommodities[1].name}\n |else:\n {set cur to 0}\n {while cur < len(stolencommodities):\n {if cur = 0:\n {stolencommodities[cur].name}\n |elif cur < len(stolencommodities) - 1:\n , {stolencommodities[cur].name}\n |else:\n , and {stolencommodities[cur].name}\n }\n {set cur to cur + 1}\n }\n }\n robados.\n |else:\n Recuerde que llevamos a bordo {OneOf(\"mercancía robada\", \"bienes robados\", \"cargamento robado\", \"bultos marcados con propiedad ajena\")}.\n }\n}\n\n{_ Let the user know about any mission related commodities they can sell on the black market}\n{if len(missioncommodities) > 0 && station.hasblackmarket:\n\n Puede {if len(stolencommodities) > 0: además} {OneOf('descargar', 'entregar')} aquí sus paquetes de\n {if len(missioncommodities) = 1:\n {missioncommodities[0].name}\n |elif len(missioncommodities) = 2:\n {missioncommodities[0].name} and {missioncommodities[1].name}\n |else:\n {set cur to 0}\n {while cur < len(missioncommodities):\n {if cur = 0:\n {missioncommodities[cur].name}\n |elif cur < len(missioncommodities) - 1:\n , {missioncommodities[cur].name}\n |else:\n , y {missioncommodities[cur].name}\n }\n {set cur to cur + 1}\n }\n }\n de la misión.\n}\n", "defaultValue": "{_ Function to find a given commodity in market}\n{set market(commodity) to:\n {for marketcommodity in station.commodities:\n {if marketcommodity.EDDBID = commodity.EDDBID:\n {return marketcommodity}\n }\n }\n}\n\n{set totalprofit to 0}\n{set missioncommodities to []}\n{set profitablecommodities to []}\n{set stolencommodities to []}\n{set unknowncommodities to []}\n\n{for cargo in inventory:\n {if cargo.name != 'Limpet':\n {set marketcommodity to market(cargo.commodity)}\n {set profit to (marketcommodity.sellprice - cargo.price) * cargo.other}\n\n {if cargo.stolen > 0:\n {set stolencommodities to cat(stolencommodities, [cargo.commodity])}\n |elif cargo.haulage > 0:\n {set missioncommodities to cat(missioncommodities, [cargo.commodity])}\n |elif !marketcommodity:\n {set unknowncommodities to cat(unknowncommodities, [cargo.commodity])}\n |elif marketcommodity && profit > 0:\n {set profitablecommodities to cat(profitablecommodities, [cargo.commodity])}\n {set totalprofit to totalprofit + profit}\n }\n }\n}\n\n{_ Let the user know about any commodities they can sell here for a profit}\n{if len(profitablecommodities) > 0:\n Puede vender su\n {if len(profitablecommodities) = 1:\n {profitablecommodities[0].name}\n |elif len(profitablecommodities) = 2:\n {profitablecommodities[0].name} y {profitablecommodities[1].name}\n |else:\n {set cur to 0}\n {while cur < len(profitablecommodities):\n {if cur = 0:\n {profitablecommodities[cur].name}\n |elif cur < len(profitablecommodities) - 1:\n , {profitablecommodities[cur].name}\n |else:\n , y {profitablecommodities[cur].name}\n }\n {set cur to cur + 1}\n }\n }\n con un beneficio de {totalprofit} créditos.\n}\n\n{_ Let the user know about any commodities about which we are unsure if they can sell for a profit}\n{if len(unknowncommodities) > 0:\n {if len(profitablecommodities) > 0: Además también }Podría vender\n {if len(unknowncommodities) = 1:\n {unknowncommodities[0].name}\n |elif len(unknowncommodities) = 2:\n {unknowncommodities[0].name} y {unknowncommodities[1].name}\n |else:\n {set cur to 0}\n {while cur < len(unknowncommodities):\n {if cur = 0:\n {unknowncommodities[cur].name}\n |elif cur < len(profitablecommodities) - 1:\n , {unknowncommodities[cur].name}\n |else:\n , y {unknowncommodities[cur].name}\n }\n {set cur to cur + 1}\n }\n }\n , aunque antes mejor verifique el margen de beneficio de {if len(unknowncommodities) > 1: ésta |else: éstas} antes de confirmar la transacción.\n}\n\n{_ Let the user know about any stolen commodities they can sell on the black market}\n{if len(stolencommodities) > 0:\n {if station.hasblackmarket:\n Puede deshacerse aquí de los bultos de \n {if len(stolencommodities) = 1:\n {stolencommodities[0].name}\n |elif len(stolencommodities) = 2:\n {stolencommodities[0].name} y{stolencommodities[1].name}\n |else:\n {set cur to 0}\n {while cur < len(stolencommodities):\n {if cur = 0:\n {stolencommodities[cur].name}\n |elif cur < len(stolencommodities) - 1:\n , {stolencommodities[cur].name}\n |else:\n , and {stolencommodities[cur].name}\n }\n {set cur to cur + 1}\n }\n }\n robados.\n |else:\n Recuerde que llevamos a bordo {OneOf(\"mercancía robada\", \"bienes robados\", \"cargamento robado\", \"bultos marcados con propiedad ajena\")}.\n }\n}\n\n{_ Let the user know about any mission related commodities they can sell on the black market}\n{if len(missioncommodities) > 0 && station.hasblackmarket:\n\n Puede {if len(stolencommodities) > 0: además} {OneOf('descargar', 'entregar')} aquí sus paquetes de\n {if len(missioncommodities) = 1:\n {missioncommodities[0].name}\n |elif len(missioncommodities) = 2:\n {missioncommodities[0].name} and {missioncommodities[1].name}\n |else:\n {set cur to 0}\n {while cur < len(missioncommodities):\n {if cur = 0:\n {missioncommodities[cur].name}\n |elif cur < len(missioncommodities) - 1:\n , {missioncommodities[cur].name}\n |else:\n , y {missioncommodities[cur].name}\n }\n {set cur to cur + 1}\n }\n }\n de la misión.\n}\n", "default": true }, "Commodity sold": { "name": "Commodity sold", "description": "Se activa cuando vende mercancía.", "enabled": true, "priority": 3, "responder": true, "script": "{_ Context }\n{SetState('eddi_context_last_subject', 'commodity')}\n{SetState('eddi_context_last_action', 'sell')}\n{SetState('eddi_context_commodity_name', event.commodity)}\n{SetState('eddi_context_commodity_amount', event.amount)}\n\n{if event.amount = 1:\n Ha vendido una sola tonelada de {event.commodity} por {event.price} créditos\n|elif event.amount > 1:\n Vendidas {event.amount} toneladas de {event.commodity} a {event.price} créditos cada una por un total de {event.amount * event.price} créditos\n}\n{if event.price != event.profit:\n {if event.profit < 0:\n , con una pérdida de {-1 * event.profit * event.amount} créditos.\n |elif event.profit = 0:\n al mismo precio de su compra.\n |else:\n , con un beneficio de {event.profit * event.amount} créditos.\n }\n}", "defaultValue": "{_ Context }\n{SetState('eddi_context_last_subject', 'commodity')}\n{SetState('eddi_context_last_action', 'sell')}\n{SetState('eddi_context_commodity_name', event.commodity)}\n{SetState('eddi_context_commodity_amount', event.amount)}\n\n{if event.amount = 1:\n Ha vendido una sola tonelada de {event.commodity} por {event.price} créditos\n|elif event.amount > 1:\n Vendidas {event.amount} toneladas de {event.commodity} a {event.price} créditos cada una por un total de {event.amount * event.price} créditos\n}\n{if event.price != event.profit:\n {if event.profit < 0:\n , con una pérdida de {-1 * event.profit * event.amount} créditos.\n |elif event.profit = 0:\n al mismo precio de su compra.\n |else:\n , con un beneficio de {event.profit * event.amount} créditos.\n }\n}", "default": true }, "Community goal": { "name": "Community goal", "description": "Se activa cuando se comprueba el estado de los objetivos de la comunidad", "enabled": true, "priority": 3, "responder": true, "script": "{_ Set Context _}\n{SetState('eddi_context_last_subject', 'community goal')}\n\n{_ Localize percentile bands }\n{set ordinalPercentile(percentile) to:\n {if percentile = 10:\n décima\n |elif percentile = 25:\n vigésima quinta\n |elif percentile = 50:\n quincuagésima\n |elif percentile = 75:\n septuagésima quinta\n |else:\n centésima\n }\n banda de percentiles.\n}\n\n{F(\"Honorific\")}, hemos recibido una actualización del objetivo de la comunidad \"{event.name}\".\n\n{for update in event.updates:\n {if update.type = \"Tier\":\n El objetivo ha alcanzado el nivel {event.tier}.\n |elif update.type = \"Percentile\":\n {if event.toprank:\n ¡Felicidades! Ahora eres uno de los principales contribuyentes de {event.topranksize}. \n |else:\n {if update.direction = \"Increase\":\n Has llegado a \n |else: \n Has caído en} \n la {ordinalPercentile(event.percentileband)}.\n }\n }\n}\n\n{if event.contribution > 0:\n {Occasionally(2, \"Actualmente,\")} Esperamos una recompensa de \n {Humanise(event.tierreward)} {if (event.tierreward) > 999.999:de }créditos.\n}", "defaultValue": "{_ Set Context _}\n{SetState('eddi_context_last_subject', 'community goal')}\n{_ Save goal location to context if there is only one goal present _}\n{if len(event.cgid) = 1:\n {SetState('eddi_context_goal_system_name', event.system[0])}\n {SetState('eddi_context_goal_station_name', event.station[0])}\n}\n\n{F('Honorific')}, \n\n{if len(event.name) > 1:\n {OneOf(\"ha expresado su interés en\", \"estoy siguiendo\")}\n los siguientes eventos de la comunidad:\n|else: \n El evento de la comunidad, \n}\n\n{set cur to 0}\n{while cur < len(event.name):\n\n {if cur = 0 && len(event.name) = 1:\n {_ nothing _}\n |elif cur = 0 && len(event.name) > 1:\n El primero,\n |elif cur < (len(event.name) - 1):\n el siguiente, \n |else:\n el último,\n }\n\n {event.name[cur]},\n\n {if event.iscomplete[cur]:\n {OneOf(\"está completado\", \"ha finalizado\")} \n |else: \n {if (event.expiry[cur] / 3600) < 12:\n {OneOf(\"está a punto de terminar\", \n \"terminará en {round(event.expiry[cur] / 3600, 1)} horas\", \n \"está casi completado\")}\n |else:\n {OneOf(\"no se ha completado aun,\", \n \"está activo\", \n \"está incompleto\")} \n }\n }\n\n {if event.tier[cur]:\n {OneOf(\"y ha alcanzado el\", \"y está ahora mismo en el\")} {event.tier[cur]}.\n {if event.contribution[cur] > 0:\n Su recompensa asignada está\n {Occasionally(2, \" actualmente \")}\n {Occasionally(2, \"calculada \")}\n en {event.tierreward[cur]} créditos\n {Occasionally(2, \"en el {event.percentileband[cur]} por ciento\")}\n }\n }.\n\n {_ Create a comparison function _}\n {set compare(stat) to: \n {if stat < 0.01:\n solo una fracción de \n |elif stat < 0.10:\n menos de un décimo de \n |elif stat < 0.25:\n menos de un cuarto de\n |elif stat < 0.5:\n menos de la mitad de\n |elif stat < 0.75:\n menos de\n |elif stat < 0.96: \n {OneOf(\"apenas un poco\",\"ligeramente\")}\n menos de\n |elif stat < 1.05:\n {OneOf(\"aproximádamente\",\"casi\")} \n igual a \n |elif stat < 1.25:\n un poco más de \n |elif stat < 1.5:\n más de \n |elif stat < 2:\n significativamente más de\n |else:\n bastante más de\n }\n }\n {set compare_contribution to (event.contribution[cur] / round(event.total[cur] / event.contributors[cur], 0))}\n\n {if compare_contribution != 0:\n {if event.toprank[cur]: \n Enhorabuena! \n Es usted uno de los {event.topranksize[cur]} mejores comandantes en este evento, habiendo contribuido con \n {compare(compare_contribution)}\n la media.\n |else:\n {Occasionally(2, \"Ha contribuido con \n {compare(compare_contribution)}\n la media.\")}\n }\n }\n\n {if !event.iscomplete[cur]:\n Puede \n {if event.contribution[cur] > 0: \n {OneOf(\"contribuir más\", \"hacer contribuciones adicionales\")} \n |else: \n {OneOf(\"contribuir\", \"hacer una contribución\")}\n }\n {if event.station[cur] = station.name:\n {Occasionally(2, \"aquí\")}\n {Occasionally(2, \"en esta estación\")}.\n |elif event.system[cur] = system.name:\n en {event.station[cur]}\n {Occasionally(2, \"aquí\")}\n {Occasionally(2, \"en este sistema\", \"en el sistema donde nos encontramos\")}.\n |else:\n en {event.station[cur]},\n en {OneOf(\"{event.system[cur]}\", \"el sistema {event.system[cur]}\" )}.\n }\n }\n\n {set cur to cur + 1}\n {Pause(1000)}\n}", "default": false }, "Community goals": { "name": "Community goals", "description": "Triggered when checking the status of community goals", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Controlling fighter": { "name": "Controlling fighter", "description": "Se activa cuando cambias el control de tu nave al de tu caza.", "enabled": true, "priority": 3, "responder": true, "script": "{OneOf(\"enlace neural\", \"enlace\")} {Occasionally(2, \"con el caza\")} {OneOf(\"iniciado\", \"establecido\", \"fijado\")}.", "defaultValue": "{OneOf(\"enlace neural\", \"enlace\")} {Occasionally(2, \"con el caza\")} {OneOf(\"iniciado\", \"establecido\", \"fijado\")}.", "default": true }, "Controlling ship": { "name": "Controlling ship", "description": "Se activa cuando cambias del control de tu caza al de tu nave", "enabled": true, "priority": 3, "responder": true, "script": "{OneOf(\"Enlace neural\", \"enlace\", \"enlace\")} {OneOf(\"terminado\", \"desconectado\")}.", "defaultValue": "{OneOf(\"Enlace neural\", \"enlace\", \"enlace\")} {OneOf(\"terminado\", \"desconectado\")}.", "default": true }, "Crew assigned": { "name": "Crew assigned", "description": "Se activa cuando asignas a alguien a tu tripulación", "enabled": true, "priority": 3, "responder": true, "script": "{if event.role = \"Active\":\r\n {event.name} está ahora en servicio activo.\r\n|else:\r\n {event.name} retirandose del servicio activo.\r\n}", "defaultValue": "{if event.role = \"Active\":\r\n {event.name} está ahora en servicio activo.\r\n|else:\r\n {event.name} retirandose del servicio activo.\r\n}", "default": true }, "Crew fired": { "name": "Crew fired", "description": "Se activa cuando despides a alguien de tu tripulación", "enabled": true, "priority": 3, "responder": true, "script": "{_ Context }\n{SetState('eddi_context_last_subject', 'crew')}\n{SetState('eddi_context_last_action', 'fire')}\n{SetState('eddi_context_crew_name', event.name)}\n\n{event.name} {OneOf(\"ha sido despedido\",\"ya no forma parte de la tripulación\")}.", "defaultValue": "{_ Context }\n{SetState('eddi_context_last_subject', 'crew')}\n{SetState('eddi_context_last_action', 'fire')}\n{SetState('eddi_context_crew_name', event.name)}\n\n{event.name} {OneOf(\"ha sido despedido\",\"ya no forma parte de la tripulación\")}.", "default": true }, "Crew hired": { "name": "Crew hired", "description": "Se activa cuando contratas a alguien a tu tripulación", "enabled": true, "priority": 3, "responder": true, "script": "{_ Context }\n{SetState('eddi_context_last_subject', 'crew')}\n{SetState('eddi_context_last_action', 'hire')}\n{SetState('eddi_context_crew_name', event.name)}\n\n{event.name} {OneOf(\"se ha unido a la tripulación\",\"ha sido contratado a su tripulación\")}.", "defaultValue": "{_ Context }\n{SetState('eddi_context_last_subject', 'crew')}\n{SetState('eddi_context_last_action', 'hire')}\n{SetState('eddi_context_crew_name', event.name)}\n\n{event.name} {OneOf(\"se ha unido a la tripulación\",\"ha sido contratado a su tripulación\")}.", "default": true }, "Crew joined": { "name": "Crew joined", "description": "Se activa cuando te unes a una tripulación", "enabled": true, "priority": 3, "responder": true, "script": "{_ Context }\n{SetState('eddi_context_last_subject', 'crew')}\n{SetState('eddi_context_last_action', 'join')}\n{SetState('eddi_context_crew_name', event.captain)}\n\nNos hemos unido a la tripulación del comandante {slice (event.captain,10)}. {OneOf(\"No se preocupe, yo me encargo de {ShipName()}\",\"\")}.", "defaultValue": "{_ Context }\n{SetState('eddi_context_last_subject', 'crew')}\n{SetState('eddi_context_last_action', 'join')}\n{SetState('eddi_context_crew_name', event.captain)}\n\nNos hemos unido a la tripulación del comandante {slice (event.captain,10)}. {OneOf(\"No se preocupe, yo me encargo de {ShipName()}\",\"\")}.", "default": true }, "Crew left": { "name": "Crew left", "description": "Se activa cuando sales de una tripulación", "enabled": true, "priority": 3, "responder": true, "script": "{_ Context }\n{SetState('eddi_context_last_subject', 'crew')}\n{SetState('eddi_context_last_action', 'leave')}\n{SetState('eddi_context_crew_name', event.captain)}\n\nHemos abandonado la tripulación del comandante {slice (event.captain,10)}.", "defaultValue": "{_ Context }\n{SetState('eddi_context_last_subject', 'crew')}\n{SetState('eddi_context_last_action', 'leave')}\n{SetState('eddi_context_crew_name', event.captain)}\n\nHemos abandonado la tripulación del comandante {slice (event.captain,10)}.", "default": true }, "Crew member joined": { "name": "Crew member joined", "description": "Se activa cuando un comandante se une a tu tripulación", "enabled": true, "priority": 3, "responder": true, "script": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'crew')}\r\n{SetState('eddi_context_last_action', 'join')}\r\n{SetState('eddi_context_crew_name', event.crew)}\r\n\r\nEl comandante {slice (event.crew,10)} se ha unido a su tripulación.", "defaultValue": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'crew')}\r\n{SetState('eddi_context_last_action', 'join')}\r\n{SetState('eddi_context_crew_name', event.crew)}\r\n\r\nEl comandante {slice (event.crew,10)} se ha unido a su tripulación.", "default": true }, "Crew member launched": { "name": "Crew member launched", "description": "Se activa cuando un miembro de tu tripulación lanza el caza", "enabled": true, "priority": 3, "responder": true, "script": "{_ Context }\n{SetState('eddi_context_last_subject', 'crew')}\n{SetState('eddi_context_last_action', 'launch')}\n{SetState('eddi_context_crew_name', event.crew)}\n\n{event.crew} ha lanzado un caza..", "defaultValue": "{_ Context }\n{SetState('eddi_context_last_subject', 'crew')}\n{SetState('eddi_context_last_action', 'launch')}\n{SetState('eddi_context_crew_name', event.crew)}\n\n{event.crew} ha lanzado un caza..", "default": true }, "Crew member left": { "name": "Crew member left", "description": "Se activa cuando un comandante deja tu tripulación", "enabled": true, "priority": 3, "responder": true, "script": "{_ Context }\n{SetState('eddi_context_last_subject', 'crew')}\n{SetState('eddi_context_last_action', 'leave')}\n{SetState('eddi_context_crew_name', event.crew)}\n\nEl comandante {slice (event.crew,10)} ha abandonado la tripulación.", "defaultValue": "{_ Context }\n{SetState('eddi_context_last_subject', 'crew')}\n{SetState('eddi_context_last_action', 'leave')}\n{SetState('eddi_context_crew_name', event.crew)}\n\nEl comandante {slice (event.crew,10)} ha abandonado la tripulación.", "default": true }, "Crew member removed": { "name": "Crew member removed", "description": "Se activa cuando despides a un comandante de tu tripulación", "enabled": true, "priority": 3, "responder": true, "script": "{_ Context }\n{SetState('eddi_context_last_subject', 'crew')}\n{SetState('eddi_context_last_action', 'remove')}\n{SetState('eddi_context_crew_name', event.crew)}\n\nHa {OneOf(\"expulsado\",\"despedido\")} al comandante {slice (event.crew,10)} de la tripulación.", "defaultValue": "{_ Context }\n{SetState('eddi_context_last_subject', 'crew')}\n{SetState('eddi_context_last_action', 'remove')}\n{SetState('eddi_context_crew_name', event.crew)}\n\nHa {OneOf(\"expulsado\",\"despedido\")} al comandante {slice (event.crew,10)} de la tripulación.", "default": true }, "Crew member role changed": { "name": "Crew member role changed", "description": "Se activa cuando un miembro de tu tripulación cambia su rol", "enabled": true, "priority": 3, "responder": true, "script": "{_ Context }\n{SetState('eddi_context_last_subject', 'crew')}\n{SetState('eddi_context_last_action', 'role')}\n{SetState('eddi_context_crew_name', event.crew)}\n{SetState('eddi_context_crew_role', event.role)}\n\n{if event.role = 'Idle':\n {event.crew} está desocupado\n|elif event.role = 'Fighter':\n {event.crew} está controlando un caza\n|elif event.role = 'Gunner':\n {event.crew} está de artillero\n}.\n", "defaultValue": "{_ Context }\n{SetState('eddi_context_last_subject', 'crew')}\n{SetState('eddi_context_last_action', 'role')}\n{SetState('eddi_context_crew_name', event.crew)}\n{SetState('eddi_context_crew_role', event.role)}\n\n{if event.role = 'Idle':\n {event.crew} está desocupado\n|elif event.role = 'Fighter':\n {event.crew} está controlando un caza\n|elif event.role = 'Gunner':\n {event.crew} está de artillero\n}.\n", "default": true }, "Crew paid wage": { "name": "Crew paid wage", "description": "Triggered when npc crew receives a profit share", "enabled": true, "priority": 3, "responder": true, "script": "{_ Crew paid wage }\r\n{_ Triggered when npc crew receives a profit share }\r\n\r\n", "defaultValue": "{_ Crew paid wage }\r\n{_ Triggered when npc crew receives a profit share }\r\n\r\n", "default": true }, "Crew promotion": { "name": "Crew promotion", "description": "Triggered when crewmember combat rank increases", "enabled": true, "priority": 3, "responder": true, "script": "{_ Crew promotion }\r\n{_ Triggered when crewmember combat rank increases }\r\n\r\n\r\nEl miembro de tu tripulación {event.name}, ha sido promocionado a {event.combatrating}, en el ranking de combate.", "defaultValue": "{_ Crew promotion }\r\n{_ Triggered when crewmember combat rank increases }\r\n\r\n\r\nCrew member {event.name} has been promoted to the combat rank of {event.combatrating}.", "default": false }, "Crew role changed": { "name": "Crew role changed", "description": "Se activa cuando cambia tu rol en una tripulación", "enabled": true, "priority": 3, "responder": true, "script": "{if event.role = 'Gunner':\n {OneOf(\"Ha adoptado\",\"Se le ha asignado\")} la posición de artillero en esta tripulación.\n|elif event.role = 'Fighter':\n {OneOf(\"Ha adoptado ser\",\"Se le ha asignado ser\")} piloto de caza en esta tripulación.\n|elif event.role = 'Idle':\n Ha sido desasignado del servicio activo.\n}", "defaultValue": "{if event.role = 'Gunner':\n {OneOf(\"Ha adoptado\",\"Se le ha asignado\")} la posición de artillero en esta tripulación.\n|elif event.role = 'Fighter':\n {OneOf(\"Ha adoptado ser\",\"Se le ha asignado ser\")} piloto de caza en esta tripulación.\n|elif event.role = 'Idle':\n Ha sido desasignado del servicio activo.\n}", "default": true }, "Crime check station": { "name": "Crime check station", "description": "Consulta reclamaciones, multas y recompensas relacionadas con la estación actual", "enabled": true, "priority": null, "responder": false, "script": "{_ Crime check station }\r\n{_ Check claims, fines & bounties related to the current station }\r\n\r\n\r\n{set CheckPad(current_station) to:\r\n {set largest_pad to lcase(current_station.largestpad)}\r\n {if largest_pad != \"Ninguno\":\r\n {if largest_pad = \"Grande\":\r\n {return true}\r\n |elif largest_pad = \"Mediano\":\r\n {if lcase(ship.size) = \"Grande\":\r\n {return false}\r\n |else:\r\n {return true}\r\n }\r\n }\r\n {if lcase(ship.size) = \"Pequeño\":\r\n {return true}\r\n }\r\n }\r\n {return false}\r\n}\r\n\r\n{set HasService(service) to:\r\n {if CheckPad(current_station):\r\n {if find(current_station.stationservices, service) > -1:\r\n {return true}\r\n |else:\r\n {return false}\r\n }\r\n |else: {return false}\r\n }\r\n}\r\n\r\n{if state.eddi_context_body_type = 'Estación' && station.name && station.name != \"\":\r\n {set current_station to StationDetails(station.name)}\r\n {set factions_claims to []}\r\n {set factions_fines to []}\r\n {set factions_bounties to []}\r\n {set station_report to false}\r\n {set system_claims to 0}\r\n {set system_fines to 0}\r\n {set system_bounties to 0}\r\n\r\n {for record in criminalrecord:\r\n {for faction in system.factions:\r\n {if record.faction = faction.name:\r\n\r\n {if record.claims > 0:\r\n {set factions_claims to cat(factions_claims, [record.faction])}\r\n {set system_claims to system_claims + record.claims}\r\n }\r\n\r\n {set reports to record.finesIncurred}\r\n {if len(reports) > 0:\r\n {for report in reports:\r\n {if report.shipId = ship.LocalId:\r\n {set system_fines to system_fines + report.amount}\r\n {if find(factions_fines, record.faction) < 0:\r\n {set factions_fines to cat(factions_fines, [record.faction])}\r\n }\r\n }\r\n }\r\n }\r\n\r\n {set reports to record.bountiesIncurred}\r\n {if len(reports) > 0:\r\n {for report in reports:\r\n {if report.shipId = ship.LocalId:\r\n {set system_bounties to system_bounties + report.amount}\r\n {if find(factions_bounties, record.faction) < 0:\r\n {set factions_bounties to cat(factions_bounties, [record.faction])}\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n {set claim_count to len(factions_claims)}\r\n {set fine_count to len(factions_fines)}\r\n {set bounty_count to len(factions_bounties)}\r\n {set bounties to system_bounties > 0 && HasService(\"Contacto de Interstellar Factors\")}\r\n {set fines to system_fines > 0 && HasService(\"Contactos\")}\r\n {set claims to system_claims > 0 && HasService(\"Contactos\")}\r\n \r\n {if bounties || fines || claims:\r\n {OneOf(\"Tenemos\",\"Hay\")} instalaciones disponibles en esta estación para\r\n {if bounties || fines: limpiar \r\n {if bounties: {if bounty_count = 1: el vale |else: los vales} {if fines: y } }\r\n {if fines: {if fine_count = 1: la multa |else: las multas} } \r\n pendiente{if fine_count > 1:s}{if bounty_count > 1:s}{if fines && bounties:s}\r\n }\r\n {if bounties || fines: y }\r\n {if claims: {OneOf(\"reclamar\",\"cobrar\")} tu\r\n {if claim_count = 1: recompensa pendiente|else:s recompensas pendientes}\r\n por los servicios prestados\r\n }.\r\n }\r\n}", "defaultValue": "{_ Crime check station }\r\n{_ Check claims, fines & bounties related to the current station }\r\n\r\n\r\n{set CheckPad(current_station) to:\r\n {set largest_pad to lcase(current_station.largestpad)}\r\n {if largest_pad != \"ninguno\":\r\n {if largest_pad = \"grande\": {return true} }\r\n |elif largest_pad = \"mediano:\r\n {if lcase(ship.size) = \"grande\": {return false}\r\n |else: {return true}\r\n }\r\n {if lcase(ship.size) = \"pequeño\": {return true}\r\n }\r\n {return false}\r\n}\r\n\r\n{set HasService(service) to:\r\n {if CheckPad(current_station):\r\n {if find(current_station.stationservices, service) > -1:\r\n {return true}\r\n |else:\r\n {return false}\r\n }\r\n |else: {return false}\r\n }\r\n}\r\n\r\n{set current_station to StationDetails(state.eddi_context_body_name)}\r\n\r\n{set factions_claims to []}\r\n{set system_claims to 0}\r\n{set factions_fines to []}\r\n{set system_fines to 0}\r\n{set factions_bounties to []}\r\n{set station_report to false}\r\n\r\n{for record in criminalrecord:\r\n {if record.bounties > 0:\r\n {set factions_bounties to cat(factions_bounties, [record.faction])}\r\n }\r\n {for faction in system.factions:\r\n {if record.faction = faction.name:\r\n {if record.claims > 0:\r\n {set factions_claims to cat(factions_claims, [record.faction])}\r\n {set system_claims to system_claims + record.claims}\r\n }\r\n {if record.fines > 0:\r\n {set factions_fines to cat(factions_fines, [record.faction])}\r\n {set system_fines to system_fines + record.fines}\r\n }\r\n }\r\n }\r\n}\r\n\r\n{set claim_count to len(factions_claims)}\r\n{set fine_count to len(factions_fines)}\r\n{set bounty_count to len(factions_bounties)}\r\n\r\n{if bounties > 0 && HasService(\"Contacto de Interstellar Factors\"):\r\n Le informo que hay instalaciones legales {OneOf(\"en esta estación\",\"aquí\")} para poder cobrar \r\n su{if bounty_count > 1:s} recompensa{if bounty_count > 1:s} pendiente{if bounty_count > 1:s}.\r\n {set station_report to true}\r\n}\r\n\r\n{if (system_fines > 0 || system_claims > 0) && !station_report:\r\n {if HasService(\"Contactos\"):\r\n Le informo que {OneOf(\"en esta estación\",\"aquí\")} podría pagar su{if fine_count > 1:s} multa{if fine_count > 1:s} pentiente{if fine_count > 1:s}\r\n {set station_report to true}\r\n }\r\n}\r\n\r\n{if system_claims > 0 && !station_report:\r\n {if HasService(\"Contactos\"):\r\n Le informo que {OneOf(\"en esta estación\",\"aquí\")} podría reclamar su{if claim_count > 1:s} recompensa{if claim_count > 1:s} pendiente{if claim_count > 1:s}.\r\n }\r\n}\r\n", "default": false }, "Crime check system": { "name": "Crime check system", "description": "Consulta reclamaciones, multas y recompensas relacionadas con el sistema actual", "enabled": true, "priority": null, "responder": false, "script": "{_ Crime check system }\r\n{_ Check claims, fines & bounties related to the current system }\r\n\r\n\r\n{set CheckPad(station) to:\r\n {set largest_pad to lcase(station.largestpad)}\r\n {if largest_pad != \"Ninguno\":\r\n {if largest_pad = \"Grande\":\r\n {return true}\r\n |elif largest_pad = \"Mediano\":\r\n {if lcase(ship.size) = \"Grande\":\r\n {return false}\r\n |else:\r\n {return true}\r\n }\r\n }\r\n {if lcase(ship.size) = \"Pequeño\":\r\n {return true}\r\n }\r\n }\r\n {return false}\r\n}\r\n\r\n{set NearestStation(service) to:\r\n {set distance to 0}\r\n {set station_count to 0}\r\n {set orbital_count to 0}\r\n\r\n {_ If preferred & available, use orbital stations }\r\n {if orbitalpriority:\r\n {for station in system.orbitalstations:\r\n {if find(station.stationservices, service) > -1:\r\n {set orbital_count to orbital_count + 1}\r\n }\r\n }\r\n }\r\n\r\n {_ Force orbital stations when game version is not 'Horizons' }\r\n {if orbital_count > 0 || !horizons:\r\n {set stations to system.orbitalstations}\r\n |else:\r\n {set stations to system.stations}\r\n }\r\n\r\n {_ Get the total count and nearest station }\r\n {for station in stations:\r\n {if CheckPad(station):\r\n {if find(station.stationservices, service) > -1:\r\n {set station_count to station_count + 1}\r\n {if distance = 0 || station.distancefromstar < distance:\r\n {set distance to station.distancefromstar}\r\n {set nearest_station to station.name}\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n{set factions_claims to []}\r\n{set factions_fines to []}\r\n{set factions_bounties to []}\r\n{set station_report to false}\r\n{set system_claims to 0}\r\n{set system_fines to 0}\r\n{set system_bounties to 0}\r\n{set wanted_count to 0}\r\n\r\n{for record in criminalrecord:\r\n {for faction in system.factions:\r\n {if record.faction = faction.name:\r\n\r\n {if record.claims > 0:\r\n {set factions_claims to cat(factions_claims, [record.faction])}\r\n {set system_claims to system_claims + record.claims}\r\n }\r\n\r\n {set reports to record.finesIncurred}\r\n {if len(reports) > 0:\r\n {for report in reports:\r\n {if report.shipId = ship.LocalId:\r\n {set system_fines to system_fines + report.amount}\r\n {if find(factions_fines, record.faction) < 0:\r\n {set factions_fines to cat(factions_fines, [record.faction])}\r\n {if find(factions_bounties, record.faction) < 0:\r\n {set wanted_count to wanted_count + 1}\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n {set reports to record.bountiesIncurred}\r\n {if len(reports) > 0:\r\n {for report in reports:\r\n {if report.shipId = ship.LocalId:\r\n {set system_bounties to system_bounties + report.amount}\r\n {if find(factions_bounties, record.faction) < 0:\r\n {set factions_bounties to cat(factions_bounties, [record.faction])}\r\n {if find(factions_fines, record.faction) < 0:\r\n {set wanted_count to wanted_count + 1}\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n{set claim_count to len(factions_claims)}\r\n{set fine_count to len(factions_fines)}\r\n{set bounty_count to len(factions_bounties)}\r\n\r\n{if wanted_count > 0:\r\n Atención Comandante: La {ShipName()} está buscada en este sistema por {wanted_count}\r\n {if wanted_count = 1: facción |else: facciones},\r\n que entre multas y recompensas el valor de su cabeza asciende a {Humanise(system_fines + system_bounties)} créditos.\r\n}\r\n\r\n{_ Report nearest station to clear bounties }\r\n{if system_bounties > 0:\r\n {NearestStation(\"Contacto de Interstellar Factors\")}\r\n {if station_count > 0:\r\n Le informo que hay instalaciones legales en {station_count} {if station_count = 1: estación |else: estaciones} {if orbitalpriority: orbital{if station_count > 1:es} }\r\n para poder limpiar {if bounty_count = 1:su recompensa pendiente |else:sus recompensas pendientes}.\r\n {if station_count > 1: La más cercana es} la estación {nearest_station} {if station_count = 1:está|else:,} a unos {round(distance, 1)} segundos luz de la estrella principal.\r\n {set station_report to true}\r\n }\r\n}\r\n\r\n{if system_fines > 0 && !station_report:\r\n {NearestStation(\"Contacts\")}\r\n {if station_count > 0:\r\n Le informo que hay instalaciones legales en {station_count} {if station_count = 1: estación |else: estaciones} {if orbitalpriority: orbital{if station_count > 1:es} }\r\n para poder pagar {if fine_count = 1:su multa pendiente |else:sus multas pendientes}.\r\n {if station_count > 1: La más cercana es} la estación {nearest_station} {if station_count = 1:está|else:,} a unos {round(distance, 1)} segundos luz de la estrella principal.\r\n {set station_report to true}\r\n }\r\n}\r\n\r\n{_ Report nearest station for pending claims }\r\n{if system_claims > 0:\r\n Comandante, tiene bonos y recompensas en este sistema para {claim_count} facción{if claim_count > 1:es},\r\n por un total de {Humanise(system_claims)} créditos.\r\n\r\n {if !station_report:\r\n {if system_fines = 0: {NearestStation(\"Contacts\")}}\r\n {if station_count > 0:\r\n Le informo que hay instalaciones en {station_count} {if station_count = 1: estación |else: estaciones} {if orbitalpriority: orbital{if station_count > 1:es} }\r\n para poder cobrar {if claim_count = 1:su recompensa pendiente |else:sus recompensas pendientes}.\r\n {if station_count > 1: La más cercana es} la estación {nearest_station} {if station_count = 1:está|else:,} a unos {round(distance, 1)} segundos luz de la estrella principal.\r\n }\r\n }\r\n}", "defaultValue": "{_ Crime check system }\r\n{_ Check claims, fines & bounties related to the current system }\r\n\r\n\r\n{set CheckPad(station) to:\r\n {set largest_pad to lcase(station.largestpad)}\r\n {if largest_pad != \"ninguno\":\r\n {if largest_pad = \"grande\": {return true} }\r\n |elif largest_pad = \"mediano\":\r\n {if lcase(ship.size) = \"grande\": {return false}\r\n |else: {return true}\r\n }\r\n {if lcase(ship.size) = \"pequeño\": {return true}\r\n }\r\n {return false}\r\n}}\r\n\r\n{set NearestStation(service) to:\r\n {set distance to 0}\r\n {set station_count to 0}\r\n {for station in system.stations:\r\n {if CheckPad(station):\r\n {if find(station.stationservices, service) > -1:\r\n {if distance = 0 || station.distancefromstar < distance:\r\n {set station_count to station_count + 1}\r\n {set distance to station.distancefromstar}\r\n {set nearest_station to station.name}\r\n }\r\n }\r\n \r\n \r\n \r\n }\r\n \r\n }\r\n}\r\n\r\n \r\n\r\n{set factions_claims to []}\r\n \r\n{set factions_fines to []}\r\n \r\n{set factions_bounties to []}\r\n\r\n{set system_claims to 0}\r\n{set system_fines to 0}\r\n{set system_bounties to 0}\r\n{set wanted_count to 0}\r\n{set station_report to false}\r\n\r\n{for record in criminalrecord:\r\n {if record.bounties > 0:\r\n {set factions_bounties to cat(factions_bounties, [record.faction])}\r\n }\r\n {for faction in system.factions:\r\n {if record.faction = faction.name:\r\n\r\n {if record.claims > 0:\r\n {set factions_claims to cat(factions_claims, [record.faction])}\r\n {set system_claims to system_claims + record.claims}\r\n }\r\n {if record.fines > 0 || record.bounties > 0:\r\n {set wanted_count to wanted_count + 1}\r\n {set system_fines to system_fines + record.fines}\r\n {set system_bounties to system_bounties + record.bounties}\r\n {if record.fines > 0:\r\n {set factions_fines to cat(factions_fines, [record.faction])}\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n{set claim_count to len(factions_claims)}\r\n{set fine_count to len(factions_fines)}\r\n{set bounty_count to len(factions_bounties)}\r\n\r\n{if wanted_count > 0:\r\n Atención Comandante: Está buscado en este sistema por {wanted_count}\r\n facción{if wanted_count > 1:es},\r\n que entre multas y recompensas el valor de su cabeza asciende a {Humanise(system_fines + system_bounties)} créditos.\r\n}\r\n\r\n{_ Report nearest station to clear bounties }\r\n{if bounties > 0:\r\n {NearestStation(\"Contacto de Interstellar Factors\")}\r\n {if station_count > 0:\r\n Le informo que en {station_count} estación{if station_count > 1:es} de este sistema hay instalaciones legales \r\n para poder cobrar su{if bounty_count > 1:s} recompensa{if bounty_count > 1:s} pendiente{if bounty_count > 1:s}.\r\n La más cercana és la estación {nearest_station}, a {round(distance, 1)} segundos luz de la estrella principal.\r\n \r\n {set station_report to true}\r\n }\r\n}\r\n\r\n{if system_fines > 0 && !station_report:\r\n {NearestStation(\"Contactos\")}\r\n {if station_count > 0:\r\n Hay {station_count} estación{if station_count > 1:es} donde poder\r\n reclamar su{if claim_count > 1:s} recompensa{if claim_count > 1:s} pendiente{if claim_count > 1:s}.\r\n La más cercana es la estación {nearest_station}, a {round(distance, 1)} segundos luz de la estrella principal.\r\n {set station_report to true}\r\n }\r\n}\r\n \r\n \r\n \r\n\r\n{_ Report nearest station for pending claims }\r\n{if claim_count > 0:\r\n Comandante, tiene bonos y recompensas en este sistema para {claim_count} facción{if claim_count > 1:es},\r\n por un total de {Humanise(system_claims)} créditos.\r\n\r\n {if !station_report:\r\n {if system_fines = 0: {NearestStation(\"Contactos\")}}\r\n {if station_count > 0:\r\n Hay {station_count} estación{if station_count > 1:es}\r\n para reclamar su{if claim_count > 1:s} recompensa{if claim_count > 1:s}.\r\n La más cercana es la estación {nearest_station},a {round(distance, 1)} segundos luz de la estrella principal.\r\n }\r\n }\r\n}", "default": false }, "Crime report": { "name": "Crime report", "description": "Informa sobre todas las reclamaciones, multas y recompensas pendientes", "enabled": true, "priority": null, "responder": false, "script": "{_ Crime report}\r\n{_ Report on all pending claims, fines, and bounties }\r\n\r\n\r\n{set factions_claims to []}\r\n{set claims_count to 0}\r\n{set factions_fines to []}\r\n{set fines_count to 0}\r\n{set factions_bounties to []}\r\n{set systems_bounties to []}\r\n\r\n{for record in criminalrecord:\r\n {set faction to FactionDetails(record.faction)}\r\n {if faction:\r\n {if record.bounties > 0:\r\n {set factions_bounties to cat(factions_bounties, [record.faction])}\r\n {for presence in faction.presences:\r\n {if find(systems_bounties, presence.systemName) = -1:\r\n {set systems_bounties to cat(systems_bounties, [presence.systemName])}\r\n }\r\n }\r\n }\r\n {if record.fines > 0:\r\n {set factions_fines to cat(factions_fines, [record.faction])}\r\n }\r\n {if record.claims > 0:\r\n {set factions_claims to cat(factions_claims, [record.faction])}\r\n }\r\n\r\n {for report in record.factionReports:\r\n {if !report.bounty && report.crimeEDName != \"none\":\r\n {set fines_count to fines_count + 1}\r\n }\r\n {if report.crimeEDName = \"none\":\r\n {set claims_count to claims_count + 1}\r\n }\r\n }\r\n }\r\n}\r\n\r\n{set factions_count to len(factions_bounties)}\r\n{set systems_count to len(systems_bounties)}\r\n\r\n{if factions_count > 0:\r\n Estás buscado por {factions_count} {if factions_count = 1: facción |else: facciones}\r\n en {systems_count} {if systems_count = 1: sistema |else: sistemas} por un total de\r\n {Humanise(bounties)} créditos.\r\n}\r\n\r\n{set factions_count to len(factions_fines)}\r\n{if factions_count > 0:\r\n Tienes {fines_count} {if fines_count = 1: multa |else: multas} pendientes de\r\n {factions_count} {if factions_count = 1: facción |else: facciones},\r\n de un total de {Humanise(fines)} créditos.\r\n}\r\n\r\n{set factions_count to len(factions_claims)}\r\n{if factions_count > 0:\r\n Tienes {claims_count} {if claims_count = 1: recompensa |else: recompensas} sin recoger de\r\n {factions_count} {if factions_count = 1: facción |else: facciones},\r\n {if factions_count = 1: de |else: que suman} un total de {Humanise(claims)} créditos.\r\n}", "defaultValue": "{_ Crime report}\r\n{_ Report on all pending claims, fines, and bounties }\r\n\r\n\r\n{set factions_claims to []}\r\n{set claims_count to 0}\r\n{set factions_fines to []}\r\n{set fines_count to 0}\r\n{set factions_bounties to []}\r\n{set systems_bounties to []}\r\n\r\n{for record in criminalrecord:\r\n {set faction to FactionDetails(record.faction)}\r\n {if faction:\r\n {if record.bounties > 0:\r\n {set factions_bounties to cat(factions_bounties, [record.faction])}\r\n {for presence in faction.presences:\r\n {if find(presence.systemName, systems_bounties) = -1:\r\n {set systems_bounties to cat(systems_bounties, [presence.systemName])}\r\n }\r\n }\r\n }\r\n {if record.fines > 0:\r\n {set factions_fines to cat(factions_fines, [record.faction])}\r\n }\r\n {if record.claims > 0:\r\n {set factions_claims to cat(factions_claims, [record.faction])}\r\n }\r\n\r\n {for report in record.factionReports:\r\n {if !report.bounty && report.crimeEDName != \"none\":\r\n {set fines_count to fines_count + 1}\r\n }\r\n {if report.crimeEDName = \"none\":\r\n {set claims_count to claims_count + 1}\r\n }\r\n }\r\n }\r\n}\r\n\r\n{set factions_count to len(factions_bounties)}\r\n{set systems_count to len(factions_bounties)}\r\n\r\n{if factions_count > 0:\r\n You are wanted by {factions_count} {if factions_count = 1: faction |else: factions}\r\n in {systems_count} {if systems_count = 1: system |else: systems} for a total of\r\n {Humanise(bounties)} credits.\r\n}\r\n\r\n{set factions_count to len(factions_fines)}\r\n{if factions_count > 0:\r\n You have {fines_count} pending {if fines_count = 1: fine |else: fines} from\r\n {factions_count} {if factions_count = 1: faction |else: factions},\r\n for a total of {Humanise(fines)} credits.\r\n}\r\n\r\n{set factions_count to len(factions_claims)}\r\n{if factions_count > 0:\r\n You have {claims_count} uncollected {if claims_count = 1: claim |else: claims} from\r\n {factions_count} {if factions_count = 1: faction |else: factions},\r\n for a total of {Humanise(claims)} credits.\r\n}", "default": false }, "Damage check": { "name": "Damage check", "description": "Comprueba los daños de tu nave", "enabled": true, "priority": null, "responder": false, "script": "{_ Track if there is any damage}\n{set damaged to 0}\n\n{_ Announce hull health}\n{if ship.health < 100:\n Casco al {Humanise(ship.health)} %.\n {set damaged to 1}\n}\n\n{_ Announce critical module health}\n\n{set minordamage to []}\n{set majordamage to []}\n\n{if ship.powerplant.health < 60:\n {set majordamage to cat(majordamage, [ship.powerplant])}\n|elif ship.powerplant.health < 100:\n {set minordamage to cat(minordamage, [ship.powerplant])}\n}\n\n{if ship.thrusters.health < 60:\n {set majordamage to cat(majordamage, [ship.thrusters])}\n|elif ship.thrusters.health < 100:\n {set minordamage to cat(minordamage, [ship.thrusters])}\n}\n\n{if ship.frameshiftdrive.health < 60:\n {set majordamage to cat(majordamage, [ship.frameshiftdrive])}\n|elif ship.frameshiftdrive.health < 100:\n {set minordamage to cat(minordamage, [ship.frameshiftdrive])}\n}\n\n{if ship.powerdistributor.health < 60:\n {set majordamage to cat(majordamage, [ship.powerdistributor])}\n|elif ship.powerdistributor.health < 100:\n {set minordamage to cat(minordamage, [ship.powerdistributor])}\n}\n\n{if ship.lifesupport.health < 60:\n {set majordamage to cat(majordamage, [ship.lifesupport])}\n|elif ship.lifesupport.health < 100:\n {set minordamage to cat(minordamage, [ship.lifesupport])}\n}\n\n{if ship.sensors.health < 60:\n {set majordamage to cat(majordamage, [ship.sensors])}\n|elif ship.sensors.health < 100:\n {set minordamage to cat(minordamage, [ship.sensors])}\n}\n\n{if len(majordamage) > 0:\n {set damaged to 1}\n Hay grandes daños en\n {if len(majordamage) = 1:\n {majordamage[0].name}\n |elif len(majordamage) = 2:\n {majordamage[0].name} y {majordamage[1].name}\n |else:\n {set cur to 0}\n {while cur < len(majordamage):\n {if cur = 0:\n {majordamage[cur].name}\n |elif cur < len(majordamage) - 1:\n , {majordamage[cur].name}\n |else:\n , y {majordamage[cur].name}\n }\n {set cur to cur + 1}\n }\n }.\n}\n\n{if len(minordamage) > 0:\n {set damaged to 1}\n Algunos desperfectos en\n {if len(minordamage) = 1:\n {minordamage[0].name}\n |elif len(minordamage) = 2:\n {minordamage[0].name} y {minordamage[1].name}\n |else:\n {set cur to 0}\n {while cur < len(minordamage):\n {if cur = 0:\n {minordamage[cur].name}\n |elif cur < len(minordamage) - 1:\n , {minordamage[cur].name}\n |else:\n , y {minordamage[cur].name}\n }\n {set cur to cur + 1}\n }\n }.\n}\n\n{_ Announce other module health}\n\n{set minordamage to []}\n{set majordamage to []}\n\n{for compartment in ship.compartments:\n {if compartment.module.health < 60:\n {set majordamage to cat(majordamage, [compartment.module.name])}\n |elif hardpoint.module.health < 100:\n {set minordamage to cat(minordamage, [compartment.module.name])}\n }\n}\n\n{for hardpoint in ship.hardpoints:\n {if hardpoint.module.health < 60:\n {set majordamage to cat(majordamage, [hardpoint.module.name])}\n |elif hardpoint.module.health < 100:\n {set minordamage to cat(minordamage, [hardpiont.module.name])}\n }\n}\n\n{if len(majordamage) > 0:\n {set damaged to 1}\n {if len(majordamage) = 1:\n También hay algún otro componente de la nave con importantes desperfectos\n |elif len(majordamage) > 1:\n También hay otros {len(majordamage)} componentes de la nave con importantes desperfectos\n }\n {if len(minordamage) = 1:\n y otro con algun desperfecto\n |elif len(minordamage) > 1:\n y otros {len(minordamage)} con daños menores\n }.\n|elif len(minordamage) = 1:\n {set damaged to 1}\n También hay otro componente de la nave con daños menores.\n|elif len(minordamage) > 1:\n {set damaged to 1}\n También hay otros {len(minordamage)} componentes de la nave con daños menores.\n}\n\n{if damaged = 0:\n {OneOf(\"Todos los sistemas completamente operativos.\", \"{ShipName()} está completamente operativa.\", \"{ShipName()} no presenta daños.\")}\n}", "defaultValue": "{_ Track if there is any damage}\n{set damaged to 0}\n\n{_ Announce hull health}\n{if ship.health < 100:\n Casco al {Humanise(ship.health)} %.\n {set damaged to 1}\n}\n\n{_ Announce critical module health}\n\n{set minordamage to []}\n{set majordamage to []}\n\n{if ship.powerplant.health < 60:\n {set majordamage to cat(majordamage, [ship.powerplant])}\n|elif ship.powerplant.health < 100:\n {set minordamage to cat(minordamage, [ship.powerplant])}\n}\n\n{if ship.thrusters.health < 60:\n {set majordamage to cat(majordamage, [ship.thrusters])}\n|elif ship.thrusters.health < 100:\n {set minordamage to cat(minordamage, [ship.thrusters])}\n}\n\n{if ship.frameshiftdrive.health < 60:\n {set majordamage to cat(majordamage, [ship.frameshiftdrive])}\n|elif ship.frameshiftdrive.health < 100:\n {set minordamage to cat(minordamage, [ship.frameshiftdrive])}\n}\n\n{if ship.powerdistributor.health < 60:\n {set majordamage to cat(majordamage, [ship.powerdistributor])}\n|elif ship.powerdistributor.health < 100:\n {set minordamage to cat(minordamage, [ship.powerdistributor])}\n}\n\n{if ship.lifesupport.health < 60:\n {set majordamage to cat(majordamage, [ship.lifesupport])}\n|elif ship.lifesupport.health < 100:\n {set minordamage to cat(minordamage, [ship.lifesupport])}\n}\n\n{if ship.sensors.health < 60:\n {set majordamage to cat(majordamage, [ship.sensors])}\n|elif ship.sensors.health < 100:\n {set minordamage to cat(minordamage, [ship.sensors])}\n}\n\n{if len(majordamage) > 0:\n {set damaged to 1}\n Grandes daños en\n {if len(majordamage) = 1:\n {majordamage[0].name}\n |elif len(majordamage) = 2:\n {majordamage[0].name} y {majordamage[1].name}\n |else:\n {set cur to 0}\n {while cur < len(majordamage):\n {if cur = 0:\n {majordamage[cur].name}\n |elif cur < len(majordamage) - 1:\n , {majordamage[cur].name}\n |else:\n , y {majordamage[cur].name}\n }\n {set cur to cur + 1}\n }\n }.\n}\n\n{if len(minordamage) > 0:\n {set damaged to 1}\n Algunos desperfectos en\n {if len(minordamage) = 1:\n {minordamage[0].name}\n |elif len(minordamage) = 2:\n {minordamage[0].name} y {minordamage[1].name}\n |else:\n {set cur to 0}\n {while cur < len(minordamage):\n {if cur = 0:\n {minordamage[cur].name}\n |elif cur < len(minordamage) - 1:\n , {minordamage[cur].name}\n |else:\n , y {minordamage[cur].name}\n }\n {set cur to cur + 1}\n }\n }.\n}\n\n{_ Announce other module health}\n\n{set minordamage to []}\n{set majordamage to []}\n\n{for compartment in ship.compartments:\n {if compartment.module.health < 60:\n {set majordamage to cat(majordamage, [compartment.module.name])}\n |elif hardpoint.module.health < 100:\n {set minordamage to cat(minordamage, [compartment.module.name])}\n }\n}\n\n{for hardpoint in ship.hardpoints:\n {if hardpoint.module.health < 60:\n {set majordamage to cat(majordamage, [hardpoint.module.name])}\n |elif hardpoint.module.health < 100:\n {set minordamage to cat(minordamage, [hardpiont.module.name])}\n }\n}\n\n{if len(majordamage) > 0:\n {set damaged to 1}\n {if len(majordamage) = 1:\n Otro componente de la nave con importantes desperfectos\n |elif len(majordamage) > 1:\n {len(majordamage)} otros componentes de la nave con importantes desperfectos\n }\n {if len(minordamage) = 1:\n y otro componente de la nave con algun desperfecto\n |elif len(minordamage) > 1:\n y otros {len(minordamage)} componentes de la nave con daños menores\n }.\n|elif len(minordamage) = 1:\n {set damaged to 1}\n Otro componente de la nave con daños menores.\n|elif len(minordamage) > 1:\n {set damaged to 1}\n {len(minordamage)} otros componentes de la nave con daños menores.\n}\n\n{if damaged = 0:\n {OneOf(\"Todos los sistemas completamente operativos.\", \"{ShipName()} está completamente operativa.\", \"{ShipName()} no presenta daños.\")}\n}", "default": false }, "Data scanned": { "name": "Data scanned", "description": "Se activa cuando se escanean algunos tipos de enlaces de datos.", "enabled": true, "priority": 3, "responder": true, "script": "{_ Data scanned }\n{_ Triggered when scanning some types of data links }\n\n\n{_ Context }\n{SetState('eddi_context_last_subject', 'scan')}\n{SetState('eddi_context_last_action', 'data')}\n{SetState('eddi_context_data_scan_type', event.datalinktype)}\n\nAnálisis de {event.datalinktype} completado.", "defaultValue": "{_ Data scanned }\n{_ Triggered when scanning some types of data links }\n\n\n{_ Context }\n{SetState('eddi_context_last_subject', 'scan')}\n{SetState('eddi_context_last_action', 'data')}\n{SetState('eddi_context_data_scan_type', event.datalinktype)}\n\nAnálisis de {event.datalinktype} completado.", "default": true }, "Data voucher awarded": { "name": "Data voucher awarded", "description": "Se activa cuando te otorgan un bono de datos.", "enabled": true, "priority": null, "responder": false, "script": "{_ Data voucher awarded }\r\n{_ Triggered when you are awarded a data voucher }\r\n\r\n\r\n{_ Context }\r\n{SetState('eddi_context_last_subject', 'data_voucher')}\r\n{SetState('eddi_context_last_action', 'award')}\r\n{SetState('eddi_context_bond_amount', event.reward)}\r\n{SetState('eddi_context_bond_faction', event.payeefaction)}\r\n\r\nOtorgado bono de datos de {event.payeefaction} por {event.reward} créditos.\r\n", "defaultValue": "{_ Data voucher awarded }\r\n{_ Triggered when you are awarded a data voucher }\r\n\r\n\r\n{_ Context }\r\n{SetState('eddi_context_last_subject', 'data_voucher')}\r\n{SetState('eddi_context_last_action', 'award')}\r\n{SetState('eddi_context_bond_amount', event.reward)}\r\n{SetState('eddi_context_bond_faction', event.payeefaction)}\r\n\r\nOtorgado bono de datos de {event.payeefaction} por {event.reward} créditos.\r\n", "default": true }, "Data voucher redeemed": { "name": "Data voucher redeemed", "description": "Se activa cuando reclamas bonos de datos", "enabled": true, "priority": 4, "responder": true, "script": "{_ Context }\n{SetState('eddi_context_last_subject', 'data_voucher')}\n{SetState('eddi_context_last_action', 'redeem')}\n{SetState('eddi_context_data_voucher_amount', event.amount)}\n\n{if len event.rewards > 1: {OneOf(\"Reclamados\", \"Adquiridos\")} Bonos de datos\n|else: {OneOf(\"Reclamado\", \"Adquirido\")} un bono de datos} \npor {(event.amount)} créditos\n\n\n{Occasionally(2, \"\n {if len(event.rewards) = 1 && len(event.rewards[0].faction) > 0:\n {OneOf(\"de\", \"por cortesiia de\")}\n {P(event.rewards[0].faction)}\n |else:\n {if len(event.rewards[0].faction) > 0:\n {OneOf(\"de\", \"por cortesiia de\")}\n {set cur to 0}\n {while cur < len(event.rewards):\n {if cur = 0:\n |elif cur < len(event.rewards) - 1:\n , \n |else:\n y\n }\n {P(event.rewards[cur].faction)}\n {set cur to cur + 1}\n }\n }\n }\n\")}.", "defaultValue": "{_ Context }\n{SetState('eddi_context_last_subject', 'data_voucher')}\n{SetState('eddi_context_last_action', 'redeem')}\n{SetState('eddi_context_data_voucher_amount', event.amount)}\n\n{if len event.rewards > 1: {OneOf(\"Reclamados\", \"Adquiridos\")} Bonos de datos\n|else: {OneOf(\"Reclamado\", \"Adquirido\")} un bono de datos} \npor {(event.amount)} créditos\n\n\n{Occasionally(2, \"\n {if len(event.rewards) = 1 && len(event.rewards[0].faction) > 0:\n {OneOf(\"de\", \"por cortesiia de\")}\n {P(event.rewards[0].faction)}\n |else:\n {if len(event.rewards[0].faction) > 0:\n {OneOf(\"de\", \"por cortesiia de\")}\n {set cur to 0}\n {while cur < len(event.rewards):\n {if cur = 0:\n |elif cur < len(event.rewards) - 1:\n , \n |else:\n y\n }\n {P(event.rewards[cur].faction)}\n {set cur to cur + 1}\n }\n }\n }\n\")}.", "default": true }, "Datalink message": { "name": "Datalink message", "description": "Se activa al completar un escaneo de un enlace de datos", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Died": { "name": "Died", "description": "Se activa cuando mueres", "enabled": true, "priority": 2, "responder": true, "script": "{if len(event.ships) > 0:\n\n {set commanders to []}\n {for cmdr in event.commanders:\n {if find(cmdr, \"$ShipName\") >= 0:\n {_ Ignore NPC ships _} \n |else: \n {set commanders to cat(commanders, [cmdr])}\n }\n }\n{if vehicle = \"Ship\":\n {ShipName()} ha sido \n {OneOf(\"convertida en polvo\", \"eliminada\", \"destruida\")}\n|elif vehicle = \"Fighter\":\n Tu caza ha sido \n {OneOf(\"destruido\", \"aniquilado\")}\n|elif vehicle = \"SRV\":\n Tu {Spacialise(\"SRV\")} ha sido\n {OneOf(\"destruido\", \"aniquilado\")}\n {SetState('eddi_context_srv_deployed', false)}\n|elif vehicle = \"Taxi\":\n El Taxi en el que ibas ha sido alcanzado y\n {OneOf(\"destruido\", \"aniquilado\")}\n|elif vehicle = \"Multicrew\": \n La nave en la que ibas ha sido\n {OneOf(\"destruido\", \"aniquilado\")}\n|elif vehicle = \"On Foot\":\n Has sido\n {OneOf(\"herido de gravedad\", \"incapacitado\")}\n}\n{if len(event.killers) > 0:\n {set killerDescriptions to []}\n {for killer in event.killers:\n {set killerDescription to:\n por\n {if StartsWithVowel(killer.rating): |else: }\n {if find(killer.name, \"Cmdr \") >= 0:\n {_ Commander }\n {token(killer.name, \" \", 0, \"El Comandante \")}\n de rango {killer.rating}\n en \n {if StartsWithVowel(killer.equipment): |else: }\n {killer.equipment} \n |else:\n {_ Generic NPC }\n un\n {killer.equipment}\n de rango {killer.rating}\n }\n }\n {set killerDescriptions to cat(killerDescriptions, [killerDescription])} \n }\n {List(killerDescriptions)}\n}\n}. \n\n{if vehicle = \"Ship\" || vehicle = \"Taxi\" || vehicle = \"Multicrew\":\nActivada cápsula de escápe. Emitiendo señal de socorro. {OneOf(\"Pronto... vendrán a buscarte\",\"\")}.\n}\n\n{if vehicle = \"On Foot\":\nActivada baliza de socorro del traje. {OneOf(\"Aguanta, {CommanderName()}\",\"\")}.\n}", "defaultValue": "{if len(event.ships) > 0:\n\n {set commanders to []}\n {for cmdr in event.commanders:\n {if find(cmdr, \"$ShipName\") >= 0:\n {_ Ignore NPC ships _} \n |else: \n {set commanders to cat(commanders, [cmdr])}\n }\n }\n\n {ShipName()} ha sido\n \n {OneOf(\"convertida en polvo\", \"eliminada\", \"destruida\")}\n\n {if len(commanders) = 1:\n por {commanders[0]} \n en una {event.ships[0]} \n con rango de combate {event.ratings[0]}.\n |elif len(commanders) = 2:\n por {commanders[0]} \n en una {event.ships[0]}\n con rango de combate {event.ratings[0]}, \n y por {commanders[1]} \n en una {event.ships[1]}\n con rango de combate {event.ratings[1]}.\n |elif len(commanders) > 2:\n {set cur to 0}\n por\n {while cur < len(commanders):\n {if cur = 0:\n {commanders[cur]} \n en una {event.ships[cur]} \n con rango de combate {event.ratings[cur]}\n |elif cur < len(commanders) - 1:\n , {commanders[cur]} \n en una {event.ships[cur]} \n con rango de combate {event.ratings[cur]}\n |else:\n , y {commanders[cur]} \n en una {event.ships[cur]} \n con rango de combate {event.ratings[cur]}.\n }\n {set cur to cur + 1}\n }\n }\n}. Activada cápsula de escápe. Emitiendo señal de socorro. {OneOf(\"Pronto... vendrán a buscarnos\",\"\")}.", "default": false }, "Discovery scan": { "name": "Discovery scan", "description": "Triggered when performing a full system scan (honk)", "enabled": true, "priority": 4, "responder": true, "script": "{_ Fetch from Context _}\r\n{set reportSystem to SystemDetails(state.eddi_context_system_name)}\r\n\r\n{Pause(1000)}\r\n\r\n{if ship.Role.edname = \"Exploration\" || ship.Role.edname = \"Multipurpose\":\r\n {if reportSystem:\r\n {set scannedBodies to 0}\r\n {for body in reportSystem.bodies:\r\n {if body.scanned:\r\n {set scannedBodies to scannedBodies + 1}\r\n }\r\n }\r\n {set bodiesToScan to (event.bodies - scannedBodies)}\r\n\r\n {if event.bodies > 1 && event.bodies != scannedBodies:\r\n \r\n {if scannedBodies > 0:\r\n {OneOf(\r\n \"{scannedBodies} de {event.bodies} cuerpo{if event.bodies > 1:s} ha{if scannedBodies > 1:n} sido escaneado{if scannedBodies > 1:s}\", \r\n \"Queda{if bodiesToScan > 1:n} {bodiesToScan} cuerpo{if bodiesToScan > 1:s} para ser escaneado{if bodiesToScan > 1:s}\"\r\n )}{Occasionally(3, OneOf(\"aquí\", \"en este sistema\"))}\r\n |else: {if ship.Role.edname = \"Exploration\":{Occasionally(3, OneOf(\"Aquí\", \"En este sistema\"))} Ningún cuerpo ha sido escaneado}\r\n }\r\n .\r\n |else:\r\n {set bodiesToMap to F(\"Bodies to map\")}\r\n {if bodiesToMap:\r\n {bodiesToMap}\r\n }\r\n }\r\n }\r\n}", "defaultValue": "{_ Fetch from Context _}\r\n{set reportSystem to SystemDetails(state.eddi_context_system_name)}\r\n\r\n{Pause(1000)}\r\n\r\n{if ship.Role.edname = \"Exploration\" || ship.Role.edname = \"Multipurpose\":\r\n {if reportSystem:\r\n {set scannedBodies to 0}\r\n {for body in reportSystem.bodies:\r\n {if body.scanned:\r\n {set scannedBodies to scannedBodies + 1}\r\n }\r\n }\r\n {set bodiesToScan to (event.bodies - scannedBodies)}\r\n\r\n {if event.bodies > 1 && event.bodies != scannedBodies:\r\n \r\n {if scannedBodies > 0:\r\n {OneOf(\r\n \"{scannedBodies} de {event.bodies} cuerpo{if event.bodies > 1:s} ha{if scannedBodies > 1:n} sido escaneado{if scannedBodies > 1:s}\", \r\n \"Queda{if bodiesToScan > 1:n} {bodiesToScan} cuerpo{if bodiesToScan > 1:s} para ser escaneado{if bodiesToScan > 1:s}\"\r\n )}{Occasionally(3, OneOf(\"aquí\", \"en este sistema\"))}\r\n |else: {if ship.Role.edname = \"Exploration\":{Occasionally(3, OneOf(\"Aquí\", \"En este sistema\"))} Ningún cuerpo ha sido escaneado}\r\n }\r\n .\r\n |else:\r\n {set bodiesToMap to F(\"Bodies to map\")}\r\n {if bodiesToMap:\r\n {bodiesToMap}\r\n }\r\n }\r\n }\r\n}", "default": true }, "Disembark": { "name": "Disembark", "description": "Triggered when you transition from a ship or SRV to on foot", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Docked": { "name": "Docked", "description": "Se activa cuando su nave aterriza en una estación espacial o puesto avanzado", "enabled": false, "priority": 3, "responder": true, "script": "{if event.state = \"Damaged\": Emergency}\r\nAnclaje completado.\r\n\r\n{if event.activefine || event.wanted:\r\n Activados protocolos de anonimato.\r\n}\r\n\r\n{if event.cockpitbreached:\r\n Recuerde reparar el cristal de la cabina.\r\n}", "defaultValue": "{if event.state = \"Damaged\": Emergency}\r\nAnclaje completado.\r\n\r\n{if event.activefine || event.wanted:\r\n Activados protocolos de anonimato.\r\n}\r\n\r\n{if event.cockpitbreached:\r\n Recuerde reparar el cristal de la cabina.\r\n}", "default": true }, "Docking cancelled": { "name": "Docking cancelled", "description": "Se activa cuando su nave cancela el aterrizaje solicitado en una estación espacial o puesto avanzado", "enabled": true, "priority": 3, "responder": true, "script": "Solicitud de aterrizaje cancelada.", "defaultValue": "Solicitud de aterrizaje cancelada.", "default": true }, "Docking denied": { "name": "Docking denied", "description": "Se activa cuando a su nave le es denegado el aterrizaje en una estación espacial o puesto avanzado", "enabled": true, "priority": 2, "responder": true, "script": "{Pause(2000)}\n\n{OneOf('Hemos recibido una denegación del permiso de aterrizaje','Se nos ha denegado el permiso de aterrizaje','nos informan de que no pueden darnos permiso para aterrizar')}\n\n{if event.reason = \"ActiveFighter\":\n porque nuestro caza está desplegado\n|elif event.reason = \"Distance\":\n {OneOf('porque estamos demasiado lejos de la estación','Porque no hemos alcanzado la distancia mínima a la estación')}{OneOf (' ',' ','. Debemos acercarnos al menos a sietemil quinientos metros')}\n|elif event.reason = \"Hostile\":\n {OneOf('porque a la facción que controla la estación no le gustamos','porque la facción que controla la estación nos considera hostiles')}\n|elif event.reason = \"NoSpace\":\n {OneOf('porque no hay espacio disponible','porque todas las plataformas están ocupadas','porque no hay plataformas libres del tamaño adecuado')}{OneOf (' ',' ','. Debemos esperar a que quede una plataforma libre')}\n|elif event.reason = \"Offences\":\n porque hemos cometido una ofensa contra ellos recientemente\n|elif event.reason = \"TooLarge\":\n porque no hay pistas de aterrizaje de tamaño suficiente para albergar esta nave\n}.", "defaultValue": "{Pause(2000)}\n\n{OneOf('Hemos recibido una denegación del permiso de aterrizaje','Se nos ha denegado el permiso de aterrizaje','nos informan de que no pueden darnos permiso para aterrizar')}\n\n{if event.reason = \"ActiveFighter\":\n porque nuestro caza está desplegado\n|elif event.reason = \"Distance\":\n {OneOf('porque estamos demasiado lejos de la estación','Porque no hemos alcanzado la distancia mínima a la estación')}{OneOf (' ',' ','. Debemos acercarnos al menos a sietemil quinientos metros')}\n|elif event.reason = \"Hostile\":\n {OneOf('porque a la facción que controla la estación no le gustamos','porque la facción que controla la estación nos considera hostiles')}\n|elif event.reason = \"NoSpace\":\n {OneOf('porque no hay espacio disponible','porque todas las plataformas están ocupadas','porque no hay plataformas libres del tamaño adecuado')}{OneOf (' ',' ','. Debemos esperar a que quede una plataforma libre')}\n|elif event.reason = \"Offences\":\n porque hemos cometido una ofensa contra ellos recientemente\n|elif event.reason = \"TooLarge\":\n porque no hay pistas de aterrizaje de tamaño suficiente para albergar esta nave\n}.", "default": true }, "Docking granted": { "name": "Docking granted", "description": "Se activa cuando se te concede permiso a tu nave para aterrizar en una estación espacial o puesto avanzado", "enabled": true, "priority": 4, "responder": true, "script": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'landing pad')}\r\n{SetState('eddi_context_landing_pad_system', system.name)}\r\n{SetState('eddi_context_landing_pad_station', event.station)}\r\n{SetState('eddi_context_landing_pad_station_model', event.stationtype)}\r\n{SetState('eddi_context_landing_pad_pad', event.landingpad)}\r\n\r\n{if event.stationDefinition.basename = \"Coriolis\" || \r\n event.stationDefinition.basename = \"Orbis\" || \r\n event.stationDefinition.basename = \"Bernal\" || \r\n event.stationDefinition.basename = \"AsteroidBase\":\r\n{Pause(8000)}\r\n {F(\"Landing pad report\")}\r\n}", "defaultValue": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'landing pad')}\r\n{SetState('eddi_context_landing_pad_system', system.name)}\r\n{SetState('eddi_context_landing_pad_station', event.station)}\r\n{SetState('eddi_context_landing_pad_station_model', event.stationtype)}\r\n{SetState('eddi_context_landing_pad_pad', event.landingpad)}\r\n\r\n{if event.stationDefinition.basename = \"Coriolis\" || \r\n event.stationDefinition.basename = \"Orbis\" || \r\n event.stationDefinition.basename = \"Bernal\" || \r\n event.stationDefinition.basename = \"AsteroidBase\":\r\n{Pause(8000)}\r\n {F(\"Landing pad report\")}\r\n}", "default": true }, "Docking requested": { "name": "Docking requested", "description": "Se activa cuando tu nave solicita el aterrizaje en una estación espacial o puesto avanzado", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Docking timed out": { "name": "Docking timed out", "description": "Se activa cuando tu solicitud de aterrizaje expira", "enabled": true, "priority": 3, "responder": true, "script": "{OneOf ('No recibimos respuesta a nuestra solicitud de aterrizaje','la estación no ha respondido a nuestra solicitud de aterrizaje')}.", "defaultValue": "{OneOf ('No recibimos respuesta a nuestra solicitud de aterrizaje','la estación no ha respondido a nuestra solicitud de aterrizaje')}.", "default": true }, "Dropship deployment": { "name": "Dropship deployment", "description": "Triggered when exiting a military dropship at an on-foot conflict zone", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Embark": { "name": "Embark", "description": "Triggered when you transition from on foot to a ship or SRV", "enabled": true, "priority": 3, "responder": true, "script": "{if !event.tosrv && state.eddi_context_srv_deployed_id:\r\n Tu {Spacialise(\"SRV\")} sigue fuera, {F('Honorific')}. Si lo abandonas, se destruirá.\r\n}", "defaultValue": "{if !event.tosrv && state.eddi_context_srv_deployed:\r\n Your {Spacialise(\"SRV\")} is still deployed, {F('Honorific')}, and will be destroyed if abandoned.\r\n}", "default": false }, "Empire honorific": { "name": "Empire honorific", "description": "Función para proporcionar un tratamiento honorífico a su Comandante cuando se alinee con el Imperio", "enabled": true, "priority": null, "responder": false, "script": "{_ Forms of address taken from }\n{if cmdr.empirerating.rank <= 4: {_ Commoner }\n Comandante\n|elif cmdr.empirerating.rank = 5: {_ Knight / Dame }\n {if cmdr.gender = \"Hombre\": \n señor\n |elif cmdr.gender = \"Mujer\": \n madám\n |else: \n Comandante\n }\n|elif cmdr.empirerating.rank <= 11: {_ Peer / Peeress }\n {if cmdr.gender = \"Hombre\": \n {OneOf(\"señor\", \"su señoría\")}\n |elif cmdr.gender = \"Mujer\": \n {OneOf(\"madám\", \"su señoría\")}\n |else: \n Comandante\n }\n|elif cmdr.empirerating.rank = 12:\n su gracia\n|elif cmdr.empirerating.rank = 13:\n su alteza real\n|elif cmdr.empirerating.rank = 14:\n su majestad\n}\n", "defaultValue": "{_ Forms of address taken from }\n{if cmdr.empirerating.rank <= 4: {_ Commoner }\n Comandante\n|elif cmdr.empirerating.rank = 5: {_ Knight / Dame }\n {if cmdr.gender = \"Hombre\": \n señor\n |elif cmdr.gender = \"Mujer\": \n madám\n |else: \n Comandante\n }\n|elif cmdr.empirerating.rank <= 11: {_ Peer / Peeress }\n {if cmdr.gender = \"Hombre\": \n {OneOf(\"señor\", \"su señoría\")}\n |elif cmdr.gender = \"Mujer\": \n {OneOf(\"madám\", \"su señoría\")}\n |else: \n Comandante\n }\n|elif cmdr.empirerating.rank = 12:\n su gracia\n|elif cmdr.empirerating.rank = 13:\n su alteza real\n|elif cmdr.empirerating.rank = 14:\n su majestad\n}\n", "default": true }, "Engineer contributed": { "name": "Engineer contributed", "description": "Triggered when contributing resources to an engineer in exchange for access", "enabled": true, "priority": 3, "responder": true, "script": "{event.engineer} nos da las\r\ngracias por contribuir con\r\n{if event.contributiontype = \"Commodity\":\r\n {event.amount} tonelada{if event.amount != 1:s} \r\n|elif event.contributiontype = \"Material\":\r\n {if material.category = 'Data':\r\n {event.amount} {OneOf(\"paquete\", \"registro\")}{if event.amount != 1:s}\r\n |else:\r\n {event.amount} {OneOf(\"muestra\", \"fragmento\")}{if event.amount != 1:s}\r\n }\r\n}\r\nde {event.contribution}.", "defaultValue": "{event.engineer} nos da las\r\ngracias por contribuir con\r\n{if event.contributiontype = \"Commodity\":\r\n {event.amount} tonelada{if event.amount != 1:s} \r\n|elif event.contributiontype = \"Material\":\r\n {if material.category = 'Data':\r\n {event.amount} {OneOf(\"unidad\", \"muestra\", \"registro\")}{if event.amount != 1:s}\r\n |else:\r\n {event.amount} {OneOf(\"unidad\", \"muestra\", \"fragmento\")}{if event.amount != 1:s}\r\n }\r\n}\r\nde {event.contribution}.", "default": false }, "Engineer progressed": { "name": "Engineer progressed", "description": "Se activa cuando alcanza un nuevo rango con un Ingeniero", "enabled": true, "priority": 3, "responder": true, "script": "{if event.progresstype = \"Stage\":\r\n\r\n {if event.stage = \"Known\":\r\n El ingeniero {event.engineer} te ha mandado un mensaje.\r\n |elif event.stage = \"Invited\":\r\n Ha recibido una invitación al taller de {event.engineer}.\r\n |elif event.stage = \"Unlocked\":\r\n {event.engineer} le ha concedido acceso a las instalaciones de su taller.\r\n |elif event.stage = \"Barred\":\r\n {event.engineer} tiene {OneOf(\"prohibido\", \"restringido\")} que accedas a las instalaciones de su taller.\r\n }\r\n\r\n|elif event.engineer:\r\n\r\n {event.engineer} te ha\r\n {OneOf(\"dado\", \"concedido\")}\r\n acceso a sus planos de grado {event.rank}.\r\n\r\n}", "defaultValue": "{event.engineer} le ha dado acceso a planos de grado {event.rank}.", "default": false }, "Engineer report": { "name": "Engineer report", "description": "Report on the engineer in a contextual system", "enabled": true, "priority": null, "responder": false, "script": "{_ Fetch from Context, if a context is set _}\r\n{if state.eddi_context_system_name:\r\n {set systemname to state.eddi_context_system_name}\r\n|else:\r\n {set systemname to system.systemname}\r\n}\r\n\r\n{if !systemname || systemname = \"\":\r\n\r\n No tengo claro a que sistema te refieres.\r\n\r\n|else:\r\n\r\n {set reportEngineer to EngineerDetails(systemname)}\r\n {if reportEngineer:\r\n Este sistema es el hogar de {reportEngineer.name}\r\n {if len(reportEngineer.majorspecialties) + len(reportEngineer.minorspecialties) > 0 :, quién}\r\n {if len(reportEngineer.majorspecialties) > 0:\r\n especializado en {OneOf(\"mejorar\", \"actualizar\")}\r\n {List(reportEngineer.majorspecialties)}.\r\n }\r\n {if len(reportEngineer.minorspecialties) > 0:\r\n {if len(reportEngineer.majorspecialties) > 0: \r\n Además puede \r\n {OneOf(\"mejorar\", \"actualizar\")}\r\n |else: \r\n {OneOf(\"mejorar\", \"actualizar\")}\r\n }\r\n {List(reportEngineer.minorspecialties)}\r\n }.\r\n Podrás encontrar a {reportEngineer.name} en la estación {P(reportEngineer.stationname, \"\")}.\r\n }\r\n}", "defaultValue": "{_ Fetch from Context, if a context is set _}\r\n{if state.eddi_context_system_name:\r\n {set systemname to state.eddi_context_system_name}\r\n|else:\r\n {set systemname to system.systemname}\r\n}\r\n\r\n{if !systemname || systemname = \"\":\r\n\r\n I'm not sure which system you are asking about.\r\n\r\n|else:\r\n\r\n {set reportEngineer to EngineerDetails(systemname)}\r\n {if reportEngineer:\r\n This system is home to {reportEngineer.name}\r\n {if len(reportEngineer.majorspecialties) + len(reportEngineer.minorspecialties) > 0 :, who}\r\n {if len(reportEngineer.majorspecialties) > 0:\r\n specializes in {OneOf(\"improving\", \"upgrading\")}\r\n {List(reportEngineer.majorspecialties)}.\r\n }\r\n {if len(reportEngineer.minorspecialties) > 0:\r\n {if len(reportEngineer.majorspecialties) > 0: \r\n They also {Occasionally(2, \"can\")} \r\n {OneOf(\"improve\", \"upgrade\")}\r\n |else: \r\n {OneOf(\"improves\", \"upgrades\")}\r\n }\r\n {List(reportEngineer.minorspecialties)}\r\n }.\r\n You can find {reportEngineer.name} at {P(reportEngineer.stationname, \"station\")}.\r\n }\r\n}", "default": false }, "Entered CQC": { "name": "Entered CQC", "description": "Se activa cuando entra en CQC", "enabled": true, "priority": 5, "responder": true, "script": "Entrando en combate de corta distancia.", "defaultValue": "Entrando en combate de corta distancia.", "default": true }, "Entered normal space": { "name": "Entered normal space", "description": "Se activa cuando su nave vuelve a espacio normal", "enabled": true, "priority": 5, "responder": true, "script": "{_ Entered normal space }\r\n{_ Triggered when your ship enters normal space }\r\n\r\n\r\n{_ Context }\r\n{SetState('eddi_context_last_subject', 'fsd')}\r\n{SetState('eddi_context_last_action', 'disengage')}\r\n{SetState('eddi_context_system_name', event.system)}\r\n{SetState('eddi_context_body_name', event.body)}\r\n{SetState('eddi_context_body_type', event.bodytype)}\r\n{SetState('eddi_context_body_system', event.system)}\r\n\r\n{set station_notifications to:\r\n {set station_missions to F(\"Mission check station\")}\r\n {set station_crimes to F(\"Crime check station\")}\r\n {if station_missions || station_crimes:\r\n {_ Pause for station ATC before speaking again _}\r\n {Pause(5000)}\r\n Información:\r\n {if station_missions:\r\n {Pause(500)}\r\n {station_missions}\r\n }\r\n {if station_crimes:\r\n {Pause(500)}\r\n {station_crimes}\r\n }\r\n }\r\n}\r\n\r\n{Pause(500)}\r\n\r\n{OneOf(\"{ShipName()} está \", \"\", \"Estamos \")} \r\n{OneOf(\"saliendo de supercrucero {if event.bodytype = \\\"Anillo planetario\\\":en el\\}\", \"{OneOf(\\\"entrando en\\\", \\\"volviendo a\\\", \\\"regresando a\\\")} espacio normal {if event.bodytype = \\\"Anillo planetario\\\":del\\}\")} \r\n\r\n{if event.bodytype_invariant = 'Planet':\r\n {OneOf(\"en órbita de\", \"cerca de\", \"en las proximidades de\")}\r\n {set time to SecondsSince(0) - state.eddi_context_approach_time}\r\n {if time < 60:\r\n {set settlement to state.eddi_context_last_settlement}\r\n {set reportStation to StationDetails(settlement, event.system)}\r\n {if reportStation:\r\n {SetState('eddi_context_body_name', settlement)}\r\n {if reportStation.Model.invariantName != \"Estación desconocida\":\r\n {P(reportStation.model, \"station\")},\r\n } \r\n {P(settlement, \"station\")}\r\n {station_notifications}\r\n |else:\r\n {P(settlement, \"station\")}\r\n }\r\n |else:\r\n {set reportBody to BodyDetails(event.body, event.system)}\r\n {reportBody.bodytype)} {P(reportBody.name, \"body\")}\r\n }\r\n|elif event.bodytype_invariant = 'Estrella':\r\n {set reportBody to BodyDetails(event.body, event.system)}\r\n {OneOf(\"en órbita\", \"cerca\", \"en las proximidades\")} {reportBody.bodytype)} {P(reportBody.name, \"body\")}\r\n|elif event.bodytype = 'Estación':\r\n\t{set reportStation to StationDetails(event.body, event.system)}\r\n {set station to StationDetails(event.body, event.system)}\r\n {OneOf(\"cerca del espacio aéreo del\", \"cerca del\", \"en las proximidades del\")}\r\n {P(reportStation.model, \"station\")}, {P(event.body, \"body\")}\r\n {station_notifications}\r\n|elif event.bodytype_invariant = 'Anillo planetario':\r\n {event.bodytype} {P(token(event.body,\" Ring\",0), \"body\")}\r\n}.", "defaultValue": "{_ Entered normal space }\r\n{_ Triggered when your ship enters normal space }\r\n\r\n\r\n{_ Context }\r\n{SetState('eddi_context_last_subject', 'fsd')}\r\n{SetState('eddi_context_last_action', 'disengage')}\r\n{SetState('eddi_context_system_name', event.system)}\r\n{SetState('eddi_context_body_name', event.body)}\r\n{SetState('eddi_context_body_system', event.system)}\r\n\r\n{set station_notifications to:\r\n {set station_missions to F(\"Mission check station\")}\r\n {set station_crimes to F(\"Crime check station\")}\r\n {if station_missions || station_crimes:\r\n {Pause(500)}\r\n \r\n {if station_missions:\r\n {Pause(500)}\r\n {station_missions}\r\n }\r\n {if station_crimes:\r\n {Pause(500)}\r\n {station_crimes}\r\n }\r\n }\r\n}\r\n\r\n{_ If following a glide event, pause is not required. _}\r\n{if !(status.near_surface && status.fsd_status = \"masslock\"):\r\n {Pause(5000)}\r\n}\r\n\r\n{OneOf(\"{ShipName()} está \", \"\", \"Estamos \")} \r\n{OneOf(\"saliendo de supercrucero\", \"{OneOf(\\\"entrando en\\\", \\\"volviendo a\\\", \\\"regresando a\\\")} espacio normal\")} \r\n\r\n{if event.bodytype = 'Planeta':\r\n {OneOf(\"en órbita de\", \"cerca de\", \"en las proximidades de\")}\r\n {set time to SecondsSince(0) - state.eddi_context_approach_time}\r\n {if time < 60:\r\n {set settlement to state.eddi_context_last_settlement}\r\n {set station to StationDetails(settlement, event.system)}\r\n {if station:\r\n {SetState('eddi_context_body_name', settlement)}\r\n {P(station.model)}, {P(settlement)}\r\n {station_notifications}\r\n |else:\r\n {P(settlement)}\r\n }\r\n |else:\r\n el planeta {P(event.body)}\r\n }\r\n|elif event.bodytype = 'Estrella':\r\n {OneOf(\"en órbita\", \"cerca\", \"en las proximidades\")} de la estrella {P(event.body)}\r\n|elif event.bodytype = 'Estación':\r\n {set station to StationDetails(event.body, event.system)}\r\n {OneOf(\"cerca del espacio aéreo del\", \"cerca del\", \"en las proximidades del\")}\r\n {P(station.model)}, {P(event.body)}\r\n {station_notifications}\r\n|elif event.bodytype = 'PlanetaryRing':\r\n Anillo planetario {P(token(event.body,\" Anillo\",0))}\r\n}.", "default": false }, "Entered signal source": { "name": "Entered signal source", "description": "Se activa cuando su nave entra en una señal", "enabled": true, "priority": 5, "responder": true, "script": "{set warninglevel to:\r\n {set entered to OneOf(\"Hemos entrado en una señal\", \"Entramos en una señal\", \"Entrando en una señal\")}\r\n\r\n {if event.threat < 2:\r\n {entered}\r\n |elif event.threat = 2:\r\n Precaución. {entered} de amenaza media\r\n |elif event.threat = 3:\r\n Alerta. {entered} de alta amenaza\r\n |elif event.threat = 4:\r\n Peligro. {entered} de muy alta amenaza\r\n |elif event.threat = 5:\r\n Peligro extremo. {Occasionally(2, entered)} de muy alta amenaza\r\n |elif event.threat = 6:\r\n Peligro extremo. {Occasionally(2, entered)} de amenaza extremadamente alta\r\n |elif event.threat = 7:\r\n Peligro extremo. {Occasionally(2, entered)} de ultra alta amenaza\r\n |else:\r\n Peligro extremo. {Occasionally(2, entered)} de nivel {event.threat} de amenaza sin precedentes\r\n }\r\n}\r\n\r\n{set source to token(event.source, \"$USS_Type_\", 1)}\r\n{if source = \"Aftermath;\":\r\n {set source to OneOf(\"procedente de las consecuencias de un combate\", \"procedente de los restos de una batalla\")}\r\n|elif ((source = \"Anomaly;\" || source = \"Salvage;\") && event.threat = 2):\r\n {set warninglevel to entered}\r\n {set source to OneOf(\"de origen alienínega\", \"de procedencia no humana\", \"de una sonda targoide\")}\r\n|elif (source = \"Anomaly;\" && event.threat = 4):\r\n {set warninglevel to entered}\r\n {set source to OneOf(\"de origen alienígena\", \"de procedencia no humana\", \"de un sensor targoide\")}\r\n|elif source = \"Anomaly;\":\r\n {set source to OneOf(\"de origen anómalo\", \"de procedencia desconocida\", \"de procedencia misteriosa\")}\r\n|elif source = \"Ceremonial;\":\r\n {set source to \"procedente de comunicaciones ceremoniales\"}\r\n|elif source = \"Convoy;\":\r\n {set source to \"procedente de un convoy\"}\r\n|elif source = \"DisruptedWakeEchoes;\":\r\n {set source to \"\"}\r\n|elif source = \"DistressSignal;\":\r\n {set source to \"procedente de un desastre\"}\r\n|elif source = \"MissionTarget;\":\r\n {set source to OneOf(\"procedente de una misión\", \"codificada en una misión\")}\r\n|elif source = \"NonHuman;\":\r\n {set source to OneOf(\"de origen alienígena\",\"de procedencia no humana\")}\r\n|elif source = \"Salvage;\":\r\n {set source to \"procedente de transmisiones deterioradas\"}\r\n|elif source = \"ValuableSalvage;\":\r\n {set source to \"procedente de emisiones codificadas\"}\r\n|elif source = \"VeryValuableSalvage;\":\r\n {set source to \"procedente de emisiones de alto grado\"}\r\n|elif source = \"WeaponsFire;\":\r\n {set source to OneOf(\"procedente de un combate\", \"originada por disparo de armas\")}\r\n}\r\n\r\n{Pause(2000)}\r\n{warninglevel} {source}. \r\n\r\n{if system.state = \"Anarchy\" && source = \"procedente de transmisiones deterioradas\" && system.population > 0: \r\n {Occasionally(2, \"\r\n Precaución.\r\n {set local to OneOf('locales', 'cercanas')}\r\n {set chatter to OneOf('comentarios', 'chismorreos', 'rumores')}\r\n {set indicate to OneOf('indican', 'sugieren', 'implican', 'informan')}\r\n {OneOf('transmisiones {local} {indicate}', \r\n '{chatter} en transmisiones {local} {indicate}')}\r\n {Occasionally(3, 'que hay')}\r\n {OneOf('elevada', 'alta', 'considerable')}\r\n {OneOf('actividad de', 'presencia de')}\r\n {OneOf('{Occasionally(2, \\'sindicatos\\')} criminales ', \r\n '{Occasionally(2, OneOf(\\'bandas\\', \\'clanes\\'))} piratas ' )}\r\n en {OneOf('el área', 'los alrededores', 'este sector', 'este sistema')}.\r\n {OneOf('Permanezca', 'esté', 'manténgase')} {OneOf('vigilante', 'alerta', 'atento')} \r\n {Occasionally(3,' {F(\\'Honorific\\')}' )}.\r\n \")}\r\n}", "defaultValue": "{set warninglevel to:\r\n {set entered to OneOf(\"Hemos entrado en una señal\", \"Entramos en una señal\", \"Entrando en una señal\")}\r\n\r\n {if event.threat < 2:\r\n {entered}\r\n |elif event.threat = 2:\r\n Precaución. {entered} de amenaza media\r\n |elif event.threat = 3:\r\n Alerta. {entered} de alta amenaza\r\n |elif event.threat = 4:\r\n Peligro. {entered} de muy alta amenaza\r\n |elif event.threat = 5:\r\n Peligro extremo. {Occasionally(2, entered)} de muy alta amenaza\r\n |elif event.threat = 6:\r\n Peligro extremo. {Occasionally(2, entered)} de amenaza extremadamente alta\r\n |elif event.threat = 7:\r\n Peligro extremo. {Occasionally(2, entered)} de ultra alta amenaza\r\n |else:\r\n Peligro extremo. {Occasionally(2, entered)} de nivel {event.threat} de amenaza sin precedentes\r\n }\r\n}\r\n\r\n{set source to token(event.source, \"$USS_Type_\", 1)}\r\n{if source = \"Aftermath;\":\r\n {set source to OneOf(\"procedente de las consecuencias de un combate\", \"procedente de los restos de una batalla\")}\r\n|elif ((source = \"Anomaly;\" || source = \"Salvage;\") && event.threat = 2):\r\n {set warninglevel to entered}\r\n {set source to OneOf(\"de origen alienínega\", \"de procedencia no humana\", \"de una sonda targoide\")}\r\n|elif (source = \"Anomaly;\" && event.threat = 4):\r\n {set warninglevel to entered}\r\n {set source to OneOf(\"de origen alienígena\", \"de procedencia no humana\", \"de un sensor targoide\")}\r\n|elif source = \"Anomaly;\":\r\n {set source to OneOf(\"de origen anómalo\", \"de procedencia desconocida\", \"de procedencia misteriosa\")}\r\n|elif source = \"Ceremonial;\":\r\n {set source to \"procedente de comunicaciones ceremoniales\"}\r\n|elif source = \"Convoy;\":\r\n {set source to \"procedente de un convoy\"}\r\n|elif source = \"DisruptedWakeEchoes;\":\r\n {set source to \"\"}\r\n|elif source = \"DistressSignal;\":\r\n {set source to \"procedente de un desastre\"}\r\n|elif source = \"MissionTarget;\":\r\n {set source to OneOf(\"procedente de una misión\", \"codificada en una misión\")}\r\n|elif source = \"NonHuman;\":\r\n {set source to OneOf(\"de origen alienígena\",\"de procedencia no humana\")}\r\n|elif source = \"Salvage;\":\r\n {set source to \"procedente de transmisiones deterioradas\"}\r\n|elif source = \"ValuableSalvage;\":\r\n {set source to \"procedente de emisiones codificadas\"}\r\n|elif source = \"VeryValuableSalvage;\":\r\n {set source to \"procedente de emisiones de alto grado\"}\r\n|elif source = \"WeaponsFire;\":\r\n {set source to OneOf(\"procedente de un combate\", \"originada por disparo de armas\")}\r\n}\r\n\r\n{Pause(2000)}\r\n{warninglevel} {source}. \r\n\r\n{if system.state = \"Anarchy\" && source = \"procedente de transmisiones deterioradas\" && system.population > 0: \r\n {Occasionally(2, \"\r\n Precaución.\r\n {set local to OneOf('locales', 'cercanas')}\r\n {set chatter to OneOf('comentarios', 'chismorreos', 'rumores')}\r\n {set indicate to OneOf('indican', 'sugieren', 'implican', 'informan')}\r\n {OneOf('transmisiones {local} {indicate}', \r\n '{chatter} en transmisiones {local} {indicate}')}\r\n {Occasionally(3, 'que hay')}\r\n {OneOf('elevada', 'alta', 'considerable')}\r\n {OneOf('actividad de', 'presencia de')}\r\n {OneOf('{Occasionally(2, \\'sindicatos\\')} criminales ', \r\n '{Occasionally(2, OneOf(\\'bandas\\', \\'clanes\\'))} piratas ' )}\r\n en {OneOf('el área', 'los alrededores', 'este sector', 'este sistema')}.\r\n {OneOf('Permanezca', 'esté', 'manténgase')} {OneOf('vigilante', 'alerta', 'atento')} \r\n {Occasionally(3,' {F(\\'Honorific\\')}' )}.\r\n \")}\r\n}", "default": true }, "Entered supercruise": { "name": "Entered supercruise", "description": "Se activa cuando su nave entra en supercrucero", "enabled": true, "priority": 5, "responder": true, "script": "{_ Context }\n{SetState('eddi_context_last_subject', 'fsd')}\n{SetState('eddi_context_last_action', 'engage')}\n\n{Pause(1000)}\n\n{OneOf(\"{ShipName()}\", \"\")} {OneOf(\"entrando en\", \"saltando a\")} supercrucero.\n", "defaultValue": "{_ Context }\n{SetState('eddi_context_last_subject', 'fsd')}\n{SetState('eddi_context_last_action', 'engage')}\n\n{Pause(1000)}\n\n{OneOf(\"{ShipName()}\", \"\")} {OneOf(\"entrando en\", \"saltando a\")} supercrucero.\n", "default": true }, "Exploration data purchased": { "name": "Exploration data purchased", "description": "Se activa cuando compra datos de exploración", "enabled": true, "priority": 5, "responder": true, "script": "{OneOf(\n\"Adquiridos datos del sistema {P(event.system)}\",\n \"Datos de{OneOf('l sistema', ' exploración de')} {P(event.system)} disponibles\",\n\"{Occasionally(3, '{ShipName()} ha')} recibido datos locales de{OneOf('l sistema', 'exploración de')} {P(event.system)}\",\n\"Confirmada la recepción de datos de{OneOf('l sistema', 'exploración de')} {P(event.system)}\"\n)}.", "defaultValue": "{OneOf(\n\"Adquiridos datos del sistema {P(event.system)}\",\n \"Datos de{OneOf('l sistema', ' exploración de')} {P(event.system)} disponibles\",\n\"{Occasionally(3, '{ShipName()} ha')} recibido datos locales de{OneOf('l sistema', 'exploración de')} {P(event.system)}\",\n\"Confirmada la recepción de datos de{OneOf('l sistema', 'exploración de')} {P(event.system)}\"\n)}.", "default": true }, "Exploration data sold": { "name": "Exploration data sold", "description": "Se activa cuando vendes datos de exploración", "enabled": true, "priority": 5, "responder": true, "script": "\r\nDatos de exploración de {len(event.systems)} sistema{if len(event.systems) > 1:s}, vendidos por {event.reward} créditos\n\n{if len(event.firsts) > 0:\n , con una bonificación adicional de {event.bonus} créditos por\n {if len(event.firsts) = 1:\n un primer descubrimiento\n |else:\n {len(event.firsts)} sistemas descubiertos por primera vez\n }\n}.", "defaultValue": "\r\nDatos de exploración de {len(event.systems)} sistema{if len(event.systems) > 1:s}, vendidos por {event.reward} créditos\n\n{if len(event.firsts) > 0:\n , con una bonificación adicional de {event.bonus} créditos por\n {if len(event.firsts) = 1:\n un primer descubrimiento\n |else:\n {len(event.firsts)} sistemas descubiertos por primera vez\n }\n}.", "default": true }, "Fighter docked": { "name": "Fighter docked", "description": "Se activa cuando atracas el caza en tu nave.", "enabled": true, "priority": 3, "responder": true, "script": "Caza {OneOf(\"embarcado\", \"acoplado\")} {Occasionally(2, \"en la nave\")}.", "defaultValue": "Caza {OneOf(\"embarcado\", \"acoplado\")} {Occasionally(2, \"en la nave\")}.", "default": true }, "Fighter launched": { "name": "Fighter launched", "description": "Se activa cuando lanza un caza desde su nave", "enabled": true, "priority": 3, "responder": true, "script": "{OneOf(\"lanzando\", \"desacoplando\")} caza {Occasionally(2, \"de la nave\")}.", "defaultValue": "{OneOf(\"lanzando\", \"desacoplando\")} caza {Occasionally(2, \"de la nave\")}.", "default": true }, "Fighter rebuilt": { "name": "Fighter rebuilt", "description": "Se activa cuando se ha reconstruido un caza en el hangar de su nave", "enabled": true, "priority": 3, "responder": true, "script": "Caza {OneOf(\"Imprimido\", \"Reconstruido\")} y {OneOf(\"listo para despegar\", \"preparado\")}.", "defaultValue": "Caza {OneOf(\"Imprimido\", \"Reconstruido\")} y {OneOf(\"listo para despegar\", \"preparado\")}.", "default": true }, "File Header": { "name": "File Header", "description": "Se activa cuando se ha leído el encabezado del archivo", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Fine incurred": { "name": "Fine incurred", "description": "Se activa cuando se le impone una multa", "enabled": true, "priority": 3, "responder": true, "script": "{_ Context }\n{SetState('eddi_context_last_subject', 'fine')}\n{SetState('eddi_context_last_action', 'incur')}\n{SetState('eddi_context_fine_name', event.victim)}\n{SetState('eddi_context_fine_faction', event.faction)}\n{SetState('eddi_context_fine_amount', event.fine)}\n\n{OneOf ('Se nos ha impuesto una multa de {event.fine} créditos de la facción {event.faction}','la facción {event.faction} nos ha impuesto una multa de {event.fine} créditos')}.", "defaultValue": "{_ Context }\n{SetState('eddi_context_last_subject', 'fine')}\n{SetState('eddi_context_last_action', 'incur')}\n{SetState('eddi_context_fine_name', event.victim)}\n{SetState('eddi_context_fine_faction', event.faction)}\n{SetState('eddi_context_fine_amount', event.fine)}\n\n{OneOf ('Se nos ha impuesto una multa de {event.fine} créditos de la facción {event.faction}','la facción {event.faction} nos ha impuesto una multa de {event.fine} créditos')}.", "default": true }, "Fine paid": { "name": "Fine paid", "description": "Se activa cuando se paga una multa", "enabled": true, "priority": 3, "responder": true, "script": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'fine')}\r\n{SetState('eddi_context_last_action', 'pay')}\r\n{SetState('eddi_context_fine_amount', event.amount)}\r\n\r\nPagada multa de {event.amount} créditos.", "defaultValue": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'fine')}\r\n{SetState('eddi_context_last_action', 'pay')}\r\n{SetState('eddi_context_fine_amount', event.amount)}\r\n\r\nPagada multa de {event.amount} créditos.", "default": true }, "FinesBounties_Add": { "name": "FinesBounties_Add", "description": "Add Bonds, Bounties & Fines to memory store (TEST)", "enabled": true, "priority": null, "responder": false, "script": "{_Shirka}\r\n\r\n{_ FinesBounties_Add }\r\n{_ Add Bonds, Bounties & Fines to memory store }\r\n\r\n{if state.eddi_context_bounties_initialised != \"yes\": {F(\"FinesBounties_Initialise\")}}\r\n\r\n{set shipid to cast(state.eddi_context_currentshipid, \"s\")}\r\n{SetState('eddi_context_currentshipname', ShipName())}\r\n\r\n{_ Unfortunately the variables needed for Power bonuses to be accurate, are not yet available in EDDI. }\r\n{_ Need: Power Galactic Rank, and Power Personal Rank }\r\n{_ Placeholder variables and code are included if/when they are ever implemented in the future. }\r\n\r\n{_ Setup placeholder Power variables array. Not required if added to EDDI in future. _}\r\n{_ Alternatively, manually edit these to match your Poweer Pledge / own rank / Power rank. _}\r\n{set power to [\"pledged\":\"None\", \"personalrank\": 0, \"galacticrank\": 0]}\r\n\r\n\r\n{if state.eddi_context_last_subject = \"bond\":\r\n {set type to \"Bond\"}\r\n {set evtrewards to [event.awardingfaction: event.reward]}\r\n\r\n|elif state.eddi_context_last_subject = \"bounty\" && state.eddi_context_last_action = \"award\":\r\n {set type to \"BountyAwd\"}\r\n {set evtrewards to []}\r\n {for reward in event.rewards:\r\n {set evtrewards to union(evtrewards, [reward.faction: reward.amount])}\r\n }\r\n\r\n|elif state.eddi_context_last_subject = \"bounty\" && state.eddi_context_last_action = \"incur\":\r\n {set type to \"BountyInc\"}\r\n {set evtrewards to [event.faction: event.bounty]}\r\n\r\n|elif state.eddi_context_last_subject = \"powerbounty\" && state.eddi_context_last_action = \"award\":\r\n {_ Placeholder for Power Bounties _}\r\n\r\n|elif state.eddi_context_last_subject = \"powerbounty\" && state.eddi_context_last_action = \"incur\":\r\n {_ Placeholder for Power Bounties _}\r\n\r\n|elif state.eddi_context_last_subject = \"stellarbounty\" && state.eddi_context_last_action = \"award\":\r\n {_ Placeholder for Interstellar Bounties _}\r\n\r\n|elif state.eddi_context_last_subject = \"stellarbounty\" && state.eddi_context_last_action = \"incur\":\r\n {_ Placeholder for Interstellar Bounties _}\r\n\r\n|elif state.eddi_context_last_subject = \"fine\":\r\n {set type to \"Fine\"}\r\n {set evtrewards to [event.faction: event.fine]}\r\n}\r\n\r\n{set bounties_shipid_array to split(state.eddi_context_bounties_shipid, \"+=\")}\r\n{set bounties_type_array to split(state.eddi_context_bounties_type, \"+=\")}\r\n{set bounties_faction_array to split(state.eddi_context_bounties_faction, \"+=\")}\r\n{set bounties_system_array to split(state.eddi_context_bounties_system, \"+=\")}\r\n{set bounties_amount_array to split(state.eddi_context_bounties_amount, \"+=\")}\r\n\r\n\r\n{for evtfaction, evtamount in evtrewards:\r\n\r\n {set position to find(bounties_faction_array, evtfaction, 0)}\r\n {set updatedata to 0}\r\n {set pwrpct to 1}\r\n\r\n {if type = \"Bond\" || type = \"BountyAwd\":\r\n\r\n {if type = \"BountyAwd\":\r\n\r\n {_ If in Power controlled space get extra bounty -> A. Lavigny-Duval, Z. Hudson, P. Antal, Y. Grom }\r\n {if system.powerstate = \"Control\" || system.powerstate = \"Exploited\":\r\n\r\n {if system.power = \"Arissa Lavigny-Duval\" || system.power = \"Zachary Hudson\":\r\n\r\n {_ ALD gets +20% base rate, even if not pledged! _}\r\n {if system.power = \"Arissa Lavigny-Duval\": {set pwrpct to 1.2} }\r\n\r\n {_ if joined power & personal rank is 2 or more, get bonus amount }\r\n {if power.personalrank > 1 && power.pledge = system.power:\r\n {set pwrpct to 1.2}\r\n\r\n {_ if power galactic rank 3, 2 or 1 = +10%, +20% or +30% }\r\n {if power.galacticrank = 3: {set pwrpct to 1.3}\r\n |elif power.galacticrank = 2: {set pwrpct to 1.4}\r\n |elif power.galacticrank = 1: {set pwrpct to 1.5}\r\n }\r\n }\r\n\r\n {_ if personal rank is 5 = flat +100% bonus }\r\n {if power.personalrank = 5 && power.pledge = system.power:\r\n {set pwrpct to 2}\r\n }\r\n\r\n |elif system.power = \"Yuri Grom\":\r\n {_ Y.Grom +20% base, plus 2% at personal rank =>2 }\r\n {_ or 5/7/15% at galactic ranks 3/2/1 _}\r\n {set pwrpct to 1.2}\r\n\r\n {_ if joined power & personal rank is 2 or more, get +2% on amount }\r\n {if power.personalrank > 1 && power.pledge = system.power:\r\n {set pwrpct to pwrpct + 0.02}\r\n\r\n {_ if power galactic rank 3, 2 or 1 = +3%, +5% or +13% }\r\n {if power.galacticrank = 3: {set pwrpct to pwrpct + 0.03}\r\n |elif power.galacticrank = 2: {set pwrpct to pwrpct + 0.05}\r\n |elif power.galacticrank = 1: {set pwrpct to pwrpct + 0.13}\r\n }\r\n }\r\n\r\n |elif system.power = \"Pranav Antal\":\r\n {_ if personal rank is 5 = flat +100% bonus in controlled or exploited systems }\r\n {if power.personalrank = 5 && power.pledge = system.power:\r\n {set pwrpct to 2}\r\n }\r\n }\r\n }\r\n }\r\n\r\n {set evtamount to floor(evtamount * pwrpct)}\r\n\r\n {while position > -1:\r\n {if bounties_type_array[position] = type:\r\n\r\n {_ Add amount to stored amount }\r\n {set amount to evtamount + bounties_amount_array[position]}\r\n\r\n {_ Update array }\r\n {set bounties_amount_array to union(bounties_amount_array, [position:amount])}\r\n\r\n {set updatedata to 1}\r\n {set position to -1}\r\n |else:\r\n {set position to find(bounties_faction_array, evtfaction, position + 1)}\r\n }\r\n }\r\n\r\n |elif type = \"Fine\" || type = \"BountyInc\":\r\n\r\n {_ If in Power controlled space incur extra fines & bounties }\r\n {_ A. Lavigny-Duval, P.Antal, A. Delaine}\r\n\r\n {_ ALD - F&B Double in control systems _}\r\n {_ PA - F&B Double in control systems, or +50% in all super-powers _}\r\n {_ A.Delaine - F&B -20%, @ rank =>2, -30/40/50 at galactic rank 3/2/1 , rank 5 = -100% _}\r\n\r\n {if (system.power = \"Arissa Lavigny-Duval\" || system.power = \"Pranav Antal\")\r\n && system.powerstate = \"Control\":\r\n {type} doubled in {system.power} controlled space.\r\n |elif system.power = \"Pranav Antal\":\r\n {type} increased by 50% in Pranav Antal exploited space.\r\n |elif system.power = \"Archon Delaine\":\r\n\r\n {_ if joined power & personal rank is 2 or more, get -20% on fines & bounties incurred }\r\n {if power.personalrank > 1 && power.pledge = system.power:\r\n {set pwrpct to pwrpct - 0.2}\r\n\r\n {_ if power galactic rank 3, 2 or 1 = -10%, -20% or -30% }\r\n {if power.galacticrank = 3: {set pwrpct to pwrpct - 0.1}\r\n |elif power.galacticrank = 2: {set pwrpct to pwrpct - 0.2}\r\n |elif power.galacticrank = 1: {set pwrpct to pwrpct - 0.3}\r\n }\r\n }\r\n\r\n {_ if personal rank is 5 = flat -100% bonus }\r\n {if power.personalrank = 5 && power.pledge = system.power:\r\n {set pwrpct to 0}\r\n }\r\n }\r\n\r\n {set evtamount to ceil(evtamount * pwrpct)}\r\n\r\n {while position > -1:\r\n {if shipid = bounties_shipid_array[position]:\r\n {if (bounties_type_array[position] = type)\r\n || (bounties_type_array[position] = \"Fine\" && type = \"BountyInc\")\r\n || (bounties_type_array[position] = \"BountyInc\" && type = \"Fine\"):\r\n\r\n {_ Add amount to stored amount }\r\n {set amount to evtamount + bounties_amount_array[position]}\r\n {_ Maximum bounty is 1MCr. Is it still after v3.0? }\r\n {if type = \"BountyInc\" || bounties_type_array[position] = \"BountyInc\":\r\n {if amount > 1000000: {set amount to 1000000}}\r\n }\r\n\r\n {_ Update arrays }\r\n {if bounties_type_array[position] = \"Fine\" && type = \"BountyInc\":\r\n {set bounties_type_array to union(bounties_type_array, [position:type])}\r\n }\r\n {set bounties_amount_array to union(bounties_amount_array, [position:amount])}\r\n\r\n {set updatedata to 1}\r\n {set position to -1}\r\n |else:\r\n {set position to find(bounties_faction_array, evtfaction, position + 1)}\r\n }\r\n |else:\r\n {set position to find(bounties_faction_array, evtfaction, position + 1)}\r\n }\r\n }\r\n }\r\n\r\n {_ Add new data to arrays}\r\n {if updatedata = 0:\r\n {if len(state.eddi_context_bounties_type) = 0:\r\n {set bounties_shipid_array to [shipid]}\r\n {set bounties_type_array to [type]}\r\n {set bounties_faction_array to [evtfaction]}\r\n {set bounties_system_array to [system.name]}\r\n {set bounties_amount_array to [evtamount]}\r\n |else:\r\n {set bounties_shipid_array to cat(bounties_shipid_array, [shipid])}\r\n {set bounties_type_array to cat(bounties_type_array, [type])}\r\n {set bounties_faction_array to cat(bounties_faction_array, [evtfaction])}\r\n {set bounties_system_array to cat(bounties_system_array, [system.name])}\r\n {set bounties_amount_array to cat(bounties_amount_array, [evtamount])}\r\n }\r\n }\r\n}\r\n\r\n{_ Update State variable strings}\r\n{if len(state.eddi_context_bounties_type) = 0 && len(bounties_type_array) = 1:\r\n {set sep to \"\"}\r\n|else:\r\n {set sep to \"+=\"}\r\n}\r\n{SetState('eddi_context_bounties_shipid', join(bounties_shipid_array, sep))}\r\n{SetState('eddi_context_bounties_type', join(bounties_type_array, sep))}\r\n{SetState('eddi_context_bounties_faction', join(bounties_faction_array, sep))}\r\n{SetState('eddi_context_bounties_system', join(bounties_system_array, sep))}\r\n{SetState('eddi_context_bounties_amount', join(bounties_amount_array, sep))}\r\n", "defaultValue": "{_Shirka}\r\n\r\n{_ FinesBounties_Add }\r\n{_ Add Bonds, Bounties & Fines to memory store }\r\n\r\n{if state.eddi_context_bounties_initialised != \"yes\": {F(\"FinesBounties_Initialise\")}}\r\n\r\n{set shipid to cast(state.eddi_context_currentshipid, \"s\")}\r\n{SetState('eddi_context_currentshipname', ShipName())}\r\n\r\n{_ Unfortunately the variables needed for Power bonuses to be accurate, are not yet available in EDDI. }\r\n{_ Need: Power Galactic Rank, and Power Personal Rank }\r\n{_ Placeholder variables and code are included if/when they are ever implemented in the future. }\r\n\r\n{_ Setup placeholder Power variables array. Not required if added to EDDI in future. _}\r\n{_ Alternatively, manually edit these to match your Poweer Pledge / own rank / Power rank. _}\r\n{set power to [\"pledged\":\"None\", \"personalrank\": 0, \"galacticrank\": 0]}\r\n\r\n\r\n{if state.eddi_context_last_subject = \"bond\":\r\n {set type to \"Bond\"}\r\n {set evtrewards to [event.awardingfaction: event.reward]}\r\n\r\n|elif state.eddi_context_last_subject = \"bounty\" && state.eddi_context_last_action = \"award\":\r\n {set type to \"BountyAwd\"}\r\n {set evtrewards to []}\r\n {for reward in event.rewards:\r\n {set evtrewards to union(evtrewards, [reward.faction: reward.amount])}\r\n }\r\n\r\n|elif state.eddi_context_last_subject = \"bounty\" && state.eddi_context_last_action = \"incur\":\r\n {set type to \"BountyInc\"}\r\n {set evtrewards to [event.faction: event.bounty]}\r\n\r\n|elif state.eddi_context_last_subject = \"powerbounty\" && state.eddi_context_last_action = \"award\":\r\n {_ Placeholder for Power Bounties _}\r\n\r\n|elif state.eddi_context_last_subject = \"powerbounty\" && state.eddi_context_last_action = \"incur\":\r\n {_ Placeholder for Power Bounties _}\r\n\r\n|elif state.eddi_context_last_subject = \"stellarbounty\" && state.eddi_context_last_action = \"award\":\r\n {_ Placeholder for Interstellar Bounties _}\r\n\r\n|elif state.eddi_context_last_subject = \"stellarbounty\" && state.eddi_context_last_action = \"incur\":\r\n {_ Placeholder for Interstellar Bounties _}\r\n\r\n|elif state.eddi_context_last_subject = \"fine\":\r\n {set type to \"Fine\"}\r\n {set evtrewards to [event.faction: event.fine]}\r\n}\r\n\r\n{set bounties_shipid_array to split(state.eddi_context_bounties_shipid, \"+=\")}\r\n{set bounties_type_array to split(state.eddi_context_bounties_type, \"+=\")}\r\n{set bounties_faction_array to split(state.eddi_context_bounties_faction, \"+=\")}\r\n{set bounties_system_array to split(state.eddi_context_bounties_system, \"+=\")}\r\n{set bounties_amount_array to split(state.eddi_context_bounties_amount, \"+=\")}\r\n\r\n\r\n{for evtfaction, evtamount in evtrewards:\r\n\r\n {set position to find(bounties_faction_array, evtfaction, 0)}\r\n {set updatedata to 0}\r\n {set pwrpct to 1}\r\n\r\n {if type = \"Bond\" || type = \"BountyAwd\":\r\n\r\n {if type = \"BountyAwd\":\r\n\r\n {_ If in Power controlled space get extra bounty -> A. Lavigny-Duval, Z. Hudson, P. Antal, Y. Grom }\r\n {if system.powerstate = \"Control\" || system.powerstate = \"Exploited\":\r\n\r\n {if system.power = \"Arissa Lavigny-Duval\" || system.power = \"Zachary Hudson\":\r\n\r\n {_ ALD gets +20% base rate, even if not pledged! _}\r\n {if system.power = \"Arissa Lavigny-Duval\": {set pwrpct to 1.2} }\r\n\r\n {_ if joined power & personal rank is 2 or more, get bonus amount }\r\n {if power.personalrank > 1 && power.pledge = system.power:\r\n {set pwrpct to 1.2}\r\n\r\n {_ if power galactic rank 3, 2 or 1 = +10%, +20% or +30% }\r\n {if power.galacticrank = 3: {set pwrpct to 1.3}\r\n |elif power.galacticrank = 2: {set pwrpct to 1.4}\r\n |elif power.galacticrank = 1: {set pwrpct to 1.5}\r\n }\r\n }\r\n\r\n {_ if personal rank is 5 = flat +100% bonus }\r\n {if power.personalrank = 5 && power.pledge = system.power:\r\n {set pwrpct to 2}\r\n }\r\n\r\n |elif system.power = \"Yuri Grom\":\r\n {_ Y.Grom +20% base, plus 2% at personal rank =>2 }\r\n {_ or 5/7/15% at galactic ranks 3/2/1 _}\r\n {set pwrpct to 1.2}\r\n\r\n {_ if joined power & personal rank is 2 or more, get +2% on amount }\r\n {if power.personalrank > 1 && power.pledge = system.power:\r\n {set pwrpct to pwrpct + 0.02}\r\n\r\n {_ if power galactic rank 3, 2 or 1 = +3%, +5% or +13% }\r\n {if power.galacticrank = 3: {set pwrpct to pwrpct + 0.03}\r\n |elif power.galacticrank = 2: {set pwrpct to pwrpct + 0.05}\r\n |elif power.galacticrank = 1: {set pwrpct to pwrpct + 0.13}\r\n }\r\n }\r\n\r\n |elif system.power = \"Pranav Antal\":\r\n {_ if personal rank is 5 = flat +100% bonus in controlled or exploited systems }\r\n {if power.personalrank = 5 && power.pledge = system.power:\r\n {set pwrpct to 2}\r\n }\r\n }\r\n }\r\n }\r\n\r\n {set evtamount to floor(evtamount * pwrpct)}\r\n\r\n {while position > -1:\r\n {if bounties_type_array[position] = type:\r\n\r\n {_ Add amount to stored amount }\r\n {set amount to evtamount + bounties_amount_array[position]}\r\n\r\n {_ Update array }\r\n {set bounties_amount_array to union(bounties_amount_array, [position:amount])}\r\n\r\n {set updatedata to 1}\r\n {set position to -1}\r\n |else:\r\n {set position to find(bounties_faction_array, evtfaction, position + 1)}\r\n }\r\n }\r\n\r\n |elif type = \"Fine\" || type = \"BountyInc\":\r\n\r\n {_ If in Power controlled space incur extra fines & bounties }\r\n {_ A. Lavigny-Duval, P.Antal, A. Delaine}\r\n\r\n {_ ALD - F&B Double in control systems _}\r\n {_ PA - F&B Double in control systems, or +50% in all super-powers _}\r\n {_ A.Delaine - F&B -20%, @ rank =>2, -30/40/50 at galactic rank 3/2/1 , rank 5 = -100% _}\r\n\r\n {if (system.power = \"Arissa Lavigny-Duval\" || system.power = \"Pranav Antal\")\r\n && system.powerstate = \"Control\":\r\n {type} doubled in {system.power} controlled space.\r\n |elif system.power = \"Pranav Antal\":\r\n {type} increased by 50% in Pranav Antal exploited space.\r\n |elif system.power = \"Archon Delaine\":\r\n\r\n {_ if joined power & personal rank is 2 or more, get -20% on fines & bounties incurred }\r\n {if power.personalrank > 1 && power.pledge = system.power:\r\n {set pwrpct to pwrpct - 0.2}\r\n\r\n {_ if power galactic rank 3, 2 or 1 = -10%, -20% or -30% }\r\n {if power.galacticrank = 3: {set pwrpct to pwrpct - 0.1}\r\n |elif power.galacticrank = 2: {set pwrpct to pwrpct - 0.2}\r\n |elif power.galacticrank = 1: {set pwrpct to pwrpct - 0.3}\r\n }\r\n }\r\n\r\n {_ if personal rank is 5 = flat -100% bonus }\r\n {if power.personalrank = 5 && power.pledge = system.power:\r\n {set pwrpct to 0}\r\n }\r\n }\r\n\r\n {set evtamount to ceil(evtamount * pwrpct)}\r\n\r\n {while position > -1:\r\n {if shipid = bounties_shipid_array[position]:\r\n {if (bounties_type_array[position] = type)\r\n || (bounties_type_array[position] = \"Fine\" && type = \"BountyInc\")\r\n || (bounties_type_array[position] = \"BountyInc\" && type = \"Fine\"):\r\n\r\n {_ Add amount to stored amount }\r\n {set amount to evtamount + bounties_amount_array[position]}\r\n {_ Maximum bounty is 1MCr. Is it still after v3.0? }\r\n {if type = \"BountyInc\" || bounties_type_array[position] = \"BountyInc\":\r\n {if amount > 1000000: {set amount to 1000000}}\r\n }\r\n\r\n {_ Update arrays }\r\n {if bounties_type_array[position] = \"Fine\" && type = \"BountyInc\":\r\n {set bounties_type_array to union(bounties_type_array, [position:type])}\r\n }\r\n {set bounties_amount_array to union(bounties_amount_array, [position:amount])}\r\n\r\n {set updatedata to 1}\r\n {set position to -1}\r\n |else:\r\n {set position to find(bounties_faction_array, evtfaction, position + 1)}\r\n }\r\n |else:\r\n {set position to find(bounties_faction_array, evtfaction, position + 1)}\r\n }\r\n }\r\n }\r\n\r\n {_ Add new data to arrays}\r\n {if updatedata = 0:\r\n {if len(state.eddi_context_bounties_type) = 0:\r\n {set bounties_shipid_array to [shipid]}\r\n {set bounties_type_array to [type]}\r\n {set bounties_faction_array to [evtfaction]}\r\n {set bounties_system_array to [system.name]}\r\n {set bounties_amount_array to [evtamount]}\r\n |else:\r\n {set bounties_shipid_array to cat(bounties_shipid_array, [shipid])}\r\n {set bounties_type_array to cat(bounties_type_array, [type])}\r\n {set bounties_faction_array to cat(bounties_faction_array, [evtfaction])}\r\n {set bounties_system_array to cat(bounties_system_array, [system.name])}\r\n {set bounties_amount_array to cat(bounties_amount_array, [evtamount])}\r\n }\r\n }\r\n}\r\n\r\n{_ Update State variable strings}\r\n{if len(state.eddi_context_bounties_type) = 0 && len(bounties_type_array) = 1:\r\n {set sep to \"\"}\r\n|else:\r\n {set sep to \"+=\"}\r\n}\r\n{SetState('eddi_context_bounties_shipid', join(bounties_shipid_array, sep))}\r\n{SetState('eddi_context_bounties_type', join(bounties_type_array, sep))}\r\n{SetState('eddi_context_bounties_faction', join(bounties_faction_array, sep))}\r\n{SetState('eddi_context_bounties_system', join(bounties_system_array, sep))}\r\n{SetState('eddi_context_bounties_amount', join(bounties_amount_array, sep))}\r\n", "default": true }, "FinesBounties_CheckContacts": { "name": "FinesBounties_CheckContacts", "description": "Function to report Bonds/Bounties or Fines/Bounties to collect or pay in the local system. (TEST)", "enabled": true, "priority": null, "responder": false, "script": "{_Shirka}\r\n\r\n{_ FinesBounties_ContactsCheck}\r\n{_ Function to report Bonds/Bounties or Fines/Bounties to collect or pay}\r\n\r\n{if len(state.eddi_context_bounties_type) > 0 && state.eddi_context_bounties_type != null:\r\n {set bounties_type_array to split(state.eddi_context_bounties_type, \"+=\")}\r\n {set bounties_faction_array to split(state.eddi_context_bounties_faction, \"+=\")}\r\n {set bounties_system_array to split(state.eddi_context_bounties_system, \"+=\")}\r\n\r\n {set position to 0}\r\n {for factions in bounties_faction_array:\r\n\r\n {if factions = station.faction || factions = system.allegiance || system.name = bounties_system_array[position]:\r\n\r\n {if bounties_type_array[position] = \"Bond\":\r\n {set bond to 1}\r\n |elif bounties_type_array[position] = \"BountyAwd\":\r\n {set bountyawd to 1}\r\n |elif bounties_type_array[position] = \"BountyInc\":\r\n {set bountyinc to 1}\r\n |elif bounties_type_array[position] = \"Fine\":\r\n {set fine to 1}\r\n }\r\n }\r\n {set position to position + 1}\r\n }\r\n}\r\n\r\n{if bountyawd = 1 || bond = 1:\r\n Recuerde. Tiene sin reclamar\r\n {if bond = 1: bonos}\r\n {if bountyawd = 1:\r\n {if bond = 1: y}\r\n recompensas\r\n }\r\n .\r\n}\r\n\r\n{if fine = 1 || bountyinc = 1:\r\n {if bountyawd = 1 || bond = 1:\r\n Además\r\n |else:\r\n Recuerde.\r\n }\r\n Tiene\r\n {if fine = 1: multas}\r\n {if bountyinc = 1:\r\n {if fine = 1: y}\r\n recompensas\r\n }\r\n por pagar.\r\n}\r\n", "defaultValue": "{_Shirka}\r\n\r\n{_ FinesBounties_ContactsCheck}\r\n{_ Function to report Bonds/Bounties or Fines/Bounties to collect or pay}\r\n\r\n{if len(state.eddi_context_bounties_type) > 0 && state.eddi_context_bounties_type != null:\r\n {set bounties_type_array to split(state.eddi_context_bounties_type, \"+=\")}\r\n {set bounties_faction_array to split(state.eddi_context_bounties_faction, \"+=\")}\r\n {set bounties_system_array to split(state.eddi_context_bounties_system, \"+=\")}\r\n\r\n {set position to 0}\r\n {for factions in bounties_faction_array:\r\n\r\n {if factions = station.faction || factions = system.allegiance || system.name = bounties_system_array[position]:\r\n\r\n {if bounties_type_array[position] = \"Bond\":\r\n {set bond to 1}\r\n |elif bounties_type_array[position] = \"BountyAwd\":\r\n {set bountyawd to 1}\r\n |elif bounties_type_array[position] = \"BountyInc\":\r\n {set bountyinc to 1}\r\n |elif bounties_type_array[position] = \"Fine\":\r\n {set fine to 1}\r\n }\r\n }\r\n {set position to position + 1}\r\n }\r\n}\r\n\r\n{if bountyawd = 1 || bond = 1:\r\n Recuerde. Tiene sin reclamar\r\n {if bond = 1: bonos}\r\n {if bountyawd = 1:\r\n {if bond = 1: y}\r\n recompensas\r\n }\r\n .\r\n}\r\n\r\n{if fine = 1 || bountyinc = 1:\r\n {if bountyawd = 1 || bond = 1:\r\n Además\r\n |else:\r\n Recuerde.\r\n }\r\n Tiene\r\n {if fine = 1: multas}\r\n {if bountyinc = 1:\r\n {if fine = 1: y}\r\n recompensas\r\n }\r\n por pagar.\r\n}\r\n", "default": true }, "FinesBounties_CheckShip": { "name": "FinesBounties_CheckShip", "description": "Checks current ship for any crimes. (TEST)", "enabled": true, "priority": null, "responder": false, "script": "{_Shirka}\r\n\r\n{_ FinesBounties_CheckShip}\r\n{_ Checks current ship for any crimes}\r\n\r\n{if status.vehicle = \"SRV\" || status.vehicle = \"Fighter\":\r\n {set v_type to \"Tu nave actual\"}\r\n|else:\r\n {set v_type to cat(OneOf(\"Esta\", \"Su\"), \" nave\")}\r\n}\r\n\r\n{if len(state.eddi_context_bounties_type) > 0 && state.eddi_context_bounties_type != null && (find(state.eddi_context_bounties_type, \"Fine\") > -1 || find(state.eddi_context_bounties_type, \"BountyInc\") > -1):\r\n\r\n {set shipid to cast(state.eddi_context_currentshipid, \"s\")}\r\n {set shipname to ShipName(shipid)}\r\n\r\n {set bounties_shipid_array to split(state.eddi_context_bounties_shipid, \"+=\")}\r\n {set bounties_type_array to split(state.eddi_context_bounties_type, \"+=\")}\r\n {set bounties_amount_array to split(state.eddi_context_bounties_amount, \"+=\")}\r\n\r\n {_ Set up temp arrays of items that match \"Fine\" or \"BountyInc\"}\r\n\r\n {_ Set up variables}\r\n {set ship_fines_count to 0}\r\n {set ship_bounties_count to 0}\r\n {set ship_fines_total to 0}\r\n {set ship_bounties_total to 0}\r\n {set crime_array to []}\r\n\r\n {_ run loop from 0 to number of entries}\r\n {set cur to 0}\r\n {while cur < len(bounties_type_array):\r\n {if bounties_shipid_array[cur] = shipid:\r\n {if bounties_type_array[cur] = \"Fine\"\r\n {set ship_fines_count to ship_fines_count + 1}\r\n {set ship_fines_total to ship_fines_total + bounties_amount_array[cur]}\r\n |elif bounties_type_array[cur] = \"BountyInc\":\r\n {set ship_bounties_count to ship_bounties_count + 1}\r\n {set ship_bounties_total to ship_bounties_total + bounties_amount_array[cur]}\r\n }\r\n |else:\r\n {if bounties_type_array[cur] = \"Fine\" || bounties_type_array[cur] = \"BountyInc\":\r\n {set pos to find(crime_array, bounties_shipid_array[cur])}\r\n {if pos > -1:\r\n {set pos to bounties_shipid_array[cur]}\r\n {set amount to crime_array[pos] + bounties_amount_array[cur]}\r\n {set crime_array to union(crime_array, [pos:amount])}\r\n |else:\r\n {set pos to bounties_shipid_array[cur]}\r\n {set amount to bounties_amount_array[cur]}\r\n {set crime_array to union(crime_array, [pos:amount])}\r\n }\r\n }\r\n }\r\n {set cur to cur + 1}\r\n }\r\n\r\n {_ Report info}\r\n\r\n {if ship_bounties_count > 0: Caution: {vehicle} está en busca y captura!}\r\n\r\n {if ship_fines_count > 0:\r\n {if ship_bounties_count > 0: Su |else: {v_type}}\r\n tiene {ship_fines_count} multa{if ship_fines_count > 1:s} por pagar,\r\n de un total de {ship_fines_total} créditos.\r\n }\r\n\r\n {if ship_bounties_count > 0:\r\n {if ship_fines_count > 0: Además |else: }\r\n tiene {ship_bounties_count} recompensa{if ship_fines_count > 1:s |else:} a pagar,\r\n de un total de {ship_bounties_total} créditos.\r\n }\r\n\r\n {if len(crime_array) > 0:\r\n {if ship_fines_count = 0 && ship_bounties_count = 0:\r\n {v_type}\r\n {OneOf(\"está limpia. Sin embargo, tiene sanciones pendientes\",\r\n \"no tiene sanciones en esta nave. Pero sí las tiene\")}\r\n en otra de sus naves.\r\n |else:\r\n {Occasionally(1,\"Recuerde que \")}También tiene sanciones en\r\n {if len(crime_array) = 1: otra nave\r\n |else: otras naves suyas\r\n }.\r\n }\r\n\r\n {set cur to 0}\r\n {set length to len(crime_array) - 1}\r\n {for id, amount in crime_array:\r\n {amount} créditos en \r\n {if ShipName(id) != \"Su nave\": {ShipName(id)}\r\n |else: {ShipCallsign(id)}\r\n }\r\n {set cur to cur + 1}\r\n {if cur = length: y\r\n |elif cur < length:,\r\n }\r\n }\r\n }.\r\n\r\n|else:\r\n {v_type} {OneOf(\"está limpia de sanciones\", \"no tiene sanciones pendientes\")}.\r\n}\r\n", "defaultValue": "{_Shirka}\r\n\r\n{_ FinesBounties_CheckShip}\r\n{_ Checks current ship for any crimes}\r\n\r\n{if status.vehicle = \"SRV\" || status.vehicle = \"Fighter\":\r\n {set v_type to \"Tu nave actual\"}\r\n|else:\r\n {set v_type to cat(OneOf(\"Esta\", \"Su\"), \" nave\")}\r\n}\r\n\r\n{if len(state.eddi_context_bounties_type) > 0 && state.eddi_context_bounties_type != null && (find(state.eddi_context_bounties_type, \"Fine\") > -1 || find(state.eddi_context_bounties_type, \"BountyInc\") > -1):\r\n\r\n {set shipid to cast(state.eddi_context_currentshipid, \"s\")}\r\n {set shipname to ShipName(shipid)}\r\n\r\n {set bounties_shipid_array to split(state.eddi_context_bounties_shipid, \"+=\")}\r\n {set bounties_type_array to split(state.eddi_context_bounties_type, \"+=\")}\r\n {set bounties_amount_array to split(state.eddi_context_bounties_amount, \"+=\")}\r\n\r\n {_ Set up temp arrays of items that match \"Fine\" or \"BountyInc\"}\r\n\r\n {_ Set up variables}\r\n {set ship_fines_count to 0}\r\n {set ship_bounties_count to 0}\r\n {set ship_fines_total to 0}\r\n {set ship_bounties_total to 0}\r\n {set crime_array to []}\r\n\r\n {_ run loop from 0 to number of entries}\r\n {set cur to 0}\r\n {while cur < len(bounties_type_array):\r\n {if bounties_shipid_array[cur] = shipid:\r\n {if bounties_type_array[cur] = \"Fine\"\r\n {set ship_fines_count to ship_fines_count + 1}\r\n {set ship_fines_total to ship_fines_total + bounties_amount_array[cur]}\r\n |elif bounties_type_array[cur] = \"BountyInc\":\r\n {set ship_bounties_count to ship_bounties_count + 1}\r\n {set ship_bounties_total to ship_bounties_total + bounties_amount_array[cur]}\r\n }\r\n |else:\r\n {if bounties_type_array[cur] = \"Fine\" || bounties_type_array[cur] = \"BountyInc\":\r\n {set pos to find(crime_array, bounties_shipid_array[cur])}\r\n {if pos > -1:\r\n {set pos to bounties_shipid_array[cur]}\r\n {set amount to crime_array[pos] + bounties_amount_array[cur]}\r\n {set crime_array to union(crime_array, [pos:amount])}\r\n |else:\r\n {set pos to bounties_shipid_array[cur]}\r\n {set amount to bounties_amount_array[cur]}\r\n {set crime_array to union(crime_array, [pos:amount])}\r\n }\r\n }\r\n }\r\n {set cur to cur + 1}\r\n }\r\n\r\n {_ Report info}\r\n\r\n {if ship_bounties_count > 0: Caution: {vehicle} está en busca y captura!}\r\n\r\n {if ship_fines_count > 0:\r\n {if ship_bounties_count > 0: Su |else: {v_type}}\r\n tiene {ship_fines_count} multa{if ship_fines_count > 1:s} por pagar,\r\n de un total de {ship_fines_total} créditos.\r\n }\r\n\r\n {if ship_bounties_count > 0:\r\n {if ship_fines_count > 0: Además |else: }\r\n tiene {ship_bounties_count} recompensa{if ship_fines_count > 1:s |else:} a pagar,\r\n de un total de {ship_bounties_total} créditos.\r\n }\r\n\r\n {if len(crime_array) > 0:\r\n {if ship_fines_count = 0 && ship_bounties_count = 0:\r\n {v_type}\r\n {OneOf(\"está limpia. Sin embargo, tiene sanciones pendientes\",\r\n \"no tiene sanciones en esta nave. Pero sí las tiene\")}\r\n en otra de sus naves.\r\n |else:\r\n {Occasionally(1,\"Recuerde que \")}También tiene sanciones en\r\n {if len(crime_array) = 1: otra nave\r\n |else: otras naves suyas\r\n }.\r\n }\r\n\r\n {set cur to 0}\r\n {set length to len(crime_array) - 1}\r\n {for id, amount in crime_array:\r\n {amount} créditos en \r\n {if ShipName(id) != \"Su nave\": {ShipName(id)}\r\n |else: {ShipCallsign(id)}\r\n }\r\n {set cur to cur + 1}\r\n {if cur = length: y\r\n |elif cur < length:,\r\n }\r\n }\r\n }.\r\n\r\n|else:\r\n {v_type} {OneOf(\"está limpia de sanciones\", \"no tiene sanciones pendientes\")}.\r\n}\r\n", "default": true }, "FinesBounties_ClearShip": { "name": "FinesBounties_ClearShip", "description": "Removes fines and bounties from ship, due to either death or ship sold (TEST)", "enabled": true, "priority": null, "responder": false, "script": "{_Shirka}\r\n\r\n{_ FinesBounties_ClearShip _}\r\n{_ Removes fines and bounties from ship, due to either death or ship sold _}\r\n\r\n{if len(state.eddi_context_bounties_type) > 0 && state.eddi_context_bounties_type != null:\r\n\r\n {_ Use stored ident as this function can be called after a ship swap sale has changed it _}\r\n {set shipid to cast(state.eddi_context_currentshipid, \"s\")}\r\n\r\n {set bounties_shipid_array to split(state.eddi_context_bounties_shipid, \"+=\")}\r\n {set bounties_type_array to split(state.eddi_context_bounties_type, \"+=\")}\r\n\r\n {set position to 0}\r\n {for type in bounties_type_array:\r\n\r\n {if (type = \"Fine\" || type = \"BountyInc\")\r\n && bounties_shipid_array[position] = shipid\r\n && state.eddi_context_selfdestruct != \"yes\":\r\n\r\n {_ If Fine or Bounty Incurred, and not self destructed -> pay them all}\r\n\r\n {set delete to \"yes\"}\r\n {set temparray_type to token(state.eddi_context_bounties_type, \"+=\", position, \"Delete\")}\r\n {SetState('eddi_context_bounties_type', temparray_type)}\r\n\r\n |elif (type = \"Bond\" || type = \"BountyAwd\")\r\n && state.eddi_context_cmdrdied = \"yes\"):\r\n {_ If Bond or Bounty Awarded and player died -> lose them all}\r\n\r\n {set delete to \"yes\"}\r\n {set temparray_type to token(state.eddi_context_bounties_type, \"+=\", position, \"Delete\")}\r\n {SetState('eddi_context_bounties_type', temparray_type)}\r\n\r\n }\r\n {set position to position + 1}\r\n }\r\n}\r\n\r\n{SetState('eddi_context_cmdrdied', \"no\")}\r\n{SetState('eddi_context_selfdestruct', \"no\")}\r\n\r\n{if delete = \"yes\":\r\n\r\n {set bounties_shipid_array to split(state.eddi_context_bounties_shipid, \"+=\")}\r\n {set bounties_type_array to split(state.eddi_context_bounties_type, \"+=\")}\r\n {set bounties_faction_array to split(state.eddi_context_bounties_faction, \"+=\")}\r\n {set bounties_system_array to split(state.eddi_context_bounties_system, \"+=\")}\r\n {set bounties_amount_array to split(state.eddi_context_bounties_amount, \"+=\")}\r\n {set position to 0}\r\n\r\n {for type in bounties_type_array:\r\n {if type = \"Delete\":\r\n\r\n {_ Rebuild and modify text string from array}\r\n {set bounties_shipid_array to join(except(bounties_shipid_array, [position:\"\"]), \"+=\")}\r\n {set bounties_type_array to join(except(bounties_type_array, [position:\"\"]), \"+=\")}\r\n {set bounties_faction_array to join(except(bounties_faction_array, [position:\"\"]), \"+=\")}\r\n {set bounties_system_array to join(except(bounties_system_array, [position:\"\"]), \"+=\")}\r\n {set bounties_amount_array to join(except(bounties_amount_array, [position:\"\"]), \"+=\")}\r\n\r\n {_ Rewrite State variable strings}\r\n {SetState('eddi_context_bounties_shipid', bounties_shipid_array)}\r\n {SetState('eddi_context_bounties_type', bounties_type_array)}\r\n {SetState('eddi_context_bounties_faction', bounties_faction_array)}\r\n {SetState('eddi_context_bounties_system', bounties_system_array)}\r\n {SetState('eddi_context_bounties_amount', bounties_amount_array)}\r\n\r\n {_ Re-split data}\r\n {set bounties_shipid_array to split(state.eddi_context_bounties_shipid, \"+=\")}\r\n {set bounties_type_array to split(state.eddi_context_bounties_type, \"+=\")}\r\n {set bounties_faction_array to split(state.eddi_context_bounties_faction, \"+=\")}\r\n {set bounties_system_array to split(state.eddi_context_bounties_system, \"+=\")}\r\n {set bounties_amount_array to split(state.eddi_context_bounties_amount, \"+=\")}\r\n |else:\r\n {set position to position + 1}\r\n }\r\n }\r\n}\r\n", "defaultValue": "{_Shirka}\r\n\r\n{_ FinesBounties_ClearShip _}\r\n{_ Removes fines and bounties from ship, due to either death or ship sold _}\r\n\r\n{if len(state.eddi_context_bounties_type) > 0 && state.eddi_context_bounties_type != null:\r\n\r\n {_ Use stored ident as this function can be called after a ship swap sale has changed it _}\r\n {set shipid to cast(state.eddi_context_currentshipid, \"s\")}\r\n\r\n {set bounties_shipid_array to split(state.eddi_context_bounties_shipid, \"+=\")}\r\n {set bounties_type_array to split(state.eddi_context_bounties_type, \"+=\")}\r\n\r\n {set position to 0}\r\n {for type in bounties_type_array:\r\n\r\n {if (type = \"Fine\" || type = \"BountyInc\")\r\n && bounties_shipid_array[position] = shipid\r\n && state.eddi_context_selfdestruct != \"yes\":\r\n\r\n {_ If Fine or Bounty Incurred, and not self destructed -> pay them all}\r\n\r\n {set delete to \"yes\"}\r\n {set temparray_type to token(state.eddi_context_bounties_type, \"+=\", position, \"Delete\")}\r\n {SetState('eddi_context_bounties_type', temparray_type)}\r\n\r\n |elif (type = \"Bond\" || type = \"BountyAwd\")\r\n && state.eddi_context_cmdrdied = \"yes\"):\r\n {_ If Bond or Bounty Awarded and player died -> lose them all}\r\n\r\n {set delete to \"yes\"}\r\n {set temparray_type to token(state.eddi_context_bounties_type, \"+=\", position, \"Delete\")}\r\n {SetState('eddi_context_bounties_type', temparray_type)}\r\n\r\n }\r\n {set position to position + 1}\r\n }\r\n}\r\n\r\n{SetState('eddi_context_cmdrdied', \"no\")}\r\n{SetState('eddi_context_selfdestruct', \"no\")}\r\n\r\n{if delete = \"yes\":\r\n\r\n {set bounties_shipid_array to split(state.eddi_context_bounties_shipid, \"+=\")}\r\n {set bounties_type_array to split(state.eddi_context_bounties_type, \"+=\")}\r\n {set bounties_faction_array to split(state.eddi_context_bounties_faction, \"+=\")}\r\n {set bounties_system_array to split(state.eddi_context_bounties_system, \"+=\")}\r\n {set bounties_amount_array to split(state.eddi_context_bounties_amount, \"+=\")}\r\n {set position to 0}\r\n\r\n {for type in bounties_type_array:\r\n {if type = \"Delete\":\r\n\r\n {_ Rebuild and modify text string from array}\r\n {set bounties_shipid_array to join(except(bounties_shipid_array, [position:\"\"]), \"+=\")}\r\n {set bounties_type_array to join(except(bounties_type_array, [position:\"\"]), \"+=\")}\r\n {set bounties_faction_array to join(except(bounties_faction_array, [position:\"\"]), \"+=\")}\r\n {set bounties_system_array to join(except(bounties_system_array, [position:\"\"]), \"+=\")}\r\n {set bounties_amount_array to join(except(bounties_amount_array, [position:\"\"]), \"+=\")}\r\n\r\n {_ Rewrite State variable strings}\r\n {SetState('eddi_context_bounties_shipid', bounties_shipid_array)}\r\n {SetState('eddi_context_bounties_type', bounties_type_array)}\r\n {SetState('eddi_context_bounties_faction', bounties_faction_array)}\r\n {SetState('eddi_context_bounties_system', bounties_system_array)}\r\n {SetState('eddi_context_bounties_amount', bounties_amount_array)}\r\n\r\n {_ Re-split data}\r\n {set bounties_shipid_array to split(state.eddi_context_bounties_shipid, \"+=\")}\r\n {set bounties_type_array to split(state.eddi_context_bounties_type, \"+=\")}\r\n {set bounties_faction_array to split(state.eddi_context_bounties_faction, \"+=\")}\r\n {set bounties_system_array to split(state.eddi_context_bounties_system, \"+=\")}\r\n {set bounties_amount_array to split(state.eddi_context_bounties_amount, \"+=\")}\r\n |else:\r\n {set position to position + 1}\r\n }\r\n }\r\n}\r\n", "default": true }, "FinesBounties_Delete": { "name": "FinesBounties_Delete", "description": "Remove paid/collected item from the memory store (TEST)", "enabled": true, "priority": null, "responder": false, "script": "{_Shirka}\r\n\r\n{_ FinesBounties_Delete}\r\n{_ Remove paid/collected item from the memory store}\r\n\r\n{set shipid to cast(state.eddi_context_currentshipid, \"s\")}\r\n\r\n{if state.eddi_context_last_subject = \"bond\":\r\n {set type to \"Bond\"}\r\n {_ set amount to event.amount _}\r\n|elif state.eddi_context_last_subject = \"bounty\":\r\n {set type to \"BountyAwd\"}\r\n|elif state.eddi_context_last_subject = \"bountypaid\":\r\n {_ This is a placeholder until it's implemented in EDDI _}\r\n {set type to \"BountyInc\"}\r\n|elif state.eddi_context_last_subject = \"fine\":\r\n {set type to \"Fine\"}\r\n {set amount to event.amount}\r\n}\r\n\r\n{set bounties_shipid_array to split(state.eddi_context_bounties_shipid, \"+=\")}\r\n{set bounties_type_array to split(state.eddi_context_bounties_type, \"+=\")}\r\n{set bounties_faction_array to split(state.eddi_context_bounties_faction, \"+=\")}\r\n{set bounties_system_array to split(state.eddi_context_bounties_system, \"+=\")}\r\n{set bounties_amount_array to split(state.eddi_context_bounties_amount, \"+=\")}\r\n\r\n{if type = \"BountyAwd\" || type = \"Bond\":\r\n {for reward in event.rewards:\r\n\r\n {set position to 0}\r\n {for faction in bounties_faction_array:\r\n\r\n {_ If collecting at Interstellar Factors _}\r\n {set IF_amount to floor(bounties_amount_array[position] * 0.75)}\r\n\r\n {if (reward.faction = faction || reward.amount = IF_amount) && bounties_type_array[position] = type:\r\n\r\n {_ Rebuild data}\r\n {set bounties_shipid_array to join(except(bounties_shipid_array, [position:\"\"]), \"+=\")}\r\n {set bounties_type_array to join(except(bounties_type_array, [position:\"\"]), \"+=\")}\r\n {set bounties_faction_array to join(except(bounties_faction_array, [position:\"\"]), \"+=\")}\r\n {set bounties_system_array to join(except(bounties_system_array, [position:\"\"]), \"+=\")}\r\n {set bounties_amount_array to join(except(bounties_amount_array, [position:\"\"]), \"+=\")}\r\n\r\n {_ Rewrite data}\r\n {SetState('eddi_context_bounties_shipid', bounties_shipid_array)}\r\n {SetState('eddi_context_bounties_type', bounties_type_array)}\r\n {SetState('eddi_context_bounties_faction', bounties_faction_array)}\r\n {SetState('eddi_context_bounties_system', bounties_system_array)}\r\n {SetState('eddi_context_bounties_amount', bounties_amount_array)}\r\n\r\n {_ Re-split data}\r\n {set bounties_shipid_array to split(state.eddi_context_bounties_shipid, \"+=\")}\r\n {set bounties_type_array to split(state.eddi_context_bounties_type, \"+=\")}\r\n {set bounties_faction_array to split(state.eddi_context_bounties_faction, \"+=\")}\r\n {set bounties_system_array to split(state.eddi_context_bounties_system, \"+=\")}\r\n {set bounties_amount_array to split(state.eddi_context_bounties_amount, \"+=\")}\r\n |else:\r\n {set position to position + 1}\r\n }\r\n }\r\n }\r\n\r\n|elif type = \"Fine\" || type = \"BountyInc\":\r\n {_ If Fine and Amount match, delete it}\r\n\r\n {_ If paying at Interstellar Factors _}\r\n {set IF_amount to ceil(amount * 1.25)}\r\n\r\n {set position to 0}\r\n {for amounts in bounties_amount_array:\r\n\r\n {set amounts to cast(amounts, \"n\")}\r\n {set system to SystemDetails(system.name)}\r\n\r\n {if system.faction = bounties_faction_array[position]\r\n && bounties_type_array[position] = type\r\n && (amounts = amount || amounts = IF_amount):\r\n\r\n {_ Rebuild data}\r\n {set bounties_shipid_array to join(except(bounties_shipid_array, [position:\"\"]), \"+=\")}\r\n {set bounties_type_array to join(except(bounties_type_array, [position:\"\"]), \"+=\")}\r\n {set bounties_faction_array to join(except(bounties_faction_array, [position:\"\"]), \"+=\")}\r\n {set bounties_system_array to join(except(bounties_system_array, [position:\"\"]), \"+=\")}\r\n {set bounties_amount_array to join(except(bounties_amount_array, [position:\"\"]), \"+=\")}\r\n\r\n {_ Rewrite data}\r\n {SetState('eddi_context_bounties_shipid', bounties_shipid_array)}\r\n {SetState('eddi_context_bounties_type', bounties_type_array)}\r\n {SetState('eddi_context_bounties_faction', bounties_faction_array)}\r\n {SetState('eddi_context_bounties_system', bounties_system_array)}\r\n {SetState('eddi_context_bounties_amount', bounties_amount_array)}\r\n\r\n {_ Re-split data}\r\n {set bounties_shipid_array to split(state.eddi_context_bounties_shipid, \"+=\")}\r\n {set bounties_type_array to split(state.eddi_context_bounties_type, \"+=\")}\r\n {set bounties_faction_array to split(state.eddi_context_bounties_faction, \"+=\")}\r\n {set bounties_system_array to split(state.eddi_context_bounties_system, \"+=\")}\r\n {set bounties_amount_array to split(state.eddi_context_bounties_amount, \"+=\")}\r\n |else:\r\n {set position to position + 1}\r\n }\r\n }\r\n}\r\n", "defaultValue": "{_Shirka}\r\n\r\n{_ FinesBounties_Delete}\r\n{_ Remove paid/collected item from the memory store}\r\n\r\n{set shipid to cast(state.eddi_context_currentshipid, \"s\")}\r\n\r\n{if state.eddi_context_last_subject = \"bond\":\r\n {set type to \"Bond\"}\r\n {_ set amount to event.amount _}\r\n|elif state.eddi_context_last_subject = \"bounty\":\r\n {set type to \"BountyAwd\"}\r\n|elif state.eddi_context_last_subject = \"bountypaid\":\r\n {_ This is a placeholder until it's implemented in EDDI _}\r\n {set type to \"BountyInc\"}\r\n|elif state.eddi_context_last_subject = \"fine\":\r\n {set type to \"Fine\"}\r\n {set amount to event.amount}\r\n}\r\n\r\n{set bounties_shipid_array to split(state.eddi_context_bounties_shipid, \"+=\")}\r\n{set bounties_type_array to split(state.eddi_context_bounties_type, \"+=\")}\r\n{set bounties_faction_array to split(state.eddi_context_bounties_faction, \"+=\")}\r\n{set bounties_system_array to split(state.eddi_context_bounties_system, \"+=\")}\r\n{set bounties_amount_array to split(state.eddi_context_bounties_amount, \"+=\")}\r\n\r\n{if type = \"BountyAwd\" || type = \"Bond\":\r\n {for reward in event.rewards:\r\n\r\n {set position to 0}\r\n {for faction in bounties_faction_array:\r\n\r\n {_ If collecting at Interstellar Factors _}\r\n {set IF_amount to floor(bounties_amount_array[position] * 0.75)}\r\n\r\n {if (reward.faction = faction || reward.amount = IF_amount) && bounties_type_array[position] = type:\r\n\r\n {_ Rebuild data}\r\n {set bounties_shipid_array to join(except(bounties_shipid_array, [position:\"\"]), \"+=\")}\r\n {set bounties_type_array to join(except(bounties_type_array, [position:\"\"]), \"+=\")}\r\n {set bounties_faction_array to join(except(bounties_faction_array, [position:\"\"]), \"+=\")}\r\n {set bounties_system_array to join(except(bounties_system_array, [position:\"\"]), \"+=\")}\r\n {set bounties_amount_array to join(except(bounties_amount_array, [position:\"\"]), \"+=\")}\r\n\r\n {_ Rewrite data}\r\n {SetState('eddi_context_bounties_shipid', bounties_shipid_array)}\r\n {SetState('eddi_context_bounties_type', bounties_type_array)}\r\n {SetState('eddi_context_bounties_faction', bounties_faction_array)}\r\n {SetState('eddi_context_bounties_system', bounties_system_array)}\r\n {SetState('eddi_context_bounties_amount', bounties_amount_array)}\r\n\r\n {_ Re-split data}\r\n {set bounties_shipid_array to split(state.eddi_context_bounties_shipid, \"+=\")}\r\n {set bounties_type_array to split(state.eddi_context_bounties_type, \"+=\")}\r\n {set bounties_faction_array to split(state.eddi_context_bounties_faction, \"+=\")}\r\n {set bounties_system_array to split(state.eddi_context_bounties_system, \"+=\")}\r\n {set bounties_amount_array to split(state.eddi_context_bounties_amount, \"+=\")}\r\n |else:\r\n {set position to position + 1}\r\n }\r\n }\r\n }\r\n\r\n|elif type = \"Fine\" || type = \"BountyInc\":\r\n {_ If Fine and Amount match, delete it}\r\n\r\n {_ If paying at Interstellar Factors _}\r\n {set IF_amount to ceil(amount * 1.25)}\r\n\r\n {set position to 0}\r\n {for amounts in bounties_amount_array:\r\n\r\n {set amounts to cast(amounts, \"n\")}\r\n {set system to SystemDetails(system.name)}\r\n\r\n {if system.faction = bounties_faction_array[position]\r\n && bounties_type_array[position] = type\r\n && (amounts = amount || amounts = IF_amount):\r\n\r\n {_ Rebuild data}\r\n {set bounties_shipid_array to join(except(bounties_shipid_array, [position:\"\"]), \"+=\")}\r\n {set bounties_type_array to join(except(bounties_type_array, [position:\"\"]), \"+=\")}\r\n {set bounties_faction_array to join(except(bounties_faction_array, [position:\"\"]), \"+=\")}\r\n {set bounties_system_array to join(except(bounties_system_array, [position:\"\"]), \"+=\")}\r\n {set bounties_amount_array to join(except(bounties_amount_array, [position:\"\"]), \"+=\")}\r\n\r\n {_ Rewrite data}\r\n {SetState('eddi_context_bounties_shipid', bounties_shipid_array)}\r\n {SetState('eddi_context_bounties_type', bounties_type_array)}\r\n {SetState('eddi_context_bounties_faction', bounties_faction_array)}\r\n {SetState('eddi_context_bounties_system', bounties_system_array)}\r\n {SetState('eddi_context_bounties_amount', bounties_amount_array)}\r\n\r\n {_ Re-split data}\r\n {set bounties_shipid_array to split(state.eddi_context_bounties_shipid, \"+=\")}\r\n {set bounties_type_array to split(state.eddi_context_bounties_type, \"+=\")}\r\n {set bounties_faction_array to split(state.eddi_context_bounties_faction, \"+=\")}\r\n {set bounties_system_array to split(state.eddi_context_bounties_system, \"+=\")}\r\n {set bounties_amount_array to split(state.eddi_context_bounties_amount, \"+=\")}\r\n |else:\r\n {set position to position + 1}\r\n }\r\n }\r\n}\r\n", "default": true }, "FinesBounties_Initialise": { "name": "FinesBounties_Initialise", "description": "Setup Fines & Bounties 'database' (TEST)", "enabled": true, "priority": null, "responder": false, "script": "{_Shirka}\r\n\r\n{_ FinesBounties_Initialise}\r\n{_ Setup Fines & Bounties 'database'}\r\n\r\n{SetState('eddi_context_bounties_shipid', \"\")}\r\n{SetState('eddi_context_bounties_type', \"\")}\r\n{SetState('eddi_context_bounties_faction', \"\")}\r\n{SetState('eddi_context_bounties_system', \"\")}\r\n{SetState('eddi_context_bounties_amount', \"\")}\r\n\r\n{SetState('eddi_context_bounties_initialised', \"yes\")}\r\n\r\n\r\n\r\n", "defaultValue": "{_Shirka}\r\n\r\n{_ FinesBounties_Initialise}\r\n{_ Setup Fines & Bounties 'database'}\r\n\r\n{SetState('eddi_context_bounties_shipid', \"\")}\r\n{SetState('eddi_context_bounties_type', \"\")}\r\n{SetState('eddi_context_bounties_faction', \"\")}\r\n{SetState('eddi_context_bounties_system', \"\")}\r\n{SetState('eddi_context_bounties_amount', \"\")}\r\n\r\n{SetState('eddi_context_bounties_initialised', \"yes\")}\r\n\r\n\r\n\r\n", "default": true }, "FinesBounties_ReportBonds": { "name": "FinesBounties_ReportBonds", "description": "Report on the Bonds you have earned (TEST)", "enabled": true, "priority": null, "responder": false, "script": "{_Shirka}\r\n\r\n{_ FinesBounties_ReportBonds}\r\n{_ Report on the Bonds you have earned}\r\n\r\n{if len(state.eddi_context_bounties_type) > 0 && state.eddi_context_bounties_type != null && find(state.eddi_context_bounties_type, \"Bond\") > -1:\r\n {set bounties_type_array to split(state.eddi_context_bounties_type, \"+=\")}\r\n {set bounties_faction_array to split(state.eddi_context_bounties_faction, \"+=\")}\r\n {set bounties_amount_array to split(state.eddi_context_bounties_amount, \"+=\")}\r\n\r\n {_ Set up temp arrays of items that match \"Bond\"}\r\n\r\n {_ Set up blank temporary arrays}\r\n {set temparray_faction to []}\r\n {set temparray_amount to []}\r\n {set total_amount to 0}\r\n\r\n {_ run loop from 0 to number of entries}\r\n {set cur to 0}\r\n {while cur < len(bounties_type_array):\r\n {if bounties_type_array[cur] = \"Bond\":\r\n {set temparray_faction to cat(temparray_faction, [bounties_faction_array[cur]])}\r\n {set temparray_amount to cat(temparray_amount, [bounties_amount_array[cur]])}\r\n {set total_amount to total_amount + bounties_amount_array[cur]}\r\n }\r\n {set cur to cur + 1}\r\n }\r\n\r\n {_ Read info from temp arrays}\r\n\r\n Bonds Awarded:\r\n\r\n {if len(temparray_faction) > 0:\r\n\r\n {if len(temparray_faction) > 1:\r\n {OneOf(\"You have {len(temparray_faction)} bond{if len(temparray_faction) != 1:s} to collect, making\",\r\n \"{len(temparray_faction)} faction{if len(temparray_faction) != 1:s owe |else: owes} you\")} \r\n\r\n a total of {Humanise(total_amount)} credits.\r\n }\r\n\r\n Collect\r\n {set cur to 0}\r\n {set length to len(temparray_faction) - 1}\r\n {while cur < len(temparray_faction):\r\n {Humanise(temparray_amount[cur])}\r\n {if len(temparray_faction) = 1: credits}\r\n from {temparray_faction[cur]}\r\n {set cur to cur + 1}\r\n {if cur = length: and\r\n |elif cur < length:,\r\n }\r\n }\r\n |else:\r\n You have no bonds to collect {Occasionally(2, \"at {OneOf('this time','the moment')}\")}\r\n }\r\n|else:\r\n You have no bonds to collect {Occasionally(2, \"at {OneOf('this time','the moment')}\")}\r\n}.\r\n", "defaultValue": "{_Shirka}\r\n\r\n{_ FinesBounties_ReportBonds}\r\n{_ Report on the Bonds you have earned}\r\n\r\n{if len(state.eddi_context_bounties_type) > 0 && state.eddi_context_bounties_type != null && find(state.eddi_context_bounties_type, \"Bond\") > -1:\r\n {set bounties_type_array to split(state.eddi_context_bounties_type, \"+=\")}\r\n {set bounties_faction_array to split(state.eddi_context_bounties_faction, \"+=\")}\r\n {set bounties_amount_array to split(state.eddi_context_bounties_amount, \"+=\")}\r\n\r\n {_ Set up temp arrays of items that match \"Bond\"}\r\n\r\n {_ Set up blank temporary arrays}\r\n {set temparray_faction to []}\r\n {set temparray_amount to []}\r\n {set total_amount to 0}\r\n\r\n {_ run loop from 0 to number of entries}\r\n {set cur to 0}\r\n {while cur < len(bounties_type_array):\r\n {if bounties_type_array[cur] = \"Bond\":\r\n {set temparray_faction to cat(temparray_faction, [bounties_faction_array[cur]])}\r\n {set temparray_amount to cat(temparray_amount, [bounties_amount_array[cur]])}\r\n {set total_amount to total_amount + bounties_amount_array[cur]}\r\n }\r\n {set cur to cur + 1}\r\n }\r\n\r\n {_ Read info from temp arrays}\r\n\r\n Bonds Awarded:\r\n\r\n {if len(temparray_faction) > 0:\r\n\r\n {if len(temparray_faction) > 1:\r\n {OneOf(\"You have {len(temparray_faction)} bond{if len(temparray_faction) != 1:s} to collect, making\",\r\n \"{len(temparray_faction)} faction{if len(temparray_faction) != 1:s owe |else: owes} you\")} \r\n\r\n a total of {Humanise(total_amount)} credits.\r\n }\r\n\r\n Collect\r\n {set cur to 0}\r\n {set length to len(temparray_faction) - 1}\r\n {while cur < len(temparray_faction):\r\n {Humanise(temparray_amount[cur])}\r\n {if len(temparray_faction) = 1: credits}\r\n from {temparray_faction[cur]}\r\n {set cur to cur + 1}\r\n {if cur = length: and\r\n |elif cur < length:,\r\n }\r\n }\r\n |else:\r\n You have no bonds to collect {Occasionally(2, \"at {OneOf('this time','the moment')}\")}\r\n }\r\n|else:\r\n You have no bonds to collect {Occasionally(2, \"at {OneOf('this time','the moment')}\")}\r\n}.\r\n", "default": true }, "FinesBounties_ReportBountiesAwarded": { "name": "FinesBounties_ReportBountiesAwarded", "description": "Report on the Bounties you have earned (TEST)", "enabled": true, "priority": null, "responder": false, "script": "{_Shirka}\r\n\r\n{_ FinesBounties_ReportBountiesAwarded}\r\n{_ Report on the Bounties you have been awarded}\r\n\r\n{if len(state.eddi_context_bounties_type) > 0 && state.eddi_context_bounties_type != null && find(state.eddi_context_bounties_type, \"BountyAwd\") > -1:\r\n {set bounties_type_array to split(state.eddi_context_bounties_type, \"+=\")}\r\n {set bounties_faction_array to split(state.eddi_context_bounties_faction, \"+=\")}\r\n {set bounties_amount_array to split(state.eddi_context_bounties_amount, \"+=\")}\r\n\r\n {_ Set up temp arrays of items that match \"Bounty\"}\r\n\r\n {_ Set up blank temporary arrays}\r\n {set temparray_faction to []}\r\n {set temparray_amount to []}\r\n {set total_amount to 0}\r\n\r\n {_ run loop from 0 to number of entries}\r\n {set cur to 0}\r\n {while cur < len(bounties_type_array):\r\n {if bounties_type_array[cur] = \"BountyAwd\":\r\n {set temparray_faction to cat(temparray_faction, [bounties_faction_array[cur]])}\r\n {set temparray_amount to cat(temparray_amount, [bounties_amount_array[cur]])}\r\n {set total_amount to total_amount + bounties_amount_array[cur]}\r\n }\r\n {set cur to cur + 1}\r\n }\r\n\r\n {_ Read info from temp arrays}\r\n\r\n Bounties Awarded:\r\n\r\n {if len(temparray_faction) > 1:\r\n {OneOf(\"You have {len(temparray_faction)} bount{if len(temparray_faction) = 1:y |else:ies} to collect,\",\r\n \"{len(temparray_faction)} faction{if len(temparray_faction) != 1:s} are in your debt\")} \r\n for a total of {Humanise(total_amount)} credits.\r\n }\r\n\r\n Collect\r\n {set cur to 0}\r\n {set length to len(temparray_faction) - 1}\r\n {while cur < len(temparray_faction):\r\n {Humanise(temparray_amount[cur])}\r\n {if len(temparray_faction) = 1: credits}\r\n from\r\n {if temparray_faction[cur] = \"Alliance\" || temparray_faction[cur] = \"Empire\"\r\n || temparray_faction[cur] = \"Federation\": the }\r\n {temparray_faction[cur]}\r\n {set cur to cur + 1}\r\n {if cur = length: and\r\n |elif cur < length:,\r\n }\r\n }\r\n\r\n|else:\r\n You have no bounties to collect {Occasionally(2, \"at {OneOf('this time','the moment')}\")}\r\n}.\r\n", "defaultValue": "{_Shirka}\r\n\r\n{_ FinesBounties_ReportBountiesAwarded}\r\n{_ Report on the Bounties you have been awarded}\r\n\r\n{if len(state.eddi_context_bounties_type) > 0 && state.eddi_context_bounties_type != null && find(state.eddi_context_bounties_type, \"BountyAwd\") > -1:\r\n {set bounties_type_array to split(state.eddi_context_bounties_type, \"+=\")}\r\n {set bounties_faction_array to split(state.eddi_context_bounties_faction, \"+=\")}\r\n {set bounties_amount_array to split(state.eddi_context_bounties_amount, \"+=\")}\r\n\r\n {_ Set up temp arrays of items that match \"Bounty\"}\r\n\r\n {_ Set up blank temporary arrays}\r\n {set temparray_faction to []}\r\n {set temparray_amount to []}\r\n {set total_amount to 0}\r\n\r\n {_ run loop from 0 to number of entries}\r\n {set cur to 0}\r\n {while cur < len(bounties_type_array):\r\n {if bounties_type_array[cur] = \"BountyAwd\":\r\n {set temparray_faction to cat(temparray_faction, [bounties_faction_array[cur]])}\r\n {set temparray_amount to cat(temparray_amount, [bounties_amount_array[cur]])}\r\n {set total_amount to total_amount + bounties_amount_array[cur]}\r\n }\r\n {set cur to cur + 1}\r\n }\r\n\r\n {_ Read info from temp arrays}\r\n\r\n Bounties Awarded:\r\n\r\n {if len(temparray_faction) > 1:\r\n {OneOf(\"You have {len(temparray_faction)} bount{if len(temparray_faction) = 1:y |else:ies} to collect,\",\r\n \"{len(temparray_faction)} faction{if len(temparray_faction) != 1:s} are in your debt\")} \r\n for a total of {Humanise(total_amount)} credits.\r\n }\r\n\r\n Collect\r\n {set cur to 0}\r\n {set length to len(temparray_faction) - 1}\r\n {while cur < len(temparray_faction):\r\n {Humanise(temparray_amount[cur])}\r\n {if len(temparray_faction) = 1: credits}\r\n from\r\n {if temparray_faction[cur] = \"Alliance\" || temparray_faction[cur] = \"Empire\"\r\n || temparray_faction[cur] = \"Federation\": the }\r\n {temparray_faction[cur]}\r\n {set cur to cur + 1}\r\n {if cur = length: and\r\n |elif cur < length:,\r\n }\r\n }\r\n\r\n|else:\r\n You have no bounties to collect {Occasionally(2, \"at {OneOf('this time','the moment')}\")}\r\n}.\r\n", "default": true }, "FinesBounties_ReportBountiesIncurred": { "name": "FinesBounties_ReportBountiesIncurred", "description": "Report on the Bounties you have incurred on your current ship (TEST)", "enabled": true, "priority": null, "responder": false, "script": "{_Shirka}\r\n\r\n{_ FinesBounties_ReportBountiesIncurred}\r\n{_ Report on the Bounties you have against you}\r\n\r\n{if len(state.eddi_context_bounties_type) > 0 && state.eddi_context_bounties_type != null && find(state.eddi_context_bounties_type, \"BountyInc\") > -1:\r\n\r\n {set shipid to cast(state.eddi_context_currentshipid, \"s\")}\r\n\r\n {set bounties_shipid_array to split(state.eddi_context_bounties_shipid, \"+=\")}\r\n {set bounties_type_array to split(state.eddi_context_bounties_type, \"+=\")}\r\n {set bounties_faction_array to split(state.eddi_context_bounties_faction, \"+=\")}\r\n {set bounties_amount_array to split(state.eddi_context_bounties_amount, \"+=\")}\r\n\r\n {_ Set up temp arrays of items that match \"BountyInc\"}\r\n\r\n {_ Set up blank temporary arrays}\r\n {set temparray_shipid to []}\r\n {set temparray_type to []}\r\n {set temparray_faction to []}\r\n {set temparray_amount to []}\r\n {set total_amount to 0}\r\n {set ship_total to 0}\r\n {set crime_array to []}\r\n\r\n {_ run loop from 0 to number of entries}\r\n {set cur to 0}\r\n {while cur < len(bounties_type_array):\r\n {if bounties_type_array[cur] = \"BountyInc\":\r\n {if bounties_shipid_array[cur] = shipid:\r\n {set temparray_shipid to cat(temparray_shipid, [bounties_shipid_array[cur]])}\r\n {set temparray_type to cat(temparray_type, [bounties_type_array[cur]])}\r\n {set temparray_faction to cat(temparray_faction, [bounties_faction_array[cur]])}\r\n {set temparray_amount to cat(temparray_amount, [bounties_amount_array[cur]])}\r\n {set ship_total to ship_total + bounties_amount_array[cur]}\r\n |else:\r\n {set pos to find(crime_array, bounties_shipid_array[cur])}\r\n {if pos > -1:\r\n {set pos to bounties_shipid_array[cur]}\r\n {set amount to crime_array[pos] + bounties_amount_array[cur]}\r\n {set crime_array to union(crime_array, [pos:amount])}\r\n |else:\r\n {set pos to bounties_shipid_array[cur]}\r\n {set amount to bounties_amount_array[cur]}\r\n {set crime_array to union(crime_array, [pos:amount])}\r\n }\r\n }\r\n {set total_amount to total_amount + bounties_amount_array[cur]}\r\n }\r\n {set cur to cur + 1}\r\n }\r\n\r\n {set diff to total_amount - ship_total}\r\n\r\n {_ Read info from temp arrays}\r\n\r\n Bounties Incurred:\r\n\r\n {if len(temparray_faction) > 0:\r\n\r\n {if len(temparray_faction) > 1:\r\n {OneOf(\"You have {len(temparray_faction)} bounties to pay. You owe\",\r\n \"{len(temparray_faction)} factions have put bounties on your head for\")} \r\n a total of {total_amount} credits.\r\n }\r\n\r\n You need to pay\r\n {set cur to 0}\r\n {set length to len(temparray_faction) - 1}\r\n {while cur < len(temparray_faction):\r\n {temparray_amount[cur]}\r\n {if len(temparray_faction) = 1: credits}\r\n to {temparray_faction[cur]}\r\n {set cur to cur + 1}\r\n {if cur = length: and\r\n |elif cur < length:,\r\n }\r\n }.\r\n\r\n {if diff > 0:\r\n You also owe {Humanise(diff)} credits in bounties on\r\n |else:\r\n {Occasionally(2,\"{OneOf('However,','Meanwhile,')}\")} You have no bounties on your other ships.\r\n }\r\n\r\n |else:\r\n You have incurred no bounties on this ship {Occasionally(2, \"at {OneOf('this time','the moment')}\")}.\r\n However, you owe {Humanise(diff)} credits in bounties on\r\n }\r\n\r\n {if diff > 0:\r\n {if len(crime_array) = 1: another ship\r\n |else: your other ships\r\n }.\r\n\r\n {set cur to 0}\r\n {set length to len(crime_array) - 1}\r\n {for id, amount in crime_array:\r\n {amount} credits on \r\n {if ShipName(id) != \"your ship\": {ShipName(id)}\r\n |else: {ShipCallsign(id)}\r\n }\r\n {set cur to cur + 1}\r\n {if cur = length: and\r\n |elif cur < length:,\r\n }\r\n }\r\n }.\r\n\r\n|else:\r\n You have incurred no bounties {Occasionally(2, \"at {OneOf('this time','the moment')}\")}\r\n}\r\n", "defaultValue": "{_Shirka}\r\n\r\n{_ FinesBounties_ReportBountiesIncurred}\r\n{_ Report on the Bounties you have against you}\r\n\r\n{if len(state.eddi_context_bounties_type) > 0 && state.eddi_context_bounties_type != null && find(state.eddi_context_bounties_type, \"BountyInc\") > -1:\r\n\r\n {set shipid to cast(state.eddi_context_currentshipid, \"s\")}\r\n\r\n {set bounties_shipid_array to split(state.eddi_context_bounties_shipid, \"+=\")}\r\n {set bounties_type_array to split(state.eddi_context_bounties_type, \"+=\")}\r\n {set bounties_faction_array to split(state.eddi_context_bounties_faction, \"+=\")}\r\n {set bounties_amount_array to split(state.eddi_context_bounties_amount, \"+=\")}\r\n\r\n {_ Set up temp arrays of items that match \"BountyInc\"}\r\n\r\n {_ Set up blank temporary arrays}\r\n {set temparray_shipid to []}\r\n {set temparray_type to []}\r\n {set temparray_faction to []}\r\n {set temparray_amount to []}\r\n {set total_amount to 0}\r\n {set ship_total to 0}\r\n {set crime_array to []}\r\n\r\n {_ run loop from 0 to number of entries}\r\n {set cur to 0}\r\n {while cur < len(bounties_type_array):\r\n {if bounties_type_array[cur] = \"BountyInc\":\r\n {if bounties_shipid_array[cur] = shipid:\r\n {set temparray_shipid to cat(temparray_shipid, [bounties_shipid_array[cur]])}\r\n {set temparray_type to cat(temparray_type, [bounties_type_array[cur]])}\r\n {set temparray_faction to cat(temparray_faction, [bounties_faction_array[cur]])}\r\n {set temparray_amount to cat(temparray_amount, [bounties_amount_array[cur]])}\r\n {set ship_total to ship_total + bounties_amount_array[cur]}\r\n |else:\r\n {set pos to find(crime_array, bounties_shipid_array[cur])}\r\n {if pos > -1:\r\n {set pos to bounties_shipid_array[cur]}\r\n {set amount to crime_array[pos] + bounties_amount_array[cur]}\r\n {set crime_array to union(crime_array, [pos:amount])}\r\n |else:\r\n {set pos to bounties_shipid_array[cur]}\r\n {set amount to bounties_amount_array[cur]}\r\n {set crime_array to union(crime_array, [pos:amount])}\r\n }\r\n }\r\n {set total_amount to total_amount + bounties_amount_array[cur]}\r\n }\r\n {set cur to cur + 1}\r\n }\r\n\r\n {set diff to total_amount - ship_total}\r\n\r\n {_ Read info from temp arrays}\r\n\r\n Bounties Incurred:\r\n\r\n {if len(temparray_faction) > 0:\r\n\r\n {if len(temparray_faction) > 1:\r\n {OneOf(\"You have {len(temparray_faction)} bounties to pay. You owe\",\r\n \"{len(temparray_faction)} factions have put bounties on your head for\")} \r\n a total of {total_amount} credits.\r\n }\r\n\r\n You need to pay\r\n {set cur to 0}\r\n {set length to len(temparray_faction) - 1}\r\n {while cur < len(temparray_faction):\r\n {temparray_amount[cur]}\r\n {if len(temparray_faction) = 1: credits}\r\n to {temparray_faction[cur]}\r\n {set cur to cur + 1}\r\n {if cur = length: and\r\n |elif cur < length:,\r\n }\r\n }.\r\n\r\n {if diff > 0:\r\n You also owe {Humanise(diff)} credits in bounties on\r\n |else:\r\n {Occasionally(2,\"{OneOf('However,','Meanwhile,')}\")} You have no bounties on your other ships.\r\n }\r\n\r\n |else:\r\n You have incurred no bounties on this ship {Occasionally(2, \"at {OneOf('this time','the moment')}\")}.\r\n However, you owe {Humanise(diff)} credits in bounties on\r\n }\r\n\r\n {if diff > 0:\r\n {if len(crime_array) = 1: another ship\r\n |else: your other ships\r\n }.\r\n\r\n {set cur to 0}\r\n {set length to len(crime_array) - 1}\r\n {for id, amount in crime_array:\r\n {amount} credits on \r\n {if ShipName(id) != \"your ship\": {ShipName(id)}\r\n |else: {ShipCallsign(id)}\r\n }\r\n {set cur to cur + 1}\r\n {if cur = length: and\r\n |elif cur < length:,\r\n }\r\n }\r\n }.\r\n\r\n|else:\r\n You have incurred no bounties {Occasionally(2, \"at {OneOf('this time','the moment')}\")}\r\n}\r\n", "default": true }, "FinesBounties_ReportFines": { "name": "FinesBounties_ReportFines", "description": "Report on the Fines you have incurred on your current ship (TEST)", "enabled": true, "priority": null, "responder": false, "script": "{_Shirka}\r\n\r\n{_ FinesBounties_ReportFines}\r\n{_ Report on the Fines you have against you}\r\n\r\n{if len(state.eddi_context_bounties_type) > 0 && state.eddi_context_bounties_type != null && find(state.eddi_context_bounties_type, \"Fine\") > -1:\r\n\r\n {set shipid to cast(state.eddi_context_currentshipid, \"s\")}\r\n\r\n {set bounties_shipid_array to split(state.eddi_context_bounties_shipid, \"+=\")}\r\n {set bounties_type_array to split(state.eddi_context_bounties_type, \"+=\")}\r\n {set bounties_faction_array to split(state.eddi_context_bounties_faction, \"+=\")}\r\n {set bounties_amount_array to split(state.eddi_context_bounties_amount, \"+=\")}\r\n\r\n {_ Set up temp arrays of items that match \"Fine\"}\r\n\r\n {_ Set up blank temporary arrays}\r\n {set temparray_shipid to []}\r\n {set temparray_type to []}\r\n {set temparray_faction to []}\r\n {set temparray_amount to []}\r\n {set total_amount to 0}\r\n {set ship_total to 0}\r\n {set crime_array to []}\r\n\r\n {_ run loop from 0 to number of entries}\r\n {set cur to 0}\r\n {while cur < len(bounties_type_array):\r\n\r\n {if bounties_type_array[cur] = \"Fine\":\r\n {if bounties_shipid_array[cur] = shipid:\r\n {set temparray_shipid to cat(temparray_shipid, [bounties_shipid_array[cur]])}\r\n {set temparray_type to cat(temparray_type, [bounties_type_array[cur]])}\r\n {set temparray_faction to cat(temparray_faction, [bounties_faction_array[cur]])}\r\n {set temparray_amount to cat(temparray_amount, [bounties_amount_array[cur]])}\r\n {set ship_total to ship_total + bounties_amount_array[cur]}\r\n |else:\r\n {set pos to find(crime_array, bounties_shipid_array[cur])}\r\n {if pos > -1:\r\n {set pos to bounties_shipid_array[cur]}\r\n {set amount to crime_array[pos] + bounties_amount_array[cur]}\r\n {set crime_array to union(crime_array, [pos:amount])}\r\n |else:\r\n {set pos to bounties_shipid_array[cur]}\r\n {set amount to bounties_amount_array[cur]}\r\n {set crime_array to union(crime_array, [pos:amount])}\r\n }\r\n }\r\n {set total_amount to total_amount + bounties_amount_array[cur]}\r\n }\r\n {set cur to cur + 1}\r\n }\r\n\r\n {set diff to total_amount - ship_total}\r\n\r\n {_ Read info from temp arrays}\r\n\r\n Fines Incurred:\r\n\r\n {if len(temparray_faction) > 0:\r\n\r\n {if len(temparray_faction) > 1:\r\n {OneOf(\"You have {len(temparray_faction)} fines to pay. You owe\",\r\n \"You owe {len(temparray_faction)} factions\")} \r\n a total of {ship_total} credits.\r\n }\r\n\r\n You need to pay\r\n {set cur to 0}\r\n {set length to len(temparray_faction) - 1}\r\n {while cur < len(temparray_faction):\r\n {temparray_amount[cur]}\r\n {if len(temparray_faction) = 1: credits}\r\n to {temparray_faction[cur]}\r\n {set cur to cur + 1}\r\n {if cur = length: and\r\n |elif cur < length:,\r\n }\r\n }.\r\n\r\n {if diff > 0:\r\n You also owe {diff} credits in fines on\r\n |else:\r\n {Occasionally(2,\"{OneOf('However,','Meanwhile,')}\")} You have no fines on your other ships.\r\n }\r\n\r\n |else:\r\n You have no fines to pay on this ship {Occasionally(2, \"at {OneOf('this time','the moment')}\")}.\r\n However, you owe {diff} credits in fines on\r\n }\r\n\r\n {if diff > 0:\r\n {if len(crime_array) = 1: another ship\r\n |else: your other ships\r\n }.\r\n\r\n {set cur to 0}\r\n {set length to len(crime_array) - 1}\r\n {for id, amount in crime_array:\r\n {amount} credits on \r\n {if ShipName(id) != \"your ship\": {ShipName(id)}\r\n |else: {ShipCallsign(id)}\r\n }\r\n {set cur to cur + 1}\r\n {if cur = length: and\r\n |elif cur < length:,\r\n }\r\n }\r\n }.\r\n|else:\r\n You have incurred no fines {Occasionally(2, \"at {OneOf('this time','the moment')}\")}\r\n}\r\n", "defaultValue": "{_Shirka}\r\n\r\n{_ FinesBounties_ReportFines}\r\n{_ Report on the Fines you have against you}\r\n\r\n{if len(state.eddi_context_bounties_type) > 0 && state.eddi_context_bounties_type != null && find(state.eddi_context_bounties_type, \"Fine\") > -1:\r\n\r\n {set shipid to cast(state.eddi_context_currentshipid, \"s\")}\r\n\r\n {set bounties_shipid_array to split(state.eddi_context_bounties_shipid, \"+=\")}\r\n {set bounties_type_array to split(state.eddi_context_bounties_type, \"+=\")}\r\n {set bounties_faction_array to split(state.eddi_context_bounties_faction, \"+=\")}\r\n {set bounties_amount_array to split(state.eddi_context_bounties_amount, \"+=\")}\r\n\r\n {_ Set up temp arrays of items that match \"Fine\"}\r\n\r\n {_ Set up blank temporary arrays}\r\n {set temparray_shipid to []}\r\n {set temparray_type to []}\r\n {set temparray_faction to []}\r\n {set temparray_amount to []}\r\n {set total_amount to 0}\r\n {set ship_total to 0}\r\n {set crime_array to []}\r\n\r\n {_ run loop from 0 to number of entries}\r\n {set cur to 0}\r\n {while cur < len(bounties_type_array):\r\n\r\n {if bounties_type_array[cur] = \"Fine\":\r\n {if bounties_shipid_array[cur] = shipid:\r\n {set temparray_shipid to cat(temparray_shipid, [bounties_shipid_array[cur]])}\r\n {set temparray_type to cat(temparray_type, [bounties_type_array[cur]])}\r\n {set temparray_faction to cat(temparray_faction, [bounties_faction_array[cur]])}\r\n {set temparray_amount to cat(temparray_amount, [bounties_amount_array[cur]])}\r\n {set ship_total to ship_total + bounties_amount_array[cur]}\r\n |else:\r\n {set pos to find(crime_array, bounties_shipid_array[cur])}\r\n {if pos > -1:\r\n {set pos to bounties_shipid_array[cur]}\r\n {set amount to crime_array[pos] + bounties_amount_array[cur]}\r\n {set crime_array to union(crime_array, [pos:amount])}\r\n |else:\r\n {set pos to bounties_shipid_array[cur]}\r\n {set amount to bounties_amount_array[cur]}\r\n {set crime_array to union(crime_array, [pos:amount])}\r\n }\r\n }\r\n {set total_amount to total_amount + bounties_amount_array[cur]}\r\n }\r\n {set cur to cur + 1}\r\n }\r\n\r\n {set diff to total_amount - ship_total}\r\n\r\n {_ Read info from temp arrays}\r\n\r\n Fines Incurred:\r\n\r\n {if len(temparray_faction) > 0:\r\n\r\n {if len(temparray_faction) > 1:\r\n {OneOf(\"You have {len(temparray_faction)} fines to pay. You owe\",\r\n \"You owe {len(temparray_faction)} factions\")} \r\n a total of {ship_total} credits.\r\n }\r\n\r\n You need to pay\r\n {set cur to 0}\r\n {set length to len(temparray_faction) - 1}\r\n {while cur < len(temparray_faction):\r\n {temparray_amount[cur]}\r\n {if len(temparray_faction) = 1: credits}\r\n to {temparray_faction[cur]}\r\n {set cur to cur + 1}\r\n {if cur = length: and\r\n |elif cur < length:,\r\n }\r\n }.\r\n\r\n {if diff > 0:\r\n You also owe {diff} credits in fines on\r\n |else:\r\n {Occasionally(2,\"{OneOf('However,','Meanwhile,')}\")} You have no fines on your other ships.\r\n }\r\n\r\n |else:\r\n You have no fines to pay on this ship {Occasionally(2, \"at {OneOf('this time','the moment')}\")}.\r\n However, you owe {diff} credits in fines on\r\n }\r\n\r\n {if diff > 0:\r\n {if len(crime_array) = 1: another ship\r\n |else: your other ships\r\n }.\r\n\r\n {set cur to 0}\r\n {set length to len(crime_array) - 1}\r\n {for id, amount in crime_array:\r\n {amount} credits on \r\n {if ShipName(id) != \"your ship\": {ShipName(id)}\r\n |else: {ShipCallsign(id)}\r\n }\r\n {set cur to cur + 1}\r\n {if cur = length: and\r\n |elif cur < length:,\r\n }\r\n }\r\n }.\r\n|else:\r\n You have incurred no fines {Occasionally(2, \"at {OneOf('this time','the moment')}\")}\r\n}\r\n", "default": true }, "Flight assist": { "name": "Flight assist", "description": "Se activa cuando se activa la asistencia de vuelo", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Friends status": { "name": "Friends status", "description": "Se activa cuando cambia el estatus de un Comandante amigo", "enabled": false, "priority": 3, "responder": true, "script": "{_ Set uselist to \"white\" or \"black\", depending on which list you want to use to filter people _}\n{_ \"white\" will only allow notifications from people in this list (e.g. \"User1\", \"User2\", & \"User3\") _}\n{_ \"black\" will allow all notification EXCEPT those on this list (e.g. \"User4\", \"User5\", & \"User6\") _}\n{_ to allow all notifications, you may also use an empty blacklist (i.e. \"set blacklist to []\" _}\n\n{set uselist to \"black\"}\n\n{set whitelist to [\"User1\", \"User2\", \"User3\"]}\n{set blacklist to [\"User4\", \"User5\", \"User6\"]}\n\n{if event.name:\n {if uselist = \"white\":\n {if find(whitelist, event.name) > -1:\n {event.name} is now {event.status}.\n }\n |elif uselist = \"black\":\n {if find(blacklist, event.name) = -1:\n {event.name} is now {event.status}.\n }\n }\n|else:\n No se de quien me está hablando.\n}", "defaultValue": "{_ Set uselist to \"white\" or \"black\", depending on which list you want to use to filter people _}\n{_ \"white\" will only allow notifications from people in this list (e.g. \"User1\", \"User2\", & \"User3\") _}\n{_ \"black\" will allow all notification EXCEPT those on this list (e.g. \"User4\", \"User5\", & \"User6\") _}\n{_ to allow all notifications, you may also use an empty blacklist (i.e. \"set blacklist to []\" _}\n\n{set uselist to \"black\"}\n\n{set whitelist to [\"User1\", \"User2\", \"User3\"]}\n{set blacklist to [\"User4\", \"User5\", \"User6\"]}\n\n{if event.name:\n {if uselist = \"white\":\n {if find(whitelist, event.name) > -1:\n {event.name} is now {event.status}.\n }\n |elif uselist = \"black\":\n {if find(blacklist, event.name) = -1:\n {event.name} is now {event.status}.\n }\n }\n|else:\n No se de quien me está hablando.\n}", "default": true }, "FSD engaged": { "name": "FSD engaged", "description": "Se activa cuando se ha conectado su motor de distorsión (FSD)", "enabled": true, "priority": 4, "responder": true, "script": "{_ Context _}\r\n{SetState('eddi_context_last_subject', 'fsd')}\r\n{SetState('eddi_context_last_action', 'engage')}\r\n{SetState('eddi_context_system_name', event.system)}\r\n{SetState('eddi_context_system_system', event.system)}\r\n{SetState('eddi_context_fsd_target', event.target)}\r\n\r\n{_ Zero the 'remaining jump' context to only use values following this event _}\r\n{SetState('eddi_context_remaining_jumps', 0)}\r\n\r\n{if event.target = 'Hyperspace':\r\n {_ Rewrite context to represent a jump _}\r\n {SetState('eddi_context_last_subject', 'jump')}\r\n {SetState('eddi_context_last_action', 'start')}\r\n\r\n {set reportsystem to SystemDetails(event.system)}\r\n\r\n {_ Wait for the FSD countdown and initial jump _}\r\n {Pause(5000)}\r\n \r\n\r\n {OneOf(\"Destino confirmado\",\"salto en progreso\",\"telemetría obtenida\")}.\r\n {ShipName()} {OneOf(\"saltando a\", \"en dirección a\", \"en ruta a\", \"viajando a\", \"en tránsito a\")}l sistema {P(reportsystem.name, \"starsystem\")}.\r\n {if reportsystem.name = homesystem.name:\r\n {OneOf(\"Finalmente en casa\",\"Por fin en casa\", \"Hogar, dulce hogar\")}, {F(\"Honorific\")}\r\n |else:\r\n {set scoopables to [\"O\", \"B\", \"A\", \"F\", \"G\", \"K\", \"M\"]}\r\n {if slice(event.stellarclass, 0, 1) = \"D\":\r\n Cuidado: detectada enana blanca.\r\n |elif event.stellarclass = \"N\":\r\n Cuidado: detectada estrella de neutrones.\r\n |elif event.stellarclass = \"H\":\r\n Cuidado: detectado agujero negro.\r\n |elif find(scoopables, event.stellarclass) = -1:\r\n {set currentfuel to round(status.fuel_percent, 0)}\r\n {if currentfuel < 25:\r\n {OneOf(\"Atención:\",\"Tenga en cuenta que\",\"Cuidado Comandante,\",\"Le informo que \")}\r\n la estrella de destino no permite el repostaje de combustible.\r\n }\r\n }\r\n \r\n {if lastsystem.allegiance && lastsystem.allegiance != \"Ninguno\" && lastsystem.allegiance != \"Independiente\" && (!reportsystem.allegiance || reportsystem.allegiance = \"Ninguno\" || reportsystem.allegiance = \"Independiente\"):\r\n Comandante {OneOf(\"estamos abandonando el espacio de\", \"hemos dejado\", \"ya no estamos en territorio de\")} {lastsystem.allegiance}.\r\n |elif lastsystem.allegiance && lastsystem.allegiance != reportsystem.allegiance && system.allegiance && system.allegiance != \"Ninguno\":\r\n {OneOf(\"ahora estamos en\", \"hemos llegado a un\", \"estamos entrando en\")} {OneOf(\"espacio\",\"zona\")}\r\n\r\n\r\n{if system.allegiance = \"Independiente\": de un gobierno independiente\r\n|elif system.allegiance = \"La Alianza\": de la Alianza\r\n|elif system.allegiance = \"El Imperio\": del Imperio\r\n|elif system.allegiance = \"La Federación\": de La Federación\r\n|elif system.allegiance = \"Pirata\": Pirata\r\n|elif system.allegiance = \"Guardián\": Guardián\r\n|elif system.allegiance = \"Thargoide\": Zargoide\r\n|elif system.allegiance = \"Federación de Pilotos\": de La Federación de Pilotos}.\r\n\r\n {if cmdr.title != \"Comandante\":\r\n El Gobierno local le da la bienvenida {Oneof(\"como\",\"con el título de\")} {F(\"Honorific\")}.\r\n }\r\n } \r\n }\r\n {if reportsystem.name != homesystem.name:\r\n {if system.visits = 0:\r\n Es su primera visita a este sistema\r\n |elif system.visits = 1:\r\n Es su segunda visita a este sistema\r\n |elif system.visits = 2:\r\n Es su tercera visita a este sistema\r\n |elif system.visits = 3:\r\n Es su cuarta visita a este sistema\r\n |else:\r\n {Occasionally(3,\"Ha visitado este sistema \\{system.visits+1\\} veces\")}\r\n }.\r\n }\r\n\r\n {if system.visits < 1:\r\n {if !reportsystem.population && lastsystem.population:\r\n{OneOf(\"Este sistema está despoblado\",\"No hay presencia humana en este sistema\", \"La Humanidad aún no ha colonizado este sistema\")}.\r\n |elif reportsystem.population:\r\n {if SecondsSince(reportsystem.lastVisitSeconds) > 3600:\r\n {F(\"System report\")}\r\n }\r\n }\r\n }\r\n \r\n{set lejosdecasa to rand(7)}\r\n\r\n{if lejosdecasa = 1:\r\n {if reportsystem.distancefromhome:\r\n {OneOf(\"Se encuentra a\", \"Su actual posición es a\", \"Actualmente esta a\")} {Humanise(system.distancefromhome)} años luz de {OneOf(\"casa\", \"{P(homesystem.name, 'starsystem')}\")}.\r\n }\r\n} \r\n \r\n {if reportsystem.comment:\r\n Ha hecho {OneOf(\"una anotación\", \"un comentario\", \"una observación\")} {OneOf(\"sobre\", \"acerca de\", \"en relación a\")} este sistema. Dice así: {system.comment}. Fin de la {OneOf(\"nota\",\"cita\")}. \r\n \r\n }\r\n }", "defaultValue": "{_ Context _}\r\n{SetState('eddi_context_last_subject', 'fsd')}\r\n{SetState('eddi_context_last_action', 'engage')}\r\n{SetState('eddi_context_system_name', event.system)}\r\n{SetState('eddi_context_system_system', event.system)}\r\n{SetState('eddi_context_fsd_target', event.target)}\r\n \r\n{if event.target = 'Hyperspace':\r\n {_ Rewrite context to represent a jump _}\r\n {SetState('eddi_context_last_subject', 'jump')}\r\n {SetState('eddi_context_last_action', 'start')}\r\n\r\n {set reportsystem to SystemDetails(event.system)}\r\n\r\n {_ Wait for the FSD countdown and initial jump _}\r\n {Pause(5000)}\r\n \r\n\r\n {OneOf(\"Destino confirmado\",\"salto en progreso\",\"telemetría obtenida\")}.\r\n {ShipName()} está {OneOf(\"en dirección a\", \"en ruta a\", \"viajando a\", \"en tránsito a\")} el sistema {P(reportsystem.name)}.\r\n {if reportsystem.name = homesystem.name:\r\n {OneOf(\"Finalmente en casa\",\"Por fin en casa\", \"Hogar, dulce hogar\")}, {F(\"Honorific\")}\r\n |else:\r\n {set scoopables to [\"O\", \"B\", \"A\", \"F\", \"G\", \"K\", \"M\"]}\r\n {if slice(event.stellarclass, 0, 1) = \"D\":\r\n Cuidado: detectada enana blanca.\r\n |elif event.stellarclass = \"N\":\r\n Cuidado: ndetectada estrella de neutrones.\r\n |elif event.stellarclass = \"H\":\r\n Cuidado: detectado agujero negro.\r\n |elif find(scoopables, event.stellarclass) = -1:\r\n {OneOf(\"Atención:\",\"Tenga en cuenta que\",\"Cuidado Comandante,\",\"Le informo que \")}\r\n la estrella de destino no permite el repostaje de combustible.\r\n }\r\n \r\n {if lastsystem.allegiance && lastsystem.allegiance != \"Ninguno\" && lastsystem.allegiance != \"Independiente\" && (!reportsystem.allegiance || reportsystem.allegiance = \"Ninguno\" || reportsystem.allegiance = \"Independiente\"):\r\n Comandante {OneOf(\"estamos abandonando el espacio de\", \"hemos dejado\", \"ya no estamos en territorio de\")} {lastsystem.allegiance}.\r\n |elif lastsystem.allegiance && lastsystem.allegiance != reportsystem.allegiance && system.allegiance && system.allegiance != \"Ninguno\":\r\n {OneOf(\"ahora estamos en\", \"hemos llegado a un\", \"estamos entrando en\")} {OneOf(\"espacio\",\"zona\")}\r\n\r\n\r\n{if system.allegiance = \"Independiente\": de un gobierno independiente\r\n|elif system.allegiance = \"La Alianza\": de la Alianza\r\n|elif system.allegiance = \"El Imperio\": del Imperio\r\n|elif system.allegiance = \"La Federación\": de La Federación\r\n|elif system.allegiance = \"Pirata\": Pirata\r\n|elif system.allegiance = \"Guardián\": Guardián\r\n|elif system.allegiance = \"Thargoide\": Zargoide\r\n|elif system.allegiance = \"Federación de Pilotos\": de La Federación de Pilotos}.\r\n\r\n {if cmdr.title != \"Comandante\":\r\n El Gobierno local le da la bienvenida {Oneof(\"como\",\"con el título de\")} {F(\"Honorific\")}.\r\n }\r\n } \r\n }\r\n \r\n {if system.visits = 0:\r\n Es su primera visita a este sistema\r\n |elif system.visits = 1:\r\n Es su segunda visita a este sistema\r\n |elif system.visits = 2:\r\n Es su tercera visita a este sistema\r\n |elif system.visits = 3:\r\n Es su cuarta visita a este sistema\r\n |else:\r\n Ha visitado este sistema {system.visits} veces\r\n }.\r\n\r\n {if system.visits < 1:\r\n {if !reportsystem.population && lastsystem.population:\r\n{OneOf(\"Este sistema está despoblado\",\"No hay presencia humana en este sistema\", \"La Humanidad aún no ha colonizado este sistema\")}.\r\n |elif reportsystem.population:\r\n {if SecondsSince(reportsystem.lastVisitSeconds) > 3600:\r\n {F(\"System report\")}\r\n }\r\n }\r\n }\r\n \r\n{set lejosdecasa to rand(7)}\r\n\r\n{if lejosdecasa = 1:\r\n {if reportsystem.distancefromhome:\r\n {OneOf(\"Se encuentra a\", \"Su actual posición es a\", \"Actualmente esta a\")} {Humanise(system.distancefromhome)} años luz de {OneOf(\"casa\", \"{P(homesystem.name)}\")}.\r\n }\r\n} \r\n \r\n {if reportsystem.comment:\r\n Ha hecho {OneOf(\"una anotación\", \"un comentario\", \"una observación\")} {OneOf(\"sobre\", \"acerca de\", \"en relación a\")} este sistema. Dice así: {system.comment}. Fin de la {OneOf(\"nota\",\"cita\")}. \r\n \r\n }\r\n }", "default": false }, "Fuel check": { "name": "Fuel check", "description": "Informa sobre niveles de combustible", "enabled": true, "priority": null, "responder": false, "script": "{_ Fuel Check _}\n{_ Report fuel level _}\n\n{_ Might be a taxi or multicrew session. We ignore those. We only want this when we're in our own ship. }\n{if vehicle = \"Ship\":\n\n {for compartment in ship.compartments:\n {if compartment.module.basename = \"FuelScoop\": \n {set scoop_present to true}\n }\n }\n\n\n{set shipsfuel to:\n {OneOf(\"Niveles\", \"Depósito\", \"Reservas\")} de combustible\n {Occasionally(2, \"ahora\")} \n}\n\n\t{set currentfuel to round(status.fuel_percent, 0)}\n\t{set currentpercent to:\n \tal {currentfuel} por ciento {Occasionally(2, \"de su capacidad\")}\n\t}\n\n\t{set title to Occasionally(3,\"{F('Honorific')}\")}\n\n\t{set maxjump to status.fuel/ship.maxfuel}\n\n\t{if state.eddi_context_last_subject = \"jump\" && state.eddi_context_last_action = \"complete\" && maxjump < 1.25:\n \tPeligro: {shipsfuel} al mínimo.\n \t{Pause(500)}\n\n {if scoop_present:\n {if system.scoopable:\n {set scoop_system to system.systemname}\n |else:\n {set detail to JumpDetails('total')}\n {set scoop_system to RouteDetails('scoop', detail.distance)}\n {set scoop_distance to Distance(scoop_system)}\n }\n\n {if scoop_system && scoop_system != \"\":\n \t{if len(scoopable_bodies) > 1: {set s to \"s\"}}\n La{s} estrella{s} recolectable{s} más cercana{s}\n {if scoop_system = system.name:\n {set scoopable_bodies to []}\n {for body in reportSystem.bodies:\n {if body.scoopable:\n {set scoopable_bodies to cat(scoopable_bodies, [P(body.shortname, \"body\")])}\n }\n }\n del sistema actual\n {if len(scoopable_bodies) > 1:\n son: \n {List(scoopable_bodies)}\n |else:\n es:\n {scoopable_bodies[0]}\n }\n {Pause(50)}\n .\n |else:\n en el sistema {P(scoop_system, \"starsystem\")}, está a {round(scoop_distance, 1)} años luz de aquí.\n }\n {Pause(500)}\n {if maxjump < 0.5:\n El reabastecimiento {Occasionally(2, \"de combustible\")} es urgente, {title}.\n |else:\n \tEl reabastecimiento {Occasionally(2, \"de combustible\")} es altamente recomendable, {title}.\n }\n |else:\n Atención: No hay estrellas recolectables en el rango del próximo salto.\n {Pause(500)}\n Se recomienda el cierre de sistemas no esenciales.\n {Pause(500)}\n Transpondedor de emergencia a la espera, {title}.\n }\n |else:\n {if maxjump < 0.5:\n {OneOf(\"Es imperativo el reabastecimiento de combustible\", \"Reabastezca el combustible urgentemente\")} {title}.\n |else:\n {OneOf(\"Por favor, haga un repostaje de combustible cuanto antes\", \"Se recomienda encarecidamente que recargue combustible\")} {title}.\n }\n }\n\t|elif currentfuel < 25:\n\t {OneOf(\"Peligro\", \"Alerta\", \"Atención\")}{title}:\n\t {shipsfuel} {OneOf(\"por debajo del 25%\", \"{currentpercent}\" )}.\n\t|elif currentfuel < 50:\n \t {shipsfuel} {OneOf(\"por debajo del 50%\", \"{currentpercent}\" )}.\n\t|elif currentfuel < 75:\n\t {Occasionally(2, \"{shipsfuel} {currentpercent}.\")}\n\t|elif currentfuel < 100:\n\t {Occasionally(3, \"{shipsfuel} {currentpercent}.\")}\n\t|else:\n\t {ShipName()} {shipsfuel} {OneOf(currentpercent, \"al máximo\")}.\n }\n}", "defaultValue": "{_ Fuel Check _}\n{_ Report fuel level _}\n\n{if ship.name = state.eddi_fuelcheck_shipname:\n {if state.eddi_context_fuel_used > state.eddi_fuelcheck_maxfuel:\n {SetState('eddi_fuelcheck_maxfuel', state.eddi_context_fuel_used)}\n }\n|else:\n {SetState('eddi_fuelcheck_maxfuel', state.eddi_context_fuel_used)}\n {SetState('eddi_fuelcheck_shipname', ship.name)}\n}\n\n{set maxfuel to state.eddi_fuelcheck_maxfuel}\n{set fuelremaining to state.eddi_context_fuel_remaining}\n{set maxjump to fuelremaining/maxfuel}\n{set currentfuel to round(fuelremaining / ship.fueltanktotalcapacity * 100, 0)}\n{set shipsfuel to:\n {OneOf(\" niveles\", \" depósito\", \" reservas\")} de combustible {Occasionally(2, \"de {P(ShipName())}\" )} \n}\n{set currentpercent to: \n al {currentfuel} por ciento {Occasionally(2, \"de su capacidad\")}\n}\n{set title to Occasionally(3,\"{F('Honorific')}\")}\n{if maxjump < 0.5:\n Peligro!\n {shipsfuel} agotado!\n {Pause(500)}\n Se encuentra en la reserva. Desconecte todos los sistemas no esenciales!\n {Pause(500)}\n Transpondedor de emergencia listo-{title}\n|elif maxjump < 1.25:\n {OneOf(\"Alerta\", \"Precaución\", \"Peligro\", \"Atención\")}-{title}:\n {shipsfuel} {OneOf(\"peligrosamente bajo\", \"casi agotado\")}.\n {OneOf(\"Por favor recargue combustible\", \"Se recomienda encarecidamente que recargue combustible\")}\n|elif currentfuel < 25:\n {OneOf(\"Alerta\", \"Precaución\", \"Peligro\", \"Atención\")}-{title}:\n {shipsfuel} {OneOf(\"por debajo del 25%\", \"{currentpercent}\" )}\n|elif currentfuel < 50:\n {shipsfuel} {OneOf(\"por debajo del 50%\", \"{currentpercent}\" )}-{title}\n|elif currentfuel < 75:\n {Occasionally(2, \"{shipsfuel} {currentpercent}-{title}\")}\n|elif currentfuel < 100:\n {Occasionally(3, \"{shipsfuel} {currentpercent}-{title}\")}\n|else:\n {shipsfuel} {OneOf(currentpercent, \"al máximo\")}-{title}\n}", "default": false }, "Galnet latest news": { "name": "Galnet latest news", "description": "Lee las últimas noticias que no se hayan leído en una determinada categoría", "enabled": true, "priority": null, "responder": false, "script": "{_ Fetch category from state }\r\n{set articlecategory to state.article_category}\r\n\r\n{if articlecategory:\r\n {set articles to GalnetNewsArticles(articlecategory)}\r\n|else:\r\n {set articles to GalnetNewsArticles('Article')}\r\n}\r\n\r\n{if len(articles) = 0:\r\n No hay noticias sin leer en esa categoría\r\n|else:\r\n {set article to articles[0]}\r\n {SetState('eddi_context_galnet_news_id', article.id)}\r\n {article.title}: {article.content}\r\n {GalnetNewsMarkRead(article.id)}\r\n}.\r\n", "defaultValue": "{_ Fetch category from state }\r\n{set articlecategory to state.article_category}\r\n\r\n{if articlecategory:\r\n {set articles to GalnetNewsArticles(articlecategory)}\r\n|else:\r\n {set articles to GalnetNewsArticles('Article')}\r\n}\r\n\r\n{if len(articles) = 0:\r\n No hay noticias sin leer en esa categoría\r\n|else:\r\n {set article to articles[0]}\r\n {SetState('eddi_context_galnet_news_id', article.id)}\r\n {article.title}: {article.content}\r\n {GalnetNewsMarkRead(article.id)}\r\n}.\r\n", "default": true }, "Galnet mark read": { "name": "Galnet mark read", "description": "Marca artículos nuevos como leídos", "enabled": true, "priority": null, "responder": false, "script": "{_ Fetch category from state }\n{set articlecategory to state.article_category}\n\n{if articlecategory:\n {set articles to GalnetNewsArticles(articlecategory)}\n|else:\n {set articles to GalnetNewsArticles('Article')}\n}\n\n{if len(articles) = 0:\n No hay noticias sin leer\n {if articlecategory: 'in that category' }\n|elif len(articles) = 1:\n {set item to 0}\n {while item < len(articles):\n {GalnetNewsMarkRead(articles[item].id)}\n {set item to (item + 1)}\n }\n{OneOf('un artículo marcado como leído', 'una noticia marcada como leída')} \n\n|else:\n {set item to 0}\n {while item < len(articles):\n {GalnetNewsMarkRead(articles[item].id)}\n {set item to (item + 1)}\n }\n{len(articles)} {OneOf('artículos marcados como leídos', 'noticias marcadas como leídas')} \n}. \n", "defaultValue": "{_ Fetch category from state }\n{set articlecategory to state.article_category}\n\n{if articlecategory:\n {set articles to GalnetNewsArticles(articlecategory)}\n|else:\n {set articles to GalnetNewsArticles('Article')}\n}\n\n{if len(articles) = 0:\n No hay noticias sin leer\n {if articlecategory: 'in that category' }\n|elif len(articles) = 1:\n {set item to 0}\n {while item < len(articles):\n {GalnetNewsMarkRead(articles[item].id)}\n {set item to (item + 1)}\n }\n{OneOf('un artículo marcado como leído', 'una noticia marcada como leída')} \n\n|else:\n {set item to 0}\n {while item < len(articles):\n {GalnetNewsMarkRead(articles[item].id)}\n {set item to (item + 1)}\n }\n{len(articles)} {OneOf('artículos marcados como leídos', 'noticias marcadas como leídas')} \n}. \n", "default": true }, "Galnet news": { "name": "Galnet news", "description": "Lee un artículo en particular", "enabled": true, "priority": null, "responder": false, "script": "{_ Fetch article from state }\n{set articleid to state.articleid}\n{if articleid:\n {set article to GalnetNews(articleid)}\n\n {_ Context }\n {SetState('eddi_context_last_subject', 'news')}\n {SetState('eddi_context_galnet_news_id', articleid)}\n}\n\n{if !article:\n {_ Fetch from context }\n {set article to GalnetNews(state.eddi_context_galnet_news_id)}\n}\n\n{if article:\n {article.title}: {article.content}\n {GalnetNewsMarkRead(article.id)}\n|else:\n No tengo ninguna información sobre ese artículo\n}.", "defaultValue": "{_ Fetch article from state }\n{set articleid to state.articleid}\n{if articleid:\n {set article to GalnetNews(articleid)}\n\n {_ Context }\n {SetState('eddi_context_last_subject', 'news')}\n {SetState('eddi_context_galnet_news_id', articleid)}\n}\n\n{if !article:\n {_ Fetch from context }\n {set article to GalnetNews(state.eddi_context_galnet_news_id)}\n}\n\n{if article:\n {article.title}: {article.content}\n {GalnetNewsMarkRead(article.id)}\n|else:\n No tengo ninguna información sobre ese artículo\n}.", "default": true }, "Galnet news published": { "name": "Galnet news published", "description": "Se activa cuando se publican nuevas noticias en GalNet", "enabled": true, "priority": 3, "responder": true, "script": "{set statustitle to \"^(Galactic News: ((Weekly .*)|(Starport Status Update)))|(Powerplay: Incoming Update)\"}\n\n{set interesting_news_title to []}\n{set interesting_news_content to []}\n{set not_interesting_news_title to []}\n{set not_interesting_news_content to []}\n\n{set item to 0}\n{while item < len(event.items):\n {if !match(event.items[item].title, statustitle):\n {set interesting_news_title to cat(interesting_news_title, [event.items[item].title])}\n {set interesting_news_content to cat(interesting_news_content, [event.items[item].content])}\n |else:\n {set not_interesting_news_title to cat(not_interesting_news_title, [event.items[item].title])}\n {set not_interesting_news_content to cat(not_interesting_news_content, [event.items[item].content])}\n }\n {GalnetNewsMarkRead(event.items[item].content.id)}\n {set item to (item + 1)}\n}\n{if len(event.items) = len(interesting_news_title): \n {set allinteresting to 1} \n}\n\n{if len(interesting_news_title) > 0:\n {if len(interesting_news_title) = 1:\n {set remarkable to OneOf('y destacado', 'e importante', 'e interesante', 'e intrigante', 'e inusual')}\n Se ha publicado un nuevo {OneOf('', '{remarkable}' )}\n artículo de GalNet titulado {interesting_news_title[0]}.\n |elif len(event.items) > 1:\n {len(event.items)} \n {if allinteresting: \n Se han publicado nuevos {OneOf('y destacados', 'e importantes', 'e interesantes', 'e intrigantes', 'e inusuales')}\n }\n artículos de GalNet \n {if !allinteresting:\n , incluyendo {len(interesting_news_title)} \n {OneOf('de interés.', 'especialmente interesante.', 'digno de comentario.')}\n }.\n }\n|elif len(event.items) != ( len(interesting_news_title) + len(not_interesting_news_title) ):\n {len(event.items)} se han publicado nuevos artículos de GalNet, pero no he sido capaz de determinar si alguno es de su interés, {F('Honorific')}. \n|elif len(interesting_news_title) = 0:\n Se han actualizado las noticias de GalNet, pero no hay nada digno de mencionar, {F('Honorific')}.\n}\n\n{if len(interesting_news_title) > 0:\n {if len(interesting_news_title) = 1:\n Dice: {interesting_news_content[0]}.\n |elif len(interesting_news_title) > 1:\n {set item to 0}\n {while item < len(interesting_news_title):\n {if item = 0:\n El primero \n se titula {interesting_news_title[item]},\n y dice: {interesting_news_content[item]}.\n |elif item = 1:\n El segundo\n se titula {interesting_news_title[item]},\n y dice: {interesting_news_content[item]}.\n |elif item = len(event.items) - 1:\n El último\n se titula {interesting_news_title[item]},\n y dice: {interesting_news_content[item]}.\n |else:\n El siguiente\n se titula {interesting_news_title[item]},\n y dice: {interesting_news_content[item]}.\n }\n {set item to item + 1}\n {Pause(1000)}\n }\n }\n}", "defaultValue": "{set statustitle to \"^(Galactic News: ((Weekly .*)|(Starport Status Update)))|(Powerplay: Incoming Update)\"}\n\n{set interesting_news_title to []}\n{set interesting_news_content to []}\n{set not_interesting_news_title to []}\n{set not_interesting_news_content to []}\n\n{set item to 0}\n{while item < len(event.items):\n {if !match(event.items[item].title, statustitle):\n {set interesting_news_title to cat(interesting_news_title, [event.items[item].title])}\n {set interesting_news_content to cat(interesting_news_content, [event.items[item].content])}\n |else:\n {set not_interesting_news_title to cat(not_interesting_news_title, [event.items[item].title])}\n {set not_interesting_news_content to cat(not_interesting_news_content, [event.items[item].content])}\n }\n {GalnetNewsMarkRead(event.items[item].content.id)}\n {set item to (item + 1)}\n}\n{if len(event.items) = len(interesting_news_title): \n {set allinteresting to 1} \n}\n\n{if len(interesting_news_title) > 0:\n {if len(interesting_news_title) = 1:\n {set remarkable to OneOf('y destacado', 'e importante', 'e interesante', 'e intrigante', 'e inusual')}\n Se ha publicado un nuevo {OneOf('', '{remarkable}' )}\n artículo de GalNet titulado {interesting_news_title[0]}.\n |elif len(event.items) > 1:\n {len(event.items)} \n {if allinteresting: \n Se han publicado nuevos {OneOf('y destacados', 'e importantes', 'e interesantes', 'e intrigantes', 'e inusuales')}\n }\n artículos de GalNet \n {if !allinteresting:\n , incluyendo {len(interesting_news_title)} \n {OneOf('de interés.', 'especialmente interesante.', 'digno de comentario.')}\n }.\n }\n|elif len(event.items) != ( len(interesting_news_title) + len(not_interesting_news_title) ):\n {len(event.items)} se han publicado nuevos artículos de GalNet, pero no he sido capaz de determinar si alguno es de su interés, {F('Honorific')}. \n|elif len(interesting_news_title) = 0:\n Se han actualizado las noticias de GalNet, pero no hay nada digno de mencionar, {F('Honorific')}.\n}\n\n{if len(interesting_news_title) > 0:\n {if len(interesting_news_title) = 1:\n Dice: {interesting_news_content[0]}.\n |elif len(interesting_news_title) > 1:\n {set item to 0}\n {while item < len(interesting_news_title):\n {if item = 0:\n El primero \n se titula {interesting_news_title[item]},\n y dice: {interesting_news_content[item]}.\n |elif item = 1:\n El segundo\n se titula {interesting_news_title[item]},\n y dice: {interesting_news_content[item]}.\n |elif item = len(event.items) - 1:\n El último\n se titula {interesting_news_title[item]},\n y dice: {interesting_news_content[item]}.\n |else:\n El siguiente\n se titula {interesting_news_title[item]},\n y dice: {interesting_news_content[item]}.\n }\n {set item to item + 1}\n {Pause(1000)}\n }\n }\n}", "default": true }, "Galnet oldest news": { "name": "Galnet oldest news", "description": "Lee las noticias más antiguas sin leer en una categoría determinada", "enabled": true, "priority": null, "responder": false, "script": "{_ Fetch category from state }\r\n{set articlecategory to state.article_category}\r\n\r\n{if articlecategory:\r\n {set articles to GalnetNewsArticles(articlecategory)}\r\n|else:\r\n {set articles to GalnetNewsArticles('Article')}\r\n}\r\n\r\n{if len(articles) = 0:\r\n No hay noticias sin leer en esa categoría\r\n|else:\r\n {set article to articles[len(articles)-1]}\r\n {SetState('eddi_context_galnet_news_id', article.id)}\r\n {article.title}: {article.content}\r\n {GalnetNewsMarkRead(article.id)}\r\n}.\r\n", "defaultValue": "{_ Fetch category from state }\r\n{set articlecategory to state.article_category}\r\n\r\n{if articlecategory:\r\n {set articles to GalnetNewsArticles(articlecategory)}\r\n|else:\r\n {set articles to GalnetNewsArticles('Article')}\r\n}\r\n\r\n{if len(articles) = 0:\r\n No hay noticias sin leer en esa categoría\r\n|else:\r\n {set article to articles[len(articles)-1]}\r\n {SetState('eddi_context_galnet_news_id', article.id)}\r\n {article.title}: {article.content}\r\n {GalnetNewsMarkRead(article.id)}\r\n}.\r\n", "default": true }, "Galnet unread report": { "name": "Galnet unread report", "description": "Informa sobre noticias sin leer", "enabled": true, "priority": null, "responder": false, "script": "{set articles to GalnetNewsArticles(\"Article\")}\r\n\r\n{if len(articles) = 0:\r\n No tiene noticias sin leer\r\n|elif len(articles) = 1:\r\n Tiene una noticia sin leer\r\n|else:\r\n Tiene {len(articles)} noticias sin leer\r\n}.", "defaultValue": "{set articles to GalnetNewsArticles(\"Article\")}\r\n\r\n{if len(articles) = 0:\r\n No tiene noticias sin leer\r\n|elif len(articles) = 1:\r\n Tiene una noticia sin leer\r\n|else:\r\n Tiene {len(articles)} noticias sin leer\r\n}.", "default": true }, "GetDistance": { "name": "GetDistance", "description": "Find distance to destination (TEST)", "enabled": true, "priority": null, "responder": false, "script": "{_Shirka}\r\n\r\n{_ GetDistance}\r\n{_ Find distance to destination}\r\n\r\n{set dist to -1}\r\n\r\n{set fs to system.name}\r\n{set ts to state.eddi_context_system_system}\r\n\r\n{if fs && ts:\r\n {if ts = \"\":\r\n Origin system not designated.\r\n |elif fs = \"\":\r\n Destination system not designated.\r\n |else:\r\n {set fs to SystemDetails(fs)}\r\n {set ts to SystemDetails(ts)}\r\n\r\n {if !fs.name:\r\n Your origin is not in the Pilot's Federation star charts.\r\n |elif !ts.name:\r\n Your destination is not in the Pilot's Federation star charts.\r\n |else:\r\n {set dist to round(Distance(fs.x, fs.y, fs.z, ts.x, ts.y, ts.z), 2)}\r\n {if state.getdistance = 'true':\r\n Distance {Occasionally(2, \"from {fs.name}\")} to\r\n {Occasionally(2, \"{OneOf('target','destination')} system\")}\r\n {ts.name} is {dist} light years.\r\n }\r\n }\r\n }\r\n}\r\n\r\n{SetState('distance', dist)}\r\n", "defaultValue": "{_Shirka}\r\n\r\n{_ GetDistance}\r\n{_ Find distance to destination}\r\n\r\n{set dist to -1}\r\n\r\n{set fs to system.name}\r\n{set ts to state.eddi_context_system_system}\r\n\r\n{if fs && ts:\r\n {if ts = \"\":\r\n Origin system not designated.\r\n |elif fs = \"\":\r\n Destination system not designated.\r\n |else:\r\n {set fs to SystemDetails(fs)}\r\n {set ts to SystemDetails(ts)}\r\n\r\n {if !fs.name:\r\n Your origin is not in the Pilot's Federation star charts.\r\n |elif !ts.name:\r\n Your destination is not in the Pilot's Federation star charts.\r\n |else:\r\n {set dist to round(Distance(fs.x, fs.y, fs.z, ts.x, ts.y, ts.z), 2)}\r\n {if state.getdistance = 'true':\r\n Distance {Occasionally(2, \"from {fs.name}\")} to\r\n {Occasionally(2, \"{OneOf('target','destination')} system\")}\r\n {ts.name} is {dist} light years.\r\n }\r\n }\r\n }\r\n}\r\n\r\n{SetState('distance', dist)}\r\n", "default": true }, "Glide": { "name": "Glide", "description": "Triggered when your ship enters or exits glide", "enabled": true, "priority": 3, "responder": true, "script": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'fsd')}\r\n{SetState('eddi_context_last_action', 'glide')}\r\n{SetState('eddi_context_system_name', event.system)}\r\n{SetState('eddi_context_body_name', event.body)}\r\n{SetState('eddi_context_body_system', event.system)}\r\n\r\n{if event.gliding:\r\n{Occasionally(2, \"modo\")} planeo\r\n{OneOf(\"activado.\", \"iniciado.\")}\r\n\r\n{Pause(1000)}\r\n{set body to BodyDetails(event.body, event.system)}\r\n{if !body.name || body.name = \"\" || !body.gravity:\r\nDatos de aproximación planetaria no disponibles.\r\n|else:\r\n{if body.landable:\r\n{set gravity to round(body.gravity,2)}\r\n{if gravity > 4:\r\n¡Peligro! {body.bodytype} {P(body.shortname, \"body\")} es un mundo de gravedad extremadamente alta, con {gravity} G.\r\n|elif gravity > 2:\r\n¡Atención!! {body.bodytype} {P(body.shortname, \"body\")} es un mundo de gravedad elevada, con {gravity} G.\r\n|elif gravity > 0.5:\r\n¡Precaución! {body.bodytype} {P(body.shortname, \"body\")} es un mundo de gravedad media, con {gravity} G.\r\n|else:\r\n{P(body.name)} es un mundo de baja gravedad, con {gravity} G.\r\n}\r\n}\r\n}\r\n|else:\r\n\t{OneOf(\"Saliendo del modo planeo.\", \"Modo planeo desactivado.\")}\r\n}", "defaultValue": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'fsd')}\r\n{SetState('eddi_context_last_action', 'glide')}\r\n{SetState('eddi_context_system_name', event.system)}\r\n{SetState('eddi_context_body_name', event.body)}\r\n{SetState('eddi_context_body_system', event.system)}\r\n\r\n{if event.gliding:\r\n{Occasionally(2, \"modo\")} planeo\r\n{OneOf(\"activado.\", \"iniciado.\")}\r\n\r\n{Pause(1000)}\r\n{set body to BodyDetails(event.body, event.system)}\r\n{if !body.name || body.name = \"\" || !body.gravity:\r\nDatos de aproximación planetaria no disponibles.\r\n|else:\r\n{if body.landable:\r\n{set gravity to round(body.gravity,2)}\r\n{if gravity > 4:\r\n¡Peligro! {P(body.name)} es un mundo de gravedad extremadamente alta, con {gravity} G.\r\n|elif gravity > 2:\r\n¡Atención!! {P(body.name)} es un mundo de gravedad elevada, con {gravity} G.\r\n|elif gravity > 0.5:\r\n¡Precaución! {P(body.name)} es un mundo de gravedad media, con {gravity} G.\r\n|else:\r\n{P(body.name)} es un mundo de baja gravedad, con {gravity} G.\r\n}\r\n}\r\n}\r\n|else:\r\n}", "default": false }, "Hardpoints": { "name": "Hardpoints", "description": "Triggered when you deploy or retract your hardpoints", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Heat damage": { "name": "Heat damage", "description": "Se activa cuando su nave está sufriendo daños por excesivo calor", "enabled": true, "priority": 3, "responder": true, "script": "{Occasionally(2, \"Alarma:\")}\r\ndaño por calentamiento.", "defaultValue": "{Occasionally(2, \"Alarma:\")}\r\ndaño por calentamiento.", "default": true }, "Heat warning": { "name": "Heat warning", "description": "Se activa cuando el calor de su nave supera el 100%", "enabled": true, "priority": 3, "responder": true, "script": "{Occasionally(2, \"Cuidado:\")}\r\nNiveles de calentamiento subiendo por encima del límite tolerable.", "defaultValue": "{Occasionally(2, \"Cuidado:\")}\r\nNiveles de calentamiento subiendo por encima del límite tolerable.", "default": true }, "Honorific": { "name": "Honorific", "description": "Función para proporcionar un tratamiento honorífico a su Comandante", "enabled": true, "priority": null, "responder": false, "script": "{if system.allegiance = \"Imperio\":\n {F(\"Empire honorific\")}\n|elif system.allegiance = \"Federación\":\n {if cmdr.federationrating.rank = 0:\n comandante\n |else:\n {cmdr.federationrating.name}\n }\n|else:\n comandante\n}\n", "defaultValue": "{if system.allegiance = \"Imperio\":\n {F(\"Empire honorific\")}\n|elif system.allegiance = \"Federación\":\n {if cmdr.federationrating.rank = 0:\n Comandante\n |else:\n {cmdr.federationrating.name}\n }\n|else:\n Comandante\n}\n", "default": false }, "Hull damaged": { "name": "Hull damaged", "description": "Se activa cuando el casco de su nave se encuentra dañada en cierta medida", "enabled": true, "priority": 3, "responder": true, "script": "{if event.vehicle = vehicle:\n {if event.health < 40:\n Alerta roja:\n |elif event.health < 60:\n Atención:\n |elif event.health < 80:\n Precaución:\n }\n {OneOf(\"Casco\", \"Integridad del casco\", \"Integridad\", \"Integridad estructural\")} al {event.health}%.\n}\n", "defaultValue": "{if event.vehicle = vehicle:\n {if event.health < 40:\n Alerta roja:\n |elif event.health < 60:\n Atención:\n |elif event.health < 80:\n Precaución:\n }\n {OneOf(\"Casco\", \"Integridad del casco\", \"Integridad\", \"Integridad estructural\")} al {event.health}%.\n}\n", "default": true }, "Insurance check": { "name": "Insurance check", "description": "Comprueba que tenga créditos suficientes para el seguro de su nave", "enabled": true, "priority": null, "responder": false, "script": "{set covereds to floor(cmdr.credits / ship.rebuy)}\r\n\n{if covereds = 0:\n Peligro: No tiene suficientes créditos para cubrir la franquicia de su seguro. \n|elif covereds = 1:\n Precaución: Solo tiene créditos suficientes para cubrir una sola franquicia del seguro.\n|elif covereds < 4:\n Le informo que solo tiene créditos suficientes para cubrir {covereds} franquicias del seguro.\n}\n", "defaultValue": "{set covereds to floor(cmdr.credits / ship.rebuy)}\r\n\n{if covereds = 0:\n Peligro: No tiene suficientes créditos para cubrir la franquicia de su seguro. \n|elif covereds = 1:\n Precaución: Solo tiene créditos suficientes para cubrir una sola franquicia del seguro.\n|elif covereds < 4:\n Le informo que solo tiene créditos suficientes para cubrir {covereds} franquicias del seguro.\n}\n", "default": true }, "Jet cone boost": { "name": "Jet cone boost", "description": "Se activa cuando se ha recogido suficiente material de un chorro de eyección (en una enana blanca o una estrella de neutrones) para un salto de rango ampliado", "enabled": true, "priority": 3, "responder": true, "script": "{Pause(1000)}\r\nMotor de distorsión cargado al {Humanise(event.boost * 100)} %.", "defaultValue": "{Pause(1000)}\r\nMotor de distorsión cargado al {Humanise(event.boost * 100)} %.", "default": true }, "Jet cone damage": { "name": "Jet cone damage", "description": "Se activa en espacio normal cuando se pasa a través de un chorro de eyección de una enana blanca o una estrella de neutrones ocasionando daños a los módulos de la nave", "enabled": true, "priority": 2, "responder": true, "script": null, "defaultValue": null, "default": true }, "Jump details": { "name": "Jump details", "description": "Triggered when ship jump details are requested", "enabled": true, "priority": 3, "responder": true, "script": "{_ Jump details }\r\n{_ Triggered when ship jump details are requested }\r\n", "defaultValue": "{_ Jump details }\r\n{_ Triggered when ship jump details are requested }\r\n", "default": true }, "Jumped": { "name": "Jumped", "description": "Se activa cuando se completa un salto a otro sistema estelar (TEST)", "enabled": true, "priority": 5, "responder": true, "script": "{_ Jumped }\r\n{_ Triggered when you complete a jump to another system }\r\n\r\n\r\n{_ Context }\r\n{SetState('eddi_context_last_subject', 'jump')}\r\n{SetState('eddi_context_last_action', 'complete')}\r\n{SetState('eddi_context_system_name', system.name)}\r\n{SetState('eddi_context_system_system', system.name)}\r\n{SetState('eddi_context_fuel_remaining', event.fuelremaining)}\r\n{SetState('eddi_context_fuel_used', event.fuelused)}\r\n{SetState('eddi_context_wanted_list', \"\")}\r\n\r\n{set jump_count to state.eddi_context_remaining_jumps}\r\n{if jump_count > 20:\r\n {set occasional to ceil(jump_count / 10)}\r\n|elif jump_count > 5:\r\n {set occasional to 2}\r\n|else:\r\n {set occasional to 1}\r\n}\r\n\r\n{if destinationsystem && destinationsystem.name != \"\":\r\n {if destinationdistance = 0:\r\n {ShipName()} ha llegado al sistema {P(destinationsystem.name, \"starsystem\")}.\r\n {Pause(1000)}\r\n {set next_system to RouteDetails(\"update\")}\r\n |else:\r\n {if rand(occasional) = 0:\r\n La distancia a {P(destinationsystem.name, \"starsystem\")} es de {round(destinationdistance, 1)} años luz\r\n {if jump_count > 0:\r\n , a {jump_count} {if jump_count = 1: salto |else: saltos}\r\n {OneOf(\"de distancia\", \"para llegar\", \"de su destino\")}\r\n }.\r\n }\r\n }\r\n|else:\r\n {if jump_count > 0 && rand(occasional) = 0:\r\n {if jump_count = 1: Queda |else: Quedan} {jump_count} {if jump_count = 1: salto |else: saltos} \r\n {OneOf(\"para llegar\", \"\", \"de trayecto\", \"hasta llegar a nuestro destino\")}.\r\n }\r\n}\r\n\r\n{set currentfuel to round(status.fuel_percent, 0)}\r\n{if currentfuel < 60:\r\n\t{F('Fuel check')}\r\n}\r\n\r\n{_ Report faction states only if it's been more than an hour (3600 seconds) since our last visit. _}\r\n{if SecondsSince(state.eddi_context_system_lastvisit) / 3600 > 1:\r\n {set state_report to F(\"System state report\")}\r\n}\r\n\r\n{set system_engineer to F(\"Engineer report\")}\r\n{set system_missions to F(\"Mission check system\")}\r\n{set system_crimes to F(\"Crime check system\")}\r\n\r\n{if state_report || system_engineer || system_missions || (system_crimes && find(system_crimes, \"Warning\") < 0):\r\n {Pause(500)}\r\n Información:\r\n}\r\n\r\n{if state_report:\r\n {Pause(500)}\r\n {state_report}\r\n}\r\n\r\n{if system_engineer:\r\n {Pause(500)}\r\n {system_engineer}\r\n}\r\n\r\n{if system_missions:\r\n {Pause(500)}\r\n {system_missions}\r\n}\r\n{if system_crimes:\r\n {Pause(500)}\r\n {system_crimes}\r\n}\r\n\r\n", "defaultValue": "{_ Jumped }\r\n{_ Triggered when you complete a jump to another system }\r\n\r\n\r\n{_ Context }\r\n{SetState('eddi_context_last_subject', 'jump')}\r\n{SetState('eddi_context_last_action', 'complete')}\r\n{SetState('eddi_context_system_name', system.name)}\r\n{SetState('eddi_context_system_system', system.name)}\r\n{SetState('eddi_context_fuel_remaining', event.fuelremaining)}\r\n{SetState('eddi_context_fuel_used', event.fuelused)}\r\n{SetState('eddi_context_wanted_list', \"\")}\r\n\r\n{if event.destination && event.destination != \"\":\r\n {if event.destdistance = 0:\r\n {ShipName()} ha llegado al sistema {P(event.destination)}.\r\n |else:\r\n {set jump_mass to ship.unladenmass + ship.maxfuelperjump}\r\n {set jump_range to ship.maxjumprange * jump_mass / (jump_mass + cargoCarried)}\r\n {set jumps_left to ceil(event.destdistance / jump_range)}\r\n Quedan {jumps_left} salto{if jumps_left > 1:s} para llegar a {P(event.destination)},\r\n a unos {round(event.destdistance, 1)} años luz {Occasionally(2,\"de aquí\")},\r\n }\r\n}\r\n\r\n{F('Fuel check')}\r\n\r\n{set state_report to F(\"System state report\")}\r\n{set system_missions to F(\"Mission check system\")}\r\n{set system_crimes to F(\"Crime check system\")}\r\n\r\n{if state_report || system_missions || (system_crimes && find(system_crimes, \"Atención\") < 0):\r\n {Pause(500)}\r\n Información:\r\n}\r\n\r\n{if state_report:\r\n {Pause(500)}\r\n {state_report}\r\n}\r\n{if system_missions:\r\n {Pause(500)}\r\n {system_missions}\r\n}\r\n{if system_crimes:\r\n {Pause(500)}\r\n {system_crimes}\r\n}\r\n\r\n", "default": false }, "Killed": { "name": "Killed", "description": "Se activa cuando se destruye a otro jugador", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Landing gear": { "name": "Landing gear", "description": "Triggered when you deploy or retract your landing gear", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Landing pad report": { "name": "Landing pad report", "description": "Informa sobre la ubicación de la pista de aterrizaje asignada", "enabled": true, "priority": null, "responder": false, "script": "{set landingpad to state.eddi_context_landing_pad_pad}\n La pista de aterrizaje número {landingpad}, está a\n {if landingpad = 1:\n las seis en punto cerca de la entrada\n |elif landingpad = 2:\n las seis en punto cerca de la entrada\n |elif landingpad = 3:\n las seis en punto al fondo\n |elif landingpad = 4:\n las seis en punto al fondo\n |elif landingpad = 5:\n las siete en punto cerca de la entrada\n |elif landingpad = 6:\n las siete en punto cerca de la entrada\n |elif landingpad = 7:\n las siete en punto al fondo\n |elif landingpad = 8:\n las siete en punto al fondo\n |elif landingpad = 9:\n las ocho en punto cerca de la entrada\n |elif landingpad = 10:\n las ocho en punto al fondo\n |elif landingpad = 11:\n las nueve en punto cerca de la entrada\n |elif landingpad = 12:\n las nueve en punto cerca de la entrada\n |elif landingpad = 13:\n las nueve en punto en la zona central\n |elif landingpad = 14:\n las nueve en punto al fondo\n |elif landingpad = 15:\n las nueve en punto al fondo\n |elif landingpad = 16:\n las diez en punto cerca de la entrada\n |elif landingpad = 17:\n las diez en punto cerca de la entrada\n |elif landingpad = 18:\n las diez en punto al fondo\n |elif landingpad = 19:\n las diez en punto al fondo\n |elif landingpad = 20:\n las once en punto cerca de la entrada\n |elif landingpad = 21:\n las once en punto cerca de la entrada\n |elif landingpad = 22:\n las once en punto al fondo\n |elif landingpad = 23:\n las once en punto al fondo\n |elif landingpad = 24:\n las doce en punto cerca de la entrada\n |elif landingpad = 25:\n las doce en punto al fondo\n |elif landingpad = 26:\n la una en punto cerca de la entrada\n |elif landingpad = 27:\n la una en punto cerca de la entrada\n |elif landingpad = 28:\n la una en punto en la zona central\n |elif landingpad = 29:\n la una en punto al fondo\n |elif landingpad = 30:\n la una en punto al fondo\n |elif landingpad = 31:\n las dos en punto cerca de la entrada\n |elif landingpad = 32:\n las dos en punto cerca de la entrada\n |elif landingpad = 33:\n las dos en punto al fondo\n |elif landingpad = 34:\n las dos en punto al fondo\n |elif landingpad = 35:\n las tres en punto cerca de la entrada\n |elif landingpad = 36:\n las tres en punto cerca de la entrada\n |elif landingpad = 37:\n las tres en punto en la zona central\n |elif landingpad = 38:\n las tres en punto al fondo\n |elif landingpad = 39:\n las cuatro en punto cerca de la entrada\n |elif landingpad = 40:\n las cuatro en punto al fondo\n |elif landingpad = 41:\n las cinco en punto cerca de la entrada\n |elif landingpad = 42:\n las cinco en punto cerca de la entrada\n |elif landingpad = 43:\n las cinco en punto en la zona central\n |elif landingpad = 44:\n las cinco en punto al fondo\n |elif landingpad = 45:\n las cinco en punto al fondo\n }\n , entrando con las luces verdes a su derecha.", "defaultValue": "{set landingpad to state.eddi_context_landing_pad_pad}\n La pista de aterrizaje número {landingpad}, está a\n {if landingpad = 1:\n las seis en punto cerca de la entrada\n |elif landingpad = 2:\n las seis en punto cerca de la entrada\n |elif landingpad = 3:\n las seis en punto al fondo\n |elif landingpad = 4:\n las seis en punto al fondo\n |elif landingpad = 5:\n las siete en punto cerca de la entrada\n |elif landingpad = 6:\n las siete en punto cerca de la entrada\n |elif landingpad = 7:\n las siete en punto al fondo\n |elif landingpad = 8:\n las siete en punto al fondo\n |elif landingpad = 9:\n las ocho en punto cerca de la entrada\n |elif landingpad = 10:\n las ocho en punto al fondo\n |elif landingpad = 11:\n las nueve en punto cerca de la entrada\n |elif landingpad = 12:\n las nueve en punto cerca de la entrada\n |elif landingpad = 13:\n las nueve en punto en la zona central\n |elif landingpad = 14:\n las nueve en punto al fondo\n |elif landingpad = 15:\n las nueve en punto al fondo\n |elif landingpad = 16:\n las diez en punto cerca de la entrada\n |elif landingpad = 17:\n las diez en punto cerca de la entrada\n |elif landingpad = 18:\n las diez en punto al fondo\n |elif landingpad = 19:\n las diez en punto al fondo\n |elif landingpad = 20:\n las once en punto cerca de la entrada\n |elif landingpad = 21:\n las once en punto cerca de la entrada\n |elif landingpad = 22:\n las once en punto al fondo\n |elif landingpad = 23:\n las once en punto al fondo\n |elif landingpad = 24:\n las doce en punto cerca de la entrada\n |elif landingpad = 25:\n las doce en punto al fondo\n |elif landingpad = 26:\n la una en punto cerca de la entrada\n |elif landingpad = 27:\n la una en punto cerca de la entrada\n |elif landingpad = 28:\n la una en punto en la zona central\n |elif landingpad = 29:\n la una en punto al fondo\n |elif landingpad = 30:\n la una en punto al fondo\n |elif landingpad = 31:\n las dos en punto cerca de la entrada\n |elif landingpad = 32:\n las dos en punto cerca de la entrada\n |elif landingpad = 33:\n las dos en punto al fondo\n |elif landingpad = 34:\n las dos en punto al fondo\n |elif landingpad = 35:\n las tres en punto cerca de la entrada\n |elif landingpad = 36:\n las tres en punto cerca de la entrada\n |elif landingpad = 37:\n las tres en punto en la zona central\n |elif landingpad = 38:\n las tres en punto al fondo\n |elif landingpad = 39:\n las cuatro en punto cerca de la entrada\n |elif landingpad = 40:\n las cuatro en punto al fondo\n |elif landingpad = 41:\n las cinco en punto cerca de la entrada\n |elif landingpad = 42:\n las cinco en punto cerca de la entrada\n |elif landingpad = 43:\n las cinco en punto en la zona central\n |elif landingpad = 44:\n las cinco en punto al fondo\n |elif landingpad = 45:\n las cinco en punto al fondo\n }\n , entrando con las luces verdes a su derecha.", "default": true }, "Launchbay report": { "name": "Launchbay report", "description": "Describe el contenido de las bahías con vehículos de la nave", "enabled": true, "priority": null, "responder": false, "script": "{if capi_active:\n {if len(ship.launchbays) > 0:\n {set hanger_count to 0}\n {for launchbay in ship.launchbays:\n {set hangar to: hangar de {P(launchbay.type)} de tamaño {launchbay.size}}\n {set hangar_count to hangar_count + 1}\n {set vehicles to []}\n {set vehicles_count to []}\n {if len(launchbay.vehicles) > 0:\n {for vehicle in launchbay.vehicles:\n {set variant to cat(vehicle.name, \"_\", vehicle.description)}\n {set here to find(vehicles , variant)}\n {if here > -1:\n {set count to vehicles_count[here] + 1}\n {set vehicles_count to union(vehicles_count, [here:count])}\n |else:\n {set vehicles to cat(vehicles , [variant])}\n {set vehicles_count to cat(vehicles_count, [1])}\n }\n }\n }\n\n {if len(vehicles) > 0:\n {if hangar_count = 1: Tienes |else: y} un {hangar}, almacenando\n {set cur to 0}\n {while cur < len(vehicles):\n {set count to vehicles_count[cur]}\n {set name to split(vehicles[cur], \"_\")[0]}\n {set description to split(vehicles[cur], \"_\")[1]}\n {count} {if count = 1: {P(name)} |else: {P(name)}s}, con {description}\n {set cur to cur + 1}\n {if cur = len(vehicles)-1: y |elif cur < len(vehicles): ,}\n }\n |else:\n {if hangar_count = 1: Tienes |else: y} un {hangar} vacío\n }\n {if hangar_count = len(ship.launchbays): . |else: ,}\n }\n }\n|else:\n El estado del hangar no está disponible.\n {Pause(500)}\n Por favor, compruebe la conexión a la base de datos de la federación de pilotos.\n}", "defaultValue": "{if capi_active:\r\n {if len(ship.launchbays) > 0:\r\n {set hanger_count to 0}\r\n {for launchbay in ship.launchbays:\r\n {set hangar to: size {launchbay.size} {P(launchbay.type)} hangar}\r\n {set hangar_count to hangar_count + 1}\r\n {set vehicles to []}\r\n {set vehicles_count to []}\r\n {if len(launchbay.vehicles) > 0:\r\n {for vehicle in launchbay.vehicles:\r\n {set variant to cat(vehicle.name, \"_\", vehicle.description)}\r\n {set here to find(vehicles , variant)}\r\n {if here > -1:\r\n {set count to vehicles_count[here] + 1}\r\n {set vehicles_count to union(vehicles_count, [here:count])}\r\n |else:\r\n {set vehicles to cat(vehicles , [variant])}\r\n {set vehicles_count to cat(vehicles_count, [1])}\r\n }\r\n }\r\n }\r\n\r\n {if len(vehicles) > 0:\r\n {if hangar_count = 1: You have |else: and} a {hangar}, holding\r\n {set cur to 0}\r\n {while cur < len(vehicles):\r\n {set count to vehicles_count[cur]}\r\n {set name to split(vehicles[cur], \"_\")[0]}\r\n {set description to split(vehicles[cur], \"_\")[1]}\r\n {count} {if count = 1: {P(name)} |else: {P(name)}s}, with {description}\r\n {set cur to cur + 1}\r\n {if cur = len(vehicles)-1: and |elif cur < len(vehicles): ,}\r\n }\r\n |else:\r\n {if hangar_count = 1: You have |else: and} an empty {hangar}\r\n }\r\n {if hangar_count = len(ship.launchbays): . |else: ,}\r\n }\r\n }\r\n|else:\r\n Hangar status is not available.\r\n {Pause(500)}\r\n Please verify connection to the pilots federation database.\r\n}\r\n", "default": false }, "Liftoff": { "name": "Liftoff", "description": "Se activa cuando su nave despega desde la superficie de un planeta", "enabled": true, "priority": 3, "responder": true, "script": "{if event.playercontrolled = true:\n Despegando.\n|else:\n {ShipName()} ha despegado.\n}", "defaultValue": "{if event.playercontrolled = true:\n Despegando.\n|else:\n {ShipName()} ha despegado.\n}", "default": true }, "Lights": { "name": "Lights", "description": "Triggered when you activate or deactivate your lights", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Limpet check": { "name": "Limpet check", "description": "Comprueba la presencia o ausencia de drones y controladores de drones", "enabled": true, "priority": null, "responder": false, "script": "{set controllers to 0}\n{for compartment in ship.compartments:\n {if find(compartment.module.name, \"Controller\") != -1:\n {set controllers to controllers + 1}\n }\n}\n\n{set limpets to 0}\n{for cargo in ship.cargo:\n {if cargo.commodity.name = \"Limpet\":\n {set limpets to limpets + cargo.amount}\n }\n}\n{set tenpercent to ship.cargocapacity / 10 - 1}\n{if controllers > 0 && limpets = 0:\n Aviso: llevamos un lanzador de drónes pero no llevamos ningún drón.\n|elif controllers = 0 && limpets > 0:\n transportamos drónes pero no llevamos ningún lanzador\n|elif controllers > 0 && limpets < tenpercent:\n solo llevamos {limpets} drónes a bordo; debería considerar el adquirir más.\n}\n", "defaultValue": "{set controllers to 0}\n{for compartment in ship.compartments:\n {if find(compartment.module.name, \"Controller\") != -1:\n {set controllers to controllers + 1}\n }\n}\n\n{set limpets to 0}\n{for cargo in ship.cargo:\n {if cargo.commodity.name = \"Limpet\":\n {set limpets to limpets + cargo.amount}\n }\n}\n{set tenpercent to ship.cargocapacity / 10 - 1}\n{if controllers > 0 && limpets = 0:\n Aviso: llevamos un lanzador de drónes pero no llevamos ningún drón.\n|elif controllers = 0 && limpets > 0:\n transportamos drónes pero no llevamos ningún lanzador\n|elif controllers > 0 && limpets < tenpercent:\n solo llevamos {limpets} drónes a bordo; debería considerar el adquirir más.\n}\n", "default": true }, "Limpet launched": { "name": "Limpet launched", "description": "Triggered when a limpet is launched", "enabled": true, "priority": 5, "responder": true, "script": "Drón {OneOf('lanzado','en marcha')}.", "defaultValue": "Drón {OneOf('lanzado','en marcha')}.", "default": true }, "Limpet purchased": { "name": "Limpet purchased", "description": "Se activa cuando compra drones en una estación espacial", "enabled": true, "priority": 5, "responder": true, "script": "{event.amount} drón{if event.amount > 1:es} {Occasionally(2, \"ha{if event.amount > 1:n} sido\")} añadido{if event.amount > 1:s}, a{OneOf(\"l compartimento de carga\",\"l inventario\",\"la bodega\")} {OneOf(\"\",\"de la {ShipName()}\")}", "defaultValue": "{event.amount} drón{if event.amount > 1:es} {Occasionally(2, \"ha{if event.amount > 1:n} sido\")} añadido{if event.amount > 1:s}, a{OneOf(\"l compartimento de carga\",\"l inventario\",\"la bodega\")} {OneOf(\"\",\"de la {ShipName()}\")}", "default": true }, "Limpet sold": { "name": "Limpet sold", "description": "Se activa cuando vende drones en una estación espacial", "enabled": true, "priority": 5, "responder": true, "script": "{event.amount} drón{if event.amount > 1:es}{Occasionally(2, \"ha{if event.amount > 1:n} sido\")} vendidos.", "defaultValue": "{event.amount} drón{if event.amount > 1:es}{Occasionally(2, \"ha{if event.amount > 1:n} sido\")} vendidos.", "default": true }, "List launchbays": { "name": "List launchbays", "description": "Describe el contenido de las bahías con vehículos de la nave.", "enabled": true, "priority": null, "responder": false, "script": "{for launchbay in ship.launchbays:\n Tienes un hangar de tamaño {launchbay.size}, de tipo {launchbay.type}.\n {for vehicle in launchbay.vehicles:\n Tiene un {P(vehicle.name)} con {vehicle.loadout} de carga\n\n {if type(vehicle.mount) != null:\n {if vehicle.mount = 'F':\n , y armas fijas\n |elif vehicle.mount = 'G':\n , y armas de seguimiento\n }\n }\n .{_ full stop}\n\n {if vehicle.rebuilds != null:\n {if vehicle.rebuilds = 1:\n Solo puedes imprimir uno más.\n |elif vehicle.rebuilds = 0:\n Falta material para su impresión.\n |else:\n Quedan {vehicle.rebuilds} cargas de impresión restantes.\n }\n }\n\n {Pause(500)}\n }\n}\n", "defaultValue": null, "default": false }, "Location": { "name": "Location", "description": "Se activa cuando se informa sobre la ubicación del Comandante, normalmente cuando se reinicia el juego", "enabled": true, "priority": 5, "responder": true, "script": "{_ Context _}\n{SetState('eddi_context_last_subject', 'location')}\n{SetState('eddi_context_system_name', event.system)}\n{SetState('eddi_context_body_name', event.body)}\n{SetState('eddi_context_body_type', event.bodytype)}\n{SetState('eddi_context_body_system', event.system)}\n\n\nNos encontramos \n{if event.docked || event.station = event.body:\n {set station to StationDetails(event.station, event.system)}\n {set station_missions to F(\"Mission check station\")}\n {set station_crimes to F(\"Crime check station\")}\n\n {if event.docked:\n acoplados en\n |else:\n {OneOf(\"cerca de\", \"en los alrededores de\", \"próximos a\", \"en las proximidades de\")}\n }\n {P(station.model)}, {P(event.station)},\n {if event.station != event.body:\n en {P(event.body)},\n }\n|elif event.body:\n {set system_missions to F(\"Mission check system\")}\n {set system_crimes to F(\"Crime check system\")}\n {OneOf(\"cerca de\", \"en los alrededores de\", \"próximos a\", \"en las proximidades de\")} {P(event.body)},\n}\nen el sistema {P(event.system)}.\n\n{if station_missions || station_crimes ||system_missions || system_crimes:\n {Pause(500)}\n Información:\n {if station_missions:\n {Pause(500)}\n {station_missions}\n }\n {if station_crimes:\n {Pause(500)}\n {station_crimes}\n }\n {if system_missions:\n {Pause(500)}\n {station_missions}\n }\n {if system_crimes:\n {Pause(500)}\n {station_crimes}\n }\n}", "defaultValue": "{_ Context }\n{SetState('eddi_context_system_name', event.system)}\n{SetState('eddi_context_body_name', event.body)}\n{SetState('eddi_context_body_system', event.system)}\n\nNos encontramos \n{if event.docked:\n acoplados en la\n {if event.station = event.body:\n estación orbital {event.station}\n |else:\n estación planetaria {event.station} en {event.body}\n }\n|elif event.body:\n cerca de {event.body},\n} en el sistema {event.system}.\n", "default": false }, "Low fuel": { "name": "Low fuel", "description": "Se activa cuando los niveles de combustible bajan del 25%", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Market information updated": { "name": "Market information updated", "description": "Se activa cuando se ha actualizado la información del mercado de la estación espacial en la que se ha aterrizado", "enabled": true, "priority": 5, "responder": true, "script": "{_ Find out in advance what we have to say }\n{if ship.role = \"Multipurpose\" || ship.role = \"Trading\":\n {set purchasecheck to F(\"Commodity purchase check\")}\n}\n{set limpetcheck to F(\"Limpet check\")}\n{set swapoutcheck to F(\"Swapout check\")}\n{set salecheck to F(\"Commodity sale check\")}\n\n{Pause(4500)}\n\n{if purchasecheck || salecheck || limpetcheck || swapoutcheck:\n {OneOf(\"Recibid\", \"Obtenid\")}{OneOf(\"as actualizaciones de \", \"o Refresco de \", \"os cambios en \")}{OneOf(\"datos de\", \"información de\", \"precios en\")}\n {OneOf(\" Mercado local\",\" Servicios de estación\")}.\n\n {salecheck}\n {purchasecheck}\n {swapoutcheck}\n {limpetcheck}\n}", "defaultValue": "{_ Find out in advance what we have to say }\n{if ship.role = \"Multipurpose\" || ship.role = \"Trading\":\n {set purchasecheck to F(\"Commodity purchase check\")}\n}\n{set limpetcheck to F(\"Limpet check\")}\n{set swapoutcheck to F(\"Swapout check\")}\n{set salecheck to F(\"Commodity sale check\")}\n\n{Pause(4500)}\n\n{if purchasecheck || salecheck || limpetcheck || swapoutcheck:\n {OneOf(\"Recibid\", \"Obtenid\")}{OneOf(\"as actualizaciones de \", \"o Refresco de \", \"os cambios en \")}{OneOf(\"datos de\", \"información de\", \"precios en\")}\n {OneOf(\" Mercado local\",\" Servicios de estación\")}.\n\n {salecheck}\n {purchasecheck}\n {swapoutcheck}\n {limpetcheck}\n}", "default": true }, "Material collected": { "name": "Material collected", "description": "Se activa cuando se recoge un material", "enabled": true, "priority": 5, "responder": true, "script": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'material')}\r\n{SetState('eddi_context_last_action', 'collect')}\r\n{SetState('eddi_context_material_name', event.name)}\r\n", "defaultValue": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'material')}\r\n{SetState('eddi_context_last_action', 'collect')}\r\n{SetState('eddi_context_material_name', event.name)}\r\n", "default": true }, "Material discard report": { "name": "Material discard report", "description": "Informa de cuántos materiales puedes eliminar", "enabled": true, "priority": null, "responder": false, "script": "{_ Function to obtain a material from inventory}\n{set _inventory(required) to:\n {for material in materials:\n {if material.material = required:\n {return material}\n }\n }\n}\n\n{_ Fetch material from state }\n{set material to state.material}\n{if material:\n {_ Fetch full material details }\n {set material to MaterialDetails(material)}\n\n {_ Context }\n {SetState('eddi_context_last_subject', 'material')}\n {SetState('eddi_context_material_name', material.name)}\n}\n\n{if !material:\n {_ Fetch from context }\n {set material to MaterialDetails(state.eddi_context_material_name)}\n}\n\n{set inventory to _inventory(material.name)}\n\n\n{if inventory:\n {if inventory.maximum && inventory.maximum < inventory.amount:\n {set over to inventory.amount - inventory.maximum}\n {if over > 1:\n Puede deshacerse de {over} unidades de {inventory.material} para alcanzar su nivel máximo.\n |elif over = 1:\n Puede deshacerse solo de una tonelada de {inventory.material} para alcanzar su nivel máximo.\n }\n |elif inventory.desired && inventory.desired < inventory.amount:\n {set over to inventory.amount - inventory.desired}\n {if over > 1:\n Puede deshacerse de {over} unidades de {inventory.material} su nivel deseado\n |elif over = 1:\n Puede deshacerse solo de una tonelada de {inventory.material} su nivel deseado\n }\n |elif inventory.desired:\n Está por debajo del nivel deseado de {inventory.material}.\n |elif inventory.maximum:\n Está por debajo de su nivel máximo de {inventory.material}.\n |else:\n No ha establecido ningún nivel para {inventory.material}.\n }\n}\n", "defaultValue": "{_ Function to obtain a material from inventory}\n{set _inventory(required) to:\n {for material in materials:\n {if material.material = required:\n {return material}\n }\n }\n}\n\n{_ Fetch material from state }\n{set material to state.material}\n{if material:\n {_ Fetch full material details }\n {set material to MaterialDetails(material)}\n\n {_ Context }\n {SetState('eddi_context_last_subject', 'material')}\n {SetState('eddi_context_material_name', material.name)}\n}\n\n{if !material:\n {_ Fetch from context }\n {set material to MaterialDetails(state.eddi_context_material_name)}\n}\n\n{set inventory to _inventory(material.name)}\n\n\n{if inventory:\n {if inventory.maximum && inventory.maximum < inventory.amount:\n {set over to inventory.amount - inventory.maximum}\n {if over > 1:\n Puede deshacerse de {over} unidades de {inventory.material} para alcanzar su nivel máximo.\n |elif over = 1:\n Puede deshacerse solo de una tonelada de {inventory.material} para alcanzar su nivel máximo.\n }\n |elif inventory.desired && inventory.desired < inventory.amount:\n {set over to inventory.amount - inventory.desired}\n {if over > 1:\n Puede deshacerse de {over} unidades de {inventory.material} su nivel deseado\n |elif over = 1:\n Puede deshacerse solo de una tonelada de {inventory.material} su nivel deseado\n }\n |elif inventory.desired:\n Está por debajo del nivel deseado de {inventory.material}.\n |elif inventory.maximum:\n Está por debajo de su nivel máximo de {inventory.material}.\n |else:\n No ha establecido ningún nivel para {inventory.material}.\n }\n}\n", "default": true }, "Material discarded": { "name": "Material discarded", "description": "Se activa cuando eliminas algún material", "enabled": true, "priority": 3, "responder": true, "script": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'material')}\r\n{SetState('eddi_context_last_action', 'discard')}\r\n{SetState('eddi_context_material_name', event.name)}\r\n", "defaultValue": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'material')}\r\n{SetState('eddi_context_last_action', 'discard')}\r\n{SetState('eddi_context_material_name', event.name)}\r\n", "default": true }, "Material discovered": { "name": "Material discovered", "description": "Se activa cuando descubres un material", "enabled": true, "priority": 3, "responder": true, "script": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'material')}\r\n{SetState('eddi_context_last_action', 'discover')}\r\n{SetState('eddi_context_material_name', event.name)}\r\n", "defaultValue": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'material')}\r\n{SetState('eddi_context_last_action', 'discover')}\r\n{SetState('eddi_context_material_name', event.name)}\r\n", "default": true }, "Material donated": { "name": "Material donated", "description": "Se activa cuando donas un material", "enabled": true, "priority": 3, "responder": true, "script": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'material')}\r\n{SetState('eddi_context_last_action', 'donate')}\r\n{SetState('eddi_context_material_name', event.name)}\r\n", "defaultValue": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'material')}\r\n{SetState('eddi_context_last_action', 'donate')}\r\n{SetState('eddi_context_material_name', event.name)}\r\n", "default": true }, "Material inventory": { "name": "Material inventory", "description": "Se activa cuando obtienes un inventario de todos tus materiales", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Material inventory report": { "name": "Material inventory report", "description": "Informa de cuántos materiales llevas a bordo", "enabled": true, "priority": null, "responder": false, "script": "{_ Function to obtain a material from inventory}\n{set _inventory(required) to:\n {for material in materials:\n {if material.material = required:\n {return material}\n }\n }\n}\n\n{_ Fetch material from state }\n{set material to state.material}\n{if material:\n {_ Fetch full material details }\n {set material to MaterialDetails(material)}\n \n {_ Context }\n {SetState('eddi_context_last_subject', 'material')}\n {SetState('eddi_context_last_subject', 'inventory')}\n {SetState('eddi_context_material_name', material.name)}\n}\n\n{if !material:\n {_ Fetch from context }\n {set material to MaterialDetails(state.eddi_context_material_name)}\n}\n\n{set inventory to _inventory(material.name)}\n\n{if inventory && inventory.amount > 0:\n {if inventory.amount = 1:\n Tenemos {inventory.amount} unidad de {inventory.material} a bordo.\n |else:\n Tenemos {inventory.amount} unidades de {inventory.material} a bordo.\n }\n|else:\n {OneOf(\"No tenemos\",\"Estamos sin\")} {Occasionally(2,\"existencias de \")}{inventory.material} a bordo.\n}\n", "defaultValue": "{_ Function to obtain a material from inventory}\n{set _inventory(required) to:\n {for material in materials:\n {if material.material = required:\n {return material}\n }\n }\n}\n\n{_ Fetch material from state }\n{set material to state.material}\n{if material:\n {_ Fetch full material details }\n {set material to MaterialDetails(material)}\n \n {_ Context }\n {SetState('eddi_context_last_subject', 'material')}\n {SetState('eddi_context_last_subject', 'inventory')}\n {SetState('eddi_context_material_name', material.name)}\n}\n\n{if !material:\n {_ Fetch from context }\n {set material to MaterialDetails(state.eddi_context_material_name)}\n}\n\n{set inventory to _inventory(material.name)}\n\n{if inventory && inventory.amount > 0:\n {if inventory.amount = 1:\n Tenemos {inventory.amount} unidad de {inventory.material} a bordo.\n |else:\n Tenemos {inventory.amount} unidades de {inventory.material} a bordo.\n }\n|else:\n {OneOf(\"No tenemos\",\"Estamos sin\")} {Occasionally(2,\"existencias de \")}{inventory.material} a bordo.\n}\n", "default": true }, "Material location report": { "name": "Material location report", "description": "Informa sobre dónde encontrar un material en particular", "enabled": true, "priority": null, "responder": false, "script": "{_ Fetch material from state }\n{set material to state.material}\n{if material:\n {_ Fetch full material details }\n {set material to MaterialDetails(material)}\n\n {_ Context }\n {SetState('eddi_context_last_subject', 'material')}\n {SetState('eddi_context_material_name', material.name)}\n}\n\n{if !material:\n {_ Fetch from context }\n {set material to MaterialDetails(state.eddi_context_material_name)}\n}\n\n{if material.name:\n {if material.location:\n {OneOf(\"Se puede obtener\",\"Puedes obtener\",\"Podemos encontrar\")} {material.name} {material.location}\n |else:\n No encuentro información sobre dónde encontrar {material.name}\n }\n|else:\n Lo siento, {OneOf(\"no reconozco ese material\",\"no se de que material me hablas\")}\n}.\n", "defaultValue": "{_ Fetch material from state }\n{set material to state.material}\n{if material:\n {_ Fetch full material details }\n {set material to MaterialDetails(material)}\n\n {_ Context }\n {SetState('eddi_context_last_subject', 'material')}\n {SetState('eddi_context_material_name', material.name)}\n}\n\n{if !material:\n {_ Fetch from context }\n {set material to MaterialDetails(state.eddi_context_material_name)}\n}\n\n{if material.name:\n {if material.location:\n {OneOf(\"Se puede obtener\",\"Puedes obtener\",\"Podemos encontrar\")} {material.name} {material.location}\n |else:\n No encuentro información sobre dónde encontrar {material.name}\n }\n|else:\n Lo siento, {OneOf(\"no reconozco ese material\",\"no se de que material me hablas\")}\n}.\n", "default": true }, "Material required report": { "name": "Material required report", "description": "Informa de cuántos materiales se necesitan para alcanzar el nivel 'deseado'", "enabled": true, "priority": null, "responder": false, "script": "{_ Function to obtain a material from inventory}\n{set _inventory(required) to:\n {for material in materials:\n {if material.material = required:\n {return material}\n }\n }\n}\n\n{_ Fetch material from state }\n{set material to state.material}\n{if material:\n {_ Fetch full material details }\n {set material to MaterialDetails(material)}\n\n {_ Context }\n {SetState('eddi_context_last_subject', 'material')}\n {SetState('eddi_context_material_name', material.name)}\n}\n\n{if !material:\n {_ Fetch from context }\n {set material to MaterialDetails(state.eddi_context_material_name)}\n}\n\n{set inventory to _inventory(material.name)}\n\n\n{if inventory:\n {if inventory.minimum && inventory.minimum > inventory.amount:\n {set under to inventory.minimum - inventory.amount}\n {if under > 1:\n Necesita {under} unidades de {inventory.material} para alcanzar la cantidad mínima.\n |elif under = 1:\n Necesita una unidad de {inventory.material} para alcanzar la cantidad mínima.\n }\n |elif inventory.desired && inventory.desired > inventory.amount:\n {set under to inventory.desired - inventory.amount}\n {if under > 1:\n Necesita {under} unidades de {inventory.material} para alcanzar el nivel deseado.\n |elif under = 1:\n Necesita una unidad más de {inventory.material} para alcanzar el nivel deseado.\n }\n |elif inventory.desired:\n Llevamos mas {inventory.material} de lo deseado.\n |elif inventory.minimum :\n Estamos por encima del nivel mínimo de {inventory.material}.\n |else:\n No se ha establecido la cantidad deseada de {inventory.material}.\n }\n}\n\n", "defaultValue": "{_ Function to obtain a material from inventory}\n{set _inventory(required) to:\n {for material in materials:\n {if material.material = required:\n {return material}\n }\n }\n}\n\n{_ Fetch material from state }\n{set material to state.material}\n{if material:\n {_ Fetch full material details }\n {set material to MaterialDetails(material)}\n\n {_ Context }\n {SetState('eddi_context_last_subject', 'material')}\n {SetState('eddi_context_material_name', material.name)}\n}\n\n{if !material:\n {_ Fetch from context }\n {set material to MaterialDetails(state.eddi_context_material_name)}\n}\n\n{set inventory to _inventory(material.name)}\n\n\n{if inventory:\n {if inventory.minimum && inventory.minimum > inventory.amount:\n {set under to inventory.minimum - inventory.amount}\n {if under > 1:\n Necesita {under} unidades de {inventory.material} para alcanzar la cantidad mínima.\n |elif under = 1:\n Necesita una unidad de {inventory.material} para alcanzar la cantidad mínima.\n }\n |elif inventory.desired && inventory.desired > inventory.amount:\n {set under to inventory.desired - inventory.amount}\n {if under > 1:\n Necesita {under} unidades de {inventory.material} para alcanzar el nivel deseado.\n |elif under = 1:\n Necesita una unidad más de {inventory.material} para alcanzar el nivel deseado.\n }\n |elif inventory.desired:\n Llevamos mas {inventory.material} de lo deseado.\n |elif inventory.minimum :\n Estamos por encima del nivel mínimo de {inventory.material}.\n |else:\n No se ha establecido la cantidad deseada de {inventory.material}.\n }\n}\n\n", "default": true }, "Material threshold": { "name": "Material threshold", "description": "Se activa cuando un material alcanza el umbral", "enabled": true, "priority": 3, "responder": true, "script": "{_ Set up a function to report our inventory level }\n{set reportInventory() to:\n {OneOf(\"Hay {event.amount} en stock\",\n \"Hay {event.amount} existencias\",\n \"Hay {event.amount} a bordo\")}.\n}\n\n{_ Respond to various threshold events }\n{if event.level = 'Minimum':\n {_ Threshold triggered around the minimum level }\n {if event.change = 'Increase':\n {OneOf(\"El Stock\", \"el inventario\", \"la reserva\")} de {event.material.name} ha alcanzado el mínimo establecido. {reportInventory()}\n |else:\n {OneOf(\"El Stock\", \"el inventario\", \"la reserva\")} de {event.material.name} ha caído por debajo del mínimo establecido. Solo {reportInventory()}\n }\n|elif event.level = 'Desired':\n {_ Threshold triggered around the desired level }\n {if event.change = 'Increase':\n\tSe ha alcanzado el nivel deseado de {event.material.name}. Ya {reportInventory()}\n |else:\n {Occasionally(1,\"Tenemos\")}{OneOf(\"El Stock\", \"el inventario\", \"la reserva\")} de {event.material.name} por debajo de lo deseado. Solo {reportInventory()}\n\n }\n|else:\n {_ Threshold triggered around the maximum level }\n {if event.change = 'Increase':\n\tSe ha alcanzado el nivel deseado de {event.material.name}. Ya {reportInventory()}\n\n }\n}", "defaultValue": "{if event.level = 'Minimum': \n{_ Gone below the minimum level } \n{OneOf(\"El Stock\", \"el inventario\", \"la reserva\")} de {event.material.name} ha caído por debajo del mínimo establecido\n|elif event.level = 'Maximum': \n{_ Gone above the maximum level } \n{OneOf(\"El Stock\", \"el inventario\", \"la reserva\")} de {event.material.name} ha superado el máximo establecido\n|else: \n{_ Moved around the desired level } \n{if event.change = 'Increase': \nHas alcanzado el nivel deseado de {event.material.name}. \n|else: \nEst{event.material.name}. \n} \n} \n\n{OneOf(\"Actualmente tenemos {event.amount}\", \n\"Ahora mismo tenemos {event.amount}\", \n\"{event.amount} a bordo\")}.", "default": false }, "Material traded": { "name": "Material traded", "description": "Se activa cuando se comercializa con un comerciante de materiales", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Material use report": { "name": "Material use report", "description": "Informa del uso de un material", "enabled": true, "priority": null, "responder": false, "script": "{_ Fetch material from state }\n{set material to state.material}\n{if material:\n {_ Fetch full material details }\n {set material to MaterialDetails(material)}\n\n {_ Context }\n {SetState('eddi_context_last_subject', 'material')}\n {SetState('eddi_context_material_name', material.name)}\n}\n\n{if !material:\n {_ Fetch from context }\n {set material to MaterialDetails(state.eddi_context_material_name)}\n}\n\n{if material && material.name:\n {set uses to len(material.blueprints)}\n {if slice(material.name, len(material.name)-1) = 's':\n {set plural to 'son'}\n |else:\n {set plural to 'es'}\n }\n {if uses = 0:\n Ninguna cantidad de {material.name} {plural} de utilidad para ningún plano\n |elif uses = 1:\n {set name to cat(material.blueprints[0].name, material.blueprints[0].modulename, ' grado ', material.blueprints[0].grade)}\n {material.name} {plural} de utilidad para el plano {name}\n |elif uses = 2:\n {set name0 to cat(material.blueprints[0].name, material.blueprints[0].modulename, ' grado ', material.blueprints[0].grade)}\n {set name1 to cat(material.blueprints[1].name, material.blueprints[1].modulename, ' grado ', material.blueprints[1].grade)}\n {material.name} {plural} de utilidad para los planos {name0} y {name1}\n |else:\n {material.name} {plural} de utilidad para los {len(material.blueprints)} planos siguientes:\n {set cur to 0}\n {while cur < len(material.blueprints):\n {set name to cat(material.blueprints[cur].name, material.blueprints[cur].modulename, ' grado ', material.blueprints[cur].grade)}\n {if cur = 0:\n {name}\n |elif cur < len(material.blueprints) - 1:\n , {name}\n |else:\n , y {name}\n }\n {set cur to cur + 1}\n }\n }\n|else:\n No consigo encontrar información sobre este material\n}.\n", "defaultValue": "{_ Fetch material from state }\n{set material to state.material}\n{if material:\n {_ Fetch full material details }\n {set material to MaterialDetails(material)}\n\n {_ Context }\n {SetState('eddi_context_last_subject', 'material')}\n {SetState('eddi_context_material_name', material.name)}\n}\n\n{if !material:\n {_ Fetch from context }\n {set material to MaterialDetails(state.eddi_context_material_name)}\n}\n\n{if material && material.name:\n {set uses to len(material.blueprints)}\n {if slice(material.name, len(material.name)-1) = 's':\n {set plural to 'son'}\n |else:\n {set plural to 'es'}\n }\n {if uses = 0:\n Ninguna cantidad de {material.name} {plural} de utilidad para ningún plano\n |elif uses = 1:\n {set name to cat(material.blueprints[0].name, material.blueprints[0].modulename, ' grado ', material.blueprints[0].grade)}\n {material.name} {plural} de utilidad para el plano {name}\n |elif uses = 2:\n {set name0 to cat(material.blueprints[0].name, material.blueprints[0].modulename, ' grado ', material.blueprints[0].grade)}\n {set name1 to cat(material.blueprints[1].name, material.blueprints[1].modulename, ' grado ', material.blueprints[1].grade)}\n {material.name} {plural} de utilidad para los planos {name0} y {name1}\n |else:\n {material.name} {plural} de utilidad para los {len(material.blueprints)} planos siguientes:\n {set cur to 0}\n {while cur < len(material.blueprints):\n {set name to cat(material.blueprints[cur].name, material.blueprints[cur].modulename, ' grado ', material.blueprints[cur].grade)}\n {if cur = 0:\n {name}\n |elif cur < len(material.blueprints) - 1:\n , {name}\n |else:\n , y {name}\n }\n {set cur to cur + 1}\n }\n }\n|else:\n No consigo encontrar información sobre este material\n}.\n", "default": true }, "Materials discard report": { "name": "Materials discard report", "description": "Informa sobre qué materiales se pueden descartar", "enabled": true, "priority": null, "responder": false, "script": "\n{_ Find those that are above maximum, desired and minimum}\n{set shoulddiscardmaterials to []}\n{set coulddiscardmaterials to []}\n{set lastdiscardmaterials to []}\n\n{for material in materials:\n {if material.maximum && material.amount > material.maximum:\n {set shoulddiscardmaterials to cat(shoulddiscardmaterials, [material])}\n |elif material.desired && material.amount > material.desired:\n {set coulddiscardmaterials to cat(coulddiscardmaterials, [material])}\n |elif material.minimum && material.amount > material.minimum:\n {set lastdiscardmaterials to cat(lastdiscardmaterials, [material])}\n }\n}\n\n{if len(shoulddiscardmaterials) > 0:\n Estamos por encima del nivel máximo de {if len(shoulddiscardmaterials) = 1: 1 material |else: {len(shoulddiscardmaterials)} materials}. Podemos deshacernos de\n {if len(shoulddiscardmaterials) = 1:\n {shoulddiscardmaterials[0].amount - shoulddiscardmaterials[0].maximum} {shoulddiscardmaterials[0].material}\n |elif len(shoulddiscardmaterials) = 2:\n {shoulddiscardmaterials[0].amount - shoulddiscardmaterials[0].maximum} {shoulddiscardmaterials[0].material} y {shoulddiscardmaterials[1].amount - shoulddiscardmaterials[1].maximum} {shoulddiscardmaterials[1].material}\n |else:\n {set cur to 0}\n {while cur < len(shoulddiscardmaterials):\n {if cur = 0:\n {shoulddiscardmaterials[cur].amount - shoulddiscardmaterials[cur].maximum} {shoulddiscardmaterials[cur].material}\n |elif cur < len(shoulddiscardmaterials) - 1:\n , {shoulddiscardmaterials[cur].amount - shoulddiscardmaterials[cur].maximum} {shoulddiscardmaterials[cur].material}\n |else:\n , y {shoulddiscardmaterials[cur].amount - shoulddiscardmaterials[cur].maximum} {shoulddiscardmaterials[cur].material}\n }\n {set cur to cur + 1}\n }\n }.\n|elif len(coulddiscardmaterials) > 0:\n Tenemos más cantidad de {if len(coulddiscardmaterials) = 1: 1 material |else: {len(coulddiscardmaterials)} materials} de lo deseado. Podemos descartar\n {if len(coulddiscardmaterials) = 1:\n {coulddiscardmaterials[0].amount - coulddiscardmaterials[0].desired} {coulddiscardmaterials[0].material}\n |elif len(coulddiscardmaterials) = 2:\n {coulddiscardmaterials[0].amount - coulddiscardmaterials[0].desired} {coulddiscardmaterials[0].material} y {coulddiscardmaterials[1].amount - coulddiscardmaterials[1].desired} {coulddiscardmaterials[1].material}\n |else:\n {set cur to 0}\n {while cur < len(coulddiscardmaterials):\n {if cur = 0:\n {coulddiscardmaterials[cur].amount - coulddiscardmaterials[cur].desired} {coulddiscardmaterials[cur].material}\n |elif cur < len(coulddiscardmaterials) - 1:\n , {coulddiscardmaterials[cur].amount - coulddiscardmaterials[cur].desired} {coulddiscardmaterials[cur].material}\n |else:\n , y {coulddiscardmaterials[cur].amount - coulddiscardmaterials[cur].desired} {coulddiscardmaterials[cur].material}\n }\n {set cur to cur + 1}\n }\n }.\n|elif len(lastdiscardmaterials) > 0:\n Estamos por encima del mínimo requerido de {if len(lastdiscardmaterials) = 1: 1 material |else: {len(lastdiscardmaterials)} materials}. Podemos eliminar \n {if len(lastdiscardmaterials) = 1:\n {lastdiscardmaterials[0].amount - lastdiscardmaterials[0].minimum} {lastdiscardmaterials[0].material}\n |elif len(lastdiscardmaterials) = 2:\n {lastdiscardmaterials[0].amount - lastdiscardmaterials[0].minimum} {lastdiscardmaterials[0].material} y {lastdiscardmaterials[1].amount - lastdiscardmaterials[1].minimum} {lastdiscardmaterials[1].material}\n |else:\n {set cur to 0}\n {while cur < len(lastdiscardmaterials):\n {if cur = 0:\n {lastdiscardmaterials[cur].amount - lastdiscardmaterials[cur].minimum} {lastdiscardmaterials[cur].material}\n |elif cur < len(lastdiscardmaterials) - 1:\n , {lastdiscardmaterials[cur].amount - lastdiscardmaterials[cur].minimum} {lastdiscardmaterials[cur].material}\n |else:\n , y {lastdiscardmaterials[cur].amount - lastdiscardmaterials[cur].minimum} {lastdiscardmaterials[cur].material}\n }\n {set cur to cur + 1}\n }\n }.\n|else:\n No podemos deshacernos de ningún material si queremos estar dentro de los mínimos necesarios\n}\n", "defaultValue": "\n{_ Find those that are above maximum, desired and minimum}\n{set shoulddiscardmaterials to []}\n{set coulddiscardmaterials to []}\n{set lastdiscardmaterials to []}\n\n{for material in materials:\n {if material.maximum && material.amount > material.maximum:\n {set shoulddiscardmaterials to cat(shoulddiscardmaterials, [material])}\n |elif material.desired && material.amount > material.desired:\n {set coulddiscardmaterials to cat(coulddiscardmaterials, [material])}\n |elif material.minimum && material.amount > material.minimum:\n {set lastdiscardmaterials to cat(lastdiscardmaterials, [material])}\n }\n}\n\n{if len(shoulddiscardmaterials) > 0:\n Estamos por encima del nivel máximo de {if len(shoulddiscardmaterials) = 1: 1 material |else: {len(shoulddiscardmaterials)} materials}. Podemos deshacernos de\n {if len(shoulddiscardmaterials) = 1:\n {shoulddiscardmaterials[0].amount - shoulddiscardmaterials[0].maximum} {shoulddiscardmaterials[0].material}\n |elif len(shoulddiscardmaterials) = 2:\n {shoulddiscardmaterials[0].amount - shoulddiscardmaterials[0].maximum} {shoulddiscardmaterials[0].material} y {shoulddiscardmaterials[1].amount - shoulddiscardmaterials[1].maximum} {shoulddiscardmaterials[1].material}\n |else:\n {set cur to 0}\n {while cur < len(shoulddiscardmaterials):\n {if cur = 0:\n {shoulddiscardmaterials[cur].amount - shoulddiscardmaterials[cur].maximum} {shoulddiscardmaterials[cur].material}\n |elif cur < len(shoulddiscardmaterials) - 1:\n , {shoulddiscardmaterials[cur].amount - shoulddiscardmaterials[cur].maximum} {shoulddiscardmaterials[cur].material}\n |else:\n , y {shoulddiscardmaterials[cur].amount - shoulddiscardmaterials[cur].maximum} {shoulddiscardmaterials[cur].material}\n }\n {set cur to cur + 1}\n }\n }.\n|elif len(coulddiscardmaterials) > 0:\n Tenemos más cantidad de {if len(coulddiscardmaterials) = 1: 1 material |else: {len(coulddiscardmaterials)} materials} de lo deseado. Podemos descartar\n {if len(coulddiscardmaterials) = 1:\n {coulddiscardmaterials[0].amount - coulddiscardmaterials[0].desired} {coulddiscardmaterials[0].material}\n |elif len(coulddiscardmaterials) = 2:\n {coulddiscardmaterials[0].amount - coulddiscardmaterials[0].desired} {coulddiscardmaterials[0].material} y {coulddiscardmaterials[1].amount - coulddiscardmaterials[1].desired} {coulddiscardmaterials[1].material}\n |else:\n {set cur to 0}\n {while cur < len(coulddiscardmaterials):\n {if cur = 0:\n {coulddiscardmaterials[cur].amount - coulddiscardmaterials[cur].desired} {coulddiscardmaterials[cur].material}\n |elif cur < len(coulddiscardmaterials) - 1:\n , {coulddiscardmaterials[cur].amount - coulddiscardmaterials[cur].desired} {coulddiscardmaterials[cur].material}\n |else:\n , y {coulddiscardmaterials[cur].amount - coulddiscardmaterials[cur].desired} {coulddiscardmaterials[cur].material}\n }\n {set cur to cur + 1}\n }\n }.\n|elif len(lastdiscardmaterials) > 0:\n Estamos por encima del mínimo requerido de {if len(lastdiscardmaterials) = 1: 1 material |else: {len(lastdiscardmaterials)} materials}. Podemos eliminar \n {if len(lastdiscardmaterials) = 1:\n {lastdiscardmaterials[0].amount - lastdiscardmaterials[0].minimum} {lastdiscardmaterials[0].material}\n |elif len(lastdiscardmaterials) = 2:\n {lastdiscardmaterials[0].amount - lastdiscardmaterials[0].minimum} {lastdiscardmaterials[0].material} y {lastdiscardmaterials[1].amount - lastdiscardmaterials[1].minimum} {lastdiscardmaterials[1].material}\n |else:\n {set cur to 0}\n {while cur < len(lastdiscardmaterials):\n {if cur = 0:\n {lastdiscardmaterials[cur].amount - lastdiscardmaterials[cur].minimum} {lastdiscardmaterials[cur].material}\n |elif cur < len(lastdiscardmaterials) - 1:\n , {lastdiscardmaterials[cur].amount - lastdiscardmaterials[cur].minimum} {lastdiscardmaterials[cur].material}\n |else:\n , y {lastdiscardmaterials[cur].amount - lastdiscardmaterials[cur].minimum} {lastdiscardmaterials[cur].material}\n }\n {set cur to cur + 1}\n }\n }.\n|else:\n No podemos deshacernos de ningún material si queremos estar dentro de los mínimos necesarios\n}\n", "default": true }, "Materials required report": { "name": "Materials required report", "description": "Informa de cuántos materiales son necesarios para alcanzar el nivel 'deseado'", "enabled": true, "priority": null, "responder": false, "script": "{set required to []}\n\n{for material in materials:\n {if material.desired && material.amount < material.desired:\n {set required to cat(required, [material])}\n }\n}\n\n{if len(required) > 0:\n Se requiere\n {if len(required) = 1:\n {required[0].desired - required[0].amount} {required[0].material}\n |elif len(required) = 2:\n {required[0].desired - required[0].amount} {required[0].material} and {required[1].desired - required[1].amount} {required[1].material}\n |else:\n {set cur to 0}\n {while cur < len(required):\n {if cur = 0:\n {required[cur].desired - required[cur].amount} {required[cur].material}\n |elif cur < len(required) - 1:\n , {required[cur].desired - required[cur].amount} {required[cur].material}\n |else:\n , y {required[cur].desired - required[cur].amount} {required[cur].material}\n }\n {set cur to cur + 1}\n }\n }.\n|else:\n Ya tenemos todos los materiales deseados\n}", "defaultValue": "{set required to []}\n\n{for material in materials:\n {if material.desired && material.amount < material.desired:\n {set required to cat(required, [material])}\n }\n}\n\n{if len(required) > 0:\n Se requiere\n {if len(required) = 1:\n {required[0].desired - required[0].amount} {required[0].material}\n |elif len(required) = 2:\n {required[0].desired - required[0].amount} {required[0].material} and {required[1].desired - required[1].amount} {required[1].material}\n |else:\n {set cur to 0}\n {while cur < len(required):\n {if cur = 0:\n {required[cur].desired - required[cur].amount} {required[cur].material}\n |elif cur < len(required) - 1:\n , {required[cur].desired - required[cur].amount} {required[cur].material}\n |else:\n , y {required[cur].desired - required[cur].amount} {required[cur].material}\n }\n {set cur to cur + 1}\n }\n }.\n|else:\n Ya tenemos todos los materiales deseados\n}", "default": true }, "Message received": { "name": "Message received", "description": "Se activa cuando recibes un mensaje", "enabled": false, "priority": 5, "responder": true, "script": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'message')}\r\n{SetState('eddi_context_last_action', 'receive')}\r\n{SetState('eddi_context_message_name', event.from)}\r\n{SetState('eddi_context_message_content', event.message)}\r\n\r\n{_ \"true\" means spoken and \"false\" means muted.}\r\n{_ \"npc\" controls whether NPC comms will be spoken.}\r\n{_ \"player\" controls direct messages to you will be spoken.}\r\n{_ \"starsystem\" controls whether player comms across game modes will be spoken.}\r\n{set spokenChannels to [\r\n \"friend\": true,\r\n \"local\": true,\r\n \"multicrew\": true,\r\n \"npc\": true,\r\n \"player\": true,\r\n \"squadron\": true,\r\n \"starsystem\": false\r\n \"voicechat\": false,\r\n \"wing\": true,\r\n]}\r\n\r\n{_ \"true\" means spoken and \"false\" means muted.}\r\n{_ \"NPC\" is the default source for NPC comms.}\r\n{set spokenNpcSources to [\r\n \"Ambushed pilot\" : true,\r\n \"Bounty hunter\" : true,\r\n \"Capital ship\" : true,\r\n \"Cargo hunter\" : true,\r\n \"Civilian pilot\" : true,\r\n \"Cruise liner\" : false,\r\n \"Escort\" : true,\r\n \"Exploration convoy\" : true,\r\n \"Hitman\" : true,\r\n \"Messenger\" : true,\r\n \"Military\" : true,\r\n \"Miner\" : true,\r\n \"NPC\" : true,\r\n \"Passenger hunter\" : true,\r\n \"Passenger liner\" : false,\r\n \"Pirate\" : true,\r\n \"Police\" : true,\r\n \"Propagandist\" : true,\r\n \"Protester\" : true,\r\n \"Refugee\" : true,\r\n \"Rival power's agent\" : true,\r\n \"Search and rescue\" : true,\r\n \"Starship One\" : true,\r\n \"Station\" : false,\r\n \"Wedding convoy\" : false,\r\n]}\r\n\r\n{if spokenChannels[event.channel] = true:\r\n {if event.player = true:\r\n {if event.message = \"o7\":\r\n {event.from} saludos {if event.channel = \"player\": comandante }.\r\n |else:\r\n {event.source} {event.from} ha enviado: {event.message}\r\n }\r\n |elif spokenNpcSources[event.source] = true:\r\n De {event.source} {event.from}: {event.message}\r\n }\r\n}", "defaultValue": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'message')}\r\n{SetState('eddi_context_last_action', 'receive')}\r\n{SetState('eddi_context_message_name', event.from)}\r\n{SetState('eddi_context_message_content', event.message)}\r\n\r\n{_ \"true\" means spoken and \"false\" means muted.}\r\n{_ \"npc\" controls whether NPC comms will be spoken.}\r\n{_ \"player\" controls direct messages to you will be spoken.}\r\n{_ \"starsystem\" controls whether player comms across game modes will be spoken.}\r\n{set spokenChannels to [\r\n \"friend\": true,\r\n \"local\": true,\r\n \"multicrew\": true,\r\n \"npc\": true,\r\n \"player\": true,\r\n \"squadron\": true,\r\n \"starsystem\": false\r\n \"voicechat\": false,\r\n \"wing\": true,\r\n]}\r\n\r\n{_ \"true\" means spoken and \"false\" means muted.}\r\n{_ \"NPC\" is the default source for NPC comms.}\r\n{set spokenNpcSources to [\r\n \"Ambushed pilot\" : true,\r\n \"Bounty hunter\" : true,\r\n \"Capital ship\" : true,\r\n \"Cargo hunter\" : true,\r\n \"Civilian pilot\" : true,\r\n \"Cruise liner\" : false,\r\n \"Escort\" : true,\r\n \"Exploration convoy\" : true,\r\n \"Hitman\" : true,\r\n \"Messenger\" : true,\r\n \"Military\" : true,\r\n \"Miner\" : true,\r\n \"NPC\" : true,\r\n \"Passenger hunter\" : true,\r\n \"Passenger liner\" : false,\r\n \"Pirate\" : true,\r\n \"Police\" : true,\r\n \"Propagandist\" : true,\r\n \"Protester\" : true,\r\n \"Refugee\" : true,\r\n \"Rival power's agent\" : true,\r\n \"Search and rescue\" : true,\r\n \"Starship One\" : true,\r\n \"Station\" : false,\r\n \"Wedding convoy\" : false,\r\n]}\r\n\r\n{if spokenChannels[event.channel] = true:\r\n {if event.player = true:\r\n {if event.message = \"o7\":\r\n {event.from} saludos {if event.channel = \"player\": comandante }.\r\n |else:\r\n {event.source} {event.from} ha enviado: {event.message}\r\n }\r\n |elif spokenNpcSources[event.source] = true:\r\n De {event.source} {event.from}: {event.message}\r\n }\r\n}", "default": true }, "Message sent": { "name": "Message sent", "description": "Se activa cuando envías un mensaje", "enabled": false, "priority": 5, "responder": true, "script": "{_ Context }\n{SetState('eddi_context_last_subject', 'message')}\n{SetState('eddi_context_last_action', 'send')}\n{SetState('eddi_context_message_name', event.to)}\n{SetState('eddi_context_message_content', event.message)}\n\n{OneOf(\"Lanzando mensaje\", \"Mensaje enviado\", \"Enviado\")}.", "defaultValue": "{_ Context }\n{SetState('eddi_context_last_subject', 'message')}\n{SetState('eddi_context_last_action', 'send')}\n{SetState('eddi_context_message_name', event.to)}\n{SetState('eddi_context_message_content', event.message)}\n\n{OneOf(\"Lanzando mensaje\", \"Mensaje enviado\", \"Enviado\")}.", "default": true }, "Micro resources purchased": { "name": "Micro resources purchased", "description": "Triggered when you buy micro resources", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Mission abandoned": { "name": "Mission abandoned", "description": "Se activa cuando abandonas una misión (TEST)", "enabled": true, "priority": 3, "responder": true, "script": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'mission')}\r\n{SetState('eddi_context_last_action', 'abandon')}\r\n\r\n{set mission to MissionDetails(event.missionid)}\r\n\r\n{if event.communal:\r\n Ha abandonado un objetivo de comunidad: {mission.localisedname}\r\n|else:\r\n {if find(mission.typeEDName, \"de pasajeros\") > -1:\r\n {set type to \"de transporte\"}\r\n {set type to cat(type, mission.passengertype)}\r\n |else:\r\n {set type to mission.type}\r\n }\r\n {set type to cat(\"misión \", type)}\r\n\r\n{if type = \"Hackeo\": {set type to \"jaqueo\"}}\r\n\r\n {type} {if mission.faction: de {mission.faction}} abandonada.\r\n}\r\n\r\n", "defaultValue": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'mission')}\r\n{SetState('eddi_context_last_action', 'abandon')}\r\n\r\n{set mission to MissionDetails(event.missionid)}\r\n\r\n{if event.communal:\r\n Ha abandonado un objetivo de comunidad: {mission.localisedname}\r\n|else:\r\n {if find(mission.typeEDName, \"de pasajeros\") > -1:\r\n {set type to \"de transporte\"}\r\n {set type to cat(type, mission.passengertype)}\r\n |else:\r\n {set type to mission.type}\r\n }\r\n {set type to cat(\"misión \", type)}\r\n\r\n{if type = \"Hackeo\": {set type to \"jaqueo\"}}\r\n\r\n {type} {if mission.faction: de {mission.faction}} abandonada.\r\n}\r\n\r\n", "default": true }, "Mission accepted": { "name": "Mission accepted", "description": "Se activa cuando aceptas una misión (TEST)", "enabled": true, "priority": 3, "responder": true, "script": "{SetState('eddi_context_last_subject', 'mission')}\r\n{SetState('eddi_context_last_action', 'accepted')}\r\n\r\n{set mission to MissionDetails(event.missionid)}\r\n\r\n{if mission.type = \"Donation\":\r\n {OneOf(\"Has escogido\",\"misión aceptada para\")} {Occasionally(2,\"generosamente\")} donar\r\n {if mission.typeEDName = \"Altruism\": {mission.commodity} |else: créditos} para \r\n {OneOf('mejorar','levantar','incrementar')} su {OneOf('reputación','estatus')} con {P(mission.faction)}\r\n|elif event.communal:\r\n Ha aceptado el objetivo de comunidad: {mission.localisedname}\r\n|else:\r\n {if find(mission.typeEDName, \"Passenger\") > -1:\r\n {set type to \"transporte de \"}\r\n {set type to cat(type, mission.passengertype)}\r\n |else:\r\n {set type to mission.type}\r\n }\r\n {if type = \"Hackeo\": {set type to \"jaqueo\"}}\r\n \r\n\r\n {OneOf(\"Misión {if type:de }{type} {if mission.faction: para {mission.faction}} aceptada\",\r\n \"Misión {if type:de }{type} aceptada {if mission.faction: para {mission.faction}}\",\r\n \"Ha aceptado la misión {if type:de }{type} {if mission.faction: para {mission.faction}}\")\r\n }\r\n}\r\n\r\n{F(\"Mission faction state\")}\r\n\r\n{if mission.passengerswanted:\r\n ¡Atención! ¡Estamos {OneOf(\"transportando\",\"llevando\")}\r\n {OneOf(\"pasajeros\",\"traidores\",\"embusteros\",\"canallas\")} {OneOf(\"buscados\",\"ilegales\")}!\r\n Podríamos ser atacados por la {OneOf(\"autoridad\",'policía')} {Occasionally(2,\"del sistema\")}.\r\n {OneOf('Mucha precaución comandante','Se aconseja precaución')}. Evite ser escaneado.\r\n\r\n|elif token(mission.name,\"_\",2) = \"Skimmer\":\r\n Esta es una {OneOf('misión','operación')} de superficie\r\n\r\n|elif token(mission.name,\"_\",2) = \"Surface\":\r\n Esta es una {OneOf('misión','operación')} de superficie, requerirá de un V R S.\r\n}.\r\n\r\n{if !event.communal:\r\n {if missionsCount = 20:\r\n Ha alcanzado el número máximo de misiones que puedes tomar.\r\n Por favor, complete algunas antes de aceptar más.\r\n |else:\r\n {OneOf(\"{Occasionally(2,'Ahora mismo')} tienes {missionsCount} misión{if missionsCount > 1:es}\",\r\n \"{if missionsCount = 1:Ahora} esta es tu {missionsCount}a misión\")}.\r\n }\r\n}\r\n\r\n", "defaultValue": "{SetState('eddi_context_last_subject', 'mission')}\r\n{SetState('eddi_context_last_action', 'accepted')}\r\n\r\n{set mission to MissionDetails(event.missionid)}\r\n\r\n{if mission.type = \"Donation\":\r\n {OneOf(\"Has escogido\",\"misión aceptada para\")} {Occasionally(2,\"generosamente\")} donar\r\n {if mission.typeEDName = \"Altruism\": {mission.commodity} |else: créditos} para \r\n {OneOf('mejorar','levantar','incrementar')} su {OneOf('reputación','estatus')} con {P(mission.faction)}\r\n|elif event.communal:\r\n Ha aceptado el objetivo de comunidad: {mission.localisedname}\r\n|else:\r\n {if find(mission.typeEDName, \"Passenger\") > -1:\r\n {set type to \"transporte de \"}\r\n {set type to cat(type, mission.passengertype)}\r\n |else:\r\n {set type to mission.type}\r\n }\r\n {if type = \"Hackeo\": {set type to \"jaqueo\"}}\r\n {set type to cat(\"misión de \",type)}\r\n\r\n {OneOf(\"{type} {if mission.faction: para {mission.faction}} aceptada\",\r\n \"{type} aceptada {if mission.faction: para {mission.faction}}\",\r\n \"Ha aceptado la {type} {if mission.faction: para {mission.faction}}\")\r\n }\r\n}\r\n\r\n{F(\"Mission faction state\")}\r\n\r\n{if mission.passengerswanted:\r\n ¡Atención! ¡Estamos {OneOf(\"transportando\",\"llevando\")}\r\n {OneOf(\"pasajeros\",\"traidores\",\"embusteros\",\"canallas\")} {OneOf(\"buscados\",\"ilegales\")}!\r\n Podríamos ser atacados por la {OneOf(\"autoridad\",'policía')} {Occasionally(2,\"del sistema\")}.\r\n {OneOf('Mucha precaución comandante','Se aconseja precaución')}. Evite ser escaneado.\r\n\r\n|elif token(mission.name,\"_\",2) = \"Skimmer\":\r\n Esta es una {OneOf('misión','operación')} de superficie\r\n\r\n|elif token(mission.name,\"_\",2) = \"Surface\":\r\n Esta es una {OneOf('misión','operación')} de superficie, requerirá de un V R S.\r\n}.\r\n\r\n{if !event.communal:\r\n {if missionsCount = 20:\r\n Ha alcanzado el número máximo de misiones que puedes tomar.\r\n Por favor, complete algunas antes de aceptar más.\r\n |else:\r\n {OneOf(\"{Occasionally(2,'Ahora mismo')} tienes {missionsCount} misión{if missionsCount > 1:es}\",\r\n \"{if missionsCount = 1:Ahora} esta es tu {missionsCount}a misión\")}.\r\n }\r\n}\r\n\r\n", "default": false }, "Mission Check Expiring": { "name": "Mission Check Expiring", "description": "Check what missions are close to expiring (TEST)", "enabled": true, "priority": null, "responder": false, "script": null, "defaultValue": "{_Shirka}\r\n\r\n{_ Mission Check Expiring }\r\n{_ Check what missions are close to expiring }\r\n\r\n\r\n{if missionsCount > 0 && missionsCount != null:\r\n\r\n {set mission_destination to []}\r\n {set mission_expiration to []}\r\n {set mission_name to []}\r\n {set mission_id to []}\r\n {set cur to 0}\r\n\r\n {while cur < missionsCount:\r\n {set destination to missions[cur].destinationsystem}\r\n {if !destination: {set destination to missions[cur].destinationsystems} }\r\n {set expiry to missions[cur].expiryseconds}\r\n {set status to missions[cur].status}\r\n {set name to missions[cur].name}\r\n {set missionid to missions[cur].missionid}\r\n\r\n {if expiry != \"\" && (status != \"failed\" || status != \"completed\"):\r\n\r\n {set seconds to floor(abs(SecondsSince(expiry)))}\r\n\r\n {if seconds / 60 < missionWarning:\r\n\r\n {set mission_destination to cat(mission_destination, [destination])}\r\n {set mission_expiration to cat(mission_expiration, [seconds])}\r\n {set mission_name to cat(mission_name, [name])}\r\n {set mission_id to cat(mission_id, [missionid])}\r\n }\r\n }\r\n {set cur to cur + 1}\r\n }\r\n\r\n {if len(mission_destination) > 0:\r\n ¡Atención!\r\n {set cur to 0}\r\n {while cur < len(mission_destination):\r\n\r\n {set mission to MissionDetails(mission_id[cur])}\r\n {if find(mission.typeEDName, \"Passenger\") > -1:\r\n {set type to \"transporte de \"}\r\n {set type to cat(type, mission.passengertype)}\r\n |else:\r\n {set type to mission.type}\r\n }\r\n\r\n{if type = \"Hackeo\": {set type to \"jaqueo\"}}\r\n\r\n la misión de {type}\r\n\r\n {if find(mission_destination[cur], \"_\") > -1:\r\n para múltiples destinos,\r\n |else:\r\n {if mission_destination[cur] != state.eddi_context_system_name:\r\n en el sistema {mission_destination[cur]}\r\n |else:\r\n en {OneOf(\"este\", \"el actual\")} sistema\r\n }\r\n ,\r\n }\r\n expira en \r\n\r\n {set timer to split(format(mission_expiration[cur], \"dl:dd:HH:mm:ss\"), \":\")}\r\n {set days to cast(timer[0], \"n\") - 1}\r\n {set hours to cast(timer[1], \"n\")}\r\n {set minutes to cast(timer[2], \"n\") - 1}\r\n\r\n {if days > 0: {days} day{if days > 1:s}{if hours = 0: and |else:,}}\r\n {if hours > 0: {hours} hora{if hours > 1:s} y}\r\n {minutes} minuto{if minutes > 1:s}.\r\n\r\n {set cur to cur + 1}\r\n }\r\n }\r\n}\r\n", "default": false }, "Mission check galaxy": { "name": "Mission check galaxy", "description": "Revisa que misiones tenemos actualmente y donde", "enabled": true, "priority": null, "responder": false, "script": "{_ Mission check galaxy }\r\n{_ Check what systems you have missions in }\r\n\r\n{set mission_report to true }\r\n\r\n{_ Setup allmissions function _}\r\n{set allmissions(system) to:\r\n {set here to find(systems, system)}\r\n {if here > -1:\r\n {if mission.statusEDName = \"Activa\" || mission.statusEDName = \"Active\": \r\n {set active to systems_active[here] + 1}\r\n {set systems_active to union(systems_active, [here:active])}\r\n |elif mission.statusEDName = \"Reclamada\" || mission.statusEDName = \"Claim\":\r\n {set claim to systems_claim[here] + 1}\r\n {set systems_claim to union(systems_claim, [here:claim])}\r\n {set active to systems_active[here] + 1}\r\n {set systems_active to union(systems_active, [here:active])}\r\n |elif mission.statusEDName = \"Completada\" || mission.statusEDName = \"Complete\":\r\n {set complete to systems_complete[here] + 1}\r\n {set systems_complete to union(systems_complete, [here:complete])}\r\n {set active to systems_active[here] + 1}\r\n {set systems_active to union(systems_active, [here:active])}\r\n }\r\n |else:\r\n {set systems to cat(systems, [system])}\r\n {if mission.statusEDName = \"Activa\" || mission.statusEDName = \"Active\":\r\n {set systems_active to cat(systems_active, [1])}\r\n {set systems_claim to cat(systems_claim, [0])}\r\n {set systems_complete to cat(systems_complete, [0])}\r\n |elif mission.statusEDName = \"Reclamada\" || mission.statusEDName = \"Claim\":\r\n {set systems_active to cat(systems_active, [1])}\r\n {set systems_claim to cat(systems_claim, [1])}\r\n {set systems_complete to cat(systems_complete, [0])}\r\n |elif mission.statusEDName = \"Completada\" || mission.statusEDName = \"Complete\":\r\n {set systems_active to cat(systems_active, [1])}\r\n {set systems_claim to cat(systems_claim, [0])}\r\n {set systems_complete to cat(systems_complete, [1])}\r\n }\r\n }\r\n}\r\n\r\n{if missionsCount > 0:\r\n {set failed to 0}\r\n {set multi to 0}\r\n {set pending to 0}\r\n {set systems to []}\r\n {set systems_active to []}\r\n {set systems_claim to []}\r\n {set systems_complete to []}\r\n\r\n {for mission in missions:\r\n {if mission.statusEDName = \"Fallada\" || mission.statusEDName = \"Failed\":\r\n {set failed to failed + 1}\r\n |else:\r\n {set pending to pending + 1}\r\n {if mission.destinationsystems:\r\n {set multi to multi + 1}\r\n {for destination in mission.destinationsystems:\r\n {allmissions(destination.name)}\r\n }\r\n |elif mission.destinationsystem && mission.destinationsystem != \"\":\r\n {allmissions(mission.destinationsystem)}\r\n }\r\n }\r\n }\r\n {set systemsCount to len(systems)}\r\n\r\n Tienes \r\n {if failed > 0:\r\n {failed} {if failed = 1: misión fallida|else:misiones fallidas}\r\n {if pending > 0:\r\n y\r\n }\r\n }\r\n\r\n {if pending > 0:\r\n {if mission_report && systemsCount > 0:\r\n {set cur to 0}\r\n {while cur < systemsCount:\r\n {set active to systems_active[cur]}\r\n {set claim to systems_claim[cur]}\r\n {set complete to systems_complete[cur]}\r\n {set subtotal to complete + claim}\r\n\r\n \r\n {if active > 0 && active > subtotal:\r\n {if cur=systemsCount-1: otra{if active >1:s}}\r\n {if active=1:{if cur!=systemsCount-1:una}|else:{active}}\r\n {if cur=0||cur=systemsCount-1:\r\n \t\t\t{if active = 1: misión |else: misiones }\r\n \t\t }\r\n \t\t {if cur=systemsCount-1||cur=1: más}\r\n }\r\n {if active = subtotal: {subtotal} {if active = 1: misión |else: misiones }}\r\n {if active=1:{Occasionally(3,\"ubicada\")}|else:{Occasionally(3,\"ubicadas\")}}\r\n en {P(systems[cur])}\r\n {if claim > 0 || complete > 0: {if active = 1: la cuál|else: de las cuales}\r\n {if claim = subtotal || complete = subtotal: }\r\n \r\n }\r\n \r\n {if complete > 0:\r\n \t{if complete = 1: está |else: {complete} están }\r\n \tpor completar\r\n {if claim > 0: y }\r\n }\r\n {if claim > 0:\r\n \t{if claim = 1: está |else: {claim} están }\r\n por reclamar \r\n }\r\n {if subtotal > 0:\r\n {if subtotal = 1: |else: }\r\n }\r\n\r\n {set cur to cur + 1}\r\n {if cur = systemsCount - 1:, y |elif cur < systemsCount: , } {if cur >1: también } \r\n\r\n }.\r\n |else:\r\n {pending} {if pending = 1:misión pendiente|else: misiones pendientes} \r\n {if systemsCount = 0:\r\n sin un sistema objetivo designado\r\n |else:\r\n en {systemsCount} {if systemsCount = 1:sistema {Occasionally(2,\"estelar\")}\r\n \t\t\t\t |else:sistemas {Occasionally(2,\"estelares\")}\r\n \t\t\t\t }\r\n }.\r\n {if multi = 1:\r\n {if multi = pending:Esta misión|else:Una de estas misiones} tiene varios destinos\r\n |elif multi > 1:\r\n \t{if multi = pending:Todas |else:{multi} de }estas misiones tienen varios destinos\r\n } \r\n }\r\n }\r\n|else:\r\n {OneOf(\"Actualmente no tenemos ninguna misión.\", \"En estos momentos no hay misiones disponibles.\", \"Tenemos la agenda de misiones vacía\")}\r\n}", "defaultValue": "{_ Mission report }\r\n{_ Check what systems you have missions in }\r\n\r\n\r\n{_ Setup allmissions function }\r\n{set allmissions(system) to:\r\n{set here to find(systems, system)}\r\n {if here > -1:\r\n {set number to systems_count[here] + 1}\r\n {set systems_count to union(systems_count, [here:number])}\r\n |else:\r\n {set systems to cat(systems, [system])}\r\n {set systems_count to cat(systems_count, [1])}\r\n }\r\n}\r\n\r\n{if missionsCount > 0:\r\n\r\n {set multi to 0}\r\n\r\n {OneOf(\"Actualmente\",\"Ahora mismo\")} tenemos {missionsCount} misión{if missionsCount != 1:es} por completar \r\n\r\n {if missionsCount = 1:\r\n El objetivo está {Occasionally(2,\"localizado\")} en\r\n {if missions[0].destinationsystem && missions[0].destinationsystem != \"\":\r\n el sistema {Occasionally(2,\"estelar\")} {P(missions[0].destinationsystem)}\r\n |else:\r\n paradero desconocido\r\n }.\r\n \r\n |else:\r\n {set systems to []}\r\n {set systems_count to []}\r\n\r\n {for mission in missions:\r\n {if mission.status = \"Active\":\r\n {if mission.destinationsystems:\r\n {set multi to multi + 1}\r\n {for destination in mission.destinationsystems:\r\n {allmissions(destination.name)}\r\n }\r\n |elif mission.destinationsystem && mission.destinationsystem != \"\":\r\n {allmissions(mission.destinationsystem)}\r\n }\r\n }\r\n }\r\n\r\n {if len(systems) = 0:\r\n , sin ningún sistema asignado.\r\n |elif len(systems) = 1:\r\n . Todas están {Occasionally(2,\"localizadas\")} en\r\n {if systems && systems[0] != \"\":\r\n el sistema {Occasionally(2,\"estelar\")} {P(systems[0])}\r\n |else:\r\n desasignados\r\n }\r\n .\r\n\r\n |else:\r\n {if multi > 0:\r\n\r\n {if multi = missionsCount: Todas |else: {multi} de}\r\n estas\r\n {if multi = 1: es una |else: son}\r\n misión{if multi != 1:es} con varios destinos \r\n }\r\n Está{if systems_count[0] = 1: |else:n }\r\n\r\n {set cur to 0}\r\n {while cur < len(systems):\r\n {systems_count[cur]} \r\n {if cur = 0: destinación{if systems_count[0] > 1:es}}\r\n {if systems[cur] = \"\":\r\n en un sistema no designado\r\n |else:\r\n {OneOf(\"en\",\"ubicada en\")} el sistema {P(systems[cur])}\r\n }\r\n\r\n {set cur to cur + 1}\r\n {if cur = len(systems)-1: y |elif cur < len(systems):, }\r\n }\r\n }.\r\n }\r\n|else:\r\n {OneOf(\"Actualmente no tenemos ninguna misión.\", \"En estos momentos no hay misiones disponibles.\", \"Tenemos la agenda de misiones vacía\")}\r\n}", "default": false }, "Mission Check Near Most": { "name": "Mission Check Near Most", "description": "Find nearest system with missions, and system with most missions (TEST)", "enabled": true, "priority": null, "responder": false, "script": null, "defaultValue": "{_Shirka}\r\n\r\n{_ Mission Check Near Most}\r\n{_ Find nearest system with missions, and system with most missions}\r\n\r\n\r\n{if missionsCount > 0:\r\n\r\n {_ Setup nearest calculation function}\r\n {set nearcalc(name) to:\r\n\r\n {set distance to round(Distance(curr, name), 1)}\r\n\r\n {if distance < nearest_distance:\r\n {set nearest_distance to distance}\r\n {set nearest_name to name}\r\n }\r\n {set mission_systems to cat(mission_systems, [name])}\r\n }\r\n\r\n {set curr to state.eddi_context_system_system}\r\n {set nearest_name to \"\"}\r\n {set mission_systems to []}\r\n {set systems_names to []}\r\n {set systems_count to []}\r\n\r\n {_ Max scan range. 500 is large, 100 above average, 20-50 normal, 5-10 small}\r\n {_ Missions closer than this will be reported}\r\n {set nearest_distance to 50}\r\n\r\n {for mission in missions:\r\n {if mission.status = \"Active\":\r\n {if mission.destinationsystems:\r\n {set multi to multi + 1}\r\n {for destination in mission.destinationsystems:\r\n {nearcalc(destination.name)}\r\n }\r\n |elif mission.destinationsystem && mission.destinationsystem != \"\":\r\n {nearcalc(mission.destinationsystem)}\r\n }\r\n\r\n {set here to find(systems_names, mission.destinationsystem)}\r\n {if here > -1:\r\n {set number to systems_count[here] + 1}\r\n {set systems_count to union(systems_count, [here:number])}\r\n |else:\r\n {set systems_names to cat(systems_names, [mission.destinationsystem])}\r\n {set systems_count to cat(systems_count, [1])}\r\n }\r\n }\r\n }\r\n\r\n\r\n {_ Calculate system with most missions in _}\r\n {set system_most to \"\"}\r\n {set system_count to 0}\r\n\r\n {set cur to 0}\r\n {while cur < len(systems_names):\r\n {if systems_count[cur] > system_count:\r\n {set system_most to systems_names[cur]}\r\n {set system_count to systems_count[cur]}\r\n }\r\n {set cur to cur + 1}\r\n }\r\n\r\n {set equal to 0}\r\n {set cur to 0}\r\n {while cur < len(systems_count):\r\n {if systems_count[cur] = system_count:\r\n {set equal to equal + 1}\r\n }\r\n {set cur to cur + 1}\r\n }\r\n\r\n {_ Report nearest system}\r\n {if nearest_name != \"\":\r\n {if missionsCount = 1:\r\n {if multi = 1:\r\n You have one multi-destination mission. The nearest \r\n |else:\r\n Your only mission\r\n }\r\n |else:\r\n Your nearest mission\r\n }\r\n {Occasionally(2, \"destination\")} is in the\r\n {if nearest_name = curr:\r\n current system\r\n |else:\r\n {nearest_name} system\r\n {if reported != \"yes\":,\r\n {if find(nearest_distance, \".00\") > -1: {set nearest_distance to round(nearest_distance, 0)}}\r\n {nearest_distance} lightyears away\r\n }\r\n }.\r\n\r\n\r\n {_ Report system/s with most missions}\r\n {if equal = 1:\r\n {if system_most = nearest_name:\r\n {if missionsCount > 1:\r\n It also has\r\n {OneOf(\"{OneOf('the most','most of your')} missions in\",\r\n \"the most missions for you to complete\")}.\r\n }\r\n |else:\r\n {if system_most = curr:\r\n {set system_most to \"The current system\"}\r\n |else:\r\n {set system_most to cat(\"The\", system_most, \"system\")}\r\n }\r\n {OneOf(\"Most of your missions are {Occasionally(2,'located')} in {system_most}\",\r\n \"{system_most} has {OneOf('the most','most of your')} missions in\",\r\n \"{system_most} has the most missions for you to complete\")}.\r\n }\r\n |else:\r\n You have {system_count} mission{if system_count > 1:s} in each of\r\n {set cur to 0}\r\n {set length to equal - 1}\r\n {while cur < equal:\r\n the {systems_names[cur]}\r\n {set cur to cur + 1}\r\n {if cur = length:, and\r\n |elif cur < length:,\r\n }\r\n } systems.\r\n }\r\n }\r\n\r\n {if !system_most && !nearest_name && missionsCount > 0:\r\n You have no active missions at the moment.\r\n }\r\n|elif state.eddi_context_last_subject != \"jump\":\r\n You {Occasionally(2,\"currently\")} have no missions at {OneOf(\"the moment\",\"this time\")}.\r\n}\r\n", "default": false }, "Mission check station": { "name": "Mission check station", "description": "Check what missions you have for the current station", "enabled": true, "priority": null, "responder": false, "script": "{_ Mission check station }\r\n{_ Check what missions you have for the current station }\r\n\r\n\r\n{if missionsCount > 0:\r\n {set current_station to state.eddi_context_body_name}\r\n {set active to 0}\r\n {set claim to 0}\r\n {set complete to 0}\r\n {set depot to 0}\r\n\r\n {if current_station && current_station != \"\":\r\n {for mission in missions:\r\n {if mission.destinationstation = current_station ||\r\n (mission.originstation = current_station && find(mission.type, \"Delivery\") > -1):\r\n {if mission.status = \"Active\" || mission.status = \"Activa\":\r\n {set active to active + 1}\r\n {if find(mission.type, \"Collect\") > -1 || find(mission.type, \"Delivery\") > -1:\r\n {set depot to depot + 1}\r\n }\r\n |elif mission.status = \"Reclamar\" || mission.status = \"Claim\":\r\n {set claim to claim + 1}\r\n {set active to active + 1}\r\n |elif mission.status = \"Completada\" || mission.status = \"Complete\":\r\n {set complete to complete + 1}\r\n {set active to active + 1}\r\n }\r\n }\r\n }\r\n }\r\n\r\n {if active > 0:\r\n {set subtotal to claim + complete + depot}\r\n \r\n En esta estación tenemos {subtotal} misión{if subtotal >1:es}\r\n \r\n {if claim + complete = subtotal:{if subtotal=1:la cuál|else:las cuales}}\r\n {if active > 0 && active != subtotal:\r\n {active} {if active = 1: activa |else: activas}\r\n {if claim > 0 || complete > 0:, {if claim + complete = 1:la cuál|else:las cuales}}\r\n }\r\n {if claim > 0:\r\n {if complete = 0 && depot = 0:\"\"|else:{claim}}\r\n {if claim = 1: está pendiente|else:están pendientes} de reclamar\r\n {if complete > 0 && depot > 0: ,\r\n |elif complete > 0 || depot > 0: y }\r\n }\r\n {if complete > 0:\r\n {if claim = 0 && depot = 0:\"\"|else:{complete}} \r\n {if complete = 1:está completada|else:están completadas}\r\n {if depot > 0: y }\r\n }\r\n {if depot > 0:\r\n {if complete = 0 && claim = 0:\"\"|else:{depot}}\r\n \t{if depot = 1:está almacenada|else:están almacenadas}\r\n }\r\n \r\n }\r\n}", "defaultValue": "{_ Mission check station }\r\n{_ Check what missions you have for the current station }\r\n\r\n\r\n{if missionsCount > 0:\r\n {set current_station to state.eddi_context_body_name}\r\n {set active_missions to 0}\r\n {set complete_missions to 0}\r\n {set depot_missions to 0}\r\n\r\n {if current_station && current_station != \"\":\r\n {for mission in missions:\r\n {if mission.destinationstation = current_station ||\r\n (mission.originstation = current_station && find(mission.type, \"Delivery\") > -1):\r\n {if mission.status = \"Active\":\r\n {if find(mission.type, \"Collect\") > -1 || find(mission.type, \"Delivery\") > -1:\r\n {set depot_missions to depot_missions + 1}\r\n |else:\r\n {set active_missions to active_missions + 1}\r\n }\r\n |elif mission.status = \"Complete\":\r\n {set complete_missions to complete_missions + 1}\r\n }\r\n }\r\n }\r\n }\r\n\r\n {set total to active_missions + complete_missions + depot_missions}\r\n {if total > 0:\r\n Tenemos\r\n {if depot_missions > 0:\r\n {depot_missions} depot\r\n {if active_missions > 0 && complete_missions > 0: ,\r\n |elif active_missions > 0 || complete_missions > 0: y}\r\n }\r\n {if active_missions > 0:\r\n {active_missions} activa\r\n {if complete_missions > 0: y}\r\n }\r\n {if complete_missions > 0:\r\n {complete_missions} completada\r\n }\r\n misión{if total > 1:es} {Occasionally(3,\"localizadas\")} en esta estación.\r\n }\r\n}", "default": false }, "Mission check system": { "name": "Mission check system", "description": "Check what missions you have for the current system", "enabled": true, "priority": null, "responder": false, "script": "{_ Mission check system }\r\n{_ Check what missions you have for the current system }\r\n\r\n{_ Setup addstation function }\r\n{set addstation(station) to:\r\n {set missions_here to missions_here + 1}\r\n {set station_based to station_based + 1}\r\n {set here to find(stations_here, station)}\r\n {if here > -1:\r\n {if mission.statusEDName = \"Active\":\r\n {set active to stations_active[here] + 1}\r\n {set stations_active to union(stations_active, [here:active])}\r\n\r\n |elif mission.statusEDName = \"Claim\":\r\n {set claim to stations_claim[here] + 1}\r\n {set stations_claim to union(stations_claim, [here:claim])}\r\n }\r\n |else:\r\n {set stations_here to cat(stations_here, [station])}\r\n {if mission.statusEDName = \"Active\":\r\n {set stations_active to cat(stations_active, [1])}\r\n {set stations_claim to cat(stations_claim , [0])}\r\n |elif mission.statusEDName = \"Claim\":\r\n {set stations_active to cat(stations_active, [0])}\r\n {set stations_claim to cat(stations_claim , [1])}\r\n }\r\n }\r\n}\r\n\r\n{if missionsCount + goalsCount > 0:\r\n {set missions_here to 0}\r\n {set station_based to 0}\r\n {set stations_active to []}\r\n {set stations_claim to []}\r\n {set stations_here to []}\r\n {set non_stations to []}\r\n\r\n {_ Find all missions in the current system and identify all the stations }\r\n {for mission in missions:\r\n {if mission.status != \"Failed\":\r\n {if mission.destinationsystems:\r\n {for destination in mission.destinationsystems:\r\n {if destination.name = system.name && !destination.visited:\r\n {set missions_here to missions_here + 1}\r\n {if find(mission.typeEDName, \"Passenger\") > -1:\r\n {set type to \"Transport \"}\r\n {set type to cat(type, mission.passengertype)}\r\n |else:\r\n {set type to mission.type}\r\n }\r\n\r\n {if find(non_stations, type) = -1:\r\n {set non_stations to cat(non_stations, [type])}\r\n }\r\n }\r\n }\r\n |elif mission.destinationsystem = system.name:\r\n {if mission.destinationstation && mission.destinationstation != \"\":\r\n {addstation(mission.destinationstation)}\r\n |else:\r\n {if mission.status = \"Active\":\r\n {set missions_here to missions_here + 1}\r\n {if find(mission.typeEDName, \"Passenger\") > -1:\r\n {set type to \"Transport \"}\r\n {set type to cat(type, mission.passengertype)}\r\n |else:\r\n {set type to mission.type}\r\n }\r\n {if find(non_stations, type) = -1:\r\n {set non_stations to cat(non_stations, [type])}\r\n }\r\n }\r\n }\r\n |elif mission.originsystem = system.name && find(mission.type, \"Delivery\") > -1:\r\n {if mission.originstation && mission.originstation != \"\":\r\n {addstation(mission.originstation)}\r\n }\r\n }\r\n }\r\n }\r\n\r\n {if missions_here > 0:\r\n {set missionSummaries to []}\r\n {set cur to 0}\r\n {for station in stations_here:\r\n {set station to StationDetails(station)}\r\n {set active to stations_active[cur]}\r\n {set claim to stations_claim[cur]}\r\n {set depot to stations_depot[cur]}\r\n\r\n {set summaries to []}\r\n {if active > 0:\r\n {set activeSummary to: \r\n {active} {if active = 1: misión |else: misiones} {OneOf(\"activa\", \"pendiente\")}\r\n }\r\n {set summaries to cat(summaries, [activeSummary])}\r\n }\r\n {if claim > 0:\r\n {set claimSummary to: \r\n {claim} {if claim = 1: misión |else: misiones} por reclamar\r\n }\r\n {set summaries to cat(summaries, [claimSummary])}\r\n }\r\n {if len(summaries) > 0:\r\n {set stationSummary to:\r\n {List(summaries)}, en \r\n \r\n{_ ****** BUSCA GENERO station.model ****** _}\r\n\r\n{_ coge la primera palabra}\r\n{set itemobj to token(station.model, \" \",0)} \r\n\r\n{_ mira si es femenino}\r\n{if find(itemobj,\"Estación\")!=-1: {set la to \"la\"}\r\n|else: {set la to \"el\"}\r\n}\r\n{_ ************************************************** _} \r\n\r\n {Occasionally(2, \"{la} {P(station.model, 'estación')} \")}\r\n {station.name}\r\n }\r\n {set missionSummaries to cat(missionSummaries, [stationSummary])}\r\n }\r\n {set cur to cur + 1}\r\n }\r\n \r\n {set remaining to missions_here - station_based}\r\n {if remaining > 0:\r\n {set otherMissions to:\r\n {remaining} {if len(missionSummaries) > 0: otra}\r\n {if remaining > 1: misiones |else: misión}\r\n }\r\n {set missionSummaries to cat(missionSummaries, [otherMissions])}\r\n } \r\n\r\n {if len(missionSummaries) > 0:\r\n {Pause(500)}\r\n {OneOf(\"Aquí\", \"En este sistema\")} tienes\r\n {List(missionSummaries)}.\r\n }\r\n }\r\n}\r\n", "defaultValue": "{_ Mission check system }\r\n{_ Check what missions you have for the current system }\r\n\r\n\r\n{_ Setup addstation function }\r\n{set addstation(station) to:\r\n {set missions_here to missions_here + 1}\r\n {set station_based to station_based + 1}\r\n {set here to find(stations_here, station)}\r\n {if here > -1:\r\n {if mission.status = \"Active\":\r\n {if mission.type = \"Collect\" || mission.type= \"Delivery\":\r\n {set depot to stations_depot[here] + 1}\r\n {set stations_depot to union(stations_depot, [here:depot])}\r\n\r\n |else:\r\n {set active to stations_active[here] + 1}\r\n {set stations_active to union(stations_active, [here:active])}\r\n }\r\n |else:\r\n {set complete to stations_complete[here] + 1}\r\n {set stations_complete to union(stations_complete, [here:complete])}\r\n }\r\n |else:\r\n {set stations_here to cat(stations_here, [station])}\r\n {if mission.status = \"Active\":\r\n {if mission.type = \"Collect\" || mission.type= \"Delivery\":\r\n {set stations_active to cat(stations_active, [0])}\r\n {set stations_depot to cat(stations_depot, [1])}\r\n |else:\r\n {set stations_active to cat(stations_active, [1])}\r\n {set stations_depot to cat(stations_depot, [0])}\r\n }\r\n {set stations_complete to cat(stations_complete, [0])}\r\n |else:\r\n {set stations_active to cat(stations_active, [0])}\r\n {set stations_complete to cat(stations_complete, [1])}\r\n {set stations_depot to cat(stations_depot, [0])}\r\n }\r\n }\r\n}\r\n\r\n{if missionsCount > 0:\r\n {set current_system to system.name}\r\n {set missions_here to 0}\r\n {set station_based to 0}\r\n {set stations_active to []}\r\n {set stations_complete to []}\r\n {set stations_depot to []}\r\n {set stations_here to []}\r\n {set non_stations to []}\r\n\r\n {_ Find all missions in the current system and identify all the stations }\r\n {for mission in missions:\r\n {if mission.status != \"Failed\":\r\n {if mission.destinationsystems:\r\n {for destination in mission.destinationsystems:\r\n {if destination.name = current_system && !destination.visited:\r\n {set missions_here to missions_here + 1}\r\n {if find(mission.typeEDName, \"Passenger\") > -1:\r\n {set type to \"Transporte \"}\r\n {set type to cat(type, mission.passengertype)}\r\n |else:\r\n {set type to mission.type}\r\n }\r\n\r\n {if find(non_stations, type) = -1:\r\n {set non_stations to cat(non_stations, [type])}\r\n }\r\n }\r\n }\r\n |elif mission.destinationsystem = current_system:\r\n {if mission.destinationstation && mission.destinationstation != \"\":\r\n {addstation(mission.destinationstation)}\r\n |else:\r\n {if mission.status = \"Active\":\r\n {set missions_here to missions_here + 1}\r\n {if find(mission.typeEDName, \"Passenger\") > -1:\r\n {set type to \"Transporte \"}\r\n {set type to cat(type, mission.passengertype)}\r\n |else:\r\n {set type to mission.type}\r\n }\r\n {if find(non_stations, type) = -1:\r\n {set non_stations to cat(non_stations, [type])}\r\n }\r\n }\r\n }\r\n |elif mission.originsystem = current_system && find(mission.type, \"Delivery\") > -1:\r\n {if mission.originstation && mission.originstation != \"\":\r\n {addstation(mission.originstation)}\r\n }\r\n }\r\n }\r\n }\r\n\r\n {if missions_here > 0:\r\n Tenemos {if missions_here > 1: |else: } {missions_here}\r\n misión{if missions_here > 1:es} {OneOf('aquí','en este sistema')}{if missions_here > 1:.}\r\n\r\n {if station_based > 0:\r\n {Pause(500)}\r\n {if missions_here = 1:\r\n |elif len(stations_here) = 1:\r\n {if missions_here = station_based: Todas |else: Tienes}\r\n }\r\n\r\n {set cur to 0}\r\n {while cur < len(stations_here):\r\n {set station to StationDetails(stations_here[cur])}\r\n {set total to stations_active[cur] + stations_complete[cur] + stations_depot[cur]}\r\n\r\n {if stations_depot[cur] > 0:\r\n {stations_depot[cur]} depot\r\n {if stations_active[cur] > 0 && stations_complete[cur] > 0: ,\r\n |elif stations_active[cur] > 0 || stations_complete[cur] > 0: y}\r\n }\r\n {if stations_active[cur] > 0:\r\n {stations_active[cur]} activa{if stations_active[cur] > 1:s}\r\n {if stations_complete[cur] > 0: y}\r\n }\r\n {if stations_complete[cur] > 1:\r\n {stations_complete[cur]}\r\n }\r\n {if stations_complete[cur] = 1:}\r\n \r\n \r\n {if len(stations_here) = 1: {if total > 1: |else: }} en\r\n {station.model} {stations_here[cur]}\r\n {set cur to cur + 1}\r\n {if cur = len(stations_here)-1: y |elif cur < len(stations_here): ,}\r\n }.\r\n }\r\n\r\n {if missions_here > station_based:\r\n {Pause(500)}\r\n {set remaining to missions_here - station_based}\r\n La {if station_based > 0: última {remaining}}\r\n\r\n {set cur to 0}\r\n {while cur < len(non_stations):\r\n {non_stations[cur]}\r\n \r\n {set cur to cur + 1}\r\n {if cur = len(non_stations)-1: y |elif cur < len(non_stations): ,}\r\n }\r\n misión{if remaining > 1: es} deben {OneOf(\"buscarse\",\"encontrarse\",\"ser encontradas\")}.\r\n }\r\n }\r\n}", "default": false }, "Mission completed": { "name": "Mission completed", "description": "Se activa cuando completas una misión", "enabled": true, "priority": 3, "responder": true, "script": "{_ Mission completed }\r\n{_ Triggered when you complete a mission }\r\n\r\n\r\n{_ Context }\r\n{SetState('eddi_context_last_subject', 'mission')}\r\n{SetState('eddi_context_last_action', 'complete')}\r\n\r\n{set mission to MissionDetails(event.missionid)}\r\n\r\n{if cmdr.gender = \"Female\":\r\n {set o to \"a\"}\r\n|else:\r\n {set o to \"o\"}\r\n}\r\n\r\n{if find(mission.typeEDName, \"Passenger\") > -1:\r\n {set type to \"transporte de \"}\r\n {set type to cat(type, mission.passengertype)}\r\n\r\n |elif mission.type = \"Hackeo\": {set type to \"jaqueo\"}\r\n |else:\r\n {set type to mission.type}\r\n {if mission.type:{set type to cat(\"misión de \",type)}\r\n |else: {set type to \"misión\"}}\r\n}\r\n\r\n\r\n{set ranktype to token(mission.name,\"_\",2)}\r\n\r\n{if type = \"misión de \" || type = \"misión\":\r\n {set m to \"a\"}\r\n|else:\r\n {set m to \"o\"}\r\n}\r\n\r\n{if type = \"misión de \" || type = \"misión\":\r\n {set la to \"la\"}\r\n|else:\r\n {set la to \"el\"}\r\n}\r\n\r\n{if mission.type = \"Donativo\":\r\n {if mission.typeEDName = \"Altruism\":\r\n {set donate to cat(event.amount, \" toneladas de \",event.commodity)}\r\n |else:\r\n\r\n{if event.donation > 1300000: {set esde to \"es de\"}}\r\n{if event.donation <= 1300000: {set esde to \" de\"}}\r\n{if event.donation < 1000000: {set esde to \"\"}}\r\n\r\n {set donate to cat(Humanise(event.donation),\"{esde} créditos\")}\r\n }\r\n\r\n {OneOf(\"Ha hecho un donativo de {Occasionally(2, '{donate}')} a la {Occasionally(2, 'agradecida')} facción {P(mission.faction)}\",\r\n \"{P(mission.faction)} ha recibido su donación {Occasionally(2, 'de {donate}')}\",\r\n \"{P(mission.faction)} le da las gracias por su donación {Occasionally(2, 'de {donate}')}\")}\r\n {F(\"Mission faction state\")}.\r\n\r\n|elif ranktype = \"RANKEMP\" || ranktype = \"RankEmp\" || ranktype = \"RANKFED\" || ranktype = \"RankFed\":\r\n {OneOf(\"Ha completado la misión de {type} satisfactoriamente\",\"La misión de {type} se ha completado satisfactoriamente\")}\r\n|elif mission.communal:\r\n Ha completado el objetivo de comunidad: {mission.name}.\r\n\r\n{if mission.reward > 1300000: {set esde to \"es de\"}}\r\n{if mission.reward <= 1300000: {set esde to \" de\"}}\r\n{if mission.reward < 1000000: {set esde to \"\"}}\r\n\r\n Ha {OneOf('recibido','sido recompensad{o} con')} {Humanise(mission.reward)}{esde} créditos por su\r\n {OneOf(\"contribución\",\"participación\",\"esfuerzo\")}\r\n|else:\r\n {if event.reward > 0:\r\n\r\n{if event.reward > 1300000: {set esde to \"es de\"}}\r\n{if event.reward <= 1300000: {set esde to \" de\"}}\r\n{if event.reward < 1000000: {set esde to \"\"}}\r\n\r\n {OneOf(\"{type} completad{m}. Ha {OneOf('recibido','sido recompensad{o} con')}\r\n {Humanise(event.reward)}{esde} créditos\",\r\n \"Ha {OneOf('recibido','sido recompensad{o} con')} {Humanise(event.reward)}{esde} créditos por\r\n {OneOf('finalizar {la} {type}','completar {la} {type} satisfactoriamente',\r\n 'completar satisfactoriamente {la} {type}')}\")\r\n }\r\n |else:\r\n\r\n {OneOf(\"{type} completad{m}\",\"Has completado satisfactoriamente {la} {type}\",\r\n \"{la} {type} ha sido completado satisfactoriamente\")}\r\n }\r\n}\r\n{if mission.type != \"Donación\": {F(\"Mission faction state\")}}.\r\n\r\n{if event.rewardCommodity && event.rewardCommodity != \"\":\r\n {Pause(500)}\r\n {if event.rewardCommodityAmount = 0:\r\n {if event.reward > 0:\r\n {OneOf(\"Sin embargo, \",\"Pero, \")}\r\n }\r\n no puede aceptar la recompensa en cargamento, {Occasionally(2,\"dado que\")}\r\n {if ship.cargocapacity = 0:\r\n no queda espacio disponible en la nave.\r\n |else:\r\n la bahía de carga está {Occasionally(2,\"completamente \")}llena.\r\n }\r\n |else: \r\n {if event.reward > 0:\r\n {OneOf(\"Además, \",\"También, \")}\r\n }\r\n \r\n {OneOf(\"{event.rewardCommodityAmount} tonelada{if event.rewardCommodityAmount > 1:s} de {event.rewardCommodity} han sido cargadas a la nave\",\r\n \"{event.rewardCommodityAmount} tonelada{if event.rewardCommodityAmount > 1:s} de {event.rewardCommodity} han sido añadidas a nuestro cargamento\",\r\n \"hemos recibido {event.rewardCommodityAmount} tonelada{if event.rewardCommodityAmount > 1:s} de {event.rewardCommodity} como recompensa\",\r\n \"han cargado a la nave {event.rewardCommodityAmount} tonelada{if event.rewardCommodityAmount > 1:s} de {event.rewardCommodity} como recompensa\",\r\n )}.\r\n }\r\n|elif event.rewardMaterial && event.rewardMaterial != \"\":\r\n {if event.reward > 0:\r\n {OneOf(\"Además, \",\"También, \")}\r\n }\r\n {OneOf(\"ha recibido\",\"ha sido recompensado con\")}\r\n {event.rewardMaterialAmount} unidad{if event.rewardMaterialAmount > 1:es} de {event.rewardMaterial}\r\n .\r\n}\r\n\r\n{_ Update to next system in route if conditions met _}\r\n{Pause(1000)}\r\n{set next_system to RouteDetails(\"update\")}", "defaultValue": "{_ Mission completed }\r\n{_ Triggered when you complete a mission }\r\n\r\n\r\n{_ Context }\r\n{SetState('eddi_context_last_subject', 'mission')}\r\n{SetState('eddi_context_last_action', 'complete')}\r\n\r\n{set mission to MissionDetails(event.missionid)}\r\n\r\n{if cmdr.gender = \"Female\":\r\n {set o to \"a\"}\r\n|else:\r\n {set o to \"o\"}\r\n}\r\n\r\n{if find(mission.typeEDName, \"Passenger\") > -1:\r\n {set type to \"transporte de \"}\r\n {set type to cat(type, mission.passengertype)}\r\n\r\n |elif mission.type = \"Hackeo\": {set type to \"jaqueo\"}\r\n |else:\r\n {set type to mission.type}\r\n {if mission.type:{set type to cat(\"misión de \",type)}\r\n |else: {set type to \"misión\"}}\r\n}\r\n\r\n\r\n{set ranktype to token(mission.name,\"_\",2)}\r\n\r\n{if type = \"misión de \" || type = \"misión\":\r\n {set m to \"a\"}\r\n|else:\r\n {set m to \"o\"}\r\n}\r\n\r\n{if type = \"misión de \" || type = \"misión\":\r\n {set la to \"la\"}\r\n|else:\r\n {set la to \"el\"}\r\n}\r\n\r\n{if mission.type = \"Donativo\":\r\n {if mission.typeEDName = \"Altruism\":\r\n {set donate to cat(event.amount, \" toneladas de \",event.commodity)}\r\n |else:\r\n\r\n{if event.donation > 1300000: {set esde to \"es de\"}}\r\n{if event.donation <= 1300000: {set esde to \" de\"}}\r\n{if event.donation < 1000000: {set esde to \"\"}}\r\n\r\n {set donate to cat(Humanise(event.donation),\"{esde} créditos\")}\r\n }\r\n\r\n {OneOf(\"Ha hecho un donativo de {Occasionally(2, '{donate}')} a la {Occasionally(2, 'agradecida')} facción {P(mission.faction)}\",\r\n \"{P(mission.faction)} ha recibido su donación {Occasionally(2, 'de {donate}')}\",\r\n \"{P(mission.faction)} le da las gracias por su donación {Occasionally(2, 'de {donate}')}\")}\r\n {F(\"Mission faction state\")}.\r\n\r\n|elif ranktype = \"RANKEMP\" || ranktype = \"RankEmp\" || ranktype = \"RANKFED\" || ranktype = \"RankFed\":\r\n {OneOf(\"Ha completado la misión de {type} satisfactoriamente\",\"La misión de {type} se ha completado satisfactoriamente\")}\r\n|elif mission.communal:\r\n Ha completado el objetivo de comunidad: {mission.name}.\r\n\r\n{if mission.reward > 1300000: {set esde to \"es de\"}}\r\n{if mission.reward <= 1300000: {set esde to \" de\"}}\r\n{if mission.reward < 1000000: {set esde to \"\"}}\r\n\r\n Ha {OneOf('recibido','sido recompensad{o} con')} {Humanise(mission.reward)}{esde} créditos por su\r\n {OneOf(\"contribución\",\"participación\",\"esfuerzo\")}\r\n|else:\r\n {if event.reward > 0:\r\n\r\n{if event.reward > 1300000: {set esde to \"es de\"}}\r\n{if event.reward <= 1300000: {set esde to \" de\"}}\r\n{if event.reward < 1000000: {set esde to \"\"}}\r\n\r\n {OneOf(\"{type} completad{m}. Ha {OneOf('recibido','sido recompensad{o} con')}\r\n {Humanise(event.reward)}{esde} créditos\",\r\n \"Ha {OneOf('recibido','sido recompensad{o} con')} {Humanise(event.reward)}{esde} créditos por\r\n {OneOf('finalizar {la} {type}','completar {la} {type} satisfactoriamente',\r\n 'completar satisfactoriamente {la} {type}')}\")\r\n }\r\n |else:\r\n\r\n {OneOf(\"{type} completad{m}\",\"Has completado satisfactoriamente {la} {type}\",\r\n \"{la} {type} ha sido completado satisfactoriamente\")}\r\n }\r\n}\r\n{if mission.type != \"Donación\": {F(\"Mission faction state\")}}.\r\n\r\n{if event.rewardCommodity && event.rewardCommodity != \"\":\r\n {Pause(500)}\r\n {if event.rewardCommodityAmount = 0:\r\n {if event.reward > 0:\r\n {OneOf(\"Sin embargo, \",\"Pero, \")}\r\n }\r\n no puede aceptar la recompensa en cargamento, {Occasionally(2,\"dado que\")}\r\n {if ship.cargocapacity = 0:\r\n no queda espacio disponible en la nave.\r\n |else:\r\n la bahía de carga está {Occasionally(2,\"completamente \")}llena.\r\n }\r\n |else: \r\n {if event.reward > 0:\r\n {OneOf(\"Además, \",\"También, \")}\r\n }\r\n \r\n {OneOf(\"{event.rewardCommodityAmount} tonelada{if event.rewardCommodityAmount > 1:s} de {event.rewardCommodity} han sido cargadas a la nave\",\r\n \"{event.rewardCommodityAmount} tonelada{if event.rewardCommodityAmount > 1:s} de {event.rewardCommodity} han sido añadidas a nuestro cargamento\",\r\n \"hemos recibido {event.rewardCommodityAmount} tonelada{if event.rewardCommodityAmount > 1:s} de {event.rewardCommodity} como recompensa\",\r\n \"han cargado a la nave {event.rewardCommodityAmount} tonelada{if event.rewardCommodityAmount > 1:s} de {event.rewardCommodity} como recompensa\",\r\n )}.\r\n }\r\n|elif event.rewardMaterial && event.rewardMaterial != \"\":\r\n {if event.reward > 0:\r\n {OneOf(\"Además, \",\"También, \")}\r\n }\r\n {OneOf(\"ha recibido\",\"ha sido recompensado con\")}\r\n {event.rewardMaterialAmount} unidad{if event.rewardMaterialAmount > 1:es} de {event.rewardMaterial}\r\n .\r\n}\r\n\r\n{set type to \"Completed\"}\r\n{F(\"Mission Route Update\")}", "default": false }, "Mission expired": { "name": "Mission expired", "description": "Triggered when a mission has expired", "enabled": true, "priority": 2, "responder": true, "script": "{_ Mission expired }\r\n{_ Triggered when a mission has expired }\r\n\r\n{_ Context }\r\n{SetState('eddi_context_last_subject', 'mission')}\r\n{SetState('eddi_context_last_action', 'expired')}\r\n\r\n{set mission to MissionDetails(event.missionid)}\r\n\r\n{if find(mission.typeEDName, \"Passenger\") > -1:\r\n {set type to \"Transport \"}\r\n {set type to cat(type, mission.passengertype)}\r\n|else:\r\n {set type to mission.type}\r\n}\r\n{_ set type to cat(type, \" La misión\") }\r\n\r\n{if type = \"Hackeo\": {set type to \"jaqueo\"}}\r\n\r\nLa misión {if type:de} {type}{if mission.faction: para {mission.faction}} ha expirado.\r\n{if mission.commodity:\r\n {for cargo in inventory:\r\n {if cargo.name = mission.commodity && cargo.haulage > 0:\r\n Todo el cargamento de la misión será marcado como robado.\r\n }\r\n }\r\n}", "defaultValue": "{_ Mission expired }\r\n{_ Triggered when a mission has expired }\r\n\r\n{_ Context }\r\n{SetState('eddi_context_last_subject', 'mission')}\r\n{SetState('eddi_context_last_action', 'expired')}\r\n\r\n{set mission to MissionDetails(event.missionid)}\r\n\r\n{if find(mission.typeEDName, \"Passenger\") > -1:\r\n {set type to \"Transport \"}\r\n {set type to cat(type, mission.passengertype)}\r\n|else:\r\n {set type to mission.type}\r\n}\r\n{set type to cat(type, \" La misión\")}\r\n\r\n{if type = \"Hackeo\": {set type to \"jaqueo\"}}\r\n\r\n{type} {if mission.faction: para {mission.faction}} ha expirado.\r\n{if mission.commodity:\r\n {for cargo in inventory:\r\n {if cargo.name = mission.commodity && cargo.haulage > 0:\r\n Todo el cargamento de la misión será marcado como robado.\r\n }\r\n }\r\n}", "default": false }, "Mission faction state": { "name": "Mission faction state", "description": "Report the faction state", "enabled": true, "priority": null, "responder": false, "script": "{if (mission.factionstate) = \"Boom\":\r\n {OneOf(\"en medio de\",\"en\")} un{OneOf(\"a época próspera\",\" auge económico\")}\r\n|elif (mission.factionstate) = \"Bust\":\r\n {OneOf(\"en medio de\",\"en\")} un{OneOf(\" descenso económico\",\"a recesión\",\"a inminente quiebra\")}\r\n|elif (mission.factionstate) = \"CivilUnrest\":\r\n {OneOf(\"en medio de\",\"en\",\"tiempos de\")} {Occasionally(2,\"\")} {OneOf(\"disturbios civiles\",\"conflicto civil\")}\r\n|elif (mission.factionstate) = \"CivilWar\":\r\n {OneOf(\"en medio de\",\"en\",\"tiempos de\")} {Occasionally(2,\"\")} {OneOf(\"una guerra civil\",\"un periodo de guerras civiles\")}\r\n|elif (mission.factionstate) = \"Democracy\":\r\n {OneOf(\"en nombre de la\",\"en pro de la\")} democracia\r\n|elif (mission.factionstate) = \"Election\":\r\n\r\n|elif (mission.factionstate) = \"Famine\":\r\n {OneOf(\"en medio de\",\"en\")} {OneOf(\"una hambruna\",\"problemas de abastecimiento de alimentos\")} \r\n|elif (mission.factionstate) = \"Industrial\":\r\n\r\n|elif (mission.factionstate) = \"Lockdown\":\r\n\r\n|elif (mission.factionstate) = \"Outbreak\"\r\n , para ayudar en {OneOf(\"una emergencia médica\",\"la cura de un brote epidémico\")}\r\n}\r\n", "defaultValue": "{if (mission.factionstate) = \"Boom\":\r\n {OneOf(\"en medio de\",\"en\")} un{OneOf(\"a época próspera\",\" auge económico\")}\r\n|elif (mission.factionstate) = \"Bust\":\r\n {OneOf(\"en medio de\",\"en\")} un{OneOf(\" descenso económico\",\"a recesión\",\"a inminente quiebra\")}\r\n|elif (mission.factionstate) = \"CivilUnrest\":\r\n {OneOf(\"en medio de\",\"en\",\"tiempos de\")} {Occasionally(2,\"\")} {OneOf(\"disturbios civiles\",\"conflicto civil\")}\r\n|elif (mission.factionstate) = \"CivilWar\":\r\n {OneOf(\"en medio de\",\"en\",\"tiempos de\")} {Occasionally(2,\"\")} {OneOf(\"una guerra civil\",\"un periodo de guerras civiles\")}\r\n|elif (mission.factionstate) = \"Democracy\":\r\n {OneOf(\"en nombre de la\",\"en pro de la\")} democracia\r\n|elif (mission.factionstate) = \"Election\":\r\n\r\n|elif (mission.factionstate) = \"Famine\":\r\n {OneOf(\"en medio de\",\"en\")} {OneOf(\"una hambruna\",\"problemas de abastecimiento de alimentos\")} \r\n|elif (mission.factionstate) = \"Industrial\":\r\n\r\n|elif (mission.factionstate) = \"Lockdown\":\r\n\r\n|elif (mission.factionstate) = \"Outbreak\"\r\n , para ayudar en {OneOf(\"una emergencia médica\",\"la cura de un brote epidémico\")}\r\n}\r\n", "default": true }, "Mission failed": { "name": "Mission failed", "description": "Se activa cuando fallas una misión (TEST)", "enabled": true, "priority": 2, "responder": true, "script": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'mission')}\r\n{SetState('eddi_context_last_action', 'fail')}\r\n\r\n\r\n{set mission to MissionDetails(event.missionid)}\r\n\r\n{if find(mission.typeEDName, \"Passenger\") > -1:\r\n {set type to \"misión de transporte de\"}\r\n {set type to cat(type, mission.passengertype)}\r\n|else:\r\n {set type to mission.type}\r\n}\r\n\r\n{if type = \"Hackeo\": {set type to \"jaqueo\"}}\r\n\r\n{OneOf(\"Misión {if type:de }{type} {if mission.faction: para {mission.faction}} fallida\", \r\n \"No hemos podido completar la misión {if type:de }{type} {if mission.faction: para {mission.faction}}\",\r\n\"La misión {if type:de }{type} {if mission.faction: para {mission.faction}} ha fallado\")}.\r\n\r\n\r\n\r\n\r\n", "defaultValue": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'mission')}\r\n{SetState('eddi_context_last_action', 'fail')}\r\n\r\n\r\n{set mission to MissionDetails(event.missionid)}\r\n\r\n{if find(mission.typeEDName, \"Passenger\") > -1:\r\n {set type to \"misión de transporte de\"}\r\n {set type to cat(type, mission.passengertype)}\r\n|else:\r\n {set type to mission.type}\r\n}\r\n{set type to cat(\"misión de \",type)}\r\n\r\n{if type = \"Hackeo\": {set type to \"jaqueo\"}}\r\n\r\n{OneOf(\"{type} {if mission.faction: para {mission.faction}} fallida\", \r\n \"No hemos podido completar la {type} {if mission.faction: para {mission.faction}}\",\r\n\"La {type} {if mission.faction: para {mission.faction}} ha fallado\")}.\r\n\r\n\r\n\r\n\r\n", "default": false }, "Mission redirected": { "name": "Mission redirected", "description": "Se activa cuando una misión es redirigida (TEST)", "enabled": true, "priority": 3, "responder": true, "script": "{_ Mission redirected }\r\n{_ Triggered when a mission is redirected }\r\n\r\n\r\n{_ Context }\r\n{SetState('eddi_context_last_subject', 'mission')}\r\n{SetState('eddi_context_last_action', 'redirected')}\r\n\r\n{set mission to MissionDetails(event.missionid)}\r\n\r\n{if find(mission.typeEDName, \"Passenger\") > -1:\r\n {set type to \"misión de transporte de\"}\r\n {set type to cat(type, mission.passengertype)}\r\n|else:\r\n {set type to mission.type}\r\n}\r\n{set type to cat(\"misión de \",type)}\r\n\r\n{if mission.status = \"Completada\" && mission.destinationsystem = mission.originsystem:\r\n Requerimientos para la {type} completados. Podemos vovler a {mission.originsystem} a cobrarla.\r\n|elif mission.destinations:\r\n Cadena de {type} redirigida al sistema {P(event.newdestinationsystem)}.\r\n|else:\r\n {type} redirigida a \r\n {if event.newdestinationstation:\r\n {event.newdestinationstation} en el sistema {P(event.newdestinationsystem)}.\r\n |else:\r\n el sistema {P(event.newdestinationsystem)}.\r\n }\r\n}", "defaultValue": "{_ Mission redirected }\r\n{_ Triggered when a mission is redirected }\r\n\r\n\r\n{_ Context }\r\n{SetState('eddi_context_last_subject', 'mission')}\r\n{SetState('eddi_context_last_action', 'redirected')}\r\n\r\n{set mission to MissionDetails(event.missionid)}\r\n\r\n{if find(mission.typeEDName, \"Passenger\") > -1:\r\n {set type to \"misión de transporte de\"}\r\n {set type to cat(type, mission.passengertype)}\r\n|else:\r\n {set type to mission.type}\r\n}\r\n{set type to cat(\"misión de \",type)}\r\n\r\n{if mission.status = \"Completada\" && mission.destinationsystem = mission.originsystem:\r\n Requerimientos para la {type} completados. Podemos vovler a {mission.originsystem} a cobrarla.\r\n|elif mission.destinations:\r\n Cadena de {type} redirigida al sistema {P(event.newdestinationsystem)}.\r\n|else:\r\n {type} redirigida a \r\n {if event.newdestinationstation:\r\n {event.newdestinationstation} en el sistema {P(event.newdestinationsystem)}.\r\n |else:\r\n el sistema {P(event.newdestinationsystem)}.\r\n }\r\n}", "default": true }, "Mission report": { "name": "Mission report", "description": "Report the current mission log", "enabled": true, "priority": null, "responder": false, "script": "{_ Mission report }\r\n{_ Report the current mission log }\r\n\r\n\r\n{set mission_report to true}\r\n{F(\"Mission check galaxy\")}\r\n\r\n", "defaultValue": "{_ Mission report }\r\n{_ Report the current mission log }\r\n\r\n\r\n{F(\"Mission check galaxy\")}\r\n\r\n\r\n", "default": false }, "Mission Route Clear": { "name": "Mission Route Clear", "description": "Clear a set mission route. (TEST)", "enabled": true, "priority": null, "responder": false, "script": "{_Shirka}\r\n\r\n{SetState('missionsdata', \"\")}\r\n{SetState('missionsrouteuseeddi', \"\")}\r\n{SetState('missionsroutetype', \"\")}\r\n{SetState('missionsdestination', \"\")}\r\n{SetState('missionsroutedistance', \"\")}\r\n{SetState('missionsroute', \"\")}", "defaultValue": "{_Shirka}\r\n\r\n{SetState('missionsdata', \"\")}\r\n{SetState('missionsrouteuseeddi', \"\")}\r\n{SetState('missionsroutetype', \"\")}\r\n{SetState('missionsdestination', \"\")}\r\n{SetState('missionsroutedistance', \"\")}\r\n{SetState('missionsroute', \"\")}", "default": true }, "Mission Route Fast": { "name": "Mission Route Fast", "description": "Plot a 'nearest neighbor' route for defined systems in the mission store (TEST)", "enabled": true, "priority": null, "responder": false, "script": "{_Shirka}\r\n\r\n{_ Missions_RoutePlot }\r\n{_ Plot a 'nearest neighbor' route for defined systems in the mission store }\r\n\r\n\r\n{_ Setup 'destination array builder' function }\r\n{set systems_builder(system) to:\r\n {if find(systems, system) = -1:\r\n {set systems to cat(systems, [system])}\r\n }\r\n}\r\n\r\n\r\n{if missionsCount > 0:\r\n\r\n {set original_dest to state.missionsdestination}\r\n {set origins to []}\r\n {set returns to []}\r\n {set failed to []}\r\n\r\n {for mission in missions:\r\n {set origins to cat(origins, [mission.originsystem])}\r\n {if mission.originreturn = true:\r\n {set returns to cat(return, [\"yes\"])}\r\n |else:\r\n {set returns to cat(return, [\"no\"])}\r\n }\r\n {set failed to cat(failed, [mission.status])}\r\n }\r\n\r\n {set systems to []}\r\n {set system_count to 0}\r\n\r\n {if state.missionsroute = \"\" || state.missionsroute = null:\r\n {set route_end to state.eddi_context_system_name}\r\n |else:\r\n {set temp_route to split(state.missionsroute, \"_\")}\r\n {set route_end to temp_route[len(temp_route) - 1]}\r\n }\r\n\r\n {_ Add all mission systems that have a 'return to origin' to the destination list, unless it has failed }\r\n {set pos to find(returns, \"yes\")}\r\n {while pos > -1:\r\n {if failed[pos] != \"failed\":\r\n {systems_builder(origins[pos])}\r\n }\r\n {set pos to find(returns, \"yes\", pos + 1)}\r\n }\r\n\r\n {_ Add all destination systems to the destination list, unless they have failed }\r\n {set cur to 0}\r\n {while cur < missionsCount:\r\n {set destination to missions[cur].destinationsystem}\r\n\r\n {if destination != \"\" && failed[cur] != \"failed\":\r\n {if find(destination, \"_\") > -1:\r\n {set dest_array to split(destination, \"::\")}\r\n {for destination in dest_array: {systems_builder(destination)}}\r\n |else:\r\n {systems_builder(destination)}\r\n }\r\n }\r\n {set cur to cur + 1}\r\n }\r\n\r\n {_ Now create the route _}\r\n {set route to []}\r\n\r\n {_ Remove end dest from array _}\r\n {set systems to split(join(except(systems, [find(systems, route_end):\"\"]), \"_\"), \"_\")}\r\n {_ Remove the current system, if it's found _}\r\n {set systems to split(join(except(systems, [find(systems, state.eddi_context_system_name):\"\"]), \"_\"), \"_\")}\r\n\r\n {set system_count to len(systems)}\r\n\r\n {set curr to SystemDetails(state.eddi_context_system_name)}\r\n {set end to SystemDetails(route_end)}\r\n {set total_distance to 0}\r\n {set cur to 0}\r\n\r\n {if systems[0] && systems[0] != \"\":\r\n {while cur < system_count:\r\n {set near to 10000}\r\n {for sys in systems:\r\n {set dest to SystemDetails(sys)}\r\n {set dist to round(Distance(curr.x, curr.y, curr.z, dest.x, dest.y, dest.z), 2)}\r\n\r\n {if dist < near:\r\n {set nearest to dest.name}\r\n {set near to dist}\r\n }\r\n }\r\n {set total_distance to total_distance + near}\r\n {set route to cat(route, [nearest])}\r\n {set systems to split(join(except(systems, [find(systems, nearest):\"\"]), \"_\"), \"_\")}\r\n {set curr to SystemDetails(nearest)}\r\n {set cur to cur + 1}\r\n }\r\n }\r\n\r\n {_ Calculate total route length _}\r\n {set dest to SystemDetails(route_end)}\r\n {set dist to round(Distance(curr.x, curr.y, curr.z, dest.x, dest.y, dest.z), 2)}\r\n {set total_distance to total_distance + dist}\r\n\r\n {_ Join it all together _}\r\n {set route to cat(route, [route_end])}\r\n\r\n {SetState('missionsroutetype', \"route\")}\r\n {SetState('missionsdestination', route[0])}\r\n {SetState('missionsroutedistance', total_distance)}\r\n {SetState('missionsroute', join(route, \"_\"))}\r\n {set system_count to len(route)}\r\n\r\n {if total_distance = 0:\r\n Route calculated for one system.\r\n {OneOf(\"You are {OneOf('already', 'currently')} in your destination system\",\r\n \"Your mission{if missionsCount > 1:s are all |else: is} located in\r\n {OneOf('this', 'the current')} system\")}.\r\n |else:\r\n Missions route\r\n {if original_dest != null && original_dest != \"\": re}calculated\r\n for {system_count} system{if system_count != 1:s}.\r\n {Pause(400)}\r\n {if total_distance > 0:\r\n Total distance is {round(total_distance, 1)} lightyears.\r\n {Pause(400)}\r\n {if original_dest != null && original_dest != \"\" && original_dest != route[0]:\r\n First destination is {route[0]}.\r\n }\r\n |elif missionsCount > 0 && total_distance = 0:\r\n {OneOf(\"You are {OneOf('already', 'currently')} in your destination system\",\r\n \"Your mission{if missionsCount > 1:s are all |else: is} located in\r\n {OneOf('this', 'the current')} system\")}.\r\n |else:\r\n Unable to calculate missions route.\r\n }\r\n\r\n {if original_dest != null && original_dest != \"\" && original_dest != route[0]:\r\n Initial destination has been updated.\r\n }\r\n {if total_distance > 0: Awaiting orders.}\r\n }\r\n\r\n {SetState('eddi_context_mission_destination_locked', \"no\")}\r\n\r\n|else:\r\n {if autoroute != \"yes\":\r\n You have no missions to plot a route with.\r\n }\r\n}\r\n ", "defaultValue": "{_Shirka}\r\n\r\n{_ Missions_RoutePlot }\r\n{_ Plot a 'nearest neighbor' route for defined systems in the mission store }\r\n\r\n\r\n{_ Setup 'destination array builder' function }\r\n{set systems_builder(system) to:\r\n {if find(systems, system) = -1:\r\n {set systems to cat(systems, [system])}\r\n }\r\n}\r\n\r\n\r\n{if missionsCount > 0:\r\n\r\n {set original_dest to state.missionsdestination}\r\n {set origins to []}\r\n {set returns to []}\r\n {set failed to []}\r\n\r\n {for mission in missions:\r\n {set origins to cat(origins, [mission.originsystem])}\r\n {if mission.originreturn = true:\r\n {set returns to cat(return, [\"yes\"])}\r\n |else:\r\n {set returns to cat(return, [\"no\"])}\r\n }\r\n {set failed to cat(failed, [mission.status])}\r\n }\r\n\r\n {set systems to []}\r\n {set system_count to 0}\r\n\r\n {if state.missionsroute = \"\" || state.missionsroute = null:\r\n {set route_end to state.eddi_context_system_name}\r\n |else:\r\n {set temp_route to split(state.missionsroute, \"_\")}\r\n {set route_end to temp_route[len(temp_route) - 1]}\r\n }\r\n\r\n {_ Add all mission systems that have a 'return to origin' to the destination list, unless it has failed }\r\n {set pos to find(returns, \"yes\")}\r\n {while pos > -1:\r\n {if failed[pos] != \"failed\":\r\n {systems_builder(origins[pos])}\r\n }\r\n {set pos to find(returns, \"yes\", pos + 1)}\r\n }\r\n\r\n {_ Add all destination systems to the destination list, unless they have failed }\r\n {set cur to 0}\r\n {while cur < missionsCount:\r\n {set destination to missions[cur].destinationsystem}\r\n\r\n {if destination != \"\" && failed[cur] != \"failed\":\r\n {if find(destination, \"_\") > -1:\r\n {set dest_array to split(destination, \"::\")}\r\n {for destination in dest_array: {systems_builder(destination)}}\r\n |else:\r\n {systems_builder(destination)}\r\n }\r\n }\r\n {set cur to cur + 1}\r\n }\r\n\r\n {_ Now create the route _}\r\n {set route to []}\r\n\r\n {_ Remove end dest from array _}\r\n {set systems to split(join(except(systems, [find(systems, route_end):\"\"]), \"_\"), \"_\")}\r\n {_ Remove the current system, if it's found _}\r\n {set systems to split(join(except(systems, [find(systems, state.eddi_context_system_name):\"\"]), \"_\"), \"_\")}\r\n\r\n {set system_count to len(systems)}\r\n\r\n {set curr to SystemDetails(state.eddi_context_system_name)}\r\n {set end to SystemDetails(route_end)}\r\n {set total_distance to 0}\r\n {set cur to 0}\r\n\r\n {if systems[0] && systems[0] != \"\":\r\n {while cur < system_count:\r\n {set near to 10000}\r\n {for sys in systems:\r\n {set dest to SystemDetails(sys)}\r\n {set dist to round(Distance(curr.x, curr.y, curr.z, dest.x, dest.y, dest.z), 2)}\r\n\r\n {if dist < near:\r\n {set nearest to dest.name}\r\n {set near to dist}\r\n }\r\n }\r\n {set total_distance to total_distance + near}\r\n {set route to cat(route, [nearest])}\r\n {set systems to split(join(except(systems, [find(systems, nearest):\"\"]), \"_\"), \"_\")}\r\n {set curr to SystemDetails(nearest)}\r\n {set cur to cur + 1}\r\n }\r\n }\r\n\r\n {_ Calculate total route length _}\r\n {set dest to SystemDetails(route_end)}\r\n {set dist to round(Distance(curr.x, curr.y, curr.z, dest.x, dest.y, dest.z), 2)}\r\n {set total_distance to total_distance + dist}\r\n\r\n {_ Join it all together _}\r\n {set route to cat(route, [route_end])}\r\n\r\n {SetState('missionsroutetype', \"route\")}\r\n {SetState('missionsdestination', route[0])}\r\n {SetState('missionsroutedistance', total_distance)}\r\n {SetState('missionsroute', join(route, \"_\"))}\r\n {set system_count to len(route)}\r\n\r\n {if total_distance = 0:\r\n Route calculated for one system.\r\n {OneOf(\"You are {OneOf('already', 'currently')} in your destination system\",\r\n \"Your mission{if missionsCount > 1:s are all |else: is} located in\r\n {OneOf('this', 'the current')} system\")}.\r\n |else:\r\n Missions route\r\n {if original_dest != null && original_dest != \"\": re}calculated\r\n for {system_count} system{if system_count != 1:s}.\r\n {Pause(400)}\r\n {if total_distance > 0:\r\n Total distance is {round(total_distance, 1)} lightyears.\r\n {Pause(400)}\r\n {if original_dest != null && original_dest != \"\" && original_dest != route[0]:\r\n First destination is {route[0]}.\r\n }\r\n |elif missionsCount > 0 && total_distance = 0:\r\n {OneOf(\"You are {OneOf('already', 'currently')} in your destination system\",\r\n \"Your mission{if missionsCount > 1:s are all |else: is} located in\r\n {OneOf('this', 'the current')} system\")}.\r\n |else:\r\n Unable to calculate missions route.\r\n }\r\n\r\n {if original_dest != null && original_dest != \"\" && original_dest != route[0]:\r\n Initial destination has been updated.\r\n }\r\n {if total_distance > 0: Awaiting orders.}\r\n }\r\n\r\n {SetState('eddi_context_mission_destination_locked', \"no\")}\r\n\r\n|else:\r\n {if autoroute != \"yes\":\r\n You have no missions to plot a route with.\r\n }\r\n}\r\n ", "default": true }, "Mission Route Get Distance": { "name": "Mission Route Get Distance", "description": "Find distance to destination (TEST)", "enabled": true, "priority": null, "responder": false, "script": "{_Shirka}\r\n\r\n{_ Mission Route Get Distance}\r\n{_ Find distance to destination}\r\n\r\n{set dist to -1}\r\n{if state.from_system && state.to_system:\r\n {if state.from_system = \"\":\r\n Origin system not designated.\r\n |elif state.to_system = \"\":\r\n Destination system not designated.\r\n |else:\r\n {set fs to SystemDetails(state.from_system)}\r\n {set ts to SystemDetails(state.to_system)}\r\n\r\n {if !fs.name:\r\n Your origin is not in the Pilot's Federation star charts.\r\n |elif !ts.name:\r\n Your destination is not in the Pilot's Federation star charts.\r\n |else:\r\n {set dist to round(Distance(fs.x, fs.y, fs.z, ts.x, ts.y, ts.z), 2)}\r\n {if state.getdistance = 'true':\r\n Distance {Occasionally(2, \"from {fs.name}\")} to\r\n {Occasionally(2, \"{OneOf('target','destination')} system\")}\r\n {ts.name} is {dist} light years.\r\n {SetState('getdistance', false)}\r\n }\r\n }\r\n }\r\n}\r\n\r\n{SetState('distance', dist)}\r\n", "defaultValue": "{_Shirka}\r\n\r\n{_ Mission Route Get Distance}\r\n{_ Find distance to destination}\r\n\r\n{set dist to -1}\r\n{if state.from_system && state.to_system:\r\n {if state.from_system = \"\":\r\n Origin system not designated.\r\n |elif state.to_system = \"\":\r\n Destination system not designated.\r\n |else:\r\n {set fs to SystemDetails(state.from_system)}\r\n {set ts to SystemDetails(state.to_system)}\r\n\r\n {if !fs.name:\r\n Your origin is not in the Pilot's Federation star charts.\r\n |elif !ts.name:\r\n Your destination is not in the Pilot's Federation star charts.\r\n |else:\r\n {set dist to round(Distance(fs.x, fs.y, fs.z, ts.x, ts.y, ts.z), 2)}\r\n {if state.getdistance = 'true':\r\n Distance {Occasionally(2, \"from {fs.name}\")} to\r\n {Occasionally(2, \"{OneOf('target','destination')} system\")}\r\n {ts.name} is {dist} light years.\r\n {SetState('getdistance', false)}\r\n }\r\n }\r\n }\r\n}\r\n\r\n{SetState('distance', dist)}\r\n", "default": true }, "Mission Route Report": { "name": "Mission Route Report", "description": "Report the current route information (TEST)", "enabled": true, "priority": null, "responder": false, "script": "{_Shirka}\r\n\r\n{_ Mission Route Report _}\r\n{_ Report the current route information _}\r\n\r\n{if system.name != state.missionsdestination && len(state.missionsroute) > 0 && state.missionsroute != \"Not set\":\r\n\r\n {set route to split(state.missionsroute, \"_\")}\r\n\r\n Route Report: Destination system{if len(route) > 1:s}:\r\n\r\n {set cur to 0}\r\n {set length to len(route) - 1}\r\n {while cur < len(route):\r\n {route[cur]}\r\n {set cur to cur + 1}\r\n {if cur = length: and\r\n |elif cur < length:,\r\n }\r\n }.\r\n\r\n {if len(route) > 1:\r\n Total Distance: {round(state.missionsroutedistance, 2)} light years.\r\n Initial Destination: {state.missionsdestination}.\r\n |else:\r\n Distance: {round(state.missionsroutedistance, 2)} light years.\r\n }\r\n\r\n|elif system.name = state.missionsdestination:\r\n Route Report: You are in your destination system, {state.missionsdestination}.\r\n\r\n|else:\r\n {OneOf(\"You {OneOf('have no', 'don\\\\'t have any')} mission route at {OneOf('this time', 'the moment')} to report\",\r\n \"{OneOf('There is', 'You have')} no route to report at {OneOf('this time', 'the moment')}\")}.\r\n}\r\n", "defaultValue": "{_Shirka}\r\n\r\n{_ Mission Route Report _}\r\n{_ Report the current route information _}\r\n\r\n{if system.name != state.missionsdestination && len(state.missionsroute) > 0 && state.missionsroute != \"Not set\":\r\n\r\n {set route to split(state.missionsroute, \"_\")}\r\n\r\n Route Report: Destination system{if len(route) > 1:s}:\r\n\r\n {set cur to 0}\r\n {set length to len(route) - 1}\r\n {while cur < len(route):\r\n {route[cur]}\r\n {set cur to cur + 1}\r\n {if cur = length: and\r\n |elif cur < length:,\r\n }\r\n }.\r\n\r\n {if len(route) > 1:\r\n Total Distance: {round(state.missionsroutedistance, 2)} light years.\r\n Initial Destination: {state.missionsdestination}.\r\n |else:\r\n Distance: {round(state.missionsroutedistance, 2)} light years.\r\n }\r\n\r\n|elif system.name = state.missionsdestination:\r\n Route Report: You are in your destination system, {state.missionsdestination}.\r\n\r\n|else:\r\n {OneOf(\"You {OneOf('have no', 'don\\\\'t have any')} mission route at {OneOf('this time', 'the moment')} to report\",\r\n \"{OneOf('There is', 'You have')} no route to report at {OneOf('this time', 'the moment')}\")}.\r\n}\r\n", "default": true }, "Mission Route Update": { "name": "Mission Route Update", "description": "Updates the route if no more missions in the current system (TEST)", "enabled": true, "priority": null, "responder": false, "script": "{_Shirka}\r\n\r\n{_ Mission Route Update _}\r\n{_ Updates the route if no more missions in the current system _}\r\n\r\n{set active_count to 0}\r\n{set complete_count to 0}\r\n\r\n{for mission in missions:\r\n {if mission.destinationsystems:\r\n {for destination in mission.destinationsystems:\r\n {if destination.name = system.name:\r\n {if mission.status = \"Active\":\r\n {set active_count to active_count + 1}\r\n |elif mission.status = \"Complete\":\r\n {set complete_count to complete_count + 1}\r\n }\r\n }\r\n }\r\n |elif mission.destinationsystem = system.name:\r\n {if mission.status = \"Active\":\r\n {set active_count to active_count + 1}\r\n |elif mission.status = \"Complete\":\r\n {set complete_count to complete_count + 1}\r\n }\r\n }\r\n}\r\n\r\n{if type = \"Completed\" || type = \"Abandoned\" || type = \"Failed\":\r\n {if status = \"Active\":\r\n {set active_count to active_count - 1}\r\n |elif status = \"Complete\":\r\n {set complete_count to complete_count - 1}\r\n }\r\n}\r\n\r\n{set total_count to active_count + complete_count}\r\n{set route to split(state.missionsroute, \"_\")}\r\n\r\n{_ Set mission types that don't have a destination _}\r\n{_ Possible mission types are _}\r\n{_ Altruism, Assassinate, Collect, Courier, Delivery, Disable, Massacre, _}\r\n{_ Mining, Passenger, Permit, Piracy, Rescue, Salvage, Scan, Smuggle _}\r\n{set type_list to \"Altruism Collect Mining Permit Piracy\"}\r\n\r\n{if total_count > 0 && type != \"Accepted\":\r\n {if active_count > 0:\r\n You still have {active_count} active\r\n }\r\n {if complete_count > 0:\r\n {if active_count > 0:, and |else: You still have}\r\n {complete_count} completed\r\n }\r\n mission{if total_count > 1:s} in this system.\r\n\r\n|else:\r\n\r\n {if state.missionsrouteuseeddi = \"yes\":\r\n\r\n {if route[0] = system.name && len(route) > 0 && type != \"Accepted\":\r\n {set route to RouteDetails(\"update\")}\r\n |else:\r\n {set route to RouteDetails(\"route\")}\r\n }\r\n\r\n |elif state.missionsrouteuseeddi = \"no\":\r\n\r\n {if route[0] = system.name && len(route) > 0 && type != \"Accepted\":\r\n\r\n {SetState('missionsroute', join(except(route, [0:\"\"]), \"_\"))}\r\n {set route to split(state.missionsroute, \"_\")}\r\n {SetState('missionsdestination', route[0])}\r\n {SetState('missionsroutetype', \"update\")}\r\n\r\n {if route[0] != \"\" && route[0] != null:\r\n {set dist to round(Distance(system.name, route[0]), 2)}\r\n {SetState('missionsroutedistance', state.missionsroutedistance - dist)}\r\n\r\n {if route[1] != \"\" && route[1] != null: Next mission |else: Final route }\r\n destination is {route[0]}, {round(dist, 1)} lightyears away.\r\n\r\n |elif route[0] = \"\" || route[0] = null:\r\n {SetState('missionsroutedistance', null)}\r\n You have {OneOf(\"completed\", \"reached the end of\")} your route.\r\n |else:\r\n Unable to update to next mission destination.\r\n }\r\n\r\n |elif missionsCount > 0:\r\n {F(\"Mission Route Fast\")}\r\n }\r\n }\r\n}\r\n\r\n{set dest to state.missionsdestination}\r\n\r\n{if dest != system.name && dest != \"\" && dest != null:\r\n {SetState('eddi_context_mission_destination_locked', \"no\")}\r\n {if state.eddi_context_mission_route_useauto = \"no\":\r\n Please re-plot Galactic Map route.\r\n |elif state.eddi_context_supercruise = \"no\" && state.eddi_context_docked = \"no\":\r\n Enter super-cruise to {OneOf(\"activate\", \"engage\")} auto-route plotting system.\r\n |elif state.eddi_context_docked = \"yes\" && state.eddi_context_mission_accepted = \"no\":\r\n Launch to {OneOf(\"activate\", \"engage\")} auto route plotting system.\r\n {SetState('eddi_context_mission_accepted', \"yes\")}\r\n }\r\n}\r\n\r\n{_ Build string to save in Voice Attack _}\r\n{set missionsdata to cat(state.missionsrouteuseeddi, \"+=\", state.missionsroutetype, \"+=\", state.missionsdestination, \"+=\", state.missionsroutedistance, \"+=\", state.missionsroute)}\r\n{SetState('missionsdata', missionsdata)}\r\n", "defaultValue": "{_Shirka}\r\n\r\n{_ Mission Route Update _}\r\n{_ Updates the route if no more missions in the current system _}\r\n\r\n{set active_count to 0}\r\n{set complete_count to 0}\r\n\r\n{for mission in missions:\r\n {if mission.destinationsystems:\r\n {for destination in mission.destinationsystems:\r\n {if destination.name = system.name:\r\n {if mission.status = \"Active\":\r\n {set active_count to active_count + 1}\r\n |elif mission.status = \"Complete\":\r\n {set complete_count to complete_count + 1}\r\n }\r\n }\r\n }\r\n |elif mission.destinationsystem = system.name:\r\n {if mission.status = \"Active\":\r\n {set active_count to active_count + 1}\r\n |elif mission.status = \"Complete\":\r\n {set complete_count to complete_count + 1}\r\n }\r\n }\r\n}\r\n\r\n{if type = \"Completed\" || type = \"Abandoned\" || type = \"Failed\":\r\n {if status = \"Active\":\r\n {set active_count to active_count - 1}\r\n |elif status = \"Complete\":\r\n {set complete_count to complete_count - 1}\r\n }\r\n}\r\n\r\n{set total_count to active_count + complete_count}\r\n{set route to split(state.missionsroute, \"_\")}\r\n\r\n{_ Set mission types that don't have a destination _}\r\n{_ Possible mission types are _}\r\n{_ Altruism, Assassinate, Collect, Courier, Delivery, Disable, Massacre, _}\r\n{_ Mining, Passenger, Permit, Piracy, Rescue, Salvage, Scan, Smuggle _}\r\n{set type_list to \"Altruism Collect Mining Permit Piracy\"}\r\n\r\n{if total_count > 0 && type != \"Accepted\":\r\n {if active_count > 0:\r\n You still have {active_count} active\r\n }\r\n {if complete_count > 0:\r\n {if active_count > 0:, and |else: You still have}\r\n {complete_count} completed\r\n }\r\n mission{if total_count > 1:s} in this system.\r\n\r\n|else:\r\n\r\n {if state.missionsrouteuseeddi = \"yes\":\r\n\r\n {if route[0] = system.name && len(route) > 0 && type != \"Accepted\":\r\n {set route to RouteDetails(\"update\")}\r\n |else:\r\n {set route to RouteDetails(\"route\")}\r\n }\r\n\r\n |elif state.missionsrouteuseeddi = \"no\":\r\n\r\n {if route[0] = system.name && len(route) > 0 && type != \"Accepted\":\r\n\r\n {SetState('missionsroute', join(except(route, [0:\"\"]), \"_\"))}\r\n {set route to split(state.missionsroute, \"_\")}\r\n {SetState('missionsdestination', route[0])}\r\n {SetState('missionsroutetype', \"update\")}\r\n\r\n {if route[0] != \"\" && route[0] != null:\r\n {set dist to round(Distance(system.name, route[0]), 2)}\r\n {SetState('missionsroutedistance', state.missionsroutedistance - dist)}\r\n\r\n {if route[1] != \"\" && route[1] != null: Next mission |else: Final route }\r\n destination is {route[0]}, {round(dist, 1)} lightyears away.\r\n\r\n |elif route[0] = \"\" || route[0] = null:\r\n {SetState('missionsroutedistance', null)}\r\n You have {OneOf(\"completed\", \"reached the end of\")} your route.\r\n |else:\r\n Unable to update to next mission destination.\r\n }\r\n\r\n |elif missionsCount > 0:\r\n {F(\"Mission Route Fast\")}\r\n }\r\n }\r\n}\r\n\r\n{set dest to state.missionsdestination}\r\n\r\n{if dest != system.name && dest != \"\" && dest != null:\r\n {SetState('eddi_context_mission_destination_locked', \"no\")}\r\n {if state.eddi_context_mission_route_useauto = \"no\":\r\n Please re-plot Galactic Map route.\r\n |elif state.eddi_context_supercruise = \"no\" && state.eddi_context_docked = \"no\":\r\n Enter super-cruise to {OneOf(\"activate\", \"engage\")} auto-route plotting system.\r\n |elif state.eddi_context_docked = \"yes\" && state.eddi_context_mission_accepted = \"no\":\r\n Launch to {OneOf(\"activate\", \"engage\")} auto route plotting system.\r\n {SetState('eddi_context_mission_accepted', \"yes\")}\r\n }\r\n}\r\n\r\n{_ Build string to save in Voice Attack _}\r\n{set missionsdata to cat(state.missionsrouteuseeddi, \"+=\", state.missionsroutetype, \"+=\", state.missionsdestination, \"+=\", state.missionsroutedistance, \"+=\", state.missionsroute)}\r\n{SetState('missionsdata', missionsdata)}\r\n", "default": true }, "Mission warning": { "name": "Mission warning", "description": "Triggered when a mission is about to expire, based on a set threshold", "enabled": true, "priority": 3, "responder": true, "script": "{_ Mission warning }\r\n{_ Triggered when a mission is about to expire, based on a set threshold }\r\n\r\n{_ Context }\r\n{SetState('eddi_context_last_subject', 'mission')}\r\n{SetState('eddi_context_last_action', 'warning')}\r\n\r\n{set mission to MissionDetails(event.missionid)}\r\n\r\n{if find(mission.typeEDName, \"Passenger\") > -1:\r\n {set type to \"Transport \"}\r\n {set type to cat(type, mission.passengertype)}\r\n|else:\r\n {set type to mission.type}\r\n}\r\n{set type to cat(type, \" la missión\")}\r\n\r\nAtención: {type} {if mission.faction: for {mission.faction}} expirará en {event.remaining} minutos.\r\n\r\n", "defaultValue": "{_ Mission warning }\r\n{_ Triggered when a mission is about to expire, based on a set threshold }\r\n\r\n{_ Context }\r\n{SetState('eddi_context_last_subject', 'mission')}\r\n{SetState('eddi_context_last_action', 'warning')}\r\n\r\n{set mission to MissionDetails(event.missionid)}\r\n\r\n{if find(mission.typeEDName, \"Passenger\") > -1:\r\n {set type to \"Transport \"}\r\n {set type to cat(type, mission.passengertype)}\r\n|else:\r\n {set type to mission.type}\r\n}\r\n{set type to cat(type, \" la missión\")}\r\n\r\nAtención: {type} {if mission.faction: for {mission.faction}} expirará en {event.remaining} minutos.\r\n\r\n", "default": true }, "Missions": { "name": "Missions", "description": "Triggered at startup, with basic information of the Mission Log", "enabled": true, "priority": 3, "responder": true, "script": "{_ Missions }\r\n{_ Triggered at session start from Missions event }", "defaultValue": "{_ Missions }\r\n{_ Triggered at session start from Missions event }", "default": true }, "Missions route": { "name": "Missions route", "description": "Get the missions route for various mission details", "enabled": true, "priority": 3, "responder": true, "script": "{_ Missions route }\r\n{_ Get the missions route for various mission details }\r\n\r\n\r\n{if event.routetype = \"expiring\":\r\n {if event.distance > 0:\r\n {set mission to MissionDetails(event.missionids[0])}\r\n\r\n {if find(mission.typeEDName, \"Passenger\") > -1:\r\n {set type to \"Transport \"}\r\n {set type to cat(type, mission.passengertype)}\r\n |else:\r\n {set type to mission.type}\r\n }\r\n {set type to cat(type, \" misión\")}\r\n\r\n {type} {if mission.faction: for {mission.faction}}\r\n {if mission.destinationsystem: in the\r\n {if mission.destinationsystem = system.name:\r\n actual\r\n |else:\r\n {mission.destinationsystem}\r\n } sistema\r\n } está apunto de expirar.\r\n |else:\r\n No hay misiones activas.\r\n }\r\n|elif event.routetype = \"farthest\":\r\n {if event.distance > 0:\r\n El {if missionsCount = 1: único objetivo de la misión |else: objetivo de la misión más lejano} está en\r\n el\r\n {if event.system = system.name:\r\n sistema actual\r\n |else:\r\n sistema {event.system}, a {round(event.distance, 1)} años luz de {OneOf(\"distancia\",\"aquí\")}\r\n }.\r\n |else:\r\n Misión no encontrada con un sistema de destino designado.\r\n }\r\n|elif event.routetype = \"most\":\r\n {if missionsCount = 1:\r\n El único objetivo de misión que tenemos está {Occasionally(2,\"localizado\")} en\r\n {if missions[0].destinationsystem = \"\":\r\n un sistema {Occasionally(2,\"estelar\")} desconocido\r\n |elif missions[0].destinationsystem = system.name:\r\n el sistema {Occasionally(2,\"estelar\")} actual\r\n |else:\r\n el sistema {Occasionally(2,\"estelar\")} {missions[0].destinationsystem}\r\n }\r\n .\r\n |else:\r\n {set systems to split(event.systems, \"_\")}\r\n {set system_most to event.system}\r\n {set systems_count to len(systems)}\r\n\r\n {if systems_count = 1:\r\n {if system_most = system.name:\r\n {set system_most to \"el sistema actual\"}\r\n |else:\r\n {set system_most to cat(\"El \", system_most, \" sistema\")}\r\n }\r\n {OneOf(\"La mayoría de las misiones están {Occasionally(2,'localizadas')} en {system_most}\",\r\n \"{system_most} tiene {OneOf('más','la mayoría de las')} misiones\",\r\n \"{system_most} tiene la mayoría de las misiones para completar\")}.\r\n |elif systems_count > 1:\r\n Tenemos {event.count} objetivo{if event.count > 1:s} en cada uno, en los sistemas\r\n\r\n {set cur to 0}\r\n {while cur < len(equal):\r\n {systems[cur]}\r\n {set cur to cur + 1}\r\n {if cur = systems_count-1: y |elif cur < systems_count: ,}\r\n }.\r\n }\r\n }\r\n|elif event.routetype = \"nearest\":\r\n {if event.distance > 0:\r\n El {if missionsCount = 1: único objetivo|else: objetivo más cercano}\r\n está en el sistema\r\n {if event.system = system.name:\r\n actual\r\n |else:\r\n {event.system}, a {round(event.distance, 1)} años luz de {OneOf(\"distancia\",\"aquí\")}\r\n }.\r\n |else:\r\n No se encuentra un sistema de destino designado.\r\n }\r\n|elif event.routetype = \"route\":\r\n {if event.routedistance > 0:\r\n Calculada ruta de misiones para {event.count} sistemas.\r\n La distancia total de la ruta es de {round(event.routedistance, 1)} años luz.\r\n El primer destino es el sistema {event.system}, a {round(event.distance, 1)} años luz de {OneOf(\"distancia\",\"aquí\")}.\r\n |else:\r\n Imposible calcular una ruta de misiones.\r\n }\r\n|elif event.routetype = \"source\":\r\n {if event.count > 0:\r\n {set systems to split(event.route, \"_\")}\r\n\r\n {set pos to 0}\r\n {while pos < event.count:\r\n\r\n {set source_cargo to []}\r\n {for missionid in event.missionids:\r\n {set haulage to HaulageDetails(missionid)}\r\n {if haulage.sourcesystem = systems[pos]:\r\n {set cargo to CargoDetails(missionid)}\r\n {if find(source_cargo, cargo.name) = -1:\r\n {set source_cargo to cat(source_cargo, [cargo.name])}\r\n }\r\n }\r\n }\r\n\r\n {if pos = 0:\r\n El {if event.count = 1: único cargamento |else: cargamento más cercano}\r\n |elif pos = 1:\r\n Además, el cargamento\r\n |elif pos = event.count - 1:\r\n finalmente, el cargamento\r\n |else:\r\n el cargamento\r\n }\r\n\r\n \r\n {set cur to 0}\r\n {while cur < len(source_cargo):\r\n {source_cargo[cur]}\r\n {set cur to cur + 1}\r\n {if cur = len(source_cargo) - 1: y |elif cur < len(source_cargo): ,}\r\n }\r\n\r\n está en\r\n {if systems[pos] = system.name:\r\n el sistema actual\r\n |else:\r\n el sistema {systems[pos]}, a\r\n {set distance to Distance(system.name, systems[pos])}\r\n {round(distance, 1)} años luz de {OneOf(\"distancia\",\"aquí\")}.\r\n }.\r\n {set pos to pos + 1}\r\n }\r\n {SetState('eddi_context_cargo_source', event.route)}\r\n |else:\r\n Cargamento con destino desconocido.\r\n }\r\n|elif event.routetype = \"update\":\r\n {if event.routedistance > 0:\r\n Next mission destination is {event.system}, {round(event.distance, 1)} lightyears away.\r\n |else:\r\n No consigo actualizar el siguiente destino de la misión.\r\n }\r\n}\r\n\r\n", "defaultValue": "{_ Missions route }\r\n{_ Get the missions route for various mission details }\r\n\r\n\r\n{if event.routetype = \"expiring\":\r\n {if event.distance > 0:\r\n {set mission to MissionDetails(event.missionids[0])}\r\n\r\n {if find(mission.typeEDName, \"Passenger\") > -1:\r\n {set type to \"Transport \"}\r\n {set type to cat(type, mission.passengertype)}\r\n |else:\r\n {set type to mission.type}\r\n }\r\n {set type to cat(type, \" misión\")}\r\n\r\n {type} {if mission.faction: for {mission.faction}}\r\n {if mission.destinationsystem: in the\r\n {if mission.destinationsystem = system.name:\r\n actual\r\n |else:\r\n {mission.destinationsystem}\r\n } sistema\r\n } está apunto de expirar.\r\n |else:\r\n No hay misiones activas.\r\n }\r\n|elif event.routetype = \"farthest\":\r\n {if event.distance > 0:\r\n El {if missionsCount = 1: único objetivo de la misión |else: objetivo de la misión más lejano} está en\r\n el\r\n {if event.system = system.name:\r\n sistema actual\r\n |else:\r\n sistema {event.system}, a {round(event.distance, 1)} años luz de {OneOf(\"distancia\",\"aquí\")}\r\n }.\r\n |else:\r\n Misión no encontrada con un sistema de destino designado.\r\n }\r\n|elif event.routetype = \"most\":\r\n {if missionsCount = 1:\r\n El único objetivo de misión que tenemos está {Occasionally(2,\"localizado\")} en\r\n {if missions[0].destinationsystem = \"\":\r\n un sistema {Occasionally(2,\"estelar\")} desconocido\r\n |elif missions[0].destinationsystem = system.name:\r\n el sistema {Occasionally(2,\"estelar\")} actual\r\n |else:\r\n el sistema {Occasionally(2,\"estelar\")} {missions[0].destinationsystem}\r\n }\r\n .\r\n |else:\r\n {set systems to split(event.systems, \"_\")}\r\n {set system_most to event.system}\r\n {set systems_count to len(systems)}\r\n\r\n {if systems_count = 1:\r\n {if system_most = system.name:\r\n {set system_most to \"el sistema actual\"}\r\n |else:\r\n {set system_most to cat(\"El \", system_most, \" sistema\")}\r\n }\r\n {OneOf(\"La mayoría de las misiones están {Occasionally(2,'localizadas')} en {system_most}\",\r\n \"{system_most} tiene {OneOf('más','la mayoría de las')} misiones\",\r\n \"{system_most} tiene la mayoría de las misiones para completar\")}.\r\n |elif systems_count > 1:\r\n Tenemos {event.count} objetivo{if event.count > 1:s} en cada uno, en los sistemas\r\n\r\n {set cur to 0}\r\n {while cur < len(equal):\r\n {systems[cur]}\r\n {set cur to cur + 1}\r\n {if cur = systems_count-1: y |elif cur < systems_count: ,}\r\n }.\r\n }\r\n }\r\n|elif event.routetype = \"nearest\":\r\n {if event.distance > 0:\r\n El {if missionsCount = 1: único objetivo|else: objetivo más cercano}\r\n está en el sistema\r\n {if event.system = system.name:\r\n actual\r\n |else:\r\n {event.system}, a {round(event.distance, 1)} años luz de {OneOf(\"distancia\",\"aquí\")}\r\n }.\r\n |else:\r\n No se encuentra un sistema de destino designado.\r\n }\r\n|elif event.routetype = \"route\":\r\n {if event.routedistance > 0:\r\n Calculada ruta de misiones para {event.count} sistemas.\r\n La distancia total de la ruta es de {round(event.routedistance, 1)} años luz.\r\n El primer destino es el sistema {event.system}, a {round(event.distance, 1)} años luz de {OneOf(\"distancia\",\"aquí\")}.\r\n |else:\r\n Imposible calcular una ruta de misiones.\r\n }\r\n|elif event.routetype = \"source\":\r\n {if event.count > 0:\r\n {set systems to split(event.route, \"_\")}\r\n\r\n {set pos to 0}\r\n {while pos < event.count:\r\n\r\n {set source_cargo to []}\r\n {for missionid in event.missionids:\r\n {set haulage to HaulageDetails(missionid)}\r\n {if haulage.sourcesystem = systems[pos]:\r\n {set cargo to CargoDetails(missionid)}\r\n {if find(source_cargo, cargo.name) = -1:\r\n {set source_cargo to cat(source_cargo, [cargo.name])}\r\n }\r\n }\r\n }\r\n\r\n {if pos = 0:\r\n El {if event.count = 1: único cargamento |else: cargamento más cercano}\r\n |elif pos = 1:\r\n Además, el cargamento\r\n |elif pos = event.count - 1:\r\n finalmente, el cargamento\r\n |else:\r\n el cargamento\r\n }\r\n\r\n \r\n {set cur to 0}\r\n {while cur < len(source_cargo):\r\n {source_cargo[cur]}\r\n {set cur to cur + 1}\r\n {if cur = len(source_cargo) - 1: y |elif cur < len(source_cargo): ,}\r\n }\r\n\r\n está en\r\n {if systems[pos] = system.name:\r\n el sistema actual\r\n |else:\r\n el sistema {systems[pos]}, a\r\n {set distance to Distance(system.name, systems[pos])}\r\n {round(distance, 1)} años luz de {OneOf(\"distancia\",\"aquí\")}.\r\n }.\r\n {set pos to pos + 1}\r\n }\r\n {SetState('eddi_context_cargo_source', event.route)}\r\n |else:\r\n Cargamento con destino desconocido.\r\n }\r\n|elif event.routetype = \"update\":\r\n {if event.routedistance > 0:\r\n Next mission destination is {event.system}, {round(event.distance, 1)} lightyears away.\r\n |else:\r\n No consigo actualizar el siguiente destino de la misión.\r\n }\r\n}\r\n\r\n", "default": true }, "Missions variable report": { "name": "Missions variable report", "description": "Check EDDI state variables for routing testing purposes. (TEST)", "enabled": true, "priority": null, "responder": false, "script": "{_Shirka}\r\n\r\n Use Eddi - {state.missionsrouteuseeddi}.\r\n Route type - {state.missionsroutetype}.\r\n Destination - {state.missionsdestination}.\r\n Current - {system.name}.\r\n Locked - {state.eddi_context_mission_destination_locked}.\r\n Route - {state.missionsroute}.\r\n Distance: - {state.missionsroutedistance}", "defaultValue": "{_Shirka}\r\n\r\n Use Eddi - {state.missionsrouteuseeddi}.\r\n Route type - {state.missionsroutetype}.\r\n Destination - {state.missionsdestination}.\r\n Current - {system.name}.\r\n Locked - {state.eddi_context_mission_destination_locked}.\r\n Route - {state.missionsroute}.\r\n Distance: - {state.missionsroutedistance}", "default": true }, "Modification crafted": { "name": "Modification crafted", "description": "Se activa cuando creas una modificación a un módulo", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Module arrived": { "name": "Module arrived", "description": "Se aplica cuando se completa una transferencia de módulo", "enabled": true, "priority": 3, "responder": true, "script": "{Occasionally(2, '{F(\\'Honorific\\')}, ')}\nSu {event.module.name} ha\n\n{OneOf('llegado{if station.name != event.station && event.station: a}', \n 'completado su transferencia {if station.name != event.station && event.station: en}')}\n\n{if station.name != event.station && event.station:\n {event.station}\n {if system.name != event.system && event.system:\n en el sistema {event.system}\n }\n}.", "defaultValue": "{Occasionally(2, '{F(\\'Honorific\\')}, ')}\nSu {event.module.name} ha\n\n{OneOf('llegado{if station.name != event.station && event.station: a}', \n 'completado su transferencia {if station.name != event.station && event.station: en}')}\n\n{if station.name != event.station && event.station:\n {event.station}\n {if system.name != event.system && event.system:\n en el sistema {event.system}\n }\n}.", "default": true }, "Module info": { "name": "Module info", "description": "Triggered when a ModulesInfo.json file is generated/updated", "enabled": true, "priority": 5, "responder": true, "script": "{_ This event updates `ship` module information: position, power, & priority _}", "defaultValue": "{_ This event updates `ship` module information: position, power, & priority _}", "default": true }, "Module purchased": { "name": "Module purchased", "description": "Se activa cuando compras un módulo", "enabled": true, "priority": 5, "responder": true, "script": "Adquirido un {event.buymodule.name} de clase {event.buymodule.class}-{event.buymodule.grade}\n\n{if type(event.buymodule.mount) != \"void\":\n {for index, value in event.buymodule.mount: {set mount to value}}\n {if mount = 0:\n fijo\n |elif mount = 1:\n guiado\n |elif mount = 2:\n torreta\n } \n} \n, por {event.buyprice} créditos\n\n{if type(event.sellmodule) != \"void\":\n , y vendido un {event.sellmodule.name} de clase {event.sellmodule.class}-{event.sellmodule.grade},\n\n {if type(event.sellmodule.mount) != \"vacío\":\n {for index, value in event.sellmodule.mount: {set mount to value}}\n {if mount = 0:\n fijo\n |elif mount = 1:\n guiado\n |elif mount = 2:\n torreta\n } \n } \n , por {event.sellprice} créditos\n\n|elif type(event.storedmodule) != \"void\":\n , y almacenado un {event.storedmodule.name} de clase {event.storedmodule.class}-{event.storedmodule.grade},\n\n {if type(event.storedmodule.mount) != \"void\":\n {for index, value in event.storedmodule.mount: {set mount to value}}\n {if mount = 0:\n fijo\n |elif mount = 1:\n guiado\n |elif mount = 2:\n torreta\n }\n }\n}", "defaultValue": "Adquirido un {event.buymodule.name} de clase {event.buymodule.class}-{event.buymodule.grade}\n\n{if type(event.buymodule.mount) != \"void\":\n {for index, value in event.buymodule.mount: {set mount to value}}\n {if mount = 0:\n fijo\n |elif mount = 1:\n guiado\n |elif mount = 2:\n torreta\n } \n} \n, por {event.buyprice} créditos\n\n{if type(event.sellmodule) != \"void\":\n , y vendido un {event.sellmodule.name} de clase {event.sellmodule.class}-{event.sellmodule.grade},\n\n {if type(event.sellmodule.mount) != \"vacío\":\n {for index, value in event.sellmodule.mount: {set mount to value}}\n {if mount = 0:\n fijo\n |elif mount = 1:\n guiado\n |elif mount = 2:\n torreta\n } \n } \n , por {event.sellprice} créditos\n\n|elif type(event.storedmodule) != \"void\":\n , y almacenado un {event.storedmodule.name} de clase {event.storedmodule.class}-{event.storedmodule.grade},\n\n {if type(event.storedmodule.mount) != \"void\":\n {for index, value in event.storedmodule.mount: {set mount to value}}\n {if mount = 0:\n fijo\n |elif mount = 1:\n guiado\n |elif mount = 2:\n torreta\n }\n }\n}", "default": true }, "Module retrieved": { "name": "Module retrieved", "description": "Se activa cuando busca un módulo previamente almacenado", "enabled": true, "priority": 5, "responder": true, "script": "Recuperado {event.module.name} de clase {event.module.class}{event.module.grade} \n\n{if type(event.module.mount) != \"void\":\n {for index, value in event.module.mount: {set mount to value}}\n {if mount = 0:\n fijo \n |elif mount = 1:\n guiado \n |elif mount = 2:\n torreta \n } \n} \n\n del almacén,\n\n{if type(event.swapoutmodule) != \"void\":\n y almacenado un {event.swapoutmodule.name} de clase {event.swapoutmodule.class}-{event.swapoutmodule.grade}\n\n {if type(event.swapoutmodule.mount) != \"vacío\":\n {for index, value in event.swapoutmodule.mount: {set mount to value}}\n {if mount = 0:\n fijo\n |elif mount = 1:\n guiado\n |elif mount = 2:\n torreta\n }\n }\n \n},\n\n{if type(event.cost) != \"void\": por un coste de {event.cost} créditos}", "defaultValue": "Recuperado {event.module.name} de clase {event.module.class}{event.module.grade} \n\n{if type(event.module.mount) != \"void\":\n {for index, value in event.module.mount: {set mount to value}}\n {if mount = 0:\n fijo \n |elif mount = 1:\n guiado \n |elif mount = 2:\n torreta \n } \n} \n\n del almacén,\n\n{if type(event.swapoutmodule) != \"void\":\n y almacenado un {event.swapoutmodule.name} de clase {event.swapoutmodule.class}-{event.swapoutmodule.grade}\n\n {if type(event.swapoutmodule.mount) != \"vacío\":\n {for index, value in event.swapoutmodule.mount: {set mount to value}}\n {if mount = 0:\n fijo\n |elif mount = 1:\n guiado\n |elif mount = 2:\n torreta\n }\n }\n \n},\n\n{if type(event.cost) != \"void\": por un coste de {event.cost} créditos}", "default": true }, "Module sold": { "name": "Module sold", "description": "Se activa cuando vende un módulo instalado en la nave", "enabled": true, "priority": 5, "responder": true, "script": "Ha vendido su {event.module.name} de clase {event.module.class}-{event.module.grade}\n\n{if type(event.module.mount) != \"void\":\n {for index, value in event.module.mount: {set mount to value}}\n {if mount = 0:\n fijo\n |elif mount = 1:\n guiado\n |elif mount = 2:\n torreta\n } \n},\n\n por {event.price} créditos.", "defaultValue": "Ha vendido su {event.module.name} de clase {event.module.class}-{event.module.grade}\n\n{if type(event.module.mount) != \"void\":\n {for index, value in event.module.mount: {set mount to value}}\n {if mount = 0:\n fijo\n |elif mount = 1:\n guiado\n |elif mount = 2:\n torreta\n } \n},\n\n por {event.price} créditos.", "default": true }, "Module sold from storage": { "name": "Module sold from storage", "description": "Se activa cuando vende un módulo almacenado", "enabled": true, "priority": 5, "responder": true, "script": "Ha vendido su {event.module.name} de clase {event.module.class}-{event.module.grade}\n\n{if type(event.module.mount) != \"vacío\":\n {for index, value in event.module.mount: {set mount to value}}\n {if mount = 0:\n fijo\n |elif mount = 1:\n guiado\n |elif mount = 2:\n torreta\n } \n} \n\ndesde su almacén, por {event.price}{if event.price > 999999: de} créditos.", "defaultValue": "Ha vendido su {event.module.name} de clase {event.module.class}-{event.module.grade}\n\n{if type(event.module.mount) != \"vacío\":\n {for index, value in event.module.mount: {set mount to value}}\n {if mount = 0:\n fijo\n |elif mount = 1:\n guiado\n |elif mount = 2:\n torreta\n } \n} \n\ndesde su almacén, por {event.price}{if event.price > 999999: de} créditos.", "default": true }, "Module sold remote": { "name": "Module sold remote", "description": "Triggered when selling a module in storage at another station (TEST)", "enabled": true, "priority": 5, "responder": true, "script": "{_Shirka}\r\n\r\nYou have sold a {event.module.class}-{event.module.grade}\r\n\r\n{if event.module.mount:\r\n {for index, value in event.module.mount: {set mount to value}}\r\n {if mount = 0:\r\n fixed\r\n |elif mount = 1:\r\n giimballed\r\n |elif mount = 2:\r\n turreted\r\n }\r\n}\r\n\r\n{event.module.name} from your stores for {event.price} credits.\r\n", "defaultValue": "{_Shirka}\r\n\r\nYou have sold a {event.module.class}-{event.module.grade}\r\n\r\n{if event.module.mount:\r\n {for index, value in event.module.mount: {set mount to value}}\r\n {if mount = 0:\r\n fixed\r\n |elif mount = 1:\r\n giimballed\r\n |elif mount = 2:\r\n turreted\r\n }\r\n}\r\n\r\n{event.module.name} from your stores for {event.price} credits.\r\n", "default": true }, "Module stored": { "name": "Module stored", "description": "Se activa cuando almacena un módulo", "enabled": true, "priority": 5, "responder": true, "script": "Almacenado {event.module.name} de clase {event.module.class}-{event.module.grade}\n\n{if type(event.module.mount) != \"void\":\n {for index, value in event.module.mount: {set mount to value}}\n {if mount = 0:\n fijo \n |elif mount = 1:\n guiado \n |elif mount = 2:\n torreta \n } \n} \n \n\n\n{if type(event.cost) = \"void\": . |else: por un coste de {event.cost} créditos.}", "defaultValue": "Almacenado {event.module.name} de clase {event.module.class}-{event.module.grade}\n\n{if type(event.module.mount) != \"void\":\n {for index, value in event.module.mount: {set mount to value}}\n {if mount = 0:\n fijo \n |elif mount = 1:\n guiado \n |elif mount = 2:\n torreta \n } \n} \n \n\n\n{if type(event.cost) = \"void\": . |else: por un coste de {event.cost} créditos.}", "default": true }, "Module swapped": { "name": "Module swapped", "description": "Se activa cuando se intercambian módulos entre ubicaciones de la nave", "enabled": true, "priority": 5, "responder": true, "script": "Ha intercambiado las posiciones de su {event.frommodule.name} de clase {event.frommodule.class}-{event.frommodule.grade}\n\n{if type(event.frommodule.mount) != \"void\":\n {for index, value in event.frommodule.mount: {set mount to value}}\n {if mount = 0:\n de montura fija\n |elif mount = 1:\n de montura guiada\n |elif mount = 2:\n de torreta\n }\n},\n\n por \n\n{if event.tomodule:\n un {event.tomodule.name} de clase {event.tomodule.class}-{event.tomodule.grade},\n {if type(event.tomodule.mount) != \"void\":\n {for index, value in event.tomodule.mount: {set mount to value}}\n {if mount = 0:\n de montura fija\n |elif mount = 1:\n de montura guiada\n |elif mount = 2:\n de torreta\n }\n }\n .\n|else: \n en un anclaje vacío.\n}", "defaultValue": "Ha intercambiado las posiciones de su {event.frommodule.name} de clase {event.frommodule.class}-{event.frommodule.grade}\n\n{if type(event.frommodule.mount) != \"void\":\n {for index, value in event.frommodule.mount: {set mount to value}}\n {if mount = 0:\n de montura fija\n |elif mount = 1:\n de montura guiada\n |elif mount = 2:\n de torreta\n }\n},\n\n por \n\n{if event.tomodule:\n un {event.tomodule.name} de clase {event.tomodule.class}-{event.tomodule.grade},\n {if type(event.tomodule.mount) != \"void\":\n {for index, value in event.tomodule.mount: {set mount to value}}\n {if mount = 0:\n de montura fija\n |elif mount = 1:\n de montura guiada\n |elif mount = 2:\n de torreta\n }\n }\n .\n|else: \n en un anclaje vacío.\n}", "default": true }, "Module transfer": { "name": "Module transfer", "description": "Se activa cuando se transfiere un módulo almacenado a otra estación espacial", "enabled": true, "priority": 5, "responder": true, "script": "Transfiriendo {event.module.name} de clase {event.module.class}-{event.module.grade}\n\n{if event.module.mount:\n {for index, value in event.module.mount: {set mount to value}}\n {if mount = 0:\n de montura fija\n |elif mount = 1:\n de montura guiada\n |elif mount = 2:\n de torreta\n }\n},\n\n\n{if event.transfercost: por un importe de {event.transfercost} créditos.}\n\n{set t_remaining to event.transfertime}\n\n{if t_remaining:\n\n {Pause(1000)}\n Llegada prevista, en \n\n {if t_remaining > (60*60*24):\n {set t_days to floor(t_remaining/(60*60*24))}\n {t_days} días,\n {set t_remaining to t_remaining-(t_days*(60*60*24))}\n }\n\n {if t_remaining > 3600:\n {set t_hours to floor(t_remaining/3600)}\n {t_hours} horas,\n {set t_remaining to t_remaining-(t_hours*(60*60))}\n }\n\n {if t_remaining > 60:\n {if t_days || t_hours: y }\n {set t_minutes to round(t_remaining/(60),0)}\n {t_minutes} minutos.\n }\n}", "defaultValue": "Transfiriendo {event.module.name} de clase {event.module.class}-{event.module.grade}\n\n{if event.module.mount:\n {for index, value in event.module.mount: {set mount to value}}\n {if mount = 0:\n de montura fija\n |elif mount = 1:\n de montura guiada\n |elif mount = 2:\n de torreta\n }\n},\n\n\n{if event.transfercost: por un importe de {event.transfercost} créditos.}\n\n{set t_remaining to event.transfertime}\n\n{if t_remaining:\n\n {Pause(1000)}\n Llegada prevista, en \n\n {if t_remaining > (60*60*24):\n {set t_days to floor(t_remaining/(60*60*24))}\n {t_days} días,\n {set t_remaining to t_remaining-(t_days*(60*60*24))}\n }\n\n {if t_remaining > 3600:\n {set t_hours to floor(t_remaining/3600)}\n {t_hours} horas,\n {set t_remaining to t_remaining-(t_hours*(60*60))}\n }\n\n {if t_remaining > 60:\n {if t_days || t_hours: y }\n {set t_minutes to round(t_remaining/(60),0)}\n {t_minutes} minutos.\n }\n}", "default": true }, "Modules stored": { "name": "Modules stored", "description": "Se activa cuando se almacenan múltiples módulos", "enabled": true, "priority": 5, "responder": true, "script": "Ha almacenado los siguientes módulos:\n\n{for module in event.modules:\n\n {module.name} de clase {module.class}-{module.grade},\n\n {if type(module.mount) != \"void\":\n {for index, value in module.mount: {set mount to value}}\n {if mount = 0:\n de montura fija\n |elif mount = 1:\n de montura guiada\n |elif mount = 2:\n de torreta\n }\n }\n \n {Pause(400)}\n}", "defaultValue": "Ha almacenado los siguientes módulos:\n\n{for module in event.modules:\n\n {module.name} de clase {module.class}-{module.grade},\n\n {if type(module.mount) != \"void\":\n {for index, value in module.mount: {set mount to value}}\n {if mount = 0:\n de montura fija\n |elif mount = 1:\n de montura guiada\n |elif mount = 2:\n de torreta\n }\n }\n \n {Pause(400)}\n}", "default": true }, "Music": { "name": "Music", "description": "Se activa cuando la música ambiental cambia", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Nav beacon scan": { "name": "Nav beacon scan", "description": "Se activa cuando se escanea una baliza de navegación, antes de que los datos de escaneo de todos los cuerpos celestes del sistema se escriban en el diario", "enabled": true, "priority": 4, "responder": true, "script": "{_ Context _}\n{SetState('eddi_context_last_subject', 'nav beacon')}\n{SetState('eddi_context_last_action', 'scan')}\n{SetState('eddi_context_star_system', system.name)}\n{SetState('eddi_context_nav_scans', event.numbodies)}\n\n{set nav to OneOf(\"navegación\")}\n{set beacon to OneOf(\"baliza de\")}\n{OneOf(\"Esta {beacon} {nav} ha enviado detalles de {event.numbodies} cuerpos estelares en este sistema\",\n \"Detalles recibidos sobre {event.numbodies} cuerpos estelares en este sistema.\")}\n\n{Pause(500)}", "defaultValue": "{_ Context _}\n{SetState('eddi_context_last_subject', 'nav beacon')}\n{SetState('eddi_context_last_action', 'scan')}\n{SetState('eddi_context_star_system', system.name)}\n{SetState('eddi_context_nav_scans', event.numbodies)}\n\n{set nav to OneOf(\"navegación\")}\n{set beacon to OneOf(\"baliza de\")}\n{OneOf(\"Esta {beacon} {nav} ha enviado detalles de {event.numbodies} cuerpos estelares en este sistema\",\n \"Detalles recibidos sobre {event.numbodies} cuerpos estelares en este sistema.\")}\n\n{Pause(500)}", "default": true }, "Near surface": { "name": "Near surface", "description": "Se activa cuando se entra o se sale de la órbita de la superficie de un planeta", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Next jump": { "name": "Next jump", "description": "Triggered when selecting a star system to jump to", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "NPC attack commenced": { "name": "NPC attack commenced", "description": "Se activa cuando se detecta un ataque de un NPC sobre su nave", "enabled": true, "priority": 3, "responder": true, "script": "\r\n{if event.by = \"Ambushed pilot\": {set atacante to \"un Piloto emboscado\"}}\r\n{if event.by = \"Bounty hunter\": {set atacante to \"un Cazarrecompensas\"}}\r\n{if event.by = \"Capital ship\": {set atacante to \"una Nave capital\"}}\r\n{if event.by = \"Cargo hunter\": {set atacante to \"un ladrón de cargas\"}}\r\n{if event.by = \"Civilian pilot\": {set atacante to \"un piloto civíl\"}}\r\n{if event.by = \"Cruise liner\": {set atacante to \"Crucero de línea\"}}\r\n{if event.by = \"Escort\": {set atacante to \"Escolta\"}}\r\n{if event.by = \"Exploration convoy\": {set atacante to \"Convoy de exploración\"}}\r\n{if event.by = \"Hitman\": {set atacante to \"un sicario\"}}\r\n{if event.by = \"Messenger\": {set atacante to \"un mensajero\"}}\r\n{if event.by = \"Military\": {set atacante to \"un militar\"}}\r\n{if event.by = \"Miner\": {set atacante to \"un minero\"}}\r\n{if event.by = \"NPC\": {set atacante to \"un piloto desconocido\"}}\r\n{if event.by = \"Passenger hunter\": {set atacante to \"un cazador de pasajeros\"}}\r\n{if event.by = \"Passenger liner\": {set atacante to \"una aerolinea de pasajeros\"}}\r\n{if event.by = \"Pirate\": {set atacante to \"un pirata\"}}\r\n{if event.by = \"Police\": {set atacante to \"un policía\"}}\r\n{if event.by = \"Propagandist\": {set atacante to \"un Propagandista\"}}\r\n{if event.by = \"Protester\": {set atacante to \"un Revolucionario\"}}\r\n{if event.by = \"Refugee\": {set atacante to \"un Refugiado\"}}\r\n{if event.by = \"Rival power's agent\": {set atacante to \"un agente de la potencia rival\"}}\r\n{if event.by = \"Search and rescue\": {set atacante to \"una nave de rescate\"}}\r\n{if event.by = \"Starship One\": {set atacante to \"una nave estelar\"}}\r\n{if event.by = \"Station\": {set atacante to \"una estación\"}}\r\n{if event.by = \"Wedding convoy\": {set atacante to \"un convoy de bodas\"}}\r\n\r\n\r\n\r\nAtención: {OneOf(\"detectado ataque\",\"estamos siendo atacados\")} \n{if event.by:\n por {atacante} \n}.", "defaultValue": "\r\n{if event.by = \"Ambushed pilot\": {set atacante to \"un Piloto emboscado\"}}\r\n{if event.by = \"Bounty hunter\": {set atacante to \"un Cazarrecompensas\"}}\r\n{if event.by = \"Capital ship\": {set atacante to \"una Nave capital\"}}\r\n{if event.by = \"Cargo hunter\": {set atacante to \"un ladrón de cargas\"}}\r\n{if event.by = \"Civilian pilot\": {set atacante to \"un piloto civíl\"}}\r\n{if event.by = \"Cruise liner\": {set atacante to \"Crucero de línea\"}}\r\n{if event.by = \"Escort\": {set atacante to \"Escolta\"}}\r\n{if event.by = \"Exploration convoy\": {set atacante to \"Convoy de exploración\"}}\r\n{if event.by = \"Hitman\": {set atacante to \"un sicario\"}}\r\n{if event.by = \"Messenger\": {set atacante to \"un mensajero\"}}\r\n{if event.by = \"Military\": {set atacante to \"un militar\"}}\r\n{if event.by = \"Miner\": {set atacante to \"un minero\"}}\r\n{if event.by = \"NPC\": {set atacante to \"un piloto desconocido\"}}\r\n{if event.by = \"Passenger hunter\": {set atacante to \"un cazador de pasajeros\"}}\r\n{if event.by = \"Passenger liner\": {set atacante to \"una aerolinea de pasajeros\"}}\r\n{if event.by = \"Pirate\": {set atacante to \"un pirata\"}}\r\n{if event.by = \"Police\": {set atacante to \"un policía\"}}\r\n{if event.by = \"Propagandist\": {set atacante to \"un Propagandista\"}}\r\n{if event.by = \"Protester\": {set atacante to \"un Revolucionario\"}}\r\n{if event.by = \"Refugee\": {set atacante to \"un Refugiado\"}}\r\n{if event.by = \"Rival power's agent\": {set atacante to \"un agente de la potencia rival\"}}\r\n{if event.by = \"Search and rescue\": {set atacante to \"una nave de rescate\"}}\r\n{if event.by = \"Starship One\": {set atacante to \"una nave estelar\"}}\r\n{if event.by = \"Station\": {set atacante to \"una estación\"}}\r\n{if event.by = \"Wedding convoy\": {set atacante to \"un convoy de bodas\"}}\r\n\r\n\r\n\r\nAtención: {OneOf(\"detectado ataque\",\"estamos siendo atacados\")} \n{if event.by:\n por {atacante} \n}.", "default": true }, "NPC cargo scan commenced": { "name": "NPC cargo scan commenced", "description": "Se activa cuando se detecta un escaneo de la carga de su nave por un NPC", "enabled": true, "priority": 3, "responder": true, "script": "\r\n{if event.by = \"Ambushed pilot\": {set atacante to \"un Piloto emboscado\"}}\r\n{if event.by = \"Bounty hunter\": {set atacante to \"un Cazarrecompensas\"}}\r\n{if event.by = \"Capital ship\": {set atacante to \"una Nave capital\"}}\r\n{if event.by = \"Cargo hunter\": {set atacante to \"un ladrón de cargas\"}}\r\n{if event.by = \"Civilian pilot\": {set atacante to \"un piloto civíl\"}}\r\n{if event.by = \"Cruise liner\": {set atacante to \"Crucero de línea\"}}\r\n{if event.by = \"Escort\": {set atacante to \"Escolta\"}}\r\n{if event.by = \"Exploration convoy\": {set atacante to \"Convoy de exploración\"}}\r\n{if event.by = \"Hitman\": {set atacante to \"un sicario\"}}\r\n{if event.by = \"Messenger\": {set atacante to \"un mensajero\"}}\r\n{if event.by = \"Military\": {set atacante to \"un militar\"}}\r\n{if event.by = \"Miner\": {set atacante to \"un minero\"}}\r\n{if event.by = \"NPC\": {set atacante to \"un piloto desconocido\"}}\r\n{if event.by = \"Passenger hunter\": {set atacante to \"un cazador de pasajeros\"}}\r\n{if event.by = \"Passenger liner\": {set atacante to \"una aerolinea de pasajeros\"}}\r\n{if event.by = \"Pirate\": {set atacante to \"un pirata\"}}\r\n{if event.by = \"Police\": {set atacante to \"un policía\"}}\r\n{if event.by = \"Propagandist\": {set atacante to \"un Propagandista\"}}\r\n{if event.by = \"Protester\": {set atacante to \"un Revolucionario\"}}\r\n{if event.by = \"Refugee\": {set atacante to \"un Refugiado\"}}\r\n{if event.by = \"Rival power's agent\": {set atacante to \"un agente de la potencia rival\"}}\r\n{if event.by = \"Search and rescue\": {set atacante to \"una nave de rescate\"}}\r\n{if event.by = \"Starship One\": {set atacante to \"una nave estelar\"}}\r\n{if event.by = \"Station\": {set atacante to \"una estación\"}}\r\n{if event.by = \"Wedding convoy\": {set atacante to \"un convoy de bodas\"}}\r\n\r\n\r\n\r\n{_ See if we are carrying non-limpet cargo}\n{set carryingvaluablecargo to 0}\n{for cargo in ship.cargo:\n {if cargo.commodity != 'Drón':\n {set carryingvaluablecargo to 1}\n }\n}\n\n{if carryingvaluablecargo = 1:\n Precaución: {OneOf(\r\n \"detectado escaneo de carga\",\r\n \"estamos siendo escaneados\",\r\n \"nuestra carga está siendo escaneada\"\r\n )}\n {if event.by:\n por {atacante} \n }\n}", "defaultValue": "\r\n{if event.by = \"Ambushed pilot\": {set atacante to \"un Piloto emboscado\"}}\r\n{if event.by = \"Bounty hunter\": {set atacante to \"un Cazarrecompensas\"}}\r\n{if event.by = \"Capital ship\": {set atacante to \"una Nave capital\"}}\r\n{if event.by = \"Cargo hunter\": {set atacante to \"un ladrón de cargas\"}}\r\n{if event.by = \"Civilian pilot\": {set atacante to \"un piloto civíl\"}}\r\n{if event.by = \"Cruise liner\": {set atacante to \"Crucero de línea\"}}\r\n{if event.by = \"Escort\": {set atacante to \"Escolta\"}}\r\n{if event.by = \"Exploration convoy\": {set atacante to \"Convoy de exploración\"}}\r\n{if event.by = \"Hitman\": {set atacante to \"un sicario\"}}\r\n{if event.by = \"Messenger\": {set atacante to \"un mensajero\"}}\r\n{if event.by = \"Military\": {set atacante to \"un militar\"}}\r\n{if event.by = \"Miner\": {set atacante to \"un minero\"}}\r\n{if event.by = \"NPC\": {set atacante to \"un piloto desconocido\"}}\r\n{if event.by = \"Passenger hunter\": {set atacante to \"un cazador de pasajeros\"}}\r\n{if event.by = \"Passenger liner\": {set atacante to \"una aerolinea de pasajeros\"}}\r\n{if event.by = \"Pirate\": {set atacante to \"un pirata\"}}\r\n{if event.by = \"Police\": {set atacante to \"un policía\"}}\r\n{if event.by = \"Propagandist\": {set atacante to \"un Propagandista\"}}\r\n{if event.by = \"Protester\": {set atacante to \"un Revolucionario\"}}\r\n{if event.by = \"Refugee\": {set atacante to \"un Refugiado\"}}\r\n{if event.by = \"Rival power's agent\": {set atacante to \"un agente de la potencia rival\"}}\r\n{if event.by = \"Search and rescue\": {set atacante to \"una nave de rescate\"}}\r\n{if event.by = \"Starship One\": {set atacante to \"una nave estelar\"}}\r\n{if event.by = \"Station\": {set atacante to \"una estación\"}}\r\n{if event.by = \"Wedding convoy\": {set atacante to \"un convoy de bodas\"}}\r\n\r\n\r\n\r\n{_ See if we are carrying non-limpet cargo}\n{set carryingvaluablecargo to 0}\n{for cargo in ship.cargo:\n {if cargo.commodity != 'Drón':\n {set carryingvaluablecargo to 1}\n }\n}\n\n{if carryingvaluablecargo = 1:\n Precaución: {OneOf(\r\n \"detectado escaneo de carga\",\r\n \"estamos siendo escaneados\",\r\n \"nuestra carga está siendo escaneada\"\r\n )}\n {if event.by:\n por {atacante} \n }\n}", "default": true }, "NPC interdiction commenced": { "name": "NPC interdiction commenced", "description": "Se activa cuando se detecta un intento de interdicción de su nave por un NPC", "enabled": true, "priority": 3, "responder": true, "script": "{if event.by = \"Ambushed pilot\": {set atacante to \"un Piloto emboscado\"}}\r\n{if event.by = \"Bounty hunter\": {set atacante to \"un Cazarrecompensas\"}}\r\n{if event.by = \"Capital ship\": {set atacante to \"una Nave capital\"}}\r\n{if event.by = \"Cargo hunter\": {set atacante to \"un ladrón de cargas\"}}\r\n{if event.by = \"Civilian pilot\": {set atacante to \"un piloto civíl\"}}\r\n{if event.by = \"Cruise liner\": {set atacante to \"Crucero de línea\"}}\r\n{if event.by = \"Escort\": {set atacante to \"Escolta\"}}\r\n{if event.by = \"Exploration convoy\": {set atacante to \"Convoy de exploración\"}}\r\n{if event.by = \"Hitman\": {set atacante to \"un sicario\"}}\r\n{if event.by = \"Messenger\": {set atacante to \"un mensajero\"}}\r\n{if event.by = \"Military\": {set atacante to \"un militar\"}}\r\n{if event.by = \"Miner\": {set atacante to \"un minero\"}}\r\n{if event.by = \"NPC\": {set atacante to \"un piloto desconocido\"}}\r\n{if event.by = \"Passenger hunter\": {set atacante to \"un cazador de pasajeros\"}}\r\n{if event.by = \"Passenger liner\": {set atacante to \"una aerolinea de pasajeros\"}}\r\n{if event.by = \"Pirate\": {set atacante to \"un pirata\"}}\r\n{if event.by = \"Police\": {set atacante to \"un policía\"}}\r\n{if event.by = \"Propagandist\": {set atacante to \"un Propagandista\"}}\r\n{if event.by = \"Protester\": {set atacante to \"un Revolucionario\"}}\r\n{if event.by = \"Refugee\": {set atacante to \"un Refugiado\"}}\r\n{if event.by = \"Rival power's agent\": {set atacante to \"un agente de la potencia rival\"}}\r\n{if event.by = \"Search and rescue\": {set atacante to \"una nave de rescate\"}}\r\n{if event.by = \"Starship One\": {set atacante to \"una nave estelar\"}}\r\n{if event.by = \"Station\": {set atacante to \"una estación\"}}\r\n{if event.by = \"Wedding convoy\": {set atacante to \"un convoy de bodas\"}}\r\n\r\n\r\nAviso: {OneOf(\"detectado un intento de interdicción\",\"Estamos siendo interdictados\")} \n{if event.by:\n por {atacante} \n}.\n\n{Occasionally(3, \"Apague motores y sométase, o prepárese para evadir la interdicción.\")}", "defaultValue": "{if event.by = \"Ambushed pilot\": {set atacante to \"un Piloto emboscado\"}}\r\n{if event.by = \"Bounty hunter\": {set atacante to \"un Cazarrecompensas\"}}\r\n{if event.by = \"Capital ship\": {set atacante to \"una Nave capital\"}}\r\n{if event.by = \"Cargo hunter\": {set atacante to \"un ladrón de cargas\"}}\r\n{if event.by = \"Civilian pilot\": {set atacante to \"un piloto civíl\"}}\r\n{if event.by = \"Cruise liner\": {set atacante to \"Crucero de línea\"}}\r\n{if event.by = \"Escort\": {set atacante to \"Escolta\"}}\r\n{if event.by = \"Exploration convoy\": {set atacante to \"Convoy de exploración\"}}\r\n{if event.by = \"Hitman\": {set atacante to \"un sicario\"}}\r\n{if event.by = \"Messenger\": {set atacante to \"un mensajero\"}}\r\n{if event.by = \"Military\": {set atacante to \"un militar\"}}\r\n{if event.by = \"Miner\": {set atacante to \"un minero\"}}\r\n{if event.by = \"NPC\": {set atacante to \"un piloto desconocido\"}}\r\n{if event.by = \"Passenger hunter\": {set atacante to \"un cazador de pasajeros\"}}\r\n{if event.by = \"Passenger liner\": {set atacante to \"una aerolinea de pasajeros\"}}\r\n{if event.by = \"Pirate\": {set atacante to \"un pirata\"}}\r\n{if event.by = \"Police\": {set atacante to \"un policía\"}}\r\n{if event.by = \"Propagandist\": {set atacante to \"un Propagandista\"}}\r\n{if event.by = \"Protester\": {set atacante to \"un Revolucionario\"}}\r\n{if event.by = \"Refugee\": {set atacante to \"un Refugiado\"}}\r\n{if event.by = \"Rival power's agent\": {set atacante to \"un agente de la potencia rival\"}}\r\n{if event.by = \"Search and rescue\": {set atacante to \"una nave de rescate\"}}\r\n{if event.by = \"Starship One\": {set atacante to \"una nave estelar\"}}\r\n{if event.by = \"Station\": {set atacante to \"una estación\"}}\r\n{if event.by = \"Wedding convoy\": {set atacante to \"un convoy de bodas\"}}\r\n\r\n\r\nAviso: {OneOf(\"detectado un intento de interdicción\",\"Estamos siendo interdictados\")} \n{if event.by:\n por {atacante} \n}.\n\n{Occasionally(3, \"Apague motores y sométase, o prepárese para evadir la interdicción.\")}", "default": true }, "Passengers": { "name": "Passengers", "description": "Triggered at session start from Passengers event", "enabled": true, "priority": 3, "responder": true, "script": "{ Passengers }\r\n{_ Triggered at session start from Passengers event }", "defaultValue": "{ Passengers }\r\n{_ Triggered at session start from Passengers event }", "default": true }, "Power commodity delivered": { "name": "Power commodity delivered", "description": "Se activa cuando un Comandante entrega una mercancía a una potencia", "enabled": true, "priority": 5, "responder": true, "script": "{event.amount} units of {event.commodity} delivered {Occasionally(2, \"for {P(event.power)}\")}.", "defaultValue": "{event.amount} units of {event.commodity} delivered {Occasionally(2, \"for {P(event.power)}\")}.", "default": true }, "Power commodity fast tracked": { "name": "Power commodity fast tracked", "description": "Se activa cuando un Comandante rastrea rápidamente una mercancía de una potencia", "enabled": true, "priority": 5, "responder": true, "script": "{Humanise(event.amount)} créditos gastados en un rápido rastreo de mercancías {Occasionally(2, \"para {P(event.power)}\")}.", "defaultValue": "{Humanise(event.amount)} créditos gastados en un rápido rastreo de mercancías {Occasionally(2, \"para {P(event.power)}\")}.", "default": true }, "Power commodity obtained": { "name": "Power commodity obtained", "description": "Se activa cuando un Comandante obtiene una mercancía de una potencia", "enabled": true, "priority": 5, "responder": true, "script": "Obtenidas {event.amount} unidades de {event.commodity} {Occasionally(2, \"para {P(event.power)}\")}.", "defaultValue": "Obtenidas {event.amount} unidades de {event.commodity} {Occasionally(2, \"para {P(event.power)}\")}.", "default": true }, "Power defected": { "name": "Power defected", "description": "Se activa cuando deserta de una potencia para unirse a otra", "enabled": true, "priority": 4, "responder": true, "script": "Ha desertado de {P(event.frompower)} para unirse a {P(event.topower)}.", "defaultValue": "Ha desertado de {P(event.frompower)} para unirse a {P(event.topower)}.", "default": true }, "Power expansion vote cast": { "name": "Power expansion vote cast", "description": "Se activa cuando un Comandante vota a favor de la expansión de un sistema", "enabled": true, "priority": 4, "responder": true, "script": "Voto\n{OneOf(\"emitido\", \"registrado\")}", "defaultValue": "Voto\n{OneOf(\"emitido\", \"registrado\")}", "default": true }, "Power joined": { "name": "Power joined", "description": "Se activa cuando se une a una potencia", "enabled": true, "priority": 3, "responder": true, "script": "Se ha alineado con {P(event.power)}", "defaultValue": "Se ha alineado con {P(event.power)}", "default": true }, "Power left": { "name": "Power left", "description": "Se activa cuando abandona una potencia", "enabled": true, "priority": 3, "responder": true, "script": "Ya no se encuentra alineado con {P(event.power)}", "defaultValue": "Ya no se encuentra alineado con {P(event.power)}", "default": true }, "Power preparation vote cast": { "name": "Power preparation vote cast", "description": "Se activa cuando un Comandante vota por la preparación de un sistema", "enabled": true, "priority": 5, "responder": true, "script": "Voto\n{OneOf(\"emitido\", \"registrado\")}", "defaultValue": "Voto\n{OneOf(\"emitido\", \"registrado\")}", "default": true }, "Power salary claimed": { "name": "Power salary claimed", "description": "Se activa cuando un Comandante reclama su salario de una potencia", "enabled": true, "priority": 5, "responder": true, "script": "{if event.amount > 1300000: {set esde to \"es de\"}}\r\n{if event.amount <= 1300000: {set esde to \" de\"}}\r\n{if event.amount < 1000000: {set esde to \"\"}}\r\n\r\n\r\nReclamado salario por importe de \r\n\r\n{if event.amount = 1000: mil créditos\r\n|else:\r\n{Humanise(event.amount)}{esde} créditos\r\n}\r\n\r\n{Occasionally(2, \"de {P(event.power)}\")}.", "defaultValue": "{if event.amount > 1300000: {set esde to \"es de\"}}\r\n{if event.amount <= 1300000: {set esde to \" de\"}}\r\n{if event.amount < 1000000: {set esde to \"\"}}\r\n\r\n\r\nReclamado salario por importe de \r\n\r\n{if event.amount = 1000: mil créditos\r\n|else:\r\n{Humanise(event.amount)}{esde} créditos\r\n}\r\n\r\n{Occasionally(2, \"de {P(event.power)}\")}.", "default": true }, "Power voucher received": { "name": "Power voucher received", "description": "Se activa cuando se entrega un bono de combate en contra de una potencia opositora", "enabled": true, "priority": 5, "responder": true, "script": null, "defaultValue": null, "default": true }, "Powerplay": { "name": "Powerplay", "description": "Triggered periodically when pledged to a power", "enabled": true, "priority": 3, "responder": true, "script": "Te has comprometido con la causa de {P(event.power)}. \r\nHas servido durante \r\n{if event.timepledgedweeks > 1:\r\n {Humanise(event.timepledgedweeks)} semanas \r\n|elif event.timepledgedweeks = 1:\r\n una semana \r\n|elif event.timepledgeddays > 1:\r\n {Humanise(event.timepledgeddays)} días\r\n|elif event.timepledgeddays = 1:\r\n un día\r\n|else:\r\n menos de un día\r\n}\r\ny estás en el rango {event.rank}, con \r\n{if event.merits > 0:\r\n {Humanise(event.merits)}\r\n|else:\r\n sin\r\n}\r\nméritos acumulados.\r\n", "defaultValue": "You are pledged to {P(event.power)}. \r\nYou have served for \r\n{if event.timepledgedweeks > 1:\r\n {Humanise(event.timepledgedweeks)} weeks \r\n|elif event.timepledgedweeks = 1:\r\n one week \r\n|elif event.timepledgeddays > 1:\r\n {Humanise(event.timepledgeddays)} days\r\n|elif event.timepledgeddays = 1:\r\n one day\r\n|else:\r\n less than one day\r\n}\r\nand are at rank {event.rank} with \r\n{if event.merits > 0:\r\n {Humanise(event.merits)}\r\n|else:\r\n no\r\n}\r\naccumulated merits.\r\n", "default": false }, "RandomizeVoice": { "name": "RandomizeVoice", "description": "(TEST)", "enabled": true, "priority": null, "responder": false, "script": "{_Shirka}\r\n\r\n\r\n{_ Set a global variable SpeakerID in calling script, before calling this script. }\r\n\r\n{_ This script will return a Voice name }\r\n{_ For a given SpeakerID, it will always return the same voice }\r\n\r\n{_ get list of voices }\r\n{_ We exclude the voice you have chosen for the EDDI speech responder, to it won't be used for NPCs }\r\n{_ Set that name here: }\r\n{declare MY_SHIP_VOICE as \"Microsoft Zira Desktop\"}\r\n\r\n{declare VOICES as []}\r\n{for voice in VoiceDetails():\r\n {if voice.name != MY_SHIP_VOICE:\r\n {set VOICES to cat(VOICES,[voice])}\r\n }\r\n}\r\n\r\n{if len(VOICES) > 1:\r\n\r\n {declare THISVOICE as 0}\r\n\r\n {_ Create a hash code from the SpeakerID (if any) }\r\n {if SpeakerID:\r\n {declare i as 0}\r\n {while i < len(SpeakerID):\r\n {declare ch as slice(SpeakerID,i,1)} \r\n {set THISVOICE to THISVOICE+ord(ch)} \r\n {set i to i+1}\r\n }\r\n {set THISVOICE to mod(THISVOICE,len(VOICES))}\r\n |else:\r\n {_ if no SpeakerID, use a random voice }\r\n {set THISVOICE to rand(0,len(VOICES))} \r\n }\r\n\r\n {echo VOICES[THISVOICE].name}\r\n}", "defaultValue": "{_Shirka}\r\n\r\n\r\n{_ Set a global variable SpeakerID in calling script, before calling this script. }\r\n\r\n{_ This script will return a Voice name }\r\n{_ For a given SpeakerID, it will always return the same voice }\r\n\r\n{_ get list of voices }\r\n{_ We exclude the voice you have chosen for the EDDI speech responder, to it won't be used for NPCs }\r\n{_ Set that name here: }\r\n{declare MY_SHIP_VOICE as \"Microsoft Zira Desktop\"}\r\n\r\n{declare VOICES as []}\r\n{for voice in VoiceDetails():\r\n {if voice.name != MY_SHIP_VOICE:\r\n {set VOICES to cat(VOICES,[voice])}\r\n }\r\n}\r\n\r\n{if len(VOICES) > 1:\r\n\r\n {declare THISVOICE as 0}\r\n\r\n {_ Create a hash code from the SpeakerID (if any) }\r\n {if SpeakerID:\r\n {declare i as 0}\r\n {while i < len(SpeakerID):\r\n {declare ch as slice(SpeakerID,i,1)} \r\n {set THISVOICE to THISVOICE+ord(ch)} \r\n {set i to i+1}\r\n }\r\n {set THISVOICE to mod(THISVOICE,len(VOICES))}\r\n |else:\r\n {_ if no SpeakerID, use a random voice }\r\n {set THISVOICE to rand(0,len(VOICES))} \r\n }\r\n\r\n {echo VOICES[THISVOICE].name}\r\n}", "default": true }, "Repair drone": { "name": "Repair drone", "description": "Se activa cuando su nave es reparada por medio de un controlador de drones", "enabled": true, "priority": 3, "responder": true, "script": "{set systemsrepaired to []}\n\n{if event.hull:\n {set systemsrepaired to cat(systemsrepaired, [\"el casco\"])} \n}\n{if event.cockpit:\n {set systemsrepaired to cat(systemsrepaired, [\"la cabina\"])} \n}\n{if event.corrosion:\n {set systemsrepaired to cat(systemsrepaired, [OneOf(\"sistemas corroidos\", \"sistemas afectados por corrosión\")])} \n}\n\n{if len(systemsrepaired) > 0:\n\n {set remote to Occasionally(2, \"remotas\")}\n {set sequence to OneOf(\"el drón ha\", \"Se han\")} \n {OneOf(\n \"{sequence} completado las reparaciones {remote} de\", \n \"secuencia remota completa. {sequence} hecho las reparaciones en\",\n \"ciclo completado. {sequence} finalizado las reparaciones {remote} en\"\n )}\n\n {set cur to 0}\n {while cur < len(systemsrepaired):\n {if cur = 0:\n |elif cur < len(systemsrepaired) - 1:\n , \n |else:\n and\n }\n {systemsrepaired[cur]}\n {set cur to cur + 1}\n }\n}.\n", "defaultValue": "{set systemsrepaired to []}\n\n{if event.hull:\n {set systemsrepaired to cat(systemsrepaired, [\"el casco\"])} \n}\n{if event.cockpit:\n {set systemsrepaired to cat(systemsrepaired, [\"la cabina\"])} \n}\n{if event.corrosion:\n {set systemsrepaired to cat(systemsrepaired, [OneOf(\"sistemas corroidos\", \"sistemas afectados por corrosión\")])} \n}\n\n{if len(systemsrepaired) > 0:\n\n {set remote to Occasionally(2, \"remotas\")}\n {set sequence to OneOf(\"el drón ha\", \"Se han\")} \n {OneOf(\n \"{sequence} completado las reparaciones {remote} de\", \n \"secuencia remota completa. {sequence} hecho las reparaciones en\",\n \"ciclo completado. {sequence} finalizado las reparaciones {remote} en\"\n )}\n\n {set cur to 0}\n {while cur < len(systemsrepaired):\n {if cur = 0:\n |elif cur < len(systemsrepaired) - 1:\n , \n |else:\n and\n }\n {systemsrepaired[cur]}\n {set cur to cur + 1}\n }\n}.\n", "default": true }, "Repeat last speech": { "name": "Repeat last speech", "description": "Repite lo último que se ha dicho", "enabled": true, "priority": null, "responder": false, "script": "{state.eddi_context_last_speech}", "defaultValue": "{state.eddi_context_last_speech}", "default": true }, "Report last scan value": { "name": "Report last scan value", "description": "Informa sobre el valor estimado del último cuerpo celeste escaneado", "enabled": true, "priority": null, "responder": false, "script": "{_ Preferences }\r\n{set minScanValue to 100000} {_ Set the minimum credit value that should be voiced _}\r\n\r\n{_ Context }\r\n{set scanValue to state.eddi_context_last_scan_estimated_value}\r\n\r\n{if scanValue > minScanValue:\r\n {OneOf(\"Este escaneo puede\",\"Este paquete de datos puede\",\"Estos datos pueden\",\"Esto puede\")} \r\n {OneOf(\"dar \",\"ser vendido por\",\"dar un beneficio de\",\"valer unos\") } \r\n {Humanise(scanValue)} créditos.\r\n}\r\n", "defaultValue": "{_ Preferences }\r\n{set minScanValue to 100000} {_ Set the minimum credit value that should be voiced _}\r\n\r\n{_ Context }\r\n{set scanValue to state.eddi_context_last_scan_estimated_value}\r\n\r\n{if scanValue > minScanValue:\r\n {OneOf(\"Este escaneo puede\",\"Este paquete de datos puede\",\"Estos datos pueden\",\"Esto puede\")} \r\n {OneOf(\"dar \",\"ser vendido por\",\"dar un beneficio de\",\"valer unos\") } \r\n {Humanise(scanValue)} créditos.\r\n}\r\n", "default": true }, "Report last scan value 2": { "name": "Report last scan value 2", "description": "Copia del evento con el mismo nombre sin mínimo.", "enabled": true, "priority": null, "responder": false, "script": "{_ Preferences }\r\n{set minScanValue to 1} {_ Set the minimum credit value that should be voiced _}\r\n\r\n{_ Context }\r\n{set scanValue to state.eddi_context_last_scan_estimated_value}\r\n\r\n{if scanValue > minScanValue:\r\n {OneOf(\"Este escaneo puede\",\"Este paquete de datos puede\",\"Estos datos pueden\",\"Esto puede\")} \r\n {OneOf(\"dar \",\"ser vendido por\",\"dar un beneficio de\",\"valer unos\") } \r\n {Humanise(scanValue)} créditos.\r\n}\r\n", "defaultValue": "{_ Preferences }\r\n{set minScanValue to 1} {_ Set the minimum credit value that should be voiced _}\r\n\r\n{_ Context }\r\n{set scanValue to state.eddi_context_last_scan_estimated_value}\r\n\r\n{if scanValue > minScanValue:\r\n {OneOf(\"Este escaneo puede\",\"Este paquete de datos puede\",\"Estos datos pueden\",\"Esto puede\")} \r\n {OneOf(\"dar \",\"ser vendido por\",\"dar un beneficio de\",\"valer unos\") } \r\n {Humanise(scanValue)} créditos.\r\n}\r\n", "default": true }, "Ring hotspots detected": { "name": "Ring hotspots detected", "description": "Triggered when hotspots are detected in a ring", "enabled": true, "priority": 3, "responder": true, "script": "{if ship.Role.invariantName = \"Mining\" || ship.Role.invariantName = \"Multipurpose\":\r\n {set hotspots to []}\r\n {for hotspot in event.hotspots: \r\n {set hotspot_desc to: \r\n {hotspot.amount} de {hotspot.commodity}\r\n }\r\n {set hotspots to cat(hotspots, [hotspot_desc])}\r\n }\r\n\r\n Puntos calientes detectados:\r\n {List(hotspots)}\r\n}", "defaultValue": "{if ship.Role.invariantName = \"Miner\" || ship.Role.invariantName = \"Multipurpose\":\r\n {set hotspots to []}\r\n {for hotspot in event.hotspots: \r\n {set hotspot_desc to: \r\n {hotspot.amount} of {hotspot.commodity}\r\n }\r\n {set hotspots to cat(hotspots, [hotspot_desc])}\r\n }\r\n\r\n Hotspots detected.\r\n {List(hotspots)}\r\n}", "default": false }, "Ring mapped": { "name": "Ring mapped", "description": "Triggered after mapping a ring with the Surface Area Analysis scanner", "enabled": true, "priority": 3, "responder": true, "script": "{_ Context}\r\n{SetState('eddi_context_last_action', 'scan')}\r\n{SetState('eddi_context_last_subject', 'ring')}\r\n{SetState('eddi_context_body_system', system.name)}\r\n{SetState('eddi_context_ring_name', event.ringname)}\r\n\r\n{_ Process the event _}\r\n\r\n{if ship.Role.edname = \"Exploration\" || ship.Role.edname = \"Multipurpose\":\r\n\r\n {Pause(3000)}\r\n\r\n {OneOf(\"mapping\", \"probing\", \"scanning\")}\r\n of {event.reserves} {event.composition} ring\r\n {OneOf(\"is\", \"is now\")}\r\n {OneOf(\"complete\", \"finished\")}.\r\n}", "defaultValue": "{_ Context}\r\n{SetState('eddi_context_last_action', 'scan')}\r\n{SetState('eddi_context_last_subject', 'ring')}\r\n{SetState('eddi_context_body_system', system.name)}\r\n{SetState('eddi_context_ring_name', event.ringname)}\r\n\r\n{_ Process the event _}\r\n\r\n{if ship.Role.edname = \"Exploration\" || ship.Role.edname = \"Multipurpose\":\r\n\r\n {Pause(3000)}\r\n\r\n {OneOf(\"mapping\", \"probing\", \"scanning\")}\r\n of {event.reserves} {event.composition} ring\r\n {OneOf(\"is\", \"is now\")}\r\n {OneOf(\"complete\", \"finished\")}.\r\n}", "default": true }, "Route details": { "name": "Route details", "description": "Triggered when a route has been generated or updated", "enabled": true, "priority": 3, "responder": true, "script": "{_ Route details }\r\n{_ Triggered when a route has been generated or updated }\r\n\r\n\r\n{if event.routetype = \"expiring\":\r\n {if event.distance > 0:\r\n {set mission to MissionDetails(event.missionids[0])}\r\n\r\n {if find(mission.typeEDName, \"Passenger\") > -1:\r\n {set type to \"Transporte \"}\r\n {set type to cat(type, mission.passengertype)}\r\n |else:\r\n {set type to mission.type}\r\n }\r\n {set type to cat(type, \" misión\")}\r\n\r\n {type} {if mission.faction: para {mission.faction}}\r\n {if mission.destinationsystem: en la\r\n {if mission.destinationsystem = system.name:\r\n actual\r\n |else:\r\n {mission.destinationsystem}\r\n } sistema\r\n } is cerca de expirar.\r\n |else:\r\n No tiene misiones activas.\r\n }\r\n|elif event.routetype = \"facilitator\":\r\n {if event.distance > 0:\r\n Nuestro contacto de Interestélar fáctor más cercano está en\r\n la estación {destinationstation.name}, en el sistema\r\n {if event.system = system.name:\r\n este sistema\r\n |else:\r\n sistema {event.system}, a {round(event.distance, 1)} años luz de aquí\r\n }.\r\n |else:\r\n No se encuenta ningún contacto de Interestélar fáctor en el rango del sensor.\r\n }\r\n|elif event.routetype = \"farthest\":\r\n {if event.distance > 0:\r\n Su {if missionsCount = 1: único |else: más lejano}\r\n objetivo está en el sistema\r\n {if event.system = system.name:\r\n este sistema\r\n |else:\r\n sistema {event.system}, a {round(event.distance, 1)} años luz de aquí\r\n }.\r\n |else:\r\n No se ha encontrado ninguna misión con un sistema destino designado.\r\n }\r\n|elif event.routetype = \"most\":\r\n {if missionsCount = 1:\r\n Su único objeto está {Occasionally(2,\"localizado\")} en\r\n {if missions[0].destinationsystem = \"\":\r\n un sistema {Occasionally(2,\"estelar\")} desconocido\r\n |elif missions[0].destinationsystem = system.name:\r\n el actual sistema {Occasionally(2,\"estelar\")}\r\n |else:\r\n el sistema {Occasionally(2,\"estelar\")} {missions[0].destinationsystem}\r\n }\r\n .\r\n |else:\r\n {set systems to split(event.systems, \"_\")}\r\n {set system_most to event.system}\r\n {set systems_count to len(systems)}\r\n\r\n {if systems_count = 1:\r\n {if system_most = system.name:\r\n {set system_most to \"El sistema actual\"}\r\n |else:\r\n {set system_most to cat(\"el sistema \", system_most)}\r\n }\r\n {OneOf(\"La mayoría de sus misiones están {Occasionally(2,'localizadas')} en {system_most}\",\r\n \"{system_most} tiene {OneOf('la mayoría','la mayoría de sus')} misiones\",\r\n \"{system_most} la mayoría de misiones pendientes de completar\")}.\r\n |elif systems_count > 1:\r\n Tienes {event.count} objetivo{if event.count > 1:s, cada uno} en {if event.count > 1:los sistemas|else:el sistema}\r\n\r\n {set cur to 0}\r\n {while cur < len(equal):\r\n {systems[cur]}\r\n {set cur to cur + 1}\r\n {if cur = systems_count-1: y |elif cur < systems_count: ,}\r\n }.\r\n }\r\n }\r\n|elif event.routetype = \"nearest\":\r\n {if event.distance > 0:\r\n Su {if missionsCount = 1: único objetivo |else: objetivo más cercano}\r\n está en el\r\n {if event.system = system.name:\r\n sistema actual\r\n |else:\r\n sistema {event.system}, a {round(event.distance, 1)} años luz de aquí\r\n }.\r\n |else:\r\n No se ha encontrado ninguna misión con un sistema destino designado.\r\n }\r\n|elif event.routetype = \"route\":\r\n {if event.routedistance > 0:\r\n Ruta de misiones calculada para {event.count} sistemas.\r\n La distancia total de la ruta es de {round(event.routedistance, 1)} años luz.\r\n El primer objeto está en el sistema {event.system}, a {round(event.distance, 1)} de aquí.\r\n |else:\r\n No consigo calcular la ruta para las misiones actuales.\r\n }\r\n|elif event.routetype = \"source\":\r\n {if event.count > 0:\r\n {set systems to split(event.route, \"_\")}\r\n\r\n {set pos to 0}\r\n {while pos < event.count:\r\n\r\n {set source_cargo to []}\r\n {for missionid in event.missionids:\r\n {set haulage to HaulageDetails(missionid)}\r\n {if haulage.sourcesystem = systems[pos]:\r\n {set cargo to CargoDetails(missionid)}\r\n {if find(source_cargo, cargo.name) = -1:\r\n {set source_cargo to cat(source_cargo, [cargo.name])}\r\n }\r\n }\r\n }\r\n\r\n {if pos = 0:\r\n El origen de su {if event.count = 1: única misión de carga |else: misión de carga más cercana}\r\n |elif pos = 1:\r\n además, El origen de su misión de carga\r\n |elif pos = event.count - 1:\r\n finalmente, El origen de su misión de carga\r\n |else:\r\n Su misión de carga\r\n }\r\n\r\n para\r\n {set cur to 0}\r\n {while cur < len(source_cargo):\r\n {source_cargo[cur]}\r\n {set cur to cur + 1}\r\n {if cur = len(source_cargo) - 1: y |elif cur < len(source_cargo): ,}\r\n }\r\n\r\n está en el sistema \r\n {if systems[pos] = system.name:\r\n actual\r\n |else:\r\n {systems[pos]},\r\n {set distance to Distance(system.name, systems[pos])}\r\n a {round(distance, 1)} años luz de aquí\r\n }.\r\n {set pos to pos + 1}\r\n }\r\n {SetState('eddi_context_cargo_source', event.route)}\r\n |else:\r\n No se ha encontrado ningún origen de carga con un sistema de destino designado\r\n }\r\n|elif event.routetype = \"update\":\r\n {if event.system && event.system != \"\":\r\n El destino de la siguiente misión es el sistema {event.system}, a {round(event.distance, 1)} años luz de aquí.\r\n }\r\n}\r\n\r\n", "defaultValue": "{_ Route details }\r\n{_ Triggered when a route has been generated or updated }\r\n\r\n\r\n{if event.routetype = \"expiring\":\r\n {if event.distance > 0:\r\n {set mission to MissionDetails(event.missionids[0])}\r\n\r\n {if find(mission.typeEDName, \"Passenger\") > -1:\r\n {set type to \"Transporte \"}\r\n {set type to cat(type, mission.passengertype)}\r\n |else:\r\n {set type to mission.type}\r\n }\r\n {set type to cat(type, \" misión\")}\r\n\r\n {type} {if mission.faction: para {mission.faction}}\r\n {if mission.destinationsystem: en la\r\n {if mission.destinationsystem = system.name:\r\n actual\r\n |else:\r\n {mission.destinationsystem}\r\n } sistema\r\n } is cerca de expirar.\r\n |else:\r\n No tiene misiones activas.\r\n }\r\n|elif event.routetype = \"facilitator\":\r\n {if event.distance > 0:\r\n Nuestro contacto de Interestélar fáctor más cercano está en\r\n la estación {destinationstation.name}, en el sistema\r\n {if event.system = system.name:\r\n este sistema\r\n |else:\r\n sistema {event.system}, a {round(event.distance, 1)} años luz de aquí\r\n }.\r\n |else:\r\n No se encuenta ningún contacto de Interestélar fáctor en el rango del sensor.\r\n }\r\n|elif event.routetype = \"farthest\":\r\n {if event.distance > 0:\r\n Su {if missionsCount = 1: único |else: más lejano}\r\n objetivo está en el sistema\r\n {if event.system = system.name:\r\n este sistema\r\n |else:\r\n sistema {event.system}, a {round(event.distance, 1)} años luz de aquí\r\n }.\r\n |else:\r\n No se ha encontrado ninguna misión con un sistema destino designado.\r\n }\r\n|elif event.routetype = \"most\":\r\n {if missionsCount = 1:\r\n Su único objeto está {Occasionally(2,\"localizado\")} en\r\n {if missions[0].destinationsystem = \"\":\r\n un sistema {Occasionally(2,\"estelar\")} desconocido\r\n |elif missions[0].destinationsystem = system.name:\r\n el actual sistema {Occasionally(2,\"estelar\")}\r\n |else:\r\n el sistema {Occasionally(2,\"estelar\")} {missions[0].destinationsystem}\r\n }\r\n .\r\n |else:\r\n {set systems to split(event.systems, \"_\")}\r\n {set system_most to event.system}\r\n {set systems_count to len(systems)}\r\n\r\n {if systems_count = 1:\r\n {if system_most = system.name:\r\n {set system_most to \"El sistema actual\"}\r\n |else:\r\n {set system_most to cat(\"el sistema \", system_most)}\r\n }\r\n {OneOf(\"La mayoría de sus misiones están {Occasionally(2,'localizadas')} en {system_most}\",\r\n \"{system_most} tiene {OneOf('la mayoría','la mayoría de sus')} misiones\",\r\n \"{system_most} la mayoría de misiones pendientes de completar\")}.\r\n |elif systems_count > 1:\r\n Tienes {event.count} objetivo{if event.count > 1:s, cada uno} en {if event.count > 1:los sistemas|else:el sistema}\r\n\r\n {set cur to 0}\r\n {while cur < len(equal):\r\n {systems[cur]}\r\n {set cur to cur + 1}\r\n {if cur = systems_count-1: y |elif cur < systems_count: ,}\r\n }.\r\n }\r\n }\r\n|elif event.routetype = \"nearest\":\r\n {if event.distance > 0:\r\n Su {if missionsCount = 1: único objetivo |else: objetivo más cercano}\r\n está en el\r\n {if event.system = system.name:\r\n sistema actual\r\n |else:\r\n sistema {event.system}, a {round(event.distance, 1)} años luz de aquí\r\n }.\r\n |else:\r\n No se ha encontrado ninguna misión con un sistema destino designado.\r\n }\r\n|elif event.routetype = \"route\":\r\n {if event.routedistance > 0:\r\n Ruta de misiones calculada para {event.count} sistemas.\r\n La distancia total de la ruta es de {round(event.routedistance, 1)} años luz.\r\n El primer objeto está en el sistema {event.system}, a {round(event.distance, 1)} de aquí.\r\n |else:\r\n No consigo calcular la ruta para las misiones actuales.\r\n }\r\n|elif event.routetype = \"source\":\r\n {if event.count > 0:\r\n {set systems to split(event.route, \"_\")}\r\n\r\n {set pos to 0}\r\n {while pos < event.count:\r\n\r\n {set source_cargo to []}\r\n {for missionid in event.missionids:\r\n {set haulage to HaulageDetails(missionid)}\r\n {if haulage.sourcesystem = systems[pos]:\r\n {set cargo to CargoDetails(missionid)}\r\n {if find(source_cargo, cargo.name) = -1:\r\n {set source_cargo to cat(source_cargo, [cargo.name])}\r\n }\r\n }\r\n }\r\n\r\n {if pos = 0:\r\n El origen de su {if event.count = 1: única misión de carga |else: misión de carga más cercana}\r\n |elif pos = 1:\r\n además, El origen de su misión de carga\r\n |elif pos = event.count - 1:\r\n finalmente, El origen de su misión de carga\r\n |else:\r\n Su misión de carga\r\n }\r\n\r\n para\r\n {set cur to 0}\r\n {while cur < len(source_cargo):\r\n {source_cargo[cur]}\r\n {set cur to cur + 1}\r\n {if cur = len(source_cargo) - 1: y |elif cur < len(source_cargo): ,}\r\n }\r\n\r\n está en el sistema \r\n {if systems[pos] = system.name:\r\n actual\r\n |else:\r\n {systems[pos]},\r\n {set distance to Distance(system.name, systems[pos])}\r\n a {round(distance, 1)} años luz de aquí\r\n }.\r\n {set pos to pos + 1}\r\n }\r\n {SetState('eddi_context_cargo_source', event.route)}\r\n |else:\r\n No se ha encontrado ningún origen de carga con un sistema de destino designado\r\n }\r\n|elif event.routetype = \"update\":\r\n {if event.system && event.system != \"\":\r\n El destino de la siguiente misión es el sistema {event.system}, a {round(event.distance, 1)} años luz de aquí.\r\n }\r\n}\r\n\r\n", "default": true }, "Screenshot": { "name": "Screenshot", "description": "Se activa cuando se toma una captura de pantalla", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Search and rescue": { "name": "Search and rescue", "description": "Se activa cuando se entregan elementos a un contacto de Búsqueda y Rescate", "enabled": true, "priority": 3, "responder": true, "script": "{OneOf(\"recuperado\", \"salvado\")}{if event.amount > 1:s}\n{event.amount}\n{if event.commodity.rare: raro}\n\n{if event.commodity.name = \"Cajas negras\":\n {if event.amount > 1:\n {OneOf(\" registros de vuelo\", \" cajas negras\")}\n |else: \n {OneOf(\" registro de vuelo\", \"a caja negra\")}\n }\n\n|elif event.commodity.name = \"Cápsula de escape dañada\":\n {if event.amount > 1:\n {OneOf(\" cápsulas criogénicas dañadas\", \" cápsulas de escápe dañadas\")}\n |else:\n {OneOf(\"a cápsula criogénica dañada\", \"a cápsula de escápe dañada\")}\n }\n\n|elif event.commodity.name = \"Cápsula de escape ocupada\":\n {if event.amount > 1:\n {OneOf(\" cápsulas criogénicas ocupadas\", \" cápsulas de escápe ocupadas\")}\n |else:\n {OneOf(\"a cápsula criogénica ocupada\", \"a cápsula de escápe ocupada\")}\n }\n\n|elif event.commodity.name = \"Efectos personales\":\n {OneOf(\"conjunto\", \"bulto\")}{if event.amount > 1:s} de\n {OneOf(\"objetos personales\", \"recuerdos personales\")}\n\n|elif event.commodity.name = \"Restos de accidentes\":\n {set wreckage to OneOf(\"escombros\", \"restos\", \"resíduos\", basura espacial)}\n {set fragment to tonelada}\n {OneOf(\"{fragment}{if event.amount > 1:s} de {wreckage}\", \n \"{fragment}{if event.amount > 1:s} de {wreckage} provenientes de accidentes\")}\n\n|elif event.commodity.name = \"Rehenes\":\n {OneOf(\"rehen\")}{if event.amount > 1:es}\n\n|else:\n tonelada{if event.amount > 1:s} de {event.commodity.name},\n}\n\npor {(event.reward)} créditos\n", "defaultValue": "{OneOf(\"recuperado\", \"salvado\")}{if event.amount > 1:s}\n{event.amount}\n{if event.commodity.rare: raro}\n\n{if event.commodity.name = \"Cajas negras\":\n {if event.amount > 1:\n {OneOf(\" registros de vuelo\", \" cajas negras\")}\n |else: \n {OneOf(\" registro de vuelo\", \"a caja negra\")}\n }\n\n|elif event.commodity.name = \"Cápsula de escape dañada\":\n {if event.amount > 1:\n {OneOf(\" cápsulas criogénicas dañadas\", \" cápsulas de escápe dañadas\")}\n |else:\n {OneOf(\"a cápsula criogénica dañada\", \"a cápsula de escápe dañada\")}\n }\n\n|elif event.commodity.name = \"Cápsula de escape ocupada\":\n {if event.amount > 1:\n {OneOf(\" cápsulas criogénicas ocupadas\", \" cápsulas de escápe ocupadas\")}\n |else:\n {OneOf(\"a cápsula criogénica ocupada\", \"a cápsula de escápe ocupada\")}\n }\n\n|elif event.commodity.name = \"Efectos personales\":\n {OneOf(\"conjunto\", \"bulto\")}{if event.amount > 1:s} de\n {OneOf(\"objetos personales\", \"recuerdos personales\")}\n\n|elif event.commodity.name = \"Restos de accidentes\":\n {set wreckage to OneOf(\"escombros\", \"restos\", \"resíduos\", basura espacial)}\n {set fragment to tonelada}\n {OneOf(\"{fragment}{if event.amount > 1:s} de {wreckage}\", \n \"{fragment}{if event.amount > 1:s} de {wreckage} provenientes de accidentes\")}\n\n|elif event.commodity.name = \"Rehenes\":\n {OneOf(\"rehen\")}{if event.amount > 1:es}\n\n|else:\n tonelada{if event.amount > 1:s} de {event.commodity.name},\n}\n\npor {(event.reward)} créditos\n", "default": true }, "Security presence report": { "name": "Security presence report", "description": "Función para informar sobre los detalles del nivel de seguridad del sistema", "enabled": true, "priority": null, "responder": false, "script": "{if system.population > 0:\n {OneOf ('los sensores detectan','detecto')} \n\n {if system.security = \"None\":\n OneOf(\"una falta total\",\"una ausencia total\", \"la inexistencia\")\n |elif system.security = \"Low\":\n {OneOf(\"una mínima presencia\", \"una baja presencia\", \"muy poca presencia\",\"escasa presencia\")}\n |elif system.security = \"Medium\":\n {OneOf(\"un nivel medio\", \"alguna presencia\", \"cierta presencia\")}\n |elif system.security = \"High\":\n {OneOf(\"una alta presencia\", \"una fuerte presencia\", \"una abundante presencia\")}\n |else:\n {system.security}\n } \n {OneOf(\"de fuerzas policiales\", \"de seguridad\", \"de agentes de la ley\",\"de agentes de seguridad\")} {OneOf(\"por aquí\", \"en este sistema\", \"en esta zona\")}.\n}", "defaultValue": "{if system.population > 0:\n {OneOf ('los sensores detectan','detecto')} \n\n {if system.security = \"None\":\n OneOf(\"una falta total\",\"una ausencia total\", \"la inexistencia\")\n |elif system.security = \"Low\":\n {OneOf(\"una mínima presencia\", \"una baja presencia\", \"muy poca presencia\",\"escasa presencia\")}\n |elif system.security = \"Medium\":\n {OneOf(\"un nivel medio\", \"alguna presencia\", \"cierta presencia\")}\n |elif system.security = \"High\":\n {OneOf(\"una alta presencia\", \"una fuerte presencia\", \"una abundante presencia\")}\n |else:\n {system.security}\n } \n {OneOf(\"de fuerzas policiales\", \"de seguridad\", \"de agentes de la ley\",\"de agentes de seguridad\")} {OneOf(\"por aquí\", \"en este sistema\", \"en esta zona\")}.\n}", "default": true }, "Self destruct": { "name": "Self destruct", "description": "Se activa cuando comienza la secuencia de auto destrucción", "enabled": true, "priority": 1, "responder": true, "script": "Secuencia de autodestrucción iniciada. \r\nCerrando orificios de ventilación.\r\nPreparando cápsula de escápe.\r\nEnviando señal de socorro.\r\n{Pause(2000)}\r\nBuenasuerte. Comandante.", "defaultValue": "Secuencia de autodestrucción iniciada. \r\nCerrando orificios de ventilación.\r\nPreparando cápsula de escápe.\r\nEnviando señal de socorro.\r\n{Pause(2000)}\r\nBuenasuerte. Comandante.", "default": true }, "Session Scan Value": { "name": "Session Scan Value", "description": "Total estimated value of exploration scans for this gaming session (TEST)", "enabled": true, "priority": null, "responder": false, "script": "{_Shirka}\r\n\r\n{_ Session Scan Value}\r\n{_ Total estimated value of exploration scans for this gaming session}\r\n\r\n{set value to state.eddi_context_session_scan_value}\r\n\r\n{if (value = 0 || value = null) && logout != \"true\":\r\n {OneOf(\"Valuable scans have not\",\"No valuable scans have\")} been\r\n {OneOf(\"performed\", \"made \")}\r\n {OneOf(\"in\", \"during\")} this session.\r\n\r\n|elif value && value > 0:\r\n {if logout = true: \r\n This sessions\r\n |else:\r\n {OneOf(\"Current value of\", \"Value of current\")}\r\n }\r\n {OneOf(\"body and star\", \"exploration\")}\r\n scans is estimated {OneOf(\"to be\", \"at\")}\r\n {state.eddi_context_session_scan_value} credits.\r\n}\r\n", "defaultValue": "{_Shirka}\r\n\r\n{_ Session Scan Value}\r\n{_ Total estimated value of exploration scans for this gaming session}\r\n\r\n{set value to state.eddi_context_session_scan_value}\r\n\r\n{if (value = 0 || value = null) && logout != \"true\":\r\n {OneOf(\"Valuable scans have not\",\"No valuable scans have\")} been\r\n {OneOf(\"performed\", \"made \")}\r\n {OneOf(\"in\", \"during\")} this session.\r\n\r\n|elif value && value > 0:\r\n {if logout = true: \r\n This sessions\r\n |else:\r\n {OneOf(\"Current value of\", \"Value of current\")}\r\n }\r\n {OneOf(\"body and star\", \"exploration\")}\r\n scans is estimated {OneOf(\"to be\", \"at\")}\r\n {state.eddi_context_session_scan_value} credits.\r\n}\r\n", "default": true }, "Settlement approached": { "name": "Settlement approached", "description": "Se activa cuando se aproxima a un asentamiento (TEST)", "enabled": true, "priority": 3, "responder": true, "script": "{_ Settlement approached }\r\n{_ Triggered when you approach a settlement }\r\n\r\n\r\n{_ Context }\r\n{SetState('eddi_context_last_subject', 'settlement')}\r\n{SetState('eddi_context_last_action', 'approach')}\r\n{SetState('eddi_context_last_settlement', event.name)}\r\n{SetState('eddi_context_approach_time', SecondsSince(0))}\r\n", "defaultValue": "{_ Settlement approached }\r\n{_ Triggered when you approach a settlement }\r\n\r\n\r\n{_ Context }\r\n{SetState('eddi_context_last_subject', 'settlement')}\r\n{SetState('eddi_context_last_action', 'approach')}\r\n{SetState('eddi_context_last_settlement', event.name)}\r\n{SetState('eddi_context_approach_time', SecondsSince(0))}\r\n", "default": true }, "Shields down": { "name": "Shields down", "description": "Se activa cuando los escudos de la nave se desconectan", "enabled": true, "priority": 1, "responder": true, "script": null, "defaultValue": null, "default": true }, "Shields up": { "name": "Shields up", "description": "Se activa cuando los escudos de la nave se activan", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Ship arrived": { "name": "Ship arrived", "description": "Se activa cuando se completa la transferencia de una nave a otro sistema", "enabled": true, "priority": 3, "responder": true, "script": "{Occasionally(2, '{F(\\'Honorific\\')}, ')}\n{ShipName(event.shipid, event.ship)} ha \n\n{OneOf('llegado a {if station.name != event.station && event.station:}', \n 'completado su transferencia a {if station.name != event.station && event.station:}')}\n\n{if station.name != event.station && event.station:\n {P(event.station, \"station\")}\n {if system.name != event.system && event.system:\n en el sistema {P(event.system, \"starsystem\")}\n }\n}.", "defaultValue": "{Occasionally(2, '{F(\\'Honorific\\')}, ')}\nSu {event.ship} ha \n\n{OneOf('llegado a {if station.name != event.station && event.station:}', \n 'completado su transferencia a {if station.name != event.station && event.station:}')}\n\n{if station.name != event.station && event.station:\n {event.station}\n {if system.name != event.system && event.system:\n en el sistema {event.system}\n }\n}.", "default": false }, "Ship delivered": { "name": "Ship delivered", "description": "Se activa cuando se le hace entrega de una nave recién comprada", "enabled": true, "priority": 3, "responder": true, "script": "{ShipCallsign()} entrega completada.", "defaultValue": "{ShipCallsign()} entrega completada.", "default": true }, "Ship fsd": { "name": "Ship fsd", "description": "Se activa cuando hay un cambio en el estado del FSD de su nave", "enabled": true, "priority": 2, "responder": true, "script": null, "defaultValue": null, "default": true }, "Ship interdicted": { "name": "Ship interdicted", "description": "Se activa cuando su nave es interdictada por otra", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Ship interdiction": { "name": "Ship interdiction", "description": "Se activa cuando interdicta a otra nave", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Ship loadout": { "name": "Ship loadout", "description": "Se activa cuando obtienes carga a tu nave", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Ship locker": { "name": "Ship locker", "description": "Triggered when you obtain the contents of your ship's micro-resource materials locker", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Ship purchased": { "name": "Ship purchased", "description": "Se activa cuando compra una nave", "enabled": true, "priority": 3, "responder": true, "script": "{P(event.ship)} adquirida.", "defaultValue": "{P(event.ship)} adquirida.", "default": true }, "Ship rebooted": { "name": "Ship rebooted", "description": "Se activa cuando efectúa un reinicio o una reparación en su nave", "enabled": true, "priority": 3, "responder": true, "script": "{if len(event.modules) > 0:\r\n Reparaciones de emergencia\r\n {OneOf(\"terminadas\", \"aplicadas\")}\r\n para {List(event.modules)}.\r\n}", "defaultValue": null, "default": false }, "Ship refuelled": { "name": "Ship refuelled", "description": "Se activa cuando se reposta combustible en su nave (TEST)", "enabled": true, "priority": 4, "responder": true, "script": "{if event.source = \"Scoop\":\r\n {SetState('eddi_context_fuel_remaining', event.total)}\r\n|elif event.full:\r\n {SetState('eddi_context_fuel_remaining', ship.fueltanktotalcapacity)}\r\n|else:\r\n {SetState('eddi_context_fuel_remaining', state.eddi_context_fuel_remaining + event.amount)}\r\n}\r\n\r\n{Pause(2000)}\r\n{if event.full:\r\n {set refueled_desc to OneOf(\"totalmente repostado\", \"al máximo de su capacidad\",\"al 100%\")}\r\n {OneOf(\"depósito lleno\", \"Combustible al máximo\", \"combustible de {ShipName()} {refueled_desc}\" )}\r\n|else:\r\n {if event.amount <= 5.0000:\r\n {F('Fuel check')}\r\n }\r\n}", "defaultValue": "{if event.source = \"Scoop\":\r\n {SetState('eddi_context_fuel_remaining', event.total)}\r\n|elif event.full:\r\n {SetState('eddi_context_fuel_remaining', ship.fueltanktotalcapacity)}\r\n|else:\r\n {SetState('eddi_context_fuel_remaining', state.eddi_context_fuel_remaining + event.amount)}\r\n}\r\n\r\n{Pause(2000)}\r\n{if event.full:\r\n {set refueled_desc to OneOf(\"totalmente repostado\", \"al máximo de su capacidad\",\"al 100%\")}\r\n {OneOf(\"Repostado\", \"Combustible al máximo\", \"combustible de {ShipName()} {refueled_desc}\" )}\r\n|else:\r\n {if event.amount <= 5.0000:\r\n {F('Fuel check')}\r\n }\r\n}", "default": false }, "Ship renamed": { "name": "Ship renamed", "description": "Se activa cuando se cambia el nombre de una nave", "enabled": true, "priority": 5, "responder": true, "script": "El nombre {ShipName()} ha sido registrado con {P(system.faction)}. \r\n\r\n{set ICAO_ID to ICAO(event.ident)}\r\n{if len(ICAO_ID) > 0:\r\n La identificación es: {ICAO_ID}.\r\n|else:\r\n Aviso: Ha registrado ua ID de nave que no es pronunciable en el alfabeto de radio estándar.\r\n}\r\n", "defaultValue": "El nombre {ShipName()} ha sido registrado con {P(system.faction)}. \r\n\r\n{set ICAO_ID to ICAO(event.ident)}\r\n{if len(ICAO_ID) > 0:\r\n La identificación es: {ICAO_ID}.\r\n|else:\r\n Aviso: Ha registrado ua ID de nave que no es pronunciable en el alfabeto de radio estándar.\r\n}\r\n", "default": true }, "Ship repaired": { "name": "Ship repaired", "description": "Se activa cuando se repara su nave", "enabled": true, "priority": 5, "responder": true, "script": "{set repairedSystems to []}\r\n{if len(event.items) > 0:\r\n {for item in event.items:\r\n {if item = \"Paint\":\r\n {set systemDescription to cat(\" pintura \",Occasionally(2, \"de la {ShipName()} \"),\" \", OneOf(\" restaurada.\", \" renovada.\")))}\r\n {set repairedSystems to cat(repairedSystems, [systemDescription])} \r\n |elif item = \"Ship Integrity\" || item = \"Wear\":\r\n {set systemDescription to cat(\" mantenimiento \",Occasionally(2, \"de la {ShipName()} \"),\" \", OneOf(\" completado.\", \" terminado.\")))}\r\n {set repairedSystems to cat(repairedSystems, [systemDescription])} \r\n }\r\n }\r\n}\r\n\r\n{set repairedModules to []}\r\n{if len(event.modules) > 0:\r\n {for module in event.modules:\r\n {if len(module.localizedmount) > 0:\r\n {_ This is a weapon. We'll identify the class, grade, and mount}\r\n {set weaponDescription to cat(module.class, \" \", module.grade, \" \", module.mount, \" \", module.name)}\r\n {set repairedModules to cat(repairedModules, [weaponDescription])}\r\n |elif find(module.invariantName, \"Cockpit\") > -1:\r\n {_ This isn't a weapon. We've matched it to the name of our cockpit module}\r\n {set repairedModules to cat(repairedModules, [OneOf(\"Cabina\", \"Cubierta\")])} \r\n |else:\r\n {_ This isn't a weapon. We haven't matched it to the name of any particular module}\r\n {set repairedModules to cat(repairedModules, [module.name])}\r\n }\r\n }\r\n}\r\n\r\n{if len(repairedSystems) > 0:\r\n {List(repairedSystems)}.\r\n}\r\n{if len(repairedModules) = 0:\r\n Reparado módulo de {List(repairedModules)}.\r\n\t|elif len(repairedModules) > 0:\r\n Reparados los módulos de {List(repairedModules)}.\r\n}\r\n{if len(repairedSystems) = 0 && len(repairedModules) = 0:\r\n {ShipName()} reparada.\r\n}\r\n\r\n\r\n\r\n", "defaultValue": "{ShipName()} reparada.", "default": false }, "Ship repurchased": { "name": "Ship repurchased", "description": "Se activa cuando se recompra su nave", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Ship restocked": { "name": "Ship restocked", "description": "Se activa cuando se recarga la munición de su nave", "enabled": true, "priority": 5, "responder": true, "script": "{ShipName()} {OneOf(\"reaprovisionada\",\"rearmada\")}.", "defaultValue": "{ShipName()} {OneOf(\"reaprovisionada\",\"rearmada\")}.", "default": true }, "Ship shutdown": { "name": "Ship shutdown", "description": "Se activa cuando se desconectan los sistemas de su nave", "enabled": true, "priority": 2, "responder": true, "script": null, "defaultValue": null, "default": true }, "Ship sold": { "name": "Ship sold", "description": "Se activa cuando se vende una nave", "enabled": true, "priority": 3, "responder": true, "script": "{OneOf(\"Retirada {ShipName(event.shipid, event.ship)} del servicio activo\",\n \"{ShipName(event.shipid, event.ship)} Dada de baja\",\n \"{ShipName(event.shipid, event.ship)} vendida\",)}\n\n{if event.system != system.name:\n en el sistema {event.system}\n}", "defaultValue": "{OneOf(\"Retirada {ShipName(event.shipid, event.ship)} del servicio activo\",\n \"{ShipName(event.shipid, event.ship)} Dada de baja\",\n \"{ShipName(event.shipid, event.ship)} vendida\",)}\n\n{if event.system != system.name:\n en el sistema {event.system}\n}", "default": true }, "Ship sold on rebuy": { "name": "Ship sold on rebuy", "description": "Se activa cuando se vende una nave para obtener fondos para el seguro o recompra de la nave", "enabled": true, "priority": 2, "responder": true, "script": "{event.ship}, con identificación {event.shipid}, vendida en {event.system} por {event.price} créditos", "defaultValue": "{event.ship}, con identificación {event.shipid}, vendida en {event.system} por {event.price} créditos", "default": true }, "Ship swapped": { "name": "Ship swapped", "description": "Se activa cuando se cambia de nave", "enabled": true, "priority": 5, "responder": true, "script": "{if event.storedship:\n {OneOf(\"Almacenando\", \"Aparcando\", \"Almacenando\")} {ShipName(event.storedshipid, event.storedship)} \n|elif event.soldship:\n Vendiendo {ShipName(event.soldshipid, event.soldship)} \n} \n{OneOf(\"e intercambiando\",\"y moviendo\",\"y transfiriendo\")} a {ShipName(event.shipid, event.ship)}.\n\n{F(\"Limpet check\")}\n{_ F(\"List launchbays\")}\n\n{set fighterhangar to false}\n{for compartment in ship.compartments:\n {if find(compartment.module.name, \"Fighter Hangar\") != -1:\n {set fighterhangar to true}\n } \n} \n{if fighterhangar = true:\n Recuerde: debe asignar un miembro del equipo al servicio activo\n} \n", "defaultValue": "{if event.storedship:\n {OneOf(\"Almacenando\", \"Aparcando\", \"Almacenando\")} {ShipName(event.storedshipid, event.storedship)} \n|elif event.soldship:\n Vendiendo {ShipName(event.soldshipid, event.soldship)} \n} \n{OneOf(\"e intercambiando\",\"y moviendo\",\"y transfiriendo\")} a {ShipName(event.shipid, event.ship)}.\n\n{F(\"Limpet check\")}\n{_ F(\"List launchbays\")}\n\n{set fighterhangar to false}\n{for compartment in ship.compartments:\n {if find(compartment.module.name, \"Fighter Hangar\") != -1:\n {set fighterhangar to true}\n } \n} \n{if fighterhangar = true:\n Recuerde: debe asignar un miembro del equipo al servicio activo\n} \n", "default": true }, "Ship targeted": { "name": "Ship targeted", "description": "Triggered when the player selects a target", "enabled": true, "priority": 4, "responder": true, "script": "{_ Ship targeted }\r\n{_ Triggered when the player selects a target }\r\n\r\n{_ event Parameters: targetlocked - bool (ie false when losing target) _}\r\n{_ If target locked: name (of ship), scanstage (ie 0, 1, 2, 3) _}\r\n{_ If Scan stage >= 1: name (of pilot), rank (of pilot) _}\r\n{_ If scan stage >= 2: shieldhealth, hullhealth (both 0-100) _}\r\n{_ If scan stage >= 3: faction, power (if player is pledged to a power), _}\r\n{_ legalstatus (ie clean, wanted, etc), bounty (if applicable), _}\r\n{_ subsystem (ie FSD, power plant, etc), subsystemhealth (0-100) _}\r\n\r\n\r\n{_ Context }\r\n{SetState('eddi_context_last_subject', 'ship')}\r\n{SetState('eddi_context_last_action', 'targeted')}\r\n\r\n{if event.targetlocked && event.scanstage > 2 && !event.subsystem:\r\n {set legalstatus to event.legalstatus}\r\n {if legalstatus = \"Wanted\" || legalstatus = \"Wanted Enemy\" || legalstatus = \"Warrant\":\r\n {set wanted_list to split(state.eddi_context_wanted_list, \"+=\")}\r\n {if find(wanted_list, event.name) < 0:\r\n {event.name} {OneOf(\"tiene una recompensa\", \"no es trigo limpio\", \"es un objetivo legítimo\", \"está buscado por las autoridades\")}.\r\n {if len(wanted_list) = 0: {set sep to \"\"} |else: {set sep to \"+=\"}}\r\n {set wanted_list to cat(wanted_list, [event.name])}\r\n {SetState('eddi_context_wanted_list', join(wanted_list, sep))}\r\n } \r\n }\r\n}\r\n", "defaultValue": "{_ Ship targeted }\r\n{_ Triggered when the player selects a target }\r\n\r\n{_ event Parameters: targetlocked - bool (ie false when losing target) }\r\n{_ If target locked: name (of ship), scanstage (ie 0, 1, 2, 3) }\r\n{_ If Scan stage >= 1: name (of pilot), rank (of pilot) }\r\n{_ If scan stage >= 2: shieldhealth, hullhealth (both 0-100) }\r\n{_ If scan stage >= 3: faction, legalstatus (ie clean, wanted, etc), bounty (if appicable), }\r\n{_ subsystem (ie FSD, power plant, etc), subsystemhealth (0-100) }\r\n\r\n{_ Context }\r\n{SetState('eddi_context_last_subject', 'ship')}\r\n{SetState('eddi_context_last_action', 'targeted')}\r\n\r\n{if event.targetlocked && event.scanstage > 2:\r\n {set legalstatus to event.legalstatus}\r\n {if legalstatus = \"Wanted\" || legalstatus = \"Wanted Enemy\" || legalstatus = \"Warrant\":\r\n {event.name} {OneOf(\"has a bounty\", \"is fair game\", \"is a legitimate target\")}.\r\n }\r\n}\r\n\r\n", "default": false }, "Ship transfer initiated": { "name": "Ship transfer initiated", "description": "Se activa cuando se inicia la transferencia de una nave a otro sistema", "enabled": true, "priority": 4, "responder": true, "script": "{ShipName(event.shipid, event.ship)} {OneOf(\"en camino\",\"está siendo transferida\", \"transferencia iniciada\", \"está siendo transportada\", \"está siendo transferida\")} desde {P(event.system)}.\n\n{if event.transfercost: por un coste de {event.price} créditos.}\n\n{set t_remaining to event.time}\n\n{if t_remaining:\n\n {Pause(1000)}\n Llegada prevista, en \n\n {if t_remaining > (60*60*24):\n {set t_days to floor(t_remaining/(60*60*24))}\n {t_days} días,\n {set t_remaining to t_remaining-(t_days*(60*60*24))}\n }\n\n {if t_remaining > 3600:\n {set t_hours to floor(t_remaining/3600)}\n {t_hours} horas,\n {set t_remaining to t_remaining-(t_hours*(60*60))}\n }\n\n {if t_remaining > 60:\n {if t_days || t_hours: and}\n {set t_minutes to round(t_remaining/(60),0)}\n {t_minutes} minutos.\n }\n}", "defaultValue": "{ShipName(event.shipid, event.ship)} {OneOf(\"en camino\",\"está siendo transferida\", \"transferencia iniciada\", \"está siendo transportada\", \"está siendo transferida\")} desde {P(event.system)}.\n\n{if event.transfercost: por un coste de {event.price} créditos.}\n\n{set t_remaining to event.time}\n\n{if t_remaining:\n\n {Pause(1000)}\n Llegada prevista, en \n\n {if t_remaining > (60*60*24):\n {set t_days to floor(t_remaining/(60*60*24))}\n {t_days} días,\n {set t_remaining to t_remaining-(t_days*(60*60*24))}\n }\n\n {if t_remaining > 3600:\n {set t_hours to floor(t_remaining/3600)}\n {t_hours} horas,\n {set t_remaining to t_remaining-(t_hours*(60*60))}\n }\n\n {if t_remaining > 60:\n {if t_days || t_hours: and}\n {set t_minutes to round(t_remaining/(60),0)}\n {t_minutes} minutos.\n }\n}", "default": true }, "Shutdown": { "name": "Shutdown", "description": "Se activa cuando se hace un cierre limpio del juego", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Signal detected": { "name": "Signal detected", "description": "Triggered when a signal source is detected", "enabled": true, "priority": 3, "responder": true, "script": "{_ Edit the true/false values of `spokenSources` to identify signal types that should be announced whenever they are first detected within a system (otherwise, only signal sources detected while in fss or saa mode will be taken into account. _}\r\n\r\n{set spokenSources to [\r\n \"Anomalía\": true,\r\n \"Zona de conflicto AX\": true,\r\n \"Nave Capital\": false,\r\n \"Comunicaciones ceremoniales\": false,\r\n \"Resultado de combate\": false,\r\n \"Baliza de navegación comprometida\": false,\r\n \"Patrón de convoy\": false,\r\n \"Emisiones degradadas\": false,\r\n \"Llamada de auxilio\": true,\r\n \"Emisiones codificadas\": false,\r\n \"Lugar de extracción peligroso\": false,\r\n \"Emisiones de alta calidad\": false,\r\n \"Zona de combate de alta intensidad\": false,\r\n \"Lugar de extracción de alta densidad\": false,\r\n \"Puesto de escucha\": true,\r\n \"Zona de combate de baja intensidad\": false,\r\n \"Lugar de extracción de baja densidad\": false,\r\n \"Zona de combate de intensidad media\": false,\r\n \"Objetivo de la misión\": true,\r\n \"Baliza de navegación\": false,\r\n \"Señal no humana\": false,\r\n \"Fenómeno Estelar Notable\": true,\r\n \"Lugar de extracción\": false,\r\n \"Baliza comercial\": false,\r\n \"Señal no identificada\": true,\r\n \"Baliza de comunicaciones no registrada\": true,\r\n \"Uso de armas\": false,\r\n \"Restos recuperables\": true,\r\n]}\r\n\r\n{set tiposenal to event.source}\r\n\r\n\r\n{_ ****** BUSCA GENERO Y NUMERO DE event.item ****** _}\r\n\r\n{_ coge la primera palabra}\r\n{set itemobj to token(tiposenal, \" \",0)} \r\n\r\n{_ mira si es femenino}\r\n{if find(itemobj,\"a\",len(itemobj)-2)!=-1: {set o to \"a\"}\r\n|elif find(itemobj,\"e\",len(itemobj)-2)!=-1: {set o to \"a\"}\r\n|else: {set o to \"o\"}\r\n}\r\n\r\n{if find(itemobj,\"Lugar\")=0: {set o to \"o\"}}\r\n\r\n{_ mira si es plural}\r\n{if find(itemobj,\"s\",len(itemobj)-1)!=-1: {set s to \"s\"}{set n to \"n\"}\r\n|else: {set s to \"\"}{set n to \"\"}\r\n}\r\n\r\n{if status.gui_focus = \"fss mode\" || status.gui_focus = \"saa mode\" || \r\n(spokenSources[event.source] = true && event.unique):\r\n {if event.source && !event.stationsignal:\r\n Detectad{o}{s} {tiposenal} \r\n {if event.threatlevel > 0:\r\n de clase {event.threatlevel} \r\n }\r\n {if event.faction != \"None\":\r\n para {P(event.faction, \"faction\")}\r\n }\r\n .\r\n }\r\n}", "defaultValue": "{_ Edit the true/false values of `spokenSources` to identify signal types that should be announced whenever they are first detected within a system (otherwise, only signal sources detected while in fss or saa mode will be taken into account. _}\r\n\r\n{set spokenSources to [\r\n \"Anomalía\": true,\r\n \"Zona de conflicto AX\": true,\r\n \"Nave Capital\": false,\r\n \"Comunicaciones ceremoniales\": false,\r\n \"Resultado de combate\": false,\r\n \"Baliza de navegación comprometida\": false,\r\n \"Patrón de convoy\": false,\r\n \"Emisiones degradadas\": false,\r\n \"Llamada de auxilio\": true,\r\n \"Emisiones codificadas\": false,\r\n \"Lugar de extracción peligroso\": false,\r\n \"Emisiones de alta calidad\": false,\r\n \"Zona de combate de alta intensidad\": false,\r\n \"Lugar de extracción de alta densidad\": false,\r\n \"Puesto de escucha\": true,\r\n \"Zona de combate de baja intensidad\": false,\r\n \"Lugar de extracción de baja densidad\": false,\r\n \"Zona de combate de intensidad media\": false,\r\n \"Objetivo de la misión\": true,\r\n \"Baliza de navegación\": false,\r\n \"Señal no humana\": false,\r\n \"Fenómeno Estelar Notable\": true,\r\n \"Lugar de extracción\": false,\r\n \"Baliza comercial\": false,\r\n \"Señal no identificada\": false,\r\n \"Baliza de comunicaciones no registrada\": true,\r\n \"Uso de armas\": false,\r\n\r\n \"Anomaly\": true,\r\n \"AX Conflict Zone\": true,\r\n \"Capitol Ship\": false,\r\n \"Ceremonial Comms\": false,\r\n \"Combat Aftermath\": false,\r\n \"Compromised Nav Beacon\": false,\r\n \"Convoy Dispersal Pattern Detected\": false,\r\n \"Degraded Emissions\": false,\r\n \"Distress Call\": true,\r\n \"Encoded Emissions\": false,\r\n \"Hazardous Resource Extraction Site\": false,\r\n \"High Grade Emissions\": false,\r\n \"High Intensity Combat Zone\": false,\r\n \"High Intensity Resource Extraction Site\": false,\r\n \"Listening Post\": true,\r\n \"Low Intensity Combat Zone\": false,\r\n \"Low Intensity Resource Extraction Site\": false,\r\n \"Medium Intensity Combat Zone\": false,\r\n \"Mission Target\": true,\r\n \"Nav Beacon\": false,\r\n \"Non-Human Signal Source\": false,\r\n \"Notable Stellar Phenomena\": true,\r\n \"Resource Extraction Site\": false,\r\n \"Trading Beacon\": false,\r\n \"Unidentified Signal Source\": false,\r\n \"Unregistered Comms Beacon\": true,\r\n \"Weapons Fire\": false,\r\n]}\r\n\r\n{set tiposenal to event.source}\r\n{if tiposenal = \"Anomaly\": {set tiposenal to \"Anomalía\"}}\r\n{if tiposenal = \"AX Conflict Zone\": {set tiposenal to \"Zona de conflicto AX\"}}\r\n{if tiposenal = \"Capitol Ship\": {set tiposenal to \"Nave Capital\"}}\r\n{if tiposenal = \"Ceremonial Comms\": {set tiposenal to \"Comunicaciones ceremoniales\"}}\r\n{if tiposenal = \"Combat Aftermath\": {set tiposenal to \"Resultado de combate\"}}\r\n{if tiposenal = \"Compromised Nav Beacon\": {set tiposenal to \"Baliza de navegación comprometida\"}}\r\n{if tiposenal = \"Convoy Dispersal Pattern Detected\": {set tiposenal to \"Patrón de convoy\"}}\r\n{if tiposenal = \"Degraded Emissions\": {set tiposenal to \"Emisiones degradadas\"}}\r\n{if tiposenal = \"Distress Call\": {set tiposenal to \"Llamada de auxilio\"}}\r\n{if tiposenal = \"Encoded Emissions\": {set tiposenal to \"Emisiones codificadas\"}}\r\n{if tiposenal = \"Hazardous Resource Extraction Site\": {set tiposenal to \"Lugar de extracción peligroso\"}}\r\n{if tiposenal = \"High Grade Emissions\": {set tiposenal to \"Emisiones de alta calidad\"}}\r\n{if tiposenal = \"High Intensity Combat Zone\": {set tiposenal to \"Zona de combate de alta intensidad\"}}\r\n{if tiposenal = \"High Intensity Resource Extraction Site\": {set tiposenal to \"Lugar de extracción de baja densidad\"}}\r\n{if tiposenal = \"Listening Post\": {set tiposenal to \"Puesto de escucha\"}}\r\n{if tiposenal = \"Low Intensity Combat Zone\": {set tiposenal to \"Zona de combate de baja intensidad\"}}\r\n{if tiposenal = \"Low Intensity Resource Extraction Site\": {set tiposenal to \"Lugar de extracción de baja densidad\"}}\r\n{if tiposenal = \"Medium Intensity Combat Zone\": {set tiposenal to \"Zona de combate de intensidad media\"}}\r\n{if tiposenal = \"Mission Target\": {set tiposenal to \"Objetivo de la misión\"}}\r\n{if tiposenal = \"Nav Beacon\": {set tiposenal to \"Baliza de navegación\"}}\r\n{if tiposenal = \"Non-Human Signal Source\": {set tiposenal to \"Señal no humana\"}}\r\n{if tiposenal = \"Notable Stellar Phenomena\": {set tiposenal to \"Fenómeno Estelar Notable\"}}\r\n{if tiposenal = \"Resource Extraction Site\": {set tiposenal to \"Lugar de extracción\"}}\r\n{if tiposenal = \"Trading Beacon\": {set tiposenal to \"Baliza comercial\"}}\r\n{if tiposenal = \"Unidentified Signal Source\": {set tiposenal to \"Señal no identificada\"}}\r\n{if tiposenal = \"Unregistered Comms Beacon\": {set tiposenal to \"Baliza de comunicaciones no registrada\"}}\r\n{if tiposenal = \"Weapons Fire\": {set tiposenal to \"Uso de armas\"}}\r\n\r\n\r\n{_ ****** BUSCA GENERO Y NUMERO DE event.item ****** _}\r\n\r\n{_ coge la primera palabra}\r\n{set itemobj to token(tiposenal, \" \",0)} \r\n\r\n{_ mira si es femenino}\r\n{if find(itemobj,\"a\",len(itemobj)-2)!=-1: {set o to \"a\"}\r\n|elif find(itemobj,\"e\",len(itemobj)-2)!=-1: {set o to \"a\"}\r\n|else: {set o to \"o\"}\r\n}\r\n\r\n{if find(itemobj,\"Lugar\")=0: {set o to \"o\"}}\r\n\r\n{_ mira si es plural}\r\n{if find(itemobj,\"s\",len(itemobj)-1)!=-1: {set s to \"s\"}{set n to \"n\"}\r\n|else: {set s to \"\"}{set n to \"\"}\r\n}\r\n\r\n{if status.gui_focus = \"fss mode\" || status.gui_focus = \"saa mode\" || \r\n(spokenSources[event.source] = true && event.unique):\r\n {if event.source && !event.stationsignal:\r\n Detectad{o}{s} {tiposenal} \r\n {if event.threatlevel > 0:\r\n de clase {event.threatlevel} \r\n }\r\n {if event.faction != \"None\":\r\n para {event.faction}\r\n }\r\n .\r\n }\r\n}", "default": false }, "Silent running": { "name": "Silent running", "description": "Triggered when you activate or deactivate silent running", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Squadron rank": { "name": "Squadron rank", "description": "Triggered when your rank with a squadron has changed", "enabled": true, "priority": 3, "responder": true, "script": "{_ Squadron rank }\r\n{_ Triggered when your rank with a squadron has changed }\r\n\r\n\r\nSu flota {event.name} le ha\r\n{if event.newrank > event.oldrank:\r\n ascendido\r\n|else:\r\n degradado\r\n}\r\na {cmdr.squadronrank.name}.\r\n", "defaultValue": "{_ Squadron rank }\r\n{_ Triggered when your rank with a squadron has changed }\r\n\r\n\r\nSu flota {event.name} le ha\r\n{if event.newrank > event.oldrank:\r\n ascendido\r\n|else:\r\n degradado\r\n}\r\na {cmdr.squadronrank.name}.\r\n", "default": true }, "Squadron status": { "name": "Squadron status", "description": "Triggered when your status with a squadron has changed", "enabled": true, "priority": 5, "responder": true, "script": "{_ Squadron status }\r\n{_ Triggered when your status with a squadron changes }\r\n\r\n\r\n{if event.status = \"applied\":\r\n Ha solicitado la admisión a la flota {event.name}.\r\n|elif event.status = \"created\":\r\n Ha inaugurado la flota {event.name}.\r\n|elif event.status = \"disbanded\":\r\n La flota {event.name} ha sido disuelta\r\n|elif event.status = \"invited\":\r\n Ha recibido una invitación para alistarse a la flota {event.name}.\r\n|elif event.status = \"kicked\":\r\n Ha sido expulsado de la flota {event.name}.\r\n|elif event.status = \"left\":\r\n Ha dimitido de la flota {event.name}.\r\n|elif event.status = \"joined\":\r\n {_ Se ha unido a la flota event.name }.\r\n}\r\n", "defaultValue": "{_ Squadron status }\r\n{_ Triggered when your status with a squadron changes }\r\n\r\n\r\n{if event.status = \"applied\":\r\n Ha solicitado la admisión a la flota {event.name}.\r\n|elif event.status = \"created\":\r\n Ha inaugurado la flota {event.name}.\r\n|elif event.status = \"disbanded\":\r\n La flota {event.name} ha sido disuelta\r\n|elif event.status = \"invited\":\r\n Ha recibido una invitación para alistarse a la flota {event.name}.\r\n|elif event.status = \"kicked\":\r\n Ha sido expulsado de la flota {event.name}.\r\n|elif event.status = \"left\":\r\n Ha dimitido de la flota {event.name}.\r\n|elif event.status = \"joined\":\r\n {_ Se ha unido a la flota event.name }.\r\n}\r\n", "default": true }, "SRV docked": { "name": "SRV docked", "description": "Se activa cuando embarca un VRS en su nave", "enabled": true, "priority": 3, "responder": true, "script": "{if state.eddi_context_srv_deployed_id = event.id:\r\n {SetState('eddi_context_srv_deployed_id', \"\")}\r\n}\r\n{OneOf(\"Bugui\", \"uve erre ese\")} {OneOf(\"embarcado\",\"recogido\")}", "defaultValue": "{OneOf(\"Bugui\", \"uve erre ese\")} {OneOf(\"embarcado\",\"recogido\")}", "default": false }, "SRV launched": { "name": "SRV launched", "description": "Se activa cuando se desembarca un VRS desde su nave", "enabled": true, "priority": 3, "responder": true, "script": "{SetState('eddi_context_srv_deployed_id', event.id)}\r\n{OneOf(\"Bugui\", \"uve erre ese\")} {OneOf(\"lanzado\", \"activo\",\"desplegado\")}.", "defaultValue": "{OneOf(\"Bugui\", \"uve erre ese\")} {OneOf(\"lanzado\", \"fuera\",\"desplegado\")}{Occasionally (2,OneOf(\"-comandante\",\"-señor\"))}.", "default": false }, "SRV turret": { "name": "SRV turret", "description": "Se activa cuando despliega o repliega la torreta de armas de su VRS", "enabled": true, "priority": 5, "responder": true, "script": null, "defaultValue": null, "default": true }, "SRV turret deployable": { "name": "SRV turret deployable", "description": "Se activa cuando su VRS entra o sale de la zona de seguridad de alrededor de su nave", "enabled": true, "priority": 3, "responder": true, "script": "{if !event.deployable:\n {OneOf(\"Bugui\", \"VRS\")} esperando para embarque.\n}", "defaultValue": "{if !event.deployable:\n {OneOf(\"Bugui\", \"VRS\")} esperando para embarque.\n}", "default": true }, "SRV under ship": { "name": "SRV under ship", "description": "Triggered when your SRV enters the recovery zone under your ship (TEST)", "enabled": true, "priority": 3, "responder": true, "script": "{_Shirka}\r\n\r\n{OneOf(\"Bugui\", \"VRS\")} preparado para embarcar.", "defaultValue": "{_Shirka}\r\n\r\n{OneOf(\"Buggy\", \"SRV\")} standing by for recovery.", "default": false }, "Star habitable zone": { "name": "Star habitable zone", "description": "Report on the habitable zone around a star", "enabled": true, "priority": null, "responder": false, "script": "{_ Fetch from context }\r\n{if event: {set reportbody to event} }\r\n{if !event: {set reportbody to BodyDetails(state.eddi_context_star_star, state.eddi_context_star_system)}}\r\n\r\n{if !reportbody.name || reportbody.name = \"\":\r\n I'm not sure which star you are asking about.\r\n|else:\r\n {if (reportbody.estimatedhabzoneinner && reportbody.estimatedhabzoneouter) && \r\n (reportbody.estimatedhabzoneinner > 0 && reportbody.estimatedhabzoneouter> 0):\r\n Habitable zone\r\n {Occasionally(2, OneOf(\"calculated at\", \"calculated to fall from\"))}: \r\n {Humanise(reportbody.estimatedhabzoneinner)} \r\n to {Humanise(reportbody.estimatedhabzoneouter)} \r\n lightseconds.\r\n |elif reportbody.estimatedhabzoneouter && reportbody.estimatedhabzoneouter > 0:\r\n Habitable zone\r\n {Occasionally(2, OneOf(\"calculated at\", \"calculated to fall from\"))}: \r\n {Humanise(reportbody.estimatedhabzoneouter)} \r\n lightseconds maximum.\r\n }\r\n}", "defaultValue": "{_ Fetch from context }\r\n{if event: {set reportbody to event} }\r\n{if !event: {set reportbody to BodyDetails(state.eddi_context_star_star, state.eddi_context_star_system)}}\r\n\r\n{if !reportbody.name || reportbody.name = \"\":\r\n I'm not sure which star you are asking about.\r\n|else:\r\n {if (reportbody.estimatedhabzoneinner && reportbody.estimatedhabzoneouter) && \r\n (reportbody.estimatedhabzoneinner > 0 && reportbody.estimatedhabzoneouter> 0):\r\n Habitable zone\r\n {Occasionally(2, OneOf(\"calculated at\", \"calculated to fall from\"))}: \r\n {Humanise(reportbody.estimatedhabzoneinner)} \r\n to {Humanise(reportbody.estimatedhabzoneouter)} \r\n lightseconds.\r\n |elif reportbody.estimatedhabzoneouter && reportbody.estimatedhabzoneouter > 0:\r\n Habitable zone\r\n {Occasionally(2, OneOf(\"calculated at\", \"calculated to fall from\"))}: \r\n {Humanise(reportbody.estimatedhabzoneouter)} \r\n lightseconds maximum.\r\n }\r\n}", "default": true }, "Star report": { "name": "Star report", "description": "Función para informar de los detalles del objeto estelar contextual", "enabled": true, "priority": null, "responder": false, "script": "{_ Preferences _}\r\n{set reportAge to 0} {_ Set to 1 if you want to hear about the age of the star. _}\r\n{set reportChromaticity to 0} {_ Set to 1 if you want to hear about the colour of the star. _}\r\n{set reportNotables to 1} {_ Set to 0 if you don't want to hear about noteworthy main sequence star features. _}\r\n{set reportScanValue to 0} {_ Set to 1 if you want scan value reported _}\r\n{set reportHabZone to 0} {_ Set to 1 if you want habitable zone details for the primary star_}\r\n{set mainSequenceFrequency to 2} {_ Set to determine the frequency (1 chance in n) for describing stars as \"main sequence\" _}\r\n\r\n{_ Fetch from context }\r\n{if event: {set reportbody to event} }\r\n{if !event: {set reportbody to BodyDetails(state.eddi_context_star_star, state.eddi_context_star_system)}}\r\n\r\n{if !reportbody.name || reportbody.name = \"\":\r\n\r\n No consigo saber a que estrella se refiere.\r\n\r\n|else:\r\n\r\n {set mainsequence to [\"O\", \"B\", \"A\", \"F\", \"G\", \"K\", \"M\"]}\r\n {for starclass in mainsequence:\r\n {if reportbody.stellarclass = starclass:\r\n {set mainsequence to 1}\r\n }\r\n } \r\n\r\n {if mainsequence = 1 && reportNotables = 1:\r\n\r\n {set notables to []}\r\n {if reportbody.massprobability < 0.01:\r\n {set notables to cat(notables, [cat(\"una masa solar increíblemente baja de \", Humanise(reportbody.solarmass))])}\r\n |elif reportbody.massprobability < 0.1:\r\n {set notables to cat(notables, [cat(\"una masa solar extremadamente baja de \", Humanise(reportbody.solarmass))])}\r\n |elif reportbody.massprobability < 1:\r\n {set notables to cat(notables, [\"una masa solar inusualmente baja\"])}\r\n |elif reportbody.massprobability < 10:\r\n {set notables to cat(notables, [\"menor que la masa solar promedio\"])}\r\n |elif reportbody.massprobability > 99.99:\r\n {set notables to cat(notables, [cat(\"una masa solar increíblemente alta de \", Humanise(reportbody.solarmass))])}\r\n |elif reportbody.massprobability > 99.9:\r\n {set notables to cat(notables, [cat(\"una masa solar extremadamente alta de \", Humanise(reportbody.solarmass))])}\r\n |elif reportbody.massprobability > 99:\r\n {set notables to cat(notables, [\"una masa solar inusualmente alta\"])}\r\n |elif reportbody.massprobability > 90:\r\n {set notables to cat(notables, [\"mayor que la masa solar promedio\"])}\r\n }\r\n\r\n {if reportbody.radiusprobability < 0.01:\r\n {set notables to cat(notables, [cat(\"un radio solar increíblemente bajo de \", Humanise(reportbody.solarradius))])}\r\n |elif reportbody.radiusprobability < 0.1:\r\n {set notables to cat(notables, [cat(\"un radio solar extremadamente bajo de \", Humanise(reportbody.solarradius))])}\r\n |elif reportbody.radiusprobability < 1:\r\n {set notables to cat(notables, [\"un radio solar inusualmente bajo\"])}\r\n |elif reportbody.radiusprobability < 10:\r\n {set notables to cat(notables, [\"menor que el radio solar promedio\"])}\r\n |elif reportbody.radiusprobability > 99.99:\r\n {set notables to cat(notables, [cat(\"un radio solar extremadamente alto de \", Humanise(reportbody.solarradius))])}\r\n |elif reportbody.radiusprobability > 99.9:\r\n {set notables to cat(notables, [cat(\"un radio solar increíblemente alto de \", Humanise(reportbody.solarradius))])}\r\n |elif reportbody.radiusprobability > 99:\r\n {set notables to cat(notables, [\"un radio solar inusualmente alto\"])}\r\n |elif reportbody.radiusprobability > 90:\r\n {set notables to cat(notables, [\"más alto que el radio solar promedio\"])}\r\n }\r\n\r\n {if reportbody.tempprobability < 0.01:\r\n {set notables to cat(notables, [cat(\"una temperatura de superficie increíblemente baja de \", Humanise(reportbody.temperature), \" kelvin\")])}\r\n |elif reportbody.tempprobability < 0.1:\r\n {set notables to cat(notables, [cat(\"una temperatura de superficie extremadamente baja de \", Humanise(reportbody.temperature), \" kelvin\")])}\r\n |elif reportbody.tempprobability < 1:\r\n {set notables to cat(notables, [\"una temperatura de superficie inusualmente baja\"])}\r\n |elif reportbody.tempprobability < 10:\r\n {set notables to cat(notables, [\"inferior a la temperatura media de la superficie\"])}\r\n |elif reportbody.tempprobability > 99.99:\r\n {set notables to cat(notables, [cat(\"una temperatura de superficie extremadamente alta \", Humanise(reportbody.temperature), \" kelvin\")])}\r\n |elif reportbody.tempprobability > 99.9:\r\n {set notables to cat(notables, [cat(\"una temperatura de superficie increíblemente alta de \", Humanise(reportbody.temperature), \" kelvin\")])}\r\n |elif reportbody.tempprobability > 99:\r\n {set notables to cat(notables, [\"una temperatura superficial inusualmente alta\"])}\r\n |elif reportbody.tempprobability > 90:\r\n {set notables to cat(notables, [\"mayor que la temperatura media de la superficie\"])}\r\n }\r\n }\r\n\r\n {_ Report notable main sequence stars and all stars not found on the main sequence _}\r\n {if len(notables) > 0 || mainsequence != 1:\r\n\t\t{OneOf(\"detectada\", \"identificada\")}\r\n {if reportbody.stellarclass = \"O\":\r\n Una estrella {Occasionally(mainSequenceFrequency, \"de secuencia principal\")}\r\n de clase {P(reportbody.stellarclass)} increíblemente rara {OneOf(\"de ver\",\"\")}\r\n |elif reportbody.stellarclass = \"B\":\r\n Una estrella {Occasionally(mainSequenceFrequency, \"de secuencia principal\")}\r\n de clase {P(reportbody.stellarclass)} muy rara {OneOf(\"de ver\",\"\")}\r\n |elif reportbody.stellarclass = \"A\":\r\n Una estrella {Occasionally(mainSequenceFrequency, \"de secuencia principal\")}\r\n de clase {P(reportbody.stellarclass)}particularmente rara{OneOf(\"de ver\",\"\")}\r\n |elif reportbody.stellarclass = \"F\":\r\n Una estrella {Occasionally(mainSequenceFrequency, \"de secuencia principal\")}\r\n de clase {P(reportbody.stellarclass)}poco común{OneOf(\"de ver\",\"\")}\r\n |elif reportbody.stellarclass = \"G\":\r\n Una estrella común {Occasionally(mainSequenceFrequency, \"de secuencia principal\")}\r\n de clase {P(reportbody.stellarclass)}\r\n |elif reportbody.stellarclass = \"K\":\r\n Una estrella de clase {P(reportbody.stellarclass)}\r\n bastante común {OneOf(\"de encontrar\",\"\")}\r\n |elif reportbody.stellarclass = \"M\":\r\n Una típica estrella {Occasionally(mainSequenceFrequency, \"de secuencia principal\")} \r\n de clase {P(reportbody.stellarclass)} {OneOf(\"muy común\",\"\")}\r\n |elif find([\"L\", \"T\", \"Y\"], reportbody.stellarclass) > -1:\r\n Una enana marrón, de clase {P(reportbody.stellarclass)},\r\n |elif reportbody.stellarclass = \"TTS\":\r\n una estrella T tauri de clase {P(reportbody.stellarclass)}, en proceso de {OneOf(\"colapso gravitatorio\",\"colapso gravitacional\",\"contracción gravitacional\",\"convertirse en un posible agujero negro, estrella de neutrones, o supernova\")}\r\n |elif reportbody.stellarclass = \"AEBE\":\r\n una protoestrella muy joven de clase {P(reportbody.stellarclass)}, que aún no ha empezado su secuencia principal {Occasionally(4, \", pero está en camino de convertirse en una estrella de clase A, o B\")}\r\n |elif reportbody.stellarclass = \"WC\":\r\n una estrella Wolf-Rayet clase {P(reportbody.stellarclass)}, rica en carbono{Occasionally(2, \", de combustión rápida\")} \r\n {Occasionally(2, \", con una pérdida considerable de su masa, y exponiendo carbono ionizado a su núcleo, \")}\r\n |elif reportbody.stellarclass = \"WN\":\r\n una estrella Wolf-Rayet clase {P(reportbody.stellarclass)}, rica en helio y nitrógeno{Occasionally(2, \" de combustión rápida\")}\r\n {Occasionally(2, \", con una pérdida considerable de su masa, y exponiendo helio ionizado y nitrógeno a su núcleo, \")}\r\n |elif reportbody.stellarclass = \"WO\":\r\n una estrella Wolf-Rayet clase {P(reportbody.stellarclass)} rica en oxígeno{Occasionally(2, \" de combustión rápida\")} \r\n {Occasionally(2, \", con una pérdida considerable de su masa, y exponiendo oxígeno ionizado a su núcleo, \")}\r\n |elif reportbody.stellarclass = \"WNC\":\r\n una estrella Wolf-Rayet clase {P(reportbody.stellarclass)} {Occasionally(2, \" de combustión rápida\")} \r\n {Occasionally(2, \", con una pérdida considerable de su masa, y exponiendo a su núcleo, nitrógeno ionizado, carbono, oxígeno, y helio, \")}\r\n |elif reportbody.stellarclass = \"W\":\r\n una estrella Wolf-Rayet clase {P(reportbody.stellarclass)} {Occasionally(2, \" de combustión rápida\")} \r\n {Occasionally(2, \", con una pérdida considerable de su masa, y exponiendo a su núcleo todos los elementos mas pesados, \")}\r\n |elif reportbody.stellarclass = \"CS\":\r\n una estrella de carbono de clase {P(reportbody.stellarclass)}\r\n |elif find([\"C\", \"CN\", \"CH\", \"CHd\"], reportbody.stellarclass) > -1:\r\n una estrella de carbono clase {P(reportbody.stellarclass)} {Occasionally(2, \", de tipo tardío\")}{Occasionally(4, \", con una atmósfera dominada por el carbono\")}\r\n |elif reportbody.stellarclass = \"CJ\":\r\n una estrella de carbono clase {P(reportbody.stellarclass)} {Occasionally(2, \", de tipo tardío\")}{Occasionally(2, \", con altos niveles de carbono 13 en su atmósfera\")}\r\n |elif reportbody.stellarclass = \"MS\":\r\n una estrella clase {P(reportbody.stellarclass)} de tipo tardío{Occasionally(4, \", que antes fue una Estrella Clase M, y ahora está en camino de convertirse en una de carbono\")}\r\n |elif reportbody.stellarclass = \"S\":\r\n una estrella clase {P(reportbody.stellarclass)} de tipo tardío{Occasionally(4, \", que antes fue una Estrella Clase M, y que ahora se está convirtiendo ya en una de carbono\")}\r\n |elif reportbody.stellarclass = \"D\":\r\n una enana blanca de clase {P(reportbody.stellarclass)}\r\n |elif reportbody.stellarclass = \"DA\":\r\n una enana blanca de clase {P(reportbody.stellarclass)} {Occasionally(4, \" con una atmósfera rica en hidrógeno\")}\r\n |elif reportbody.stellarclass = \"DAB\":\r\n una enana blanca de clase {P(reportbody.stellarclass)} {Occasionally(4, \" con una atmósfera rica en hidrógeno y helio\")}\r\n |elif slice(reportbody.stellarclass, 0, 1) = \"D\":\r\n una enana blanca de clase {P(reportbody.stellarclass)}\r\n |elif slice(reportbody.stellarclass, 0, 1) = \"N\":\r\n una estrella de neutrones clase {P(reportbody.stellarclass)} {Occasionally(4, \" con un peligroso núcleo de alta densidad\")}\r\n |elif reportbody.stellarclass = \"H\":\r\n un agujero negro\r\n |elif reportbody.stellarclass = \"X\":\r\n una entidad estelar muy exótica...\r\n |elif reportbody.stellarclass = \"SuperMassiveBlackHole\":\r\n un agujero negro supermasivo\r\n |elif reportbody.stellarclass = \"A_BlueWhiteSuperGiant\":\r\n una supergigante blanco-azulada clase {P(reportbody.stellarclass)} {Occasionally(4, \", que se está expandiendo hacia convertirse en una supergigante roja\")}\r\n |elif reportbody.stellarclass = \"F_WhiteSuperGiant\":\r\n una supergigante amarilla clase {P(reportbody.stellarclass)}{Occasionally(4, \", que se está expandiendo hacia convertirse en una supergigante roja\")}\r\n |elif reportbody.stellarclass = \"M_RedSuperGiant\":\r\n una supergigante roja clase {P(reportbody.stellarclass)} {Occasionally(4, \", en su fase de combustión de helio\")}\r\n |elif reportbody.stellarclass = \"M_RedGiant\":\r\n una gigante roja clase {P(reportbody.stellarclass)} {Occasionally(4, \", que se está expandiendo hacia convertirse en supergigante\")}\r\n |elif reportbody.stellarclass = \"K_OrangeGiant\":\r\n una gigante naranja clase {P(reportbody.stellarclass)} {Occasionally(4, \", que se expande mientras se dirige hacia el final de su vida\")}\r\n |elif reportbody.stellarclass = \"RoguePlanet\":\r\n un planeta {OneOf(\"interestelar\",\"vagabundo\",\"errante\",\"huérfano\")}\r\n |elif reportbody.stellarclass = \"Nebula\":\r\n una nebulosa\r\n |elif reportbody.stellarclass = \"StellarRemnantNebula\":\r\n un{OneOf(\"a nebulosa remanente\",\" remanente de Supernova\")}\r\n |else:\r\n una estrella clase {Spacialise(reportbody.stellarclass)}\r\n }\r\n\r\n {if reportAge = 1:\r\n {set ageInYears to reportbody.age * 1000000}\r\n {if reportbody.age > 0:\r\n {OneOf(\"Que existe desde {Humanise(ageInYears)} de años\",\r\n \"que tiene {Humanise(ageInYears)} de años de vida\",\r\n \"de {Humanise(ageInYears)} de años\",\r\n )}\r\n |else:\r\n que existe solo desde hace menos de un millón de años,\r\n }\r\n {if ageInYears < 1000000:\r\n por lo que es una de las estrellas más jóvenes de la galaxia\r\n |elif ageInYears >14000000000:\r\n por lo que es una de las estrellas más {OneOf(\"lonjevas\",\"viejas\",\"ancianas\")} de la galaxia\r\n }\r\n }\r\n\r\n .\r\n\r\n {if mainsequence = 1 && reportChromaticity = 1:\r\n {Occasionally(2,\"Como puedes ver, emite una luz {reportbody.chromaticity}.\")}\r\n }\r\n\r\n {if reportScanValue: {F(\"Report last scan value\")} }\r\n\r\n {if event.mainstar && reportHabZone : {F(\"Star habitable zone\")} } \r\n\r\n } \r\n}", "defaultValue": "{_ Preferences _}\r\n{set reportAge to 1} {_ Set to 1 to report the star's age. _}\r\n{set reportRareStarClasses to 1} {_ Set to 1 to report when rare star classes are found _}\r\n{set reportMass to 1} {_ Set to 1 to report stars with abnormal mass _}\r\n{set reportRadius to 1} {_ Set to 1 to report stars with abnormal radii _}\r\n{set reportRotation to 1} {_ Set to 1 to report stars with abnormal rotational periods _}\r\n{set reportTemps to 1} {_ Set to 1 to report stars with abnormal surface temperatures _}\r\n{set reportDensity to 1} {_ Set to 1 to report notable densities (in kilograms per cubic meter) _}\r\n{set reportAbsMagnitude to 1} {_ Set to 1 to report stars with abnormal absolute magnitude (lower is brighter) _}\r\n{set reportRingedStars to 1} {_ Set to 1 to report when ringed stars are found _}\r\n{set reportChromaticity to 1} {_ Set to 1 to report the star's colour. _}\r\n{set reportClass to 1} {_ Set to 1 to report the stellar class. _}\r\n{set reportSubClass to 0} {_ Set to 1 to report the stellar sub class (if reportClass is also 1) _}\r\n{set reportScanValue to 0} {_ Set to 1 to report the scan value. _}\r\n{set reportHabZone to 0} {_ Set to 1 to report habitable zone details for the primary star. _}\r\n{set mainSequenceFrequency to 4} {_ Set to determine the frequency (1 chance in n) for describing applicable stars as \"main sequence\" _}\r\n{set reportRapidRotation to 1} {_ Reports very fast rotating bodies _}\r\n\r\n{_ Fetch from context }\r\n{set reportbody to BodyDetails(state.eddi_context_star_star, state.eddi_context_star_system)}\r\n{if !reportbody: {set reportbody to BodyDetails(state.eddi_context_star_star)}}\r\n{if !reportbody && event: {set reportbody to event.star}}\r\n\r\n{if !reportbody.name || reportbody.name = \"\":\r\n\r\n ¿A qué estrella {OneOf(\"se está refiriendo\", \"se refiere\")}?\r\n\r\n|else:\r\n\r\n {_ Set up a list of notable star characteristics _}\r\n {set notables to []}\r\n\r\n {_ Set up various groups of stars _}\r\n {set mainsequence to [\"O\", \"B\", \"A\", \"F\", \"G\", \"K\", \"M\"]}\r\n {set fastburning to [\"WC\", \"WN\", \"WO\", \"WNC\", \"W\"]}\r\n {set browndwarves to [\"L\", \"T\", \"Y\"]}\r\n\r\n {for starclass in mainsequence:\r\n {if reportbody.stellarclass = starclass:\r\n {set mainsequence to Occasionally(mainSequenceFrequency, \"de secuencia principal\")}\r\n }\r\n } \r\n {for starclass in browndwarves:\r\n {if reportbody.stellarclass = starclass:\r\n {set browndwarf to 1}\r\n }\r\n } \r\n {for starclass in fastburning:\r\n {if reportbody.stellarclass = starclass: \r\n {set fastburning to 1}\r\n }\r\n }\r\n\r\n {_ Is this a rare class of star? _}\r\n {if reportRareStarClasses:\r\n {if reportbody.starClass.percentage < 0.01:\r\n {set rarity to \"increiblemente excepcional\"}\r\n |elif reportbody.starClass.percentage < 0.1:\r\n {set rarity to \"muy extraña\"}\r\n |elif reportbody.starClass.percentage < 1.0:\r\n {set rarity to \"rara de ver\"}\r\n |elif reportbody.starClass.percentage < 5:\r\n {set rarity to \"poco común\"}\r\n }\r\n }\r\n\r\n {_ Is the star notable in some other way? _}\r\n\r\n {if reportAge:\r\n {set ageInYears to reportbody.age * 1000000}\r\n {if ageInYears <= 1000000:\r\n {set ps to \", convirtiéndola en una de las estrellas más jóvenes de la galaxia\"}\r\n |elif ageInYears >= 13000000000:\r\n {set ps to \", convirtiéndola en una de las estrellas más antiguas de la galaxia\"}\r\n }\r\n {if reportbody.ageprobability:\r\n {if ageInYears < 1000000: {set pla to \"es de años\"}| else: {set pla to \" de años\"}}\r\n {if reportbody.ageprobability < 0.01:\r\n {set notables to cat(notables, [cat(\"una edad increíblemente joven de \", Humanise(ageInYears), pla, ps)])}\r\n |elif reportbody.ageprobability < 0.1:\r\n {set notables to cat(notables, [cat(\"una edad extremadamente joven de \", Humanise(ageInYears), pla, ps)])}\r\n |elif reportbody.ageprobability < 5:\r\n {set notables to cat(notables, [cat(\"una edad inusualmente joven de \", Humanise(ageInYears), pla, ps)])}\r\n |elif reportbody.ageprobability > 99.99:\r\n {set notables to cat(notables, [cat(\"una edad increíblemente longeva de \", Humanise(ageInYears), pla, ps)])}\r\n |elif reportbody.ageprobability > 99.9:\r\n {set notables to cat(notables, [cat(\"una edad extremadamente longeva de \", Humanise(ageInYears), pla, ps)])}\r\n |elif reportbody.ageprobability > 95:\r\n {set notables to cat(notables, [cat(\"una edad inusualmente longeva de \", Humanise(ageInYears), pla, ps)])}\r\n }\r\n }\r\n }\r\n\r\n {if reportMass && reportbody.massprobability:\r\n {if reportbody.massprobability < 0.01:\r\n {set notables to cat(notables, [cat(\"Una masa solar increíblemente baja de \", Humanise(reportbody.solarmass), \" veces la del Sol\")])}\r\n |elif reportbody.massprobability < 0.1:\r\n {set notables to cat(notables, [cat(\"Una masa solar extremadamente baja de \", Humanise(reportbody.solarmass), \" veces la del Sol\")])}\r\n |elif reportbody.massprobability < 1:\r\n {set notables to cat(notables, [cat(\"Una masa solar inusualmente baja de \", Humanise(reportbody.solarmass), \" veces la del Sol\")])}\r\n |elif reportbody.massprobability > 99.99:\r\n {set notables to cat(notables, [cat(\"Una masa solar increíblemente alta de \", Humanise(reportbody.solarmass), \" veces la del Sol\")])}\r\n |elif reportbody.massprobability > 99.9:\r\n {set notables to cat(notables, [cat(\"Una masa solar extremadamente alta de \", Humanise(reportbody.solarmass), \" veces la del Sol\")])}\r\n |elif reportbody.massprobability > 99:\r\n {set notables to cat(notables, [cat(\"Una masa solar inusualmente alta de \", Humanise(reportbody.solarmass), \" veces la del Sol\")])}\r\n }\r\n }\r\n\r\n {if reportRadius && reportbody.radiusprobability:\r\n {if reportbody.radiusprobability < 0.01:\r\n {set notables to cat(notables, [cat(\"un radio increíblemente bajo de \", Humanise(reportbody.solarradius), \" veces el del Sol\")])}\r\n |elif reportbody.radiusprobability < 0.1:\r\n {set notables to cat(notables, [cat(\"un radio extremadamente bajo de \", Humanise(reportbody.solarradius), \" veces el del Sol\")])}\r\n |elif reportbody.radiusprobability < 5:\r\n {set notables to cat(notables, [cat(\"un radio inusualmente bajo de \", Humanise(reportbody.solarradius), \" veces el del Sol\")])}\r\n |elif reportbody.radiusprobability > 99.99:\r\n {set notables to cat(notables, [cat(\"un radio increíblemente alto de \", Humanise(reportbody.solarradius), \" veces el del Sol\")])}\r\n |elif reportbody.radiusprobability > 99.9:\r\n {set notables to cat(notables, [cat(\"un radio extremadamente alto de \", Humanise(reportbody.solarradius), \" veces el del Sol\")])}\r\n |elif reportbody.radiusprobability > 95:\r\n {set notables to cat(notables, [cat(\"un radio inusualmente alto de \", Humanise(reportbody.solarradius), \" veces el del Sol\")])}\r\n }\r\n }\r\n\r\n {if reportRotation && reportbody.rotationalperiodprobability:\r\n {if reportbody.rotationalperiodprobability > 99.99:\r\n {set notables to cat(notables, [cat(\"una extremadamente \", OneOf(\"rápida\", \"alta\"), \" tasa de rotación de \", Humanise(reportbody.rotationalperiod), \" días \", Occasionally(2, \"terrestres\"))])}\r\n |elif reportbody.rotationalperiodprobability > 99.9:\r\n {set notables to cat(notables, [cat(\"una increíblemente \", OneOf(\"rápida\", \"alta\"), \" tasa de rotación de \", Humanise(reportbody.rotationalperiod), \" días \", Occasionally(2, \"terrestres\"))])}\r\n |elif reportbody.rotationalperiodprobability > 99:\r\n {set notables to cat(notables, [cat(\"una inusualmente \", OneOf(\"rápida\", \"alta\"), \" tasa de rotación de \", Humanise(reportbody.rotationalperiod), \" días \", Occasionally(2, \"terrestres\"))])}\r\n |elif reportbody.rotationalperiodprobability > 95:\r\n {set notables to cat(notables, [cat(\"una alta tasa de rotación de \", Humanise(reportbody.rotationalperiod), \" días \", Occasionally(2, \"terrestres\"))])}\r\n }\r\n }\r\n\r\n {if reportTemps && reportbody.tempprobability:\r\n {if reportbody.tempprobability < 0.01:\r\n {set notables to cat(notables, [cat(\"un increíblemente baja temperatura de superficie de\", Humanise(reportbody.temperature - 273,15), \" grados centígrados\")])}\r\n |elif reportbody.tempprobability < 0.1:\r\n {set notables to cat(notables, [cat(\"una extremadamente baja temperatura de superficie de\", Humanise(reportbody.temperature - 273,15), \" grados centígrados\")])}\r\n |elif reportbody.tempprobability < 1:\r\n {set notables to cat(notables, [cat(\"una inusualmente baja temperatura de superficie\")])}\r\n |elif reportbody.tempprobability < 5:\r\n {set notables to cat(notables, [cat(\"una temperatura de superficie inferior a la media\")])}\r\n |elif reportbody.tempprobability > 99.99:\r\n {set notables to cat(notables, [cat(\"una extremadamente alta temperatura de superficie de \", Humanise(reportbody.temperature - 273,15), \" grados centígrados\")])}\r\n |elif reportbody.tempprobability > 99.9:\r\n {set notables to cat(notables, [cat(\"un increíblemente alta temperatura de superficie de \", Humanise(reportbody.temperature - 273,15), \" grados centígrados\")])}\r\n |elif reportbody.tempprobability > 99:\r\n {set notables to cat(notables, [cat(\"un inusualmente alta temperatura de superficie\")])}\r\n |elif reportbody.tempprobability > 95:\r\n {set notables to cat(notables, [cat(\"una temperatura de superficie superior a la media\")])}\r\n }\r\n }\r\n\r\n {if reportDensity && reportbody.densityprobability:\r\n {if reportbody.densityprobability < 0.01:\r\n {set notables to cat(notables, [cat(\"una increíblemente baja densidad media de \", Humanise(reportbody.density), \" kilogramos por metro cúbico\")])}\r\n |elif reportbody.densityprobability < 0.1:\r\n {set notables to cat(notables, [cat(\"una extremadamente baja densidad media de \", Humanise(reportbody.density), \" kilogramos por metro cúbico\")])}\r\n |elif reportbody.densityprobability < 1:\r\n {set notables to cat(notables, [cat(\"uan inusualmente baja densidad media de\")])}\r\n |elif reportbody.densityprobability < 5:\r\n {set notables to cat(notables, [cat(\"una densidad inferior a la media\")])}\r\n |elif reportbody.densityprobability > 99.99:\r\n {set notables to cat(notables, [cat(\"una extremadamente alta densidad media de \", Humanise(reportbody.density), \" kilogramos por metro cúbico\")])}\r\n |elif reportbody.densityprobability > 99.9:\r\n {set notables to cat(notables, [cat(\"una increíblemente alta densidad media de \", Humanise(reportbody.density), \" kilogramos por metro cúbico\")])}\r\n |elif reportbody.densityprobability > 99:\r\n {set notables to cat(notables, [cat(\"una inusualmente alta densidad media\")])}\r\n |elif reportbody.densityprobability > 95:\r\n {set notables to cat(notables, [cat(\"una densidad superior a la media\")])}\r\n }\r\n }\r\n\r\n {if reportRapidRotation && reportbody.rotationalperiodprobability:\r\n {if reportbody.rotationalperiodprobability < 0.1:\r\n {set notables to cat(notables, [cat(\"un increíblemente corto período de rotación de \", Humanise(reportbody.rotationalperiod), \" días\")])}\r\n |elif reportbody.rotationalperiodprobability < 1:\r\n {set notables to cat(notables, [cat(\"un extremadamente corto período de rotación de \", Humanise(reportbody.rotationalperiod), \" días\")])}\r\n |elif reportbody.rotationalperiodprobability < 3:\r\n {set notables to cat(notables, [cat(\"un inusualmente corto período de rotación de \", Humanise(reportbody.rotationalperiod), \" días\")])}\r\n }\r\n }\r\n\r\n {if reportAbsMagnitude && reportbody.absolutemagnitudeprobability:\r\n {if reportbody.absolutemagnitudeprobability < 0.01:\r\n {set notables to cat(notables, [cat(OneOf(\"increíble brillo\", \"increiblemente luminosa\"))])}\r\n |elif reportbody.absolutemagnitudeprobability < 0.1:\r\n {set notables to cat(notables, [cat(OneOf(\"extremo brillo\", \"extremadamente luminosa\"))])}\r\n |elif reportbody.absolutemagnitudeprobability < 1:\r\n {set notables to cat(notables, [cat(OneOf(\"inusualmente brillante\", \"luminosidad inusual\"))])}\r\n |elif reportbody.absolutemagnitudeprobability < 5:\r\n {set notables to cat(notables, [cat(OneOf(\"muy brillante\", \"alta luminosidad\"))])}\r\n }\r\n }\r\n\r\n {_ Is the star ringed? _}\r\n {if reportRingedStars:\r\n {if reportbody.rings:\r\n {set ringcompositions to []}\r\n {set cur to 0}\r\n {for ring in reportbody.rings:\r\n {if find(ring.name, \"Anillo\") > -1:\r\n {if find(ringcompositions, ring.composition) = -1:\r\n {set ringcompositions to cat(ringcompositions, [cat(ring.composition)])}\r\n }\r\n }\r\n {set cur to cur + 1}\r\n }\r\n {set cur to 0}\r\n {set length to len(ringcompositions) - 1}\r\n {while cur < len(ringcompositions):\r\n {set ringsdescription to cat(ringsdescription, ringcompositions[cur])}\r\n {set cur to cur + 1}\r\n {if cur = length: \r\n {set ringsdescription to cat(ringsdescription, \" y \")}\r\n |elif cur < length:\r\n {set ringsdecription to cat(ringsdescription, \", \")}\r\n }\r\n }\r\n {if ringsdescription:\r\n {if len(ringcompositions) = 1:\r\n {if StartsWithVowel(reportbody.reserves): \r\n {set a to \"un \"} \r\n |else: \r\n {set a to \"un \"}\r\n }\r\n {set rings to \"anillo\"}\r\n |else:\r\n {set rings to \"anillos\"} \r\n }\r\n {if reportbody.reserveLevel.invariantName != \"None\": \r\n {set reserves to reportbody.reserves}\r\n }\r\n {set notables to cat(notables, [cat(a, \" \", reserves, \" \", ringsdescription, \" \", rings)])}\r\n }\r\n }\r\n }\r\n\r\n {_ Report notable stars _}\r\n\r\n {if len(notables) > 0:\r\n\r\n {_ Setup descriptions for our star _}\r\n\r\n {if find([\"L\", \"T\", \"Y\"], reportbody.stellarclass) > -1:\r\n {set shortdescription to \"enana marrón\"}\r\n |elif reportbody.stellarclass = \"TTS\":\r\n {set shortdescription to \"Estrella T tauri\"}\r\n {set desc2 to Occasionally(2, \"en el proceso de contracción gravitacional.\")}\r\n |elif reportbody.stellarclass = \"AEBE\":\r\n {set age to \"Muy joven\"}\r\n {set shortdescription to \"proto-estrella\"}\r\n {set desc2 to Occasionally(2, \"pendiente de entrar en secuencia principal {Occasionally(2, \"pero en el camino de convertirse en una estrella de clase A, o B\")}\")}\r\n |elif reportbody.stellarclass = \"WC\":\r\n {set desc1 to \"rica en carbono\"}\r\n {set shortdescription to \"Estrella de Wolf-Rayet\"}\r\n {set desc2 to Occasionally(2, \", con una pérdida considerable de su masa, y exponiendo carbono ionizado a su núcleo, \")}\r\n |elif reportbody.stellarclass = \"WN\":\r\n {set desc1 to \"rica en helio y nitrógeno\"}\r\n {set shortdescription to \"Estrella de Wolf-Rayet\"}\r\n {set desc2 to Occasionally(2, \", con una pérdida considerable de su masa, y exponiendo helio ionizado y nitrógeno a su núcleo, \")}\r\n |elif reportbody.stellarclass = \"WO\":\r\n {set desc1 to \"rica en oxígeno\"}\r\n {set shortdescription to \"Estrella de Wolf-Rayet\"}\r\n {set desc2 to Occasionally(2, \", con una pérdida considerable de su masa, y exponiendo oxígeno ionizado a su núcleo, \")}\r\n |elif reportbody.stellarclass = \"WNC\":\r\n {set shortdescription to \"Estrella de Wolf-Rayet\"}\r\n {set desc2 to Occasionally(2, \", con una pérdida considerable de su masa, y exponiendo a su núcleo, nitrógeno ionizado, carbono, oxígeno, y helio, \")}\r\n |elif reportbody.stellarclass = \"W\":\r\n {set shortdescription to \"Estrella de Wolf-Rayet\"} \r\n {set desc2 to Occasionally(2, \", con una pérdida considerable de su masa, y exponiendo a su núcleo todos los elementos más pesados, \")}\r\n |elif reportbody.stellarclass = \"CS\":\r\n {set shortdescription to \"estrella de carbono\"}\r\n |elif find([\"C\", \"CN\", \"CH\", \"CHd\"], reportbody.stellarclass) > -1:\r\n {set age to Occasionally(2, \"secuencia tardía\")} \r\n {set shortdescription to \"estrella rica en carbono\"}\r\n |elif reportbody.stellarclass = \"CJ\":\r\n {set age to Occasionally(2, \"secuencia tardía\")} \r\n {set shortdescription to \"estrella de carbono\"}\r\n {set desc2 to Occasionally(2, \"con altos niveles de carbono 13 en su atmósfera\")}\r\n |elif find([\"MS\", \"S\"], reportbody.stellarclass) > -1:\r\n {set age to Occasionally(2, \"secuencia tardía\")} \r\n {set shortdescription to \"estrella\"}\r\n {set desc2 to Occasionally(4, \"que antes fue una Estrella Clase M, y ahora está en camino de convertirse en una de carbono\")}\r\n |elif reportbody.stellarclass = \"DA\":\r\n {set shortdescription to \"enana blanca\"}\r\n {set desc2 to Occasionally(4, \"con una atmósfera rica en hidrógeno\")}\r\n |elif reportbody.stellarclass = \"DAB\":\r\n {set shortdescription to \"enana blanca\"}\r\n {set desc2 to Occasionally(4, \"con una atmósfera rica en hidrógeno y helio\")}\r\n |elif slice(reportbody.stellarclass, 0, 1) = \"D\":\r\n {set shortdescription to \"enana blanca\"}\r\n |elif slice(reportbody.stellarclass, 0, 1) = \"N\":\r\n {set shortdescription to \"estrella de neutrones\"}\r\n {set desc2 to Occasionally(4, \"con un peligroso núcleo de alta densidad\")}\r\n |elif reportbody.stellarclass = \"H\":\r\n {set shortdescription to \"agujero negro\"}\r\n |elif reportbody.stellarclass = \"X\":\r\n {set shortdescription to \"Entidad estelar exótica\"}\r\n |elif reportbody.stellarclass = \"SuperMassiveBlackHole\":\r\n {set shortdescription to \"Agujero negro supermasivo\"}\r\n |elif reportbody.stellarclass = \"A_BlueWhiteSuperGiant\":\r\n {set class to \"{P(\\\"A\\\")}-class\"}\r\n {set shortdescription to \"Supergigante azul\"}\r\n {set desc2 to Occasionally(4, \"que se está expandiendo hacia convertirse en una supergigante roja\")}\r\n |elif reportbody.stellarclass = \"F_WhiteSuperGiant\":\r\n {set class to \"{P(\\\"F\\\")}-class\"} \r\n {set shortdescription to \"Supergigante amarilla\"}\r\n {set desc2 to Occasionally(4, \"que se está expandiendo hacia conventirse en una supergigante roja\")}\r\n |elif reportbody.stellarclass = \"M_RedSuperGiant\":\r\n {set class to \"{P(\\\"M\\\")}-class\"} \r\n {set shortdescription to \"Supergigante roja\"}\r\n {set desc2 to Occasionally(4, \"en su fase de combustión de helio\")}\r\n |elif reportbody.stellarclass = \"M_RedGiant\":\r\n {set class to \"{P(\\\"M\\\")}-class\"} \r\n {set shortdescription to \"gigante roja\"}\r\n {set desc2 to Occasionally(4, \"que se está expandiendo hacia convertirse en supergigante\")}\r\n |elif reportbody.stellarclass = \"K_OrangeGiant\":\r\n {set class to \"{P(\\\"M\\\")}-class\"} \r\n {set shortdescription to \"gigante naranja\"}\r\n {set desc2 to Occasionally(4, \"que se expande mientras se dirige hacia el final de su vida\")}\r\n |elif reportbody.stellarclass = \"RoguePlanet\":\r\n {set class to \"\"} \r\n {set shortdescription to OneOf(\"interestelar\",\"vagabundo\",\"errante\",\"huérfano\")}\r\n |elif reportbody.stellarclass = \"Nebula\":\r\n {set class to \"\"} \r\n {set shortdescription to \"Nebulosa\"}\r\n |elif reportbody.stellarclass = \"StellarRemnantNebula\":\r\n {set class to \"\"} \r\n {set shortdescription to OneOf(\"una nebulosa remanente\",\" un remanente de Supernova\")}\r\n }\r\n\r\n {if !shortdescription:\r\n {set shortdescription to \"estrella\"}\r\n }\r\n {set description to shortdescription}\r\n {if desc1: \r\n {set description to cat(desc1, \" \", description)}\r\n }\r\n {if desc2: \r\n {set description to cat(description, \" \", desc2)}\r\n }\r\n\r\n {_ Set additional common elements _}\r\n\r\n {if !class:\r\n {set class to P(Spacialise(reportbody.stellarclass))}\r\n }\r\n\r\n {_ Begin speaking _}\r\n\r\n\r\n\r\n {if len(notables) > 0:\r\n {if reportbody.shortname != reportbody.systemname: La\r\n {if fastburning = 1: {Occasionally(2, \"combustión rápida\")}}\r\n \r\n\r\n {shortdescription}\r\n {mainsequence}\r\n {P(reportbody.shortname)}, es\r\n |else:\r\n Esta\r\n {if fastburning = 1: {Occasionally(2, \"combustión rápida\")}}\r\n {mainsequence}\r\n {shortdescription} es\r\n }\r\n\r\n {if rarity:\r\n {rarity}{if reportbody.chromaticity: \", \"} y por ello\r\n }\r\n\r\n {if len(notables) = 1:\r\n relevante,\r\n |elif len(notables) = 2:\r\n {OneOf('interesante,', 'relevante', 'remarcable')}\r\n |elif len(notables) = 3:\r\n {OneOf('excepcional,', 'remarcable,')}\r\n |elif len(notables) = 4:\r\n {OneOf('extraordinaria,')}\r\n |elif len(notables) >= 5:\r\n {OneOf('única en su clase,', 'única,')}\r\n }\r\n\r\n {if reportClass = 1 && len(class) > 0: \r\n {set class to cat(\"clase\", \" \", class)}\r\n {if reportSubClass && reportbody.stellarsubclass:\r\n {set class to cat(class, \" \", reportbody.stellarsubclass)}\r\n }\r\n }\r\n {Occasionally(3, \"en relación a similares de su clase,\")} \r\n {OneOf(\"dado que\",\"ya que\",\"por que\")} tiene\r\n\r\n\r\n {_ usar \"e\" en lugar de \"y\" si la palabra empieza por \"i...\" _}\r\n {if len(notables) = 1:\r\n |elif len(notables) = 2:\r\n {set yoe to token(notables[1], \" \",0)}\r\n {if find(yoe,\"i\") != -1: {set y to \"e\"}\r\n |else: {set y to \"y\"}}\r\n\r\n |elif len(notables) = 3:\r\n {set yoe to token(notables[2], \" \",0)}\r\n {if find(yoe,\"i\") != -1: {set y to \"e\"}\r\n |else: {set y to \"y\"}}\r\n\r\n |elif len(notables) = 4:\r\n {set yoe to token(notables[3], \" \",0)}\r\n {if find(yoe,\"i\") != -1: {set y to \"e\"}\r\n |else: {set y to \"y\"}}\r\n\r\n |elif len(notables) >= 5:\r\n {set yoe to token(notables[4], \" \",0)}\r\n {if find(yoe,\"i\") != -1: {set y to \"e\"}\r\n |else: {set y to \"y\"}}\r\n }\r\n\r\n {if len(notables) = 1:\r\n {notables[0]}.\r\n |elif len(notables) = 2:\r\n {notables[0]} {y} {notables[1]}.\r\n |elif len(notables) = 3:\r\n {notables[0]}, {notables[1]} {y} {notables[2]}.\r\n |elif len(notables) = 4:\r\n {notables[0]}, {notables[1]}, {notables[2]}, {y} {notables[3]}.\r\n |elif len(notables) >= 5:\r\n {notables[0]}, {notables[1]}, {notables[2]}, {notables[3]}, {y} {notables[4]}.\r\n }\r\n\r\n {if reportbody.chromaticity && reportChromaticity = 1:\r\n Como puedes ver, emite \r\n {if StartsWithVowel(reportbody.chromaticity): una |else: una } \r\n luz \r\n\r\n {if reportbody.chromaticity = \"blanco\": blanca \r\n |elif reportbody.chromaticity = \"blanco-azul\": blanco-azulada\r\n |elif reportbody.chromaticity = \"blanco-amarillo\": blanco-amarillenta\r\n |elif reportbody.chromaticity = \"amarillo-naranja\": amarillo-anaranjada\r\n |elif reportbody.chromaticity = \"rojo-naranja\": brojo-anaranjada\r\n |elif reportbody.chromaticity = \"amarillo-naranja\": amarillo-anaranjada\r\n |else:{reportbody.chromaticity}}. \r\n }\r\n }\r\n } \r\n\r\n {if reportScanValue: {F(\"Report last scan value\")} }\r\n\r\n {if reportHabZone && event.mainstar: {F(\"Star habitable zone\")} }\r\n}", "default": false }, "Star scanned": { "name": "Star scanned", "description": "Se activa cuando completa un escaneo de un cuerpo estelar (TEST)", "enabled": true, "priority": 3, "responder": true, "script": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'star')}\r\n{SetState('eddi_context_last_action', 'scan')}\r\n{SetState('eddi_context_star_system', system.name)}\r\n{SetState('eddi_context_star_star', event.name)}\r\n{SetState('eddi_context_last_scan_estimated_value', event.estimatedvalue)}\r\n\r\n{if ship.Role.edname = \"Exploration\" || ship.Role.edname = \"Multipurpose\":\r\n {F(\"Star report\")}\r\n}", "defaultValue": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'star')}\r\n{SetState('eddi_context_last_action', 'scan')}\r\n{SetState('eddi_context_star_system', system.name)}\r\n{SetState('eddi_context_star_star', event.name)}\r\n{SetState('eddi_context_last_scan_estimated_value', event.estimatedvalue)}\r\n\r\n{if ship.Role.edname = \"Exploration\" || ship.Role.edname = \"Multipurpose\":\r\n {F(\"Star report\")}\r\n}", "default": true }, "Station no fire zone entered": { "name": "Station no fire zone entered", "description": "Se activa cuando su nave entra en la zona de seguridad de una estación espacial", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Station no fire zone exited": { "name": "Station no fire zone exited", "description": "Se activa cuando su nave abandona la zona de seguridad de una estación espacial", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Station report": { "name": "Station report", "description": "Función para informar sobre los detalles de la actual estación espacial", "enabled": true, "priority": null, "responder": false, "script": "No hay nada interesante aquí", "defaultValue": "No hay nada interesante aquí", "default": true }, "Statistics": { "name": "Statistics", "description": "Statistics provided at the beginning of a game session", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Suit purchased": { "name": "Suit purchased", "description": "Triggered when you buy a space suit", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Surface signals detected": { "name": "Surface signals detected", "description": "Triggered when surface signal sources are detected", "enabled": true, "priority": 3, "responder": true, "script": "{set surfacesignals to []}\r\n{for signal in event.surfacesignals: \r\n\r\n{_ traducción del plural del tipo de señal}\r\n\r\n\t{if signal.source = \"Señal Geológica de Superficie\": \r\n {set tipopl to \"Señales geológicas de Superficie\"} \r\n |elif signal.source = \"Señal no identificada\":\r\n \t{set tipopl to \"Señales no identificadas\"}\r\n |elif signal.source = \"Señal no humana\":\r\n \t{set tipopl to \"Señales no humanas\"}\r\n |elif signal.source = \"Señal Biológica de Superficie\":\r\n \t{set tipopl to \"Señales Biológicas de Superficie\"}\r\n |elif signal.source = \"Señal de Superficie Humana\":\r\n \t{set tipopl to \"Señales de Superficie Humanas\"}\r\n |elif signal.source = \"Señal de Superficie Thargoide\":\r\n \t{set tipopl to \"Señales de Superficie Thargoide\"}\r\n |elif signal.source = \"Señal de Superficie Guardián\":\r\n \t{set tipopl to \"Señales de Superficie Guardián\"}\r\n\r\n }\r\n\t\r\n {set surfacesignals_desc to: \r\n \t{signal.amount} {if signal.amount > 1:{tipopl}\r\n \t|else:\r\n {signal.source}}\r\n \t\r\n }\r\n \r\n {_ detección de plural y género}\r\n\r\n{if signal.amount > 1: {set s to \"s\"} \r\n|else: {set s to \"\"}\r\n}\r\n \r\n{set surfacesignals to cat(surfacesignals, [surfacesignals_desc])}\r\n\r\n}\r\n\r\n\r\nDetectada{s} {List(surfacesignals)}.\r\n\r\n", "defaultValue": "{set surfacesignals to []}\r\n{for signal in event.surfacesignals: \r\n {set surfacesignals_desc to: \r\n {signal.amount} {signal.source}{if signal.amount > 1:s}\r\n }\r\n {set surfacesignals to cat(surfacesignals, [surfacesignals_desc])}\r\n}\r\n\r\n{List(surfacesignals)} detected.", "default": false }, "Swapout check": { "name": "Swapout check", "description": "Comprueba si algún módulo de los instalados en la nave está disponible más barato en la ubicación actual", "enabled": true, "priority": 4, "responder": true, "script": "{_ Function to find a given module in outfitting}\r\n{set outfitting(module) to:\r\n {for outfittingmodule in station.outfitting:\r\n {if outfittingmodule.EDDBID = module.EDDBID:\r\n {return outfittingmodule}\r\n }\r\n }\r\n}\r\n\r\n{_ Function to report if a module is cheaper in outfitting that on the ship}\r\n{set reportIfCheaper(shipmodule) to:\r\n {_ Only consider if this has no modifications}\r\n {if !shipmodule.modified:\r\n {set outfittingmodule to outfitting(shipmodule)}\r\n {if outfittingmodule:\r\n {if outfittingmodule.price > 0 && outfittingmodule.price < shipmodule.price:\r\n {set saving to shipmodule.price - outfittingmodule.price}\r\n {_ Only bother if it's a relatively good saving... more than 2% of the ship value or more than 0.1% of the commander's credit balance}\r\n {if saving / ship.value > 0.02 || (cmdr.credits > 0 && saving / cmdr.credits > 0.001):\r\n Se podría reducir la recompra en {Humanise(round(saving * cmdr.insurance))} créditos intercambiando aquí tu {shipmodule.name}.\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n{reportIfCheaper(ship.powerplant)}\r\n{reportIfCheaper(ship.thrusters)}\r\n{reportIfCheaper(ship.frameshiftdrive)}\r\n{reportIfCheaper(ship.lifesupport)}\r\n{reportIfCheaper(ship.powerdistributor)}\r\n{reportIfCheaper(ship.sensors)}\r\n{for hardpoint in ship.hardpoints:\r\n {if hardpoint.module:\r\n {reportIfCheaper(hardpoint.module)}\r\n }\r\n}\r\n{for compartment in ship.compartments:\r\n {if compartment.module:\r\n {reportIfCheaper(compartment.module)}\r\n }\r\n}\r\n", "defaultValue": "{_ Function to find a given module in outfitting}\r\n{set outfitting(module) to:\r\n {for outfittingmodule in station.outfitting:\r\n {if outfittingmodule.EDDBID = module.EDDBID:\r\n {return outfittingmodule}\r\n }\r\n }\r\n}\r\n\r\n{_ Function to report if a module is cheaper in outfitting that on the ship}\r\n{set reportIfCheaper(shipmodule) to:\r\n {_ Only consider if this has no modifications}\r\n {if !shipmodule.modified:\r\n {set outfittingmodule to outfitting(shipmodule)}\r\n {if outfittingmodule:\r\n {if outfittingmodule.price < shipmodule.price:\r\n {set saving to shipmodule.price - outfittingmodule.price}\r\n {_ Only bother if it's a relatively good saving}\r\n {if saving / cmdr.credits > 0.001:\r\n Puede ahorrar {saving} créditos cambiando su {shipmodule.name} aquí.\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n{reportIfCheaper(ship.powerplant)}\r\n{reportIfCheaper(ship.thrusters)}\r\n{reportIfCheaper(ship.frameshiftdrive)}\r\n{reportIfCheaper(ship.lifesupport)}\r\n{reportIfCheaper(ship.powerdistributor)}\r\n{reportIfCheaper(ship.sensors)}\r\n{for hardpoint in ship.hardpoints:\r\n {if hardpoint.module:\r\n {reportIfCheaper(hardpoint.module)}\r\n }\r\n}\r\n{for compartment in ship.compartments:\r\n {if compartment.module:\r\n {reportIfCheaper(compartment.module)}\r\n }\r\n}\r\n", "default": false }, "Synthesised": { "name": "Synthesised", "description": "Se activa cuando se realiza alguna síntesis utilizando materiales", "enabled": true, "priority": 5, "responder": true, "script": "Síntesis completada.", "defaultValue": "Síntesis completada.", "default": true }, "System distance report": { "name": "System distance report", "description": "Función para informar sobre la distancia al sistema contextual", "enabled": true, "priority": null, "responder": false, "script": "{_ Fetch from context }\n{set reportsystem to SystemDetails(state.eddi_context_system_system)}\n\n{if !reportsystem.name || reportbody.name = \"\":\n No tengo la certeza sobre a qué sistema se refiere.\n|else:\n La distancia a {P(reportsystem.name)} es de {Humanise(Distance(reportsystem.x, reportsystem.y, reportsystem.z, system.x, system.y, system.z))} años luz.\n}\n\n\n\n", "defaultValue": "{_ Fetch from context }\n{set reportsystem to SystemDetails(state.eddi_context_system_system)}\n\n{if !reportsystem.name || reportbody.name = \"\":\n No tengo la certeza sobre a qué sistema se refiere.\n|else:\n La distancia a {P(reportsystem.name)} es de {Humanise(Distance(reportsystem.x, reportsystem.y, reportsystem.z, system.x, system.y, system.z))} años luz.\n}\n\n\n\n", "default": true }, "System faction changed": { "name": "System faction changed", "description": "Se activa cuando hay algún cambio en la facción que controla un sistema vigilado", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "System report": { "name": "System report", "description": "Función para informar sobre los detalles del sistema estelar contextual", "enabled": true, "priority": null, "responder": false, "script": "{_ Fetch from context }\n{set reportsystem to SystemDetails(state.eddi_context_system_system)}\n{_ Fetch from Context, if a context is set _}\n{if state.eddi_context_system_name:\n {set reportSystem to SystemDetails(state.eddi_context_system_name)}\n|else:\n {set reportSystem to SystemDetails(system.systemname)}\n}\n\n{if !reportSystem.name || reportSystem.name = \"\":\n No tengo la certeza sobre a qué sistema se refiere\n|else:\n {P(reportSystem.name, \"starsystem\")} es un sistema {Occasionally(2,\"estelar \")}\n {if reportSystem.population && reportSystem.population > 0:\n \n {if reportSystem.allegiance = \"Federation\":\n Federal\n |elif reportSystem.allegiance = \"Empire\":\n Imperial\n |else:\n independiente\n }\n {if reportSystem.security = \"Alto\":\n {OneOf(\"con mucha seguridad\", \"muy bien regulado\")}\n |elif reportSystem.security = \"Bajo\":\n {OneOf(\"con muy poco movimiento policial\", \"con escasa seguridad\")}\n |elif reportSystem.security = \"Anárquico\":\n {OneOf(\"muy inseguro\", \"sin policía\")}\n |else: {set normsec to 1}\n }\n\t\t{if normsec != 1: y}\n {OneOf(\"de\", \"con una población de\", \"que acoje a\")} \r\n {Humanise(reportsystem.population)}{if find(Humanise(reportsystem.population),\"coma cinco\") != -1:es}\r\n de habitantes\n {if reportSystem.powerState.invariantName != \"None\":\n {if reportSystem.powerState.invariantName = \"Home System\":\n {if normsec != 1:. Además,|else:, y} es el hogar de {P(reportsystem.power)}\n |elif reportSystem.powerState.invariantName = \"Control\":\n {if normsec != 1:. Además,|else:, y} está {OneOf(\"alineado con\", \"aliado con\", \"controlado por\")} {P(reportSystem.power)}\n |elif reportSystem.powerState.invariantName = \"Exploited\":\n {if normsec != 1:. Además,|else:, y} está {OneOf(\"siendo explotado por\", \"bajo la influencia de\")} {P(reportSystem.power)}\n |elif reportSystem.powerState.invariantName = \"Contested\":\n {if normsec != 1:. Además,|else:, y} está disputado por varias potencias\n }\n }.\n\n {if reportSystem.faction:\n {P(reportSystem.faction)} es la {OneOf(\"potencia\", \"facción\")} {OneOf(\"dominante\", \"local\", \"que gobierna\")}.\n }\n\n {if len(reportSystem.stations) = 0:\n No hay ninguna estación presente\n |else:\n {if len(reportSystem.orbitalstations) = 0:\n {if len(reportSystem.planetarystations) = 1:\n Hay {OneOf(\"una sola\", \"solo una\", \"una solitaria\", \"una\")} estación planetaria\n |else:\n Hay {len(reportSystem.planetarystations)} estaciones planetarias\n }\n |elif len(reportSystem.orbitalstations) = 1:\n Hay {OneOf(\"una sola\", \"solo una\", \"una solitaria\", \"una\")} estación orbital\n {if len(reportSystem.planetarystations) = 1:\n y {OneOf(\"una sola\", \"solo una\", \"una\")} estación planetaria\n |elif len(reportSystem.planetarystations) > 1:\n y {len(reportSystem.planetarystations)} estaciones planetarias\n }\n |else:\n Hay {len(reportSystem.orbitalstations)} estaciones orbitales\n {if len(reportSystem.planetarystations) = 1:\n y {OneOf(\"una sola\", \"solo una\", \"una\")} estación planetaria\n |elif len(reportSystem.planetarystations) > 1:\n y {len(reportSystem.planetarystations)} estaciones planetarias\n }\n }\n }\n en este sistema\n |else:\n {OneOf(\"inhabitado\",\"despoblado\",\"sin habitantes\",\"sin ningún habitante\",\"sin ninguna población\")}\n }.\n}", "defaultValue": "{_ Fetch from context }\n{set reportsystem to SystemDetails(state.eddi_context_system_system)}\n\n{if !reportsystem.name || reportbody.name = \"\":\n No tengo la certeza sobre a qué sistema se refiere\n|else:\n {P(reportsystem.name)} es un sistema \n\n {if reportsystem.population && reportsystem.population > 0:\r\n\r\n {if reportsystem.government = \"Colonia prisión\": \r\n Colonia prisión\r\n |elif reportsystem.government = \"Anarquía:\r\n Anárquico\r\n |elif reportsystem.government = \"Colonia\":\r\n Colonial\r\n |elif reportsystem.government = \"Communismo\":\r\n Comunista\r\n |elif reportsystem.government = \"Confederación\":\r\n Confederado\r\n |elif reportsystem.government = \"Cooperativa\":\r\n Cooperativo\r\n |elif reportsystem.government = \"Corporación\":\r\n Corporativo\r\n |elif reportsystem.government = \"Democracia\":\r\n Demócrata\r\n |elif reportsystem.government = \"Dictadurap\":\r\n Dictatorial\r\n |elif reportsystem.government = \"Feudal\":\r\n Feudal\r\n |elif reportsystem.government = \"Imperio\":\r\n Imperialista\r\n |elif reportsystem.government = \"Patronazgo\":\r\n Patronal\r\n |elif reportsystem.government = \"Teocracia\":\r\n Teocrático\r\n |elif reportsystem.government = \"Taller\":\r\n Taller\r\n |elif reportsystem.government = \"Engineer\":\r\n Tecnológico\n \n \n {if reportsystem.allegiance = \"La Federación\":\n de la Federación\n |elif reportsystem.allegiance = \"El Imperio\":\n del Imperio\n |else:\n independiente\n }\n\n |else:\n \n }\n {OneOf(\"de\", \"con una población de\", \"que acoje a\")} \r\n {Humanise(reportsystem.population)}{if find(Humanise(reportsystem.population),\"coma cinco\") != -1:es}\r\n de habitantes\n {if reportsystem.Power.invariantName != \"None\":\n , {OneOf(\"alineados con\", \"aliados con\", \"controlados por\")} {P(reportsystem.power)}\n }.\n\n {if reportsystem.faction:\n {P(reportsystem.faction)} es la {OneOf(\"potencia\", \"facción\")} {OneOf(\"dominante\", \"local\", \"que gobierna\")}.\n }\n\n {if len(reportsystem.stations) = 0:\n No hay ninguna estación presente\n |else:\n {if len(reportsystem.orbitalstations) = 0:\n {if len(reportsystem.planetarystations) = 1:\n Hay {OneOf(\"una sola\", \"solo una\", \"una solitaria\", \"una\")} estación planetaria\n |else:\n Hay {len(reportsystem.planetarystations)} estaciones planetarias\n }\n |elif len(reportsystem.orbitalstations) = 1:\n Hay {OneOf(\"una sola\", \"solo una\", \"una solitaria\", \"una\")} estación orbital\n {if len(reportsystem.planetarystations) = 1:\n y {OneOf(\"una sola\", \"solo una\", \"una\")} estación planetaria\n |elif len(reportsystem.planetarystations) > 1:\n y {len(reportsystem.planetarystations)} estaciones planetarias\n }\n |else:\n Hay {len(reportsystem.orbitalstations)} estaciones orbitales\n {if len(reportsystem.planetarystations) = 1:\n y {OneOf(\"una sola\", \"solo una\", \"una\")} estación planetaria\n |elif len(reportsystem.planetarystations) > 1:\n y {len(reportsystem.planetarystations)} estaciones planetarias\n }\n }\n }\n en este sistema\n |else:\n {OneOf(\"inhabitado\",\"despoblado\",\"sin habitantes\",\"sin ningún habitante\",\"sin ninguna población\")}\n }.\n}\r\n\r\n{F(\"System state report\")}\r\n{F(\"System scan complete\")}\r\n{F(\"Bodies mapped\")}\r\n{F(\"Star report\")}", "default": false }, "System scan complete": { "name": "System scan complete", "description": "Se activa al completar el escaneo de un sistema estelar", "enabled": true, "priority": 5, "responder": true, "script": "{_ Preferences _}\r\n{set reportGreenSystems to true} {_ if true, reports systems containing all fsd synthesis elements. _}\r\n{set reportGoldSystems to true} {_ if true, reports systems containing all surface prospectable elements. _}\r\n{set reportBodiesToMap to true} {_ If true, recommends bodies to map using the `Bodies to map` script. _}\r\n\r\n{if ship.Role.edname = \"Exploration\" || ship.Role.edname = \"Multipurpose\":\r\n {for compartment in ship.compartments:\r\n {if compartment.module.invariantName = \"Planetary Vehicle Hangar\":\r\n {set hasSRV to true}\r\n }\r\n }\r\n {if hasSRV:\r\n {if system.isgold:\r\n {if reportGoldSystems:\r\n Este sistema {Occasionally(2, \"estelar\")}\r\n {OneOf(\"contiene\", \"tiene\", \"se pueden encontrar\")}\r\n todos los elementos \r\n {OneOf(\"posibles\", \"disponibles\")}\r\n {OneOf(\"en superficies planetarias.\", \"de la prospección de superficie.\")}\r\n Nivel de calidad de exploración: Oro.\r\n }\r\n |elif system.isgreen:\r\n {if reportGreenSystems:\r\n Este sistema {Occasionally(2, \"estelar\")}\r\n {OneOf(\"contiene\", \"tiene\", \"se pueden encontrar\")}\r\n todos los elementos \r\n {Occasionally(2, \"que podrían ser\")} \r\n requeridos para \r\n {OneOf(\"augmentar\", \"impulsar\")} el rango {Occasionally(2, \"de salto\")}\r\n {OneOf(\"de esta nave.\", \r\n \"para la exploración.\", \r\n \"de la {ShipName()}.\"\r\n )}\r\n Nivel de calidad de exploración: Plata.\r\n }\r\n }\r\n }\r\n\r\n {if reportBodiesToMap:\r\n {set bodiesToMap to F(\"Bodies to map\")}\r\n {if bodiesToMap:\r\n {Pause(2000)}\r\n {bodiesToMap}\r\n }\r\n }\r\n}", "defaultValue": "{_ Preferences _}\r\n{set reportGreenSystems to true} {_ if true, reports systems containing all fsd synthesis elements. _}\r\n{set reportGoldSystems to true} {_ if true, reports systems containing all surface prospectable elements. _}\r\n{set reportBodiesToMap to true} {_ If true, recommends bodies to map using the `Bodies to map` script. _}\r\n\r\n{if ship.Role.edname = \"Exploration\" || ship.Role.edname = \"Multipurpose\":\r\n {for compartment in ship.compartments:\r\n {if compartment.module.invariantName = \"Planetary Vehicle Hangar\":\r\n {set hasSRV to true}\r\n }\r\n }\r\n {if hasSRV:\r\n {if system.isgold:\r\n {if reportGoldSystems:\r\n Este sistema {Occasionally(2, \"estelar\")}\r\n {OneOf(\"contiene\", \"tiene\", \"se pueden encontrar\")}\r\n todos los elementos \r\n {OneOf(\"posibles\", \"disponibles\")}\r\n {OneOf(\"en superficies planetarias.\", \"de la prospección de superficie.\")}\r\n Nivel de calidad de exploración: Oro.\r\n }\r\n |elif system.isgreen:\r\n {if reportGreenSystems:\r\n Este sistema {Occasionally(2, \"estelar\")}\r\n {OneOf(\"contiene\", \"tiene\", \"se pueden encontrar\")}\r\n todos los elementos \r\n {Occasionally(2, \"que podrían ser\")} \r\n requeridos para \r\n {OneOf(\"augmentar\", \"impulsar\")} el rango {Occasionally(2, \"de salto\")}\r\n {OneOf(\"de esta nave.\", \r\n \"para la exploración.\", \r\n \"de la {ShipName()}.\"\r\n )}\r\n Nivel de calidad de exploración: Plata.\r\n }\r\n }\r\n }\r\n\r\n {if reportBodiesToMap:\r\n {set bodiesToMap to F(\"Bodies to map\")}\r\n {if bodiesToMap:\r\n {Pause(2000)}\r\n {bodiesToMap}\r\n }\r\n }\r\n}", "default": true }, "System state changed": { "name": "System state changed", "description": "Se activa cuando hay un cambio en el estado de un sistema vigilado", "enabled": true, "priority": 3, "responder": true, "script": "{_ Context }\n{SetState('eddi_context_last_subject', 'system')}\n{SetState('eddi_context_last_action', 'change_state')}\n{SetState('eddi_context_system', event.system)}\n{SetState('eddi_context_system_system', event.system)}\n\n{_ Set up our system name}\n{if event.system = homesystem.name:\n {set system to OneOf('{P(event.system)}',\n 'Tu sistema hogar')}\n|elif event.system = system.name:\n {set system to OneOf('{P{event.system)}',\n 'este sistema')}\n|else:\n {set system to OneOf('sistema {P(event.system)}'\n '{P(event.system)}'))}\n}\n\n{if event.newstate != 'None':\n {_ System has entered a new state}\n {OneOf('Las transmisiones locales informan que', 'Información: ', 'Transmisión interceptada. Informan que ')}\n {if event.newstate = 'Boom':\n {OneOf('{system} está experimentando un auge comercial',\n '{system} está entrando en un período de mayor éxito comercial')}\n |elif event.newstate = 'Bust':\n {system} está experimentando dificultades económicas\n |elif event.newstate = 'Civil Unrest':\n {OneOf('{system} está experimentando disturbios civiles',\n 'hay disturbios en el {system} system')}\n |elif event.newstate = 'Civil War':\n {OneOf('{system} está en guerra con otra facción en el mismo sistema',\n 'una guerra civil estalló en {system}',\n '{system} ha caído en una guerra civil',\n 'han estallado hostilidades en {system}')}\n |elif event.newstate = 'Election':\n {system} está pasando por elecciones\n |elif event.newstate = 'Expansion':\n {OneOf(\"una facción en {system} está intentando expandirse a un sistema vecino\",\n \"una facción en {system} está preparándose para expandirse a un sistema vecino\")}\n |elif event.newstate = 'Famine':\n {system} está sufriendo hambruna\n |elif event.newstate = 'Investment':\n En {system} la facción controladora está invirtiendo fuertemente en su infraestructura local\n |elif event.newstate = 'Lockdown':\n {system} ha aumentado la seguridad debido a un bloqueo por parte de la facción dominante\n |elif event.newstate = 'Outbreak':\n {system} sufre de un brote de enfermedad contagiosa\n |elif event.newstate = 'Retreat':\n La facción que controla {system} se está retirando de un sistema vecino\n |elif event.newstate = 'War':\n {system} ahora está en guerra con un sistema vecino\n |else:\n el {OneOf('{system} ha entrado en {event.state}',\n '{system} ahora está en {event.state}')}\n }.\n}\n\n", "defaultValue": "{_ Context }\n{SetState('eddi_context_last_subject', 'system')}\n{SetState('eddi_context_last_action', 'change_state')}\n{SetState('eddi_context_system', event.system)}\n{SetState('eddi_context_system_system', event.system)}\n\n{_ Set up our system name}\n{if event.system = homesystem.name:\n {set system to OneOf('{P(event.system)}',\n 'Tu sistema hogar')}\n|elif event.system = system.name:\n {set system to OneOf('{P{event.system)}',\n 'este sistema')}\n|else:\n {set system to OneOf('sistema {P(event.system)}'\n '{P(event.system)}'))}\n}\n\n{if event.newstate != 'None':\n {_ System has entered a new state}\n {OneOf('Las transmisiones locales informan que', 'Información: ', 'Transmisión interceptada. Informan que ')}\n {if event.newstate = 'Boom':\n {OneOf('{system} está experimentando un auge comercial',\n '{system} está entrando en un período de mayor éxito comercial')}\n |elif event.newstate = 'Bust':\n {system} está experimentando dificultades económicas\n |elif event.newstate = 'Civil Unrest':\n {OneOf('{system} está experimentando disturbios civiles',\n 'hay disturbios en el {system} system')}\n |elif event.newstate = 'Civil War':\n {OneOf('{system} está en guerra con otra facción en el mismo sistema',\n 'una guerra civil estalló en {system}',\n '{system} ha caído en una guerra civil',\n 'han estallado hostilidades en {system}')}\n |elif event.newstate = 'Election':\n {system} está pasando por elecciones\n |elif event.newstate = 'Expansion':\n {OneOf(\"una facción en {system} está intentando expandirse a un sistema vecino\",\n \"una facción en {system} está preparándose para expandirse a un sistema vecino\")}\n |elif event.newstate = 'Famine':\n {system} está sufriendo hambruna\n |elif event.newstate = 'Investment':\n En {system} la facción controladora está invirtiendo fuertemente en su infraestructura local\n |elif event.newstate = 'Lockdown':\n {system} ha aumentado la seguridad debido a un bloqueo por parte de la facción dominante\n |elif event.newstate = 'Outbreak':\n {system} sufre de un brote de enfermedad contagiosa\n |elif event.newstate = 'Retreat':\n La facción que controla {system} se está retirando de un sistema vecino\n |elif event.newstate = 'War':\n {system} ahora está en guerra con un sistema vecino\n |else:\n el {OneOf('{system} ha entrado en {event.state}',\n '{system} ahora está en {event.state}')}\n }.\n}\n\n", "default": true }, "System state report": { "name": "System state report", "description": "Informa sobre el estado actual del sistema contextual", "enabled": true, "priority": null, "responder": false, "script": "{_ Fetch from Context, if a context is set _}\r\n{if state.eddi_context_system_name:\r\n {set reportSystem to SystemDetails(state.eddi_context_system_name)}\r\n|else:\r\n {set reportSystem to SystemDetails(system.systemname)}\r\n}\r\n\r\n{if !reportSystem.name || reportSystem.name = \"\":\r\n\r\n No tengo claro a que sistema se refiere.\r\n\r\n|else:\r\n\r\n {_ Report any ongoing conflicts _}\r\n {set conflictfactions to []}\r\n {if reportSystem.conflicts != null:\r\n {for conflict in reportSystem.conflicts:\r\n {P(conflict.faction1, \"faction\")}\r\n {if conflict.status = \"active\":\r\n están\r\n |elif conflict.status = \"pending\":\r\n pronto estarán\r\n |else:\r\n \t{set conflictnone to 0}\r\n se están recuperando \r\n }\r\n {if conflict.faction1dayswon > conflict.faction2dayswon:\r\n {if conflict.margin >= 3:\r\n {if conflictnone = 0:al dominar|else:dominando}\r\n |elif conflict.margin = 2:\r\n {if conflictnone = 0:de ganar|else:ganando}\r\n |else:\r\n {if conflictnone = 0:de ir en cabeza|else:en cabeza}\r\n }\r\n |elif conflict.faction2dayswon > conflict.faction1dayswon:\r\n {if conflict.margin >= 2:\r\n {if conflictnone = 0:de ir }perdiendo\r\n |else:\r\n {if conflictnone = 0:de ir }a la cola\r\n }\r\n |else:\r\n {if conflictnone:de ir }igualados\r\n }\r\n{_ ****** BUSCA GENERO Y NUMERO DE conflict.state ****** _}\r\n\r\n{_ coge la primera palabra}\r\n{set itemobj to token(conflict.state, \" \",0)} \r\n\r\n{_ mira si es femenino}\r\n{if find(itemobj,\"a\",len(itemobj)-2)!=-1: {set a to \"a\"}\r\n|else: {set a to \"\"}\r\n}\r\n{_ ************************************************** _}\r\n un{a} {conflict.state}\r\n con \r\n {P(conflict.faction2, \"faction\")}\r\n {if conflict.stake:\r\n por el control de {P(conflict.stake, \"station\")}\r\n }\r\n .\r\n {set conflictfactions to cat(conflictfactions, [conflict.faction1])}\r\n {set conflictfactions to cat(conflictfactions, [conflict.faction2])}\r\n }\r\n }\r\n\r\n {_ List our non-conflict faction states _}\r\n {set otherstates to []}\r\n {for faction in reportSystem.factions:\r\n {if faction.influence > 0 && find(conflictfactions, faction.name) = -1:\r\n {for presence in faction.presences:\r\n {if presence.systemName = reportSystem.name:\r\n {if presence.FactionState.invariantName != \"None\":\r\n\r\n {_ Note our controlling faction, if present in our `otherstates` list. _}\r\n {if faction.name = reportSystem.faction:\r\n {set factions to token(factions, \"\", index, \"controlling \")}\r\n }\r\n\r\n {_ Add the faction to our list _}\r\n {if has(otherstates, presence.state):\r\n {set factions to otherstates[presence.state])}\r\n {set factions to cat(factions, \",\", P(faction.name, \"faction\"))}\r\n {set otherstates to union(otherstates, [presence.state: factions])}\r\n |else:\r\n {set otherstates to union(otherstates, [presence.state: P(faction.name, \"faction\")])}\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n {_ Sort from most factions with each state to least factions with each state. _}\r\n {declare by_items(a, b) as:\r\n {return cmp(len(split(b, \",\")), len(split(a, \",\")))}\r\n }\r\n {sort(otherstates, by_items)}\r\n\r\n {_ Prepare summaries for each state _}\r\n {set statesummaries to []}\r\n {for state, factions in otherstates:\r\n\r\n {set factions to split(factions, \",\")}\r\n\r\n {set statesummary to:\r\n {if len(factions) > 1:\r\n las facciones {List(factions)} están\r\n |else:\r\n la facción {factions[0]}, está\r\n }\r\n {if state = \"Retirada\":\r\n en retirada\r\n |elif state = \"Guerra\":\r\n en guerra\r\n |elif state = \"Auge\":\r\n experimentando un auge económico; podría hacer buenos negocios con ellos\r\n |elif state = \"Libertad Civil\":\r\n disfrutando de un período de mayor libertad civil\r\n |elif state = \"Desórdenes públicos\":\r\n experimentando disturbios civiles\r\n |elif state = \"Guerra civil\":\r\n en guerra civil; se recomienda precaución\r\n |elif state = \"Hambruna\":\r\n hay hambruna; se recomienda precaución\r\n |elif state = \"Bloqueo\":\r\n en bloqueo; ve con precaución\r\n |elif state = \"Epidemia\":\r\n tratando de contener un brote de enfermedad; precaución\r\n |elif state = \"Expansión\":\r\n preparando para expandirse a otro sistema\r\n |elif state = \"Quiebra\":\r\n {OneOf(\"en quiebra\",\"en crisis financiera\")}\r\n |elif state = \"Elecciones\":\r\n en periodo electoral\r\n |elif state = \"Inversión\":\r\n invirtiendo en infraestructuras\r\n |elif state = \"Incursión\":\r\n sufriendo una invasión alienígena. {Emphasize(\"¡Alerta!\",'strong')}\r\n |elif state = \"Ataque Pirata\":\r\n sufriendo ataques de piratas. Tenga precaución\r\n |elif state = \"Plaga\":\r\n sufriendo de una plaga de cultivos\r\n |else: {_ catch-all, worded to avoid deciding between a/an}\r\n en estado de {state}\r\n }\r\n }\r\n {set statesummaries to cat(statesummaries, [statesummary])}\r\n }\r\n\r\n {_ Describe our non-conflict states _}\r\n {if len(statesummaries) > 0:\r\n {Pause(100)}\r\n {List(statesummaries)}\r\n }\r\n\r\n}", "defaultValue": "{_ Fetch from context }\r\n{set reportsystem to SystemDetails(state.eddi_context_system_system)}\r\n\r\n{if !reportsystem.name || reportsystem.name = \"\":\r\n No tengo claro a que sistema se refiere.\r\n|elif reportsystem.state && reportsystem.state != 'Ninguno':\r\n {P(reportsystem.name)}\r\n {if reportsystem.state = \"Retirada\":\r\n está en retirada\r\n |elif reportsystem.state = \"Guerra\":\r\n está en guerra; se recomienda precaución\r\n |elif reportsystem.state = \"Auge\":\r\n está experimentando un auge económico; podría hacer buenos negocios\r\n |elif reportsystem.state = \"Desórdenes públicos\":\r\n está experimentando disturbios civiles; se recomienda precaución\r\n |elif reportsystem.state = \"Guerra civil\":\r\n está en guerra civil; se recomienda precaución\r\n |elif reportsystem.state = \"Hambruna\":\r\n hay hambruna; se recomienda precaución\r\n |elif reportsystem.state = \"Bloqueo\":\r\n está en bloqueo; se recomienda precaución\r\n |elif reportsystem.state = \"Epidemia\":\r\n está tratando de contener un brote de enfermedad; se recomienda precaución\r\n |elif reportsystem.state = \"Expansión\":\r\n se está preparando para expandirse a otro sistema\r\n |elif reportsystem.state = \"Quiebra\":\r\n está en quiebra\r\n |elif reportsystem.state = \"Elecciones\":\r\n está en periodo electoral\r\n |elif reportsystem.state = \"Inversión\":\r\n está invirtiendo en infraestructuras\r\n |elif reportsystem.state = \"Libertad Civil\":\r\n tiene libertad civil. Hay una anarquía. Puede que no sea un sistema seguro.\r\n |elif reportsystem.state = \"Incursión\":\r\n está sufriendo una invasión alienígena. {Emphasize(\"¡Alerta!\",'strong')}\r\n |elif reportsystem.state = \"Ataque Pirata\":\r\n está sufriendo ataques de piratas. Tenga precaución\r\n |else:\r\n }\r\n .\r\n}", "default": false }, "TargetType": { "name": "TargetType", "description": "Get real target name (TEST)", "enabled": true, "priority": null, "responder": false, "script": "{_Shirka}\r\n\r\n{_ Get real target name}\r\n{_ to use this function, set a variable to shiptype in the calling event}\r\n\r\n{if shiptype = \"Cobra Mk. III\":\r\n {set shiptype to \"Cobra Mark 3\"}\r\n\r\n|elif shiptype = \"Cobra Mk. IV\":\r\n {set shiptype to \"Cobra Mark 4\"} {_ this works}\r\n\r\n|elif shiptype = \"Krait Mk. II\":\r\n {set shiptype to \"Krait Mark 2\"}\r\n\r\n|elif shiptype = \"Viper Mk. III\":\r\n {set shiptype to \"Viper Mark 3\"}\r\n\r\n|elif shiptype = \"Viper Mk. IV\":\r\n {set shiptype to \"Viper Mark 4\"} {_ this works}\r\n\r\n|elif shiptype = \"$ShipName_Military_Alliance;\":\r\n {set shiptype to \"the Alliance Defence Force\"}\r\n\r\n|elif shiptype = \"$ShipName_Military_Empire;\":\r\n {set shiptype to \"the Imperial Navy\"}\r\n\r\n|elif shiptype = \"$ShipName_Military_Federation;\":\r\n {set shiptype to \"the Federal Navy\"}\r\n\r\n|elif shiptype = \"$ShipName_Military_Independent;\":\r\n {set shiptype to \"the System Defence Force\"}\r\n\r\n}\r\n", "defaultValue": "{_Shirka}\r\n\r\n{_ Get real target name}\r\n{_ to use this function, set a variable to shiptype in the calling event}\r\n\r\n{if shiptype = \"Cobra Mk. III\":\r\n {set shiptype to \"Cobra Mark 3\"}\r\n\r\n|elif shiptype = \"Cobra Mk. IV\":\r\n {set shiptype to \"Cobra Mark 4\"} {_ this works}\r\n\r\n|elif shiptype = \"Krait Mk. II\":\r\n {set shiptype to \"Krait Mark 2\"}\r\n\r\n|elif shiptype = \"Viper Mk. III\":\r\n {set shiptype to \"Viper Mark 3\"}\r\n\r\n|elif shiptype = \"Viper Mk. IV\":\r\n {set shiptype to \"Viper Mark 4\"} {_ this works}\r\n\r\n|elif shiptype = \"$ShipName_Military_Alliance;\":\r\n {set shiptype to \"the Alliance Defence Force\"}\r\n\r\n|elif shiptype = \"$ShipName_Military_Empire;\":\r\n {set shiptype to \"the Imperial Navy\"}\r\n\r\n|elif shiptype = \"$ShipName_Military_Federation;\":\r\n {set shiptype to \"the Federal Navy\"}\r\n\r\n|elif shiptype = \"$ShipName_Military_Independent;\":\r\n {set shiptype to \"the System Defence Force\"}\r\n\r\n}\r\n", "default": true }, "Technology broker": { "name": "Technology broker", "description": "Se activa cuando se utiliza el Broker de Tecnología para desbloquear nuevos elementos", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "test": { "name": "test", "description": "script para testear resultados", "enabled": true, "priority": null, "responder": false, "script": "\r\n\r\n{set notables to \"brutal\"}\r\n\r\n {set yoe to token(notables, \" \",0)}\r\n {if find(yoe,\"i\") != -1: {set y to \"e\"}\r\n |else: {set y to \"y\"}}\r\n\r\nes así, así {y} {notables}.", "defaultValue": "\r\n\r\n{set notables to \"brutal\"}\r\n\r\n {set yoe to token(notables, \" \",0)}\r\n {if find(yoe,\"i\") != -1: {set y to \"e\"}\r\n |else: {set y to \"y\"}}\r\n\r\nes así, así {y} {notables}.", "default": true }, "TextWisdom": { "name": "TextWisdom", "description": "Random wisdom of the day (TEST)", "enabled": true, "priority": null, "responder": false, "script": "{_Shirka}\r\n\r\n{_ TextWisdom}\r\n{_ Random wisdom of the day}\r\n{_ Choose a random option until all are used, then reset}\r\n{_ From an idea put to me by Brigetiol1. Thanks!}\r\n\r\nDaily wisdom, on radio {ShipName()}:\r\n\r\n{Pause(300)}\r\n\r\n{_ check Wisdom string is long, else run string setup (just in case it hasn't already been setup)}\r\n{if len(state.wisdomstring) < 10:\r\n\r\n {set wisdomstring to [\"The best way to find yourself is to lose yourself in the service of others\",\r\n \"You must be the change you wish to see in the world\",\r\n \"Live as if you were to die tomorrow. Learn as if you were to live forever\",\r\n \"First they ignore you, then they laugh at you, then they fight you, then you win\",\r\n \"The weak can never forgive. Forgiveness is the attribute of the strong\",\r\n \"Happiness is when what you think, what you say, and what you do are in harmony\",\r\n \"In prayer it is better to have a heart without words than words without a heart\",\r\n \"Truth stands, even if there be no public support. It is self-sustained\",\r\n \"Satisfaction lies in the effort, not in the attainment, full effort is full victory\",\r\n \"Truth never damages a cause that is just\",\r\n \"Fear has its use but cowardice has none\",\r\n \"Nobody can hurt me without my permission\",\r\n \"My life is my message\",\r\n \"Train yourself to let go of everything you fear to lose\",\r\n \"Insanity: doing the same thing over and over again and expecting different results\",\r\n \"The difference between stupidity and genius is that genius has its limits\",\r\n \"Learn from yesterday, live for today, hope for tomorrow\",\r\n \"A person who never made a mistake never tried anything new\",\r\n \"If you can't explain it simply, you don't understand it well enough\",\r\n \"It is no use walking anywhere to preach unless our walking is our preaching\",\r\n \"The mystery of life isn't a problem to solve, but a reality to experience\",\r\n \"The mind commands the body and it obeys. The mind orders itself and meets resistance\",\r\n \"Try looking into that place where you dare not look! You'll find me there, staring out at you\",\r\n \"Fear is the mind-killer\",\r\n \"Don't Panic\",\r\n \"The willow submits to the wind and prospers until one day it is many willows - a wall against the wind\",\r\n \"You can't make anything idiot proof because idiots are so ingenious\",\r\n \"Well, the past is gone, I know that. The future, isn't here yet, whatever it's going to be. So, all there is, is, is this. The present. That's it\",\r\n \"See first, think later, then test. But always see first. Otherwise, you will only see what you were expecting\",\r\n \"Much can be learned in play, that will afterwards be of use when the circumstances demand it\",\r\n \"I'm for truth, no matter who tells it. I'm for justice, no matter who it's for or against\",\r\n \"A well-developed sense of humor is the pole that adds balance to your step as you walk the tightrope of life\",\r\n \"Knowledge which is divorced from justice, may be called cunning rather than wisdom\"]\r\n }\r\n {SetState('wisdomstring', join(wisdomstring, \"+=\"))}\r\n}\r\n\r\n{set textstring to state.wisdomstring}\r\n\r\n{_ create array from the string, using += as the split marker}\r\n{set textarray to split(textstring, \"+=\")}\r\n\r\n{_ create array of unused quotes}\r\n{set temparray to []}\r\n{for check in textarray:\r\n {set index to len(check)-5}\r\n {set chk to slice(check, index, 5)}\r\n {if chk != \" used\":\r\n {set temparray to cat(temparray, [check])}\r\n }\r\n}\r\n\r\n{_ if unused array is empty then rebuild and reset all items}\r\n{if len(temparray) = 0:\r\n {set temparray to []}\r\n {for check in textarray:\r\n {set index to len(check)-5}\r\n {set chk to slice(check, 0, index)}\r\n {set temparray to cat(temparray, [chk])}\r\n }\r\n {set textstring to join(temparray, \"+=\")}\r\n {set textarray to split(textstring, \"+=\")}\r\n}\r\n\r\n{_ get a random unused item and say it}\r\n{set random to rand(len(temparray))}\r\n{set used to temparray[random]}\r\n{used}\r\n\r\n{_ find position of used item in text array}\r\n{set position to find(textarray, used)}\r\n\r\n{_ mark item as used}\r\n{set useditem to cat(used, \" used\")}\r\n\r\n{_ rebuild text array with marked item}\r\n{set temparray to []}\r\n{set cur to 0}\r\n{while cur < len(textarray):\r\n {if cur = position:\r\n {set temparray to cat(temparray, [useditem])}\r\n |else:\r\n {set temparray to cat(temparray, [textarray[cur]])}\r\n }\r\n {set cur to cur + 1}\r\n}\r\n\r\n{_ rebuild text string ready for next use}\r\n{SetState('wisdomstring', join(temparray, \"+=\"))}\r\n", "defaultValue": "{_Shirka}\r\n\r\n{_ TextWisdom}\r\n{_ Random wisdom of the day}\r\n{_ Choose a random option until all are used, then reset}\r\n{_ From an idea put to me by Brigetiol1. Thanks!}\r\n\r\nDaily wisdom, on radio {ShipName()}:\r\n\r\n{Pause(300)}\r\n\r\n{_ check Wisdom string is long, else run string setup (just in case it hasn't already been setup)}\r\n{if len(state.wisdomstring) < 10:\r\n\r\n {set wisdomstring to [\"The best way to find yourself is to lose yourself in the service of others\",\r\n \"You must be the change you wish to see in the world\",\r\n \"Live as if you were to die tomorrow. Learn as if you were to live forever\",\r\n \"First they ignore you, then they laugh at you, then they fight you, then you win\",\r\n \"The weak can never forgive. Forgiveness is the attribute of the strong\",\r\n \"Happiness is when what you think, what you say, and what you do are in harmony\",\r\n \"In prayer it is better to have a heart without words than words without a heart\",\r\n \"Truth stands, even if there be no public support. It is self-sustained\",\r\n \"Satisfaction lies in the effort, not in the attainment, full effort is full victory\",\r\n \"Truth never damages a cause that is just\",\r\n \"Fear has its use but cowardice has none\",\r\n \"Nobody can hurt me without my permission\",\r\n \"My life is my message\",\r\n \"Train yourself to let go of everything you fear to lose\",\r\n \"Insanity: doing the same thing over and over again and expecting different results\",\r\n \"The difference between stupidity and genius is that genius has its limits\",\r\n \"Learn from yesterday, live for today, hope for tomorrow\",\r\n \"A person who never made a mistake never tried anything new\",\r\n \"If you can't explain it simply, you don't understand it well enough\",\r\n \"It is no use walking anywhere to preach unless our walking is our preaching\",\r\n \"The mystery of life isn't a problem to solve, but a reality to experience\",\r\n \"The mind commands the body and it obeys. The mind orders itself and meets resistance\",\r\n \"Try looking into that place where you dare not look! You'll find me there, staring out at you\",\r\n \"Fear is the mind-killer\",\r\n \"Don't Panic\",\r\n \"The willow submits to the wind and prospers until one day it is many willows - a wall against the wind\",\r\n \"You can't make anything idiot proof because idiots are so ingenious\",\r\n \"Well, the past is gone, I know that. The future, isn't here yet, whatever it's going to be. So, all there is, is, is this. The present. That's it\",\r\n \"See first, think later, then test. But always see first. Otherwise, you will only see what you were expecting\",\r\n \"Much can be learned in play, that will afterwards be of use when the circumstances demand it\",\r\n \"I'm for truth, no matter who tells it. I'm for justice, no matter who it's for or against\",\r\n \"A well-developed sense of humor is the pole that adds balance to your step as you walk the tightrope of life\",\r\n \"Knowledge which is divorced from justice, may be called cunning rather than wisdom\"]\r\n }\r\n {SetState('wisdomstring', join(wisdomstring, \"+=\"))}\r\n}\r\n\r\n{set textstring to state.wisdomstring}\r\n\r\n{_ create array from the string, using += as the split marker}\r\n{set textarray to split(textstring, \"+=\")}\r\n\r\n{_ create array of unused quotes}\r\n{set temparray to []}\r\n{for check in textarray:\r\n {set index to len(check)-5}\r\n {set chk to slice(check, index, 5)}\r\n {if chk != \" used\":\r\n {set temparray to cat(temparray, [check])}\r\n }\r\n}\r\n\r\n{_ if unused array is empty then rebuild and reset all items}\r\n{if len(temparray) = 0:\r\n {set temparray to []}\r\n {for check in textarray:\r\n {set index to len(check)-5}\r\n {set chk to slice(check, 0, index)}\r\n {set temparray to cat(temparray, [chk])}\r\n }\r\n {set textstring to join(temparray, \"+=\")}\r\n {set textarray to split(textstring, \"+=\")}\r\n}\r\n\r\n{_ get a random unused item and say it}\r\n{set random to rand(len(temparray))}\r\n{set used to temparray[random]}\r\n{used}\r\n\r\n{_ find position of used item in text array}\r\n{set position to find(textarray, used)}\r\n\r\n{_ mark item as used}\r\n{set useditem to cat(used, \" used\")}\r\n\r\n{_ rebuild text array with marked item}\r\n{set temparray to []}\r\n{set cur to 0}\r\n{while cur < len(textarray):\r\n {if cur = position:\r\n {set temparray to cat(temparray, [useditem])}\r\n |else:\r\n {set temparray to cat(temparray, [textarray[cur]])}\r\n }\r\n {set cur to cur + 1}\r\n}\r\n\r\n{_ rebuild text string ready for next use}\r\n{SetState('wisdomstring', join(temparray, \"+=\"))}\r\n", "default": true }, "Timer": { "name": "Timer", "description": "Reports time between executions of this script (TEST)", "enabled": true, "priority": null, "responder": false, "script": "{_Shirka}\r\n\r\n{_ Reports time between executions of this script. _}\r\n{_ Currently set to report time spent in a system _}\r\n{_ when called from FSD Engaged event. _}\r\n\r\n{_ Get and format timer }\r\n{set rawtime to abs(SecondsSince(state.timer))}\r\n{set timer to split(format(rawtime, \"dl:dd:HH:mm:ss\"), \":\")}\r\n\r\n{set days to cast(timer[0], \"n\") - 1}\r\n{set hours to cast(timer[1], \"n\")}\r\n{set minutes to cast(timer[2], \"n\")}\r\n{set seconds to cast(timer[3], \"n\")}\r\n\r\n{set timer_array to []}\r\n\r\n{if days > 0:\r\n {set time to cat(days, \" day\")}\r\n {if days > 1:{set time to cat(time, \"s\")}}\r\n {set timer_array to cat(timer_array, [time])}\r\n}\r\n\r\n{if hours > 0:\r\n {set time to cat(hours, \" hour\")}\r\n {if hours > 1:{set time to cat(time, \"s\")}}\r\n {set timer_array to cat(timer_array, [time])}\r\n}\r\n\r\n{if minutes > 0:\r\n {set time to cat(minutes, \" minute\")}\r\n {if minutes > 1:{set time to cat(time, \"s\")}}\r\n {set timer_array to cat(timer_array, [time])}\r\n}\r\n\r\n{if seconds > 0:\r\n {set time to cat(seconds, \" second\")}\r\n {if seconds > 1:{set time to cat(time, \"s\")}}\r\n {set timer_array to cat(timer_array, [time])}\r\n}\r\n\r\nYou spent {List(timer_array)} in this system.\r\n\r\n{SetState('timer', SecondsSince(0))}\r\n", "defaultValue": "{_Shirka}\r\n\r\n{_ Reports time between executions of this script. _}\r\n{_ Currently set to report time spent in a system _}\r\n{_ when called from FSD Engaged event. _}\r\n\r\n{_ Get and format timer }\r\n{set rawtime to abs(SecondsSince(state.timer))}\r\n{set timer to split(format(rawtime, \"dl:dd:HH:mm:ss\"), \":\")}\r\n\r\n{set days to cast(timer[0], \"n\") - 1}\r\n{set hours to cast(timer[1], \"n\")}\r\n{set minutes to cast(timer[2], \"n\")}\r\n{set seconds to cast(timer[3], \"n\")}\r\n\r\n{set timer_array to []}\r\n\r\n{if days > 0:\r\n {set time to cat(days, \" day\")}\r\n {if days > 1:{set time to cat(time, \"s\")}}\r\n {set timer_array to cat(timer_array, [time])}\r\n}\r\n\r\n{if hours > 0:\r\n {set time to cat(hours, \" hour\")}\r\n {if hours > 1:{set time to cat(time, \"s\")}}\r\n {set timer_array to cat(timer_array, [time])}\r\n}\r\n\r\n{if minutes > 0:\r\n {set time to cat(minutes, \" minute\")}\r\n {if minutes > 1:{set time to cat(time, \"s\")}}\r\n {set timer_array to cat(timer_array, [time])}\r\n}\r\n\r\n{if seconds > 0:\r\n {set time to cat(seconds, \" second\")}\r\n {if seconds > 1:{set time to cat(time, \"s\")}}\r\n {set timer_array to cat(timer_array, [time])}\r\n}\r\n\r\nYou spent {List(timer_array)} in this system.\r\n\r\n{SetState('timer', SecondsSince(0))}\r\n", "default": true }, "Touchdown": { "name": "Touchdown", "description": "Se activa cuando su nave aterriza en la superficie de un planeta", "enabled": true, "priority": 3, "responder": true, "script": "{_ Touchdown _}\n{_ Triggered when your ship touches down on a planet's surface _}\n\n\n{set body to BodyDetails(state.eddi_context_body_name, state.eddi_context_system_name)}\n\n{if event.playercontrolled = true && state.eddi_context_last_subject != 'location':\n Hemos aterrizado \n {if body.name: en {P(body.name)} }.\n|else:\n {ShipName()} ha aterrizado\n {if body.name: en {P(body.name)} }.\n}\n\n{Pause(2000)}\n\n{if type(event.latitude) != \"void\" && type(event.longitude) != \"void\" :\n Las coordenadas son: {round(event.latitude, 2)} grados de latitud, y {round(event.longitude, 2)} grados de longitud.\n}\n\n{_ Context }\n{SetState('eddi_context_last_subject', 'ship')}\n{SetState('eddi_context_last_action', 'land')}\n", "defaultValue": "{set body to BodyDetails(state.eddi_context_body_name, state.eddi_context_system_name)}\n\n{if event.playercontrolled = true:\n Hemos aterrizado {if body.name: en {body.name} }.\n|else:\n {ShipName()} ha aterrizado\n {if body.name: en {body.name} }.\n}\n\n\n{Pause(2000)}\n\n{if type(event.latitude) != \"void\" && type(event.longitude) != \"void\" :\n Las coordenadas son: {round(event.latitude, 1)} grados de latitud, y {round(event.longitude, 1)} grados de longitud.\n}", "default": false }, "Trade data purchased": { "name": "Trade data purchased", "description": "Se activa cuando compra datos de comercio", "enabled": true, "priority": 3, "responder": true, "script": "{_ Context }\n{SetState('eddi_context_last_subject', 'tradedata')}\n{SetState('eddi_context_last_action', 'buy')}\n{SetState('eddi_context_tradedata_name', event.system)}\n\n{OneOf(\"Adquiridos datos de comercio del sistema {event.system}\",\n \"Datos comerciales del sistema {event.system} disponibles\",\"Datos comerciales del sistema {event.system} recibidos correctamente\"\n \"Recibidos datos comerciales del sistema {event.system} desde los servicios de la estación\",\n \"Recepción de datos comerciales del sistema {event.system} confirmada\")}.", "defaultValue": "{_ Context }\n{SetState('eddi_context_last_subject', 'tradedata')}\n{SetState('eddi_context_last_action', 'buy')}\n{SetState('eddi_context_tradedata_name', event.system)}\n\n{OneOf(\"Adquiridos datos de comercio del sistema {event.system}\",\n \"Datos comerciales del sistema {event.system} disponibles\",\"Datos comerciales del sistema {event.system} recibidos correctamente\"\n \"Recibidos datos comerciales del sistema {event.system} desde los servicios de la estación\",\n \"Recepción de datos comerciales del sistema {event.system} confirmada\")}.", "default": true }, "Trade voucher redeemed": { "name": "Trade voucher redeemed", "description": "Se activa cuando canjea un bono comercial", "enabled": true, "priority": 3, "responder": true, "script": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'trade_voucher')}\r\n{SetState('eddi_context_last_action', 'redeem')}\r\n{SetState('eddi_context_trade_voucher_amount', event.amount)}\r\n\r\nDevengados {event.amount} créditos en vales de comercio\r\n{Occasionally(2, \"\r\n {if len(event.rewards) = 1:\r\n por parte de la facción {event.rewards[0].faction}\r\n |else:\r\n por parte de \r\n {set cur to 0}\r\n {while cur < len(event.rewards):\r\n {if cur = 0:\r\n |elif cur < len(event.rewards) - 1:\r\n , \r\n |else:\r\n y\r\n }\r\n {event.rewards[cur].faction}\r\n {set cur to cur + 1}\r\n }\r\n }\r\n\")}.\r\n", "defaultValue": "{_ Context }\r\n{SetState('eddi_context_last_subject', 'trade_voucher')}\r\n{SetState('eddi_context_last_action', 'redeem')}\r\n{SetState('eddi_context_trade_voucher_amount', event.amount)}\r\n\r\nDevengados {event.amount} créditos en vales de comercio\r\n{Occasionally(2, \"\r\n {if len(event.rewards) = 1:\r\n por parte de la facción {event.rewards[0].faction}\r\n |else:\r\n por parte de \r\n {set cur to 0}\r\n {while cur < len(event.rewards):\r\n {if cur = 0:\r\n |elif cur < len(event.rewards) - 1:\r\n , \r\n |else:\r\n y\r\n }\r\n {event.rewards[cur].faction}\r\n {set cur to cur + 1}\r\n }\r\n }\r\n\")}.\r\n", "default": true }, "Under attack": { "name": "Under attack", "description": "Se activa cuando está siendo atacado (al mismo tiempo que el mensaje de voz de Bajo Ataque)", "enabled": true, "priority": 1, "responder": true, "script": null, "defaultValue": null, "default": true }, "Undocked": { "name": "Undocked", "description": "Se activa cuando su nave despega de una estación espacial o puesto avanzado", "enabled": true, "priority": 3, "responder": true, "script": "{OneOf(\"Reestablecido control completo\", \"Anclajes de aterrizaje desconectados\", \"Desconectado de redes locales\")}.\n\n{set limpetcheck to F(\"Limpet check\")}\n\n{if limpetcheck:\n {Pause(5000)}\n {limpetcheck}\n}\n", "defaultValue": "{OneOf(\"Reestablecido control completo\", \"Anclajes de aterrizaje desconectados\", \"Desconectado de redes locales\")}.\n\n{set limpetcheck to F(\"Limpet check\")}\n\n{if limpetcheck:\n {Pause(5000)}\n {limpetcheck}\n}\n", "default": true }, "VA initialized": { "name": "VA initialized", "description": "Se activa cuando se inicializa el plugin de Voice Attack", "enabled": true, "priority": 3, "responder": true, "script": null, "defaultValue": null, "default": true }, "Vehicle destroyed": { "name": "Vehicle destroyed", "description": "Se activa cuando su vehículo ha resultado destruido", "enabled": true, "priority": 3, "responder": true, "script": "{if state.eddi_context_srv_deployed_id = event.id:\n {SetState('eddi_context_srv_deployed_id', \"\")}\n}\n\n{Pause(2000)}\n{OneOf(\"Enlace neuronal\", \"Enlace\", \"Nexo\", \"Vínculo\")} {OneOf(\"finalizado\", \"desactivado\")}.", "defaultValue": "{Pause(2000)}\n{OneOf(\"Enlace neuronal\", \"Enlace\", \"Nexo\", \"Vínculo\")} {OneOf(\"finalizado\", \"desactivado\")}.", "default": false } } }