diff --git a/.travis.yml b/.travis.yml index 3ae210183f..14676d7713 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,7 @@ sudo: false env: BYOND_MAJOR="508" - BYOND_MINOR="1287" + BYOND_MINOR="1293" MACRO_COUNT=1234 cache: diff --git a/code/game/antagonist/antagonist_objectives.dm b/code/game/antagonist/antagonist_objectives.dm index 432c3f6bbe..404be5a0f7 100644 --- a/code/game/antagonist/antagonist_objectives.dm +++ b/code/game/antagonist/antagonist_objectives.dm @@ -8,7 +8,7 @@ /datum/antagonist/proc/create_objectives(var/datum/mind/player) if(config.objectives_disabled) return 0 - if(create_global_objectives()) + if(create_global_objectives() || global_objectives.len) player.objectives |= global_objectives return 1 diff --git a/code/game/antagonist/antagonist_print.dm b/code/game/antagonist/antagonist_print.dm index 76110e2b13..5cbce01a81 100644 --- a/code/game/antagonist/antagonist_print.dm +++ b/code/game/antagonist/antagonist_print.dm @@ -7,8 +7,8 @@ for(var/datum/mind/P in current_antagonists) text += print_player_full(P) text += get_special_objective_text(P) - var/failed if(!global_objectives.len && P.objectives && P.objectives.len) + var/failed var/num = 1 for(var/datum/objective/O in P.objectives) text += print_objective(O, num) @@ -20,8 +20,6 @@ feedback_add_details(feedback_tag,"[O.type]|FAIL") failed = 1 num++ - - if(!config.objectives_disabled) if(failed) text += "
The [role_text] has failed." else diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index a859f81932..6859b27632 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -39,6 +39,7 @@ . = ..() if(reagents) qdel(reagents) + reagents = null for(var/atom/movable/AM in contents) qdel(AM) loc = null diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 7269f9dcfe..2f25c74e00 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -286,14 +286,13 @@ var/global/list/additional_antag_types = list() /datum/game_mode/proc/declare_completion() var/is_antag_mode = (antag_templates && antag_templates.len) - if(!config.objectives_disabled) - check_victory() - if(is_antag_mode) + check_victory() + if(is_antag_mode) + sleep(10) + for(var/datum/antagonist/antag in antag_templates) sleep(10) - for(var/datum/antagonist/antag in antag_templates) - sleep(10) - antag.check_victory() - antag.print_player_summary() + antag.check_victory() + antag.print_player_summary() var/clients = 0 var/surviving_humans = 0 diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm index 4e444a5ebc..a85ed010f9 100644 --- a/code/game/objects/items/weapons/cigs_lighters.dm +++ b/code/game/objects/items/weapons/cigs_lighters.dm @@ -100,10 +100,6 @@ CIGARETTE PACKETS ARE IN FANCY.DM flags |= NOREACT // so it doesn't react until you light it create_reagents(chem_volume) // making the cigarrete a chemical holder with a maximum volume of 15 -/obj/item/clothing/mask/smokable/Destroy() - ..() - qdel(reagents) - /obj/item/clothing/mask/smokable/process() var/turf/location = get_turf(src) smoketime-- diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm index 081d1f7ba6..0ed8ad7b7b 100644 --- a/code/game/objects/items/weapons/storage/fancy.dm +++ b/code/game/objects/items/weapons/storage/fancy.dm @@ -146,11 +146,6 @@ new /obj/item/clothing/mask/smokable/cigarette(src) create_reagents(15 * storage_slots)//so people can inject cigarettes without opening a packet, now with being able to inject the whole one -/obj/item/weapon/storage/fancy/cigarettes/Destroy() - qdel(reagents) - ..() - - /obj/item/weapon/storage/fancy/cigarettes/update_icon() icon_state = "[initial(icon_state)][contents.len]" return @@ -202,10 +197,6 @@ new /obj/item/clothing/mask/smokable/cigarette/cigar(src) create_reagents(15 * storage_slots) -/obj/item/weapon/storage/fancy/cigar/Destroy() - qdel(reagents) - ..() - /obj/item/weapon/storage/fancy/cigar/update_icon() icon_state = "[initial(icon_state)][contents.len]" return diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm index 044143269e..523a83a080 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -197,7 +197,7 @@ var/list/mechtoys = list( // Sell phoron and platinum if(istype(A, /obj/item/stack)) - var/obj/item/stack/P + var/obj/item/stack/P = A switch(P.get_material_name()) if("phoron") phoron_count += P.get_amount() if("platinum") plat_count += P.get_amount() diff --git a/code/modules/clothing/spacesuits/rig/modules/combat.dm b/code/modules/clothing/spacesuits/rig/modules/combat.dm index fb588e790c..533a5d616e 100644 --- a/code/modules/clothing/spacesuits/rig/modules/combat.dm +++ b/code/modules/clothing/spacesuits/rig/modules/combat.dm @@ -21,7 +21,7 @@ name = "mounted grenade launcher" desc = "A shoulder-mounted micro-explosive dispenser." selectable = 1 - icon_state = "grenadelauncher" + icon_state = "grenade" interface_name = "integrated grenade launcher" interface_desc = "Discharges loaded grenades against the wearer's location." diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 45c2cde53a..d0c07c8509 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -17,6 +17,9 @@ germ_level++ /mob/living/carbon/Destroy() + qdel(ingested) + qdel(touching) + // We don't qdel(bloodstr) because it's the same as qdel(reagents) for(var/guts in internal_organs) qdel(guts) for(var/food in stomach_contents) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 6f434257f4..1159545a54 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -996,7 +996,7 @@ if(ROBOT_NOTIFICATION_NEW_MODULE) //New Module connected_ai << "

NOTICE - [braintype] module change detected: [name] has loaded the [first_arg].
" if(ROBOT_NOTIFICATION_MODULE_RESET) - connected_ai << "

NOTICE - [braintype] module reset detected: [name] has unladed the [first_arg].
" + connected_ai << "

NOTICE - [braintype] module reset detected: [name] has unloaded the [first_arg].
" if(ROBOT_NOTIFICATION_NEW_NAME) //New Name if(first_arg != second_arg) connected_ai << "

NOTICE - [braintype] reclassification detected: [first_arg] is now designated as [second_arg].
" diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm index 41b78fbda4..302c6e6000 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm @@ -112,6 +112,19 @@ M.resistances += data return +// pure concentrated antibodies +/datum/reagent/antibodies + data = list("antibodies"=list()) + name = "Antibodies" + id = "antibodies" + reagent_state = LIQUID + color = "#0050F0" + +/datum/reagent/antibodies/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) + if(src.data) + M.antibodies |= src.data["antibodies"] + ..() + #define WATER_LATENT_HEAT 19000 // How much heat is removed when applied to a hot turf, in J/unit (19000 makes 120 u of water roughly equivalent to 4L) /datum/reagent/water name = "Water" @@ -145,7 +158,7 @@ environment.add_thermal_energy(-removed_heat) if (prob(5)) T.visible_message("The water sizzles as it lands on \the [T]!") - + else if(volume >= 10) if(T.wet >= 1) return diff --git a/code/modules/spells/spellbook.dm b/code/modules/spells/spellbook.dm index 69c60689ec..6f619e1cce 100644 --- a/code/modules/spells/spellbook.dm +++ b/code/modules/spells/spellbook.dm @@ -58,8 +58,6 @@ This spell opens nearby doors and does not require wizard garb.
Curse of the Horseman (15)
This spell will curse a person to wear an unremovable horse mask (it has glue on the inside) and speak like a horse. It does not require wizard garb.
- Flesh to Stone (60)
- This spell will curse a person to immediately turn into an unmoving statue. The effect will eventually wear off if the statue is not destroyed.
Remove Clothes Requirement Warning: this takes away 2 spell choices.

Artefacts:
@@ -123,7 +121,7 @@ uses-- /* */ - var/list/available_spells = list(magicmissile = "Magic Missile", fireball = "Fireball", disabletech = "Disable Tech", smoke = "Smoke", blind = "Blind", subjugation = "Subjugation", mindswap = "Mind Transfer", forcewall = "Forcewall", blink = "Blink", teleport = "Teleport", mutate = "Mutate", etherealjaunt = "Ethereal Jaunt", knock = "Knock", horseman = "Curse of the Horseman", staffchange = "Staff of Change", mentalfocus = "Mental Focus", soulstone = "Six Soul Stone Shards and the spell Artificer", armor = "Mastercrafted Armor Set", staffanimate = "Staff of Animation", noclothes = "No Clothes",fleshtostone = "Flesh to Stone") + var/list/available_spells = list(magicmissile = "Magic Missile", fireball = "Fireball", disabletech = "Disable Tech", smoke = "Smoke", blind = "Blind", subjugation = "Subjugation", mindswap = "Mind Transfer", forcewall = "Forcewall", blink = "Blink", teleport = "Teleport", mutate = "Mutate", etherealjaunt = "Ethereal Jaunt", knock = "Knock", horseman = "Curse of the Horseman", staffchange = "Staff of Change", mentalfocus = "Mental Focus", soulstone = "Six Soul Stone Shards and the spell Artificer", armor = "Mastercrafted Armor Set", staffanimate = "Staff of Animation", noclothes = "No Clothes") var/already_knows = 0 for(var/spell/aspell in H.spell_list) if(available_spells[href_list["spell_choice"]] == initial(aspell.name)) diff --git a/code/modules/virus2/antibodies.dm b/code/modules/virus2/antibodies.dm index a340aae4dd..85df77447a 100644 --- a/code/modules/virus2/antibodies.dm +++ b/code/modules/virus2/antibodies.dm @@ -1,44 +1,5 @@ //This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33 -/* -// reserving some numbers for later special antigens -var/global/const/ANTIGEN_A = 1 -var/global/const/ANTIGEN_B = 2 -var/global/const/ANTIGEN_C = 4 -var/global/const/ANTIGEN_D = 8 -var/global/const/ANTIGEN_E = 16 -var/global/const/ANTIGEN_M = 32 -var/global/const/ANTIGEN_N = 64 -var/global/const/ANTIGEN_O = 128 -var/global/const/ANTIGEN_P = 256 -var/global/const/ANTIGEN_Q = 512 -var/global/const/ANTIGEN_U = 1024 -var/global/const/ANTIGEN_V = 2048 -var/global/const/ANTIGEN_W = 4096 -var/global/const/ANTIGEN_X = 8192 -var/global/const/ANTIGEN_Y = 16384 -var/global/const/ANTIGEN_Z = 32768 - -var/global/list/ANTIGENS = list( -"[ANTIGEN_A]" = "A", -"[ANTIGEN_B]" = "B", -"[ANTIGEN_C]" = "C", -"[ANTIGEN_E]" = "E", -"[ANTIGEN_D]" = "D", -"[ANTIGEN_M]" = "M", -"[ANTIGEN_N]" = "N", -"[ANTIGEN_O]" = "O", -"[ANTIGEN_P]" = "P", -"[ANTIGEN_Q]" = "Q", -"[ANTIGEN_U]" = "U", -"[ANTIGEN_V]" = "V", -"[ANTIGEN_W]" = "W", -"[ANTIGEN_X]" = "X", -"[ANTIGEN_Y]" = "Y", -"[ANTIGEN_Z]" = "Z" -) -*/ - var/global/list/ALL_ANTIGENS = list( "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" ) @@ -47,23 +8,6 @@ var/global/list/ALL_ANTIGENS = list( ALL_ANTIGENS = shuffle(ALL_ANTIGENS) return 1 -// pure concentrated antibodies -datum/reagent/antibodies - data = list("antibodies"=list()) - name = "Antibodies" - id = "antibodies" - reagent_state = LIQUID - color = "#0050F0" - - reaction_mob(var/mob/M, var/method=CHEM_TOUCH, var/volume) - if(istype(M,/mob/living/carbon)) - var/mob/living/carbon/C = M - if(src.data && method == CHEM_INGEST) - //if(C.virus2) if(src.data["antibodies"] & C.virus2.antigen) - // C.virus2.dead = 1 - C.antibodies |= src.data["antibodies"] - return - // iterate over the list of antigens and see what matches /proc/antigens2string(list/antigens, none="None") if(!istype(antigens)) diff --git a/code/modules/virus2/disease2.dm b/code/modules/virus2/disease2.dm index 0aa60d02e5..1edfec1280 100644 --- a/code/modules/virus2/disease2.dm +++ b/code/modules/virus2/disease2.dm @@ -50,9 +50,12 @@ if(meat.len) var/num = rand(1,meat.len) for(var/i=0,i