91
91
if (client && hud_used)
92
92
hud_used. reorganize_alerts()
93
93
client. screen -= alert
94
+
95
+ for (var /mob /dead/observer/observe in inventory_observers)
96
+ if (! observe. client)
97
+ LAZYREMOVE (inventory_observers, observe)
98
+ continue
99
+ observe. client. screen -= alert
94
100
qdel (alert)
95
101
96
102
/ atom/movable / screen/ alert
@@ -329,6 +335,8 @@ or something covering your eyes."
329
335
icon_state = " embeddedobject"
330
336
331
337
/ atom/movable / screen/ alert/ embeddedobject/ Click()
338
+ if (!.. ())
339
+ return
332
340
if (isliving(usr ))
333
341
var /mob /living/carbon/human/M = usr
334
342
return M. help_shake_act(M)
@@ -373,6 +381,9 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
373
381
374
382
375
383
/ atom/movable / screen/ alert/ fire/ Click()
384
+ if (!.. ())
385
+ return
386
+
376
387
if (! isliving(usr ))
377
388
return FALSE
378
389
@@ -394,6 +405,9 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
394
405
icon_state = " direction_lock"
395
406
396
407
/ atom/movable / screen/ alert/ direction_lock/ Click()
408
+ if (!.. ())
409
+ return
410
+
397
411
if (isliving(usr ))
398
412
var /mob /living/L = usr
399
413
return L. clear_forced_look()
@@ -452,7 +466,7 @@ Recharging stations are available in robotics, the dormitory bathrooms, and the
452
466
desc = " You have merged with a diona gestalt and are now part of it's biomass. You can still wiggle yourself free though."
453
467
454
468
/ atom/movable / screen/ alert/ nymph/ Click()
455
- if (! usr || ! usr . client)
469
+ if (! usr || ! usr . client || !.. () )
456
470
return
457
471
if (isnymph(usr ))
458
472
var /mob /living/simple_animal/diona/D = usr
@@ -491,7 +505,7 @@ so as to remain in compliance with the most up-to-date laws."
491
505
return .. ()
492
506
493
507
/ atom/movable / screen/ alert/ hackingapc/ Click()
494
- if (! usr || ! usr . client)
508
+ if (! usr || ! usr . client || !.. () )
495
509
return
496
510
if (! target)
497
511
return
@@ -517,7 +531,7 @@ so as to remain in compliance with the most up-to-date laws."
517
531
return .. ()
518
532
519
533
/ atom/movable / screen/ alert/ mech_port_available/ Click()
520
- if (! usr || ! usr . client)
534
+ if (! usr || ! usr . client || !.. () )
521
535
return
522
536
if (! ismecha(usr . loc) || ! target)
523
537
return
@@ -533,7 +547,7 @@ so as to remain in compliance with the most up-to-date laws."
533
547
icon_state = " mech_port_x"
534
548
535
549
/ atom/movable / screen/ alert/ mech_port_disconnect/ Click()
536
- if (! usr || ! usr . client)
550
+ if (! usr || ! usr . client || !.. () )
537
551
return
538
552
if (! ismecha(usr . loc))
539
553
return
@@ -823,11 +837,17 @@ so as to remain in compliance with the most up-to-date laws."
823
837
desc = " You're legcuffed, which slows you down considerably. Click the alert to free yourself."
824
838
825
839
/ atom/movable / screen/ alert/ restrained/ Click()
840
+ if (!.. ())
841
+ return
842
+
826
843
if (isliving(usr ))
827
844
var /mob /living/L = usr
828
845
return L. resist()
829
846
830
847
/ atom/movable / screen/ alert/ restrained/ buckled/ Click()
848
+ if (!.. ())
849
+ return
850
+
831
851
var /mob /living/L = usr
832
852
if (! istype(L) || ! L. can_resist())
833
853
return
@@ -846,6 +866,11 @@ so as to remain in compliance with the most up-to-date laws."
846
866
if (! hud_shown)
847
867
for (var /i in 1 to alerts. len)
848
868
mymob. client. screen -= alerts[alerts[i]]
869
+ for (var /mob /dead/observer/observe in mymob. inventory_observers)
870
+ if (! observe. client)
871
+ LAZYREMOVE (mymob. inventory_observers, observe)
872
+ continue
873
+ observe. client. screen -= alerts[alerts[i]]
849
874
return TRUE
850
875
for (var /i in 1 to alerts. len)
851
876
var /atom/movable /screen/alert/alert = alerts[alerts[i]]
@@ -868,17 +893,22 @@ so as to remain in compliance with the most up-to-date laws."
868
893
. = " "
869
894
alert. screen_loc = .
870
895
mymob. client. screen |= alert
896
+ for (var /mob /dead/observer/observe in mymob. inventory_observers)
897
+ if (! observe. client)
898
+ LAZYREMOVE (mymob. inventory_observers, observe)
899
+ continue
900
+ observe. client. screen |= alert
871
901
return TRUE
872
902
873
903
/ atom/movable / screen/ alert/ Click(location, control, params)
874
- if (! usr || ! usr . client)
904
+ if (! usr || ! usr . client || HAS_TRAIT ( usr , TRAIT_OBSERVING_INVENTORY ) )
875
905
return FALSE
876
906
877
907
var /paramslist = params2list(params)
878
908
if (paramslist[" shift" ]) // screen objects don't do the normal Click() stuff so we'll cheat
879
909
to_chat (usr , " <span class='boldnotice'>[ name] </span> - <span class='info'> [ desc] </span>" )
880
910
return FALSE
881
-
911
+
882
912
if (master)
883
913
return usr . client. Click(master, location, control, params)
884
914
@@ -897,7 +927,7 @@ so as to remain in compliance with the most up-to-date laws."
897
927
icon_state = " succumb"
898
928
899
929
/ atom/movable / screen/ alert/ succumb/ Click()
900
- if (! usr || ! usr . client)
930
+ if (! usr || ! usr . client || !.. () )
901
931
return
902
932
var /mob /living/living_owner = usr
903
933
if (! istype(usr ))
0 commit comments