diff --git a/ChangeLog.md b/ChangeLog.md index 31e3e2f1f7..6100990b67 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -10,6 +10,7 @@ Full details of the variables available for each noted event, and VoiceAttack in * `Blueprint make report` updated to prevent overwriting the `inventory` map used for tracking cargo. (#2622) * `Material discard report` updated to prevent overwriting the `inventory` map used for tracking cargo. (#2622) * `Material inventory report` updated to prevent overwriting the `inventory` map used for tracking cargo. (#2622) + * `Material required report` updated to prevent overwriting the `inventory` map used for tracking cargo. (#2622) * `System materials report` updated to prevent overwriting the `inventory` map used for tracking cargo. (#2622) ## 4.0.4-b2 diff --git a/SpeechResponder/eddi.cs.json b/SpeechResponder/eddi.cs.json index c292da82c7..491b0529da 100644 --- a/SpeechResponder/eddi.cs.json +++ b/SpeechResponder/eddi.cs.json @@ -1405,7 +1405,7 @@ "enabled": true, "priority": 3, "responder": false, - "script": "{_ 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{_ Fetch material from state }\r\n{set material to state.material}\r\n{if material:\r\n {_ Fetch full material details }\r\n {set material to MaterialDetails(material)}\r\n\r\n {_ Context }\r\n {SetState('eddi_context_last_subject', 'material')}\r\n {SetState('eddi_context_material_name', material.name)}\r\n}\r\n\r\n{if !material:\r\n {_ Fetch from context }\r\n {set material to MaterialDetails(state.eddi_context_material_name)}\r\n}\r\n\r\n{set inventory to _inventory(material.name)}\r\n\r\n\r\n{if inventory:\r\n {if inventory.minimum && inventory.minimum > inventory.amount:\r\n {set under to inventory.minimum - inventory.amount}\r\n {if under > 1:\r\n You require {under} units of {inventory.material} to reach your minimum level.\r\n |elif under = 1:\r\n You require 1 unit of {inventory.material} to reqach your minimum level.\r\n }\r\n |elif inventory.desired && inventory.desired > inventory.amount:\r\n {set under to inventory.desired - inventory.amount}\r\n {if under > 1:\r\n You require {under} units of {inventory.material} to reach your desired level.\r\n |elif under = 1:\r\n You require 1 unit of {inventory.material} to reach your desired level.\r\n }\r\n |elif inventory.desired:\r\n You are above your desired level for {inventory.material}.\r\n |elif inventory.minimum :\r\n You are above your minimum level for {inventory.material}.\r\n |else:\r\n You have not set any levels for {inventory.material}.\r\n }\r\n}\r\n\r\n", + "script": "{_ 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{_ Fetch material from state }\r\n{set material to state.material}\r\n{if material:\r\n {_ Fetch full material details }\r\n {set material to MaterialDetails(material)}\r\n\r\n {_ Context }\r\n {SetState('eddi_context_last_subject', 'material')}\r\n {SetState('eddi_context_material_name', material.name)}\r\n}\r\n\r\n{if !material:\r\n {_ Fetch from context }\r\n {set material to MaterialDetails(state.eddi_context_material_name)}\r\n}\r\n\r\n{set materialInventory to _inventory(material.name)}\r\n\r\n\r\n{if materialInventory:\r\n {if materialInventory.minimum && materialInventory.minimum > materialInventory.amount:\r\n {set under to materialInventory.minimum - materialInventory.amount}\r\n {if under > 1:\r\n You require {under} units of {materialInventory.material} to reach your minimum level.\r\n |elif under = 1:\r\n You require 1 unit of {materialInventory.material} to reach your minimum level.\r\n }\r\n |elif materialInventory.desired && materialInventory.desired > materialInventory.amount:\r\n {set under to materialInventory.desired - materialInventory.amount}\r\n {if under > 1:\r\n You require {under} units of {materialInventory.material} to reach your desired level.\r\n |elif under = 1:\r\n You require 1 unit of {materialInventory.material} to reach your desired level.\r\n }\r\n |elif materialInventory.desired:\r\n You are above your desired level for {materialInventory.material}.\r\n |elif materialInventory.minimum :\r\n You are above your minimum level for {materialInventory.material}.\r\n |else:\r\n You have not set any levels for {materialInventory.material}.\r\n }\r\n}", "default": true, "name": "Material required report", "description": "Report on how many of a material are required to reach 'desired' level" diff --git a/SpeechResponder/eddi.de.json b/SpeechResponder/eddi.de.json index e9017d5170..713bfb6ca1 100644 --- a/SpeechResponder/eddi.de.json +++ b/SpeechResponder/eddi.de.json @@ -1405,7 +1405,7 @@ "enabled": true, "priority": 3, "responder": false, - "script": "{_ 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{_ Fetch material from state }\r\n{set material to state.material}\r\n{if material:\r\n {_ Fetch full material details }\r\n {set material to MaterialDetails(material)}\r\n\r\n {_ Context }\r\n {SetState('eddi_context_last_subject', 'material')}\r\n {SetState('eddi_context_material_name', material.name)}\r\n}\r\n\r\n{if !material:\r\n {_ Fetch from context }\r\n {set material to MaterialDetails(state.eddi_context_material_name)}\r\n}\r\n\r\n{set inventory to _inventory(material.name)}\r\n\r\n\r\n{if inventory:\r\n {if inventory.minimum && inventory.minimum > inventory.amount:\r\n {set under to inventory.minimum - inventory.amount}\r\n {if under > 1:\r\n You require {under} units of {inventory.material} to reach your minimum level.\r\n |elif under = 1:\r\n You require 1 unit of {inventory.material} to reqach your minimum level.\r\n }\r\n |elif inventory.desired && inventory.desired > inventory.amount:\r\n {set under to inventory.desired - inventory.amount}\r\n {if under > 1:\r\n You require {under} units of {inventory.material} to reach your desired level.\r\n |elif under = 1:\r\n You require 1 unit of {inventory.material} to reach your desired level.\r\n }\r\n |elif inventory.desired:\r\n You are above your desired level for {inventory.material}.\r\n |elif inventory.minimum :\r\n You are above your minimum level for {inventory.material}.\r\n |else:\r\n You have not set any levels for {inventory.material}.\r\n }\r\n}\r\n\r\n", + "script": "{_ 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{_ Fetch material from state }\r\n{set material to state.material}\r\n{if material:\r\n {_ Fetch full material details }\r\n {set material to MaterialDetails(material)}\r\n\r\n {_ Context }\r\n {SetState('eddi_context_last_subject', 'material')}\r\n {SetState('eddi_context_material_name', material.name)}\r\n}\r\n\r\n{if !material:\r\n {_ Fetch from context }\r\n {set material to MaterialDetails(state.eddi_context_material_name)}\r\n}\r\n\r\n{set materialInventory to _inventory(material.name)}\r\n\r\n\r\n{if materialInventory:\r\n {if materialInventory.minimum && materialInventory.minimum > materialInventory.amount:\r\n {set under to materialInventory.minimum - materialInventory.amount}\r\n {if under > 1:\r\n You require {under} units of {materialInventory.material} to reach your minimum level.\r\n |elif under = 1:\r\n You require 1 unit of {materialInventory.material} to reach your minimum level.\r\n }\r\n |elif materialInventory.desired && materialInventory.desired > materialInventory.amount:\r\n {set under to materialInventory.desired - materialInventory.amount}\r\n {if under > 1:\r\n You require {under} units of {materialInventory.material} to reach your desired level.\r\n |elif under = 1:\r\n You require 1 unit of {materialInventory.material} to reach your desired level.\r\n }\r\n |elif materialInventory.desired:\r\n You are above your desired level for {materialInventory.material}.\r\n |elif materialInventory.minimum :\r\n You are above your minimum level for {materialInventory.material}.\r\n |else:\r\n You have not set any levels for {materialInventory.material}.\r\n }\r\n}", "default": true, "name": "Material required report", "description": "Report on how many of a material are required to reach 'desired' level" diff --git a/SpeechResponder/eddi.hu.json b/SpeechResponder/eddi.hu.json index bc22107a5a..ef88ad800f 100644 --- a/SpeechResponder/eddi.hu.json +++ b/SpeechResponder/eddi.hu.json @@ -1405,7 +1405,7 @@ "enabled": true, "priority": 3, "responder": false, - "script": "{_ 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{_ Fetch material from state }\r\n{set material to state.material}\r\n{if material:\r\n {_ Fetch full material details }\r\n {set material to MaterialDetails(material)}\r\n\r\n {_ Context }\r\n {SetState('eddi_context_last_subject', 'material')}\r\n {SetState('eddi_context_material_name', material.name)}\r\n}\r\n\r\n{if !material:\r\n {_ Fetch from context }\r\n {set material to MaterialDetails(state.eddi_context_material_name)}\r\n}\r\n\r\n{set inventory to _inventory(material.name)}\r\n\r\n\r\n{if inventory:\r\n {if inventory.minimum && inventory.minimum > inventory.amount:\r\n {set under to inventory.minimum - inventory.amount}\r\n {if under > 1:\r\n You require {under} units of {inventory.material} to reach your minimum level.\r\n |elif under = 1:\r\n You require 1 unit of {inventory.material} to reqach your minimum level.\r\n }\r\n |elif inventory.desired && inventory.desired > inventory.amount:\r\n {set under to inventory.desired - inventory.amount}\r\n {if under > 1:\r\n You require {under} units of {inventory.material} to reach your desired level.\r\n |elif under = 1:\r\n You require 1 unit of {inventory.material} to reach your desired level.\r\n }\r\n |elif inventory.desired:\r\n You are above your desired level for {inventory.material}.\r\n |elif inventory.minimum :\r\n You are above your minimum level for {inventory.material}.\r\n |else:\r\n You have not set any levels for {inventory.material}.\r\n }\r\n}\r\n\r\n", + "script": "{_ 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{_ Fetch material from state }\r\n{set material to state.material}\r\n{if material:\r\n {_ Fetch full material details }\r\n {set material to MaterialDetails(material)}\r\n\r\n {_ Context }\r\n {SetState('eddi_context_last_subject', 'material')}\r\n {SetState('eddi_context_material_name', material.name)}\r\n}\r\n\r\n{if !material:\r\n {_ Fetch from context }\r\n {set material to MaterialDetails(state.eddi_context_material_name)}\r\n}\r\n\r\n{set materialInventory to _inventory(material.name)}\r\n\r\n\r\n{if materialInventory:\r\n {if materialInventory.minimum && materialInventory.minimum > materialInventory.amount:\r\n {set under to materialInventory.minimum - materialInventory.amount}\r\n {if under > 1:\r\n You require {under} units of {materialInventory.material} to reach your minimum level.\r\n |elif under = 1:\r\n You require 1 unit of {materialInventory.material} to reach your minimum level.\r\n }\r\n |elif materialInventory.desired && materialInventory.desired > materialInventory.amount:\r\n {set under to materialInventory.desired - materialInventory.amount}\r\n {if under > 1:\r\n You require {under} units of {materialInventory.material} to reach your desired level.\r\n |elif under = 1:\r\n You require 1 unit of {materialInventory.material} to reach your desired level.\r\n }\r\n |elif materialInventory.desired:\r\n You are above your desired level for {materialInventory.material}.\r\n |elif materialInventory.minimum :\r\n You are above your minimum level for {materialInventory.material}.\r\n |else:\r\n You have not set any levels for {materialInventory.material}.\r\n }\r\n}", "default": true, "name": "Material required report", "description": "Report on how many of a material are required to reach 'desired' level" diff --git a/SpeechResponder/eddi.it.json b/SpeechResponder/eddi.it.json index bc22107a5a..ef88ad800f 100644 --- a/SpeechResponder/eddi.it.json +++ b/SpeechResponder/eddi.it.json @@ -1405,7 +1405,7 @@ "enabled": true, "priority": 3, "responder": false, - "script": "{_ 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{_ Fetch material from state }\r\n{set material to state.material}\r\n{if material:\r\n {_ Fetch full material details }\r\n {set material to MaterialDetails(material)}\r\n\r\n {_ Context }\r\n {SetState('eddi_context_last_subject', 'material')}\r\n {SetState('eddi_context_material_name', material.name)}\r\n}\r\n\r\n{if !material:\r\n {_ Fetch from context }\r\n {set material to MaterialDetails(state.eddi_context_material_name)}\r\n}\r\n\r\n{set inventory to _inventory(material.name)}\r\n\r\n\r\n{if inventory:\r\n {if inventory.minimum && inventory.minimum > inventory.amount:\r\n {set under to inventory.minimum - inventory.amount}\r\n {if under > 1:\r\n You require {under} units of {inventory.material} to reach your minimum level.\r\n |elif under = 1:\r\n You require 1 unit of {inventory.material} to reqach your minimum level.\r\n }\r\n |elif inventory.desired && inventory.desired > inventory.amount:\r\n {set under to inventory.desired - inventory.amount}\r\n {if under > 1:\r\n You require {under} units of {inventory.material} to reach your desired level.\r\n |elif under = 1:\r\n You require 1 unit of {inventory.material} to reach your desired level.\r\n }\r\n |elif inventory.desired:\r\n You are above your desired level for {inventory.material}.\r\n |elif inventory.minimum :\r\n You are above your minimum level for {inventory.material}.\r\n |else:\r\n You have not set any levels for {inventory.material}.\r\n }\r\n}\r\n\r\n", + "script": "{_ 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{_ Fetch material from state }\r\n{set material to state.material}\r\n{if material:\r\n {_ Fetch full material details }\r\n {set material to MaterialDetails(material)}\r\n\r\n {_ Context }\r\n {SetState('eddi_context_last_subject', 'material')}\r\n {SetState('eddi_context_material_name', material.name)}\r\n}\r\n\r\n{if !material:\r\n {_ Fetch from context }\r\n {set material to MaterialDetails(state.eddi_context_material_name)}\r\n}\r\n\r\n{set materialInventory to _inventory(material.name)}\r\n\r\n\r\n{if materialInventory:\r\n {if materialInventory.minimum && materialInventory.minimum > materialInventory.amount:\r\n {set under to materialInventory.minimum - materialInventory.amount}\r\n {if under > 1:\r\n You require {under} units of {materialInventory.material} to reach your minimum level.\r\n |elif under = 1:\r\n You require 1 unit of {materialInventory.material} to reach your minimum level.\r\n }\r\n |elif materialInventory.desired && materialInventory.desired > materialInventory.amount:\r\n {set under to materialInventory.desired - materialInventory.amount}\r\n {if under > 1:\r\n You require {under} units of {materialInventory.material} to reach your desired level.\r\n |elif under = 1:\r\n You require 1 unit of {materialInventory.material} to reach your desired level.\r\n }\r\n |elif materialInventory.desired:\r\n You are above your desired level for {materialInventory.material}.\r\n |elif materialInventory.minimum :\r\n You are above your minimum level for {materialInventory.material}.\r\n |else:\r\n You have not set any levels for {materialInventory.material}.\r\n }\r\n}", "default": true, "name": "Material required report", "description": "Report on how many of a material are required to reach 'desired' level" diff --git a/SpeechResponder/eddi.ja.json b/SpeechResponder/eddi.ja.json index bc22107a5a..ef88ad800f 100644 --- a/SpeechResponder/eddi.ja.json +++ b/SpeechResponder/eddi.ja.json @@ -1405,7 +1405,7 @@ "enabled": true, "priority": 3, "responder": false, - "script": "{_ 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{_ Fetch material from state }\r\n{set material to state.material}\r\n{if material:\r\n {_ Fetch full material details }\r\n {set material to MaterialDetails(material)}\r\n\r\n {_ Context }\r\n {SetState('eddi_context_last_subject', 'material')}\r\n {SetState('eddi_context_material_name', material.name)}\r\n}\r\n\r\n{if !material:\r\n {_ Fetch from context }\r\n {set material to MaterialDetails(state.eddi_context_material_name)}\r\n}\r\n\r\n{set inventory to _inventory(material.name)}\r\n\r\n\r\n{if inventory:\r\n {if inventory.minimum && inventory.minimum > inventory.amount:\r\n {set under to inventory.minimum - inventory.amount}\r\n {if under > 1:\r\n You require {under} units of {inventory.material} to reach your minimum level.\r\n |elif under = 1:\r\n You require 1 unit of {inventory.material} to reqach your minimum level.\r\n }\r\n |elif inventory.desired && inventory.desired > inventory.amount:\r\n {set under to inventory.desired - inventory.amount}\r\n {if under > 1:\r\n You require {under} units of {inventory.material} to reach your desired level.\r\n |elif under = 1:\r\n You require 1 unit of {inventory.material} to reach your desired level.\r\n }\r\n |elif inventory.desired:\r\n You are above your desired level for {inventory.material}.\r\n |elif inventory.minimum :\r\n You are above your minimum level for {inventory.material}.\r\n |else:\r\n You have not set any levels for {inventory.material}.\r\n }\r\n}\r\n\r\n", + "script": "{_ 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{_ Fetch material from state }\r\n{set material to state.material}\r\n{if material:\r\n {_ Fetch full material details }\r\n {set material to MaterialDetails(material)}\r\n\r\n {_ Context }\r\n {SetState('eddi_context_last_subject', 'material')}\r\n {SetState('eddi_context_material_name', material.name)}\r\n}\r\n\r\n{if !material:\r\n {_ Fetch from context }\r\n {set material to MaterialDetails(state.eddi_context_material_name)}\r\n}\r\n\r\n{set materialInventory to _inventory(material.name)}\r\n\r\n\r\n{if materialInventory:\r\n {if materialInventory.minimum && materialInventory.minimum > materialInventory.amount:\r\n {set under to materialInventory.minimum - materialInventory.amount}\r\n {if under > 1:\r\n You require {under} units of {materialInventory.material} to reach your minimum level.\r\n |elif under = 1:\r\n You require 1 unit of {materialInventory.material} to reach your minimum level.\r\n }\r\n |elif materialInventory.desired && materialInventory.desired > materialInventory.amount:\r\n {set under to materialInventory.desired - materialInventory.amount}\r\n {if under > 1:\r\n You require {under} units of {materialInventory.material} to reach your desired level.\r\n |elif under = 1:\r\n You require 1 unit of {materialInventory.material} to reach your desired level.\r\n }\r\n |elif materialInventory.desired:\r\n You are above your desired level for {materialInventory.material}.\r\n |elif materialInventory.minimum :\r\n You are above your minimum level for {materialInventory.material}.\r\n |else:\r\n You have not set any levels for {materialInventory.material}.\r\n }\r\n}", "default": true, "name": "Material required report", "description": "Report on how many of a material are required to reach 'desired' level" diff --git a/SpeechResponder/eddi.json b/SpeechResponder/eddi.json index 2a2bca2e4e..bb912238cc 100644 --- a/SpeechResponder/eddi.json +++ b/SpeechResponder/eddi.json @@ -1405,7 +1405,7 @@ "enabled": true, "priority": 3, "responder": false, - "script": "{_ 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{_ Fetch material from state }\r\n{set material to state.material}\r\n{if material:\r\n {_ Fetch full material details }\r\n {set material to MaterialDetails(material)}\r\n\r\n {_ Context }\r\n {SetState('eddi_context_last_subject', 'material')}\r\n {SetState('eddi_context_material_name', material.name)}\r\n}\r\n\r\n{if !material:\r\n {_ Fetch from context }\r\n {set material to MaterialDetails(state.eddi_context_material_name)}\r\n}\r\n\r\n{set inventory to _inventory(material.name)}\r\n\r\n\r\n{if inventory:\r\n {if inventory.minimum && inventory.minimum > inventory.amount:\r\n {set under to inventory.minimum - inventory.amount}\r\n {if under > 1:\r\n You require {under} units of {inventory.material} to reach your minimum level.\r\n |elif under = 1:\r\n You require 1 unit of {inventory.material} to reach your minimum level.\r\n }\r\n |elif inventory.desired && inventory.desired > inventory.amount:\r\n {set under to inventory.desired - inventory.amount}\r\n {if under > 1:\r\n You require {under} units of {inventory.material} to reach your desired level.\r\n |elif under = 1:\r\n You require 1 unit of {inventory.material} to reach your desired level.\r\n }\r\n |elif inventory.desired:\r\n You are above your desired level for {inventory.material}.\r\n |elif inventory.minimum :\r\n You are above your minimum level for {inventory.material}.\r\n |else:\r\n You have not set any levels for {inventory.material}.\r\n }\r\n}", + "script": "{_ 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{_ Fetch material from state }\r\n{set material to state.material}\r\n{if material:\r\n {_ Fetch full material details }\r\n {set material to MaterialDetails(material)}\r\n\r\n {_ Context }\r\n {SetState('eddi_context_last_subject', 'material')}\r\n {SetState('eddi_context_material_name', material.name)}\r\n}\r\n\r\n{if !material:\r\n {_ Fetch from context }\r\n {set material to MaterialDetails(state.eddi_context_material_name)}\r\n}\r\n\r\n{set materialInventory to _inventory(material.name)}\r\n\r\n\r\n{if materialInventory:\r\n {if materialInventory.minimum && materialInventory.minimum > materialInventory.amount:\r\n {set under to materialInventory.minimum - materialInventory.amount}\r\n {if under > 1:\r\n You require {under} units of {materialInventory.material} to reach your minimum level.\r\n |elif under = 1:\r\n You require 1 unit of {materialInventory.material} to reach your minimum level.\r\n }\r\n |elif materialInventory.desired && materialInventory.desired > materialInventory.amount:\r\n {set under to materialInventory.desired - materialInventory.amount}\r\n {if under > 1:\r\n You require {under} units of {materialInventory.material} to reach your desired level.\r\n |elif under = 1:\r\n You require 1 unit of {materialInventory.material} to reach your desired level.\r\n }\r\n |elif materialInventory.desired:\r\n You are above your desired level for {materialInventory.material}.\r\n |elif materialInventory.minimum :\r\n You are above your minimum level for {materialInventory.material}.\r\n |else:\r\n You have not set any levels for {materialInventory.material}.\r\n }\r\n}", "default": true, "name": "Material required report", "description": "Report on how many of a material are required to reach 'desired' level" diff --git a/SpeechResponder/eddi.ru.json b/SpeechResponder/eddi.ru.json index bc22107a5a..ef88ad800f 100644 --- a/SpeechResponder/eddi.ru.json +++ b/SpeechResponder/eddi.ru.json @@ -1405,7 +1405,7 @@ "enabled": true, "priority": 3, "responder": false, - "script": "{_ 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{_ Fetch material from state }\r\n{set material to state.material}\r\n{if material:\r\n {_ Fetch full material details }\r\n {set material to MaterialDetails(material)}\r\n\r\n {_ Context }\r\n {SetState('eddi_context_last_subject', 'material')}\r\n {SetState('eddi_context_material_name', material.name)}\r\n}\r\n\r\n{if !material:\r\n {_ Fetch from context }\r\n {set material to MaterialDetails(state.eddi_context_material_name)}\r\n}\r\n\r\n{set inventory to _inventory(material.name)}\r\n\r\n\r\n{if inventory:\r\n {if inventory.minimum && inventory.minimum > inventory.amount:\r\n {set under to inventory.minimum - inventory.amount}\r\n {if under > 1:\r\n You require {under} units of {inventory.material} to reach your minimum level.\r\n |elif under = 1:\r\n You require 1 unit of {inventory.material} to reqach your minimum level.\r\n }\r\n |elif inventory.desired && inventory.desired > inventory.amount:\r\n {set under to inventory.desired - inventory.amount}\r\n {if under > 1:\r\n You require {under} units of {inventory.material} to reach your desired level.\r\n |elif under = 1:\r\n You require 1 unit of {inventory.material} to reach your desired level.\r\n }\r\n |elif inventory.desired:\r\n You are above your desired level for {inventory.material}.\r\n |elif inventory.minimum :\r\n You are above your minimum level for {inventory.material}.\r\n |else:\r\n You have not set any levels for {inventory.material}.\r\n }\r\n}\r\n\r\n", + "script": "{_ 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{_ Fetch material from state }\r\n{set material to state.material}\r\n{if material:\r\n {_ Fetch full material details }\r\n {set material to MaterialDetails(material)}\r\n\r\n {_ Context }\r\n {SetState('eddi_context_last_subject', 'material')}\r\n {SetState('eddi_context_material_name', material.name)}\r\n}\r\n\r\n{if !material:\r\n {_ Fetch from context }\r\n {set material to MaterialDetails(state.eddi_context_material_name)}\r\n}\r\n\r\n{set materialInventory to _inventory(material.name)}\r\n\r\n\r\n{if materialInventory:\r\n {if materialInventory.minimum && materialInventory.minimum > materialInventory.amount:\r\n {set under to materialInventory.minimum - materialInventory.amount}\r\n {if under > 1:\r\n You require {under} units of {materialInventory.material} to reach your minimum level.\r\n |elif under = 1:\r\n You require 1 unit of {materialInventory.material} to reach your minimum level.\r\n }\r\n |elif materialInventory.desired && materialInventory.desired > materialInventory.amount:\r\n {set under to materialInventory.desired - materialInventory.amount}\r\n {if under > 1:\r\n You require {under} units of {materialInventory.material} to reach your desired level.\r\n |elif under = 1:\r\n You require 1 unit of {materialInventory.material} to reach your desired level.\r\n }\r\n |elif materialInventory.desired:\r\n You are above your desired level for {materialInventory.material}.\r\n |elif materialInventory.minimum :\r\n You are above your minimum level for {materialInventory.material}.\r\n |else:\r\n You have not set any levels for {materialInventory.material}.\r\n }\r\n}", "default": true, "name": "Material required report", "description": "Report on how many of a material are required to reach 'desired' level"