-
-
Notifications
You must be signed in to change notification settings - Fork 444
/
Copy pathbloodsucker_hud.dm
105 lines (88 loc) · 3.82 KB
/
bloodsucker_hud.dm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
/// 1 tile down
#define UI_BLOOD_DISPLAY "WEST:6,CENTER-1:0"
/// 2 tiles down
#define UI_VAMPRANK_DISPLAY "WEST:6,CENTER-2:-5"
/// 6 pixels to the right, zero tiles & 5 pixels DOWN.
#define UI_SUNLIGHT_DISPLAY "WEST:6,CENTER-0:0"
///Maptext define for Bloodsucker HUDs
#define FORMAT_BLOODSUCKER_HUD_TEXT(valuecolor, value) MAPTEXT("<div align='center' valign='middle' style='position:relative; top:0px; left:6px'><font color='[valuecolor]'>[round(value,1)]</font></div>")
///Maptext define for Bloodsucker Sunlight HUDs
#define FORMAT_BLOODSUCKER_SUNLIGHT_TEXT(valuecolor, value) MAPTEXT("<div align='center' valign='bottom' style='position:relative; top:0px; left:6px'><font color='[valuecolor]'>[value]</font></div>")
/atom/movable/screen/bloodsucker
icon = 'icons/mob/actions/actions_bloodsucker.dmi'
/atom/movable/screen/bloodsucker/blood_counter
name = "Blood Consumed"
icon_state = "blood_display"
screen_loc = UI_BLOOD_DISPLAY
/atom/movable/screen/bloodsucker/rank_counter
name = "Bloodsucker Rank"
icon_state = "rank"
screen_loc = UI_VAMPRANK_DISPLAY
/atom/movable/screen/bloodsucker/sunlight_counter
name = "Solar Flare Timer"
icon_state = "sunlight"
screen_loc = UI_SUNLIGHT_DISPLAY
#ifdef BLOODSUCKER_TESTING
var/datum/controller/subsystem/sunlight/sunlight_subsystem
/atom/movable/screen/bloodsucker/sunlight_counter/New(loc, ...)
. = ..()
sunlight_subsystem = SSsunlight
#endif
///Updates the counter on said HUD
/atom/movable/screen/bloodsucker/proc/update_counter()
/atom/movable/screen/bloodsucker/blood_counter/update_counter(value, valuecolor)
. = ..()
maptext = FORMAT_BLOODSUCKER_HUD_TEXT(valuecolor, value)
/atom/movable/screen/bloodsucker/rank_counter/update_counter(value, valuecolor)
. = ..()
maptext = FORMAT_BLOODSUCKER_HUD_TEXT(valuecolor, value)
/atom/movable/screen/bloodsucker/sunlight_counter/update_counter(value, valuecolor)
. = ..()
maptext = FORMAT_BLOODSUCKER_SUNLIGHT_TEXT(valuecolor, value)
/// Update Blood Counter + Rank Counter
/datum/antagonist/bloodsucker/proc/update_hud()
var/valuecolor
if(bloodsucker_blood_volume > BLOOD_VOLUME_SAFE(owner.current))
valuecolor = "#FFDDDD"
else if(bloodsucker_blood_volume > BLOOD_VOLUME_BAD(owner.current))
valuecolor = "#FFAAAA"
if(blood_display)
blood_display.maptext = FORMAT_BLOODSUCKER_HUD_TEXT(valuecolor, bloodsucker_blood_volume)
if(vamprank_display)
if(bloodsucker_level_unspent)
vamprank_display.icon_state = "[initial(vamprank_display.icon_state)]_up"
else
vamprank_display.icon_state = initial(vamprank_display.icon_state)
vamprank_display.maptext = FORMAT_BLOODSUCKER_HUD_TEXT(valuecolor, bloodsucker_level)
if(sunlight_display)
if(SSsunlight.sunlight_active)
valuecolor = "#FF5555"
sunlight_display.icon_state = "[initial(sunlight_display.icon_state)]_day"
else
switch(round(SSsunlight.time_til_cycle, 1))
if(0 to 30)
sunlight_display.icon_state = "[initial(sunlight_display.icon_state)]_30"
valuecolor = "#FFCCCC"
if(31 to 60)
sunlight_display.icon_state = "[initial(sunlight_display.icon_state)]_60"
valuecolor = "#FFE6CC"
if(61 to 90)
sunlight_display.icon_state = "[initial(sunlight_display.icon_state)]_90"
valuecolor = "#FFFFCC"
else
sunlight_display.icon_state = "[initial(sunlight_display.icon_state)]_night"
valuecolor = "#FFFFFF"
sunlight_display.maptext = FORMAT_BLOODSUCKER_SUNLIGHT_TEXT( \
valuecolor, \
(SSsunlight.time_til_cycle >= 60) ? "[round(SSsunlight.time_til_cycle / 60, 1)] m" : "[round(SSsunlight.time_til_cycle, 1)] s" \
)
/// 1 tile down
#undef UI_BLOOD_DISPLAY
/// 2 tiles down
#undef UI_VAMPRANK_DISPLAY
/// 6 pixels to the right, zero tiles & 5 pixels DOWN.
#undef UI_SUNLIGHT_DISPLAY
///Maptext define for Bloodsucker HUDs
#undef FORMAT_BLOODSUCKER_HUD_TEXT
///Maptext define for Bloodsucker Sunlight HUDs
#undef FORMAT_BLOODSUCKER_SUNLIGHT_TEXT