I'm not completely sure if this is a bug, or just some property of HUDs that was always meant to be there.
From what I can tell, HUD objects don't update the tick it's updated.
This I proved with the code below. Clicking the square does not change its appearance.
When delaying between state change for any more than one tick, it does change.
Numbered Steps to Reproduce Problem:
Click the square.
Code Snippet (if applicable) to Reproduce Problem:
world/maxx = 1
client
New()
. = ..()
new /square{screen_loc = "1,1"}(src)
square
parent_type = /obj
icon = 'square.dmi'
New(client/c) c.screen += src
Click()
icon_state = "c"
sleep(1)
icon_state = ""
Expected Results:
Square flickers the "c" state for a tick.
Actual Results:
Square's appearance stays the same.
Does the problem occur:
Every time? Or how often? every time
In other games? n/a
In other user accounts? yes
On other computers? yes
When does the problem NOT occur?
when delaying for more than one tick
Did the problem NOT occur in any earlier versions? If so, what was the last version that worked? (Visit http://www.byond.com/download/build to download old versions for testing.) uhh
Workarounds:
You can attach an /image to the HUD object and update it instead.
(Also, just wondering, why can't /image objects stay in client.images when being modified, lke HUD objects can?)