| X | Sender | Recipient | Message |
|---|---|---|---|
| [pda.sender] | [pda.recipient] | [pda.message][pda.photo ? " (Photo)":""] |
| Sender | +Sender's Job | +Recipient | +Message |
| [customsender] | +[customjob] | +[customrecepient ? customrecepient.owner : "NONE"] | +[custommessage] |
| X | Sending Dep. | Receiving Dep. | +Message | Stamp | ID Auth. | Priority. |
|---|---|---|---|---|---|---|
| [rc.send_dpt] | +[rc.rec_dpt] | [rc.message] | [rc.stamp] | [rc.id_auth] | [rc.priority] |
" \
+ + "", "window=pdaphoto;size=192x192")
+ onclose(M, "pdaphoto")
+
+/datum/data_rc_msg
+ var/rec_dpt = "Unspecified" // receiving department
+ var/send_dpt = "Unspecified" // sending department
+ var/message = "Blank"
+ var/stamp = "Unstamped"
+ var/id_auth = "Unauthenticated"
+ var/priority = "Normal"
+
+/datum/data_rc_msg/New(param_rec, param_sender, param_message, param_stamp, param_id_auth, param_priority)
+ if(param_rec)
+ rec_dpt = param_rec
+ if(param_sender)
+ send_dpt = param_sender
+ if(param_message)
+ message = param_message
+ if(param_stamp)
+ stamp = param_stamp
+ if(param_id_auth)
+ id_auth = param_id_auth
+ if(param_priority)
+ switch(param_priority)
+ if(1)
+ priority = "Normal"
+ if(2)
+ priority = "High"
+ if(3)
+ priority = "Extreme"
+ else
+ priority = "Undetermined"
+
diff --git a/code/game/machinery/telecomms/machines/processor.dm b/code/game/machinery/telecomms/machines/processor.dm
index fb791cf03e..8b7e0f8672 100644
--- a/code/game/machinery/telecomms/machines/processor.dm
+++ b/code/game/machinery/telecomms/machines/processor.dm
@@ -1,4 +1,3 @@
-
/*
The processor is a very simple machine that decompresses subspace signals and
transfers them back to the original bus. It is essential in producing audible
@@ -15,24 +14,23 @@
anchored = TRUE
use_power = IDLE_POWER_USE
idle_power_usage = 30
- machinetype = 3
circuit = /obj/item/circuitboard/machine/telecomms/processor
var/process_mode = 1 // 1 = Uncompress Signals, 0 = Compress Signals
-/obj/machinery/telecomms/processor/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
+/obj/machinery/telecomms/processor/receive_information(datum/signal/subspace/signal, obj/machinery/telecomms/machine_from)
+ if(!is_freq_listening(signal))
+ return
- if(is_freq_listening(signal))
+ if (!process_mode)
+ signal.data["compression"] = 100 // even more compressed signal
+ else if (signal.data["compression"])
+ signal.data["compression"] = 0 // uncompress subspace signal
- if(process_mode)
- signal.data["compression"] = 0 // uncompress subspace signal
- else
- signal.data["compression"] = 100 // even more compressed signal
-
- if(istype(machine_from, /obj/machinery/telecomms/bus))
- relay_direct_information(signal, machine_from) // send the signal back to the machine
- else // no bus detected - send the signal to servers instead
- signal.data["slow"] += rand(5, 10) // slow the signal down
- relay_information(signal, "/obj/machinery/telecomms/server")
+ if(istype(machine_from, /obj/machinery/telecomms/bus))
+ relay_direct_information(signal, machine_from) // send the signal back to the machine
+ else // no bus detected - send the signal to servers instead
+ signal.data["slow"] += rand(5, 10) // slow the signal down
+ relay_information(signal, signal.server_type)
//Preset Processors
@@ -57,4 +55,4 @@
autolinkers = list("processor4")
/obj/machinery/telecomms/processor/preset_one/birdstation
- name = "Processor"
\ No newline at end of file
+ name = "Processor"
diff --git a/code/game/machinery/telecomms/machines/receiver.dm b/code/game/machinery/telecomms/machines/receiver.dm
index 79ab125878..527c0e6d8f 100644
--- a/code/game/machinery/telecomms/machines/receiver.dm
+++ b/code/game/machinery/telecomms/machines/receiver.dm
@@ -1,4 +1,3 @@
-
/*
The receiver idles and receives messages from subspace-compatible radio equipment;
primarily headsets. They then just relay this information to all linked devices,
@@ -15,40 +14,30 @@
anchored = TRUE
use_power = IDLE_POWER_USE
idle_power_usage = 30
- machinetype = 1
circuit = /obj/item/circuitboard/machine/telecomms/receiver
-/obj/machinery/telecomms/receiver/receive_signal(datum/signal/signal)
-
- if(!on) // has to be on to receive messages
+/obj/machinery/telecomms/receiver/receive_signal(datum/signal/subspace/signal)
+ if(!on || !istype(signal) || !check_receive_level(signal) || signal.transmission_method != TRANSMISSION_SUBSPACE)
return
- if(!signal)
+ if(!is_freq_listening(signal))
return
- if(!check_receive_level(signal))
- return
- if(signal.transmission_method == 2)
- if(is_freq_listening(signal)) // detect subspace signals
+ signal.levels = list()
- //Remove the level and then start adding levels that it is being broadcasted in.
- signal.data["level"] = list()
+ // send the signal to the hub if possible, or a bus otherwise
+ if(!relay_information(signal, /obj/machinery/telecomms/hub))
+ relay_information(signal, /obj/machinery/telecomms/bus)
- var/can_send = relay_information(signal, "/obj/machinery/telecomms/hub") // ideally relay the copied information to relays
- if(!can_send)
- relay_information(signal, "/obj/machinery/telecomms/bus") // Send it to a bus instead, if it's linked to one
+/obj/machinery/telecomms/receiver/proc/check_receive_level(datum/signal/subspace/signal)
+ if (z in signal.levels)
+ return TRUE
-/obj/machinery/telecomms/receiver/proc/check_receive_level(datum/signal/signal)
+ for(var/obj/machinery/telecomms/hub/H in links)
+ for(var/obj/machinery/telecomms/relay/R in H.links)
+ if(R.can_receive(signal) && R.z in signal.levels)
+ return TRUE
- if(signal.data["level"] != listening_level)
- for(var/obj/machinery/telecomms/hub/H in links)
- var/list/connected_levels = list()
- for(var/obj/machinery/telecomms/relay/R in H.links)
- if(R.can_receive(signal))
- connected_levels |= R.listening_level
- if(signal.data["level"] in connected_levels)
- return 1
- return 0
- return 1
+ return FALSE
//Preset Receivers
@@ -58,7 +47,7 @@
id = "Receiver A"
network = "tcommsat"
autolinkers = list("receiverA") // link to relay
- freq_listening = list(GLOB.SCI_FREQ, GLOB.MED_FREQ, GLOB.SUPP_FREQ, GLOB.SERV_FREQ) // science, medical, supply, service
+ freq_listening = list(FREQ_SCIENCE, FREQ_MEDICAL, FREQ_SUPPLY, FREQ_SERVICE)
//--PRESET RIGHT--//
@@ -67,14 +56,14 @@
id = "Receiver B"
network = "tcommsat"
autolinkers = list("receiverB") // link to relay
- freq_listening = list(GLOB.COMM_FREQ, GLOB.ENG_FREQ, GLOB.SEC_FREQ) //command, engineering, security
+ freq_listening = list(FREQ_COMMAND, FREQ_ENGINEERING, FREQ_SECURITY)
//Common and other radio frequencies for people to freely use
/obj/machinery/telecomms/receiver/preset_right/Initialize()
. = ..()
- for(var/i = 1441, i < 1489, i += 2)
+ for(var/i = MIN_FREQ, i <= MAX_FREQ, i += 2)
freq_listening |= i
/obj/machinery/telecomms/receiver/preset_left/birdstation
name = "Receiver"
- freq_listening = list()
\ No newline at end of file
+ freq_listening = list()
diff --git a/code/game/machinery/telecomms/machines/relay.dm b/code/game/machinery/telecomms/machines/relay.dm
index 4aadeed4f5..1a436e56d5 100644
--- a/code/game/machinery/telecomms/machines/relay.dm
+++ b/code/game/machinery/telecomms/machines/relay.dm
@@ -14,17 +14,17 @@
anchored = TRUE
use_power = IDLE_POWER_USE
idle_power_usage = 30
- machinetype = 8
netspeed = 5
long_range_link = 1
circuit = /obj/item/circuitboard/machine/telecomms/relay
var/broadcasting = 1
var/receiving = 1
-/obj/machinery/telecomms/relay/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
+/obj/machinery/telecomms/relay/receive_information(datum/signal/subspace/signal, obj/machinery/telecomms/machine_from)
// Add our level and send it back
- if(can_send(signal))
- signal.data["level"] |= listening_level
+ var/turf/T = get_turf(src)
+ if(can_send(signal) && T)
+ signal.levels |= T.z
// Checks to see if it can send/receive.
@@ -52,7 +52,6 @@
/obj/machinery/telecomms/relay/preset/station
id = "Station Relay"
- listening_level = 1
autolinkers = list("s_relay")
/obj/machinery/telecomms/relay/preset/telecomms
diff --git a/code/game/machinery/telecomms/machines/server.dm b/code/game/machinery/telecomms/machines/server.dm
index a328333b36..18a498efe6 100644
--- a/code/game/machinery/telecomms/machines/server.dm
+++ b/code/game/machinery/telecomms/machines/server.dm
@@ -1,4 +1,3 @@
-
/*
The server logs all traffic and signal data. Once it records the signal, it sends
it to the subspace broadcaster.
@@ -6,7 +5,6 @@
Store a maximum of 100 logs and then deletes them.
*/
-
/obj/machinery/telecomms/server
name = "telecommunication server"
icon_state = "comm_server"
@@ -15,112 +13,57 @@
anchored = TRUE
use_power = IDLE_POWER_USE
idle_power_usage = 15
- machinetype = 4
circuit = /obj/item/circuitboard/machine/telecomms/server
var/list/log_entries = list()
- var/list/stored_names = list()
- var/list/TrafficActions = list()
- var/logs = 0 // number of logs
var/totaltraffic = 0 // gigabytes (if > 1024, divide by 1024 -> terrabytes)
- var/list/memory = list() // stored memory
-
- var/encryption = "null" // encryption key: ie "password"
- var/salt = "null" // encryption salt: ie "123comsat"
- // would add up to md5("password123comsat")
- var/language = "human"
- var/obj/item/device/radio/headset/server_radio = null
- var/last_signal = 0 // Last time it sent a signal
-
/obj/machinery/telecomms/server/Initialize()
. = ..()
- server_radio = new
-/obj/machinery/telecomms/server/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
- if(signal.data["message"])
+/obj/machinery/telecomms/server/receive_information(datum/signal/subspace/vocal/signal, obj/machinery/telecomms/machine_from)
+ // can't log non-vocal signals
+ if(!istype(signal) || !signal.data["message"] || !is_freq_listening(signal))
+ return
- if(is_freq_listening(signal))
+ if(traffic > 0)
+ totaltraffic += traffic // add current traffic to total traffic
- if(traffic > 0)
- totaltraffic += traffic // add current traffic to total traffic
+ // Delete particularly old logs
+ if (log_entries.len >= 400)
+ log_entries.Cut(1, 2)
- //Is this a test signal? Bypass logging
- if(signal.data["type"] != 4)
-
- // If signal has a message and appropriate frequency
-
- update_logs()
-
- var/datum/comm_log_entry/log = new
-
- // Copy the signal.data entries we want
- log.parameters["mobtype"] = signal.data["mobtype"]
- log.parameters["job"] = signal.data["job"]
- log.parameters["key"] = signal.data["key"]
- log.parameters["message"] = signal.data["message"]
- log.parameters["name"] = signal.data["name"]
- log.parameters["realname"] = signal.data["realname"]
-
- //log.parameters["uspeech"] = signal.data["languages"] & HUMAN //good enough
- // TODO languages: ^ I don't know what this does
-
- // If the signal is still compressed, make the log entry gibberish
- if(signal.data["compression"] > 0)
- log.parameters["message"] = Gibberish(signal.data["message"], signal.data["compression"] + 50)
- log.parameters["job"] = Gibberish(signal.data["job"], signal.data["compression"] + 50)
- log.parameters["name"] = Gibberish(signal.data["name"], signal.data["compression"] + 50)
- log.parameters["realname"] = Gibberish(signal.data["realname"], signal.data["compression"] + 50)
- log.input_type = "Corrupt File"
-
- // Log and store everything that needs to be logged
- log_entries.Add(log)
- if(!(signal.data["name"] in stored_names))
- stored_names.Add(signal.data["name"])
- logs++
- signal.data["server"] = src
-
- // Give the log a name
- var/identifier = num2text( rand(-1000,1000) + world.time )
- log.name = "data packet ([md5(identifier)])"
-
- var/can_send = relay_information(signal, "/obj/machinery/telecomms/hub")
- if(!can_send)
- relay_information(signal, "/obj/machinery/telecomms/broadcaster")
-
-/obj/machinery/telecomms/server/proc/update_logs()
- // start deleting the very first log entry
- if(logs >= 400)
- for(var/i = 1, i <= logs, i++) // locate the first garbage collectable log entry and remove it
- var/datum/comm_log_entry/L = log_entries[i]
- if(L.garbage_collector)
- log_entries.Remove(L)
- logs--
- break
-
-/obj/machinery/telecomms/server/proc/add_entry(content, input)
var/datum/comm_log_entry/log = new
- var/identifier = num2text( rand(-1000,1000) + world.time )
- log.name = "[input] ([md5(identifier)])"
- log.input_type = input
- log.parameters["message"] = content
- log_entries.Add(log)
- update_logs()
+ log.parameters["mobtype"] = signal.virt.source.type
+ log.parameters["name"] = signal.data["name"]
+ log.parameters["job"] = signal.data["job"]
+ log.parameters["message"] = signal.data["message"]
+ // If the signal is still compressed, make the log entry gibberish
+ var/compression = signal.data["compression"]
+ if(compression > 0)
+ log.input_type = "Corrupt File"
+ log.parameters["name"] = Gibberish(signal.data["name"], compression + 50)
+ log.parameters["job"] = Gibberish(signal.data["job"], compression + 50)
+ log.parameters["message"] = Gibberish(signal.data["message"], compression + 50)
+
+ // Give the log a name and store it
+ var/identifier = num2text( rand(-1000,1000) + world.time )
+ log.name = "data packet ([md5(identifier)])"
+ log_entries.Add(log)
+
+ var/can_send = relay_information(signal, /obj/machinery/telecomms/hub)
+ if(!can_send)
+ relay_information(signal, /obj/machinery/telecomms/broadcaster)
// Simple log entry datum
-
/datum/comm_log_entry
- var/parameters = list() // carbon-copy to signal.data[]
- var/name = "data packet (#)"
- var/garbage_collector = 1 // if set to 0, will not be garbage collected
var/input_type = "Speech File"
+ var/name = "data packet (#)"
+ var/parameters = list() // copied from signal.data above
-
-
-//Preset Servers
-
+// Preset Servers
/obj/machinery/telecomms/server/presets
network = "tcommsat"
@@ -131,22 +74,22 @@
/obj/machinery/telecomms/server/presets/science
id = "Science Server"
- freq_listening = list(GLOB.SCI_FREQ)
+ freq_listening = list(FREQ_SCIENCE)
autolinkers = list("science")
/obj/machinery/telecomms/server/presets/medical
id = "Medical Server"
- freq_listening = list(GLOB.MED_FREQ)
+ freq_listening = list(FREQ_MEDICAL)
autolinkers = list("medical")
/obj/machinery/telecomms/server/presets/supply
id = "Supply Server"
- freq_listening = list(GLOB.SUPP_FREQ)
+ freq_listening = list(FREQ_SUPPLY)
autolinkers = list("supply")
/obj/machinery/telecomms/server/presets/service
id = "Service Server"
- freq_listening = list(GLOB.SERV_FREQ)
+ freq_listening = list(FREQ_SERVICE)
autolinkers = list("service")
/obj/machinery/telecomms/server/presets/common
@@ -154,26 +97,25 @@
freq_listening = list()
autolinkers = list("common")
- //Common and other radio frequencies for people to freely use
- // 1441 to 1489
+//Common and other radio frequencies for people to freely use
/obj/machinery/telecomms/server/presets/common/Initialize()
. = ..()
- for(var/i = 1441, i < 1489, i += 2)
+ for(var/i = MIN_FREQ, i <= MAX_FREQ, i += 2)
freq_listening |= i
/obj/machinery/telecomms/server/presets/command
id = "Command Server"
- freq_listening = list(GLOB.COMM_FREQ)
+ freq_listening = list(FREQ_COMMAND)
autolinkers = list("command")
/obj/machinery/telecomms/server/presets/engineering
id = "Engineering Server"
- freq_listening = list(GLOB.ENG_FREQ)
+ freq_listening = list(FREQ_ENGINEERING)
autolinkers = list("engineering")
/obj/machinery/telecomms/server/presets/security
id = "Security Server"
- freq_listening = list(GLOB.SEC_FREQ)
+ freq_listening = list(FREQ_SECURITY)
autolinkers = list("security")
/obj/machinery/telecomms/server/presets/common/birdstation/Initialize()
diff --git a/code/game/machinery/telecomms/telecomunications.dm b/code/game/machinery/telecomms/telecomunications.dm
index 62f53f73ad..b68d348539 100644
--- a/code/game/machinery/telecomms/telecomunications.dm
+++ b/code/game/machinery/telecomms/telecomunications.dm
@@ -26,15 +26,13 @@ GLOBAL_LIST_EMPTY(telecomms_list)
var/list/freq_listening = list() // list of frequencies to tune into: if none, will listen to all
- var/machinetype = 0 // just a hacky way of preventing alike machines from pairing
- var/toggled = TRUE // Is it toggled on
var/on = TRUE
- var/long_range_link = 0 // Can you link it across Z levels or on the otherside of the map? (Relay & Hub)
- var/hide = 0 // Is it a hidden machine?
- var/listening_level = 0 // 0 = auto set in New() - this is the z level that the machine is listening to.
+ var/toggled = TRUE // Is it toggled on
+ var/long_range_link = FALSE // Can you link it across Z levels or on the otherside of the map? (Relay & Hub)
+ var/hide = FALSE // Is it a hidden machine?
-/obj/machinery/telecomms/proc/relay_information(datum/signal/signal, filter, copysig, amount = 20)
+/obj/machinery/telecomms/proc/relay_information(datum/signal/subspace/signal, filter, copysig, amount = 20)
// relay signal to all linked machinery that are of type [filter]. If signal has been sent [amount] times, stop sending
if(!on)
@@ -46,70 +44,26 @@ GLOBAL_LIST_EMPTY(telecomms_list)
if(netlag > signal.data["slow"])
signal.data["slow"] = netlag
-// Loop through all linked machines and send the signal or copy.
+ // Loop through all linked machines and send the signal or copy.
for(var/obj/machinery/telecomms/machine in links)
- if(filter && !istype( machine, text2path(filter) ))
+ if(filter && !istype( machine, filter ))
continue
if(!machine.on)
continue
if(amount && send_count >= amount)
break
- if(machine.loc.z != listening_level)
- if(long_range_link == 0 && machine.long_range_link == 0)
- continue
- // If we're sending a copy, be sure to create the copy for EACH machine and paste the data
- var/datum/signal/copy = new
- if(copysig)
-
- copy.transmission_method = 2
- copy.frequency = signal.frequency
- // Copy the main data contents! Workaround for some nasty bug where the actual array memory is copied and not its contents.
- copy.data = list(
-
- "mob" = signal.data["mob"],
- "mobtype" = signal.data["mobtype"],
- "realname" = signal.data["realname"],
- "name" = signal.data["name"],
- "job" = signal.data["job"],
- "key" = signal.data["key"],
- "vmask" = signal.data["vmask"],
- "compression" = signal.data["compression"],
- "message" = signal.data["message"],
- "radio" = signal.data["radio"],
- "slow" = signal.data["slow"],
- "traffic" = signal.data["traffic"],
- "type" = signal.data["type"],
- "server" = signal.data["server"],
- "reject" = signal.data["reject"],
- "level" = signal.data["level"],
- "spans" = signal.data["spans"],
- "verb_say" = signal.data["verb_say"],
- "verb_ask" = signal.data["verb_ask"],
- "verb_exclaim" = signal.data["verb_exclaim"],
- "verb_yell" = signal.data["verb_yell"],
- "language" = signal.data["language"]
- )
-
- // Keep the "original" signal constant
- if(!signal.data["original"])
- copy.data["original"] = signal
- else
- copy.data["original"] = signal.data["original"]
-
- else
- copy = null
-
+ if(z != machine.loc.z && !long_range_link && !machine.long_range_link)
+ continue
send_count++
if(machine.is_freq_listening(signal))
machine.traffic++
- if(copysig && copy)
- machine.receive_information(copy, src)
+ if(copysig)
+ machine.receive_information(signal.copy(), src)
else
machine.receive_information(signal, src)
-
if(send_count > 0 && is_freq_listening(signal))
traffic++
@@ -121,28 +75,16 @@ GLOBAL_LIST_EMPTY(telecomms_list)
/obj/machinery/telecomms/proc/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
// receive information from linked machinery
- ..()
/obj/machinery/telecomms/proc/is_freq_listening(datum/signal/signal)
// return TRUE if found, FALSE if not found
- if(!signal)
- return FALSE
- if((signal.frequency in freq_listening) || (!freq_listening.len))
- return TRUE
- else
- return FALSE
+ return signal && (!freq_listening.len || (signal.frequency in freq_listening))
/obj/machinery/telecomms/New()
GLOB.telecomms_list += src
..()
- //Set the listening_level if there's none.
- if(!listening_level)
- //Defaults to our Z level!
- var/turf/position = get_turf(src)
- listening_level = position.z
-
/obj/machinery/telecomms/Initialize(mapload)
. = ..()
if(mapload && autolinkers.len)
diff --git a/code/game/mecha/combat/combat.dm b/code/game/mecha/combat/combat.dm
index 626c405284..5e7ddb6497 100644
--- a/code/game/mecha/combat/combat.dm
+++ b/code/game/mecha/combat/combat.dm
@@ -24,3 +24,5 @@
if(occupant && occupant.client && occupant.client.mouse_pointer_icon == 'icons/mecha/mecha_mouse.dmi')
occupant.client.mouse_pointer_icon = initial(occupant.client.mouse_pointer_icon)
..()
+
+
diff --git a/code/game/mecha/combat/gygax.dm b/code/game/mecha/combat/gygax.dm
index d5228b9130..56e3ccc6c3 100644
--- a/code/game/mecha/combat/gygax.dm
+++ b/code/game/mecha/combat/gygax.dm
@@ -63,3 +63,4 @@
/obj/mecha/combat/gygax/dark/RemoveActions(mob/living/user, human_occupant = 0)
..()
thrusters_action.Remove(user)
+
diff --git a/code/game/mecha/combat/honker.dm b/code/game/mecha/combat/honker.dm
index ceb88aa9b0..7424a30fcc 100644
--- a/code/game/mecha/combat/honker.dm
+++ b/code/game/mecha/combat/honker.dm
@@ -141,3 +141,5 @@
for (var/i=0;i<6;i++)
color = color+pick(colors)
return color
+
+
diff --git a/code/game/mecha/combat/marauder.dm b/code/game/mecha/combat/marauder.dm
index 731aa2cec9..7be8fb6246 100644
--- a/code/game/mecha/combat/marauder.dm
+++ b/code/game/mecha/combat/marauder.dm
@@ -1,90 +1,90 @@
-/obj/mecha/combat/marauder
- desc = "Heavy-duty, combat exosuit, developed after the Durand model. Rarely found among civilian populations."
- name = "\improper Marauder"
- icon_state = "marauder"
- step_in = 5
- max_integrity = 500
- deflect_chance = 25
- armor = list(melee = 50, bullet = 55, laser = 40, energy = 30, bomb = 30, bio = 0, rad = 0, fire = 100, acid = 100)
- max_temperature = 60000
- resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
- infra_luminosity = 3
+/obj/mecha/combat/marauder
+ desc = "Heavy-duty, combat exosuit, developed after the Durand model. Rarely found among civilian populations."
+ name = "\improper Marauder"
+ icon_state = "marauder"
+ step_in = 5
+ max_integrity = 500
+ deflect_chance = 25
+ armor = list(melee = 50, bullet = 55, laser = 40, energy = 30, bomb = 30, bio = 0, rad = 0, fire = 100, acid = 100)
+ max_temperature = 60000
+ resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
+ infra_luminosity = 3
operation_req_access = list(ACCESS_CENT_SPECOPS)
- wreckage = /obj/structure/mecha_wreckage/marauder
- add_req_access = 0
- internal_damage_threshold = 25
- force = 45
- max_equip = 4
- bumpsmash = 1
-
-/obj/mecha/combat/marauder/GrantActions(mob/living/user, human_occupant = 0)
- ..()
- smoke_action.Grant(user, src)
- thrusters_action.Grant(user, src)
- zoom_action.Grant(user, src)
-
-/obj/mecha/combat/marauder/RemoveActions(mob/living/user, human_occupant = 0)
- ..()
- smoke_action.Remove(user)
- thrusters_action.Remove(user)
- zoom_action.Remove(user)
-
-/obj/mecha/combat/marauder/loaded/New()
- ..()
- var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/energy/pulse(src)
- ME.attach(src)
- ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack(src)
- ME.attach(src)
- ME = new /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay(src)
- ME.attach(src)
- ME = new /obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster(src)
- ME.attach(src)
-
-/obj/mecha/combat/marauder/seraph
- desc = "Heavy-duty, command-type exosuit. This is a custom model, utilized only by high-ranking military personnel."
- name = "\improper Seraph"
- icon_state = "seraph"
+ wreckage = /obj/structure/mecha_wreckage/marauder
+ add_req_access = 0
+ internal_damage_threshold = 25
+ force = 45
+ max_equip = 4
+ bumpsmash = 1
+
+/obj/mecha/combat/marauder/GrantActions(mob/living/user, human_occupant = 0)
+ ..()
+ smoke_action.Grant(user, src)
+ thrusters_action.Grant(user, src)
+ zoom_action.Grant(user, src)
+
+/obj/mecha/combat/marauder/RemoveActions(mob/living/user, human_occupant = 0)
+ ..()
+ smoke_action.Remove(user)
+ thrusters_action.Remove(user)
+ zoom_action.Remove(user)
+
+/obj/mecha/combat/marauder/loaded/New()
+ ..()
+ var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/energy/pulse(src)
+ ME.attach(src)
+ ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack(src)
+ ME.attach(src)
+ ME = new /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay(src)
+ ME.attach(src)
+ ME = new /obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster(src)
+ ME.attach(src)
+
+/obj/mecha/combat/marauder/seraph
+ desc = "Heavy-duty, command-type exosuit. This is a custom model, utilized only by high-ranking military personnel."
+ name = "\improper Seraph"
+ icon_state = "seraph"
operation_req_access = list(ACCESS_CENT_SPECOPS)
- step_in = 3
+ step_in = 3
max_integrity = 550
- wreckage = /obj/structure/mecha_wreckage/seraph
- internal_damage_threshold = 20
- force = 55
- max_equip = 5
-
-/obj/mecha/combat/marauder/seraph/New()
- ..()
- var/obj/item/mecha_parts/mecha_equipment/ME
- ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot(src)
- ME.attach(src)
- ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack(src)
- ME.attach(src)
- ME = new /obj/item/mecha_parts/mecha_equipment/teleporter(src)
- ME.attach(src)
- ME = new /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay(src)
- ME.attach(src)
- ME = new /obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster(src)
- ME.attach(src)
-
-/obj/mecha/combat/marauder/mauler
- desc = "Heavy-duty, combat exosuit, developed off of the existing Marauder model."
- name = "\improper Mauler"
- icon_state = "mauler"
+ wreckage = /obj/structure/mecha_wreckage/seraph
+ internal_damage_threshold = 20
+ force = 55
+ max_equip = 5
+
+/obj/mecha/combat/marauder/seraph/New()
+ ..()
+ var/obj/item/mecha_parts/mecha_equipment/ME
+ ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot(src)
+ ME.attach(src)
+ ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack(src)
+ ME.attach(src)
+ ME = new /obj/item/mecha_parts/mecha_equipment/teleporter(src)
+ ME.attach(src)
+ ME = new /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay(src)
+ ME.attach(src)
+ ME = new /obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster(src)
+ ME.attach(src)
+
+/obj/mecha/combat/marauder/mauler
+ desc = "Heavy-duty, combat exosuit, developed off of the existing Marauder model."
+ name = "\improper Mauler"
+ icon_state = "mauler"
operation_req_access = list(ACCESS_SYNDICATE)
- wreckage = /obj/structure/mecha_wreckage/mauler
- max_equip = 5
-
-/obj/mecha/combat/marauder/mauler/loaded/New()
- ..()
- var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg(src)
- ME.attach(src)
- ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot(src)
- ME.attach(src)
- ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack(src)
- ME.attach(src)
- ME = new /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay(src)
- ME.attach(src)
- ME = new /obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster(src)
- ME.attach(src)
-
-
+ wreckage = /obj/structure/mecha_wreckage/mauler
+ max_equip = 5
+
+/obj/mecha/combat/marauder/mauler/loaded/New()
+ ..()
+ var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg(src)
+ ME.attach(src)
+ ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot(src)
+ ME.attach(src)
+ ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack(src)
+ ME.attach(src)
+ ME = new /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay(src)
+ ME.attach(src)
+ ME = new /obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster(src)
+ ME.attach(src)
+
+
diff --git a/code/game/mecha/combat/reticence.dm b/code/game/mecha/combat/reticence.dm
index 26384824d0..14891835c5 100644
--- a/code/game/mecha/combat/reticence.dm
+++ b/code/game/mecha/combat/reticence.dm
@@ -1,28 +1,28 @@
-/obj/mecha/combat/reticence
- desc = "A silent, fast, and nigh-invisible miming exosuit. Popular among mimes and mime assassins."
- name = "\improper reticence"
- icon_state = "reticence"
- step_in = 2
- dir_in = 1 //Facing North.
- max_integrity = 100
- deflect_chance = 3
- armor = list(melee = 25, bullet = 20, laser = 30, energy = 15, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 100)
- max_temperature = 15000
- wreckage = /obj/structure/mecha_wreckage/reticence
+/obj/mecha/combat/reticence
+ desc = "A silent, fast, and nigh-invisible miming exosuit. Popular among mimes and mime assassins."
+ name = "\improper reticence"
+ icon_state = "reticence"
+ step_in = 2
+ dir_in = 1 //Facing North.
+ max_integrity = 100
+ deflect_chance = 3
+ armor = list(melee = 25, bullet = 20, laser = 30, energy = 15, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 100)
+ max_temperature = 15000
+ wreckage = /obj/structure/mecha_wreckage/reticence
operation_req_access = list(ACCESS_THEATRE)
- add_req_access = 0
- internal_damage_threshold = 25
- max_equip = 2
- step_energy_drain = 3
- color = "#87878715"
- stepsound = null
- turnsound = null
- opacity = 0
-
-/obj/mecha/combat/reticence/loaded/New()
- ..()
- var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/silenced
- ME.attach(src)
- ME = new /obj/item/mecha_parts/mecha_equipment/rcd //HAHA IT MAKES WALLS GET IT
- ME.attach(src)
- return
+ add_req_access = 0
+ internal_damage_threshold = 25
+ max_equip = 2
+ step_energy_drain = 3
+ color = "#87878715"
+ stepsound = null
+ turnsound = null
+ opacity = 0
+
+/obj/mecha/combat/reticence/loaded/New()
+ ..()
+ var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/silenced
+ ME.attach(src)
+ ME = new /obj/item/mecha_parts/mecha_equipment/rcd //HAHA IT MAKES WALLS GET IT
+ ME.attach(src)
+ return
diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm
index 6ef98120f5..8654f9854e 100644
--- a/code/game/mecha/mech_fabricator.dm
+++ b/code/game/mecha/mech_fabricator.dm
@@ -34,15 +34,13 @@
"Misc"
)
- var/datum/component/material_container/materials
-
/obj/machinery/mecha_part_fabricator/Initialize()
- materials = AddComponent(/datum/component/material_container,
- list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE), 0,
- FALSE, list(/obj/item/stack, /obj/item/ore/bluespace_crystal), CALLBACK(src, .proc/is_insertion_ready), CALLBACK(src, .proc/AfterMaterialInsert))
- materials.precise_insertion = TRUE
- stored_research = new
- return ..()
+ var/datum/component/material_container/materials = AddComponent(/datum/component/material_container,
+ list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE), 0,
+ FALSE, list(/obj/item/stack, /obj/item/ore/bluespace_crystal), CALLBACK(src, .proc/is_insertion_ready), CALLBACK(src, .proc/AfterMaterialInsert))
+ materials.precise_insertion = TRUE
+ stored_research = new
+ return ..()
/obj/machinery/mecha_part_fabricator/RefreshParts()
var/T = 0
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index 2d148b4ff4..ded6aec5c5 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -247,7 +247,7 @@
radio.name = "[src] radio"
radio.icon = icon
radio.icon_state = icon_state
- radio.subspace_transmission = 1
+ radio.subspace_transmission = TRUE
/obj/mecha/proc/can_use(mob/user)
if(user != occupant)
diff --git a/code/game/mecha/mecha_topic.dm b/code/game/mecha/mecha_topic.dm
index 54b44f89f9..4c1bceca28 100644
--- a/code/game/mecha/mecha_topic.dm
+++ b/code/game/mecha/mecha_topic.dm
@@ -284,7 +284,7 @@
if(href_list["rfreq"])
var/new_frequency = (radio.frequency + afilter.getNum("rfreq"))
- if (!radio.freerange || (radio.frequency < 1200 || radio.frequency > 1600))
+ if (!radio.freerange || (radio.frequency < MIN_FREE_FREQ || radio.frequency > MAX_FREE_FREQ))
new_frequency = sanitize_frequency(new_frequency)
radio.set_frequency(new_frequency)
send_byjax(src.occupant,"exosuit.browser","rfreq","[format_frequency(radio.frequency)]")
diff --git a/code/game/objects/effects/anomalies.dm b/code/game/objects/effects/anomalies.dm
index 76fd5e5cbf..2f8aff3a13 100644
--- a/code/game/objects/effects/anomalies.dm
+++ b/code/game/objects/effects/anomalies.dm
@@ -26,6 +26,7 @@
aSignal = new(src)
aSignal.name = "[name] core"
aSignal.code = rand(1,100)
+
aSignal.frequency = rand(MIN_FREE_FREQ, MAX_FREE_FREQ)
if(ISMULTIPLE(aSignal.frequency, 2))//signaller frequencies are always uneven!
aSignal.frequency++
diff --git a/code/game/objects/effects/bump_teleporter.dm b/code/game/objects/effects/bump_teleporter.dm
index 8eb4c986de..42f59cc535 100644
--- a/code/game/objects/effects/bump_teleporter.dm
+++ b/code/game/objects/effects/bump_teleporter.dm
@@ -19,6 +19,7 @@
LAZYREMOVE(AllTeleporters, src)
return ..()
+
/obj/effect/bump_teleporter/singularity_act()
return
diff --git a/code/game/objects/effects/decals/crayon.dm b/code/game/objects/effects/decals/crayon.dm
index 4362957a76..baad713675 100644
--- a/code/game/objects/effects/decals/crayon.dm
+++ b/code/game/objects/effects/decals/crayon.dm
@@ -14,7 +14,6 @@
if(e_name)
name = e_name
desc = "A [name] vandalizing the station."
-
if(alt_icon)
icon = alt_icon
if(type)
@@ -28,3 +27,4 @@
if(main)
paint_colour = main
add_atom_colour(paint_colour, FIXED_COLOUR_PRIORITY)
+
diff --git a/code/game/objects/effects/effect_system/effects_foam.dm b/code/game/objects/effects/effect_system/effects_foam.dm
index d7b6340c26..f5754029eb 100644
--- a/code/game/objects/effects/effect_system/effects_foam.dm
+++ b/code/game/objects/effects/effect_system/effects_foam.dm
@@ -236,7 +236,7 @@
/obj/structure/foamedmetal/Move()
var/turf/T = loc
- ..()
+ . = ..()
move_update_air(T)
/obj/structure/foamedmetal/attack_paw(mob/user)
diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index caeb1f168c..90408e7d3f 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -16,7 +16,7 @@
/obj/effect/landmark/start
name = "start"
- icon = 'icons/mob/screen_gen.dmi'
+ icon = 'icons/mob/landmarks.dmi'
icon_state = "x"
anchored = TRUE
var/jobspawn_override = FALSE
@@ -40,9 +40,9 @@
// START LANDMARKS FOLLOW. Don't change the names unless
// you are refactoring shitty landmark code.
-
/obj/effect/landmark/start/assistant
name = "Assistant"
+ icon_state = "Assistant"
/obj/effect/landmark/start/assistant/override
jobspawn_override = TRUE
@@ -50,102 +50,135 @@
/obj/effect/landmark/start/janitor
name = "Janitor"
+ icon_state = "Janitor"
/obj/effect/landmark/start/cargo_technician
name = "Cargo Technician"
+ icon_state = "Cargo Technician"
/obj/effect/landmark/start/bartender
name = "Bartender"
+ icon_state = "Bartender"
/obj/effect/landmark/start/clown
name = "Clown"
+ icon_state = "Clown"
/obj/effect/landmark/start/mime
name = "Mime"
+ icon_state = "Mime"
/obj/effect/landmark/start/quartermaster
name = "Quartermaster"
+ icon_state = "Quartermaster"
/obj/effect/landmark/start/atmospheric_technician
name = "Atmospheric Technician"
+ icon_state = "Atmospheric Technician"
/obj/effect/landmark/start/cook
name = "Cook"
+ icon_state = "Cook"
/obj/effect/landmark/start/shaft_miner
name = "Shaft Miner"
+ icon_state = "Shaft Miner"
/obj/effect/landmark/start/security_officer
name = "Security Officer"
+ icon_state = "Security Officer"
/obj/effect/landmark/start/botanist
name = "Botanist"
+ icon_state = "Botanist"
/obj/effect/landmark/start/head_of_security
name = "Head of Security"
-
-/obj/effect/landmark/start/ai
- name = "AI"
- delete_after_roundstart = FALSE
+ icon_state = "Head of Security"
/obj/effect/landmark/start/captain
name = "Captain"
+ icon_state = "Captain"
/obj/effect/landmark/start/detective
name = "Detective"
+ icon_state = "Detective"
/obj/effect/landmark/start/warden
name = "Warden"
+ icon_state = "Warden"
/obj/effect/landmark/start/chief_engineer
name = "Chief Engineer"
-
-/obj/effect/landmark/start/cyborg
- name = "Cyborg"
+ icon_state = "Chief Engineer"
/obj/effect/landmark/start/head_of_personnel
name = "Head of Personnel"
+ icon_state = "Head of Personnel"
/obj/effect/landmark/start/librarian
name = "Curator"
+ icon_state = "Curator"
/obj/effect/landmark/start/lawyer
name = "Lawyer"
+ icon_state = "Lawyer"
/obj/effect/landmark/start/station_engineer
name = "Station Engineer"
+ icon_state = "Station Engineer"
/obj/effect/landmark/start/medical_doctor
name = "Medical Doctor"
+ icon_state = "Medical Doctor"
/obj/effect/landmark/start/scientist
name = "Scientist"
+ icon_state = "Scientist"
/obj/effect/landmark/start/chemist
name = "Chemist"
+ icon_state = "Chemist"
/obj/effect/landmark/start/roboticist
name = "Roboticist"
+ icon_state = "Roboticist"
/obj/effect/landmark/start/research_director
name = "Research Director"
+ icon_state = "Research Director"
/obj/effect/landmark/start/geneticist
name = "Geneticist"
+ icon_state = "Geneticist"
/obj/effect/landmark/start/chief_medical_officer
name = "Chief Medical Officer"
+ icon_state = "Chief Medical Officer"
/obj/effect/landmark/start/virologist
name = "Virologist"
+ icon_state = "Virologist"
/obj/effect/landmark/start/chaplain
name = "Chaplain"
+ icon_state = "Chaplain"
+
+/obj/effect/landmark/start/cyborg
+ name = "Cyborg"
+ icon_state = "Cyborg"
+
+/obj/effect/landmark/start/ai
+ name = "AI"
+ icon_state = "AI"
+ delete_after_roundstart = FALSE
+
//Department Security spawns
/obj/effect/landmark/start/depsec
name = "department_sec"
+ icon_state = "Security Officer"
/obj/effect/landmark/start/depsec/New()
..()
@@ -358,4 +391,4 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player)
/obj/effect/landmark/ruin/Destroy()
GLOB.ruin_landmarks -= src
ruin_template = null
- . = ..()
\ No newline at end of file
+ . = ..()
diff --git a/code/game/objects/effects/misc.dm b/code/game/objects/effects/misc.dm
index d7d36acde1..1178cd43f8 100644
--- a/code/game/objects/effects/misc.dm
+++ b/code/game/objects/effects/misc.dm
@@ -65,3 +65,4 @@
/obj/effect/abstract/marker/at
name = "active turf marker"
+
diff --git a/code/game/objects/effects/portals.dm b/code/game/objects/effects/portals.dm
index ac8e5ff14d..51a5778383 100644
--- a/code/game/objects/effects/portals.dm
+++ b/code/game/objects/effects/portals.dm
@@ -1,3 +1,4 @@
+
/proc/create_portal_pair(turf/source, turf/destination, _creator = null, _lifespan = 300, accuracy = 0, newtype = /obj/effect/portal)
if(!istype(source) || !istype(destination))
return
@@ -170,3 +171,4 @@
else
real_target = get_turf(linked)
return real_target
+
diff --git a/code/game/objects/effects/spawners/gibspawner.dm b/code/game/objects/effects/spawners/gibspawner.dm
index 79627a7a80..e99a2fcbc6 100644
--- a/code/game/objects/effects/spawners/gibspawner.dm
+++ b/code/game/objects/effects/spawners/gibspawner.dm
@@ -43,7 +43,7 @@
/obj/effect/gibspawner/generic
- gibtypes = list(/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs/core)
+ gibtypes = list(/obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/core)
gibamounts = list(2,2,1)
/obj/effect/gibspawner/generic/Initialize()
@@ -52,7 +52,7 @@
. = ..()
/obj/effect/gibspawner/human
- gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/up,/obj/effect/decal/cleanable/blood/gibs/down,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs/body,/obj/effect/decal/cleanable/blood/gibs/limb,/obj/effect/decal/cleanable/blood/gibs/core)
+ gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/up, /obj/effect/decal/cleanable/blood/gibs/down, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/body, /obj/effect/decal/cleanable/blood/gibs/limb, /obj/effect/decal/cleanable/blood/gibs/core)
gibamounts = list(1,1,1,1,1,1,1)
/obj/effect/gibspawner/human/Initialize()
@@ -62,7 +62,7 @@
/obj/effect/gibspawner/humanbodypartless //only the gibs that don't look like actual full bodyparts (except torso).
- gibtypes = list(/obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/core,/obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/core, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/torso)
+ gibtypes = list(/obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/core, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/core, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/torso)
gibamounts = list(1, 1, 1, 1, 1, 1)
/obj/effect/gibspawner/humanbodypartless/Initialize()
@@ -72,7 +72,7 @@
/obj/effect/gibspawner/xeno
- gibtypes = list(/obj/effect/decal/cleanable/xenoblood/xgibs/up,/obj/effect/decal/cleanable/xenoblood/xgibs/down,/obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/body, /obj/effect/decal/cleanable/xenoblood/xgibs/limb, /obj/effect/decal/cleanable/xenoblood/xgibs/core)
+ gibtypes = list(/obj/effect/decal/cleanable/xenoblood/xgibs/up, /obj/effect/decal/cleanable/xenoblood/xgibs/down, /obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/body, /obj/effect/decal/cleanable/xenoblood/xgibs/limb, /obj/effect/decal/cleanable/xenoblood/xgibs/core)
gibamounts = list(1,1,1,1,1,1,1)
/obj/effect/gibspawner/xeno/Initialize()
@@ -82,7 +82,7 @@
/obj/effect/gibspawner/xenobodypartless //only the gibs that don't look like actual full bodyparts (except torso).
- gibtypes = list(/obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/core,/obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/core, /obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/torso)
+ gibtypes = list(/obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/core, /obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/core, /obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/torso)
gibamounts = list(1, 1, 1, 1, 1, 1)
@@ -111,7 +111,7 @@
/obj/effect/gibspawner/robot
sparks = 1
- gibtypes = list(/obj/effect/decal/cleanable/robot_debris/up,/obj/effect/decal/cleanable/robot_debris/down,/obj/effect/decal/cleanable/robot_debris,/obj/effect/decal/cleanable/robot_debris,/obj/effect/decal/cleanable/robot_debris,/obj/effect/decal/cleanable/robot_debris/limb)
+ gibtypes = list(/obj/effect/decal/cleanable/robot_debris/up, /obj/effect/decal/cleanable/robot_debris/down, /obj/effect/decal/cleanable/robot_debris, /obj/effect/decal/cleanable/robot_debris, /obj/effect/decal/cleanable/robot_debris, /obj/effect/decal/cleanable/robot_debris/limb)
gibamounts = list(1,1,1,1,1,1)
/obj/effect/gibspawner/robot/Initialize()
diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm
index a2ff5b0674..90f8fee507 100644
--- a/code/game/objects/effects/spawners/lootdrop.dm
+++ b/code/game/objects/effects/spawners/lootdrop.dm
@@ -202,5 +202,6 @@
/obj/item/aiModule/core/full/antimov,
/obj/item/aiModule/core/full/balance,
/obj/item/aiModule/core/full/tyrant,
- /obj/item/aiModule/core/full/thermurderdynamic
+ /obj/item/aiModule/core/full/thermurderdynamic,
+ /obj/item/aiModule/core/full/damaged
)
diff --git a/code/game/objects/effects/temporary_visuals/clockcult.dm b/code/game/objects/effects/temporary_visuals/clockcult.dm
index d9861d827d..59c4e23283 100644
--- a/code/game/objects/effects/temporary_visuals/clockcult.dm
+++ b/code/game/objects/effects/temporary_visuals/clockcult.dm
@@ -86,8 +86,8 @@
transform = matrix()*2
var/matrix/M = transform
M.Turn(90)
- animate(src, alpha = 20, time = duration, easing = BOUNCE_EASING, flags_1 = ANIMATION_PARALLEL)
- animate(src, transform = M, time = duration, flags_1 = ANIMATION_PARALLEL)
+ animate(src, alpha = 20, time = duration, easing = BOUNCE_EASING, flags = ANIMATION_PARALLEL)
+ animate(src, transform = M, time = duration, flags = ANIMATION_PARALLEL)
/obj/effect/temp_visual/ratvar/ocular_warden
name = "warden's gaze"
diff --git a/code/game/objects/effects/temporary_visuals/cult.dm b/code/game/objects/effects/temporary_visuals/cult.dm
index 125904604f..a649763435 100644
--- a/code/game/objects/effects/temporary_visuals/cult.dm
+++ b/code/game/objects/effects/temporary_visuals/cult.dm
@@ -65,8 +65,8 @@
var/matrix/M = transform
M.Turn(turnedness)
transform = M
- animate(src, alpha = 255, time = duration, easing = BOUNCE_EASING, flags_1 = ANIMATION_PARALLEL)
- animate(src, transform = oldtransform, time = duration, flags_1 = ANIMATION_PARALLEL)
+ animate(src, alpha = 255, time = duration, easing = BOUNCE_EASING, flags = ANIMATION_PARALLEL)
+ animate(src, transform = oldtransform, time = duration, flags = ANIMATION_PARALLEL)
/obj/effect/temp_visual/cult/rune_spawn/rune1
icon_state = "rune1words"
diff --git a/code/game/objects/effects/temporary_visuals/miscellaneous.dm b/code/game/objects/effects/temporary_visuals/miscellaneous.dm
index 0928fd9ca6..0203cb66c3 100644
--- a/code/game/objects/effects/temporary_visuals/miscellaneous.dm
+++ b/code/game/objects/effects/temporary_visuals/miscellaneous.dm
@@ -378,7 +378,7 @@
M = size_matrix*0.1
else
M = size_matrix*2
- animate(src, alpha = 20, transform = M, time = duration, flags_1 = ANIMATION_PARALLEL)
+ animate(src, alpha = 20, transform = M, time = duration, flags = ANIMATION_PARALLEL)
/obj/effect/temp_visual/bleed/explode
icon_state = "bleed10"
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 33d055b791..19c1b6e03d 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -117,7 +117,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
var/trigger_guard = TRIGGER_GUARD_NONE
- var/icon_override = null
+ var/icon_override //CIT CHANGE - adds icon_override var. Will be removed with #4322
//Grinder vars
var/list/grind_results //A reagent list containing the reagents this item produces when ground up in a grinder - this can be an empty list to allow for reagent transferring only
@@ -202,31 +202,39 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
if(!user.research_scanner)
return
- var/list/input = techweb_item_boost_check(src)
- if(input)
- var/list/output = list("Research Boost Data:")
- var/list/res = list("Already researched:")
- var/list/boosted = list("Already boosted:")
- for(var/datum/techweb_node/N in input)
- var/str = "[N.display_name]: [input[N]] points.
Bots Access
Custodial Locator
Signaler System
Newscaster Access
Remote Signaling System