Merge remote-tracking branch 'origin/master' into what-should-i-name-this-branch
This commit is contained in:
+9
-5
@@ -596,9 +596,13 @@
|
||||
//SHOULD_CALL_PARENT(TRUE)
|
||||
return SEND_SIGNAL(src, COMSIG_ATOM_UPDATE_ICON_STATE)
|
||||
|
||||
/// Updates the overlays of the atom
|
||||
/**
|
||||
* Builds a list of overlays for the atom, this will not apply them.
|
||||
* If you need to update overlays, use [update_icon(UPDATE_OVERLAYS)],
|
||||
* This proc is intended to be overridden.
|
||||
*/
|
||||
/atom/proc/update_overlays()
|
||||
//SHOULD_CALL_PARENT(TRUE)
|
||||
SHOULD_CALL_PARENT(TRUE)
|
||||
. = list()
|
||||
SEND_SIGNAL(src, COMSIG_ATOM_UPDATE_OVERLAYS, .)
|
||||
|
||||
@@ -610,12 +614,12 @@
|
||||
user.buckle_message_cooldown = world.time + 50
|
||||
to_chat(user, "<span class='warning'>You can't move while buckled to [src]!</span>")
|
||||
|
||||
/atom/proc/contents_explosion(severity, target)
|
||||
/atom/proc/contents_explosion(severity, target, origin)
|
||||
return //For handling the effects of explosions on contents that would not normally be effected
|
||||
|
||||
/atom/proc/ex_act(severity, target, datum/explosion/E)
|
||||
/atom/proc/ex_act(severity, target, origin)
|
||||
set waitfor = FALSE
|
||||
contents_explosion(severity, target)
|
||||
contents_explosion(severity, target, origin)
|
||||
SEND_SIGNAL(src, COMSIG_ATOM_EX_ACT, severity, target)
|
||||
|
||||
/**
|
||||
|
||||
@@ -151,14 +151,8 @@ Credit where due:
|
||||
var/datum/team/clockcult/main_clockcult
|
||||
|
||||
/datum/game_mode/clockwork_cult/pre_setup() //Gamemode and job code is pain. Have fun codediving all of that stuff, whoever works on this next - Delta
|
||||
var/list/errorList = list()
|
||||
var/list/reebes = SSmapping.LoadGroup(errorList, "Reebe", "map_files/generic", "City_of_Cogs.dmm", default_traits = ZTRAITS_REEBE, silent = TRUE)
|
||||
if(errorList.len) // reebe failed to load
|
||||
message_admins("Reebe failed to load!")
|
||||
log_game("Reebe failed to load!")
|
||||
if(!load_reebe())
|
||||
return FALSE
|
||||
for(var/datum/parsed_map/PM in reebes) //Temporarily commented because of z-level loading reliably segfaulting the server.
|
||||
PM.initTemplateBounds()
|
||||
if(CONFIG_GET(flag/protect_roles_from_antagonist))
|
||||
restricted_jobs += protected_jobs
|
||||
if(CONFIG_GET(flag/protect_assistant_from_antagonist))
|
||||
|
||||
@@ -653,6 +653,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
|
||||
if (drafted_rules.len > 0)
|
||||
pick_midround_rule(drafted_rules)
|
||||
else if (random_event_hijacked == HIJACKED_TOO_SOON)
|
||||
message_admins("DYNAMIC: Midround injection failed when random event was hijacked. Spawning another random event in its place.")
|
||||
log_game("DYNAMIC: Midround injection failed when random event was hijacked. Spawning another random event in its place.")
|
||||
|
||||
// A random event antag would have rolled had this injection check passed.
|
||||
|
||||
@@ -58,9 +58,9 @@
|
||||
storedpda.forceMove(loc)
|
||||
storedpda = null
|
||||
|
||||
/obj/machinery/pdapainter/contents_explosion(severity, target)
|
||||
/obj/machinery/pdapainter/contents_explosion(severity, target, origin)
|
||||
if(storedpda)
|
||||
storedpda.ex_act(severity, target)
|
||||
storedpda.ex_act(severity, target, origin)
|
||||
|
||||
/obj/machinery/pdapainter/handle_atom_del(atom/A)
|
||||
if(A == storedpda)
|
||||
|
||||
@@ -438,9 +438,9 @@ Class Procs:
|
||||
update_appearance()
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/contents_explosion(severity, target)
|
||||
/obj/machinery/contents_explosion(severity, target, origin)
|
||||
if(occupant)
|
||||
occupant.ex_act(severity, target)
|
||||
occupant.ex_act(severity, target, origin)
|
||||
|
||||
/obj/machinery/handle_atom_del(atom/A)
|
||||
if(A == occupant)
|
||||
|
||||
@@ -55,9 +55,9 @@
|
||||
storedpart.forceMove(loc)
|
||||
storedpart = null
|
||||
|
||||
/obj/machinery/aug_manipulator/contents_explosion(severity, target)
|
||||
/obj/machinery/aug_manipulator/contents_explosion(severity, target, origin)
|
||||
if(storedpart)
|
||||
storedpart.ex_act(severity, target)
|
||||
storedpart.ex_act(severity, target, origin)
|
||||
|
||||
/obj/machinery/aug_manipulator/handle_atom_del(atom/A)
|
||||
if(A == storedpart)
|
||||
|
||||
@@ -125,7 +125,7 @@
|
||||
M.reset_perspective(null)
|
||||
to_chat(M, "The screen bursts into static.")
|
||||
|
||||
/obj/machinery/camera/ex_act(severity, target)
|
||||
/obj/machinery/camera/ex_act(severity, target, origin)
|
||||
if(invuln)
|
||||
return
|
||||
..()
|
||||
|
||||
@@ -439,7 +439,7 @@
|
||||
mob_occupant.copy_from_prefs_vr()
|
||||
go_out()
|
||||
|
||||
/obj/machinery/clonepod/ex_act(severity, target)
|
||||
/obj/machinery/clonepod/ex_act(severity, target, origin)
|
||||
..()
|
||||
if(!QDELETED(src))
|
||||
go_out()
|
||||
|
||||
@@ -258,8 +258,8 @@
|
||||
|
||||
//heccing chonker passive, only gives more HP at the start of a new game but has one of the hardest weakpoint to trigger.
|
||||
if(LAZYACCESS(enemy_passive, "chonker"))
|
||||
if(weakpoint_check("chonker","power_attack","power_attack","power_attack"))
|
||||
list_temp += "<br><center><h3>After a lot of power attacks you manage to tip over [enemy_name] as they fall over their enormous weight<center><h3> "
|
||||
if(weakpoint_check("chonker","attack","attack","power_attack"))
|
||||
list_temp += "<br><center><h3>After attacking twice, your power attack manages to tip over [enemy_name] as they fall over their enormous weight<center><h3> "
|
||||
enemy_hp -= 30
|
||||
|
||||
//smart passive trait, mainly works in tandem with other traits, makes the enemy unable to be counter_attacked
|
||||
@@ -302,7 +302,7 @@
|
||||
else if(!enemy_stance)
|
||||
var/added_temp
|
||||
|
||||
if(rand())
|
||||
if(prob(80))
|
||||
added_temp = "you for [attack_amount + 5] damage!"
|
||||
player_hp -= attack_amount + 5
|
||||
enemy_stance = "attack"
|
||||
@@ -451,7 +451,7 @@
|
||||
msg += "\t<span class='info'>shotgun -> defend, defend, power attack</span>"
|
||||
msg += "\t<span class='info'>short temper -> counter, counter, counter</span>"
|
||||
msg += "\t<span class='info'>poisonous -> light attack, light attack, light attack</span>"
|
||||
msg += "\t<span class='info'>chonker -> power attack, power attack, power attack</span>"
|
||||
msg += "\t<span class='info'>chonker -> light attack, light attack, power attack</span>"
|
||||
return msg
|
||||
|
||||
/obj/machinery/computer/arcade/battle/emag_act(mob/user)
|
||||
|
||||
@@ -407,7 +407,7 @@
|
||||
if(!stat) //Opens only powered doors.
|
||||
open() //Open everything!
|
||||
|
||||
/obj/machinery/door/ex_act(severity, target)
|
||||
/obj/machinery/door/ex_act(severity, target, origin)
|
||||
//if it blows up a wall it should blow up a door
|
||||
..(severity ? max(1, severity - 1) : 0, target)
|
||||
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
/obj/machinery/door/password/emp_act(severity)
|
||||
return
|
||||
|
||||
/obj/machinery/door/password/ex_act(severity, target)
|
||||
/obj/machinery/door/password/ex_act(severity, target, origin)
|
||||
return
|
||||
|
||||
/obj/machinery/door/password/wave_ex_act(power, datum/wave_explosion/explosion, dir)
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
return ..()
|
||||
|
||||
//"BLAST" doors are obviously stronger than regular doors when it comes to BLASTS.
|
||||
/obj/machinery/door/poddoor/ex_act(severity, target)
|
||||
/obj/machinery/door/poddoor/ex_act(severity, target, origin)
|
||||
if(severity == 3)
|
||||
return
|
||||
..()
|
||||
|
||||
@@ -270,7 +270,7 @@
|
||||
var/range_light = 17
|
||||
var/range_flame = 17
|
||||
|
||||
/obj/item/bombcore/ex_act(severity, target) // Little boom can chain a big boom.
|
||||
/obj/item/bombcore/ex_act(severity, target, origin) // Little boom can chain a big boom.
|
||||
detonate()
|
||||
|
||||
|
||||
|
||||
@@ -84,6 +84,8 @@
|
||||
icon = 'icons/obj/clockwork_objects.dmi'
|
||||
hide = TRUE
|
||||
autolinkers = list("h_relay")
|
||||
flags_1 = DEFAULT_RICOCHET_1 | NODECONSTRUCT_1
|
||||
resistance_flags = INDESTRUCTIBLE
|
||||
|
||||
//Generic preset relay
|
||||
/obj/machinery/telecomms/relay/preset/auto
|
||||
|
||||
@@ -111,23 +111,23 @@
|
||||
mecha_log_message("Hit by projectile. Type: [Proj.name]([Proj.flag]).", color="red")
|
||||
. = ..()
|
||||
|
||||
/obj/mecha/ex_act(severity, target)
|
||||
/obj/mecha/ex_act(severity, target, origin)
|
||||
mecha_log_message("Affected by explosion of severity: [severity].", color="red")
|
||||
if(prob(deflect_chance))
|
||||
severity++
|
||||
log_append_to_last("Armor saved, changing severity to [severity].")
|
||||
. = ..()
|
||||
|
||||
/obj/mecha/contents_explosion(severity, target)
|
||||
/obj/mecha/contents_explosion(severity, target, origin)
|
||||
severity++
|
||||
for(var/X in equipment)
|
||||
var/obj/item/mecha_parts/mecha_equipment/ME = X
|
||||
ME.ex_act(severity,target)
|
||||
ME.ex_act(severity, target, origin)
|
||||
for(var/Y in trackers)
|
||||
var/obj/item/mecha_parts/mecha_tracking/MT = Y
|
||||
MT.ex_act(severity, target)
|
||||
MT.ex_act(severity, target, origin)
|
||||
if(occupant)
|
||||
occupant.ex_act(severity,target)
|
||||
occupant.ex_act(severity, target, origin)
|
||||
|
||||
/obj/mecha/handle_atom_del(atom/A)
|
||||
if(A == occupant)
|
||||
|
||||
@@ -144,7 +144,7 @@
|
||||
return
|
||||
|
||||
|
||||
/obj/mecha/working/ripley/contents_explosion(severity, target)
|
||||
/obj/mecha/working/ripley/contents_explosion(severity, target, origin)
|
||||
for(var/X in cargo)
|
||||
var/obj/O = X
|
||||
if(prob(30/severity))
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
/obj/effect/anomaly/proc/detonate()
|
||||
return
|
||||
|
||||
/obj/effect/anomaly/ex_act(severity, target)
|
||||
/obj/effect/anomaly/ex_act(severity, target, origin)
|
||||
if(severity == 1)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
STOP_PROCESSING(SSfastprocess, src)
|
||||
. = ..()
|
||||
|
||||
/obj/effect/countdown/ex_act(severity, target) //immune to explosions
|
||||
/obj/effect/countdown/ex_act(severity, target, origin) //immune to explosions
|
||||
return
|
||||
|
||||
/obj/effect/countdown/syndicatebomb
|
||||
|
||||
@@ -77,10 +77,10 @@
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/effect/decal/cleanable/ex_act()
|
||||
/obj/effect/decal/cleanable/ex_act(severity, target, origin)
|
||||
if(reagents)
|
||||
for(var/datum/reagent/R in reagents.reagent_list)
|
||||
R.on_ex_act()
|
||||
R.on_ex_act(severity)
|
||||
..()
|
||||
|
||||
/obj/effect/decal/cleanable/fire_act(exposed_temperature, exposed_volume)
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
. = ..()
|
||||
return /obj/effect/decal/cleanable/blood/gibs/old
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/ex_act(severity, target)
|
||||
/obj/effect/decal/cleanable/blood/gibs/ex_act(severity, target, origin)
|
||||
return
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/Crossed(mob/living/L)
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
. = ..()
|
||||
setDir(pick(GLOB.cardinals))
|
||||
|
||||
/obj/effect/decal/cleanable/glass/ex_act()
|
||||
/obj/effect/decal/cleanable/glass/ex_act(severity, target, origin)
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/decal/cleanable/glass/wave_ex_act(power, datum/wave_explosion/explosion, dir)
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
if (!step_to(src, get_step(src, direction), 0))
|
||||
break
|
||||
|
||||
/obj/effect/decal/cleanable/robot_debris/ex_act()
|
||||
/obj/effect/decal/cleanable/robot_debris/ex_act(severity, target, origin)
|
||||
return
|
||||
|
||||
/obj/effect/decal/cleanable/robot_debris/limb
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
/obj/effect/decal/proc/NeverShouldHaveComeHere(turf/T)
|
||||
return isclosedturf(T) || isgroundlessturf(T)
|
||||
|
||||
/obj/effect/decal/ex_act(severity, target)
|
||||
/obj/effect/decal/ex_act(severity, target, origin)
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/decal/fire_act(exposed_temperature, exposed_volume)
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
/obj/effect/experience_pressure_difference()
|
||||
return
|
||||
|
||||
/obj/effect/ex_act(severity, target)
|
||||
/obj/effect/ex_act(severity, target, origin)
|
||||
if(target == src)
|
||||
qdel(src)
|
||||
else
|
||||
@@ -51,7 +51,7 @@
|
||||
/obj/effect/ConveyorMove()
|
||||
return
|
||||
|
||||
/obj/effect/abstract/ex_act(severity, target)
|
||||
/obj/effect/abstract/ex_act(severity, target, origin)
|
||||
return
|
||||
|
||||
/obj/effect/abstract/singularity_pull()
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
return
|
||||
|
||||
// Please stop bombing the Observer-Start landmark.
|
||||
/obj/effect/landmark/ex_act()
|
||||
/obj/effect/landmark/ex_act(severity, target, origin)
|
||||
return
|
||||
|
||||
/obj/effect/landmark/singularity_pull()
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
/obj/effect/temp_visual/singularity_pull()
|
||||
return
|
||||
|
||||
/obj/effect/temp_visual/ex_act()
|
||||
/obj/effect/temp_visual/ex_act(severity, target, origin)
|
||||
return
|
||||
|
||||
/obj/effect/temp_visual/dir_setting
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
/obj/item/wallframe/apc/try_build(turf/on_wall, user)
|
||||
if(!..())
|
||||
return
|
||||
var/turf/T = get_turf(on_wall) //the user is not where it needs to be.
|
||||
var/turf/T = get_turf(user)
|
||||
var/area/A = get_area(T)
|
||||
if(A.get_apc())
|
||||
to_chat(user, "<span class='warning'>This area already has an APC!</span>")
|
||||
|
||||
@@ -266,7 +266,7 @@
|
||||
/obj/effect/chrono_field/singularity_pull()
|
||||
return
|
||||
|
||||
/obj/effect/chrono_field/ex_act()
|
||||
/obj/effect/chrono_field/ex_act(severity, target, origin)
|
||||
return
|
||||
|
||||
/obj/effect/chrono_field/blob_act(obj/structure/blob/B)
|
||||
|
||||
@@ -763,6 +763,8 @@
|
||||
|
||||
if(isobj(target))
|
||||
if(actually_paints)
|
||||
if(istype(target, /obj/item/canvas)) //dont color our canvas neon green when im trying to paint please
|
||||
return
|
||||
var/list/hsl = rgb2hsl(hex2num(copytext(paint_color,2,4)),hex2num(copytext(paint_color,4,6)),hex2num(copytext(paint_color,6,8)))
|
||||
var/static/whitelisted = typecacheof(list(/obj/structure/window,
|
||||
/obj/effect/decal/cleanable/crayon,
|
||||
|
||||
@@ -144,8 +144,8 @@
|
||||
/obj/effect/dummy/chameleon/attack_alien()
|
||||
master.disrupt()
|
||||
|
||||
/obj/effect/dummy/chameleon/ex_act(S, T)
|
||||
contents_explosion(S, T)
|
||||
/obj/effect/dummy/chameleon/ex_act(severity, target, origin)
|
||||
contents_explosion(severity, target, origin)
|
||||
master.disrupt()
|
||||
|
||||
/obj/effect/dummy/chameleon/bullet_act()
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
attack_verb = list("blown up", "exploded", "detonated")
|
||||
custom_materials = list(/datum/material/iron=50, /datum/material/glass=30)
|
||||
|
||||
/obj/item/doorCharge/ex_act(severity, target)
|
||||
/obj/item/doorCharge/ex_act(severity, target, origin)
|
||||
switch(severity)
|
||||
if(EXPLODE_DEVASTATE)
|
||||
visible_message("<span class='warning'>[src] detonates!</span>")
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
QDEL_NULL(beaker)
|
||||
return ..()
|
||||
|
||||
/obj/item/storage/portable_chem_mixer/ex_act(severity, target)
|
||||
/obj/item/storage/portable_chem_mixer/ex_act(severity, target, origin)
|
||||
if(severity < 3)
|
||||
..()
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
user.update_inv_hands()
|
||||
loc.assume_air(air_contents)
|
||||
|
||||
/obj/item/latexballon/ex_act(severity, target)
|
||||
/obj/item/latexballon/ex_act(severity, target, origin)
|
||||
burst()
|
||||
switch(severity)
|
||||
if (1)
|
||||
|
||||
@@ -557,7 +557,7 @@
|
||||
..()
|
||||
balanced = 0
|
||||
|
||||
/obj/item/melee/supermatter_sword/ex_act(severity, target)
|
||||
/obj/item/melee/supermatter_sword/ex_act(severity, target, origin)
|
||||
visible_message("<span class='danger'>The blast wave smacks into [src] and rapidly flashes to ash.</span>",\
|
||||
"<span class='italics'>You hear a loud crack as you are washed with a wave of heat.</span>")
|
||||
consume_everything()
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
/obj/machinery/door/keycard/emp_act(severity)
|
||||
return
|
||||
|
||||
/obj/machinery/door/keycard/ex_act(severity, target)
|
||||
/obj/machinery/door/keycard/ex_act(severity, target, origin)
|
||||
return
|
||||
|
||||
/obj/machinery/door/keycard/try_to_activate_door(mob/user)
|
||||
|
||||
@@ -18,10 +18,10 @@
|
||||
/obj/item/storage/AllowDrop()
|
||||
return TRUE
|
||||
|
||||
/obj/item/storage/contents_explosion(severity, target)
|
||||
/obj/item/storage/contents_explosion(severity, target, origin)
|
||||
var/in_storage = istype(loc, /obj/item/storage)? (max(0, severity - 1)) : (severity)
|
||||
for(var/atom/A in contents)
|
||||
A.ex_act(in_storage, target)
|
||||
A.ex_act(in_storage, target, origin)
|
||||
CHECK_TICK
|
||||
|
||||
//Cyberboss says: "USE THIS TO FILL IT, NOT INITIALIZE OR NEW"
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
throwdamage = 0
|
||||
take_damage(throwdamage, BRUTE, "melee", 1, get_dir(src, AM))
|
||||
|
||||
/obj/ex_act(severity, target)
|
||||
/obj/ex_act(severity, target, origin)
|
||||
if(resistance_flags & INDESTRUCTIBLE)
|
||||
return
|
||||
..() //contents explosion
|
||||
|
||||
@@ -554,9 +554,9 @@
|
||||
if(!QDELETED(lockerelectronics))
|
||||
lockerelectronics.accesses = req_access
|
||||
|
||||
/obj/structure/closet/contents_explosion(severity, target)
|
||||
/obj/structure/closet/contents_explosion(severity, target, origin)
|
||||
for(var/atom/A in contents)
|
||||
A.ex_act(severity, target)
|
||||
A.ex_act(severity, target, origin)
|
||||
CHECK_TICK
|
||||
|
||||
/obj/structure/closet/singularity_act()
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
if(.) //if we actually closed the locker
|
||||
recursive_organ_check(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/freezer/ex_act()
|
||||
/obj/structure/closet/secure_closet/freezer/ex_act(severity, target, origin)
|
||||
if(!jones)
|
||||
jones = TRUE
|
||||
else
|
||||
|
||||
@@ -32,9 +32,9 @@
|
||||
stored_extinguisher = null
|
||||
return ..()
|
||||
|
||||
/obj/structure/extinguisher_cabinet/contents_explosion(severity, target)
|
||||
/obj/structure/extinguisher_cabinet/contents_explosion(severity, target, origin)
|
||||
if(stored_extinguisher)
|
||||
stored_extinguisher.ex_act(severity, target)
|
||||
stored_extinguisher.ex_act(severity, target, origin)
|
||||
|
||||
/obj/structure/extinguisher_cabinet/handle_atom_del(atom/A)
|
||||
if(A == stored_extinguisher)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#define LOG_BURN_TIMER 150
|
||||
#define LOG_BURN_TIMER 400
|
||||
#define PAPER_BURN_TIMER 5
|
||||
#define MAXIMUM_BURN_TIMER 3000
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
pixel_x = -16
|
||||
resistance_flags = FIRE_PROOF
|
||||
var/lit = FALSE
|
||||
light_color = "#E38C2D"
|
||||
|
||||
var/fuel_added = 0
|
||||
var/flame_expiry_timer
|
||||
@@ -64,6 +65,12 @@
|
||||
</span>")
|
||||
adjust_fuel_timer(PAPER_BURN_TIMER)
|
||||
qdel(T)
|
||||
else if(istype(T,/obj/item/grown/log))
|
||||
user.visible_message("<span class='notice'>[user] tosses some \
|
||||
wood into [src].</span>", "<span class='notice'>You add \
|
||||
some fuel to [src].</span>")
|
||||
adjust_fuel_timer(LOG_BURN_TIMER)
|
||||
qdel(T)
|
||||
else if(try_light(T,user))
|
||||
return
|
||||
else
|
||||
|
||||
@@ -40,6 +40,16 @@
|
||||
density = FALSE
|
||||
pixel_x = -16
|
||||
|
||||
/obj/structure/flora/stump/attackby(obj/item/W, mob/user, params)
|
||||
if((W.tool_behaviour == TOOL_SHOVEL) && params)
|
||||
playsound(src, 'sound/effects/shovel_dig.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
new /obj/item/grown/log/tree(get_turf(src))
|
||||
user.visible_message("[user] digs up [src].", "<span class='notice'>You dig up [src].</span>")
|
||||
qdel(src)
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/structure/flora/tree/pine
|
||||
name = "pine tree"
|
||||
desc = "A coniferous pine tree."
|
||||
|
||||
@@ -91,9 +91,9 @@
|
||||
/obj/structure/guncase/handle_atom_del(atom/A)
|
||||
update_icon()
|
||||
|
||||
/obj/structure/guncase/contents_explosion(severity, target)
|
||||
/obj/structure/guncase/contents_explosion(severity, target, origin)
|
||||
for(var/atom/A in contents)
|
||||
A.ex_act(severity++, target)
|
||||
A.ex_act(severity++, target, origin)
|
||||
CHECK_TICK
|
||||
|
||||
/obj/structure/guncase/shotgun
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
icon_state = "randompile"
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
max_integrity = 100
|
||||
var/loot_amount = 5
|
||||
var/delete_on_depletion = FALSE
|
||||
var/can_use_hands = TRUE
|
||||
|
||||
@@ -249,7 +249,7 @@
|
||||
P.setAngle(rotation_angle)
|
||||
return ..()
|
||||
|
||||
/obj/structure/reflector/ex_act()
|
||||
/obj/structure/reflector/ex_act(severity, target, origin)
|
||||
if(admin)
|
||||
return
|
||||
else
|
||||
|
||||
@@ -84,7 +84,7 @@ FLOOR SAFES
|
||||
/obj/structure/safe/blob_act(obj/structure/blob/B)
|
||||
return
|
||||
|
||||
/obj/structure/safe/ex_act(severity, target)
|
||||
/obj/structure/safe/ex_act(severity, target, origin)
|
||||
if(((severity == 2 && target == src) || severity == 1) && explosion_count < BROKEN_THRESHOLD)
|
||||
explosion_count++
|
||||
switch(explosion_count)
|
||||
|
||||
@@ -50,14 +50,14 @@
|
||||
empty_pod(location)
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/transit_tube_pod/ex_act(severity, target)
|
||||
/obj/structure/transit_tube_pod/ex_act(severity, target, origin)
|
||||
..()
|
||||
if(!QDELETED(src))
|
||||
empty_pod()
|
||||
|
||||
/obj/structure/transit_tube_pod/contents_explosion(severity, target)
|
||||
/obj/structure/transit_tube_pod/contents_explosion(severity, target, origin)
|
||||
for(var/atom/movable/AM in contents)
|
||||
AM.ex_act(severity, target)
|
||||
AM.ex_act(severity, target, origin)
|
||||
|
||||
/obj/structure/transit_tube_pod/singularity_pull(S, current_size)
|
||||
..()
|
||||
|
||||
@@ -70,6 +70,7 @@
|
||||
icon_state = "wood"
|
||||
baseturfs = /turf/closed/indestructible/wood
|
||||
smooth = SMOOTH_TRUE
|
||||
canSmoothWith = list(/obj/structure/falsewall/wood, /turf/closed/wall/mineral/wood, /turf/closed/indestructible/wood)
|
||||
|
||||
/turf/closed/indestructible/oldshuttle/corner
|
||||
icon_state = "corner"
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
if(mapload && prob(66)) // 2/3 instead of 1/3 (default)
|
||||
MakeDirty()
|
||||
|
||||
/turf/open/floor/ex_act(severity, target)
|
||||
/turf/open/floor/ex_act(severity, target, origin)
|
||||
var/shielded = is_shielded()
|
||||
..()
|
||||
if(severity != 1 && shielded && target != src)
|
||||
|
||||
@@ -195,7 +195,7 @@
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/turf/open/floor/plating/foam/ex_act()
|
||||
/turf/open/floor/plating/foam/ex_act(severity, target, origin)
|
||||
..()
|
||||
ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
for(var/obj/item/stack/ore/O in src)
|
||||
SEND_SIGNAL(W, COMSIG_PARENT_ATTACKBY, O)
|
||||
|
||||
/turf/open/floor/plating/asteroid/ex_act(severity, target)
|
||||
/turf/open/floor/plating/asteroid/ex_act(severity, target, origin)
|
||||
. = SEND_SIGNAL(src, COMSIG_ATOM_EX_ACT, severity, target)
|
||||
contents_explosion(severity, target)
|
||||
|
||||
|
||||
@@ -120,7 +120,7 @@
|
||||
/turf/open/floor/plating/beach/try_replace_tile(obj/item/stack/tile/T, mob/user, params)
|
||||
return
|
||||
|
||||
/turf/open/floor/plating/beach/ex_act(severity, target)
|
||||
/turf/open/floor/plating/beach/ex_act(severity, target, origin)
|
||||
contents_explosion(severity, target)
|
||||
|
||||
/turf/open/floor/plating/beach/sand
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
acidpwr = min(acidpwr, 50) //we reduce the power so reinf floor never get melted.
|
||||
. = ..()
|
||||
|
||||
/turf/open/floor/engine/ex_act(severity,target)
|
||||
/turf/open/floor/engine/ex_act(severity,target, origin)
|
||||
var/shielded = is_shielded()
|
||||
contents_explosion(severity, target)
|
||||
if(severity != 1 && shielded && target != src)
|
||||
|
||||
@@ -18,8 +18,8 @@
|
||||
clawfootstep = FOOTSTEP_LAVA
|
||||
heavyfootstep = FOOTSTEP_LAVA
|
||||
|
||||
/turf/open/lava/ex_act(severity, target)
|
||||
contents_explosion(severity, target)
|
||||
/turf/open/lava/ex_act(severity, target, origin)
|
||||
contents_explosion(severity, target, origin)
|
||||
|
||||
/turf/open/lava/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent)
|
||||
return
|
||||
|
||||
@@ -171,7 +171,7 @@
|
||||
/turf/closed/mineral/acid_melt()
|
||||
ScrapeAway()
|
||||
|
||||
/turf/closed/mineral/ex_act(severity, target)
|
||||
/turf/closed/mineral/ex_act(severity, target, origin)
|
||||
..()
|
||||
switch(severity)
|
||||
if(3)
|
||||
@@ -661,7 +661,7 @@
|
||||
/turf/closed/mineral/strong/acid_melt()
|
||||
return
|
||||
|
||||
/turf/closed/mineral/strong/ex_act(severity, target)
|
||||
/turf/closed/mineral/strong/ex_act(severity, target, origin)
|
||||
return
|
||||
|
||||
#undef MINING_MESSAGE_COOLDOWN
|
||||
|
||||
@@ -272,12 +272,10 @@
|
||||
icon_state = "map-overspace"
|
||||
fixed_underlay = list("space"=1)
|
||||
|
||||
/turf/closed/wall/mineral/plastitanium/explosive/ex_act(severity)
|
||||
/turf/closed/wall/mineral/plastitanium/explosive/ex_act(severity, target, origin)
|
||||
var/datum/explosion/acted_explosion = null
|
||||
for(var/datum/explosion/E in GLOB.explosions)
|
||||
if(E.explosion_id == explosion_id)
|
||||
acted_explosion = E
|
||||
break
|
||||
if(istype(origin, /datum/explosion))
|
||||
acted_explosion = origin
|
||||
if(acted_explosion && istype(acted_explosion.explosion_source, /obj/item/bombcore))
|
||||
var/obj/item/bombcore/large/bombcore = new(get_turf(src))
|
||||
bombcore.detonate()
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
if(girder_type)
|
||||
new /obj/item/stack/sheet/metal(src)
|
||||
|
||||
/turf/closed/wall/ex_act(severity, target)
|
||||
/turf/closed/wall/ex_act(severity, target, origin)
|
||||
if(target == src)
|
||||
dismantle_wall(1,1)
|
||||
return
|
||||
@@ -88,7 +88,7 @@
|
||||
if(1)
|
||||
//SN src = null
|
||||
var/turf/NT = ScrapeAway()
|
||||
NT.contents_explosion(severity, target)
|
||||
NT.contents_explosion(severity, target, origin)
|
||||
return
|
||||
if(2)
|
||||
if (prob(50))
|
||||
|
||||
@@ -451,7 +451,7 @@ GLOBAL_LIST_EMPTY(station_turfs)
|
||||
|
||||
/turf/proc/is_shielded()
|
||||
|
||||
/turf/contents_explosion(severity, target)
|
||||
/turf/contents_explosion(severity, target, origin)
|
||||
var/affecting_level
|
||||
if(severity == 1)
|
||||
affecting_level = 1
|
||||
@@ -469,7 +469,7 @@ GLOBAL_LIST_EMPTY(station_turfs)
|
||||
var/atom/movable/AM = A
|
||||
if(!AM.ex_check(explosion_id))
|
||||
continue
|
||||
A.ex_act(severity, target)
|
||||
A.ex_act(severity, target, origin)
|
||||
CHECK_TICK
|
||||
|
||||
/turf/wave_ex_act(power, datum/wave_explosion/explosion, dir)
|
||||
|
||||
Reference in New Issue
Block a user