Merge remote-tracking branch 'upstream/master' into dev-freeze

Conflicts:
	.travis.yml
	code/modules/virus2/disease2.dm
	maps/exodus-5.dmm
This commit is contained in:
PsiOmegaDelta
2015-08-14 08:19:48 +02:00
17 changed files with 389 additions and 442 deletions

View File

@@ -4,7 +4,7 @@ sudo: false
env:
BYOND_MAJOR="508"
BYOND_MINOR="1287"
BYOND_MINOR="1293"
MACRO_COUNT=1234
cache:

View File

@@ -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

View File

@@ -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 += "<br><font color='red'><B>The [role_text] has failed.</B></font>"
else

View File

@@ -39,6 +39,7 @@
. = ..()
if(reagents)
qdel(reagents)
reagents = null
for(var/atom/movable/AM in contents)
qdel(AM)
loc = null

View File

@@ -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

View File

@@ -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--

View File

@@ -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

View File

@@ -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()

View File

@@ -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."

View File

@@ -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)

View File

@@ -996,7 +996,7 @@
if(ROBOT_NOTIFICATION_NEW_MODULE) //New Module
connected_ai << "<br><br><span class='notice'>NOTICE - [braintype] module change detected: [name] has loaded the [first_arg].</span><br>"
if(ROBOT_NOTIFICATION_MODULE_RESET)
connected_ai << "<br><br><span class='notice'>NOTICE - [braintype] module reset detected: [name] has unladed the [first_arg].</span><br>"
connected_ai << "<br><br><span class='notice'>NOTICE - [braintype] module reset detected: [name] has unloaded the [first_arg].</span><br>"
if(ROBOT_NOTIFICATION_NEW_NAME) //New Name
if(first_arg != second_arg)
connected_ai << "<br><br><span class='notice'>NOTICE - [braintype] reclassification detected: [first_arg] is now designated as [second_arg].</span><br>"

View File

@@ -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"

View File

@@ -58,8 +58,6 @@
<I>This spell opens nearby doors and does not require wizard garb.</I><BR>
<A href='byond://?src=\ref[src];spell_choice=horseman'>Curse of the Horseman</A> (15)<BR>
<I>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.</I><BR>
<A href='byond://?src=\ref[src];spell_choice=fleshtostone'>Flesh to Stone</A> (60)<BR>
<I>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.</I><BR>
<A href='byond://?src=\ref[src];spell_choice=noclothes'>Remove Clothes Requirement</A> <b>Warning: this takes away 2 spell choices.</b><BR>
<HR>
<B>Artefacts:</B><BR>
@@ -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))

View File

@@ -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))

View File

@@ -50,9 +50,12 @@
if(meat.len)
var/num = rand(1,meat.len)
for(var/i=0,i<num,i++)
var/picked = pick(meat)
meat -= picked
res += picked
var/datum/species/picked = pick_n_take(meat)
res |= picked.name
if(picked.greater_form)
res |= picked.greater_form
if(picked.primitive_form)
res |= picked.primitive_form
return res
/datum/disease2/disease/proc/activate(var/mob/living/carbon/mob)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 18 KiB

File diff suppressed because it is too large Load Diff