mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2026-08-31 08:37:14 +01:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
@@ -89,20 +89,20 @@ INITIALIZE_IMMEDIATE(/mob/dead)
|
||||
if(alert(src, "Jump to server [pick] ([addr])?", "Server Hop", "Yes", "No") != "Yes")
|
||||
return
|
||||
|
||||
var/client/C = client
|
||||
to_chat(C, "<span class='notice'>Sending you to [pick].</span>")
|
||||
new /atom/movable/screen/splash(C)
|
||||
var/client/hopper = client
|
||||
to_chat(hopper, "<span class='notice'>Sending you to [pick].</span>")
|
||||
new /atom/movable/screen/splash(null, src, hopper, FALSE)
|
||||
|
||||
mob_transforming = TRUE
|
||||
sleep(29) //let the animation play
|
||||
sleep(2.9 SECONDS) //let the animation play
|
||||
mob_transforming = FALSE
|
||||
|
||||
if(!C)
|
||||
if(!hopper)
|
||||
return
|
||||
|
||||
winset(src, null, "command=.options") //other wise the user never knows if byond is downloading resources
|
||||
|
||||
C << link("[addr]")
|
||||
hopper << link("[addr]")
|
||||
|
||||
/mob/dead/proc/update_z(new_z) // 1+ to register, null to unregister
|
||||
if (registered_z != new_z)
|
||||
|
||||
@@ -41,7 +41,3 @@
|
||||
else
|
||||
postfix = "soon"
|
||||
to_chat(src, "Please set up your character and select \"Ready\". The game will start [postfix].")
|
||||
|
||||
var/datum/hud/new_player/NH = hud_used
|
||||
if(istype(NH))
|
||||
NH.populate_buttons(src)
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
/mob/dead/new_player/Initialize(mapload)
|
||||
if(client && SSticker.state == GAME_STATE_STARTUP)
|
||||
var/atom/movable/screen/splash/S = new(client, TRUE, TRUE)
|
||||
var/atom/movable/screen/splash/S = new(null, null, client, TRUE)
|
||||
S.Fade(TRUE)
|
||||
|
||||
if(length(GLOB.newplayer_start))
|
||||
@@ -496,7 +496,7 @@
|
||||
if(job && !job.override_latejoin_spawn(character))
|
||||
SSjob.SendToLateJoin(character)
|
||||
if(!arrivals_docked)
|
||||
var/atom/movable/screen/splash/Spl = new(character.client, TRUE)
|
||||
var/atom/movable/screen/splash/Spl = new(null, character, character.client, TRUE)
|
||||
Spl.Fade(TRUE)
|
||||
character.playsound_local(get_turf(character), 'sound/voice/ApproachingTG.ogg', 25)
|
||||
|
||||
|
||||
@@ -794,10 +794,6 @@
|
||||
else
|
||||
hud_used.healths.icon_state = "health7"
|
||||
|
||||
/mob/living/carbon/proc/update_internals_hud_icon(internal_state = 0)
|
||||
if(hud_used && hud_used.internals)
|
||||
hud_used.internals.icon_state = "internal[internal_state]"
|
||||
|
||||
/mob/living/carbon/update_stat()
|
||||
if(status_flags & GODMODE)
|
||||
return
|
||||
|
||||
@@ -50,22 +50,15 @@
|
||||
//accessory
|
||||
var/accessory_msg
|
||||
if(istype(w_uniform, /obj/item/clothing/under))
|
||||
var/obj/item/clothing/under/U = w_uniform
|
||||
if(length(U.attached_accessories) && !(U.flags_inv & HIDEACCESSORY))
|
||||
var/list/weehoo = list()
|
||||
var/dumb_icons = ""
|
||||
for(var/obj/item/clothing/accessory/attached_accessory in U.attached_accessories)
|
||||
if(!(attached_accessory.flags_inv & HIDEACCESSORY))
|
||||
weehoo += "\a [attached_accessory]"
|
||||
dumb_icons = "[dumb_icons][icon2html(attached_accessory, user)]"
|
||||
if(length(weehoo))
|
||||
accessory_msg += " with [dumb_icons]"
|
||||
if(length(U.attached_accessories) >= 2)
|
||||
accessory_msg += jointext(weehoo, ", ", 1, length(weehoo) - 1)
|
||||
accessory_msg += " and [weehoo[length(weehoo)]]"
|
||||
else
|
||||
accessory_msg += weehoo[1]
|
||||
|
||||
var/obj/item/clothing/under/worn_thing = w_uniform
|
||||
if(!CHECK_BITFIELD(worn_thing.flags_inv, HIDEACCESSORY))
|
||||
var/list/accessory_preparation
|
||||
for(var/obj/item/clothing/accessory/attached_accessory as anything in worn_thing.attached_accessories)
|
||||
if(CHECK_BITFIELD(attached_accessory.flags_inv, HIDEACCESSORY))
|
||||
continue
|
||||
LAZYADD(accessory_preparation, "[icon2html(attached_accessory, user)] [attached_accessory]")
|
||||
if(length(accessory_preparation))
|
||||
accessory_msg = " with [english_list(accessory_preparation)]"
|
||||
|
||||
. += "[t_He] [t_is] wearing [w_uniform.get_examine_string(user)][accessory_msg]."
|
||||
//head
|
||||
@@ -88,7 +81,20 @@
|
||||
|
||||
//gloves
|
||||
if(gloves && !(ITEM_SLOT_GLOVES in obscured))
|
||||
. += "[t_He] [t_has] [gloves.get_examine_string(user)] on [t_his] hands."
|
||||
//accessory
|
||||
var/accessory_msg
|
||||
if(istype(gloves, /obj/item/clothing/gloves))
|
||||
var/obj/item/clothing/gloves/worn_thing = gloves
|
||||
if(!CHECK_BITFIELD(worn_thing.flags_inv, HIDEACCESSORY))
|
||||
var/list/accessory_preparation
|
||||
for(var/obj/item/clothing/accessory/ring/attached_accessory as anything in worn_thing.attached_accessories)
|
||||
if(CHECK_BITFIELD(attached_accessory.flags_inv, HIDEACCESSORY))
|
||||
continue
|
||||
LAZYADD(accessory_preparation, "[icon2html(attached_accessory, user)] [attached_accessory]")
|
||||
if(length(accessory_preparation))
|
||||
accessory_msg = " with [english_list(accessory_preparation)] on [t_his] fingers"
|
||||
|
||||
. += "[t_He] [t_has] [gloves.get_examine_string(user)] on [t_his] hands[accessory_msg]."
|
||||
else if(length(blood_DNA))
|
||||
var/hand_number = get_num_arms(FALSE)
|
||||
if(hand_number)
|
||||
|
||||
@@ -678,11 +678,11 @@
|
||||
if(hal_screwyhud == SCREWYHUD_HEALTHY)
|
||||
icon_num = 0
|
||||
if(icon_num)
|
||||
hud_used.healthdoll.add_overlay(mutable_appearance('icons/mob/screen_gen.dmi', "[BP.body_zone][icon_num]"))
|
||||
hud_used.healthdoll.add_overlay(mutable_appearance(ui_style_modular(hud_used.ui_style, "health"), "[BP.body_zone][icon_num]"))
|
||||
for(var/t in get_missing_limbs()) //Missing limbs
|
||||
hud_used.healthdoll.add_overlay(mutable_appearance('icons/mob/screen_gen.dmi', "[t]6"))
|
||||
hud_used.healthdoll.add_overlay(mutable_appearance(ui_style_modular(hud_used.ui_style, "health"), "[t]6"))
|
||||
for(var/t in get_disabled_limbs()) //Disabled limbs
|
||||
hud_used.healthdoll.add_overlay(mutable_appearance('icons/mob/screen_gen.dmi', "[t]7"))
|
||||
hud_used.healthdoll.add_overlay(mutable_appearance(ui_style_modular(hud_used.ui_style, "health"), "[t]7"))
|
||||
else
|
||||
hud_used.healthdoll.icon_state = "healthdoll_DEAD"
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
can_buckle = TRUE
|
||||
buckle_lying = FALSE
|
||||
mob_biotypes = MOB_ORGANIC|MOB_HUMANOID
|
||||
initial_language_holder = /datum/language_holder/empty // We get stuff from our species
|
||||
/// Enable stamina combat
|
||||
combat_flags = COMBAT_FLAGS_STAMINA_COMBAT | COMBAT_FLAG_UNARMED_PARRY
|
||||
status_flags = CANSTUN|CANKNOCKDOWN|CANUNCONSCIOUS|CANPUSH|CANSTAGGER
|
||||
|
||||
@@ -292,12 +292,9 @@ GLOBAL_LIST_INIT(strippable_human_items, create_strippable_list(list(
|
||||
if(carbon_source.internal)
|
||||
carbon_source.internal = null
|
||||
|
||||
// This isn't meant to be FALSE, it correlates to the icon's name.
|
||||
carbon_source.update_internals_hud_icon(0)
|
||||
else if (!QDELETED(item))
|
||||
if(internals || carbon_source.getorganslot(ORGAN_SLOT_BREATHING_TUBE))
|
||||
carbon_source.internal = item
|
||||
carbon_source.update_internals_hud_icon(1)
|
||||
|
||||
carbon_source.visible_message(
|
||||
span_danger("[user] [isnull(carbon_source.internal) ? "closes": "opens"] the valve on [source]'s [item.name]."),
|
||||
|
||||
@@ -319,7 +319,6 @@
|
||||
if((C.flags_inv & (HIDEHAIR|HIDEFACIALHAIR)) || (initial(C.flags_inv) & (HIDEHAIR|HIDEFACIALHAIR)))
|
||||
update_hair()
|
||||
if(toggle_off && internal && !getorganslot(ORGAN_SLOT_BREATHING_TUBE))
|
||||
update_internals_hud_icon(0)
|
||||
internal = null
|
||||
if(C.flags_inv & HIDEEYES)
|
||||
update_inv_glasses()
|
||||
|
||||
@@ -90,8 +90,10 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
var/dangerous_existence //A flag for transformation spells that tells them "hey if you turn a person into one of these without preperation, they'll probably die!"
|
||||
///Affects the speech message, for example: Motharula flutters, "My speech message is flutters!"
|
||||
var/say_mod = "says"
|
||||
///What languages this species can understand and say. Use a [language holder datum][/datum/language_holder] in this var.
|
||||
var/species_language_holder = /datum/language_holder
|
||||
/// What languages this species can understand and say.
|
||||
/// Use a [language holder datum][/datum/language_holder] typepath in this var.
|
||||
/// Should never be null.
|
||||
var/datum/language_holder/species_language_holder = /datum/language_holder/human_basic
|
||||
/**
|
||||
* Visible CURRENT bodyparts that are unique to a species.
|
||||
* DO NOT USE THIS AS A LIST OF ALL POSSIBLE BODYPARTS AS IT WILL FUCK
|
||||
@@ -558,6 +560,16 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
for(var/obj/item/bodypart/B in C.bodyparts)
|
||||
B.change_bodypart_status(BODYPART_HYBRID, FALSE, TRUE) // Makes all Bodyparts 'robotic'.
|
||||
|
||||
// All languages associated with this language holder are added with source [LANGUAGE_SPECIES]
|
||||
// rather than source [LANGUAGE_ATOM], so we can track what to remove if our species changes again
|
||||
var/datum/language_holder/gaining_holder = GLOB.prototype_language_holders[species_language_holder]
|
||||
for(var/language in gaining_holder.understood_languages)
|
||||
C.grant_language(language, UNDERSTOOD_LANGUAGE, LANGUAGE_SPECIES)
|
||||
for(var/language in gaining_holder.spoken_languages)
|
||||
C.grant_language(language, SPOKEN_LANGUAGE, LANGUAGE_SPECIES)
|
||||
for(var/language in gaining_holder.blocked_languages)
|
||||
C.add_blocked_language(language, LANGUAGE_SPECIES)
|
||||
|
||||
SEND_SIGNAL(C, COMSIG_SPECIES_GAIN, src, old_species)
|
||||
|
||||
/datum/species/proc/update_species_slowdown(mob/living/carbon/human/H)
|
||||
@@ -1650,15 +1662,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
H.Jitter(5)
|
||||
hunger_rate = 3 * HUNGER_FACTOR
|
||||
hunger_rate *= H.physiology.hunger_mod
|
||||
|
||||
// SANDSTORM EDIT
|
||||
if (H.client)
|
||||
H.adjust_nutrition(-hunger_rate)
|
||||
else
|
||||
// Do not allow SSD players to get too hungry.
|
||||
if (H.nutrition >= NUTRITION_LEVEL_FED)
|
||||
H.adjust_nutrition(-hunger_rate)
|
||||
// End of sandstorm edit
|
||||
H.adjust_nutrition(-hunger_rate)
|
||||
|
||||
|
||||
if (H.nutrition > NUTRITION_LEVEL_FULL)
|
||||
|
||||
@@ -70,7 +70,6 @@
|
||||
|
||||
H.equipOutfit(O, visualsOnly)
|
||||
H.internal = H.get_item_for_held_index(2)
|
||||
H.update_internals_hud_icon(1)
|
||||
return FALSE
|
||||
|
||||
/datum/species/plasmaman/random_name(gender,unique,lastname)
|
||||
|
||||
@@ -34,11 +34,11 @@
|
||||
/mob/living/carbon/human/set_drugginess(amount)
|
||||
..()
|
||||
if(!amount)
|
||||
remove_language(/datum/language/beachbum, TRUE, TRUE, LANGUAGE_HIGH)
|
||||
remove_language(/datum/language/beachbum, source = LANGUAGE_HIGH)
|
||||
|
||||
/mob/living/carbon/human/adjust_drugginess(amount)
|
||||
..()
|
||||
if(druggy)
|
||||
grant_language(/datum/language/beachbum, TRUE, TRUE, LANGUAGE_HIGH)
|
||||
grant_language(/datum/language/beachbum, source = LANGUAGE_HIGH)
|
||||
else
|
||||
remove_language(/datum/language/beachbum, TRUE, TRUE, LANGUAGE_HIGH)
|
||||
remove_language(/datum/language/beachbum, source = LANGUAGE_HIGH)
|
||||
|
||||
@@ -340,12 +340,9 @@
|
||||
if(internal)
|
||||
if(internal.loc != src)
|
||||
internal = null
|
||||
update_internals_hud_icon(0)
|
||||
else if (!internals && !getorganslot(ORGAN_SLOT_BREATHING_TUBE))
|
||||
internal = null
|
||||
update_internals_hud_icon(0)
|
||||
else
|
||||
update_internals_hud_icon(1)
|
||||
. = internal.remove_air_volume(volume_needed)
|
||||
if(!.)
|
||||
return FALSE //to differentiate between no internals and active, but empty internals
|
||||
|
||||
@@ -397,7 +397,7 @@
|
||||
return ..()
|
||||
|
||||
/mob/living/carbon/monkey/hitby(atom/movable/hitting_atom, skipcatch = FALSE, hitpush = TRUE, blocked = FALSE, datum/thrownthing/throwingdatum)
|
||||
if(istype(hitting_atom, /obj/item))
|
||||
if(isitem(hitting_atom))
|
||||
var/obj/item/item_hitby = hitting_atom
|
||||
var/mob/thrown_by = item_hitby.thrownby?.resolve()
|
||||
if(item_hitby.throwforce < src.health && thrown_by && ishuman(thrown_by))
|
||||
|
||||
@@ -107,14 +107,17 @@
|
||||
return FALSE
|
||||
|
||||
/mob/living/hitby(atom/movable/AM, skipcatch, hitpush = TRUE, blocked = FALSE, datum/thrownthing/throwingdatum)
|
||||
var/zone = ran_zone(BODY_ZONE_CHEST, 65)//Hits a random part of the body, geared towards the chest
|
||||
if(!isitem(AM))
|
||||
// Filled with made up numbers for non-items.
|
||||
if(mob_run_block(AM, 30, "\the [AM.name]", ATTACK_TYPE_THROWN, 0, throwingdatum?.thrower, throwingdatum?.thrower?.zone_selected, list()))
|
||||
if(mob_run_block(AM, 30, "\the [AM.name]", ATTACK_TYPE_THROWN, 0, throwingdatum?.thrower, throwingdatum?.thrower?.zone_selected, list()) & BLOCK_SUCCESS)
|
||||
hitpush = FALSE
|
||||
skipcatch = TRUE
|
||||
blocked = TRUE
|
||||
return TRUE
|
||||
else
|
||||
playsound(loc, 'sound/weapons/genhit.ogg', 50, TRUE, -1) //Item sounds are handled in the item itself
|
||||
log_combat(AM, src, "hit ")
|
||||
return ..()
|
||||
|
||||
var/obj/item/thrown_item = AM
|
||||
@@ -126,18 +129,20 @@
|
||||
skipcatch = TRUE
|
||||
blocked = TRUE
|
||||
|
||||
var/zone = ran_zone(BODY_ZONE_CHEST, 65)//Hits a random part of the body, geared towards the chest
|
||||
// zone moved up because things need it early while checking it from the thrower is unnecessary
|
||||
var/nosell_hit = SEND_SIGNAL(thrown_item, COMSIG_MOVABLE_IMPACT_ZONE, src, zone, throwingdatum, blocked, FALSE)
|
||||
if(nosell_hit)
|
||||
skipcatch = TRUE
|
||||
hitpush = FALSE
|
||||
|
||||
if(blocked)
|
||||
return TRUE
|
||||
return BLOCK_SUCCESS
|
||||
|
||||
var/mob/thrown_by = thrown_item.thrownby?.resolve()
|
||||
if(thrown_by)
|
||||
log_combat(thrown_by, src, "threw and hit", thrown_item)
|
||||
else
|
||||
log_combat(thrown_item, src, "hit ")
|
||||
if(nosell_hit)
|
||||
return ..()
|
||||
visible_message(span_danger("[src] is hit by [thrown_item]!"), \
|
||||
|
||||
@@ -501,8 +501,3 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
|
||||
// End of Skyrat edits
|
||||
/mob/living/whisper(message, bubble_type, list/spans = list(), sanitize = TRUE, datum/language/language = null, ignore_spam = FALSE, forced = null)
|
||||
say("#[message]", bubble_type, spans, sanitize, language, ignore_spam, forced)
|
||||
|
||||
/mob/living/get_language_holder(get_minds = TRUE)
|
||||
if(get_minds && mind)
|
||||
return mind.get_language_holder()
|
||||
. = ..()
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
var/highlighted = FALSE
|
||||
var/mob/camera/aiEye/pic_in_pic/aiEye
|
||||
|
||||
/atom/movable/screen/movable/pic_in_pic/ai/Initialize(mapload)
|
||||
/atom/movable/screen/movable/pic_in_pic/ai/Initialize(mapload, datum/hud/hud_owner)
|
||||
. = ..()
|
||||
aiEye = new /mob/camera/aiEye/pic_in_pic()
|
||||
aiEye.screen = src
|
||||
|
||||
@@ -138,13 +138,11 @@
|
||||
var/datum/action/innate/pai/light/AL = new /datum/action/innate/pai/light
|
||||
var/datum/action/innate/custom_holoform/custom_holoform = new /datum/action/innate/custom_holoform
|
||||
|
||||
var/datum/action/language_menu/ALM = new
|
||||
SW.Grant(src)
|
||||
AS.Grant(src)
|
||||
AC.Grant(src)
|
||||
AR.Grant(src)
|
||||
AL.Grant(src)
|
||||
ALM.Grant(src)
|
||||
custom_holoform.Grant(src)
|
||||
emitter_next_use = world.time + 10 SECONDS
|
||||
|
||||
|
||||
@@ -270,7 +270,7 @@
|
||||
encryptmod = TRUE
|
||||
if("translator")
|
||||
if(href_list["toggle"]) //This is permanent.
|
||||
grant_all_languages(TRUE, TRUE, TRUE, LANGUAGE_SOFTWARE)
|
||||
grant_all_languages(source = LANGUAGE_SOFTWARE)
|
||||
if("doorjack")
|
||||
if(href_list["jack"])
|
||||
if(cable && cable.machine)
|
||||
|
||||
@@ -24,9 +24,9 @@
|
||||
robot_modules_background.layer = HUD_LAYER //Objects that appear on screen are on layer ABOVE_HUD_LAYER, UI should be just below it.
|
||||
robot_modules_background.plane = HUD_PLANE
|
||||
|
||||
inv1 = new /atom/movable/screen/robot/module1()
|
||||
inv2 = new /atom/movable/screen/robot/module2()
|
||||
inv3 = new /atom/movable/screen/robot/module3()
|
||||
inv1 = new /atom/movable/screen/robot/module1(null, src)
|
||||
inv2 = new /atom/movable/screen/robot/module2(null, src)
|
||||
inv3 = new /atom/movable/screen/robot/module3(null, src)
|
||||
|
||||
ident = rand(1, 999)
|
||||
|
||||
|
||||
@@ -139,7 +139,7 @@
|
||||
|
||||
|
||||
/mob/living/simple_animal/bot/honkbot/hitby(atom/movable/hitting_atom, skipcatch = FALSE, hitpush = TRUE, blocked = FALSE, datum/thrownthing/throwingdatum)
|
||||
if(istype(hitting_atom, /obj/item))
|
||||
if(isitem(hitting_atom))
|
||||
playsound(src, honksound, 50, TRUE, -1)
|
||||
var/obj/item/item_hitby = hitting_atom
|
||||
var/mob/thrown_by = item_hitby.thrownby?.resolve()
|
||||
|
||||
@@ -352,7 +352,7 @@
|
||||
|
||||
|
||||
/mob/living/simple_animal/bot/secbot/hitby(atom/movable/hitting_atom, skipcatch = FALSE, hitpush = TRUE, blocked = FALSE, datum/thrownthing/throwingdatum)
|
||||
if(istype(hitting_atom, /obj/item))
|
||||
if(isitem(hitting_atom))
|
||||
var/obj/item/item_hitby = hitting_atom
|
||||
var/mob/thrown_by = item_hitby.thrownby?.resolve()
|
||||
if(item_hitby.throwforce < src.health && thrown_by && ishuman(thrown_by))
|
||||
|
||||
@@ -44,13 +44,13 @@
|
||||
visible_message("<span class='danger'>[P] has a reduced effect on [src]!</span>")
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/hitby(atom/movable/AM, skipcatch = FALSE, hitpush = TRUE, blocked = FALSE, datum/thrownthing/throwingdatum)//No floor tiling them to death, wiseguy
|
||||
if(istype(AM, /obj/item))
|
||||
var/obj/item/T = AM
|
||||
/mob/living/simple_animal/hostile/asteroid/hitby(atom/movable/hitting_atom, skipcatch = FALSE, hitpush = TRUE, blocked = FALSE, datum/thrownthing/throwingdatum)//No floor tiling them to death, wiseguy
|
||||
if(isitem(hitting_atom))
|
||||
var/obj/item/item_hitby = hitting_atom
|
||||
if(!stat)
|
||||
Aggro()
|
||||
if(T.throwforce <= 20)
|
||||
visible_message(span_notice("The [T.name] [throw_message] [src.name]!"))
|
||||
if(item_hitby.throwforce <= 20)
|
||||
visible_message(span_notice("\The [item_hitby] [throw_message] [src]!"))
|
||||
return
|
||||
..()
|
||||
|
||||
|
||||
@@ -180,11 +180,11 @@
|
||||
if(M.a_intent == INTENT_HARM)
|
||||
Bruise()
|
||||
|
||||
/mob/living/simple_animal/hostile/mushroom/hitby(atom/movable/AM, skipcatch = FALSE, hitpush = TRUE, blocked = FALSE, datum/thrownthing/throwingdatum)
|
||||
/mob/living/simple_animal/hostile/mushroom/hitby(atom/movable/hitting_atom, skipcatch = FALSE, hitpush = TRUE, blocked = FALSE, datum/thrownthing/throwingdatum)
|
||||
..()
|
||||
if(istype(AM, /obj/item))
|
||||
var/obj/item/T = AM
|
||||
if(T.throwforce)
|
||||
if(isitem(hitting_atom))
|
||||
var/obj/item/item_hitby = hitting_atom
|
||||
if(item_hitby.throwforce)
|
||||
Bruise()
|
||||
|
||||
/mob/living/simple_animal/hostile/mushroom/bullet_act(obj/item/projectile/P)
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
dispose_rendering()
|
||||
qdel(hud_used)
|
||||
QDEL_LIST(client_colours)
|
||||
ghostize(can_reenter_corpse = FALSE) //False, since we're deleting it currently
|
||||
ghostize()
|
||||
if(mind?.current == src) //Let's just be safe yeah? This will occasionally be cleared, but not always. Can't do it with ghostize without changing behavior
|
||||
mind.set_current(null)
|
||||
// if(mock_client)
|
||||
@@ -1051,12 +1051,11 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0)
|
||||
//Do not do parent's actions, as we *usually* do this differently.
|
||||
fully_replace_character_name(real_name, new_name)
|
||||
|
||||
/mob/verb/open_language_menu()
|
||||
/mob/verb/open_language_menu_verb()
|
||||
set name = "Open Language Menu"
|
||||
set category = "IC"
|
||||
|
||||
var/datum/language_holder/H = get_language_holder()
|
||||
H.open_language_menu(usr)
|
||||
get_language_holder().open_language_menu(usr)
|
||||
|
||||
///Adjust the nutrition of a mob
|
||||
/mob/proc/adjust_nutrition(change, max = INFINITY) //Honestly FUCK the oldcoders for putting nutrition on /mob someone else can move it up because holy hell I'd have to fix SO many typechecks
|
||||
|
||||
@@ -308,7 +308,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp
|
||||
a_intent = possible_a_intents[current_intent]
|
||||
|
||||
if(hud_used && hud_used.action_intent)
|
||||
hud_used.action_intent.icon_state = "[a_intent]"
|
||||
hud_used.action_intent.update_icon()
|
||||
|
||||
|
||||
/proc/is_blind(A)
|
||||
|
||||
@@ -438,7 +438,6 @@
|
||||
mind.transfer_to(new_xeno)
|
||||
else
|
||||
transfer_ckey(new_xeno)
|
||||
update_atom_languages()
|
||||
|
||||
to_chat(new_xeno, "<B>You are now an alien.</B>")
|
||||
. = new_xeno
|
||||
|
||||
Reference in New Issue
Block a user