diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 5088cb75ba25..cf87fa47a181 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -391,7 +391,7 @@ "Medical" = image('icons/mob/robots.dmi', "med-radial"), "Janitor" = image('icons/mob/robots.dmi', "jan-radial"), "Hunter" = image('icons/mob/robots.dmi', "xeno-radial"), - "Death Bot" = image('icons/mob/robots.dmi', "syndie-bloodhound-preview") + "Death Bot" = image('icons/mob/robots.dmi', "spidersyndi-preview") ) selected_disguise = show_radial_menu(user, target, disguise_options, require_near = TRUE, radius = 42) diff --git a/code/modules/antagonists/_common/antag_spawner.dm b/code/modules/antagonists/_common/antag_spawner.dm index 51648d390449..c6793185540c 100644 --- a/code/modules/antagonists/_common/antag_spawner.dm +++ b/code/modules/antagonists/_common/antag_spawner.dm @@ -104,7 +104,7 @@ /obj/item/antag_spawner/nuke_ops/borg_tele/assault/Initialize(mapload) . = ..() - poll_icon = image(icon = 'icons/mob/robots.dmi', icon_state = "syndie-bloodhound-preview") + poll_icon = image(icon = 'icons/mob/robots.dmi', icon_state = "spidersyndi-preview") /obj/item/antag_spawner/nuke_ops/borg_tele/medical name = "syndicate medical teleporter" diff --git a/code/modules/clothing/suits/cardborg_suit.dm b/code/modules/clothing/suits/cardborg_suit.dm index 324c2fb04c8a..dca49e0dda97 100644 --- a/code/modules/clothing/suits/cardborg_suit.dm +++ b/code/modules/clothing/suits/cardborg_suit.dm @@ -105,7 +105,7 @@ CONTENTS: icon_state = "cardborg_h_deathbot" item_state = "cardborg_h_deathbot" dog_fashion = /datum/dog_fashion/head/cardborg/deathbot - available_disguises = list("nano_bloodhound", "syndie_bloodhound", "syndi-medi", "syndi-engi", "ertgamma") + available_disguises = list("nano_bloodhound", "syndie_bloodhound", "syndi-medi", "syndi-engi", "ertgamma", "spidersyndi", "syndieheavy") species_disguise = "High-tech killer robot" /* diff --git a/code/modules/mob/living/silicon/robot/robot_mob.dm b/code/modules/mob/living/silicon/robot/robot_mob.dm index 388d4fdfc87c..b784e4bb81f9 100644 --- a/code/modules/mob/living/silicon/robot/robot_mob.dm +++ b/code/modules/mob/living/silicon/robot/robot_mob.dm @@ -84,6 +84,10 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( var/list/force_modules /// Can a robot rename itself with the Namepick verb? var/allow_rename = TRUE + /// Can a robot change it's looks after the module is initialized? Used by syndicate combat borgs. + var/allow_resprite = FALSE + /// Has the robot done its one allowed resprite? + var/done_resprite = FALSE /// Setting to TRUE unlocks a borg's Safety Override modules. var/weapons_unlock = FALSE var/static_radio_channels = FALSE @@ -298,6 +302,25 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( return 0 rename_self(braintype, 1) +/mob/living/silicon/robot/verb/Lookpick() + set category = "Robot Commands" + set name = "Change module look" + if(!modtype) + return FALSE + if(done_resprite) + to_chat(src, "You have already selected your look, you can not change it again.") + return FALSE + if(!allow_resprite) + to_chat(src, "Changing the look of the module is not enabled on this unit.") + return FALSE + // Pick a sprite + var/module_sprites = get_module_sprites(modtype) + var/selected_sprite = show_radial_menu(src, src, module_sprites, radius = 42) + if(!selected_sprite) + return FALSE + done_resprite = TRUE + initialize_sprites(selected_sprite, module_sprites) + /mob/living/silicon/robot/proc/sync() if(lawupdate && connected_ai) lawsync() @@ -481,6 +504,12 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( "Cricket" = image('icons/mob/robots.dmi', "Cricket-SEC"), "Heavy" = image('icons/mob/robots.dmi', "heavySec") ) + if("Syndicate") + module_sprites = list( + "Spider" = image('icons/mob/robots.dmi', "spidersyndi"), + "Bloodhound" = image('icons/mob/robots.dmi', "syndie_bloodhound"), + "Heavy" = image('icons/mob/robots.dmi', "syndieheavy") + ) if("Destroyer") //for Adminbus presumably module_sprites = list( "Destroyer" = image('icons/mob/robots.dmi', "droidcombat") @@ -640,7 +669,13 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( if(!static_radio_channels) radio.config(module.channels) rename_character(real_name, get_default_name()) + initialize_sprites(selected_sprite, module_sprites) + if(client.stat_tab == "Status") + SSstatpanels.set_status_tab(client) + SSblackbox.record_feedback("tally", "cyborg_modtype", 1, "[lowertext(selected_module)]") + notify_ai(2) +/mob/living/silicon/robot/proc/initialize_sprites(selected_sprite, list/module_sprites) var/image/sprite_image = module_sprites[selected_sprite] var/list/names = splittext(selected_sprite, "-") icon = sprite_image.icon @@ -650,10 +685,7 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( update_module_icon() robot_module_hat_offset(icon_state) update_icons() - if(client.stat_tab == "Status") - SSstatpanels.set_status_tab(client) - SSblackbox.record_feedback("tally", "cyborg_modtype", 1, "[lowertext(selected_module)]") - notify_ai(2) + /// Take the borg's upgrades and spill them on the floor /mob/living/silicon/robot/proc/spill_upgrades() for(var/obj/item/borg/upgrade/U in contents) diff --git a/code/modules/mob/living/silicon/robot/syndicate_robot.dm b/code/modules/mob/living/silicon/robot/syndicate_robot.dm index 17801c1a2e3b..d88415375b6e 100644 --- a/code/modules/mob/living/silicon/robot/syndicate_robot.dm +++ b/code/modules/mob/living/silicon/robot/syndicate_robot.dm @@ -1,6 +1,6 @@ /mob/living/silicon/robot/syndicate - base_icon = "syndie_bloodhound" - icon_state = "syndie_bloodhound" + base_icon = "spidersyndi" + icon_state = "spidersyndi" lawupdate = FALSE scrambledcodes = TRUE has_camera = FALSE @@ -9,6 +9,7 @@ bubble_icon = "syndibot" designation = "Syndicate Assault" modtype = "Syndicate" + allow_resprite = TRUE req_access = list(ACCESS_SYNDICATE) ionpulse = TRUE damage_protection = 5 diff --git a/icons/mob/robots.dmi b/icons/mob/robots.dmi index 5009239fc389..cd7ad64edee8 100644 Binary files a/icons/mob/robots.dmi and b/icons/mob/robots.dmi differ