Merge remote-tracking branch 'refs/remotes/Citadel-Station-13/master' into syntheticbloods

This commit is contained in:
Poojawa
2019-06-03 05:35:52 -05:00
215 changed files with 4105 additions and 2416 deletions
+27 -27
View File
@@ -222,17 +222,17 @@
fluid_source = G.linked_organ.reagents
total_fluids = fluid_source.total_volume
if(mb_time)
src.visible_message("<span class='danger'>[src] starts to [G.masturbation_verb] [p_their()] [G.name].</span>", \
"<span class='green'>You start to [G.masturbation_verb] your [G.name].</span>", \
"<span class='green'>You start to [G.masturbation_verb] your [G.name].</span>")
src.visible_message("<span class='love'>[src] starts to [G.masturbation_verb] [p_their()] [G.name].</span>", \
"<span class='userlove'>You start to [G.masturbation_verb] your [G.name].</span>", \
"<span class='userlove'>You start to [G.masturbation_verb] your [G.name].</span>")
if(do_after(src, mb_time, target = src))
if(total_fluids > 5)
fluid_source.reaction(src.loc, TOUCH, 1, 0)
fluid_source.clear_reagents()
src.visible_message("<span class='danger'>[src] orgasms, cumming[istype(src.loc, /turf/open/floor) ? " onto [src.loc]" : ""]!</span>", \
"<span class='green'>You cum[istype(src.loc, /turf/open/floor) ? " onto [src.loc]" : ""].</span>", \
"<span class='green'>You have relieved yourself.</span>")
src.visible_message("<span class='love'>[src] orgasms, cumming[istype(src.loc, /turf/open/floor) ? " onto [src.loc]" : ""]!</span>", \
"<span class='userlove'>You cum[istype(src.loc, /turf/open/floor) ? " onto [src.loc]" : ""].</span>", \
"<span class='userlove'>You have relieved yourself.</span>")
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm)
if(G.can_climax)
setArousalLoss(min_arousal)
@@ -260,16 +260,16 @@
else
total_fluids = fluid_source.total_volume
if(mb_time) //as long as it's not instant, give a warning
src.visible_message("<span class='danger'>[src] looks like they're about to cum.</span>", \
"<span class='green'>You feel yourself about to orgasm.</span>", \
"<span class='green'>You feel yourself about to orgasm.</span>")
src.visible_message("<span class='love'>[src] looks like they're about to cum.</span>", \
"<span class='userlove'>You feel yourself about to orgasm.</span>", \
"<span class='userlove'>You feel yourself about to orgasm.</span>")
if(do_after(src, mb_time, target = src))
if(total_fluids > 5)
fluid_source.reaction(src.loc, TOUCH, 1, 0)
fluid_source.clear_reagents()
src.visible_message("<span class='danger'>[src] orgasms[istype(src.loc, /turf/open/floor) ? ", spilling onto [src.loc]" : ""], using [p_their()] [G.name]!</span>", \
"<span class='green'>You climax[istype(src.loc, /turf/open/floor) ? ", spilling onto [src.loc]" : ""] with your [G.name].</span>", \
"<span class='green'>You climax using your [G.name].</span>")
src.visible_message("<span class='love'>[src] orgasms[istype(src.loc, /turf/open/floor) ? ", spilling onto [src.loc]" : ""], using [p_their()] [G.name]!</span>", \
"<span class='userlove'>You climax[istype(src.loc, /turf/open/floor) ? ", spilling onto [src.loc]" : ""] with your [G.name].</span>", \
"<span class='userlove'>You climax using your [G.name].</span>")
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm)
if(G.can_climax)
setArousalLoss(min_arousal)
@@ -288,9 +288,9 @@
fluid_source = G.linked_organ.reagents
total_fluids = fluid_source.total_volume
if(mb_time) //Skip warning if this is an instant climax.
src.visible_message("[src] is about to climax with [L]!", \
"You're about to climax with [L]!", \
"<span class='danger'>You're preparing to climax with someone!</span>")
src.visible_message("<span class='love'>[src] is about to climax with [L]!</span>", \
"<span class='userlove'>You're about to climax with [L]!</span>", \
"<span class='userlove'>You're preparing to climax with someone!</span>")
if(spillage)
if(do_after(src, mb_time, target = src) && in_range(src, L))
fluid_source.trans_to(L, total_fluids*G.fluid_transfer_factor)
@@ -298,9 +298,9 @@
if(total_fluids > 5)
fluid_source.reaction(L.loc, TOUCH, 1, 0)
fluid_source.clear_reagents()
src.visible_message("<span class='danger'>[src] climaxes with [L][spillage ? ", overflowing and spilling":""], using [p_their()] [G.name]!</span>", \
"<span class='green'>You orgasm with [L][spillage ? ", spilling out of them":""], using your [G.name].</span>", \
"<span class='green'>You have climaxed with someone[spillage ? ", spilling out of them":""], using your [G.name].</span>")
src.visible_message("<span class='love'>[src] climaxes with [L][spillage ? ", overflowing and spilling":""], using [p_their()] [G.name]!</span>", \
"<span class='userlove'>You orgasm with [L][spillage ? ", spilling out of them":""], using your [G.name].</span>", \
"<span class='userlove'>You have climaxed with someone[spillage ? ", spilling out of them":""], using your [G.name].</span>")
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm)
SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm)
if(G.can_climax)
@@ -309,9 +309,9 @@
if(do_after(src, mb_time, target = src) && in_range(src, L))
fluid_source.trans_to(L, total_fluids)
total_fluids = 0
src.visible_message("<span class='danger'>[src] climaxes with [L], [p_their()] [G.name] spilling nothing!</span>", \
"<span class='green'>You ejaculate with [L], your [G.name] spilling nothing.</span>", \
"<span class='green'>You have climaxed inside someone, your [G.name] spilling nothing.</span>")
src.visible_message("<span class='love'>[src] climaxes with [L], [p_their()] [G.name] spilling nothing!</span>", \
"<span class='userlove'>You ejaculate with [L], your [G.name] spilling nothing.</span>", \
"<span class='userlove'>You have climaxed inside someone, your [G.name] spilling nothing.</span>")
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm)
SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm)
if(G.can_climax)
@@ -335,14 +335,14 @@
// to_chat(src, "<span class='warning'>You need a container to do this!</span>")
// return
src.visible_message("<span class='danger'>[src] starts to [G.masturbation_verb] their [G.name] over [container].</span>", \
"<span class='userdanger'>You start to [G.masturbation_verb] your [G.name] over [container].</span>", \
"<span class='userdanger'>You start to [G.masturbation_verb] your [G.name] over something.</span>")
src.visible_message("<span class='love'>[src] starts to [G.masturbation_verb] their [G.name] over [container].</span>", \
"<span class='userlove'>You start to [G.masturbation_verb] your [G.name] over [container].</span>", \
"<span class='userlove'>You start to [G.masturbation_verb] your [G.name] over something.</span>")
if(do_after(src, mb_time, target = src) && in_range(src, container))
fluid_source.trans_to(container, total_fluids)
src.visible_message("<span class='danger'>[src] uses [p_their()] [G.name] to fill [container]!</span>", \
"<span class='green'>You used your [G.name] to fill [container].</span>", \
"<span class='green'>You have relieved some pressure.</span>")
src.visible_message("<span class='love'>[src] uses [p_their()] [G.name] to fill [container]!</span>", \
"<span class='userlove'>You used your [G.name] to fill [container].</span>", \
"<span class='userlove'>You have relieved some pressure.</span>")
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm)
if(G.can_climax)
setArousalLoss(min_arousal)
@@ -133,12 +133,12 @@
//proc to give a player their genitals and stuff when they log in
/mob/living/carbon/human/proc/give_genitals(clean=0)//clean will remove all pre-existing genitals. proc will then give them any genitals that are enabled in their DNA
if (NOGENITALS in dna.species.species_traits)
return
if(clean)
var/obj/item/organ/genital/GtoClean
for(GtoClean in internal_organs)
qdel(GtoClean)
if (NOGENITALS in dna.species.species_traits)
return
//Order should be very important. FIRST vagina, THEN testicles, THEN penis, as this affects the order they are rendered in.
if(dna.features["has_breasts"])
give_breasts()
@@ -373,4 +373,16 @@ datum/gear/darksabresheath
name = "French Beret"
category = SLOT_HEAD
path = /obj/item/clothing/head/frenchberet
ckeywhitelist = list("notazoltan")
ckeywhitelist = list("notazoltan")
/datum/gear/zuliecloak
name = "Project: Zul-E"
category = SLOT_WEAR_SUIT
path = /obj/item/clothing/suit/hooded/cloak/zuliecloak
ckeywhitelist = list("asky")
/datum/gear/blackredgold
name = "Black, Red, and Gold Coat"
category = SLOT_WEAR_SUIT
path = /obj/item/clothing/suit/blackredgold
ckeywhitelist = list("ttbnc")
@@ -454,3 +454,34 @@
icon_state = "moveralls"
mutantrace_variation = NO_MUTANTRACE_VARIATION
/obj/item/clothing/suit/hooded/cloak/zuliecloak
name = "Project: Zul-E"
desc = "A standard version of a prototype cloak given out by Nanotrasen higher ups. It's surprisingly thick and heavy for a cloak despite having most of it's tech stripped. It also comes with a bluespace trinket which calls it's accompanying hat onto the user. A worn inscription on the inside of the cloak reads 'Fleuret' ...the rest is faded away."
icon_state = "zuliecloak"
item_state = "zuliecloak"
icon = 'icons/obj/custom.dmi'
alternate_worn_icon = 'icons/mob/custom_w.dmi'
hoodtype = /obj/item/clothing/head/hooded/cloakhood/zuliecloak
body_parts_covered = CHEST|GROIN|ARMS
slot_flags = SLOT_WEAR_SUIT | ITEM_SLOT_NECK //it's a cloak. it's cosmetic. so why the hell not? what could possibly go wrong?
mutantrace_variation = NO_MUTANTRACE_VARIATION
/obj/item/clothing/head/hooded/cloakhood/zuliecloak
name = "NT Special Issue"
desc = "This hat is unquestionably the best one, bluespaced to and from CentComm. It smells of Fish and Tea with a hint of antagonism"
icon_state = "zuliecap"
item_state = "zuliecap"
icon = 'icons/obj/custom.dmi'
alternate_worn_icon = 'icons/mob/custom_w.dmi'
flags_inv = HIDEEARS|HIDEHAIR
mutantrace_variation = NO_MUTANTRACE_VARIATION
/obj/item/clothing/suit/blackredgold
name = "Multicolor Coat"
desc = "An oddly special looking coat with black, red, and gold"
icon = 'icons/obj/custom.dmi'
alternate_worn_icon = 'icons/mob/custom_w.dmi'
icon_state = "redgoldjacket"
item_state = "redgoldjacket"
body_parts_covered = CHEST|GROIN|LEGS|ARMS
mutantrace_variation = NO_MUTANTRACE_VARIATION
@@ -9,7 +9,7 @@
icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "mag-casing-live"
projectile_type = /obj/item/projectile/bullet/magrifle
energy_cost = 300
energy_cost = 200
/obj/item/ammo_casing/caseless/mag_e/anlmagm_e
desc = "A large, specialized ferromagnetic slug designed with a less-than-lethal payload."
@@ -17,7 +17,7 @@
icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "mag-casing-live"
projectile_type = /obj/item/projectile/bullet/nlmagrifle
energy_cost = 300
energy_cost = 200
/obj/item/ammo_casing/caseless/mag_e/amags
desc = "A ferromagnetic slug intended to be launched out of a compatible weapon."
@@ -25,7 +25,7 @@
icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "mag-casing-live"
projectile_type = /obj/item/projectile/bullet/mags
energy_cost = 200
energy_cost = 125
/obj/item/ammo_casing/caseless/mag_e/anlmags
desc = "A specialized ferromagnetic slug designed with a less-than-lethal payload."
@@ -33,7 +33,7 @@
icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "mag-casing-live"
projectile_type = /obj/item/projectile/bullet/nlmags
energy_cost = 200
energy_cost = 125
///magazines///
@@ -53,14 +53,13 @@
ammo_type = /obj/item/ammo_casing/caseless/mag_e/amagm_e
max_ammo = 24
/obj/item/ammo_box/magazine/mmag_e/small
name = "magpistol magazine (non-lethal disabler)"
icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "nlmagmag"
ammo_type = /obj/item/ammo_casing/caseless/mag_e/anlmags
caliber = "mag_e"
max_ammo = 15
max_ammo = 16
multiple_sprites = 2
/obj/item/ammo_box/magazine/mmag_e/small/lethal
@@ -68,6 +67,7 @@
icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "smallmagmag"
ammo_type = /obj/item/ammo_casing/caseless/mag_e/amags
max_ammo = 16
///cells///
@@ -218,7 +218,6 @@
pin = null
spawnwithmagazine = FALSE
///magpistol///
/obj/item/gun/ballistic/automatic/pistol/mag_e
@@ -278,7 +277,6 @@
if(!dead_cell)
cell.give(cell.maxcharge)
/obj/item/gun/ballistic/automatic/pistol/mag_e/update_icon()
..()
if(magazine)
@@ -288,7 +286,6 @@
cut_overlays()
icon_state = "[initial(icon_state)][chambered ? "" : "-e"]"
/obj/item/gun/ballistic/automatic/pistol/mag_e/nopin
pin = null
spawnwithmagazine = FALSE
@@ -107,7 +107,7 @@
M.emote(pick("moan","blush"))
if(prob(5))
var/aroused_message = pick("You feel frisky.", "You're having trouble suppressing your urges.", "You feel in the mood.")
to_chat(M, "<span class='love'>[aroused_message]</span>")
to_chat(M, "<span class='userlove'>[aroused_message]</span>")
..()
/datum/reagent/drug/aphrodisiacplus
@@ -136,7 +136,7 @@
aroused_message = pick("You need to fuck someone!", "You're bursting with sexual tension!", "You can't get sex off your mind!")
else
aroused_message = pick("You feel a bit hot.", "You feel strong sexual urges.", "You feel in the mood.", "You're ready to go down on someone.")
to_chat(M, "<span class='love'>[aroused_message]</span>")
to_chat(M, "<span class='userlove'>[aroused_message]</span>")
..()
/datum/reagent/drug/aphrodisiacplus/addiction_act_stage2(mob/living/M)
@@ -1,15 +0,0 @@
/datum/design/hypovialsmall
name = "Hypovial"
id = "hypovial"
build_type = AUTOLATHE
materials = list(MAT_METAL = 500)
build_path = /obj/item/reagent_containers/glass/bottle/vial/small
category = list("initial","Medical")
/datum/design/hypoviallarge
name = "Large Hypovial"
id = "large_hypovial"
build_type = AUTOLATHE
materials = list(MAT_METAL = 2500)
build_path = /obj/item/reagent_containers/glass/bottle/vial/large
category = list("initial","Medical")