mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-23 13:05:44 +01:00
Taj rebalance patch (#22451)
This is based on requests from the taj lore team. A future PR will do more for the sensitive hearing as well, but the PR was growing by quite a lot so it was best to split it up. New: - Tajaran eyes can now extend their vision by 3 tiles while they stand still. - Taj can hear people whispering and talking into radios from 1 tiles further away, if they are listening intently. Bugfixes: - Flashbangs no longer fuck taj up as much unless they got intent listen active. - The message for autakh farseer eyes no longer gives the wrong message if it is disabled by moving. Balance & Change: - Taj have new heights. Before it was 150 to 190 cm - Hharar: 145-180 - M'sai: 155-175 - Zhan: 160-195 - The brute mod have been adjusted on tajara - Zhan: 10% -> 5% - Hharar: 20% -> 10% - M'sai: 30% -> 15% Backend stuff: - Action buttons were changed to accept lists, so multiple actions can be given to a single item.
This commit is contained in:
@@ -136,6 +136,8 @@
|
||||
var/zoomdevicename
|
||||
/// Boolean, `TRUE` if item is actively being used to zoom. For scoped guns and binoculars.
|
||||
var/zoom = FALSE
|
||||
/// The message used when stopping looking through a pair of binoculars/scope
|
||||
var/zoom_out_message
|
||||
|
||||
/// Boolean, if item_state, lefthand, righthand, and worn sprite are all in one dmi
|
||||
var/contained_sprite = FALSE
|
||||
@@ -259,8 +261,16 @@
|
||||
var/mob/m = loc
|
||||
m.drop_from_inventory(src, null)
|
||||
|
||||
if(!QDELETED(action))
|
||||
if(islist(action))
|
||||
var/list/action_list = action
|
||||
for(var/i in 1 to action_list.len)
|
||||
var/datum/action/A = action_list[i]
|
||||
if(!QDELETED(A))
|
||||
QDEL_NULL(A)
|
||||
action_list.Cut()
|
||||
else if(!QDELETED(action))
|
||||
QDEL_NULL(action) // /mob/living/proc/handle_actions() creates it, for ungodly reasons
|
||||
|
||||
action = null
|
||||
|
||||
if(!QDELETED(hidden_uplink))
|
||||
@@ -1005,9 +1015,11 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
|
||||
M.client.pixel_x = 0
|
||||
M.client.pixel_y = 0
|
||||
|
||||
if(!cannotzoom)
|
||||
if(show_zoom_message)
|
||||
if(!cannotzoom && show_zoom_message)
|
||||
if(!zoom_out_message)
|
||||
M.visible_message("[zoomdevicename ? "<b>[M]</b> looks up from \the [src.name]" : "<b>[M]</b> lowers \the [src.name]"].")
|
||||
else
|
||||
M.visible_message("[zoomdevicename ? "<b>[M]</b>[zoom_out_message] \the [src.name]." : "<b>[M]</b>[zoom_out_message]"]")
|
||||
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
|
||||
@@ -36,13 +36,21 @@
|
||||
if(M.flash_act(ignore_inherent = TRUE))
|
||||
M.Weaken(10)
|
||||
|
||||
// 1 - 9x/70 gives us 100% at zero, 87% at 1 turf, all the way to 10% at 7
|
||||
var/bang_intensity = 1 - (9 * get_dist(T, M) / 70)
|
||||
M.noise_act(intensity = EAR_PROTECTION_MODERATE, damage_pwr = 10 * bang_intensity, deafen_pwr = 15 * (1 - bang_intensity))
|
||||
var/distance_to_grenade = get_dist(T, M)
|
||||
|
||||
if(M.get_hearing_sensitivity()) // we only stun if they've got sensitive ears
|
||||
// 1 - 9x/70 gives us 100% at zero, 87% at 1 turf, all the way to 10% at 7
|
||||
var/bang_intensity = 1 - (9 * distance_to_grenade / 70)
|
||||
|
||||
var/ear_damage = 10 * bang_intensity
|
||||
var/deafen_damage = 15 * (1 - bang_intensity)
|
||||
|
||||
|
||||
// we only stun if they've got sensitive ears and got it active as well as if it is close enough.
|
||||
if(M.get_hearing_sensitivity() && astype(M, /mob/living/carbon/human)?.is_listening() && distance_to_grenade < 5)
|
||||
// checking for protection is handled by noise_act
|
||||
M.noise_act(intensity = EAR_PROTECTION_MAJOR, stun_pwr = 2)
|
||||
M.noise_act(intensity = EAR_PROTECTION_MAJOR, stun_pwr = 2, damage_pwr = ear_damage, deafen_pwr = deafen_damage)
|
||||
else
|
||||
M.noise_act(intensity = EAR_PROTECTION_MODERATE, damage_pwr = ear_damage, deafen_pwr = deafen_damage)
|
||||
|
||||
M.disable_cloaking_device()
|
||||
M.update_icon()
|
||||
|
||||
Reference in New Issue
Block a user