mirror of
https://github.com/quotefox/Hyper-Station-13.git
synced 2026-07-14 09:12:32 +01:00
Revert "Merge branch 'master' into fairylights"
This reverts commit2947727659, reversing changes made to91063fe882.
This commit is contained in:
@@ -11,15 +11,7 @@
|
||||
for(var/obj/item/organ/genital/G in U.internal_organs)
|
||||
if(!G.nochange)
|
||||
if(!G.dontlist)
|
||||
var/genital_visibility = "[G.name] <font color='green'>(Visible)</font>"
|
||||
switch(G.mode)
|
||||
if(GENITALS_HIDDEN)
|
||||
genital_visibility = "[G.name] <font color='red'>(Hidden)</font>"
|
||||
if(GENITALS_CLOTHES)
|
||||
genital_visibility = "[G.name] <font color='yellow'>(Hidden by Clothes)</font>"
|
||||
if(GENITALS_VISIBLE)
|
||||
genital_visibility = "[G.name] <font color='green'>(Visible)</font>"
|
||||
dat += "<a href='byond://?src=[REF(src)];hide[G.name]=1'>[genital_visibility]</a><BR>"
|
||||
dat += "<a href='byond://?src=[REF(src)];hide[G.name]=1'>[G.mode == "hidden" ? "[G.name] <font color='red'>(Hidden)</font>" : (G.mode == "clothes" ? "[G.name] <font color='yellow'>(Hidden by Clothes)</font>" : (G.mode == "visable" ? "[G.name] <font color='green'>(Visable)</font>" : "[G.name] <font color='green'>(Visable)</font>"))]</a><BR>"
|
||||
|
||||
dat += {"<BR><B>Contexual Options</B><BR><HR>"}
|
||||
var/obj/item/organ/genital/penis/P = user.getorganslot("penis")
|
||||
@@ -53,17 +45,20 @@
|
||||
if(Belly.inflatable)
|
||||
dat += "<a href='byond://?src=[REF(src)];shrink_belly=1'>Deflate belly</A>"
|
||||
dat += "(Shrink your belly down a size)<BR>"
|
||||
|
||||
if(user.pulling && !isnoncarbon(user.pulling)) // do not fuck animals
|
||||
|
||||
|
||||
if(user.pulling)
|
||||
dat += "<a href='byond://?src=[REF(src)];climaxover=1'>Climax over [user.pulling]</A>" //you can cum on objects if you really want...
|
||||
dat += "(Orgasm over a person or object.)<BR>"
|
||||
if(iscarbon(user.pulling))
|
||||
dat += "<a href='byond://?src=[REF(src)];climaxwith=1'>Climax with [user.pulling]</A>"
|
||||
dat += {"(Orgasm with another person.)<BR>"}
|
||||
var/mob/living/carbon/human/H = user.pulling
|
||||
if(H && H.breedable && P)
|
||||
dat += "<a href='byond://?src=[REF(src)];impreg=1'>Impregnate [U.pulling] ([clamp(U.impregchance,0,100)]%)</A>"
|
||||
dat += "(Climax inside another person, and attempt to knock them up.)<BR>"
|
||||
if(isliving(user.pulling))
|
||||
if(iscarbon(user.pulling))
|
||||
dat += "<a href='byond://?src=[REF(src)];climaxwith=1'>Climax with [user.pulling]</A>"
|
||||
dat += {"(Orgasm with another person.)<BR>"}
|
||||
|
||||
var/mob/living/carbon/human/H = user.pulling
|
||||
if(H.breedable && P && H)
|
||||
dat += "<a href='byond://?src=[REF(src)];impreg=1'>Impregnate [U.pulling] ([clamp(U.impregchance,0,100)]%)</A>"
|
||||
dat += "(Climax inside another person, and attempt to knock them up.)<BR>"
|
||||
else
|
||||
dat += "<span class='linkOff'>Climax over</span></A>"
|
||||
dat += "(Requires a partner)<BR>"
|
||||
@@ -86,9 +81,11 @@
|
||||
dat += "<a href='byond://?src=[REF(src)];omenu=1'>Old Menu</A>"
|
||||
dat += "<a href='byond://?src=[REF(src)];underwear=1'>Toggle Undergarments </A>"
|
||||
dat += "<BR>"
|
||||
|
||||
var/datum/browser/popup = new(user, "arousal", "Arousal Panel")
|
||||
popup.set_content(dat)
|
||||
popup.set_title_image(user.browse_rsc_icon(icon, icon_state), 500,600)
|
||||
|
||||
popup.open()
|
||||
|
||||
|
||||
@@ -143,7 +140,7 @@
|
||||
T.toggle_visibility(picked_visibility)
|
||||
|
||||
if(href_list["masturbate"])
|
||||
if (H.isPercentAroused(33)) //requires 33% arousal.
|
||||
if (H.arousalloss >= (H.max_arousal / 100) * 33) //requires 33% arousal.
|
||||
H.solomasturbate()
|
||||
return
|
||||
else
|
||||
@@ -151,7 +148,7 @@
|
||||
return
|
||||
|
||||
if(href_list["container"])
|
||||
if (H.isPercentAroused(33)) //requires 33% arousal.
|
||||
if (H.arousalloss >= (H.max_arousal / 100) * 33) //requires 33% arousal.
|
||||
H.cumcontainer()
|
||||
return
|
||||
else
|
||||
@@ -159,7 +156,7 @@
|
||||
return
|
||||
|
||||
if(href_list["clothesplosion"])
|
||||
if (H.isPercentAroused(33)) //Requires 33% arousal.
|
||||
if (H.arousalloss >= (H.max_arousal / 100) * 33) //Requires 33% arousal.
|
||||
H.clothesplosion()
|
||||
return
|
||||
else
|
||||
@@ -167,7 +164,7 @@
|
||||
return
|
||||
|
||||
if(href_list["climaxself"])
|
||||
if (H.isPercentAroused(33)) //requires 33% arousal.
|
||||
if (H.arousalloss >= (H.max_arousal / 100) * 33) //requires 33% arousal.
|
||||
H.climaxself()
|
||||
return
|
||||
else
|
||||
@@ -175,7 +172,7 @@
|
||||
return
|
||||
|
||||
if(href_list["climax"])
|
||||
if (H.isPercentAroused(33)) //requires 33% arousal.
|
||||
if (H.arousalloss >= (H.max_arousal / 100) * 33) //requires 33% arousal.
|
||||
H.climaxalone(FALSE)
|
||||
return
|
||||
else
|
||||
@@ -183,7 +180,7 @@
|
||||
return
|
||||
|
||||
if(href_list["climaxover"])
|
||||
if (H.isPercentAroused(33)) //requires 33% arousal.
|
||||
if (H.arousalloss >= (H.max_arousal / 100) * 33) //requires 33% arousal.
|
||||
H.climaxover(usr.pulling)
|
||||
return
|
||||
else
|
||||
@@ -191,7 +188,7 @@
|
||||
return
|
||||
|
||||
if(href_list["climaxwith"])
|
||||
if (H.isPercentAroused(33)) //requires 33% arousal.
|
||||
if (H.arousalloss >= (H.max_arousal / 100) * 33) //requires 33% arousal.
|
||||
H.climaxwith(usr.pulling)
|
||||
return
|
||||
else
|
||||
@@ -199,7 +196,7 @@
|
||||
return
|
||||
|
||||
if(href_list["impreg"])
|
||||
if (H.isPercentAroused(33)) //requires 33% arousal.
|
||||
if (H.arousalloss >= (H.max_arousal / 100) * 33) //requires 33% arousal.
|
||||
H.impregwith(usr.pulling)
|
||||
return
|
||||
else
|
||||
@@ -334,7 +331,7 @@ obj/screen/arousal/proc/kiss()
|
||||
return
|
||||
//We got hands, let's pick an organ
|
||||
var/obj/item/organ/genital/picked_organ
|
||||
picked_organ = pick_climax_genitals(masturbation=TRUE, title="Masturbation")
|
||||
picked_organ = pick_masturbate_genitals()
|
||||
if(picked_organ)
|
||||
src << browse(null, "window=arousal") //closes the window
|
||||
mob_masturbate(picked_organ)
|
||||
@@ -368,31 +365,55 @@ obj/screen/arousal/proc/kiss()
|
||||
to_chat(src, "<span class='warning'>You cannot climax without choosing genitals.</span>")
|
||||
return
|
||||
|
||||
/mob/living/carbon/human/proc/climaxwith(mob/living/carbon/human/partner)
|
||||
if(!partner)
|
||||
to_chat(src, "<span class='warning'>You cannot do this alone.</span>")
|
||||
return
|
||||
/mob/living/carbon/human/proc/climaxwith(mob/living/T)
|
||||
|
||||
var/mob/living/carbon/human/L = pick_partner()
|
||||
var/obj/item/organ/genital/picked_organ
|
||||
picked_organ = pick_climax_genitals()
|
||||
if(!picked_organ)
|
||||
if(picked_organ)
|
||||
var/mob/living/partner = L
|
||||
if(partner)
|
||||
src << browse(null, "window=arousal") //alls fine, we can close the window now.
|
||||
var/obj/item/organ/genital/penis/P = picked_organ
|
||||
var/spillage = "No" //default to no, just incase player has items on to prevent climax
|
||||
if(!P.condom == 1&&!P.sounding == 1) //you cant climax with a condom on or sounding in.
|
||||
spillage = input(src, "Would your fluids spill outside?", "Choose overflowing option", "Yes") as anything in list("Yes", "No")
|
||||
if(spillage == "Yes")
|
||||
mob_climax_partner(picked_organ, partner, TRUE, FALSE, FALSE)
|
||||
else
|
||||
mob_climax_partner(picked_organ, partner, FALSE, FALSE, FALSE)
|
||||
else
|
||||
to_chat(src, "<span class='warning'>You cannot do this alone.</span>")
|
||||
return
|
||||
else //They either lack organs that can masturbate, or they didn't pick one.
|
||||
to_chat(src, "<span class='warning'>You cannot climax without choosing genitals.</span>")
|
||||
return
|
||||
src << browse(null, "window=arousal") // close arousal window
|
||||
mob_climax_inside_spillage(picked_organ, partner, impreg=FALSE)
|
||||
|
||||
|
||||
/mob/living/carbon/human/proc/climaxover(atom/partner)
|
||||
|
||||
/mob/living/carbon/human/proc/climaxover(mob/living/T)
|
||||
|
||||
var/mob/living/carbon/human/L = T
|
||||
var/obj/item/organ/genital/picked_organ
|
||||
picked_organ = pick_climax_genitals()
|
||||
if(!picked_organ)
|
||||
if(picked_organ)
|
||||
src << browse(null, "window=arousal") //alls fine, we can close the window now.
|
||||
var/mob/living/partner = L
|
||||
if(partner)
|
||||
var/obj/item/organ/genital/penis/P = picked_organ
|
||||
if(P.condom == 1)
|
||||
to_chat(src, "<span class='warning'>You cannot do this action with a condom on.</span>")
|
||||
return
|
||||
if(P.sounding == 1)
|
||||
to_chat(src, "<span class='warning'>You cannot do this action with a sounding in.</span>")
|
||||
return
|
||||
mob_climax_partner(picked_organ, partner, FALSE, FALSE, TRUE)
|
||||
else
|
||||
to_chat(src, "<span class='warning'>You cannot do this alone.</span>")
|
||||
return
|
||||
else //They either lack organs that can masturbate, or they didn't pick one.
|
||||
to_chat(src, "<span class='warning'>You cannot climax without choosing genitals.</span>")
|
||||
return
|
||||
src << browse(null, "window=arousal") //alls fine, we can close the window now.
|
||||
if(!partner || isnoncarbon(partner))
|
||||
to_chat(src, "<span class='warning'>You cannot do this alone.</span>")
|
||||
return
|
||||
mob_climax_cover(picked_organ, partner)
|
||||
|
||||
|
||||
/mob/living/carbon/human/proc/clothesplosion()
|
||||
if(usr.restrained(TRUE))
|
||||
@@ -407,29 +428,39 @@ obj/screen/arousal/proc/kiss()
|
||||
H.visible_message("<span class='boldnotice'>[H] explodes out of their clothes!'</span>")
|
||||
|
||||
|
||||
/mob/living/carbon/human/proc/impregwith(mob/living/carbon/T)
|
||||
var/mob/living/carbon/human/partner = pick_partner()
|
||||
var/obj/item/organ/genital/penis/picked_organ = src.getorganslot("penis")
|
||||
// wow that is a lot of conditionals huh
|
||||
if(!picked_organ) // no penis :(
|
||||
to_chat(src, "<span class='warning'>You cannot impregnate someone without a penis.</span>")
|
||||
return
|
||||
if(!partner)
|
||||
to_chat(src, "<span class='warning'>You cannot do this alone.</span>")
|
||||
return
|
||||
if(!partner.breedable) //check if impregable.
|
||||
to_chat(src, "<span class='warning'>Your partner cannot be impregnated.</span>")
|
||||
//some fuckery happening, you shouldnt even get to this point tbh.
|
||||
return
|
||||
if(picked_organ.condom)
|
||||
to_chat(src, "<span class='warning'>You cannot impregnate someone with a condom on.</span>")
|
||||
return
|
||||
if(picked_organ.sounding)
|
||||
to_chat(src, "<span class='warning'>You cannot impregnate someone with a sounding rod in.</span>")
|
||||
return
|
||||
src << browse(null, "window=arousal") //alls fine, we can close the window now.
|
||||
mob_climax_inside_spillage(picked_organ, partner, impreg=TRUE)
|
||||
|
||||
/mob/living/carbon/human/proc/impregwith(mob/living/T)
|
||||
|
||||
var/mob/living/carbon/human/L = pick_partner()
|
||||
var/obj/item/organ/genital/picked_organ
|
||||
picked_organ = src.getorganslot("penis") //Impregnation must be done with a penis.
|
||||
if(picked_organ)
|
||||
var/mob/living/partner = L
|
||||
if(partner)
|
||||
if(!partner.breedable)//check if impregable.
|
||||
to_chat(src, "<span class='warning'>Your partner cannot be impregnated.</span>")//some fuckary happening, you shouldnt even get to this point tbh.
|
||||
return
|
||||
var/obj/item/organ/genital/penis/P = picked_organ
|
||||
//you cant impreg with a condom on or sounding in.
|
||||
if(P.condom == 1)
|
||||
to_chat(src, "<span class='warning'>You cannot do this action with a condom on.</span>")
|
||||
return
|
||||
if(P.sounding == 1)
|
||||
to_chat(src, "<span class='warning'>You cannot do this action with a sounding in.</span>")
|
||||
return
|
||||
src << browse(null, "window=arousal") //alls fine, we can close the window now.
|
||||
//Keeping this for messy fun
|
||||
var/spillage = input(src, "Would your fluids spill outside?", "Choose overflowing option", "Yes") as anything in list("Yes", "No")
|
||||
if(spillage == "Yes")
|
||||
mob_climax_partner(picked_organ, partner, TRUE, TRUE, FALSE)
|
||||
else
|
||||
mob_climax_partner(picked_organ, partner, FALSE, TRUE, FALSE)
|
||||
else
|
||||
to_chat(src, "<span class='warning'>You cannot do this alone.</span>")
|
||||
return
|
||||
else //no penis :(
|
||||
to_chat(src, "<span class='warning'>You cannot impregnate without a penis.</span>")
|
||||
return
|
||||
|
||||
/mob/living/carbon/human/proc/cumcontainer(mob/living/T)
|
||||
//We'll need hands and no restraints.
|
||||
@@ -469,11 +500,6 @@ obj/screen/arousal/proc/kiss()
|
||||
cum_splatter_icon.Blend(icon('hyperstation/icons/effects/cumoverlay.dmi', "cum_obj"), ICON_MULTIPLY)
|
||||
add_overlay(cum_splatter_icon)
|
||||
|
||||
/mob/living/carbon/add_cum_overlay(type="normal")
|
||||
var/mutable_appearance/cumoverlay = mutable_appearance('hyperstation/icons/effects/cumoverlay.dmi')
|
||||
cumoverlay.icon_state = "cum_[type]"
|
||||
add_overlay(cumoverlay)
|
||||
|
||||
/atom/proc/wash_cum()
|
||||
cut_overlay(mutable_appearance('hyperstation/icons/effects/cumoverlay.dmi', "cum_normal"))
|
||||
cut_overlay(mutable_appearance('hyperstation/icons/effects/cumoverlay.dmi', "cum_large"))
|
||||
@@ -497,7 +523,7 @@ obj/screen/arousal/proc/kiss()
|
||||
return
|
||||
//We got hands, let's pick an organ
|
||||
var/obj/item/organ/genital/picked_organ
|
||||
picked_organ = pick_climax_genitals(masturbation=TRUE, title="Masturbation")
|
||||
picked_organ = pick_masturbate_genitals()
|
||||
if(picked_organ)
|
||||
src << browse(null, "window=arousal") //closes the window
|
||||
mob_masturbate(picked_organ, cover = TRUE)
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
/obj/item/organ/genital/proc/get_fluid_source()
|
||||
if(producing)
|
||||
return src.reagents
|
||||
if(linked_organ && linked_organ.producing)
|
||||
return linked_organ.reagents
|
||||
return null
|
||||
@@ -5,31 +5,3 @@
|
||||
contains = list(/obj/item/polepack/,
|
||||
/obj/item/wrench/)
|
||||
crate_name = "stripper pole crate"
|
||||
|
||||
/datum/supply_pack/organic/donkpockets
|
||||
name = "Donkpocket Shipment"
|
||||
desc = "We at Donk corp provide a wide five selection of holovid ready dinner pockets for all your dietary needs from extra-cheese to vegan to even mothpeople. Product of Donk co."
|
||||
cost = 1500
|
||||
contains = list()
|
||||
crate_name = "Donk Crate"
|
||||
crate_type = /obj/structure/closet/crate/freezer
|
||||
var/num_contained = 5
|
||||
//Put the types you want to contain inside this list below.
|
||||
var/can_contain = list( /obj/item/storage/box/donkpockets,
|
||||
/obj/item/storage/box/donkpockets/donkpockettaco,
|
||||
/obj/item/storage/box/donkpockets/donkpocketplasma,
|
||||
/obj/item/storage/box/donkpockets/donkpocketbreakfast,
|
||||
/obj/item/storage/box/donkpockets/donkpocketmoth,
|
||||
/obj/item/storage/box/donkpockets/donkpocketvegan,
|
||||
/obj/item/storage/box/donkpockets/donkpocketspicy,
|
||||
/obj/item/storage/box/donkpockets/donkpocketteriyaki,
|
||||
/obj/item/storage/box/donkpockets/donkpocketpizza,
|
||||
/obj/item/storage/box/donkpockets/donkpocketberry,
|
||||
/obj/item/storage/box/donkpockets/donkpockethonk
|
||||
)
|
||||
|
||||
/datum/supply_pack/organic/donkpockets/fill(obj/structure/closet/crate/C)
|
||||
contains = list()
|
||||
for(var/i = 0; i < num_contained; i++)
|
||||
contains += pick(can_contain)
|
||||
. = ..()
|
||||
@@ -1,36 +0,0 @@
|
||||
/datum/preferences/proc/hyper_character_pref_load(savefile/S)
|
||||
S["feature_cosmetic_head"] >> features["cosmetic_head"]
|
||||
S["feature_cosmetic_chest"] >> features["cosmetic_chest"]
|
||||
S["feature_cosmetic_l_arm"] >> features["cosmetic_l_arm"]
|
||||
S["feature_cosmetic_r_arm"] >> features["cosmetic_r_arm"]
|
||||
S["feature_cosmetic_l_leg"] >> features["cosmetic_l_leg"]
|
||||
S["feature_cosmetic_r_leg"] >> features["cosmetic_r_leg"]
|
||||
S["cosmetic_markings"] >> features["cosmetic_markings"]
|
||||
var/cosmetic_head = sanitize_inlist(features["cosmetic_head"], GLOB.cosmetic_heads, "default")
|
||||
var/cosmetic_chest = sanitize_inlist(features["cosmetic_chest"], GLOB.cosmetic_chests, "default")
|
||||
var/cosmetic_l_arm = sanitize_inlist(features["cosmetic_l_arm"], GLOB.cosmetic_arms, "default")
|
||||
var/cosmetic_r_arm = sanitize_inlist(features["cosmetic_r_arm"], GLOB.cosmetic_arms, "default")
|
||||
var/cosmetic_l_leg = sanitize_inlist(features["cosmetic_l_leg"], GLOB.cosmetic_legs, "default")
|
||||
var/cosmetic_r_leg = sanitize_inlist(features["cosmetic_r_leg"], GLOB.cosmetic_legs, "default")
|
||||
features["cosmetic_head"] = GLOB.cosmetic_heads[cosmetic_head]
|
||||
features["cosmetic_chest"] = GLOB.cosmetic_chests[cosmetic_chest]
|
||||
features["cosmetic_l_arm"] = GLOB.cosmetic_arms[cosmetic_l_arm]
|
||||
features["cosmetic_r_arm"] = GLOB.cosmetic_arms[cosmetic_r_arm]
|
||||
features["cosmetic_l_leg"] = GLOB.cosmetic_legs[cosmetic_l_leg]
|
||||
features["cosmetic_r_leg"] = GLOB.cosmetic_legs[cosmetic_r_leg]
|
||||
|
||||
|
||||
/datum/preferences/proc/hyper_character_pref_save(savefile/S)
|
||||
var/datum/cosmetic_part/head = features["cosmetic_head"]
|
||||
var/datum/cosmetic_part/chest = features["cosmetic_chest"]
|
||||
var/datum/cosmetic_part/l_arm = features["cosmetic_l_arm"]
|
||||
var/datum/cosmetic_part/r_arm = features["cosmetic_r_arm"]
|
||||
var/datum/cosmetic_part/l_leg = features["cosmetic_l_leg"]
|
||||
var/datum/cosmetic_part/r_leg = features["cosmetic_r_leg"]
|
||||
WRITE_FILE(S["feature_cosmetic_head"], head.id)
|
||||
WRITE_FILE(S["feature_cosmetic_chest"], chest.id)
|
||||
WRITE_FILE(S["feature_cosmetic_l_arm"], l_arm.id)
|
||||
WRITE_FILE(S["feature_cosmetic_r_arm"], r_arm.id)
|
||||
WRITE_FILE(S["feature_cosmetic_l_leg"], l_leg.id)
|
||||
WRITE_FILE(S["feature_cosmetic_r_leg"], r_leg.id)
|
||||
WRITE_FILE(S["cosmetic_markings"], features["cosmetic_markings"])
|
||||
@@ -21,43 +21,4 @@
|
||||
name = "\improper Hellraider's Vest"
|
||||
desc = "An open leather vest with battlescarred metal shoulderpads, discovered in a dimensional anomaly. Smells of gunpowder and plasma."
|
||||
icon_state = "guncaster_alt"
|
||||
item_state = "guncaster_alt"
|
||||
|
||||
/*
|
||||
* Posshim's Corpus atire
|
||||
*/
|
||||
//Making this a subset of wintercoats/winterhoods since poss intends it to have wintercoat stats --Archie
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/corpus
|
||||
name = "Standard Voidsuit"
|
||||
desc = "Standard issue voidsuit in the name of Grofit!"
|
||||
icon_state = "corpus"
|
||||
item_state = "armor"
|
||||
body_parts_covered = CHEST|GROIN|LEGS|ARMS|FEET|HANDS
|
||||
hoodtype = /obj/item/clothing/head/hooded/winterhood/corpus
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT //"Hide shoes" but digi shoes dont get hidden, too bad!
|
||||
mutantrace_variation = NO_MUTANTRACE_VARIATION //There is no need for a digi variant, it's a costume
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/corpus/sec
|
||||
name = "Enforcer Voidsuit"
|
||||
desc = "Delux issue grofit voidsuit. Let the middle class know You're in charge."
|
||||
icon_state = "corpuss"
|
||||
hoodtype = /obj/item/clothing/head/hooded/winterhood/corpus/sec //Enjoy this nice red outfit Kinaris! There is NO NEED for a pink one! xoxo -VivI Fanteriso
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/corpus/command
|
||||
name = "Commander Voidsuit"
|
||||
desc = "Premium issue correctional worker attire. Grease the gears of production."
|
||||
icon_state = "corpusc"
|
||||
hoodtype = /obj/item/clothing/head/hooded/winterhood/corpus/command
|
||||
|
||||
/obj/item/clothing/head/hooded/winterhood/corpus
|
||||
name = "Voidsuit helmet"
|
||||
desc = "galvanized reinforced helm to protect against the elements"
|
||||
icon_state = "corpus"
|
||||
flags_inv = HIDEHAIR|HIDEEARS|HIDEFACIALHAIR|HIDEFACE|HIDEMASK|HIDESNOUT|HIDENECK //hide your ugly face with this one simple trick!
|
||||
|
||||
/obj/item/clothing/head/hooded/winterhood/corpus/sec
|
||||
icon_state = "corpuss"
|
||||
|
||||
/obj/item/clothing/head/hooded/winterhood/corpus/command
|
||||
icon_state = "corpusc"
|
||||
item_state = "guncaster_alt"
|
||||
@@ -1,154 +0,0 @@
|
||||
/*
|
||||
COSMETIC PARTS
|
||||
|
||||
this system allows you to change the _base_ appearance of a limb independent
|
||||
of species or markings. this, for example, allows us to create "hybrids" like a
|
||||
mammal with avian legs.
|
||||
|
||||
keep in mind that this does not change the species of a leg! in the above example,
|
||||
the mammal's bird-legs are still mammal legs. this matters in some places, like
|
||||
body part transplants; mis-matched species will cause extra damage if the surgery
|
||||
fails and the part is rejected. so you can't attach mammal-bird legs to avians
|
||||
safely.
|
||||
*/
|
||||
|
||||
/datum/cosmetic_part
|
||||
/** A unique string that is used to identify this part for save files. Allows name changes without breaking saves */
|
||||
var/id
|
||||
/** The name of the cosmetic part. This shows up in the preferences dropdown. */
|
||||
var/name
|
||||
var/icon = 'hyperstation/icons/mob/char_parts.dmi'
|
||||
var/icon_state
|
||||
/** How colors are determined for this part. MUTCOLORS for base color, MATRIXED to allow multiple channels. */
|
||||
var/color_src = MUTCOLORS
|
||||
/** Whether or not this cosmetic part has an alternate form for digitigrade legs. */
|
||||
var/support_digitigrade = TRUE
|
||||
/** Species IDs that support this cosmetic part. Bypassed with "show mismatched markings" option. */
|
||||
var/list/supported_species
|
||||
|
||||
/datum/cosmetic_part/head
|
||||
/datum/cosmetic_part/chest
|
||||
/datum/cosmetic_part/arms
|
||||
/datum/cosmetic_part/legs
|
||||
|
||||
// HEADS
|
||||
// =========================================
|
||||
|
||||
/datum/cosmetic_part/head/default
|
||||
id = "default"
|
||||
name = "default"
|
||||
icon = null
|
||||
|
||||
/datum/cosmetic_part/head/ipc_round
|
||||
id = "ipc_round"
|
||||
name = "round ipc head"
|
||||
icon_state = "ipc_round"
|
||||
supported_species = list("ipc")
|
||||
|
||||
|
||||
// CHESTS
|
||||
// =========================================
|
||||
|
||||
/datum/cosmetic_part/chest/default
|
||||
id = "default"
|
||||
name = "default"
|
||||
icon = null
|
||||
|
||||
/datum/cosmetic_part/chest/ipc_sleek
|
||||
id = "ipc_sleek"
|
||||
name = "sleek ipc chest"
|
||||
icon_state = "ipc_sleek"
|
||||
supported_species = list("ipc")
|
||||
color_src = MATRIXED
|
||||
|
||||
/datum/cosmetic_part/chest/ipc_jointed
|
||||
id = "ipc_jointed"
|
||||
name = "jointed ipc chest"
|
||||
icon_state = "ipc_jointed"
|
||||
supported_species = list("ipc")
|
||||
color_src = MATRIXED
|
||||
|
||||
|
||||
// ARMS
|
||||
// =========================================
|
||||
|
||||
/datum/cosmetic_part/arms/default
|
||||
id = "default"
|
||||
name = "default"
|
||||
icon = null
|
||||
|
||||
/datum/cosmetic_part/arms/avian_alt
|
||||
id = "avian_alt"
|
||||
name = "avian claws"
|
||||
icon_state = "avian_alt"
|
||||
supported_species = list("mammal", "avian", "aquatic", "insect", "xeno", "synthliz")
|
||||
|
||||
/datum/cosmetic_part/arms/insect
|
||||
id = "insect"
|
||||
name = "insect arms"
|
||||
icon = 'modular_citadel/icons/mob/mutant_bodyparts.dmi'
|
||||
icon_state = "insect"
|
||||
supported_species = list("mammal", "avian", "aquatic", "insect", "xeno", "synthliz")
|
||||
|
||||
/datum/cosmetic_part/arms/ipc_sleek
|
||||
id = "ipc_sleek"
|
||||
name = "sleek ipc arms"
|
||||
icon_state = "ipc_sleek"
|
||||
supported_species = list("ipc")
|
||||
color_src = MATRIXED
|
||||
|
||||
/datum/cosmetic_part/arms/ipc_jointed
|
||||
id = "ipc_jointed"
|
||||
name = "jointed ipc arms"
|
||||
icon_state = "ipc_jointed"
|
||||
supported_species = list("ipc")
|
||||
color_src = MATRIXED
|
||||
|
||||
|
||||
// LEGS
|
||||
// =========================================
|
||||
|
||||
/datum/cosmetic_part/legs/default
|
||||
id = "default"
|
||||
name = "default"
|
||||
icon = null
|
||||
|
||||
/datum/cosmetic_part/legs/avian
|
||||
id = "avian"
|
||||
name = "avian legs"
|
||||
icon = 'modular_citadel/icons/mob/mutant_bodyparts.dmi'
|
||||
icon_state = "avian"
|
||||
supported_species = list("mammal", "avian", "aquatic", "insect", "xeno", "synthliz")
|
||||
support_digitigrade = FALSE
|
||||
|
||||
/datum/cosmetic_part/legs/mammal
|
||||
id = "mammal"
|
||||
name = "mammal legs"
|
||||
icon = 'modular_citadel/icons/mob/mutant_bodyparts.dmi'
|
||||
icon_state = "mammal"
|
||||
supported_species = list("mammal", "avian", "aquatic", "insect", "xeno", "synthliz")
|
||||
support_digitigrade = TRUE
|
||||
|
||||
/datum/cosmetic_part/legs/insect
|
||||
id = "insect"
|
||||
name = "insect legs"
|
||||
icon = 'modular_citadel/icons/mob/mutant_bodyparts.dmi'
|
||||
icon_state = "insect"
|
||||
supported_species = list("mammal", "avian", "aquatic", "insect", "xeno", "synthliz")
|
||||
support_digitigrade = TRUE
|
||||
|
||||
/datum/cosmetic_part/legs/ipc_sleek
|
||||
id = "ipc_sleek"
|
||||
name = "sleek ipc legs"
|
||||
icon_state = "ipc_sleek"
|
||||
supported_species = list("ipc")
|
||||
color_src = MATRIXED
|
||||
support_digitigrade = FALSE
|
||||
|
||||
/datum/cosmetic_part/legs/ipc_jointed
|
||||
id = "ipc_jointed"
|
||||
name = "jointed ipc legs"
|
||||
icon_state = "ipc_jointed"
|
||||
supported_species = list("ipc")
|
||||
color_src = MATRIXED
|
||||
support_digitigrade = FALSE
|
||||
@@ -87,11 +87,6 @@ SNOUTS
|
||||
icon_state = "feasterndnw"
|
||||
icon = 'hyperstation/icons/mob/char_snouts.dmi'
|
||||
|
||||
/datum/sprite_accessory/mam_snouts/knshuttle // Dahlular and Arcstaisia @ hyperstation, april 2022. Feel free to remove comment. Just remember this is snowflakey Kinaris stuff.
|
||||
name = "Kinaris - Shuttle (Hyper)"
|
||||
icon_state = "knshuttle"
|
||||
icon = 'hyperstation/icons/mob/char_snouts.dmi'
|
||||
|
||||
/datum/sprite_accessory/mam_snouts/fchemlight
|
||||
name = "RadDog (Top) (Hyper)"
|
||||
icon_state = "fchemlight"
|
||||
@@ -148,11 +143,6 @@ EARS
|
||||
icon_state = "easternd"
|
||||
icon = 'hyperstation/icons/mob/char_ears.dmi'
|
||||
|
||||
/datum/sprite_accessory/mam_ears/knshuttle // Dahlular and Arcstaisia @ hyperstation, april 2022. Feel free to remove comment. Just remember this is snowflakey Kinaris stuff.
|
||||
name = "Kinaris - Shuttle (Hyper)"
|
||||
icon_state = "knshuttle"
|
||||
icon = 'hyperstation/icons/mob/char_ears.dmi'
|
||||
|
||||
/datum/sprite_accessory/mam_ears/chemlight
|
||||
name = "RadDog (Hyper)"
|
||||
icon_state = "chemlight"
|
||||
@@ -195,13 +185,6 @@ WINGS
|
||||
icon_state = "insect"
|
||||
icon = 'hyperstation/icons/mob/char_wings.dmi'
|
||||
|
||||
/datum/sprite_accessory/deco_wings/knshuttle // Dahlular and Arcstaisia @ hyperstation, april 2022. Feel free to remove comment. Just remember this is snowflakey Kinaris stuff.
|
||||
name = "Kinaris - Shuttle (Hyper)"
|
||||
icon_state = "knshuttle"
|
||||
icon = 'hyperstation/icons/mob/char_wings.dmi'
|
||||
//recommended_species = list("synthliz") need to give synths a deco wing slot
|
||||
color_src = MATRIXED
|
||||
|
||||
/datum/sprite_accessory/deco_wings/minibat // sarcoph @ hyperstation, march 2022
|
||||
name = "Mini Bat (Hyper)"
|
||||
icon_state = "minibat"
|
||||
@@ -341,18 +324,6 @@ TAILS + ANIMATED TAILS
|
||||
icon_state = "easternd"
|
||||
icon = 'hyperstation/icons/mob/char_tails.dmi'
|
||||
|
||||
/datum/sprite_accessory/mam_tails/knshuttle // Dahlular and Arcstaisia @ hyperstation, april 2022. Feel free to remove comment. Just remember this is snowflakey Kinaris stuff.
|
||||
name = "Kinaris - Shuttle (Hyper)"
|
||||
icon_state = "knshuttle"
|
||||
icon = 'hyperstation/icons/mob/char_tails.dmi'
|
||||
recommended_species = list("synthliz")
|
||||
|
||||
/datum/sprite_accessory/mam_tails_animated/knshuttle
|
||||
name = "Kinaris - Shuttle (Hyper)"
|
||||
icon_state = "knshuttle"
|
||||
icon = 'hyperstation/icons/mob/char_tails.dmi'
|
||||
recommended_species = list("synthliz")
|
||||
|
||||
/datum/sprite_accessory/mam_tails/chemlight
|
||||
name = "RadDog (Hyper)"
|
||||
icon_state = "chemlight"
|
||||
@@ -427,11 +398,6 @@ from modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm:
|
||||
icon_state = "easternd"
|
||||
icon = 'hyperstation/icons/mob/char_markings.dmi'
|
||||
|
||||
/datum/sprite_accessory/mam_body_markings/knshuttle // Dahlular and Arcstaisia @ hyperstation, april 2022. Feel free to remove comment. Just remember this is snowflakey Kinaris stuff.
|
||||
name = "Kinaris - Shuttle (Hyper)"
|
||||
icon_state = "knshuttle"
|
||||
icon = 'hyperstation/icons/mob/char_markings.dmi'
|
||||
|
||||
//doged was here
|
||||
/datum/sprite_accessory/mam_body_markings/chemlight
|
||||
name = "RadDog (Hyper)"
|
||||
@@ -475,92 +441,6 @@ from modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm:
|
||||
taur_mode = PAW_TAURIC
|
||||
ckeys_allowed = list("chemlight")
|
||||
|
||||
|
||||
/*
|
||||
IPCS
|
||||
==========================================================
|
||||
*/
|
||||
|
||||
/*
|
||||
from modular_citadel/code/modules/mob/dead/new_player/sprite_accessories.dm:
|
||||
|
||||
/datum/sprite_accessory/antenna
|
||||
icon = 'modular_citadel/icons/mob/ipc_antennas.dmi'
|
||||
color_src = MUTCOLORS3
|
||||
recommended_species = list("ipc")
|
||||
|
||||
/datum/sprite_accessory/screen
|
||||
icon = 'modular_citadel/icons/mob/ipc_screens.dmi'
|
||||
color_src = null
|
||||
*/
|
||||
|
||||
/datum/sprite_accessory/antenna/idog_down
|
||||
name = "Dog, down (Hyper)"
|
||||
icon_state = "idog_down"
|
||||
color_src = MATRIXED
|
||||
|
||||
/datum/sprite_accessory/antenna/idog_up
|
||||
name = "Dog, up (Hyper)"
|
||||
icon_state = "idog_up"
|
||||
color_src = MATRIXED
|
||||
|
||||
/datum/sprite_accessory/antenna/headset
|
||||
name = "Headphones (Hyper)"
|
||||
icon_state = "headset"
|
||||
color_src = MATRIXED
|
||||
|
||||
/datum/sprite_accessory/antenna/aquatic
|
||||
name = "Fins (Hyper)"
|
||||
icon_state = "aquatic"
|
||||
color_src = MATRIXED
|
||||
|
||||
/datum/sprite_accessory/screen/ghost
|
||||
name = "Ghost (Hyper)"
|
||||
icon_state = "ghost"
|
||||
|
||||
/datum/sprite_accessory/screen/heartbeat
|
||||
name = "Heartbeat (Hyper)"
|
||||
icon_state = "heartbeat"
|
||||
|
||||
/datum/sprite_accessory/screen/ocean
|
||||
name = "Ocean (Hyper)"
|
||||
icon_state = "ocean"
|
||||
|
||||
/datum/sprite_accessory/antenna/catears
|
||||
name = "Pointy Ears (Hyper)"
|
||||
icon_state = "catears"
|
||||
color_src = MATRIXED
|
||||
|
||||
/datum/sprite_accessory/screen/valley
|
||||
name = "Valley (Hyper)"
|
||||
icon_state = "valley"
|
||||
|
||||
/datum/sprite_accessory/screen/visor
|
||||
name = "Black Visor (Hyper)"
|
||||
icon = 'hyperstation/icons/mob/ipc_screen_visor.dmi'
|
||||
icon_state = "visor_black"
|
||||
|
||||
/datum/sprite_accessory/screen/visor/blue
|
||||
name = "Blue Visor (Hyper)"
|
||||
icon_state = "visor_blue"
|
||||
|
||||
/datum/sprite_accessory/screen/visor/green
|
||||
name = "Green Visor (Hyper)"
|
||||
icon_state = "visor_green"
|
||||
|
||||
/datum/sprite_accessory/screen/visor/red
|
||||
name = "Red Visor (Hyper)"
|
||||
icon_state = "visor_red"
|
||||
|
||||
/datum/sprite_accessory/screen/visor/white
|
||||
name = "White Visor (Hyper)"
|
||||
icon_state = "visor_white"
|
||||
|
||||
/datum/sprite_accessory/screen/visor/yellow
|
||||
name = "Yellow Visor (Hyper)"
|
||||
icon_state = "visor_yellow"
|
||||
|
||||
|
||||
/*
|
||||
HAIRSTYLES
|
||||
==========================================================
|
||||
@@ -600,4 +480,4 @@ from code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm:
|
||||
|
||||
/datum/sprite_accessory/hair/emoh
|
||||
name = "Emo (Hyper)"
|
||||
icon_state = "hair_emoh"
|
||||
icon_state = "hair_emoh"
|
||||
@@ -13,11 +13,6 @@
|
||||
/mob/living/carbon/handle_status_effects()
|
||||
..()
|
||||
handle_pain()
|
||||
|
||||
/mob/living/carbon/has_mouth()
|
||||
var/obj/item/bodypart/head/head = get_bodypart(BODY_ZONE_HEAD)
|
||||
if(head && head.mouth)
|
||||
return TRUE
|
||||
|
||||
/mob/living/carbon/proc/handle_pain()
|
||||
var/pain_amount = 0
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
/obj/item/bodypart/proc/apply_cosmetic(datum/cosmetic_part/part)
|
||||
if(!is_organic_limb() || animal_origin || !part)
|
||||
return
|
||||
cosmetic_icon = part
|
||||
|
||||
|
||||
/mob/living/carbon/human/proc/handle_cosmetic_parts()
|
||||
var/features = dna.features
|
||||
var/list/body_zones = list(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)
|
||||
for(var/zone in body_zones)
|
||||
var/datum/cosmetic_part/cosmetic_pref = features["cosmetic_" + zone]
|
||||
if(!istype(cosmetic_pref, /datum/cosmetic_part))
|
||||
continue
|
||||
var/datum/cosmetic_part/part = cosmetic_pref
|
||||
var/obj/item/bodypart/body_part = get_bodypart(zone)
|
||||
if(body_part && part)
|
||||
body_part.apply_cosmetic(part)
|
||||
@@ -1,58 +0,0 @@
|
||||
// APC powercord: oracle port
|
||||
|
||||
/obj/item/apc_powercord
|
||||
name = "power cord"
|
||||
desc = "An internal power cord hooked up to a battery. Useful if you run on electricity. Not so much otherwise."
|
||||
icon = 'icons/obj/power.dmi'
|
||||
icon_state = "wire1"
|
||||
|
||||
|
||||
/obj/item/apc_powercord/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
|
||||
if(!istype(target, /obj/machinery/power/apc) || !ishuman(user) || !proximity_flag)
|
||||
return ..()
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
var/mob/living/carbon/human/H = user
|
||||
var/obj/item/organ/stomach/cell/battery = H.getorganslot(ORGAN_SLOT_STOMACH)
|
||||
if(!battery)
|
||||
to_chat(H, "<span class='warning'>You try to siphon energy from \the [target], but your power cell is gone!</span>")
|
||||
return
|
||||
|
||||
if(istype(H) && H.nutrition >= NUTRITION_LEVEL_ALMOST_FULL)
|
||||
to_chat(user, "<span class='warning'>You are already fully charged!</span>")
|
||||
return
|
||||
|
||||
if(istype(target, /obj/machinery/power/apc))
|
||||
var/obj/machinery/power/apc/A = target
|
||||
if(A.cell && A.cell.charge > A.cell.maxcharge*0.25)
|
||||
powerdraw_loop(A, H)
|
||||
return
|
||||
else
|
||||
to_chat(user, "<span class='warning'>There is not enough charge to draw from that APC.</span>")
|
||||
return
|
||||
|
||||
|
||||
/obj/item/apc_powercord/proc/powerdraw_loop(obj/machinery/power/apc/A, mob/living/carbon/human/H)
|
||||
H.visible_message("<span class='notice'>[H] inserts a power connector into the [A].</span>", "<span class='notice'>You begin to draw power from the [A].</span>")
|
||||
while(do_after(H, 10, target = A))
|
||||
if(!istype(A))
|
||||
return
|
||||
if(loc != H)
|
||||
to_chat(H, "<span class='warning'>You must keep your connector out while charging!</span>")
|
||||
break
|
||||
if(A.cell.charge == 0)
|
||||
to_chat(H, "<span class='warning'>The [A] doesn't have enough charge to spare.</span>")
|
||||
break
|
||||
A.charging = 1
|
||||
if(A.cell.charge >= 500)
|
||||
H.nutrition += 50
|
||||
A.cell.charge -= 250
|
||||
to_chat(H, "<span class='notice'>You siphon off some of the stored charge for your own use.</span>")
|
||||
else
|
||||
H.nutrition += A.cell.charge/10
|
||||
A.cell.charge = 0
|
||||
to_chat(H, "<span class='notice'>You siphon off as much as the [A] can spare.</span>")
|
||||
break
|
||||
if(H.nutrition > NUTRITION_LEVEL_WELL_FED)
|
||||
to_chat(H, "<span class='notice'>You are now fully charged.</span>")
|
||||
break
|
||||
H.visible_message("<span class='notice'>[H] unplugs from the [A].</span>", "<span class='notice'>You unplug from the [A].</span>")
|
||||
@@ -1,8 +0,0 @@
|
||||
/mob/living/silicon/robot/proc/examine_bellies_borg()
|
||||
|
||||
var/message = ""
|
||||
for(var/belly in vore_organs)
|
||||
var/obj/belly/B = belly
|
||||
message += B.get_examine_msg()
|
||||
|
||||
return message
|
||||
@@ -1,3 +1,3 @@
|
||||
//This file is empty right now, but leaves room for people to put shit here in the future for those who are lazy
|
||||
/mob/living/silicon/robot
|
||||
var/datum/action/cyborg_small_sprite/small_sprite_action //This gets replaced every time the cyborg changes modules --Cyanosis
|
||||
var/datum/action/cyborg_small_sprite/small_sprite_action //This gets replaced every time the cyborg changes modules --Cyanosis
|
||||
@@ -1,60 +1,11 @@
|
||||
//This file is empty right now, but leaves room for people to put shit here in the future for those who are lazy
|
||||
|
||||
/obj/item/robot_module
|
||||
var/list/added_channels = list() //Borg radio stuffs
|
||||
|
||||
//service
|
||||
/obj/item/robot_module/butler
|
||||
added_channels = list(RADIO_CHANNEL_SERVICE = 1)
|
||||
|
||||
/obj/item/robot_module/clown
|
||||
added_channels = list(RADIO_CHANNEL_SERVICE = 1)
|
||||
|
||||
/obj/item/robot_module/janitor
|
||||
added_channels = list(RADIO_CHANNEL_SERVICE = 1)
|
||||
|
||||
//engineering
|
||||
/obj/item/robot_module/engineering
|
||||
added_channels = list(RADIO_CHANNEL_ENGINEERING = 1)
|
||||
|
||||
//medical
|
||||
/obj/item/robot_module/medical
|
||||
added_channels = list(RADIO_CHANNEL_MEDICAL = 1)
|
||||
|
||||
//security
|
||||
/obj/item/robot_module/peacekeeper
|
||||
added_channels = list(RADIO_CHANNEL_SECURITY = 1)
|
||||
|
||||
/obj/item/robot_module/security
|
||||
added_channels = list(RADIO_CHANNEL_SECURITY = 1)
|
||||
|
||||
//supply
|
||||
/obj/item/robot_module/miner
|
||||
added_channels = list(RADIO_CHANNEL_SUPPLY = 1) // Probably already handled by other code when spawned with pre-set module, but whatever.
|
||||
|
||||
//dogborgs
|
||||
/obj/item/robot_module/k9
|
||||
added_channels = list(RADIO_CHANNEL_SECURITY = 1)
|
||||
|
||||
/obj/item/robot_module/medihound
|
||||
added_channels = list(RADIO_CHANNEL_MEDICAL = 1)
|
||||
|
||||
/obj/item/robot_module/scrubpup
|
||||
added_channels = list(RADIO_CHANNEL_SERVICE = 1)
|
||||
|
||||
/obj/item/robot_module/borgi
|
||||
added_channels = list(RADIO_CHANNEL_SERVICE = 1)
|
||||
|
||||
/obj/item/robot_module/orepup
|
||||
added_channels = list(RADIO_CHANNEL_SUPPLY = 1)
|
||||
|
||||
|
||||
//This proc gets called whenever a new robot module is being applied --Cyanosis
|
||||
/obj/item/robot_module/proc/handle_sprite_action(mob/living/silicon/robot/R, is_huge = FALSE)
|
||||
ASSERT(istype(R))
|
||||
if(R.small_sprite_action)
|
||||
QDEL_NULL(R.small_sprite_action)
|
||||
if(!is_huge) //only from the expander upgrade. The borg won't have an action if they don't have the expander upgrade
|
||||
if(!is_huge) //only from the expander upgrade. The borg won't have an action if they don't have the expander upgrade
|
||||
return
|
||||
for(var/P in typesof(/datum/action/cyborg_small_sprite))
|
||||
var/datum/action/cyborg_small_sprite/action = P
|
||||
|
||||
@@ -241,6 +241,6 @@
|
||||
|
||||
/mob/living/simple_animal/chicken/examine()
|
||||
. = ..()
|
||||
. += "<span class='notice'>This one is [gender].</span>"
|
||||
. += "this one is [gender]."
|
||||
if(happiness<20)
|
||||
. += "<span class='warning'>It looks stressed.</span>"
|
||||
|
||||
@@ -27,7 +27,3 @@ mob/proc/checkloadappearance()
|
||||
else
|
||||
to_chat(H, "<span class='boldannounce'>You either took too long or chose not to change. Alrighty. Remember, you have 90 seconds from spawn to get to a mirror and still do it if you wish.</span>")
|
||||
return
|
||||
|
||||
// oracle port
|
||||
/mob/proc/has_mouth()
|
||||
return FALSE
|
||||
@@ -1,69 +0,0 @@
|
||||
/datum/design/ipc_liver
|
||||
name = "IPC Reagent Processor"
|
||||
id = "ipc_liver"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2000, MAT_GLASS = 1000)
|
||||
build_path = /obj/item/organ/liver/ipc
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
construction_time = 100
|
||||
|
||||
/datum/design/ipc_eyes
|
||||
name = "IPC Eyes"
|
||||
id = "ipc_eyes"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 1000, MAT_GLASS = 2000)
|
||||
build_path = /obj/item/organ/eyes/ipc
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
construction_time = 100
|
||||
|
||||
/datum/design/ipc_tongue
|
||||
name = "Positronic Voicebox"
|
||||
id = "ipc_tongue"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2000, MAT_GLASS = 1000)
|
||||
build_path = /obj/item/organ/tongue/robot/ipc
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
construction_time = 100
|
||||
|
||||
/datum/design/ipc_stomach
|
||||
name = "Micro-cell"
|
||||
id = "ipc_stomach"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2000, MAT_GLASS = 1000, MAT_PLASMA = 200)
|
||||
build_path = /obj/item/organ/stomach/cell
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
construction_time = 100
|
||||
|
||||
/datum/design/synthliz_stomach
|
||||
name = "Synthetic Lizardperson Stomach"
|
||||
id = "synthliz_stomach"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2000, MAT_GLASS = 1000)
|
||||
build_path = /obj/item/organ/stomach/synthliz
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
construction_time = 100
|
||||
|
||||
/datum/design/power_cord
|
||||
name = "IPC Power Cord"
|
||||
id = "power_cord"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2000, MAT_GLASS = 1000)
|
||||
build_path = /obj/item/organ/cyberimp/arm/power_cord
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
construction_time = 100
|
||||
|
||||
|
||||
/datum/techweb_node/ipc_organs
|
||||
id = "ipc_organs"
|
||||
display_name = "IPC Parts"
|
||||
description = "We have the technology to replace him."
|
||||
prereq_ids = list("cyber_organs","robotics")
|
||||
design_ids = list("ipc_liver", "ipc_eyes", "ipc_tongue", "ipc_stomach", "synthliz_stomach", "power_cord")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500)
|
||||
export_price = 5000
|
||||
@@ -23,11 +23,3 @@
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
sharpness = IS_SHARP_ACCURATE
|
||||
attack_verb = list("slashed", "cut")
|
||||
|
||||
|
||||
// oracle port
|
||||
/obj/item/organ/cyberimp/arm/power_cord
|
||||
name = "power cord implant"
|
||||
desc = "An internal power cord hooked up to a battery. Useful if you run on volts."
|
||||
contents = newlist(/obj/item/apc_powercord)
|
||||
zone = "l_arm"
|
||||
Reference in New Issue
Block a user