Gives the large portable scrubber 3x3 scurbbing power

Also fixes portable scrubbers a bit

Conflicts:
	code/ATMOSPHERICS/components/unary_devices/vent_scrubber.dm
This commit is contained in:
MrStonedOne
2015-07-16 20:13:02 -07:00
881 changed files with 6837 additions and 6856 deletions
+7 -7
View File
@@ -119,23 +119,23 @@
/* General ai_law functions */
/datum/ai_laws/proc/set_zeroth_law(var/law, var/law_borg = null)
/datum/ai_laws/proc/set_zeroth_law(law, law_borg = null)
src.zeroth = law
if(law_borg) //Making it possible for slaved borgs to see a different law 0 than their AI. --NEO
src.zeroth_borg = law_borg
/datum/ai_laws/proc/add_inherent_law(var/law)
/datum/ai_laws/proc/add_inherent_law(law)
if (!(law in src.inherent))
src.inherent += law
/datum/ai_laws/proc/add_ion_law(var/law)
/datum/ai_laws/proc/add_ion_law(law)
src.ion += law
/datum/ai_laws/proc/clear_inherent_laws()
del(src.inherent)
src.inherent = list()
/datum/ai_laws/proc/add_supplied_law(var/number, var/law)
/datum/ai_laws/proc/add_supplied_law(number, law)
while (src.supplied.len < number + 1)
src.supplied += ""
@@ -147,7 +147,7 @@
/datum/ai_laws/proc/clear_ion_laws()
src.ion = list()
/datum/ai_laws/proc/show_laws(var/who)
/datum/ai_laws/proc/show_laws(who)
if (src.zeroth)
who << "0. [src.zeroth]"
@@ -171,7 +171,7 @@
who << "[number]. [law]"
number++
/datum/ai_laws/proc/clear_zeroth_law(var/force) //only removes zeroth from antag ai if force is 1
/datum/ai_laws/proc/clear_zeroth_law(force) //only removes zeroth from antag ai if force is 1
if(force)
src.zeroth = null
src.zeroth_borg = null
@@ -184,6 +184,6 @@
src.zeroth_borg = null
return
/datum/ai_laws/proc/associate(var/mob/living/silicon/M)
/datum/ai_laws/proc/associate(mob/living/silicon/M)
if(!owner)
owner = M
+3 -3
View File
@@ -94,7 +94,7 @@
[get_footer()]
"}
/datum/browser/proc/open(var/use_onclose = 1)
/datum/browser/proc/open(use_onclose = 1)
var/window_size = ""
if (width && height)
window_size = "size=[width]x[height];"
@@ -137,7 +137,7 @@
// to pass a "close=1" parameter to the atom's Topic() proc for special handling.
// Otherwise, the user mob's machine var will be reset directly.
//
/proc/onclose(mob/user, windowid, var/atom/ref=null)
/proc/onclose(mob/user, windowid, atom/ref=null)
if(!user.client) return
var/param = "null"
if(ref)
@@ -153,7 +153,7 @@
// if a valid atom reference is supplied, call the atom's Topic() with "close=1"
// otherwise, just reset the client mob's machine var.
//
/client/verb/windowclose(var/atomref as text)
/client/verb/windowclose(atomref as text)
set hidden = 1 // hide this verb from the user's panel
set name = ".windowclose" // no autocomplete on cmd line
+6 -6
View File
@@ -33,7 +33,7 @@
c.dataId = ++securityCrimeCounter
return c
/datum/datacore/proc/addMinorCrime(id = "", var/datum/data/crime/crime)
/datum/datacore/proc/addMinorCrime(id = "", datum/data/crime/crime)
for(var/datum/data/record/R in security)
if(R.fields["id"] == id)
var/list/crimes = R.fields["mi_crim"]
@@ -58,14 +58,14 @@
crimes -= crime
return
/datum/datacore/proc/addMajorCrime(id = "", var/datum/data/crime/crime)
/datum/datacore/proc/addMajorCrime(id = "", datum/data/crime/crime)
for(var/datum/data/record/R in security)
if(R.fields["id"] == id)
var/list/crimes = R.fields["ma_crim"]
crimes |= crime
return
/datum/datacore/proc/manifest(var/nosleep = 0)
/datum/datacore/proc/manifest(nosleep = 0)
spawn()
if(!nosleep)
sleep(40)
@@ -73,7 +73,7 @@
manifest_inject(H)
return
/datum/datacore/proc/manifest_modify(var/name, var/assignment)
/datum/datacore/proc/manifest_modify(name, assignment)
var/datum/data/record/foundrecord = find_record("name", name, data_core.general)
if(foundrecord)
foundrecord.fields["rank"] = assignment
@@ -187,7 +187,7 @@
var/record_id_num = 1001
/datum/datacore/proc/manifest_inject(var/mob/living/carbon/human/H)
/datum/datacore/proc/manifest_inject(mob/living/carbon/human/H)
if(H.mind && (H.mind.assigned_role != H.mind.special_role))
var/assignment
if(H.mind.assigned_role)
@@ -265,7 +265,7 @@ var/record_id_num = 1001
locked += L
return
/datum/datacore/proc/get_id_photo(var/mob/living/carbon/human/H)
/datum/datacore/proc/get_id_photo(mob/living/carbon/human/H)
var/icon/photo = null
var/g = (H.gender == FEMALE) ? "f" : "m"
if(!config.mutant_races || H.dna.species.use_skintones)
+1 -1
View File
@@ -324,7 +324,7 @@ body
return
/client/proc/debug_variable(name, value, level, var/datum/DA = null)
/client/proc/debug_variable(name, value, level, datum/DA = null)
var/html = ""
if(DA)
+9 -9
View File
@@ -1,12 +1,12 @@
/mob/proc/HasDisease(var/datum/disease/D)
/mob/proc/HasDisease(datum/disease/D)
for(var/datum/disease/DD in viruses)
if(D.IsSame(DD))
return 1
return 0
/mob/proc/CanContractDisease(var/datum/disease/D)
/mob/proc/CanContractDisease(datum/disease/D)
if(stat == DEAD)
return 0
@@ -25,20 +25,20 @@
return 1
/mob/proc/ContractDisease(var/datum/disease/D)
/mob/proc/ContractDisease(datum/disease/D)
if(!CanContractDisease(D))
return 0
AddDisease(D)
/mob/proc/AddDisease(var/datum/disease/D)
/mob/proc/AddDisease(datum/disease/D)
var/datum/disease/DD = new D.type(1, D, 0)
viruses += DD
DD.affected_mob = src
DD.holder = src
if(DD.disease_flags & CAN_CARRY && prob(5))
DD.carrier = 1
//Copy properties over. This is so edited diseases persist.
var/list/skipped = list("affected_mob","holder","carrier","stage","type","parent_type","vars")
for(var/V in DD.vars)
@@ -49,11 +49,11 @@
DD.vars[V] = L.Copy()
else
DD.vars[V] = D.vars[V]
DD.affected_mob.med_hud_set_status()
/mob/living/carbon/ContractDisease(var/datum/disease/D)
/mob/living/carbon/ContractDisease(datum/disease/D)
if(!CanContractDisease(D))
return 0
@@ -135,13 +135,13 @@
//Same as ContractDisease, except never overidden clothes checks
/mob/proc/ForceContractDisease(var/datum/disease/D)
/mob/proc/ForceContractDisease(datum/disease/D)
if(!CanContractDisease(D))
return 0
AddDisease(D)
/mob/living/carbon/human/CanContractDisease(var/datum/disease/D)
/mob/living/carbon/human/CanContractDisease(datum/disease/D)
if(dna && VIRUSIMMUNE in dna.species.specflags)
return 0
return ..()
+2 -2
View File
@@ -97,7 +97,7 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease
break //One missing cure is enough to fail
/datum/disease/proc/spread(var/atom/source, var/force_spread = 0)
/datum/disease/proc/spread(atom/source, force_spread = 0)
if((spread_flags & SPECIAL || spread_flags & NON_CONTAGIOUS || spread_flags & BLOOD) && !force_spread)
return
@@ -172,7 +172,7 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease
SSdisease.processing += src
/datum/disease/proc/IsSame(var/datum/disease/D)
/datum/disease/proc/IsSame(datum/disease/D)
if(istype(src, D.type))
return 1
return 0
+17 -17
View File
@@ -91,7 +91,7 @@ var/list/advance_cures = list(
CRASH("We do not have any symptoms during stage_act()!")
// Compares type then ID.
/datum/disease/advance/IsSame(var/datum/disease/advance/D)
/datum/disease/advance/IsSame(datum/disease/advance/D)
if(!(istype(D, /datum/disease/advance)))
return 0
@@ -101,7 +101,7 @@ var/list/advance_cures = list(
return 1
// To add special resistances.
/datum/disease/advance/cure(var/resistance=1)
/datum/disease/advance/cure(resistance=1)
if(affected_mob)
var/id = "[GetDiseaseID()]"
if(resistance && !(id in affected_mob.resistances))
@@ -110,7 +110,7 @@ var/list/advance_cures = list(
del(src) //delete the datum to stop it processing
// Returns the advance disease with a different reference memory.
/datum/disease/advance/Copy(var/process = 0)
/datum/disease/advance/Copy(process = 0)
return new /datum/disease/advance(process, src, 1)
/*
@@ -120,20 +120,20 @@ var/list/advance_cures = list(
*/
// Mix the symptoms of two diseases (the src and the argument)
/datum/disease/advance/proc/Mix(var/datum/disease/advance/D)
/datum/disease/advance/proc/Mix(datum/disease/advance/D)
if(!(src.IsSame(D)))
var/list/possible_symptoms = shuffle(D.symptoms)
for(var/datum/symptom/S in possible_symptoms)
AddSymptom(new S.type)
/datum/disease/advance/proc/HasSymptom(var/datum/symptom/S)
/datum/disease/advance/proc/HasSymptom(datum/symptom/S)
for(var/datum/symptom/symp in symptoms)
if(symp.id == S.id)
return 1
return 0
// Will generate new unique symptoms, use this if there are none. Returns a list of symptoms that were generated.
/datum/disease/advance/proc/GenerateSymptoms(var/level_min, var/level_max, var/amount_get = 0)
/datum/disease/advance/proc/GenerateSymptoms(level_min, level_max, amount_get = 0)
var/list/generated = list() // Symptoms we generated.
@@ -160,7 +160,7 @@ var/list/advance_cures = list(
return generated
/datum/disease/advance/proc/Refresh(var/new_name = 0)
/datum/disease/advance/proc/Refresh(new_name = 0)
//world << "[src.name] \ref[src] - REFRESH!"
var/list/properties = GenerateProperties()
AssignProperties(properties)
@@ -195,7 +195,7 @@ var/list/advance_cures = list(
return properties
// Assign the properties that are in the list.
/datum/disease/advance/proc/AssignProperties(var/list/properties = list())
/datum/disease/advance/proc/AssignProperties(list/properties = list())
if(properties && properties.len)
switch(properties["stealth"])
@@ -216,7 +216,7 @@ var/list/advance_cures = list(
// Assign the spread type and give it the correct description.
/datum/disease/advance/proc/SetSpread(var/spread_id)
/datum/disease/advance/proc/SetSpread(spread_id)
switch(spread_id)
if(NON_CONTAGIOUS)
spread_text = "None"
@@ -231,7 +231,7 @@ var/list/advance_cures = list(
spread_flags = spread_id
/datum/disease/advance/proc/SetSeverity(var/level_sev)
/datum/disease/advance/proc/SetSeverity(level_sev)
switch(level_sev)
@@ -252,7 +252,7 @@ var/list/advance_cures = list(
// Will generate a random cure, the less resistance the symptoms have, the harder the cure.
/datum/disease/advance/proc/GenerateCure(var/list/properties = list())
/datum/disease/advance/proc/GenerateCure(list/properties = list())
if(properties && properties.len)
var/res = Clamp(properties["resistance"] - (symptoms.len / 2), 1, advance_cures.len)
//world << "Res = [res]"
@@ -266,7 +266,7 @@ var/list/advance_cures = list(
return
// Randomly generate a symptom, has a chance to lose or gain a symptom.
/datum/disease/advance/proc/Evolve(var/min_level, var/max_level)
/datum/disease/advance/proc/Evolve(min_level, max_level)
var/s = safepick(GenerateSymptoms(min_level, max_level, 1))
if(s)
AddSymptom(s)
@@ -283,7 +283,7 @@ var/list/advance_cures = list(
return
// Name the disease.
/datum/disease/advance/proc/AssignName(var/name = "Unknown")
/datum/disease/advance/proc/AssignName(name = "Unknown")
src.name = name
return
@@ -301,7 +301,7 @@ var/list/advance_cures = list(
// Add a symptom, if it is over the limit (with a small chance to be able to go over)
// we take a random symptom away and add the new one.
/datum/disease/advance/proc/AddSymptom(var/datum/symptom/S)
/datum/disease/advance/proc/AddSymptom(datum/symptom/S)
if(HasSymptom(S))
return
@@ -314,7 +314,7 @@ var/list/advance_cures = list(
return
// Simply removes the symptom.
/datum/disease/advance/proc/RemoveSymptom(var/datum/symptom/S)
/datum/disease/advance/proc/RemoveSymptom(datum/symptom/S)
symptoms -= S
return
@@ -357,7 +357,7 @@ var/list/advance_cures = list(
to_return.Refresh(1)
return to_return
/proc/SetViruses(var/datum/reagent/R, var/list/data)
/proc/SetViruses(datum/reagent/R, list/data)
if(data)
var/list/preserve = list()
if(istype(data) && data["viruses"])
@@ -367,7 +367,7 @@ var/list/advance_cures = list(
if(preserve.len)
R.data["viruses"] = preserve
/proc/AdminCreateVirus(var/client/user)
/proc/AdminCreateVirus(client/user)
if(!user)
return
@@ -24,7 +24,7 @@ BONUS
level = 4
severity = 1
/datum/symptom/beard/Activate(var/datum/disease/advance/A)
/datum/symptom/beard/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/M = A.affected_mob
@@ -25,7 +25,7 @@ Bonus
level = 3
severity = 3
/datum/symptom/choking/Activate(var/datum/disease/advance/A)
/datum/symptom/choking/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/M = A.affected_mob
@@ -26,7 +26,7 @@ Bonus
severity = 2
/datum/symptom/confusion/Activate(var/datum/disease/advance/A)
/datum/symptom/confusion/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/carbon/M = A.affected_mob
@@ -25,7 +25,7 @@ BONUS
level = 1
severity = 1
/datum/symptom/cough/Activate(var/datum/disease/advance/A)
/datum/symptom/cough/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/M = A.affected_mob
@@ -24,7 +24,7 @@ Bonus
transmittable = -2
level = 4
/datum/symptom/damage_converter/Activate(var/datum/disease/advance/A)
/datum/symptom/damage_converter/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB * 10))
var/mob/living/M = A.affected_mob
@@ -33,7 +33,7 @@ Bonus
Convert(M)
return
/datum/symptom/damage_converter/proc/Convert(var/mob/living/M)
/datum/symptom/damage_converter/proc/Convert(mob/living/M)
var/get_damage = rand(1, 2)
@@ -25,7 +25,7 @@ Bonus
level = 4
severity = 3
/datum/symptom/deafness/Activate(var/datum/disease/advance/A)
/datum/symptom/deafness/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/M = A.affected_mob
@@ -25,7 +25,7 @@ Bonus
level = 4
severity = 2
/datum/symptom/dizzy/Activate(var/datum/disease/advance/A)
/datum/symptom/dizzy/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/M = A.affected_mob
@@ -25,7 +25,7 @@ Bonus
level = 2
severity = 2
/datum/symptom/fever/Activate(var/datum/disease/advance/A)
/datum/symptom/fever/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/carbon/M = A.affected_mob
@@ -25,7 +25,7 @@ Bonus
level = 6
severity = 5
/datum/symptom/fire/Activate(var/datum/disease/advance/A)
/datum/symptom/fire/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/M = A.affected_mob
@@ -25,7 +25,7 @@ Bonus
level = 6
severity = 5
/datum/symptom/flesh_eating/Activate(var/datum/disease/advance/A)
/datum/symptom/flesh_eating/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/M = A.affected_mob
@@ -27,7 +27,7 @@ Bonus
var/list/possible_mutations
var/archived_dna = null
/datum/symptom/genetic_mutation/Activate(var/datum/disease/advance/A)
/datum/symptom/genetic_mutation/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB * 5)) // 15% chance
var/mob/living/carbon/M = A.affected_mob
@@ -40,7 +40,7 @@ Bonus
return
// Archive their DNA before they were infected.
/datum/symptom/genetic_mutation/Start(var/datum/disease/advance/A)
/datum/symptom/genetic_mutation/Start(datum/disease/advance/A)
possible_mutations = (bad_mutations | not_good_mutations) - mutations_list[RACEMUT]
var/mob/living/carbon/M = A.affected_mob
if(M)
@@ -49,7 +49,7 @@ Bonus
archived_dna = M.dna.struc_enzymes
// Give them back their old DNA when cured.
/datum/symptom/genetic_mutation/End(var/datum/disease/advance/A)
/datum/symptom/genetic_mutation/End(datum/disease/advance/A)
var/mob/living/carbon/M = A.affected_mob
if(M && archived_dna)
if(!check_dna_integrity(M))
@@ -83,6 +83,6 @@ Bonus
level = 6
severity = 0
/datum/symptom/genetic_mutation/powers/Start(var/datum/disease/advance/A)
/datum/symptom/genetic_mutation/powers/Start(datum/disease/advance/A)
..()
possible_mutations = good_mutations
@@ -25,7 +25,7 @@ Bonus
level = 5
severity = 3
/datum/symptom/hallucigen/Activate(var/datum/disease/advance/A)
/datum/symptom/hallucigen/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/carbon/M = A.affected_mob
@@ -26,7 +26,7 @@ BONUS
level = 1
severity = 1
/datum/symptom/headache/Activate(var/datum/disease/advance/A)
/datum/symptom/headache/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/M = A.affected_mob
@@ -24,7 +24,7 @@ Bonus
transmittable = -4
level = 6
/datum/symptom/heal/Activate(var/datum/disease/advance/A)
/datum/symptom/heal/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB * 10))
var/mob/living/M = A.affected_mob
@@ -33,7 +33,7 @@ Bonus
Heal(M, A)
return
/datum/symptom/heal/proc/Heal(var/mob/living/M, var/datum/disease/advance/A)
/datum/symptom/heal/proc/Heal(mob/living/M, datum/disease/advance/A)
var/get_damage = rand(8, 14)
M.adjustToxLoss(-get_damage)
@@ -66,7 +66,7 @@ Bonus
level = 3
var/list/cured_diseases = list()
/datum/symptom/heal/metabolism/Heal(var/mob/living/M, var/datum/disease/advance/A)
/datum/symptom/heal/metabolism/Heal(mob/living/M, datum/disease/advance/A)
var/cured = 0
for(var/datum/disease/D in M.viruses)
if(D != A)
@@ -76,7 +76,7 @@ Bonus
if(cured)
M << "<span class='notice'>You feel much better.</span>"
/datum/symptom/heal/metabolism/End(var/datum/disease/advance/A)
/datum/symptom/heal/metabolism/End(datum/disease/advance/A)
// Remove all the diseases we cured.
var/mob/living/M = A.affected_mob
if(istype(M))
@@ -113,10 +113,10 @@ Bonus
level = 3
var/longevity = 30
/datum/symptom/heal/longevity/Heal(var/mob/living/M, var/datum/disease/advance/A)
/datum/symptom/heal/longevity/Heal(mob/living/M, datum/disease/advance/A)
longevity -= 1
if(!longevity)
A.cure()
/datum/symptom/heal/longevity/Start(var/datum/disease/advance/A)
/datum/symptom/heal/longevity/Start(datum/disease/advance/A)
longevity = rand(initial(longevity) - 5, initial(longevity) + 5)
@@ -26,7 +26,7 @@ BONUS
level = 1
severity = 1
/datum/symptom/itching/Activate(var/datum/disease/advance/A)
/datum/symptom/itching/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/M = A.affected_mob
@@ -24,7 +24,7 @@ Bonus
transmittable = -4
level = 6
/datum/symptom/oxygen/Activate(var/datum/disease/advance/A)
/datum/symptom/oxygen/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB * 5))
var/mob/living/M = A.affected_mob
@@ -24,7 +24,7 @@ BONUS
level = 4
severity = 1
/datum/symptom/shedding/Activate(var/datum/disease/advance/A)
/datum/symptom/shedding/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/M = A.affected_mob
@@ -25,7 +25,7 @@ Bonus
level = 2
severity = 2
/datum/symptom/shivering/Activate(var/datum/disease/advance/A)
/datum/symptom/shivering/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/carbon/M = A.affected_mob
@@ -24,7 +24,7 @@ BONUS
level = 4
severity = 1
/datum/symptom/vitiligo/Activate(var/datum/disease/advance/A)
/datum/symptom/vitiligo/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/M = A.affected_mob
@@ -68,7 +68,7 @@ BONUS
level = 4
severity = 1
/datum/symptom/revitiligo/Activate(var/datum/disease/advance/A)
/datum/symptom/revitiligo/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/M = A.affected_mob
@@ -26,7 +26,7 @@ Bonus
level = 1
severity = 1
/datum/symptom/sneeze/Activate(var/datum/disease/advance/A)
/datum/symptom/sneeze/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/M = A.affected_mob
@@ -24,7 +24,7 @@ Bonus
transmittable = -4
level = 3
/datum/symptom/stimulant/Activate(var/datum/disease/advance/A)
/datum/symptom/stimulant/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB * 10))
var/mob/living/M = A.affected_mob
@@ -28,13 +28,13 @@ var/global/const/SYMPTOM_ACTIVATION_PROB = 3
CRASH("We couldn't assign an ID!")
// Called when processing of the advance disease, which holds this symptom, starts.
/datum/symptom/proc/Start(var/datum/disease/advance/A)
/datum/symptom/proc/Start(datum/disease/advance/A)
return
// Called when the advance disease is going to be deleted or when the advance disease stops processing.
/datum/symptom/proc/End(var/datum/disease/advance/A)
/datum/symptom/proc/End(datum/disease/advance/A)
return
/datum/symptom/proc/Activate(var/datum/disease/advance/A)
/datum/symptom/proc/Activate(datum/disease/advance/A)
return
@@ -25,7 +25,7 @@ Bonus
level = 5
severity = 4
/datum/symptom/visionloss/Activate(var/datum/disease/advance/A)
/datum/symptom/visionloss/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/M = A.affected_mob
@@ -75,7 +75,7 @@ Bonus
transmittable = -4
level = 4
/datum/symptom/visionaid/Activate(var/datum/disease/advance/A)
/datum/symptom/visionaid/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB * 5))
var/mob/living/M = A.affected_mob
@@ -25,7 +25,7 @@ Bonus
level = 6
severity = 2
/datum/symptom/voice_change/Activate(var/datum/disease/advance/A)
/datum/symptom/voice_change/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
@@ -40,7 +40,7 @@ Bonus
return
/datum/symptom/voice_change/End(var/datum/disease/advance/A)
/datum/symptom/voice_change/End(datum/disease/advance/A)
..()
if(ishuman(A.affected_mob))
var/mob/living/carbon/human/H = A.affected_mob
@@ -29,7 +29,7 @@ Bonus
level = 3
severity = 4
/datum/symptom/vomit/Activate(var/datum/disease/advance/A)
/datum/symptom/vomit/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB / 2))
var/mob/living/M = A.affected_mob
@@ -41,7 +41,7 @@ Bonus
return
/datum/symptom/vomit/proc/Vomit(var/mob/living/M)
/datum/symptom/vomit/proc/Vomit(mob/living/M)
M.visible_message("<span class='danger'>[M] vomits on the floor!</span>", \
"<span class='userdanger'>You throw up on the floor!</span>")
@@ -82,7 +82,7 @@ Bonus
level = 4
severity = 5
/datum/symptom/vomit/blood/Vomit(var/mob/living/M)
/datum/symptom/vomit/blood/Vomit(mob/living/M)
M.Stun(1)
M.visible_message("<span class='danger'>[M] vomits on the floor!</span>", \
@@ -25,7 +25,7 @@ Bonus
level = 4
severity = 1
/datum/symptom/weight_gain/Activate(var/datum/disease/advance/A)
/datum/symptom/weight_gain/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/M = A.affected_mob
@@ -67,7 +67,7 @@ Bonus
level = 3
severity = 1
/datum/symptom/weight_loss/Activate(var/datum/disease/advance/A)
/datum/symptom/weight_loss/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/M = A.affected_mob
@@ -109,7 +109,7 @@ Bonus
transmittable = -2
level = 4
/datum/symptom/weight_even/Activate(var/datum/disease/advance/A)
/datum/symptom/weight_even/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/M = A.affected_mob
@@ -24,7 +24,7 @@ BONUS
transmittable = -4
level = 5
/datum/symptom/youth/Activate(var/datum/disease/advance/A)
/datum/symptom/youth/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB * 2))
var/mob/living/M = A.affected_mob
+2 -2
View File
@@ -35,7 +35,7 @@
if(5)
do_disease_transformation(affected_mob)
/datum/disease/transformation/proc/do_disease_transformation(var/mob/living/affected_mob)
/datum/disease/transformation/proc/do_disease_transformation(mob/living/affected_mob)
if(istype(affected_mob, /mob/living/carbon) && affected_mob.stat != DEAD)
if(stage5)
affected_mob << pick(stage5)
@@ -91,7 +91,7 @@
"<span class='warning'>You have a craving for bananas.</span>", "<span class='warning'>Your mind feels clouded.</span>")
stage5 = list("<span class='warning'>You feel like monkeying around.</span>")
/datum/disease/transformation/jungle_fever/do_disease_transformation(var/mob/living/carbon/affected_mob)
/datum/disease/transformation/jungle_fever/do_disease_transformation(mob/living/carbon/affected_mob)
if(!ismonkey(affected_mob))
ticker.mode.add_monkey(affected_mob.mind)
affected_mob.monkeyize(TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPDAMAGE | TR_KEEPVIRUS | TR_KEEPSE)
+1 -1
View File
@@ -54,7 +54,7 @@ STI KALY - blind
/datum/disease/wizarditis/proc/spawn_wizard_clothes(var/chance = 0)
/datum/disease/wizarditis/proc/spawn_wizard_clothes(chance = 0)
if(istype(affected_mob, /mob/living/carbon/human))
var/mob/living/carbon/human/H = affected_mob
if(prob(chance))
+4 -4
View File
@@ -531,7 +531,7 @@ What are the archived variables for?
return 1
/datum/gas_mixture/share(datum/gas_mixture/sharer, var/atmos_adjacent_turfs = 4)
/datum/gas_mixture/share(datum/gas_mixture/sharer, atmos_adjacent_turfs = 4)
if(!sharer) return 0
var/delta_oxygen = QUANTIZE(oxygen_archived - sharer.oxygen_archived)/(atmos_adjacent_turfs+1)
var/delta_carbon_dioxide = QUANTIZE(carbon_dioxide_archived - sharer.carbon_dioxide_archived)/(atmos_adjacent_turfs+1)
@@ -660,7 +660,7 @@ What are the archived variables for?
var/delta_pressure = temperature_archived*(total_moles() + moved_moles) - sharer.temperature_archived*(sharer.total_moles() - moved_moles)
return delta_pressure*R_IDEAL_GAS_EQUATION/volume
/datum/gas_mixture/mimic(turf/model, border_multiplier, var/atmos_adjacent_turfs = 4)
/datum/gas_mixture/mimic(turf/model, border_multiplier, atmos_adjacent_turfs = 4)
var/delta_oxygen = QUANTIZE(oxygen_archived - model.oxygen)/(atmos_adjacent_turfs+1)
var/delta_carbon_dioxide = QUANTIZE(carbon_dioxide_archived - model.carbon_dioxide)/(atmos_adjacent_turfs+1)
var/delta_nitrogen = QUANTIZE(nitrogen_archived - model.nitrogen)/(atmos_adjacent_turfs+1)
@@ -944,13 +944,13 @@ What are the archived variables for?
//Does handle trace gases!
/datum/gas_mixture/proc/get_breath_partial_pressure(var/gas_pressure)
/datum/gas_mixture/proc/get_breath_partial_pressure(gas_pressure)
var/breath_pressure = (total_moles()*R_IDEAL_GAS_EQUATION*temperature)/BREATH_VOLUME
return (gas_pressure/total_moles())*breath_pressure
//Reverse of the above
/datum/gas_mixture/proc/get_true_breath_pressure(var/breath_pp)
/datum/gas_mixture/proc/get_true_breath_pressure(breath_pp)
var/breath_pressure = (total_moles()/R_IDEAL_GAS_EQUATION/temperature)*BREATH_VOLUME
return (breath_pp/breath_pressure*total_moles())
@@ -23,10 +23,10 @@
set_desc(steps.len)
return
/datum/construction/proc/action(atom/used_atom,mob/user as mob)
/datum/construction/proc/action(atom/used_atom,mob/user)
return
/datum/construction/proc/check_step(atom/used_atom,mob/user as mob) //check last step only
/datum/construction/proc/check_step(atom/used_atom,mob/user) //check last step only
var/valid_step = is_right_key(used_atom)
if(valid_step)
if(custom_action(valid_step, used_atom, user))
@@ -43,7 +43,7 @@
/datum/construction/proc/custom_action(step, used_atom, user)
return 1
/datum/construction/proc/check_all_steps(atom/used_atom,mob/user as mob) //check all steps, remove matching one.
/datum/construction/proc/check_all_steps(atom/used_atom,mob/user) //check all steps, remove matching one.
for(var/i=1;i<=steps.len;i++)
var/list/L = steps[i];
if(istype(used_atom, L["key"]))
@@ -91,7 +91,7 @@
return BACKWARD //to the last step -> backwards
return 0
/datum/construction/reversible/check_step(atom/used_atom,mob/user as mob)
/datum/construction/reversible/check_step(atom/used_atom,mob/user)
var/diff = is_right_key(used_atom)
if(diff)
if(custom_action(index, diff, used_atom, user))
+6 -6
View File
@@ -18,35 +18,35 @@ var/datum/atom_hud/huds = list( \
var/list/mob/hudusers = list() //list with all mobs who can see the hud
var/list/hud_icons = list() //these will be the indexes for the atom's hud_list
/datum/atom_hud/proc/remove_hud_from(var/mob/M)
/datum/atom_hud/proc/remove_hud_from(mob/M)
if(src in M.permanent_huds)
return
for(var/atom/A in hudatoms)
remove_from_single_hud(M, A)
hudusers -= M
/datum/atom_hud/proc/remove_from_hud(var/atom/A)
/datum/atom_hud/proc/remove_from_hud(atom/A)
for(var/mob/M in hudusers)
remove_from_single_hud(M, A)
hudatoms -= A
/datum/atom_hud/proc/remove_from_single_hud(var/mob/M, var/atom/A) //unsafe, no sanity apart from client
/datum/atom_hud/proc/remove_from_single_hud(mob/M, atom/A) //unsafe, no sanity apart from client
if(!M.client)
return
for(var/i in hud_icons)
M.client.images -= A.hud_list[i]
/datum/atom_hud/proc/add_hud_to(var/mob/M)
/datum/atom_hud/proc/add_hud_to(mob/M)
hudusers |= M
for(var/atom/A in hudatoms)
add_to_single_hud(M, A)
/datum/atom_hud/proc/add_to_hud(var/atom/A)
/datum/atom_hud/proc/add_to_hud(atom/A)
hudatoms |= A
for(var/mob/M in hudusers)
add_to_single_hud(M, A)
/datum/atom_hud/proc/add_to_single_hud(var/mob/M, var/atom/A) //unsafe, no sanity apart from client
/datum/atom_hud/proc/add_to_single_hud(mob/M, atom/A) //unsafe, no sanity apart from client
if(!M.client)
return
for(var/i in hud_icons)
+32 -32
View File
@@ -6,16 +6,16 @@
var/temporary = 0
var/datum/martial_art/base = null // The permanent style
/datum/martial_art/proc/disarm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
/datum/martial_art/proc/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
return 0
/datum/martial_art/proc/harm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
/datum/martial_art/proc/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
return 0
/datum/martial_art/proc/grab_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
/datum/martial_art/proc/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
return 0
/datum/martial_art/proc/add_to_streak(var/element,var/mob/living/carbon/human/D)
/datum/martial_art/proc/add_to_streak(element,mob/living/carbon/human/D)
if(D != current_target)
current_target = D
streak = ""
@@ -24,7 +24,7 @@
streak = copytext(streak,2)
return
/datum/martial_art/proc/basic_hit(var/mob/living/carbon/human/A,var/mob/living/carbon/human/D)
/datum/martial_art/proc/basic_hit(mob/living/carbon/human/A,mob/living/carbon/human/D)
A.do_attack_animation(D)
var/damage = rand(0,9)
@@ -71,7 +71,7 @@
D.forcesay(hit_appends)
return 1
/datum/martial_art/proc/teach(var/mob/living/carbon/human/H,var/make_temporary=0)
/datum/martial_art/proc/teach(mob/living/carbon/human/H,make_temporary=0)
if(make_temporary)
temporary = 1
if(H.martial_art && H.martial_art.temporary)
@@ -82,7 +82,7 @@
return
H.martial_art = src
/datum/martial_art/proc/remove(var/mob/living/carbon/human/H)
/datum/martial_art/proc/remove(mob/living/carbon/human/H)
if(H.martial_art != src)
return
H.martial_art = base
@@ -90,15 +90,15 @@
/datum/martial_art/boxing
name = "Boxing"
/datum/martial_art/boxing/disarm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
/datum/martial_art/boxing/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
A << "<span class='warning'>Can't disarm while boxing!</span>"
return 1
/datum/martial_art/boxing/grab_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
/datum/martial_art/boxing/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
A << "<span class='warning'>Can't grab while boxing!</span>"
return 1
/datum/martial_art/boxing/harm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
/datum/martial_art/boxing/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
A.do_attack_animation(D)
@@ -143,7 +143,7 @@
/datum/martial_art/wrestling
name = "Wrestling"
/datum/martial_art/wrestling/harm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
/datum/martial_art/wrestling/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
D.grabbedby(A,1)
var/obj/item/weapon/grab/G = A.get_active_hand()
if(G && prob(50))
@@ -156,7 +156,7 @@
return 1
/datum/martial_art/wrestling/proc/Suplex(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
/datum/martial_art/wrestling/proc/Suplex(mob/living/carbon/human/A, mob/living/carbon/human/D)
D.visible_message("<span class='danger'>[A] suplexes [D]!</span>", \
"<span class='userdanger'>[A] suplexes [D]!</span>")
@@ -174,7 +174,7 @@
A.apply_effect(4, WEAKEN, armor_block)
return
/datum/martial_art/wrestling/disarm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
/datum/martial_art/wrestling/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
if(istype(A.get_inactive_hand(),/obj/item/weapon/grab))
var/obj/item/weapon/grab/G = A.get_inactive_hand()
if(G.affecting == D)
@@ -183,7 +183,7 @@
harm_act(A,D)
return 1
/datum/martial_art/wrestling/grab_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
/datum/martial_art/wrestling/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
D.grabbedby(A,1)
D.visible_message("<span class='danger'>[A] holds [D] down!</span>", \
"<span class='userdanger'>[A] holds [D] down!</span>")
@@ -199,7 +199,7 @@
/datum/martial_art/plasma_fist
name = "Plasma Fist"
/datum/martial_art/plasma_fist/proc/check_streak(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
/datum/martial_art/plasma_fist/proc/check_streak(mob/living/carbon/human/A, mob/living/carbon/human/D)
if(findtext(streak,TORNADO_COMBO))
streak = ""
Tornado(A,D)
@@ -214,7 +214,7 @@
return 1
return 0
/datum/martial_art/plasma_fist/proc/Tornado(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
/datum/martial_art/plasma_fist/proc/Tornado(mob/living/carbon/human/A, mob/living/carbon/human/D)
A.say("TORNADO SWEEP!")
spawn(0)
for(var/i in list(NORTH,SOUTH,EAST,WEST,EAST,SOUTH,NORTH,SOUTH,EAST,WEST,EAST,SOUTH))
@@ -228,7 +228,7 @@
R.cast(turfs)
return
/datum/martial_art/plasma_fist/proc/Throwback(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
/datum/martial_art/plasma_fist/proc/Throwback(mob/living/carbon/human/A, mob/living/carbon/human/D)
D.visible_message("<span class='danger'>[A] has hit [D] with Plasma Punch!</span>", \
"<span class='userdanger'>[A] has hit [D] with Plasma Punch!</span>")
playsound(D.loc, 'sound/weapons/punch1.ogg', 50, 1, -1)
@@ -237,7 +237,7 @@
A.say("HYAH!")
return
/datum/martial_art/plasma_fist/proc/Plasma(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
/datum/martial_art/plasma_fist/proc/Plasma(mob/living/carbon/human/A, mob/living/carbon/human/D)
A.do_attack_animation(D)
playsound(D.loc, 'sound/weapons/punch1.ogg', 50, 1, -1)
A.say("PLASMA FIST!")
@@ -251,21 +251,21 @@
D.gib()
return
/datum/martial_art/plasma_fist/harm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
/datum/martial_art/plasma_fist/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
add_to_streak("H")
if(check_streak(A,D))
return 1
basic_hit(A,D)
return 1
/datum/martial_art/plasma_fist/disarm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
/datum/martial_art/plasma_fist/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
add_to_streak("D")
if(check_streak(A,D))
return 1
basic_hit(A,D)
return 1
/datum/martial_art/plasma_fist/grab_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
/datum/martial_art/plasma_fist/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
add_to_streak("G")
if(check_streak(A,D))
return 1
@@ -282,7 +282,7 @@
/datum/martial_art/the_sleeping_carp
name = "The Sleeping Carp"
/datum/martial_art/the_sleeping_carp/proc/check_streak(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
/datum/martial_art/the_sleeping_carp/proc/check_streak(mob/living/carbon/human/A, mob/living/carbon/human/D)
if(findtext(streak,WRIST_WRENCH_COMBO))
streak = ""
wristWrench(A,D)
@@ -305,7 +305,7 @@
return 1
return 0
/datum/martial_art/the_sleeping_carp/proc/wristWrench(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
/datum/martial_art/the_sleeping_carp/proc/wristWrench(mob/living/carbon/human/A, mob/living/carbon/human/D)
if(!D.stat && !D.stunned && !D.weakened)
D.visible_message("<span class='warning'>[A] grabs [D]'s wrist and wrenches it sideways!</span>", \
"<span class='userdanger'>[A] grabs your wrist and violently wrenches it to the side!</span>")
@@ -317,7 +317,7 @@
return 1
return basic_hit(A,D)
/datum/martial_art/the_sleeping_carp/proc/backKick(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
/datum/martial_art/the_sleeping_carp/proc/backKick(mob/living/carbon/human/A, mob/living/carbon/human/D)
if(A.dir == D.dir && !D.stat && !D.weakened)
D.visible_message("<span class='warning'>[A] kicks [D] in the back!</span>", \
"<span class='userdanger'>[A] kicks you in the back, making you stumble and fall!</span>")
@@ -327,7 +327,7 @@
return 1
return basic_hit(A,D)
/datum/martial_art/the_sleeping_carp/proc/kneeStomach(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
/datum/martial_art/the_sleeping_carp/proc/kneeStomach(mob/living/carbon/human/A, mob/living/carbon/human/D)
if(!D.stat && !D.weakened)
D.visible_message("<span class='warning'>[A] knees [D] in the stomach!</span>", \
"<span class'userdanger'>[A] winds you with a knee in the stomach!</span>")
@@ -338,7 +338,7 @@
return 1
return basic_hit(A,D)
/datum/martial_art/the_sleeping_carp/proc/headKick(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
/datum/martial_art/the_sleeping_carp/proc/headKick(mob/living/carbon/human/A, mob/living/carbon/human/D)
if(!D.stat && !D.weakened)
D.visible_message("<span class='warning'>[A] kicks [D] in the head!</span>", \
"<span class='userdanger'>[A] kicks you in the jaw!</span>")
@@ -348,7 +348,7 @@
return 1
return basic_hit(A,D)
/datum/martial_art/the_sleeping_carp/proc/elbowDrop(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
/datum/martial_art/the_sleeping_carp/proc/elbowDrop(mob/living/carbon/human/A, mob/living/carbon/human/D)
if(D.weakened || D.resting || D.stat)
D.visible_message("<span class='warning'>[A] elbow drops [D]!</span>", \
"<span class='userdanger'>[A] piledrives you with their elbow!</span>")
@@ -359,7 +359,7 @@
return 1
return basic_hit(A,D)
/datum/martial_art/the_sleeping_carp/grab_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
/datum/martial_art/the_sleeping_carp/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
add_to_streak("G")
if(check_streak(A,D))
return 1
@@ -368,7 +368,7 @@
if(G)
G.state = GRAB_AGGRESSIVE //Instant aggressive grab
/datum/martial_art/the_sleeping_carp/harm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
/datum/martial_art/the_sleeping_carp/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
add_to_streak("H")
if(check_streak(A,D))
return 1
@@ -379,7 +379,7 @@
return 1
/datum/martial_art/the_sleeping_carp/disarm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
/datum/martial_art/the_sleeping_carp/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
add_to_streak("D")
if(check_streak(A,D))
return 1
@@ -445,7 +445,7 @@
icon_state ="scroll2"
var/used = 0
/obj/item/weapon/plasma_fist_scroll/attack_self(mob/user as mob)
/obj/item/weapon/plasma_fist_scroll/attack_self(mob/user)
if(!ishuman(user))
return
if(!used)
@@ -464,7 +464,7 @@
icon = 'icons/obj/wizard.dmi'
icon_state = "scroll2"
/obj/item/weapon/sleeping_carp_scroll/attack_self(mob/living/carbon/human/user as mob)
/obj/item/weapon/sleeping_carp_scroll/attack_self(mob/living/carbon/human/user)
if(!istype(user) || !user)
return
user << "<span class='notice'>You begin to read the scroll...</span>"
+4 -4
View File
@@ -1261,7 +1261,7 @@
ticker.mode.finalize_traitor(src)
ticker.mode.greet_traitor(src)
/datum/mind/proc/make_Nuke(var/turf/spawnloc,var/nuke_code,var/leader=0)
/datum/mind/proc/make_Nuke(turf/spawnloc,nuke_code,leader=0)
if(!(src in ticker.mode.syndicates))
ticker.mode.syndicates += src
ticker.mode.update_synd_icons_added(src)
@@ -1385,7 +1385,7 @@
fail |= !ticker.mode.equip_revolutionary(current)
/datum/mind/proc/make_Gang(var/datum/gang/G)
/datum/mind/proc/make_Gang(datum/gang/G)
special_role = "[G.name] Gang Boss"
G.bosses += src
gang_datum = G
@@ -1447,7 +1447,7 @@
/datum/mind/proc/AddSpell(var/obj/effect/proc_holder/spell/spell)
/datum/mind/proc/AddSpell(obj/effect/proc_holder/spell/spell)
spell_list += spell
if(!spell.action)
spell.action = new/datum/action/spell_action
@@ -1458,7 +1458,7 @@
spell.action.background_icon_state = spell.action_background_icon_state
spell.action.Grant(current)
return
/datum/mind/proc/transfer_actions(var/mob/living/new_character)
/datum/mind/proc/transfer_actions(mob/living/new_character)
if(current && current.actions)
for(var/datum/action/A in current.actions)
A.Grant(new_character)
+3 -3
View File
@@ -30,14 +30,14 @@ var/list/modules = list( // global associative list
status = needed
installed = needed
/datum/moduletypes/proc/addmod(var/type, var/modtextlist)
/datum/moduletypes/proc/addmod(type, modtextlist)
modules += type // index by type text
modules[type] = modtextlist
/datum/moduletypes/proc/inmodlist(var/type)
/datum/moduletypes/proc/inmodlist(type)
return ("[type]" in modules)
/datum/moduletypes/proc/getbitmask(var/type)
/datum/moduletypes/proc/getbitmask(type)
var/count = modcount["[type]"]
if(count)
return 2**count-1
+8 -8
View File
@@ -86,7 +86,7 @@
return 0
return 1
/datum/mutation/human/proc/say_mod(var/message)
/datum/mutation/human/proc/say_mod(message)
if(message)
return message
@@ -130,7 +130,7 @@
return
owner.status_flags |= CANSTUN | CANWEAKEN | CANPARALYSE | CANPUSH
/datum/mutation/human/hulk/say_mod(var/message)
/datum/mutation/human/hulk/say_mod(message)
if(message)
message = "[uppertext(replacetext(message, ".", "!"))]!!"
return message
@@ -225,7 +225,7 @@
quality = NEGATIVE
text_gain_indication = "<span class='danger'>You feel strange.</span>"
/datum/mutation/human/bad_dna/on_acquiring(var/mob/living/carbon/human/owner)
/datum/mutation/human/bad_dna/on_acquiring(mob/living/carbon/human/owner)
owner << text_gain_indication
var/mob/new_mob
if(prob(95))
@@ -426,7 +426,7 @@
text_gain_indication = "<span class='notice'>You feel so happy. Nothing can be wrong with anything. :)</span>"
text_lose_indication = "<span class='notice'>Everything is terrible again. :(</span>"
/datum/mutation/human/smile/say_mod(var/message)
/datum/mutation/human/smile/say_mod(message)
if(message)
message = " [message] "
//Time for a friendly game of SS13
@@ -481,7 +481,7 @@
text_gain_indication = "<span class='danger'>You can't seem to form any coherent thoughts!</span>"
text_lose_indication = "<span class='danger'>Your mind feels more clear.</span>"
/datum/mutation/human/unintelligable/say_mod(var/message)
/datum/mutation/human/unintelligable/say_mod(message)
if(message)
var/prefix=copytext(message,1,2)
if(prefix == ";")
@@ -512,7 +512,7 @@
text_gain_indication = "<span class='notice'>You feel Swedish, however that works.</span>"
text_lose_indication = "<span class='notice'>The feeling of Swedishness passes.</span>"
/datum/mutation/human/swedish/say_mod(var/message)
/datum/mutation/human/swedish/say_mod(message)
if(message)
message = replacetext(message,"w","v")
if(prob(30))
@@ -525,7 +525,7 @@
text_gain_indication = "<span class='notice'>Ye feel like a reet prat like, innit?</span>"
text_lose_indication = "<span class='notice'>You no longer feel like being rude and sassy.</span>"
/datum/mutation/human/chav/say_mod(var/message)
/datum/mutation/human/chav/say_mod(message)
if(message)
message = " [message] "
message = replacetext(message," looking at "," gawpin' at ")
@@ -568,7 +568,7 @@
if(prob(15))
owner.visible_message("<b>[owner]</b> [pick("jiggles their hips", "rotates their hips", "gyrates their hips", "taps their foot", "dances to an imaginary song", "jiggles their legs", "snaps their fingers")]!")
/datum/mutation/human/elvis/say_mod(var/message)
/datum/mutation/human/elvis/say_mod(message)
if(message)
message = " [message] "
message = replacetext(message," i'm not "," I aint ")
+5 -5
View File
@@ -40,7 +40,7 @@
var/time = 100 // 1/10 part of second
/datum/recipe/proc/check_reagents(var/datum/reagents/avail_reagents) //1=precisely, 0=insufficiently, -1=superfluous
/datum/recipe/proc/check_reagents(datum/reagents/avail_reagents) //1=precisely, 0=insufficiently, -1=superfluous
. = 1
for (var/r_r in reagents)
var/aval_r_amnt = avail_reagents.get_reagent_amount(r_r)
@@ -53,7 +53,7 @@
return -1
return .
/datum/recipe/proc/check_items(var/obj/container as obj) //1=precisely, 0=insufficiently, -1=superfluous
/datum/recipe/proc/check_items(obj/container) //1=precisely, 0=insufficiently, -1=superfluous
if (!items)
if (locate(/obj/) in container)
return -1
@@ -75,7 +75,7 @@
return .
//general version
/datum/recipe/proc/make(var/obj/container as obj)
/datum/recipe/proc/make(obj/container)
var/obj/result_obj = new result(container)
for (var/obj/O in (container.contents-result_obj))
O.reagents.trans_to(result_obj, O.reagents.total_volume)
@@ -84,7 +84,7 @@
return result_obj
// food-related
/datum/recipe/proc/make_food(var/obj/container as obj)
/datum/recipe/proc/make_food(obj/container)
var/obj/result_obj = new result(container)
for (var/obj/O in (container.contents-result_obj))
if (O.reagents)
@@ -95,7 +95,7 @@
container.reagents.clear_reagents()
return result_obj
/proc/select_recipe(var/list/datum/recipe/avaiable_recipes, var/obj/obj as obj, var/exact = 1 as num)
/proc/select_recipe(list/datum/recipe/avaiable_recipes, obj/obj, exact = 1 as num)
if (!exact)
exact = -1
var/list/datum/recipe/possible_recipes = new
+3 -3
View File
@@ -94,17 +94,17 @@
jaunt_duration = 50 //in deciseconds
centcom_cancast = 0 //Stop people from getting to centcom
/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/jaunt_disappear(var/atom/movable/overlay/animation, var/mob/living/target)
/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/jaunt_disappear(atom/movable/overlay/animation, mob/living/target)
animation.icon_state = "phase_shift"
animation.dir = target.dir
flick("phase_shift",animation)
/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/jaunt_reappear(var/atom/movable/overlay/animation, var/mob/living/target)
/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/jaunt_reappear(atom/movable/overlay/animation, mob/living/target)
animation.icon_state = "phase_shift2"
animation.dir = target.dir
flick("phase_shift2",animation)
/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/jaunt_steam(var/mobloc)
/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/jaunt_steam(mobloc)
return
/obj/effect/proc_holder/spell/targeted/projectile/magic_missile/lesser
+3 -3
View File
@@ -60,16 +60,16 @@
qdel(animation)
qdel(holder)
/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/proc/jaunt_disappear(var/atom/movable/overlay/animation, var/mob/living/target)
/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/proc/jaunt_disappear(atom/movable/overlay/animation, mob/living/target)
animation.icon_state = "liquify"
flick("liquify",animation)
/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/proc/jaunt_reappear(var/atom/movable/overlay/animation, var/mob/living/target)
/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/proc/jaunt_reappear(atom/movable/overlay/animation, mob/living/target)
flick("reappear",animation)
/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/proc/jaunt_steam(var/mobloc)
/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/proc/jaunt_steam(mobloc)
var/datum/effect/effect/system/steam_spread/steam = new /datum/effect/effect/system/steam_spread()
steam.set_up(10, 0, mobloc)
steam.start()
+1 -1
View File
@@ -297,7 +297,7 @@
action_icon_state = "fireball"
sound = "sound/magic/Fireball.ogg"
/obj/effect/proc_holder/spell/turf/fireball/cast(var/turf/T)
/obj/effect/proc_holder/spell/turf/fireball/cast(turf/T)
explosion(T, -1, 0, 2, 3, 0, flame_range = 2)
+1 -1
View File
@@ -17,7 +17,7 @@ var/const/supply_misc = 8
var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engineer,supply_medical,supply_science,supply_organic,supply_materials,supply_misc)
/proc/get_supply_group_name(var/cat)
/proc/get_supply_group_name(cat)
switch(cat)
if(1)
return "Emergency"
+3 -3
View File
@@ -49,14 +49,14 @@ var/list/uplink_items = list()
var/list/excludefrom = list() //Empty list does nothing. Place the name of gamemode you don't want this item to be available in here. This is so you dont have to list EVERY mode to exclude something.
var/surplus = 100 //Chance of being included in the surplus crate (when pick() selects it)
/datum/uplink_item/proc/spawn_item(var/turf/loc, var/obj/item/device/uplink/U)
/datum/uplink_item/proc/spawn_item(turf/loc, obj/item/device/uplink/U)
if(item)
U.uses -= max(cost, 0)
U.used_TC += cost
feedback_add_details("traitor_uplink_items_bought", "[item]")
return new item(loc)
/datum/uplink_item/proc/buy(var/obj/item/device/uplink/U, var/mob/user)
/datum/uplink_item/proc/buy(obj/item/device/uplink/U, mob/user)
..()
if(!istype(U))
@@ -775,7 +775,7 @@ var/list/uplink_items = list()
item = /obj/item/weapon/storage/box/syndicate
cost = 0
/datum/uplink_item/badass/random/spawn_item(var/turf/loc, var/obj/item/device/uplink/U)
/datum/uplink_item/badass/random/spawn_item(turf/loc, obj/item/device/uplink/U)
var/list/buyable_items = get_uplink_items()
var/list/possible_items = list()
+1 -1
View File
@@ -118,7 +118,7 @@ var/const/AIRLOCK_WIRE_LIGHT = 2048
A.update_icon()
/datum/wires/airlock/UpdatePulsed(var/index)
/datum/wires/airlock/UpdatePulsed(index)
var/obj/machinery/door/airlock/A = holder
switch(index)
+3 -3
View File
@@ -9,7 +9,7 @@ var/const/AALARM_WIRE_AI_CONTROL = 8
var/const/AALARM_WIRE_AALARM = 16
/datum/wires/alarm/CanUse(var/mob/living/L)
/datum/wires/alarm/CanUse(mob/living/L)
var/obj/machinery/alarm/A = holder
if(A.panel_open && A.buildstage == 2)
return 1
@@ -20,7 +20,7 @@ var/const/AALARM_WIRE_AALARM = 16
. += ..()
. += text("<br>\n[(A.locked ? "The Air Alarm is locked." : "The Air Alarm is unlocked.")]<br>\n[((A.shorted || (A.stat & (NOPOWER|BROKEN))) ? "The Air Alarm is offline." : "The Air Alarm is working properly!")]<br>\n[(A.aidisabled ? "The 'AI control allowed' light is off." : "The 'AI control allowed' light is on.")]")
/datum/wires/alarm/UpdateCut(var/index, var/mended)
/datum/wires/alarm/UpdateCut(index, mended)
var/obj/machinery/alarm/A = holder
switch(index)
if(AALARM_WIRE_IDSCAN)
@@ -50,7 +50,7 @@ var/const/AALARM_WIRE_AALARM = 16
A.post_alert(2)
A.update_icon()
/datum/wires/alarm/UpdatePulsed(var/index)
/datum/wires/alarm/UpdatePulsed(index)
var/obj/machinery/alarm/A = holder
switch(index)
if(AALARM_WIRE_IDSCAN)
+3 -3
View File
@@ -13,13 +13,13 @@ var/const/APC_WIRE_AI_CONTROL = 8
. += text("<br>\n[(A.locked ? "The APC is locked." : "The APC is unlocked.")]<br>\n[(A.shorted ? "The APCs power has been shorted." : "The APC is working properly!")]<br>\n[(A.aidisabled ? "The 'AI control allowed' light is off." : "The 'AI control allowed' light is on.")]")
/datum/wires/apc/CanUse(var/mob/living/L)
/datum/wires/apc/CanUse(mob/living/L)
var/obj/machinery/power/apc/A = holder
if(A.wiresexposed)
return 1
return 0
/datum/wires/apc/UpdatePulsed(var/index)
/datum/wires/apc/UpdatePulsed(index)
var/obj/machinery/power/apc/A = holder
@@ -53,7 +53,7 @@ var/const/APC_WIRE_AI_CONTROL = 8
A.updateDialog()
/datum/wires/apc/UpdateCut(var/index, var/mended)
/datum/wires/apc/UpdateCut(index, mended)
var/obj/machinery/power/apc/A = holder
switch(index)
+1 -1
View File
@@ -18,7 +18,7 @@ var/const/AUTOLATHE_DISABLE_WIRE = 4
return 1
return 0
/datum/wires/autolathe/Interact(var/mob/living/user)
/datum/wires/autolathe/Interact(mob/living/user)
if(CanUse(user))
var/obj/machinery/autolathe/V = holder
V.attack_hand(user)
+5 -5
View File
@@ -6,12 +6,12 @@ var/const/WIRE_EXPLODE = 1
/datum/wires/explosive/proc/explode()
return
/datum/wires/explosive/UpdatePulsed(var/index)
/datum/wires/explosive/UpdatePulsed(index)
switch(index)
if(WIRE_EXPLODE)
explode()
/datum/wires/explosive/UpdateCut(var/index, var/mended)
/datum/wires/explosive/UpdateCut(index, mended)
switch(index)
if(WIRE_EXPLODE)
if(!mended)
@@ -20,7 +20,7 @@ var/const/WIRE_EXPLODE = 1
/datum/wires/explosive/c4
holder_type = /obj/item/weapon/c4
/datum/wires/explosive/c4/CanUse(var/mob/living/L)
/datum/wires/explosive/c4/CanUse(mob/living/L)
var/obj/item/weapon/c4/P = holder
if(P.open_panel)
return 1
@@ -35,10 +35,10 @@ var/const/WIRE_EXPLODE = 1
/datum/wires/explosive/gibtonite
holder_type = /obj/item/weapon/twohanded/required/gibtonite
/datum/wires/explosive/gibtonite/CanUse(var/mob/living/L)
/datum/wires/explosive/gibtonite/CanUse(mob/living/L)
return 1
/datum/wires/explosive/gibtonite/UpdateCut(var/index, var/mended)
/datum/wires/explosive/gibtonite/UpdateCut(index, mended)
return
/datum/wires/explosive/gibtonite/explode()
+3 -3
View File
@@ -13,19 +13,19 @@ var/const/WIRE_REMOTE_RX = 64 // remote recv functions
var/const/WIRE_REMOTE_TX = 128 // remote trans status
var/const/WIRE_BEACON_RX = 256 // beacon ping recv
/datum/wires/mulebot/CanUse(var/mob/living/L)
/datum/wires/mulebot/CanUse(mob/living/L)
var/obj/machinery/bot/mulebot/M = holder
if(M.open)
return 1
return 0
// So the wires do not open a new window, handle the interaction ourselves.
/datum/wires/mulebot/Interact(var/mob/living/user)
/datum/wires/mulebot/Interact(mob/living/user)
if(CanUse(user))
var/obj/machinery/bot/mulebot/M = holder
M.interact(user)
/datum/wires/mulebot/UpdatePulsed(var/index)
/datum/wires/mulebot/UpdatePulsed(index)
switch(index)
if(WIRE_POWER1, WIRE_POWER2)
holder.visible_message("<span class='notice'>\icon[holder] The charge light flickers.</span>")
+3 -3
View File
@@ -8,13 +8,13 @@ var/const/PARTICLE_INTERFACE_WIRE = 4 // Determines the interface showing up.
var/const/PARTICLE_LIMIT_POWER_WIRE = 8 // Determines how strong the PA can be.
//var/const/PARTICLE_NOTHING_WIRE = 16 // Blank wire
/datum/wires/particle_acc/control_box/CanUse(var/mob/living/L)
/datum/wires/particle_acc/control_box/CanUse(mob/living/L)
var/obj/machinery/particle_accelerator/control_box/C = holder
if(C.construction_state == 2)
return 1
return 0
/datum/wires/particle_acc/control_box/UpdatePulsed(var/index)
/datum/wires/particle_acc/control_box/UpdatePulsed(index)
var/obj/machinery/particle_accelerator/control_box/C = holder
switch(index)
@@ -30,7 +30,7 @@ var/const/PARTICLE_LIMIT_POWER_WIRE = 8 // Determines how strong the PA can be.
if(PARTICLE_LIMIT_POWER_WIRE)
C.visible_message("\icon[C]<b>[C]</b> makes a large whirring noise.")
/datum/wires/particle_acc/control_box/UpdateCut(var/index, var/mended)
/datum/wires/particle_acc/control_box/UpdateCut(index, mended)
var/obj/machinery/particle_accelerator/control_box/C = holder
switch(index)
+3 -3
View File
@@ -6,18 +6,18 @@ var/const/WIRE_SIGNAL = 1
var/const/WIRE_RECEIVE = 2
var/const/WIRE_TRANSMIT = 4
/datum/wires/radio/CanUse(var/mob/living/L)
/datum/wires/radio/CanUse(mob/living/L)
var/obj/item/device/radio/R = holder
if(R.b_stat)
return 1
return 0
/datum/wires/radio/Interact(var/mob/living/user)
/datum/wires/radio/Interact(mob/living/user)
if(CanUse(user))
var/obj/item/device/radio/R = holder
R.interact(user)
/datum/wires/radio/UpdatePulsed(var/index)
/datum/wires/radio/UpdatePulsed(index)
var/obj/item/device/radio/R = holder
switch(index)
if(WIRE_SIGNAL)
+3 -3
View File
@@ -18,7 +18,7 @@ var/const/BORG_WIRE_CAMERA = 16
. += text("<br>\n[(R.lockcharge ? "The lockdown light is on." : "The lockdown light is off.")]")
return .
/datum/wires/robot/UpdateCut(var/index, var/mended)
/datum/wires/robot/UpdateCut(index, mended)
var/mob/living/silicon/robot/R = holder
switch(index)
@@ -49,7 +49,7 @@ var/const/BORG_WIRE_CAMERA = 16
R.SetLockdown(!mended)
/datum/wires/robot/UpdatePulsed(var/index)
/datum/wires/robot/UpdatePulsed(index)
var/mob/living/silicon/robot/R = holder
switch(index)
@@ -89,7 +89,7 @@ var/const/BORG_WIRE_CAMERA = 16
if(BORG_WIRE_LOCKED_DOWN)
R.SetLockdown(!R.lockcharge) // Toggle
/datum/wires/robot/CanUse(var/mob/living/L)
/datum/wires/robot/CanUse(mob/living/L)
var/mob/living/silicon/robot/R = holder
if(R.wiresexposed)
return 1
+3 -3
View File
@@ -10,13 +10,13 @@ var/const/WIRE_PROCEED = 8 // Lowers the timer, explodes if cut while the bomb
var/const/WIRE_ACTIVATE = 16 // Will start a bombs timer if pulsed, will hint if pulsed while already active, will stop a timer a bomb on cut
/datum/wires/syndicatebomb/CanUse(var/mob/living/L)
/datum/wires/syndicatebomb/CanUse(mob/living/L)
var/obj/machinery/syndicatebomb/P = holder
if(P.open_panel)
return 1
return 0
/datum/wires/syndicatebomb/UpdatePulsed(var/index)
/datum/wires/syndicatebomb/UpdatePulsed(index)
var/obj/machinery/syndicatebomb/P = holder
switch(index)
if(WIRE_BOOM)
@@ -48,7 +48,7 @@ var/const/WIRE_ACTIVATE = 16 // Will start a bombs timer if pulsed, will hint if
P.loc.visible_message("<span class='notice'>\icon[holder] The bomb seems to hesitate for a moment.</span>")
P.timer += 5
/datum/wires/syndicatebomb/UpdateCut(var/index, var/mended)
/datum/wires/syndicatebomb/UpdateCut(index, mended)
var/obj/machinery/syndicatebomb/P = holder
switch(index)
if(WIRE_EXPLODE)
+2 -2
View File
@@ -6,14 +6,14 @@ var/const/WIRE_PLAY = 1
var/const/WIRE_RECORD = 2
/datum/wires/taperecorder/UpdatePulsed(var/index)
/datum/wires/taperecorder/UpdatePulsed(index)
switch(index)
if(WIRE_PLAY)
play()
if(WIRE_RECORD)
record()
/datum/wires/taperecorder/CanUse(var/mob/living/L)
/datum/wires/taperecorder/CanUse(mob/living/L)
var/obj/item/device/taperecorder/T = holder
if(T.open_panel)
return 1
+4 -4
View File
@@ -7,7 +7,7 @@ var/const/VENDING_WIRE_CONTRABAND = 2
var/const/VENDING_WIRE_ELECTRIFY = 4
var/const/VENDING_WIRE_IDSCAN = 8
/datum/wires/vending/CanUse(var/mob/living/L)
/datum/wires/vending/CanUse(mob/living/L)
var/obj/machinery/vending/V = holder
if(!istype(L, /mob/living/silicon))
if(V.seconds_electrified)
@@ -17,7 +17,7 @@ var/const/VENDING_WIRE_IDSCAN = 8
return 1
return 0
/datum/wires/vending/Interact(var/mob/living/user)
/datum/wires/vending/Interact(mob/living/user)
if(CanUse(user))
var/obj/machinery/vending/V = holder
V.attack_hand(user)
@@ -30,7 +30,7 @@ var/const/VENDING_WIRE_IDSCAN = 8
. += "The green light is [V.extended_inventory ? "on" : "off"].<BR>"
. += "A [V.scan_id ? "purple" : "yellow"] light is on.<BR>"
/datum/wires/vending/UpdatePulsed(var/index)
/datum/wires/vending/UpdatePulsed(index)
var/obj/machinery/vending/V = holder
switch(index)
if(VENDING_WIRE_THROW)
@@ -42,7 +42,7 @@ var/const/VENDING_WIRE_IDSCAN = 8
if(VENDING_WIRE_IDSCAN)
V.scan_id = !V.scan_id
/datum/wires/vending/UpdateCut(var/index, var/mended)
/datum/wires/vending/UpdateCut(index, mended)
var/obj/machinery/vending/V = holder
switch(index)
if(VENDING_WIRE_THROW)
+16 -16
View File
@@ -65,7 +65,7 @@ var/list/wireColours = list("red", "blue", "green", "black", "orange", "brown",
//wires = shuffle(wires)
/datum/wires/proc/Interact(var/mob/living/user)
/datum/wires/proc/Interact(mob/living/user)
var/html = null
if(holder && CanUse(user))
@@ -155,14 +155,14 @@ var/list/wireColours = list("red", "blue", "green", "black", "orange", "brown",
//
// Called when wires cut/mended.
/datum/wires/proc/UpdateCut(var/index, var/mended)
/datum/wires/proc/UpdateCut(index, mended)
return
// Called when wire pulsed. Add code here.
/datum/wires/proc/UpdatePulsed(var/index)
/datum/wires/proc/UpdatePulsed(index)
return
/datum/wires/proc/CanUse(var/mob/living/L)
/datum/wires/proc/CanUse(mob/living/L)
return 1
// Example of use:
@@ -191,15 +191,15 @@ var/const/POWER = 8
// Helper Procs
//
/datum/wires/proc/PulseColour(var/colour)
/datum/wires/proc/PulseColour(colour)
PulseIndex(GetIndex(colour))
/datum/wires/proc/PulseIndex(var/index)
/datum/wires/proc/PulseIndex(index)
if(IsIndexCut(index))
return
UpdatePulsed(index)
/datum/wires/proc/GetIndex(var/colour)
/datum/wires/proc/GetIndex(colour)
if(wires[colour])
var/index = wires[colour]
return index
@@ -210,28 +210,28 @@ var/const/POWER = 8
// Is Index/Colour Cut procs
//
/datum/wires/proc/IsColourCut(var/colour)
/datum/wires/proc/IsColourCut(colour)
var/index = GetIndex(colour)
return IsIndexCut(index)
/datum/wires/proc/IsIndexCut(var/index)
/datum/wires/proc/IsIndexCut(index)
return (index & wires_status)
//
// Signaller Procs
//
/datum/wires/proc/IsAttached(var/colour)
/datum/wires/proc/IsAttached(colour)
if(signallers[colour])
return 1
return 0
/datum/wires/proc/GetAttached(var/colour)
/datum/wires/proc/GetAttached(colour)
if(signallers[colour])
return signallers[colour]
return null
/datum/wires/proc/Attach(var/colour, var/obj/item/device/assembly/S)
/datum/wires/proc/Attach(colour, obj/item/device/assembly/S)
if(colour && S && S.attachable)
if(!IsAttached(colour))
signallers[colour] = S
@@ -239,7 +239,7 @@ var/const/POWER = 8
S.connected = src
return S
/datum/wires/proc/Detach(var/colour)
/datum/wires/proc/Detach(colour)
if(colour)
var/obj/item/device/assembly/S = GetAttached(colour)
if(S)
@@ -249,7 +249,7 @@ var/const/POWER = 8
return S
/datum/wires/proc/Pulse(var/obj/item/device/assembly/S)
/datum/wires/proc/Pulse(obj/item/device/assembly/S)
for(var/colour in signallers)
if(S == signallers[colour])
@@ -261,11 +261,11 @@ var/const/POWER = 8
// Cut Wire Colour/Index procs
//
/datum/wires/proc/CutWireColour(var/colour)
/datum/wires/proc/CutWireColour(colour)
var/index = GetIndex(colour)
CutWireIndex(index)
/datum/wires/proc/CutWireIndex(var/index)
/datum/wires/proc/CutWireIndex(index)
if(IsIndexCut(index))
wires_status &= ~index
UpdateCut(index, 1)