diff --git a/code/modules/mob/dead/corpse.dm b/code/modules/mob/dead/corpse.dm index 1b422aae65c..b02859f4518 100644 --- a/code/modules/mob/dead/corpse.dm +++ b/code/modules/mob/dead/corpse.dm @@ -26,14 +26,26 @@ var/corpseidjob = null // Needs to be in quotes, such as "Clown" or "Chef." This just determines what the ID reads as, not their access var/corpseidaccess = null //This is for access. See access.dm for which jobs give what access. Again, put in quotes. Use "Captain" if you want it to be all access. var/corpseidicon = null //For setting it to be a gold, silver, CentCom etc ID + var/corpsesynthtype = 0 // 0 for organic, 1 for drone, 2 for posibrain + var/corpsesynthbrand = "Unbranded" /obj/effect/landmark/mobcorpse/New() createCorpse() /obj/effect/landmark/mobcorpse/proc/createCorpse() //Creates a mob and checks for gear in each slot before attempting to equip it. var/mob/living/carbon/human/M = new /mob/living/carbon/human (src.loc) - M.real_name = src.name + M.real_name = generateCorpseName() M.set_stat(DEAD) //Kills the new mob + if(corpsesynthtype > 0) + to_world("Synth") + if(!corpsesynthbrand) + corpsesynthbrand = "Unbranded" + for(var/obj/item/organ/external/O in M.organs) + switch(corpsesynthtype) + if(1) + O.digitize(corpsesynthbrand) + if(2) + O.robotize(corpsesynthbrand) if(src.corpseuniform) M.equip_to_slot_or_del(new src.corpseuniform(M), slot_w_uniform) if(src.corpsesuit) @@ -81,7 +93,8 @@ delete_me = 1 qdel(src) - +/obj/effect/landmark/mobcorpse/proc/generateCorpseName() + return name //List of different corpse types diff --git a/code/modules/mob/dead/corpse_vr.dm b/code/modules/mob/dead/corpse_vr.dm index 82399a83282..ecdaa63fe99 100644 --- a/code/modules/mob/dead/corpse_vr.dm +++ b/code/modules/mob/dead/corpse_vr.dm @@ -1,2 +1,26 @@ /obj/effect/landmark/mobcorpse/syndicatecommando - name = "Mercenary Commando" \ No newline at end of file + name = "Mercenary Commando" + +/obj/effect/landmark/mobcorpse/syndicatesoldier/drone + name = "Mercenary Drone" + corpseidjob = "Operative" + corpsesynthtype = 2 + corpsesynthbrand = "Xion" + +/obj/effect/landmark/mobcorpse/syndicatesoldier/drone/generateCorpseName() + var/letter = pick(list("Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega")) + var/number = rand(0,999) + var/purpose = pick(list("Recon","Combat","Kill","Guard","Scout","Murder","Capture","Raid","Attack","Battle")) + return "[letter]-[number] [purpose] Droid" + +/obj/effect/landmark/mobcorpse/syndicatecommando/drone + name = "Mercenary Drone" + corpseidjob = "Operative" + corpsesynthtype = 2 + corpsesynthbrand = "Xion" + +/obj/effect/landmark/mobcorpse/syndicatecommando/drone/generateCorpseName() + var/letter = pick(list("Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega")) + var/number = rand(0,999) + var/purpose = pick(list("Recon","Combat","Kill","Guard","Scout","Murder","Capture","Raid","Attack","Battle")) + return "[letter]-[number] [purpose] Droid" diff --git a/code/modules/mob/living/simple_mob/subtypes/humanoid/mercs/mercs_vr.dm b/code/modules/mob/living/simple_mob/subtypes/humanoid/mercs/mercs_vr.dm index 67e396fb4d9..a5d0f827e24 100644 --- a/code/modules/mob/living/simple_mob/subtypes/humanoid/mercs/mercs_vr.dm +++ b/code/modules/mob/living/simple_mob/subtypes/humanoid/mercs/mercs_vr.dm @@ -23,3 +23,120 @@ min_n2 = 0 max_n2 = 0 minbodytemp = 0 + +/datum/say_list/merc/drone + speak = list("Area patrol in progress.", + "All systems nominal.", + "Situation analysis finalized. No hostiles detected.", + "Reporting status: all functions normal.", + "Location under control.") + emote_see = list("beeps", "pings", "twitches erratically", "looks around") + + say_understood = list("Command acknowledged.") + say_cannot = list("Command error.") + say_maybe_target = list("Please come out.", "Where did you go?", "Scanning...") + say_got_target = list("Engaging.", "Targeting.", "Combat initiated.", "Following protocol. Eliminating hostile.") + say_threaten = list("This location is under control. You have %UNDEFINED% seconds to depart.", "Your presence at these premises must be terminated.") + say_stand_down = list("Your compliance is welcome.") + say_escalate = list("Combat initiated.", "Your termination is inevitable.") + + threaten_sound = 'sound/weapons/TargetOn.ogg' + stand_down_sound = 'sound/weapons/TargetOff.ogg' + +/mob/living/simple_mob/humanoid/merc/drone + name = "combat droid" + desc = "A set of prosthetics, piloted by simplistic combat algorhithm and dressed in combat armor." + tt_desc = null + say_list_type = /datum/say_list/merc/drone + corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier/drone + +/mob/living/simple_mob/humanoid/merc/melee/drone + name = "combat droid" + desc = "A set of prosthetics, piloted by simplistic combat algorhithm and dressed in combat armor." + tt_desc = null + say_list_type = /datum/say_list/merc/drone + corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier/drone + +/mob/living/simple_mob/humanoid/merc/melee/sword/drone + name = "combat droid" + desc = "A set of prosthetics, piloted by simplistic combat algorhithm and dressed in combat armor." + tt_desc = null + say_list_type = /datum/say_list/merc/drone + corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier/drone + +/mob/living/simple_mob/humanoid/merc/ranged/drone + name = "combat droid" + desc = "A set of prosthetics, piloted by simplistic combat algorhithm and dressed in combat armor." + tt_desc = null + say_list_type = /datum/say_list/merc/drone + corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier/drone + +/mob/living/simple_mob/humanoid/merc/ranged/smg/drone + name = "combat droid" + desc = "A set of prosthetics, piloted by simplistic combat algorhithm and dressed in combat armor." + tt_desc = null + say_list_type = /datum/say_list/merc/drone + corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier/drone + +/mob/living/simple_mob/humanoid/merc/ranged/rifle/drone + name = "combat droid" + desc = "A set of prosthetics, piloted by simplistic combat algorhithm and dressed in combat armor." + tt_desc = null + say_list_type = /datum/say_list/merc/drone + corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier/drone + +/mob/living/simple_mob/humanoid/merc/ranged/rifle/mag/drone + name = "combat droid" + desc = "A set of prosthetics, piloted by simplistic combat algorhithm and dressed in combat armor." + tt_desc = null + say_list_type = /datum/say_list/merc/drone + corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier/drone + +/mob/living/simple_mob/humanoid/merc/ranged/laser/drone + name = "combat droid" + desc = "A set of prosthetics, piloted by simplistic combat algorhithm and dressed in combat armor." + tt_desc = null + say_list_type = /datum/say_list/merc/drone + corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier/drone + +/mob/living/simple_mob/humanoid/merc/ranged/ionrifle/drone + name = "combat droid" + desc = "A set of prosthetics, piloted by simplistic combat algorhithm and dressed in combat armor." + tt_desc = null + say_list_type = /datum/say_list/merc/drone + corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier/drone + +/mob/living/simple_mob/humanoid/merc/ranged/grenadier/drone + name = "combat droid" + desc = "A set of prosthetics, piloted by simplistic combat algorhithm and dressed in combat armor." + tt_desc = null + say_list_type = /datum/say_list/merc/drone + corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier/drone + +/mob/living/simple_mob/humanoid/merc/ranged/technician/drone + name = "combat droid" + desc = "A set of prosthetics, piloted by simplistic combat algorhithm and dressed in combat armor." + tt_desc = null + say_list_type = /datum/say_list/merc/drone + corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier/drone + +/mob/living/simple_mob/humanoid/merc/ranged/sniper/drone + name = "combat droid" + desc = "A set of prosthetics, piloted by simplistic combat algorhithm and dressed in combat armor." + tt_desc = null + say_list_type = /datum/say_list/merc/drone + corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier/drone + +/mob/living/simple_mob/humanoid/merc/melee/sword/space/drone + name = "combat droid" + desc = "A set of prosthetics, piloted by simplistic combat algorhithm and dressed in combat spacesuit." + tt_desc = null + say_list_type = /datum/say_list/merc/drone + corpse = /obj/effect/landmark/mobcorpse/syndicatecommando/drone + +/mob/living/simple_mob/humanoid/merc/ranged/space/drone + name = "combat droid" + desc = "A set of prosthetics, piloted by simplistic combat algorhithm and dressed in combat spacesuit." + tt_desc = null + say_list_type = /datum/say_list/merc/drone + corpse = /obj/effect/landmark/mobcorpse/syndicatecommando/drone \ No newline at end of file diff --git a/code/modules/organs/organ_external_vr.dm b/code/modules/organs/organ_external_vr.dm index 0e3fb07d9ee..a49cfca9801 100644 --- a/code/modules/organs/organ_external_vr.dm +++ b/code/modules/organs/organ_external_vr.dm @@ -13,3 +13,6 @@ min_broken_damage = o_min_broken_damage else return ..() + +/obj/item/organ/external/digitize(var/company, var/skip_prosthetics = FALSE, var/keep_organs = FALSE) + robotize(company, skip_prosthetics, keep_organs)