diff --git a/code/datums/balloon_alerts/balloon_alerts.dm b/code/datums/balloon_alerts/balloon_alerts.dm index 8ef770fa9d7f..59f826fbe7d2 100644 --- a/code/datums/balloon_alerts/balloon_alerts.dm +++ b/code/datums/balloon_alerts/balloon_alerts.dm @@ -37,20 +37,15 @@ if (isnull(viewer_client)) return - var/bound_width = world.icon_size - if (ismovable(src)) - var/atom/movable/movable_source = src - bound_width = movable_source.bound_width - var/image/balloon_alert = image(loc = get_atom_on_turf(src), layer = ABOVE_MOB_LAYER) balloon_alert.plane = RUNECHAT_PLANE balloon_alert.alpha = 0 balloon_alert.color = text_color balloon_alert.appearance_flags = NO_CLIENT_COLOR|KEEP_APART|RESET_COLOR|RESET_TRANSFORM|RESET_ALPHA balloon_alert.maptext = MAPTEXT("[text]") - balloon_alert.maptext_x = (BALLOON_TEXT_WIDTH - bound_width) * -0.5 balloon_alert.maptext_height = WXH_TO_HEIGHT(viewer_client?.MeasureText(text, null, BALLOON_TEXT_WIDTH)) balloon_alert.maptext_width = BALLOON_TEXT_WIDTH + balloon_alert.maptext_x = get_maxptext_x_offset(balloon_alert) if(appearance_flags & PIXEL_SCALE) balloon_alert.appearance_flags |= PIXEL_SCALE //"[text]" diff --git a/code/datums/langchat/langchat.dm b/code/datums/langchat/langchat.dm index 83b9be0ac053..b82b03b51774 100644 --- a/code/datums/langchat/langchat.dm +++ b/code/datums/langchat/langchat.dm @@ -47,12 +47,12 @@ M.client.images -= langchat_image langchat_listeners = null -/atom/proc/langchat_set_x_offset() - langchat_image.maptext_x = world.icon_size / 2 - langchat_image.maptext_width / 2 -/atom/movable/langchat_set_x_offset() - langchat_image.maptext_x = bound_width / 2 - langchat_image.maptext_width / 2 -/mob/langchat_set_x_offset() - langchat_image.maptext_x = icon_size / 2 - langchat_image.maptext_width / 2 +/atom/proc/get_maxptext_x_offset(image/maptext_image) + return (world.icon_size / 2) - (maptext_image.maptext_width / 2) +/atom/movable/get_maxptext_x_offset(image/maptext_image) + return (bound_width / 2) - (maptext_image.maptext_width / 2) +/mob/get_maxptext_x_offset(image/maptext_image) + return (icon_size / 2) - (maptext_image.maptext_width / 2) ///Creates the image if one does not exist, resets settings that are modified by speech procs. /atom/proc/langchat_make_image(override_color = null) @@ -64,7 +64,7 @@ langchat_image.maptext_y = langchat_height langchat_image.maptext_height = 64 langchat_image.maptext_y -= LANGCHAT_MESSAGE_POP_Y_SINK - langchat_set_x_offset() + langchat_image.maptext_x = get_maxptext_x_offset(langchat_image) langchat_image.pixel_y = 0 langchat_image.alpha = 0 @@ -109,7 +109,7 @@ langchat_image.maptext = text_to_display langchat_image.maptext_width = LANGCHAT_WIDTH - langchat_set_x_offset() + langchat_image.maptext_x = get_maxptext_x_offset(langchat_image) langchat_listeners = listeners for(var/mob/M in langchat_listeners) @@ -156,7 +156,7 @@ langchat_image.maptext = text_to_display langchat_image.maptext_width = LANGCHAT_WIDTH * 2 - langchat_set_x_offset() + langchat_image.maptext_x = get_maxptext_x_offset(langchat_image) langchat_listeners = listeners for(var/mob/M in langchat_listeners) diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_powers.dm index ef084c9b5b59..bd01376c9f9d 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_powers.dm @@ -17,6 +17,8 @@ if(xeno.crest_defense) to_chat(xeno, SPAN_XENOWARNING("We lower our crest.")) + xeno.balloon_alert(xeno, "crest lowered") + xeno.ability_speed_modifier += speed_debuff xeno.armor_deflection_buff += armor_buff xeno.mob_size = MOB_SIZE_BIG //knockback immune @@ -24,6 +26,8 @@ xeno.update_icons() else to_chat(xeno, SPAN_XENOWARNING("We raise our crest.")) + xeno.balloon_alert(xeno, "crest raised") + xeno.ability_speed_modifier -= speed_debuff xeno.armor_deflection_buff -= armor_buff xeno.mob_size = MOB_SIZE_XENO //no longer knockback immune @@ -313,4 +317,3 @@ /datum/action/xeno_action/onclick/soak/proc/remove_enrage() owner.remove_filter("steelcrest_enraged") -