diff --git a/code/game/antagonist/antagonist_place.dm b/code/game/antagonist/antagonist_place.dm index b5f62868dc..11ea718f8c 100644 --- a/code/game/antagonist/antagonist_place.dm +++ b/code/game/antagonist/antagonist_place.dm @@ -23,5 +23,5 @@ /datum/antagonist/proc/place_mob(var/mob/living/mob) if(!starting_locations || !starting_locations.len) return - var/turf/T = pick_mobless_turf_if_exists(mob) + var/turf/T = pick_mobless_turf_if_exists(starting_locations) mob.forceMove(T) diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index bddf56ecb6..734da60df3 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -12,7 +12,6 @@ certain though... there is never just one of them. Good luck." config_tag = "changeling" required_players = 2 - required_players_secret = 10 required_enemies = 1 end_on_antag_death = 1 antag_scaling_coeff = 10 diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index 6141ceacc9..f482038f79 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -4,7 +4,6 @@ extended_round_description = "The station has been infiltrated by a fanatical group of death-cultists! They will use powers from beyond your comprehension to subvert you to their cause and ultimately please their gods through sacrificial summons and physical immolation! Try to survive!" config_tag = "cult" required_players = 5 - required_players_secret = 15 required_enemies = 3 end_on_antag_death = 1 antag_tags = list(MODE_CULTIST) diff --git a/code/game/gamemodes/epidemic/epidemic.dm b/code/game/gamemodes/epidemic/epidemic.dm index 4f98bbcc2b..05b2d48437 100644 --- a/code/game/gamemodes/epidemic/epidemic.dm +++ b/code/game/gamemodes/epidemic/epidemic.dm @@ -2,7 +2,6 @@ name = "epidemic" config_tag = "epidemic" required_players = 1 - required_players_secret = 15 round_description = "A deadly epidemic is spreading on the station. Find a cure as fast as possible, and keep your distance to anyone who speaks in a hoarse voice!" var/cruiser_arrival diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 412e9033d4..aa16a9b4d1 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -10,7 +10,6 @@ var/global/list/additional_antag_types = list() var/probability = 0 var/required_players = 0 // Minimum players for round to start if voted in. - var/required_players_secret = 0 // Minimum number of players for that game mode to be chose in Secret var/required_enemies = 0 // Minimum antagonists for round to start. var/newscaster_announcements = null var/end_on_antag_death = 0 // Round will end when all antagonists are dead. @@ -147,12 +146,8 @@ var/global/list/additional_antag_types = list() if((player.client)&&(player.ready)) playerC++ - if(master_mode=="secret") - if(playerC < required_players_secret) - return 0 - else - if(playerC < required_players) - return 0 + if(playerC < required_players) + return 0 if(!(antag_templates && antag_templates.len)) return 1 diff --git a/code/game/gamemodes/heist/heist.dm b/code/game/gamemodes/heist/heist.dm index 0a1badfe0a..75472e9c96 100644 --- a/code/game/gamemodes/heist/heist.dm +++ b/code/game/gamemodes/heist/heist.dm @@ -8,7 +8,6 @@ var/global/list/obj/cortical_stacks = list() //Stacks for 'leave nobody behind' name = "heist" config_tag = "heist" required_players = 15 - required_players_secret = 25 required_enemies = 4 round_description = "An unidentified bluespace signature has slipped past the Icarus and is approaching the station!" end_on_antag_death = 1 diff --git a/code/game/gamemodes/malfunction/malfunction.dm b/code/game/gamemodes/malfunction/malfunction.dm index ea98f32558..b4409316fe 100644 --- a/code/game/gamemodes/malfunction/malfunction.dm +++ b/code/game/gamemodes/malfunction/malfunction.dm @@ -4,7 +4,6 @@ extended_round_description = "The AI will attempt to hack the APCs around the station in order to gain as much control as possible." config_tag = "malfunction" required_players = 2 - required_players_secret = 7 required_enemies = 1 end_on_antag_death = 0 auto_recall_shuttle = 0 diff --git a/code/game/gamemodes/meme/meme.dm b/code/game/gamemodes/meme/meme.dm index 0a4846d763..0cd534870d 100644 --- a/code/game/gamemodes/meme/meme.dm +++ b/code/game/gamemodes/meme/meme.dm @@ -6,7 +6,6 @@ name = "Memetic Anomaly" config_tag = "meme" required_players = 3 - required_players_secret = 10 restricted_jobs = list("AI", "Cyborg") recommended_enemies = 2 // need at least a meme and a host votable = 0 // temporarily disable this mode for voting diff --git a/code/game/gamemodes/ninja/ninja.dm b/code/game/gamemodes/ninja/ninja.dm index d01c809b37..46c95c969c 100644 --- a/code/game/gamemodes/ninja/ninja.dm +++ b/code/game/gamemodes/ninja/ninja.dm @@ -10,7 +10,6 @@ only hope this unknown assassin isn't here for you." config_tag = "ninja" required_players = 1 - required_players_secret = 10 required_enemies = 1 end_on_antag_death = 1 antag_tags = list(MODE_NINJA) diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index 2be6f558f7..f6c9bccd7c 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -9,7 +9,6 @@ var/list/nuke_disks = list() round_description = "A mercenary strike force is approaching the station!" config_tag = "mercenary" required_players = 15 - required_players_secret = 25 // 25 players - 5 players to be the nuke ops = 20 players remaining required_enemies = 1 end_on_antag_death = 1 var/nuke_off_station = 0 //Used for tracking if the syndies actually haul the nuke to the station diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm index efd7592756..901edda0d6 100644 --- a/code/game/gamemodes/revolution/revolution.dm +++ b/code/game/gamemodes/revolution/revolution.dm @@ -4,7 +4,6 @@ round_description = "Some crewmembers are attempting to start a revolution!" extended_round_description = "Revolutionaries - Remove the heads of staff from power. Convert other crewmembers to your cause using the 'Convert Bourgeoise' verb. Protect your leaders." required_players = 4 - required_players_secret = 15 required_enemies = 3 auto_recall_shuttle = 1 end_on_antag_death = 1 diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm index df149953fa..2e30b05ee8 100644 --- a/code/game/gamemodes/wizard/wizard.dm +++ b/code/game/gamemodes/wizard/wizard.dm @@ -4,7 +4,6 @@ extended_round_description = "A powerful entity capable of manipulating the elements around him, most commonly referred to as a 'wizard', has infiltrated the station. They have a wide variety of powers and spells available to them that makes your own simple moral self tremble with fear and excitement. Ultimately, their purpose is unknown. However, it is up to you and your crew to decide if their powers can be used for good or if their arrival foreshadows the destruction of the entire station." config_tag = "wizard" required_players = 1 - required_players_secret = 10 required_enemies = 1 end_on_antag_death = 1 antag_tags = list(MODE_WIZARD) diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 989b73aa67..d70333bc43 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -137,6 +137,7 @@ if (istype(O, /obj/item/stack)) var/obj/item/stack/S = O S.amount = produced + S.add_to_stacks(user) if (istype(O, /obj/item/weapon/storage)) //BubbleWrap - so newly formed boxes are empty for (var/obj/item/I in O) @@ -284,13 +285,13 @@ return return max_amount -/obj/item/stack/proc/add_to_stacks(mob/usr as mob) - for (var/obj/item/stack/item in usr.loc) +/obj/item/stack/proc/add_to_stacks(mob/user as mob) + for (var/obj/item/stack/item in user.loc) if (item==src) continue var/transfer = src.transfer_to(item) if (transfer) - usr << "You add a new [item.singular_name] to the stack. It now contains [item.amount] [item.singular_name]\s." + user << "You add a new [item.singular_name] to the stack. It now contains [item.amount] [item.singular_name]\s." if(!amount) break diff --git a/code/modules/materials/material_sheets.dm b/code/modules/materials/material_sheets.dm index fdb20ab119..a4379cf871 100644 --- a/code/modules/materials/material_sheets.dm +++ b/code/modules/materials/material_sheets.dm @@ -65,9 +65,10 @@ var/obj/item/stack/material/M = S if(!istype(M) || material.name != M.material.name) return 0 - ..(S,tamount,1) + var/transfer = ..(S,tamount,1) if(src) update_strings() if(M) M.update_strings() + return transfer /obj/item/stack/material/attack_self(var/mob/user) if(!material.build_windows(user, src)) @@ -207,4 +208,4 @@ desc = "This sheet is special platinum-glass alloy designed to withstand large temperatures. It is reinforced with few rods." singular_name = "reinforced borosilicate glass sheet" icon_state = "sheet-phoronrglass" - default_type = "reinforced borosilicate glass" \ No newline at end of file + default_type = "reinforced borosilicate glass" diff --git a/code/modules/materials/materials.dm b/code/modules/materials/materials.dm index 71a669ab66..158c9ef876 100644 --- a/code/modules/materials/materials.dm +++ b/code/modules/materials/materials.dm @@ -127,8 +127,6 @@ var/list/name_to_material var/obj/item/stack/S = new rod_product(get_turf(user)) S.add_fingerprint(user) S.add_to_stacks(user) - if(!(user.l_hand && user.r_hand)) - user.put_in_hands(S) /material/proc/build_wired_product(var/mob/user, var/obj/item/stack/used_stack, var/obj/item/stack/target_stack) if(!wire_product) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 8804ce7781..83526bfc03 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -152,7 +152,7 @@ Works together with spawning an observer, noted above. if(key) var/mob/dead/observer/ghost = new(src) //Transfer safety to observer spawning proc. ghost.can_reenter_corpse = can_reenter_corpse - ghost.timeofdeath = src.timeofdeath //BS12 EDIT + ghost.timeofdeath = src.stat == DEAD ? src.timeofdeath : world.time ghost.key = key if(ghost.client && !ghost.client.holder && !config.antag_hud_allowed) // For new ghosts we remove the verb from even showing up if it's not allowed. ghost.verbs -= /mob/dead/observer/verb/toggle_antagHUD // Poor guys, don't know what they are missing! diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 06f7ba770e..e5db1f07de 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1282,11 +1282,10 @@ if(C.body_parts_covered & FEET) feet_exposed = 0 - flavor_text = flavor_texts["general"] - flavor_text += "\n\n" + flavor_text = "" for (var/T in flavor_texts) if(flavor_texts[T] && flavor_texts[T] != "") - if((T == "head" && head_exposed) || (T == "face" && face_exposed) || (T == "eyes" && eyes_exposed) || (T == "torso" && torso_exposed) || (T == "arms" && arms_exposed) || (T == "hands" && hands_exposed) || (T == "legs" && legs_exposed) || (T == "feet" && feet_exposed)) + if((T == "general") || (T == "head" && head_exposed) || (T == "face" && face_exposed) || (T == "eyes" && eyes_exposed) || (T == "torso" && torso_exposed) || (T == "arms" && arms_exposed) || (T == "hands" && hands_exposed) || (T == "legs" && legs_exposed) || (T == "feet" && feet_exposed)) flavor_text += flavor_texts[T] flavor_text += "\n\n" if(!shrink) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index d787a7b892..ed0fbeea5c 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -347,26 +347,16 @@ if(status_flags & GODMODE) return - if(status_flags & GODMODE) - return - - //exposure to extreme pressures can rupture lungs - if(breath && (breath.total_moles < BREATH_MOLES / 5 || breath.total_moles > BREATH_MOLES * 5)) - if(!is_lung_ruptured() && prob(5)) - rupture_lung() - - //check if we actually need to process breath - if(!breath || (breath.total_moles == 0) || suiciding) - failed_last_breath = 1 - if(suiciding) - adjustOxyLoss(2)//If you are suiciding, you should die a little bit faster - oxygen_alert = max(oxygen_alert, 1) - return 0 - if(health > config.health_threshold_crit) - adjustOxyLoss(HUMAN_MAX_OXYLOSS) - else - adjustOxyLoss(HUMAN_CRIT_MAX_OXYLOSS) + //exposure to extreme pressures can rupture lungs + if(breath && (breath.total_moles < BREATH_MOLES / 5 || breath.total_moles > BREATH_MOLES * 5)) + if(!is_lung_ruptured() && prob(5)) + rupture_lung() + //check if we actually need to process breath + if(!breath || (breath.total_moles == 0) || suiciding) + failed_last_breath = 1 + if(suiciding) + adjustOxyLoss(2)//If you are suiciding, you should die a little bit faster oxygen_alert = max(oxygen_alert, 1) return 0 if(health > config.health_threshold_crit) @@ -375,7 +365,6 @@ adjustOxyLoss(HUMAN_CRIT_MAX_OXYLOSS) oxygen_alert = max(oxygen_alert, 1) - return 0 var/safe_pressure_min = 16 // Minimum safe partial pressure of breathable gas in kPa diff --git a/html/changelog.html b/html/changelog.html index 7710b44956..89affca984 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -67,6 +67,17 @@
  • Light replacers now hold up to 32 light bulbs.
  • Light replacers can be obtained through janitorial supply crates.
  • A sheet of glass fills the light replacer by 16 bulbs.
  • +

    14 October 2015

    +

    Hubblenaut updated:

    + +

    TheWelp updated:

    +

    10 October 2015

    diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 476f5b886f..c38bec91d3 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -2327,3 +2327,11 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - tweak: Light replacers now hold up to 32 light bulbs. - tweak: Light replacers can be obtained through janitorial supply crates. - tweak: A sheet of glass fills the light replacer by 16 bulbs. +2015-10-14: + Hubblenaut: + - bugfix: Airlock backup power test light properly offline when backup power down. + - bugfix: Empty flavor texts no longer draw an empty line on examination. + - bugfix: Material stacks now properly merge upon creation. + - bugfix: Messages for adding to existing stack appear again. + TheWelp: + - rscdel: Removed higher Secret player requirements.