Even more fixes

This commit is contained in:
BlackMajor
2022-04-23 20:21:01 +12:00
parent 8d48097db0
commit 15a01777d3
8 changed files with 45 additions and 58 deletions

View File

@@ -307,7 +307,7 @@
//VOREStation Add Start Makes it so that simplemobs can understand galcomm without being able to speak it.
/mob/living/simple_mob/say_understands(var/mob/other, var/datum/language/speaking = null)
if(understands_common && speaking?.name == LANGUAGE_GALCOM)
if(understands_common && (speaking?.name == LANGUAGE_GALCOM || !speaking))
return TRUE
return ..()
//Vorestation Add End

View File

@@ -374,11 +374,11 @@
switch(message_mode)
if("intercom")
for(var/obj/item/device/radio/intercom/I in view(1, null))
I.talk_into(src, message, verb, speaking)
I.talk_into(src,message,message_mode,verb,speaking)
used_radios += I
if("headset")
if(mob_radio && istype(mob_radio,/obj/item/device/radio/headset/mob_headset))
mob_radio.talk_into(src,message,null,verb,speaking)
if(mob_radio && istype(mob_radio,/obj/item/device/radio)) //CHOMPEdit - Why does it specifically have to be mob_headset? Bad.
mob_radio.talk_into(src,message,message_mode,verb,speaking)
used_radios += mob_radio
else
if(message_mode)

View File

@@ -1,19 +0,0 @@
/*
init_vore() was moved to only be called when vore organs are needed. This is also responsible for loading vore prefs.
This file is here to make vore prefs default to off so that someone who hasn't opened their vore panel during a round
won't accidentally be prefbroken.
Also, these should've been defaulted to off in the first place.
*/
/mob/living/carbon/human
digestable = FALSE
devourable = FALSE
feeding = FALSE
absorbable = FALSE
digest_leave_remains = FALSE
allowmobvore = FALSE
showvoreprefs = FALSE
permit_healbelly = FALSE
can_be_drop_prey = FALSE
can_be_drop_pred = FALSE
show_vore_fx = FALSE

View File

@@ -44,7 +44,6 @@
var/latejoin_vore = FALSE //CHOMPedit: If enabled, latejoiners can spawn into this, assuming they have a client
var/latejoin_prey = FALSE //CHOMPedit: If enabled, latejoiners can spawn ontop of and instantly eat the victim
var/noisy_full = FALSE //CHOMPedit: Enables belching when a mob has overeaten
var/bellies_loaded = FALSE //CHOMPedit: On-demand belly loading
var/regen_sounds = list(
'sound/effects/mob_effects/xenochimera/regen_1.ogg',
'sound/effects/mob_effects/xenochimera/regen_2.ogg',
@@ -211,12 +210,12 @@
return TRUE
/mob/living/proc/apply_vore_prefs(var/full_vorgans = FALSE) //CHOMPedit: full_vorgans var to bypass 1-belly load optimization.
/mob/living/proc/apply_vore_prefs()
if(!client || !client.prefs_vr)
return FALSE
if(!client.prefs_vr.load_vore())
return FALSE
if(!copy_from_prefs_vr(full_vorgans = full_vorgans)) //CHOMPedit: full_vorgans var to bypass 1-belly load optimization.
if(!copy_from_prefs_vr())
return FALSE
return TRUE
@@ -306,12 +305,8 @@
if(bellies)
release_vore_contents(silent = TRUE)
QDEL_LIST(vore_organs)
bellies_loaded = FALSE //CHOMPedit
for(var/entry in P.belly_prefs)
list_to_object(entry,src)
if(!full_vorgans) //CHOMPedit: full_vorgans var to bypass 1-belly load optimization.
break //CHOMPedit: Belly load optimization. Only load first belly, save the rest for vorepanel.
bellies_loaded = TRUE //CHOMPedit
return TRUE

View File

@@ -19,16 +19,6 @@
log_debug("[src] ([type], \ref[src]) didn't have a vorePanel and tried to use the verb.")
vorePanel = new(src)
if(!bellies_loaded) //CHOMPedit Start: On-demand belly loading
var/datum/vore_preferences/P = client.prefs_vr
var/firstbelly = FALSE // First belly loaded on init_vore
for(var/entry in P.belly_prefs)
if(!firstbelly)
firstbelly = TRUE
continue
list_to_object(entry,src)
bellies_loaded = TRUE //CHOMPedit End
vorePanel.tgui_interact(src)
/mob/living/proc/updateVRPanel() //Panel popup update call from belly events.
@@ -414,7 +404,7 @@
var/alert = tgui_alert(usr, "Are you sure you want to reload character slot preferences? This will remove your current vore organs and eject their contents.","Confirmation",list("Reload","Cancel"))
if(alert != "Reload")
return FALSE
if(!host.apply_vore_prefs(TRUE)) //CHOMPedit: full_vorgans var to bypass 1-belly load optimization.
if(!host.apply_vore_prefs())
tgui_alert_async(usr, "ERROR: Chomp-specific preferences failed to apply!","Error")
else
to_chat(usr,"<span class='notice'>Chomp-specific preferences applied from active slot!</span>")

View File

@@ -49,6 +49,7 @@
can_buckle = 1
has_hands = 1
shock_resist = 1
nameset = 1
/datum/say_list/protean_blob
speak = list("Blrb?","Sqrsh.","Glrsh!")
@@ -344,8 +345,8 @@ var/global/list/disallowed_protean_accessories = list(
// Helpers - Unsafe, WILL perform change.
/mob/living/carbon/human/proc/nano_intoblob(force)
if(loc == /obj/item/weapon/rig/protean) //CHOMP Add
return //CHOMP Add
if(loc == /obj/item/weapon/rig/protean)
return
if(!force && !isturf(loc))
to_chat(src,"<span class='warning'>You can't change forms while inside something.</span>")
return
@@ -378,6 +379,14 @@ var/global/list/disallowed_protean_accessories = list(
blob.ckey = ckey
blob.ooc_notes = ooc_notes
temporary_form = blob
var/obj/item/device/radio/R = null
if(isradio(l_ear))
R = l_ear
if(isradio(r_ear))
R = r_ear
if(R)
blob.mob_radio = R
R.forceMove(blob)
//Mail them to nullspace
moveToNullspace()
@@ -395,9 +404,11 @@ var/global/list/disallowed_protean_accessories = list(
for(var/obj/belly/B as anything in vore_organs)
B.forceMove(blob)
B.owner = blob
vore_organs.Cut()
//We can still speak our languages!
blob.languages = languages.Copy()
blob.name = real_name
//Flip them to the protean panel
client?.statpanel = "Protean"
@@ -450,6 +461,10 @@ var/global/list/disallowed_protean_accessories = list(
if(blob.l_hand) blob.drop_from_inventory(blob.l_hand)
if(blob.r_hand) blob.drop_from_inventory(blob.r_hand)
if(blob.mob_radio)
var/obj/item/device/radio/R = blob.mob_radio
R.forceMove(src)
//Play the animation
blob.icon_state = "from_puddle"
@@ -474,10 +489,12 @@ var/global/list/disallowed_protean_accessories = list(
temporary_form = null
//Transfer vore organs
vore_organs = blob.vore_organs
vore_selected = blob.vore_selected
for(var/obj/belly/B as anything in blob.vore_organs)
B.forceMove(src)
B.owner = src
languages = blob.languages.Copy()
Life(1) //Fix my blindness right meow //Has to be moved up here, there exists a circumstance where blob could be deleted without vore organs moving right.

View File

@@ -82,14 +82,18 @@
update_icons_body()
/mob/living/carbon/human/proc/nano_regenerate()
set name = "Ref - Whole Body"
set desc = "Allows you to regrow limbs and replace organs, given you have enough materials."
set name = "Total Reassembly (wip)"
set desc = "Completely reassemble yourself from whatever save slot you have loaded in preferences. Assuming you meet the requirements."
set category = "Abilities"
set hidden = 1
if(temporary_form)
to_chat(temporary_form,"<span class ='warning'>This function isn't coded yet. Soon, my child.</span>")
else
to_chat(src,"<span class ='warning'>This function isn't coded yet. Soon, my child.</span>")
if(stat)
/*if(stat)
to_chat(src,"<span class='warning'>You must be awake and standing to perform this action!</span>")
return
@@ -182,7 +186,7 @@
to_chat(src, "<span class='critical'>Your refactoring is interrupted.</span>")
to_chat(blob, "<span class='critical'>Your refactoring is interrupted!</span>")
active_regen = 0
nano_outofblob(blob)
nano_outofblob(blob)*/
////
// Storing metal
@@ -440,8 +444,8 @@ CHOMP Removal end*/
to_call = /mob/living/carbon/human/proc/nano_partswap
/obj/effect/protean_ability/reform_body
ability_name = "Ref - Whole Body"
desc = "Rebuild your entire body into whatever design you want, assuming you have 10,000 metal."
ability_name = "Total Reassembly (wip)"
desc = "Completely reassemble yourself from whatever save slot you have loaded in preferences. Assuming you meet the requirements."
icon_state = "body"
to_call = /mob/living/carbon/human/proc/nano_regenerate