Merge branch 'master' into upstream-merge-37293
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
anchored = TRUE
|
||||
light_range = 3
|
||||
var/movechance = 70
|
||||
var/obj/item/device/assembly/signaler/anomaly/aSignal = null
|
||||
var/obj/item/assembly/signaler/anomaly/aSignal
|
||||
var/area/impact_area
|
||||
|
||||
var/lifespan = 990
|
||||
@@ -26,10 +26,12 @@
|
||||
aSignal = new(src)
|
||||
aSignal.name = "[name] core"
|
||||
aSignal.code = rand(1,100)
|
||||
aSignal.anomaly_type = type
|
||||
|
||||
aSignal.frequency = rand(MIN_FREE_FREQ, MAX_FREE_FREQ)
|
||||
if(ISMULTIPLE(aSignal.frequency, 2))//signaller frequencies are always uneven!
|
||||
aSignal.frequency++
|
||||
var/frequency = rand(MIN_FREE_FREQ, MAX_FREE_FREQ)
|
||||
if(ISMULTIPLE(frequency, 2))//signaller frequencies are always uneven!
|
||||
frequency++
|
||||
aSignal.set_frequency(frequency)
|
||||
|
||||
if(new_lifespan)
|
||||
lifespan = new_lifespan
|
||||
@@ -73,7 +75,7 @@
|
||||
|
||||
|
||||
/obj/effect/anomaly/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/device/analyzer))
|
||||
if(istype(I, /obj/item/analyzer))
|
||||
to_chat(user, "<span class='notice'>Analyzing... [src]'s unstable field is fluctuating along frequency [format_frequency(aSignal.frequency)], code [aSignal.code].</span>")
|
||||
|
||||
///////////////////////
|
||||
@@ -193,9 +195,9 @@
|
||||
var/turf/T = safepick(get_area_turfs(impact_area))
|
||||
if(T)
|
||||
// Calculate new position (searches through beacons in world)
|
||||
var/obj/item/device/beacon/chosen
|
||||
var/obj/item/beacon/chosen
|
||||
var/list/possible = list()
|
||||
for(var/obj/item/device/beacon/W in GLOB.teleportbeacons)
|
||||
for(var/obj/item/beacon/W in GLOB.teleportbeacons)
|
||||
possible += W
|
||||
|
||||
if(possible.len > 0)
|
||||
@@ -218,7 +220,7 @@
|
||||
var/y_distance = TO.y - FROM.y
|
||||
var/x_distance = TO.x - FROM.x
|
||||
for (var/atom/movable/A in urange(12, FROM )) // iterate thru list of mobs in the area
|
||||
if(istype(A, /obj/item/device/beacon))
|
||||
if(istype(A, /obj/item/beacon))
|
||||
continue // don't teleport beacons because that's just insanely stupid
|
||||
if(A.anchored)
|
||||
continue
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/effect/decal/cleanable
|
||||
gender = PLURAL
|
||||
layer = ABOVE_NORMAL_TURF_LAYER
|
||||
var/list/random_icon_states = list()
|
||||
var/list/random_icon_states = null
|
||||
var/blood_state = "" //I'm sorry but cleanable/blood code is ass, and so is blood_DNA
|
||||
var/bloodiness = 0 //0-100, amount of blood in this decal, used for making footprints and affecting the alpha of bloody footprints
|
||||
var/mergeable_decal = TRUE //when two of these are on a same tile or do we need to merge them into just one?
|
||||
|
||||
@@ -224,3 +224,11 @@
|
||||
icon_state = "flour"
|
||||
color = "#C8A5DC"
|
||||
beauty = -200
|
||||
|
||||
/obj/effect/decal/cleanable/insectguts
|
||||
name = "insect guts"
|
||||
desc = "One bug squashed. Four more will rise in its place."
|
||||
icon = 'icons/effects/blood.dmi'
|
||||
icon_state = "xfloor1"
|
||||
random_icon_states = list("xfloor1", "xfloor2", "xfloor3", "xfloor4", "xfloor5", "xfloor6", "xfloor7")
|
||||
beauty = -300
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/obj/effect/decal
|
||||
name = "decal"
|
||||
plane = FLOOR_PLANE
|
||||
anchored = TRUE
|
||||
resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||
var/turf_loc_check = TRUE
|
||||
|
||||
@@ -88,8 +88,8 @@
|
||||
auto_process = FALSE
|
||||
|
||||
/datum/effect_system/trail_follow/ion/flight/set_dir(obj/effect/particle_effect/ion_trails/I)
|
||||
if(istype(holder, /obj/item/device/flightpack))
|
||||
var/obj/item/device/flightpack/F = holder
|
||||
if(istype(holder, /obj/item/flightpack))
|
||||
var/obj/item/flightpack/F = holder
|
||||
if(istype(F.wearer))
|
||||
I.setDir(F.wearer.dir)
|
||||
|
||||
|
||||
@@ -27,11 +27,11 @@
|
||||
///////////Mimewalls///////////
|
||||
|
||||
/obj/effect/forcefield/mime
|
||||
icon_state = "empty"
|
||||
icon_state = "nothing"
|
||||
name = "invisible wall"
|
||||
desc = "You have a bad feeling about this."
|
||||
|
||||
/obj/effect/forcefield/mime/advanced
|
||||
name = "invisible blockade"
|
||||
desc = "You're goona be here a while."
|
||||
timeleft = 600
|
||||
desc = "You're gonna be here awhile."
|
||||
timeleft = 600
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
OT.master = V
|
||||
|
||||
if(assembly_type)
|
||||
var/obj/item/device/assembly/A = new assembly_type(V)
|
||||
var/obj/item/assembly/A = new assembly_type(V)
|
||||
V.attached_device = A
|
||||
A.holder = V
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
. = ..()
|
||||
|
||||
/obj/effect/spawner/newbomb/timer
|
||||
assembly_type = /obj/item/device/assembly/timer
|
||||
assembly_type = /obj/item/assembly/timer
|
||||
|
||||
/obj/effect/spawner/newbomb/timer/syndicate
|
||||
pressure_o = TANK_LEAK_PRESSURE - 1
|
||||
@@ -55,15 +55,10 @@
|
||||
pressure_p = TANK_LEAK_PRESSURE - 1
|
||||
|
||||
/obj/effect/spawner/newbomb/proximity
|
||||
assembly_type = /obj/item/device/assembly/prox_sensor
|
||||
assembly_type = /obj/item/assembly/prox_sensor
|
||||
|
||||
/obj/effect/spawner/newbomb/radio
|
||||
<<<<<<< HEAD
|
||||
assembly_type = /obj/item/device/assembly/signaler
|
||||
|
||||
=======
|
||||
assembly_type = /obj/item/assembly/signaler
|
||||
>>>>>>> c0b7f77... Modified bomb and syndicate bomb spawner so Cuban Pete bombs maxcap and work again (#37293)
|
||||
|
||||
|
||||
#undef CELSIUS_TO_KELVIN
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
var/lootcount = 1 //how many items will be spawned
|
||||
var/lootdoubles = TRUE //if the same item can be spawned twice
|
||||
var/list/loot //a list of possible items to spawn e.g. list(/obj/item, /obj/structure, /obj/effect)
|
||||
var/fan_out_items = FALSE //Whether the items should be distributed to offsets 0,3,-3,6,-6,9,-9.. This overrides pixel_x/y on the spawner itself
|
||||
var/fan_out_items = FALSE //Whether the items should be distributed to offsets 0,1,-1,2,-2,3,-3.. This overrides pixel_x/y on the spawner itself
|
||||
|
||||
/obj/effect/spawner/lootdrop/Initialize(mapload)
|
||||
..()
|
||||
@@ -26,7 +26,7 @@
|
||||
spawned_loot.pixel_y = pixel_y
|
||||
else
|
||||
if (loot_spawned)
|
||||
spawned_loot.pixel_x = spawned_loot.pixel_y = ((!(loot_spawned%2)*loot_spawned/2)*-3)+((loot_spawned%2)*(loot_spawned+1)/2*3)
|
||||
spawned_loot.pixel_x = spawned_loot.pixel_y = ((!(loot_spawned%2)*loot_spawned/2)*-1)+((loot_spawned%2)*(loot_spawned+1)/2*1)
|
||||
loot_spawned++
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
@@ -193,7 +193,8 @@
|
||||
/obj/item/aiModule/core/full/peacekeeper,
|
||||
/obj/item/aiModule/core/full/reporter,
|
||||
/obj/item/aiModule/core/full/robocop,
|
||||
/obj/item/aiModule/core/full/liveandletlive
|
||||
/obj/item/aiModule/core/full/liveandletlive,
|
||||
/obj/item/aiModule/core/full/hulkamania
|
||||
)
|
||||
|
||||
/obj/effect/spawner/lootdrop/aimodule_harmful // These will get the shuttle called
|
||||
@@ -205,3 +206,115 @@
|
||||
/obj/item/aiModule/core/full/thermurderdynamic,
|
||||
/obj/item/aiModule/core/full/damaged
|
||||
)
|
||||
|
||||
// Tech storage circuit board spawners
|
||||
// For these, make sure that lootcount equals the number of list items
|
||||
|
||||
/obj/effect/spawner/lootdrop/techstorage
|
||||
name = "generic circuit board spawner"
|
||||
lootdoubles = FALSE
|
||||
fan_out_items = TRUE
|
||||
|
||||
/obj/effect/spawner/lootdrop/techstorage/service
|
||||
name = "service circuit board spawner"
|
||||
lootcount = 10
|
||||
loot = list(
|
||||
/obj/item/circuitboard/computer/arcade/battle,
|
||||
/obj/item/circuitboard/computer/arcade/orion_trail,
|
||||
/obj/item/circuitboard/machine/autolathe,
|
||||
/obj/item/circuitboard/computer/mining,
|
||||
/obj/item/circuitboard/machine/ore_redemption,
|
||||
/obj/item/circuitboard/machine/mining_equipment_vendor,
|
||||
/obj/item/circuitboard/machine/microwave,
|
||||
/obj/item/circuitboard/machine/chem_dispenser/drinks,
|
||||
/obj/item/circuitboard/machine/chem_dispenser/drinks/beer,
|
||||
/obj/item/circuitboard/computer/slot_machine
|
||||
)
|
||||
|
||||
/obj/effect/spawner/lootdrop/techstorage/rnd
|
||||
name = "RnD circuit board spawner"
|
||||
lootcount = 8
|
||||
loot = list(
|
||||
/obj/item/circuitboard/computer/aifixer,
|
||||
/obj/item/circuitboard/machine/rdserver,
|
||||
/obj/item/circuitboard/computer/pandemic,
|
||||
/obj/item/circuitboard/machine/mechfab,
|
||||
/obj/item/circuitboard/machine/circuit_imprinter/department,
|
||||
/obj/item/circuitboard/computer/teleporter,
|
||||
/obj/item/circuitboard/machine/destructive_analyzer,
|
||||
/obj/item/circuitboard/computer/rdconsole
|
||||
)
|
||||
|
||||
/obj/effect/spawner/lootdrop/techstorage/security
|
||||
name = "security circuit board spawner"
|
||||
lootcount = 3
|
||||
loot = list(
|
||||
/obj/item/circuitboard/computer/secure_data,
|
||||
/obj/item/circuitboard/computer/security,
|
||||
/obj/item/circuitboard/computer/prisoner
|
||||
)
|
||||
|
||||
/obj/effect/spawner/lootdrop/techstorage/engineering
|
||||
name = "engineering circuit board spawner"
|
||||
lootcount = 3
|
||||
loot = list(
|
||||
/obj/item/circuitboard/computer/atmos_alert,
|
||||
/obj/item/circuitboard/computer/stationalert,
|
||||
/obj/item/circuitboard/computer/powermonitor
|
||||
)
|
||||
|
||||
/obj/effect/spawner/lootdrop/techstorage/tcomms
|
||||
name = "tcomms circuit board spawner"
|
||||
lootcount = 9
|
||||
loot = list(
|
||||
/obj/item/circuitboard/computer/message_monitor,
|
||||
/obj/item/circuitboard/machine/telecomms/broadcaster,
|
||||
/obj/item/circuitboard/machine/telecomms/bus,
|
||||
/obj/item/circuitboard/machine/telecomms/server,
|
||||
/obj/item/circuitboard/machine/telecomms/receiver,
|
||||
/obj/item/circuitboard/machine/telecomms/processor,
|
||||
/obj/item/circuitboard/machine/announcement_system,
|
||||
/obj/item/circuitboard/computer/comm_server,
|
||||
/obj/item/circuitboard/computer/comm_monitor
|
||||
)
|
||||
|
||||
/obj/effect/spawner/lootdrop/techstorage/medical
|
||||
name = "medical circuit board spawner"
|
||||
lootcount = 8
|
||||
loot = list(
|
||||
/obj/item/circuitboard/computer/cloning,
|
||||
/obj/item/circuitboard/machine/clonepod,
|
||||
/obj/item/circuitboard/machine/chem_dispenser,
|
||||
/obj/item/circuitboard/computer/scan_consolenew,
|
||||
/obj/item/circuitboard/computer/med_data,
|
||||
/obj/item/circuitboard/machine/smoke_machine,
|
||||
/obj/item/circuitboard/machine/chem_master,
|
||||
/obj/item/circuitboard/machine/clonescanner
|
||||
)
|
||||
|
||||
/obj/effect/spawner/lootdrop/techstorage/AI
|
||||
name = "secure AI circuit board spawner"
|
||||
lootcount = 3
|
||||
loot = list(
|
||||
/obj/item/circuitboard/computer/aiupload,
|
||||
/obj/item/circuitboard/computer/borgupload,
|
||||
/obj/item/circuitboard/aicore
|
||||
)
|
||||
|
||||
/obj/effect/spawner/lootdrop/techstorage/command
|
||||
name = "secure command circuit board spawner"
|
||||
lootcount = 3
|
||||
loot = list(
|
||||
/obj/item/circuitboard/computer/crew,
|
||||
/obj/item/circuitboard/computer/communications,
|
||||
/obj/item/circuitboard/computer/card
|
||||
)
|
||||
|
||||
/obj/effect/spawner/lootdrop/techstorage/RnD_secure
|
||||
name = "secure RnD circuit board spawner"
|
||||
lootcount = 3
|
||||
loot = list(
|
||||
/obj/item/circuitboard/computer/mecha_control,
|
||||
/obj/item/circuitboard/computer/apc_control,
|
||||
/obj/item/circuitboard/computer/robotics
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user