Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Defender crest balloon alert (plus consistent centring) #5473

Merged
merged 1 commit into from
Jan 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 1 addition & 6 deletions code/datums/balloon_alerts/balloon_alerts.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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("<span class='center langchat'>[text]</span>")
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
//"<span style='text-align: center; -dm-text-outline: 1px #0005'>[text]</span>"
Expand Down
18 changes: 9 additions & 9 deletions code/datums/langchat/langchat.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,17 @@

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
button.icon_state = "template_active"
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
Expand Down Expand Up @@ -313,4 +317,3 @@

/datum/action/xeno_action/onclick/soak/proc/remove_enrage()
owner.remove_filter("steelcrest_enraged")

Loading