support updates
This commit is contained in:
@@ -619,7 +619,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
|
||||
|
||||
//if there is more pluox and n2 then anything else, we receive no power increase from heat
|
||||
if(power_changes)
|
||||
power = max((removed.temperature * temp_factor / T0C) * gasmix_power_ratio + power, 0)
|
||||
power = max((removed.return_temperature() * temp_factor / T0C) * gasmix_power_ratio + power, 0)
|
||||
|
||||
if(prob(50))
|
||||
//(1 + (tritRad + pluoxDampen * bzDampen * o2Rad * plasmaRad / (10 - bzrads))) * freonbonus
|
||||
@@ -642,7 +642,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
|
||||
// oh and
|
||||
//We can only emit so much heat, that being 57500
|
||||
// so max() it all.
|
||||
removed.set_temperature(max(0, min(removed.temperature + ((device_energy * dynamic_heat_modifier) / THERMAL_RELEASE_MODIFIER), 2500 * dynamic_heat_modifier)))
|
||||
removed.set_temperature(max(0, min(removed.return_temperature() + ((device_energy * dynamic_heat_modifier) / THERMAL_RELEASE_MODIFIER), 2500 * dynamic_heat_modifier)))
|
||||
|
||||
//Calculate how much gas to release
|
||||
//Varies based on power and gas content
|
||||
@@ -970,6 +970,17 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
|
||||
"<span class='danger'>The unearthly ringing subsides and you notice you have new radiation burns.</span>", MSG_AUDIBLE)
|
||||
else
|
||||
L.show_message("<span class='hear'>You hear an unearthly ringing and notice your skin is covered in fresh radiation burns.</span>", MSG_AUDIBLE)
|
||||
|
||||
/obj/machinery/power/supermatter_crystal/proc/consume_turf(turf/T)
|
||||
var/oldtype = T.type
|
||||
var/turf/newT = T.ScrapeAway()
|
||||
if(newT.type == oldtype)
|
||||
return
|
||||
playsound(T, 'sound/effects/supermatter.ogg', 50, 1)
|
||||
T.visible_message("<span class='danger'>[T] 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>")
|
||||
CALCULATE_ADJACENT_TURFS(T)
|
||||
|
||||
//Do not blow up our internal radio
|
||||
/obj/machinery/power/supermatter_crystal/contents_explosion(severity, target)
|
||||
return
|
||||
|
||||
@@ -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