This commit is contained in:
silicons
2021-10-29 21:50:58 -07:00
parent 319c5e23fe
commit 186b552103
64 changed files with 208 additions and 205 deletions
+6 -6
View File
@@ -278,14 +278,14 @@
SEND_SIGNAL(OW, COMSIG_ADD_MOOD_EVENT, "emptypred", /datum/mood_event/emptypred)
SEND_SIGNAL(ML, COMSIG_ADD_MOOD_EVENT, "emptyprey", /datum/mood_event/emptyprey)
if(CHECK_BITFIELD(ML.vore_flags,ABSORBED))
DISABLE_BITFIELD(ML.vore_flags,ABSORBED)
if((ML.vore_flags & ABSORBED))
ML.vore_flags &= ~(ABSORBED)
if(ishuman(M) && ishuman(OW))
var/mob/living/carbon/human/Prey = M
var/mob/living/carbon/human/Pred = OW
var/absorbed_count = 2 //Prey that we were, plus the pred gets a portion
for(var/mob/living/P in contents)
if(CHECK_BITFIELD(P.vore_flags,ABSORBED))
if((P.vore_flags & ABSORBED))
absorbed_count++
Pred.reagents.trans_to(Prey, Pred.reagents.total_volume / absorbed_count)
@@ -390,7 +390,7 @@
formatted_message = replacetext(formatted_message,"%pred",owner)
formatted_message = replacetext(formatted_message,"%prey",english_list(contents))
for(var/mob/living/P in contents)
if(!CHECK_BITFIELD(P.vore_flags, ABSORBED)) //This is required first, in case there's a person absorbed and not absorbed in a stomach.
if(!(P.vore_flags & ABSORBED)) //This is required first, in case there's a person absorbed and not absorbed in a stomach.
total_bulge += P.mob_size
if(total_bulge >= bulge_size && bulge_size != 0)
return("<span class='warning'>[formatted_message]</span><BR>")
@@ -485,7 +485,7 @@
// Handle a mob being absorbed
/obj/belly/proc/absorb_living(var/mob/living/M)
ENABLE_BITFIELD(M.vore_flags, ABSORBED)
M.vore_flags |= ABSORBED
to_chat(M,"<span class='notice'>[owner]'s [lowertext(name)] absorbs your body, making you part of them.</span>")
to_chat(owner,"<span class='notice'>Your [lowertext(name)] absorbs [M]'s body, making them part of you.</span>")
@@ -499,7 +499,7 @@
for(var/belly in M.vore_organs)
var/obj/belly/B = belly
for(var/mob/living/Mm in B)
if(CHECK_BITFIELD(Mm.vore_flags, ABSORBED))
if((Mm.vore_flags & ABSORBED))
absorb_living(Mm)
//Update owner
+2 -2
View File
@@ -76,7 +76,7 @@
play_sound = pick(pred_digest)
//Pref protection!
if (!CHECK_BITFIELD(M.vore_flags, DIGESTABLE) || M.vore_flags & ABSORBED)
if (!(M.vore_flags & DIGESTABLE) || M.vore_flags & ABSORBED)
continue
//Person just died in guts!
@@ -165,7 +165,7 @@
for (var/mob/living/M in contents)
if(M.vore_flags & ABSORBED && owner.nutrition >= 100)
DISABLE_BITFIELD(M.vore_flags, ABSORBED)
M.vore_flags &= ~(ABSORBED)
to_chat(M,"<span class='notice'>You suddenly feel solid again </span>")
to_chat(owner,"<span class='notice'>You feel like a part of you is missing.</span>")
owner.adjust_nutrition(-100)
+6 -6
View File
@@ -33,7 +33,7 @@
return TRUE
/mob/living/proc/init_vore()
ENABLE_BITFIELD(vore_flags, VORE_INIT)
vore_flags |= VORE_INIT
//Something else made organs, meanwhile.
if(LAZYLEN(vore_organs))
return TRUE
@@ -75,7 +75,7 @@
lazy_init_belly()
if(pred == prey) //you click your target
if(!CHECK_BITFIELD(pred.vore_flags,FEEDING))
if(!(pred.vore_flags & FEEDING))
to_chat(user, "<span class='notice'>They aren't able to be fed.</span>")
to_chat(pred, "<span class='notice'>[user] tried to feed you themselves, but you aren't voracious enough to be fed.</span>")
return
@@ -85,11 +85,11 @@
feed_grabbed_to_self(user, prey)
else // click someone other than you/prey
if(!CHECK_BITFIELD(pred.vore_flags,FEEDING))
if(!(pred.vore_flags & FEEDING))
to_chat(user, "<span class='notice'>They aren't voracious enough to be fed.</span>")
to_chat(pred, "<span class='notice'>[user] tried to feed you [prey], but you aren't voracious enough to be fed.</span>")
return
if(!CHECK_BITFIELD(prey.vore_flags,FEEDING))
if(!(prey.vore_flags & FEEDING))
to_chat(user, "<span class='notice'>They aren't able to be fed to someone.</span>")
to_chat(prey, "<span class='notice'>[user] tried to feed you to [pred], but you aren't able to be fed to them.</span>")
return
@@ -122,7 +122,7 @@
testing("[user] attempted to feed [prey] to [pred], via [lowertext(belly.name)] but it went wrong.")
return
if (!CHECK_BITFIELD(prey.vore_flags, DEVOURABLE))
if (!(prey.vore_flags & DEVOURABLE))
to_chat(user, "This can't be eaten!")
return FALSE
@@ -283,7 +283,7 @@
if(!client || !client.prefs)
to_chat(src,"<span class='warning'>You attempted to apply your vore prefs but somehow you're in this character without a client.prefs variable. Tell a dev.</span>")
return FALSE
ENABLE_BITFIELD(vore_flags,VOREPREF_INIT)
vore_flags |= VOREPREF_INIT
COPY_SPECIFIC_BITFIELDS(vore_flags, client.prefs.vore_flags, DIGESTABLE | DEVOURABLE | FEEDING | LICKABLE | SMELLABLE | ABSORBABLE | MOBVORE)
vore_taste = client.prefs.vore_taste
vore_smell = client.prefs.vore_smell
+18 -18
View File
@@ -181,15 +181,15 @@
data["selected"] = selected_list
data["prefs"] = list(
"digestable" = CHECK_BITFIELD(host.vore_flags, DIGESTABLE),
"devourable" = CHECK_BITFIELD(host.vore_flags, DEVOURABLE),
"feeding" = CHECK_BITFIELD(host.vore_flags, FEEDING),
"absorbable" = CHECK_BITFIELD(host.vore_flags, ABSORBABLE),
"allowmobvore" = CHECK_BITFIELD(host.vore_flags, MOBVORE),
"vore_sounds" = CHECK_BITFIELD(host.client.prefs.cit_toggles, EATING_NOISES),
"digestion_sounds" = CHECK_BITFIELD(host.client.prefs.cit_toggles, DIGESTION_NOISES),
"lickable" = CHECK_BITFIELD(host.vore_flags, LICKABLE),
"smellable" = CHECK_BITFIELD(host.vore_flags, SMELLABLE),
"digestable" = (host.vore_flags & DIGESTABLE),
"devourable" = (host.vore_flags & DEVOURABLE),
"feeding" = (host.vore_flags & FEEDING),
"absorbable" = (host.vore_flags & ABSORBABLE),
"allowmobvore" = (host.vore_flags & MOBVORE),
"vore_sounds" = (host.client.prefs.cit_toggles & EATING_NOISES),
"digestion_sounds" = (host.client.prefs.cit_toggles & DIGESTION_NOISES),
"lickable" = (host.vore_flags & LICKABLE),
"smellable" = (host.vore_flags & SMELLABLE),
)
return data
@@ -307,49 +307,49 @@
unsaved_changes = TRUE
return TRUE
if("toggle_digest")
TOGGLE_BITFIELD(host.vore_flags, DIGESTABLE)
(host.vore_flags ^= DIGESTABLE)
if(host.client.prefs)
COPY_SPECIFIC_BITFIELDS(host.client.prefs.vore_flags, host.vore_flags, DIGESTABLE)
unsaved_changes = TRUE
return TRUE
if("toggle_devour")
TOGGLE_BITFIELD(host.vore_flags, DEVOURABLE)
(host.vore_flags ^= DEVOURABLE)
if(host.client.prefs)
COPY_SPECIFIC_BITFIELDS(host.client.prefs.vore_flags, host.vore_flags, DEVOURABLE)
unsaved_changes = TRUE
return TRUE
if("toggle_feed")
TOGGLE_BITFIELD(host.vore_flags, FEEDING)
(host.vore_flags ^= FEEDING)
if(host.client.prefs)
COPY_SPECIFIC_BITFIELDS(host.client.prefs.vore_flags, host.vore_flags, FEEDING)
unsaved_changes = TRUE
return TRUE
if("toggle_absorbable")
TOGGLE_BITFIELD(host.vore_flags, ABSORBABLE)
(host.vore_flags ^= ABSORBABLE)
if(host.client.prefs)
COPY_SPECIFIC_BITFIELDS(host.client.prefs.vore_flags, host.vore_flags, ABSORBABLE)
unsaved_changes = TRUE
return TRUE
if("toggle_mobvore")
TOGGLE_BITFIELD(host.vore_flags, MOBVORE)
(host.vore_flags ^= MOBVORE)
if(host.client.prefs)
COPY_SPECIFIC_BITFIELDS(host.client.prefs.vore_flags, host.vore_flags, MOBVORE)
unsaved_changes = TRUE
return TRUE
if("toggle_vore_sounds")
TOGGLE_BITFIELD(host.client.prefs.cit_toggles, EATING_NOISES)
(host.client.prefs.cit_toggles ^= EATING_NOISES)
unsaved_changes = TRUE
return TRUE
if("toggle_digestion_sounds")
TOGGLE_BITFIELD(host.client.prefs.cit_toggles, DIGESTION_NOISES)
(host.client.prefs.cit_toggles ^= DIGESTION_NOISES)
unsaved_changes = TRUE
return TRUE
if("toggle_lickable")
TOGGLE_BITFIELD(host.vore_flags, LICKABLE)
(host.vore_flags ^= LICKABLE)
unsaved_changes = TRUE
return TRUE
if("toggle_smellable")
TOGGLE_BITFIELD(host.vore_flags, SMELLABLE)
(host.vore_flags ^= SMELLABLE)
unsaved_changes = TRUE
return TRUE