mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-31 00:58:26 +01:00
Merge remote-tracking branch 'remotes/upstream/master' into syndiborg_fix
This commit is contained in:
@@ -98,7 +98,7 @@ effective or pretty fucking useless.
|
||||
if(M)
|
||||
if(intensity >= 5)
|
||||
M.apply_effect(round(intensity/1.5), PARALYZE)
|
||||
M.irradiate(intensity*10)
|
||||
M.rad_act(intensity*10)
|
||||
else
|
||||
user << "<span class='warning'>The radioactive microlaser is still recharging.</span>"
|
||||
|
||||
|
||||
@@ -23,8 +23,7 @@
|
||||
if(cooldown < world.time - 60)
|
||||
cooldown = world.time
|
||||
flick("plutonium_core_pulse", src)
|
||||
for(var/mob/living/L in range(4,get_turf(src)))
|
||||
L.irradiate(40)
|
||||
radiation_pulse(get_turf(src), 1, 4, 40, 1)
|
||||
|
||||
//nuke core box, for carrying the core
|
||||
/obj/item/nuke_core_container
|
||||
|
||||
@@ -18,9 +18,6 @@
|
||||
|
||||
/obj/item/weapon/dnainjector/proc/inject(mob/living/carbon/M, mob/user)
|
||||
if(M.has_dna() && !(M.disabilities & NOCLONE))
|
||||
if(M.stat == DEAD) //prevents dead people from having their DNA changed
|
||||
user << "<span class='notice'>You can't modify [M]'s DNA while \he's dead.</span>"
|
||||
return
|
||||
M.radiation += rand(20/(damage_coeff ** 2),50/(damage_coeff ** 2))
|
||||
var/log_msg = "[key_name(user)] injected [key_name(M)] with the [name]"
|
||||
for(var/datum/mutation/human/HM in remove_mutations)
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
/proc/radiation_pulse(turf/epicenter, heavy_range, light_range, severity, log=0)
|
||||
if(!epicenter) return
|
||||
|
||||
if(!istype(epicenter, /turf))
|
||||
epicenter = get_turf(epicenter.loc)
|
||||
|
||||
if(log)
|
||||
message_admins("Radiation pulse with size ([heavy_range], [light_range]) and severity [severity] in area [epicenter.loc.name] ")
|
||||
log_game("Radiation pulse with size ([heavy_range], [light_range]) and severity [severity] in area [epicenter.loc.name] ")
|
||||
|
||||
if(heavy_range > light_range)
|
||||
light_range = heavy_range
|
||||
|
||||
for(var/atom/T in range(light_range, epicenter))
|
||||
var/distance = get_dist(epicenter, T)
|
||||
if(distance < 0)
|
||||
distance = 0
|
||||
if(distance < heavy_range)
|
||||
T.rad_act(severity)
|
||||
else if(distance == heavy_range)
|
||||
if(prob(50))
|
||||
T.rad_act(severity)
|
||||
else
|
||||
T.rad_act(severity / 2)
|
||||
else if(distance <= light_range)
|
||||
T.rad_act(severity / 2)
|
||||
return 1
|
||||
|
||||
/atom/proc/rad_act(var/severity)
|
||||
return 1
|
||||
|
||||
/mob/living/rad_act(amount)
|
||||
if(amount)
|
||||
var/blocked = run_armor_check(null, "rad", "Your clothes feel warm.", "Your clothes feel warm.")
|
||||
apply_effect(amount, IRRADIATE, blocked)
|
||||
@@ -169,8 +169,7 @@
|
||||
if(!active)
|
||||
if(world.time > last_event+15)
|
||||
active = 1
|
||||
for(var/mob/living/L in range(3,src))
|
||||
L.irradiate(4)
|
||||
radiation_pulse(get_turf(src), 0, 3, 15, 1)
|
||||
for(var/turf/simulated/wall/mineral/uranium/T in orange(1,src))
|
||||
T.radiate()
|
||||
last_event = world.time
|
||||
|
||||
@@ -176,8 +176,7 @@
|
||||
if(!active)
|
||||
if(world.time > last_event+15)
|
||||
active = 1
|
||||
for(var/mob/living/L in range(3,src))
|
||||
L.irradiate(12)
|
||||
radiation_pulse(get_turf(src), 3, 3, 12, 0)
|
||||
last_event = world.time
|
||||
active = null
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user