Merge pull request #1 from CHOMPStation2/master

Update
This commit is contained in:
CHOMPStationBot
2020-10-19 01:41:57 -07:00
committed by GitHub
10 changed files with 163 additions and 18 deletions

View File

@@ -0,0 +1,116 @@
/obj/item/weapon/implant/reagent_generator/egg
name = "egg laying implant"
desc = "This is an implant that allows the user to lay eggs."
generated_reagents = list("egg" = 2)
usable_volume = 500
transfer_amount = 50
var/verb_descriptor = list("squeezes", "pushes", "hugs")
var/self_verb_descriptor = list("squeeze", "push", "hug")
var/short_emote_descriptor = list("lays", "forces out", "pushes out")
self_emote_descriptor = list("lay", "force out", "push out")
random_emote = list("lets out an embarrassed moan", "yelps in embarrassment", "quietly groans in a mixture of discomfort and pleasure")
assigned_proc = /mob/living/carbon/human/proc/use_reagent_implant_egg
var/eggtype = /obj/item/weapon/reagent_containers/food/snacks/egg
/obj/item/weapon/implant/reagent_generator/egg/post_implant(mob/living/carbon/source)
START_PROCESSING(SSobj, src)
to_chat(source, "<span class='notice'>You implant [source] with \the [src].</span>")
source.verbs |= assigned_proc
return 1
/mob/living/carbon/human/proc/use_reagent_implant_egg()
set name = "Force Someone Adjacent To Lay An Egg, If Applicable!"
set desc = "Force someone adjacent to lay an egg by squeezing into their lower body! Whilst their reaction may vary, this is certainly going to overwhelm them for a moment!"
set category = "Local"
set src in view(1)
//do_reagent_implant(usr)
if(!isliving(usr) || !usr.checkClickCooldown())
return
if(usr.incapacitated() || usr.stat > CONSCIOUS)
return
var/obj/item/weapon/implant/reagent_generator/egg/rimplant
for(var/obj/item/organ/external/E in organs)
for(var/obj/item/weapon/implant/I in E.implants)
if(istype(I, /obj/item/weapon/implant/reagent_generator))
rimplant = I
break
rimplant.empty_message = list("Your lower belly feels smooth and empty, clearly there are no eggs left to be had!", "The reduced pressure in your lower belly tells you there are no eggs left, for now...")
rimplant.full_message = list("Your lower belly is a bit bloated, possessing a mildly bumpy texture if pressed against...", "Your lower abdomen feels really heavy, making it a bit hard to walk.")
rimplant.emote_descriptor = list("an egg right out of [src]'s lower belly!", "into [src]'s belly firmly, forcing them to lay an egg!", "[src] really tight, who promptly lays an egg!")
if(rimplant.reagents.total_volume >= rimplant.usable_volume*0.75)
if(usr != src)
to_chat(usr, "<span class='notice'>[src] is very full on eggs, squeezing them now may result in a cascade!</span>")
to_chat(src, "<span class='notice'>[pick(rimplant.full_message)]</span>")
if(rimplant.reagents.total_volume <= rimplant.transfer_amount)
if(usr != src)
to_chat(usr, "<span class='notice'>It seems that [src] is out of eggs!</span>")
to_chat(src, "<span class='notice'>[pick(rimplant.empty_message)]</span>")
return
visible_message("<span class='notice'>[usr] starts squeezing [src]'s lower body firmly...</span>")
if (rimplant && do_after(usr,60))
var/egg = rimplant.eggtype
new egg(get_turf(src))
src.SetStunned(3)
playsound(src,'sound/vore/insert.ogg',50,1)
var/index = rand(1,3)
if (usr != src)
var/emote = rimplant.emote_descriptor[index]
var/verb_desc = rimplant.verb_descriptor[index]
var/self_verb_desc = rimplant.self_verb_descriptor[index]
visible_message("<span class='notice'>[usr] [verb_desc] [emote]</span>",
"<span class='notice'>You [self_verb_desc] [emote]</span>")
else
visible_message("<span class='notice'>[src] [pick(rimplant.short_emote_descriptor)] an egg.</span>",
"<span class='notice'>You [pick(rimplant.self_emote_descriptor)] an egg.</span>")
if(prob(15))
visible_message("<span class='notice'>[src] [pick(rimplant.random_emote)].</span>")
rimplant.reagents.remove_any(rimplant.transfer_amount)
if(prob(70*rimplant.reagents.total_volume/rimplant.usable_volume))
to_chat(src, "<span class='notice'>You feel your legs quake as your muscles fail to stand strong!</span>")
while(rimplant.reagents.total_volume >= rimplant.transfer_amount)
if(do_after(src,30))
src.SetStunned(5)
playsound(src,'sound/vore/insert.ogg',50,1)
src.apply_effect(10,STUTTER,0)
new egg(get_turf(src))
rimplant.reagents.remove_any(rimplant.transfer_amount)
if(prob(25))
visible_message("<span class='notice'>[src] [pick(rimplant.random_emote)].</span>")
/obj/item/weapon/implant/reagent_generator/egg/slow
name = "slow egg laying implant"
usable_volume = 3000
transfer_amount = 300
/obj/item/weapon/implant/reagent_generator/egg/veryslow
name = "very slow egg laying implant"
usable_volume = 6000
transfer_amount = 600
/obj/item/weapon/implant/reagent_generator/egg/hicap
name = "high capacity egg laying implant" // Note that the capacity does not affect the regeneration rate, rather, the transfer amount does
usable_volume = 1000 // Effectively, the transfer_amount is the cost/time of making an egg. Usable volume is simply the max number of eggs.
transfer_amount = 50
/obj/item/weapon/implant/reagent_generator/egg/doublehicap
name = "extreme capacity egg laying implant"
usable_volume = 2000
transfer_amount = 50
/obj/item/weapon/implant/reagent_generator/egg/slowlowcap
name = "slow, low capacity egg laying implant"
usable_volume = 3000
transfer_amount = 3000
/obj/item/weapon/implant/reagent_generator/egg/veryslowlowcap
name = "very slow, low capacity egg laying implant"
usable_volume = 6000
transfer_amount = 6000

View File

@@ -2,4 +2,17 @@
/datum/gear/utility/news_ch
display_name = "starcaster"
path = /obj/item/device/starcaster_news
cost = 0
cost = 0
/datum/gear/utility/implant/egg
display_name = "Egg implant"
path = /obj/item/weapon/implant/reagent_generator/egg
cost = 0
/datum/gear/utility/implant/egg/New()
..()
var/list/implants = list()
for(var/implant in typesof(/obj/item/weapon/implant/reagent_generator/egg))
var/obj/item/weapon/implant/reagent_generator/egg/implant_type = implant
implants[initial(implant_type.name)] = implant_type
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(implants))

View File

@@ -0,0 +1,7 @@
// TFF 6/10/20 - Just a little thing to prevent the button
// and console from being destroyed by explosions.
/obj/structure/lift/button/ex_act()
return
/obj/structure/lift/panel/ex_act()
return

View File

@@ -28,7 +28,7 @@
if(g_damage > digest_stage)
g_damage = digest_stage
digest_stage -= g_damage
else
if(digest_stage <= 0)
for(var/obj/item/O in contents)
if(istype(O,/obj/item/weapon/storage/internal)) //Dump contents from dummy pockets.
for(var/obj/item/SO in O)
@@ -38,6 +38,8 @@
else if(item_storage)
O.forceMove(item_storage)
qdel(src)
if(g_damage > w_class)
return w_class
return g_damage
/////////////

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

View File

@@ -35,4 +35,10 @@
/turf/simulated/floor/tiled/techmaint/airless
oxygen = 0
nitrogen = 0
temperature = TCMB
temperature = TCMB
/obj/machinery/atmospherics/pipe/tank/phoron/full
start_pressure = 15000
/obj/machinery/atmospherics/pipe/tank/air/full
start_pressure = 15000

View File

@@ -644,7 +644,7 @@
/turf/simulated/shuttle/plating/airless,
/area/tether_away/fueldepot)
"bo" = (
/obj/machinery/atmospherics/pipe/tank/phoron,
/obj/machinery/atmospherics/pipe/tank/phoron/full,
/obj/effect/floor_decal/industrial/outline/red,
/turf/simulated/floor/tiled/techmaint/airless,
/area/tether_away/fueldepot)
@@ -1124,7 +1124,7 @@
/turf/simulated/shuttle/plating/airless,
/area/tether_away/fueldepot)
"cn" = (
/obj/machinery/atmospherics/pipe/tank/air{
/obj/machinery/atmospherics/pipe/tank/air/full{
icon_state = "air_map";
dir = 1
},

View File

@@ -11494,6 +11494,16 @@
},
/turf/simulated/floor/water/pool,
/area/tether/surfacebase/surface_one_hall)
"atm" = (
/obj/structure/bed/chair/wood,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
/turf/simulated/floor/lino,
/area/crew_quarters/visitor_dining)
"atn" = (
/obj/machinery/status_display{
pixel_x = 32;
@@ -17310,17 +17320,6 @@
},
/turf/simulated/floor/lino,
/area/crew_quarters/visitor_dining)
"aIs" = (
/obj/structure/bed/chair/wood,
/obj/structure/bed/chair/wood,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
/turf/simulated/floor/lino,
/area/crew_quarters/visitor_dining)
"aIt" = (
/obj/structure/bed/chair/wood,
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
@@ -46106,7 +46105,7 @@ aEK
aEK
aEK
aDu
aIs
atm
aCQ
aJV
aDu

View File

@@ -12,7 +12,7 @@ set -f # disable pathname expansion
set -C # noclobber
readonly BASE_BRANCH_NAME="upstream-merge-"
readonly BASE_PULL_URL="https://api.github.com/repos/PolarisSS13/Polaris/pulls"
readonly BASE_PULL_URL="https://api.github.com/repos/VOREStation/VOREStation/pulls"
# Ensure the current directory is a git directory
if [ ! -d .git ]; then

View File

@@ -1360,6 +1360,7 @@
#include "code\game\objects\items\weapons\implants\implantfreedom.dm"
#include "code\game\objects\items\weapons\implants\implantlanguage.dm"
#include "code\game\objects\items\weapons\implants\implantpad.dm"
#include "code\game\objects\items\weapons\implants\implantreagent_ch.dm"
#include "code\game\objects\items\weapons\implants\implantreagent_vr.dm"
#include "code\game\objects\items\weapons\implants\implantuplink.dm"
#include "code\game\objects\items\weapons\implants\neuralbasic.dm"
@@ -3816,6 +3817,7 @@
#include "code\modules\turbolift\turbolift.dm"
#include "code\modules\turbolift\turbolift_areas.dm"
#include "code\modules\turbolift\turbolift_console.dm"
#include "code\modules\turbolift\turbolift_console_vr.dm"
#include "code\modules\turbolift\turbolift_door.dm"
#include "code\modules\turbolift\turbolift_door_vr.dm"
#include "code\modules\turbolift\turbolift_floor.dm"