diff --git a/code/controllers/subsystems/robot_sprites.dm b/code/controllers/subsystems/robot_sprites.dm index 6f9acc912c..c1c0e27e44 100644 --- a/code/controllers/subsystems/robot_sprites.dm +++ b/code/controllers/subsystems/robot_sprites.dm @@ -144,7 +144,7 @@ SUBSYSTEM_DEF(robot_sprites) // testing whitelist functionality ckey-... if(findtext(icon, regex("ckey-"))) var/list/owner = splittext(icon, "-") - RS.whitelist_ckey = owner[3] + RS.whitelist_ckey = owner[2] RS.is_whitelisted = TRUE continue // testing module types slots modules-... @@ -153,6 +153,12 @@ SUBSYSTEM_DEF(robot_sprites) jobs -= "modules" RS.module_type = jobs continue + // special overlays that also can be used as decals, as some names have - in them, seperated by _ + if(findtext(icon, regex("^decals"))) + var/list/decals = splittext(icon, "_") + decals -= "decals" + RS.sprite_decals |= decals + continue // Check for all the possible overlays if(findtext(icon, regex("-roll"))) RS.sprite_flags |= ROBOT_HAS_SPEED_SPRITE @@ -191,7 +197,10 @@ SUBSYSTEM_DEF(robot_sprites) RS.has_eye_light_sprites = TRUE continue if(findtext(icon, regex("-decals"))) - RS.has_robotdecal_sprites = TRUE + RS.sprite_decals |= list("decals") + continue + if(findtext(icon, regex("-struggle"))) + RS.has_vore_struggle_sprite = TRUE continue if(findtext(icon, regex("-openpanel_w"))) RS.has_custom_open_sprites = TRUE diff --git a/code/game/objects/items/weapons/id cards/id_stacks.dm b/code/game/objects/items/weapons/id cards/id_stacks.dm index 1e0f49133e..914caaf0a0 100644 --- a/code/game/objects/items/weapons/id cards/id_stacks.dm +++ b/code/game/objects/items/weapons/id cards/id_stacks.dm @@ -290,6 +290,38 @@ initial_sprite_stack = list("base-stamp-silver", "top-olive", "stamp-n", "pips-white") rank = JOB_PATHFINDER +/obj/item/card/id/exploration/borg + var/mob/living/silicon/robot/R + var/last_robot_loc + name = "Robot Exploration ID" + rank = JOB_EXPLORER + +/obj/item/card/id/exploration/borg/Initialize() + . = ..() + if(isrobot(loc?.loc)) + R = loc.loc + registered_name = R.braintype + RegisterSignal(src, COMSIG_OBSERVER_MOVED, PROC_REF(check_loc)) + +/obj/item/card/id/exploration/borg/proc/check_loc(atom/movable/mover, atom/old_loc, atom/new_loc) + if(old_loc == R || old_loc == R.module) + last_robot_loc = old_loc + if(!istype(loc, /obj/machinery) && loc != R && loc != R.module) + if(last_robot_loc) + forceMove(last_robot_loc) + last_robot_loc = null + else + forceMove(R) + if(loc == R) + hud_layerise() + +/obj/item/card/id/exploration/borg/Destroy() + if(R) + UnregisterSignal(src, COMSIG_OBSERVER_MOVED) + R = null + last_robot_loc = null + . = ..() + //Talon /obj/item/card/id/talon diff --git a/code/game/objects/items/weapons/taskmanager_ch.dm b/code/game/objects/items/weapons/taskmanager_ch.dm index 5f6eef32e2..a7642ccbfe 100644 --- a/code/game/objects/items/weapons/taskmanager_ch.dm +++ b/code/game/objects/items/weapons/taskmanager_ch.dm @@ -1,7 +1,7 @@ /obj/item/taskmanager name = "Task Manager" desc = "A high-tech tool used to pull surplus items from offsite storage. Select a department to begin! Has a five minute cooldown between successful uses" - icon = 'modular_chomp/icons/mob/dogborg_ch.dmi' + icon = 'icons/mob/dogborg_vr.dmi' icon_state = "taskmanager" item_icons = list( slot_l_hand_str = 'icons/mob/items/lefthand_vr.dmi', diff --git a/code/global.dm b/code/global.dm index 9b8c315e1b..cab9efea94 100644 --- a/code/global.dm +++ b/code/global.dm @@ -127,9 +127,9 @@ var/global/list/alphabet_uppercase = list("A","B","C","D","E","F","G","H","I","J // Used by robots and robot preferences for regular modules. var/list/robot_module_types = list( - "Standard", "Engineering",/* "Surgeon",*/ "Crisis", //CHOMPedit: Combining Surgeon and Crisis. - "Miner", "Janitor", "Service", "Clerical", "Security", - "Research" + "Standard", "Engineering", /* "Surgeon",*/ "Crisis", "Miner", + "Janitor", "Service", "Clown", "Clerical", "Security", + "Research", "Command", "Exploration" //CHOMPedit: Enables Exploration borg. ) // L // List of modules added during code red @@ -138,8 +138,9 @@ var/list/emergency_module_types = list( ) // List of modules available to AI shells var/list/shell_module_types = list( - "Standard", "Engineering", "Surgeon", "Crisis", - "Miner", "Janitor", "Service", "Clerical", "Security", "Research" + "Standard", "Engineering", "Surgeon", "Crisis", "Miner", + "Janitor", "Service", "Clown", "Clerical", "Security", + "Research", "Command", "Exploration" ) // List of whitelisted modules var/list/whitelisted_module_types = list( @@ -165,10 +166,10 @@ var/static/list/scarySounds = list( 'sound/machines/door/old_airlock.ogg', 'sound/effects/clownstep1.ogg', 'sound/effects/clownstep2.ogg', - 'sound/voice/teppi/roar.ogg', //VOREStation Add - 'sound/voice/moth/scream_moth.ogg', //VOREStation Add - 'sound/voice/nya.ogg', //VOREStation Add - 'sound/voice/succlet_shriek.ogg' //VOREStation Add + 'sound/voice/teppi/roar.ogg', + 'sound/voice/moth/scream_moth.ogg', + 'sound/voice/nya.ogg', + 'sound/voice/succlet_shriek.ogg' ) // Bomb cap! diff --git a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_blob.dm b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_blob.dm index b5941b5535..b367a5dd4c 100644 --- a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_blob.dm +++ b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_blob.dm @@ -746,9 +746,8 @@ I.plane = PLANE_LIGHTING_ABOVE add_overlay(I) qdel(I) - // CHOMPEdit Start if(S.blob_appearance == "dullahan") - icon = 'modular_chomp/icons/mob/dullahanborg/Dullahanprotean64x64.dmi' + icon = 'icons/mob/robot/dullahan/v1/Dullahanprotean64x64.dmi' vis_height = 64 var/image/I = image(icon, "[S.dullahan_overlays[1]][resting? "-rest" : (vore_fullness? "-[vore_fullness]" : null)]", pixel_x = -16) I.color = S.dullahan_overlays[S.dullahan_overlays[1]] @@ -797,7 +796,7 @@ I.layer = MOB_LAYER add_overlay(I) qdel(I) - // CHOMPEdit End + //You know technically I could just put all the icons into the 128x64.dmi file and off-set them to fit.. if(S.blob_appearance in wide_icons) icon = 'icons/mob/species/protean/protean64x32.dmi' default_pixel_x = -16 diff --git a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_powers.dm b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_powers.dm index b83c24332e..581268732c 100644 --- a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_powers.dm +++ b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_powers.dm @@ -409,7 +409,7 @@ "panther" = image(icon = 'icons/mob/species/protean/protean64x64.dmi', icon_state = "panther", pixel_x = -16), "robodrgn" = image(icon = 'icons/mob/species/protean/protean128x64.dmi', icon_state = "robodrgn", pixel_x = -48), "Dragon" = image(icon = 'icons/mob/bigdragon_small.dmi', icon_state = "dragon_small"), - "dullahan" = image(icon = 'modular_chomp/icons/mob/dullahanborg/dullahanicon.dmi', icon_state = "proticon") + "dullahan" = image(icon = 'icons/mob/robot/dullahan/v1/dullahanicon.dmi', icon_state = "proticon") //CHOMPEnable End ) var/blobstyle = show_radial_menu(protie, protie, icon_choices, require_near = TRUE, tooltips = FALSE) @@ -531,11 +531,10 @@ S.dragon_overlays[6] = choice S.dragon_overlays[S.dragon_overlays[6]] = new_color S.blob_appearance = "dragon" - // CHOMPEdit Start - if("dullahan") + if("dullahan") //START OF DULLAHAN PORT. var/list/options = list("Metalshell","Eyes","Decals","Import","Export") for(var/option in options) - LAZYSET(options, option, image('modular_chomp/icons/mob/dullahanborg/dullahansigns.dmi', option)) + LAZYSET(options, option, image('icons/mob/robot/dullahan/v1/dullahansigns.dmi', option)) var/choice = show_radial_menu(protie, protie, options, radius = 60) if(!choice || QDELETED(protie) || protie.incapacitated()) return FALSE @@ -570,7 +569,7 @@ var/extraoff = "dullahanextendedoff" options = dullahanmetal_styles for(var/option in options) - var/image/I = image('modular_chomp/icons/mob/dullahanborg/Dullahanprotean64x64.dmi', option, dir = 2, pixel_x = -16) + var/image/I = image('icons/mob/robot/dullahan/v1/Dullahanprotean64x64.dmi', option, dir = 2, pixel_x = -16) LAZYSET(options, option, I) choice = show_radial_menu(protie, protie, options, radius = 90) if(!choice || QDELETED(protie) || protie.incapacitated()) @@ -589,7 +588,7 @@ if("Eyes") options = dullahaneyes_styles for(var/option in options) - var/image/I = image('modular_chomp/icons/mob/dullahanborg/Dullahanprotean64x64.dmi', option, dir = 2, pixel_x = -16) + var/image/I = image('icons/mob/robot/dullahan/v1/Dullahanprotean64x64.dmi', option, dir = 2, pixel_x = -16) LAZYSET(options, option, I) choice = show_radial_menu(protie, protie, options, radius = 90) if(!choice || QDELETED(protie) || protie.incapacitated()) @@ -602,7 +601,7 @@ if("Decals") options = dullahandecals_styles for(var/option in options) - var/image/I = image('modular_chomp/icons/mob/dullahanborg/Dullahanprotean64x64.dmi', option, dir = 2, pixel_x = -16, pixel_y = -16) + var/image/I = image('icons/mob/robot/dullahan/v1/Dullahanprotean64x64.dmi', option, dir = 2, pixel_x = -16, pixel_y = -16) LAZYSET(options, option, I) choice = show_radial_menu(protie, protie, options, radius = 90) if(!choice || QDELETED(protie) || protie.incapacitated()) @@ -652,8 +651,7 @@ deyescolor = S.dullahan_overlays[S.dullahan_overlays[4]] var/output_style = jointext(list(dmetal,dmetalcolor,ddecals,ddecalscolor,deyes,deyescolor), ";") to_chat(protie, span_notice("Exported style string is \" [output_style] \". Use this to get the same style in the future with import style")) - S.blob_appearance = "dullahan" - // CHOMPEdit End + S.blob_appearance = "dullahan" //END OF DULLAHAN PORT. if("Primary") var/new_color = tgui_color_picker(protie, "Pick primary color:","Protean Primary", "#FF0000") if(!new_color) diff --git a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_species.dm b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_species.dm index 465d38ed55..2b5cbee261 100755 --- a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_species.dm +++ b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_species.dm @@ -130,7 +130,6 @@ "dragon_hornsPointy" = "#FFFFFF", "dragon_eyesNormal" = "#FFFFFF" ) - // CHOMPEdit Start var/list/dullahan_overlays = list( "dullahanbody" = "#FFFFFF", "dullahanhead" = "#FFFFFF", @@ -140,7 +139,6 @@ "dullahanextended" = "#FFFFFF" // loads the icons from the DMI file in that order on spawn. they are overlay 1-6. ) - // CHOMPEdit End var/pseudodead = 0 /datum/species/protean/New() diff --git a/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm b/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm index 68f403491f..338dd256a9 100644 --- a/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm +++ b/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm @@ -557,3 +557,166 @@ if(custom_range) range = custom_range to_chat(user, span_notice("Scanner will now look up to [range] tile(s) away.")) + +//CHOMPEDIT Enable +/obj/item/robot_tongue/examine(user) + . = ..() + if(Adjacent(user)) + if(water.energy) + . += span_notice("[src] is wet. Just like it should be.") + if(water.energy < 5) + . += span_notice("[src] is dry.") +//CHOMPEDIT Enable + +/obj/item/shield_projector/line/exploborg + name = "expirmental shield projector" + description_info = "This creates a shield in a straight line perpendicular to the direction where the user was facing when it was activated. \ + The shield allows projectiles to leave from inside but blocks projectiles from outside. Everything else can pass through the shield freely, \ + including other people and thrown objects. The shield also cannot block certain effects which take place over an area, such as flashbangs or explosions." + shield_health = 90 + max_shield_health = 90 + shield_regen_amount = 25 + line_length = 7 // How long the line is. Recommended to be an odd number. + offset_from_center = 2 // How far from the projector will the line's center be. + +// To repair a single module +/obj/item/self_repair_system + name = "plating repair system" + desc = "A nanite control system to repair damaged armour plating and wiring while not moving. Destroyed armour can't be restored." + icon = 'icons/obj/robot_component.dmi' + icon_state = "armor" + var/repair_time = 25 + var/repair_amount = 2.5 + var/power_tick = 25 + var/disabled_icon = "armor" + var/active_icon = "armor_broken" + var/list/target_components = list("armour") + var/repairing = FALSE + +/obj/item/self_repair_system/New() + ..() + flags |= NOBLUDGEON + +/obj/item/self_repair_system/attack_self(mob/user) + if(repairing) + return + var/mob/living/silicon/robot/R = user + var/destroyed_components = FALSE + var/list/repairable_components = list() + for(var/target_component in target_components) + var/datum/robot_component/C = R.components[target_component] + if(!C) + continue + if(istype(C.wrapped, /obj/item/broken_device)) + destroyed_components = TRUE + else if (C.brute_damage != 0 || C.electronics_damage != 0) + repairable_components += C + if(!repairable_components.len && destroyed_components) + to_chat(R, span_warning("Repair system initialization failed. Can't repair destroyed [target_components.len == 1 ? "[R.components[target_components[1]]]'s" : "component's"] plating or wiring.")) + return + if(!repairable_components.len) + to_chat(R, span_warning("No brute or burn damage detected [target_components.len == 1 ? "in [R.components[target_components[1]]]" : ""].")) + return + if(destroyed_components) + to_chat(R, span_warning("WARNING! Destroyed modules detected. Those can not be repaired!")) + icon_state = active_icon + update_icon() + repairing = TRUE + for(var/datum/robot_component/C in repairable_components) + to_chat(R, span_notice("Repair system initializated. Repairing plating and wiring of [C].")) + src.self_repair(R, C, repair_time, repair_amount) + repairing = FALSE + icon_state = disabled_icon + update_icon() + +/obj/item/self_repair_system/proc/self_repair(mob/living/silicon/robot/R, datum/robot_component/C, var/tick_delay, var/heal_per_tick) + if(!C || !R.cell) + return + if(C.brute_damage == 0 && C.electronics_damage == 0) + to_chat(R, span_notice("Repair of [C] completed.")) + return + if(!R.use_direct_power(power_tick, 500)) //We don't want to drain ourselves too far down during exploration + to_chat(R, span_warning("Not enough power to initialize the repair system.")) + return + if(do_after(R, tick_delay)) + if(!C) + return + C.brute_damage -= min(C.brute_damage, heal_per_tick) + C.electronics_damage -= min(C.electronics_damage, heal_per_tick) + R.updatehealth() + src.self_repair(R, C, tick_delay, heal_per_tick) + +// To repair multiple modules +/obj/item/self_repair_system/advanced + name = "self repair system" + desc = "A nanite control system to repair damaged components while not moving. Destroyed components can't be restored." + target_components = list("actuator", "radio", "power cell", "diagnosis unit", "camera", "comms", "armour") + power_tick = 10 + repair_time = 15 + repair_amount = 3 + +// Robot Weapons +/obj/item/gun/energy/robotic/flare + name = "flare gun" + desc = "A flare-gun" + projectile_type = /obj/item/projectile/energy/flash/flare + fire_sound = 'sound/weapons/tablehit1.ogg' + icon = 'icons/obj/gun.dmi' + icon_state = "taser" + charge_cost = 480 + borg_flags = COUNTS_AS_ROBOT_GUN | COUNTS_AS_ROBOT_TASER + +/obj/item/gun/energy/robotic/smallmedigun + name = "borg directed restoration system" + desc = "An adapted version of the BL-3 'Phoenix, for expiremental useage in borgs." + projectile_type = /obj/item/projectile/beam/medical_cell/borg + accept_cell_type = /obj/item/cell/device + cell_type = /obj/item/cell/device/weapon + charge_cost = 600 + fire_delay = 6 + force = 5 + icon_state = "medbeam" + icon = 'icons/obj/gun_vr.dmi' + accuracy = 100 + fire_sound = 'sound/weapons/eluger.ogg' + self_recharge = 1 + use_external_power = 1 + +/obj/item/projectile/beam/medical_cell/borg + range = 4 + +/obj/item/projectile/beam/medical_cell/borg/on_hit(var/mob/living/carbon/human/target) + if(istype(target, /mob/living/carbon/human)) + if(target.stat != DEAD) + target.adjustBruteLoss(-3.75) + target.adjustFireLoss(-3.75) + else + return 1 + +/obj/item/melee/robotic/blade/explotailspear + name = "energy tail" + desc = "A glowing tail spear with a moderate range. It appears to be extremely sharp." + force = 45 + armor_penetration = 25 //30 to try and make it not useless against armored mobs but not fully nullify it. + reach = 3 + projectile_parry_chance = 15. + +/obj/item/melee/robotic/jaws/big/explojaws + name = "explo jaws" + desc = "Highly lethal jaws for close range combat." + force = 60 + armor_penetration = 25 //To try and make it not useless against armored mobs but not fully nullify it + projectile_parry_chance = 15 + +/obj/item/gun/energy/robotic/phasegun + name = "EW26 Artemis Mounted" + desc = "The RayZar EW26 Artemis, also known as the 'phase carbine', is a downsized energy-based weapon specifically designed for use against wildlife. This one has a safety interlock that prevents firing while in proximity to the facility." + description_fluff = "RayZar is Ward-Takahashi’s main consumer weapons brand, known for producing and licensing a wide variety of specialist energy weapons of various types and quality primarily for the civilian market." + icon = 'icons/obj/gun.dmi' + icon_state = "phasecarbine" + charge_cost = 160 + recharge_time = 16 + projectile_type = /obj/item/projectile/energy/phase + use_external_power = 1 + self_recharge = 1 + borg_flags = COUNTS_AS_ROBOT_GUN | COUNTS_AS_ROBOT_LASER diff --git a/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm b/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm index 879311897f..3dcc23d4a5 100644 --- a/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm +++ b/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm @@ -832,19 +832,6 @@ return ..() //CHOMPEdit End -//CHOMPAdd START -/obj/item/dogborg/sleeper/command //Command borg belly //CHOMP addition - name = "Bluespace Filing Belly" - desc = "A mounted bluespace storage unit for carrying paperwork" - icon = 'modular_chomp/icons/mob/dogborg_ch.dmi' - icon_state = "sleeperd" - injection_chems = null - compactor = TRUE - recycles = FALSE - max_item_count = 25 - medsensor = FALSE -//CHOMP addition end - /obj/item/dogborg/sleeper/compactor/brewer name = "Brew Belly" desc = "A mounted drunk tank unit with fuel processor, for putting away particularly rowdy patrons." @@ -876,13 +863,6 @@ var/units = round(patient.reagents.get_reagent_amount(chem)) to_chat(hound, span_notice("Injecting [units] unit\s into occupant.")) //If they were immersed, the reagents wouldn't leave with them. -/obj/item/dogborg/sleeper/compactor/honkborg - name = "Jiggles Von Hungertron" - desc = "You've heard of Giggles Von Honkerton for the back, now get ready for Jiggles Von Hungertron for the front." - icon = 'modular_chomp/icons/mob/dogborg_ch.dmi' - icon_state = "clowngut" - recycles = FALSE - //CHOMP Addition end /obj/item/dogborg/sleeper/K9/ert @@ -927,4 +907,30 @@ max_item_count = 35 digest_multiplier = 3 +/obj/item/dogborg/sleeper/command //Command borg belly + name = "Bluespace Filing Belly" + desc = "A mounted bluespace storage unit for carrying paperwork" + icon_state = "sleeperd" + injection_chems = null + compactor = TRUE + recycles = FALSE + max_item_count = 25 + medsensor = FALSE + +/obj/item/dogborg/sleeper/compactor/honkborg + name = "Jiggles Von Hungertron" + desc = "You've heard of Giggles Von Honkerton for the back, now get ready for Jiggles Von Hungertron for the front." + icon_state = "clowngut" + recycles = FALSE + +/obj/item/dogborg/sleeper/exploration + name = "Store-Belly" + desc = "Equipment for a ExploreHound unit. A mounted portable-storage device that holds supplies/person." + icon_state = "sleeperlost" + injection_chems = list(REAGENT_ID_INAPROVALINE) // Only to stabilize during extractions + compactor = TRUE + max_item_count = 4 + medsensor = FALSE + recycles = TRUE + #undef SLEEPER_INJECT_COST diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index e5b44f1ccc..265201a2c8 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -26,7 +26,7 @@ var/crisis //Admin-settable for combat module use. var/crisis_override = 0 var/integrated_light_power = 6 - var/robotdecal_on = 0 + var/list/robotdecal_on = list() var/datum/wires/robot/wires can_be_antagged = TRUE @@ -457,8 +457,29 @@ /mob/living/silicon/robot/verb/toggle_robot_decals() // loads overlay UNDER lights. set category = "Abilities.Silicon" set name = "Toggle extras" - robotdecal_on = !robotdecal_on - to_chat(src, span_filter_notice("You [robotdecal_on ? "enable" : "disable"] your extra apperances.")) + + if(!sprite_datum) + return + if(!LAZYLEN(sprite_datum.sprite_decals)) + to_chat(src, span_warning("This module does not support decals.")) + return + + var/extra_message = "Enabled decals:\n" + for(var/decal in robotdecal_on) + extra_message += decal + "\n" + + var/decal_to_toggle = tgui_input_list(src, "Please select which decal you want to toggle\n[extra_message]", "Decal Toggle", sprite_datum.sprite_decals) + if(!decal_to_toggle) + return + + decal_to_toggle = lowertext(decal_to_toggle) + + if(robotdecal_on.Find(decal_to_toggle)) + robotdecal_on -= decal_to_toggle + to_chat(src, span_filter_notice("You disable your \"[decal_to_toggle]\" extra apperances.")) + else + robotdecal_on += decal_to_toggle + to_chat(src, span_filter_notice("You enable your \"[decal_to_toggle]\" extra apperances.")) update_icon() /mob/living/silicon/robot/verb/spark_plug() //So you can still sparkle on demand without violence. @@ -977,11 +998,12 @@ if(eyes_overlay) add_overlay(eyes_overlay) - if(robotdecal_on && sprite_datum.has_robotdecal_sprites) + if(robotdecal_on.len && LAZYLEN(sprite_datum.sprite_decals)) if(!shell || deployed) // Shell borgs that are not deployed will have no eyes. - var/robotdecal_overlay = sprite_datum.get_robotdecal_overlay(src) - if(robotdecal_overlay) - add_overlay(robotdecal_overlay) + for(var/enabled_decal in robotdecal_on) + var/robotdecal_overlay = sprite_datum.get_robotdecal_overlay(src, enabled_decal) + if(robotdecal_overlay) + add_overlay(robotdecal_overlay) if(lights_on && sprite_datum.has_eye_light_sprites) if(!shell || deployed) // Shell borgs that are not deployed will have no eyes. diff --git a/code/modules/mob/living/silicon/robot/robot_bellies.dm b/code/modules/mob/living/silicon/robot/robot_bellies.dm index 51d65064ab..17f97a7475 100644 --- a/code/modules/mob/living/silicon/robot/robot_bellies.dm +++ b/code/modules/mob/living/silicon/robot/robot_bellies.dm @@ -34,3 +34,29 @@ if(isliving(contents)) vore_light_states[b_class] = 1 return + +/mob/living/silicon/robot/vs_animate(var/belly_class) + if(!sprite_datum.has_vore_struggle_sprite) + return + if(belly_class == "sleeper" && sleeper_state == 0 && vore_selected.silicon_belly_overlay_preference == "Sleeper") + return + var/vs_fullness = vore_fullness_ex[belly_class] + if(resting) + cut_overlay(sprite_datum.get_belly_resting_overlay(src, vs_fullness, belly_class)) + add_overlay("[sprite_datum.get_belly_resting_overlay(src, vs_fullness, belly_class)]-struggle") + else + cut_overlay(sprite_datum.get_belly_overlay(src, vs_fullness, belly_class)) + add_overlay("[sprite_datum.get_belly_overlay(src, vs_fullness, belly_class)]-struggle") + addtimer(CALLBACK(src, PROC_REF(end_vs_animate), belly_class), 1.2 SECONDS) + +/mob/living/silicon/robot/proc/end_vs_animate(var/belly_class) + var/vs_fullness = vore_fullness_ex[belly_class] + if(resting) + cut_overlay("[sprite_datum.get_belly_resting_overlay(src, vs_fullness, belly_class)]-struggle") + else + cut_overlay("[sprite_datum.get_belly_overlay(src, vs_fullness, belly_class)]-struggle") + if(vs_fullness > 0) + if(resting) + add_overlay(sprite_datum.get_belly_resting_overlay(src, vs_fullness, belly_class)) + else + add_overlay(sprite_datum.get_belly_overlay(src, vs_fullness, belly_class)) diff --git a/code/modules/mob/living/silicon/robot/robot_modules/Widerobot_Clown_ch.dm b/code/modules/mob/living/silicon/robot/robot_modules/Widerobot_Clown_ch.dm deleted file mode 100644 index 59625da9da..0000000000 --- a/code/modules/mob/living/silicon/robot/robot_modules/Widerobot_Clown_ch.dm +++ /dev/null @@ -1,45 +0,0 @@ -//Modular honk borg -//This restructures how borg additions are done to make them sane/modular/maintainable -//Also makes it easier to make new borgs - -//Add ourselves to the borg list -/hook/startup/proc/Modular_Borg_init_Honk() - robot_modules["Clown"] = /obj/item/robot_module/robot/clerical/honkborg - robot_module_types += "Clown" //Add ourselves to global - return 1 - -/obj/item/robot_module/robot/clerical/honkborg - name = "clown robot module" - channels = list("Service" = 1, - "Entertainment" = 1) - pto_type = PTO_CIVILIAN - can_be_pushed = 0 - -/obj/item/robot_module/robot/clerical/honkborg/create_equipment(var/mob/living/silicon/robot/R) - src.modules += new /obj/item/gripper/service(src) - src.modules += new /obj/item/reagent_containers/glass/bucket(src) - src.modules += new /obj/item/material/minihoe(src) - src.modules += new /obj/item/analyzer/plant_analyzer(src) - src.modules += new /obj/item/storage/bag/serviceborg(src) - src.modules += new /obj/item/robot_harvester(src) - src.modules += new /obj/item/multitool(src) - src.modules += new /obj/item/dogborg/pounce(src) - src.modules += new /obj/item/bikehorn(src) - src.modules += new /obj/item/gun/launcher/confetti_cannon/robot(src) - - var/obj/item/rsf/M = new /obj/item/rsf(src) - M.stored_matter = 30 - src.modules += M - - src.modules += new /obj/item/reagent_containers/dropper/industrial(src) - - var/obj/item/flame/lighter/zippo/L = new /obj/item/flame/lighter/zippo(src) - L.lit = 1 - src.modules += L - - src.modules += new /obj/item/tray/robotray(src) - src.modules += new /obj/item/reagent_containers/borghypo/service(src) - - var/obj/item/dogborg/sleeper/compactor/honkborg/B = new /obj/item/dogborg/sleeper/compactor/honkborg(src) - src.modules += B - ..() diff --git a/code/modules/mob/living/silicon/robot/robot_modules/Widerobot_Command_ch.dm b/code/modules/mob/living/silicon/robot/robot_modules/Widerobot_Command_ch.dm deleted file mode 100644 index 3954ba44de..0000000000 --- a/code/modules/mob/living/silicon/robot/robot_modules/Widerobot_Command_ch.dm +++ /dev/null @@ -1,63 +0,0 @@ -//Modular command borg -//This restructures how borg additions are done to make them sane/modular/maintainable -//Also makes it easier to make new borgs - -//Add ourselves to the borg list -/hook/startup/proc/Modular_Borg_init_Unity() - robot_modules["Command"] = /obj/item/robot_module/robot/chound //Add to module array - robot_module_types += "Command" //Add ourselves to global - return 1 - -//Create our list of known languages. -/obj/item/robot_module/robot/chound - languages = list( - LANGUAGE_SOL_COMMON = 1, - LANGUAGE_TRADEBAND = 1, - LANGUAGE_UNATHI = 1, - LANGUAGE_SIIK = 1, - LANGUAGE_SKRELLIAN = 1, - LANGUAGE_ROOTLOCAL = 0, - LANGUAGE_GUTTER = 0, - LANGUAGE_SCHECHI = 1, - LANGUAGE_EAL = 1, - LANGUAGE_SIGN = 0, - LANGUAGE_BIRDSONG = 1, - LANGUAGE_SAGARU = 1, - LANGUAGE_CANILUNZT = 1, - LANGUAGE_ECUREUILIAN= 1, - LANGUAGE_DAEMON = 1, - LANGUAGE_ENOCHIAN = 1, - LANGUAGE_DRUDAKAR = 1, - LANGUAGE_TAVAN = 1 - ) - -//Build our Module -/obj/item/robot_module/robot/chound - name = "command robot module" - channels = list( - "Medical" = 1, - "Engineering" = 1, - "Security" = 1, - "Service" = 1, - "Supply" = 0, - "Science" = 1, - "Command" = 1, - "Explorer" = 0 - ) - pto_type = PTO_CIVILIAN - can_be_pushed = 0 - -/obj/item/robot_module/robot/chound/create_equipment(var/mob/living/silicon/robot/R) - src.modules += new /obj/item/pen/robopen(src) - src.modules += new /obj/item/form_printer(src) - src.modules += new /obj/item/gripper/paperwork(src) - src.modules += new /obj/item/hand_labeler(src) - src.modules += new /obj/item/stamp(src) - src.modules += new /obj/item/stamp/denied(src) - src.modules += new /obj/item/taskmanager(src) - src.emag += new /obj/item/stamp/chameleon(src) - src.emag += new /obj/item/pen/chameleon(src) - - src.modules += new /obj/item/dogborg/sleeper/command(src) - src.emag += new /obj/item/dogborg/pounce(src) - ..() diff --git a/code/modules/mob/living/silicon/robot/robot_modules/Widerobot_Exploration_ch.dm b/code/modules/mob/living/silicon/robot/robot_modules/Widerobot_Exploration_ch.dm deleted file mode 100644 index be49d77aa8..0000000000 --- a/code/modules/mob/living/silicon/robot/robot_modules/Widerobot_Exploration_ch.dm +++ /dev/null @@ -1,61 +0,0 @@ -//Lets make this shit more sane-shark -//Modular Exploration borg -//This restructures how borg additions are done to make them sane/modular/maintainable -//Also makes it easier to make new borgs -//CHOMPedit: Moving this all to a modular file -/* -/hook/startup/proc/Modular_Borg_init_Exploration() - robot_modules["Exploration"] = /obj/item/robot_module/robot/exploration //add to array - robot_module_types += "Exploration" //Add to global list - return 1 - -//Explo doggos -/obj/item/robot_module/robot/exploration - name = "exploration robot module" - channels = list("Exploration" = 1) - languages = list( - LANGUAGE_SOL_COMMON = 1, - LANGUAGE_UNATHI = 1, - LANGUAGE_SIIK = 1, - LANGUAGE_AKHANI = 1, - LANGUAGE_SKRELLIAN = 1, - LANGUAGE_SKRELLIANFAR = 0, - LANGUAGE_ROOTLOCAL = 0, - LANGUAGE_TRADEBAND = 1, - LANGUAGE_GUTTER = 0, - LANGUAGE_SCHECHI = 1, - LANGUAGE_EAL = 1, - LANGUAGE_TERMINUS = 1, - LANGUAGE_SIGN = 0 - ) - -/obj/item/robot_module/robot/exploration - can_be_pushed = 0 -/obj/item/robot_module/robot/exploration/New(var/mob/living/silicon/robot/R) - src.modules += new /obj/item/dogborg/sleeper/exploration(src) - src.modules += new /obj/item/gun/energy/robotic/phasegun(src) - src.modules += new /obj/item/cataloguer(src) - src.modules += new /obj/item/roller_holder(src) - src.modules += new /obj/item/gun/energy/taser/mounted/cyborg/flare(src) - - src.emag += new /obj/item/dogborg/pounce(src) - - ..() - -/obj/item/dogborg/sleeper/exploration //No need to inherit from the brig one, we cna direclty make a proper new one - name = "Store-Belly" - desc = "Equipment for a ExploreHound unit. A mounted portable-storage device that holds supplies/person." - icon_state = "sleeperlost" - injection_chems = null - stabilizer = TRUE - compactor = TRUE - max_item_count = 4 - medsensor = FALSE - recycles = TRUE - -/obj/item/gun/energy/taser/mounted/cyborg/flare - name = "flare gun" - desc = "A flare-gun" - projectile_type = /obj/item/projectile/energy/flash/flare - fire_sound = 'sound/weapons/tablehit1.ogg' -*/ diff --git a/code/modules/mob/living/silicon/robot/robot_modules/Widerobot_Standard_ch.dm b/code/modules/mob/living/silicon/robot/robot_modules/Widerobot_Standard_ch.dm deleted file mode 100644 index 619ec7cfd4..0000000000 --- a/code/modules/mob/living/silicon/robot/robot_modules/Widerobot_Standard_ch.dm +++ /dev/null @@ -1,58 +0,0 @@ -//Modular Standard borg hound edition -//This restructures how borg additions are done to make them sane/modular/maintainable -//Also makes it easier to make new borgs - -//INCOMPLETE and not ready, no sprites other than tall and basically useless, also lacking a belly - -//Add ourselves to the borg list -/hook/startup/proc/Modular_Borg_init_standardhound() - //robot_modules["Honk-Hound"] = /obj/item/robot_module/robot/clerical/honkborg - done in station_vr modular chomp for ordering reasons - robot_module_types += "Standard-Hound" //Add ourselves to global - return 1 - -/obj/item/robot_module/robot/standard/hound - name = "Standard-Hound" - sprites = list( - "MEKA" = list(SKIN_ICON_STATE = "mekastandard", SKIN_ICON = 'modular_chomp/icons/mob/tallborg/tallrobots.dmi', SKIN_OFFSET = 0, SKIN_HEIGHT = 64), - "NIKO" = list(SKIN_ICON_STATE = "mmekastandard", SKIN_ICON = 'modular_chomp/icons/mob/tallborg/tallrobots.dmi', SKIN_OFFSET = 0, SKIN_HEIGHT = 64), - "NIKA" = list(SKIN_ICON_STATE = "fmekastandard", SKIN_ICON = 'modular_chomp/icons/mob/tallborg/tallrobots.dmi', SKIN_OFFSET = 0, SKIN_HEIGHT = 64), - "K4T" = list(SKIN_ICON_STATE = "k4tclown", SKIN_ICON = 'modular_chomp/icons/mob/tallborg/tallrobots.dmi', SKIN_OFFSET = 0, SKIN_HEIGHT = 64) - ) - - can_be_pushed = 0 - -/obj/item/robot_module/robot/standard/hound/New(var/mob/living/silicon/robot/R) - ..() - src.modules += new /obj/item/melee/baton/loaded(src) - src.modules += new /obj/item/tool/wrench/cyborg(src) - src.modules += new /obj/item/healthanalyzer(src) - src.emag += new /obj/item/melee/energy/sword(src) - - var/datum/matter_synth/water = new /datum/matter_synth(500) - water.name = "Water reserves" - water.recharge_rate = 10 - water.max_energy = 1000 - R.water_res = water - synths += water - - var/obj/item/dogborg/tongue/T = new /obj/item/dogborg/tongue(src) - T.water = water - src.modules += T - - R.icon = 'modular_chomp/icons/mob/widerobot_ch.dmi' - R.wideborg_dept = 'modular_chomp/icons/mob/widerobot_ch.dmi' - R.hands.icon = 'icons/mob/screen1_robot_vr.dmi' - R.ui_style_vr = TRUE - R.pixel_x = -16 - R.old_x = -16 - R.default_pixel_x = -16 - R.dogborg = TRUE - R.vore_capacity = 1 - R.vore_capacity_ex = list("stomach" = 1) - R.wideborg = TRUE - add_verb(R,/mob/living/silicon/robot/proc/ex_reserve_refill) //CHOMPEdit TGPanel - add_verb(R,/mob/living/silicon/robot/proc/robot_mount) //CHOMPEdit TGPanel - add_verb(R,/mob/living/proc/toggle_rider_reins) //CHOMPEdit TGPanel - add_verb(R,/mob/living/proc/shred_limb) //CHOMPEdit TGPanel - add_verb(R,/mob/living/silicon/robot/proc/rest_style) //CHOMPEdit TGPanel - ..() diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station.dm b/code/modules/mob/living/silicon/robot/robot_modules/station.dm index 1236952185..ba4e7ccd69 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/station.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/station.dm @@ -2,12 +2,15 @@ var/global/list/robot_modules = list( "Standard" = /obj/item/robot_module/robot/standard, "Service" = /obj/item/robot_module/robot/clerical/butler, "Clerical" = /obj/item/robot_module/robot/clerical/general, + "Clown" = /obj/item/robot_module/robot/clerical/honkborg, + "Command" = /obj/item/robot_module/robot/chound, "Research" = /obj/item/robot_module/robot/research, "Miner" = /obj/item/robot_module/robot/miner, "Crisis" = /obj/item/robot_module/robot/medical/crisis, // "Surgeon" = /obj/item/robot_module/robot/medical/surgeon, // CHOMPedit: Surgeon module removal. "Security" = /obj/item/robot_module/robot/security/general, "Combat" = /obj/item/robot_module/robot/security/combat, + "Exploration" = /obj/item/robot_module/robot/exploration, "Engineering" = /obj/item/robot_module/robot/engineering, "Janitor" = /obj/item/robot_module/robot/janitor, "Gravekeeper" = /obj/item/robot_module/robot/gravekeeper, @@ -252,7 +255,10 @@ var/global/list/robot_modules = list( supported_upgrades = list(/obj/item/borg/upgrade/restricted/bellycapupgrade) /* CHOMPedit start: Removal of Surgeon module. * - +//This is a constant back and forth debate. 11 years ago, the 'medical' borg was split into surgery and crisis. +//Two years ago(?), they were combined into Crisis elsewhere and the idea seems to be well appreciated. +//However, given this seems as though it will remain a hot topic for as long as SS13 exists, we are going to leave the surgeon module here in the event that we split them. Again. +//This also goes for the sprite datums. It's be a lot of work to 'clear' them of having surgery in their path just to have to split them again in 2-3 years. /obj/item/robot_module/robot/medical/surgeon name = "surgeon robot module" @@ -340,7 +346,7 @@ var/global/list/robot_modules = list( src.modules += new /obj/item/gripper/no_use/organ(src) src.modules += new /obj/item/gripper/medical(src) src.modules += new /obj/item/shockpaddles/robot(src) -// CHOMPedit start: Combining Surgeon and Crisis. + //Surgeon Modules below src.modules += new /obj/item/autopsy_scanner(src) src.modules += new /obj/item/surgical/scalpel/cyborg(src) src.modules += new /obj/item/surgical/hemostat/cyborg(src) @@ -352,26 +358,24 @@ var/global/list/robot_modules = list( src.modules += new /obj/item/surgical/circular_saw/cyborg(src) src.modules += new /obj/item/surgical/surgicaldrill/cyborg(src) src.modules += new /obj/item/surgical/bioregen/cyborg(src) -// CHOMPedit end: Combining Surgeon and Crisis. + //Surgeon Modules End src.modules += new /obj/item/inflatable_dispenser/robot(src) - src.modules += new /obj/item/holosign_creator/medical(src) //CHOMPAdd + src.modules += new /obj/item/holosign_creator/medical(src) //Re-enable after Guti's PR. var/obj/item/reagent_containers/spray/PS = new /obj/item/reagent_containers/spray(src) src.emag += PS PS.reagents.add_reagent(REAGENT_ID_PACID, 250) PS.name = "Polyacid spray" - var/datum/matter_synth/medicine = new /datum/matter_synth/medicine(30000) // CHOMPedit: Increased capacity. + var/datum/matter_synth/medicine = new /datum/matter_synth/medicine(30000) synths += medicine - var/obj/item/stack/medical/advanced/clotting/C = new (src) // CHOMPedit: Clotting kit from medhound. + var/obj/item/stack/medical/advanced/clotting/C = new (src) var/obj/item/stack/medical/advanced/ointment/O = new /obj/item/stack/medical/advanced/ointment(src) var/obj/item/stack/medical/advanced/bruise_pack/B = new /obj/item/stack/medical/advanced/bruise_pack(src) var/obj/item/stack/medical/splint/S = new /obj/item/stack/medical/splint(src) -// CHOMPedit start: Clotting kit from medhound. C.uses_charge = 1 C.charge_costs = list(5000) C.synths = list(medicine) -// CHOMPedit end: Clotting kit from medhound. O.uses_charge = 1 O.charge_costs = list(1000) O.synths = list(medicine) @@ -384,7 +388,7 @@ var/global/list/robot_modules = list( src.modules += O src.modules += B src.modules += S - src.modules += C //CHOMPEdit - AND ACTUALLY ADD IT TO THE MODULES LIST + src.modules += C src.modules += new /obj/item/dogborg/sleeper(src) src.emag += new /obj/item/dogborg/pounce(src) //Pounce @@ -697,6 +701,42 @@ var/global/list/robot_modules = list( if(PB) PB.reagents.add_reagent(REAGENT_ID_BEER2, 2 * amount) +/obj/item/robot_module/robot/clerical/honkborg + name = "clown robot module" + channels = list("Service" = 1, + "Entertainment" = 1) + pto_type = PTO_CIVILIAN + can_be_pushed = 0 + +/obj/item/robot_module/robot/clerical/honkborg/create_equipment(var/mob/living/silicon/robot/R) + src.modules += new /obj/item/gripper/service(src) + src.modules += new /obj/item/reagent_containers/glass/bucket(src) + src.modules += new /obj/item/material/minihoe(src) + src.modules += new /obj/item/analyzer/plant_analyzer(src) + src.modules += new /obj/item/storage/bag/serviceborg(src) + src.modules += new /obj/item/robot_harvester(src) + src.modules += new /obj/item/multitool(src) + src.modules += new /obj/item/dogborg/pounce(src) + src.modules += new /obj/item/bikehorn(src) + src.modules += new /obj/item/gun/launcher/confetti_cannon/robot(src) + + var/obj/item/rsf/M = new /obj/item/rsf(src) + M.stored_matter = 30 + src.modules += M + + src.modules += new /obj/item/reagent_containers/dropper/industrial(src) + + var/obj/item/flame/lighter/zippo/L = new /obj/item/flame/lighter/zippo(src) + L.lit = 1 + src.modules += L + + src.modules += new /obj/item/tray/robotray(src) + src.modules += new /obj/item/reagent_containers/borghypo/service(src) + + var/obj/item/dogborg/sleeper/compactor/honkborg/B = new /obj/item/dogborg/sleeper/compactor/honkborg(src) + src.modules += B + ..() + /obj/item/robot_module/robot/clerical/general name = "clerical robot module" diff --git a/code/modules/mob/living/silicon/robot/sprites/_sprite_datum.dm b/code/modules/mob/living/silicon/robot/sprites/_sprite_datum.dm index c12d44dcb4..ea5ff2f53b 100644 --- a/code/modules/mob/living/silicon/robot/sprites/_sprite_datum.dm +++ b/code/modules/mob/living/silicon/robot/sprites/_sprite_datum.dm @@ -10,11 +10,11 @@ var/has_eye_sprites = TRUE var/has_eye_light_sprites = FALSE - var/has_robotdecal_sprites = FALSE var/has_custom_open_sprites = FALSE var/has_vore_belly_sprites = FALSE var/has_vore_belly_resting_sprites = FALSE var/has_sleeper_light_indicator = FALSE //Moved here because there's no reason lights should be limited to just medical borgs. Or redefined every time they ARE used. + var/has_vore_struggle_sprite = FALSE var/max_belly_size = 1 //If larger bellies are made, set this to the value of the largest size var/has_rest_sprites = FALSE var/list/rest_sprite_options @@ -32,6 +32,7 @@ var/whitelist_charname var/list/belly_light_list = list() // Support multiple sleepers with r/g light "sleeper" var/list/belly_capacity_list = list() //Support multiple bellies with multiple sizes, default: "sleeper" = 1 + var/list/sprite_decals = list() // Allow extra decals /// Determines if the borg has the proper flags to show an overlay. /datum/robot_sprite/proc/sprite_flag_check(var/flag_to_check) @@ -132,11 +133,18 @@ else return -/datum/robot_sprite/proc/get_robotdecal_overlay(var/mob/living/silicon/robot/ourborg) - if(!(ourborg.resting && has_robotdecal_sprites)) - return "[sprite_icon_state]-decals" - else - return +/datum/robot_sprite/proc/get_robotdecal_overlay(var/mob/living/silicon/robot/ourborg, var/type) + if(LAZYLEN(sprite_decals)) + if(!ourborg.resting) + return "[sprite_icon_state]-[type]" + switch(ourborg.rest_style) + if("Sit") + return "[sprite_icon_state]-[type]-sit" + if("Bellyup") + return "[sprite_icon_state]-[type]-bellyup" + else + return "[sprite_icon_state]-[type]-rest" + /datum/robot_sprite/proc/get_rest_sprite(var/mob/living/silicon/robot/ourborg) if(!(ourborg.rest_style in rest_sprite_options)) diff --git a/code/modules/mob/living/silicon/robot/sprites/catborgs.dm b/code/modules/mob/living/silicon/robot/sprites/catborgs.dm index 5cbd725ab8..9a07ca6851 100644 --- a/code/modules/mob/living/silicon/robot/sprites/catborgs.dm +++ b/code/modules/mob/living/silicon/robot/sprites/catborgs.dm @@ -42,9 +42,10 @@ has_eye_light_sprites = TRUE has_sleeper_light_indicator = FALSE has_vore_belly_resting_sprites = TRUE + has_dead_sprite_overlay = FALSE sprite_icon = 'icons/mob/robot/catborgs/departmental/small/kittyborg_cargo.dmi' rest_sprite_options = list("Default", "Bellyup", "Sit") - belly_capacity_list = list("sleeper" = 2, "throat" =2) + belly_capacity_list = list("sleeper" = 2) sprite_flags = ROBOT_HAS_SHIELD_SPRITE | ROBOT_HAS_GUN_SPRITE /// Engineering @@ -56,6 +57,7 @@ has_eye_light_sprites = TRUE has_sleeper_light_indicator = FALSE has_vore_belly_resting_sprites = TRUE + has_dead_sprite_overlay = FALSE sprite_icon = 'icons/mob/robot/catborgs/departmental/small/kittyborg_engi.dmi' rest_sprite_options = list("Default", "Bellyup", "Sit") belly_capacity_list = list("sleeper" = 2) @@ -71,6 +73,7 @@ has_eye_light_sprites = TRUE has_sleeper_light_indicator = FALSE has_vore_belly_resting_sprites = TRUE + has_dead_sprite_overlay = FALSE sprite_icon = 'icons/mob/robot/catborgs/departmental/small/kittyborg_jani.dmi' rest_sprite_options = list("Default", "Bellyup", "Sit") belly_capacity_list = list("sleeper" = 2) @@ -85,6 +88,7 @@ has_eye_light_sprites = TRUE has_sleeper_light_indicator = FALSE has_vore_belly_resting_sprites = TRUE + has_dead_sprite_overlay = FALSE sprite_icon = 'icons/mob/robot/catborgs/departmental/small/kittyborg_medicat.dmi' rest_sprite_options = list("Default", "Bellyup", "Sit") belly_capacity_list = list("sleeper" = 2) @@ -100,6 +104,7 @@ has_eye_light_sprites = TRUE has_sleeper_light_indicator = FALSE has_vore_belly_resting_sprites = TRUE + has_dead_sprite_overlay = FALSE sprite_icon = 'icons/mob/robot/catborgs/departmental/small/kittyborg_sci.dmi' rest_sprite_options = list("Default", "Bellyup", "Sit") belly_capacity_list = list("sleeper" = 2) @@ -114,6 +119,7 @@ has_eye_light_sprites = TRUE has_sleeper_light_indicator = FALSE has_vore_belly_resting_sprites = TRUE + has_dead_sprite_overlay = FALSE sprite_icon = 'icons/mob/robot/catborgs/departmental/small/kittyborg_sec.dmi' rest_sprite_options = list("Default", "Bellyup", "Sit") belly_capacity_list = list("sleeper" = 2) @@ -128,6 +134,7 @@ has_eye_light_sprites = TRUE has_sleeper_light_indicator = FALSE has_vore_belly_resting_sprites = TRUE + has_dead_sprite_overlay = FALSE sprite_icon = 'icons/mob/robot/catborgs/departmental/small/kittyborg_service.dmi' rest_sprite_options = list("Default", "Bellyup", "Sit") belly_capacity_list = list("sleeper" = 2) @@ -228,7 +235,6 @@ has_eye_light_sprites = TRUE has_sleeper_light_indicator = FALSE has_vore_belly_resting_sprites = TRUE - has_robotdecal_sprites = TRUE sprite_icon = 'icons/mob/robot/catborgs/departmental/large/catborg_service.dmi' rest_sprite_options = list("Default", "Bellyup", "Sit") belly_capacity_list = list("sleeper" = 2, "throat" =2) @@ -252,7 +258,7 @@ has_eye_light_sprites = TRUE has_sleeper_light_indicator = FALSE has_vore_belly_resting_sprites = TRUE - has_robotdecal_sprites = TRUE + sprite_decals = list("decals") is_whitelisted = FALSE //Putting this here as a declaration that it is NOT whitelisted. // whitelist_ckey = "cameron653" //The owner of the character. // There is only one version of this borg, so it gets all the departments. diff --git a/code/modules/mob/living/silicon/robot/sprites/civilian.dm b/code/modules/mob/living/silicon/robot/sprites/civilian.dm index a8830b1905..8d03c22312 100644 --- a/code/modules/mob/living/silicon/robot/sprites/civilian.dm +++ b/code/modules/mob/living/silicon/robot/sprites/civilian.dm @@ -68,13 +68,15 @@ sprite_icon_state = "noble" has_custom_open_sprites = TRUE + /datum/robot_sprite/civilian/worm name = "W02M" - sprite_icon_state = "worm-service" //CHOMPEdit - has_custom_open_sprites = TRUE - sprite_icon = 'modular_chomp/icons/mob/wormborg.dmi' //CHOMPEdit - has_vore_belly_sprites = TRUE //CHOMPEdit - has_dead_sprite = TRUE //CHOMPEdit + sprite_icon_state = "worm-service" + sprite_icon = 'icons/mob/robot/wormborg.dmi' + has_dead_sprite_overlay = FALSE + has_custom_open_sprites = FALSE + has_vore_belly_sprites = TRUE + has_dead_sprite = TRUE /datum/robot_sprite/civilian/uptall name = "Feminine Humanoid" @@ -311,23 +313,30 @@ has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Bellyup") -/datum/robot_sprite/dogborg/tall/service/dullahanv3 - sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi' - //named v3 to avoid conflicts with downstream +/datum/robot_sprite/dogborg/tall/service/dullahan + name = "Dullahan" + sprite_icon_state = "dullahanserv" + sprite_icon = 'icons/mob/robot/dullahan/v1/dullahan_serv.dmi' + rest_sprite_options = list("Default", "Sit") + has_eye_light_sprites = TRUE + has_vore_belly_sprites = TRUE + pixel_x = 0 -/datum/robot_sprite/dogborg/tall/service/dullahanv3/basic - name = "Dullahan service v3" +/datum/robot_sprite/dogborg/tall/service/dullahan/servicealt + name = "Dullahan v2" + sprite_icon_state = "dullahanserv_alt" + +/datum/robot_sprite/dogborg/tall/service/dullahan/servicealt2 + name = "Dullahan v3" + sprite_icon = 'icons/mob/robot/dullahan/v3/service.dmi' sprite_icon_state = "dullahanservice" - has_vore_belly_sprites = TRUE - has_robotdecal_sprites = TRUE - rest_sprite_options = list("Default", "sit") + sprite_decals = list("decals") -/datum/robot_sprite/dogborg/tall/service/dullahanv3/barista - name = "Dullahan matcha v3" +/datum/robot_sprite/dogborg/tall/service/dullahan/servicealt3 + name = "Dullahan v4 matcha" + sprite_icon = 'icons/mob/robot/dullahan/v3/barista.dmi' sprite_icon_state = "dullahanbarista" - has_vore_belly_sprites = TRUE - has_robotdecal_sprites = TRUE - rest_sprite_options = list("Default", "sit") + sprite_decals = list("decals") // Clerical @@ -404,3 +413,76 @@ // None yet */ + +/datum/robot_sprite/dogborg/clown + module_type = "Clown" + sprite_icon = 'icons/mob/robot/widerobot/widerobot.dmi' + +/datum/robot_sprite/dogborg/clown/vale + name = "Honkhound V2" + sprite_icon_state = "honkborg" + has_eye_light_sprites = TRUE + +/datum/robot_sprite/dogborg/tall/clown + module_type = "Clown" + sprite_icon = 'icons/mob/robot/tallrobot/tallrobots.dmi' + pixel_x = 0 + +/datum/robot_sprite/dogborg/tall/clown/k4t + name = "K4T" + sprite_icon_state = "k4tclown" + has_eye_light_sprites = TRUE + has_custom_open_sprites = FALSE + has_vore_belly_sprites = FALSE + rest_sprite_options = list("Default", "Bellyup") + +/datum/robot_sprite/dogborg/tall/clown/dullahan/clown + name = "Dullahan Clown" + sprite_icon = 'icons/mob/robot/dullahan/v1/dullahan_clown.dmi' + sprite_icon_state = "dullahanclown" + has_eye_light_sprites = TRUE + has_vore_belly_sprites = TRUE + rest_sprite_options = list("Default", "Sit") + pixel_x = 0 + +/datum/robot_sprite/dogborg/clown/stoat + name = "ST-04t" + sprite_icon = 'icons/mob/robot/stoatborg.dmi' + sprite_icon_state = "stoatclown" + has_eye_light_sprites = TRUE + has_vore_belly_resting_sprites = TRUE + has_dead_sprite_overlay = FALSE + +/datum/robot_sprite/dogborg/service/valech + name = "ServicehoundV2 - Alt" + sprite_icon = 'icons/mob/robot/widerobot/widerobot.dmi' + sprite_icon_state = "servborg" + rest_sprite_options = list("Default") + has_eye_light_sprites = TRUE + +/datum/robot_sprite/dogborg/service/cat + name = "Cat" + sprite_icon = 'icons/mob/robot/catborg_variant.dmi' + sprite_icon_state = "vixserv" + has_vore_belly_resting_sprites = TRUE + has_eye_light_sprites = TRUE + has_dead_sprite_overlay = FALSE + +/datum/robot_sprite/dogborg/tall/service/mekaserve_alt + sprite_icon = 'icons/mob/robot/tallrobot/tallrobots.dmi' + name = "MEKA Alt" + pixel_x = 0 + sprite_icon_state = "mekaserve_alt" + rest_sprite_options = list("Default", "Sit") + + +/datum/robot_sprite/dogborg/service/smolraptorservicesprite + sprite_icon = 'icons/mob/robot/smallraptors/smolraptor_serv.dmi' + +/datum/robot_sprite/dogborg/service/smolraptorservicesprite/smolraptorserv + name = "Small Raptor" + sprite_icon_state = "smolraptor" + has_dead_sprite_overlay = FALSE + has_eye_light_sprites = TRUE + has_vore_belly_sprites = TRUE + rest_sprite_options = list("Default", "Sit") diff --git a/code/modules/mob/living/silicon/robot/sprites/combat.dm b/code/modules/mob/living/silicon/robot/sprites/combat.dm index 15e5070276..1cce881827 100644 --- a/code/modules/mob/living/silicon/robot/sprites/combat.dm +++ b/code/modules/mob/living/silicon/robot/sprites/combat.dm @@ -49,12 +49,15 @@ /datum/robot_sprite/combat/worm name = "W02M" - sprite_icon_state = "worm-combat" //CHOMPEdit + sprite_icon_state = "worm-combat" has_custom_open_sprites = TRUE sprite_flags = ROBOT_HAS_SHIELD_SPRITE - sprite_icon = 'modular_chomp/icons/mob/wormborg.dmi' //CHOMPEdit - has_vore_belly_sprites = TRUE //CHOMPEdit - has_dead_sprite = TRUE //CHOMPEdit + sprite_icon = 'icons/mob/robot/wormborg.dmi' + has_dead_sprite_overlay = FALSE + has_custom_open_sprites = FALSE + has_vore_belly_sprites = TRUE + has_dead_sprite = TRUE + /datum/robot_sprite/combat/uptall name = "Feminine Humanoid" @@ -150,3 +153,59 @@ return else return ..() + +/datum/robot_sprite/dogborg/tall/combat/tall + name = "MEKA" + sprite_icon_state = "mekasyndi" + module_type = "Combat" + sprite_icon = 'icons/mob/robot/tallrobot/tallrobots.dmi' + has_vore_belly_sprites = TRUE + pixel_x = 0 + +/datum/robot_sprite/dogborg/tall/combat/tall/mmeka + name = "NIKO" + sprite_icon_state = "mmekasyndi" + has_vore_belly_sprites = TRUE + +/datum/robot_sprite/dogborg/tall/combat/tall/fmeka + name = "NIKA" + sprite_icon_state = "fmekasyndi" + has_vore_belly_sprites = TRUE + +/datum/robot_sprite/dogborg/tall/combat/tall/k4t + name = "K4T" + sprite_icon_state = "k4tsyndi" + has_vore_belly_sprites = FALSE + +//Using our own category wide here not to interfere with upstream in case they add wide sprites under just dogborg. +/datum/robot_sprite/dogborg/wide/combat + module_type = "Combat" + has_custom_equipment_sprites = TRUE + has_eye_sprites = FALSE + +/datum/robot_sprite/dogborg/wide/combat/blade/do_equipment_glamour(var/obj/item/robot_module/module) + if(!has_custom_equipment_sprites) + return + + ..() + + var/obj/item/melee/robotic/blade/CBB = locate() in module.modules + if(CBB) + CBB.name = "combat saw" + CBB.desc = "A high frequency blade attached to the end of a cyborg's tail. It appears to be extremely sharp." + var/obj/item/melee/robotic/borg_combat_shocker/BCS = locate() in module.modules + if(BCS) + BCS.name = "combat jaws" + BCS.desc = "Shockingly chompy!" + BCS.icon_state = "ertjaws" + BCS.hitsound = 'sound/weapons/bite.ogg' + BCS.attack_verb = list("chomped", "bit", "ripped", "mauled", "enforced") + BCS.dogborg = TRUE + +/datum/robot_sprite/dogborg/wide/combat/blade + sprite_icon = 'icons/mob/robot/widerobot/widerobot.dmi' + name = "Blade" + sprite_icon_state = "blade" + sprite_hud_icon_state = "ert" + rest_sprite_options = list() + sprite_flags = ROBOT_HAS_LASER_SPRITE | ROBOT_HAS_DISABLER_SPRITE | ROBOT_HAS_DAGGER_SPRITE diff --git a/code/modules/mob/living/silicon/robot/sprites/command.dm b/code/modules/mob/living/silicon/robot/sprites/command.dm new file mode 100644 index 0000000000..8936a1b3eb --- /dev/null +++ b/code/modules/mob/living/silicon/robot/sprites/command.dm @@ -0,0 +1,113 @@ +/obj/item/robot_module/robot/chound + languages = list( + LANGUAGE_SOL_COMMON = 1, + LANGUAGE_TRADEBAND = 1, + LANGUAGE_UNATHI = 1, + LANGUAGE_SIIK = 1, + LANGUAGE_SKRELLIAN = 1, + LANGUAGE_ROOTLOCAL = 0, + LANGUAGE_GUTTER = 0, + LANGUAGE_SCHECHI = 1, + LANGUAGE_EAL = 1, + LANGUAGE_SIGN = 0, + LANGUAGE_BIRDSONG = 1, + LANGUAGE_SAGARU = 1, + LANGUAGE_CANILUNZT = 1, + LANGUAGE_ECUREUILIAN= 1, + LANGUAGE_DAEMON = 1, + LANGUAGE_ENOCHIAN = 1, + LANGUAGE_DRUDAKAR = 1, + LANGUAGE_TAVAN = 1 + ) + +//Build our Module +/obj/item/robot_module/robot/chound + name = "command robot module" + channels = list( + "Medical" = 1, + "Engineering" = 1, + "Security" = 1, + "Service" = 1, + "Supply" = 0, + "Science" = 1, + "Command" = 1, + "Explorer" = 0 + ) + pto_type = PTO_CIVILIAN + can_be_pushed = 0 + +/obj/item/robot_module/robot/chound/create_equipment(var/mob/living/silicon/robot/R) + src.modules += new /obj/item/pen/robopen(src) + src.modules += new /obj/item/form_printer(src) + src.modules += new /obj/item/gripper/paperwork(src) + src.modules += new /obj/item/hand_labeler(src) + src.modules += new /obj/item/stamp(src) + src.modules += new /obj/item/stamp/denied(src) + src.modules += new /obj/item/taskmanager(src) //Needs to be ported over. //CHOMPEDIT ENABLE + src.emag += new /obj/item/stamp/chameleon(src) + src.emag += new /obj/item/pen/chameleon(src) + + src.modules += new /obj/item/dogborg/sleeper/command(src) + src.emag += new /obj/item/dogborg/pounce(src) + ..() + +/datum/robot_sprite/dogborg/command + name = "Commandhound V2" + sprite_icon_state = "kcom" + has_eye_light_sprites = TRUE + module_type = "Command" + sprite_icon = 'icons/mob/robot/widerobot/widerobot.dmi' + +/datum/robot_sprite/dogborg/command/borgi + name = "Borgi" + sprite_icon_state = "borgi" + has_eye_light_sprites = TRUE + +/datum/robot_sprite/dogborg/tall/command + module_type = "Command" + sprite_icon = 'icons/mob/robot/tallrobot/tallrobots.dmi' + pixel_x = 0 + +/datum/robot_sprite/dogborg/raptor/command + module_type = "Command" + sprite_icon = 'icons/mob/robot/raptor.dmi' + +/datum/robot_sprite/dogborg/raptor/command/raptor + name = "Raptor" + sprite_icon_state = "chraptor" + has_dead_sprite_overlay = FALSE + has_custom_equipment_sprites = TRUE + rest_sprite_options = list("Default", "Bellyup") + +/datum/robot_sprite/dogborg/tall/command/meka + name = "MEKA" + sprite_icon_state = "mekaunity" + has_eye_light_sprites = TRUE + has_custom_open_sprites = FALSE + has_vore_belly_sprites = TRUE + rest_sprite_options = list("Default", "Sit") + +/datum/robot_sprite/dogborg/tall/command/mmeka + name = "NIKO" + sprite_icon_state = "mmekaunity" + has_eye_light_sprites = TRUE + has_custom_open_sprites = FALSE + has_vore_belly_sprites = TRUE + rest_sprite_options = list("Default", "Sit") + +/datum/robot_sprite/dogborg/tall/command/fmeka + name = "NIKA" + sprite_icon_state = "fmekaunity" + has_eye_light_sprites = TRUE + has_custom_open_sprites = FALSE + has_vore_belly_sprites = TRUE + rest_sprite_options = list("Default", "Sit") + +/datum/robot_sprite/dogborg/command/smolraptorcommand + name = "Small Raptor" + sprite_icon = 'icons/mob/robot/smallraptors/smolraptor_cc.dmi' + sprite_icon_state = "smolraptor" + has_dead_sprite_overlay = FALSE + has_eye_light_sprites = TRUE + has_vore_belly_sprites = TRUE + rest_sprite_options = list("Default", "Sit") diff --git a/code/modules/mob/living/silicon/robot/sprites/engineering.dm b/code/modules/mob/living/silicon/robot/sprites/engineering.dm index 52645bda2c..c09910ca99 100644 --- a/code/modules/mob/living/silicon/robot/sprites/engineering.dm +++ b/code/modules/mob/living/silicon/robot/sprites/engineering.dm @@ -105,13 +105,16 @@ sprite_icon_state = "zoomba" has_dead_sprite = TRUE + /datum/robot_sprite/engineering/worm name = "W02M" - sprite_icon_state = "worm-engineering" //CHOMPEdit - has_custom_open_sprites = TRUE - sprite_icon = 'modular_chomp/icons/mob/wormborg.dmi' //CHOMPEdit - has_vore_belly_sprites = TRUE //CHOMPEdit - has_dead_sprite = TRUE //CHOMPEdit + sprite_icon_state = "worm-engineering" + + sprite_icon = 'icons/mob/robot/wormborg.dmi' + has_dead_sprite_overlay = FALSE + has_custom_open_sprites = FALSE + has_vore_belly_sprites = TRUE + has_dead_sprite = TRUE /datum/robot_sprite/engineering/uptall name = "Feminine Humanoid" @@ -217,13 +220,38 @@ has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Bellyup") -/datum/robot_sprite/dogborg/tall/engineering/dullahanv3 - sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi' - //named v3 to avoid conflicts with downstream - -/datum/robot_sprite/dogborg/tall/engineering/dullahanv3/engineerdully - name = "Dullahan engineer v3" - sprite_icon_state = "dullahanengineer" +/datum/robot_sprite/dogborg/tall/engineering/dullahan + name = "Dullahan v1" + sprite_icon_state = "dullahaneng" + sprite_icon = 'icons/mob/robot/dullahan/v1/dullahan_eng.dmi' + rest_sprite_options = list("Default", "Sit") + has_eye_light_sprites = TRUE has_vore_belly_sprites = TRUE - has_robotdecal_sprites = TRUE - rest_sprite_options = list("Default", "sit") + pixel_x = 0 + +/datum/robot_sprite/dogborg/tall/engineering/dullahan/engineerv2 + name = "Dullahan v2" + sprite_icon_state = "dullahaneng_alt" + +/datum/robot_sprite/dogborg/tall/engineering/dullahan/engineerv3 + name = "Dullahan v3" + sprite_icon = 'icons/mob/robot/dullahan/v3/engineer.dmi' + sprite_icon_state = "dullahanengineer" + sprite_decals = list("decals") + +/datum/robot_sprite/dogborg/engineering/cat + name = "Cat" + sprite_icon = 'icons/mob/robot/catborg_variant.dmi' + sprite_icon_state = "vixengi" + has_eye_light_sprites = TRUE + has_vore_belly_resting_sprites = TRUE + has_dead_sprite_overlay = FALSE + +/datum/robot_sprite/dogborg/engineering/smolraptorengineeringsprite + sprite_icon = 'icons/mob/robot/smallraptors/smolraptor_eng.dmi' + name = "Small Raptor" + sprite_icon_state = "smolraptor" + has_dead_sprite_overlay = FALSE + has_eye_light_sprites = TRUE + has_vore_belly_sprites = TRUE + rest_sprite_options = list("Default", "Sit") diff --git a/code/modules/mob/living/silicon/robot/sprites/fluff.dm b/code/modules/mob/living/silicon/robot/sprites/fluff.dm index 4e83dc4e40..c97676b204 100644 --- a/code/modules/mob/living/silicon/robot/sprites/fluff.dm +++ b/code/modules/mob/living/silicon/robot/sprites/fluff.dm @@ -38,7 +38,7 @@ sprite_hud_icon_state = "medihound" /datum/robot_sprite/fluff/argonne/surgical - module_type = "Surgeon" + module_type = "Crisis" sprite_icon_state = "argonne-russ-surg" sprite_hud_icon_state = "medihound" diff --git a/code/modules/mob/living/silicon/robot/sprites/janitor.dm b/code/modules/mob/living/silicon/robot/sprites/janitor.dm index 9229bfe1de..524c450c4f 100644 --- a/code/modules/mob/living/silicon/robot/sprites/janitor.dm +++ b/code/modules/mob/living/silicon/robot/sprites/janitor.dm @@ -96,11 +96,13 @@ /datum/robot_sprite/janitor/worm name = "W02M" - sprite_icon_state = "worm-janitor" //CHOMPEdit - has_custom_open_sprites = TRUE - sprite_icon = 'modular_chomp/icons/mob/wormborg.dmi' //CHOMPEdit - has_vore_belly_sprites = TRUE //CHOMPEdit - has_dead_sprite = TRUE //CHOMPEdit + sprite_icon_state = "worm-janitor" + sprite_icon = 'icons/mob/robot/wormborg.dmi' + has_dead_sprite_overlay = FALSE + has_custom_open_sprites = FALSE + has_vore_belly_sprites = TRUE + has_dead_sprite = TRUE + /datum/robot_sprite/janitor/uptall name = "Feminine Humanoid" @@ -202,13 +204,48 @@ has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Bellyup") -/datum/robot_sprite/dogborg/tall/janitor/dullahanv3 - sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi' - //named v3 to avoid conflicts with downstream - -/datum/robot_sprite/dogborg/tall/janitor/dullahanv3/janitordully - name = "Dullahan janitor v3" - sprite_icon_state = "dullahanjanitor" +/datum/robot_sprite/dogborg/tall/janitor/dullahan + name = "Dullahan v1" + sprite_icon_state = "dullahanjani" + module_type = "Janitor" + sprite_icon = 'icons/mob/robot/dullahan/v1/dullahan_jani.dmi' + has_eye_light_sprites = TRUE has_vore_belly_sprites = TRUE - has_robotdecal_sprites = TRUE - rest_sprite_options = list("Default", "sit") + rest_sprite_options = list("Default", "Sit") + pixel_x = 0 + +/datum/robot_sprite/dogborg/tall/janitor/dullahan/janitoralt + name = "Dullahan v2" + sprite_icon_state = "dullahanjani_alt" + +/datum/robot_sprite/dogborg/tall/janitor/dullahan/janitoralt2 + name = "Dullahan v3" + sprite_icon = 'icons/mob/robot/dullahan/v3/janitor.dmi' + sprite_icon_state = "dullahanjanitor" + sprite_decals = list("decals") + +/datum/robot_sprite/dogborg/janitor/cat + name = "Cat" + sprite_icon = 'icons/mob/robot/catborg_variant.dmi' + sprite_icon_state = "vixjani" + has_vore_belly_resting_sprites = TRUE + has_eye_light_sprites = TRUE + has_dead_sprite_overlay = FALSE + +/datum/robot_sprite/dogborg/smolraptorjanitorsprite + sprite_icon = 'icons/mob/robot/smallraptors/smolraptor_jani.dmi' + module_type = "Janitor" + name = "Small Raptor" + sprite_icon_state = "smolraptor" + has_dead_sprite_overlay = FALSE + has_eye_light_sprites = TRUE + has_vore_belly_sprites = TRUE + rest_sprite_options = list("Default", "Sit") + +/datum/robot_sprite/dogborg/janitor/possum + name = "0-P0SSm" + sprite_icon = 'icons/mob/robot/possumborg.dmi' + sprite_icon_state = "possjani" + //has_vore_belly_resting_sprites = TRUE + has_eye_light_sprites = TRUE + has_dead_sprite_overlay = FALSE diff --git a/code/modules/mob/living/silicon/robot/sprites/medical.dm b/code/modules/mob/living/silicon/robot/sprites/medical.dm index 0f3df3e82a..a5eca73dc8 100644 --- a/code/modules/mob/living/silicon/robot/sprites/medical.dm +++ b/code/modules/mob/living/silicon/robot/sprites/medical.dm @@ -73,13 +73,14 @@ sprite_icon_state = "noble" has_custom_open_sprites = TRUE -/datum/robot_sprite/medical/worm - name = "W02M - Crisis" //CHOMPEdit - sprite_icon_state = "worm-crisis" //CHOMPEdit - has_custom_open_sprites = TRUE - sprite_icon = 'modular_chomp/icons/mob/wormborg.dmi' //CHOMPEdit - has_vore_belly_sprites = TRUE //CHOMPEdit - has_dead_sprite = TRUE //CHOMPEdit +/datum/robot_sprite/surgical/worm + name = "W02M - Surgical" + sprite_icon_state = "worm-surgeon" + sprite_icon = 'icons/mob/robot/wormborg.dmi' + has_dead_sprite_overlay = FALSE + has_custom_open_sprites = FALSE + has_vore_belly_sprites = TRUE + has_dead_sprite = TRUE // Wide/dogborg sprites /* @@ -140,76 +141,77 @@ has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Bellyup") -/datum/robot_sprite/dogborg/tall/medical/dullahanv3 - sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi' - //named v3 to avoid conflicts with downstream - -/datum/robot_sprite/dogborg/tall/medical/dullahanv3/medicaldully - name = "Dullahan medical v3" - sprite_icon_state = "dullahanmedical" +/datum/robot_sprite/dogborg/tall/crisis/dullahan + name = "Dullahan" + sprite_icon_state = "dullahanmed" + module_type = "Crisis" + sprite_icon = 'icons/mob/robot/dullahan/v1/dullahan_med.dmi' + has_eye_light_sprites = TRUE has_vore_belly_sprites = TRUE - has_robotdecal_sprites = TRUE - rest_sprite_options = list("Default", "sit") + rest_sprite_options = list("Default", "Sit") + pixel_x = 0 + +/datum/robot_sprite/dogborg/tall/crisis/dullahan/crisisalt + name = "Dullahan v2" + sprite_icon_state = "dullahanmed_alt" + +/datum/robot_sprite/dogborg/tall/medical/dullahan/crisisalt2 + name = "Dullahan medical v3" + sprite_decals = list("decals") + sprite_icon = 'icons/mob/robot/dullahan/v3/medical.dmi' + sprite_icon_state = "dullahanmedical" // Surgeon // Regular sprites /datum/robot_sprite/surgical - module_type = "Surgeon" + module_type = "Crisis" sprite_icon = 'icons/mob/robot/surgical.dmi' /datum/robot_sprite/surgical/toiletbot - name = "Telemachus" + name = "Telemachus - Surgical" sprite_icon_state = "toiletbot" /datum/robot_sprite/surgical/sleek - name = "WTOperator" + name = "WTOperator - Surgical" sprite_icon_state = "sleek" /datum/robot_sprite/surgical/drone - name = "AG Model" + name = "AG Model - Surgical" sprite_icon_state = "drone" has_custom_open_sprites = TRUE /datum/robot_sprite/surgical/glitterfly - name = "Pyralis" + name = "Pyralis - Surgical" sprite_icon_state = "glitterfly" has_custom_open_sprites = TRUE /datum/robot_sprite/surgical/decapod - name = "Decapod" + name = "Decapod - Surgical" sprite_icon_state = "decapod" has_custom_open_sprites = TRUE /datum/robot_sprite/surgical/pneuma - name = "Pneuma" + name = "Pneum - Surgical" sprite_icon_state = "pneuma" has_custom_open_sprites = TRUE /datum/robot_sprite/surgical/zoomba - name = "ZOOM-BA" + name = "ZOOM-BA - Surgical" sprite_icon_state = "zoomba" has_dead_sprite = TRUE /datum/robot_sprite/surgical/uptall - name = "Feminine Humanoid" + name = "Feminine Humanoid - Surgical" sprite_icon_state = "uptall" // Wide/dogborg sprites /datum/robot_sprite/dogborg/surgical - module_type = "Surgeon" + module_type = "Crisis" sprite_icon = 'icons/mob/robot/surgical_wide.dmi' -/* //Handled by the normal belly code now. -/datum/robot_sprite/dogborg/surgical/get_belly_overlay(var/mob/living/silicon/robot/ourborg) - if(has_sleeper_light_indicator) - if(ourborg.sleeper_state == 2 && !(ourborg.vore_selected?.silicon_belly_overlay_preference == "Vorebelly")) return "[sprite_icon_state]-sleeper_g" - else return "[sprite_icon_state]-sleeper_r" - else - return ..() -*/ /datum/robot_sprite/dogborg/surgical/do_equipment_glamour(var/obj/item/robot_module/module) if(!has_custom_equipment_sprites) return @@ -232,7 +234,7 @@ has_sleeper_light_indicator = TRUE /datum/robot_sprite/dogborg/surgical/borgi - name = "Borgi" + name = "Borgi - Surgical" sprite_icon_state = "borgi" sprite_hud_icon_state = "medihound" has_eye_sprites = FALSE @@ -240,13 +242,13 @@ has_dead_sprite_overlay = FALSE /datum/robot_sprite/dogborg/surgical/drake - name = "Drake" + name = "Drake - Surgical" sprite_icon_state = "drake" // Tall sprites //CHOMPNote -- many of the lines in this is overriden in modular /datum/robot_sprite/dogborg/tall/surgical - module_type = "Surgeon" + module_type = "Crisis" sprite_icon = 'icons/mob/robot/surgical_large.dmi' /datum/robot_sprite/dogborg/tall/surgical/do_equipment_glamour(var/obj/item/robot_module/module) @@ -264,7 +266,7 @@ SP.attack_verb = list("batted", "pawed", "bopped", "whapped") /datum/robot_sprite/dogborg/tall/surgical/raptor - name = "Raptor V-4" + name = "Raptor V-4 - Surgical" sprite_icon_state = "raptor" has_custom_equipment_sprites = TRUE rest_sprite_options = list("Default", "Bellyup") @@ -279,11 +281,11 @@ sprite_icon = 'icons/mob/robot/crisis.dmi' /datum/robot_sprite/crisis/toiletbot - name = "Telemachus" + name = "Telemachus - Crisis" sprite_icon_state = "toiletbot" /datum/robot_sprite/crisis/sleek - name = "WTOperator" + name = "WTOperator - Crisis" sprite_icon_state = "sleek" /datum/robot_sprite/crisis/drone @@ -297,27 +299,27 @@ has_custom_open_sprites = TRUE /datum/robot_sprite/crisis/glitterfly - name = "Pyralis" + name = "Pyralis - Crisis" sprite_icon_state = "glitterfly" has_custom_open_sprites = TRUE /datum/robot_sprite/crisis/decapod - name = "Decapod" + name = "Decapod - Crisis" sprite_icon_state = "decapod" has_custom_open_sprites = TRUE /datum/robot_sprite/crisis/pneuma - name = "Pneuma" + name = "Pneuma - Crisis" sprite_icon_state = "pneuma" has_custom_open_sprites = TRUE /datum/robot_sprite/crisis/zoomba - name = "ZOOM-BA" + name = "ZOOM-BA - Crisis" sprite_icon_state = "zoomba" has_dead_sprite = TRUE /datum/robot_sprite/crisis/uptall - name = "Feminine Humanoid" + name = "Feminine Humanoid - Crisis" sprite_icon_state = "uptall" // Wide/dogborg sprites @@ -370,7 +372,7 @@ has_sleeper_light_indicator = TRUE /datum/robot_sprite/dogborg/crisis/borgi - name = "Borgi" + name = "Borgi - Crisis" sprite_icon_state = "borgi" sprite_hud_icon_state = "medihound" has_eye_sprites = FALSE @@ -378,7 +380,7 @@ has_dead_sprite_overlay = FALSE /datum/robot_sprite/dogborg/crisis/drake - name = "Drake" + name = "Drake - Crisis" sprite_icon_state = "drake" // Tall sprites @@ -402,7 +404,49 @@ SP.attack_verb = list("batted", "pawed", "bopped", "whapped") /datum/robot_sprite/dogborg/tall/crisis/raptor - name = "Raptor V-4" + name = "Raptor V-4 - Crisis" sprite_icon_state = "raptor" has_custom_equipment_sprites = TRUE rest_sprite_options = list("Default", "Bellyup") + +/datum/robot_sprite/dogborg/crisis/cat + name = "Cat" + sprite_icon = 'icons/mob/robot/catborg_variant.dmi' + sprite_icon_state = "vixmed" + has_vore_belly_resting_sprites = TRUE + has_eye_light_sprites = TRUE + has_sleeper_light_indicator = TRUE + has_dead_sprite_overlay = FALSE + +//Medical into Crisis type merge +/datum/robot_sprite/surgical + module_type = "Crisis" + +/datum/robot_sprite/dogborg/surgical + module_type = "Crisis" + +//Added sprites +/datum/robot_sprite/dogborg/crisis/vale2 + name = "Mediborg Model V-3" + sprite_icon = 'icons/mob/robot/widerobot/widerobot.dmi' + sprite_icon_state = "vale2" + sprite_hud_icon_state = "medihound" + has_eye_light_sprites = TRUE + has_sleeper_light_indicator = TRUE + +/datum/robot_sprite/dogborg/crisis/cat + name = "Cat" + sprite_icon = 'icons/mob/robot/catborg_variant.dmi' + sprite_icon_state = "vixmed" + has_vore_belly_resting_sprites = TRUE + has_eye_light_sprites = TRUE + has_sleeper_light_indicator = TRUE + +/datum/robot_sprite/dogborg/crisis/smolraptor + sprite_icon = 'icons/mob/robot/smallraptors/smolraptor_med.dmi' + name = "Small Raptor" + sprite_icon_state = "smolraptor" + has_dead_sprite_overlay = FALSE + has_eye_light_sprites = TRUE + has_vore_belly_sprites = TRUE + rest_sprite_options = list("Default", "Sit") diff --git a/code/modules/mob/living/silicon/robot/sprites/mining.dm b/code/modules/mob/living/silicon/robot/sprites/mining.dm index 567ad1cac3..eaac7e2b02 100644 --- a/code/modules/mob/living/silicon/robot/sprites/mining.dm +++ b/code/modules/mob/living/silicon/robot/sprites/mining.dm @@ -95,11 +95,12 @@ /datum/robot_sprite/mining/worm name = "W02M" - sprite_icon_state = "worm-miner" //CHOMPEdit - has_custom_open_sprites = TRUE - sprite_icon = 'modular_chomp/icons/mob/wormborg.dmi' //CHOMPEdit - has_vore_belly_sprites = TRUE //CHOMPEdit - has_dead_sprite = TRUE //CHOMPEdit + sprite_icon_state = "worm-miner" + sprite_icon = 'icons/mob/robot/wormborg.dmi' + has_dead_sprite_overlay = FALSE + has_custom_open_sprites = FALSE + has_vore_belly_sprites = TRUE + has_dead_sprite = TRUE /datum/robot_sprite/mining/uptall name = "Feminine Humanoid" @@ -187,13 +188,108 @@ has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Bellyup") -/datum/robot_sprite/dogborg/tall/mining/dullahanv3 - sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi' - //named v3 to avoid conflicts with downstream - -/datum/robot_sprite/dogborg/tall/mining/dullahanv3/miningdully - name = "Dullahan mining v3" - sprite_icon_state = "dullahanmining" +/datum/robot_sprite/dogborg/tall/mining/dullahan + name = "Dullahan Mining unit" + sprite_icon_state = "dullahanmine" + sprite_icon = 'icons/mob/robot/dullahan/v1/dullahan_mine.dmi' has_vore_belly_sprites = TRUE - has_robotdecal_sprites = TRUE + has_custom_open_sprites = FALSE + has_eye_light_sprites = TRUE rest_sprite_options = list("Default", "sit") + pixel_x = 0 + +/datum/robot_sprite/dogborg/tall/mining/dullahan/mineralt + name = "Dullahan Mining unit v2" + sprite_icon_state = "dullahanmine_alt" + +/datum/robot_sprite/dogborg/tall/mining/dullahan/miningdully + name = "Dullahan mining v3" + sprite_icon = 'icons/mob/robot/dullahan/v3/mining.dmi' + sprite_icon_state = "dullahanmining" + sprite_decals = list("decals") + +/datum/robot_sprite/dogborg/tall/mining/dullahancarg + name = "Dullahan Cargo" + sprite_icon_state = "dullahancargo" + sprite_icon = 'icons/mob/robot/dullahan/v1/dullahan_cargo.dmi' + has_eye_light_sprites = TRUE + has_vore_belly_sprites = TRUE + rest_sprite_options = list("Default", "Sit") + pixel_x = 0 + +/datum/robot_sprite/dogborg/tall/mining/dullahancarg/cargoalt + name = "Dullahan Cargo v2" + sprite_icon_state = "dullahancargo_alt" + +/datum/robot_sprite/dogborg/mining/cat + name = "Cat - Mining" + sprite_icon = 'icons/mob/robot/catborg_variant.dmi' + sprite_icon_state = "vixmine" + has_vore_belly_resting_sprites = TRUE + has_eye_light_sprites = TRUE + has_dead_sprite_overlay = FALSE + +/datum/robot_sprite/dogborg/mining/catcargo + name = "Cat - Cargo" + sprite_icon = 'icons/mob/robot/catborg_variant.dmi' + sprite_icon_state = "vixcargo" + has_vore_belly_resting_sprites = TRUE + has_eye_light_sprites = TRUE + has_dead_sprite_overlay = FALSE + +/datum/robot_sprite/dogborg/tall/mining/tall + sprite_icon = 'icons/mob/robot/tallrobot/tallrobots.dmi' + pixel_x = 0 + +/datum/robot_sprite/dogborg/tall/mining/tall/mekacargo + name = "MEKA - Cargo" + sprite_icon_state = "mekacargo" + has_eye_light_sprites = TRUE + has_vore_belly_sprites = FALSE + rest_sprite_options = list("Default", "Sit") + +/datum/robot_sprite/dogborg/tall/mining/tall/mmekacargo + name = "NIKO - Cargo" + sprite_icon_state = "mmekacargo" + has_eye_light_sprites = TRUE + has_sleeper_light_indicator = TRUE + rest_sprite_options = list("Default", "Sit") + +/datum/robot_sprite/dogborg/tall/mining/tall/fmekacargo + name = "NIKA - Cargo" + sprite_icon_state = "fmekacargo" + has_eye_light_sprites = TRUE + has_sleeper_light_indicator = TRUE + rest_sprite_options = list("Default", "Sit") + +/datum/robot_sprite/dogborg/tall/mining/tall/k4tcargo + name = "K4T - Cargo" + sprite_icon_state = "k4tcargo" + has_eye_light_sprites = TRUE + has_vore_belly_sprites = FALSE + rest_sprite_options = list("Default", "Bellyup") + +/datum/robot_sprite/dogborg/tall/mining/tall/k4t_alt1cargo + name = "K4Talt - Cargo" + sprite_icon_state = "k4tcargo_alt1" + has_eye_light_sprites = TRUE + has_vore_belly_sprites = FALSE + rest_sprite_options = list("Default", "Bellyup") + +/datum/robot_sprite/dogborg/mining/smolraptorminer + sprite_icon = 'icons/mob/robot/smallraptors/smolraptor_min.dmi' + name = "Small Raptor Miner" + sprite_icon_state = "smolraptor" + has_eye_light_sprites = TRUE + has_vore_belly_sprites = TRUE + has_dead_sprite_overlay = FALSE + rest_sprite_options = list("Default", "Sit") + +/datum/robot_sprite/dogborg/mining/smolraptorcargo + sprite_icon = 'icons/mob/robot/smallraptors/smolraptor_car.dmi' + name = "Small Raptor Cargo" + sprite_icon_state = "smolraptor" + has_eye_light_sprites = TRUE + has_vore_belly_sprites = TRUE + has_dead_sprite_overlay = FALSE + rest_sprite_options = list("Default", "Sit") diff --git a/code/modules/mob/living/silicon/robot/sprites/science.dm b/code/modules/mob/living/silicon/robot/sprites/science.dm index 53ace5d0ca..b479434001 100644 --- a/code/modules/mob/living/silicon/robot/sprites/science.dm +++ b/code/modules/mob/living/silicon/robot/sprites/science.dm @@ -83,13 +83,15 @@ name = "XI-GUS" sprite_icon_state = "spider" + /datum/robot_sprite/science/worm name = "W02M" - sprite_icon_state = "worm-science" //CHOMPEdit - has_custom_open_sprites = TRUE - sprite_icon = 'modular_chomp/icons/mob/wormborg.dmi' //CHOMPEdit - has_vore_belly_sprites = TRUE //CHOMPEdit - has_dead_sprite = TRUE //CHOMPEdit + sprite_icon_state = "worm-science" + sprite_icon = 'icons/mob/robot/wormborg.dmi' + has_dead_sprite_overlay = FALSE + has_custom_open_sprites = FALSE + has_vore_belly_sprites = TRUE + has_dead_sprite = TRUE /datum/robot_sprite/science/uptall name = "Feminine Humanoid" @@ -208,13 +210,42 @@ has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Bellyup") -/datum/robot_sprite/dogborg/tall/science/dullahanv3 - sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi' - //named v3 to avoid conflicts with downstream -/datum/robot_sprite/dogborg/tall/science/dullahanv3/sciencedully - name = "Dullahan science v3" - sprite_icon_state = "dullahanscience" +/datum/robot_sprite/dogborg/tall/science/dullahan + name = "Dullahan" + sprite_icon_state = "dullahansci" + sprite_icon = 'icons/mob/robot/dullahan/v1/dullahan_sci.dmi' has_vore_belly_sprites = TRUE - has_robotdecal_sprites = TRUE + has_eye_light_sprites = TRUE + sprite_hud_icon_state = "sci-borg" + pixel_x = 0 + +/datum/robot_sprite/dogborg/tall/science/dullahan/scialt + name = "Dullahan v2" + sprite_icon_state = "dullahansci_alt" + +/datum/robot_sprite/dogborg/tall/science/dullahan/scialt2 + name = "Dullahan v3" + sprite_icon = 'icons/mob/robot/dullahan/v3/science.dmi' + sprite_icon_state = "dullahanscience" rest_sprite_options = list("Default", "sit") + sprite_decals = list("decals") + +/datum/robot_sprite/dogborg/science/cat + name = "Cat" + sprite_icon = 'icons/mob/robot/catborg_variant.dmi' + sprite_icon_state = "vixsci" + sprite_hud_icon_state = "sci-borg" + has_vore_belly_resting_sprites = TRUE + has_eye_light_sprites = TRUE + has_dead_sprite_overlay = FALSE + + +/datum/robot_sprite/dogborg/science/smolraptor + sprite_icon = 'icons/mob/robot/smallraptors/smolraptor_sci.dmi' + name = "Small Raptor" + sprite_icon_state = "smolraptor" + has_dead_sprite_overlay = FALSE + has_eye_light_sprites = TRUE + has_vore_belly_sprites = TRUE + rest_sprite_options = list("Default", "Sit") diff --git a/code/modules/mob/living/silicon/robot/sprites/security.dm b/code/modules/mob/living/silicon/robot/sprites/security.dm index 0bb6f04dbd..83c025c17f 100644 --- a/code/modules/mob/living/silicon/robot/sprites/security.dm +++ b/code/modules/mob/living/silicon/robot/sprites/security.dm @@ -108,11 +108,12 @@ /datum/robot_sprite/security/worm name = "W02M" - sprite_icon_state = "worm-security" //CHOMPEdit - has_custom_open_sprites = TRUE - sprite_icon = 'modular_chomp/icons/mob/wormborg.dmi' //CHOMPEdit - has_vore_belly_sprites = TRUE //CHOMPEdit - has_dead_sprite = TRUE //CHOMPEdit + sprite_icon_state = "worm-security" + sprite_icon = 'icons/mob/robot/wormborg.dmi' + has_dead_sprite_overlay = FALSE + has_custom_open_sprites = FALSE + has_vore_belly_sprites = TRUE + has_dead_sprite = TRUE /datum/robot_sprite/security/uptall name = "Feminine Humanoid" @@ -216,13 +217,47 @@ has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Bellyup") -/datum/robot_sprite/dogborg/tall/security/dullahanv3 - sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi' - //named v3 to avoid conflicts with downstream +/datum/robot_sprite/dogborg/tall/security/dullahan + name = "Dullahan" + sprite_icon_state = "dullahansec" + sprite_icon = 'icons/mob/robot/dullahan/v1/dullahan_sec.dmi' + pixel_x = 0 + sprite_hud_icon_state = "k9" + has_eye_light_sprites = TRUE + has_vore_belly_sprites = TRUE + rest_sprite_options = list("Default", "sit") -/datum/robot_sprite/dogborg/tall/security/dullahanv3/securitydully +/datum/robot_sprite/dogborg/tall/security/dullahan/secalt + name = "Dullahan v2" + sprite_icon_state = "dullahansec_alt" + +/datum/robot_sprite/dogborg/tall/security/dullahan/securitydully name = "Dullahan security v3" + sprite_icon = 'icons/mob/robot/dullahan/v3/security.dmi' sprite_icon_state = "dullahansecurity" has_vore_belly_sprites = TRUE - has_robotdecal_sprites = TRUE - rest_sprite_options = list("Default", "sit") + sprite_decals = list("decals") + +/datum/robot_sprite/dogborg/security/vale2 + name = "Secborg model V-3" + sprite_icon = 'icons/mob/robot/widerobot/widerobot.dmi' + sprite_icon_state = "secvale" + sprite_hud_icon_state = "k9" + has_eye_light_sprites = TRUE + +/datum/robot_sprite/dogborg/security/cat + name = "Cat" + sprite_icon = 'icons/mob/robot/catborg_variant.dmi' + sprite_icon_state = "vixsec" + sprite_hud_icon_state = "k9" + has_eye_light_sprites = TRUE + has_dead_sprite_overlay = FALSE + +/datum/robot_sprite/dogborg/security/smolraptor + sprite_icon = 'icons/mob/robot/smallraptors/smolraptor_pk.dmi' + name = "Small Raptor" + sprite_icon_state = "smolraptor" + has_dead_sprite_overlay = FALSE + has_eye_light_sprites = TRUE + has_vore_belly_sprites = TRUE + rest_sprite_options = list("Default", "Sit") diff --git a/code/modules/mob/living/silicon/robot/sprites/standard.dm b/code/modules/mob/living/silicon/robot/sprites/standard.dm index 0bf20a46c2..01a8f6efd2 100644 --- a/code/modules/mob/living/silicon/robot/sprites/standard.dm +++ b/code/modules/mob/living/silicon/robot/sprites/standard.dm @@ -100,11 +100,12 @@ /datum/robot_sprite/standard/worm name = "W02M" - sprite_icon_state = "worm-standard" //CHOMPEdit - has_custom_open_sprites = TRUE - sprite_icon = 'modular_chomp/icons/mob/wormborg.dmi' //CHOMPEdit - has_vore_belly_sprites = TRUE //CHOMPEdit - has_dead_sprite = TRUE //CHOMPEdit + sprite_icon_state = "worm-standard" + sprite_icon = 'icons/mob/robot/wormborg.dmi' + has_dead_sprite_overlay = FALSE + has_custom_open_sprites = FALSE + has_vore_belly_sprites = TRUE + has_dead_sprite = TRUE /datum/robot_sprite/standard/uptall name = "Feminine Humanoid" @@ -135,13 +136,72 @@ module_type = "Standard" //sprite_icon = 'icons/mob/robot/standard_large.dmi' NOT USED YET -/datum/robot_sprite/dogborg/tall/standard/dullahanv3 - sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi' - //named v3 to avoid conflicts with downstream - /datum/robot_sprite/dogborg/tall/standard/dullahanv3/standarddully name = "Dullahan standard v3" + sprite_icon = 'icons/mob/robot/dullahan/v3/standard.dmi' sprite_icon_state = "dullahanstandard" has_vore_belly_sprites = TRUE - has_robotdecal_sprites = TRUE + sprite_decals = list("decals") rest_sprite_options = list("Default", "sit") + + +/* //This used to be Widerobot_Standard_ch.dm. It was unticked, so it shall be put here instead. +//Modular Standard borg hound edition +//This restructures how borg additions are done to make them sane/modular/maintainable +//Also makes it easier to make new borgs + +//INCOMPLETE and not ready, no sprites other than tall and basically useless, also lacking a belly + +//Add ourselves to the borg list +/hook/startup/proc/Modular_Borg_init_standardhound() + //robot_modules["Honk-Hound"] = /obj/item/robot_module/robot/clerical/honkborg - done in station_vr modular chomp for ordering reasons + robot_module_types += "Standard-Hound" //Add ourselves to global + return 1 + +/obj/item/robot_module/robot/standard/hound + name = "Standard-Hound" + sprites = list( + "MEKA" = list(SKIN_ICON_STATE = "mekastandard", SKIN_ICON = 'icons/mob/robot/tallrobot/tallrobots.dmi', SKIN_OFFSET = 0, SKIN_HEIGHT = 64), + "NIKO" = list(SKIN_ICON_STATE = "mmekastandard", SKIN_ICON = 'icons/mob/robot/tallrobot/tallrobots.dmi', SKIN_OFFSET = 0, SKIN_HEIGHT = 64), + "NIKA" = list(SKIN_ICON_STATE = "fmekastandard", SKIN_ICON = 'icons/mob/robot/tallrobot/tallrobots.dmi', SKIN_OFFSET = 0, SKIN_HEIGHT = 64), + "K4T" = list(SKIN_ICON_STATE = "k4tclown", SKIN_ICON = 'icons/mob/robot/tallrobot/tallrobots.dmi', SKIN_OFFSET = 0, SKIN_HEIGHT = 64) + ) + + can_be_pushed = 0 + +/obj/item/robot_module/robot/standard/hound/New(var/mob/living/silicon/robot/R) + ..() + src.modules += new /obj/item/melee/baton/loaded(src) + src.modules += new /obj/item/tool/wrench/cyborg(src) + src.modules += new /obj/item/healthanalyzer(src) + src.emag += new /obj/item/melee/energy/sword(src) + + var/datum/matter_synth/water = new /datum/matter_synth(500) + water.name = "Water reserves" + water.recharge_rate = 10 + water.max_energy = 1000 + R.water_res = water + synths += water + + var/obj/item/dogborg/tongue/T = new /obj/item/dogborg/tongue(src) + T.water = water + src.modules += T + + R.icon = 'modular_chomp/icons/mob/widerobot_ch.dmi' + R.wideborg_dept = 'modular_chomp/icons/mob/widerobot_ch.dmi' + R.hands.icon = 'icons/mob/screen1_robot_vr.dmi' + R.ui_style_vr = TRUE + R.pixel_x = -16 + R.old_x = -16 + R.default_pixel_x = -16 + R.dogborg = TRUE + R.vore_capacity = 1 + R.vore_capacity_ex = list("stomach" = 1) + R.wideborg = TRUE + add_verb(R,/mob/living/silicon/robot/proc/ex_reserve_refill) + add_verb(R,/mob/living/silicon/robot/proc/robot_mount) + add_verb(R,/mob/living/proc/toggle_rider_reins) + add_verb(R,/mob/living/proc/shred_limb) + add_verb(R,/mob/living/silicon/robot/proc/rest_style) + ..() +*/ diff --git a/code/modules/mob/living/silicon/robot/sprites/syndicate.dm b/code/modules/mob/living/silicon/robot/sprites/syndicate.dm index 685d934225..b3c3072db8 100644 --- a/code/modules/mob/living/silicon/robot/sprites/syndicate.dm +++ b/code/modules/mob/living/silicon/robot/sprites/syndicate.dm @@ -69,14 +69,23 @@ has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Bellyup") +/datum/robot_sprite/dogborg/tall/combat_medic/dullahancombatmedic + name = "Dullahan Combat Medic" + sprite_icon = 'icons/mob/robot/dullahan/v1/dullahan_syndie.dmi' + sprite_icon_state = "dullahansyndi" + has_eye_light_sprites = TRUE + has_vore_belly_sprites = TRUE + rest_sprite_options = list("Default", "Sit") + pixel_x = 0 + /datum/robot_sprite/dogborg/tall/syndie/dullahanv3syndi - sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi' + sprite_icon = 'icons/mob/robot/dullahan/v3/syndi.dmi' sprite_icon_state = "dullahansyndi" name = "Dullahan syndie v3" has_eye_light_sprites = TRUE has_custom_open_sprites = TRUE has_vore_belly_sprites = TRUE - has_robotdecal_sprites = TRUE + sprite_decals = list("decals") rest_sprite_options = list("Default", "sit") // Protector @@ -168,13 +177,13 @@ sprite_hud_icon_state = "malf" /datum/robot_sprite/dogborg/tall/mechanist/dullahanv3mech - sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi' + sprite_icon = 'icons/mob/robot/dullahan/v3/mechanist.dmi' sprite_icon_state = "dullahanmechanist" name = "Dullahan mechanist v3" has_eye_light_sprites = TRUE has_custom_open_sprites = TRUE has_vore_belly_sprites = TRUE - has_robotdecal_sprites = TRUE + sprite_decals = list("decals") rest_sprite_options = list("Default", "sit") /datum/robot_sprite/dogborg/tall/mechanist/syndimechraptor diff --git a/code/modules/mob/living/silicon/robot/subtypes/boozeborg.dm b/code/modules/mob/living/silicon/robot/subtypes/boozeborg.dm new file mode 100644 index 0000000000..fdeabd911a --- /dev/null +++ b/code/modules/mob/living/silicon/robot/subtypes/boozeborg.dm @@ -0,0 +1,180 @@ +//Attempted unify style implementation of boozeborgs. To lower peoples needed code diving to both understand this module and make new ones. +//Dropping my usual _unify for _ch this time. Commenting it here for github search. + +// code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm //tag so it shows up in gitsearch + +/* +What Borgs are available is sadly handled in the above file in the proc + +/hook/startup/proc/robot_modules_vr() + robot_modules["Medihound"] = /obj/item/robot_module/robot/medihound + robot_modules["K9"] = /obj/item/robot_module/robot/knine + robot_modules["ERT"] = /obj/item/robot_module/robot/ert + robot_modules["Janihound"] = /obj/item/robot_module/robot/scrubpup + robot_modules["Sci-borg"] = /obj/item/robot_module/robot/science + robot_modules["Pupdozer"] = /obj/item/robot_module/robot/engiedog + return 1 +*/ + +/obj/item/robot_module/robot/booze + name = "BoozeHound robot module" + channels = list("Service" = 1) + languages = list( + LANGUAGE_SOL_COMMON = 1, + LANGUAGE_UNATHI = 1, + LANGUAGE_SIIK = 1, + LANGUAGE_AKHANI = 1, + LANGUAGE_SKRELLIAN = 1, + LANGUAGE_SKRELLIANFAR = 0, + LANGUAGE_ROOTLOCAL = 0, + LANGUAGE_TRADEBAND = 1, + LANGUAGE_GUTTER = 0, + LANGUAGE_SCHECHI = 1, + LANGUAGE_EAL = 1, + LANGUAGE_TERMINUS = 1, + LANGUAGE_SIGN = 0 + ) + +/obj/item/robot_module/robot/booze + sprites = list( + "Beer Buddy" = "boozeborg", + "Brilliant Blue" = "boozeborg(blue)", + "Caffine Dispenser" = "boozeborg(coffee)", + "Gamer Juice Maker" = "boozeborg(green)", + "Liqour Licker" = "boozeborg(orange)", + "The Grapist" = "boozeborg(purple)", + "Vampire's Aid" = "boozeborg(red)", + "Vodka Komrade" = "boozeborg(vodka)" + ) +/obj/item/robot_module/robot/booze/New(var/mob/living/silicon/robot/R) + src.modules += new /obj/item/gripper/service(src) + //src.modules += new /obj/item/reagent_containers/glass/bucket(src) + //src.modules += new /obj/item/material/minihoe(src) + //src.modules += new /obj/item/analyzer/plant_analyzer(src) + //src.modules += new /obj/item/storage/bag/plants(src) + //src.modules += new /obj/item/robot_harvester(src) + src.modules += new /obj/item/material/knife(src) + src.modules += new /obj/item/material/kitchen/rollingpin(src) + src.modules += new /obj/item/multitool(src) //to freeze trays + src.modules += new /obj/item/dogborg/jaws/small(src) + src.modules += new /obj/item/dogborg/boop_module(src) + src.modules += new /obj/item/dogborg/sleeper/compactor/brewer(src) + src.modules += new /obj/item/reagent_containers/glass/beaker(src)//For holding the ALCOHOL + src.emag = new /obj/item/dogborg/pounce(src) + add_verb(R,/mob/living/silicon/robot/proc/reskin_booze) + + var/obj/item/rsf/M = new /obj/item/rsf(src) + M.stored_matter = 30 + src.modules += M + + src.modules += new /obj/item/reagent_containers/dropper/industrial(src) + + /* Remembered this causes the dogs to catch on fire lol. + var/obj/item/flame/lighter/zippo/L = new /obj/item/flame/lighter/zippo(src) + L.lit = 1 + src.modules += L + */ + + var/datum/matter_synth/water = new /datum/matter_synth() + water.name = "Water reserves" + water.recharge_rate = 0.1 // Recharging water for plants - hehe drooly borg + water.max_energy = 1000 + water.energy = 0 + R.water_res = water + synths += water + + var/obj/item/dogborg/tongue/T = new /obj/item/dogborg/tongue(src) + T.water = water + src.modules += T + + + src.modules += new /obj/item/tray/robotray(src) + src.modules += new /obj/item/reagent_containers/borghypo/service/booze(src) + src.emag = new /obj/item/reagent_containers/food/drinks/bottle/small/beer(src) + + var/datum/reagents/N = new/datum/reagents(50) + src.emag.reagents = N + N.my_atom = src.emag + N.add_reagent("beer2", 50) + src.emag.name = "Mickey Finn's Special Brew" + + R.can_buckle = 1 + R.icon = 'icons/mob/widerobot_colors_ch.dmi' + R.wideborg_dept = 'icons/mob/widerobot_colors_ch.dmi' + R.hands.icon = 'icons/mob/screen1_robot_vr.dmi' + R.ui_style_vr = TRUE + R.pixel_x = -16 + R.old_x = -16 + R.default_pixel_x = -16 + R.dogborg = TRUE + R.vore_capacity = 1 + R.vore_capacity_ex = list("stomach" = 1) + R.wideborg = TRUE + add_verb(R,/mob/living/silicon/robot/proc/ex_reserve_refill) //TGPanel + ..() + +/obj/item/robot_module/robot/booze/respawn_consumable(var/mob/living/silicon/robot/R, var/amount) + var/obj/item/reagent_containers/food/condiment/enzyme/E = locate() in src.modules + E.reagents.add_reagent("enzyme", 2 * amount) + if(src.emag) + var/obj/item/reagent_containers/food/drinks/bottle/small/beer/B = src.emag + B.reagents.add_reagent("beer2", 2 * amount) + +//BORGHYPO +/obj/item/reagent_containers/borghypo/service/booze + name = "cyborg drink synthesizer" + desc = "A portable drink dispencer." + icon = 'icons/obj/drinks.dmi' + icon_state = "shaker" + charge_cost = 20 + recharge_time = 3 + volume = 120 + possible_transfer_amounts = list(1 ,5, 10, 20, 30) + +//Resking proc for boozos + +/mob/living/silicon/robot/proc/reskin_booze() + set name = "Change Drink Color" + set category = "Abilities.Silicon" //TGPanel + set desc = "Choose the color of drink displayed inside you." + + var/mob/M = usr + var/list/options = list() + options["Beer"] = "Beer Buddy" + options["Curacao"] = "Brilliant Blue" + options["Coffee"] = "Caffine Dispenser" + options["Space Mountain Wind"] = "Gamer Juice Maker" + options["Whiskey Soda"] = "Liqour Licker" + options["Grape Soda"] = "The Grapist" + options["Demon's Blood"] = "Vampire's Aid" + options["Slav Vodka"] = "Vodka Komrade" + var/choice = input(M,"Choose your drink!") in options + if(src && choice && !M.stat && in_range(M,src)) + icontype = options[choice] + var/active_sound = 'sound/effects/bubbles.ogg' + playsound(src.loc, "[active_sound]", 100, 0, 4) + M << "Your Tank now displays [choice]. Drink up and enjoy!" + updateicon() + return 1 + +//SLEEPER "Brewer" +/obj/item/dogborg/sleeper/compactor/brewer //Boozehound gut. + name = "Brew Belly" + desc = "A mounted drunk tank unit with fuel processor." + icon_state = "brewer" + injection_chems = list(REAGENT_ID_VODKA,REAGENT_ID_BEER,REAGENT_ID_GIN) //Injected alcohol is 3 times as strong + max_item_count = 1 + +/obj/item/dogborg/sleeper/compactor/brewer/inject_chem(mob/user, chem) + if(patient && patient.reagents) + if(chem in injection_chems + REAGENT_ID_INAPROVALINE) + if(hound.cell.charge < 200) //This is so borgs don't kill themselves with it. + to_chat(hound, span_notice("You don't have enough power to synthesize fluids.")) + return + else if(patient.reagents.get_reagent_amount(chem) + 10 >= 50) //Preventing people from accidentally killing themselves by trying to inject too many chemicals! + to_chat(hound, span_notice("Your stomach is currently too full of fluids to secrete more fluids of this kind.")) + else if(patient.reagents.get_reagent_amount(chem) + 10 <= 50) //No overdoses for you + patient.reagents.add_reagent(chem, inject_amount) + drain(100) //-100 charge per injection + var/units = round(patient.reagents.get_reagent_amount(chem)) + to_chat(hound, span_notice("Injecting [units] unit\s into occupant.")) //If they were immersed, the reagents wouldn't leave with them. diff --git a/modular_chomp/code/modules/mob/living/silicon/robot/modules/exploration.dm b/code/modules/mob/living/silicon/robot/subtypes/exploration/exploration-modules.dm similarity index 96% rename from modular_chomp/code/modules/mob/living/silicon/robot/modules/exploration.dm rename to code/modules/mob/living/silicon/robot/subtypes/exploration/exploration-modules.dm index 0cfa3e2f9b..0cae32e274 100644 --- a/modular_chomp/code/modules/mob/living/silicon/robot/modules/exploration.dm +++ b/code/modules/mob/living/silicon/robot/subtypes/exploration/exploration-modules.dm @@ -1,8 +1,9 @@ +/* //Uncomment the exploration modules in code\global.dm /hook/startup/proc/Modular_Borg_init_Exploration() robot_modules["Exploration"] = /obj/item/robot_module/robot/exploration //add to array robot_module_types += "Exploration" //Add to global list return 1 - +*/ //Explo doggos /obj/item/robot_module/robot/exploration name = "exploration robot module" diff --git a/modular_chomp/code/modules/mob/living/silicon/robot/sprites/exploration.dm b/code/modules/mob/living/silicon/robot/subtypes/exploration/exploration-sprites.dm similarity index 85% rename from modular_chomp/code/modules/mob/living/silicon/robot/sprites/exploration.dm rename to code/modules/mob/living/silicon/robot/subtypes/exploration/exploration-sprites.dm index 45bc6d404b..4369a38548 100644 --- a/modular_chomp/code/modules/mob/living/silicon/robot/sprites/exploration.dm +++ b/code/modules/mob/living/silicon/robot/subtypes/exploration/exploration-sprites.dm @@ -1,6 +1,6 @@ /datum/robot_sprite/dogborg/explorer module_type = "Exploration" - sprite_icon = 'modular_chomp/icons/mob/widerobot_exp_ch.dmi' + sprite_icon = 'icons/mob/robot/widerobot/widerobot_exp.dmi' sprite_hud_icon_state = "platform" /datum/robot_sprite/dogborg/explorer/vale2 @@ -15,7 +15,7 @@ /datum/robot_sprite/dogborg/tall/explorer/dullahan module_type = "Exploration" - sprite_icon = 'modular_chomp/icons/mob/dullahanborg/dullahan_explorer.dmi' + sprite_icon = 'icons/mob/robot/dullahan/v1/dullahan_explorer.dmi' pixel_x = 0 /datum/robot_sprite/dogborg/tall/explorer/dullahan/explorer @@ -35,12 +35,12 @@ /* placeholder /datum/robot_sprite/dogborg/tall/explorer module_type = "Exploration" - sprite_icon = 'modular_chomp/icons/mob/tallborg/tallrobots.dmi' + sprite_icon = 'icons/mob/robot/tallrobot/tallrobots.dmi' pixel_x = 0 /datum/robot_sprite/dogborg/raptor/explorer module_type = "Exploration" - sprite_icon = 'modular_chomp/icons/mob/raptorborg/raptor_ch.dmi' + sprite_icon = 'icons/mob/robot/raptor.dmi' /datum/robot_sprite/dogborg/raptor/explorer/raptor name = "Raptor" diff --git a/code/modules/projectiles/guns/launcher/confetti.dm b/code/modules/projectiles/guns/launcher/confetti.dm index 236c627c34..55cffa4c3e 100644 --- a/code/modules/projectiles/guns/launcher/confetti.dm +++ b/code/modules/projectiles/guns/launcher/confetti.dm @@ -70,6 +70,10 @@ name = "Party Cannon" desc = "Confetti, pies, banana peels, chaos!" +/obj/item/gun/launcher/confetti_cannon/robot + name = "Party Cannon" + desc = "Confetti, pies, banana peels, chaos!" + /obj/item/gun/launcher/confetti_cannon/robot/pump(mob/user) playsound(user, 'sound/weapons/shotgunpump.ogg', 60, 1) if(!chambered) diff --git a/code/unit_tests/robot_tests.dm b/code/unit_tests/robot_tests.dm new file mode 100644 index 0000000000..547aada5a0 --- /dev/null +++ b/code/unit_tests/robot_tests.dm @@ -0,0 +1,189 @@ +/datum/unit_test/all_robot_sprites_must_be_valid + name = "ROBOTS: Robot sprites must be valid" + var/signal_failed = FALSE + +/datum/unit_test/all_robot_sprites_must_be_valid/start_test() + var/failed = 0 + + for(var/sprite in subtypesof(/datum/robot_sprite)) + var/datum/robot_sprite/RS = new sprite() + if(!RS.name) // Parent type, ignore me + continue + + var/list/checks = list( + "[ROBOT_HAS_SPEED_SPRITE]" = "-roll", + "[ROBOT_HAS_SHIELD_SPRITE]" = "-shield", + "[ROBOT_HAS_SHIELD_SPEED_SPRITE]" = "-speed_shield", + "[ROBOT_HAS_MELEE_SPRITE]" = "-melee", + "[ROBOT_HAS_DAGGER_SPRITE]" = "-dagger", + "[ROBOT_HAS_BLADE_SPRITE]" = "-blade", + "[ROBOT_HAS_GUN_SPRITE]" = "-gun", + "[ROBOT_HAS_LASER_SPRITE]" = "-laser", + "[ROBOT_HAS_TASER_SPRITE]" = "-taser", + "[ROBOT_HAS_DISABLER_SPRITE]" = "-disabler" + ) + for(var/C in checks) + if(RS.sprite_flag_check(text2num(C))) + if(check_state(RS,checks[C])) + failed = TRUE + // eyes, lights, markings + if(RS.has_eye_sprites) + if(check_state(RS,"-eyes")) + failed = TRUE + if(RS.has_eye_light_sprites) + if(check_state(RS,"-lights")) + failed = TRUE + if(LAZYLEN(RS.sprite_decals)) + for(var/decal in RS.sprite_decals) + if(check_state(RS,"-[decal]")) + failed = TRUE + // Control panel + if(RS.has_custom_open_sprites) + if(check_state(RS,"-openpanel_nc")) + failed = TRUE + if(check_state(RS,"-openpanel_c")) + failed = TRUE + if(check_state(RS,"-openpanel_w")) + failed = TRUE + // Bellies + if(RS.has_vore_belly_sprites && !RS.belly_capacity_list) + if(RS.has_sleeper_light_indicator) + // belly r/g light + if(check_state(RS,"-sleeper-r")) + failed = TRUE + if(check_state(RS,"-sleeper-g")) + failed = TRUE + if(RS.has_vore_belly_resting_sprites) + for(var/rest_style in RS.rest_sprite_options) + rest_style = lowertext(rest_style) + if(rest_style == "Default") + rest_style = "rest" + if(check_state(RS,"-sleeper-r-[rest_style]")) + failed = TRUE + if(check_state(RS,"-sleeper-g-[rest_style]")) + failed = TRUE + // struggling + if(RS.has_vore_struggle_sprite) + if(check_state(RS,"-sleeper-r-struggle")) + failed = TRUE + if(check_state(RS,"-sleeper-g-struggle")) + failed = TRUE + if(RS.has_vore_belly_resting_sprites) + for(var/rest_style in RS.rest_sprite_options) + rest_style = lowertext(rest_style) + if(rest_style == "Default") + rest_style = "rest" + if(check_state(RS,"-sleeper-r-[rest_style]-struggle")) + failed = TRUE + if(check_state(RS,"-sleeper-g-[rest_style]-struggle")) + failed = TRUE + else + // belly + if(check_state(RS,"-sleeper")) + failed = TRUE + if(RS.has_vore_belly_resting_sprites) + for(var/rest_style in RS.rest_sprite_options) + rest_style = lowertext(rest_style) + if(rest_style == "Default") + rest_style = "rest" + if(check_state(RS,"-sleeper-[rest_style]")) + failed = TRUE + // struggling + if(RS.has_vore_struggle_sprite) + if(check_state(RS,"-sleeper-struggle")) + failed = TRUE + if(RS.has_vore_belly_resting_sprites) + for(var/rest_style in RS.rest_sprite_options) + rest_style = lowertext(rest_style) + if(rest_style == "Default") + rest_style = "rest" + if(check_state(RS,"-sleeper-[rest_style]-struggle")) + failed = TRUE + else if (RS.belly_capacity_list) + for(var/belly in RS.belly_capacity_list) + for(var/num = 1 to RS.belly_capacity_list[belly]) + // big belly + if(check_state(RS,"-[belly]-[num]")) + failed = TRUE + if(RS.has_vore_belly_resting_sprites) + for(var/rest_style in RS.rest_sprite_options) + rest_style = lowertext(rest_style) + if(rest_style == "Default") + rest_style = "rest" + if(check_state(RS,"-[belly]-[num]-[rest_style]")) + failed = TRUE + // struggling + if(RS.has_vore_struggle_sprite) + if(check_state(RS,"-[belly]-[num]-struggle")) + failed = TRUE + if(RS.has_vore_belly_resting_sprites) + for(var/rest_style in RS.rest_sprite_options) + rest_style = lowertext(rest_style) + if(rest_style == "Default") + rest_style = "rest" + if(check_state(RS,"-[belly]-[num]-[rest_style]-struggle")) + failed = TRUE + if(RS.belly_light_list) + for(var/belly in RS.belly_light_list) + for(var/num = 1 to RS.belly_light_list[belly]) + // multi belly r/g light + if(check_state(RS,"-[belly]-[num]-r")) + failed = TRUE + if(check_state(RS,"-[belly]-[num]-g")) + failed = TRUE + if(RS.has_vore_belly_resting_sprites) + for(var/rest_style in RS.rest_sprite_options) + rest_style = lowertext(rest_style) + if(rest_style == "Default") + rest_style = "rest" + if(check_state(RS,"-[belly]-[num]-r-[rest_style]")) + failed = TRUE + if(check_state(RS,"-[belly]-[num]-g-[rest_style]")) + failed = TRUE + // struggling + if(RS.has_vore_struggle_sprite) + if(check_state(RS,"-[belly]-[num]-r-struggle")) + failed = TRUE + if(check_state(RS,"-[belly]-[num]-g-struggle")) + failed = TRUE + if(RS.has_vore_belly_resting_sprites) + for(var/rest_style in RS.rest_sprite_options) + rest_style = lowertext(rest_style) + if(rest_style == "Default") + rest_style = "rest" + if(check_state(RS,"-[belly]-[num]-r-[rest_style]-struggle")) + failed = TRUE + if(check_state(RS,"-[belly]-[num]-g-[rest_style]-struggle")) + failed = TRUE + // reseting + if(RS.rest_sprite_options in list("Sit")) + if(check_state(RS,"-sit")) + failed = TRUE + if(RS.rest_sprite_options in list("Default")) + if(check_state(RS,"-rest")) + failed = TRUE + if(RS.rest_sprite_options in list("Bellyup")) + if(check_state(RS,"-bellyup")) + failed = TRUE + // death + if(RS.has_dead_sprite) + if(check_state(RS,"-wreck")) + failed = TRUE + if(RS.has_dead_sprite_overlay) // Only one per dmi + if(!("wreck-overlay" in cached_icon_states(RS.sprite_icon))) + log_unit_test("[RS.type]: Robots - Robot sprite \"[RS.name]\", had wreck-overlay state enabled, but was missing icon_state wreck-overlay, in dmi \"[RS.sprite_icon]\".") + failed = TRUE + qdel(RS) + + if(failed) + fail("One or more /datum/robot_sprite items had invalid flags or icons") + else + pass("All /datum/robot_sprite are valid.") + return 1 + +/datum/unit_test/all_robot_sprites_must_be_valid/proc/check_state(var/datum/robot_sprite/RS,var/append) + var/check_state = "[RS.sprite_icon_state][append]" + if(!(check_state in cached_icon_states(RS.sprite_icon))) + log_unit_test("[RS.type]: Robots - Robot sprite \"[RS.name]\", had [append] state enabled, but was missing icon_state \"[check_state]\", in dmi \"[RS.sprite_icon]\".") + return TRUE + return FALSE diff --git a/icons/mob/dogborg_vr.dmi b/icons/mob/dogborg_vr.dmi index d19ff1c7c8..ac5c60f838 100644 Binary files a/icons/mob/dogborg_vr.dmi and b/icons/mob/dogborg_vr.dmi differ diff --git a/modular_chomp/icons/mob/catborg/catborg.dmi b/icons/mob/robot/catborg_variant.dmi similarity index 100% rename from modular_chomp/icons/mob/catborg/catborg.dmi rename to icons/mob/robot/catborg_variant.dmi diff --git a/icons/mob/robot/catborgs/custom/catborg_cameron.dmi b/icons/mob/robot/catborgs/custom/catborg_cameron.dmi index 5968cba139..f2c32e3680 100644 Binary files a/icons/mob/robot/catborgs/custom/catborg_cameron.dmi and b/icons/mob/robot/catborgs/custom/catborg_cameron.dmi differ diff --git a/icons/mob/robot/catborgs/custom/catborg_matica_custom.dmi b/icons/mob/robot/catborgs/custom/catborg_matica_custom.dmi index 51c8ff3af2..71bb525de6 100644 Binary files a/icons/mob/robot/catborgs/custom/catborg_matica_custom.dmi and b/icons/mob/robot/catborgs/custom/catborg_matica_custom.dmi differ diff --git a/icons/mob/robot/catborgs/departmental/large/catborg_cargo.dmi b/icons/mob/robot/catborgs/departmental/large/catborg_cargo.dmi index bea75ae554..58b825edc4 100644 Binary files a/icons/mob/robot/catborgs/departmental/large/catborg_cargo.dmi and b/icons/mob/robot/catborgs/departmental/large/catborg_cargo.dmi differ diff --git a/icons/mob/robot/catborgs/departmental/large/catborg_engineering.dmi b/icons/mob/robot/catborgs/departmental/large/catborg_engineering.dmi index 7e9ee4e026..a604f8df48 100644 Binary files a/icons/mob/robot/catborgs/departmental/large/catborg_engineering.dmi and b/icons/mob/robot/catborgs/departmental/large/catborg_engineering.dmi differ diff --git a/icons/mob/robot/catborgs/departmental/large/catborg_medical.dmi b/icons/mob/robot/catborgs/departmental/large/catborg_medical.dmi index c0a690e8f5..4c5997d3e3 100644 Binary files a/icons/mob/robot/catborgs/departmental/large/catborg_medical.dmi and b/icons/mob/robot/catborgs/departmental/large/catborg_medical.dmi differ diff --git a/icons/mob/robot/catborgs/departmental/large/catborg_science.dmi b/icons/mob/robot/catborgs/departmental/large/catborg_science.dmi index 1d2912b38a..a640883989 100644 Binary files a/icons/mob/robot/catborgs/departmental/large/catborg_science.dmi and b/icons/mob/robot/catborgs/departmental/large/catborg_science.dmi differ diff --git a/icons/mob/robot/catborgs/departmental/large/catborg_security.dmi b/icons/mob/robot/catborgs/departmental/large/catborg_security.dmi index 59ad190074..4d2847362b 100644 Binary files a/icons/mob/robot/catborgs/departmental/large/catborg_security.dmi and b/icons/mob/robot/catborgs/departmental/large/catborg_security.dmi differ diff --git a/icons/mob/robot/catborgs/departmental/large/catborg_service.dmi b/icons/mob/robot/catborgs/departmental/large/catborg_service.dmi index 5cd332169c..7ae0ab3baf 100644 Binary files a/icons/mob/robot/catborgs/departmental/large/catborg_service.dmi and b/icons/mob/robot/catborgs/departmental/large/catborg_service.dmi differ diff --git a/icons/mob/robot/catborgs/departmental/small/kittyborg_cargo.dmi b/icons/mob/robot/catborgs/departmental/small/kittyborg_cargo.dmi index 8b450e1e6e..5bdfe729bc 100644 Binary files a/icons/mob/robot/catborgs/departmental/small/kittyborg_cargo.dmi and b/icons/mob/robot/catborgs/departmental/small/kittyborg_cargo.dmi differ diff --git a/icons/mob/robot/catborgs/departmental/small/kittyborg_engi.dmi b/icons/mob/robot/catborgs/departmental/small/kittyborg_engi.dmi index e8c702dcf0..20c3eb603c 100644 Binary files a/icons/mob/robot/catborgs/departmental/small/kittyborg_engi.dmi and b/icons/mob/robot/catborgs/departmental/small/kittyborg_engi.dmi differ diff --git a/icons/mob/robot/catborgs/departmental/small/kittyborg_jani.dmi b/icons/mob/robot/catborgs/departmental/small/kittyborg_jani.dmi index de0ee93e6f..72a2fae93a 100644 Binary files a/icons/mob/robot/catborgs/departmental/small/kittyborg_jani.dmi and b/icons/mob/robot/catborgs/departmental/small/kittyborg_jani.dmi differ diff --git a/icons/mob/robot/catborgs/departmental/small/kittyborg_medicat.dmi b/icons/mob/robot/catborgs/departmental/small/kittyborg_medicat.dmi index 9a5552e7f8..2667bab280 100644 Binary files a/icons/mob/robot/catborgs/departmental/small/kittyborg_medicat.dmi and b/icons/mob/robot/catborgs/departmental/small/kittyborg_medicat.dmi differ diff --git a/icons/mob/robot/catborgs/departmental/small/kittyborg_sci.dmi b/icons/mob/robot/catborgs/departmental/small/kittyborg_sci.dmi index b5a0a1e562..0f24ea8f46 100644 Binary files a/icons/mob/robot/catborgs/departmental/small/kittyborg_sci.dmi and b/icons/mob/robot/catborgs/departmental/small/kittyborg_sci.dmi differ diff --git a/icons/mob/robot/catborgs/departmental/small/kittyborg_sec.dmi b/icons/mob/robot/catborgs/departmental/small/kittyborg_sec.dmi index 70047dc55b..134fe7d1f3 100644 Binary files a/icons/mob/robot/catborgs/departmental/small/kittyborg_sec.dmi and b/icons/mob/robot/catborgs/departmental/small/kittyborg_sec.dmi differ diff --git a/icons/mob/robot/catborgs/departmental/small/kittyborg_service.dmi b/icons/mob/robot/catborgs/departmental/small/kittyborg_service.dmi index bbef461092..5a91ef599f 100644 Binary files a/icons/mob/robot/catborgs/departmental/small/kittyborg_service.dmi and b/icons/mob/robot/catborgs/departmental/small/kittyborg_service.dmi differ diff --git a/modular_chomp/icons/mob/dullahanborg/Dullahanprotean64x64.dmi b/icons/mob/robot/dullahan/v1/Dullahanprotean64x64.dmi similarity index 100% rename from modular_chomp/icons/mob/dullahanborg/Dullahanprotean64x64.dmi rename to icons/mob/robot/dullahan/v1/Dullahanprotean64x64.dmi diff --git a/modular_chomp/icons/mob/dullahanborg/dullahan_cargo.dmi b/icons/mob/robot/dullahan/v1/dullahan_cargo.dmi similarity index 100% rename from modular_chomp/icons/mob/dullahanborg/dullahan_cargo.dmi rename to icons/mob/robot/dullahan/v1/dullahan_cargo.dmi diff --git a/modular_chomp/icons/mob/dullahanborg/dullahan_clown.dmi b/icons/mob/robot/dullahan/v1/dullahan_clown.dmi similarity index 100% rename from modular_chomp/icons/mob/dullahanborg/dullahan_clown.dmi rename to icons/mob/robot/dullahan/v1/dullahan_clown.dmi diff --git a/modular_chomp/icons/mob/dullahanborg/dullahan_credit.txt b/icons/mob/robot/dullahan/v1/dullahan_credit.txt similarity index 100% rename from modular_chomp/icons/mob/dullahanborg/dullahan_credit.txt rename to icons/mob/robot/dullahan/v1/dullahan_credit.txt diff --git a/modular_chomp/icons/mob/dullahanborg/dullahan_eng.dmi b/icons/mob/robot/dullahan/v1/dullahan_eng.dmi similarity index 100% rename from modular_chomp/icons/mob/dullahanborg/dullahan_eng.dmi rename to icons/mob/robot/dullahan/v1/dullahan_eng.dmi diff --git a/modular_chomp/icons/mob/dullahanborg/dullahan_explorer.dmi b/icons/mob/robot/dullahan/v1/dullahan_explorer.dmi similarity index 100% rename from modular_chomp/icons/mob/dullahanborg/dullahan_explorer.dmi rename to icons/mob/robot/dullahan/v1/dullahan_explorer.dmi diff --git a/modular_chomp/icons/mob/dullahanborg/dullahan_jani.dmi b/icons/mob/robot/dullahan/v1/dullahan_jani.dmi similarity index 100% rename from modular_chomp/icons/mob/dullahanborg/dullahan_jani.dmi rename to icons/mob/robot/dullahan/v1/dullahan_jani.dmi diff --git a/modular_chomp/icons/mob/dullahanborg/dullahan_med.dmi b/icons/mob/robot/dullahan/v1/dullahan_med.dmi similarity index 100% rename from modular_chomp/icons/mob/dullahanborg/dullahan_med.dmi rename to icons/mob/robot/dullahan/v1/dullahan_med.dmi diff --git a/icons/mob/robot/dullahan/v1/dullahan_mine.dmi b/icons/mob/robot/dullahan/v1/dullahan_mine.dmi new file mode 100644 index 0000000000..bcd99510de Binary files /dev/null and b/icons/mob/robot/dullahan/v1/dullahan_mine.dmi differ diff --git a/modular_chomp/icons/mob/dullahanborg/dullahan_sci.dmi b/icons/mob/robot/dullahan/v1/dullahan_sci.dmi similarity index 100% rename from modular_chomp/icons/mob/dullahanborg/dullahan_sci.dmi rename to icons/mob/robot/dullahan/v1/dullahan_sci.dmi diff --git a/modular_chomp/icons/mob/dullahanborg/dullahan_sec.dmi b/icons/mob/robot/dullahan/v1/dullahan_sec.dmi similarity index 100% rename from modular_chomp/icons/mob/dullahanborg/dullahan_sec.dmi rename to icons/mob/robot/dullahan/v1/dullahan_sec.dmi diff --git a/modular_chomp/icons/mob/dullahanborg/dullahan_serv.dmi b/icons/mob/robot/dullahan/v1/dullahan_serv.dmi similarity index 100% rename from modular_chomp/icons/mob/dullahanborg/dullahan_serv.dmi rename to icons/mob/robot/dullahan/v1/dullahan_serv.dmi diff --git a/modular_chomp/icons/mob/dullahanborg/dullahan_syndie.dmi b/icons/mob/robot/dullahan/v1/dullahan_syndie.dmi similarity index 100% rename from modular_chomp/icons/mob/dullahanborg/dullahan_syndie.dmi rename to icons/mob/robot/dullahan/v1/dullahan_syndie.dmi diff --git a/modular_chomp/icons/mob/dullahanborg/dullahanicon.dmi b/icons/mob/robot/dullahan/v1/dullahanicon.dmi similarity index 100% rename from modular_chomp/icons/mob/dullahanborg/dullahanicon.dmi rename to icons/mob/robot/dullahan/v1/dullahanicon.dmi diff --git a/modular_chomp/icons/mob/dullahanborg/dullahansigns.dmi b/icons/mob/robot/dullahan/v1/dullahansigns.dmi similarity index 100% rename from modular_chomp/icons/mob/dullahanborg/dullahansigns.dmi rename to icons/mob/robot/dullahan/v1/dullahansigns.dmi diff --git a/icons/mob/robot/dullahan/v3/barista.dmi b/icons/mob/robot/dullahan/v3/barista.dmi new file mode 100644 index 0000000000..dc019d4772 Binary files /dev/null and b/icons/mob/robot/dullahan/v3/barista.dmi differ diff --git a/icons/mob/robot/dullahan/v3/coffee.dmi b/icons/mob/robot/dullahan/v3/coffee.dmi new file mode 100644 index 0000000000..24c852989c Binary files /dev/null and b/icons/mob/robot/dullahan/v3/coffee.dmi differ diff --git a/icons/mob/robot/dullahan/v3/command.dmi b/icons/mob/robot/dullahan/v3/command.dmi new file mode 100644 index 0000000000..a08515eb83 Binary files /dev/null and b/icons/mob/robot/dullahan/v3/command.dmi differ diff --git a/icons/mob/robot/dullahan/v3/engineer.dmi b/icons/mob/robot/dullahan/v3/engineer.dmi new file mode 100644 index 0000000000..dbcf2d7d23 Binary files /dev/null and b/icons/mob/robot/dullahan/v3/engineer.dmi differ diff --git a/icons/mob/robot/dullahan/v3/janitor.dmi b/icons/mob/robot/dullahan/v3/janitor.dmi new file mode 100644 index 0000000000..46d971fff1 Binary files /dev/null and b/icons/mob/robot/dullahan/v3/janitor.dmi differ diff --git a/icons/mob/robot/dullahan/v3/mechanist.dmi b/icons/mob/robot/dullahan/v3/mechanist.dmi new file mode 100644 index 0000000000..3f385e0b64 Binary files /dev/null and b/icons/mob/robot/dullahan/v3/mechanist.dmi differ diff --git a/icons/mob/robot/dullahan/v3/medical.dmi b/icons/mob/robot/dullahan/v3/medical.dmi new file mode 100644 index 0000000000..c5b4f0eb1a Binary files /dev/null and b/icons/mob/robot/dullahan/v3/medical.dmi differ diff --git a/icons/mob/robot/dullahan/v3/mining.dmi b/icons/mob/robot/dullahan/v3/mining.dmi new file mode 100644 index 0000000000..263c1474e9 Binary files /dev/null and b/icons/mob/robot/dullahan/v3/mining.dmi differ diff --git a/icons/mob/tallborg/MEKANIKA skinline credit.txt b/icons/mob/robot/dullahan/v3/miscinnfo/MEKANIKA skinline credit.txt similarity index 100% rename from icons/mob/tallborg/MEKANIKA skinline credit.txt rename to icons/mob/robot/dullahan/v3/miscinnfo/MEKANIKA skinline credit.txt diff --git a/icons/mob/robot/dullahan/v3/miscinnfo/dullahan assets.dmi b/icons/mob/robot/dullahan/v3/miscinnfo/dullahan assets.dmi new file mode 100644 index 0000000000..81e05bf9a6 Binary files /dev/null and b/icons/mob/robot/dullahan/v3/miscinnfo/dullahan assets.dmi differ diff --git a/icons/mob/tallborg/dullahan_credit.txt b/icons/mob/robot/dullahan/v3/miscinnfo/dullahan_credit.txt similarity index 100% rename from icons/mob/tallborg/dullahan_credit.txt rename to icons/mob/robot/dullahan/v3/miscinnfo/dullahan_credit.txt diff --git a/icons/mob/tallborg/dullahans64x64.txt b/icons/mob/robot/dullahan/v3/miscinnfo/dullahans64x64.txt similarity index 100% rename from icons/mob/tallborg/dullahans64x64.txt rename to icons/mob/robot/dullahan/v3/miscinnfo/dullahans64x64.txt diff --git a/icons/mob/tallborg/tallborg.dmi b/icons/mob/robot/dullahan/v3/miscinnfo/tallborg.dmi similarity index 100% rename from icons/mob/tallborg/tallborg.dmi rename to icons/mob/robot/dullahan/v3/miscinnfo/tallborg.dmi diff --git a/icons/mob/robot/dullahan/v3/ninja.dmi b/icons/mob/robot/dullahan/v3/ninja.dmi new file mode 100644 index 0000000000..4c92261da0 Binary files /dev/null and b/icons/mob/robot/dullahan/v3/ninja.dmi differ diff --git a/icons/mob/robot/dullahan/v3/science.dmi b/icons/mob/robot/dullahan/v3/science.dmi new file mode 100644 index 0000000000..93a9726a89 Binary files /dev/null and b/icons/mob/robot/dullahan/v3/science.dmi differ diff --git a/icons/mob/robot/dullahan/v3/security.dmi b/icons/mob/robot/dullahan/v3/security.dmi new file mode 100644 index 0000000000..7cb6930f82 Binary files /dev/null and b/icons/mob/robot/dullahan/v3/security.dmi differ diff --git a/icons/mob/robot/dullahan/v3/service.dmi b/icons/mob/robot/dullahan/v3/service.dmi new file mode 100644 index 0000000000..77c82472dd Binary files /dev/null and b/icons/mob/robot/dullahan/v3/service.dmi differ diff --git a/icons/mob/robot/dullahan/v3/standard.dmi b/icons/mob/robot/dullahan/v3/standard.dmi new file mode 100644 index 0000000000..d50525b608 Binary files /dev/null and b/icons/mob/robot/dullahan/v3/standard.dmi differ diff --git a/icons/mob/robot/dullahan/v3/syndi.dmi b/icons/mob/robot/dullahan/v3/syndi.dmi new file mode 100644 index 0000000000..1ac7357490 Binary files /dev/null and b/icons/mob/robot/dullahan/v3/syndi.dmi differ diff --git a/icons/mob/robot/fluff_wide.dmi b/icons/mob/robot/fluff_wide.dmi index fffe15feca..2657179a5c 100644 Binary files a/icons/mob/robot/fluff_wide.dmi and b/icons/mob/robot/fluff_wide.dmi differ diff --git a/icons/mob/robot/lost_wide.dmi b/icons/mob/robot/lost_wide.dmi index 17a6f3b9b7..b79f0e9c00 100644 Binary files a/icons/mob/robot/lost_wide.dmi and b/icons/mob/robot/lost_wide.dmi differ diff --git a/icons/mob/robot/possumborg.dmi b/icons/mob/robot/possumborg.dmi new file mode 100644 index 0000000000..ffca42ed80 Binary files /dev/null and b/icons/mob/robot/possumborg.dmi differ diff --git a/modular_chomp/icons/mob/raptorborg/raptor_ch.dmi b/icons/mob/robot/raptor.dmi similarity index 100% rename from modular_chomp/icons/mob/raptorborg/raptor_ch.dmi rename to icons/mob/robot/raptor.dmi diff --git a/modular_chomp/icons/mob/smallraptors/smolraptor_car.dmi b/icons/mob/robot/smallraptors/smolraptor_car.dmi similarity index 100% rename from modular_chomp/icons/mob/smallraptors/smolraptor_car.dmi rename to icons/mob/robot/smallraptors/smolraptor_car.dmi diff --git a/modular_chomp/icons/mob/smallraptors/smolraptor_cc.dmi b/icons/mob/robot/smallraptors/smolraptor_cc.dmi similarity index 100% rename from modular_chomp/icons/mob/smallraptors/smolraptor_cc.dmi rename to icons/mob/robot/smallraptors/smolraptor_cc.dmi diff --git a/modular_chomp/icons/mob/smallraptors/smolraptor_eng.dmi b/icons/mob/robot/smallraptors/smolraptor_eng.dmi similarity index 100% rename from modular_chomp/icons/mob/smallraptors/smolraptor_eng.dmi rename to icons/mob/robot/smallraptors/smolraptor_eng.dmi diff --git a/modular_chomp/icons/mob/smallraptors/smolraptor_gen.dmi b/icons/mob/robot/smallraptors/smolraptor_gen.dmi similarity index 100% rename from modular_chomp/icons/mob/smallraptors/smolraptor_gen.dmi rename to icons/mob/robot/smallraptors/smolraptor_gen.dmi diff --git a/modular_chomp/icons/mob/smallraptors/smolraptor_jani.dmi b/icons/mob/robot/smallraptors/smolraptor_jani.dmi similarity index 100% rename from modular_chomp/icons/mob/smallraptors/smolraptor_jani.dmi rename to icons/mob/robot/smallraptors/smolraptor_jani.dmi diff --git a/modular_chomp/icons/mob/smallraptors/smolraptor_med.dmi b/icons/mob/robot/smallraptors/smolraptor_med.dmi similarity index 100% rename from modular_chomp/icons/mob/smallraptors/smolraptor_med.dmi rename to icons/mob/robot/smallraptors/smolraptor_med.dmi diff --git a/modular_chomp/icons/mob/smallraptors/smolraptor_min.dmi b/icons/mob/robot/smallraptors/smolraptor_min.dmi similarity index 100% rename from modular_chomp/icons/mob/smallraptors/smolraptor_min.dmi rename to icons/mob/robot/smallraptors/smolraptor_min.dmi diff --git a/modular_chomp/icons/mob/smallraptors/smolraptor_pk.dmi b/icons/mob/robot/smallraptors/smolraptor_pk.dmi similarity index 100% rename from modular_chomp/icons/mob/smallraptors/smolraptor_pk.dmi rename to icons/mob/robot/smallraptors/smolraptor_pk.dmi diff --git a/modular_chomp/icons/mob/smallraptors/smolraptor_sci.dmi b/icons/mob/robot/smallraptors/smolraptor_sci.dmi similarity index 100% rename from modular_chomp/icons/mob/smallraptors/smolraptor_sci.dmi rename to icons/mob/robot/smallraptors/smolraptor_sci.dmi diff --git a/modular_chomp/icons/mob/smallraptors/smolraptor_serv.dmi b/icons/mob/robot/smallraptors/smolraptor_serv.dmi similarity index 100% rename from modular_chomp/icons/mob/smallraptors/smolraptor_serv.dmi rename to icons/mob/robot/smallraptors/smolraptor_serv.dmi diff --git a/modular_chomp/icons/mob/smallraptors/source.txt b/icons/mob/robot/smallraptors/source.txt similarity index 100% rename from modular_chomp/icons/mob/smallraptors/source.txt rename to icons/mob/robot/smallraptors/source.txt diff --git a/icons/mob/robot/stoatborg.dmi b/icons/mob/robot/stoatborg.dmi new file mode 100644 index 0000000000..0e628ee1b2 Binary files /dev/null and b/icons/mob/robot/stoatborg.dmi differ diff --git a/icons/mob/robot/syndie_large.dmi b/icons/mob/robot/syndie_large.dmi index 12b34658d0..9962e4c977 100644 Binary files a/icons/mob/robot/syndie_large.dmi and b/icons/mob/robot/syndie_large.dmi differ diff --git a/modular_chomp/icons/mob/dullahanborg/tallrobot_effects.dmi b/icons/mob/robot/tallrobot/tallrobot_effects.dmi similarity index 100% rename from modular_chomp/icons/mob/dullahanborg/tallrobot_effects.dmi rename to icons/mob/robot/tallrobot/tallrobot_effects.dmi diff --git a/modular_chomp/icons/mob/tallborg/tallrobots-wide.dmi b/icons/mob/robot/tallrobot/tallrobots-wide.dmi similarity index 100% rename from modular_chomp/icons/mob/tallborg/tallrobots-wide.dmi rename to icons/mob/robot/tallrobot/tallrobots-wide.dmi diff --git a/modular_chomp/icons/mob/tallborg/tallrobots.dmi b/icons/mob/robot/tallrobot/tallrobots.dmi similarity index 100% rename from modular_chomp/icons/mob/tallborg/tallrobots.dmi rename to icons/mob/robot/tallrobot/tallrobots.dmi diff --git a/modular_chomp/icons/mob/widerobot_ch.dmi b/icons/mob/robot/widerobot/widerobot.dmi similarity index 100% rename from modular_chomp/icons/mob/widerobot_ch.dmi rename to icons/mob/robot/widerobot/widerobot.dmi diff --git a/modular_chomp/icons/mob/widerobot_car_ch.dmi b/icons/mob/robot/widerobot/widerobot_car.dmi similarity index 100% rename from modular_chomp/icons/mob/widerobot_car_ch.dmi rename to icons/mob/robot/widerobot/widerobot_car.dmi diff --git a/modular_chomp/icons/mob/widerobot_colors_ch.dmi b/icons/mob/robot/widerobot/widerobot_colors.dmi similarity index 100% rename from modular_chomp/icons/mob/widerobot_colors_ch.dmi rename to icons/mob/robot/widerobot/widerobot_colors.dmi diff --git a/modular_chomp/icons/mob/widerobot_exp_ch.dmi b/icons/mob/robot/widerobot/widerobot_exp.dmi similarity index 100% rename from modular_chomp/icons/mob/widerobot_exp_ch.dmi rename to icons/mob/robot/widerobot/widerobot_exp.dmi diff --git a/modular_chomp/icons/mob/wormborg.dmi b/icons/mob/robot/wormborg.dmi similarity index 100% rename from modular_chomp/icons/mob/wormborg.dmi rename to icons/mob/robot/wormborg.dmi diff --git a/icons/mob/tallborg/dullahans64x64.dmi b/icons/mob/tallborg/dullahans64x64.dmi deleted file mode 100644 index b78f4d543b..0000000000 Binary files a/icons/mob/tallborg/dullahans64x64.dmi and /dev/null differ diff --git a/modular_chomp/code/game/objects/items/weapons/id_cards.dm b/modular_chomp/code/game/objects/items/weapons/id_cards.dm deleted file mode 100644 index 1aedabb7b0..0000000000 --- a/modular_chomp/code/game/objects/items/weapons/id_cards.dm +++ /dev/null @@ -1,32 +0,0 @@ - -/obj/item/card/id/exploration/borg - var/mob/living/silicon/robot/R - var/last_robot_loc - name = "Robot Exploration ID" - rank = JOB_EXPLORER - -/obj/item/card/id/exploration/borg/Initialize() - . = ..() - if(isrobot(loc?.loc)) - R = loc.loc - registered_name = R.braintype - RegisterSignal(src, COMSIG_OBSERVER_MOVED, PROC_REF(check_loc)) - -/obj/item/card/id/exploration/borg/proc/check_loc(atom/movable/mover, atom/old_loc, atom/new_loc) - if(old_loc == R || old_loc == R.module) - last_robot_loc = old_loc - if(!istype(loc, /obj/machinery) && loc != R && loc != R.module) - if(last_robot_loc) - forceMove(last_robot_loc) - last_robot_loc = null - else - forceMove(R) - if(loc == R) - hud_layerise() - -/obj/item/card/id/exploration/borg/Destroy() - if(R) - UnregisterSignal(src, COMSIG_OBSERVER_MOVED) - R = null - last_robot_loc = null - ..() diff --git a/modular_chomp/code/modules/mob/living/silicon/robot/dogborg/dog_modules.dm b/modular_chomp/code/modules/mob/living/silicon/robot/dogborg/dog_modules.dm deleted file mode 100644 index 9851a67300..0000000000 --- a/modular_chomp/code/modules/mob/living/silicon/robot/dogborg/dog_modules.dm +++ /dev/null @@ -1,160 +0,0 @@ -/obj/item/robot_tongue/examine(user) - . = ..() - if(Adjacent(user)) - if(water.energy) - . += span_notice("[src] is wet. Just like it should be.") - if(water.energy < 5) - . += span_notice("[src] is dry.") - -/obj/item/shield_projector/line/exploborg - name = "expirmental shield projector" - description_info = "This creates a shield in a straight line perpendicular to the direction where the user was facing when it was activated. \ - The shield allows projectiles to leave from inside but blocks projectiles from outside. Everything else can pass through the shield freely, \ - including other people and thrown objects. The shield also cannot block certain effects which take place over an area, such as flashbangs or explosions." - shield_health = 90 - max_shield_health = 90 - shield_regen_amount = 25 - line_length = 7 // How long the line is. Recommended to be an odd number. - offset_from_center = 2 // How far from the projector will the line's center be. - -// To repair a single module -/obj/item/self_repair_system - name = "plating repair system" - desc = "A nanite control system to repair damaged armour plating and wiring while not moving. Destroyed armour can't be restored." - icon = 'icons/obj/robot_component.dmi' - icon_state = "armor" - var/repair_time = 25 - var/repair_amount = 2.5 - var/power_tick = 25 - var/disabled_icon = "armor" - var/active_icon = "armor_broken" - var/list/target_components = list("armour") - var/repairing = FALSE - -/obj/item/self_repair_system/New() - ..() - flags |= NOBLUDGEON - -/obj/item/self_repair_system/attack_self(mob/user) - if(repairing) - return - var/mob/living/silicon/robot/R = user - var/destroyed_components = FALSE - var/list/repairable_components = list() - for(var/target_component in target_components) - var/datum/robot_component/C = R.components[target_component] - if(!C) - continue - if(istype(C.wrapped, /obj/item/broken_device)) - destroyed_components = TRUE - else if (C.brute_damage != 0 || C.electronics_damage != 0) - repairable_components += C - if(!repairable_components.len && destroyed_components) - to_chat(R, span_warning("Repair system initialization failed. Can't repair destroyed [target_components.len == 1 ? "[R.components[target_components[1]]]'s" : "component's"] plating or wiring.")) - return - if(!repairable_components.len) - to_chat(R, span_warning("No brute or burn damage detected [target_components.len == 1 ? "in [R.components[target_components[1]]]" : ""].")) - return - if(destroyed_components) - to_chat(R, span_warning("WARNING! Destroyed modules detected. Those can not be repaired!")) - icon_state = active_icon - update_icon() - repairing = TRUE - for(var/datum/robot_component/C in repairable_components) - to_chat(R, span_notice("Repair system initializated. Repairing plating and wiring of [C].")) - src.self_repair(R, C, repair_time, repair_amount) - repairing = FALSE - icon_state = disabled_icon - update_icon() - -/obj/item/self_repair_system/proc/self_repair(mob/living/silicon/robot/R, datum/robot_component/C, var/tick_delay, var/heal_per_tick) - if(!C || !R.cell) - return - if(C.brute_damage == 0 && C.electronics_damage == 0) - to_chat(R, span_notice("Repair of [C] completed.")) - return - if(!R.use_direct_power(power_tick, 500)) //We don't want to drain ourselves too far down during exploration - to_chat(R, span_warning("Not enough power to initialize the repair system.")) - return - if(do_after(R, tick_delay)) - if(!C) - return - C.brute_damage -= min(C.brute_damage, heal_per_tick) - C.electronics_damage -= min(C.electronics_damage, heal_per_tick) - R.updatehealth() - src.self_repair(R, C, tick_delay, heal_per_tick) - -// To repair multiple modules -/obj/item/self_repair_system/advanced - name = "self repair system" - desc = "A nanite control system to repair damaged components while not moving. Destroyed components can't be restored." - target_components = list("actuator", "radio", "power cell", "diagnosis unit", "camera", "comms", "armour") - power_tick = 10 - repair_time = 15 - repair_amount = 3 - -// Robot Weapons -/obj/item/gun/energy/robotic/flare - name = "flare gun" - desc = "A flare-gun" - projectile_type = /obj/item/projectile/energy/flash/flare - fire_sound = 'sound/weapons/tablehit1.ogg' - icon = 'icons/obj/gun.dmi' - icon_state = "taser" - charge_cost = 480 - borg_flags = COUNTS_AS_ROBOT_GUN | COUNTS_AS_ROBOT_TASER - -/obj/item/gun/energy/robotic/smallmedigun - name = "borg directed restoration system" - desc = "An adapted version of the BL-3 'Phoenix, for expiremental useage in borgs." - projectile_type = /obj/item/projectile/beam/medical_cell/borg - accept_cell_type = /obj/item/cell/device - cell_type = /obj/item/cell/device/weapon - charge_cost = 600 - fire_delay = 6 - force = 5 - icon_state = "medbeam" - icon = 'icons/obj/gun_vr.dmi' - accuracy = 100 - fire_sound = 'sound/weapons/eluger.ogg' - self_recharge = 1 - use_external_power = 1 - -/obj/item/projectile/beam/medical_cell/borg - range = 4 - -/obj/item/projectile/beam/medical_cell/borg/on_hit(var/mob/living/carbon/human/target) - if(istype(target, /mob/living/carbon/human)) - if(target.stat != DEAD) - target.adjustBruteLoss(-3.75) - target.adjustFireLoss(-3.75) - else - return 1 - -/obj/item/melee/robotic/blade/explotailspear - name = "energy tail" - desc = "A glowing tail spear with a moderate range. It appears to be extremely sharp." - force = 45 - armor_penetration = 25 //30 to try and make it not useless against armored mobs but not fully nullify it. - reach = 3 - projectile_parry_chance = 15. - -/obj/item/melee/robotic/jaws/big/explojaws - name = "explo jaws" - desc = "Highly lethal jaws for close range combat." - force = 60 - armor_penetration = 25 //To try and make it not useless against armored mobs but not fully nullify it - projectile_parry_chance = 15 - -/obj/item/gun/energy/robotic/phasegun - name = "EW26 Artemis Mounted" - desc = "The RayZar EW26 Artemis, also known as the 'phase carbine', is a downsized energy-based weapon specifically designed for use against wildlife. This one has a safety interlock that prevents firing while in proximity to the facility." //ChompEDIT - description_fluff = "RayZar is Ward-Takahashi’s main consumer weapons brand, known for producing and licensing a wide variety of specialist energy weapons of various types and quality primarily for the civilian market." - icon = 'icons/obj/gun.dmi' - icon_state = "phasecarbine" - charge_cost = 160 - recharge_time = 16 - projectile_type = /obj/item/projectile/energy/phase - use_external_power = 1 - self_recharge = 1 - borg_flags = COUNTS_AS_ROBOT_GUN | COUNTS_AS_ROBOT_LASER diff --git a/modular_chomp/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper.dm b/modular_chomp/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper.dm deleted file mode 100644 index fac7e5e707..0000000000 --- a/modular_chomp/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper.dm +++ /dev/null @@ -1,9 +0,0 @@ -/obj/item/dogborg/sleeper/exploration - name = "Store-Belly" - desc = "Equipment for a ExploreHound unit. A mounted portable-storage device that holds supplies/person." - icon_state = "sleeperlost" - injection_chems = list(REAGENT_ID_INAPROVALINE) // Only to stabilize during extractions - compactor = TRUE - max_item_count = 4 - medsensor = FALSE - recycles = TRUE diff --git a/modular_chomp/code/modules/mob/living/silicon/robot/sprites/civilian.dm b/modular_chomp/code/modules/mob/living/silicon/robot/sprites/civilian.dm deleted file mode 100644 index 1ba01083f7..0000000000 --- a/modular_chomp/code/modules/mob/living/silicon/robot/sprites/civilian.dm +++ /dev/null @@ -1,49 +0,0 @@ -/datum/robot_sprite/dogborg/service/valech - name = "ServicehoundV2 - Alt" - sprite_icon = 'modular_chomp/icons/mob/widerobot_ch.dmi' - sprite_icon_state = "servborg" - rest_sprite_options = list("Default") - has_eye_light_sprites = TRUE - -/datum/robot_sprite/dogborg/service/cat - name = "Cat" - sprite_icon = 'modular_chomp/icons/mob/catborg/catborg.dmi' - sprite_icon_state = "vixserv" - has_vore_belly_resting_sprites = TRUE - has_eye_light_sprites = TRUE - -/datum/robot_sprite/dogborg/tall/service/mekaserve_alt - sprite_icon = 'modular_chomp/icons/mob/tallborg/tallrobots.dmi' - name = "MEKA Alt" - pixel_x = 0 - sprite_icon_state = "mekaserve_alt" - rest_sprite_options = list("Default", "Sit") - - -/datum/robot_sprite/dogborg/tall/service/dullahan - sprite_icon = 'modular_chomp/icons/mob/dullahanborg/dullahan_serv.dmi' - pixel_x = 0 - -/datum/robot_sprite/dogborg/tall/service/dullahan/service - name = "Dullahan" - sprite_icon_state = "dullahanserv" - rest_sprite_options = list("Default", "Sit") - has_eye_light_sprites = TRUE - has_vore_belly_sprites = TRUE - -/datum/robot_sprite/dogborg/tall/service/dullahan/servicealt - name = "Dullahan v2" - sprite_icon_state = "dullahanserv_alt" - rest_sprite_options = list("Default", "Sit") - has_eye_light_sprites = TRUE - has_vore_belly_sprites = TRUE - -/datum/robot_sprite/dogborg/service/smolraptorservicesprite - sprite_icon = 'modular_chomp/icons/mob/smallraptors/smolraptor_serv.dmi' - -/datum/robot_sprite/dogborg/service/smolraptorservicesprite/smolraptorserv - name = "Small Raptor" - sprite_icon_state = "smolraptor" - has_eye_light_sprites = TRUE - has_vore_belly_sprites = TRUE - rest_sprite_options = list("Default", "Sit") diff --git a/modular_chomp/code/modules/mob/living/silicon/robot/sprites/clown.dm b/modular_chomp/code/modules/mob/living/silicon/robot/sprites/clown.dm deleted file mode 100644 index 92c082c50b..0000000000 --- a/modular_chomp/code/modules/mob/living/silicon/robot/sprites/clown.dm +++ /dev/null @@ -1,34 +0,0 @@ -/datum/robot_sprite/dogborg/clown - module_type = "Clown" - sprite_icon = 'modular_chomp/icons/mob/widerobot_ch.dmi' - -/datum/robot_sprite/dogborg/clown/vale - name = "Honkhound V2" - sprite_icon_state = "honkborg" - has_eye_light_sprites = TRUE - -/datum/robot_sprite/dogborg/tall/clown - module_type = "Clown" - sprite_icon = 'modular_chomp/icons/mob/tallborg/tallrobots.dmi' - pixel_x = 0 - -/datum/robot_sprite/dogborg/tall/clown/k4t - name = "K4T" - sprite_icon_state = "k4tclown" - has_eye_light_sprites = TRUE - has_custom_open_sprites = TRUE - has_vore_belly_sprites = FALSE - rest_sprite_options = list("Default", "Bellyup") - -/datum/robot_sprite/dogborg/tall/clown/dullahan - sprite_icon = 'modular_chomp/icons/mob/dullahanborg/dullahan_clown.dmi' - pixel_x = 0 - -/datum/robot_sprite/dogborg/tall/clown/dullahan/clown - name = "Dullahan Clown" - sprite_icon = 'modular_chomp/icons/mob/dullahanborg/dullahan_clown.dmi' - sprite_icon_state = "dullahanclown" - has_eye_light_sprites = TRUE - has_vore_belly_sprites = TRUE - rest_sprite_options = list("Default", "Sit") - pixel_x = 0 diff --git a/modular_chomp/code/modules/mob/living/silicon/robot/sprites/combat.dm b/modular_chomp/code/modules/mob/living/silicon/robot/sprites/combat.dm deleted file mode 100644 index 923e85a7ef..0000000000 --- a/modular_chomp/code/modules/mob/living/silicon/robot/sprites/combat.dm +++ /dev/null @@ -1,57 +0,0 @@ -/datum/robot_sprite/dogborg/tall/combat/ch - module_type = "Combat" - sprite_icon = 'modular_chomp/icons/mob/tallborg/tallrobots.dmi' - pixel_x = 0 - -/datum/robot_sprite/dogborg/tall/combat/ch/meka - name = "MEKA" - sprite_icon_state = "mekasyndi" - has_vore_belly_sprites = TRUE - -/datum/robot_sprite/dogborg/tall/combat/ch/mmeka - name = "NIKO" - sprite_icon_state = "mmekasyndi" - has_vore_belly_sprites = TRUE - -/datum/robot_sprite/dogborg/tall/combat/ch/fmeka - name = "NIKA" - sprite_icon_state = "fmekasyndi" - has_vore_belly_sprites = TRUE - -/datum/robot_sprite/dogborg/tall/combat/ch/k4t - name = "K4T" - sprite_icon_state = "k4tsyndi" - has_vore_belly_sprites = FALSE - -//Using our own category wide here not to interfere with upstream in case they add wide sprites under just dogborg. -/datum/robot_sprite/dogborg/wide/combat - module_type = "Combat" - has_custom_equipment_sprites = TRUE - has_eye_sprites = FALSE - -/datum/robot_sprite/dogborg/wide/combat/blade/do_equipment_glamour(var/obj/item/robot_module/module) - if(!has_custom_equipment_sprites) - return - - ..() - - var/obj/item/melee/robotic/blade/CBB = locate() in module.modules - if(CBB) - CBB.name = "combat saw" - CBB.desc = "A high frequency blade attached to the end of a cyborg's tail. It appears to be extremely sharp." - var/obj/item/melee/robotic/borg_combat_shocker/BCS = locate() in module.modules - if(BCS) - BCS.name = "combat jaws" - BCS.desc = "Shockingly chompy!" - BCS.icon_state = "ertjaws" - BCS.hitsound = 'sound/weapons/bite.ogg' - BCS.attack_verb = list("chomped", "bit", "ripped", "mauled", "enforced") - BCS.dogborg = TRUE - -/datum/robot_sprite/dogborg/wide/combat/blade - sprite_icon = 'modular_chomp/icons/mob/widerobot_ch.dmi' - name = "Blade" - sprite_icon_state = "blade" - sprite_hud_icon_state = "ert" - rest_sprite_options = list() - sprite_flags = ROBOT_HAS_LASER_SPRITE | ROBOT_HAS_DISABLER_SPRITE | ROBOT_HAS_DAGGER_SPRITE diff --git a/modular_chomp/code/modules/mob/living/silicon/robot/sprites/command.dm b/modular_chomp/code/modules/mob/living/silicon/robot/sprites/command.dm deleted file mode 100644 index 6e22297159..0000000000 --- a/modular_chomp/code/modules/mob/living/silicon/robot/sprites/command.dm +++ /dev/null @@ -1,62 +0,0 @@ -/datum/robot_sprite/dogborg/command - module_type = "Command" - sprite_icon = 'modular_chomp/icons/mob/widerobot_ch.dmi' - -/datum/robot_sprite/dogborg/command/vale - name = "Commandhound V2" - sprite_icon_state = "kcom" - has_eye_light_sprites = TRUE - -/datum/robot_sprite/dogborg/command/borgi - name = "Borgi" - sprite_icon_state = "borgi" - has_eye_light_sprites = TRUE - -/datum/robot_sprite/dogborg/tall/command - module_type = "Command" - sprite_icon = 'modular_chomp/icons/mob/tallborg/tallrobots.dmi' - pixel_x = 0 - -/datum/robot_sprite/dogborg/raptor/command - module_type = "Command" - sprite_icon = 'modular_chomp/icons/mob/raptorborg/raptor_ch.dmi' - -/datum/robot_sprite/dogborg/raptor/command/raptor - name = "Raptor" - sprite_icon_state = "chraptor" - has_custom_equipment_sprites = TRUE - rest_sprite_options = list("Default", "Bellyup") - -/datum/robot_sprite/dogborg/tall/command/meka - name = "MEKA" - sprite_icon_state = "mekaunity" - has_eye_light_sprites = TRUE - has_custom_open_sprites = TRUE - has_vore_belly_sprites = TRUE - rest_sprite_options = list("Default", "Sit") - -/datum/robot_sprite/dogborg/tall/command/mmeka - name = "NIKO" - sprite_icon_state = "mmekaunity" - has_eye_light_sprites = TRUE - has_custom_open_sprites = TRUE - has_vore_belly_sprites = TRUE - rest_sprite_options = list("Default", "Sit") - -/datum/robot_sprite/dogborg/tall/command/fmeka - name = "NIKA" - sprite_icon_state = "fmekaunity" - has_eye_light_sprites = TRUE - has_custom_open_sprites = TRUE - has_vore_belly_sprites = TRUE - rest_sprite_options = list("Default", "Sit") - -/datum/robot_sprite/dogborg/command/smolraptorcommandsprite - sprite_icon = 'modular_chomp/icons/mob/smallraptors/smolraptor_cc.dmi' - -/datum/robot_sprite/dogborg/command/smolraptorcommandsprite/smolraptorcommand - name = "Small Raptor" - sprite_icon_state = "smolraptor" - has_eye_light_sprites = TRUE - has_vore_belly_sprites = TRUE - rest_sprite_options = list("Default", "Sit") diff --git a/modular_chomp/code/modules/mob/living/silicon/robot/sprites/engineering.dm b/modular_chomp/code/modules/mob/living/silicon/robot/sprites/engineering.dm deleted file mode 100644 index f7d41679e8..0000000000 --- a/modular_chomp/code/modules/mob/living/silicon/robot/sprites/engineering.dm +++ /dev/null @@ -1,37 +0,0 @@ -/datum/robot_sprite/dogborg/engineering/cat - name = "Cat" - sprite_icon = 'modular_chomp/icons/mob/catborg/catborg.dmi' - sprite_icon_state = "vixengi" - has_eye_light_sprites = TRUE - has_vore_belly_resting_sprites = TRUE - -/datum/robot_sprite/dogborg/tall/engineering - module_type = "Engineering" - -/datum/robot_sprite/dogborg/tall/engineering/dullahan - sprite_icon = 'modular_chomp/icons/mob/dullahanborg/dullahan_eng.dmi' - pixel_x = 0 - -/datum/robot_sprite/dogborg/tall/engineering/dullahan/engineerv1 - name = "Dullahan" - sprite_icon_state = "dullahaneng" - rest_sprite_options = list("Default", "Sit") - has_eye_light_sprites = TRUE - has_vore_belly_sprites = TRUE - -/datum/robot_sprite/dogborg/tall/engineering/dullahan/engineerv2 - name = "Dullahan v2" - sprite_icon_state = "dullahaneng_alt" - rest_sprite_options = list("Default", "Sit") - has_eye_light_sprites = TRUE - has_vore_belly_sprites = TRUE - -/datum/robot_sprite/dogborg/engineering/smolraptorengineeringsprite - sprite_icon = 'modular_chomp/icons/mob/smallraptors/smolraptor_eng.dmi' - -/datum/robot_sprite/dogborg/engineering/smolraptorengineeringsprite/smolraptorengi - name = "Small Raptor" - sprite_icon_state = "smolraptor" - has_eye_light_sprites = TRUE - has_vore_belly_sprites = TRUE - rest_sprite_options = list("Default", "Sit") diff --git a/modular_chomp/code/modules/mob/living/silicon/robot/sprites/event.dm b/modular_chomp/code/modules/mob/living/silicon/robot/sprites/event.dm deleted file mode 100644 index 3d0445b5ed..0000000000 --- a/modular_chomp/code/modules/mob/living/silicon/robot/sprites/event.dm +++ /dev/null @@ -1 +0,0 @@ -// Event/special borg sprites diff --git a/modular_chomp/code/modules/mob/living/silicon/robot/sprites/janitor.dm b/modular_chomp/code/modules/mob/living/silicon/robot/sprites/janitor.dm deleted file mode 100644 index 2fa8ffbb5e..0000000000 --- a/modular_chomp/code/modules/mob/living/silicon/robot/sprites/janitor.dm +++ /dev/null @@ -1,43 +0,0 @@ -// Wide/dogborg sprites - -/datum/robot_sprite/dogborg/janitor - module_type = "Janitor" - sprite_icon = 'icons/mob/robot/janitor_wide.dmi' - -/datum/robot_sprite/dogborg/janitor/cat - name = "Cat" - sprite_icon = 'modular_chomp/icons/mob/catborg/catborg.dmi' - sprite_icon_state = "vixjani" - has_vore_belly_resting_sprites = TRUE - has_eye_light_sprites = TRUE - - -/datum/robot_sprite/dogborg/tall/janitor/dullahan - module_type = "Janitor" - sprite_icon = 'modular_chomp/icons/mob/dullahanborg/dullahan_jani.dmi' - pixel_x = 0 - -/datum/robot_sprite/dogborg/tall/janitor/dullahan/janitor - name = "Dullahan" - sprite_icon_state = "dullahanjani" - has_eye_light_sprites = TRUE - has_vore_belly_sprites = TRUE - rest_sprite_options = list("Default", "Sit") - -/datum/robot_sprite/dogborg/tall/janitor/dullahan/janitoralt - name = "Dullahan v2" - sprite_icon_state = "dullahanjani_alt" - has_eye_light_sprites = TRUE - has_vore_belly_sprites = TRUE - rest_sprite_options = list("Default", "Sit") - -/datum/robot_sprite/dogborg/smolraptorjanitorsprite - sprite_icon = 'modular_chomp/icons/mob/smallraptors/smolraptor_jani.dmi' - module_type = "Janitor" - -/datum/robot_sprite/dogborg/smolraptorjanitorsprite/smolraptorjani - name = "Small Raptor" - sprite_icon_state = "smolraptor" - has_eye_light_sprites = TRUE - has_vore_belly_sprites = TRUE - rest_sprite_options = list("Default", "Sit") diff --git a/modular_chomp/code/modules/mob/living/silicon/robot/sprites/medical.dm b/modular_chomp/code/modules/mob/living/silicon/robot/sprites/medical.dm deleted file mode 100644 index fc87f25490..0000000000 --- a/modular_chomp/code/modules/mob/living/silicon/robot/sprites/medical.dm +++ /dev/null @@ -1,132 +0,0 @@ -//Medical into Crisis type merge -/datum/robot_sprite/surgical - module_type = "Crisis" - -/datum/robot_sprite/dogborg/surgical - module_type = "Crisis" - -// Tall sprites - -/datum/robot_sprite/dogborg/tall/surgical - module_type = "Crisis" - sprite_icon = 'icons/mob/robot/surgical_large.dmi' - - -//sprite name overwrites -/datum/robot_sprite/surgical/toiletbot - name = "Telemachus - Surgical" - -/datum/robot_sprite/surgical/sleek - name = "WTOperator - Surgical" - -/datum/robot_sprite/surgical/drone - name = "AG Model - Surgical" - -/datum/robot_sprite/surgical/glitterfly - name = "Pyralis - Surgical" - -/datum/robot_sprite/surgical/decapod - name = "Decapod - Surgical" - -/datum/robot_sprite/surgical/pneuma - name = "Pneum - Surgical" - -/datum/robot_sprite/surgical/zoomba - name = "ZOOM-BA - Surgical" - -/datum/robot_sprite/surgical/uptall - name = "Feminine Humanoid - Surgical" - -/datum/robot_sprite/dogborg/surgical/borgi - name = "Borgi - Surgical" - -/datum/robot_sprite/dogborg/surgical/drake - name = "Drake - Surgical" - -/datum/robot_sprite/dogborg/tall/surgical/raptor - name = "Raptor V-4 - Surgical" - -/datum/robot_sprite/crisis/toiletbot - name = "Telemachus - Crisis" - -/datum/robot_sprite/crisis/sleek - name = "WTOperator - Crisis" - -/datum/robot_sprite/crisis/glitterfly - name = "Pyralis - Crisis" - -/datum/robot_sprite/crisis/decapod - name = "Decapod - Crisis" - -/datum/robot_sprite/crisis/pneuma - name = "Pneuma - Crisis" - -/datum/robot_sprite/crisis/zoomba - name = "ZOOM-BA - Crisis" - -/datum/robot_sprite/crisis/uptall - name = "Feminine Humanoid - Crisis" - -/datum/robot_sprite/dogborg/crisis/borgi - name = "Borgi - Crisis" - -/datum/robot_sprite/dogborg/crisis/drake - name = "Drake - Crisis" - -/datum/robot_sprite/dogborg/tall/crisis/raptor - name = "Raptor V-4 - Crisis" - -//Added sprites -/datum/robot_sprite/dogborg/crisis/vale2 - name = "Mediborg Model V-3" - sprite_icon = 'modular_chomp/icons/mob/widerobot_ch.dmi' - sprite_icon_state = "vale2" - sprite_hud_icon_state = "medihound" - has_eye_light_sprites = TRUE - has_sleeper_light_indicator = TRUE - -/datum/robot_sprite/dogborg/crisis/cat - name = "Cat" - sprite_icon = 'modular_chomp/icons/mob/catborg/catborg.dmi' - sprite_icon_state = "vixmed" - has_vore_belly_resting_sprites = TRUE - has_eye_light_sprites = TRUE - has_sleeper_light_indicator = TRUE - -/datum/robot_sprite/surgical/worm - name = "W02M - Surgical" - sprite_icon_state = "worm-surgeon" - has_custom_open_sprites = TRUE - sprite_icon = 'modular_chomp/icons/mob/wormborg.dmi' - has_vore_belly_sprites = TRUE - has_dead_sprite = TRUE - - -/datum/robot_sprite/dogborg/tall/crisis/dullahan - module_type = "Crisis" - sprite_icon = 'modular_chomp/icons/mob/dullahanborg/dullahan_med.dmi' - pixel_x = 0 -/datum/robot_sprite/dogborg/tall/crisis/dullahan/crisis - name = "Dullahan" - sprite_icon_state = "dullahanmed" - has_eye_light_sprites = TRUE - has_vore_belly_sprites = TRUE - rest_sprite_options = list("Default", "Sit") - -/datum/robot_sprite/dogborg/tall/crisis/dullahan/crisisalt - name = "Dullahan v2" - sprite_icon_state = "dullahanmed_alt" - has_eye_light_sprites = TRUE - has_vore_belly_sprites = TRUE - rest_sprite_options = list("Default", "Sit") - -/datum/robot_sprite/dogborg/smolraptor - sprite_icon = 'modular_chomp/icons/mob/smallraptors/smolraptor_med.dmi' - module_type = "Crisis" - -/datum/robot_sprite/dogborg/smolraptor/crisis - name = "Small Raptor" - sprite_icon_state = "smolraptor" - has_eye_light_sprites = TRUE - has_vore_belly_sprites = TRUE - rest_sprite_options = list("Default", "Sit") diff --git a/modular_chomp/code/modules/mob/living/silicon/robot/sprites/mining.dm b/modular_chomp/code/modules/mob/living/silicon/robot/sprites/mining.dm deleted file mode 100644 index 1b1e8d7009..0000000000 --- a/modular_chomp/code/modules/mob/living/silicon/robot/sprites/mining.dm +++ /dev/null @@ -1,131 +0,0 @@ -/datum/robot_sprite/dogborg/mining/cat - name = "Cat - Mining" - sprite_icon = 'modular_chomp/icons/mob/catborg/catborg.dmi' - sprite_icon_state = "vixmine" - has_vore_belly_resting_sprites = TRUE - has_eye_light_sprites = TRUE - -/datum/robot_sprite/dogborg/mining/catcargo - name = "Cat - Cargo" - sprite_icon = 'modular_chomp/icons/mob/catborg/catborg.dmi' - sprite_icon_state = "vixcargo" - has_vore_belly_resting_sprites = TRUE - has_eye_light_sprites = TRUE - -//sprite name overwrites -/datum/robot_sprite/dogborg/tall/mining/meka - name = "MEKA - Mining" - -/datum/robot_sprite/dogborg/tall/mining/newmeka - name = "MEKA v2 - Mining" - -/datum/robot_sprite/dogborg/tall/mining/mmeka - name = "NIKO - Mining" - -/datum/robot_sprite/dogborg/tall/mining/fmeka - name = "NIKA - Mining" - -/datum/robot_sprite/dogborg/tall/mining/k4t - name = "K4T - Mining" - -/datum/robot_sprite/dogborg/tall/mining/k4t_alt1 - name = "K4Talt - Mining" - -//Upstream does not have those, if we want them, we should add them on top now -/datum/robot_sprite/dogborg/tall/mining/ch - sprite_icon = 'modular_chomp/icons/mob/tallborg/tallrobots.dmi' - pixel_x = 0 - -/datum/robot_sprite/dogborg/tall/mining/ch/mekacargo - name = "MEKA - Cargo" - sprite_icon_state = "mekacargo" - has_eye_light_sprites = TRUE - has_vore_belly_sprites = FALSE - rest_sprite_options = list("Default", "Sit") - -/datum/robot_sprite/dogborg/tall/mining/ch/mmekacargo - name = "NIKO - Cargo" - sprite_icon_state = "mmekacargo" - has_eye_light_sprites = TRUE - has_sleeper_light_indicator = TRUE - rest_sprite_options = list("Default", "Sit") - -/datum/robot_sprite/dogborg/tall/mining/ch/fmekacargo - name = "NIKA - Cargo" - sprite_icon_state = "fmekacargo" - has_eye_light_sprites = TRUE - has_sleeper_light_indicator = TRUE - rest_sprite_options = list("Default", "Sit") - -/datum/robot_sprite/dogborg/tall/mining/ch/k4tcargo - name = "K4T - Cargo" - sprite_icon_state = "k4tcargo" - has_eye_light_sprites = TRUE - has_vore_belly_sprites = FALSE - rest_sprite_options = list("Default", "Bellyup") - -/datum/robot_sprite/dogborg/tall/mining/ch/k4t_alt1cargo - name = "K4Talt - Cargo" - sprite_icon_state = "k4tcargo_alt1" - has_eye_light_sprites = TRUE - has_vore_belly_sprites = FALSE - rest_sprite_options = list("Default", "Bellyup") - -/datum/robot_sprite/dogborg/tall/mining/dullahan - sprite_icon = 'modular_chomp/icons/mob/dullahanborg/dullahan_mine.dmi' - pixel_x = 0 - -/datum/robot_sprite/dogborg/tall/mining/dullahan/miner - name = "Dullahan Mining unit" - sprite_icon_state = "dullahanmine" - has_eye_light_sprites = TRUE - has_custom_open_sprites = TRUE - has_vore_belly_sprites = TRUE - rest_sprite_options = list("Default", "Sit") - -/datum/robot_sprite/dogborg/tall/mining/dullahan/mineralt - name = "Dullahan Mining unit v2" - sprite_icon_state = "dullahanmine_alt" - has_eye_light_sprites = TRUE - has_custom_open_sprites = TRUE - has_vore_belly_sprites = TRUE - rest_sprite_options = list("Default", "Sit") - -/datum/robot_sprite/dogborg/tall/mining/dullahancarg - sprite_icon = 'modular_chomp/icons/mob/dullahanborg/dullahan_cargo.dmi' - pixel_x = 0 - -/datum/robot_sprite/dogborg/tall/mining/dullahancarg/cargo - name = "Dullahan Cargo" - sprite_icon_state = "dullahancargo" - has_eye_light_sprites = TRUE - has_vore_belly_sprites = TRUE - rest_sprite_options = list("Default", "Sit") - -/datum/robot_sprite/dogborg/tall/mining/dullahancarg/cargoalt - name = "Dullahan Cargo v2" - sprite_icon_state = "dullahancargo_alt" - has_eye_light_sprites = TRUE - has_vore_belly_sprites = TRUE - rest_sprite_options = list("Default", "Sit") - -/datum/robot_sprite/dogborg/mining/smolraptorminer - sprite_icon = 'modular_chomp/icons/mob/smallraptors/smolraptor_min.dmi' - -/datum/robot_sprite/dogborg/mining/smolraptorcargo - sprite_icon = 'modular_chomp/icons/mob/smallraptors/smolraptor_car.dmi' - - -/datum/robot_sprite/dogborg/mining/smolraptorminer/miner - name = "Small Raptor Miner" - sprite_icon_state = "smolraptor" - has_eye_light_sprites = TRUE - has_vore_belly_sprites = TRUE - rest_sprite_options = list("Default", "Sit") - -/datum/robot_sprite/dogborg/mining/smolraptorcargo/cargo - name = "Small Raptor Cargo" - sprite_icon_state = "smolraptor" - has_eye_light_sprites = TRUE - has_vore_belly_sprites = TRUE - rest_sprite_options = list("Default", "Sit") diff --git a/modular_chomp/code/modules/mob/living/silicon/robot/sprites/science.dm b/modular_chomp/code/modules/mob/living/silicon/robot/sprites/science.dm deleted file mode 100644 index 146a94266f..0000000000 --- a/modular_chomp/code/modules/mob/living/silicon/robot/sprites/science.dm +++ /dev/null @@ -1,40 +0,0 @@ - - -/datum/robot_sprite/dogborg/science/cat - name = "Cat" - sprite_icon = 'modular_chomp/icons/mob/catborg/catborg.dmi' - sprite_icon_state = "vixsci" - sprite_hud_icon_state = "sci-borg" - has_vore_belly_resting_sprites = TRUE - has_eye_light_sprites = TRUE - - - -/datum/robot_sprite/dogborg/tall/science/dullahan - sprite_icon = 'modular_chomp/icons/mob/dullahanborg/dullahan_sci.dmi' - pixel_x = 0 - -/datum/robot_sprite/dogborg/tall/science/dullahan/sci - name = "Dullahan" - sprite_icon_state = "dullahansci" - sprite_hud_icon_state = "sci-borg" - has_vore_belly_sprites = TRUE - has_eye_light_sprites = TRUE - -/datum/robot_sprite/dogborg/tall/science/dullahan/scialt - name = "Dullahan v2" - sprite_icon_state = "dullahansci_alt" - sprite_hud_icon_state = "sci-borg" - has_vore_belly_sprites = TRUE - has_eye_light_sprites = TRUE - -/datum/robot_sprite/dogborg/science/smolraptor - sprite_icon = 'modular_chomp/icons/mob/smallraptors/smolraptor_sci.dmi' - - -/datum/robot_sprite/dogborg/science/smolraptor/sci - name = "Small Raptor" - sprite_icon_state = "smolraptor" - has_eye_light_sprites = TRUE - has_vore_belly_sprites = TRUE - rest_sprite_options = list("Default", "Sit") diff --git a/modular_chomp/code/modules/mob/living/silicon/robot/sprites/security.dm b/modular_chomp/code/modules/mob/living/silicon/robot/sprites/security.dm deleted file mode 100644 index c009b7206a..0000000000 --- a/modular_chomp/code/modules/mob/living/silicon/robot/sprites/security.dm +++ /dev/null @@ -1,42 +0,0 @@ -/datum/robot_sprite/dogborg/security/vale2 - name = "Secborg model V-3" - sprite_icon = 'modular_chomp/icons/mob/widerobot_ch.dmi' - sprite_icon_state = "secvale" - sprite_hud_icon_state = "k9" - has_eye_light_sprites = TRUE - -/datum/robot_sprite/dogborg/security/cat - name = "Cat" - sprite_icon = 'modular_chomp/icons/mob/catborg/catborg.dmi' - sprite_icon_state = "vixsec" - sprite_hud_icon_state = "k9" - has_eye_light_sprites = TRUE - - -/datum/robot_sprite/dogborg/tall/security/dullahan - sprite_icon = 'modular_chomp/icons/mob/dullahanborg/dullahan_sec.dmi' - pixel_x = 0 - -/datum/robot_sprite/dogborg/tall/security/dullahan/sec - name = "Dullahan" - sprite_icon_state = "dullahansec" - sprite_hud_icon_state = "k9" - has_eye_light_sprites = TRUE - has_vore_belly_sprites = TRUE - -/datum/robot_sprite/dogborg/tall/security/dullahan/secalt - name = "Dullahan v2" - sprite_icon_state = "dullahansec_alt" - sprite_hud_icon_state = "k9" - has_eye_light_sprites = TRUE - has_vore_belly_sprites = TRUE - -/datum/robot_sprite/dogborg/security/smolraptor - sprite_icon = 'modular_chomp/icons/mob/smallraptors/smolraptor_pk.dmi' - -/datum/robot_sprite/dogborg/security/smolraptor/sec - name = "Small Raptor" - sprite_icon_state = "smolraptor" - has_eye_light_sprites = TRUE - has_vore_belly_sprites = TRUE - rest_sprite_options = list("Default", "Sit") diff --git a/modular_chomp/code/modules/mob/living/silicon/robot/sprites/standard.dm b/modular_chomp/code/modules/mob/living/silicon/robot/sprites/standard.dm deleted file mode 100644 index cbf05e7080..0000000000 --- a/modular_chomp/code/modules/mob/living/silicon/robot/sprites/standard.dm +++ /dev/null @@ -1,17 +0,0 @@ - -// Wide/dogborg sprites -/* -/datum/robot_sprite/dogborg/standard - module_type = "Standard" - sprite_icon = 'icons/mob/robot/standard_wide.dmi' - - // None yet -*/ -// Tall sprites -/* -/datum/robot_sprite/dogborg/tall/standard - module_type = "Standard" - sprite_icon = 'icons/mob/robot/standard_large.dmi' - - // None yet -*/ diff --git a/modular_chomp/code/modules/mob/living/silicon/robot/sprites/syndicate.dm b/modular_chomp/code/modules/mob/living/silicon/robot/sprites/syndicate.dm deleted file mode 100644 index 631421aa6c..0000000000 --- a/modular_chomp/code/modules/mob/living/silicon/robot/sprites/syndicate.dm +++ /dev/null @@ -1,9 +0,0 @@ - -/datum/robot_sprite/dogborg/tall/combat_medic/dullahancombatmedic - name = "Dullahan Combat Medic" - sprite_icon = 'modular_chomp/icons/mob/dullahanborg/dullahan_syndie.dmi' - sprite_icon_state = "dullahansyndi" - has_eye_light_sprites = TRUE - has_vore_belly_sprites = TRUE - rest_sprite_options = list("Default", "Sit") - pixel_x = 0 diff --git a/modular_chomp/icons/mob/dogborg_ch.dmi b/modular_chomp/icons/mob/dogborg_ch.dmi deleted file mode 100644 index d26acf669e..0000000000 Binary files a/modular_chomp/icons/mob/dogborg_ch.dmi and /dev/null differ diff --git a/modular_chomp/icons/mob/dullahanborg/dullahan_mine.dmi b/modular_chomp/icons/mob/dullahanborg/dullahan_mine.dmi deleted file mode 100644 index 3ed1cf1ef1..0000000000 Binary files a/modular_chomp/icons/mob/dullahanborg/dullahan_mine.dmi and /dev/null differ diff --git a/modular_chomp/icons/mob/raptorborg/raptor.dmi b/modular_chomp/icons/mob/raptorborg/raptor.dmi deleted file mode 100644 index 261ff26b6d..0000000000 Binary files a/modular_chomp/icons/mob/raptorborg/raptor.dmi and /dev/null differ diff --git a/vorestation.dme b/vorestation.dme index fec9a13bec..cdc4093a50 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -3422,12 +3422,11 @@ #include "code\modules\mob\living\silicon\robot\robot_modules\station.dm" #include "code\modules\mob\living\silicon\robot\robot_modules\swarm.dm" #include "code\modules\mob\living\silicon\robot\robot_modules\syndicate.dm" -#include "code\modules\mob\living\silicon\robot\robot_modules\Widerobot_Clown_ch.dm" -#include "code\modules\mob\living\silicon\robot\robot_modules\Widerobot_Command_ch.dm" #include "code\modules\mob\living\silicon\robot\sprites\_sprite_datum.dm" #include "code\modules\mob\living\silicon\robot\sprites\catborgs.dm" #include "code\modules\mob\living\silicon\robot\sprites\civilian.dm" #include "code\modules\mob\living\silicon\robot\sprites\combat.dm" +#include "code\modules\mob\living\silicon\robot\sprites\command.dm" #include "code\modules\mob\living\silicon\robot\sprites\engineering.dm" #include "code\modules\mob\living\silicon\robot\sprites\event.dm" #include "code\modules\mob\living\silicon\robot\sprites\fluff.dm" @@ -3441,6 +3440,8 @@ #include "code\modules\mob\living\silicon\robot\subtypes\gravekeeper.dm" #include "code\modules\mob\living\silicon\robot\subtypes\lost_drone.dm" #include "code\modules\mob\living\silicon\robot\subtypes\syndicate.dm" +#include "code\modules\mob\living\silicon\robot\subtypes\exploration\exploration-modules.dm" +#include "code\modules\mob\living\silicon\robot\subtypes\exploration\exploration-sprites.dm" #include "code\modules\mob\living\silicon\robot\subtypes\thinktank\_thinktank.dm" #include "code\modules\mob\living\silicon\robot\subtypes\thinktank\thinktank_icon.dm" #include "code\modules\mob\living\silicon\robot\subtypes\thinktank\thinktank_interactions.dm" @@ -4737,6 +4738,7 @@ #include "code\unit_tests\reagent_tests.dm" #include "code\unit_tests\recipe_tests.dm" #include "code\unit_tests\research_tests.dm" +#include "code\unit_tests\robot_tests.dm" #include "code\unit_tests\sqlite_tests.dm" #include "code\unit_tests\subsystem_tests.dm" #include "code\unit_tests\unit_test.dm" @@ -4840,7 +4842,6 @@ #include "modular_chomp\code\game\objects\items\devices\radio\radio.dm" #include "modular_chomp\code\game\objects\items\weapons\capture_crystal.dm" #include "modular_chomp\code\game\objects\items\weapons\cigs_lighters.dm" -#include "modular_chomp\code\game\objects\items\weapons\id_cards.dm" #include "modular_chomp\code\game\objects\items\weapons\RCD.dm" #include "modular_chomp\code\game\objects\items\weapons\circutboards\computer\research.dm" #include "modular_chomp\code\game\objects\items\weapons\melee\shock_maul.dm" @@ -4988,22 +4989,6 @@ #include "modular_chomp\code\modules\mob\living\carbon\human\species\station\traits\xenomorph_hybrid_trait.dm" #include "modular_chomp\code\modules\mob\living\silicon\robot\robot.dm" #include "modular_chomp\code\modules\mob\living\silicon\robot\robot_movement.dm" -#include "modular_chomp\code\modules\mob\living\silicon\robot\dogborg\dog_modules.dm" -#include "modular_chomp\code\modules\mob\living\silicon\robot\dogborg\dog_sleeper.dm" -#include "modular_chomp\code\modules\mob\living\silicon\robot\modules\exploration.dm" -#include "modular_chomp\code\modules\mob\living\silicon\robot\sprites\civilian.dm" -#include "modular_chomp\code\modules\mob\living\silicon\robot\sprites\clown.dm" -#include "modular_chomp\code\modules\mob\living\silicon\robot\sprites\combat.dm" -#include "modular_chomp\code\modules\mob\living\silicon\robot\sprites\command.dm" -#include "modular_chomp\code\modules\mob\living\silicon\robot\sprites\engineering.dm" -#include "modular_chomp\code\modules\mob\living\silicon\robot\sprites\event.dm" -#include "modular_chomp\code\modules\mob\living\silicon\robot\sprites\exploration.dm" -#include "modular_chomp\code\modules\mob\living\silicon\robot\sprites\janitor.dm" -#include "modular_chomp\code\modules\mob\living\silicon\robot\sprites\medical.dm" -#include "modular_chomp\code\modules\mob\living\silicon\robot\sprites\mining.dm" -#include "modular_chomp\code\modules\mob\living\silicon\robot\sprites\science.dm" -#include "modular_chomp\code\modules\mob\living\silicon\robot\sprites\security.dm" -#include "modular_chomp\code\modules\mob\living\silicon\robot\sprites\syndicate.dm" #include "modular_chomp\code\modules\mob\living\simple_animal\aliens\synx.dm" #include "modular_chomp\code\modules\mob\living\simple_mob\butchering.dm" #include "modular_chomp\code\modules\mob\living\simple_mob\catslug.dm"