mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-18 18:44:48 +01:00
Merge branch 'bleeding-edge-freeze' of https://github.com/Baystation12/Baystation12 into bleeding-edge-freeze
Conflicts: code/modules/events/infestation.dm
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
oneShot = 1
|
||||
|
||||
var/list/obj/machinery/vending/vendingMachines = list()
|
||||
var/list/obj/machinery/vending/infectedVendingMachines = list()
|
||||
var/obj/machinery/vending/originMachine
|
||||
|
||||
|
||||
@@ -28,20 +29,29 @@
|
||||
|
||||
/datum/event/brand_intelligence/tick()
|
||||
if(!vendingMachines.len || !originMachine || originMachine.shut_up) //if every machine is infected, or if the original vending machine is missing or has it's voice switch flipped
|
||||
end()
|
||||
kill()
|
||||
return
|
||||
|
||||
if(IsMultiple(activeFor, 3))
|
||||
var/obj/machinery/vending/infectedMachine = pick(vendingMachines)
|
||||
vendingMachines.Remove(infectedMachine)
|
||||
infectedMachine.shut_up = 0
|
||||
infectedMachine.shoot_inventory = 1
|
||||
if(IsMultiple(activeFor, 5))
|
||||
if(prob(25))
|
||||
var/obj/machinery/vending/infectedMachine = pick(vendingMachines)
|
||||
vendingMachines.Remove(infectedMachine)
|
||||
infectedVendingMachines.Add(infectedMachine)
|
||||
infectedMachine.shut_up = 0
|
||||
infectedMachine.shoot_inventory = 1
|
||||
|
||||
if(IsMultiple(activeFor, 12))
|
||||
originMachine.speak(pick("Try our aggressive new marketing strategies!", \
|
||||
"You should buy products to feed your lifestyle obession!", \
|
||||
"Consume!", \
|
||||
"Your money can buy happiness!", \
|
||||
"Engage direct marketing!", \
|
||||
"Advertising is legalized lying! But don't let that put you off our great deals!", \
|
||||
"You don't want to buy anything? Yeah, well I didn't want to buy your mom either."))
|
||||
if(IsMultiple(activeFor, 12))
|
||||
originMachine.speak(pick("Try our aggressive new marketing strategies!", \
|
||||
"You should buy products to feed your lifestyle obession!", \
|
||||
"Consume!", \
|
||||
"Your money can buy happiness!", \
|
||||
"Engage direct marketing!", \
|
||||
"Advertising is legalized lying! But don't let that put you off our great deals!", \
|
||||
"You don't want to buy anything? Yeah, well I didn't want to buy your mom either."))
|
||||
|
||||
/datum/event/brand_intelligence/end()
|
||||
for(var/obj/machinery/vending/infectedMachine in infectedVendingMachines)
|
||||
if(prob(90))
|
||||
infectedMachine.shut_up = 1
|
||||
infectedMachine.shoot_inventory = 0
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
|
||||
/datum/event/carp_migration/end()
|
||||
for(var/mob/living/simple_animal/hostile/carp/C in spawned_carp)
|
||||
var/turf/T = get_turf(C)
|
||||
if(istype(T, /turf/space))
|
||||
del(C)
|
||||
if(!C.stat)
|
||||
var/turf/T = get_turf(C)
|
||||
if(istype(T, /turf/space))
|
||||
del(C)
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
possibleEvents[/datum/event/carp_migration] = 50 + 50 * active_with_role["Engineer"]
|
||||
possibleEvents[/datum/event/brand_intelligence] = 50 + 25 * active_with_role["Janitor"]
|
||||
|
||||
possibleEvents[/datum/event/rogue_drone] = 50 + 25 * active_with_role["Engineer"] + 25 * active_with_role["Security"]
|
||||
possibleEvents[/datum/event/rogue_drone] = 25 + 25 * active_with_role["Engineer"] + 25 * active_with_role["Security"]
|
||||
possibleEvents[/datum/event/infestation] = 50 + 25 * active_with_role["Janitor"]
|
||||
|
||||
possibleEvents[/datum/event/communications_blackout] = 50 + 25 * active_with_role["AI"] + active_with_role["Scientist"] * 25
|
||||
|
||||
@@ -4,7 +4,6 @@ var/list/potentialRandomEvents = typesof(/datum/event) - /datum/event
|
||||
|
||||
var/eventTimeLower = 15000 //15 minutes
|
||||
var/eventTimeUpper = 30000 //30 minutes
|
||||
|
||||
var/scheduledEvent = null
|
||||
|
||||
|
||||
@@ -19,7 +18,7 @@ var/scheduledEvent = null
|
||||
/proc/checkEvent()
|
||||
if(!scheduledEvent)
|
||||
//more players = more time between events, less players = less time between events
|
||||
var/playercount_modifier = 0.5
|
||||
var/playercount_modifier = 1
|
||||
switch(player_list.len)
|
||||
if(0 to 10)
|
||||
playercount_modifier = 1.2
|
||||
@@ -63,4 +62,4 @@ var/scheduledEvent = null
|
||||
|
||||
if(ispath(type))
|
||||
new type
|
||||
message_admins("[key_name_admin(usr)] has triggered an event. ([type])", 1)
|
||||
message_admins("[key_name_admin(usr)] has triggered an event. ([type])", 1)
|
||||
|
||||
@@ -92,6 +92,7 @@
|
||||
var/turf/simulated/floor/T = pick(turfs)
|
||||
turfs.Remove(T)
|
||||
num--
|
||||
|
||||
|
||||
if(vermin == VERM_SPIDERS)
|
||||
var/obj/effect/spider/spiderling/S = new(T)
|
||||
@@ -100,6 +101,7 @@
|
||||
var/spawn_type = pick(spawn_types)
|
||||
new spawn_type(T)
|
||||
|
||||
|
||||
/datum/event/infestation/announce()
|
||||
command_alert("Bioscans indicate that [vermstring] have been breeding in [locstring]. Clear them out, before this starts to affect productivity.", "Vermin infestation")
|
||||
|
||||
|
||||
@@ -34,6 +34,13 @@
|
||||
for(var/mob/M in view())
|
||||
M << 'sound/effects/mousesqueek.ogg'
|
||||
|
||||
if(prob(0.5) && stat == CONSCIOUS)
|
||||
stat = UNCONSCIOUS
|
||||
icon_state = "mouse_[color]_sleep"
|
||||
if(stat == UNCONSCIOUS && prob(1))
|
||||
stat = CONSCIOUS
|
||||
icon_state = "mouse_[color]"
|
||||
|
||||
/mob/living/simple_animal/mouse/New()
|
||||
..()
|
||||
if(!color)
|
||||
|
||||
@@ -382,11 +382,30 @@
|
||||
*/
|
||||
|
||||
/datum/sprite_accessory/hair
|
||||
tentacle_m
|
||||
name = "Skrell Male Tentacles"
|
||||
icon_state = "skrell_hair_m"
|
||||
species_allowed = list("Skrell")
|
||||
gender = MALE
|
||||
spines_long
|
||||
name = "Long Unathi Spines"
|
||||
icon_state = "soghun_longspines"
|
||||
species_allowed = list("Unathi")
|
||||
|
||||
spines_short
|
||||
name = "Short Unathi Spines"
|
||||
icon_state = "soghun_shortspines"
|
||||
species_allowed = list("Unathi")
|
||||
|
||||
frills_long
|
||||
name = "Long Unathi Frills"
|
||||
icon_state = "soghun_longfrills"
|
||||
species_allowed = list("Unathi")
|
||||
|
||||
frills_short
|
||||
name = "Short Unathi Frills"
|
||||
icon_state = "soghun_shortfrill"
|
||||
species_allowed = list("Unathi")
|
||||
|
||||
horns
|
||||
name = "Unathi Horns"
|
||||
icon_state = "soghun_horns"
|
||||
species_allowed = list("Unathi")
|
||||
|
||||
tentacle_f
|
||||
name = "Skrell Female Tentacles"
|
||||
@@ -499,6 +518,7 @@
|
||||
name = "Smallsatche"
|
||||
icon_state = "facial_smallstache"
|
||||
species_allowed = list("Tajaran")
|
||||
|
||||
//skin styles - WIP
|
||||
//going to have to re-integrate this with surgery
|
||||
//let the icon_state hold an icon preview for now
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
for(var/mob/M in player_list)
|
||||
if(istype(M, /mob/new_player))
|
||||
continue
|
||||
if(M.client && M.client.holder && (M.client.prefs.toggles & CHAT_DEAD)) //admins can toggle deadchat on and off. This is a proc in admin.dm and is only give to Administrators and above
|
||||
if(M.client && M.client.holder && M.client.holder.rights & R_ADMIN && (M.client.prefs.toggles & CHAT_DEAD)) //admins can toggle deadchat on and off. This is a proc in admin.dm and is only give to Administrators and above
|
||||
M << rendered //Admins can hear deadchat, if they choose to, no matter if they're blind/deaf or not.
|
||||
else if(M.stat == DEAD)
|
||||
M.show_message(rendered, 2) //Takes into account blindness and such.
|
||||
|
||||
@@ -43,14 +43,14 @@
|
||||
toxmob(A)
|
||||
if((istype(A,/obj/machinery/the_singularitygen))||(istype(A,/obj/machinery/singularity/)))
|
||||
A:energy += energy
|
||||
else if( istype(A,/obj/machinery/rust/particle_catcher) )
|
||||
var/obj/machinery/rust/particle_catcher/collided_catcher = A
|
||||
else if( istype(A,/obj/effect/rust_particle_catcher) )
|
||||
var/obj/effect/rust_particle_catcher/collided_catcher = A
|
||||
if(particle_type && particle_type != "neutron")
|
||||
if(collided_catcher.AddParticles(particle_type, 1 + additional_particles))
|
||||
collided_catcher.parent.AddEnergy(energy,mega_energy)
|
||||
del (src)
|
||||
else if( istype(A,/obj/machinery/rust/core) )
|
||||
var/obj/machinery/rust/core/collided_core = A
|
||||
else if( istype(A,/obj/machinery/power/rust_core) )
|
||||
var/obj/machinery/power/rust_core/collided_core = A
|
||||
if(particle_type && particle_type != "neutron")
|
||||
if(collided_core.AddParticles(particle_type, 1 + additional_particles))
|
||||
var/energy_loss_ratio = abs(collided_core.owned_field.frequency - frequency) / 1e9
|
||||
|
||||
@@ -19,6 +19,8 @@ datum
|
||||
var/list/data = null
|
||||
var/volume = 0
|
||||
var/nutriment_factor = 0
|
||||
var/custom_metabolism = REAGENTS_METABOLISM
|
||||
var/mildly_toxic = 0
|
||||
//var/list/viruses = list()
|
||||
var/color = "#000000" // rgb: 0, 0, 0 (does not support alpha channels - yet!)
|
||||
|
||||
@@ -68,7 +70,14 @@ datum
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
if(!istype(M, /mob/living))
|
||||
return //Noticed runtime errors from pacid trying to damage ghosts, this should fix. --NEO
|
||||
holder.remove_reagent(src.id, REAGENTS_METABOLISM) //By default it slowly disappears.
|
||||
// Certain elements in too large amounts cause side-effects
|
||||
|
||||
if(mildly_toxic && istype(M, /mob/living/carbon/human/))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.side_effects.len == 0)
|
||||
M.add_side_effect(pick("Headache", "Bad Stomach", "Itch"))
|
||||
|
||||
holder.remove_reagent(src.id, custom_metabolism) //By default it slowly disappears.
|
||||
return
|
||||
|
||||
on_move(var/mob/M)
|
||||
@@ -199,6 +208,7 @@ datum
|
||||
description = "A ubiquitous chemical substance that is composed of hydrogen and oxygen."
|
||||
reagent_state = LIQUID
|
||||
color = "#0064C8" // rgb: 0, 100, 200
|
||||
custom_metabolism = 0.01
|
||||
|
||||
reaction_turf(var/turf/simulated/T, var/volume)
|
||||
if (!istype(T)) return
|
||||
@@ -309,24 +319,28 @@ datum
|
||||
description = "A Toxic chemical."
|
||||
reagent_state = LIQUID
|
||||
color = "#CF3600" // rgb: 207, 54, 0
|
||||
custom_metabolism = 0.01
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjustToxLoss(1.5*REM)
|
||||
// Toxins are really weak, but without being treated, last very long.
|
||||
M.adjustToxLoss(0.2)
|
||||
..()
|
||||
return
|
||||
|
||||
cyanide
|
||||
// Fast and lethal
|
||||
name = "Cyanide"
|
||||
id = "cyanide"
|
||||
description = "A highly toxic chemical."
|
||||
reagent_state = LIQUID
|
||||
color = "#CF3600" // rgb: 207, 54, 0
|
||||
custom_metabolism = 0.4
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjustToxLoss(3*REM)
|
||||
M.adjustOxyLoss(3*REM)
|
||||
M.adjustToxLoss(4)
|
||||
M.adjustOxyLoss(4)
|
||||
M.sleeping += 1
|
||||
..()
|
||||
return
|
||||
@@ -405,6 +419,8 @@ datum
|
||||
reagent_state = LIQUID
|
||||
color = "#E895CC" // rgb: 232, 149, 204
|
||||
|
||||
custom_metabolism = 0.1
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
if(!data) data = 1
|
||||
@@ -540,12 +556,17 @@ datum
|
||||
reagent_state = GAS
|
||||
color = "#808080" // rgb: 128, 128, 128
|
||||
|
||||
custom_metabolism = 0.01
|
||||
|
||||
copper
|
||||
name = "Copper"
|
||||
id = "copper"
|
||||
description = "A highly ductile metal."
|
||||
color = "#6E3B08" // rgb: 110, 59, 8
|
||||
|
||||
mildly_toxic = 1
|
||||
custom_metabolism = 0.01
|
||||
|
||||
nitrogen
|
||||
name = "Nitrogen"
|
||||
id = "nitrogen"
|
||||
@@ -553,6 +574,9 @@ datum
|
||||
reagent_state = GAS
|
||||
color = "#808080" // rgb: 128, 128, 128
|
||||
|
||||
mildly_toxic = 1
|
||||
custom_metabolism = 0.01
|
||||
|
||||
hydrogen
|
||||
name = "Hydrogen"
|
||||
id = "hydrogen"
|
||||
@@ -560,6 +584,9 @@ datum
|
||||
reagent_state = GAS
|
||||
color = "#808080" // rgb: 128, 128, 128
|
||||
|
||||
mildly_toxic = 1
|
||||
custom_metabolism = 0.01
|
||||
|
||||
potassium
|
||||
name = "Potassium"
|
||||
id = "potassium"
|
||||
@@ -567,6 +594,10 @@ datum
|
||||
reagent_state = SOLID
|
||||
color = "#A0A0A0" // rgb: 160, 160, 160
|
||||
|
||||
|
||||
mildly_toxic = 1
|
||||
custom_metabolism = 0.01
|
||||
|
||||
mercury
|
||||
name = "Mercury"
|
||||
id = "mercury"
|
||||
@@ -589,6 +620,9 @@ datum
|
||||
reagent_state = SOLID
|
||||
color = "#BF8C00" // rgb: 191, 140, 0
|
||||
|
||||
mildly_toxic = 1
|
||||
custom_metabolism = 0.01
|
||||
|
||||
carbon
|
||||
name = "Carbon"
|
||||
id = "carbon"
|
||||
@@ -596,6 +630,9 @@ datum
|
||||
reagent_state = SOLID
|
||||
color = "#1C1300" // rgb: 30, 20, 0
|
||||
|
||||
mildly_toxic = 1
|
||||
custom_metabolism = 0.01
|
||||
|
||||
reaction_turf(var/turf/T, var/volume)
|
||||
src = null
|
||||
if(!istype(T, /turf/space))
|
||||
@@ -634,6 +671,9 @@ datum
|
||||
reagent_state = SOLID
|
||||
color = "#808080" // rgb: 128, 128, 128
|
||||
|
||||
mildly_toxic = 1
|
||||
custom_metabolism = 0.01
|
||||
|
||||
phosphorus
|
||||
name = "Phosphorus"
|
||||
id = "phosphorus"
|
||||
@@ -641,6 +681,9 @@ datum
|
||||
reagent_state = SOLID
|
||||
color = "#832828" // rgb: 131, 40, 40
|
||||
|
||||
mildly_toxic = 1
|
||||
custom_metabolism = 0.01
|
||||
|
||||
lithium
|
||||
name = "Lithium"
|
||||
id = "lithium"
|
||||
@@ -826,6 +869,9 @@ datum
|
||||
reagent_state = LIQUID
|
||||
color = "#808080" // rgb: 128, 128, 128
|
||||
|
||||
mildly_toxic = 1
|
||||
custom_metabolism = 0.01
|
||||
|
||||
nitroglycerin
|
||||
name = "Nitroglycerin"
|
||||
id = "nitroglycerin"
|
||||
@@ -833,6 +879,9 @@ datum
|
||||
reagent_state = LIQUID
|
||||
color = "#808080" // rgb: 128, 128, 128
|
||||
|
||||
mildly_toxic = 1
|
||||
custom_metabolism = 0.01
|
||||
|
||||
radium
|
||||
name = "Radium"
|
||||
id = "radium"
|
||||
@@ -1403,6 +1452,7 @@ datum
|
||||
description = "Synaptizine is used to treat various diseases."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
custom_metabolism = 0.01
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
@@ -1440,6 +1490,7 @@ datum
|
||||
description = "Hyronalin is a medicinal drug used to counter the effect of radiation poisoning."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
custom_metabolism = 0.05
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
@@ -1453,6 +1504,7 @@ datum
|
||||
description = "Arithrazine is an unstable medication used for the most extreme cases of radiation poisoning."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
custom_metabolism = 0.05
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
if(M.stat == 2.0)
|
||||
@@ -1471,6 +1523,7 @@ datum
|
||||
description = "Alkysine is a drug used to lessen the damage to neurological tissue after a catastrophic injury. Can heal brain tissue."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
custom_metabolism = 0.05
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
@@ -1516,11 +1569,11 @@ datum
|
||||
description = "Hyperzine is a highly effective, long lasting, muscle stimulant."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
custom_metabolism = 0.03
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
if(prob(5)) M.emote(pick("twitch","blink_r","shiver"))
|
||||
holder.remove_reagent(src.id, 0.5 * REAGENTS_METABOLISM)
|
||||
..()
|
||||
return
|
||||
|
||||
@@ -1535,9 +1588,9 @@ datum
|
||||
if(!M) M = holder.my_atom
|
||||
if(M.bodytemperature < 170)
|
||||
M.adjustCloneLoss(-1)
|
||||
M.adjustOxyLoss(-3)
|
||||
M.heal_organ_damage(3,3)
|
||||
M.adjustToxLoss(-3)
|
||||
M.adjustOxyLoss(-1)
|
||||
M.heal_organ_damage(1,1)
|
||||
M.adjustToxLoss(-1)
|
||||
..()
|
||||
return
|
||||
|
||||
@@ -1564,9 +1617,9 @@ datum
|
||||
description = "An all-purpose antiviral agent."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
custom_metabolism = 0.01
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)//no more mr. panacea
|
||||
holder.remove_reagent(src.id, 0.2)
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
..()
|
||||
return
|
||||
|
||||
@@ -1612,6 +1665,7 @@ datum
|
||||
description = "A powerful hallucinogen. Not a thing to be messed with."
|
||||
reagent_state = LIQUID
|
||||
color = "#B31008" // rgb: 139, 166, 233
|
||||
custom_metabolism = 0.05
|
||||
|
||||
on_mob_life(var/mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
icon_state = "pill17"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("anti_toxin", 50)
|
||||
reagents.add_reagent("anti_toxin", 25)
|
||||
|
||||
/obj/item/weapon/reagent_containers/pill/tox
|
||||
name = "Toxins pill"
|
||||
@@ -175,4 +175,4 @@
|
||||
..()
|
||||
reagents.add_reagent("impedrezene", 10)
|
||||
reagents.add_reagent("synaptizine", 5)
|
||||
reagents.add_reagent("hyperzine", 5)
|
||||
reagents.add_reagent("hyperzine", 5)
|
||||
|
||||
Reference in New Issue
Block a user