Merge pull request #13063 from silicons/supermatter
Ports /tg/ supermatter - no more infinite stunlock death on charge inertia delaminations
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -180,16 +180,37 @@
|
||||
reload()
|
||||
|
||||
/obj/machinery/bsa/full/proc/fire(mob/user, turf/bullseye)
|
||||
var/turf/point = get_front_turf()
|
||||
for(var/turf/T in getline(get_step(point,dir),get_target_turf()))
|
||||
T.ex_act(EXPLODE_DEVASTATE)
|
||||
point.Beam(get_target_turf(),icon_state="bsa_beam",time=50,maxdistance = world.maxx) //ZZZAP
|
||||
|
||||
message_admins("[ADMIN_LOOKUPFLW(user)] has launched an artillery strike.")
|
||||
explosion(bullseye,ex_power,ex_power*2,ex_power*4)
|
||||
|
||||
reload()
|
||||
|
||||
var/turf/point = get_front_turf()
|
||||
var/turf/target = get_target_turf()
|
||||
var/atom/movable/blocker
|
||||
for(var/T in getline(get_step(point, dir), target))
|
||||
var/turf/tile = T
|
||||
if(SEND_SIGNAL(tile, COMSIG_ATOM_BSA_BEAM) & COMSIG_ATOM_BLOCKS_BSA_BEAM)
|
||||
blocker = tile
|
||||
else
|
||||
for(var/AM in tile)
|
||||
var/atom/movable/stuff = AM
|
||||
if(SEND_SIGNAL(stuff, COMSIG_ATOM_BSA_BEAM) & COMSIG_ATOM_BLOCKS_BSA_BEAM)
|
||||
blocker = stuff
|
||||
break
|
||||
if(blocker)
|
||||
target = tile
|
||||
break
|
||||
else
|
||||
tile.ex_act(EXPLODE_DEVASTATE)
|
||||
point.Beam(target, icon_state = "bsa_beam", time = 50, maxdistance = world.maxx) //ZZZAP
|
||||
new /obj/effect/temp_visual/bsa_splash(point, dir)
|
||||
|
||||
if(!blocker)
|
||||
message_admins("[ADMIN_LOOKUPFLW(user)] has launched an artillery strike targeting [ADMIN_VERBOSEJMP(bullseye)].")
|
||||
log_game("[key_name(user)] has launched an artillery strike targeting [AREACOORD(bullseye)].")
|
||||
explosion(bullseye, ex_power, ex_power*2, ex_power*4)
|
||||
else
|
||||
message_admins("[ADMIN_LOOKUPFLW(user)] has launched an artillery strike targeting [ADMIN_VERBOSEJMP(bullseye)] but it was blocked by [blocker] at [ADMIN_VERBOSEJMP(target)].")
|
||||
log_game("[key_name(user)] has launched an artillery strike targeting [AREACOORD(bullseye)] but it was blocked by [blocker] at [AREACOORD(target)].")
|
||||
|
||||
/obj/machinery/bsa/full/proc/reload()
|
||||
ready = FALSE
|
||||
use_power(power_used_per_shot)
|
||||
|
||||
Reference in New Issue
Block a user