From bd90942c173ee3f6354778efe698706bda552bbe Mon Sep 17 00:00:00 2001
From: Kashargul <144968721+Kashargul@users.noreply.github.com>
Date: Tue, 12 Dec 2023 23:11:33 +0100
Subject: [PATCH] improved robot admin handling
---
code/__defines/admin_vr.dm | 1 +
code/modules/admin/verbs/modify_robot.dm | 407 ++++++++++--------
.../mob/living/silicon/robot/robot_items.dm | 7 +-
icons/mob/robot/civilian.dmi | Bin 33891 -> 33880 bytes
4 files changed, 231 insertions(+), 184 deletions(-)
diff --git a/code/__defines/admin_vr.dm b/code/__defines/admin_vr.dm
index 6dd0afc480..cdbc8c023d 100644
--- a/code/__defines/admin_vr.dm
+++ b/code/__defines/admin_vr.dm
@@ -6,6 +6,7 @@
#define SMITE_AUTOSAVE_WIDE "10 Second Autosave (AoE)"
#define MODIFIY_ROBOT_MODULE_ADD "Add a Module"
#define MODIFIY_ROBOT_MODULE_REMOVE "Remove a Module"
+#define MODIFIY_ROBOT_APPLY_UPGRADE "Apply an Upgrade"
#define MODIFIY_ROBOT_RADIOC_ADD "Add a Radio Channel"
#define MODIFIY_ROBOT_RADIOC_REMOVE "Remove a Radio Channel"
#define MODIFIY_ROBOT_COMP_ADD "Replace a Component"
diff --git a/code/modules/admin/verbs/modify_robot.dm b/code/modules/admin/verbs/modify_robot.dm
index 9413353cf7..c3bb406652 100644
--- a/code/modules/admin/verbs/modify_robot.dm
+++ b/code/modules/admin/verbs/modify_robot.dm
@@ -12,192 +12,235 @@
if(!target.module.modules)
return
- var/list/modification_options = list(MODIFIY_ROBOT_MODULE_ADD,MODIFIY_ROBOT_MODULE_REMOVE, MODIFIY_ROBOT_RADIOC_ADD, MODIFIY_ROBOT_RADIOC_REMOVE, MODIFIY_ROBOT_COMP_ADD, MODIFIY_ROBOT_COMP_REMOVE, MODIFIY_ROBOT_RESET_MODULE)
+ var/list/modification_options = list(MODIFIY_ROBOT_MODULE_ADD,MODIFIY_ROBOT_MODULE_REMOVE, MODIFIY_ROBOT_APPLY_UPGRADE, MODIFIY_ROBOT_RADIOC_ADD, MODIFIY_ROBOT_RADIOC_REMOVE, MODIFIY_ROBOT_COMP_ADD, MODIFIY_ROBOT_COMP_REMOVE, MODIFIY_ROBOT_RESET_MODULE)
- var/modification_choice = tgui_input_list(usr, "Select if you want to add or remove a module to/from [target]","Choice", modification_options)
- if(!modification_choice)
- return
+ while(TRUE)
+ var/modification_choice = tgui_input_list(usr, "Select if you want to add or remove a module to/from [target]","Choice", modification_options)
+ if(!modification_choice || modification_choice == "Cancel")
+ break
- log_and_message_admins("[key_name(src)] has used MODIFYROBOT ([modification_choice]) on [key_name(target)].")
- feedback_add_details("admin_verb","MODIFYROBOT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
+ log_and_message_admins("[key_name(src)] has used MODIFYROBOT ([modification_choice]) on [key_name(target)].")
+ feedback_add_details("admin_verb","MODIFYROBOT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
- switch(modification_choice)
- if(MODIFIY_ROBOT_MODULE_ADD)
- while(TRUE)
- var/selected_module_module = tgui_input_list(usr, "Please select the module to pick modules from", "Module", robot_modules)
- if(!selected_module_module || selected_module_module == "Cancel")
- break
- var/module_type = robot_modules[selected_module_module]
- var/mob/living/silicon/robot/robot = new /mob/living/silicon/robot(null)
- var/obj/item/weapon/robot_module/robot/robot_type = new module_type(robot)
- robot.emag_items = 1
- if(!istype(robot_type, /obj/item/weapon/robot_module/robot/))
- robot.Destroy()
- break
- var/list/all_modules = robot.module.modules
- all_modules += robot.module.emag
+ switch(modification_choice)
+ if(MODIFIY_ROBOT_MODULE_ADD)
while(TRUE)
- var/add_item = tgui_input_list(usr, "Please select the module to add", "Modules", all_modules)
- if(!istype(add_item, /obj/item/))
+ var/selected_module_module = tgui_input_list(usr, "Please select the module to pick modules from", "Module", robot_modules)
+ if(!selected_module_module || selected_module_module == "Cancel")
break
- robot.module.emag.Remove(add_item)
- robot.module.modules.Remove(add_item)
- robot.module.contents.Remove(add_item)
- target.module.modules.Add(add_item)
- target.module.contents.Add(add_item)
- target.hud_used.update_robot_modules_display()
- to_chat(usr, "You added \"[add_item]\" to [target].")
- if(istype(add_item, /obj/item/stack/))
- var/obj/item/stack/item_with_synth = add_item
- for(var/synth in item_with_synth.synths)
- var/found = target.module.synths.Find(synth)
- if(!found)
- robot.module.synths.Remove(synth)
- target.module.synths.Add(synth)
- else
- item_with_synth.synths = list(target.module.synths[found])
- continue
- if(istype(add_item, /obj/item/weapon/matter_decompiler/) || istype(add_item, /obj/item/device/dogborg/sleeper/compactor/decompiler/))
- var/obj/item/weapon/matter_decompiler/item_with_matter = add_item
- if(item_with_matter.metal)
- var/found = target.module.synths.Find(item_with_matter.metal)
- if(!found)
- robot.module.synths.Remove(item_with_matter.metal)
- target.module.synths.Add(item_with_matter.metal)
- else
- item_with_matter.metal = target.module.synths[found]
- if(item_with_matter.glass)
- var/found = target.module.synths.Find(item_with_matter.glass)
- if(!found)
- robot.module.synths.Remove(item_with_matter.glass)
- target.module.synths.Add(item_with_matter.glass)
- else
- item_with_matter.glass = target.module.synths[found]
- if(item_with_matter.wood)
- var/found = target.module.synths.Find(item_with_matter.wood)
- if(!found)
- robot.module.synths.Remove(item_with_matter.wood)
- target.module.synths.Add(item_with_matter.wood)
- else
- item_with_matter.wood = target.module.synths[found]
- if(item_with_matter.plastic)
- var/found = target.module.synths.Find(item_with_matter.plastic)
- if(!found)
- robot.module.synths.Remove(item_with_matter.plastic)
- target.module.synths.Add(item_with_matter.plastic)
- else
- item_with_matter.plastic = target.module.synths[found]
- robot.Destroy()
- if(MODIFIY_ROBOT_MODULE_REMOVE)
- while(TRUE)
- var/list/active_modules = target.module.modules
- var/selected_module_module = tgui_input_list(usr, "Please select the module to remove", "Modules", active_modules)
- if(!istype(selected_module_module, /obj/item/))
- break
- to_chat(usr, "You removed \"[selected_module_module]\" from [target]")
- target.uneq_all()
- target.hud_used.update_robot_modules_display(TRUE)
- target.module.emag.Remove(selected_module_module)
- target.module.modules.Remove(selected_module_module)
- target.module.contents.Remove(selected_module_module)
- qdel(selected_module_module)
- if(MODIFIY_ROBOT_RADIOC_ADD)
- var/list/available_channels = radiochannels.Copy()
- for(var/has_channel in target.radio.channels)
- available_channels -= has_channel
- while(TRUE)
- var/selected_radio_channel = tgui_input_list(usr, "Please select the radio channel to add", "Channels", available_channels)
- if(!selected_radio_channel || selected_radio_channel == "Cancel")
- break
- if(selected_radio_channel == "Special Ops")
- target.radio.centComm = 1
- if(selected_radio_channel == "Raider")
- qdel(target.radio.keyslot)
- target.radio.keyslot = new /obj/item/device/encryptionkey/raider(target)
- target.radio.syndie = 1
- if(selected_radio_channel == "Mercenary")
- qdel(target.radio.keyslot)
- target.radio.keyslot = new /obj/item/device/encryptionkey/syndicate(target)
- target.radio.syndie = 1
- target.module.channels += list("[selected_radio_channel]" = 1)
- target.radio.channels[selected_radio_channel] += target.module.channels[selected_radio_channel]
- target.radio.secure_radio_connections[selected_radio_channel] += radio_controller.add_object(target.radio, radiochannels[selected_radio_channel], RADIO_CHAT)
- available_channels -= selected_radio_channel
- to_chat(usr, "You added \"[selected_radio_channel]\" channel to [target].")
- if(MODIFIY_ROBOT_RADIOC_REMOVE)
- while(TRUE)
- var/selected_radio_channel = tgui_input_list(usr, "Please select the radio channel to remove", "Channels", target.radio.channels)
- if(!selected_radio_channel || selected_radio_channel == "Cancel")
- break
- if(selected_radio_channel == "Special Ops")
- target.radio.centComm = 0
- target.module.channels -= selected_radio_channel
- if((selected_radio_channel == "Mercenary" || selected_radio_channel == "Raider") && !(target.module.channels["Raider"] || target.module.channels["Mercenary"]))
- qdel(target.radio.keyslot)
- target.radio.keyslot = null
- target.radio.syndie = 0
- target.radio.channels = list()
- for(var/n_chan in target.module.channels)
- target.radio.channels[n_chan] -= target.module.channels[n_chan]
- radio_controller.remove_object(target.radio, radiochannels[selected_radio_channel])
- target.radio.secure_radio_connections -= selected_radio_channel
- to_chat(usr, "You removed \"[selected_radio_channel]\" channel from [target].")
- if(MODIFIY_ROBOT_COMP_ADD)
- while(TRUE)
- var/selected_component = tgui_input_list(usr, "Please select the component to add or replace", "Component", target.components)
- if(!selected_component || selected_component == "Cancel")
- break
- var/datum/robot_component/C = target.components[selected_component]
- if(C.wrapped && selected_component != "power cell")
- qdel(C.wrapped)
- switch(selected_component)
- if("actuator")
- C.wrapped = new /obj/item/robot_parts/robot_component/actuator(target)
- if("radio")
- C.wrapped = new /obj/item/robot_parts/robot_component/radio(target)
- if("power cell")
- var/list/recommended_cells = list(/obj/item/weapon/cell/robot_station, /obj/item/weapon/cell/high, /obj/item/weapon/cell/super, /obj/item/weapon/cell/robot_syndi, /obj/item/weapon/cell/hyper,
- /obj/item/weapon/cell/infinite, /obj/item/weapon/cell/potato, /obj/item/weapon/cell/slime)
- var/list/cell_names = list()
- for(var/cell_type in recommended_cells)
- var/obj/item/weapon/cell/single_cell = cell_type
- cell_names[capitalize(initial(single_cell.name))] = cell_type
- var/selected_cell = tgui_input_list(usr, "What kind of cell do you want to install?", "Cells", cell_names)
- if(!selected_cell || selected_cell == "Cancel")
+ var/module_type = robot_modules[selected_module_module]
+ var/mob/living/silicon/robot/robot = new /mob/living/silicon/robot(null)
+ var/obj/item/weapon/robot_module/robot/robot_type = new module_type(robot)
+ robot.emag_items = 1
+ if(!istype(robot_type, /obj/item/weapon/robot_module/robot/))
+ robot.Destroy()
+ break
+ var/list/all_modules = robot.module.modules
+ all_modules += robot.module.emag
+ while(TRUE)
+ var/add_item = tgui_input_list(usr, "Please select the module to add", "Modules", all_modules)
+ if(!istype(add_item, /obj/item/))
+ break
+ robot.module.emag.Remove(add_item)
+ robot.module.modules.Remove(add_item)
+ robot.module.contents.Remove(add_item)
+ target.module.modules.Add(add_item)
+ target.module.contents.Add(add_item)
+ target.hud_used.update_robot_modules_display()
+ to_chat(usr, "You added \"[add_item]\" to [target].")
+ if(istype(add_item, /obj/item/stack/))
+ var/obj/item/stack/item_with_synth = add_item
+ for(var/synth in item_with_synth.synths)
+ var/found = target.module.synths.Find(synth)
+ if(!found)
+ robot.module.synths.Remove(synth)
+ target.module.synths.Add(synth)
+ else
+ item_with_synth.synths = list(target.module.synths[found])
continue
+ if(istype(add_item, /obj/item/weapon/matter_decompiler/) || istype(add_item, /obj/item/device/dogborg/sleeper/compactor/decompiler/))
+ var/obj/item/weapon/matter_decompiler/item_with_matter = add_item
+ if(item_with_matter.metal)
+ var/found = target.module.synths.Find(item_with_matter.metal)
+ if(!found)
+ robot.module.synths.Remove(item_with_matter.metal)
+ target.module.synths.Add(item_with_matter.metal)
+ else
+ item_with_matter.metal = target.module.synths[found]
+ if(item_with_matter.glass)
+ var/found = target.module.synths.Find(item_with_matter.glass)
+ if(!found)
+ robot.module.synths.Remove(item_with_matter.glass)
+ target.module.synths.Add(item_with_matter.glass)
+ else
+ item_with_matter.glass = target.module.synths[found]
+ if(item_with_matter.wood)
+ var/found = target.module.synths.Find(item_with_matter.wood)
+ if(!found)
+ robot.module.synths.Remove(item_with_matter.wood)
+ target.module.synths.Add(item_with_matter.wood)
+ else
+ item_with_matter.wood = target.module.synths[found]
+ if(item_with_matter.plastic)
+ var/found = target.module.synths.Find(item_with_matter.plastic)
+ if(!found)
+ robot.module.synths.Remove(item_with_matter.plastic)
+ target.module.synths.Add(item_with_matter.plastic)
+ else
+ item_with_matter.plastic = target.module.synths[found]
+ robot.Destroy()
+ if(MODIFIY_ROBOT_MODULE_REMOVE)
+ while(TRUE)
+ var/list/active_modules = target.module.modules
+ var/selected_module_module = tgui_input_list(usr, "Please select the module to remove", "Modules", active_modules)
+ if(!istype(selected_module_module, /obj/item/))
+ break
+ to_chat(usr, "You removed \"[selected_module_module]\" from [target]")
+ target.uneq_all()
+ target.hud_used.update_robot_modules_display(TRUE)
+ target.module.emag.Remove(selected_module_module)
+ target.module.modules.Remove(selected_module_module)
+ target.module.contents.Remove(selected_module_module)
+ qdel(selected_module_module)
+ if(MODIFIY_ROBOT_APPLY_UPGRADE)
+ to_chat(usr,"UPGRADE???")
+ var/list/upgrades = list()
+ for(var/datum/design/item/prosfab/robot_upgrade/upgrade)
+ upgrades[initial(upgrade.name)] = initial(upgrade.build_path)
+ while(TRUE)
+ var/selected_module_upgrade = tgui_input_list(usr, "Please select the module to remove", "Upgrades", upgrades)
+ if(!selected_module_upgrade || selected_module_upgrade == "Cancel")
+ break
+ if(selected_module_upgrade == "Reset Module")
+ if(tgui_alert(usr, "Are you sure that you want to install [selected_module_upgrade] and reset the robot's module?","Confirm",list("Yes","No"))=="No")
+ continue
+ var/new_upgrade = upgrades[capitalize(selected_module_upgrade)]
+ target.module.supported_upgrades += new_upgrade
+ upgrades.Remove(selected_module_upgrade)
+ var/obj/item/borg/upgrade/U = new new_upgrade(src)
+ if(U.action(target))
+ to_chat(usr, "You apply the [U] to [target]!")
+ usr.drop_item()
+ U.loc = target
+ target.hud_used.update_robot_modules_display()
+ else
+ to_chat(usr, "Upgrade error!")
+ if(selected_module_upgrade == "Proto-Kinetic Accelerator")
+ var/list/modkits = list()
+ for(var/modkit in typesof(/obj/item/borg/upgrade/modkit))
+ var/obj/item/borg/upgrade/modkit/single_modkit = modkit
+ modkits["[initial(single_modkit.name)] [initial(single_modkit.cost)]"] = modkit
+ modkits.Remove("kinetic accelerator modification kit 30")
+ var/capacity = 100
+ while(TRUE)
+ var/selected_ka_upgrade = tgui_input_list(usr, "Do you want to install upgrades? Remaining capacity: [capacity]", "KA Upgrades", modkits)
+ if(!selected_ka_upgrade || selected_ka_upgrade == "Cancel")
+ break
+ var/new_modkit = modkits[selected_ka_upgrade]
+ var/obj/item/borg/upgrade/modkit/M = new new_modkit(src)
+ var/obj/item/weapon/gun/energy/kinetic_accelerator/kin = locate() in target.module.modules
+ if(kin.get_remaining_mod_capacity() >= M.cost)
+ to_chat(usr, "You installed the [M] into the [kin], [capacity]% remaining!")
+ modkits.Remove(selected_ka_upgrade)
+ M.install(kin, target)
+ capacity = kin.get_remaining_mod_capacity()
+ if(MODIFIY_ROBOT_RADIOC_ADD)
+ var/list/available_channels = radiochannels.Copy()
+ for(var/has_channel in target.radio.channels)
+ available_channels -= has_channel
+ while(TRUE)
+ var/selected_radio_channel = tgui_input_list(usr, "Please select the radio channel to add", "Channels", available_channels)
+ if(!selected_radio_channel || selected_radio_channel == "Cancel")
+ break
+ if(selected_radio_channel == "Special Ops")
+ target.radio.centComm = 1
+ if(selected_radio_channel == "Raider")
+ qdel(target.radio.keyslot)
+ target.radio.keyslot = new /obj/item/device/encryptionkey/raider(target)
+ target.radio.syndie = 1
+ if(selected_radio_channel == "Mercenary")
+ qdel(target.radio.keyslot)
+ target.radio.keyslot = new /obj/item/device/encryptionkey/syndicate(target)
+ target.radio.syndie = 1
+ target.module.channels += list("[selected_radio_channel]" = 1)
+ target.radio.channels[selected_radio_channel] += target.module.channels[selected_radio_channel]
+ target.radio.secure_radio_connections[selected_radio_channel] += radio_controller.add_object(target.radio, radiochannels[selected_radio_channel], RADIO_CHAT)
+ available_channels -= selected_radio_channel
+ to_chat(usr, "You added \"[selected_radio_channel]\" channel to [target].")
+ if(MODIFIY_ROBOT_RADIOC_REMOVE)
+ while(TRUE)
+ var/selected_radio_channel = tgui_input_list(usr, "Please select the radio channel to remove", "Channels", target.radio.channels)
+ if(!selected_radio_channel || selected_radio_channel == "Cancel")
+ break
+ if(selected_radio_channel == "Special Ops")
+ target.radio.centComm = 0
+ target.module.channels -= selected_radio_channel
+ if((selected_radio_channel == "Mercenary" || selected_radio_channel == "Raider") && !(target.module.channels["Raider"] || target.module.channels["Mercenary"]))
+ qdel(target.radio.keyslot)
+ target.radio.keyslot = null
+ target.radio.syndie = 0
+ target.radio.channels = list()
+ for(var/n_chan in target.module.channels)
+ target.radio.channels[n_chan] -= target.module.channels[n_chan]
+ radio_controller.remove_object(target.radio, radiochannels[selected_radio_channel])
+ target.radio.secure_radio_connections -= selected_radio_channel
+ to_chat(usr, "You removed \"[selected_radio_channel]\" channel from [target].")
+ if(MODIFIY_ROBOT_COMP_ADD)
+ while(TRUE)
+ var/selected_component = tgui_input_list(usr, "Please select the component to add or replace", "Component", target.components)
+ if(!selected_component || selected_component == "Cancel")
+ break
+ var/datum/robot_component/C = target.components[selected_component]
+ if(C.wrapped && selected_component != "power cell")
qdel(C.wrapped)
- var/new_power_cell = cell_names[capitalize(selected_cell)]
- target.cell = new new_power_cell(target)
- C.wrapped = target.cell
- to_chat(usr, "You replaced \"[C]\" on [target] with \"[selected_cell]\".")
- if("diagnosis unit")
- C.wrapped = new /obj/item/robot_parts/robot_component/diagnosis_unit(target)
- if("camera")
- C.wrapped = new /obj/item/robot_parts/robot_component/camera(target)
- if("comms")
- C.wrapped = new /obj/item/robot_parts/robot_component/binary_communication_device(target)
- if("armour")
- C.wrapped = new /obj/item/robot_parts/robot_component/armour(target)
- C.install()
- C.installed = 1
- if(selected_component != "power cell")
- to_chat(usr, "You repplaced \"[C]\" on [target].")
- if(MODIFIY_ROBOT_COMP_REMOVE)
- while(TRUE)
- var/selected_component = tgui_input_list(usr, "Please select the component to remove", "Component", target.components)
- if(!selected_component || selected_component == "Cancel")
- break
- var/datum/robot_component/C = target.components[selected_component]
- if(C.wrapped)
- C.uninstall()
- C.installed = 0
- qdel(C.wrapped)
- C.wrapped = null
- if(selected_component == "power cell")
- target.cell = null
- to_chat(usr, "You removed \"[C]\" from [target]")
- if(MODIFIY_ROBOT_RESET_MODULE)
- if(tgui_alert(usr, "Are you sure that you want to reset the entire module?","Confirm",list("Yes","No"))=="No")
- return
- target.module_reset()
- to_chat(usr, "You resetted [target]'s module selection.")
+ switch(selected_component)
+ if("actuator")
+ C.wrapped = new /obj/item/robot_parts/robot_component/actuator(target)
+ if("radio")
+ C.wrapped = new /obj/item/robot_parts/robot_component/radio(target)
+ if("power cell")
+ var/list/recommended_cells = list(/obj/item/weapon/cell/robot_station, /obj/item/weapon/cell/high, /obj/item/weapon/cell/super, /obj/item/weapon/cell/robot_syndi, /obj/item/weapon/cell/hyper,
+ /obj/item/weapon/cell/infinite, /obj/item/weapon/cell/potato, /obj/item/weapon/cell/slime)
+ var/list/cell_names = list()
+ for(var/cell_type in recommended_cells)
+ var/obj/item/weapon/cell/single_cell = cell_type
+ cell_names[capitalize(initial(single_cell.name))] = cell_type
+ var/selected_cell = tgui_input_list(usr, "What kind of cell do you want to install?", "Cells", cell_names)
+ if(!selected_cell || selected_cell == "Cancel")
+ continue
+ qdel(C.wrapped)
+ var/new_power_cell = cell_names[capitalize(selected_cell)]
+ target.cell = new new_power_cell(target)
+ C.wrapped = target.cell
+ to_chat(usr, "You replaced \"[C]\" on [target] with \"[selected_cell]\".")
+ if("diagnosis unit")
+ C.wrapped = new /obj/item/robot_parts/robot_component/diagnosis_unit(target)
+ if("camera")
+ C.wrapped = new /obj/item/robot_parts/robot_component/camera(target)
+ if("comms")
+ C.wrapped = new /obj/item/robot_parts/robot_component/binary_communication_device(target)
+ if("armour")
+ C.wrapped = new /obj/item/robot_parts/robot_component/armour(target)
+ C.install()
+ C.installed = 1
+ if(selected_component != "power cell")
+ to_chat(usr, "You repplaced \"[C]\" on [target].")
+ if(MODIFIY_ROBOT_COMP_REMOVE)
+ while(TRUE)
+ var/selected_component = tgui_input_list(usr, "Please select the component to remove", "Component", target.components)
+ if(!selected_component || selected_component == "Cancel")
+ break
+ var/datum/robot_component/C = target.components[selected_component]
+ if(C.wrapped)
+ C.uninstall()
+ C.installed = 0
+ qdel(C.wrapped)
+ C.wrapped = null
+ if(selected_component == "power cell")
+ target.cell = null
+ to_chat(usr, "You removed \"[C]\" from [target]")
+ if(MODIFIY_ROBOT_RESET_MODULE)
+ if(tgui_alert(usr, "Are you sure that you want to reset the entire module?","Confirm",list("Yes","No"))=="No")
+ return
+ target.module_reset()
+ to_chat(usr, "You resetted [target]'s module selection.")
diff --git a/code/modules/mob/living/silicon/robot/robot_items.dm b/code/modules/mob/living/silicon/robot/robot_items.dm
index d2d32452bf..20469a4675 100644
--- a/code/modules/mob/living/silicon/robot/robot_items.dm
+++ b/code/modules/mob/living/silicon/robot/robot_items.dm
@@ -369,7 +369,7 @@
var/list/science_paper_forms = list("SCI-3003: Cyborg / Robot Inspection", "SCI-3004: Cyborg / Robot Upgrades", "SCI-3009: Xenoflora Genetics Report")
var/list/medical_paper_forms = list("MED-4001: Death Certificate", "MED-4002: Prescription", "MED-4003: Against Medical Advice", "MED-4004: Cyborgification Contract", "MED-4005: Mental Health Patient Intake", "MED-4006: NIF Surgery", "MED-4007: Psychiatric Evaluation")
var/list/engineering_paper_forms = list("ENG-5001: Building Permit")
- var/list/service_paper_forms = list()
+ var/list/service_paper_forms = list("SER-6005: Certificate of Marriage")
var/list/exploration_paper_forms = list()
var/list/event_paper_forms = list()
var/list/other_paper_forms = list("OTHR-9001: Emergency Transmission", "OTHR-9032: Ownership Transfer")
@@ -439,7 +439,7 @@
split = splittext(mercenary_paper, ": ")
else
return
- return list(select_form(split[1]), split[1] + ": " + split[2])
+ return list(select_form(split[1], split[2]), split[1] + ": " + split[2])
/obj/item/weapon/form_printer/proc/select_form(paperid, name)
var/content = ""
@@ -557,6 +557,9 @@
content = @{"[grid][row][cell][b]Location:[/b] [cell][field][br][row][cell][b]Purpose:[/b] [cell][field][/grid][br][hr][br]I, [[u][field][/u]] certify that I have reviewed and approved of provided blueprints. I have verified that design will be structurally sound and fall within building guidelines. I and any others participating in its construction will ensure that the blueprint will be followed.[br][br][br][b]Blueprint:[/b] [field][br][br][hr][grid][row][cell][list][b]Constructing Engineer signature:[/b][/list][cell][list][list][list][list][list][b]Chief Engineer signature:[/b][/list][/list][/list][/list][/list][cell][br][row][cell][list] - [field][/list][cell][list][list][list][list][list]- [large][field][/large][/list][/list][/list][/list][/list][cell][/grid]"}
revision = "Revision 1.1"
//Service forms, SER-6
+ if("SER-6005")
+ content = @{"[hr][br][center]This is to certify that[br][br][u]_[field]_[/u] and [u]_[field]_[/u][br][br]were united in marriage at [u]_[field]_[/u] on date [u]_[field]_[/u][br][br][hr][grid][row][cell][list][b]Bride:[/b][/list][cell][cell][list][list][list][list][b]Groom:[/b][/list][/list][/list][/list][cell][row][cell][list] - [large][field][/large][/list][cell][cell][list][list][list][list]- [large][field][/large][/list][/list][/list][/list][cell][/grid][hr][br][b]Chaplain:[/b] [large][field][/large]"}
+ revision = "Revision 1.4"
//Explorer forms, EXP-7
//Event forms, EVNT-8
//Other forms, OTHR-9
diff --git a/icons/mob/robot/civilian.dmi b/icons/mob/robot/civilian.dmi
index 67bee1e31ea25ba80f26f55dc31b7adcea8f8137..f0668cbe1d67990731894dd67f5472628ff986da 100644
GIT binary patch
delta 351
zcmV-l0igclhyvJ%0+1wsMtW3ObVOxyV{&P5bZKvH004NLm6XA5gD?<8&-g1=$p+O7L>Cr8gdrJ=!(A?>_cNC=Ywlp>H)gC?J1*
z6G^Y@&_Ds%MkEdD?HZbVOxyV{&P5bZKvH004NLm6XA5gD?z+&*Ukr_DZJ#
z?UBnwHTBTG!W4=(tR-=kWH8=-2c)${EeW?o`u_a>W6NuJ+rJ-9P#q7VL+gkQl(2ny
z6-iHxZ=r-D7fFls)%x+`yz~eqtX3jv$T}z?6UnEQ8prcLz!x-s7imy^nDZ6hhTtV^
zA7pXBn*C#JE0PA49H4|X*D#AaizVSlQiIv&Iy?ZNrh-{~cI
IvvUFEf^FTmGXMYp