mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
Fixes #8485
This commit is contained in:
@@ -270,9 +270,9 @@ Class Procs:
|
|||||||
|
|
||||||
if(temp_apc && temp_apc.terminal && temp_apc.terminal.powernet)
|
if(temp_apc && temp_apc.terminal && temp_apc.terminal.powernet)
|
||||||
temp_apc.terminal.powernet.trigger_warning()
|
temp_apc.terminal.powernet.trigger_warning()
|
||||||
return 1
|
if(user.stunned)
|
||||||
else
|
return 1
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
/obj/machinery/proc/default_deconstruction_crowbar(var/mob/user, var/obj/item/weapon/crowbar/C)
|
/obj/machinery/proc/default_deconstruction_crowbar(var/mob/user, var/obj/item/weapon/crowbar/C)
|
||||||
if(!istype(C))
|
if(!istype(C))
|
||||||
|
|||||||
@@ -30,7 +30,8 @@
|
|||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||||
s.set_up(5, 1, src)
|
s.set_up(5, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
return 2
|
if(usr.stunned)
|
||||||
|
return 2
|
||||||
|
|
||||||
playsound(src.loc, 'sound/machines/click.ogg', 15, 1, -3)
|
playsound(src.loc, 'sound/machines/click.ogg', 15, 1, -3)
|
||||||
for(var/obj/O in src)
|
for(var/obj/O in src)
|
||||||
|
|||||||
@@ -68,12 +68,12 @@
|
|||||||
//Flimsy grilles aren't so great at stopping projectiles. However they can absorb some of the impact
|
//Flimsy grilles aren't so great at stopping projectiles. However they can absorb some of the impact
|
||||||
var/damage = Proj.damage
|
var/damage = Proj.damage
|
||||||
var/passthrough = 0
|
var/passthrough = 0
|
||||||
|
|
||||||
//20% chance that the grille provides a bit more cover than usual. Support structure for example might take up 20% of the grille's area.
|
//20% chance that the grille provides a bit more cover than usual. Support structure for example might take up 20% of the grille's area.
|
||||||
//If they click on the grille itself then we assume they are aiming at the grille itself and the extra cover behaviour is always used.
|
//If they click on the grille itself then we assume they are aiming at the grille itself and the extra cover behaviour is always used.
|
||||||
switch(Proj.damage_type)
|
switch(Proj.damage_type)
|
||||||
if(BRUTE)
|
if(BRUTE)
|
||||||
//bullets
|
//bullets
|
||||||
if(Proj.original == src || prob(20))
|
if(Proj.original == src || prob(20))
|
||||||
Proj.damage *= between(0, Proj.damage/60, 0.5)
|
Proj.damage *= between(0, Proj.damage/60, 0.5)
|
||||||
if(prob(max((damage-10)/25, 0))*100)
|
if(prob(max((damage-10)/25, 0))*100)
|
||||||
@@ -86,11 +86,11 @@
|
|||||||
if(!(Proj.original == src || prob(20)))
|
if(!(Proj.original == src || prob(20)))
|
||||||
Proj.damage *= 0.5
|
Proj.damage *= 0.5
|
||||||
passthrough = 1
|
passthrough = 1
|
||||||
|
|
||||||
if(passthrough)
|
if(passthrough)
|
||||||
. = -1
|
. = -1
|
||||||
damage = between(0, (damage - Proj.damage)*(Proj.damage_type == BRUTE? 0.4 : 1), 10) //if the bullet passes through then the grille avoids most of the damage
|
damage = between(0, (damage - Proj.damage)*(Proj.damage_type == BRUTE? 0.4 : 1), 10) //if the bullet passes through then the grille avoids most of the damage
|
||||||
|
|
||||||
src.health -= damage*0.2
|
src.health -= damage*0.2
|
||||||
spawn(0) healthcheck() //spawn to make sure we return properly if the grille is deleted
|
spawn(0) healthcheck() //spawn to make sure we return properly if the grille is deleted
|
||||||
|
|
||||||
@@ -139,7 +139,7 @@
|
|||||||
if(WINDOW.dir == dir_to_set)//checking this for a 2nd time to check if a window was made while we were waiting.
|
if(WINDOW.dir == dir_to_set)//checking this for a 2nd time to check if a window was made while we were waiting.
|
||||||
user << "<span class='notice'>There is already a window facing this way there.</span>"
|
user << "<span class='notice'>There is already a window facing this way there.</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
var/wtype = ST.created_window
|
var/wtype = ST.created_window
|
||||||
if (ST.use(1))
|
if (ST.use(1))
|
||||||
var/obj/structure/window/WD = new wtype(loc, dir_to_set, 1)
|
var/obj/structure/window/WD = new wtype(loc, dir_to_set, 1)
|
||||||
@@ -197,7 +197,8 @@
|
|||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||||
s.set_up(3, 1, src)
|
s.set_up(3, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
return 1
|
if(user.stunned)
|
||||||
|
return 1
|
||||||
else
|
else
|
||||||
return 0
|
return 0
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
@@ -688,27 +688,28 @@
|
|||||||
|
|
||||||
//Todo
|
//Todo
|
||||||
/obj/item/weapon/rig/proc/malfunction()
|
/obj/item/weapon/rig/proc/malfunction()
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
/obj/item/weapon/rig/emp_act(severity_class)
|
/obj/item/weapon/rig/emp_act(severity_class)
|
||||||
//set malfunctioning
|
//set malfunctioning
|
||||||
if(emp_protection < 30) //for ninjas, really.
|
if(emp_protection < 30) //for ninjas, really.
|
||||||
malfunctioning += 10
|
malfunctioning += 10
|
||||||
if(malfunction_delay <= 0)
|
if(malfunction_delay <= 0)
|
||||||
malfunction_delay = max(malfunction_delay, round(30/severity_class))
|
malfunction_delay = max(malfunction_delay, round(30/severity_class))
|
||||||
|
|
||||||
//drain some charge
|
//drain some charge
|
||||||
if(cell) cell.emp_act(severity_class + 15)
|
if(cell) cell.emp_act(severity_class + 15)
|
||||||
|
|
||||||
//possibly damage some modules
|
//possibly damage some modules
|
||||||
take_hit((100/severity_class), "electrical pulse", 1)
|
take_hit((100/severity_class), "electrical pulse", 1)
|
||||||
|
|
||||||
/obj/item/weapon/rig/proc/shock(mob/user)
|
/obj/item/weapon/rig/proc/shock(mob/user)
|
||||||
if (electrocute_mob(user, cell, src))
|
if (electrocute_mob(user, cell, src))
|
||||||
spark_system.start()
|
spark_system.start()
|
||||||
return 1
|
if(user.stunned)
|
||||||
|
return 1
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
/obj/item/weapon/rig/proc/take_hit(damage, source, is_emp=0)
|
/obj/item/weapon/rig/proc/take_hit(damage, source, is_emp=0)
|
||||||
|
|
||||||
if(!installed_modules.len)
|
if(!installed_modules.len)
|
||||||
@@ -740,7 +741,7 @@
|
|||||||
dam_module = pick(damaged_modules)
|
dam_module = pick(damaged_modules)
|
||||||
else if(valid_modules.len)
|
else if(valid_modules.len)
|
||||||
dam_module = pick(valid_modules)
|
dam_module = pick(valid_modules)
|
||||||
|
|
||||||
if(!dam_module) return
|
if(!dam_module) return
|
||||||
|
|
||||||
dam_module.damage++
|
dam_module.damage++
|
||||||
@@ -748,11 +749,11 @@
|
|||||||
if(!source)
|
if(!source)
|
||||||
source = "hit"
|
source = "hit"
|
||||||
|
|
||||||
if(wearer)
|
if(wearer)
|
||||||
if(dam_module.damage >= 2)
|
if(dam_module.damage >= 2)
|
||||||
wearer << "<span class='danger'>The [source] has disabled your [dam_module.interface_name]!"
|
wearer << "<span class='danger'>The [source] has disabled your [dam_module.interface_name]!"
|
||||||
else
|
else
|
||||||
wearer << "<span class='warning'>The [source] has damaged your [dam_module.interface_name]!"
|
wearer << "<span class='warning'>The [source] has damaged your [dam_module.interface_name]!"
|
||||||
dam_module.deactivate()
|
dam_module.deactivate()
|
||||||
|
|
||||||
/obj/item/weapon/rig/proc/malfunction_check(var/mob/living/carbon/human/user)
|
/obj/item/weapon/rig/proc/malfunction_check(var/mob/living/carbon/human/user)
|
||||||
|
|||||||
@@ -535,7 +535,8 @@
|
|||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||||
s.set_up(5, 1, src)
|
s.set_up(5, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
return
|
if(user.stunned)
|
||||||
|
return
|
||||||
C.use(10)
|
C.use(10)
|
||||||
user.visible_message(\
|
user.visible_message(\
|
||||||
"<span class='warning'>[user.name] has added cables to the APC frame!</span>",\
|
"<span class='warning'>[user.name] has added cables to the APC frame!</span>",\
|
||||||
@@ -555,7 +556,8 @@
|
|||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||||
s.set_up(5, 1, src)
|
s.set_up(5, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
return
|
if(usr.stunned)
|
||||||
|
return
|
||||||
new /obj/item/stack/cable_coil(loc,10)
|
new /obj/item/stack/cable_coil(loc,10)
|
||||||
user << "<span class='notice'>You cut the cables and dismantle the power terminal.</span>"
|
user << "<span class='notice'>You cut the cables and dismantle the power terminal.</span>"
|
||||||
del(terminal) // qdel
|
del(terminal) // qdel
|
||||||
|
|||||||
@@ -193,9 +193,9 @@ By design, d1 is the smallest direction and d2 is the highest
|
|||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||||
s.set_up(5, 1, src)
|
s.set_up(5, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
return 1
|
if(usr.stunned)
|
||||||
else
|
return 1
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
//explosion handling
|
//explosion handling
|
||||||
/obj/structure/cable/ex_act(severity)
|
/obj/structure/cable/ex_act(severity)
|
||||||
|
|||||||
@@ -275,7 +275,8 @@
|
|||||||
s.set_up(5, 1, src)
|
s.set_up(5, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
building_terminal = 0
|
building_terminal = 0
|
||||||
return 0
|
if(usr.stunned)
|
||||||
|
return 0
|
||||||
new /obj/item/stack/cable_coil(loc,10)
|
new /obj/item/stack/cable_coil(loc,10)
|
||||||
user.visible_message(\
|
user.visible_message(\
|
||||||
"<span class='notice'>[user.name] cut the cables and dismantled the power terminal.</span>",\
|
"<span class='notice'>[user.name] cut the cables and dismantled the power terminal.</span>",\
|
||||||
|
|||||||
Reference in New Issue
Block a user