fixes
This commit is contained in:
+19
-18
@@ -6,7 +6,7 @@
|
||||
stop = TRUE
|
||||
return ..()
|
||||
|
||||
/datum/yelling_wavefill/proc/run(atom/source, dist = 50)
|
||||
/datum/yelling_wavefill/proc/run_wavefill(atom/source, dist = 50)
|
||||
collected = list()
|
||||
do_run(source, dist)
|
||||
// gc
|
||||
@@ -14,6 +14,7 @@
|
||||
collected = null
|
||||
|
||||
// blatantly copied from wave explosion code
|
||||
// check explosion2.dm for what this does and how it works.
|
||||
/datum/yelling_wavefill/proc/do_run(atom/source, dist)
|
||||
var/list/edges = list(source = (NORTH|SOUTH|EAST|WEST))
|
||||
var/list/powers = list(source = dist)
|
||||
@@ -34,24 +35,8 @@
|
||||
var/list/turf/diagonal_powers = list()
|
||||
var/list/turf/diagonal_powers_max = list()
|
||||
|
||||
while(edges.len)
|
||||
// process cardinals
|
||||
for(var/i in edges)
|
||||
T = i
|
||||
power = powers[T]
|
||||
dir = edges[T]
|
||||
RUN_YELL(T, power, dir)
|
||||
powers_returned[T] = returned
|
||||
if(returned)
|
||||
// get hearing atoms
|
||||
else
|
||||
continue
|
||||
|
||||
// diagonal power calc when multiple things hit one diagonal
|
||||
#define CALCULATE_DIAGONAL_POWER(existing, adding, maximum) min(maximum, existing + adding)
|
||||
// diagonal hitting cardinal expansion
|
||||
#define CALCULATE_DIAGONAL_CROSS_POWER(existing, adding) max(existing, adding)
|
||||
// insanity define to mark the next set of cardinals.
|
||||
#define CARDINAL_MARK(ndir, cdir, edir) \
|
||||
if(edir & cdir) { \
|
||||
expanding = get_step(T,ndir); \
|
||||
@@ -79,6 +64,22 @@
|
||||
DIAGONAL_SUBSTEP(turn(ndir, 90), turn(cdir, 90), edir); \
|
||||
DIAGONAL_SUBSTEP(turn(ndir, -90), turn(cdir, -90), edir); \
|
||||
};
|
||||
|
||||
while(edges.len)
|
||||
// to_chat(world, "DEBUG: cycle start edges [english_list_assoc(edges)]")
|
||||
|
||||
// process cardinals
|
||||
for(var/i in edges)
|
||||
T = i
|
||||
power = powers[T]
|
||||
dir = edges[T]
|
||||
RUN_YELL(T, power, dir)
|
||||
powers_returned[T] = returned
|
||||
if(returned)
|
||||
// get hearing atoms
|
||||
else
|
||||
continue
|
||||
|
||||
CARDINAL_MARK(NORTH, NORTH, dir)
|
||||
CARDINAL_MARK(SOUTH, SOUTH, dir)
|
||||
CARDINAL_MARK(EAST, EAST, dir)
|
||||
@@ -129,6 +130,6 @@
|
||||
|
||||
/proc/yelling_wavefill(atom/source, dist = 50)
|
||||
var/datum/yelling_wavefill/Y = new
|
||||
Y.run(source, dist)
|
||||
Y.run_wavefill(source, dist)
|
||||
return Y.collected || list()
|
||||
|
||||
|
||||
@@ -299,7 +299,7 @@
|
||||
/obj/item/energy_katana,
|
||||
/obj/item/hierophant_club,
|
||||
/obj/item/his_grace,
|
||||
/obj/item/gun/ballistic/minigun,
|
||||
/obj/item/gun/energy/minigun,
|
||||
/obj/item/gun/ballistic/automatic/l6_saw,
|
||||
/obj/item/gun/magic/staff/chaos,
|
||||
/obj/item/gun/magic/staff/spellblade,
|
||||
|
||||
@@ -230,7 +230,6 @@
|
||||
var/list/determined = determine_parry_method(TRUE, TRUE)
|
||||
if(!islist(determined))
|
||||
return FALSE
|
||||
var/method = determined[1]
|
||||
var/datum/block_parry_data/data = return_block_parry_datum(determined[2])
|
||||
if(!data.parry_automatic_enabled)
|
||||
return FALSE
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
e_cost = 100
|
||||
|
||||
/obj/item/ammo_casing/energy/electrode/hos
|
||||
projectile_type = /obj/item/projectile/energy/electrode/hos
|
||||
projectile_type = /obj/item/projectile/energy/electrode/security/hos
|
||||
e_cost = 100
|
||||
|
||||
/obj/item/ammo_casing/energy/electrode/spec
|
||||
@@ -20,7 +20,6 @@
|
||||
fire_sound = 'sound/weapons/gunshot.ogg'
|
||||
e_cost = 100
|
||||
|
||||
|
||||
/obj/item/ammo_casing/energy/electrode/old
|
||||
e_cost = 1000
|
||||
|
||||
|
||||
-1
@@ -90,7 +90,6 @@
|
||||
update_icon()
|
||||
user.update_inv_back()
|
||||
|
||||
|
||||
/obj/item/gun/energy/minigun
|
||||
name = "laser gatling gun"
|
||||
desc = "An advanced laser cannon with an incredible rate of fire. Requires a bulky backpack power source to use."
|
||||
@@ -76,6 +76,8 @@
|
||||
var/wait_step = CEILING(spray_delay * INVERSE(range), world.tick_lag)
|
||||
var/obj/effect/decal/chempuff/D = new /obj/effect/decal/chempuff(get_turf(src), stream_mode, wait_step, range, stream_mode? 1 : range)
|
||||
var/turf/T = get_turf(src)
|
||||
if(!T)
|
||||
return
|
||||
log_reagent("SPRAY: [key_name(usr)] fired [src] ([REF(src)]) [COORD(T)] at [A] ([REF(A)]) [COORD(A)] (chempuff: [D.reagents.log_list()])")
|
||||
D.create_reagents(amount_per_transfer_from_this, NONE, NO_REAGENTS_VALUE)
|
||||
if(stream_mode)
|
||||
@@ -83,9 +85,6 @@
|
||||
else
|
||||
reagents.trans_to(D, amount_per_transfer_from_this, 1/range)
|
||||
D.color = mix_color_from_reagents(D.reagents.reagent_list)
|
||||
var/turf/T = get_turf(src)
|
||||
if(!T)
|
||||
return
|
||||
last_spray = world.time
|
||||
D.run(A)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user