diff --git a/code/ZAS/Airflow.dm b/code/ZAS/Airflow.dm index 9f6451adf9..5f5f5bf347 100644 --- a/code/ZAS/Airflow.dm +++ b/code/ZAS/Airflow.dm @@ -241,7 +241,7 @@ mob/living/carbon/human/airflow_hit(atom/A) zone/proc/movables() . = list() for(var/turf/T in contents) - for(var/atom/A in T) - if(istype(A, /obj/effect) || istype(A, /mob/aiEye)) + for(var/atom/movable/A in T) + if(!A.simulated || A.anchored || istype(A, /obj/effect) || istype(A, /mob/aiEye)) continue . += A diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm index dd4039bbe8..c2172147bd 100644 --- a/code/_helpers/unsorted.dm +++ b/code/_helpers/unsorted.dm @@ -1317,3 +1317,7 @@ var/mob/dview/dview_mob = new color = origin.color set_light(origin.light_range, origin.light_power, origin.light_color) +/mob/dview/New() + // Do nothing except call parent. We don't want to be in any mob lists; we're a dummy not a mob. + ..() + diff --git a/code/game/antagonist/antagonist.dm b/code/game/antagonist/antagonist.dm index efe744174b..4d2ff951ea 100644 --- a/code/game/antagonist/antagonist.dm +++ b/code/game/antagonist/antagonist.dm @@ -99,7 +99,7 @@ return 0 //Grab candidates randomly until we have enough. - while(candidates.len) + while(candidates.len && pending_antagonists.len < cur_max) var/datum/mind/player = pick(candidates) pending_antagonists |= player candidates -= player @@ -111,4 +111,4 @@ for(var/datum/mind/player in pending_antagonists) if(can_become_antag(player) && !player.special_role) add_antagonist(player,0,0,1) - pending_antagonists.Cut() \ No newline at end of file + pending_antagonists.Cut() diff --git a/code/game/antagonist/antagonist_create.dm b/code/game/antagonist/antagonist_create.dm index 461cdc9211..e80389021c 100644 --- a/code/game/antagonist/antagonist_create.dm +++ b/code/game/antagonist/antagonist_create.dm @@ -42,7 +42,13 @@ return W /datum/antagonist/proc/create_radio(var/freq, var/mob/living/carbon/human/player) - var/obj/item/device/radio/R = new /obj/item/device/radio/headset(player) + var/obj/item/device/radio/R + + if(freq == SYND_FREQ) + R = new/obj/item/device/radio/headset/syndicate(player) + else + R = new/obj/item/device/radio/headset(player) + R.set_frequency(freq) player.equip_to_slot_or_del(R, slot_l_ear) return R diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index ff5b7ff880..5060b964ca 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -592,6 +592,7 @@ var/list/sacrificed = list() usr.whisper("[input]") input = sanitize(input) + log_and_message_admins("used a communicate rune to say '[input]'") for(var/datum/mind/H in cult.current_antagonists) if (H.current) H.current << "[input]" diff --git a/code/game/machinery/telecomms/presets.dm b/code/game/machinery/telecomms/presets.dm index 35c2ecdc1f..f91fd2d40c 100644 --- a/code/game/machinery/telecomms/presets.dm +++ b/code/game/machinery/telecomms/presets.dm @@ -40,8 +40,8 @@ id = "Hub" network = "tcommsat" autolinkers = list("hub", "relay", "c_relay", "s_relay", "m_relay", "r_relay", "science", "medical", - "supply", "service", "common", "command", "engineering", "security", - "receiverA", "receiverB", "broadcasterA", "broadcasterB") + "supply", "service", "common", "command", "engineering", "security", "unused", + "receiverA", "broadcasterA") /obj/machinery/telecomms/hub/preset_cent id = "CentComm Hub" @@ -52,22 +52,11 @@ //Receivers -//--PRESET LEFT--// - -/obj/machinery/telecomms/receiver/preset_left +/obj/machinery/telecomms/receiver/preset_right id = "Receiver A" network = "tcommsat" autolinkers = list("receiverA") // link to relay - freq_listening = list(SCI_FREQ, MED_FREQ, SUP_FREQ, SRV_FREQ) // science, medical, supply, service - - -//--PRESET RIGHT--// - -/obj/machinery/telecomms/receiver/preset_right - id = "Receiver B" - network = "tcommsat" - autolinkers = list("receiverB") // link to relay - freq_listening = list(COMM_FREQ, ENG_FREQ, SEC_FREQ) //command, engineering, security + freq_listening = list(SCI_FREQ, MED_FREQ, SUP_FREQ, SRV_FREQ, COMM_FREQ, ENG_FREQ, SEC_FREQ) //Common and other radio frequencies for people to freely use New() @@ -95,7 +84,14 @@ id = "Bus 2" network = "tcommsat" freq_listening = list(SUP_FREQ, SRV_FREQ) - autolinkers = list("processor2", "supply", "service") + autolinkers = list("processor2", "supply", "service", "unused") + +/obj/machinery/telecomms/bus/preset_two/New() + for(var/i = 1441, i < 1489, i += 2) + if(i == AI_FREQ || i == PUB_FREQ) + continue + freq_listening |= i + ..() /obj/machinery/telecomms/bus/preset_three id = "Bus 3" @@ -106,14 +102,9 @@ /obj/machinery/telecomms/bus/preset_four id = "Bus 4" network = "tcommsat" - freq_listening = list(ENG_FREQ) + freq_listening = list(ENG_FREQ, AI_FREQ, PUB_FREQ) autolinkers = list("processor4", "engineering", "common") -/obj/machinery/telecomms/bus/preset_four/New() - for(var/i = 1441, i < 1489, i += 2) - freq_listening |= i - ..() - /obj/machinery/telecomms/bus/preset_cent id = "CentComm Bus" network = "tcommsat" @@ -169,7 +160,7 @@ id = "Supply Server" freq_listening = list(SUP_FREQ) autolinkers = list("supply") - + /obj/machinery/telecomms/server/presets/service id = "Service Server" freq_listening = list(SRV_FREQ) @@ -177,13 +168,19 @@ /obj/machinery/telecomms/server/presets/common id = "Common Server" - freq_listening = list() + freq_listening = list(PUB_FREQ, AI_FREQ) // AI Private and Common autolinkers = list("common") - //Common and other radio frequencies for people to freely use - // 1441 to 1489 -/obj/machinery/telecomms/server/presets/common/New() +// "Unused" channels, AKA all others. +/obj/machinery/telecomms/server/presets/unused + id = "Unused Server" + freq_listening = list() + autolinkers = list("unused") + +/obj/machinery/telecomms/server/presets/unused/New() for(var/i = 1441, i < 1489, i += 2) + if(i == AI_FREQ || i == PUB_FREQ) + continue freq_listening |= i ..() @@ -213,18 +210,11 @@ //--PRESET LEFT--// -/obj/machinery/telecomms/broadcaster/preset_left +/obj/machinery/telecomms/broadcaster/preset_right id = "Broadcaster A" network = "tcommsat" autolinkers = list("broadcasterA") -//--PRESET RIGHT--// - -/obj/machinery/telecomms/broadcaster/preset_right - id = "Broadcaster B" - network = "tcommsat" - autolinkers = list("broadcasterB") - /obj/machinery/telecomms/broadcaster/preset_cent id = "CentComm Broadcaster" network = "tcommsat" diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index 7bd266f241..ccb61a5abf 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -212,8 +212,12 @@ /obj/item/weapon/weldingtool/process() - if(welding && prob(5) && !remove_fuel(1)) - setWelding(0) + if(welding) + if(prob(5)) + remove_fuel(1) + + if(get_fuel() == 0) + setWelding(0) //I'm not sure what this does. I assume it has to do with starting fires... //...but it doesnt check to see if the welder is on or not. diff --git a/code/game/turfs/simulated/wall_icon.dm b/code/game/turfs/simulated/wall_icon.dm index fa6ee92855..364f58c29e 100644 --- a/code/game/turfs/simulated/wall_icon.dm +++ b/code/game/turfs/simulated/wall_icon.dm @@ -44,6 +44,7 @@ return overlays.Cut() + damage_overlay = 0 if(!wall_cache["[new_state]-[material.icon_colour]"]) var/image/I = image(icon='icons/turf/wall_masks.dmi',icon_state="[new_state]") @@ -74,7 +75,6 @@ check_relatives(1) /turf/simulated/wall/proc/update_icon() - if(!material) return @@ -86,15 +86,23 @@ else set_wall_state("[material.icon_base]fwall_open") - var/dmg_amt = material.integrity - if(reinf_material) - dmg_amt += reinf_material.integrity - var/overlay = round(damage / dmg_amt * damage_overlays.len) + 1 - if(overlay > damage_overlays.len) - overlay = damage_overlays.len - if(density) + if(damage == 0) + if(damage_overlay != 0) + overlays -= damage_overlays[damage_overlay] + damage_overlay = 0 + else if(density) + var/integrity = material.integrity + if(reinf_material) + integrity += reinf_material.integrity + + var/overlay = round(damage / integrity * damage_overlays.len) + 1 + if(overlay > damage_overlays.len) + overlay = damage_overlays.len + if(damage_overlay && overlay == damage_overlay) //No need to update. return + + if(damage_overlay) overlays -= damage_overlays[damage_overlay] overlays += damage_overlays[overlay] damage_overlay = overlay return @@ -131,4 +139,4 @@ /turf/simulated/wall/proc/can_join_with(var/turf/simulated/wall/W) if(material && W.material && material.icon_base == W.material.icon_base) return 1 - return 0 \ No newline at end of file + return 0 diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index 8015c47c8c..895cf37164 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -12,8 +12,8 @@ var/list/global/wall_cache = list() heat_capacity = 312500 //a little over 5 cm thick , 312500 for 1 m by 2.5 m by 0.25 m plasteel wall var/damage = 0 - var/damage_overlay - var/global/damage_overlays[8] + var/damage_overlay = 0 + var/global/damage_overlays[16] var/active var/can_open = 0 var/material/material diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 8ec49ecd5f..0cf15d0d0d 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -176,7 +176,7 @@ BLIND // can't see anything slot_flags = SLOT_EYES var/vision_flags = 0 var/darkness_view = 0//Base human is 2 - var/invisa_view = 0 + var/see_invisible = -1 sprite_sheets = list("Vox" = 'icons/mob/species/vox/eyes.dmi') /obj/item/clothing/glasses/update_clothing_icon() diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index 9d3d033359..cd9d2083e6 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -7,7 +7,6 @@ //slot_flags = SLOT_EYES //var/vision_flags = 0 //var/darkness_view = 0//Base human is 2 - //var/invisa_view = 0 var/prescription = 0 var/toggleable = 0 var/off_state = "degoggles" @@ -75,6 +74,8 @@ origin_tech = list(TECH_MAGNET = 2) darkness_view = 7 toggleable = 1 + see_invisible = SEE_INVISIBLE_OBSERVER_NOLIGHTING + icon_action_button = "action_nvg" off_state = "denight" /obj/item/clothing/glasses/night/New() @@ -220,7 +221,6 @@ origin_tech = list(TECH_MAGNET = 3) toggleable = 1 vision_flags = SEE_MOBS - invisa_view = 2 emp_act(severity) if(istype(src.loc, /mob/living/carbon/human)) diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index fa273534e6..0ebec408eb 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -33,7 +33,7 @@ icon_state = "jensenshades" item_state = "jensenshades" vision_flags = SEE_MOBS - invisa_view = 2 + see_invisible = SEE_INVISIBLE_OBSERVER_NOLIGHTING /obj/item/clothing/glasses/hud/security/process_hud(var/mob/M) process_sec_hud(M, 1) diff --git a/code/modules/lighting/light_source.dm b/code/modules/lighting/light_source.dm index 1ee235fa6f..ce2ee837a6 100644 --- a/code/modules/lighting/light_source.dm +++ b/code/modules/lighting/light_source.dm @@ -177,6 +177,7 @@ T.affecting_lights += src effect_turf += T + END_FOR_DVIEW /datum/light_source/proc/remove_lum() applied = 0 @@ -201,11 +202,11 @@ var/list/view[0] FOR_DVIEW(var/turf/T, light_range, source_turf, INVISIBILITY_LIGHTING) view += T //Filter out turfs. + END_FOR_DVIEW //This is the part where we calculate new turfs (if any) var/list/new_turfs = view - effect_turf //This will result with all the tiles that are added. for(var/turf/T in new_turfs) - //Big huge copy paste from apply_lum() incoming because screw unreadable defines and screw proc call overhead. if(T.lighting_overlay) LUM_FALLOFF(., T, source_turf) . *= light_power diff --git a/code/modules/lighting/lighting_atom.dm b/code/modules/lighting/lighting_atom.dm index 92500ecc1d..6968a4ed63 100644 --- a/code/modules/lighting/lighting_atom.dm +++ b/code/modules/lighting/lighting_atom.dm @@ -46,21 +46,13 @@ T.reconsider_lights() return ..() -/atom/movable/Move() - var/turf/old_loc = loc +/atom/Entered(atom/movable/obj, atom/prev_loc) . = ..() - if(loc != old_loc) - for(var/datum/light_source/L in light_sources) + if(obj && prev_loc != src) + for(var/datum/light_source/L in obj.light_sources) L.source_atom.update_light() - var/turf/new_loc = loc - if(istype(old_loc) && opacity) - old_loc.reconsider_lights() - - if(istype(new_loc) && opacity) - new_loc.reconsider_lights() - /atom/proc/set_opacity(new_opacity) var/old_opacity = opacity opacity = new_opacity diff --git a/code/modules/lighting/lighting_overlay.dm b/code/modules/lighting/lighting_overlay.dm index ca9d9b391f..2dd3889e4e 100644 --- a/code/modules/lighting/lighting_overlay.dm +++ b/code/modules/lighting/lighting_overlay.dm @@ -98,3 +98,5 @@ var/turf/T = loc if(istype(T)) T.lighting_overlay = null + + ..() diff --git a/code/modules/lighting/lighting_turf.dm b/code/modules/lighting/lighting_turf.dm index a7a5990709..e261931c41 100644 --- a/code/modules/lighting/lighting_turf.dm +++ b/code/modules/lighting/lighting_turf.dm @@ -16,3 +16,13 @@ if(A.lighting_use_dynamic) var/atom/movable/lighting_overlay/O = PoolOrNew(/atom/movable/lighting_overlay, src) lighting_overlay = O + +/turf/Entered(atom/movable/obj) + . = ..() + if(obj && obj.opacity) + reconsider_lights() + +/turf/Exited(atom/movable/obj) + . = ..() + if(obj && obj.opacity) + reconsider_lights() diff --git a/code/modules/mining/alloys.dm b/code/modules/mining/alloys.dm index 9461c1e6b9..dac05badd0 100644 --- a/code/modules/mining/alloys.dm +++ b/code/modules/mining/alloys.dm @@ -12,7 +12,7 @@ metaltag = "plasteel" requires = list( "platinum" = 1, - "coal" = 2, + "carbon" = 2, "hematite" = 2 ) product_mod = 0.3 @@ -21,7 +21,7 @@ /datum/alloy/steel metaltag = DEFAULT_WALL_MATERIAL requires = list( - "coal" = 1, + "carbon" = 1, "hematite" = 1 ) product = /obj/item/stack/material/steel \ No newline at end of file diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm index 649dee1e1e..0eb8bdaa1f 100644 --- a/code/modules/mining/machine_processing.dm +++ b/code/modules/mining/machine_processing.dm @@ -112,16 +112,17 @@ var/sheets_per_tick = 10 var/list/ores_processing[0] var/list/ores_stored[0] - var/list/alloy_data[0] + var/static/list/alloy_data var/active = 0 /obj/machinery/mineral/processing_unit/New() - ..() - //TODO: Ore and alloy global storage datum. - for(var/alloytype in typesof(/datum/alloy)-/datum/alloy) - alloy_data += new alloytype() + // initialize static alloy_data list + if(!alloy_data) + alloy_data = list() + for(var/alloytype in typesof(/datum/alloy)-/datum/alloy) + alloy_data += new alloytype() if(!ore_data || !ore_data.len) for(var/oretype in typesof(/ore)-/ore) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 34668d0b66..cdd556034d 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1397,6 +1397,8 @@ sight |= G.vision_flags if(!druggy && !seer) see_invisible = SEE_INVISIBLE_MINIMUM + if(G.see_invisible >= 0) + see_invisible = G.see_invisible if(istype(G,/obj/item/clothing/glasses/night) && !seer) see_invisible = SEE_INVISIBLE_MINIMUM /* HUD shit goes here, as long as it doesn't modify sight flags */ diff --git a/code/modules/mob/living/silicon/laws.dm b/code/modules/mob/living/silicon/laws.dm index 69d957fbaf..c4a4d63448 100644 --- a/code/modules/mob/living/silicon/laws.dm +++ b/code/modules/mob/living/silicon/laws.dm @@ -39,20 +39,23 @@ laws.delete_law(law) log_and_message_admins("has deleted a law belonging to [src]: [law.law]") -/mob/living/silicon/proc/clear_inherent_laws() +/mob/living/silicon/proc/clear_inherent_laws(var/silent = 0) laws_sanity_check() laws.clear_inherent_laws() - log_and_message_admins("cleared the inherent laws of [src]") + if(!silent) + log_and_message_admins("cleared the inherent laws of [src]") -/mob/living/silicon/proc/clear_ion_laws() +/mob/living/silicon/proc/clear_ion_laws(var/silent = 0) laws_sanity_check() laws.clear_ion_laws() - log_and_message_admins("cleared the ion laws of [src]") + if(!silent) + log_and_message_admins("cleared the ion laws of [src]") -/mob/living/silicon/proc/clear_supplied_laws() +/mob/living/silicon/proc/clear_supplied_laws(var/silent = 0) laws_sanity_check() laws.clear_supplied_laws() - log_and_message_admins("cleared the supplied laws of [src]") + if(!silent) + log_and_message_admins("cleared the supplied laws of [src]") /mob/living/silicon/proc/statelaws(var/datum/ai_laws/laws) var/prefix = "" diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index 3662ef7247..df18ec547d 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -213,9 +213,9 @@ death() /mob/living/silicon/robot/drone/proc/full_law_reset() - clear_supplied_laws() - clear_inherent_laws() - clear_ion_laws() + clear_supplied_laws(1) + clear_inherent_laws(1) + clear_ion_laws(1) laws = new law_type //Reboot procs. diff --git a/code/modules/organs/wound.dm b/code/modules/organs/wound.dm index 8f39b91555..850f5114c0 100644 --- a/code/modules/organs/wound.dm +++ b/code/modules/organs/wound.dm @@ -36,9 +36,8 @@ var/list/stages // internal wounds can only be fixed through surgery var/internal = 0 - // maximum stage at which bleeding should still happen, counted from the right rather than the left of the list - // 1 means all stages except the last should bleed - var/max_bleeding_stage = 1 + // maximum stage at which bleeding should still happen. Beyond this stage bleeding is prevented. + var/max_bleeding_stage = 0 // one of CUT, BRUISE, BURN var/damage_type = CUT // whether this wound needs a bandage/salve to heal at all @@ -64,8 +63,6 @@ src.damage = damage - max_bleeding_stage = src.desc_list.len - max_bleeding_stage - // initialize with the appropriate stage src.init_stage(damage) @@ -248,7 +245,9 @@ /** CUTS **/ /datum/wound/cut/small // link wound descriptions to amounts of damage - max_bleeding_stage = 2 + // Minor cuts have max_bleeding_stage set to the stage that bears the wound type's name. + // The major cut types have the max_bleeding_stage set to the clot stage (which is accordingly given the "blood soaked" descriptor). + max_bleeding_stage = 3 stages = list("ugly ripped cut" = 20, "ripped cut" = 10, "cut" = 5, "healing cut" = 2, "small scab" = 0) damage_type = CUT @@ -263,25 +262,25 @@ damage_type = CUT /datum/wound/cut/gaping - max_bleeding_stage = 2 - stages = list("gaping wound" = 50, "large blood soaked clot" = 25, "large clot" = 15, "small angry scar" = 5, "small straight scar" = 0) + max_bleeding_stage = 3 + stages = list("gaping wound" = 50, "large blood soaked clot" = 25, "blood soaked clot" = 15, "small angry scar" = 5, "small straight scar" = 0) damage_type = CUT /datum/wound/cut/gaping_big - max_bleeding_stage = 2 - stages = list("big gaping wound" = 60, "healing gaping wound" = 40, "large angry scar" = 10, "large straight scar" = 0) + max_bleeding_stage = 3 + stages = list("big gaping wound" = 60, "healing gaping wound" = 40, "large blood soaked clot" = 25, "large angry scar" = 10, "large straight scar" = 0) damage_type = CUT datum/wound/cut/massive - max_bleeding_stage = 2 - stages = list("massive wound" = 70, "massive healing wound" = 50, "massive angry scar" = 10, "massive jagged scar" = 0) + max_bleeding_stage = 3 + stages = list("massive wound" = 70, "massive healing wound" = 50, "massive blood soaked clot" = 25, "massive angry scar" = 10, "massive jagged scar" = 0) damage_type = CUT /** BRUISES **/ /datum/wound/bruise - stages = list("monumental bruise" = 80, "huge bruise" = 50, "large bruise" = 30,\ + stages = list("monumental bruise" = 80, "huge bruise" = 50, "large bruise" = 30, "moderate bruise" = 20, "small bruise" = 10, "tiny bruise" = 5) - max_bleeding_stage = 3 + max_bleeding_stage = 3 //only large bruise and above can bleed. autoheal_cutoff = 30 damage_type = BRUISE @@ -311,7 +310,7 @@ datum/wound/cut/massive internal = 1 stages = list("severed artery" = 30, "cut artery" = 20, "damaged artery" = 10, "bruised artery" = 5) autoheal_cutoff = 5 - max_bleeding_stage = 0 //all stages bleed. It's called internal bleeding after all. + max_bleeding_stage = 4 //all stages bleed. It's called internal bleeding after all. /** EXTERNAL ORGAN LOSS **/ /datum/wound/lost_limb @@ -323,7 +322,7 @@ datum/wound/cut/massive switch(losstype) if(DROPLIMB_EDGE, DROPLIMB_BLUNT) damage_type = CUT - max_bleeding_stage = 3 + max_bleeding_stage = 3 //clotted stump and above can bleed. stages = list( "ripped stump" = damage_amt*1.3, "bloody stump" = damage_amt, @@ -332,7 +331,6 @@ datum/wound/cut/massive ) if(DROPLIMB_BURN) damage_type = BURN - max_bleeding_stage = 1 stages = list( "ripped charred stump" = damage_amt*1.3, "charred stump" = damage_amt, diff --git a/code/modules/recycling/disposal-construction.dm b/code/modules/recycling/disposal-construction.dm index d88d5cb594..3ee774e012 100644 --- a/code/modules/recycling/disposal-construction.dm +++ b/code/modules/recycling/disposal-construction.dm @@ -83,7 +83,7 @@ ///// Z-Level stuff - if(ptype<6 || ptype>8 && !(ptype==11 || ptype==12)) + if(!(ptype in list(6, 7, 8, 11, 12, 13, 14))) ///// Z-Level stuff icon_state = "con[base_state]" else diff --git a/html/changelog.html b/html/changelog.html index a6cf00c6b2..7e11154c81 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -56,6 +56,12 @@ -->
+

31 July 2015

+

HarpyEagle updated:

+ +

29 July 2015

Karolis2011 updated: