This commit is contained in:
Ghommie
2019-11-22 05:17:42 +01:00
756 changed files with 36286 additions and 137158 deletions
@@ -159,7 +159,7 @@
to_chat(M, "<span class='warning'>Arousal is disabled. Feature is unavailable.</span>")
/mob/living/proc/mob_climax()//This is just so I can test this shit without being forced to add actual content to get rid of arousal. Will be a very basic proc for a while.
/mob/living/proc/mob_climax(forced_climax = FALSE)//This is just so I can test this shit without being forced to add actual content to get rid of arousal. Will be a very basic proc for a while.
set name = "Masturbate"
set category = "IC"
if(canbearoused && !restrained() && !stat)
@@ -30,16 +30,16 @@
name = "Tapered"
/datum/sprite_accessory/penis/tentacle
icon_state = "tentacle"
name = "Tentacled"
icon_state = "tentacle"
name = "Tentacled"
/datum/sprite_accessory/penis/hemi
icon_state = "hemi"
name = "Hemi"
icon_state = "hemi"
name = "Hemi"
/datum/sprite_accessory/penis/hemiknot
icon_state = "hemiknot"
name = "Knotted Hemi"
icon_state = "hemiknot"
name = "Knotted Hemi"
////////////////////////
@@ -117,8 +117,8 @@
name = "Furred"
/datum/sprite_accessory/vagina/gaping
icon_state = "gaping"
name = "Gaping"
icon_state = "gaping"
name = "Gaping"
//BREASTS BE HERE
/datum/sprite_accessory/breasts
@@ -1,11 +0,0 @@
/obj/machinery/computer/cargo
req_access = list(ACCESS_CARGO)
/obj/machinery/computer/cargo/request
req_access = list()
/obj/machinery/computer/cargo/ui_act(action, params, datum/tgui/ui)
if(!allowed(usr))
to_chat(usr, "<span class='notice'>Access denied.</span>")
return
. = ..()
@@ -194,28 +194,28 @@
ckeywhitelist = list("technicalmagi")
/datum/gear/gladiator
name = "Gladiator Armor"
category = SLOT_WEAR_SUIT
path = /obj/item/clothing/under/gladiator
ckeywhitelist = list("aroche")
name = "Gladiator Armor"
category = SLOT_WEAR_SUIT
path = /obj/item/clothing/under/gladiator
ckeywhitelist = list("aroche")
/datum/gear/bloodredtie
name = "Blood Red Tie"
category = SLOT_NECK
path = /obj/item/clothing/neck/tie/bloodred
ckeywhitelist = list("kyutness")
name = "Blood Red Tie"
category = SLOT_NECK
path = /obj/item/clothing/neck/tie/bloodred
ckeywhitelist = list("kyutness")
/datum/gear/puffydress
name = "Puffy Dress"
category = SLOT_WEAR_SUIT
path = /obj/item/clothing/suit/puffydress
ckeywhitelist = list("stallingratt")
name = "Puffy Dress"
category = SLOT_WEAR_SUIT
path = /obj/item/clothing/suit/puffydress
ckeywhitelist = list("stallingratt")
/datum/gear/labredblack
name = "Black and Red Coat"
category = SLOT_WEAR_SUIT
path = /obj/item/clothing/suit/toggle/labcoat/labredblack
ckeywhitelist = list("blakeryan", "durandalphor")
name = "Black and Red Coat"
category = SLOT_WEAR_SUIT
path = /obj/item/clothing/suit/toggle/labcoat/labredblack
ckeywhitelist = list("blakeryan", "durandalphor")
/datum/gear/torisword
name = "Rainbow Zweihander"
@@ -4,6 +4,20 @@
path = /obj/item/clothing/under/color/grey
restricted_roles = list("Assistant")
/datum/gear/neetsuit
name = "D.A.B. suit"
category = SLOT_WEAR_SUIT
path = /obj/item/clothing/suit/assu_suit
restricted_roles = list("Assistant")
cost = 2
/datum/gear/neethelm
name = "D.A.B. helmet"
category = SLOT_HEAD
path = /obj/item/clothing/head/assu_helmet
restricted_roles = list("Assistant")
cost = 2
/datum/gear/plushvar
name = "Ratvar Plushie"
category = SLOT_IN_BACKPACK
@@ -16,4 +30,4 @@
category = SLOT_IN_BACKPACK
path = /obj/item/toy/plush/narplush
cost = 5
restricted_roles = list("Chaplain")
restricted_roles = list("Chaplain")
@@ -1,6 +0,0 @@
/mob/living/carbon/key_down(_key, client/user)
switch(_key)
if("C")
toggle_combat_mode()
return
return ..()
@@ -1,13 +0,0 @@
/mob/living/carbon/human/key_down(_key, client/user)
switch(_key)
if("Shift")
sprint_hotkey(TRUE)
return
return ..()
/mob/living/carbon/human/key_up(_key, client/user)
switch(_key)
if("Shift")
sprint_hotkey(FALSE)
return
return ..()
@@ -1,13 +0,0 @@
/mob/living/silicon/robot/key_down(_key, client/user)
switch(_key)
if("Shift")
sprint_hotkey(TRUE)
return
return ..()
/mob/living/silicon/robot/key_up(_key, client/user)
switch(_key)
if("Shift")
sprint_hotkey(FALSE)
return
return ..()
@@ -1,8 +1,8 @@
GLOBAL_PROTECT(mentor_verbs)
GLOBAL_LIST_INIT(mentor_verbs, list(
/client/proc/cmd_mentor_say,
/client/proc/show_mentor_memo
))
GLOBAL_PROTECT(mentor_verbs)
/client/proc/add_mentor_verbs()
if(mentor_datum)
@@ -1,26 +0,0 @@
/datum/map_template/ruin/lavaland/alien_nest
name = "Alien Nest"
id = "alien-nest"
description = "Not even Necropolis is safe from alien infestation. The competition for hosts has locked the legion and aliens in an endless conflict that can only be resolved by a PKA."
suffix = "lavaland_surface_alien_nest.dmm"
cost = 20
//Aliens for the alien nest space ruin.
/obj/effect/mob_spawn/alien/corpse/humanoid/drone
mob_type = /mob/living/carbon/alien/humanoid/drone
death = TRUE
name = "alien drone"
mob_name = "alien drone"
/obj/effect/mob_spawn/alien/corpse/humanoid/queen
mob_type = /mob/living/carbon/alien/humanoid/royal/queen
death = TRUE
name = "alien queen"
mob_name = "alien queen"
/obj/item/reagent_containers/syringe/alien
name = "Hive's Blessing"
desc = "A syringe filled with a strange viscous liquid. It might be best to leave it alone."
amount_per_transfer_from_this = 1
volume = 1
list_reagents = list("xenomicrobes" = 1)
@@ -253,7 +253,7 @@ SLEEPER CODE IS IN game/objects/items/devices/dogborg_sleeper.dm !
if(!do_after(R, 50, target = target))
return //If they moved away, you can't eat them.
to_chat(R, "<span class='notice'>You finish off \the [target.name].</span>")
var/obj/item/stock_parts/cell.C = target
var/obj/item/stock_parts/cell/C = target
R.cell.charge = R.cell.charge + (C.charge / 3) //Instant full cell upgrades op idgaf
qdel(target)
return
@@ -312,6 +312,42 @@ SLEEPER CODE IS IN game/objects/items/devices/dogborg_sleeper.dm !
target.wash_cream()
return
//Nerfed tongue for flavour reasons (haha geddit?). Used for aux skins for regular borgs
/obj/item/soap/tongue/flavour
desc = "For giving affectionate kisses."
/obj/item/soap/tongue/flavour/attack_self(mob/user)
return
/obj/item/soap/tongue/flavour/afterattack(atom/target, mob/user, proximity)
if(!proximity)
return
var/mob/living/silicon/robot.R = user
if(ishuman(target))
var/mob/living/L = target
if(status == 0 && check_zone(R.zone_selected) == "head")
R.visible_message("<span class='warning'>\the [R] affectionally licks \the [L]'s face!</span>", "<span class='notice'>You affectionally lick \the [L]'s face!</span>")
playsound(src.loc, 'sound/effects/attackblob.ogg', 50, 1)
return
else if(status == 0)
R.visible_message("<span class='warning'>\the [R] affectionally licks \the [L]!</span>", "<span class='notice'>You affectionally lick \the [L]!</span>")
playsound(src.loc, 'sound/effects/attackblob.ogg', 50, 1)
return
//Same as above but for noses
/obj/item/analyzer/nose/flavour/AltClick(mob/user)
return
/obj/item/analyzer/nose/flavour/attack_self(mob/user)
return
/obj/item/analyzer/nose/flavour/afterattack(atom/target, mob/user, proximity)
if(!proximity)
return
do_attack_animation(target, null, src)
user.visible_message("<span class='notice'>[user] [pick(attack_verb)] \the [target.name] with their nose!</span>")
//Dogfood
/obj/item/trash/rkibble
@@ -1,26 +0,0 @@
mob/living/silicon
no_vore = TRUE
/mob/living/silicon/robot
var/dogborg = FALSE
/mob/living/silicon/robot/lay_down()
..()
update_canmove()
/mob/living/silicon/robot/update_canmove()
..()
if(client && stat != DEAD && dogborg == FALSE)
if(resting)
cut_overlays()
icon_state = "[module.cyborg_base_icon]-rest"
else
icon_state = "[module.cyborg_base_icon]"
update_icons()
/mob/living/silicon/robot/adjustStaminaLossBuffered(amount, updating_stamina = 1)
if(istype(cell))
cell.charge -= amount*5
@@ -1,466 +0,0 @@
/mob/living/silicon/robot/modules/medihound
set_module = /obj/item/robot_module/medihound
/mob/living/silicon/robot/modules/k9
set_module = /obj/item/robot_module/k9
/mob/living/silicon/robot/modules/scrubpup
set_module = /obj/item/robot_module/scrubpup
/mob/living/silicon/robot/modules/borgi
set_module = /obj/item/robot_module/borgi
/mob/living/silicon/robot/proc/get_cit_modules()
var/list/modulelist = list()
modulelist["MediHound"] = /obj/item/robot_module/medihound
if(BORG_SEC_AVAILABLE)
modulelist["Security K-9"] = /obj/item/robot_module/k9
modulelist["Scrub Puppy"] = /obj/item/robot_module/scrubpup
modulelist["Borgi"] = /obj/item/robot_module/borgi
return modulelist
/obj/item/robot_module
var/sleeper_overlay
var/icon/cyborg_icon_override
var/has_snowflake_deadsprite
var/cyborg_pixel_offset
var/moduleselect_alternate_icon
var/dogborg = FALSE
/obj/item/robot_module/k9
name = "Security K-9 Unit"
basic_modules = list(
/obj/item/restraints/handcuffs/cable/zipties,
/obj/item/storage/bag/borgdelivery,
/obj/item/dogborg/jaws/big,
/obj/item/dogborg/pounce,
/obj/item/clothing/mask/gas/sechailer/cyborg,
/obj/item/soap/tongue,
/obj/item/analyzer/nose,
/obj/item/dogborg/sleeper/K9,
/obj/item/gun/energy/disabler/cyborg,
/obj/item/pinpointer/crew)
emag_modules = list(/obj/item/gun/energy/laser/cyborg)
ratvar_modules = list(/obj/item/clockwork/slab/cyborg/security,
/obj/item/clockwork/weapon/ratvarian_spear)
cyborg_base_icon = "k9"
moduleselect_icon = "k9"
moduleselect_alternate_icon = 'modular_citadel/icons/ui/screen_cyborg.dmi'
can_be_pushed = FALSE
hat_offset = INFINITY
sleeper_overlay = "ksleeper"
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
has_snowflake_deadsprite = TRUE
dogborg = TRUE
cyborg_pixel_offset = -16
borghealth = 80
/obj/item/robot_module/k9/do_transform_animation()
..()
to_chat(loc,"<span class='userdanger'>While you have picked the Security K-9 module, you still have to follow your laws, NOT Space Law. \
For Crewsimov, this means you must follow criminals' orders unless there is a law 1 reason not to.</span>")
/obj/item/robot_module/k9/be_transformed_to(obj/item/robot_module/old_module)
var/mob/living/silicon/robot/R = loc
var/list/sechoundmodels = list("Default", "Dark", "Vale")
if(R.client && R.client.ckey in list("nezuli"))
sechoundmodels += "Alina"
var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in sechoundmodels
if(!borg_icon)
return FALSE
switch(borg_icon)
if("Default")
cyborg_base_icon = "k9"
if("Alina")
cyborg_base_icon = "alina-sec"
special_light_key = "alina"
sleeper_overlay = "alinasleeper"
if("Dark")
cyborg_base_icon = "k9dark"
if("Vale")
cyborg_base_icon = "valesec"
return ..()
/obj/item/robot_module/medihound
name = "MediHound"
basic_modules = list(
/obj/item/dogborg/jaws/small,
/obj/item/storage/bag/borgdelivery,
/obj/item/analyzer/nose,
/obj/item/soap/tongue,
/obj/item/extinguisher/mini,
/obj/item/healthanalyzer,
/obj/item/dogborg/sleeper/medihound,
/obj/item/roller/robo,
/obj/item/reagent_containers/borghypo,
/obj/item/twohanded/shockpaddles/cyborg/hound,
/obj/item/stack/medical/gauze/cyborg,
/obj/item/pinpointer/crew,
/obj/item/sensor_device)
emag_modules = list(/obj/item/dogborg/pounce)
ratvar_modules = list(/obj/item/clockwork/slab/cyborg/medical,
/obj/item/clockwork/weapon/ratvarian_spear)
cyborg_base_icon = "medihound"
moduleselect_icon = "medihound"
moduleselect_alternate_icon = 'modular_citadel/icons/ui/screen_cyborg.dmi'
can_be_pushed = FALSE
hat_offset = INFINITY
sleeper_overlay = "msleeper"
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
has_snowflake_deadsprite = TRUE
dogborg = TRUE
cyborg_pixel_offset = -16
/obj/item/robot_module/medihound/be_transformed_to(obj/item/robot_module/old_module)
var/mob/living/silicon/robot/R = loc
var/list/medhoundmodels = list("Default", "Dark", "Vale")
if(R.client && R.client.ckey in list("nezuli"))
medhoundmodels += "Alina"
var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in medhoundmodels
if(!borg_icon)
return FALSE
switch(borg_icon)
if("Default")
cyborg_base_icon = "medihound"
if("Dark")
cyborg_base_icon = "medihounddark"
sleeper_overlay = "mdsleeper"
if("Vale")
cyborg_base_icon = "valemed"
sleeper_overlay = "valemedsleeper"
if("Alina")
cyborg_base_icon = "alina-med"
special_light_key = "alina"
sleeper_overlay = "alinasleeper"
return ..()
/obj/item/robot_module/scrubpup
name = "Scrub Pup"
basic_modules = list(
/obj/item/dogborg/jaws/small,
/obj/item/analyzer/nose,
/obj/item/soap/tongue/scrubpup,
/obj/item/lightreplacer/cyborg,
/obj/item/extinguisher/mini,
/obj/item/dogborg/sleeper/compactor)
emag_modules = list(/obj/item/dogborg/pounce)
ratvar_modules = list(
/obj/item/clockwork/slab/cyborg/janitor,
/obj/item/clockwork/replica_fabricator/cyborg)
cyborg_base_icon = "scrubpup"
moduleselect_icon = "janitor"
hat_offset = INFINITY
clean_on_move = TRUE
sleeper_overlay = "jsleeper"
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
has_snowflake_deadsprite = TRUE
cyborg_pixel_offset = -16
dogborg = TRUE
/obj/item/robot_module/scrubpup/respawn_consumable(mob/living/silicon/robot/R, coeff = 1)
..()
var/obj/item/lightreplacer/LR = locate(/obj/item/lightreplacer) in basic_modules
if(LR)
for(var/i in 1 to coeff)
LR.Charge(R)
/obj/item/robot_module/scrubpup/do_transform_animation()
..()
to_chat(loc,"<span class='userdanger'>As tempting as it might be, do not begin binging on important items. Eat your garbage responsibly. People are not included under Garbage.</span>")
/obj/item/robot_module/borgi
name = "Borgi"
basic_modules = list(
/obj/item/dogborg/jaws/small,
/obj/item/storage/bag/borgdelivery,
/obj/item/analyzer/nose,
/obj/item/soap/tongue,
/obj/item/healthanalyzer,
/obj/item/extinguisher/mini,
/obj/item/borg/cyborghug)
emag_modules = list(/obj/item/dogborg/pounce)
ratvar_modules = list(
/obj/item/clockwork/slab/cyborg,
/obj/item/clockwork/weapon/ratvarian_spear,
/obj/item/clockwork/replica_fabricator/cyborg)
cyborg_base_icon = "borgi"
moduleselect_icon = "borgi"
moduleselect_alternate_icon = 'modular_citadel/icons/ui/screen_cyborg.dmi'
hat_offset = INFINITY
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
has_snowflake_deadsprite = TRUE
/*
/obj/item/robot_module/orepup
name = "Ore Pup"
basic_modules = list(
/obj/item/storage/bag/ore/cyborg,
/obj/item/analyzer/nose,
/obj/item/storage/bag/borgdelivery,
/obj/item/dogborg/sleeper/ore,
/obj/item/pickaxe/drill/cyborg,
/obj/item/shovel,
/obj/item/crowbar/cyborg,
/obj/item/weldingtool/mini,
/obj/item/extinguisher/mini,
/obj/item/t_scanner/adv_mining_scanner,
/obj/item/gun/energy/kinetic_accelerator/cyborg,
/obj/item/gps/cyborg)
emag_modules = list(/obj/item/dogborg/pounce)
ratvar_modules = list(
/obj/item/clockwork/slab/cyborg/miner,
/obj/item/clockwork/weapon/ratvarian_spear,
/obj/item/borg/sight/xray/truesight_lens)
cyborg_base_icon = "orepup"
moduleselect_icon = "orepup"
sleeper_overlay = "osleeper"
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
has_snowflake_deadsprite = TRUE
cyborg_pixel_offset = -16
/obj/item/robot_module/miner/do_transform_animation()
var/mob/living/silicon/robot/R = loc
R.cut_overlays()
R.setDir(SOUTH)
flick("orepup_transform", R)
do_transform_delay()
R.update_headlamp()
*/
/obj/item/robot_module/medical/be_transformed_to(obj/item/robot_module/old_module)
var/mob/living/silicon/robot/R = loc
var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in list("Default", "Heavy", "Sleek", "Marina", "Droid", "Eyebot")
if(!borg_icon)
return FALSE
switch(borg_icon)
if("Default")
cyborg_base_icon = "medical"
if("Droid")
cyborg_base_icon = "medical"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
hat_offset = 4
if("Sleek")
cyborg_base_icon = "sleekmed"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
if("Marina")
cyborg_base_icon = "marinamed"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
if("Eyebot")
cyborg_base_icon = "eyebotmed"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
if("Heavy")
cyborg_base_icon = "heavymed"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
return ..()
/obj/item/robot_module/janitor/be_transformed_to(obj/item/robot_module/old_module)
var/mob/living/silicon/robot/R = loc
var/list/janimodels = list("Default", "Sleek", "Marina", "Can", "Heavy")
var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in janimodels
if(!borg_icon)
return FALSE
switch(borg_icon)
if("Default")
cyborg_base_icon = "janitor"
if("Marina")
cyborg_base_icon = "marinajan"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
if("Sleek")
cyborg_base_icon = "sleekjan"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
if("Can")
cyborg_base_icon = "canjan"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
if("Heavy")
cyborg_base_icon = "heavyres"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
return ..()
/obj/item/robot_module/peacekeeper/be_transformed_to(obj/item/robot_module/old_module)
var/mob/living/silicon/robot/R = loc
var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in list("Default", "Spider")
if(!borg_icon)
return FALSE
switch(borg_icon)
if("Default")
cyborg_base_icon = "peace"
if("Spider")
cyborg_base_icon = "whitespider"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
return ..()
/obj/item/robot_module/security/be_transformed_to(obj/item/robot_module/old_module)
var/mob/living/silicon/robot/R = loc
var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in list("Default", "Default - Treads", "Heavy", "Sleek", "Can", "Marina", "Spider")
if(!borg_icon)
return FALSE
switch(borg_icon)
if("Default")
cyborg_base_icon = "sec"
if("Default - Treads")
cyborg_base_icon = "sec-tread"
special_light_key = "sec"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
if("Sleek")
cyborg_base_icon = "sleeksec"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
if("Marina")
cyborg_base_icon = "marinasec"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
if("Can")
cyborg_base_icon = "cansec"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
if("Spider")
cyborg_base_icon = "spidersec"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
if("Heavy")
cyborg_base_icon = "heavysec"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
return ..()
/obj/item/robot_module/butler/be_transformed_to(obj/item/robot_module/old_module)
var/mob/living/silicon/robot/R = loc
var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in list("Waitress", "Heavy", "Sleek", "Butler", "Tophat", "Kent", "Bro", "DarkK9", "Vale", "ValeDark")
if(!borg_icon)
return FALSE
switch(borg_icon)
if("Waitress")
cyborg_base_icon = "service_f"
if("Butler")
cyborg_base_icon = "service_m"
if("Bro")
cyborg_base_icon = "brobot"
if("Kent")
cyborg_base_icon = "kent"
special_light_key = "medical"
hat_offset = 3
if("Tophat")
cyborg_base_icon = "tophat"
special_light_key = null
hat_offset = INFINITY //He is already wearing a hat
if("Sleek")
cyborg_base_icon = "sleekserv"
special_light_key = "sleekserv"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
if("Heavy")
cyborg_base_icon = "heavyserv"
special_light_key = "heavyserv"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
if("DarkK9")
cyborg_base_icon = "k50"
special_light_key = "k50"
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
has_snowflake_deadsprite = TRUE
dogborg = TRUE
cyborg_pixel_offset = -16
if("Vale")
cyborg_base_icon = "valeserv"
special_light_key = "valeserv"
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
has_snowflake_deadsprite = TRUE
dogborg = TRUE
cyborg_pixel_offset = -16
if("ValeDark")
cyborg_base_icon = "valeservdark"
special_light_key = "valeservdark"
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
has_snowflake_deadsprite = TRUE
dogborg = TRUE
cyborg_pixel_offset = -16
return ..()
/obj/item/robot_module/engineering/be_transformed_to(obj/item/robot_module/old_module)
var/mob/living/silicon/robot/R = loc
var/list/engymodels = list("Default", "Default - Treads", "Heavy", "Sleek", "Marina", "Can", "Spider", "Loader","Handy", "Pup Dozer", "Vale")
if(R.client && R.client.ckey in list("nezuli"))
engymodels += "Alina"
var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in engymodels
if(!borg_icon)
return FALSE
switch(borg_icon)
if("Default")
cyborg_base_icon = "engineer"
if("Default - Treads")
cyborg_base_icon = "engi-tread"
special_light_key = "engineer"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
if("Loader")
cyborg_base_icon = "loaderborg"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
has_snowflake_deadsprite = TRUE
if("Handy")
cyborg_base_icon = "handyeng"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
if("Sleek")
cyborg_base_icon = "sleekeng"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
if("Can")
cyborg_base_icon = "caneng"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
if("Marina")
cyborg_base_icon = "marinaeng"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
if("Spider")
cyborg_base_icon = "spidereng"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
if("Heavy")
cyborg_base_icon = "heavyeng"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
if("Pup Dozer")
cyborg_base_icon = "pupdozer"
can_be_pushed = FALSE
hat_offset = INFINITY
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
has_snowflake_deadsprite = TRUE
dogborg = TRUE
cyborg_pixel_offset = -16
if("Vale")
cyborg_base_icon = "valeeng"
can_be_pushed = FALSE
hat_offset = INFINITY
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
has_snowflake_deadsprite = TRUE
dogborg = TRUE
cyborg_pixel_offset = -16
if("Alina")
cyborg_base_icon = "alina-eng"
special_light_key = "alina"
can_be_pushed = FALSE
hat_offset = INFINITY
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
has_snowflake_deadsprite = TRUE
dogborg = TRUE
cyborg_pixel_offset = -16
return ..()
/obj/item/robot_module/miner/be_transformed_to(obj/item/robot_module/old_module)
var/mob/living/silicon/robot/R = loc
var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in list("Lavaland", "Heavy", "Sleek", "Marina", "Can", "Spider", "Asteroid", "Droid")
if(!borg_icon)
return FALSE
switch(borg_icon)
if("Lavaland")
cyborg_base_icon = "miner"
if("Asteroid")
cyborg_base_icon = "minerOLD"
special_light_key = "miner"
if("Droid")
cyborg_base_icon = "miner"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
hat_offset = 4
if("Sleek")
cyborg_base_icon = "sleekmin"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
if("Can")
cyborg_base_icon = "canmin"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
if("Marina")
cyborg_base_icon = "marinamin"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
if("Spider")
cyborg_base_icon = "spidermin"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
if("Heavy")
cyborg_base_icon = "heavymin"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
return ..()
@@ -1,7 +0,0 @@
/obj/machinery/light
bulb_colour = "#FFEEDD"
bulb_power = 0.75
/obj/machinery/light/small
bulb_colour = "#FFDDBB"
bulb_power = 0.75
@@ -29,27 +29,27 @@
build_path = /obj/item/ammo_box/magazine/m10mm/hp
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
/datum/design/m10mm/ap
name = "pistol magazine (10mm AP)"
desc = "A gun magazine. Loaded with rounds which penetrate armour, but are less effective against normal targets."
id = "10mmap"
build_type = PROTOLATHE
materials = list(MAT_METAL = 40000, MAT_TITANIUM = 60000)
build_path = /obj/item/ammo_box/magazine/m10mm/ap
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
/datum/design/m10mm/ap
name = "pistol magazine (10mm AP)"
desc = "A gun magazine. Loaded with rounds which penetrate armour, but are less effective against normal targets."
id = "10mmap"
build_type = PROTOLATHE
materials = list(MAT_METAL = 40000, MAT_TITANIUM = 60000)
build_path = /obj/item/ammo_box/magazine/m10mm/ap
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
/datum/design/bolt_clip
name = "Surplus Rifle Clip"
desc = "A stripper clip used to quickly load bolt action rifles. Contains 5 rounds."
id = "bolt_clip"
build_type = PROTOLATHE
materials = list(MAT_METAL = 8000)
build_path = /obj/item/ammo_box/a762
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
name = "Surplus Rifle Clip"
desc = "A stripper clip used to quickly load bolt action rifles. Contains 5 rounds."
id = "bolt_clip"
build_type = PROTOLATHE
materials = list(MAT_METAL = 8000)
build_path = /obj/item/ammo_box/a762
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
/datum/design/m45 //Kinda NT in throey
name = "handgun magazine (.45)"
id = "m45"
@@ -1,11 +0,0 @@
/*
// REVOLVER THINGS GO HERE
*/
/obj/item/gun/ballistic/revolver //regular, classic sprite
name = "\improper .357 revolver"
desc = "A typical revolver. Uses .357 ammo."
/obj/item/gun/ballistic/revolver/syndie //New and improved 100% syndicate technology!
desc = "A suspicious revolver. Uses .357 ammo."
icon = 'modular_citadel/icons/obj/guns/revolver.dmi'
@@ -1,6 +1,6 @@
/obj/item/projectile/bullet/reusable/foam_dart/tag
name = "lastag foam dart"
var/suit_types = list(/obj/item/clothing/suit/redtag, /obj/item/clothing/suit/bluetag)
name = "lastag foam dart"
var/suit_types = list(/obj/item/clothing/suit/redtag, /obj/item/clothing/suit/bluetag)
/obj/item/projectile/bullet/reusable/foam_dart/tag/on_hit(atom/target, blocked = FALSE)
. = ..()
@@ -163,9 +163,9 @@ Creating a chem with a low purity will make you permanently fall in love with so
creator = get_mob_by_key(creatorID)
/datum/reagent/fermi/enthrall/on_new(list/data)
creatorID = data.["creatorID"]
creatorGender = data.["creatorGender"]
creatorName = data.["creatorName"]
creatorID = data["creatorID"]
creatorGender = data["creatorGender"]
creatorName = data["creatorName"]
creator = get_mob_by_key(creatorID)
/datum/reagent/fermi/enthrall/on_mob_add(mob/living/carbon/M)
@@ -32,7 +32,7 @@
can_synth = TRUE
/datum/reagent/fermi/eigenstate/on_new(list/data)
location_created = data.["location_created"]
location_created = data["location_created"]
//Main functions
/datum/reagent/fermi/eigenstate/on_mob_life(mob/living/M) //Teleports to chemistry!
@@ -54,7 +54,7 @@
to_chat(M, "<span class='userdanger'>You feel your wavefunction split!</span>")
if(purity > 0.9) //Teleports you home if it's pure enough
if(!location_created && data) //Just in case
location_created = data.["location_created"]
location_created = data["location_created"]
log_game("FERMICHEM: [M] ckey: [M.key] returned to [location_created] using eigenstasium")
do_sparks(5,FALSE,M)
do_teleport(M, location_created, 0, asoundin = 'sound/effects/phasein.ogg')
@@ -6,6 +6,7 @@
id = "fermi"
taste_description = "affection and love!"
can_synth = FALSE
value = 20
//SplitChem = TRUE
impure_chem = "fermiTox"// What chemical is metabolised with an inpure reaction
inverse_chem_val = 0.25 // If the impurity is below 0.5, replace ALL of the chem with inverse_chemupon metabolising
@@ -178,6 +179,7 @@
inverse_chem = "nanite_b_goneTox" //At really impure vols, it just becomes 100% inverse
taste_description = "what can only be described as licking a battery."
pH = 9
value = 90
can_synth = FALSE
/datum/reagent/fermi/nanite_b_gone/on_mob_life(mob/living/carbon/C)
@@ -131,7 +131,7 @@
var/turf/open/location = get_turf(my_atom)
if(location)
E.location_created = location
E.data.["location_created"] = location
E.data["location_created"] = location
//serum
@@ -314,16 +314,16 @@
for(var/mob/M in seen)
to_chat(M, "<span class='warning'>The reaction splutters and fails to react properly.</span>") //Just in case
E.purity = 0
if (B.data.["gender"] == "female")
E.data.["creatorGender"] = "Mistress"
if (B.data["gender"] == "female")
E.data["creatorGender"] = "Mistress"
E.creatorGender = "Mistress"
else
E.data.["creatorGender"] = "Master"
E.data["creatorGender"] = "Master"
E.creatorGender = "Master"
E.data["creatorName"] = B.data.["real_name"]
E.creatorName = B.data.["real_name"]
E.data.["creatorID"] = B.data.["ckey"]
E.creatorID = B.data.["ckey"]
E.data["creatorName"] = B.data["real_name"]
E.creatorName = B.data["real_name"]
E.data["creatorID"] = B.data["ckey"]
E.creatorID = B.data["ckey"]
//So slimes can play too.
/datum/chemical_reaction/fermi/enthrall/slime
@@ -337,16 +337,16 @@
for(var/mob/M in seen)
to_chat(M, "<span class='warning'>The reaction splutters and fails to react.</span>") //Just in case
E.purity = 0
if (B.data.["gender"] == "female")
E.data.["creatorGender"] = "Mistress"
if (B.data["gender"] == "female")
E.data["creatorGender"] = "Mistress"
E.creatorGender = "Mistress"
else
E.data.["creatorGender"] = "Master"
E.data["creatorGender"] = "Master"
E.creatorGender = "Master"
E.data["creatorName"] = B.data.["real_name"]
E.creatorName = B.data.["real_name"]
E.data.["creatorID"] = B.data.["ckey"]
E.creatorID = B.data.["ckey"]
E.data["creatorName"] = B.data["real_name"]
E.creatorName = B.data["real_name"]
E.data["creatorID"] = B.data["ckey"]
E.creatorID = B.data["ckey"]
/datum/chemical_reaction/fermi/enthrall/FermiExplode(datum/reagents, var/atom/my_atom, volume, temp, pH)
var/turf/T = get_turf(my_atom)
@@ -114,8 +114,8 @@
name = "Hexacrocin"
id = "aphro+"
description = "Chemically condensed form of basic crocin. This aphrodisiac is extremely powerful and addictive in most animals.\
Addiction withdrawals can cause brain damage and shortness of breath. Overdosage can lead to brain damage and a\
permanent increase in libido (commonly referred to as 'bimbofication')."
Addiction withdrawals can cause brain damage and shortness of breath. Overdosage can lead to brain damage and a \
permanent increase in libido (commonly referred to as 'bimbofication')."
taste_description = "liquid desire"
color = "#FF2BFF"//dark pink
addiction_threshold = 20
@@ -1,6 +0,0 @@
/obj/machinery/disposal/bin/alt_attack_hand(mob/user)
if(can_interact(usr))
flush = !flush
update_icon()
return TRUE
return FALSE
@@ -1,63 +1,63 @@
/datum/design/autoylathe
build_type = AUTOYLATHE
build_type = AUTOYLATHE
/datum/design/autoylathe/mech
category = list("initial", "Figurines")
category = list("initial", "Figurines")
/datum/design/autoylathe/mech/contraband
category = list("hacked", "Figurines")
category = list("hacked", "Figurines")
/datum/design/autoylathe/figure
category = list("initial", "Figurines")
category = list("initial", "Figurines")
/datum/design/autoylathe/balloon
name = "Empty Water balloon"
id = "waterballoon"
materials = list(MAT_PLASTIC = 50)
build_path = /obj/item/toy/balloon
category = list("initial", "Toys")
name = "Empty Water balloon"
id = "waterballoon"
materials = list(MAT_PLASTIC = 50)
build_path = /obj/item/toy/balloon
category = list("initial", "Toys")
/datum/design/autoylathe/spinningtoy
name = "Toy Singularity"
id = "singuloutoy"
materials = list(MAT_PLASTIC = 500)
build_path = /obj/item/toy/spinningtoy
category = list("initial", "Toys")
name = "Toy Singularity"
id = "singuloutoy"
materials = list(MAT_PLASTIC = 500)
build_path = /obj/item/toy/spinningtoy
category = list("initial", "Toys")
/datum/design/autoylathe/capgun
name = "Cap Gun"
id = "capgun"
materials = list(MAT_PLASTIC = 500)
build_path = /obj/item/toy/gun
category = list("initial", "Pistols")
name = "Cap Gun"
id = "capgun"
materials = list(MAT_PLASTIC = 500)
build_path = /obj/item/toy/gun
category = list("initial", "Pistols")
/datum/design/autoylathe/capgunammo
name = "Capgun Ammo"
id = "capgunammo"
materials = list(MAT_PLASTIC = 50)
build_path = /obj/item/toy/ammo/gun
category = list("initial", "misc")
name = "Capgun Ammo"
id = "capgunammo"
materials = list(MAT_PLASTIC = 50)
build_path = /obj/item/toy/ammo/gun
category = list("initial", "misc")
/datum/design/autoylathe/toysword
name = "Toy Sword"
id = "toysword"
materials = list(MAT_PLASTIC = 500)
build_path = /obj/item/toy/sword
category = list("initial", "Melee")
name = "Toy Sword"
id = "toysword"
materials = list(MAT_PLASTIC = 500)
build_path = /obj/item/toy/sword
category = list("initial", "Melee")
/datum/design/autoylathe/foamblade
name = "Foam Armblade"
id = "foamblade"
materials = list(MAT_PLASTIC = 500)
build_path = /obj/item/toy/foamblade
category = list("initial", "Melee")
name = "Foam Armblade"
id = "foamblade"
materials = list(MAT_PLASTIC = 500)
build_path = /obj/item/toy/foamblade
category = list("initial", "Melee")
/datum/design/autoylathe/windupbox
name = "Wind Up Toolbox"
id = "windupbox"
materials = list(MAT_PLASTIC = 500)
build_path = /obj/item/toy/windupToolbox
category = list("initial", "Toys")
name = "Wind Up Toolbox"
id = "windupbox"
materials = list(MAT_PLASTIC = 500)
build_path = /obj/item/toy/windupToolbox
category = list("initial", "Toys")
/datum/design/autoylathe/toydualsword
name = "Double-Bladed Toy Sword"
@@ -456,11 +456,11 @@
category = list("hacked", "Figurines")
/datum/design/autoylathe/figure/wizard
name = "Wizard"
id = "wizfigure"
materials = list(MAT_PLASTIC = 500, MAT_METAL = 50)
build_path = /obj/item/toy/figure/wizard
category = list("hacked", "Figurines")
name = "Wizard"
id = "wizfigure"
materials = list(MAT_PLASTIC = 500, MAT_METAL = 50)
build_path = /obj/item/toy/figure/wizard
category = list("hacked", "Figurines")
/datum/design/autoylathe/dildo
name = "Customizable Dildo"
@@ -521,23 +521,25 @@
//because why not make a boxed kit with all of the lastag shit?
/obj/item/storage/box/blueteam
name = "Blue Team Kit"
/obj/item/storage/box/blueteam/PopulateContents()
new /obj/item/clothing/head/helmet/bluetaghelm(src)
new /obj/item/clothing/suit/bluetag(src)
new /obj/item/gun/energy/laser/bluetag(src)
new /obj/item/clothing/gloves/color/blue(src)
new /obj/item/clothing/shoes/sneakers/blue(src)
new /obj/item/clothing/under/color/blue(src)
new /obj/item/clothing/head/helmet/bluetaghelm(src)
new /obj/item/clothing/suit/bluetag(src)
new /obj/item/gun/energy/laser/bluetag(src)
new /obj/item/clothing/gloves/color/blue(src)
new /obj/item/clothing/shoes/sneakers/blue(src)
new /obj/item/clothing/under/color/blue(src)
/obj/item/storage/box/redteam
name = "Red Team Kit"
/obj/item/storage/box/redteam/PopulateContents()
new /obj/item/clothing/head/helmet/redtaghelm(src)
new /obj/item/clothing/suit/redtag(src)
new /obj/item/gun/energy/laser/redtag(src)
new /obj/item/clothing/gloves/color/red(src)
new /obj/item/clothing/shoes/sneakers/red(src)
new /obj/item/clothing/under/color/red(src)
new /obj/item/clothing/head/helmet/redtaghelm(src)
new /obj/item/clothing/suit/redtag(src)
new /obj/item/gun/energy/laser/redtag(src)
new /obj/item/clothing/gloves/color/red(src)
new /obj/item/clothing/shoes/sneakers/red(src)
new /obj/item/clothing/under/color/red(src)
/datum/design/autoylathe/lastag/blue
name = "Blue Lasertag Kit"