From ebe72ac2b3ebfdc8e25685f626627bc0285a0423 Mon Sep 17 00:00:00 2001 From: Phill101 <28949487+Phill101@users.noreply.github.com> Date: Wed, 26 Jul 2023 02:28:35 +0500 Subject: [PATCH] introduce Bleed alert (#18295) Co-authored-by: Phill101 --- .../Body/Systems/BloodstreamSystem.cs | 14 +++++- Content.Shared/Alert/AlertType.cs | 1 + Resources/Locale/en-US/alerts/alerts.ftl | 3 ++ Resources/Prototypes/Alerts/alerts.yml | 31 ++++++++++++ .../Interface/Alerts/bleed.rsi/bleed0.png | Bin 0 -> 4324 bytes .../Interface/Alerts/bleed.rsi/bleed1.png | Bin 0 -> 4328 bytes .../Interface/Alerts/bleed.rsi/bleed10.png | Bin 0 -> 4336 bytes .../Interface/Alerts/bleed.rsi/bleed2.png | Bin 0 -> 4337 bytes .../Interface/Alerts/bleed.rsi/bleed3.png | Bin 0 -> 4349 bytes .../Interface/Alerts/bleed.rsi/bleed4.png | Bin 0 -> 4354 bytes .../Interface/Alerts/bleed.rsi/bleed5.png | Bin 0 -> 4343 bytes .../Interface/Alerts/bleed.rsi/bleed6.png | Bin 0 -> 4348 bytes .../Interface/Alerts/bleed.rsi/bleed7.png | Bin 0 -> 4348 bytes .../Interface/Alerts/bleed.rsi/bleed8.png | Bin 0 -> 4341 bytes .../Interface/Alerts/bleed.rsi/bleed9.png | Bin 0 -> 4351 bytes .../Interface/Alerts/bleed.rsi/meta.json | 44 ++++++++++++++++++ 16 files changed, 91 insertions(+), 2 deletions(-) create mode 100644 Resources/Textures/Interface/Alerts/bleed.rsi/bleed0.png create mode 100644 Resources/Textures/Interface/Alerts/bleed.rsi/bleed1.png create mode 100644 Resources/Textures/Interface/Alerts/bleed.rsi/bleed10.png create mode 100644 Resources/Textures/Interface/Alerts/bleed.rsi/bleed2.png create mode 100644 Resources/Textures/Interface/Alerts/bleed.rsi/bleed3.png create mode 100644 Resources/Textures/Interface/Alerts/bleed.rsi/bleed4.png create mode 100644 Resources/Textures/Interface/Alerts/bleed.rsi/bleed5.png create mode 100644 Resources/Textures/Interface/Alerts/bleed.rsi/bleed6.png create mode 100644 Resources/Textures/Interface/Alerts/bleed.rsi/bleed7.png create mode 100644 Resources/Textures/Interface/Alerts/bleed.rsi/bleed8.png create mode 100644 Resources/Textures/Interface/Alerts/bleed.rsi/bleed9.png create mode 100644 Resources/Textures/Interface/Alerts/bleed.rsi/meta.json diff --git a/Content.Server/Body/Systems/BloodstreamSystem.cs b/Content.Server/Body/Systems/BloodstreamSystem.cs index 605a46ad7f..59e50c9161 100644 --- a/Content.Server/Body/Systems/BloodstreamSystem.cs +++ b/Content.Server/Body/Systems/BloodstreamSystem.cs @@ -5,6 +5,7 @@ using Content.Server.Fluids.EntitySystems; using Content.Server.Forensics; using Content.Server.HealthExaminable; using Content.Server.Popups; +using Content.Shared.Alert; using Content.Shared.Chemistry.Components; using Content.Shared.Chemistry.Reaction; using Content.Shared.Damage; @@ -37,6 +38,7 @@ public sealed class BloodstreamSystem : EntitySystem [Dependency] private readonly SharedDrunkSystem _drunkSystem = default!; [Dependency] private readonly SolutionContainerSystem _solutionContainerSystem = default!; [Dependency] private readonly SharedStutteringSystem _stutteringSystem = default!; + [Dependency] private readonly AlertsSystem _alertsSystem = default!; public override void Initialize() { @@ -125,7 +127,7 @@ public sealed class BloodstreamSystem : EntitySystem // storing the drunk and stutter time so we can remove it independently from other effects additions bloodstream.StatusTime += bloodstream.UpdateInterval * 2; - } + } else if (!_mobStateSystem.IsDead(uid)) { // If they're healthy, we'll try and heal some bloodloss instead. @@ -344,6 +346,14 @@ public sealed class BloodstreamSystem : EntitySystem component.BleedAmount += amount; component.BleedAmount = Math.Clamp(component.BleedAmount, 0, component.MaxBleedAmount); + if (component.BleedAmount == 0) + _alertsSystem.ClearAlert(uid, AlertType.Bleed); + else + { + var severity = (short) Math.Clamp(Math.Round(component.BleedAmount, MidpointRounding.ToZero), 0, 10); + _alertsSystem.ShowAlert(uid, AlertType.Bleed, severity); + } + return true; } @@ -377,7 +387,7 @@ public sealed class BloodstreamSystem : EntitySystem } /// - /// Change what someone's blood is made of, on the fly. + /// Change what someone's blood is made of, on the fly. /// public void ChangeBloodReagent(EntityUid uid, string reagent, BloodstreamComponent? component = null) { diff --git a/Content.Shared/Alert/AlertType.cs b/Content.Shared/Alert/AlertType.cs index 4d80a8acfd..75447e90d7 100644 --- a/Content.Shared/Alert/AlertType.cs +++ b/Content.Shared/Alert/AlertType.cs @@ -38,6 +38,7 @@ namespace Content.Shared.Alert VowBroken, Essence, Corporeal, + Bleed, Debug1, Debug2, Debug3, diff --git a/Resources/Locale/en-US/alerts/alerts.ftl b/Resources/Locale/en-US/alerts/alerts.ftl index 4b5980696d..1469543c33 100644 --- a/Resources/Locale/en-US/alerts/alerts.ftl +++ b/Resources/Locale/en-US/alerts/alerts.ftl @@ -83,3 +83,6 @@ alerts-pulled-desc = You're being pulled. Move to break free. alerts-pulling-name = Pulling alerts-pulling-desc = You're pulling something. Click the alert to stop. + +alerts-bleed-name = [color=red]Bleed[/color] +alerts-bleed-desc = You're [color=red]bleeding[/color]. diff --git a/Resources/Prototypes/Alerts/alerts.yml b/Resources/Prototypes/Alerts/alerts.yml index 090256de7a..6e207e39c2 100644 --- a/Resources/Prototypes/Alerts/alerts.yml +++ b/Resources/Prototypes/Alerts/alerts.yml @@ -17,6 +17,7 @@ - alertType: Stun - category: Breathing # Vox gang not calling this oxygen - category: Pressure + - alertType: Bleed - category: Temperature - category: Hunger - category: Thirst @@ -284,6 +285,36 @@ name: alerts-pulling-name description: alerts-pulling-desc +- type: alert + id: Bleed + icons: + - sprite: /Textures/Interface/Alerts/bleed.rsi + state: bleed0 + - sprite: /Textures/Interface/Alerts/bleed.rsi + state: bleed1 + - sprite: /Textures/Interface/Alerts/bleed.rsi + state: bleed2 + - sprite: /Textures/Interface/Alerts/bleed.rsi + state: bleed3 + - sprite: /Textures/Interface/Alerts/bleed.rsi + state: bleed4 + - sprite: /Textures/Interface/Alerts/bleed.rsi + state: bleed5 + - sprite: /Textures/Interface/Alerts/bleed.rsi + state: bleed6 + - sprite: /Textures/Interface/Alerts/bleed.rsi + state: bleed7 + - sprite: /Textures/Interface/Alerts/bleed.rsi + state: bleed8 + - sprite: /Textures/Interface/Alerts/bleed.rsi + state: bleed9 + - sprite: /Textures/Interface/Alerts/bleed.rsi + state: bleed10 + name: alerts-bleed-name + description: alerts-bleed-desc + minSeverity: 0 + maxSeverity: 10 + - type: alert id: Debug1 icons: diff --git a/Resources/Textures/Interface/Alerts/bleed.rsi/bleed0.png b/Resources/Textures/Interface/Alerts/bleed.rsi/bleed0.png new file mode 100644 index 0000000000000000000000000000000000000000..636f3dfaad69b65a5e9f839c7430975809d5e2f6 GIT binary patch literal 4324 zcmeHKd2kcw6&H4~!B;{|aT)_&FW_9P_SCgVCblJ8YAleCV7oQPr#;3B-YfP!~cu3MIG<7@MO>+B8iQrlcgEbXtc3O-m?{Gz|S#zT_q|8P7ET zS(?@EzVE%?_ulUvqwh)2qLTEK`%-i|UAoI@FNb$TyQU<;U!|qxI=r1}sjODZK?Dhf zWl{1Ah}s+y5FsjwI$iWaz*Cmdi%hvaFnvKn!b7vq?pt~=`^v4N9q#Ub%*+2_$qQ5b zoi|fwCqDD7xmDP!(;4T}#TOGCC7s(md5b;H=a&CHG=-mc_uOu^%}Q!(Tz~C1 z&d%KVRXbd_E^jQe_HjGO)Ato)8@ALs!S8Q>zk2I?pJqLm{tM4SqHgMW%d`)at|P|{ z?=L9*WrLRyXXLCt3;KfvhP>as^!9~ghG%PbZ0VbEOc zMIKjC(QrgCj%}+p*_^$P%sjokVi)@DwKK}f&Uv<9*@-^2Yn@}i=R(S>?3UWka~a85 zUORL0`8AK{tbZ&y%eQn^?c{=gCicC1+V!^MyI(9XubcLlo`!`VTx|XG@x&*Jf7B&b zrFjf*IPd?+t3QDzEt_`o?!tRdukI_g{j}!XDP`rw-m~YsA9(9p{>_1pD^l_jSE3CY zF8$c?>qXW>(xq)TpX}W`|G~b2zRaYhKe@H(^1(OcZI5Q8T4_K3j?xFb2maU-PCj&S z$32TPOQt{e(#qU{gQuF;ANpR`f%j~mr9M76VCik#I>)(Un(JkxusA*YXD17vS<*2* zQ@XIR_14;1?dxi(*Ni96ksBYXbUu~y#a(TY`Wd_PF21~C=ErRZu5Kie{i)35Bez%i z-~Vmq$vbJaQlS0tq&M3(FO%yx&3Ums`{>bN{k7Sl*Amn6FKy1XZ0>x;Ge6-I-*tC0 zqNZNockKA#8x5c9_^v&>vitk*z85dMvGr_sE8F^?o27eB_d%Ve=HoH!v(((fT{}Il^nBW ziOcO7vCt^+Nr6zz3X(lWQ!Y$BB#?Gmu6RV~iBQ%)BUI6v+z~05}V0pyHrhK}7{YPSBtrxL$%d z0znul+DKzG#h5UL1ZK<&XcJ~;yquRd38YC7;~*A?C0LcfAMce0#X~5sNRcAP3z*r& z7%|3dHekSL02pmCh!n#aEM}882E}u1u^bKnm`*7Gd;%T{`eF+j;cS7&WkV@FF)H!+ zfhs}+*aK3Kmm|vPQl%6SDpa8HNg6E#P0}Va&5$&0inCuLgcVqe8Y)TXX(nc_C5DCJ zKx%ENx^d z>S2Oni8y_km&E3;)7IJtu?{BPDJgLO=9p-(rz(Vo!MDLzzZ7dG1c|i;3%J1$6woB_ zF+U;J;1X8{f<6JxkD-DcmP=nz41|H?c>nC+M1>Yg`PBOL?NYCg>U$1LIPj zsILDTT`8l7DIo~|0Y%_Z>4ji@KRjk7c^@sY>+WdZ7mx3L8cL>yoHdG0m(izPlb(Gz zBO3~nRhQe5JdpgI%(+?29qV~0>TuZ$Dyw_1E-A=Zjil{4lYGTx?b!X<+_u%pe@!3> zrsn6DJ2uVVd)25*rgtJG1#O$T!}?P>```S*UAk8Gt%7~gKMW{Sk6JzT%egbDe@pXk zef@B02hr2>NYC~g|6cX4g!ZiKwIB96t3nw&5qA5D1?xUsv4+d4>n=Eyc{C4n?fq5y jolo!gf3%^!aIGcd9dBOl%4I$mbWG=REVAz_T(RcA{gV;fUDfp)DLdwnkp)lGBybL z1CmSh2#^x?3y=^JT^dd3ve$7XsT-U2*xkBq!;~wbj6=2qzTe;7n$*&EaKVGn?ZmEo z;nUagJX>Di(jTAA-$;s|Uo2JnKZ+CjeqjBmcUk7PsjFHqc5Yey=K4<$nY-);^o>pZ zvtRoA>e?qBKFppu_wMf6;-i}#30d>e_LQ5yo%QO$Z$3EN`IjeePme+NGYif(FTQm6 zJ=dcxEmXrxm>cx%^d&1=EpS*XF2(P)6+;^ws$JZ0+=2gGz8$dyZQ#Ofa zv%_XK4<`iD*!#jxQ&D$b#jJ+0nTn!qb01G%7p$9gX#TbKnv9$4j()WrhmItWU%vaV7d%%k zrgnXsSS5Pbzcb~Nb#2c}bvv{7txrFG+*j9^=|2&bn0u=&i*9@4pkwjWJMMma7*Z1Y z55IrvoqP2UHGIe02hy)!Pf0^d@9jB%vYBaqbierR({tZn8R*Wa{?P?cc#R?`uu6L| z!%1E(%S%o{8}j-=pZ6x^cE1m8J%8iqvP1h3TFF}vR^)QUw-0inF9 zq=IXz<7ggUk{fRfF#y0TC@d86dVDeyGQkmC20W``6ow)uN}UO=v^yZP6c8X%OKLI1 z8WI}`I5!?L26z`!W+@ng0B!iEr^ zoUK9(Vps&33y6M2lzfni$vUM5#RS7Z4-LoX_1o8}auy1U!*+cn%djf)|*|U{!qFl7%+A zW5h$Hz%6?H5idaYI7>xzjgmDkHdPZzXKWzAeFS%$^>FSHV_;>sGZu+!P{XrXOt88> z!%LjVGm%FM7f6c0XvDzlbqGn*IS9>iI6{N6plFiANS+-7W%J1j>*E9!3V>@xfJ5n> zPMwg$BN#y&5YmZL2+NZOge46uPmm<8r*p83#ALNR+|);fQFkr^aIC-4`AzUt&<#9|$Q~!Z3 zOD-kI284V!;1O^I3N*qMv~Xyvo*o}fuvSp_0Z@iu0C$8k3Py*LMb(KhoUIZ4FFuSB zgE1op_zlXy=mL`v9T|l~e5pg{dpw5r;d@*GKu<0*A$}+6nxtz&3{1#)vbrYenh*mM zGM=oi{~KNLqaRa(5BviPf={J?UcLDUd}hTsmlawx->ScTrw;ubNaFlOt7MHPxko*x z>{^tZ4ur9a&2Ejo5j#6|-n^}7^%)>)vsv;hD!aLwv}p5eavJtnN~sxG-ZHy5>Z_L0 zSgbAmej+$xbMpq0r#kLVZ-3n|C)&IyY2SGh11&%jL(`7z=#|UNt-E)m&B@Y49q-Mo z&U|&&=5^YxUANiXc{AajzqRh)74y??9_)A~u47NaW~n;wt>k^}C24z3boFn{T=C$u osjn4OzMf)UyYSt(!ZRD9G{*3vUG-3$0HV{_tRIH^>1JMgRZ+ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Interface/Alerts/bleed.rsi/bleed10.png b/Resources/Textures/Interface/Alerts/bleed.rsi/bleed10.png new file mode 100644 index 0000000000000000000000000000000000000000..d802f2a9ebb8d8595fb1e42bcce1e7c2478340ae GIT binary patch literal 4336 zcmeHKc~BH*79VAS$YE5BYa)iW*+{a|)7{g}932Kk24&R25io#@$JgE83|-7jkJAk^ z14iAbu{>5+l30mlqDF<7WUYwB=1?OFD8^9P?8bEqk8<7GcqEp_VkI$dxnB==ZK}4Y z+Wf~%_4SV5_ulV&?^X9kXThArxToTDI$feY-&TmOn07oCgU(7#O&7Yf)fAVig&>Ie z1F}o_@imrFZUn|}V# zhprztY%~^ZIsN&ysJo$rOC1MKw}#opzxlA93oko6_THU>=dZ?F%E~%+>|3)-ryI3S z%FT7!b94I=LTT)Jal19YWoB~QvZ4d{6B{NiT-fe>^V_%atp_&cec3Gz-+3OFw zN)ntI=kn98@%j^Z%+m4A<7Q26Thlt<`bJs%DP`s5mNOTQKKsSJtnTYKisGh6t;APs zx%qP5v4YGa(#>7n8(ZE_f3EdOhrc=*h&|G{ zcfx|CITIJ{TRH7|&|d7k)P} zN$T8I`~8Ngt2dP!J~lSD)7ySsoWC{Y;p3}TPjy>Pu;V6%10mhD(^k*|2Qfk>t@|FOWp2zXZq+n?k-0d zQ{%f1eR90%{)z`W@!)$0rd+)`ZZf&>{?0Q;Yq{DVyXU`mBIT2kKuhwHXWCKWRZFPA zN*(h#LH6o_DDzMs^7>Kb>2#UdAwLi*p^EX)E%~hYouemkOcJelNrr=R_;X=}lwT8o zMKuM*LQSP$5%KJ-xXciT0K8BISjg+~DO|{kM{qfGuZc+A7`!Ed?@N$)E#c`y^`r`BY9gco@pVG?$;)4tUKS}E;((5G$ zdnjsNH3I1k=qEjtV$`Q(Aynk5fB^HVp-)X63?T~r{{E_fCz6gRkkA9Y$W%eA(nFS< zV|O_FJv0j3lGh*cLSzrIR3+B{SwmveG?8=$2ZG%Dafev<wSfEpA6*GmY8 zG4nj_Vg$l$GMWjN0Vcv?HqZp5MHVnT?_z*32x37%LRASogQL=*Lu-ftxJ{yZ~*d`hD(*LL;2ZaoVl8K~D`xoF1UM zkOS%g$tTJ|Wk6Ldd0~+XG(Ksgg<@#NoWUAQMvKuhVDthED5w@SRGQK=Y(%4N42RM| z)B>$i5kN$avf*+A5U6sXSe89jTnh@*Jp0uS)KDT&feok-fl>yBqfDG3qu4-mjEQ5I z8I*ye2HDG^BSo4C!y;|L0ih=a1yn;Z z5+}myQ3(~m=Z0v0^cHNNT>6P(u$YaaU}QzY!a|y0Aw>~p+6)MjF$0QbgTS*84nO^m*5Gs*wrBQs(! zXv84D9vK>4XcChBqp+7RZRq@rzutZL8CO8iBZ~}+-x0b-=o%IS!!jPJt`WM1#lWzP zN2=@pMpxXx#}xFTH=rQ;RPtpfm!i+C7=GRyo9>bJ-*dd-6(kws&o5JSy0NX=G3vD$ zW2YcttZH}U#a@qnGU*w-w&ZLR6796xa*9h^Ztr-0>>6yGZTIP=1-$$A`C~hq-c0*4 zX*sB%;@%naM*FMt8bQ{%(b1nxPON7CX0qP8^sCRJ-)*=O)m0hW?AfvJ)B5filPX|y z_mwlRq>Ckc?BK0;i?>X8D$ZOUzO(yi`i%uA7u||A>ZW&I{F*M>``T|yzb+&}-RNb8 x3!Tw>r`~m?A!jyQyG;8@w{{frRBKQCR literal 0 HcmV?d00001 diff --git a/Resources/Textures/Interface/Alerts/bleed.rsi/bleed2.png b/Resources/Textures/Interface/Alerts/bleed.rsi/bleed2.png new file mode 100644 index 0000000000000000000000000000000000000000..5b0342937c9ad3671d1d20fe2cb1acc22fb19e85 GIT binary patch literal 4337 zcmeHKd2kcw6<^0=%lP0jP{0PS7l(VLm9#o`M>5!wjFebLwgon+9lYAZ-dfVi+O;Jc zFqwoSm^5HFbb!(cNjc(@G8{<<0t^P5LWj1QPSVoSlDH%tn^J~^IAFkS`t8c+G&3E~ zH2--ud%f?y-+S-(-uFhk!&9^>EqQJ-1VL#or@aK+Vfjo-1Xr=CsSn()HhIgX5-I|R z!UD(pSy*Zeu`nCuIS7j040!UUcfv{MziP?Ni<|i-yG9#B?H!9J1^2bH_dmV+CAPQB_C`^` zLy0<@yyn)Y&94n)-%0;^$y(FTgE^M1y@`S5WuO1x?*m)el(IirKIZFgXp7JEyl~=z z;cxS(Pja4vcJ^kjd@`+V+rgLCl?e9l+e#A`{dv)){D0r$Rh#07qw79=xBuxW2#VXn z+iV_}%{G)0NaVn#R;#mfW#*OjrH7H3+h-LQU-SI*pKl|tA8v7+@Z3!P1-ZB4NjACNGTNh}6Ay zXPe`Ek>xah=fI;Ko$oGR($&+Io>;lNzxD2^>%xKOC#P8Se&!>wi}IcP_)=JP`qW#~ zSEsLuONt>6Qj-;euEbK8qTZR>)An={Uw3D!QCA37VKntP`$n`nFUh-djT_pAHdjj)u` zcl?73??0@20x|8!4rg?CPo1qPez^bYxeeror;iGcUCjEREZmt{`Rp~&dJQ~iv2u4I zNeclr#RxuD9Swv)??I4dMKnawwX6jD*lIp#Med)wh`>B!Mam3r%pJ0^HN3Ma%$7D4 zdFiHFnqZI>xyhC&2>=4DM8VO3KPZw>E27|%;8_-H5Li)>YOP4Q+XLH#Fbm^qT#ccQ zDBqw%a+6_8nBmA0d%++Cc(Wokk`y8}nn)y~j_B1wxLTtn2ttGDG&&s$G*GcIC{a-~ zC@zp8Vi6JCDCvw21eg!wj?o^-i7}L|Me|>L zSQLd(BL>*TWMFiGNvIhfg@b&_L+3j@2J7%0dH~Q9PR7OW1YHw!jf;VCDNl6Q1YP4| zU|h-*-SvN?D|zH&iVcE)KoRh%QT)}&oNDD&CCL#eJ*>Rx4e_Cnw?;qgC}7F!qlq%)jQ@C#^2jf ztiswd9;JdqmAkTk@-v<NjTS=zy?RuW!>rbd%a?7l6Q*jo1Po;^1kia&FE ze&zfh&)U|k?%4AWDmP~a()D@ETYC~;{rd6lrIXtCr)(1{q3dZ!vie@t^}W~e?Av#@ ufYqwp&Y9D($E_bN?3$X@61ZH9bwkh>5%d8HeP#whLM}&<{dj)W%l`pQB@=o8 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Interface/Alerts/bleed.rsi/bleed3.png b/Resources/Textures/Interface/Alerts/bleed.rsi/bleed3.png new file mode 100644 index 0000000000000000000000000000000000000000..0c5f2a1f14b83aa436d471d3c78e2610e0a6e174 GIT binary patch literal 4349 zcmeHKdvFuy5kE)cm;4CCKn*r&}*J zh)I(Gu}K3sAwwt~pv56BEn}d`@ElBR3Y|3VbV^HxhJ@0zwnH-%LckDr((fesHOWlJ zGtGZKjdb_zxBJ`O-|l{+Yjc&XN>k2JLJ*YZuv^Q(9hSdI3E)?3X}J$>ms={Tq%tZ5 z2Z92}ds$d&4zMsA<~axoU-!8Rp6Z2@&VA9IR}eSz0KHFoD}UgNv&(+F&>8y8%qq@S z_tm+L_XlpieYmUYm@#qX(RKc$6~({4s2;c(*OdIIvt)bEl4SpzUF@AtZr{cCR$5*! zDS9ALrLaL!=HmrK{_f8k$f+B%TnYhC{75C1W|l})Mq&~%k=xTY>W)xV+p zyzXyvsgD;v1ML{dUio->$F_sduP+mkTXg|Rcy@Zvw8G3w&-WFZ-&}v?J#q7m-pkj{F8RZ~yodb*<;q2h%}B#5 zgWGK9N=zsD!Tk^0dVjfMXcwE<$rFd3 zT9dJA#@e56&gnn#Uh|HV8@i7F#r!Dc#dx2ww{hPBd+l_`VYsj;E$i)`!q?aRct!?) zedng3?Q^%ZS8Gn^_FPf#TvlO!b^h>^t)co^M;6^UT$?@6di?X9YPdT^d;8u0Jm>xE z2N^wIr&ja6E$_truC?P?p?>#*gIlsro$}Y;n-@5(NX;AU$T4;tc+0ioi94SA&SqFj zxqs};`F9>PJcgLAqn%kdZ%)g^N+0aIe0CGL>8ppuM=#7jQyJ{du6g*%4;ybG zO135d5)0^CEyM~isaP2+3XMUUwKcJRX~B31h90#KGzPtqbQl_Ay{r$YiomOSg3DD7 zr)$(grohAd0ud`f_5@9d=f=pI5SzRcNoRZ@z zj^}D9A~zS+G6n$Q=G3SgtWkr3V$=kqr)jNb9K@O+54w`_j*m))Vq_?ea_h9fy;g@a zAR0o08jX5AiW@kV)6uvaXQEIHO%@439|g+E`zQ~K1^k|f51DYXz~wL_8Wlb!ad|0; z0|sCQct0bA#Idak-p7_pl+33(*N78p!l1$Rnp|9K7*kru21U?|GO8L^5!%R(To@9h z1E{6sP6YrFImm{z1X)TFf)#?`H6wCRuxvTH?F0kGP!eUOBo=_;8iK_2q()bvQIkY2 zsWUFeHGtSLeSzV*=KrNFj}L5$7TwN^z<+Z@6rHJZwjsKTF1>tYm|!?E79>SSQxK^p zmWlWUSkW!Ij`Dk0aDK!Zc0|s9OEYK*!mX!rwWyw=2v9*V-v$CFP>#kyo9T3%fr!#N ziY^MA6rzG`fd}vixB?9t;R;?7E7j78(S+()xekCb6xX9M%Jec>SS(pgJ~2kJHDTZ2 z!xT{%cf97`5RQ1xenemp{+9Z5fm{vQqrfqhy;`6rB zM7$&GVJf&1^HvU}KjFIjr1))FEB literal 0 HcmV?d00001 diff --git a/Resources/Textures/Interface/Alerts/bleed.rsi/bleed4.png b/Resources/Textures/Interface/Alerts/bleed.rsi/bleed4.png new file mode 100644 index 0000000000000000000000000000000000000000..df7e7f93fa786a73d8dabd6ec1eb08f8f8208724 GIT binary patch literal 4354 zcmeHKeNYo;8jnyxL1-1Uo~W$rfgg3VpGn9z0f7XPlW2fcu!kR;-A&jb$%gDg0$5S2 z*R%F&#n!6F)emZ0N9z?m9h7=%fkVgZowl{k;m0|5e^9kvtLGHz>3Q!ae9m>|hMDVs zB(vGw=lwmu_j!Kr^FEVzlYMc1Lfo`Cl}eRhwU~;)9a64wG2mCKt$hG)f2eho%0)~N z@&`nh;Nc;;#?M21NN}lCp)RkzFtH69_qaRx`KYM*GdmA2Ka%owZ|+`O>p#*m*X6%6 z&a=BGerEKWPyMt6`7oKXY|FbIWzOH-Xir~aw`^Z|+dqy=JN|3qP?|;?&k-aPKLwZNq!&#JI zDJq*j_R9K~Q#Zd5`>cEUjIy!W-$u7z?yz1m|LoDqqVkD`o{ghRs+fL z4-TI^b?m#!hbr#C!Tl*WZ$2{>E&Og*XKNi@_phFUgQrtZmIT_SFHbuMDz91q6;^61 zpjpwYW;oHwt3zHtC_R*W;7ukP!~^(%@M!qc9YP$Q4Go)Mkfr#Q+acYD$eE z=8#ZLz?pH7A;7ulB2!);1$Z;U<+ALjQ8X9~s)M9j47gETuh*j(ff57)5QtRclbI0W zlV&Rv5e^eCu>rv^3!)EFI2or{B^zNFj6?nLdHpuq0KHG@Qvv9Kh8RDJt1;B;MTdGw zvbh?N^ab>T9+CrWRJ4ef#Hs+xo2z-BJbNew#}4@Ws{)>IIvk7g9^MO}5||YqHf6rm zW*_iSBybB}f7lC%Jq#%eu0gSe#iope(-|5Fa3A0uhVIWj3SWdyqxOvp?bB6~M!Rc(f)d&-6Y|vu& zFtQ6cfIT4iI58*<4mkubUo10Ps<_<>?@a+C&lx;R8bvK&G&B!)Oyl0XQCBrvVksl~O< z;p~#=l7mcu&vpYHfmWbE!&*Ue`<80naD1?wSJnYYhG05mP%3y`qtq`oB>dePBJ2WN97uoYeWi+2s~O{qjHT% zff0d6tLy(JSKQ!XiuZwkKtXU+YFYS~7I4gpaW2X?sh%j`J*VE^1}x+KmSvJkmDsLa zW8Qi$F$EZ7Wvk5`+a3Fpq_miP2f_ih;L{9rc zE@;RalYBFMF1!xDKj%u?(nHt2UywpjEahop>b5l%*x>p-p%?4co}bx$qp?Suxl+AO z{dCK*;JxizFqE{W) zsP2B+y78?ix7Y7{*mQK^$-T#H_Rl&Foh7s1j@__x$@oq6?l~V{tGG6vY+z%zUBrTA Tx6Q2}Y?al#*mO8&)%yPcO*bDH literal 0 HcmV?d00001 diff --git a/Resources/Textures/Interface/Alerts/bleed.rsi/bleed5.png b/Resources/Textures/Interface/Alerts/bleed.rsi/bleed5.png new file mode 100644 index 0000000000000000000000000000000000000000..cfbeb66cdf7f8c0924fbf6d41390b38c48102549 GIT binary patch literal 4343 zcmeHKeQ*)p<6i7gHK_18{X z+EX(sjy`z%KPS>>U&tzHcTP=9NPBs~PNMqyFDr|#e4B7;UB#u$4}{5Q$mzY(uD^8Z zzk9go&044I`U8#hcXyp``J$+;X~)}o@wFX3vK9Z=XWQz#?x#;J{h&7Xvql7&uvW;; zwOey@2Qz|sv^}}OZ0UX^<=FDF4)uLc&nzkFvH$VQKdGPZcqV_3{jBN@=EbU8sXD<@ zT9q>K%u_9Mo?Q}uzkAuNs)^ZO$A7(iRoR_avnIgI$UJlvb5(tsrg*@i8F`N|8^~_zwc6+YF=!!y7sr1 z*X18B&fG6tZtHLD{&U8Ha9=nnZrSf{Zn(1Vl-TxIVnQb6;XjhXtaIB zzUk)EvsOJ*r9Eiq>LJ%ZnRjmIij+$$_kOjWME4}mAAG&rf>*FZpKci9=0H(|7$vuOFH7ZbhIwW!c;w*m?B=?668( z5yOdI4a)f3Hp1r51=WJ3F#yUM ziyd5J4M+3pMOmuM5CZ|cKxWa9*W;6zkXaqUW#F?S#?@%VM6NNbD{Xc(R}27Dr_pH$ zEI%aFYt>mQG&8`vn9{t00SNeJR#(fipTY59FsKPq8ZqF;Nt&i{LW^s)7_`8o2A|A^ zFrSpBKtwU}fW!p^zbuG8RKaAOVx4SOtDznpjL+-0*@obK(f|vP4?M*BaZ*FzUN1h< zLz46BA;>^LKk6Yl;Gp8AKoaW$9LTQ+J~?e91kVlm`|ARpNIE=+0}t>*Qwgq0j#{$N zYO@b{C=|E_uRr1i$sT1X3$9_ZM#ZLRBI%3_1iBC5jVE>5qR9;ALSs1uyFcxZmfFC=|k(Y`fL0)@q1hiQU7> zF6aPfK=AQmP#RV_1TQF)S%pv1Kob;6nJB_Y>nH;`Y*Y>c66{3NLqrsvsWMO-eT%+&gvc3TNm63@u977fG-&9Px%?B!%w*cijFTbCVt218mDVa42;Qmyt~Hf8WRI! zG9K@){~KMZ;lmX0!GAzOcvQ;ywC*){%!+e9R+xu;uY9+6zVZT;O!ixrN(hn|R;~%Z zUznH-h4Hf0mLK02|MR4|s^SamVkp{f&C7OFc7Ih)C$2`Pr99VpIQ-Yg+mC18kU#HaT*-h;G!a;B5{V&3892UahP zJyFESYrO-qF12y#0~$*Lr(5XMDYQP3V)Y7adpkAV|T-Z=as8UsOD?BCdH$ z*}1jZs^*hzS1`XVx9Ap4q3>5c+H-f+-L;#U&)bPK+TiNd+xLW GQ~w2Dv>?0y literal 0 HcmV?d00001 diff --git a/Resources/Textures/Interface/Alerts/bleed.rsi/bleed6.png b/Resources/Textures/Interface/Alerts/bleed.rsi/bleed6.png new file mode 100644 index 0000000000000000000000000000000000000000..bab041f9b02cd850f4158f35b7a8d6edc5f100cc GIT binary patch literal 4348 zcmeHKe^3*577tKC`BfEadxE;I1#9bOe`ND(o8UnbNLr%-Qh_U0H@lm#N0JS@3kje| zTkpKqU#HcMXSq^axz_RODYi~4I%0v7j_uub{53wXmFBQpOTZmcuIY*3S88au3vPdIaF@#^ zbQlVWf|vJmkX#?)ATGjtRjNo|z*U^y1x+6w%zQFF{_*)|4y|s_`eMkk&)M;1PTuoH zuTS^4-b{qeS<))rUpN|*iBHUA7vXLF9dX1*|cxY0Z>v8i_R z?T_uP3zwGda}3?sUTo@S-o$(679v~rRNCpk4L@7H_u`$0UrqayYZ+EGf5-hxE=_(0qm-27RzWxAdi;yJIwa3pJ(^1DQ$xv+BB!QxYzajFW!W=wY_XR?CMK?m)cYL?Lv~b zmsDm?yY#|~3pPKK^ssOByvk|$w-UN9^f*4VJ@x&XlB!vMKV7rzN`K?!lL;FOe|5lH zmg>@;wJ*NvQJ;bnpPSV=v*3}Q=I-U@-&OQ}B(3Z3I&-PxvA^EVyEk~PG&wh69bB{J z`mb##R+x_R*IVwr)b+=uOS%WUGZI(-c4)_q_On9E)9EQDjh{Uyb<>_B=TD1CN89(! zUYSvp`OI7E77n(5RKNM?FAf~JX#Q8qi_-$euG+ne>}zK^_Cp1QX<6@d7VKKJH8X?n z+uk^|Y2JpHD~S(voxS+>$KCdA3%-A_DO^40?cDzTYqPI49l5z3hYqKZH;xUj_kaFr zM&}Qym3&~s`*EK%?R-wC-m&P74Ot(25UjpEKlEWjYToso3ynKl|KM60|CR5qvmTOD z?jAaR^8IgWzE!aY4z^_t49t84E&gWjnT|%P@w*G{awYoPr^qHN$0EC*}-UxGLV>AabP* zE8I*&HDhGqWqHY_2n7HFoJ>QJfIlcv5i=acrNFZyMqwzbB3GN?a;FQj2qFiOYEq3M zwg_KGzjoj)nScV5Pc|aG#XKiKnVf?8i-UMl<5c( zlolxvF$^mwF(Mz5c_9cXn6yWzmCY~=)}hh(0wJe!3_d80umJc#BXkJG)fgHGpc5@5 z*;WTYMgsa#3&{-z6)oW;p;lx#TOAja7fpm}-Y!!ju6=K?@g0$%a^ToyT; zt}zRR0v{g;MXdnY_i4(!cbu&IVpCS4=}Zg+n2+J!r#+f`R2gVFos?BzYL)ODRx_;l zr&xjESt|O-Ff6Gv7_^AT;AIigpu-WG^m-5u*Wg+l(_sW>m;mJnN-`Z}I0XuTt9gLq zAv9VHBlHN)=y8NJvKV5}a~wkIagx&#TD_iRCqS$edC--#e_~V$6bqnOj5BJC8XD1J z1`R^egbpzpSuH}agpSc`yey_8qfjhE6$)a22Ib@fw2wnWL0@!1A)Ly0Im|Gj#>OQs zKP`KK0hj?k$O>U;e96rRxKf!`_{4QaOoM9-8m&feBn;YdrB$3LfnHQlaZIg=1)&s% z0_gy1X{A#EK-2+QmIcu*2!1oH1O+LUW6Mr3P%JIeR$Ar&C`M=~OivM7H-S?c zJ%y7`U<8Ft&=*+VTmQebmGOa0v7*~~3HYy%iefWW%GJc)Vy}KaI!q809Se$PVkt;; z9TzJXz=|y~RdmqDf&F8oVMpcsk2C|zX+aM$287kqBtm+1Uc{p(JqS(`v|eMt7}^*k zZwy@$ymFWpxqKhs5pV?>G|Cn9*hs0CL|Gft4_9$Y9ROtrrbosp)57RTvZ%6SjAm;> z|BDY(RAIsv1MFfluyui*5FOhJNB9E1f6C8D9ezp|5H#gvQv6QQHAUB?7?_muRCi6$ zH7N!rr99PL|2Mjl#}89n5c~rQgQHSf$7|=oF)PvYbdgo{gYtdj(^K$s*uoVKLFq@QKvJec>J-JL+x=CJ0w%e!u_!qc0fRMXau6WyOywEp9q zTz4mDC_ek}=0wZsjl1s7DX`4_vH?*ge_Wn=*)t%D@3lFuP1}3EFQN07!%e#I<=c1o z8EpMP#dnKKPPi(c-`3S~(7k0gkqK?7yH$Oy^XAt6?A>zQg`Imca$8i*X~RCTk~NM1rVvy3lI?CIfWu{&23#B7a}G<_;7wj?T;I-mVI=*p<>hQn)s4W4!0yl6TZpJ zgSNGQd%dyaMbUk5cS6*sC$H2sW{39dLzn*w***8{$Dx$ER}fvAyYoR`kdFQ0v4ooq zc~z&56m7or&%ai`{4k~0NO%4tr)&E&^XBSi-hZnw*xZAst!~@@=P66KwO-oVZRmOW z`s$Xp$oUZO-N< zZe^@h`@ZSPZoBd-Iklt!r$80w>5MqZGJ~jN8+U7y07bRAA4We_iWtM47H2BB6cwLqaUC1MYkM# zJz;s`lBDN;y&n*cuUMf^|<$BWbDFQyHcoKul>fF_MTyLFZ))(HZ>nizHuXdCZ2bH?}gSXy6QpSvgWgMPObEXW)(ki5w>0h4_mCz zvW#{JZY9GCcAyNny|DKbii|}8FXJc$5@H8V-eW+&Y(0x2JZnH#YAuAtn*~aEQ_u$r zg1I(Fu+%}Z=%R%&837ssxPinV0k_K|(g6b+#--u2EXGkJY$BB!&_at9$r5}3(I_=a z0?Q8Y6)JRL43gnvIXd5%GYA1!2DC(yyflvc{eGoitrUDtoTMlUCsepfg+U8Utn^4s z0P~2cGQ`d$yw22U!U4@9Bd=K$Fiz$2xOhF~4T{@!w*E1VANz<~?6p{WRWCC6;J z#B8w+d&m?xdAB$01<4*`De>G0Sz}_8HQ{td2Lj!PamQE>t z!*n3EjNGXZAS{R3&{;mfNP^EM2rdIE2ZhLvWAXGFl%3ff3uJV6b%f|=F7$~}l7vcVuVbQ>uDgb2ztAVA94<9B32_FlZaSWs& zG8KRg#|g0pRE`qH;{U2qcO!=rGJFL~(vfSfpHm6bk_u3 z<6>Z3#uMH3f1@jARvb9w%r+;eSB^%v&VE9(q*42pZf;&<0?yL~s< z6jk(i-Ra$d?x?t^zrWpFUcOiNTfXK}*4Eybq?F&U{NUyp+s3Pr@AU1e-1Mk|Xq0BW zyYxg``^|{8pW7M;(~J14V($4?D!#iq_mM*GjBu{MzjllMv)70edPe^xA~n|NKLg`c Nn6q<@hcnl0{4cYvDE0sV literal 0 HcmV?d00001 diff --git a/Resources/Textures/Interface/Alerts/bleed.rsi/bleed8.png b/Resources/Textures/Interface/Alerts/bleed.rsi/bleed8.png new file mode 100644 index 0000000000000000000000000000000000000000..fcb401f708d7af428f6c96009c43bf45fa55b90e GIT binary patch literal 4341 zcmeHKYj6|S6_)K{6C2!siAiD`mIV_hVYRzjJ-mx#YHZmOAS~MoHbp%4C3(k^R@Sa9 z*(N-aw0SrL3^bvHR&f#%NDAc<2*G%8upGOkgk}g~h5&WjnK*<{7{bG)FzH>%&q-!F zo@xGBn$_NW?m6E%=ey_J(S6arxOignqsc0jYNFLrSO(sZ@{CUezfwcPP4Mb$a8$}= zbP)0fM3>;bE@07Xm@lQU6OVm zZqt1^chLtmjMkMteO(vb`}yQO)Hdhc8Ct+T|4w;!oR{pV-9FQ@YLfMBXnxVej9u;Xw=UT*B~3WL zv9a&@thFyWH6Q8QyYY=rI4rMBzxVSs!RqvPXJ34KRp!@g_FvtIL;F&+R}SBQ+Vkb9 zwD#{OI0f(8Lvepuvw4MB-8}P+wHZf__^NMA^M8~uA@B0$8RX{hJN7y8*W5R4^^lx$ zbMMi%L$_=0s<_?n@671wdGKMh^!E0y)<&xFKX(?re|-AUiaqfw3Y+VJNC1SDWBUn;j|;13aWvYtD81~?a0R#?;z0cIw+N|yZ;iUxy0b&ybt0XK@1B#B}gRHH$F1|rq_WIBZS zq?rmt45N^j*nr@d1(D@aUcb#Y2=9~nSpa;XA=;1PY7F&y(cu=7 zY_0=`h2#Kzik9(`SQ}t@a~Q42=7YE+vjVct`S|vPdp$S&} zQ=G^O92Fhr5~PdQ>s*Ll&*%^>ldD4*B3F;F8kXm9Jwp?`VHlLvC&{#r<+^P7z?B zeG=19*f4#O6I}KGOIv9l$Qavniy#62^-)o*r^@-7*eo{n2+?MOplDlAG#g7nqU(4r z8YjStEwNR!&&`ALqrYGW1MXsY8fOd$hLZ%M)#Mrwl4dxBBLJtYLBq3TteytZ zCDA1Z=>VVa20Q|;K!HZNf^zz|>hY1$1gm&u9{^?84_&5sANU6p1Xrb5S6g<0YgQt&u((k5z4Cpd?cFUv@_^s6R8px@Bgzx^ znFy6>|4 z;dzvcoV7Re1vfj_T=?oST~pg8=lTUFobNean4Fnhd8A?Or_0dmCF@V#%1T$Yzi@YdsN3PMhqjVu z7v_}pEd0vZ+WuhzQy2eQ(j4M%`g^Ct*C)I0rMYHxC7u@1L(M1uz5;}*vYHnc?w!Bt Gng0Up6&?Wq literal 0 HcmV?d00001 diff --git a/Resources/Textures/Interface/Alerts/bleed.rsi/bleed9.png b/Resources/Textures/Interface/Alerts/bleed.rsi/bleed9.png new file mode 100644 index 0000000000000000000000000000000000000000..10f6752a5eb9bdc84bab25b65017b807676a07c3 GIT binary patch literal 4351 zcmeHKeNYo;8jn!Gf_Ozxdjhhoimi3Cn`9HS+l0>qlB>}GQQ(Tj&F&`bkz_-5AptCU zw!L0!PwL0n*7Hhj%e72fTeWqp90P4&$W80@JWsu|+VQ;J;76@J^@Q`vc<*lboa@XD zGuQt}X0yA``#it*d4A8wOIX0=NEVN2ORs z1tEWccX1vT5}W)i#D+MRLJ>OawU^EfL$gN)(;kkAS+RKFz=lKVUkw-Sw{?BJEcd4+ zFVFV04<#**-F?r}3gn$M+_J0qe2lrIeV;vNt=+Px=8Atdv+T&PjHl*}v=}qvTN}3B z_?@Ladu7Fb>+sdKQbQm8s;YlcG4kAt)fVaxBac?@J$-ZGp5%A!d06eeXNZ(9gw7+~ z+RqyCZ0_^D1;#T>i# z6U*|8PGt`q|5!@zeTDb;Z|PfYe5oq(v9RfUc;HOe1E1Z<9U8n;o|qH639f(c^3Tk_ zU1K=RUEVkJO!)1U5B3fArN(b~et5^#L!a>b9+{hD(0G`WLLcQk_@|Eo35O5upSL!( zByHVmo3aNFecZI|@Q*tWo;Lm~>4`Wm5pLMK#IiBP`Z`otoSgn zx<9yGe@DS|zSWU_;lh3Qqoud^4s^AUE&m=`{Z>!bv5G)AW5cotD7;1v6j-HgHA(Yc zCB^VgRvGg8LFFkFhP;rUqU%@@a#jjGiM&_IMHpGbuepRh!N zh+>#nfevtfk>h=kgh@I12GIz^U>zFs&+E6@#^HU!C<}lOG(`DPl@dd}UUagBAetKi z$f!f#X(2d3pQ2@~z&8YF*4)VY#3hp<7<$~^-w^P~;V?AHdRQ+|6~L~lDO;9UZT4{s zi2^t0^~+X(>?xWe=b9jEif_`29L{7%fcZG?6z#FtWo4jcvympAZjjuwnvAftKgsYk z$B^=)9>X!M%C!oiahDFkX^cWBoKPc#O0OpvigBt5%_JzRPY@{|%}P)JT*(0(HHPb0 z8Y2)eOlSnxQxu}t5g0=2bZSNimYle562#g72da|tO!i8GVgMBG!u7aHM<5!Cbs{*W z)*}SF%7x$aJR_yjv+8kI(m6Iz1M6H%{a#Pw`I0JSKgsxYMnm(8WbkRTjD zEhSYd0FdP%8nP(BQX(I4@Vv(eOAwG`IlgQI4aHC*WuinDfMRM5iLD~lT8COiYQTg3 zAxuqTlk|Cpb2a@hZK-`ALp13YP5}Ei$)adam9zEHx9F>flbZ>G(Y2J%&4T$cTCihs?mLP>%MvcasnH-9>tYa`0J$VoI*>*j6cgZ=2BA(x7kHN# zqylV#8}JCY0tG5_1wAmDst2d)2Wwd=4*&B8v(FGJT;G7d2v*MkPl$aEErSB`GPG#ODYzbx_bZaxjyUV+uf~ip5jm5od0fq zyAaBc#po4(-Ew{8_?5PQRK3I~BNy_o)C~>|I0{dvW&E=>eW?2RyttCLdv3;Tym&|3 z^r<6qF@NQayQj9+z%O*fWhX~Y+*6hDO{DNAm7lfy2VWRo?pc3s0o|n<%Kh`n9^kaX NYF=YHP`GjHe*g(0Cs6