diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index 558f6407528..96c663fb703 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -468,137 +468,142 @@ var/record_id_num = 1001 var/icon/clothes_s = null - switch(H.mind.assigned_role) - if("Head of Personnel") - clothes_s = new /icon('icons/mob/uniform.dmi', "hop_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) - if("Nanotrasen Representative") - clothes_s = new /icon('icons/mob/uniform.dmi', "officer_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY) - if("Blueshield") - clothes_s = new /icon('icons/mob/uniform.dmi', "officer_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/hands.dmi', "swat_gl"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "blueshield"), ICON_OVERLAY) - if("Magistrate") - clothes_s = new /icon('icons/mob/uniform.dmi', "really_black_suit_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "judge"), ICON_OVERLAY) - if("Bartender") - clothes_s = new /icon('icons/mob/uniform.dmi', "ba_suit_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - if("Botanist") - clothes_s = new /icon('icons/mob/uniform.dmi', "hydroponics_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - if("Chef") - clothes_s = new /icon('icons/mob/uniform.dmi', "chef_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - if("Janitor") - clothes_s = new /icon('icons/mob/uniform.dmi', "janitor_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - if("Librarian") - clothes_s = new /icon('icons/mob/uniform.dmi', "red_suit_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - if("Quartermaster") - clothes_s = new /icon('icons/mob/uniform.dmi', "qm_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) - if("Cargo Technician") - clothes_s = new /icon('icons/mob/uniform.dmi', "cargotech_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - if("Shaft Miner") - clothes_s = new /icon('icons/mob/uniform.dmi', "miner_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - if("Lawyer") - clothes_s = new /icon('icons/mob/uniform.dmi', "internalaffairs_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) - if("Chaplain") - clothes_s = new /icon('icons/mob/uniform.dmi', "chapblack_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - if("Research Director") - clothes_s = new /icon('icons/mob/uniform.dmi', "director_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY) - if("Scientist") - clothes_s = new /icon('icons/mob/uniform.dmi', "toxinswhite_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_tox_open"), ICON_OVERLAY) - if("Chemist") - clothes_s = new /icon('icons/mob/uniform.dmi', "chemistrywhite_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_chem_open"), ICON_OVERLAY) - if("Chief Medical Officer") - clothes_s = new /icon('icons/mob/uniform.dmi', "cmo_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_cmo_open"), ICON_OVERLAY) - if("Medical Doctor") - clothes_s = new /icon('icons/mob/uniform.dmi', "medical_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY) - if("Geneticist") - clothes_s = new /icon('icons/mob/uniform.dmi', "geneticswhite_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_gen_open"), ICON_OVERLAY) - if("Virologist") - clothes_s = new /icon('icons/mob/uniform.dmi', "virologywhite_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_vir_open"), ICON_OVERLAY) - if("Psychiatrist") - clothes_s = new /icon('icons/mob/uniform.dmi', "psych_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_UNDERLAY) - if("Paramedic") - clothes_s = new /icon('icons/mob/uniform.dmi', "paramedic_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - if("Captain") - clothes_s = new /icon('icons/mob/uniform.dmi', "captain_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) - if("Head of Security") - clothes_s = new /icon('icons/mob/uniform.dmi', "hosred_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY) - if("Warden") - clothes_s = new /icon('icons/mob/uniform.dmi', "warden_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY) - if("Detective") - clothes_s = new /icon('icons/mob/uniform.dmi', "detective_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "detective"), ICON_OVERLAY) - if("Security Pod Pilot") - clothes_s = new /icon('icons/mob/uniform.dmi', "secred_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "bomber"), ICON_OVERLAY) - if("Brig Physician") - clothes_s = new /icon('icons/mob/uniform.dmi', "medical_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "fr_jacket_open"), ICON_OVERLAY) - if("Security Officer") - clothes_s = new /icon('icons/mob/uniform.dmi', "secred_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY) - if("Chief Engineer") - clothes_s = new /icon('icons/mob/uniform.dmi', "chief_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY) - if("Station Engineer") - clothes_s = new /icon('icons/mob/uniform.dmi', "engine_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "orange"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY) - if("Life Support Specialist") - clothes_s = new /icon('icons/mob/uniform.dmi', "atmos_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY) - if("Mechanic") - clothes_s = new /icon('icons/mob/uniform.dmi', "mechanic_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "orange"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY) - if("Roboticist") - clothes_s = new /icon('icons/mob/uniform.dmi', "robotics_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY) - else if(H.mind.assigned_role in get_all_centcom_jobs()) - clothes_s = new /icon('icons/mob/uniform.dmi', "officer_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY) - else - clothes_s = new /icon('icons/mob/uniform.dmi', "grey_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) + if(H.mind) + switch(H.mind.assigned_role) + if("Head of Personnel") + clothes_s = new /icon('icons/mob/uniform.dmi', "hop_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) + if("Nanotrasen Representative") + clothes_s = new /icon('icons/mob/uniform.dmi', "officer_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY) + if("Blueshield") + clothes_s = new /icon('icons/mob/uniform.dmi', "officer_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/hands.dmi', "swat_gl"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "blueshield"), ICON_OVERLAY) + if("Magistrate") + clothes_s = new /icon('icons/mob/uniform.dmi', "really_black_suit_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "judge"), ICON_OVERLAY) + if("Bartender") + clothes_s = new /icon('icons/mob/uniform.dmi', "ba_suit_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) + if("Botanist") + clothes_s = new /icon('icons/mob/uniform.dmi', "hydroponics_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) + if("Chef") + clothes_s = new /icon('icons/mob/uniform.dmi', "chef_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) + if("Janitor") + clothes_s = new /icon('icons/mob/uniform.dmi', "janitor_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) + if("Librarian") + clothes_s = new /icon('icons/mob/uniform.dmi', "red_suit_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) + if("Quartermaster") + clothes_s = new /icon('icons/mob/uniform.dmi', "qm_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) + if("Cargo Technician") + clothes_s = new /icon('icons/mob/uniform.dmi', "cargotech_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) + if("Shaft Miner") + clothes_s = new /icon('icons/mob/uniform.dmi', "miner_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) + if("Lawyer") + clothes_s = new /icon('icons/mob/uniform.dmi', "internalaffairs_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) + if("Chaplain") + clothes_s = new /icon('icons/mob/uniform.dmi', "chapblack_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) + if("Research Director") + clothes_s = new /icon('icons/mob/uniform.dmi', "director_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY) + if("Scientist") + clothes_s = new /icon('icons/mob/uniform.dmi', "toxinswhite_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_tox_open"), ICON_OVERLAY) + if("Chemist") + clothes_s = new /icon('icons/mob/uniform.dmi', "chemistrywhite_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_chem_open"), ICON_OVERLAY) + if("Chief Medical Officer") + clothes_s = new /icon('icons/mob/uniform.dmi', "cmo_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_cmo_open"), ICON_OVERLAY) + if("Medical Doctor") + clothes_s = new /icon('icons/mob/uniform.dmi', "medical_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY) + if("Geneticist") + clothes_s = new /icon('icons/mob/uniform.dmi', "geneticswhite_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_gen_open"), ICON_OVERLAY) + if("Virologist") + clothes_s = new /icon('icons/mob/uniform.dmi', "virologywhite_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_vir_open"), ICON_OVERLAY) + if("Psychiatrist") + clothes_s = new /icon('icons/mob/uniform.dmi', "psych_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_UNDERLAY) + if("Paramedic") + clothes_s = new /icon('icons/mob/uniform.dmi', "paramedic_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) + if("Captain") + clothes_s = new /icon('icons/mob/uniform.dmi', "captain_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) + if("Head of Security") + clothes_s = new /icon('icons/mob/uniform.dmi', "hosred_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY) + if("Warden") + clothes_s = new /icon('icons/mob/uniform.dmi', "warden_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY) + if("Detective") + clothes_s = new /icon('icons/mob/uniform.dmi', "detective_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "detective"), ICON_OVERLAY) + if("Security Pod Pilot") + clothes_s = new /icon('icons/mob/uniform.dmi', "secred_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "bomber"), ICON_OVERLAY) + if("Brig Physician") + clothes_s = new /icon('icons/mob/uniform.dmi', "medical_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "fr_jacket_open"), ICON_OVERLAY) + if("Security Officer") + clothes_s = new /icon('icons/mob/uniform.dmi', "secred_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY) + if("Chief Engineer") + clothes_s = new /icon('icons/mob/uniform.dmi', "chief_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY) + if("Station Engineer") + clothes_s = new /icon('icons/mob/uniform.dmi', "engine_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "orange"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY) + if("Life Support Specialist") + clothes_s = new /icon('icons/mob/uniform.dmi', "atmos_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY) + if("Mechanic") + clothes_s = new /icon('icons/mob/uniform.dmi', "mechanic_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "orange"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY) + if("Roboticist") + clothes_s = new /icon('icons/mob/uniform.dmi', "robotics_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY) + else if(H.mind.assigned_role in get_all_centcom_jobs()) + clothes_s = new /icon('icons/mob/uniform.dmi', "officer_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY) + else + clothes_s = new /icon('icons/mob/uniform.dmi', "grey_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) + else + clothes_s = new /icon('icons/mob/uniform.dmi', "grey_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) + preview_icon.Blend(face_s, ICON_OVERLAY) // Why do we do this twice if(clothes_s) diff --git a/code/datums/outfits/outfit.dm b/code/datums/outfits/outfit.dm index 9517ee09ef8..2d67a5d71dd 100644 --- a/code/datums/outfits/outfit.dm +++ b/code/datums/outfits/outfit.dm @@ -22,6 +22,8 @@ var/pda = null var/internals_slot = null //ID of slot containing a gas tank var/list/backpack_contents = list() // In the list(path=count,otherpath=count) format + var/list/implants = null + var/list/cybernetic_implants = null /datum/outfit/proc/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE) @@ -89,6 +91,13 @@ var/number = backpack_contents[path] for(var/i = 0, i < number, i++) equip_item(H, path, slot_in_backpack) + if(implants) + for(var/path in implants) + var/obj/item/weapon/implant/I = new path(H) + I.implant(H) + for(var/path in cybernetic_implants) + var/obj/item/organ/internal/O = new path(H) + O.insert(H) post_equip(H, visualsOnly) diff --git a/code/datums/outfits/outfit_admin.dm b/code/datums/outfits/outfit_admin.dm index 5212570223f..ae98f702ac1 100644 --- a/code/datums/outfits/outfit_admin.dm +++ b/code/datums/outfits/outfit_admin.dm @@ -1,6 +1,13 @@ // Used for 'select equipment' // code/modules/admin/verbs/debug.dm 566 +/datum/outfit/admin/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + . = ..() + if(!visualsOnly) + H.mind.assigned_role = name + H.job = name + + /proc/apply_to_card(obj/item/weapon/card/id/I, mob/living/carbon/human/H, list/access = list(), rank, special_icon) if(!istype(I) || !istype(H)) return 0 @@ -95,6 +102,7 @@ mask = /obj/item/clothing/mask/gas/syndicate l_ear = /obj/item/device/radio/headset/syndicate/alt glasses = /obj/item/clothing/glasses/night + shoes = /obj/item/clothing/shoes/magboots/syndie l_pocket = /obj/item/weapon/pinpointer/advpinpointer l_hand = /obj/item/weapon/tank/jetpack/oxygen/harness @@ -107,6 +115,7 @@ /obj/item/weapon/grenade/plastic/c4 = 1, /obj/item/weapon/reagent_containers/food/snacks/syndidonkpocket = 1, /obj/item/device/flashlight = 1, + /obj/item/clothing/shoes/combat = 1 ) /datum/outfit/admin/syndicate/operative/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) @@ -131,15 +140,21 @@ /datum/outfit/admin/syndicate/officer name = "Syndicate Officer" + head = /obj/item/clothing/head/beret + mask = /obj/item/clothing/mask/cigarette/cigar/havana belt = /obj/item/weapon/gun/projectile/automatic/pistol/deagle/camo l_ear = /obj/item/device/radio/headset/syndicate/alt l_pocket = /obj/item/weapon/pinpointer/advpinpointer backpack_contents = list( /obj/item/weapon/storage/box/engineer = 1, + /obj/item/device/flashlight = 1, /obj/item/weapon/reagent_containers/food/pill/initropidril = 1, /obj/item/weapon/reagent_containers/food/snacks/syndidonkpocket = 1, - /obj/item/ammo_box/magazine/m50 = 2) + /obj/item/ammo_box/magazine/m50 = 2, + /obj/item/clothing/shoes/magboots/syndie/advance = 1, + /obj/item/weapon/lighter/zippo/gonzofist = 1 + ) id_icon = "commander" id_access = "Syndicate Operative Leader" @@ -152,22 +167,11 @@ var/obj/item/weapon/implant/uplink/U = new /obj/item/weapon/implant/uplink(H) U.implant(H) - U.hidden_uplink.uses = 500//a measly 1000 TC along with the uplink in the pocket + U.hidden_uplink.uses = 500 var/obj/item/weapon/implant/dust/D = new(H) D.implant(H) -/datum/outfit/admin/syndicate/bomber - name = "Syndicate Bomber" - - backpack_contents = list( - /obj/item/weapon/storage/box/engineer = 1, - /obj/item/device/flashlight = 1, - /obj/item/weapon/card/emag = 1, - /obj/item/device/radio/beacon/syndicate/bomb = 2, - /obj/item/device/syndicatedetonator = 1, - /obj/item/weapon/reagent_containers/food/snacks/syndidonkpocket = 1 - ) /datum/outfit/admin/nt_vip name = "VIP Guest" @@ -193,114 +197,6 @@ if(istype(I)) apply_to_card(I, H, get_centcom_access("VIP Guest"), "VIP Guest") -/datum/outfit/admin/nt_navy_officer - name = "NT Navy Officer" - - uniform = /obj/item/clothing/under/rank/centcom/officer - back = /obj/item/weapon/storage/backpack/satchel - belt = /obj/item/weapon/gun/energy/pulse/pistol - gloves = /obj/item/clothing/gloves/color/white - shoes = /obj/item/clothing/shoes/centcom - head = /obj/item/clothing/head/beret/centcom/officer - l_ear = /obj/item/device/radio/headset/centcom - glasses = /obj/item/clothing/glasses/hud/security/sunglasses - id = /obj/item/weapon/card/id/centcom - pda = /obj/item/device/pda/centcom - backpack_contents = list( - /obj/item/weapon/storage/box/engineer = 1, - /obj/item/weapon/implanter/dust = 1, - /obj/item/weapon/implanter/death_alarm = 1 - ) - -/datum/outfit/admin/nt_navy_officer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) - . = ..() - if(visualsOnly) - return - - var/obj/item/weapon/card/id/I = H.wear_id - if(istype(I)) - apply_to_card(I, H, get_centcom_access("Nanotrasen Navy Officer"), "Nanotrasen Navy Officer") - - var/obj/item/weapon/implant/L = new /obj/item/weapon/implant/mindshield(H) - L.implant(H) - - -/datum/outfit/admin/nt_special_ops_officer - name = "NT Special Ops Officer" - - uniform = /obj/item/clothing/under/syndicate/combat - suit = /obj/item/clothing/suit/space/deathsquad/officer - back = /obj/item/weapon/storage/backpack/security - belt = /obj/item/weapon/gun/energy/pulse/pistol/m1911 - gloves = /obj/item/clothing/gloves/combat - shoes = /obj/item/clothing/shoes/combat - head = /obj/item/clothing/head/helmet/space/deathsquad/beret - mask = /obj/item/clothing/mask/cigarette/cigar/cohiba - l_ear = /obj/item/device/radio/headset/centcom - glasses = /obj/item/clothing/glasses/thermal/cyber - id = /obj/item/weapon/card/id/centcom - r_pocket = /obj/item/weapon/storage/box/matches - pda = /obj/item/device/pda/centcom - backpack_contents = list( - /obj/item/weapon/storage/box/engineer = 1, - /obj/item/weapon/tank/emergency_oxygen/double/full = 1, - /obj/item/weapon/implanter/dust = 1, - /obj/item/weapon/implanter/death_alarm = 1, - /obj/item/weapon/twohanded/dualsaber/red = 1, - /obj/item/weapon/pinpointer/advpinpointer = 1, - /obj/item/weapon/reagent_containers/hypospray/combat/nanites = 1, - /obj/item/weapon/storage/box/zipties = 1, - /obj/item/clothing/shoes/magboots/advance = 1, - /obj/item/weapon/implanter/mindshield = 1, - ) - -/datum/outfit/admin/nt_special_ops_officer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) - . = ..() - if(visualsOnly) - return - - var/obj/item/weapon/card/id/I = H.wear_id - if(istype(I)) - apply_to_card(I, H, get_centcom_access("Special Operations Officer"), "Special Operations Officer") - -/datum/outfit/admin/nt_special_ops_formal - name = "NT Special Ops Formal" - - uniform = /obj/item/clothing/under/rank/centcom/captain - back = /obj/item/weapon/storage/backpack/satchel - belt = /obj/item/weapon/gun/energy/pulse/pistol/m1911 - gloves = /obj/item/clothing/gloves/combat - shoes = /obj/item/clothing/shoes/combat - head = /obj/item/clothing/head/helmet/space/deathsquad/beret - mask = /obj/item/clothing/mask/cigarette/cigar/cohiba - l_ear = /obj/item/device/radio/headset/centcom - glasses = /obj/item/clothing/glasses/thermal/cyber - id = /obj/item/weapon/card/id/centcom - r_pocket = /obj/item/weapon/storage/box/matches - pda = /obj/item/device/pda/centcom - backpack_contents = list( - /obj/item/weapon/storage/box/engineer = 1, - /obj/item/weapon/melee/classic_baton/telescopic = 1, - /obj/item/weapon/implanter/dust = 1, - /obj/item/weapon/implanter/death_alarm = 1 - ) - -/datum/outfit/admin/nt_special_ops_formal/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) - . = ..() - if(visualsOnly) - return - - var/obj/item/device/pda/PDA = H.wear_pda - if(istype(PDA)) - PDA.owner = H.real_name - PDA.ownjob = "Special Operations Officer" - PDA.icon_state = "pda-syndi" - PDA.name = "PDA-[H.real_name] ([PDA.ownjob])" - PDA.desc = "A portable microcomputer by Thinktronic Systems, LTD. This is model is a special edition designed for military field work." - - var/obj/item/weapon/card/id/I = H.wear_id - if(istype(I)) - apply_to_card(I, H, get_centcom_access("Special Operations Officer"), "Special Operations Officer") /datum/outfit/admin/nt_navy_captain name = "NT Navy Captain" @@ -316,10 +212,13 @@ id = /obj/item/weapon/card/id/centcom pda = /obj/item/device/pda/centcom backpack_contents = list( - /obj/item/weapon/storage/box/engineer = 1, - /obj/item/weapon/implanter/dust = 1, + /obj/item/weapon/storage/box/centcomofficer = 1, /obj/item/weapon/implanter/death_alarm = 1 ) + implants = list( + /obj/item/weapon/implant/mindshield, + /obj/item/weapon/implant/dust + ) /datum/outfit/admin/nt_navy_captain/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) . = ..() @@ -330,9 +229,6 @@ if(istype(I)) apply_to_card(I, H, get_centcom_access("Nanotrasen Navy Captain"), "Nanotrasen Navy Captain") - var/obj/item/weapon/implant/L = new /obj/item/weapon/implant/mindshield(H) - L.implant(H) - /datum/outfit/admin/nt_diplomat name = "NT Diplomat" @@ -347,9 +243,12 @@ pda = /obj/item/device/pda/centcom backpack_contents = list( /obj/item/weapon/storage/box/survival = 1, - /obj/item/weapon/implanter/dust = 1, /obj/item/weapon/implanter/death_alarm = 1, ) + implants = list( + /obj/item/weapon/implant/mindshield, + /obj/item/weapon/implant/dust + ) /datum/outfit/admin/nt_diplomat/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) . = ..() @@ -360,6 +259,57 @@ if(istype(I)) apply_to_card(I, H, get_centcom_access("Nanotrasen Navy Representative"), "Nanotrasen Diplomat") + +/datum/outfit/admin/nt_undercover + name = "NT Undercover Operative" + // Disguised NT special forces, sent to quietly eliminate mutinous people in high positions (e.g: captain) + + uniform = /obj/item/clothing/under/chameleon + back = /obj/item/weapon/storage/backpack + belt = /obj/item/weapon/storage/belt/utility/full/multitool + gloves = /obj/item/clothing/gloves/combat + shoes = /obj/item/clothing/shoes/syndigaloshes + l_ear = /obj/item/device/radio/headset/heads/captain + id = /obj/item/weapon/card/id/syndicate + pda = /obj/item/device/pda + backpack_contents = list( + /obj/item/weapon/storage/box/engineer = 1, + /obj/item/device/flashlight = 1, + /obj/item/weapon/gun/projectile/automatic/proto = 1, // NT saber SMG + /obj/item/weapon/suppressor = 1, // silencer for SMG + /obj/item/ammo_box/magazine/smgm9mm = 3, // SMG ammo + /obj/item/weapon/door_remote/omni = 1, + /obj/item/weapon/implanter/mindshield = 1, // not implanted by default, as that would make them suspicious + /obj/item/weapon/implanter/storage = 1 // do not auto-implant this, that causes a bug + ) + implants = list( + /obj/item/weapon/implant/dust + ) + cybernetic_implants = list( + /obj/item/organ/internal/cyberimp/eyes/hud/security, + /obj/item/organ/internal/cyberimp/eyes/xray, + /obj/item/organ/internal/cyberimp/brain/anti_drop, + /obj/item/organ/internal/cyberimp/brain/anti_stun, + /obj/item/organ/internal/cyberimp/chest/nutriment/plus + ) + +/datum/outfit/admin/nt_undercover/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + . = ..() + if(visualsOnly) + return + + var/obj/item/weapon/card/id/I = H.wear_id + if(istype(I)) + apply_to_card(I, H, get_all_accesses(), "Civilian") + I.icon_state = "deathsquad" + + + var/obj/item/device/radio/R = H.l_ear + if(istype(R)) + R.name = "radio headset" + R.icon_state = "headset" + + /datum/outfit/admin/death_commando name = "NT Death Commando" @@ -485,12 +435,10 @@ backpack_contents = list( /obj/item/weapon/storage/box/survival = 1, /obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing = 1, - /obj/item/weapon/storage/box/syndie_kit/caneshotgun = 1, /obj/item/toy/crayon/mime = 1, - /obj/item/weapon/gun/projectile/automatic/pistol = 1, - /obj/item/weapon/suppressor = 1, + /obj/item/weapon/storage/box/syndie_kit/caneshotgun = 1, /obj/item/ammo_casing/shotgun/incendiary/dragonsbreath = 2, - /obj/item/weapon/pen/sleepy = 1, + /obj/item/device/radio/uplink = 1, /obj/item/weapon/reagent_containers/food/snacks/syndidonkpocket = 1, /obj/item/device/flashlight = 1 ) @@ -701,7 +649,9 @@ backpack_contents = list( /obj/item/weapon/storage/box/survival = 1, /obj/item/weapon/kitchen/knife/combat = 1, - /obj/item/ammo_box/magazine/m556 = 3) + /obj/item/ammo_box/magazine/m556 = 3, + /obj/item/clothing/shoes/magboots = 1 + ) /datum/outfit/admin/solgov/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) @@ -725,7 +675,9 @@ /obj/item/weapon/storage/box/survival = 1, /obj/item/weapon/kitchen/knife/combat = 1, /obj/item/weapon/melee/classic_baton/telescopic = 1, - /obj/item/ammo_box/magazine/m50 = 2) + /obj/item/ammo_box/magazine/m50 = 2, + /obj/item/clothing/shoes/magboots/advance = 1 + ) /datum/outfit/admin/chrono name = "Chrono Legionnaire" @@ -734,7 +686,7 @@ suit = /obj/item/clothing/suit/space/chronos back = /obj/item/weapon/chrono_eraser gloves = /obj/item/clothing/gloves/combat - shoes = /obj/item/clothing/shoes/combat + shoes = /obj/item/clothing/shoes/magboots/advance head = /obj/item/clothing/head/helmet/space/chronos mask = /obj/item/clothing/mask/gas/syndicate glasses = /obj/item/clothing/glasses/night @@ -756,7 +708,7 @@ uniform = /obj/item/clothing/under/color/grey suit = /obj/item/clothing/suit/space back = /obj/item/weapon/tank/jetpack/oxygen - shoes = /obj/item/clothing/shoes/black + shoes = /obj/item/clothing/shoes/magboots head = /obj/item/clothing/head/helmet/space mask = /obj/item/clothing/mask/breath l_ear = /obj/item/device/radio/headset @@ -779,6 +731,7 @@ /datum/outfit/admin/hardsuit back = /obj/item/weapon/tank/jetpack/oxygen mask = /obj/item/clothing/mask/breath + shoes = /obj/item/clothing/shoes/magboots id = /obj/item/weapon/card/id /datum/outfit/admin/hardsuit/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) @@ -804,6 +757,7 @@ name = "CE Hardsuit" suit = /obj/item/clothing/suit/space/hardsuit/elite head = /obj/item/clothing/head/helmet/space/hardsuit/elite + shoes = /obj/item/clothing/shoes/magboots/advance /datum/outfit/admin/hardsuit/mining name = "Mining Hardsuit" @@ -814,11 +768,13 @@ name = "Syndi Hardsuit" suit = /obj/item/clothing/suit/space/hardsuit/syndi head = /obj/item/clothing/head/helmet/space/hardsuit/syndi + shoes = /obj/item/clothing/shoes/magboots/syndie /datum/outfit/admin/hardsuit/wizard name = "Wizard Hardsuit" suit = /obj/item/clothing/suit/space/hardsuit/wizard head = /obj/item/clothing/head/helmet/space/hardsuit/wizard + shoes = /obj/item/clothing/shoes/magboots /datum/outfit/admin/hardsuit/medical name = "Medical Hardsuit" @@ -996,15 +952,15 @@ /obj/item/weapon/storage/box/survival = 1, /obj/item/device/flashlight = 1 ) + implants = list( + /obj/item/weapon/implant/dust + ) /datum/outfit/admin/assassin/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) . = ..() if(visualsOnly) return - var/obj/item/weapon/implant/dust/D = new /obj/item/weapon/implant/dust(H) - D.implant(H) - var/obj/item/device/pda/PDA = H.wear_pda if(istype(PDA)) PDA.owner = H.real_name @@ -1034,7 +990,10 @@ /obj/item/weapon/suppressor = 1, /obj/item/weapon/card/emag = 1, /obj/item/device/flashlight = 1, - /obj/item/weapon/implanter/storage = 1 + /obj/item/weapon/implanter/storage = 1 // do not auto-implant this, that causes a bug + ) + implants = list( + /obj/item/weapon/implant/dust ) /datum/outfit/admin/spy/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) @@ -1046,9 +1005,6 @@ if(istype(G)) G.name = "black gloves" - var/obj/item/weapon/implant/dust/D = new /obj/item/weapon/implant/dust(H) - D.implant(H) - var/obj/item/device/pda/PDA = H.wear_pda if(istype(PDA)) PDA.owner = H.real_name @@ -1089,6 +1045,7 @@ if(istype(I)) apply_to_card(I, H, get_all_accesses(), "Dark Lord", "syndie") + /datum/outfit/admin/wizard uniform = /obj/item/clothing/under/color/lightpurple suit = /obj/item/clothing/suit/wizrobe @@ -1130,6 +1087,36 @@ shoes = /obj/item/clothing/shoes/sandal/marisa head = /obj/item/clothing/head/wizard/marisa +/datum/outfit/admin/wizard/arch + name = "Arch Wizard" + + suit = /obj/item/clothing/suit/wizrobe/magusred + head = /obj/item/clothing/head/wizard/magus + belt = /obj/item/weapon/storage/belt/wands/full + l_hand = null + backpack_contents = list( + /obj/item/weapon/storage/box/engineer = 1, + /obj/item/clothing/suit/space/hardsuit/wizard = 1, + /obj/item/clothing/head/helmet/space/hardsuit/wizard = 1, + /obj/item/clothing/shoes/magboots = 1, + /obj/item/weapon/kitchen/knife/ritual = 1, + /obj/item/clothing/suit/wizrobe/red = 1, + /obj/item/clothing/head/wizard/red = 1 + ) + +/datum/outfit/admin/wizard/arch/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + . = ..() + if(visualsOnly) + return + var/obj/item/weapon/spellbook/B = H.r_hand + if(istype(B)) + B.owner = H // force-bind it so it can never be stolen, no matter what. + B.name = "Archwizard Spellbook" + B.uses = 50 + var/obj/item/weapon/card/id/I = H.wear_id + if(istype(I)) + apply_to_card(I, H, get_all_accesses(), "Arch Wizard") + /datum/outfit/admin/dark_priest name = "Dark Priest" @@ -1147,6 +1134,9 @@ /obj/item/weapon/storage/box/survival = 1, /obj/item/device/flashlight = 1, ) + implants = list( + /obj/item/weapon/implant/dust + ) /datum/outfit/admin/dark_priest/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) . = ..() @@ -1163,5 +1153,3 @@ var/obj/item/device/radio/headset/R = H.l_ear if(istype(R)) R.flags |= NODROP - var/obj/item/weapon/implant/dust/D = new /obj/item/weapon/implant/dust(H) - D.implant(H) \ No newline at end of file diff --git a/code/game/gamemodes/vampire/vampire_powers.dm b/code/game/gamemodes/vampire/vampire_powers.dm index c78cc55676f..1b5921119db 100644 --- a/code/game/gamemodes/vampire/vampire_powers.dm +++ b/code/game/gamemodes/vampire/vampire_powers.dm @@ -349,6 +349,7 @@ to_chat(user, "You have successfully Enthralled [H]. If they refuse to do as you say just adminhelp.") add_logs(user, H, "vampire-thralled") + /obj/effect/proc_holder/spell/vampire/self/cloak name = "Cloak of Darkness" desc = "Toggles whether you are currently cloaking yourself in darkness." diff --git a/code/game/jobs/job/central.dm b/code/game/jobs/job/central.dm index 64298b70fbe..b07b2655f28 100644 --- a/code/game/jobs/job/central.dm +++ b/code/game/jobs/job/central.dm @@ -28,16 +28,13 @@ glasses = /obj/item/clothing/glasses/hud/security/sunglasses id = /obj/item/weapon/card/id/centcom pda = /obj/item/device/pda/centcom - backpack_contents = list( - /obj/item/weapon/gun/energy/pulse/pistol = 1, - /obj/item/weapon/implanter/dust = 1, - /obj/item/weapon/implanter/death_alarm = 1 + belt = /obj/item/weapon/gun/energy/pulse/pistol + implants = list( + /obj/item/weapon/implant/mindshield, + /obj/item/weapon/implant/dust ) - - implants = list(/obj/item/weapon/implant/mindshield) - backpack = /obj/item/weapon/storage/backpack/satchel - + box = /obj/item/weapon/storage/box/centcomofficer // CC Officials who lead ERTs, Death Squads, etc. @@ -61,22 +58,33 @@ /datum/outfit/job/ntspecops name = "Special Operations Officer" jobtype = /datum/job/ntspecops - - uniform = /obj/item/clothing/under/syndicate/combat + uniform = /obj/item/clothing/under/rank/centcom_commander suit = /obj/item/clothing/suit/space/deathsquad/officer + back = /obj/item/weapon/storage/backpack/security + belt = /obj/item/weapon/gun/energy/pulse/pistol/m1911 gloves = /obj/item/clothing/gloves/combat shoes = /obj/item/clothing/shoes/combat - head = /obj/item/clothing/head/beret/centcom/officer/navy + mask = /obj/item/clothing/mask/cigarette/cigar/cohiba + head = /obj/item/clothing/head/helmet/space/deathsquad/beret l_ear = /obj/item/device/radio/headset/centcom glasses = /obj/item/clothing/glasses/hud/security/sunglasses id = /obj/item/weapon/card/id/centcom pda = /obj/item/device/pda/centcom + r_pocket = /obj/item/weapon/storage/box/matches + box = /obj/item/weapon/storage/box/centcomofficer + backpack = /obj/item/weapon/storage/backpack/satchel backpack_contents = list( - /obj/item/weapon/implanter/dust = 1, - /obj/item/weapon/gun/energy/pulse/pistol/m1911 = 1, - /obj/item/weapon/implanter/death_alarm = 1 + /obj/item/clothing/shoes/magboots/advance = 1, + /obj/item/weapon/twohanded/dualsaber/red = 1, + /obj/item/weapon/storage/box/zipties = 1 ) - - implants = list(/obj/item/weapon/implant/mindshield) - - backpack = /obj/item/weapon/storage/backpack/satchel \ No newline at end of file + implants = list( + /obj/item/weapon/implant/mindshield, + /obj/item/weapon/implant/dust + ) + cybernetic_implants = list( + /obj/item/organ/internal/cyberimp/eyes/xray, + /obj/item/organ/internal/cyberimp/brain/anti_drop, + /obj/item/organ/internal/cyberimp/brain/anti_stun, + /obj/item/organ/internal/cyberimp/chest/nutriment/plus + ) \ No newline at end of file diff --git a/code/game/jobs/job/job.dm b/code/game/jobs/job/job.dm index cfb4e9418a9..a611735701a 100644 --- a/code/game/jobs/job/job.dm +++ b/code/game/jobs/job/job.dm @@ -142,8 +142,6 @@ shoes = /obj/item/clothing/shoes/black pda = /obj/item/device/pda - var/list/implants = null - var/backpack = /obj/item/weapon/storage/backpack var/satchel = /obj/item/weapon/storage/backpack/satchel_norm var/dufflebag = /obj/item/weapon/storage/backpack/duffel @@ -210,11 +208,6 @@ imprint_pda(H) - if(implants) - for(var/implant_type in implants) - var/obj/item/weapon/implant/I = new implant_type(H) - I.implant(H) - if(gear_leftovers.len) for(var/datum/gear/G in gear_leftovers) var/atom/placed_in = H.equip_or_collect(G.spawn_item(null, H.client.prefs.gear[G.display_name])) diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 302fa1bd0bc..30d8f8a9ef5 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -829,6 +829,26 @@ return return ..() + +/obj/item/weapon/storage/box/centcomofficer + name = "officer kit" + +/obj/item/weapon/storage/box/centcomofficer/New() + ..() + contents = list() + new /obj/item/clothing/mask/breath(src) + new /obj/item/weapon/tank/emergency_oxygen/double/full(src) + new /obj/item/device/flashlight/seclite(src) + new /obj/item/weapon/kitchen/knife/combat(src) + + new /obj/item/device/radio/centcom(src) + new /obj/item/weapon/door_remote/omni(src) + new /obj/item/weapon/implanter/death_alarm(src) + + new /obj/item/weapon/reagent_containers/hypospray/combat/nanites(src) + new /obj/item/weapon/pinpointer/advpinpointer(src) + + #undef NODESIGN #undef NANOTRASEN #undef SYNDI