Hard upstream sync (#6951)

* maps - none of our changes included yet i'll get them in after i finish up the rest of the sync

* sync part 1 - underscore folders in code

* controllers folder

* datums folder

* game folder

* cmon, work

* modules - admin to awaymissions

* cargo to events

* fields to lighting

* mapping > ruins

* rest of the code folder

* rest of the folders in the root directory

* DME

* fixes compiling errors. it compiles so it works

* readds map changes

* fixes dogborg module select

* fixes typo in moduleselect_alternate_icon filepath
This commit is contained in:
deathride58
2018-05-31 23:03:18 +00:00
committed by kevinz000
parent b6e608cb4c
commit 2f9e3e403d
395 changed files with 134016 additions and 26287 deletions
+4 -4
View File
@@ -73,7 +73,7 @@
if(user.a_intent == INTENT_GRAB && user_buckle_mob(user.pulling, user, check_loc = 0))
return ..()
/obj/machinery/power/tesla_coil/tesla_act(var/power)
/obj/machinery/power/tesla_coil/tesla_act(power, tesla_flags, shocked_targets)
if(anchored && !panel_open)
obj_flags |= BEING_SHOCKED
//don't lose arc power when it's not connected to anything
@@ -82,7 +82,7 @@
add_avail(power_produced*input_power_multiplier)
flick("coilhit", src)
playsound(src.loc, 'sound/magic/lightningshock.ogg', 100, 1, extrarange = 5)
tesla_zap(src, 5, power_produced)
tesla_zap(src, 5, power_produced, tesla_flags, shocked_targets)
if(istype(linked_techweb))
linked_techweb.add_point_type(TECHWEB_POINT_TYPE_DEFAULT, min(power_produced, 1)) // x4 coils = ~240/m point bonus for R&D
addtimer(CALLBACK(src, .proc/reset_shocked), 10)
@@ -110,14 +110,14 @@
circuit = /obj/item/circuitboard/machine/tesla_coil/research
power_loss = 20 // something something, high voltage + resistance
/obj/machinery/power/tesla_coil/research/tesla_act(var/power)
/obj/machinery/power/tesla_coil/research/tesla_act(power, tesla_flags, shocked_things)
if(anchored && !panel_open)
obj_flags |= BEING_SHOCKED
var/power_produced = powernet ? power / power_loss : power
add_avail(power_produced*input_power_multiplier)
flick("rpcoilhit", src)
playsound(src.loc, 'sound/magic/lightningshock.ogg', 100, 1, extrarange = 5)
tesla_zap(src, 5, power_produced)
tesla_zap(src, 5, power_produced, tesla_flags, shocked_things)
if(istype(linked_techweb))
linked_techweb.add_point_type(TECHWEB_POINT_TYPE_DEFAULT, min(power_produced, 3)) // x4 coils with a pulse per second or so = ~720/m point bonus for R&D
addtimer(CALLBACK(src, .proc/reset_shocked), 10)
+17 -12
View File
@@ -66,7 +66,7 @@
pixel_y = -32
for (var/ball in orbiting_balls)
var/range = rand(1, CLAMP(orbiting_balls.len, 3, 7))
tesla_zap(ball, range, TESLA_MINI_POWER/7*range, TRUE)
tesla_zap(ball, range, TESLA_MINI_POWER/7*range)
else
energy = 0 // ensure we dont have miniballs of miniballs
@@ -159,7 +159,7 @@
var/mob/living/carbon/C = A
C.dust()
/proc/tesla_zap(atom/source, zap_range = 3, power, explosive = FALSE, stun_mobs = TRUE)
/proc/tesla_zap(atom/source, zap_range = 3, power, tesla_flags = TESLA_DEFAULT_FLAGS, list/shocked_targets)
. = source.dir
if(power < 1000)
return
@@ -193,6 +193,9 @@
/obj/machinery/the_singularitygen/tesla))
for(var/A in typecache_filter_multi_list_exclusion(oview(source, zap_range+2), things_to_shock, blacklisted_tesla_types))
if(!(tesla_flags & TESLA_ALLOW_DUPLICATES) && LAZYACCESS(shocked_targets, A))
continue
if(istype(A, /obj/machinery/power/tesla_coil))
var/dist = get_dist(source, A)
var/obj/machinery/power/tesla_coil/C = A
@@ -263,33 +266,35 @@
if(closest_atom)
//common stuff
source.Beam(closest_atom, icon_state="lightning[rand(1,12)]", time=5, maxdistance = INFINITY)
if(!(tesla_flags & TESLA_ALLOW_DUPLICATES))
LAZYSET(shocked_targets, closest_atom, TRUE)
var/zapdir = get_dir(source, closest_atom)
if(zapdir)
. = zapdir
//per type stuff:
if(closest_tesla_coil)
closest_tesla_coil.tesla_act(power, explosive, stun_mobs)
closest_tesla_coil.tesla_act(power, tesla_flags, shocked_targets)
else if(closest_grounding_rod)
closest_grounding_rod.tesla_act(power, explosive, stun_mobs)
closest_grounding_rod.tesla_act(power, tesla_flags, shocked_targets)
else if(closest_mob)
var/shock_damage = CLAMP(round(power/400), 10, 90) + rand(-5, 5)
closest_mob.electrocute_act(shock_damage, source, 1, tesla_shock = 1, stun = stun_mobs)
var/shock_damage = (tesla_flags & TESLA_MOB_DAMAGE)? (min(round(power/600), 90) + rand(-5, 5)) : 0
closest_mob.electrocute_act(shock_damage, source, 1, tesla_shock = 1, stun = (tesla_flags & TESLA_MOB_STUN))
if(issilicon(closest_mob))
var/mob/living/silicon/S = closest_mob
if(stun_mobs)
if((tesla_flags & TESLA_MOB_STUN) && (tesla_flags & TESLA_MOB_DAMAGE))
S.emp_act(EMP_LIGHT)
tesla_zap(S, 7, power / 1.5, explosive, stun_mobs) // metallic folks bounce it further
tesla_zap(S, 7, power / 1.5, tesla_flags, shocked_targets) // metallic folks bounce it further
else
tesla_zap(closest_mob, 5, power / 1.5, explosive, stun_mobs)
tesla_zap(closest_mob, 5, power / 1.5, tesla_flags, shocked_targets)
else if(closest_machine)
closest_machine.tesla_act(power, explosive, stun_mobs)
closest_machine.tesla_act(power, tesla_flags, shocked_targets)
else if(closest_blob)
closest_blob.tesla_act(power, explosive, stun_mobs)
closest_blob.tesla_act(power, tesla_flags, shocked_targets)
else if(closest_structure)
closest_structure.tesla_act(power, explosive, stun_mobs)
closest_structure.tesla_act(power, tesla_flags, shocked_targets)
+2 -2
View File
@@ -5,6 +5,6 @@
icon_state = "TheSingGen"
creation_type = /obj/singularity/energy_ball
/obj/machinery/the_singularitygen/tesla/tesla_act(power, explosive = FALSE)
if(explosive)
/obj/machinery/the_singularitygen/tesla/tesla_act(power, tesla_flags)
if(tesla_flags & TESLA_MACHINE_EXPLOSIVE)
energy += power