diff --git a/SQL/migrate/V033__robot_module.sql b/SQL/migrate/V033__robot_module.sql new file mode 100644 index 00000000000..f6dd364e70e --- /dev/null +++ b/SQL/migrate/V033__robot_module.sql @@ -0,0 +1,6 @@ +-- +-- Renaming colomn because we are fixing spelling +-- + +ALTER TABLE `ss13_characters_flavour` + CHANGE COLUMN `robot_miner` `robot_mining` TEXT NULL DEFAULT NULL AFTER `robot_rescue`; diff --git a/code/ZAS/Fire.dm b/code/ZAS/Fire.dm index 76e94c9792f..7c8613072b7 100644 --- a/code/ZAS/Fire.dm +++ b/code/ZAS/Fire.dm @@ -109,7 +109,7 @@ turf/proc/hotspot_expose(exposed_temperature, exposed_volume, soh = 0) var/obj/effect/decal/cleanable/liquid_fuel/fuel = locate() in src LAZYINITLIST(zone.fire_tiles) zone.fire_tiles |= src - if(fuel) + if(fuel) LAZYADD(zone.fuel_objs, fuel) var/obj/effect/decal/cleanable/foam/extinguisher_foam = locate() in src @@ -388,7 +388,15 @@ datum/gas_mixture/proc/check_recombustability(list/fuel_objs) if(total_combustables > 0) //slows down the burning when the concentration of the reactants is low - var/damping_multiplier = min(1, active_combustables / (total_moles/group_multiplier)) + var/damping_multiplier + if(!total_moles || !group_multiplier) + damping_multiplier = min(1, active_combustables) + else if(!total_moles) + damping_multiplier = min(1, active_combustables / group_multiplier) + else if(!group_multiplier) + damping_multiplier = min(1, active_combustables / total_moles) + else + damping_multiplier = min(1, active_combustables / (total_moles/group_multiplier)) //weight the damping mult so that it only really brings down the firelevel when the ratio is closer to 0 damping_multiplier = 2*damping_multiplier - (damping_multiplier*damping_multiplier) diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 0ef10a19461..8f6f779445a 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -256,7 +256,7 @@ switch(href_list["field"]) if("fingerprint") if (istype(src.active1, /datum/data/record)) - var/t1 = sanitize(input("Please input fingerprint hash:", "Med. records", src.active1.fields["fingerprint"], null) as text) + var/t1 = sanitize(input("Please input fingerprint hash:", "Med. records", src.active1.fields["fingerprint"], null) as text, MAX_PAPER_MESSAGE_LEN) if ((!( t1 ) || !( src.authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon))) || src.active1 != a1)) return src.active1.fields["fingerprint"] = t1 @@ -274,55 +274,55 @@ src.active1.fields["age"] = t1 if("mi_dis") if (istype(src.active2, /datum/data/record)) - var/t1 = sanitize(input("Please input minor disabilities list:", "Med. records", src.active2.fields["mi_dis"], null) as text) + var/t1 = sanitize(input("Please input minor disabilities list:", "Med. records", src.active2.fields["mi_dis"], null) as text, MAX_PAPER_MESSAGE_LEN) if ((!( t1 ) || !( src.authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon))) || src.active2 != a2)) return src.active2.fields["mi_dis"] = t1 if("mi_dis_d") if (istype(src.active2, /datum/data/record)) - var/t1 = sanitize(input("Please summarize minor dis.:", "Med. records", src.active2.fields["mi_dis_d"], null) as message) + var/t1 = sanitize(input("Please summarize minor dis.:", "Med. records", src.active2.fields["mi_dis_d"], null) as message, MAX_PAPER_MESSAGE_LEN) if ((!( t1 ) || !( src.authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon))) || src.active2 != a2)) return src.active2.fields["mi_dis_d"] = t1 if("ma_dis") if (istype(src.active2, /datum/data/record)) - var/t1 = sanitize(input("Please input major diabilities list:", "Med. records", src.active2.fields["ma_dis"], null) as text) + var/t1 = sanitize(input("Please input major diabilities list:", "Med. records", src.active2.fields["ma_dis"], null) as text, MAX_PAPER_MESSAGE_LEN) if ((!( t1 ) || !( src.authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon))) || src.active2 != a2)) return src.active2.fields["ma_dis"] = t1 if("ma_dis_d") if (istype(src.active2, /datum/data/record)) - var/t1 = sanitize(input("Please summarize major dis.:", "Med. records", src.active2.fields["ma_dis_d"], null) as message) + var/t1 = sanitize(input("Please summarize major dis.:", "Med. records", src.active2.fields["ma_dis_d"], null) as message, MAX_PAPER_MESSAGE_LEN) if ((!( t1 ) || !( src.authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon))) || src.active2 != a2)) return src.active2.fields["ma_dis_d"] = t1 if("alg") if (istype(src.active2, /datum/data/record)) - var/t1 = sanitize(input("Please state allergies:", "Med. records", src.active2.fields["alg"], null) as text) + var/t1 = sanitize(input("Please state allergies:", "Med. records", src.active2.fields["alg"], null) as text, MAX_PAPER_MESSAGE_LEN) if ((!( t1 ) || !( src.authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon))) || src.active2 != a2)) return src.active2.fields["alg"] = t1 if("alg_d") if (istype(src.active2, /datum/data/record)) - var/t1 = sanitize(input("Please summarize allergies:", "Med. records", src.active2.fields["alg_d"], null) as message) + var/t1 = sanitize(input("Please summarize allergies:", "Med. records", src.active2.fields["alg_d"], null) as message, MAX_PAPER_MESSAGE_LEN) if ((!( t1 ) || !( src.authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon))) || src.active2 != a2)) return src.active2.fields["alg_d"] = t1 if("cdi") if (istype(src.active2, /datum/data/record)) - var/t1 = sanitize(input("Please state diseases:", "Med. records", src.active2.fields["cdi"], null) as text) + var/t1 = sanitize(input("Please state diseases:", "Med. records", src.active2.fields["cdi"], null) as text, MAX_PAPER_MESSAGE_LEN) if ((!( t1 ) || !( src.authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon))) || src.active2 != a2)) return src.active2.fields["cdi"] = t1 if("cdi_d") if (istype(src.active2, /datum/data/record)) - var/t1 = sanitize(input("Please summarize diseases:", "Med. records", src.active2.fields["cdi_d"], null) as message) + var/t1 = sanitize(input("Please summarize diseases:", "Med. records", src.active2.fields["cdi_d"], null) as message, MAX_PAPER_MESSAGE_LEN) if ((!( t1 ) || !( src.authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon))) || src.active2 != a2)) return src.active2.fields["cdi_d"] = t1 if("notes") if (istype(src.active2, /datum/data/record)) - var/t1 = sanitize(input("Please summarize notes:", "Med. records", html_decode(src.active2.fields["notes"]), null) as message, extra = 0) + var/t1 = sanitize(input("Please summarize notes:", "Med. records", html_decode(src.active2.fields["notes"]), null) as message,MAX_PAPER_MESSAGE_LEN, extra = 0) if ((!( t1 ) || !( src.authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon))) || src.active2 != a2)) return src.active2.fields["notes"] = t1 @@ -337,21 +337,21 @@ src.temp = text("Blood Type:
\n\tA- A+
\n\tB- B+
\n\tAB- AB+
\n\tO- O+
", src, src, src, src, src, src, src, src) if("b_dna") if (istype(src.active2, /datum/data/record)) - var/t1 = sanitize(input("Please input DNA hash:", "Med. records", src.active2.fields["b_dna"], null) as text) + var/t1 = sanitize(input("Please input DNA hash:", "Med. records", src.active2.fields["b_dna"], null) as text, MAX_PAPER_MESSAGE_LEN) if ((!( t1 ) || !( src.authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon))) || src.active2 != a2)) return src.active2.fields["b_dna"] = t1 if("vir_name") var/datum/data/record/v = locate(href_list["edit_vir"]) if (v) - var/t1 = sanitize(input("Please input pathogen name:", "VirusDB", v.fields["name"], null) as text) + var/t1 = sanitize(input("Please input pathogen name:", "VirusDB", v.fields["name"], null) as text, MAX_PAPER_MESSAGE_LEN) if ((!( t1 ) || !( src.authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon))) || src.active1 != a1)) return v.fields["name"] = t1 if("vir_desc") var/datum/data/record/v = locate(href_list["edit_vir"]) if (v) - var/t1 = sanitize(input("Please input information about pathogen:", "VirusDB", v.fields["description"], null) as message) + var/t1 = sanitize(input("Please input information about pathogen:", "VirusDB", v.fields["description"], null) as message, MAX_PAPER_MESSAGE_LEN) if ((!( t1 ) || !( src.authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon))) || src.active1 != a1)) return v.fields["description"] = t1 @@ -458,7 +458,7 @@ if (!( istype(src.active2, /datum/data/record) )) return var/a2 = src.active2 - var/t1 = sanitize(input("Add Comment:", "Med. records", null, null) as message) + var/t1 = sanitize(input("Add Comment:", "Med. records", null, null) as message, MAX_PAPER_MESSAGE_LEN) if ((!( t1 ) || !( src.authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon))) || src.active2 != a2)) return var/counter = 1 diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index f7cc4e625ed..66965257362 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -413,7 +413,7 @@ What a mess.*/ if (!( istype(active2, /datum/data/record) )) return var/a2 = active2 - var/t1 = sanitize(input("Add Comment:", "Secure. records", null, null) as message) + var/t1 = sanitize(input("Add Comment:", "Secure. records", null, null) as message, MAX_PAPER_MESSAGE_LEN) if ((!( t1 ) || !( authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon))) || active2 != a2)) return var/counter = 1 @@ -455,19 +455,19 @@ What a mess.*/ switch(href_list["field"]) if("name") if (istype(active1, /datum/data/record)) - var/t1 = sanitizeName(input("Please input name:", "Secure. records", active1.fields["name"], null) as text) + var/t1 = sanitizeName(input("Please input name:", "Secure. records", active1.fields["name"], null) as text, MAX_PAPER_MESSAGE_LEN) if (!t1 || active1 != a1) return active1.fields["name"] = t1 if("id") if (istype(active2, /datum/data/record)) - var/t1 = sanitize(input("Please input id:", "Secure. records", active1.fields["id"], null) as text) + var/t1 = sanitize(input("Please input id:", "Secure. records", active1.fields["id"], null) as text, MAX_PAPER_MESSAGE_LEN) if (!t1 || active1 != a1) return active1.fields["id"] = t1 if("fingerprint") if (istype(active1, /datum/data/record)) - var/t1 = sanitize(input("Please input fingerprint hash:", "Secure. records", active1.fields["fingerprint"], null) as text) + var/t1 = sanitize(input("Please input fingerprint hash:", "Secure. records", active1.fields["fingerprint"], null) as text, MAX_PAPER_MESSAGE_LEN) if (!t1 || active1 != a1) return active1.fields["fingerprint"] = t1 @@ -485,31 +485,31 @@ What a mess.*/ active1.fields["age"] = t1 if("mi_crim") if (istype(active2, /datum/data/record)) - var/t1 = sanitize(input("Please input minor disabilities list:", "Secure. records", active2.fields["mi_crim"], null) as text) + var/t1 = sanitize(input("Please input minor disabilities list:", "Secure. records", active2.fields["mi_crim"], null) as text, MAX_PAPER_MESSAGE_LEN) if (!t1 || active2 != a2) return active2.fields["mi_crim"] = t1 if("mi_crim_d") if (istype(active2, /datum/data/record)) - var/t1 = sanitize(input("Please summarize minor dis.:", "Secure. records", active2.fields["mi_crim_d"], null) as message) + var/t1 = sanitize(input("Please summarize minor dis.:", "Secure. records", active2.fields["mi_crim_d"], null) as message, MAX_PAPER_MESSAGE_LEN) if (!t1 || active2 != a2) return active2.fields["mi_crim_d"] = t1 if("ma_crim") if (istype(active2, /datum/data/record)) - var/t1 = sanitize(input("Please input major diabilities list:", "Secure. records", active2.fields["ma_crim"], null) as text) + var/t1 = sanitize(input("Please input major diabilities list:", "Secure. records", active2.fields["ma_crim"], null) as text, MAX_PAPER_MESSAGE_LEN) if (!t1 || active2 != a2) return active2.fields["ma_crim"] = t1 if("ma_crim_d") if (istype(active2, /datum/data/record)) - var/t1 = sanitize(input("Please summarize major dis.:", "Secure. records", active2.fields["ma_crim_d"], null) as message) + var/t1 = sanitize(input("Please summarize major dis.:", "Secure. records", active2.fields["ma_crim_d"], null) as message, MAX_PAPER_MESSAGE_LEN) if (!t1 || active2 != a2) return active2.fields["ma_crim_d"] = t1 if("notes") if (istype(active2, /datum/data/record)) - var/t1 = sanitize(input("Please summarize notes:", "Secure. records", html_decode(active2.fields["notes"]), null) as message, extra = 0) + var/t1 = sanitize(input("Please summarize notes:", "Secure. records", html_decode(active2.fields["notes"]), null) as message,MAX_PAPER_MESSAGE_LEN, extra = 0) if (!t1 || active2 != a2) return active2.fields["notes"] = t1 @@ -537,7 +537,7 @@ What a mess.*/ alert(usr, "You do not have the required rank to do this!") if("species") if (istype(active1, /datum/data/record)) - var/t1 = sanitize(input("Please enter race:", "General records", active1.fields["species"], null) as message) + var/t1 = sanitize(input("Please enter race:", "General records", active1.fields["species"], null) as message, MAX_PAPER_MESSAGE_LEN) if (!t1 || active1 != a1) return active1.fields["species"] = t1 diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index c38d9609a4f..1963a53da34 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -910,12 +910,14 @@ /obj/machinery/porta_turret/ion installation = /obj/item/weapon/gun/energy/rifle/ionrifle - lethal = 1 - lethal_icon = 1 - egun = 0 + lethal = 0 + lethal_icon = 0 + egun = 1 sprite_set = "ion" + projectile = /obj/item/projectile/ion/stun eprojectile = /obj/item/projectile/ion + shot_sound = 'sound/weapons/Laser.ogg' eshot_sound = 'sound/weapons/Laser.ogg' /obj/machinery/porta_turret/crossbow diff --git a/code/global.dm b/code/global.dm index e0e324c3b36..0f3ca59886a 100644 --- a/code/global.dm +++ b/code/global.dm @@ -115,7 +115,7 @@ var/list/robot_module_types = list( "Construction", "Medical", "Rescue", - "Miner", + "Mining", "Custodial", "Service", "Clerical", diff --git a/code/modules/mob/living/carbon/alien/diona/diona_nymph.dm b/code/modules/mob/living/carbon/alien/diona/diona_nymph.dm index 2bab0568828..1a7435835cb 100644 --- a/code/modules/mob/living/carbon/alien/diona/diona_nymph.dm +++ b/code/modules/mob/living/carbon/alien/diona/diona_nymph.dm @@ -234,7 +234,8 @@ /mob/living/carbon/alien/diona/proc/check_status_as_organ() if (istype(gestalt, /mob/living/carbon/human) && !QDELETED(gestalt)) var/mob/living/carbon/human/H = gestalt - + if(!H.bad_internal_organs) + return if (health < maxHealth) if (!(src in H.bad_internal_organs)) H.bad_internal_organs.Add(src) diff --git a/code/modules/mob/living/carbon/resist.dm b/code/modules/mob/living/carbon/resist.dm index 746a2f94ae9..c248fe841b4 100644 --- a/code/modules/mob/living/carbon/resist.dm +++ b/code/modules/mob/living/carbon/resist.dm @@ -37,25 +37,25 @@ "\The [src] attempts to escape [wear_suit]!", "You attempt to escape [wear_suit]. (This will take around 6 minutes and you need to stand still)" ) - if (!do_after(src, 1.5 MINUTES, act_target = wear_suit)) + if (!do_after(src, 1.5 MINUTES, act_target = src)) return visible_message( "\The [src] is shifting in their [wear_suit]!", "You start to loosen the [wear_suit]." ) - if (!do_after(src, 1.5 MINUTES, act_target = wear_suit)) + if (!do_after(src, 1.5 MINUTES, act_target = src)) return visible_message( "\The [src] is moving in their [wear_suit]!", "You slip one of your arms out of the [wear_suit]." ) - if (!do_after(src, 1.5 MINUTES, act_target = wear_suit)) + if (!do_after(src, 1.5 MINUTES, act_target = src)) return visible_message( "\The [src] is moving around in their [wear_suit] - it looks like they are about to break out!", "You start to pull loose the straps on the straightjacket[wear_suit]." ) - if (do_after(src, 1.5 MINUTES, act_target = wear_suit)) + if (do_after(src, 1.5 MINUTES, act_target = src)) var/obj/ex_suit = wear_suit remove_from_mob(wear_suit) ex_suit.forceMove(get_turf(src)) @@ -199,7 +199,7 @@ return ..() /mob/living/carbon/escape_buckle() - + if(!buckled) return if(!restrained()) diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 60d06899196..77f2da8a27b 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -3,7 +3,7 @@ var/global/list/robot_modules = list( "Service" = /obj/item/weapon/robot_module/clerical/butler, "Clerical" = /obj/item/weapon/robot_module/clerical/general, "Research" = /obj/item/weapon/robot_module/research, - "Miner" = /obj/item/weapon/robot_module/miner, + "Mining" = /obj/item/weapon/robot_module/miner, "Rescue" = /obj/item/weapon/robot_module/medical/rescue, "Medical" = /obj/item/weapon/robot_module/medical/general, "Security" = /obj/item/weapon/robot_module/security/general, diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index bca31628658..6237a15c324 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -106,16 +106,22 @@ mob/living/simple_animal/hostile/hitby(atom/movable/AM as mob|obj,var/speed = TH /mob/living/simple_animal/hostile/proc/Found(var/atom/A) return +/mob/living/simple_animal/hostile/proc/see_target() + return (target_mob in view(7)) ? (TRUE) : (FALSE) + /mob/living/simple_animal/hostile/proc/MoveToTarget() stop_automated_movement = 1 if(QDELETED(target_mob) || SA_attackable(target_mob)) LoseTarget() + if(!see_target()) + LoseTarget() if(target_mob in targets) if(ranged) if(get_dist(src, target_mob) <= 6) + walk(src, 0) // We gotta stop moving if we are in range OpenFire(target_mob) else - walk_to(src, target_mob, 1, move_to_delay) + walk_to(src, target_mob, 6, move_to_delay) else stance = HOSTILE_STANCE_ATTACKING walk_to(src, target_mob, 1, move_to_delay) @@ -129,6 +135,8 @@ mob/living/simple_animal/hostile/hitby(atom/movable/AM as mob|obj,var/speed = TH if(!(target_mob in targets)) LoseTarget() return 0 + if(!see_target()) + LoseTarget() if(get_dist(src, target_mob) <= 1) //Attacking AttackingTarget() attacked_times += 1 @@ -140,6 +148,8 @@ mob/living/simple_animal/hostile/hitby(atom/movable/AM as mob|obj,var/speed = TH setClickCooldown(attack_delay) if(!Adjacent(target_mob)) return + if(!see_target()) + LoseTarget() if(isliving(target_mob)) var/mob/living/L = target_mob L.attack_generic(src,rand(melee_damage_lower,melee_damage_upper),attacktext) @@ -162,7 +172,6 @@ mob/living/simple_animal/hostile/hitby(atom/movable/AM as mob|obj,var/speed = TH /mob/living/simple_animal/hostile/proc/LostTarget() return - /mob/living/simple_animal/hostile/proc/ListTargets(var/dist = 7) var/list/L = view(src, dist) @@ -200,6 +209,8 @@ mob/living/simple_animal/hostile/hitby(atom/movable/AM as mob|obj,var/speed = TH /mob/living/simple_animal/hostile/proc/OpenFire(target_mob) + if(!see_target()) + LoseTarget() var/target = target_mob visible_message(" [src] fires at [target]!") diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm index 660964566d7..83592e885df 100644 --- a/code/modules/power/gravitygenerator.dm +++ b/code/modules/power/gravitygenerator.dm @@ -416,7 +416,7 @@ var/turf/our_turf = get_turf(src) for(var/mob/M in mob_list) var/turf/their_turf = get_turf(M) - if(their_turf.z == our_turf.z) + if(their_turf && (their_turf.z == our_turf.z)) M.update_gravity(M.mob_has_gravity()) if(M.client) if(!M) return diff --git a/html/changelogs/Sindorman-bugfixes.yml b/html/changelogs/Sindorman-bugfixes.yml new file mode 100644 index 00000000000..99662baff94 --- /dev/null +++ b/html/changelogs/Sindorman-bugfixes.yml @@ -0,0 +1,42 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +################################# + +# Your name. +author: PoZe + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - bugfix: "Straighjacket escape progress is no displayed above mob." + - spellcheck: "Renamed cyborg Miner module into Mining." + - rscadd: "Hostile mobs now check if they can see their target before moving towards or engaging." + - bugfix: "Ranged hostile mobs no longer get in point blank range to shoot their target." + - bugfix: "Security/Medical records sections max character limit was increases from 1024 to 3072, to keep it consistent with records in character setup." + - bugfix: "Fixed turret sprites for Energy turret. Added lethal mode sprite and connected code wise to Ionrifle turret" diff --git a/icons/mob/screen/robot.dmi b/icons/mob/screen/robot.dmi index ac162aa87fa..5ead6cbaf96 100644 Binary files a/icons/mob/screen/robot.dmi and b/icons/mob/screen/robot.dmi differ diff --git a/icons/obj/turrets.dmi b/icons/obj/turrets.dmi index 1bdd2b76275..485a0eeb174 100644 Binary files a/icons/obj/turrets.dmi and b/icons/obj/turrets.dmi differ