This commit is contained in:
Metis
2024-09-13 16:53:30 -04:00
parent f9bfd0d3f0
commit 172a2be27d
11 changed files with 91 additions and 36 deletions
@@ -30,27 +30,27 @@
catchphrase = null
icon = 'icons/mob/actions/bloodsucker.dmi'
icon_state = "power_feed"
var/starttime = 0
/obj/item/melee/touch_attack/fatfang/afterattack(atom/target, mob/living/carbon/user, proximity)
if(!proximity || !iscarbon(target))
return FALSE
if(!target || !user.dna.get_mutation(FATFANG).chem_to_add || !user.dna.get_mutation(FATFANG).chem_amount)
var/datum/mutation/human/fatfang/fang = user.dna.get_mutation(FATFANG)
if(!target || !istype(fang) || !fang.chem_to_add || !fang.chem_amount)
return FALSE
target.visible_message("<span class='danger'>[user] nibbles [target]!</span>","<span class='userdanger'>[user] nibbles you!</span>")
if(target == user.pulling && ishuman(user.pulling))
starttime = world.time
user.dna.get_mutation(FATFANG).power.charge_max = 600 * GET_MUTATION_ENERGY(user.dna.get_mutation(FATFANG))
fang.power.charge_max = 600 * GET_MUTATION_ENERGY(fang)
while(starttime + 300 > world.time && in_range(user, target))
if(do_mob(user, target, 10, 0, 1))
target.reagents.add_reagent(user.dna.get_mutation(FATFANG).chem_to_add, (user.dna.get_mutation(FATFANG).chem_amount * GET_MUTATION_POWER(user.dna.get_mutation(FATFANG))/2))
target.reagents.add_reagent(fang.chem_to_add, (fang.chem_amount * GET_MUTATION_POWER(fang)/2))
target.visible_message("<span class='danger'>[user] pumps some venom in [target]!</span>","<span class='userdanger'>[user] pumps some venom in you!</span>")
else
user.dna.get_mutation(FATFANG).power.charge_max = 50 * GET_MUTATION_ENERGY(user.dna.get_mutation(FATFANG))
target.reagents.add_reagent(user.dna.get_mutation(FATFANG).chem_to_add, user.dna.get_mutation(FATFANG).chem_amount * GET_MUTATION_POWER(user.dna.get_mutation(FATFANG)))
user.changeNext_move(50)
fang.power.charge_max = 50 * GET_MUTATION_ENERGY(fang)
target.reagents.add_reagent(fang.chem_to_add, fang.chem_amount * GET_MUTATION_POWER(fang))
//user.changeNext_move(50)
/obj/item/dnainjector/antifang
name = "\improper DNA injector (Anti-The Nibble)"
+4 -4
View File
@@ -9,7 +9,7 @@
return
//allocate a channel if necessary now so its the same for everyone
channel = channel || open_sound_channel()
channel = channel //|| open_sound_channel()
// Looping through the player list has the added bonus of working for mobs inside containers
var/sound/S = sound(get_sfx(soundin))
@@ -18,12 +18,12 @@
var/list/listeners = SSmobs.clients_by_zlevel[z]
if(!ignore_walls) //these sounds don't carry through walls
listeners = listeners & hearers(maxdistance,turf_source)
for(var/P in listeners)
var/mob/M = P
if(!M.client)
continue
if((!M.client?.prefs.cit_toggles & pref))
if(!(M.client?.prefs.cit_toggles & pref))
continue
if(get_dist(M, turf_source) <= maxdistance)
M.playsound_local(turf_source, soundin, vol, vary, frequency, falloff, channel, pressure_affected, S, soundenvwet, soundenvdry)
@@ -31,7 +31,7 @@
var/mob/M = P
if(!M.client)
continue
if((!M.client?.prefs.cit_toggles & pref))
if(!(M.client?.prefs.cit_toggles & pref))
continue
if(get_dist(M, turf_source) <= maxdistance)
M.playsound_local(turf_source, soundin, vol, vary, frequency, falloff, channel, pressure_affected, S, soundenvwet, soundenvdry)
@@ -20,6 +20,7 @@
if(iscarbon(quirk_holder))
var/mob/living/carbon/C = quirk_holder
return C.getArousalLoss()*35
return FALSE
///mob/living/adjust_arousal(amount, updating_arousal=1)
@@ -34,7 +34,7 @@
. += mutable_appearance('GainStation13/icons/mob/modclothes/chefmodular.dmi', "belly_[G.size]_d", GENITALS_UNDER_LAYER)
else
. += mutable_appearance('GainStation13/icons/mob/modclothes/chefmodular.dmi', "belly_9_d", GENITALS_UNDER_LAYER)
if(istype(O, /obj/item/organ/genital/anus))
if(istype(O, /obj/item/organ/genital/butt))
G = O
if(suit_style == DIGITIGRADE_SUIT_STYLE)
if(G.size <= 10)
@@ -68,7 +68,7 @@
/obj/item/clothing/under/color/grey/modular
name = "grey modular jumpsuit" //change name from base clothes to distinguish them
desc = "A tasteful grey jumpsuit that reminds you of the good old days. Now adjusts to the match the wearer's size!" //description same as above
var/icon_location = 'GainStation13/icons/mob/modclothes/graymodular.dmi' //specify the file path where the modular overlays for those clothes are located
var/mob/living/carbon/U //instance a variable for keeping track of the user
@@ -148,7 +148,7 @@
/obj/item/clothing/under/color/grey/modular/bra
name = "grey modular bra"
name = "grey modular bra"
desc = "A tasteful grey bra that reminds you of the good old days. Now adjusts to the match the wearer's size!"
icon_location = 'GainStation13/icons/mob/modclothes/graymodular_bra.dmi'
icon_state = "grey"
@@ -139,3 +139,13 @@
tastes = list("eggs", "breakfast" = 1)
foodtype = GRAIN | SUGAR
/obj/item/reagent_containers/food/snacks/soup/lavaland_stew
name = "lavaland stew"
desc = "A mixture of various lavaland mushrooms, turned into a bland but medicinal stew."
icon = 'GainStation13/icons/obj/food/ported_meals.dmi'
icon_state = "lavalandsoup"
trash = /obj/item/reagent_containers/glass/bowl/mushroom_bowl
list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/vitfro = 15) //Primarily here to let ashwalkers make medicine. Low nutrient content, high medicine content.
tastes = list("fresh pickings","extreme blandness" = 1)
foodtype = MEAT
@@ -0,0 +1,39 @@
/obj/item/organ/genital/belly //I know, I know a belly aint a genital. but it is in the sake of code.
name = "belly"
desc = "You see a belly on their midsection."
icon_state = "belly"
icon = 'hyperstation/icons/obj/genitals/belly.dmi'
zone = "chest"
slot = "belly"
w_class = 3
size = 0
var/statuscheck = FALSE
shape = "Pair"
masturbation_verb = "massage"
var/sent_full_message = TRUE //defaults to 1 since they're full to start
var/inflatable = FALSE //For inflation connoisseurs
/obj/item/organ/genital/belly/on_life()
if(QDELETED(src))
return
if(!owner)
return
/obj/item/organ/genital/belly/update_appearance()
var/string
if(owner)
if(owner.dna.species.use_skintones && owner.dna.features["genitals_use_skintone"])
if(ishuman(owner))
var/mob/living/carbon/human/H = owner
color = "#[SKINTONE2HEX(H.skin_tone)]"
else
color = "#[owner.dna.features["belly_color"]]"
if(ishuman(owner))
var/mob/living/carbon/human/H = owner
icon_state = sanitize_text(string)
H.update_genitals()
icon_state = sanitize_text(string)
@@ -17,7 +17,9 @@
possible_transfer_amounts = list(0)
volume = 500
spillable = FALSE
splashable = FALSE
/datum/action/item_action/toggle_tube //GS13
name = "Toggle Tube"
/obj/item/reagent_containers/barrel_tank/ui_action_click(mob/user)
toggle_tube(user)
@@ -51,7 +51,6 @@
filling_color = "#001aff"
tastes = list("blueberry gum" = 1)
foodtype = FRUIT
price = 5
//blueberry gum trash
+2
View File
@@ -187,6 +187,8 @@
#define ORGAN_SLOT_TESTICLES "testicles"
#define ORGAN_SLOT_BREASTS "breasts"
#define ORGAN_SLOT_BUTT "butt"
// GS13 EDIT
#define ORGAN_SLOT_BELLY "belly"
////organ defines
#define STANDARD_ORGAN_THRESHOLD 100
+20 -19
View File
@@ -33,24 +33,25 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
//Human Overlays Indexes/////////
//LOTS OF CIT CHANGES HERE. BE CAREFUL WHEN UPSTREAM ADDS MORE LAYERS
#define MUTATIONS_LAYER 34 //mutations. Tk headglows, cold resistance glow, etc
#define ANTAG_LAYER 33 //stuff for things like cultism indicators (clock cult glow, cultist red halos, whatever else new that comes up)
#define GENITALS_BEHIND_LAYER 32 //Some genitalia needs to be behind everything, such as with taurs (Taurs use body_behind_layer
#define BODY_BEHIND_LAYER 31 //certain mutantrace features (tail when looking south) that must appear behind the body parts
#define BODYPARTS_LAYER 30 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag
#define MARKING_LAYER 29 //Matrixed body markings because clashing with snouts?
#define BODY_ADJ_LAYER 28 //certain mutantrace features (snout, body markings) that must appear above the body parts
#define GENITALS_FRONT_LAYER 27 //Draws some genitalia above clothes and the TAUR body if need be.
#define BODY_LAYER 26 //underwear, undershirts, socks, eyes, lips(makeup)
#define BODY_ADJ_UPPER_LAYER 25
#define FRONT_MUTATIONS_LAYER 24 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes)
#define DAMAGE_LAYER 23 //damage indicators (cuts and burns)
#define UNIFORM_LAYER 22
#define ID_LAYER 21
#define HANDS_PART_LAYER 20
#define SHOES_LAYER 19
#define GLOVES_LAYER 18
#define EARS_LAYER 17
#define MUTATIONS_LAYER 35 //mutations. Tk headglows, cold resistance glow, etc
#define ANTAG_LAYER 34 //stuff for things like cultism indicators (clock cult glow, cultist red halos, whatever else new that comes up)
#define GENITALS_BEHIND_LAYER 33 //Some genitalia needs to be behind everything, such as with taurs (Taurs use body_behind_layer
#define BODY_BEHIND_LAYER 32 //certain mutantrace features (tail when looking south) that must appear behind the body parts
#define BODYPARTS_LAYER 31 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag
#define MARKING_LAYER 30 //Matrixed body markings because clashing with snouts?
#define BODY_ADJ_LAYER 29 //certain mutantrace features (snout, body markings) that must appear above the body parts
#define GENITALS_FRONT_LAYER 28 //Draws some genitalia above clothes and the TAUR body if need be.
#define BODY_LAYER 27 //underwear, undershirts, socks, eyes, lips(makeup)
#define BODY_ADJ_UPPER_LAYER 26
#define FRONT_MUTATIONS_LAYER 25 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes)
#define DAMAGE_LAYER 24 //damage indicators (cuts and burns)
#define UNIFORM_LAYER 23
#define ID_LAYER 22
#define HANDS_PART_LAYER 21
#define SHOES_LAYER 20
#define GLOVES_LAYER 19
#define EARS_LAYER 18
#define GENITALS_UNDER_LAYER 17
#define SUIT_LAYER 16
#define GENITALS_EXPOSED_LAYER 15
#define GLASSES_LAYER 14
@@ -67,7 +68,7 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
#define HANDS_LAYER 3
#define BODY_FRONT_LAYER 2
#define FIRE_LAYER 1 //If you're on fire
#define TOTAL_LAYERS 34 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_;
#define TOTAL_LAYERS 35 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_;
//Human Overlay Index Shortcuts for alternate_worn_layer, layers
//Because I *KNOW* somebody will think layer+1 means "above"
+1
View File
@@ -3959,6 +3959,7 @@
#include "GainStation13\code\modules\hydroponics\munchies_weed.dm"
#include "GainStation13\code\modules\hydroponics\grown\berries.dm"
#include "GainStation13\code\modules\mapping\areas.dm"
#include "GainStation13\code\modules\mob\living\belly.dm"
#include "GainStation13\code\modules\mob\living\emote.dm"
#include "GainStation13\code\modules\mob\living\emote_modular.dm"
#include "GainStation13\code\modules\mob\living\emote_ported.dm"