Overhauls and 2/28 sync (#244)
* map tweaks/shuttle engines * helpers and defines * global/onclick * controllers and datums * mapping * game folder * some other stuff * some modules * modules that aren't mobs * some mob stuff * new player stuff * mob living * silicon stuff * simple animal things * carbon/ayylmao * update_icons * carbon/human * sounds and tools * icons and stuff * hippie grinder changes + tgui * kitchen.dmi * compile issues fixed * mapfix * Mapfixes 2.0 * mapedit2.0 * mapmerger pls * Revert "mapedit2.0" This reverts commit 74139a3cacea10df7aafca06c0a10bd3daf3a481. * clean up vore folder + 2 hotfixes * admin ticket refinement * Blob tweaks and LAZYADD * LAZYADD IS LAZY * Magic strings purged * DEFINES NEED HIGHER PRIORITIES * Only a sleepless idiot deals in absolute TRUE|FALSE * u h g * progress bar fix * reverts ticket logs * there's always that one guy * fixes and stuff * 2/27 fixes * game folder stuff * stats * some modules again * clothing stuff gets vg clothing out of the main files * everything not mobs again * mob stuff * maps, tgui, sql stuff * icons * additional fixes and compile errors * don't need this anymore * Oh right this isn't needed anymore * maint bar re-added * that doesn't need to be here * stupid events * wtfeven * probably makes Travis happy * don't care to fix the grinder atm * fixes vending sprites, changes turret * lethal, not lethals * overylays are finicky creatures * lazy fix for bleeding edgy (#252) * map tweaks/shuttle engines * helpers and defines * global/onclick * controllers and datums * mapping * game folder * some other stuff * some modules * modules that aren't mobs * some mob stuff * new player stuff * mob living * silicon stuff * simple animal things * carbon/ayylmao * update_icons * carbon/human * sounds and tools * icons and stuff * hippie grinder changes + tgui * kitchen.dmi * compile issues fixed * mapfix * Mapfixes 2.0 * mapedit2.0 * mapmerger pls * Revert "mapedit2.0" This reverts commit 74139a3cacea10df7aafca06c0a10bd3daf3a481. * clean up vore folder + 2 hotfixes * admin ticket refinement * Blob tweaks and LAZYADD * LAZYADD IS LAZY * Magic strings purged * DEFINES NEED HIGHER PRIORITIES * Only a sleepless idiot deals in absolute TRUE|FALSE * u h g * progress bar fix * reverts ticket logs * there's always that one guy * fixes and stuff * 2/27 fixes * game folder stuff * stats * some modules again * clothing stuff gets vg clothing out of the main files * everything not mobs again * mob stuff * maps, tgui, sql stuff * icons * additional fixes and compile errors * don't need this anymore * Oh right this isn't needed anymore * maint bar re-added * that doesn't need to be here * stupid events * wtfeven * probably makes Travis happy * don't care to fix the grinder atm * fixes vending sprites, changes turret * lethal, not lethals * overylays are finicky creatures
This commit is contained in:
@@ -14,8 +14,9 @@
|
||||
moved = 0
|
||||
usr.update_action_buttons() //redraw buttons that are no longer considered "moved"
|
||||
return 1
|
||||
if(usr.next_move >= world.time) // Is this needed ?
|
||||
if(usr.next_click > world.time)
|
||||
return
|
||||
usr.next_click = world.time + 1
|
||||
linked_action.Trigger()
|
||||
return 1
|
||||
|
||||
@@ -71,7 +72,7 @@
|
||||
. = list()
|
||||
.["bg_icon"] = ui_style_icon
|
||||
.["bg_state"] = "template"
|
||||
|
||||
|
||||
//TODO : Make these fit theme
|
||||
.["toggle_icon"] = 'icons/mob/actions.dmi'
|
||||
.["toggle_hide"] = "hide"
|
||||
|
||||
+58
-52
@@ -16,49 +16,49 @@
|
||||
if(!category)
|
||||
return
|
||||
|
||||
var/obj/screen/alert/alert
|
||||
var/obj/screen/alert/thealert
|
||||
if(alerts[category])
|
||||
alert = alerts[category]
|
||||
if(new_master && new_master != alert.master)
|
||||
WARNING("[src] threw alert [category] with new_master [new_master] while already having that alert with master [alert.master]")
|
||||
thealert = alerts[category]
|
||||
if(new_master && new_master != thealert.master)
|
||||
WARNING("[src] threw alert [category] with new_master [new_master] while already having that alert with master [thealert.master]")
|
||||
clear_alert(category)
|
||||
return .()
|
||||
else if(alert.type != type)
|
||||
else if(thealert.type != type)
|
||||
clear_alert(category)
|
||||
return .()
|
||||
else if(!severity || severity == alert.severity)
|
||||
if(alert.timeout)
|
||||
else if(!severity || severity == thealert.severity)
|
||||
if(thealert.timeout)
|
||||
clear_alert(category)
|
||||
return .()
|
||||
else //no need to update
|
||||
return 0
|
||||
else
|
||||
alert = new type()
|
||||
thealert = new type()
|
||||
|
||||
if(new_master)
|
||||
var/old_layer = new_master.layer
|
||||
var/old_plane = new_master.plane
|
||||
new_master.layer = FLOAT_LAYER
|
||||
new_master.plane = FLOAT_PLANE
|
||||
alert.overlays += new_master
|
||||
thealert.add_overlay(new_master)
|
||||
new_master.layer = old_layer
|
||||
new_master.plane = old_plane
|
||||
alert.icon_state = "template" // We'll set the icon to the client's ui pref in reorganize_alerts()
|
||||
alert.master = new_master
|
||||
thealert.icon_state = "template" // We'll set the icon to the client's ui pref in reorganize_alerts()
|
||||
thealert.master = new_master
|
||||
else
|
||||
alert.icon_state = "[initial(alert.icon_state)][severity]"
|
||||
alert.severity = severity
|
||||
thealert.icon_state = "[initial(thealert.icon_state)][severity]"
|
||||
thealert.severity = severity
|
||||
|
||||
alerts[category] = alert
|
||||
alerts[category] = thealert
|
||||
if(client && hud_used)
|
||||
hud_used.reorganize_alerts()
|
||||
alert.transform = matrix(32, 6, MATRIX_TRANSLATE)
|
||||
animate(alert, transform = matrix(), time = 2.5, easing = CUBIC_EASING)
|
||||
thealert.transform = matrix(32, 6, MATRIX_TRANSLATE)
|
||||
animate(thealert, transform = matrix(), time = 2.5, easing = CUBIC_EASING)
|
||||
|
||||
if(alert.timeout)
|
||||
addtimer(CALLBACK(src, .proc/alert_timeout, alert, category), alert.timeout)
|
||||
alert.timeout = world.time + alert.timeout - world.tick_lag
|
||||
return alert
|
||||
if(thealert.timeout)
|
||||
addtimer(CALLBACK(src, .proc/alert_timeout, thealert, category), thealert.timeout)
|
||||
thealert.timeout = world.time + thealert.timeout - world.tick_lag
|
||||
return thealert
|
||||
|
||||
/mob/proc/alert_timeout(obj/screen/alert/alert, category)
|
||||
if(alert.timeout && alerts[category] == alert && world.time >= alert.timeout)
|
||||
@@ -286,17 +286,15 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
|
||||
else
|
||||
name = "Next Tier Requirements"
|
||||
var/validservants = 0
|
||||
var/unconverted_ais_exist = FALSE
|
||||
var/unconverted_ais_exist = get_unconverted_ais()
|
||||
for(var/mob/living/L in living_mob_list)
|
||||
if(is_servant_of_ratvar(L) && (ishuman(L) || issilicon(L)))
|
||||
validservants++
|
||||
else if(isAI(L))
|
||||
unconverted_ais_exist++
|
||||
var/req_servants = 0
|
||||
var/req_caches = 0
|
||||
var/req_cv = 0
|
||||
var/req_ai = FALSE
|
||||
desc = "Requirements for <b>[current_state] Scripture:</b>"
|
||||
var/list/textlist = list("Requirements for <b>[current_state] Scripture:</b>")
|
||||
switch(current_state) //get our requirements based on the tier
|
||||
if(SCRIPTURE_SCRIPT)
|
||||
req_servants = SCRIPT_SERVANT_REQ
|
||||
@@ -314,31 +312,32 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
|
||||
req_caches = JUDGEMENT_CACHE_REQ
|
||||
req_cv = JUDGEMENT_CV_REQ
|
||||
req_ai = TRUE
|
||||
desc += "<br><b>[validservants]/[req_servants]</b> Servants"
|
||||
textlist += "<br><b>[validservants]/[req_servants]</b> Servants"
|
||||
if(validservants < req_servants)
|
||||
icon_state += "-servants" //in this manner, generate an icon key based on what we're missing
|
||||
else
|
||||
desc += ": <b><font color=#5A6068>\[CHECK\]</font></b>"
|
||||
desc += "<br><b>[clockwork_caches]/[req_caches]</b> Tinkerer's Caches"
|
||||
textlist += ": <b><font color=#5A6068>\[CHECK\]</font></b>"
|
||||
textlist += "<br><b>[clockwork_caches]/[req_caches]</b> Tinkerer's Caches"
|
||||
if(clockwork_caches < req_caches)
|
||||
icon_state += "-caches"
|
||||
else
|
||||
desc += ": <b><font color=#5A6068>\[CHECK\]</font></b>"
|
||||
textlist += ": <b><font color=#5A6068>\[CHECK\]</font></b>"
|
||||
if(req_cv) //cv only shows up if the tier requires it
|
||||
desc += "<br><b>[clockwork_construction_value]/[req_cv]</b> Construction Value"
|
||||
textlist += "<br><b>[clockwork_construction_value]/[req_cv]</b> Construction Value"
|
||||
if(clockwork_construction_value < req_cv)
|
||||
icon_state += "-cv"
|
||||
else
|
||||
desc += ": <b><font color=#5A6068>\[CHECK\]</font></b>"
|
||||
textlist += ": <b><font color=#5A6068>\[CHECK\]</font></b>"
|
||||
if(req_ai) //same for ai
|
||||
if(unconverted_ais_exist)
|
||||
if(unconverted_ais_exist > 1)
|
||||
desc += "<br><b>[unconverted_ais_exist] unconverted AIs exist!</b><br>"
|
||||
textlist += "<br><b>[unconverted_ais_exist] unconverted AIs exist!</b><br>"
|
||||
else
|
||||
desc += "<br><b>An unconverted AI exists!</b>"
|
||||
textlist += "<br><b>An unconverted AI exists!</b>"
|
||||
icon_state += "-ai"
|
||||
else
|
||||
desc += "<br>No unconverted AIs exist: <b><font color=#5A6068>\[CHECK\]</font></b>"
|
||||
textlist += "<br>No unconverted AIs exist: <b><font color=#5A6068>\[CHECK\]</font></b>"
|
||||
desc = textlist.Join()
|
||||
|
||||
/obj/screen/alert/clockwork/infodump
|
||||
name = "Global Records"
|
||||
@@ -351,55 +350,62 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
|
||||
else
|
||||
var/servants = 0
|
||||
var/validservants = 0
|
||||
var/unconverted_ais_exist = FALSE
|
||||
var/unconverted_ais_exist = get_unconverted_ais()
|
||||
var/list/scripture_states = scripture_unlock_check()
|
||||
var/list/textlist
|
||||
for(var/mob/living/L in living_mob_list)
|
||||
if(is_servant_of_ratvar(L))
|
||||
servants++
|
||||
if(ishuman(L) || issilicon(L))
|
||||
validservants++
|
||||
else if(isAI(L))
|
||||
unconverted_ais_exist++
|
||||
if(servants > 1)
|
||||
if(validservants > 1)
|
||||
desc = "<b>[servants]</b> Servants, <b>[validservants]</b> of which count towards scripture.<br>"
|
||||
textlist = list("<b>[servants]</b> Servants, <b>[validservants]</b> of which count towards scripture.<br>")
|
||||
else
|
||||
desc = "<b>[servants]</b> Servants, [validservants ? "<b>[validservants]</b> of which counts":"none of which count"] towards scripture.<br>"
|
||||
textlist = list("<b>[servants]</b> Servants, [validservants ? "<b>[validservants]</b> of which counts":"none of which count"] towards scripture.<br>")
|
||||
else
|
||||
desc = "<b>[servants]</b> Servant, who [validservants ? "counts":"does not count"] towards scripture.<br>"
|
||||
desc += "<b>[clockwork_caches ? "[clockwork_caches]</b> Tinkerer's Caches.":"No Tinkerer's Caches, construct one!</b>"]<br>\
|
||||
textlist = list("<b>[servants]</b> Servant, who [validservants ? "counts":"does not count"] towards scripture.<br>")
|
||||
textlist += "<b>[clockwork_caches ? "[clockwork_caches]</b> Tinkerer's Caches.":"No Tinkerer's Caches, construct one!</b>"]<br>\
|
||||
<b>[clockwork_construction_value]</b> Construction Value.<br>"
|
||||
if(clockwork_daemons)
|
||||
desc += "<b>[clockwork_daemons]</b> Tinkerer's Daemons: <b>[servants * 0.2 < clockwork_daemons ? "DISABLED":"ACTIVE"]</b><br>"
|
||||
textlist += "<b>[clockwork_daemons]</b> Tinkerer's Daemons: <b>[servants * 0.2 < clockwork_daemons ? "DISABLED":"ACTIVE"]</b><br>"
|
||||
else
|
||||
desc += "No Tinkerer's Daemons.<br>"
|
||||
textlist += "No Tinkerer's Daemons.<br>"
|
||||
for(var/obj/structure/destructible/clockwork/massive/celestial_gateway/G in all_clockwork_objects)
|
||||
var/area/gate_area = get_area(G)
|
||||
desc += "Ark Location: <b>[uppertext(gate_area.map_name)]</b><br>"
|
||||
if(G.ratvar_portal)
|
||||
desc += "Seconds until Ratvar's arrival: <b>[G.get_arrival_text(TRUE)]</b><br>"
|
||||
textlist += "Ark Location: <b>[uppertext(gate_area.map_name)]</b><br>"
|
||||
if(G.still_needs_components())
|
||||
textlist += "Ark Components required: "
|
||||
for(var/i in G.required_components)
|
||||
if(G.required_components[i])
|
||||
textlist += "<b><font color=[get_component_color_bright(i)]>[G.required_components[i]]</font></b> "
|
||||
textlist += "<br>"
|
||||
else
|
||||
desc += "Seconds until Proselytization: <b>[G.get_arrival_text(TRUE)]</b><br>"
|
||||
if(G.ratvar_portal)
|
||||
textlist += "Seconds until Ratvar's arrival: <b>[G.get_arrival_text(TRUE)]</b><br>"
|
||||
else
|
||||
textlist += "Seconds until Proselytization: <b>[G.get_arrival_text(TRUE)]</b><br>"
|
||||
if(unconverted_ais_exist)
|
||||
if(unconverted_ais_exist > 1)
|
||||
desc += "<b>[unconverted_ais_exist] unconverted AIs exist!</b><br>"
|
||||
textlist += "<b>[unconverted_ais_exist] unconverted AIs exist!</b><br>"
|
||||
else
|
||||
desc += "<b>An unconverted AI exists!</b><br>"
|
||||
textlist += "<b>An unconverted AI exists!</b><br>"
|
||||
if(scripture_states[SCRIPTURE_REVENANT])
|
||||
var/inathneq_available = clockwork_generals_invoked["inath-neq"] <= world.time
|
||||
var/sevtug_available = clockwork_generals_invoked["sevtug"] <= world.time
|
||||
var/nezbere_available = clockwork_generals_invoked["nezbere"] <= world.time
|
||||
var/nezcrentr_available = clockwork_generals_invoked["nzcrentr"] <= world.time
|
||||
if(inathneq_available || sevtug_available || nezbere_available || nezcrentr_available)
|
||||
desc += "Generals available:<b>[inathneq_available ? "<br><font color=#1E8CE1>INATH-NEQ</font>":""][sevtug_available ? "<br><font color=#AF0AAF>SEVTUG</font>":""]\
|
||||
textlist += "Generals available:<b>[inathneq_available ? "<br><font color=#1E8CE1>INATH-NEQ</font>":""][sevtug_available ? "<br><font color=#AF0AAF>SEVTUG</font>":""]\
|
||||
[nezbere_available ? "<br><font color=#5A6068>NEZBERE</font>":""][nezcrentr_available ? "<br><font color=#DAAA18>NZCRENTR</font>":""]</b><br>"
|
||||
else
|
||||
desc += "Generals available: <b>NONE</b><br>"
|
||||
textlist += "Generals available: <b>NONE</b><br>"
|
||||
else
|
||||
desc += "Generals available: <b>NONE</b><br>"
|
||||
textlist += "Generals available: <b>NONE</b><br>"
|
||||
for(var/i in scripture_states)
|
||||
if(i != SCRIPTURE_DRIVER) //ignore the always-unlocked stuff
|
||||
desc += "[i] Scripture: <b>[scripture_states[i] ? "UNLOCKED":"LOCKED"]</b><br>"
|
||||
textlist += "[i] Scripture: <b>[scripture_states[i] ? "UNLOCKED":"LOCKED"]</b><br>"
|
||||
desc = textlist.Join()
|
||||
..()
|
||||
|
||||
//GUARDIANS
|
||||
|
||||
@@ -36,7 +36,12 @@
|
||||
|
||||
/datum/hud/proc/apply_parallax_pref()
|
||||
var/client/C = mymob.client
|
||||
if(C.prefs)
|
||||
if(C.prefs)
|
||||
var/pref = C.prefs.parallax
|
||||
if (isnull(pref))
|
||||
pref = PARALLAX_HIGH
|
||||
if (C.byond_version < 511)
|
||||
pref = PARALLAX_DISABLE
|
||||
switch(C.prefs.parallax)
|
||||
if (PARALLAX_INSANE)
|
||||
C.parallax_throttle = FALSE
|
||||
@@ -220,8 +225,9 @@
|
||||
/obj/screen/parallax_layer/proc/update_o(view)
|
||||
if (!view)
|
||||
view = world.view
|
||||
var/list/new_overlays = list()
|
||||
|
||||
var/count = Ceiling(view/(480/world.icon_size))+1
|
||||
var/list/new_overlays = new
|
||||
for(var/x in -count to count)
|
||||
for(var/y in -count to count)
|
||||
if(x == 0 && y == 0)
|
||||
@@ -229,8 +235,8 @@
|
||||
var/image/I = image(icon, null, icon_state)
|
||||
I.transform = matrix(1, 0, x*480, 0, 1, y*480)
|
||||
new_overlays += I
|
||||
|
||||
overlays = new_overlays
|
||||
cut_overlays()
|
||||
add_overlay(new_overlays)
|
||||
view_sized = view
|
||||
|
||||
/obj/screen/parallax_layer/layer_1
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
backdrop.transform = matrix(200, 0, 0, 0, 200, 0)
|
||||
backdrop.layer = BACKGROUND_LAYER
|
||||
backdrop.blend_mode = BLEND_OVERLAY
|
||||
overlays += backdrop
|
||||
add_overlay(backdrop)
|
||||
..()
|
||||
|
||||
/obj/screen/plane_master/game_world
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
/obj/screen/Destroy()
|
||||
master = null
|
||||
hud = null
|
||||
return ..()
|
||||
|
||||
/obj/screen/examine(mob/user)
|
||||
@@ -664,3 +665,32 @@
|
||||
if(word_messages.len && talk_cooldown < world.time)
|
||||
talk_cooldown = world.time + 10
|
||||
L.say(pick(word_messages))
|
||||
|
||||
/obj/screen/splash
|
||||
icon = 'icons/misc/fullscreen.dmi'
|
||||
icon_state = "title"
|
||||
screen_loc = "1,1"
|
||||
layer = SPLASHSCREEN_LAYER
|
||||
plane = SPLASHSCREEN_PLANE
|
||||
var/client/holder
|
||||
|
||||
/obj/screen/splash/New(client/C, fadeout, qdel_after = TRUE)
|
||||
..()
|
||||
holder = C
|
||||
holder.screen += src
|
||||
var/titlescreen = TITLESCREEN
|
||||
if(titlescreen)
|
||||
icon_state = titlescreen
|
||||
if(fadeout)
|
||||
animate(src, alpha = 0, time = 30)
|
||||
else
|
||||
alpha = 0
|
||||
animate(src, alpha = 255, time = 30)
|
||||
if(qdel_after)
|
||||
QDEL_IN(src, 30)
|
||||
|
||||
/obj/screen/splash/Destroy()
|
||||
if(holder)
|
||||
holder.screen -= src
|
||||
holder = null
|
||||
return ..()
|
||||
Reference in New Issue
Block a user