merge master into vore-sprites
@@ -40,7 +40,7 @@
|
|||||||
#define span_danger(str) ("<span class='danger'>" + str + "</span>")
|
#define span_danger(str) ("<span class='danger'>" + str + "</span>")
|
||||||
#define span_warning(str) ("<span class='warning'>" + str + "</span>")
|
#define span_warning(str) ("<span class='warning'>" + str + "</span>")
|
||||||
#define span_rose(str) ("<span class='rose'>" + str + "</span>")
|
#define span_rose(str) ("<span class='rose'>" + str + "</span>")
|
||||||
#define span_info(str) ("<span class='info'>" + str + "</span>"
|
#define span_info(str) ("<span class='info'>" + str + "</span>")
|
||||||
#define span_notice(str) ("<span class='notice'>" + str + "</span>")
|
#define span_notice(str) ("<span class='notice'>" + str + "</span>")
|
||||||
#define span_alium(str) ("<span class='alium'>" + str + "</span>")
|
#define span_alium(str) ("<span class='alium'>" + str + "</span>")
|
||||||
#define span_cult(str) ("<span class='cult'>" + str + "</span>")
|
#define span_cult(str) ("<span class='cult'>" + str + "</span>")
|
||||||
|
|||||||
@@ -111,6 +111,7 @@
|
|||||||
#define NO_TALK_MSG 128 // Do not show the "\The [speaker] talks into \the [radio]" message
|
#define NO_TALK_MSG 128 // Do not show the "\The [speaker] talks into \the [radio]" message
|
||||||
#define NO_STUTTER 256 // No stuttering, slurring, or other speech problems
|
#define NO_STUTTER 256 // No stuttering, slurring, or other speech problems
|
||||||
#define ALT_TRANSMIT 512 // Language is not based on vision or sound (Todo: add this into the say code and use it for the rootspeak languages)
|
#define ALT_TRANSMIT 512 // Language is not based on vision or sound (Todo: add this into the say code and use it for the rootspeak languages)
|
||||||
|
#define INAUDIBLE 1024 // Language is not audible (similar to nonverbal) but is still using hearing-based recognition
|
||||||
|
|
||||||
#define SKIN_NORMAL 0
|
#define SKIN_NORMAL 0
|
||||||
#define SKIN_THREAT 1
|
#define SKIN_THREAT 1
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
#define LANGUAGE_SPACER "Spacer"
|
#define LANGUAGE_SPACER "Spacer"
|
||||||
#define LANGUAGE_CLOWNISH "Coulrian"
|
#define LANGUAGE_CLOWNISH "Coulrian"
|
||||||
#define LANGUAGE_TAVAN "Tavan"
|
#define LANGUAGE_TAVAN "Tavan"
|
||||||
|
#define LANGUAGE_ECHOSONG "Echo Song"
|
||||||
|
|
||||||
#define LANGUAGE_CHIMPANZEE "Chimpanzee"
|
#define LANGUAGE_CHIMPANZEE "Chimpanzee"
|
||||||
#define LANGUAGE_NEAERA "Neaera"
|
#define LANGUAGE_NEAERA "Neaera"
|
||||||
|
|||||||
@@ -24,14 +24,16 @@
|
|||||||
/proc/randmutb(var/mob/living/M)
|
/proc/randmutb(var/mob/living/M)
|
||||||
if(!M) return
|
if(!M) return
|
||||||
M.dna.check_integrity()
|
M.dna.check_integrity()
|
||||||
var/block = pick(GLASSESBLOCK,COUGHBLOCK,FAKEBLOCK,NERVOUSBLOCK,CLUMSYBLOCK,TWITCHBLOCK,HEADACHEBLOCK,BLINDBLOCK,DEAFBLOCK,HALLUCINATIONBLOCK)
|
//var/block = pick(GLASSESBLOCK,COUGHBLOCK,FAKEBLOCK,NERVOUSBLOCK,CLUMSYBLOCK,TWITCHBLOCK,HEADACHEBLOCK,BLINDBLOCK,DEAFBLOCK,HALLUCINATIONBLOCK) // Most of these are disabled anyway.
|
||||||
|
var/block = pick(FAKEBLOCK,CLUMSYBLOCK,BLINDBLOCK,DEAFBLOCK)
|
||||||
M.dna.SetSEState(block, 1)
|
M.dna.SetSEState(block, 1)
|
||||||
|
|
||||||
// Give Random Good Mutation to M
|
// Give Random Good Mutation to M
|
||||||
/proc/randmutg(var/mob/living/M)
|
/proc/randmutg(var/mob/living/M)
|
||||||
if(!M) return
|
if(!M) return
|
||||||
M.dna.check_integrity()
|
M.dna.check_integrity()
|
||||||
var/block = pick(HULKBLOCK,XRAYBLOCK,FIREBLOCK,TELEBLOCK,NOBREATHBLOCK,REMOTEVIEWBLOCK,REGENERATEBLOCK,INCREASERUNBLOCK,REMOTETALKBLOCK,MORPHBLOCK,BLENDBLOCK,NOPRINTSBLOCK,SHOCKIMMUNITYBLOCK,SMALLSIZEBLOCK)
|
//var/block = pick(HULKBLOCK,XRAYBLOCK,FIREBLOCK,TELEBLOCK,NOBREATHBLOCK,REMOTEVIEWBLOCK,REGENERATEBLOCK,INCREASERUNBLOCK,REMOTETALKBLOCK,MORPHBLOCK,BLENDBLOCK,NOPRINTSBLOCK,SHOCKIMMUNITYBLOCK,SMALLSIZEBLOCK) // Much like above, most of these blocks are disabled in code.
|
||||||
|
var/block = pick(HULKBLOCK,XRAYBLOCK,FIREBLOCK,TELEBLOCK,REGENERATEBLOCK,REMOTETALKBLOCK)
|
||||||
M.dna.SetSEState(block, 1)
|
M.dna.SetSEState(block, 1)
|
||||||
|
|
||||||
// Random Appearance Mutation
|
// Random Appearance Mutation
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
var/languages=null
|
var/languages=null
|
||||||
var/list/flavor=null
|
var/list/flavor=null
|
||||||
var/gender = null
|
var/gender = null
|
||||||
var/list/body_descriptors = null
|
var/list/body_descriptors = null // Guess we'll keep null.
|
||||||
var/list/genetic_modifiers = list() // Modifiers with the MODIFIER_GENETIC flag are saved. Note that only the type is saved, not an instance.
|
var/list/genetic_modifiers = list() // Modifiers with the MODIFIER_GENETIC flag are saved. Note that only the type is saved, not an instance.
|
||||||
|
|
||||||
/datum/dna2/record/proc/GetData()
|
/datum/dna2/record/proc/GetData()
|
||||||
@@ -54,7 +54,8 @@
|
|||||||
newrecord.implant = implant
|
newrecord.implant = implant
|
||||||
newrecord.flavor = flavor
|
newrecord.flavor = flavor
|
||||||
newrecord.gender = gender
|
newrecord.gender = gender
|
||||||
newrecord.body_descriptors = body_descriptors.Copy()
|
if(body_descriptors)
|
||||||
|
newrecord.body_descriptors = body_descriptors.Copy()
|
||||||
newrecord.genetic_modifiers = genetic_modifiers.Copy()
|
newrecord.genetic_modifiers = genetic_modifiers.Copy()
|
||||||
return newrecord
|
return newrecord
|
||||||
|
|
||||||
|
|||||||
@@ -107,6 +107,9 @@
|
|||||||
|
|
||||||
|
|
||||||
/obj/machinery/computer/guestpass/attackby(obj/I, mob/user)
|
/obj/machinery/computer/guestpass/attackby(obj/I, mob/user)
|
||||||
|
if(istype(I, /obj/item/weapon/card/id/guest))
|
||||||
|
to_chat(user, "<span class='warning'>The guest pass terminal denies to accept the guest pass.</span>")
|
||||||
|
return
|
||||||
if(istype(I, /obj/item/weapon/card/id))
|
if(istype(I, /obj/item/weapon/card/id))
|
||||||
if(!giver && user.unEquip(I))
|
if(!giver && user.unEquip(I))
|
||||||
I.forceMove(src)
|
I.forceMove(src)
|
||||||
|
|||||||
@@ -340,6 +340,11 @@
|
|||||||
if("toggle_ringer")
|
if("toggle_ringer")
|
||||||
ringer = !ringer
|
ringer = !ringer
|
||||||
|
|
||||||
|
if("set_ringer_tone")
|
||||||
|
var/ringtone = tgui_input_text(usr, "Set Ringer Tone", "Ringer")
|
||||||
|
if(ringtone)
|
||||||
|
ttone = ringtone
|
||||||
|
|
||||||
if("selfie_mode")
|
if("selfie_mode")
|
||||||
selfie_mode = !selfie_mode
|
selfie_mode = !selfie_mode
|
||||||
|
|
||||||
|
|||||||
@@ -75,6 +75,20 @@ var/global/list/obj/item/device/communicator/all_communicators = list()
|
|||||||
// If you turn this on, it changes the way communicator video works. User configurable option.
|
// If you turn this on, it changes the way communicator video works. User configurable option.
|
||||||
var/selfie_mode = FALSE
|
var/selfie_mode = FALSE
|
||||||
|
|
||||||
|
// Ringtones! (Based on the PDA ones)
|
||||||
|
var/ttone = "beep" //The ringtone!
|
||||||
|
var/list/ttone_sound = list("beep" = 'sound/machines/twobeep.ogg',
|
||||||
|
"boom" = 'sound/effects/explosionfar.ogg',
|
||||||
|
"slip" = 'sound/misc/slip.ogg',
|
||||||
|
"honk" = 'sound/items/bikehorn.ogg',
|
||||||
|
"SKREE" = 'sound/voice/shriek1.ogg',
|
||||||
|
// "holy" = 'sound/items/PDA/ambicha4-short.ogg',
|
||||||
|
"xeno" = 'sound/voice/hiss1.ogg',
|
||||||
|
"dust" = 'sound/effects/supermatter.ogg',
|
||||||
|
"spark" = 'sound/effects/sparks4.ogg',
|
||||||
|
"rad" = 'sound/items/geiger/high1.ogg',
|
||||||
|
"servo" = 'sound/machines/rig/rigservo.ogg')
|
||||||
|
|
||||||
// Proc: New()
|
// Proc: New()
|
||||||
// Parameters: None
|
// Parameters: None
|
||||||
// Description: Adds the new communicator to the global list of all communicators, sorts the list, obtains a reference to the Exonet node, then tries to
|
// Description: Adds the new communicator to the global list of all communicators, sorts the list, obtains a reference to the Exonet node, then tries to
|
||||||
|
|||||||
@@ -76,9 +76,15 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
if(ringer)
|
if(ringer)
|
||||||
playsound(src, 'sound/machines/twobeep.ogg', 50, 1)
|
var/S
|
||||||
|
if(ttone in ttone_sound)
|
||||||
|
S = ttone_sound[ttone]
|
||||||
|
else
|
||||||
|
S = 'sound/machines/twobeep.ogg'
|
||||||
|
|
||||||
|
playsound(src, S, 50, 1)
|
||||||
for (var/mob/O in hearers(2, loc))
|
for (var/mob/O in hearers(2, loc))
|
||||||
O.show_message(text("[bicon(src)] *beep*"))
|
O.show_message(text("[bicon(src)] *[ttone]*"))
|
||||||
|
|
||||||
alert_called = 1
|
alert_called = 1
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|||||||
@@ -360,3 +360,40 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/device/paicard)
|
|||||||
var/rendered = "<span class='message'>[msg]</span>"
|
var/rendered = "<span class='message'>[msg]</span>"
|
||||||
pai.show_message(rendered, type)
|
pai.show_message(rendered, type)
|
||||||
..()
|
..()
|
||||||
|
|
||||||
|
|
||||||
|
// VoreEdit: Living Machine Stuff after this.
|
||||||
|
// This adds a var and proc for all machines to take a pAI. (The pAI can't control anything, it's just for RP.)
|
||||||
|
// You need to add usage of the proc to each machine to actually add support. For an example of this, see code\modules\food\kitchen\microwave.dm
|
||||||
|
/obj/machinery
|
||||||
|
var/obj/item/device/paicard/paicard = null
|
||||||
|
|
||||||
|
/obj/machinery/proc/insertpai(mob/user, obj/item/device/paicard/card)
|
||||||
|
//var/obj/item/paicard/card = I
|
||||||
|
var/mob/living/silicon/pai/AI = card.pai
|
||||||
|
if(paicard)
|
||||||
|
to_chat(user, span_notice("This bot is already under PAI Control!"))
|
||||||
|
return
|
||||||
|
if(!istype(card)) // TODO: Add sleevecard support.
|
||||||
|
return
|
||||||
|
if(!card.pai)
|
||||||
|
to_chat(user, span_notice("This card does not currently have a personality!"))
|
||||||
|
return
|
||||||
|
paicard = card
|
||||||
|
user.unEquip(card)
|
||||||
|
card.forceMove(src)
|
||||||
|
AI.client.eye = src
|
||||||
|
to_chat(AI, span_notice("Your location is [card.loc].")) // DEBUG. TODO: Make unfolding the chassis trigger an eject.
|
||||||
|
name = AI.name
|
||||||
|
to_chat(AI, span_notice("You feel a tingle in your circuits as your systems interface with \the [initial(src.name)]."))
|
||||||
|
|
||||||
|
/obj/machinery/proc/ejectpai(mob/user)
|
||||||
|
if(paicard)
|
||||||
|
var/mob/living/silicon/pai/AI = paicard.pai
|
||||||
|
paicard.forceMove(src.loc)
|
||||||
|
AI.client.eye = AI
|
||||||
|
paicard = null
|
||||||
|
name = initial(src.name)
|
||||||
|
to_chat(AI, span_notice("You feel a tad claustrophobic as your mind closes back into your card, ejecting from \the [initial(src.name)]."))
|
||||||
|
if(user)
|
||||||
|
to_chat(user, span_notice("You eject the card from \the [initial(src.name)]."))
|
||||||
48
code/game/objects/items/selectable_item_vr.dm
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
/obj/item/selectable_item
|
||||||
|
name = "selectable item"
|
||||||
|
desc = "If you find this, you should definitely report this..."
|
||||||
|
icon = 'icons/obj/items.dmi'
|
||||||
|
icon_state = "gift1"
|
||||||
|
var/preface_string = "You are about to select an item. Are you sure you want to use it and select one?"
|
||||||
|
var/preface_title = "selectable item"
|
||||||
|
var/selection_string = "Select an item:"
|
||||||
|
var/selection_title = "Item Selection"
|
||||||
|
var/list/item_options = list("Gift" = /obj/item/weapon/a_gift,
|
||||||
|
"Health Analyzer" = /obj/item/device/healthanalyzer)
|
||||||
|
|
||||||
|
/obj/item/selectable_item/attack_self(mob/user as mob)
|
||||||
|
tgui_alert(user, {"[preface_string]"}, preface_title)
|
||||||
|
var/chosen_item = tgui_input_list(usr, selection_string, selection_title, item_options)
|
||||||
|
chosen_item = item_options[chosen_item]
|
||||||
|
if(chosen_item)
|
||||||
|
user.drop_item()
|
||||||
|
var/obj/item/result = new chosen_item(get_turf(user))
|
||||||
|
user.put_in_active_hand(result)
|
||||||
|
result.add_fingerprint(user)
|
||||||
|
qdel(src)
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
|
/obj/item/selectable_item/chemistrykit
|
||||||
|
icon = 'icons/obj/chemical_vr.dmi'
|
||||||
|
icon_state = "chemkit"
|
||||||
|
selection_string = "Select a chemical:"
|
||||||
|
selection_title = "Chemical Selection"
|
||||||
|
|
||||||
|
/obj/item/selectable_item/chemistrykit/size
|
||||||
|
name = "size chemistry kit"
|
||||||
|
desc = "A pre-arranged home chemistry kit. This one is for rather specific set of size-altering chemicals."
|
||||||
|
preface_string = "This kit can be used to create a vial of a size-altering chemical, but there's only enough material for one."
|
||||||
|
preface_title = "Size Chemistry Kit"
|
||||||
|
item_options = list("Macrocillin" = /obj/item/weapon/reagent_containers/glass/beaker/vial/macrocillin,
|
||||||
|
"Microcillin" = /obj/item/weapon/reagent_containers/glass/beaker/vial/microcillin,
|
||||||
|
"Normalcillin" = /obj/item/weapon/reagent_containers/glass/beaker/vial/normalcillin)
|
||||||
|
|
||||||
|
/obj/item/selectable_item/chemistrykit/gender
|
||||||
|
name = "gender chemistry kit"
|
||||||
|
desc = "A pre-arranged home chemistry kit. This one is for rather specific set of gender-altering chemicals."
|
||||||
|
preface_string = "This kit can be used to create a vial of a gender-altering chemical, but there's only enough material for one."
|
||||||
|
preface_title = "Gender Chemistry Kit"
|
||||||
|
item_options = list("Androrovir" = /obj/item/weapon/reagent_containers/glass/beaker/vial/androrovir,
|
||||||
|
"Gynorovir" = /obj/item/weapon/reagent_containers/glass/beaker/vial/gynorovir,
|
||||||
|
"Androgynorovir" = /obj/item/weapon/reagent_containers/glass/beaker/vial/androgynorovir)
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
max_storage_space = INVENTORY_POUCH_SPACE
|
max_storage_space = INVENTORY_POUCH_SPACE
|
||||||
can_hold = null
|
can_hold = null
|
||||||
pocketable = TRUE
|
pocketable = TRUE
|
||||||
|
|
||||||
var/insert_delay = 0 SECONDS
|
var/insert_delay = 0 SECONDS
|
||||||
var/remove_delay = 2 SECONDS
|
var/remove_delay = 2 SECONDS
|
||||||
|
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
// No delay if you have the pouch in your hands
|
// No delay if you have the pouch in your hands
|
||||||
if(user.get_active_hand() == src || user.get_inactive_hand() == src)
|
if(user.get_active_hand() == src || user.get_inactive_hand() == src)
|
||||||
return TRUE // Skip delay
|
return TRUE // Skip delay
|
||||||
|
|
||||||
if(remove_delay && !do_after(user, remove_delay, src, needhand = TRUE, exclusive = TASK_USER_EXCLUSIVE))
|
if(remove_delay && !do_after(user, remove_delay, src, needhand = TRUE, exclusive = TASK_USER_EXCLUSIVE))
|
||||||
return FALSE // Moved while there is a delay
|
return FALSE // Moved while there is a delay
|
||||||
|
|
||||||
@@ -58,10 +58,10 @@
|
|||||||
|
|
||||||
/obj/item/weapon/storage/pouch/ammo
|
/obj/item/weapon/storage/pouch/ammo
|
||||||
name = "storage pouch (ammo)"
|
name = "storage pouch (ammo)"
|
||||||
desc = "This storage pouch can be used to provide some additional storage for quick access. Can only hold ammunition and cells."
|
desc = "This storage pouch can be used to provide some additional storage for quick access. Can only hold ammunition, cells, explosives, and grenades."
|
||||||
icon_state = "ammo"
|
icon_state = "ammo"
|
||||||
max_storage_space = INVENTORY_POUCH_SPACE
|
max_storage_space = INVENTORY_POUCH_SPACE
|
||||||
can_hold = list(/obj/item/ammo_magazine, /obj/item/ammo_casing, /obj/item/weapon/cell/device/weapon)
|
can_hold = list(/obj/item/ammo_magazine, /obj/item/ammo_casing, /obj/item/weapon/cell/device/weapon, /obj/item/weapon/grenade, /obj/item/weapon/plastique) //Vorestation Add - make it more useful for non-sec/explo
|
||||||
|
|
||||||
/obj/item/weapon/storage/pouch/eng_tool
|
/obj/item/weapon/storage/pouch/eng_tool
|
||||||
name = "storage pouch (tools)"
|
name = "storage pouch (tools)"
|
||||||
@@ -69,15 +69,35 @@
|
|||||||
icon_state = "engineering_tool"
|
icon_state = "engineering_tool"
|
||||||
max_storage_space = INVENTORY_POUCH_SPACE
|
max_storage_space = INVENTORY_POUCH_SPACE
|
||||||
can_hold = list(
|
can_hold = list(
|
||||||
/obj/item/weapon/tool,
|
/obj/item/weapon/tool/crowbar,
|
||||||
|
/obj/item/weapon/tool/screwdriver,
|
||||||
/obj/item/weapon/weldingtool,
|
/obj/item/weapon/weldingtool,
|
||||||
|
/obj/item/weapon/tool/wirecutters,
|
||||||
|
/obj/item/weapon/tool/wrench,
|
||||||
/obj/item/device/multitool,
|
/obj/item/device/multitool,
|
||||||
/obj/item/device/flashlight,
|
/obj/item/device/flashlight,
|
||||||
|
/obj/item/weapon/cell/device,
|
||||||
|
/obj/item/stack/cable_coil,
|
||||||
/obj/item/device/t_scanner,
|
/obj/item/device/t_scanner,
|
||||||
/obj/item/device/analyzer,
|
/obj/item/device/analyzer,
|
||||||
/obj/item/clothing/glasses,
|
/obj/item/clothing/glasses,
|
||||||
/obj/item/clothing/gloves,
|
/obj/item/clothing/gloves,
|
||||||
)
|
/obj/item/device/pda,
|
||||||
|
/obj/item/device/megaphone,
|
||||||
|
/obj/item/taperoll,
|
||||||
|
/obj/item/device/radio/headset,
|
||||||
|
/obj/item/device/robotanalyzer,
|
||||||
|
/obj/item/weapon/material/minihoe,
|
||||||
|
/obj/item/weapon/material/knife/machete/hatchet,
|
||||||
|
/obj/item/device/analyzer/plant_analyzer,
|
||||||
|
/obj/item/weapon/extinguisher/mini,
|
||||||
|
/obj/item/weapon/tape_roll,
|
||||||
|
/obj/item/device/integrated_electronics/wirer,
|
||||||
|
/obj/item/device/integrated_electronics/debugger,
|
||||||
|
/obj/item/weapon/shovel/spade,
|
||||||
|
/obj/item/stack/nanopaste,
|
||||||
|
/obj/item/device/geiger
|
||||||
|
) //Vorestation Add - make it the same as the tool-belt why was it not like this to start with wtf
|
||||||
|
|
||||||
/obj/item/weapon/storage/pouch/eng_supply
|
/obj/item/weapon/storage/pouch/eng_supply
|
||||||
name = "storage pouch (supplies)"
|
name = "storage pouch (supplies)"
|
||||||
@@ -88,15 +108,19 @@
|
|||||||
/obj/item/weapon/cell/device,
|
/obj/item/weapon/cell/device,
|
||||||
/obj/item/stack/cable_coil,
|
/obj/item/stack/cable_coil,
|
||||||
/obj/item/taperoll,
|
/obj/item/taperoll,
|
||||||
/obj/item/weapon/extinguisher/mini,
|
/obj/item/weapon/extinguisher,
|
||||||
/obj/item/weapon/tape_roll
|
/obj/item/weapon/tape_roll,
|
||||||
)
|
/obj/item/stack/material/steel,
|
||||||
|
/obj/item/stack/material/glass,
|
||||||
|
/obj/item/device/lightreplacer,
|
||||||
|
/obj/item/weapon/cell
|
||||||
|
) //Vorestation Add - makes it actually useful lmao, adds sheets and cells as well as light replacers and lets you take any extinguisher that fits
|
||||||
|
|
||||||
/obj/item/weapon/storage/pouch/eng_parts
|
/obj/item/weapon/storage/pouch/eng_parts
|
||||||
name = "storage pouch (parts)"
|
name = "storage pouch (parts)"
|
||||||
desc = "This storage pouch can be used to provide some additional storage for quick access. Can only hold machinery components."
|
desc = "This storage pouch can be used to provide some additional storage for quick access. Can only hold machinery components."
|
||||||
icon_state = "part_pouch"
|
icon_state = "part_pouch"
|
||||||
max_storage_space = INVENTORY_POUCH_SPACE
|
max_storage_space = INVENTORY_POUCH_SPACE*2 //Vorestation Add - yeah lemme give up my pocket to hold FOUR CAPACITORS or have an inferior box... now you can hold eight in your pocket so its at least a box
|
||||||
can_hold = list(
|
can_hold = list(
|
||||||
/obj/item/weapon/stock_parts,
|
/obj/item/weapon/stock_parts,
|
||||||
/obj/item/stack/cable_coil,
|
/obj/item/stack/cable_coil,
|
||||||
@@ -120,8 +144,20 @@
|
|||||||
/obj/item/weapon/storage/pill_bottle,
|
/obj/item/weapon/storage/pill_bottle,
|
||||||
/obj/item/stack/medical,
|
/obj/item/stack/medical,
|
||||||
/obj/item/weapon/reagent_containers/hypospray,
|
/obj/item/weapon/reagent_containers/hypospray,
|
||||||
/obj/item/weapon/storage/quickdraw/syringe_case
|
/obj/item/weapon/storage/quickdraw/syringe_case,
|
||||||
)
|
/obj/item/weapon/syringe_cartridge,
|
||||||
|
/obj/item/clothing/gloves/sterile,
|
||||||
|
/obj/item/device/sleevemate,
|
||||||
|
/obj/item/bodybag,
|
||||||
|
/obj/item/clothing/mask/surgical,
|
||||||
|
/obj/item/weapon/soap,
|
||||||
|
/obj/item/stack/nanopaste,
|
||||||
|
/obj/item/taperoll/medical,
|
||||||
|
/obj/item/weapon/storage/box/freezer,
|
||||||
|
/obj/item/clothing/mask/chewable/candy/lolli,
|
||||||
|
) //Vorestation add - added a bunch of misc medical stuff
|
||||||
|
max_storage_space = ITEMSIZE_COST_SMALL*3 //Vorestation Add - makes it slightly smaller since its a lot of stuff with pocket access
|
||||||
|
remove_delay = 5 //Vorestation Add - .5 second delay, get the medical things faster because there is no reason to use this otherwise. still gotta stop moving to take things out.
|
||||||
|
|
||||||
/obj/item/weapon/storage/pouch/flares
|
/obj/item/weapon/storage/pouch/flares
|
||||||
name = "storage pouch (flares)"
|
name = "storage pouch (flares)"
|
||||||
@@ -145,7 +181,7 @@
|
|||||||
desc = "This storage pouch can be used to provide some additional storage for quick access. Can hold one normal sized weapon."
|
desc = "This storage pouch can be used to provide some additional storage for quick access. Can hold one normal sized weapon."
|
||||||
icon_state = "pistol_holster"
|
icon_state = "pistol_holster"
|
||||||
storage_slots = 1
|
storage_slots = 1
|
||||||
can_hold = list(/obj/item/weapon/gun)
|
can_hold = list(/obj/item/weapon/gun) //this covers basically everything I think so its fine
|
||||||
remove_delay = 0
|
remove_delay = 0
|
||||||
/obj/item/weapon/storage/pouch/holster/full_stunrevolver
|
/obj/item/weapon/storage/pouch/holster/full_stunrevolver
|
||||||
starts_with = list(/obj/item/weapon/gun/energy/stunrevolver)
|
starts_with = list(/obj/item/weapon/gun/energy/stunrevolver)
|
||||||
@@ -159,11 +195,11 @@
|
|||||||
..()
|
..()
|
||||||
|
|
||||||
/obj/item/weapon/storage/pouch/baton
|
/obj/item/weapon/storage/pouch/baton
|
||||||
name = "storage pouch (baton)"
|
name = "storage pouch (melee)"
|
||||||
desc = "This storage pouch can be used to provide some additional storage for quick access. Can hold one standard baton."
|
desc = "This storage pouch can be used to provide some additional storage for quick access. Can hold one normal size melee." //Vorestation add - make it a melee pouch literally why would you hold ONE BATON
|
||||||
icon_state = "baton_holster"
|
icon_state = "baton_holster"
|
||||||
storage_slots = 1
|
storage_slots = 1
|
||||||
can_hold = list(/obj/item/weapon/melee/baton)
|
can_hold = list(/obj/item/weapon/melee, /obj/item/weapon/material, /obj/item/weapon/tool/wrench) //should be like, every melee weapon I could think of that was normal size. Can make it more specific if needed. Also wrench because I thought it was funny.
|
||||||
remove_delay = 0
|
remove_delay = 0
|
||||||
/obj/item/weapon/storage/pouch/baton/full
|
/obj/item/weapon/storage/pouch/baton/full
|
||||||
starts_with = list(/obj/item/weapon/melee/baton)
|
starts_with = list(/obj/item/weapon/melee/baton)
|
||||||
|
|||||||
@@ -254,7 +254,8 @@
|
|||||||
prob(2);/obj/item/weapon/storage/box/syndie_kit/spy,
|
prob(2);/obj/item/weapon/storage/box/syndie_kit/spy,
|
||||||
prob(2);/obj/item/weapon/grenade/anti_photon,
|
prob(2);/obj/item/weapon/grenade/anti_photon,
|
||||||
prob(2);/obj/item/clothing/under/hyperfiber/bluespace,
|
prob(2);/obj/item/clothing/under/hyperfiber/bluespace,
|
||||||
prob(2);/obj/item/weapon/reagent_containers/glass/beaker/vial/amorphorovir,
|
prob(2);/obj/item/selectable_item/chemistrykit/size,
|
||||||
|
prob(2);/obj/item/selectable_item/chemistrykit/gender,
|
||||||
prob(1);/obj/item/clothing/suit/storage/vest/heavy/merc,
|
prob(1);/obj/item/clothing/suit/storage/vest/heavy/merc,
|
||||||
prob(1);/obj/item/device/nif/bad,
|
prob(1);/obj/item/device/nif/bad,
|
||||||
prob(1);/obj/item/device/radio_jammer,
|
prob(1);/obj/item/device/radio_jammer,
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ GLOBAL_LIST_EMPTY(fancy_shuttles)
|
|||||||
icon = 'icons/turf/fancy_shuttles/generic_preview.dmi'
|
icon = 'icons/turf/fancy_shuttles/generic_preview.dmi'
|
||||||
icon_state = "floors"
|
icon_state = "floors"
|
||||||
plane = PLATING_PLANE
|
plane = PLATING_PLANE
|
||||||
layer = ABOVE_TURF_LAYER
|
layer = DISPOSAL_LAYER
|
||||||
alpha = 90
|
alpha = 90
|
||||||
|
|
||||||
/obj/effect/fancy_shuttle_floor_preview/Initialize()
|
/obj/effect/fancy_shuttle_floor_preview/Initialize()
|
||||||
|
|||||||
@@ -74,3 +74,8 @@
|
|||||||
display_name = "bluespace bracelet"
|
display_name = "bluespace bracelet"
|
||||||
path = /obj/item/clothing/gloves/bluespace
|
path = /obj/item/clothing/gloves/bluespace
|
||||||
cost = 5
|
cost = 5
|
||||||
|
|
||||||
|
/datum/gear/utility/walkpod
|
||||||
|
display_name = "podzu music player"
|
||||||
|
path = /obj/item/device/walkpod
|
||||||
|
cost = 2
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
var/global/list/acceptable_items // List of the items you can put in
|
var/global/list/acceptable_items // List of the items you can put in
|
||||||
var/global/list/available_recipes // List of the recipes you can use
|
var/global/list/available_recipes // List of the recipes you can use
|
||||||
var/global/list/acceptable_reagents // List of the reagents you can put in
|
var/global/list/acceptable_reagents // List of the reagents you can put in
|
||||||
|
|
||||||
var/global/max_n_of_items = 20
|
var/global/max_n_of_items = 20
|
||||||
var/appliancetype = MICROWAVE
|
var/appliancetype = MICROWAVE
|
||||||
var/datum/looping_sound/microwave/soundloop
|
var/datum/looping_sound/microwave/soundloop
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
|
|
||||||
/obj/machinery/microwave/Initialize()
|
/obj/machinery/microwave/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|
||||||
reagents = new/datum/reagents(100)
|
reagents = new/datum/reagents(100)
|
||||||
reagents.my_atom = src
|
reagents.my_atom = src
|
||||||
|
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
for(var/datum/recipe/typepath as anything in subtypesof(/datum/recipe))
|
for(var/datum/recipe/typepath as anything in subtypesof(/datum/recipe))
|
||||||
if((initial(typepath.appliance) & appliancetype))
|
if((initial(typepath.appliance) & appliancetype))
|
||||||
available_recipes += new typepath
|
available_recipes += new typepath
|
||||||
|
|
||||||
acceptable_items = new
|
acceptable_items = new
|
||||||
acceptable_reagents = new
|
acceptable_reagents = new
|
||||||
for (var/datum/recipe/recipe in available_recipes)
|
for (var/datum/recipe/recipe in available_recipes)
|
||||||
@@ -66,6 +66,8 @@
|
|||||||
soundloop = new(list(src), FALSE)
|
soundloop = new(list(src), FALSE)
|
||||||
|
|
||||||
/obj/machinery/microwave/Destroy()
|
/obj/machinery/microwave/Destroy()
|
||||||
|
if(paicard)
|
||||||
|
ejectpai() // Lets not delete the pAI.
|
||||||
QDEL_NULL(soundloop)
|
QDEL_NULL(soundloop)
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
@@ -125,7 +127,8 @@
|
|||||||
to_chat(user, "<span class='warning'>It's dirty!</span>")
|
to_chat(user, "<span class='warning'>It's dirty!</span>")
|
||||||
return 1
|
return 1
|
||||||
else if(is_type_in_list(O,acceptable_items))
|
else if(is_type_in_list(O,acceptable_items))
|
||||||
if(contents.len>=(max_n_of_items + component_parts.len + circuit_item_capacity)) //Adds component_parts to the maximum number of items. changed 1 to actually just be the circuit item capacity var.
|
var/list/workingList = cookingContents()
|
||||||
|
if(workingList.len>=(max_n_of_items + circuit_item_capacity)) //Adds component_parts to the maximum number of items. changed 1 to actually just be the circuit item capacity var.
|
||||||
to_chat(user, "<span class='warning'>This [src] is full of ingredients, you cannot put more.</span>")
|
to_chat(user, "<span class='warning'>This [src] is full of ingredients, you cannot put more.</span>")
|
||||||
return 1
|
return 1
|
||||||
if(istype(O, /obj/item/stack) && O:get_amount() > 1) // This is bad, but I can't think of how to change it
|
if(istype(O, /obj/item/stack) && O:get_amount() > 1) // This is bad, but I can't think of how to change it
|
||||||
@@ -180,6 +183,9 @@
|
|||||||
to_chat(user, "<span class='notice'>You decide not to do that.</span>")
|
to_chat(user, "<span class='notice'>You decide not to do that.</span>")
|
||||||
else if(default_part_replacement(user, O))
|
else if(default_part_replacement(user, O))
|
||||||
return
|
return
|
||||||
|
else if(istype(O, /obj/item/device/paicard))
|
||||||
|
if(!paicard)
|
||||||
|
insertpai(user, O)
|
||||||
else
|
else
|
||||||
to_chat(user, "<span class='warning'>You have no idea what you can cook with this [O].</span>")
|
to_chat(user, "<span class='warning'>You have no idea what you can cook with this [O].</span>")
|
||||||
..()
|
..()
|
||||||
@@ -192,6 +198,10 @@
|
|||||||
attack_hand(user)
|
attack_hand(user)
|
||||||
|
|
||||||
/obj/machinery/microwave/attack_hand(mob/user as mob)
|
/obj/machinery/microwave/attack_hand(mob/user as mob)
|
||||||
|
if(user.a_intent == I_GRAB)
|
||||||
|
if(paicard)
|
||||||
|
ejectpai(user)
|
||||||
|
return
|
||||||
user.set_machine(src)
|
user.set_machine(src)
|
||||||
tgui_interact(user)
|
tgui_interact(user)
|
||||||
|
|
||||||
@@ -211,7 +221,7 @@
|
|||||||
data["operating"] = operating
|
data["operating"] = operating
|
||||||
data["dirty"] = dirty == 100
|
data["dirty"] = dirty == 100
|
||||||
data["items"] = get_items_list()
|
data["items"] = get_items_list()
|
||||||
|
|
||||||
return data
|
return data
|
||||||
|
|
||||||
/obj/machinery/microwave/proc/get_items_list()
|
/obj/machinery/microwave/proc/get_items_list()
|
||||||
@@ -220,7 +230,8 @@
|
|||||||
var/list/items_counts = list()
|
var/list/items_counts = list()
|
||||||
var/list/items_measures = list()
|
var/list/items_measures = list()
|
||||||
var/list/items_measures_p = list()
|
var/list/items_measures_p = list()
|
||||||
for(var/obj/O in ((contents - component_parts) - circuit))
|
//for(var/obj/O in ((contents - component_parts) - circuit))
|
||||||
|
for(var/obj/O in cookingContents())
|
||||||
var/display_name = O.name
|
var/display_name = O.name
|
||||||
if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/egg))
|
if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/egg))
|
||||||
items_measures[display_name] = "egg"
|
items_measures[display_name] = "egg"
|
||||||
@@ -283,7 +294,7 @@
|
|||||||
if("dispose")
|
if("dispose")
|
||||||
dispose()
|
dispose()
|
||||||
return TRUE
|
return TRUE
|
||||||
/*
|
/*
|
||||||
/obj/machinery/microwave/interact(mob/user as mob) // The microwave Menu
|
/obj/machinery/microwave/interact(mob/user as mob) // The microwave Menu
|
||||||
var/dat = ""
|
var/dat = ""
|
||||||
if(src.broken > 0)
|
if(src.broken > 0)
|
||||||
@@ -352,7 +363,7 @@
|
|||||||
if(stat & (NOPOWER|BROKEN))
|
if(stat & (NOPOWER|BROKEN))
|
||||||
return
|
return
|
||||||
start()
|
start()
|
||||||
if(reagents.total_volume==0 && !(locate(/obj) in ((contents - component_parts) - circuit))) //dry run
|
if(reagents.total_volume==0 && !(locate(/obj) in cookingContents())) //dry run
|
||||||
if(!wzhzhzh(16)) //VOREStation Edit - Quicker Microwaves (Undone during Auroraport, left note in case of reversion, was 5)
|
if(!wzhzhzh(16)) //VOREStation Edit - Quicker Microwaves (Undone during Auroraport, left note in case of reversion, was 5)
|
||||||
abort()
|
abort()
|
||||||
return
|
return
|
||||||
@@ -387,7 +398,7 @@
|
|||||||
cooked = fail()
|
cooked = fail()
|
||||||
cooked.forceMove(src.loc)
|
cooked.forceMove(src.loc)
|
||||||
return
|
return
|
||||||
|
|
||||||
//Making multiple copies of a recipe
|
//Making multiple copies of a recipe
|
||||||
var/halftime = round(recipe.time*4/10/2) // VOREStation Edit - Quicker Microwaves (Undone during Auroraport, left note in case of reversion, was round(recipe.time/20/2))
|
var/halftime = round(recipe.time*4/10/2) // VOREStation Edit - Quicker Microwaves (Undone during Auroraport, left note in case of reversion, was round(recipe.time/20/2))
|
||||||
if(!wzhzhzh(halftime))
|
if(!wzhzhzh(halftime))
|
||||||
@@ -448,7 +459,7 @@
|
|||||||
|
|
||||||
/obj/machinery/microwave/proc/has_extra_item() //- coded to have different microwaves be able to handle different items
|
/obj/machinery/microwave/proc/has_extra_item() //- coded to have different microwaves be able to handle different items
|
||||||
if(item_level == 0)
|
if(item_level == 0)
|
||||||
for (var/obj/O in ((contents - component_parts) - circuit))
|
for (var/obj/O in cookingContents())
|
||||||
if ( \
|
if ( \
|
||||||
!istype(O,/obj/item/weapon/reagent_containers/food) && \
|
!istype(O,/obj/item/weapon/reagent_containers/food) && \
|
||||||
!istype(O, /obj/item/weapon/grown) \
|
!istype(O, /obj/item/weapon/grown) \
|
||||||
@@ -456,7 +467,7 @@
|
|||||||
return 1
|
return 1
|
||||||
return 0
|
return 0
|
||||||
if(item_level == 1)
|
if(item_level == 1)
|
||||||
for (var/obj/O in ((contents - component_parts) - circuit))
|
for (var/obj/O in cookingContents())
|
||||||
if ( \
|
if ( \
|
||||||
!istype(O, /obj/item/weapon/reagent_containers/food) && \
|
!istype(O, /obj/item/weapon/reagent_containers/food) && \
|
||||||
!istype(O, /obj/item/weapon/grown) && \
|
!istype(O, /obj/item/weapon/grown) && \
|
||||||
@@ -480,7 +491,7 @@
|
|||||||
icon_state = "mw"
|
icon_state = "mw"
|
||||||
SStgui.update_uis(src)
|
SStgui.update_uis(src)
|
||||||
soundloop.stop()
|
soundloop.stop()
|
||||||
|
|
||||||
/obj/machinery/microwave/proc/stop()
|
/obj/machinery/microwave/proc/stop()
|
||||||
playsound(src.loc, 'sound/machines/ding.ogg', 50, 1)
|
playsound(src.loc, 'sound/machines/ding.ogg', 50, 1)
|
||||||
operating = FALSE // Turn it off again aferwards
|
operating = FALSE // Turn it off again aferwards
|
||||||
@@ -490,7 +501,7 @@
|
|||||||
soundloop.stop()
|
soundloop.stop()
|
||||||
|
|
||||||
/obj/machinery/microwave/proc/dispose(var/message = 1)
|
/obj/machinery/microwave/proc/dispose(var/message = 1)
|
||||||
for (var/atom/movable/A in ((contents-component_parts)-circuit))
|
for (var/atom/movable/A in cookingContents())
|
||||||
A.forceMove(loc)
|
A.forceMove(loc)
|
||||||
if (src.reagents.total_volume)
|
if (src.reagents.total_volume)
|
||||||
src.dirty++
|
src.dirty++
|
||||||
@@ -524,11 +535,12 @@
|
|||||||
src.operating = 0 // Turn it off again aferwards
|
src.operating = 0 // Turn it off again aferwards
|
||||||
SStgui.update_uis(src)
|
SStgui.update_uis(src)
|
||||||
soundloop.stop()
|
soundloop.stop()
|
||||||
|
src.ejectpai() // If it broke, time to yeet the PAI.
|
||||||
|
|
||||||
/obj/machinery/microwave/proc/fail()
|
/obj/machinery/microwave/proc/fail()
|
||||||
var/obj/item/weapon/reagent_containers/food/snacks/badrecipe/ffuu = new(src)
|
var/obj/item/weapon/reagent_containers/food/snacks/badrecipe/ffuu = new(src)
|
||||||
var/amount = 0
|
var/amount = 0
|
||||||
for (var/obj/O in (((contents - ffuu) - component_parts) - circuit))
|
for (var/obj/O in cookingContents())
|
||||||
amount++
|
amount++
|
||||||
if(O.reagents)
|
if(O.reagents)
|
||||||
var/id = O.reagents.get_master_reagent_id()
|
var/id = O.reagents.get_master_reagent_id()
|
||||||
@@ -555,14 +567,14 @@
|
|||||||
|
|
||||||
if(!do_after(usr, 1 SECONDS, target = src))
|
if(!do_after(usr, 1 SECONDS, target = src))
|
||||||
return
|
return
|
||||||
|
|
||||||
if(operating)
|
if(operating)
|
||||||
to_chat(usr, "<span class='warning'>You can't do that, [src] door is locked!</span>")
|
to_chat(usr, "<span class='warning'>You can't do that, [src] door is locked!</span>")
|
||||||
return
|
return
|
||||||
|
|
||||||
usr.visible_message(
|
usr.visible_message(
|
||||||
"<span class='notice'>[usr] opened [src] and has taken out [english_list(((contents-component_parts)-circuit))].</span>" ,
|
"<span class='notice'>[usr] opened [src] and has taken out [english_list(cookingContents())].</span>" ,
|
||||||
"<span class='notice'>You have opened [src] and taken out [english_list(((contents-component_parts)-circuit))].</span>"
|
"<span class='notice'>You have opened [src] and taken out [english_list(cookingContents())].</span>"
|
||||||
)
|
)
|
||||||
dispose()
|
dispose()
|
||||||
|
|
||||||
@@ -591,7 +603,7 @@
|
|||||||
/obj/item/weapon/holder
|
/obj/item/weapon/holder
|
||||||
)
|
)
|
||||||
result = /obj/effect/decal/cleanable/blood/gibs
|
result = /obj/effect/decal/cleanable/blood/gibs
|
||||||
|
|
||||||
/datum/recipe/splat/before_cook(obj/container)
|
/datum/recipe/splat/before_cook(obj/container)
|
||||||
if(istype(container, /obj/machinery/microwave))
|
if(istype(container, /obj/machinery/microwave))
|
||||||
var/obj/machinery/microwave/M = container
|
var/obj/machinery/microwave/M = container
|
||||||
@@ -614,3 +626,14 @@
|
|||||||
var/obj/machinery/microwave/M = container
|
var/obj/machinery/microwave/M = container
|
||||||
M.muck_finish()
|
M.muck_finish()
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|
||||||
|
/obj/machinery/microwave/proc/cookingContents() //VOREEdit, this is a better way to deal with the contents of a microwave, since the previous method is stupid.
|
||||||
|
var/list/workingList = contents.Copy() // Using the copy proc because otherwise the two lists seem to become soul bonded.
|
||||||
|
workingList -= component_parts
|
||||||
|
workingList -= circuit
|
||||||
|
if(paicard)
|
||||||
|
workingList -= paicard
|
||||||
|
for(var/M in workingList)
|
||||||
|
if(istype(M, circuit)) // Yes, we remove circuit twice. Yes, it's necessary. Yes, it's stupid.
|
||||||
|
workingList -= M
|
||||||
|
return workingList
|
||||||
@@ -263,15 +263,28 @@
|
|||||||
/obj/item/integrated_circuit/output/video_camera
|
/obj/item/integrated_circuit/output/video_camera
|
||||||
name = "video camera circuit"
|
name = "video camera circuit"
|
||||||
desc = "This small camera allows a remote viewer to see what it sees."
|
desc = "This small camera allows a remote viewer to see what it sees."
|
||||||
extended_desc = "The camera is linked to the Research camera network."
|
var/list/networks = list(
|
||||||
|
"research" = NETWORK_CIRCUITS,
|
||||||
|
"engine" = NETWORK_ENGINE,
|
||||||
|
"engineering" = NETWORK_ENGINEERING,
|
||||||
|
"mining" = NETWORK_MINE,
|
||||||
|
"medical" = NETWORK_MEDICAL,
|
||||||
|
"entertainment" = NETWORK_THUNDER,
|
||||||
|
"security" = NETWORK_SECURITY,
|
||||||
|
"command" = NETWORK_COMMAND
|
||||||
|
)
|
||||||
icon_state = "video_camera"
|
icon_state = "video_camera"
|
||||||
w_class = ITEMSIZE_SMALL
|
w_class = ITEMSIZE_SMALL
|
||||||
complexity = 10
|
complexity = 10
|
||||||
inputs = list(
|
inputs = list(
|
||||||
"camera name" = IC_PINTYPE_STRING,
|
"camera name" = IC_PINTYPE_STRING,
|
||||||
|
"camera network" = IC_PINTYPE_STRING,
|
||||||
"camera active" = IC_PINTYPE_BOOLEAN
|
"camera active" = IC_PINTYPE_BOOLEAN
|
||||||
)
|
)
|
||||||
inputs_default = list("1" = "video camera circuit")
|
inputs_default = list(
|
||||||
|
"1" = "video camera circuit",
|
||||||
|
"2" = "research"
|
||||||
|
)
|
||||||
outputs = list()
|
outputs = list()
|
||||||
activators = list()
|
activators = list()
|
||||||
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
|
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
|
||||||
@@ -280,6 +293,11 @@
|
|||||||
|
|
||||||
/obj/item/integrated_circuit/output/video_camera/New()
|
/obj/item/integrated_circuit/output/video_camera/New()
|
||||||
..()
|
..()
|
||||||
|
extended_desc = list()
|
||||||
|
extended_desc += "Network choices are; "
|
||||||
|
extended_desc += jointext(networks, ", ")
|
||||||
|
extended_desc += "."
|
||||||
|
extended_desc = jointext(extended_desc, null)
|
||||||
camera = new(src)
|
camera = new(src)
|
||||||
on_data_written()
|
on_data_written()
|
||||||
|
|
||||||
@@ -298,10 +316,20 @@
|
|||||||
/obj/item/integrated_circuit/output/video_camera/on_data_written()
|
/obj/item/integrated_circuit/output/video_camera/on_data_written()
|
||||||
if(camera)
|
if(camera)
|
||||||
var/cam_name = get_pin_data(IC_INPUT, 1)
|
var/cam_name = get_pin_data(IC_INPUT, 1)
|
||||||
var/cam_active = get_pin_data(IC_INPUT, 2)
|
var/cam_network = get_pin_data(IC_INPUT, 2)
|
||||||
|
var/cam_active = get_pin_data(IC_INPUT, 3)
|
||||||
if(!isnull(cam_name))
|
if(!isnull(cam_name))
|
||||||
camera.c_tag = cam_name
|
camera.c_tag = cam_name
|
||||||
|
camera.replace_networks(list(cam_network))
|
||||||
set_camera_status(cam_active)
|
set_camera_status(cam_active)
|
||||||
|
if(isnull(cam_network))
|
||||||
|
camera.clear_all_networks()
|
||||||
|
return
|
||||||
|
var/selected_network = networks[cam_network]
|
||||||
|
if(!selected_network)
|
||||||
|
camera.clear_all_networks()
|
||||||
|
return
|
||||||
|
camera.replace_networks(list(selected_network))
|
||||||
|
|
||||||
/obj/item/integrated_circuit/output/video_camera/power_fail()
|
/obj/item/integrated_circuit/output/video_camera/power_fail()
|
||||||
if(camera)
|
if(camera)
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
hardness = 5
|
hardness = 5
|
||||||
|
|
||||||
|
|
||||||
/datum/material/cloth/generate_recipes()
|
/datum/material/cloth/generate_recipes() //Vorestation Add - adding some funny cool storage pouches to this so botany can do things other than food
|
||||||
recipes = list(
|
recipes = list(
|
||||||
new /datum/stack_recipe("woven net", /obj/item/weapon/material/fishing_net, 10, time = 30 SECONDS, pass_stack_color = TRUE, supplied_material = "[name]"),
|
new /datum/stack_recipe("woven net", /obj/item/weapon/material/fishing_net, 10, time = 30 SECONDS, pass_stack_color = TRUE, supplied_material = "[name]"),
|
||||||
new /datum/stack_recipe("bedsheet", /obj/item/weapon/bedsheet, 10, time = 30 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"),
|
new /datum/stack_recipe("bedsheet", /obj/item/weapon/bedsheet, 10, time = 30 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"),
|
||||||
@@ -29,6 +29,13 @@
|
|||||||
new /datum/stack_recipe("scarf", /obj/item/clothing/accessory/scarf/white, 4, time = 5 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"),
|
new /datum/stack_recipe("scarf", /obj/item/clothing/accessory/scarf/white, 4, time = 5 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"),
|
||||||
new /datum/stack_recipe("baggy pants", /obj/item/clothing/under/pants/baggy/white, 8, time = 10 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"),
|
new /datum/stack_recipe("baggy pants", /obj/item/clothing/under/pants/baggy/white, 8, time = 10 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"),
|
||||||
new /datum/stack_recipe("belt pouch", /obj/item/weapon/storage/belt/fannypack/white, 25, time = 1 MINUTE, pass_stack_color = TRUE, recycle_material = "[name]"),
|
new /datum/stack_recipe("belt pouch", /obj/item/weapon/storage/belt/fannypack/white, 25, time = 1 MINUTE, pass_stack_color = TRUE, recycle_material = "[name]"),
|
||||||
|
new /datum/stack_recipe("pouch, small", /obj/item/weapon/storage/pouch/small, 10, time = 20 SECONDS, pass_stack_color = FALSE, recycle_material = "[name]"), //vorestation Add
|
||||||
|
new /datum/stack_recipe("pouch, ammo", /obj/item/weapon/storage/pouch/ammo, 10, time = 20 SECONDS, pass_stack_color = FALSE, recycle_material = "[name]"), //vorestation Add
|
||||||
|
new /datum/stack_recipe("pouch, tools", /obj/item/weapon/storage/pouch/eng_tool, 10, time = 20 SECONDS, pass_stack_color = FALSE, recycle_material = "[name]"), //vorestation Add
|
||||||
|
new /datum/stack_recipe("pouch, parts", /obj/item/weapon/storage/pouch/eng_parts, 10, time = 20 SECONDS, pass_stack_color = FALSE, recycle_material = "[name]"), //vorestation Add
|
||||||
|
new /datum/stack_recipe("pouch, supplies", /obj/item/weapon/storage/pouch/eng_supply, 10, time = 20 SECONDS, pass_stack_color = FALSE, recycle_material = "[name]"), //vorestation Add
|
||||||
|
new /datum/stack_recipe("pouch, medical", /obj/item/weapon/storage/pouch/medical, 10, time = 20 SECONDS, pass_stack_color = FALSE, recycle_material = "[name]"), //vorestation Add
|
||||||
|
new /datum/stack_recipe("pouch, flare", /obj/item/weapon/storage/pouch/flares, 10, time = 20 SECONDS, pass_stack_color = FALSE, recycle_material = "[name]"), //vorestation Add
|
||||||
new /datum/stack_recipe("crude bandage", /obj/item/stack/medical/crude_pack, 1, time = 2 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"),
|
new /datum/stack_recipe("crude bandage", /obj/item/stack/medical/crude_pack, 1, time = 2 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"),
|
||||||
new /datum/stack_recipe("empty sandbag", /obj/item/stack/emptysandbag, 2, time = 2 SECONDS, pass_stack_color = TRUE, supplied_material = "[name]"),
|
new /datum/stack_recipe("empty sandbag", /obj/item/stack/emptysandbag, 2, time = 2 SECONDS, pass_stack_color = TRUE, supplied_material = "[name]"),
|
||||||
new /datum/stack_recipe("painting canvas (11x11)", /obj/item/canvas, 2, time = 2 SECONDS, pass_stack_color = FALSE, supplied_material = "[name]"),
|
new /datum/stack_recipe("painting canvas (11x11)", /obj/item/canvas, 2, time = 2 SECONDS, pass_stack_color = FALSE, supplied_material = "[name]"),
|
||||||
|
|||||||
@@ -27,6 +27,10 @@
|
|||||||
new /datum/stack_recipe("scarf", /obj/item/clothing/accessory/scarf/white, 4, time = 5 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"),
|
new /datum/stack_recipe("scarf", /obj/item/clothing/accessory/scarf/white, 4, time = 5 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"),
|
||||||
new /datum/stack_recipe("baggy pants", /obj/item/clothing/under/pants/baggy/white, 8, time = 10 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"),
|
new /datum/stack_recipe("baggy pants", /obj/item/clothing/under/pants/baggy/white, 8, time = 10 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"),
|
||||||
new /datum/stack_recipe("belt pouch", /obj/item/weapon/storage/belt/fannypack/white, 25, time = 1 MINUTE, pass_stack_color = TRUE, recycle_material = "[name]"),
|
new /datum/stack_recipe("belt pouch", /obj/item/weapon/storage/belt/fannypack/white, 25, time = 1 MINUTE, pass_stack_color = TRUE, recycle_material = "[name]"),
|
||||||
|
new /datum/stack_recipe("pouch, medium", /obj/item/weapon/storage/pouch, 10, time = 20 SECONDS, pass_stack_color = FALSE, recycle_material = "[name]"), //vorestation Add
|
||||||
|
new /datum/stack_recipe("pouch, large", /obj/item/weapon/storage/pouch/large, 15, time = 30 SECONDS, pass_stack_color = FALSE, recycle_material = "[name]"), //vorestation Add
|
||||||
|
new /datum/stack_recipe("pouch, holster", /obj/item/weapon/storage/pouch/holster, 10, time = 20 SECONDS, pass_stack_color = FALSE, recycle_material = "[name]"), //vorestation Add
|
||||||
|
new /datum/stack_recipe("pouch, melee", /obj/item/weapon/storage/pouch/baton, 10, time = 20 SECONDS, pass_stack_color = FALSE, recycle_material = "[name]"), //vorestation Add
|
||||||
new /datum/stack_recipe("crude [display_name] bandage", /obj/item/stack/medical/crude_pack, 1, time = 2 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"),
|
new /datum/stack_recipe("crude [display_name] bandage", /obj/item/stack/medical/crude_pack, 1, time = 2 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"),
|
||||||
new /datum/stack_recipe("[display_name] net", /obj/item/weapon/material/fishing_net, 10, time = 5 SECONDS, supplied_material = "[name]", pass_stack_color = TRUE),
|
new /datum/stack_recipe("[display_name] net", /obj/item/weapon/material/fishing_net, 10, time = 5 SECONDS, supplied_material = "[name]", pass_stack_color = TRUE),
|
||||||
new /datum/stack_recipe("[display_name] ring", /obj/item/clothing/gloves/ring/material, 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE),
|
new /datum/stack_recipe("[display_name] ring", /obj/item/clothing/gloves/ring/material, 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE),
|
||||||
|
|||||||
@@ -73,6 +73,13 @@
|
|||||||
new /datum/stack_recipe("scarf", /obj/item/clothing/accessory/scarf/white/craftable, 4, time = 5 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"),
|
new /datum/stack_recipe("scarf", /obj/item/clothing/accessory/scarf/white/craftable, 4, time = 5 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"),
|
||||||
new /datum/stack_recipe("baggy pants", /obj/item/clothing/under/pants/baggy/white/craftable, 8, time = 10 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"),
|
new /datum/stack_recipe("baggy pants", /obj/item/clothing/under/pants/baggy/white/craftable, 8, time = 10 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"),
|
||||||
new /datum/stack_recipe("belt pouch", /obj/item/weapon/storage/belt/fannypack/white/craftable, 25, time = 1 MINUTE, pass_stack_color = TRUE, recycle_material = "[name]"),
|
new /datum/stack_recipe("belt pouch", /obj/item/weapon/storage/belt/fannypack/white/craftable, 25, time = 1 MINUTE, pass_stack_color = TRUE, recycle_material = "[name]"),
|
||||||
|
new /datum/stack_recipe("pouch, small", /obj/item/weapon/storage/pouch/small, 10, time = 20 SECONDS, pass_stack_color = FALSE, recycle_material = "[name]"), //vorestation Add
|
||||||
|
new /datum/stack_recipe("pouch, ammo", /obj/item/weapon/storage/pouch/ammo, 10, time = 20 SECONDS, pass_stack_color = FALSE, recycle_material = "[name]"), //vorestation Add
|
||||||
|
new /datum/stack_recipe("pouch, tools", /obj/item/weapon/storage/pouch/eng_tool, 10, time = 20 SECONDS, pass_stack_color = FALSE, recycle_material = "[name]"), //vorestation Add
|
||||||
|
new /datum/stack_recipe("pouch, parts", /obj/item/weapon/storage/pouch/eng_parts, 10, time = 20 SECONDS, pass_stack_color = FALSE, recycle_material = "[name]"), //vorestation Add
|
||||||
|
new /datum/stack_recipe("pouch, supplies", /obj/item/weapon/storage/pouch/eng_supply, 10, time = 20 SECONDS, pass_stack_color = FALSE, recycle_material = "[name]"), //vorestation Add
|
||||||
|
new /datum/stack_recipe("pouch, medical", /obj/item/weapon/storage/pouch/medical, 10, time = 20 SECONDS, pass_stack_color = FALSE, recycle_material = "[name]"), //vorestation Add
|
||||||
|
new /datum/stack_recipe("pouch, flare", /obj/item/weapon/storage/pouch/flares, 10, time = 20 SECONDS, pass_stack_color = FALSE, recycle_material = "[name]"), //vorestation Add
|
||||||
new /datum/stack_recipe("crude bandage", /obj/item/stack/medical/crude_pack, 1, time = 2 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"),
|
new /datum/stack_recipe("crude bandage", /obj/item/stack/medical/crude_pack, 1, time = 2 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"),
|
||||||
new /datum/stack_recipe("empty sandbag", /obj/item/stack/emptysandbag, 2, time = 2 SECONDS, pass_stack_color = TRUE, supplied_material = "[name]"),
|
new /datum/stack_recipe("empty sandbag", /obj/item/stack/emptysandbag, 2, time = 2 SECONDS, pass_stack_color = TRUE, supplied_material = "[name]"),
|
||||||
new /datum/stack_recipe("satchel", /obj/item/weapon/storage/backpack/satchel/craftable, 30, time = 1 MINUTE, pass_stack_color = TRUE, recycle_material = "[name]"),
|
new /datum/stack_recipe("satchel", /obj/item/weapon/storage/backpack/satchel/craftable, 30, time = 1 MINUTE, pass_stack_color = TRUE, recycle_material = "[name]"),
|
||||||
|
|||||||
@@ -230,7 +230,7 @@
|
|||||||
desc = "A modified design of a proto-kinetic crusher, it is still little more of a combination of various mining tools cobbled together \
|
desc = "A modified design of a proto-kinetic crusher, it is still little more of a combination of various mining tools cobbled together \
|
||||||
and kit-bashed into a high-tech cleaver on a stick - with a handguard and a goliath hide grip. While it is still of little use to any \
|
and kit-bashed into a high-tech cleaver on a stick - with a handguard and a goliath hide grip. While it is still of little use to any \
|
||||||
but the most skilled and/or suicidal miners against local fauna, it's an elegant weapon for a more civilized hunter."
|
but the most skilled and/or suicidal miners against local fauna, it's an elegant weapon for a more civilized hunter."
|
||||||
|
|
||||||
look gary there i am
|
look gary there i am
|
||||||
- hatterhat
|
- hatterhat
|
||||||
*/
|
*/
|
||||||
@@ -256,6 +256,9 @@
|
|||||||
backstab_bonus = 40 // 100
|
backstab_bonus = 40 // 100
|
||||||
thrown_bonus = 20 // 120
|
thrown_bonus = 20 // 120
|
||||||
update_item_state = FALSE
|
update_item_state = FALSE
|
||||||
|
slot_flags = SLOT_BELT
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/obj/item/weapon/kinetic_crusher/machete/gauntlets
|
/obj/item/weapon/kinetic_crusher/machete/gauntlets
|
||||||
@@ -275,6 +278,7 @@
|
|||||||
detonation_damage = 37 // 75
|
detonation_damage = 37 // 75
|
||||||
backstab_bonus = 55 // 130
|
backstab_bonus = 55 // 130
|
||||||
var/obj/item/offhand/crushergauntlets/offhand
|
var/obj/item/offhand/crushergauntlets/offhand
|
||||||
|
slot_flags = null
|
||||||
|
|
||||||
/obj/item/weapon/kinetic_crusher/machete/gauntlets/equipped()
|
/obj/item/weapon/kinetic_crusher/machete/gauntlets/equipped()
|
||||||
. = ..()
|
. = ..()
|
||||||
@@ -381,6 +385,7 @@
|
|||||||
thrown_bonus = 50 // 135 but you drop your knife because you threw it
|
thrown_bonus = 50 // 135 but you drop your knife because you threw it
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//destablizing force
|
//destablizing force
|
||||||
/obj/item/projectile/destabilizer
|
/obj/item/projectile/destabilizer
|
||||||
name = "destabilizing force"
|
name = "destabilizing force"
|
||||||
|
|||||||
@@ -27,11 +27,14 @@
|
|||||||
if(always_stars)
|
if(always_stars)
|
||||||
piece = stars(piece)
|
piece = stars(piece)
|
||||||
else if(!say_understands(speaker, SP.speaking))
|
else if(!say_understands(speaker, SP.speaking))
|
||||||
piece = saypiece_scramble(SP)
|
if(SP.speaking.flags & INAUDIBLE)
|
||||||
if(isliving(speaker))
|
piece = ""
|
||||||
var/mob/living/S = speaker
|
else
|
||||||
if(istype(S.say_list) && length(S.say_list.speak))
|
piece = saypiece_scramble(SP)
|
||||||
piece = pick(S.say_list.speak)
|
if(isliving(speaker))
|
||||||
|
var/mob/living/S = speaker
|
||||||
|
if(istype(S.say_list) && length(S.say_list.speak))
|
||||||
|
piece = pick(S.say_list.speak)
|
||||||
|
|
||||||
raw_msg += (piece + " ")
|
raw_msg += (piece + " ")
|
||||||
|
|
||||||
@@ -226,13 +229,13 @@
|
|||||||
final_message = "[time][final_message]"
|
final_message = "[time][final_message]"
|
||||||
to_chat(src, final_message)
|
to_chat(src, final_message)
|
||||||
|
|
||||||
/mob/proc/hear_signlang(var/message, var/verb = "gestures", var/datum/language/language, var/mob/speaker = null)
|
/mob/proc/hear_signlang(var/message, var/verb = "gestures", var/verb_understood = "gestures", var/datum/language/language, var/mob/speaker = null, var/speech_type = 1)
|
||||||
if(!client)
|
if(!client)
|
||||||
return
|
return
|
||||||
|
|
||||||
if(say_understands(speaker, language))
|
if(say_understands(speaker, language))
|
||||||
message = "<B>[speaker]</B> [verb], \"[message]\""
|
message = "<B>[speaker]</B> [verb_understood], \"[message]\""
|
||||||
else
|
else if(!(language.ignore_adverb))
|
||||||
var/adverb
|
var/adverb
|
||||||
var/length = length(message) * pick(0.8, 0.9, 1.0, 1.1, 1.2) //Adds a little bit of fuzziness
|
var/length = length(message) * pick(0.8, 0.9, 1.0, 1.1, 1.2) //Adds a little bit of fuzziness
|
||||||
switch(length)
|
switch(length)
|
||||||
@@ -242,8 +245,10 @@
|
|||||||
if(48 to 90) adverb = " a lengthy message"
|
if(48 to 90) adverb = " a lengthy message"
|
||||||
else adverb = " a very lengthy message"
|
else adverb = " a very lengthy message"
|
||||||
message = "<B>[speaker]</B> [verb][adverb]."
|
message = "<B>[speaker]</B> [verb][adverb]."
|
||||||
|
else
|
||||||
|
message = "<B>[speaker]</B> [verb]."
|
||||||
|
|
||||||
show_message(message, type = 1) // Type 1 is visual message
|
show_message(message, type = speech_type) // Type 1 is visual message
|
||||||
|
|
||||||
/mob/proc/hear_sleep(var/message)
|
/mob/proc/hear_sleep(var/message)
|
||||||
var/heard = ""
|
var/heard = ""
|
||||||
|
|||||||
@@ -145,8 +145,9 @@
|
|||||||
// which is exactly what sign language does.
|
// which is exactly what sign language does.
|
||||||
/datum/language/sign/broadcast(var/mob/living/speaker, var/message, var/speaker_mask)
|
/datum/language/sign/broadcast(var/mob/living/speaker, var/message, var/speaker_mask)
|
||||||
log_say("(SIGN) [message]", speaker)
|
log_say("(SIGN) [message]", speaker)
|
||||||
speaker.say_signlang(message, pick(signlang_verb), src)
|
var/verb_to_use = pick(signlang_verb)
|
||||||
|
speaker.say_signlang(message, verb_to_use, verb_to_use, src)
|
||||||
|
|
||||||
|
|
||||||
// Silly language for those times when you try to talk a languague you normally can't
|
// Silly language for those times when you try to talk a languague you normally can't
|
||||||
/datum/language/gibberish
|
/datum/language/gibberish
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
var/exclaim_verb = "exclaims" // Used when sentence ends in a !
|
var/exclaim_verb = "exclaims" // Used when sentence ends in a !
|
||||||
var/whisper_verb // Optional. When not specified speech_verb + quietly/softly is used instead.
|
var/whisper_verb // Optional. When not specified speech_verb + quietly/softly is used instead.
|
||||||
var/signlang_verb = list("signs", "gestures") // list of emotes that might be displayed if this language has NONVERBAL or SIGNLANG flags
|
var/signlang_verb = list("signs", "gestures") // list of emotes that might be displayed if this language has NONVERBAL or SIGNLANG flags
|
||||||
|
var/signlang_verb_understood = list("signs") // snowflake bs, used only for echo
|
||||||
var/colour = "body" // CSS style to use for strings in this language.
|
var/colour = "body" // CSS style to use for strings in this language.
|
||||||
var/key = "x" // Character used to speak in language eg. :o for Unathi.
|
var/key = "x" // Character used to speak in language eg. :o for Unathi.
|
||||||
var/flags = 0 // Various language flags.
|
var/flags = 0 // Various language flags.
|
||||||
@@ -20,6 +21,7 @@
|
|||||||
var/list/space_chance = 55 // Likelihood of getting a space in the random scramble string
|
var/list/space_chance = 55 // Likelihood of getting a space in the random scramble string
|
||||||
var/machine_understands = 1 // Whether machines can parse and understand this language
|
var/machine_understands = 1 // Whether machines can parse and understand this language
|
||||||
var/list/partial_understanding // List of languages that can /somehwat/ understand it, format is: name = chance of understanding a word
|
var/list/partial_understanding // List of languages that can /somehwat/ understand it, format is: name = chance of understanding a word
|
||||||
|
var/ignore_adverb = FALSE // For inaudible languages that we dont want adverb for
|
||||||
|
|
||||||
/datum/language/proc/get_random_name(var/gender, name_count=2, syllable_count=4, syllable_divisor=2)
|
/datum/language/proc/get_random_name(var/gender, name_count=2, syllable_count=4, syllable_divisor=2)
|
||||||
if(!syllables || !syllables.len)
|
if(!syllables || !syllables.len)
|
||||||
@@ -235,7 +237,7 @@
|
|||||||
//TBD
|
//TBD
|
||||||
/mob/proc/check_lang_data()
|
/mob/proc/check_lang_data()
|
||||||
. = ""
|
. = ""
|
||||||
|
|
||||||
for(var/datum/language/L in languages)
|
for(var/datum/language/L in languages)
|
||||||
if(!(L.flags & NONGLOBAL))
|
if(!(L.flags & NONGLOBAL))
|
||||||
. += "<b>[L.name] ([get_language_prefix()][L.key])</b><br/>[L.desc]<br/><br/>"
|
. += "<b>[L.name] ([get_language_prefix()][L.key])</b><br/>[L.desc]<br/><br/>"
|
||||||
|
|||||||
@@ -96,7 +96,8 @@
|
|||||||
|
|
||||||
/datum/language/tajsign/broadcast(var/mob/living/speaker, var/message, var/speaker_mask)
|
/datum/language/tajsign/broadcast(var/mob/living/speaker, var/message, var/speaker_mask)
|
||||||
log_say("(SIGN) [message]", speaker)
|
log_say("(SIGN) [message]", speaker)
|
||||||
speaker.say_signlang(message, pick(signlang_verb), src)
|
var/verb_to_use = pick(signlang_verb)
|
||||||
|
speaker.say_signlang(message, verb_to_use, verb_to_use, src)
|
||||||
|
|
||||||
/datum/language/tajsign/can_speak_special(var/mob/speaker) // TODO: If ever we make external organs assist languages, convert this over to the new format
|
/datum/language/tajsign/can_speak_special(var/mob/speaker) // TODO: If ever we make external organs assist languages, convert this over to the new format
|
||||||
var/list/allowed_species = list(SPECIES_TAJ, SPECIES_TESHARI) // Need a tail and ears and such to use this.
|
var/list/allowed_species = list(SPECIES_TAJ, SPECIES_TESHARI) // Need a tail and ears and such to use this.
|
||||||
|
|||||||
@@ -167,7 +167,24 @@
|
|||||||
exclaim_verb = "squeaks loudly"
|
exclaim_verb = "squeaks loudly"
|
||||||
syllables = list ("sque", "uik", "squeak", "squee", "eak", "eek", "uek", "squik",
|
syllables = list ("sque", "uik", "squeak", "squee", "eak", "eek", "uek", "squik",
|
||||||
"squeek", "sq", "squee", "ee", "ek", "ak", "ueak", "squea")
|
"squeek", "sq", "squee", "ee", "ek", "ak", "ueak", "squea")
|
||||||
colour = "tavan"
|
colour = "tavan"
|
||||||
|
|
||||||
|
/datum/language/echosong
|
||||||
|
name = LANGUAGE_ECHOSONG
|
||||||
|
desc = "An ultrasound-based language, inaudible to those unable to understand it."
|
||||||
|
key = "U"
|
||||||
|
signlang_verb = list("opens their mouth soundlessly", "mouthes something silently")
|
||||||
|
signlang_verb_understood = list("squeaks")
|
||||||
|
colour = "echosong"
|
||||||
|
flags = INAUDIBLE
|
||||||
|
ignore_adverb = TRUE
|
||||||
|
|
||||||
|
/datum/language/echosong/scramble(var/input, var/list/known_languages)
|
||||||
|
return stars(input)
|
||||||
|
|
||||||
|
/datum/language/echosong/broadcast(var/mob/living/speaker, var/message, var/speaker_mask)
|
||||||
|
log_say("(INAUDIBLE) [message]", speaker)
|
||||||
|
speaker.say_signlang(format_message(message), pick(signlang_verb), pick(signlang_verb_understood), src, 2)
|
||||||
|
|
||||||
/datum/language/unathi
|
/datum/language/unathi
|
||||||
flags = 0
|
flags = 0
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
var/emagged = 0
|
var/emagged = 0
|
||||||
var/light_strength = 3
|
var/light_strength = 3
|
||||||
var/busy = 0
|
var/busy = 0
|
||||||
|
var/obj/item/device/paicard/paicard = null
|
||||||
var/obj/access_scanner = null
|
var/obj/access_scanner = null
|
||||||
var/list/req_access = list()
|
var/list/req_access = list()
|
||||||
var/list/req_one_access = list()
|
var/list/req_one_access = list()
|
||||||
@@ -73,10 +73,27 @@
|
|||||||
SetStunned(0)
|
SetStunned(0)
|
||||||
SetParalysis(0)
|
SetParalysis(0)
|
||||||
|
|
||||||
if(on && !client && !busy)
|
if(on && !client && !busy && !paicard)
|
||||||
spawn(0)
|
spawn(0)
|
||||||
handleAI()
|
handleAI()
|
||||||
|
/*
|
||||||
|
/mob/living/bot/examine(mob/user)
|
||||||
|
. = ..()
|
||||||
|
if(health < maxHealth)
|
||||||
|
if(health > maxHealth/3)
|
||||||
|
. += "[src]'s parts look loose."
|
||||||
|
else
|
||||||
|
. += "[src]'s parts look very loose!"
|
||||||
|
else
|
||||||
|
. += "[src] is in pristine condition."
|
||||||
|
. += span_notice("Its maintenance panel is [open ? "open" : "closed"].")
|
||||||
|
. += span_info("You can use a <b>screwdriver</b> to [open ? "close" : "open"] it.")
|
||||||
|
. += span_notice("Its control panel is [locked ? "locked" : "unlocked"].")
|
||||||
|
if(paicard)
|
||||||
|
. += span_notice("It has a pAI device installed.")
|
||||||
|
if(open)
|
||||||
|
. += span_info("You can use a <b>crowbar</b> to remove it.")
|
||||||
|
*/
|
||||||
/mob/living/bot/updatehealth()
|
/mob/living/bot/updatehealth()
|
||||||
if(status_flags & GODMODE)
|
if(status_flags & GODMODE)
|
||||||
health = getMaxHealth()
|
health = getMaxHealth()
|
||||||
@@ -139,6 +156,17 @@
|
|||||||
qdel(O)
|
qdel(O)
|
||||||
else
|
else
|
||||||
to_chat(user, "<span class='notice'>Unable to repair with the maintenance panel closed.</span>")
|
to_chat(user, "<span class='notice'>Unable to repair with the maintenance panel closed.</span>")
|
||||||
|
else if(istype(O, /obj/item/device/paicard))
|
||||||
|
if(open)
|
||||||
|
insertpai(user, O)
|
||||||
|
to_chat(user, span_notice("You slot the card into \the [initial(src.name)]."))
|
||||||
|
else
|
||||||
|
to_chat(user, span_notice("You must open the panel first!"))
|
||||||
|
else if(O.is_crowbar())
|
||||||
|
if(open && paicard)
|
||||||
|
to_chat(user, span_notice("You are attempting to remove the pAI.."))
|
||||||
|
if(do_after(user,10 * O.toolspeed))
|
||||||
|
ejectpai(user)
|
||||||
else
|
else
|
||||||
..()
|
..()
|
||||||
|
|
||||||
@@ -212,6 +240,13 @@
|
|||||||
if(LAZYLEN(can_go))
|
if(LAZYLEN(can_go))
|
||||||
if(step_towards(src, pick(can_go)))
|
if(step_towards(src, pick(can_go)))
|
||||||
return
|
return
|
||||||
|
for(var/mob in loc)
|
||||||
|
if(istype(mob, /mob/living/bot) && mob != src) // Same as above, but we also don't want to have bots ontop of bots. Cleanbots shouldn't stack >:(
|
||||||
|
var/turf/my_turf = get_turf(src)
|
||||||
|
var/list/can_go = my_turf.CardinalTurfsWithAccess(botcard)
|
||||||
|
if(LAZYLEN(can_go))
|
||||||
|
if(step_towards(src, pick(can_go)))
|
||||||
|
return
|
||||||
handleIdle()
|
handleIdle()
|
||||||
|
|
||||||
/mob/living/bot/proc/handleRegular()
|
/mob/living/bot/proc/handleRegular()
|
||||||
@@ -367,9 +402,14 @@
|
|||||||
update_icons()
|
update_icons()
|
||||||
|
|
||||||
/mob/living/bot/proc/explode()
|
/mob/living/bot/proc/explode()
|
||||||
|
if(paicard)
|
||||||
|
ejectpai()
|
||||||
|
release_vore_contents()
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|
||||||
/mob/living/bot/is_sentient()
|
/mob/living/bot/is_sentient()
|
||||||
|
if(paicard)
|
||||||
|
return TRUE
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
/******************************************************************/
|
/******************************************************************/
|
||||||
@@ -458,3 +498,68 @@
|
|||||||
|
|
||||||
/mob/living/bot/isSynthetic() //Robots are synthetic, no?
|
/mob/living/bot/isSynthetic() //Robots are synthetic, no?
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
|
/mob/living/bot/proc/insertpai(mob/user, obj/item/device/paicard/card)
|
||||||
|
//var/obj/item/paicard/card = I
|
||||||
|
var/mob/living/silicon/pai/AI = card.pai
|
||||||
|
if(paicard)
|
||||||
|
to_chat(user, span_notice("This bot is already under PAI Control!"))
|
||||||
|
return
|
||||||
|
if(!istype(card)) // TODO: Add sleevecard support.
|
||||||
|
return
|
||||||
|
if(client)
|
||||||
|
to_chat(user, span_notice("Higher levels of processing are already present!"))
|
||||||
|
return
|
||||||
|
if(!card.pai)
|
||||||
|
to_chat(user, span_notice("This card does not currently have a personality!"))
|
||||||
|
return
|
||||||
|
paicard = card
|
||||||
|
user.unEquip(card)
|
||||||
|
card.forceMove(src)
|
||||||
|
src.ckey = AI.ckey
|
||||||
|
name = AI.name
|
||||||
|
ooc_notes = AI.ooc_notes
|
||||||
|
to_chat(src, span_notice("You feel a tingle in your circuits as your systems interface with \the [initial(src.name)]."))
|
||||||
|
if(AI.idcard.access)
|
||||||
|
botcard.access |= AI.idcard.access
|
||||||
|
|
||||||
|
/mob/living/bot/proc/ejectpai(mob/user)
|
||||||
|
if(paicard)
|
||||||
|
var/mob/living/silicon/pai/AI = paicard.pai
|
||||||
|
AI.ckey = src.ckey
|
||||||
|
AI.ooc_notes = ooc_notes
|
||||||
|
paicard.forceMove(src.loc)
|
||||||
|
paicard = null
|
||||||
|
name = initial(name)
|
||||||
|
botcard.access = botcard_access.Copy()
|
||||||
|
to_chat(AI, span_notice("You feel a tad claustrophobic as your mind closes back into your card, ejecting from \the [initial(src.name)]."))
|
||||||
|
|
||||||
|
if(user)
|
||||||
|
to_chat(user, span_notice("You eject the card from \the [initial(src.name)]."))
|
||||||
|
|
||||||
|
/mob/living/bot/verb/bot_nom(var/mob/living/T in oview(1))
|
||||||
|
set name = "Bot Nom"
|
||||||
|
set category = "Bot Commands"
|
||||||
|
set desc = "Allows you to eat someone. Yum."
|
||||||
|
|
||||||
|
if (stat != CONSCIOUS)
|
||||||
|
return
|
||||||
|
return feed_grabbed_to_self(src,T)
|
||||||
|
|
||||||
|
/mob/living/bot/verb/ejectself()
|
||||||
|
set name = "Eject pAI"
|
||||||
|
set category = "Bot Commands"
|
||||||
|
set desc = "Eject your card, return to smole."
|
||||||
|
|
||||||
|
return ejectpai()
|
||||||
|
|
||||||
|
/mob/living/bot/Login()
|
||||||
|
no_vore = FALSE // ROBOT VORE
|
||||||
|
init_vore() // ROBOT VORE
|
||||||
|
verbs |= /mob/living/proc/insidePanel
|
||||||
|
|
||||||
|
/mob/living/bot/Logout()
|
||||||
|
no_vore = TRUE // ROBOT VORE
|
||||||
|
release_vore_contents()
|
||||||
|
init_vore() // ROBOT VORE
|
||||||
|
verbs -= /mob/living/proc/insidePanel
|
||||||
@@ -141,8 +141,8 @@
|
|||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||||
s.set_up(3, 1, src)
|
s.set_up(3, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
qdel(src)
|
//qdel(src)
|
||||||
return
|
return ..()
|
||||||
|
|
||||||
/mob/living/bot/cleanbot/update_icons()
|
/mob/living/bot/cleanbot/update_icons()
|
||||||
if(busy)
|
if(busy)
|
||||||
|
|||||||
@@ -49,7 +49,7 @@
|
|||||||
s.start()
|
s.start()
|
||||||
|
|
||||||
new /obj/effect/decal/cleanable/blood/oil(Tsec)
|
new /obj/effect/decal/cleanable/blood/oil(Tsec)
|
||||||
qdel(src)
|
return ..()
|
||||||
|
|
||||||
/mob/living/bot/secbot/ed209/handleRangedTarget()
|
/mob/living/bot/secbot/ed209/handleRangedTarget()
|
||||||
RangedAttack(target)
|
RangedAttack(target)
|
||||||
|
|||||||
@@ -68,8 +68,8 @@
|
|||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||||
s.set_up(3, 1, src)
|
s.set_up(3, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
qdel(src)
|
//qdel(src)
|
||||||
return
|
return ..()
|
||||||
|
|
||||||
/mob/living/bot/cleanbot/edCLN/tgui_data(mob/user)
|
/mob/living/bot/cleanbot/edCLN/tgui_data(mob/user)
|
||||||
var/list/data = ..()
|
var/list/data = ..()
|
||||||
|
|||||||
@@ -286,8 +286,8 @@
|
|||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||||
s.set_up(3, 1, src)
|
s.set_up(3, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
qdel(src)
|
//qdel(src)
|
||||||
return
|
return ..()
|
||||||
|
|
||||||
|
|
||||||
/mob/living/bot/farmbot/confirmTarget(var/atom/targ)
|
/mob/living/bot/farmbot/confirmTarget(var/atom/targ)
|
||||||
|
|||||||
@@ -42,7 +42,7 @@
|
|||||||
data["on"] = on
|
data["on"] = on
|
||||||
data["open"] = open
|
data["open"] = open
|
||||||
data["locked"] = locked
|
data["locked"] = locked
|
||||||
|
|
||||||
data["vocal"] = vocal
|
data["vocal"] = vocal
|
||||||
data["amount"] = amount
|
data["amount"] = amount
|
||||||
|
|
||||||
@@ -75,7 +75,7 @@
|
|||||||
/mob/living/bot/floorbot/tgui_act(action, list/params, datum/tgui/ui, datum/tgui_state/state)
|
/mob/living/bot/floorbot/tgui_act(action, list/params, datum/tgui/ui, datum/tgui_state/state)
|
||||||
if(..())
|
if(..())
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|
||||||
add_fingerprint(src)
|
add_fingerprint(src)
|
||||||
|
|
||||||
switch(action)
|
switch(action)
|
||||||
@@ -85,7 +85,7 @@
|
|||||||
else
|
else
|
||||||
turn_on()
|
turn_on()
|
||||||
. = TRUE
|
. = TRUE
|
||||||
|
|
||||||
if(locked && !issilicon(usr))
|
if(locked && !issilicon(usr))
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -302,7 +302,8 @@
|
|||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||||
s.set_up(3, 1, src)
|
s.set_up(3, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
qdel(src)
|
//qdel(src)
|
||||||
|
return ..()
|
||||||
|
|
||||||
/mob/living/bot/floorbot/proc/addTiles(var/am)
|
/mob/living/bot/floorbot/proc/addTiles(var/am)
|
||||||
amount += am
|
amount += am
|
||||||
|
|||||||
@@ -269,10 +269,10 @@
|
|||||||
/mob/living/bot/medbot/tgui_act(action, list/params, datum/tgui/ui, datum/tgui_state/state)
|
/mob/living/bot/medbot/tgui_act(action, list/params, datum/tgui/ui, datum/tgui_state/state)
|
||||||
if(..())
|
if(..())
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|
||||||
usr.set_machine(src)
|
usr.set_machine(src)
|
||||||
add_fingerprint(usr)
|
add_fingerprint(usr)
|
||||||
|
|
||||||
. = TRUE
|
. = TRUE
|
||||||
switch(action)
|
switch(action)
|
||||||
if("power")
|
if("power")
|
||||||
@@ -349,8 +349,8 @@
|
|||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||||
s.set_up(3, 1, src)
|
s.set_up(3, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
qdel(src)
|
//qdel(src)
|
||||||
return
|
return ..()
|
||||||
|
|
||||||
/mob/living/bot/medbot/handleRegular()
|
/mob/living/bot/medbot/handleRegular()
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|||||||
@@ -129,7 +129,7 @@
|
|||||||
/mob/living/bot/secbot/tgui_act(action, list/params, datum/tgui/ui, datum/tgui_state/state)
|
/mob/living/bot/secbot/tgui_act(action, list/params, datum/tgui/ui, datum/tgui_state/state)
|
||||||
if(..())
|
if(..())
|
||||||
return
|
return
|
||||||
|
|
||||||
add_fingerprint(usr)
|
add_fingerprint(usr)
|
||||||
|
|
||||||
switch(action)
|
switch(action)
|
||||||
@@ -380,7 +380,8 @@
|
|||||||
s.start()
|
s.start()
|
||||||
|
|
||||||
new /obj/effect/decal/cleanable/blood/oil(Tsec)
|
new /obj/effect/decal/cleanable/blood/oil(Tsec)
|
||||||
qdel(src)
|
//qdel(src)
|
||||||
|
return ..()
|
||||||
|
|
||||||
/mob/living/bot/secbot/proc/target_name(mob/living/T)
|
/mob/living/bot/secbot/proc/target_name(mob/living/T)
|
||||||
if(ishuman(T))
|
if(ishuman(T))
|
||||||
|
|||||||
@@ -532,3 +532,13 @@
|
|||||||
/datum/trait/neutral/submit_to_prey/apply(var/datum/species/S,var/mob/living/carbon/human/H)
|
/datum/trait/neutral/submit_to_prey/apply(var/datum/species/S,var/mob/living/carbon/human/H)
|
||||||
..(S,H)
|
..(S,H)
|
||||||
H.verbs |= /mob/living/proc/lend_prey_control
|
H.verbs |= /mob/living/proc/lend_prey_control
|
||||||
|
|
||||||
|
/datum/trait/neutral/vertical_nom
|
||||||
|
name = "Vertical Nom"
|
||||||
|
desc = "Allows you to consume people from up above."
|
||||||
|
cost = 0
|
||||||
|
custom_only = FALSE
|
||||||
|
|
||||||
|
/datum/trait/neutral/vertical_nom/apply(var/datum/species/S,var/mob/living/carbon/human/H)
|
||||||
|
..(S,H)
|
||||||
|
H.verbs |= /mob/living/proc/vertical_nom
|
||||||
|
|||||||
@@ -79,14 +79,21 @@
|
|||||||
return 1
|
return 1
|
||||||
|
|
||||||
/mob/living/verb/succumb()
|
/mob/living/verb/succumb()
|
||||||
set hidden = 1
|
set name = "Succumb to death"
|
||||||
// if ((src.health < 0 && src.health > (5-src.getMaxHealth()))) // Health below Zero but above 5-away-from-death, as before, but variable
|
set category = "IC"
|
||||||
if (src.health < 0 && stat != DEAD)
|
set desc = "Press this button if you are in crit and wish to die. Use this sparingly (ending a scene, no medical, etc.)"
|
||||||
|
var/confirm1 = tgui_alert(usr, "Pressing this button will kill you instantenously! Are you sure you wish to proceed?", "Confirm wish to succumb", list("No","Yes"))
|
||||||
|
var/confirm2 = "No"
|
||||||
|
if(confirm1 == "Yes")
|
||||||
|
confirm2 = tgui_alert(usr, "Pressing this buttom will really kill you, no going back", "Are you sure?", list("Yes", "No")) //Swapped answers to protect from accidental double clicks.
|
||||||
|
if (src.health < 0 && stat != DEAD && confirm1 == "Yes" && confirm2 == "Yes") // Checking both confirm1 and confirm2 for good measure. I don't trust TGUI.
|
||||||
src.death()
|
src.death()
|
||||||
to_chat(src, "<font color='blue'>You have given up life and succumbed to death.</font>")
|
to_chat(src, "<font color='blue'>You have given up life and succumbed to death.</font>")
|
||||||
else
|
else
|
||||||
if(stat == DEAD)
|
if(stat == DEAD)
|
||||||
to_chat(src, "<font color='blue'>As much as you'd like, you can't die when already dead</font>")
|
to_chat(src, "<font color='blue'>As much as you'd like, you can't die when already dead</font>")
|
||||||
|
else if(confirm1 == "No" || confirm2 == "No")
|
||||||
|
to_chat(src, "<font color='blue'>You chose to live another day.</font>")
|
||||||
else
|
else
|
||||||
to_chat(src, "<font color='blue'>You are not injured enough to succumb to death!</font>")
|
to_chat(src, "<font color='blue'>You are not injured enough to succumb to death!</font>")
|
||||||
|
|
||||||
|
|||||||
@@ -300,7 +300,7 @@ var/list/channel_to_radio_key = new
|
|||||||
|
|
||||||
//Handle nonverbal languages here
|
//Handle nonverbal languages here
|
||||||
for(var/datum/multilingual_say_piece/S in message_pieces)
|
for(var/datum/multilingual_say_piece/S in message_pieces)
|
||||||
if(S.speaking.flags & NONVERBAL)
|
if((S.speaking.flags & NONVERBAL) || (S.speaking.flags & INAUDIBLE))
|
||||||
custom_emote(1, "[pick(S.speaking.signlang_verb)].")
|
custom_emote(1, "[pick(S.speaking.signlang_verb)].")
|
||||||
|
|
||||||
//These will contain the main receivers of the message
|
//These will contain the main receivers of the message
|
||||||
@@ -407,21 +407,33 @@ var/list/channel_to_radio_key = new
|
|||||||
log_say(message, src)
|
log_say(message, src)
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/mob/living/proc/say_signlang(var/message, var/verb="gestures", var/datum/language/language)
|
/mob/living/proc/say_signlang(var/message, var/verb="gestures", var/verb_understood="gestures", var/datum/language/language, var/type = 1)
|
||||||
var/turf/T = get_turf(src)
|
var/turf/T = get_turf(src)
|
||||||
//We're in something, gesture to people inside the same thing
|
//We're in something, gesture to people inside the same thing
|
||||||
if(loc != T)
|
if(loc != T)
|
||||||
for(var/mob/M in loc)
|
for(var/mob/M in loc)
|
||||||
M.hear_signlang(message, verb, language, src)
|
M.hear_signlang(message, verb, verb_understood, language, src, type)
|
||||||
|
|
||||||
//We're on a turf, gesture to visible as if we were a normal language
|
//We're on a turf, gesture to visible as if we were a normal language
|
||||||
else
|
else
|
||||||
|
var/low_range = FALSE
|
||||||
|
if(T && type == 2) // type 2 is audible signlang. yes. sue me.
|
||||||
|
//Air is too thin to carry sound at all, contact speech only
|
||||||
|
var/datum/gas_mixture/environment = T.return_air()
|
||||||
|
var/pressure = environment ? environment.return_pressure() : 0
|
||||||
|
if(pressure < SOUND_MINIMUM_PRESSURE)
|
||||||
|
low_range = TRUE
|
||||||
|
|
||||||
var/list/potentials = get_mobs_and_objs_in_view_fast(T, world.view)
|
var/list/potentials = get_mobs_and_objs_in_view_fast(T, world.view)
|
||||||
var/list/mobs = potentials["mobs"]
|
var/list/mobs = potentials["mobs"]
|
||||||
for(var/mob/M as anything in mobs)
|
for(var/mob/M as anything in mobs)
|
||||||
M.hear_signlang(message, verb, language, src)
|
if(low_range && !(M in range(1, src)))
|
||||||
|
continue
|
||||||
|
M.hear_signlang(message, verb, verb_understood, language, src, type)
|
||||||
var/list/objs = potentials["objs"]
|
var/list/objs = potentials["objs"]
|
||||||
for(var/obj/O as anything in objs)
|
for(var/obj/O as anything in objs)
|
||||||
|
if(low_range && !(O in range(1, src)))
|
||||||
|
continue
|
||||||
O.hear_signlang(message, verb, language, src)
|
O.hear_signlang(message, verb, language, src)
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
|
|||||||
@@ -247,6 +247,9 @@
|
|||||||
|
|
||||||
last_special = world.time + 100
|
last_special = world.time + 100
|
||||||
|
|
||||||
|
if(istype(card.loc, /obj/machinery)) // VOREStation edit, this statement allows pAIs stuck in a machine to eject themselves.
|
||||||
|
var/obj/machinery/M = card.loc
|
||||||
|
M.ejectpai()
|
||||||
//I'm not sure how much of this is necessary, but I would rather avoid issues.
|
//I'm not sure how much of this is necessary, but I would rather avoid issues.
|
||||||
if(istype(card.loc,/obj/item/rig_module))
|
if(istype(card.loc,/obj/item/rig_module))
|
||||||
to_chat(src, "There is no room to unfold inside this rig module. You're good and stuck.")
|
to_chat(src, "There is no room to unfold inside this rig module. You're good and stuck.")
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
real_name = "cockroach"
|
real_name = "cockroach"
|
||||||
desc = "This station is just crawling with bugs."
|
desc = "This station is just crawling with bugs."
|
||||||
tt_desc = "E Blattella germanica"
|
tt_desc = "E Blattella germanica"
|
||||||
|
icon = 'icons/mob/animal_vr.dmi'
|
||||||
icon_state = "cockroach"
|
icon_state = "cockroach"
|
||||||
item_state = "cockroach"
|
item_state = "cockroach"
|
||||||
icon_living = "cockroach"
|
icon_living = "cockroach"
|
||||||
|
|||||||
@@ -135,6 +135,13 @@
|
|||||||
extra_overlay = "naga_markings"
|
extra_overlay = "naga_markings"
|
||||||
//icon_sprite_tag = "naga2c"
|
//icon_sprite_tag = "naga2c"
|
||||||
|
|
||||||
|
/datum/sprite_accessory/tail/taur/naga/alt_2c
|
||||||
|
name = "Naga alt style dual-color (Taur)"
|
||||||
|
suit_sprites = 'icons/mob/taursuits_naga_alt_vr.dmi'
|
||||||
|
icon_state = "altnaga_s"
|
||||||
|
extra_overlay = "altnaga_markings"
|
||||||
|
//icon_sprite_tag = "altnaga2c"
|
||||||
|
|
||||||
/datum/sprite_accessory/tail/taur/horse
|
/datum/sprite_accessory/tail/taur/horse
|
||||||
name = "Horse (Taur)"
|
name = "Horse (Taur)"
|
||||||
icon_state = "horse_s"
|
icon_state = "horse_s"
|
||||||
|
|||||||
@@ -249,7 +249,7 @@
|
|||||||
|
|
||||||
// There are a few things that will make us want to ignore all other languages in - namely, HIVEMIND languages.
|
// There are a few things that will make us want to ignore all other languages in - namely, HIVEMIND languages.
|
||||||
var/datum/language/L = current[1]
|
var/datum/language/L = current[1]
|
||||||
if(L && (L.flags & HIVEMIND || L.flags & SIGNLANG))
|
if(L && (L.flags & HIVEMIND || L.flags & SIGNLANG || L.flags & INAUDIBLE))
|
||||||
return new /datum/multilingual_say_piece(L, trim(sanitize(strip_prefixes(message))))
|
return new /datum/multilingual_say_piece(L, trim(sanitize(strip_prefixes(message))))
|
||||||
|
|
||||||
if(i + 1 > length(prefix_locations)) // We are out of lookaheads, that means the rest of the message is in cur lang
|
if(i + 1 > length(prefix_locations)) // We are out of lookaheads, that means the rest of the message is in cur lang
|
||||||
|
|||||||
@@ -9,10 +9,12 @@
|
|||||||
switch(network)
|
switch(network)
|
||||||
if(NETWORK_THUNDER)
|
if(NETWORK_THUNDER)
|
||||||
return 0
|
return 0
|
||||||
if(NETWORK_ENGINE,NETWORK_ALARM_ATMOS,NETWORK_ALARM_FIRE,NETWORK_ALARM_POWER)
|
if(NETWORK_ENGINE,NETWORK_ENGINEERING,NETWORK_ALARM_ATMOS,NETWORK_ALARM_FIRE,NETWORK_ALARM_POWER)
|
||||||
return access_engine
|
return access_engine
|
||||||
if(NETWORK_CIRCUITS)
|
if(NETWORK_CIRCUITS)
|
||||||
return access_research
|
return access_research
|
||||||
|
if(NETWORK_MINE)
|
||||||
|
return access_qm
|
||||||
if(NETWORK_ERT)
|
if(NETWORK_ERT)
|
||||||
return access_cent_specops
|
return access_cent_specops
|
||||||
//VOREStation Add Start
|
//VOREStation Add Start
|
||||||
|
|||||||
@@ -384,5 +384,6 @@
|
|||||||
|
|
||||||
/obj/item/device/toner
|
/obj/item/device/toner
|
||||||
name = "toner cartridge"
|
name = "toner cartridge"
|
||||||
|
icon = 'icons/obj/device.dmi'
|
||||||
icon_state = "tonercartridge"
|
icon_state = "tonercartridge"
|
||||||
var/toner_amount = 30
|
var/toner_amount = 30
|
||||||
|
|||||||
@@ -53,6 +53,30 @@
|
|||||||
name = "vial (amorphorovir)"
|
name = "vial (amorphorovir)"
|
||||||
prefill = list("amorphorovir" = 1)
|
prefill = list("amorphorovir" = 1)
|
||||||
|
|
||||||
|
/obj/item/weapon/reagent_containers/glass/beaker/vial/androrovir
|
||||||
|
name = "vial (androrovir)"
|
||||||
|
prefill = list("androrovir" = 1)
|
||||||
|
|
||||||
|
/obj/item/weapon/reagent_containers/glass/beaker/vial/gynorovir
|
||||||
|
name = "vial (gynorovir)"
|
||||||
|
prefill = list("gynorovir" = 1)
|
||||||
|
|
||||||
|
/obj/item/weapon/reagent_containers/glass/beaker/vial/androgynorovir
|
||||||
|
name = "vial (androgynorovir)"
|
||||||
|
prefill = list("androgynorovir" = 1)
|
||||||
|
|
||||||
|
/obj/item/weapon/reagent_containers/glass/beaker/vial/macrocillin
|
||||||
|
name = "vial (macrocillin)"
|
||||||
|
prefill = list("macrocillin" = 1)
|
||||||
|
|
||||||
|
/obj/item/weapon/reagent_containers/glass/beaker/vial/microcillin
|
||||||
|
name = "vial (microcillin)"
|
||||||
|
prefill = list("microcillin" = 1)
|
||||||
|
|
||||||
|
/obj/item/weapon/reagent_containers/glass/beaker/vial/normalcillin
|
||||||
|
name = "vial (normalcillin)"
|
||||||
|
prefill = list("normalcillin" = 1)
|
||||||
|
|
||||||
/obj/item/weapon/reagent_containers/glass/beaker/vial/supermatter
|
/obj/item/weapon/reagent_containers/glass/beaker/vial/supermatter
|
||||||
name = "vial (supermatter)"
|
name = "vial (supermatter)"
|
||||||
desc = "A glass vial containing the extremely dangerous results of grinding a shard of supermatter down to a fine powder."
|
desc = "A glass vial containing the extremely dangerous results of grinding a shard of supermatter down to a fine powder."
|
||||||
|
|||||||
@@ -157,7 +157,7 @@ h1.alert, h2.alert {color: #000000;}
|
|||||||
.skrell {color: #00B0B3;}
|
.skrell {color: #00B0B3;}
|
||||||
.skrellfar {color: #70FCFF;}
|
.skrellfar {color: #70FCFF;}
|
||||||
.soghun {color: #50BA6C;}
|
.soghun {color: #50BA6C;}
|
||||||
.solcom {color: #22228B;}
|
.solcom {color: #3333CE;} /* VOREStation Edit */
|
||||||
.changeling {color: #800080;}
|
.changeling {color: #800080;}
|
||||||
.sergal {color: #0077FF;}
|
.sergal {color: #0077FF;}
|
||||||
.birdsongc {color: #CC9900;}
|
.birdsongc {color: #CC9900;}
|
||||||
|
|||||||
47
code/modules/vore/eating/vertical_nom_vr.dm
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
/mob/living/proc/vertical_nom()
|
||||||
|
set name = "Nom from Above"
|
||||||
|
set desc = "Allows you to eat people who are below your tile or adjacent one. Requires passability."
|
||||||
|
set category = "Abilities"
|
||||||
|
|
||||||
|
if(stat == DEAD || paralysis || weakened || stunned)
|
||||||
|
to_chat(src, "<span class='notice'>You cannot do that while in your current state.</span>")
|
||||||
|
return
|
||||||
|
|
||||||
|
if(!(src.vore_selected))
|
||||||
|
to_chat(src, "<span class='notice'>No selected belly found.</span>")
|
||||||
|
return
|
||||||
|
|
||||||
|
var/list/targets = list()
|
||||||
|
|
||||||
|
for(var/turf/T in range(1, src))
|
||||||
|
if(isopenspace(T))
|
||||||
|
while(isopenspace(T))
|
||||||
|
T = GetBelow(T)
|
||||||
|
if(T)
|
||||||
|
for(var/mob/living/L in T)
|
||||||
|
if(L.devourable && L.can_be_drop_prey)
|
||||||
|
targets += L
|
||||||
|
|
||||||
|
if(!(targets.len))
|
||||||
|
to_chat(src, "<span class='notice'>No eligible targets found.</span>")
|
||||||
|
return
|
||||||
|
|
||||||
|
var/mob/living/target = tgui_input_list(src, "Please select a target.", "Victim", targets)
|
||||||
|
|
||||||
|
if(!target)
|
||||||
|
return
|
||||||
|
|
||||||
|
to_chat(target, "<span class='warning'>You feel yourself being pulled up by something... Or someone?!</span>")
|
||||||
|
var/starting_loc = target.loc
|
||||||
|
|
||||||
|
if(do_after(src, 50))
|
||||||
|
if(target.loc != starting_loc)
|
||||||
|
to_chat(target, "<span class='warning'>You have interrupted whatever that was...</span>")
|
||||||
|
to_chat(src, "<span class='notice'>They got away.</span>")
|
||||||
|
return
|
||||||
|
if(target.buckled)
|
||||||
|
target.buckled.unbuckle_mob()
|
||||||
|
target.visible_message("<span class='warning'>\The [target] suddenly disappears somewhere above!</span>",\
|
||||||
|
"<span class='danger'>You are dragged above and feel yourself slipping directly into \the [src]'s [vore_selected]!</span>")
|
||||||
|
to_chat(src, "<span class='notice'>You successfully snatch \the [target], slipping them into your [vore_selected].</span>")
|
||||||
|
target.forceMove(src.vore_selected)
|
||||||
@@ -105,6 +105,7 @@ h1.alert, h2.alert {color: #000000;}
|
|||||||
.sergal {color: #0077FF;}
|
.sergal {color: #0077FF;}
|
||||||
.birdsongc {color: #CC9900;}
|
.birdsongc {color: #CC9900;}
|
||||||
.vulpkanin {color: #B97A57;}
|
.vulpkanin {color: #B97A57;}
|
||||||
|
.echosong {color: #826D8C;}
|
||||||
.enochian {color: #848A33; letter-spacing:-1pt; word-spacing:4pt; font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif;}
|
.enochian {color: #848A33; letter-spacing:-1pt; word-spacing:4pt; font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif;}
|
||||||
.daemon {color: #5E339E; letter-spacing:-1pt; word-spacing:0pt; font-family: "Courier New", Courier, monospace;}
|
.daemon {color: #5E339E; letter-spacing:-1pt; word-spacing:0pt; font-family: "Courier New", Courier, monospace;}
|
||||||
.bug {color: #9e9e39;}
|
.bug {color: #9e9e39;}
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 37 KiB |
BIN
icons/mob/taursuits_naga_alt_vr.dmi
Normal file
|
After Width: | Height: | Size: 97 KiB |
|
Before Width: | Height: | Size: 150 KiB After Width: | Height: | Size: 152 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 2.1 KiB |
@@ -16081,6 +16081,20 @@
|
|||||||
/obj/item/device/multitool,
|
/obj/item/device/multitool,
|
||||||
/turf/simulated/floor/plating,
|
/turf/simulated/floor/plating,
|
||||||
/area/storage/tech)
|
/area/storage/tech)
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
"cbU" = (
|
||||||
|
/obj/machinery/atmospherics/pipe/simple/hidden{
|
||||||
|
dir = 4
|
||||||
|
},
|
||||||
|
/obj/machinery/atmospherics/pipe/simple/hidden/fuel{
|
||||||
|
dir = 8
|
||||||
|
},
|
||||||
|
/turf/simulated/wall/fancy_shuttle{
|
||||||
|
fancy_shuttle_tag = "secbus"
|
||||||
|
},
|
||||||
|
/area/shuttle/securiship/engines)
|
||||||
|
>>>>>>> 4ccd512332... Merge pull request #12923 from KillianKirilenko/kk-shipfixes
|
||||||
"cbY" = (
|
"cbY" = (
|
||||||
/obj/machinery/atmospherics/unary/vent_pump/on{
|
/obj/machinery/atmospherics/unary/vent_pump/on{
|
||||||
dir = 4
|
dir = 4
|
||||||
@@ -16729,6 +16743,20 @@
|
|||||||
},
|
},
|
||||||
/turf/simulated/floor/tiled,
|
/turf/simulated/floor/tiled,
|
||||||
/area/ai_monitored/storage/eva)
|
/area/ai_monitored/storage/eva)
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
"cDU" = (
|
||||||
|
/obj/machinery/atmospherics/pipe/simple/hidden{
|
||||||
|
dir = 4
|
||||||
|
},
|
||||||
|
/obj/machinery/atmospherics/pipe/simple/hidden/fuel{
|
||||||
|
dir = 8
|
||||||
|
},
|
||||||
|
/turf/simulated/wall/fancy_shuttle{
|
||||||
|
fancy_shuttle_tag = "medbus"
|
||||||
|
},
|
||||||
|
/area/shuttle/medivac/engines)
|
||||||
|
>>>>>>> 4ccd512332... Merge pull request #12923 from KillianKirilenko/kk-shipfixes
|
||||||
"cEE" = (
|
"cEE" = (
|
||||||
/turf/simulated/wall/r_wall,
|
/turf/simulated/wall/r_wall,
|
||||||
/area/bridge/secondary/teleporter)
|
/area/bridge/secondary/teleporter)
|
||||||
@@ -17560,6 +17588,25 @@
|
|||||||
/obj/random/tool,
|
/obj/random/tool,
|
||||||
/turf/simulated/floor,
|
/turf/simulated/floor,
|
||||||
/area/storage/tech)
|
/area/storage/tech)
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
"doW" = (
|
||||||
|
/obj/machinery/atmospherics/pipe/simple/hidden{
|
||||||
|
dir = 8
|
||||||
|
},
|
||||||
|
/obj/structure/cable{
|
||||||
|
d1 = 4;
|
||||||
|
d2 = 8;
|
||||||
|
icon_state = "4-8"
|
||||||
|
},
|
||||||
|
/obj/effect/floor_decal/fancy_shuttle{
|
||||||
|
fancy_shuttle_tag = "medbus";
|
||||||
|
name = "medbus"
|
||||||
|
},
|
||||||
|
/obj/machinery/atmospherics/pipe/simple/hidden/fuel,
|
||||||
|
/turf/simulated/floor/tiled,
|
||||||
|
/area/shuttle/medivac/engines)
|
||||||
|
>>>>>>> 4ccd512332... Merge pull request #12923 from KillianKirilenko/kk-shipfixes
|
||||||
"dqh" = (
|
"dqh" = (
|
||||||
/obj/machinery/embedded_controller/radio/airlock/docking_port{
|
/obj/machinery/embedded_controller/radio/airlock/docking_port{
|
||||||
dir = 8;
|
dir = 8;
|
||||||
@@ -18088,6 +18135,29 @@
|
|||||||
/obj/structure/closet/secure_closet/pilot,
|
/obj/structure/closet/secure_closet/pilot,
|
||||||
/turf/simulated/floor/tiled,
|
/turf/simulated/floor/tiled,
|
||||||
/area/tether/exploration/pilot_office)
|
/area/tether/exploration/pilot_office)
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
"dRZ" = (
|
||||||
|
/obj/machinery/power/terminal{
|
||||||
|
dir = 4
|
||||||
|
},
|
||||||
|
/obj/structure/cable/green{
|
||||||
|
d2 = 8;
|
||||||
|
icon_state = "0-8"
|
||||||
|
},
|
||||||
|
/obj/structure/table/standard,
|
||||||
|
/obj/item/weapon/tank/phoron,
|
||||||
|
/obj/random/medical,
|
||||||
|
/obj/effect/floor_decal/fancy_shuttle{
|
||||||
|
fancy_shuttle_tag = "medbus";
|
||||||
|
name = "medbus"
|
||||||
|
},
|
||||||
|
/obj/machinery/atmospherics/pipe/simple/hidden/fuel{
|
||||||
|
dir = 10
|
||||||
|
},
|
||||||
|
/turf/simulated/floor/tiled,
|
||||||
|
/area/shuttle/medivac/engines)
|
||||||
|
>>>>>>> 4ccd512332... Merge pull request #12923 from KillianKirilenko/kk-shipfixes
|
||||||
"dSp" = (
|
"dSp" = (
|
||||||
/turf/simulated/wall,
|
/turf/simulated/wall,
|
||||||
/area/mine/explored/upper_level)
|
/area/mine/explored/upper_level)
|
||||||
@@ -18972,6 +19042,7 @@
|
|||||||
/obj/structure/grille,
|
/obj/structure/grille,
|
||||||
/obj/machinery/door/firedoor/glass,
|
/obj/machinery/door/firedoor/glass,
|
||||||
/obj/structure/window/reinforced/full,
|
/obj/structure/window/reinforced/full,
|
||||||
|
<<<<<<< HEAD
|
||||||
/obj/structure/window/reinforced,
|
/obj/structure/window/reinforced,
|
||||||
/obj/machinery/door/blast/regular{
|
/obj/machinery/door/blast/regular{
|
||||||
density = 0;
|
density = 0;
|
||||||
@@ -18980,6 +19051,16 @@
|
|||||||
id = "medivac blast";
|
id = "medivac blast";
|
||||||
name = "Shuttle Blast Doors";
|
name = "Shuttle Blast Doors";
|
||||||
opacity = 0
|
opacity = 0
|
||||||
|
=======
|
||||||
|
/obj/structure/window/reinforced{
|
||||||
|
dir = 1
|
||||||
|
},
|
||||||
|
/turf/simulated/floor/plating,
|
||||||
|
/area/tether/station/dock_two)
|
||||||
|
"eVl" = (
|
||||||
|
/obj/machinery/atmospherics/pipe/simple/hidden/fuel{
|
||||||
|
dir = 6
|
||||||
|
>>>>>>> 4ccd512332... Merge pull request #12923 from KillianKirilenko/kk-shipfixes
|
||||||
},
|
},
|
||||||
<<<<<<< HEAD
|
<<<<<<< HEAD
|
||||||
/turf/simulated/floor/plating/eris/under,
|
/turf/simulated/floor/plating/eris/under,
|
||||||
@@ -21605,10 +21686,12 @@
|
|||||||
/area/maintenance/substation/cargo)
|
/area/maintenance/substation/cargo)
|
||||||
"hsf" = (
|
"hsf" = (
|
||||||
/obj/machinery/shipsensors/fancy_shuttle,
|
/obj/machinery/shipsensors/fancy_shuttle,
|
||||||
/turf/simulated/wall/fancy_shuttle{
|
/turf/simulated/wall/fancy_shuttle/nondense{
|
||||||
fancy_shuttle_tag = "secbus"
|
fancy_shuttle_tag = "secbus";
|
||||||
|
nitrogen = 0;
|
||||||
|
oxygen = 0
|
||||||
},
|
},
|
||||||
/area/shuttle/securiship/cockpit)
|
/area/shuttle/securiship/general)
|
||||||
"hsq" = (
|
"hsq" = (
|
||||||
/obj/structure/catwalk,
|
/obj/structure/catwalk,
|
||||||
/obj/random/junk,
|
/obj/random/junk,
|
||||||
@@ -24773,6 +24856,22 @@
|
|||||||
fancy_shuttle_tag = "explo"
|
fancy_shuttle_tag = "explo"
|
||||||
},
|
},
|
||||||
/area/shuttle/excursion/cargo)
|
/area/shuttle/excursion/cargo)
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
"kiN" = (
|
||||||
|
/obj/structure/fuel_port{
|
||||||
|
pixel_y = 32
|
||||||
|
},
|
||||||
|
/obj/effect/floor_decal/fancy_shuttle{
|
||||||
|
fancy_shuttle_tag = "medbus";
|
||||||
|
name = "medbus"
|
||||||
|
},
|
||||||
|
/obj/machinery/atmospherics/pipe/manifold/hidden/fuel{
|
||||||
|
dir = 1
|
||||||
|
},
|
||||||
|
/turf/simulated/floor/tiled,
|
||||||
|
/area/shuttle/medivac/engines)
|
||||||
|
>>>>>>> 4ccd512332... Merge pull request #12923 from KillianKirilenko/kk-shipfixes
|
||||||
"kjA" = (
|
"kjA" = (
|
||||||
/obj/structure/cable{
|
/obj/structure/cable{
|
||||||
d1 = 4;
|
d1 = 4;
|
||||||
@@ -26107,6 +26206,17 @@
|
|||||||
/obj/effect/floor_decal/corner/paleblue/border,
|
/obj/effect/floor_decal/corner/paleblue/border,
|
||||||
/turf/simulated/floor/tiled/white,
|
/turf/simulated/floor/tiled/white,
|
||||||
/area/tether/station/dock_two)
|
/area/tether/station/dock_two)
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
"lof" = (
|
||||||
|
/obj/machinery/atmospherics/pipe/simple/hidden/fuel{
|
||||||
|
dir = 8
|
||||||
|
},
|
||||||
|
/turf/simulated/wall/fancy_shuttle{
|
||||||
|
fancy_shuttle_tag = "medbus"
|
||||||
|
},
|
||||||
|
/area/shuttle/medivac/engines)
|
||||||
|
>>>>>>> 4ccd512332... Merge pull request #12923 from KillianKirilenko/kk-shipfixes
|
||||||
"loz" = (
|
"loz" = (
|
||||||
/obj/effect/floor_decal/borderfloor{
|
/obj/effect/floor_decal/borderfloor{
|
||||||
dir = 4
|
dir = 4
|
||||||
@@ -27934,7 +28044,11 @@
|
|||||||
},
|
},
|
||||||
/turf/simulated/floor/tiled,
|
/turf/simulated/floor/tiled,
|
||||||
/area/tether/station/dock_one)
|
/area/tether/station/dock_one)
|
||||||
|
<<<<<<< HEAD
|
||||||
"mIR" = (
|
"mIR" = (
|
||||||
|
=======
|
||||||
|
"mIV" = (
|
||||||
|
>>>>>>> 4ccd512332... Merge pull request #12923 from KillianKirilenko/kk-shipfixes
|
||||||
/obj/structure/cable/green{
|
/obj/structure/cable/green{
|
||||||
dir = 1;
|
dir = 1;
|
||||||
icon_state = "1-2"
|
icon_state = "1-2"
|
||||||
@@ -27945,8 +28059,16 @@
|
|||||||
dir = 8;
|
dir = 8;
|
||||||
pixel_x = 0
|
pixel_x = 0
|
||||||
},
|
},
|
||||||
|
<<<<<<< HEAD
|
||||||
/turf/simulated/floor/tiled/eris/techmaint_cargo,
|
/turf/simulated/floor/tiled/eris/techmaint_cargo,
|
||||||
/area/shuttle/securiship/general)
|
/area/shuttle/securiship/general)
|
||||||
|
=======
|
||||||
|
/obj/machinery/atmospherics/pipe/simple/hidden/fuel{
|
||||||
|
dir = 6
|
||||||
|
},
|
||||||
|
/turf/simulated/floor/tiled,
|
||||||
|
/area/shuttle/securiship/engines)
|
||||||
|
>>>>>>> 4ccd512332... Merge pull request #12923 from KillianKirilenko/kk-shipfixes
|
||||||
"mJd" = (
|
"mJd" = (
|
||||||
/obj/machinery/atmospherics/unary/vent_pump/on{
|
/obj/machinery/atmospherics/unary/vent_pump/on{
|
||||||
dir = 1
|
dir = 1
|
||||||
@@ -28388,6 +28510,18 @@
|
|||||||
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
|
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
|
||||||
/turf/simulated/floor/tiled,
|
/turf/simulated/floor/tiled,
|
||||||
/area/tether/station/dock_two)
|
/area/tether/station/dock_two)
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
"ncN" = (
|
||||||
|
/obj/machinery/atmospherics/pipe/simple/hidden{
|
||||||
|
dir = 10
|
||||||
|
},
|
||||||
|
/obj/machinery/atmospherics/pipe/manifold/hidden/fuel,
|
||||||
|
/turf/simulated/wall/fancy_shuttle{
|
||||||
|
fancy_shuttle_tag = "secbus"
|
||||||
|
},
|
||||||
|
/area/shuttle/securiship/engines)
|
||||||
|
>>>>>>> 4ccd512332... Merge pull request #12923 from KillianKirilenko/kk-shipfixes
|
||||||
"ncX" = (
|
"ncX" = (
|
||||||
/obj/structure/grille,
|
/obj/structure/grille,
|
||||||
/obj/structure/window/reinforced/full,
|
/obj/structure/window/reinforced/full,
|
||||||
@@ -28880,7 +29014,7 @@
|
|||||||
<<<<<<< HEAD
|
<<<<<<< HEAD
|
||||||
=======
|
=======
|
||||||
"nAr" = (
|
"nAr" = (
|
||||||
/obj/machinery/atmospherics/pipe/simple/hidden/yellow{
|
/obj/machinery/atmospherics/pipe/simple/hidden/fuel{
|
||||||
dir = 10
|
dir = 10
|
||||||
},
|
},
|
||||||
/turf/simulated/wall/fancy_shuttle/low{
|
/turf/simulated/wall/fancy_shuttle/low{
|
||||||
@@ -28890,9 +29024,6 @@
|
|||||||
},
|
},
|
||||||
/area/shuttle/securiship/engines)
|
/area/shuttle/securiship/engines)
|
||||||
"nAx" = (
|
"nAx" = (
|
||||||
/obj/machinery/atmospherics/portables_connector{
|
|
||||||
dir = 4
|
|
||||||
},
|
|
||||||
/obj/machinery/portable_atmospherics/canister/phoron,
|
/obj/machinery/portable_atmospherics/canister/phoron,
|
||||||
/obj/machinery/light{
|
/obj/machinery/light{
|
||||||
dir = 8
|
dir = 8
|
||||||
@@ -28901,6 +29032,9 @@
|
|||||||
fancy_shuttle_tag = "medbus";
|
fancy_shuttle_tag = "medbus";
|
||||||
name = "medbus"
|
name = "medbus"
|
||||||
},
|
},
|
||||||
|
/obj/machinery/atmospherics/portables_connector/fuel{
|
||||||
|
dir = 4
|
||||||
|
},
|
||||||
/turf/simulated/floor/tiled,
|
/turf/simulated/floor/tiled,
|
||||||
/area/shuttle/medivac/engines)
|
/area/shuttle/medivac/engines)
|
||||||
>>>>>>> de1f9190b8b... Merge pull request #12143 from Very-Soft/returntotether
|
>>>>>>> de1f9190b8b... Merge pull request #12143 from Very-Soft/returntotether
|
||||||
@@ -29695,6 +29829,7 @@
|
|||||||
d2 = 8;
|
d2 = 8;
|
||||||
icon_state = "1-8"
|
icon_state = "1-8"
|
||||||
},
|
},
|
||||||
|
<<<<<<< HEAD
|
||||||
/obj/structure/table/rack/shelf,
|
/obj/structure/table/rack/shelf,
|
||||||
/obj/machinery/alarm{
|
/obj/machinery/alarm{
|
||||||
breach_detection = 0;
|
breach_detection = 0;
|
||||||
@@ -29703,6 +29838,10 @@
|
|||||||
pixel_x = 25;
|
pixel_x = 25;
|
||||||
rcon_setting = 3;
|
rcon_setting = 3;
|
||||||
report_danger_level = 0
|
report_danger_level = 0
|
||||||
|
=======
|
||||||
|
/obj/machinery/atmospherics/pipe/simple/hidden/fuel{
|
||||||
|
dir = 8
|
||||||
|
>>>>>>> 4ccd512332... Merge pull request #12923 from KillianKirilenko/kk-shipfixes
|
||||||
},
|
},
|
||||||
/turf/simulated/floor/tiled/eris/dark/techfloor,
|
/turf/simulated/floor/tiled/eris/dark/techfloor,
|
||||||
/area/shuttle/securiship/general)
|
/area/shuttle/securiship/general)
|
||||||
@@ -31085,10 +31224,20 @@
|
|||||||
/obj/effect/floor_decal/industrial/outline/blue,
|
/obj/effect/floor_decal/industrial/outline/blue,
|
||||||
/turf/simulated/floor,
|
/turf/simulated/floor,
|
||||||
/area/maintenance/cargo)
|
/area/maintenance/cargo)
|
||||||
|
<<<<<<< HEAD
|
||||||
"qiQ" = (
|
"qiQ" = (
|
||||||
/obj/machinery/atmospherics/portables_connector/fuel{
|
/obj/machinery/atmospherics/portables_connector/fuel{
|
||||||
dir = 8;
|
dir = 8;
|
||||||
icon_state = "map_connector-fuel"
|
icon_state = "map_connector-fuel"
|
||||||
|
=======
|
||||||
|
"qiZ" = (
|
||||||
|
/obj/machinery/atmospherics/pipe/simple/hidden{
|
||||||
|
dir = 4
|
||||||
|
},
|
||||||
|
/obj/machinery/atmospherics/pipe/manifold/hidden/fuel,
|
||||||
|
/turf/simulated/wall/fancy_shuttle{
|
||||||
|
fancy_shuttle_tag = "medbus"
|
||||||
|
>>>>>>> 4ccd512332... Merge pull request #12923 from KillianKirilenko/kk-shipfixes
|
||||||
},
|
},
|
||||||
/obj/machinery/portable_atmospherics/canister/phoron,
|
/obj/machinery/portable_atmospherics/canister/phoron,
|
||||||
/obj/effect/floor_decal/industrial/outline/red,
|
/obj/effect/floor_decal/industrial/outline/red,
|
||||||
@@ -32122,6 +32271,17 @@
|
|||||||
/obj/effect/floor_decal/industrial/outline/yellow,
|
/obj/effect/floor_decal/industrial/outline/yellow,
|
||||||
/turf/simulated/floor,
|
/turf/simulated/floor,
|
||||||
/area/storage/emergency_storage/emergency4)
|
/area/storage/emergency_storage/emergency4)
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
"rkl" = (
|
||||||
|
/obj/machinery/atmospherics/pipe/simple/hidden/fuel{
|
||||||
|
dir = 8
|
||||||
|
},
|
||||||
|
/turf/simulated/wall/fancy_shuttle{
|
||||||
|
fancy_shuttle_tag = "secbus"
|
||||||
|
},
|
||||||
|
/area/shuttle/securiship/engines)
|
||||||
|
>>>>>>> 4ccd512332... Merge pull request #12923 from KillianKirilenko/kk-shipfixes
|
||||||
"rkH" = (
|
"rkH" = (
|
||||||
/obj/structure/disposalpipe/segment{
|
/obj/structure/disposalpipe/segment{
|
||||||
dir = 1;
|
dir = 1;
|
||||||
@@ -32215,6 +32375,20 @@
|
|||||||
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
|
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
|
||||||
/turf/simulated/floor/tiled/steel_grid,
|
/turf/simulated/floor/tiled/steel_grid,
|
||||||
/area/tether/station/dock_two)
|
/area/tether/station/dock_two)
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
"rqA" = (
|
||||||
|
/obj/machinery/atmospherics/pipe/simple/hidden{
|
||||||
|
dir = 5
|
||||||
|
},
|
||||||
|
/obj/machinery/atmospherics/pipe/manifold/hidden/fuel{
|
||||||
|
dir = 1
|
||||||
|
},
|
||||||
|
/turf/simulated/wall/fancy_shuttle{
|
||||||
|
fancy_shuttle_tag = "secbus"
|
||||||
|
},
|
||||||
|
/area/shuttle/securiship/engines)
|
||||||
|
>>>>>>> 4ccd512332... Merge pull request #12923 from KillianKirilenko/kk-shipfixes
|
||||||
"rqP" = (
|
"rqP" = (
|
||||||
/obj/machinery/access_button{
|
/obj/machinery/access_button{
|
||||||
command = "cycle_exterior";
|
command = "cycle_exterior";
|
||||||
@@ -33510,6 +33684,17 @@
|
|||||||
},
|
},
|
||||||
/turf/simulated/floor/tiled,
|
/turf/simulated/floor/tiled,
|
||||||
/area/tether/exploration/hallway)
|
/area/tether/exploration/hallway)
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
"sOn" = (
|
||||||
|
/obj/machinery/atmospherics/pipe/simple/hidden/fuel{
|
||||||
|
dir = 6
|
||||||
|
},
|
||||||
|
/turf/simulated/wall/fancy_shuttle{
|
||||||
|
fancy_shuttle_tag = "medbus"
|
||||||
|
},
|
||||||
|
/area/shuttle/medivac/engines)
|
||||||
|
>>>>>>> 4ccd512332... Merge pull request #12923 from KillianKirilenko/kk-shipfixes
|
||||||
"sPJ" = (
|
"sPJ" = (
|
||||||
/obj/structure/table/reinforced,
|
/obj/structure/table/reinforced,
|
||||||
/obj/item/stack/material/plasteel{
|
/obj/item/stack/material/plasteel{
|
||||||
@@ -34928,6 +35113,20 @@
|
|||||||
"uuz" = (
|
"uuz" = (
|
||||||
/turf/simulated/shuttle/wall,
|
/turf/simulated/shuttle/wall,
|
||||||
/area/shuttle/belter)
|
/area/shuttle/belter)
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
"uvN" = (
|
||||||
|
/obj/machinery/portable_atmospherics/canister/phoron,
|
||||||
|
/obj/effect/floor_decal/fancy_shuttle{
|
||||||
|
fancy_shuttle_tag = "medbus";
|
||||||
|
name = "medbus"
|
||||||
|
},
|
||||||
|
/obj/machinery/atmospherics/portables_connector/fuel{
|
||||||
|
dir = 4
|
||||||
|
},
|
||||||
|
/turf/simulated/floor/tiled,
|
||||||
|
/area/shuttle/medivac/engines)
|
||||||
|
>>>>>>> 4ccd512332... Merge pull request #12923 from KillianKirilenko/kk-shipfixes
|
||||||
"uxR" = (
|
"uxR" = (
|
||||||
/obj/structure/disposalpipe/segment,
|
/obj/structure/disposalpipe/segment,
|
||||||
/obj/structure/cable{
|
/obj/structure/cable{
|
||||||
@@ -35790,6 +35989,19 @@
|
|||||||
},
|
},
|
||||||
/turf/simulated/floor/tiled,
|
/turf/simulated/floor/tiled,
|
||||||
/area/hallway/station/docks)
|
/area/hallway/station/docks)
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
"vtg" = (
|
||||||
|
/obj/effect/floor_decal/fancy_shuttle{
|
||||||
|
fancy_shuttle_tag = "medbus";
|
||||||
|
name = "medbus"
|
||||||
|
},
|
||||||
|
/obj/machinery/atmospherics/pipe/simple/hidden/fuel{
|
||||||
|
dir = 9
|
||||||
|
},
|
||||||
|
/turf/simulated/floor/tiled,
|
||||||
|
/area/shuttle/medivac/engines)
|
||||||
|
>>>>>>> 4ccd512332... Merge pull request #12923 from KillianKirilenko/kk-shipfixes
|
||||||
"vtx" = (
|
"vtx" = (
|
||||||
/obj/machinery/sleep_console{
|
/obj/machinery/sleep_console{
|
||||||
dir = 4
|
dir = 4
|
||||||
@@ -36322,9 +36534,35 @@
|
|||||||
},
|
},
|
||||||
/turf/simulated/floor/tiled,
|
/turf/simulated/floor/tiled,
|
||||||
/area/quartermaster/office)
|
/area/quartermaster/office)
|
||||||
|
<<<<<<< HEAD
|
||||||
"wbd" = (
|
"wbd" = (
|
||||||
/turf/simulated/wall/rshull,
|
/turf/simulated/wall/rshull,
|
||||||
/area/shuttle/securiship/engines)
|
/area/shuttle/securiship/engines)
|
||||||
|
=======
|
||||||
|
"vZG" = (
|
||||||
|
/obj/machinery/airlock_sensor{
|
||||||
|
pixel_x = -28;
|
||||||
|
pixel_y = -28
|
||||||
|
},
|
||||||
|
/obj/effect/floor_decal/fancy_shuttle{
|
||||||
|
fancy_shuttle_tag = "secbus";
|
||||||
|
name = "secbus"
|
||||||
|
},
|
||||||
|
/obj/effect/map_helper/airlock/sensor/int_sensor,
|
||||||
|
/turf/simulated/floor/tiled,
|
||||||
|
/area/shuttle/securiship/general)
|
||||||
|
"waj" = (
|
||||||
|
/obj/machinery/atmospherics/pipe/simple/hidden{
|
||||||
|
dir = 9
|
||||||
|
},
|
||||||
|
/obj/machinery/atmospherics/pipe/simple/hidden/fuel{
|
||||||
|
dir = 10
|
||||||
|
},
|
||||||
|
/turf/simulated/wall/fancy_shuttle{
|
||||||
|
fancy_shuttle_tag = "medbus"
|
||||||
|
},
|
||||||
|
/area/shuttle/medivac/engines)
|
||||||
|
>>>>>>> 4ccd512332... Merge pull request #12923 from KillianKirilenko/kk-shipfixes
|
||||||
"wbf" = (
|
"wbf" = (
|
||||||
/obj/effect/floor_decal/steeldecal/steel_decals7{
|
/obj/effect/floor_decal/steeldecal/steel_decals7{
|
||||||
dir = 4
|
dir = 4
|
||||||
@@ -36380,6 +36618,26 @@
|
|||||||
},
|
},
|
||||||
/turf/simulated/floor/tiled,
|
/turf/simulated/floor/tiled,
|
||||||
/area/quartermaster/belterdock/gear)
|
/area/quartermaster/belterdock/gear)
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
"weP" = (
|
||||||
|
/obj/machinery/atmospherics/pipe/simple/hidden,
|
||||||
|
/obj/structure/cable{
|
||||||
|
icon_state = "1-2"
|
||||||
|
},
|
||||||
|
/obj/structure/cable/green{
|
||||||
|
icon_state = "1-4"
|
||||||
|
},
|
||||||
|
/obj/effect/floor_decal/fancy_shuttle{
|
||||||
|
fancy_shuttle_tag = "medbus";
|
||||||
|
name = "medbus"
|
||||||
|
},
|
||||||
|
/obj/machinery/atmospherics/binary/pump/fuel{
|
||||||
|
dir = 4
|
||||||
|
},
|
||||||
|
/turf/simulated/floor/tiled,
|
||||||
|
/area/shuttle/medivac/engines)
|
||||||
|
>>>>>>> 4ccd512332... Merge pull request #12923 from KillianKirilenko/kk-shipfixes
|
||||||
"whg" = (
|
"whg" = (
|
||||||
/obj/effect/floor_decal/industrial/warning,
|
/obj/effect/floor_decal/industrial/warning,
|
||||||
/obj/machinery/hologram/holopad,
|
/obj/machinery/hologram/holopad,
|
||||||
@@ -36555,6 +36813,17 @@
|
|||||||
},
|
},
|
||||||
/turf/simulated/floor/tiled,
|
/turf/simulated/floor/tiled,
|
||||||
/area/tether/station/dock_two)
|
/area/tether/station/dock_two)
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
"wwJ" = (
|
||||||
|
/obj/machinery/atmospherics/pipe/manifold/hidden/fuel{
|
||||||
|
dir = 1
|
||||||
|
},
|
||||||
|
/turf/simulated/wall/fancy_shuttle{
|
||||||
|
fancy_shuttle_tag = "secbus"
|
||||||
|
},
|
||||||
|
/area/shuttle/securiship/engines)
|
||||||
|
>>>>>>> 4ccd512332... Merge pull request #12923 from KillianKirilenko/kk-shipfixes
|
||||||
"wwR" = (
|
"wwR" = (
|
||||||
/obj/structure/cable/green{
|
/obj/structure/cable/green{
|
||||||
d1 = 1;
|
d1 = 1;
|
||||||
@@ -37581,6 +37850,35 @@
|
|||||||
},
|
},
|
||||||
/turf/simulated/floor/tiled,
|
/turf/simulated/floor/tiled,
|
||||||
/area/hallway/station/docks)
|
/area/hallway/station/docks)
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
"xMQ" = (
|
||||||
|
/obj/structure/cable/green{
|
||||||
|
icon_state = "1-8"
|
||||||
|
},
|
||||||
|
/obj/structure/cable{
|
||||||
|
d1 = 1;
|
||||||
|
d2 = 8;
|
||||||
|
icon_state = "1-8"
|
||||||
|
},
|
||||||
|
/obj/structure/cable{
|
||||||
|
d1 = 4;
|
||||||
|
d2 = 8;
|
||||||
|
icon_state = "4-8"
|
||||||
|
},
|
||||||
|
/obj/machinery/atmospherics/pipe/simple/hidden{
|
||||||
|
dir = 9
|
||||||
|
},
|
||||||
|
/obj/effect/floor_decal/fancy_shuttle{
|
||||||
|
fancy_shuttle_tag = "secbus";
|
||||||
|
name = "secbus"
|
||||||
|
},
|
||||||
|
/obj/machinery/atmospherics/pipe/manifold/hidden/fuel{
|
||||||
|
dir = 1
|
||||||
|
},
|
||||||
|
/turf/simulated/floor/tiled,
|
||||||
|
/area/shuttle/securiship/engines)
|
||||||
|
>>>>>>> 4ccd512332... Merge pull request #12923 from KillianKirilenko/kk-shipfixes
|
||||||
"xMZ" = (
|
"xMZ" = (
|
||||||
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
|
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
|
||||||
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
|
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
|
||||||
@@ -37823,6 +38121,28 @@
|
|||||||
},
|
},
|
||||||
/turf/simulated/floor/tiled,
|
/turf/simulated/floor/tiled,
|
||||||
/area/quartermaster/belterdock/surface_mining_outpost_shuttle_hangar)
|
/area/quartermaster/belterdock/surface_mining_outpost_shuttle_hangar)
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
"xZE" = (
|
||||||
|
/obj/structure/cable{
|
||||||
|
icon_state = "0-8"
|
||||||
|
},
|
||||||
|
/obj/machinery/power/apc{
|
||||||
|
dir = 1;
|
||||||
|
name = "north bump";
|
||||||
|
nightshift_setting = 2;
|
||||||
|
pixel_y = 28
|
||||||
|
},
|
||||||
|
/obj/effect/floor_decal/fancy_shuttle{
|
||||||
|
fancy_shuttle_tag = "secbus";
|
||||||
|
name = "secbus"
|
||||||
|
},
|
||||||
|
/obj/machinery/atmospherics/pipe/simple/hidden/fuel{
|
||||||
|
dir = 10
|
||||||
|
},
|
||||||
|
/turf/simulated/floor/tiled,
|
||||||
|
/area/shuttle/securiship/engines)
|
||||||
|
>>>>>>> 4ccd512332... Merge pull request #12923 from KillianKirilenko/kk-shipfixes
|
||||||
"xZW" = (
|
"xZW" = (
|
||||||
/obj/structure/disposalpipe/segment{
|
/obj/structure/disposalpipe/segment{
|
||||||
dir = 4
|
dir = 4
|
||||||
@@ -37885,6 +38205,33 @@
|
|||||||
},
|
},
|
||||||
/turf/simulated/floor/tiled,
|
/turf/simulated/floor/tiled,
|
||||||
/area/tether/station/dock_two)
|
/area/tether/station/dock_two)
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
"ybT" = (
|
||||||
|
/obj/machinery/door/airlock/glass_external,
|
||||||
|
/obj/effect/map_helper/airlock/door/int_door,
|
||||||
|
/obj/effect/floor_decal/fancy_shuttle{
|
||||||
|
fancy_shuttle_tag = "secbus";
|
||||||
|
name = "secbus"
|
||||||
|
},
|
||||||
|
/turf/simulated/floor/tiled,
|
||||||
|
/area/shuttle/securiship/general)
|
||||||
|
"ydq" = (
|
||||||
|
/obj/structure/cable{
|
||||||
|
icon_state = "1-8"
|
||||||
|
},
|
||||||
|
/obj/machinery/light,
|
||||||
|
/obj/machinery/atmospherics/pipe/simple/hidden{
|
||||||
|
dir = 9
|
||||||
|
},
|
||||||
|
/obj/effect/floor_decal/fancy_shuttle{
|
||||||
|
fancy_shuttle_tag = "secbus";
|
||||||
|
name = "secbus"
|
||||||
|
},
|
||||||
|
/obj/machinery/atmospherics/binary/pump/fuel,
|
||||||
|
/turf/simulated/floor/tiled,
|
||||||
|
/area/shuttle/securiship/engines)
|
||||||
|
>>>>>>> 4ccd512332... Merge pull request #12923 from KillianKirilenko/kk-shipfixes
|
||||||
"ydT" = (
|
"ydT" = (
|
||||||
/obj/machinery/access_button{
|
/obj/machinery/access_button{
|
||||||
command = "cycle_interior";
|
command = "cycle_interior";
|
||||||
@@ -55352,6 +55699,7 @@ aaa
|
|||||||
aaa
|
aaa
|
||||||
aaa
|
aaa
|
||||||
<<<<<<< HEAD
|
<<<<<<< HEAD
|
||||||
|
<<<<<<< HEAD
|
||||||
aaa
|
aaa
|
||||||
aaa
|
aaa
|
||||||
aaa
|
aaa
|
||||||
@@ -55375,6 +55723,9 @@ aaa
|
|||||||
aaa
|
aaa
|
||||||
=======
|
=======
|
||||||
hsf
|
hsf
|
||||||
|
=======
|
||||||
|
osM
|
||||||
|
>>>>>>> 4ccd512332... Merge pull request #12923 from KillianKirilenko/kk-shipfixes
|
||||||
osM
|
osM
|
||||||
scB
|
scB
|
||||||
sJw
|
sJw
|
||||||
@@ -56251,6 +56602,7 @@ aaa
|
|||||||
aaa
|
aaa
|
||||||
aaa
|
aaa
|
||||||
aaa
|
aaa
|
||||||
|
<<<<<<< HEAD
|
||||||
aaa
|
aaa
|
||||||
aaa
|
aaa
|
||||||
aaa
|
aaa
|
||||||
@@ -56262,6 +56614,16 @@ aaa
|
|||||||
aaa
|
aaa
|
||||||
aaa
|
aaa
|
||||||
aaa
|
aaa
|
||||||
|
=======
|
||||||
|
hsf
|
||||||
|
tqu
|
||||||
|
mRq
|
||||||
|
psE
|
||||||
|
psE
|
||||||
|
psE
|
||||||
|
psE
|
||||||
|
kKY
|
||||||
|
>>>>>>> 4ccd512332... Merge pull request #12923 from KillianKirilenko/kk-shipfixes
|
||||||
aaa
|
aaa
|
||||||
aaa
|
aaa
|
||||||
aaa
|
aaa
|
||||||
|
|||||||
@@ -1129,6 +1129,10 @@ const SettingsTab = (props, context) => {
|
|||||||
: "Ringer off."
|
: "Ringer off."
|
||||||
}
|
}
|
||||||
onClick={() => act("toggle_ringer")} />
|
onClick={() => act("toggle_ringer")} />
|
||||||
|
<Button
|
||||||
|
fluid
|
||||||
|
content="Set Ringer Tone"
|
||||||
|
onClick={() => act("set_ringer_tone")} />
|
||||||
</LabeledList.Item>
|
</LabeledList.Item>
|
||||||
</LabeledList>
|
</LabeledList>
|
||||||
</Section>
|
</Section>
|
||||||
|
|||||||
@@ -63,6 +63,10 @@ const ActiveConversation = (props, context) => {
|
|||||||
}
|
}
|
||||||
height="450px"
|
height="450px"
|
||||||
stretchContents>
|
stretchContents>
|
||||||
|
<Button
|
||||||
|
icon="comment"
|
||||||
|
onClick={() => act("Message", { "target": active_conversation })}
|
||||||
|
content="Reply" />
|
||||||
<Section style={{
|
<Section style={{
|
||||||
"height": "97%",
|
"height": "97%",
|
||||||
"overflow-y": "auto",
|
"overflow-y": "auto",
|
||||||
|
|||||||
@@ -1223,6 +1223,7 @@
|
|||||||
#include "code\game\objects\items\poi_items.dm"
|
#include "code\game\objects\items\poi_items.dm"
|
||||||
#include "code\game\objects\items\robobag.dm"
|
#include "code\game\objects\items\robobag.dm"
|
||||||
#include "code\game\objects\items\sahoc_ch.dm"
|
#include "code\game\objects\items\sahoc_ch.dm"
|
||||||
|
#include "code\game\objects\items\selectable_item_vr.dm"
|
||||||
#include "code\game\objects\items\shooting_range.dm"
|
#include "code\game\objects\items\shooting_range.dm"
|
||||||
#include "code\game\objects\items\surplus_voucher_ch.dm"
|
#include "code\game\objects\items\surplus_voucher_ch.dm"
|
||||||
#include "code\game\objects\items\tailoring.dm"
|
#include "code\game\objects\items\tailoring.dm"
|
||||||
@@ -4301,6 +4302,7 @@
|
|||||||
#include "code\modules\vore\eating\slipvore_vr.dm"
|
#include "code\modules\vore\eating\slipvore_vr.dm"
|
||||||
#include "code\modules\vore\eating\stumblevore_vr.dm"
|
#include "code\modules\vore\eating\stumblevore_vr.dm"
|
||||||
#include "code\modules\vore\eating\transforming_vr.dm"
|
#include "code\modules\vore\eating\transforming_vr.dm"
|
||||||
|
#include "code\modules\vore\eating\vertical_nom_vr.dm"
|
||||||
#include "code\modules\vore\eating\vore_vr.dm"
|
#include "code\modules\vore\eating\vore_vr.dm"
|
||||||
#include "code\modules\vore\eating\vorehooks_vr.dm"
|
#include "code\modules\vore\eating\vorehooks_vr.dm"
|
||||||
#include "code\modules\vore\eating\vorepanel_ch.dm"
|
#include "code\modules\vore\eating\vorepanel_ch.dm"
|
||||||
|
|||||||