diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm
index f8922723c97..37bce4d2707 100644
--- a/code/game/gamemodes/meteor/meteors.dm
+++ b/code/game/gamemodes/meteor/meteors.dm
@@ -222,9 +222,10 @@
range = ((range - world.view) * 2)+1
- for(var/mob/M in world)
+ for(var/A in player_list)
+ var/mob/M = A
var/turf/mobloc = get_turf(M)
- if(M.client && mobloc.z == T.z)
+ if(mobloc && mobloc.z == T.z)
if(M.ear_deaf <= 0 || !M.ear_deaf)
M.playsound_local(T, 'sound/effects/meteorimpact.ogg', range, 1, usepressure = 0)
diff --git a/code/game/turfs/simulated.dm b/code/game/turfs/simulated.dm
index 7a462f7b3c5..25678ee368c 100644
--- a/code/game/turfs/simulated.dm
+++ b/code/game/turfs/simulated.dm
@@ -27,20 +27,21 @@
overlays += wet_overlay
if(unwet_task)
- unwet_task.trigger_task_in(8 SECONDS)
+ // Space lube dries a lot.
+ if (wet > 1)
+ unwet_task.trigger_task_in(120 SECONDS)
+ else
+ unwet_task.trigger_task_in(8 SECONDS)
else
- unwet_task = schedule_task_in(8 SECONDS)
+ unwet_task = schedule_task_in(wet > 1 ? 120 SECONDS : 8 SECONDS)
task_triggered_event.register(unwet_task, src, /turf/simulated/proc/task_unwet_floor)
/turf/simulated/proc/task_unwet_floor(var/triggered_task)
if(triggered_task == unwet_task)
unwet_task = null
- unwet_floor(TRUE)
-
-/turf/simulated/proc/unwet_floor(var/check_very_wet)
- if(check_very_wet && wet >= 2)
- return
+ unwet_floor()
+/turf/simulated/proc/unwet_floor()
wet = 0
if(wet_overlay)
overlays -= wet_overlay
diff --git a/code/modules/client/preference_setup/general/03_body.dm b/code/modules/client/preference_setup/general/03_body.dm
index 2c789acb9bd..c4a76f4f484 100644
--- a/code/modules/client/preference_setup/general/03_body.dm
+++ b/code/modules/client/preference_setup/general/03_body.dm
@@ -255,21 +255,21 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
. += "Hair
"
if(has_flag(mob_species, HAS_HAIR_COLOR))
- . += "Change Color "
+ . += "Change Color "
. += " Style: [pref.h_style]
"
. += "
Facial
"
if(has_flag(mob_species, HAS_HAIR_COLOR))
- . += "Change Color "
+ . += "Change Color "
. += " Style: [pref.f_style]
"
if(has_flag(mob_species, HAS_EYE_COLOR))
. += "
Eyes
"
- . += "Change Color
"
+ . += "Change Color
"
if(has_flag(mob_species, HAS_SKIN_COLOR))
. += "
Body Color
"
- . += "Change Color
"
+ . += "Change Color
"
/datum/category_item/player_setup_item/general/body/proc/has_flag(var/datum/species/mob_species, var/flag)
return mob_species && (mob_species.appearance_flags & flag)
diff --git a/code/modules/client/preference_setup/general/04_equipment.dm b/code/modules/client/preference_setup/general/04_equipment.dm
index 56041b074b7..74c6ff7077a 100644
--- a/code/modules/client/preference_setup/general/04_equipment.dm
+++ b/code/modules/client/preference_setup/general/04_equipment.dm
@@ -41,11 +41,11 @@
var/undies = get_undies()
var/gender_socks = get_gender_socks()
if(!get_key_by_value(undies, pref.underwear))
- pref.underwear = undies[1]
+ pref.underwear = undies[undies[1]]
if(!get_key_by_value(undershirt_t, pref.undershirt))
- pref.undershirt = undershirt_t[1]
+ pref.undershirt = undershirt_t[undershirt_t[1]]
if(!get_key_by_value(gender_socks, pref.socks))
- pref.socks = gender_socks[1]
+ pref.socks = gender_socks[gender_socks[1]]
var/total_cost = 0
for(var/gear_name in pref.gear)
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 7c299bf71d5..e6ad92b1fce 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -213,12 +213,12 @@ datum/preferences
if(!user || !user.client) return
var/dat = "
"
- // #MARKER-SQLSAVE: Options and buttons.
if(path)
- dat += "Slot - "
dat += "Load slot - "
dat += "Save slot - "
dat += "Reload slot"
+ if (config.sql_saves)
+ dat += " - Delete slot"
else
dat += "Please create an account to save your preferences."
@@ -271,6 +271,11 @@ datum/preferences
close_load_dialog(usr)
else if(href_list["close_load_dialog"])
close_load_dialog(usr)
+ else if(href_list["delete"])
+ if (!config.sql_saves)
+ return 0
+ if (alert(usr, "This will permanently delete the character you have loaded. Are you sure?", "Delete Character", "No", "Yes") == "Yes")
+ delete_character_sql()
else
return 0
@@ -541,3 +546,24 @@ datum/preferences
nanotrasen_relation = "Neutral"
update_preview_icon()
+
+// Deletes a character from the database
+/datum/preferences/proc/delete_character_sql(var/client/C)
+ if (!C)
+ return
+
+ if (!current_character)
+ C << "You do not have a character loaded."
+ return
+
+ if (!establish_db_connection(dbcon))
+ C << "Unable to establish database connection."
+ return
+
+ var/DBQuery/query = dbcon.NewQuery("UPDATE ss13_characters SET deleted_at = NOW() WHERE id = :char_id")
+ query.Execute(list(":char_id" = current_character))
+
+ // Create a new character.
+ new_setup(1)
+
+ C << "Character successfully deleted! Please make a new one or load an existing setup."
diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm
index f2d3010547c..7946ba604b1 100644
--- a/code/modules/mob/living/silicon/robot/life.dm
+++ b/code/modules/mob/living/silicon/robot/life.dm
@@ -148,6 +148,7 @@
return 1
/mob/living/silicon/robot/handle_regular_hud_updates()
+ ..()
if (src.stat == 2 || (XRAY in mutations) || (src.sight_mode & BORGXRAY))
src.sight |= SEE_TURFS
@@ -180,8 +181,6 @@
src.see_invisible = SEE_INVISIBLE_LIVING // This is normal vision (25), setting it lower for normal vision means you don't "see" things like darkness since darkness
// has a "invisible" value of 15
- ..()
-
var/obj/item/borg/sight/hud/hud = (locate(/obj/item/borg/sight/hud) in src)
if(hud && hud.hud)
hud.hud.process_hud(src)
diff --git a/code/modules/organs/blood.dm b/code/modules/organs/blood.dm
index 66b77eda51b..4a539bc0af0 100644
--- a/code/modules/organs/blood.dm
+++ b/code/modules/organs/blood.dm
@@ -221,8 +221,8 @@ var/const/BLOOD_VOLUME_SURVIVE = 122
//Transfers blood from reagents to vessel, respecting blood types compatability.
/mob/living/carbon/human/inject_blood(var/datum/reagent/blood/injected, var/amount)
-
- if(!(species.flags & NO_BLOOD))
+ // In case of mobs without blood, put it in their chem storage.
+ if(species.flags & NO_BLOOD)
reagents.add_reagent("blood", amount, injected.data)
reagents.update_total()
return
diff --git a/html/changelogs/skull132-PR_1537.yml b/html/changelogs/skull132-PR_1537.yml
new file mode 100644
index 00000000000..d80b3083843
--- /dev/null
+++ b/html/changelogs/skull132-PR_1537.yml
@@ -0,0 +1,11 @@
+author: Skull132
+
+delete-after: True
+
+changes:
+ - bugfix: "Re-added the character delete button."
+ - bugfix: "Fixed borg scanners."
+ - bugfix: "Fixed a case of the colour squares on character creation showing wrong colours."
+ - bugfix: "Fixed underwear/socks/undershirts bugging out on incompatible saved data."
+ - bugfix: "Fixed not being able to infect any human mobs (monkeys included) with viruses via injection."
+ - bugfix: "Fixed spacelube not drying ever. It still takes a shit load of time, however."