mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-20 11:31:12 +01:00
Merge branch 'master' into final_away_maps_additions
# Conflicts: # code/__defines/misc.dm # code/modules/client/preference_setup/loadout/loadout_xeno/tajara.dm # icons/mob/head.dmi # maps/exodus/code/exodus.dm
This commit is contained in:
@@ -290,11 +290,12 @@
|
||||
send_link(usr, selected_report.public_topic)
|
||||
|
||||
//Ask them if there was antag involvement
|
||||
var/a = input(user, "Were your actions influenced by antagonists?", "Antagonist involvement") in list("yes","no")
|
||||
var/a = input(user, "Were your actions influenced by antagonists or OOC issues/concerns ?", "Antagonist involvement / OOC Issue") in list("yes","no")
|
||||
if(a == "yes")
|
||||
antag_involvement = TRUE
|
||||
antag_involvement_text = sanitizeSafe(input("Describe how your actions were influenced by the antagonists.", "Antag involvement") as message|null)
|
||||
message_cciaa("CCIA Interview: [user] claimed their actions were influenced by antagonists.", R_CCIAA)
|
||||
antag_involvement_text = sanitizeSafe(input("Describe how your actions were influenced by the antagonists or OOC issues/concerns.", "Antag involvement / OOC Issue") as message|null)
|
||||
message_cciaa("CCIA Interview: [user] claimed their actions were influenced by antagonists or OOC issues.", R_CCIAA)
|
||||
message_cciaa("CCIA Interview: [antag_involvement_text]")
|
||||
else
|
||||
antag_involvement = FALSE
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
var/adminobs = null
|
||||
var/area = null
|
||||
var/time_died_as_rat = 0
|
||||
var/list/autofire_aiming_at[2]
|
||||
|
||||
var/adminhelped = NOT_ADMINHELPED
|
||||
|
||||
|
||||
@@ -771,6 +771,9 @@ var/list/localhost_addresses = list(
|
||||
. = ..()
|
||||
|
||||
if(over_object)
|
||||
if(autofire_aiming_at[1])
|
||||
autofire_aiming_at[1] = over_object
|
||||
autofire_aiming_at[2] = params
|
||||
var/mob/living/M = mob
|
||||
if(istype(get_turf(over_object), /atom))
|
||||
var/atom/A = get_turf(over_object)
|
||||
@@ -780,15 +783,35 @@ var/list/localhost_addresses = list(
|
||||
|
||||
if(istype(M) && !M.incapacitated())
|
||||
var/obj/item/I = M.get_active_hand()
|
||||
if(istype(I, /obj/item/gun))
|
||||
var/obj/item/gun/gun = I
|
||||
if(gun.can_autofire())
|
||||
M.set_dir(get_dir(M, over_object))
|
||||
gun.Fire(get_turf(over_object), M, params, (get_dist(over_object, M) <= 1), FALSE)
|
||||
|
||||
if(istype(I, /obj/item/rfd/mining) && isturf(over_object))
|
||||
var/proximity = M.Adjacent(over_object)
|
||||
var/obj/item/rfd/mining/RFDM = I
|
||||
RFDM.afterattack(over_object, M, proximity, params, FALSE)
|
||||
|
||||
CHECK_TICK
|
||||
|
||||
/client/MouseDown(object, location, control, params)
|
||||
var/obj/item/I = mob.get_active_hand()
|
||||
var/obj/O = object
|
||||
if(istype(I, /obj/item/gun))
|
||||
var/obj/item/gun/G = I
|
||||
if(G.can_autofire(object, location, params) && O.is_auto_clickable())
|
||||
autofire_aiming_at[1] = object
|
||||
autofire_aiming_at[2] = params
|
||||
while(autofire_aiming_at[1])
|
||||
G.Fire(autofire_aiming_at[1], mob, autofire_aiming_at[2], (get_dist(mob, location) <= 1), FALSE)
|
||||
mob.set_dir(get_dir(mob, autofire_aiming_at[1]))
|
||||
sleep(G.fire_delay)
|
||||
CHECK_TICK
|
||||
|
||||
/client/MouseUp(object, location, control, params)
|
||||
autofire_aiming_at[1] = null
|
||||
|
||||
/atom/proc/is_auto_clickable()
|
||||
return TRUE
|
||||
|
||||
/obj/screen/is_auto_clickable()
|
||||
return FALSE
|
||||
|
||||
/obj/screen/click_catcher/is_auto_clickable()
|
||||
return TRUE
|
||||
@@ -32,6 +32,7 @@
|
||||
display_name = "synthetic vocal cords"
|
||||
description = "Vocal cords of synthetic nature packed into an augment kit. This allows users who are mute due to structural damage of the throat to speak."
|
||||
path = /obj/item/organ/internal/augment/synthetic_cords
|
||||
whitelisted = list(SPECIES_HUMAN, SPECIES_HUMAN_OFFWORLD, SPECIES_TAJARA, SPECIES_TAJARA_ZHAN, SPECIES_TAJARA_MSAI, SPECIES_SKRELL, SPECIES_SKRELL_AXIORI, SPECIES_IPC, SPECIES_IPC_G1, SPECIES_IPC_G2, SPECIES_IPC_XION, SPECIES_IPC_ZENGHU, SPECIES_IPC_BISHOP, SPECIES_IPC_SHELL, SPECIES_VAURCA_WORKER, SPECIES_VAURCA_WARRIOR, SPECIES_VAURCA_BULWARK, SPECIES_VAURCA_BREEDER, SPECIES_UNATHI)
|
||||
cost = 1
|
||||
|
||||
/datum/gear/augment/combitool
|
||||
@@ -64,6 +65,7 @@
|
||||
display_name = "cochlear implant"
|
||||
description = "A synthetic replacement for the structures within the ear, allowing the user to hear without requiring external tools."
|
||||
path = /obj/item/organ/internal/augment/cochlear
|
||||
whitelisted = list(SPECIES_HUMAN, SPECIES_HUMAN_OFFWORLD, SPECIES_TAJARA, SPECIES_TAJARA_ZHAN, SPECIES_TAJARA_MSAI, SPECIES_SKRELL, SPECIES_SKRELL_AXIORI, SPECIES_IPC, SPECIES_IPC_G1, SPECIES_IPC_G2, SPECIES_IPC_XION, SPECIES_IPC_ZENGHU, SPECIES_IPC_BISHOP, SPECIES_IPC_SHELL, SPECIES_VAURCA_WORKER, SPECIES_VAURCA_WARRIOR, SPECIES_VAURCA_BULWARK, SPECIES_VAURCA_BREEDER, SPECIES_UNATHI)
|
||||
cost = 3
|
||||
|
||||
/datum/gear/augment/health_scanner
|
||||
@@ -82,6 +84,7 @@
|
||||
display_name = "taste booster selection"
|
||||
description = "A selection of augments that modify the user's taste sensitivity."
|
||||
path = /obj/item/organ/internal/augment/taste_booster
|
||||
whitelisted = list(SPECIES_HUMAN, SPECIES_HUMAN_OFFWORLD, SPECIES_TAJARA, SPECIES_TAJARA_ZHAN, SPECIES_TAJARA_MSAI, SPECIES_SKRELL, SPECIES_SKRELL_AXIORI, SPECIES_IPC, SPECIES_IPC_G1, SPECIES_IPC_G2, SPECIES_IPC_XION, SPECIES_IPC_ZENGHU, SPECIES_IPC_BISHOP, SPECIES_IPC_SHELL, SPECIES_VAURCA_WORKER, SPECIES_VAURCA_WARRIOR, SPECIES_VAURCA_BULWARK, SPECIES_VAURCA_BREEDER, SPECIES_UNATHI)
|
||||
|
||||
/datum/gear/augment/taste_boosters/New()
|
||||
..()
|
||||
@@ -156,21 +159,25 @@
|
||||
description = "A fluff based augmentation that can be renamed/redescribed to appear as something else for RP purposes."
|
||||
path = /obj/item/organ/internal/augment/head_fluff
|
||||
flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION
|
||||
whitelisted = list(SPECIES_HUMAN, SPECIES_HUMAN_OFFWORLD, SPECIES_TAJARA, SPECIES_TAJARA_ZHAN, SPECIES_TAJARA_MSAI, SPECIES_SKRELL, SPECIES_SKRELL_AXIORI, SPECIES_IPC, SPECIES_IPC_G1, SPECIES_IPC_G2, SPECIES_IPC_XION, SPECIES_IPC_ZENGHU, SPECIES_IPC_BISHOP, SPECIES_IPC_SHELL, SPECIES_VAURCA_WORKER, SPECIES_VAURCA_WARRIOR, SPECIES_VAURCA_BULWARK, SPECIES_VAURCA_BREEDER, SPECIES_UNATHI)
|
||||
|
||||
/datum/gear/augment/chest_fluff
|
||||
display_name = "Custom chest augmentation"
|
||||
description = "A fluff based augmentation that can be renamed/redescribed to appear as something else for RP purposes."
|
||||
path = /obj/item/organ/internal/augment/head_fluff/chest_fluff
|
||||
flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION
|
||||
whitelisted = list(SPECIES_HUMAN, SPECIES_HUMAN_OFFWORLD, SPECIES_TAJARA, SPECIES_TAJARA_ZHAN, SPECIES_TAJARA_MSAI, SPECIES_SKRELL, SPECIES_SKRELL_AXIORI, SPECIES_IPC, SPECIES_IPC_G1, SPECIES_IPC_G2, SPECIES_IPC_XION, SPECIES_IPC_ZENGHU, SPECIES_IPC_BISHOP, SPECIES_IPC_SHELL, SPECIES_VAURCA_WORKER, SPECIES_VAURCA_WARRIOR, SPECIES_VAURCA_BULWARK, SPECIES_VAURCA_BREEDER, SPECIES_UNATHI)
|
||||
|
||||
/datum/gear/augment/rhand_fluff
|
||||
display_name = "Custom right hand augmentation"
|
||||
description = "A fluff based augmentation that can be renamed/redescribed to appear as something else for RP purposes."
|
||||
path = /obj/item/organ/internal/augment/head_fluff/rhand_fluff
|
||||
flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION
|
||||
whitelisted = list(SPECIES_HUMAN, SPECIES_HUMAN_OFFWORLD, SPECIES_TAJARA, SPECIES_TAJARA_ZHAN, SPECIES_TAJARA_MSAI, SPECIES_SKRELL, SPECIES_SKRELL_AXIORI, SPECIES_IPC, SPECIES_IPC_G1, SPECIES_IPC_G2, SPECIES_IPC_XION, SPECIES_IPC_ZENGHU, SPECIES_IPC_BISHOP, SPECIES_IPC_SHELL, SPECIES_VAURCA_WORKER, SPECIES_VAURCA_WARRIOR, SPECIES_VAURCA_BULWARK, SPECIES_VAURCA_BREEDER, SPECIES_UNATHI)
|
||||
|
||||
/datum/gear/augment/lhand_fluff
|
||||
display_name = "Custom left hand augmentation"
|
||||
description = "A fluff based augmentation that can be renamed/redescribed to appear as something else for RP purposes."
|
||||
path = /obj/item/organ/internal/augment/head_fluff/lhand_fluff
|
||||
flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION
|
||||
whitelisted = list(SPECIES_HUMAN, SPECIES_HUMAN_OFFWORLD, SPECIES_TAJARA, SPECIES_TAJARA_ZHAN, SPECIES_TAJARA_MSAI, SPECIES_SKRELL, SPECIES_SKRELL_AXIORI, SPECIES_IPC, SPECIES_IPC_G1, SPECIES_IPC_G2, SPECIES_IPC_XION, SPECIES_IPC_ZENGHU, SPECIES_IPC_BISHOP, SPECIES_IPC_SHELL, SPECIES_VAURCA_WORKER, SPECIES_VAURCA_WARRIOR, SPECIES_VAURCA_BULWARK, SPECIES_VAURCA_BREEDER, SPECIES_UNATHI)
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
coat["tajaran naval coat"] = /obj/item/clothing/suit/storage/toggle/tajaran
|
||||
coat["gruff cloak"] = /obj/item/clothing/suit/storage/hooded/tajaran
|
||||
coat["adhomian wool coat"] = /obj/item/clothing/suit/storage/toggle/tajaran/wool
|
||||
coat["Raakti Shariim coat"] = /obj/item/clothing/suit/storage/toggle/tajaran/raakti_shariim
|
||||
coat["raakti shariim coat"] = /obj/item/clothing/suit/storage/toggle/tajaran/raakti_shariim
|
||||
gear_tweaks += new /datum/gear_tweak/path(coat)
|
||||
|
||||
/datum/gear/suit/tajara_cloak
|
||||
@@ -86,7 +86,7 @@
|
||||
robes["sun priest robe"] = /obj/item/clothing/suit/storage/hooded/tajaran/priest
|
||||
robes["sun sister robe"] = /obj/item/clothing/suit/storage/tajaran/messa
|
||||
robes["matake priest mantle"] = /obj/item/clothing/suit/storage/tajaran/matake
|
||||
robes["Azubarre priest robes"] = /obj/item/clothing/suit/storage/tajaran/azubarre
|
||||
robes["azubarre priest robes"] = /obj/item/clothing/suit/storage/tajaran/azubarre
|
||||
gear_tweaks += new /datum/gear_tweak/path(robes)
|
||||
|
||||
/datum/gear/suit/tajaran_labcoat
|
||||
@@ -100,7 +100,7 @@
|
||||
display_name = "adhomian surgeon garb"
|
||||
path = /obj/item/clothing/suit/storage/hooded/tajaran/surgery
|
||||
whitelisted = list(SPECIES_TAJARA, SPECIES_TAJARA_ZHAN, SPECIES_TAJARA_MSAI)
|
||||
allowed_roles = list("Chief Medical Officer", "Physician", "Surgeon", "Xenobiologist")
|
||||
allowed_roles = list("Chief Medical Officer", "Physician", "Surgeon", "Xenobiologist", "Roboticist")
|
||||
sort_category = "Xenowear - Tajara"
|
||||
|
||||
/datum/gear/uniform/tajara
|
||||
@@ -115,12 +115,12 @@
|
||||
var/list/uniform = list()
|
||||
uniform["laborers clothes"] = /obj/item/clothing/under/tajaran
|
||||
uniform["fancy uniform"] = /obj/item/clothing/under/tajaran/fancy
|
||||
uniform["NanoTrasen overalls"] = /obj/item/clothing/under/tajaran/nt
|
||||
uniform["nanotrasen overalls"] = /obj/item/clothing/under/tajaran/nt
|
||||
uniform["matake priest garments"] = /obj/item/clothing/under/tajaran/matake
|
||||
uniform["adhomian summerwear"] = /obj/item/clothing/under/tajaran/summer
|
||||
uniform["adhomian summer pants"] = /obj/item/clothing/under/pants/tajaran
|
||||
uniform["machinist uniform"] = /obj/item/clothing/under/tajaran/mechanic
|
||||
uniform["Raakti Shariim uniform"] = /obj/item/clothing/under/tajaran/raakti_shariim
|
||||
uniform["raakti shariim uniform"] = /obj/item/clothing/under/tajaran/raakti_shariim
|
||||
gear_tweaks += new /datum/gear_tweak/path(uniform)
|
||||
|
||||
/datum/gear/uniform/tajara_dress
|
||||
@@ -197,6 +197,11 @@
|
||||
circlet["fur hat"] = /obj/item/clothing/head/tajaran/fur
|
||||
circlet["matake priest hat"] = /obj/item/clothing/head/tajaran/matake
|
||||
circlet["raakti shariim beret"] = /obj/item/clothing/head/beret/tajaran/raakti_shariim
|
||||
circlet["hadiist army beret"] = /obj/item/clothing/head/beret/tajaran/pra
|
||||
circlet["liberation army beret"] = /obj/item/clothing/head/beret/tajaran/dpra
|
||||
circlet["liberation army beret, alternative"] = /obj/item/clothing/head/beret/tajaran/dpra/alt
|
||||
circlet["new kingdom naval beret"] = /obj/item/clothing/head/beret/tajaran/nka
|
||||
circlet["new kingdom naval officer beret"] = /obj/item/clothing/head/beret/tajaran/nka/officer
|
||||
gear_tweaks += new /datum/gear_tweak/path(circlet)
|
||||
|
||||
/datum/gear/accessory/tajara_wrap
|
||||
@@ -252,7 +257,7 @@
|
||||
sort_category = "Xenowear - Tajara"
|
||||
|
||||
/datum/gear/accessory/tajaran_card
|
||||
display_name = "tajaran cards, badges and pins selection"
|
||||
display_name = "tajaran faction cards, badges and pins selection"
|
||||
description = "A selection of Tajaran related cards, badges and pins."
|
||||
path = /obj/item/clothing/accessory/badge/hadii_card
|
||||
sort_category = "Xenowear - Tajara"
|
||||
@@ -329,7 +334,7 @@
|
||||
path = /obj/item/voidsuit_modkit/himeo/tajara
|
||||
sort_category = "Xenowear - Tajara"
|
||||
whitelisted = list(SPECIES_TAJARA, SPECIES_TAJARA_ZHAN, SPECIES_TAJARA_MSAI)
|
||||
allowed_roles = list("Shaft Miner", "Operations Manager", "Engineer", "Atmospheric Technician", "Chief Engineer", "Engineering Apprentice")
|
||||
allowed_roles = list("Cargo Technician", "Shaft Miner", "Quartermaster", "Head of Personnel", "Station Engineer", "Atmospheric Technician", "Chief Engineer", "Engineering Apprentice")
|
||||
|
||||
/datum/gear/tajaran_tarot
|
||||
display_name = "adhomian divination cards deck"
|
||||
@@ -358,3 +363,36 @@
|
||||
charm["tajani charm"] = /obj/item/clothing/accessory/tajaran/charm/tajani
|
||||
charm["holy sun rosette"] = /obj/item/clothing/accessory/tajaran/srendarr
|
||||
gear_tweaks += new /datum/gear_tweak/path(charm)
|
||||
|
||||
/datum/gear/accessory/dpra_party_pin
|
||||
display_name = "democratic peoples republic party pins selection"
|
||||
description = "A selection of DPRA party pins."
|
||||
path = /obj/item/clothing/accessory/tajaran/nawparty_pin
|
||||
sort_category = "Xenowear - Tajara"
|
||||
whitelisted = list(SPECIES_TAJARA, SPECIES_TAJARA_ZHAN, SPECIES_TAJARA_MSAI)
|
||||
flags = GEAR_HAS_DESC_SELECTION
|
||||
|
||||
/datum/gear/accessory/dpra_party_pin/New()
|
||||
..()
|
||||
var/list/card = list()
|
||||
card["national adhomai workers party pin"] = /obj/item/clothing/accessory/tajaran/nawparty_pin
|
||||
card["free tajaran people party pin"] = /obj/item/clothing/accessory/tajaran/ftpparty_pin
|
||||
card["followers of Nated party pin"] = /obj/item/clothing/accessory/tajaran/fonparty_pin
|
||||
card["adhomian blue party pin"] = /obj/item/clothing/accessory/tajaran/abparty_pin
|
||||
card["amohdan free lodge party pin"] = /obj/item/clothing/accessory/tajaran/aflparty_pin
|
||||
gear_tweaks += new /datum/gear_tweak/path(card)
|
||||
|
||||
/datum/gear/accessory/tajaran_gen_accessorry
|
||||
display_name = "tajaran accessories selection"
|
||||
description = "A selection of tajaran related accessories."
|
||||
path = /obj/item/clothing/accessory/tajaran/zbrojny_badge
|
||||
sort_category = "Xenowear - Tajara"
|
||||
whitelisted = list(SPECIES_TAJARA, SPECIES_TAJARA_ZHAN, SPECIES_TAJARA_MSAI)
|
||||
flags = GEAR_HAS_DESC_SELECTION
|
||||
|
||||
/datum/gear/accessory/tajaran_gen_accessorry/New()
|
||||
..()
|
||||
var/list/card = list()
|
||||
card["zbrojny badge"] = /obj/item/clothing/accessory/tajaran/zbrojny_badge
|
||||
card["golden sun pin"] = /obj/item/clothing/accessory/tajaran/tanker_pin
|
||||
gear_tweaks += new /datum/gear_tweak/path(card)
|
||||
@@ -31,11 +31,11 @@
|
||||
|
||||
return copy //for inheritance
|
||||
|
||||
/proc/generate_chameleon_choices(var/basetype, var/blacklist=list())
|
||||
/proc/generate_chameleon_choices(var/basetype, var/blacklist=list(), var/list/whitelist=list())
|
||||
. = list()
|
||||
|
||||
var/i = 1 //in case there is a collision with both name AND icon_state
|
||||
for(var/typepath in typesof(basetype) - blacklist)
|
||||
for(var/typepath in (whitelist + typesof(basetype) - blacklist))
|
||||
var/obj/O = typepath
|
||||
if(initial(O.icon) && initial(O.icon_state))
|
||||
var/name = initial(O.name)
|
||||
|
||||
@@ -802,6 +802,8 @@
|
||||
var/silent = 0
|
||||
var/last_trip = 0
|
||||
|
||||
var/footstep_sound_override
|
||||
|
||||
/obj/item/clothing/shoes/proc/draw_knife()
|
||||
set name = "Draw Boot Knife"
|
||||
set desc = "Pull out your boot knife."
|
||||
@@ -910,6 +912,18 @@
|
||||
. = ..()
|
||||
track_footprint = 0
|
||||
|
||||
/obj/item/clothing/shoes/proc/do_special_footsteps(var/running)
|
||||
if(!footstep_sound_override)
|
||||
return FALSE
|
||||
if(ishuman(loc))
|
||||
var/mob/living/carbon/human/wearer = loc
|
||||
if(running)
|
||||
playsound(wearer, footstep_sound_override, 70, 1, required_asfx_toggles = ASFX_FOOTSTEPS)
|
||||
else
|
||||
footstep++
|
||||
if (footstep % 2)
|
||||
playsound(wearer, footstep_sound_override, 40, 1, required_asfx_toggles = ASFX_FOOTSTEPS)
|
||||
return TRUE
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
//Suit
|
||||
/obj/item/clothing/suit
|
||||
|
||||
@@ -53,31 +53,41 @@
|
||||
icon_state = "raskara_mask"
|
||||
item_state = "raskara_mask"
|
||||
|
||||
/obj/item/clothing/head/beret/tajaran/pra
|
||||
name = "republican army beret"
|
||||
desc = "A green beret issued to republican soldiers."
|
||||
/obj/item/clothing/head/beret/tajaran
|
||||
icon = 'icons/obj/tajara_items.dmi'
|
||||
contained_sprite = TRUE
|
||||
|
||||
/obj/item/clothing/head/beret/tajaran/pra
|
||||
name = "hadiist army beret"
|
||||
desc = "A green beret issued to hadiist soldiers."
|
||||
icon_state = "praberet"
|
||||
item_state = "praberet"
|
||||
contained_sprite = TRUE
|
||||
|
||||
/obj/item/clothing/head/beret/tajaran/dpra
|
||||
name = "liberation army beret"
|
||||
desc = "A beret issued to liberation army soldiers."
|
||||
icon = 'icons/obj/tajara_items.dmi'
|
||||
icon_state = "alaberet"
|
||||
item_state = "alaberet"
|
||||
contained_sprite = TRUE
|
||||
|
||||
/obj/item/clothing/head/beret/tajaran/dpra/alt
|
||||
icon_state = "alaberetalt"
|
||||
item_state = "alaberetalt"
|
||||
|
||||
/obj/item/clothing/head/beret/tajaran/nka
|
||||
name = "new kingdom naval beret"
|
||||
desc = "A formal black beret with a blue band. This is worn by NKA naval servicemen and crewmen such as the Imperial Marines."
|
||||
icon_state = "navalberetblue"
|
||||
item_state = "navalberetblue"
|
||||
|
||||
/obj/item/clothing/head/beret/tajaran/nka/officer
|
||||
name = "new kingdom naval officer beret"
|
||||
desc = "A formal black beret with a golden band. This is worn by members of the NKA naval officer corps. These are prized in the New Kingdom thanks to the Navy's popularity."
|
||||
icon_state = "navalberetofficer"
|
||||
item_state = "navalberetofficer"
|
||||
|
||||
/obj/item/clothing/head/beret/tajaran/raakti_shariim
|
||||
name = "\improper Raakti Shariim beret"
|
||||
desc = "A blue beret with a pale-gold twin-suns insignia, signifying a Constable of the NKA's Raakti Shariim."
|
||||
icon = 'icons/obj/tajara_items.dmi'
|
||||
contained_sprite = TRUE
|
||||
icon_state = "raakti_shariim_beret"
|
||||
item_state = "raakti_shariim_beret"
|
||||
desc_fluff = "The Raakti Shariim (Royal Peacekeepers in Ceti Basic) are the New Kingdom of Adhomai's policing and \
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
species_restricted = null
|
||||
gender = PLURAL
|
||||
icon_base = null
|
||||
footstep_sound_override = 'sound/machines/rig/rigstep.ogg'
|
||||
|
||||
/obj/item/clothing/suit/space/rig
|
||||
name = "chestpiece"
|
||||
|
||||
@@ -339,3 +339,104 @@
|
||||
desc = "A hand carved charm of one of the mythical tajani."
|
||||
desc_fluff = "Tajani, also known as 'short people' in basic, are good-willed tiny elder Tajara who serve as guardians of nature and homes. \
|
||||
Hand carved charms of them is considered a symbol of luck and as such many superstitious tajara keeps one around."
|
||||
|
||||
/obj/item/clothing/accessory/tajaran/tanker_pin
|
||||
name = "golden sun pin"
|
||||
desc = "Given to all members of the Hro'rammad tank corps is this sun pin. It is considered a symbol of how the tanker corps is the wrath of the God S'rendarr. Its rays are sharp not \
|
||||
just so it can be easily pinned but also to represent how the tankers are the blades of S'rendarr himself. "
|
||||
icon_state = "tanker_pin"
|
||||
item_state = "tanker_pin"
|
||||
overlay_state = "tanker_pin"
|
||||
desc_fluff = "Lead by the famously merciful Commander Kahan Hro'rammhad, the Hro'rammhad Tank Corps has the distinction of being the most powerful and accomplished armored unit in the history \
|
||||
of Adhomai. These elite Armored Kazarrhaldiye Tajara are used primarily in offensive operations to break through opposing lines and encircle their positions. Their tanks have exceptionally \
|
||||
wide tracks which allow them to more easily tread across snowy terrains. Veterans of the Hro'rammhad Tank Corps are known for their golden pins depicting the sun-god S'rendarr which they wear on their uniforms."
|
||||
flippable = TRUE
|
||||
|
||||
drop_sound = 'sound/items/drop/ring.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ring.ogg'
|
||||
|
||||
/obj/item/clothing/accessory/tajaran/zbrojny_badge
|
||||
name = "zbrojny badge"
|
||||
desc = "A small badge given to people who enter the Intelligence Service's Zbrojny program. The siik'mas \"Z\" character has 3 studs underneath it to designate this person as having fully completed the program."
|
||||
icon_state = "zbrojny_badge"
|
||||
item_state = "zbrojny_badge"
|
||||
overlay_state = "zbrojny_badge"
|
||||
desc_fluff = "Seeking to replicate the success of the Liberation Army guerrillas, the Zbrojny is a partisan force created after the Armistice. The Zbrojny is made up of loyal Hadiist \
|
||||
volunteers from the civilian population. Trained by the People's Strategic Intelligence Service in guerilla tactics, they are meant to act behind enemy lines in occupied territory. \
|
||||
Unlike all branches of the Grand People's Army, the Partisans are under the direct control of the secret service."
|
||||
flippable = TRUE
|
||||
|
||||
drop_sound = 'sound/items/drop/ring.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ring.ogg'
|
||||
|
||||
//dpra party badges
|
||||
|
||||
/obj/item/clothing/accessory/tajaran/abparty_pin
|
||||
name = "adhomian blue party pin"
|
||||
desc = "A pin of the Adhomian Blue Party. This symbol is a white hoe on a blue background representing the party's dedication to environmentalism and ruralism."
|
||||
icon_state = "abparty_pin"
|
||||
item_state = "abparty_pin"
|
||||
overlay_state = "abparty_pin"
|
||||
desc_fluff = "The Adhomian Blue party is formed by farmers and students. Instead of worrying about the Armistice or the composition of the government, their main goal is to preserve the environment of \
|
||||
Adhomai. Industrialization and armed conflict are considered a major threat to the nature and beauty of the planet. Members of this organization are also vehemently opposed to the presence \
|
||||
of NanoTrasen. The organization is currently divided between environmentalists and Al'mariist ruralists."
|
||||
flippable = TRUE
|
||||
|
||||
drop_sound = 'sound/items/drop/ring.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ring.ogg'
|
||||
|
||||
/obj/item/clothing/accessory/tajaran/fonparty_pin
|
||||
name = "followers of Nated party pin"
|
||||
desc = "A pin of the Followers of Nated. The pin is split down the middle with the golden yellow reflecting S'rendarr and the pale blue reflecting Messa. A black Spear of Mata'ke is laid overtop."
|
||||
icon_state = "fonparty_pin"
|
||||
item_state = "fonparty_pin"
|
||||
overlay_state = "fonparty_pin"
|
||||
desc_fluff = "The Followers of Nated is an organization formed by fanatical supporters of Nated who claim he is a divine avatar of the Suns or Mata'ke. They support a dictatorship under the guidance of Halkiikijr \
|
||||
Nated'Hakhan, stripping away any semblance of democracy from the Democratic People's Republic. Members of this party oppose any form of peace or negotiation with the other Tajaran factions, \
|
||||
or diplomacy with alien powers. They are known for hosting the most radical elements of DPRA's political scenario."
|
||||
flippable = TRUE
|
||||
|
||||
drop_sound = 'sound/items/drop/ring.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ring.ogg'
|
||||
|
||||
/obj/item/clothing/accessory/tajaran/ftpparty_pin
|
||||
name = "free tajaran people party pin"
|
||||
desc = "A pin of the Free Tajaran's People Party. The two white rifles represent the party's fervor in crushing the two ideological enemies of the Tajara: Royalism and Hadiism."
|
||||
icon_state = "ftpparty_pin"
|
||||
item_state = "ftpparty_pin"
|
||||
overlay_state = "ftpparty_pin"
|
||||
desc_fluff = "The Free Tajaran People's Party encompasses most of the military and authoritarian elements. They seek to weaken the autonomy of governors in favor of a strong central government, overseen by \
|
||||
the supreme commander. Members of this organization hold the most nationalist and xenophobic views; defending the return of the war against other Adhomian nations and isolation before the \
|
||||
galactic community."
|
||||
flippable = TRUE
|
||||
|
||||
drop_sound = 'sound/items/drop/ring.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ring.ogg'
|
||||
|
||||
/obj/item/clothing/accessory/tajaran/nawparty_pin
|
||||
name = "national adhomai workers party pin"
|
||||
desc = "A pin of the National Adhomai Workers Party. The hammer and wrench are tools of the common Tajaran worker and the red represents the blood spilled by Tajaran during the Revolutions."
|
||||
icon_state = "nawparty_pin"
|
||||
item_state = "nawparty_pin"
|
||||
overlay_state = "nawparty_pin"
|
||||
desc_fluff = "The National Adhomai Worker's Party is composed of urban workers and intellectuals. They aim to increase the autonomy of the states, placing less importance on the decisions made by the national \
|
||||
assemblies. Members of its organization hold far more moderate views; seeking to honor the Armistice of Shastar while recognizing that maintaining a healthy and independent relationship \
|
||||
with other foreign powers is needed."
|
||||
flippable = TRUE
|
||||
|
||||
drop_sound = 'sound/items/drop/ring.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ring.ogg'
|
||||
|
||||
/obj/item/clothing/accessory/tajaran/aflparty_pin
|
||||
name = "amohdan free lodge party pin"
|
||||
desc = "A pin of the banned Amohdan Free Lodge. The golden sword represents divine right to independence and willingness to fight for it. Carrying this pin in Amohda is a death sentence."
|
||||
icon_state = "aflparty_pin"
|
||||
item_state = "aflparty_pin"
|
||||
overlay_state = "aflparty_pin"
|
||||
desc_fluff = "The Amohdan Free Lodge was represented by Amohdan nationals. They pushed for the independence of Amohda as its own state, usually siding with other parties that may help them in reaching their \
|
||||
goals. However, they were divided between two different sides; one that saw democracy as the best option for the island, while others believed that restoring the monarchy would have been \
|
||||
better. This organization was the main supporter of the ceasefire with the New Kingdom of Adhomai. This Party was banned after the Amohdan uprising of 2462."
|
||||
flippable = TRUE
|
||||
|
||||
drop_sound = 'sound/items/drop/ring.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ring.ogg'
|
||||
@@ -1849,42 +1849,6 @@ All custom items with worn sprites must follow the contained sprite system: http
|
||||
item_state = "godard_cape"
|
||||
contained_sprite = TRUE
|
||||
|
||||
/obj/item/organ/internal/augment/fluff/kath_legbrace // Leg Support Augment - Kathira El-Hashem - thegreywolf
|
||||
name = "leg support augment"
|
||||
desc = "A leg augment to aid in the mobility of an otherwise disabled leg."
|
||||
icon = 'icons/obj/custom_items/kathira_legbrace.dmi'
|
||||
icon_override = 'icons/obj/custom_items/kathira_legbrace.dmi'
|
||||
on_mob_icon = 'icons/obj/custom_items/kathira_legbrace.dmi'
|
||||
icon_state = "kathira_legbrace"
|
||||
item_state = "kathira_legbrace_onmob"
|
||||
parent_organ = BP_R_LEG
|
||||
supports_limb = TRUE
|
||||
min_broken_damage = 15
|
||||
min_bruised_damage = 5
|
||||
var/last_drop = 0
|
||||
|
||||
/obj/item/organ/internal/augment/fluff/kath_legbrace/process()
|
||||
if(QDELETED(src) || !owner)
|
||||
return
|
||||
if(last_drop + 6 SECONDS > world.time)
|
||||
return
|
||||
if(owner.lying || owner.buckled_to || length(owner.grabbed_by))
|
||||
return
|
||||
|
||||
if(is_bruised())
|
||||
if(is_broken())
|
||||
collapse(40, 3, 110)
|
||||
else
|
||||
collapse()
|
||||
|
||||
/obj/item/organ/internal/augment/fluff/kath_legbrace/proc/collapse(var/prob_chance = 20, var/weaken_strength = 2, var/pain_strength = 40)
|
||||
if(prob(prob_chance))
|
||||
var/obj/item/organ/external/E = owner.organs_by_name[parent_organ]
|
||||
owner.Weaken(weaken_strength)
|
||||
last_drop = world.time
|
||||
owner.custom_pain("Something inside your [E.name] hurts too much to stand!", pain_strength, TRUE, E, TRUE)
|
||||
owner.visible_message("<b>[owner]</b> collapses!")
|
||||
|
||||
/obj/item/flame/lighter/zippo/fluff/sezrak_zippo //Imperial 16th Zippo - Sezrak Han'san - captaingecko
|
||||
name = "imperial 16th zippo"
|
||||
desc = "A zippo lighter given by the Empire of Dominia to the men of the 16th Regiment of the Imperial Army, also known as the \"Suicide Regiments\", that would manage to survive more \
|
||||
@@ -2029,15 +1993,6 @@ All custom items with worn sprites must follow the contained sprite system: http
|
||||
item_state = "pax_bag"
|
||||
contained_sprite = TRUE
|
||||
|
||||
/obj/item/journal/fluff/kathira // Blue Leather-Bound Journal - Kathira El-Hashem - TheGreyWolf
|
||||
name = "blue leather-bound journal"
|
||||
desc = "A blue journal emblazoned with the New Kingdom of Adhomai's flag across the cover."
|
||||
closed_desc = " The pages within are a mix of clearly indexed case files, and study notes alongside less clearly indexed pages that appears to be fragmented thoughts, not unlike a diary. The very first page of the journal reads 'dedicated to Qirandri Mrorirhaldarr' and is signed 'Mrradar Sanufar' underneath."
|
||||
icon = 'icons/obj/custom_items/kathira_journal.dmi'
|
||||
icon_override = 'icons/obj/custom_items/kathira_journal.dmi'
|
||||
icon_state = "kath_journal"
|
||||
item_state = "kath_journal"
|
||||
|
||||
/obj/item/storage/pill_bottle/dice/fluff/suraya_dicebag //Crevan Dice Bag - Suraya Al-Zahrani - Omicega
|
||||
name = "velvet dice bag"
|
||||
desc = "A deep purple dice bag fashioned from Adhomian velvet, with two little drawstrings to tighten the neck closed."
|
||||
@@ -2062,7 +2017,10 @@ All custom items with worn sprites must follow the contained sprite system: http
|
||||
weight_roll = 22
|
||||
|
||||
/obj/item/stack/dice/fluff/suraya_dice/AltClick(mob/user)
|
||||
if(!weight_roll)
|
||||
if(user.get_active_hand() != src)
|
||||
return ..()
|
||||
|
||||
if(weight_roll)
|
||||
user.visible_message("<b>\The [user]</b> jiggles \the [src] around in their hand for a second.", SPAN_NOTICE("You jiggle the die rapidly in your hand, resetting the internal weighting."))
|
||||
weight_roll = 0
|
||||
else
|
||||
@@ -2090,90 +2048,6 @@ All custom items with worn sprites must follow the contained sprite system: http
|
||||
name = "old synthetic vocal cords"
|
||||
desc = "A set of Old Age Synthetic Vocal Cords. They look barely functional."
|
||||
|
||||
/obj/item/clothing/accessory/poncho/tajarancloak/fluff/kathira_cloak // Handsewn Idris Cloak - Kathira El-Hashem - TheGreyWolf
|
||||
name = "handsewn Idris cloak"
|
||||
desc = "A carefully handsewn cloak proudly emblazoned with the symbol of Idris Banking in silver treading and the words ‘Astronomical Figures. Unlimited Power.’ Embroidered beneath it.\nOn close examination, the inside of the cloak appears to be colored differently."
|
||||
icon = 'icons/obj/custom_items/kathira_cloak.dmi'
|
||||
icon_override = 'icons/obj/custom_items/kathira_cloak.dmi'
|
||||
icon_state = "idris_cloak"
|
||||
item_state = "idris_cloak"
|
||||
var/style = "nka_cloak"
|
||||
var/name2 = "handmade royalist cloak"
|
||||
var/desc2 = "A blue cloak with the symbol of the New Kingdom of Adhomai proudly displayed on the back.\nUpon closer examination it appears to be a patchwork of older textile and newer fabrics, with the inside of the cloak appearing to be colored differently."
|
||||
var/changed = FALSE
|
||||
|
||||
var/hoodtype = /obj/item/clothing/head/winterhood/fluff/kathira_hood
|
||||
|
||||
/obj/item/clothing/accessory/poncho/tajarancloak/fluff/kathira_cloak/Initialize()
|
||||
. = ..()
|
||||
new hoodtype(src)
|
||||
|
||||
/obj/item/clothing/head/winterhood/fluff/kathira_hood
|
||||
name = "handsewn hood"
|
||||
desc = "A hood attached to a cloak."
|
||||
icon = 'icons/obj/custom_items/kathira_cloak.dmi'
|
||||
icon_override = 'icons/obj/custom_items/kathira_cloak.dmi'
|
||||
icon_state = "idris_cloak_hood"
|
||||
contained_sprite = TRUE
|
||||
flags_inv = HIDEEARS | BLOCKHAIR | HIDEEARS
|
||||
|
||||
/obj/item/clothing/accessory/poncho/tajarancloak/fluff/kathira_cloak/update_icon(var/hooded = FALSE)
|
||||
var/obj/item/clothing/accessory/poncho/tajarancloak/fluff/kathira_cloak/K = get_accessory(/obj/item/clothing/accessory/poncho/tajarancloak/fluff/kathira_cloak)
|
||||
K.icon_state = "[K.changed ? K.style : initial(K.icon_state)]"
|
||||
SEND_SIGNAL(K, COMSIG_ITEM_STATE_CHECK, args)
|
||||
K.item_state = "[K.icon_state][hooded ? "_up" : ""]"
|
||||
K.name = "[K.changed ? K.name2 : initial(K.name)]"
|
||||
K.desc = "[K.changed ? K.desc2 : initial(K.desc)]"
|
||||
K.accessory_mob_overlay = null
|
||||
. = ..()
|
||||
SEND_SIGNAL(K, COMSIG_ITEM_ICON_UPDATE)
|
||||
if(usr)
|
||||
usr.update_inv_w_uniform()
|
||||
usr.update_inv_wear_suit()
|
||||
|
||||
/obj/item/clothing/accessory/poncho/tajarancloak/fluff/kathira_cloak/verb/change_cloak()
|
||||
set name = "Change Cloak"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
|
||||
if(use_check_and_message(usr))
|
||||
return
|
||||
|
||||
var/obj/item/clothing/accessory/poncho/tajarancloak/fluff/kathira_cloak/K = get_accessory(/obj/item/clothing/accessory/poncho/tajarancloak/fluff/kathira_cloak)
|
||||
if(!K)
|
||||
return
|
||||
|
||||
usr.visible_message(SPAN_NOTICE("[usr] swiftly pulls \the [K] inside out, changing its appearance."))
|
||||
K.changed = !K.changed
|
||||
K.update_icon()
|
||||
SEND_SIGNAL(K, COMSIG_ITEM_REMOVE, K)
|
||||
|
||||
/obj/item/clothing/accessory/poncho/tajarancloak/fluff/kathira_cloak/on_attached(obj/item/clothing/S, mob/user as mob)
|
||||
..()
|
||||
has_suit.verbs += /obj/item/clothing/accessory/poncho/tajarancloak/fluff/kathira_cloak/verb/change_cloak
|
||||
has_suit.verbs += /obj/item/clothing/accessory/poncho/tajarancloak/fluff/kathira_cloak/verb/change_hood
|
||||
|
||||
/obj/item/clothing/accessory/poncho/tajarancloak/fluff/kathira_cloak/on_removed(mob/user as mob)
|
||||
if(has_suit)
|
||||
has_suit.verbs -= /obj/item/clothing/accessory/poncho/tajarancloak/fluff/kathira_cloak/verb/change_cloak
|
||||
has_suit.verbs -= /obj/item/clothing/accessory/poncho/tajarancloak/fluff/kathira_cloak/verb/change_hood
|
||||
..()
|
||||
|
||||
/obj/item/clothing/accessory/poncho/tajarancloak/fluff/kathira_cloak/verb/change_hood()
|
||||
set name = "Toggle Hood"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
|
||||
if(use_check_and_message(usr))
|
||||
return
|
||||
|
||||
var/obj/item/clothing/accessory/poncho/tajarancloak/fluff/kathira_cloak/K = get_accessory(/obj/item/clothing/accessory/poncho/tajarancloak/fluff/kathira_cloak)
|
||||
if(!K)
|
||||
return
|
||||
|
||||
SEND_SIGNAL(K, COMSIG_ITEM_UPDATE_STATE, K)
|
||||
K.update_icon()
|
||||
|
||||
/obj/item/clothing/suit/storage/toggle/fluff/leonid_chokha //Old Rebel's Chokha - Leonid Myagmar - lucaken
|
||||
name = "old rebel's chokha"
|
||||
desc = "A not-so traditional Vysokan Chokha made out of beat-up gurmori leathers, worn-out to the point of seeming ancient. Though it might have been a Host-boy's garment once, it is now \
|
||||
@@ -2349,3 +2223,48 @@ All custom items with worn sprites must follow the contained sprite system: http
|
||||
icon_state = "iliasz_jacket"
|
||||
item_state = "iliasz_jacket"
|
||||
contained_sprite = TRUE
|
||||
|
||||
/obj/item/clothing/accessory/poncho/tajarancloak/fluff/dekel_smock // corporate smock - Dekel Mrrhazrughan - veterangary
|
||||
name = "corporate smock"
|
||||
desc = "A dark colored surplus winter smock repurposed for interstellar use. It still has a hood and a snow mask, shaded into corporate colors. A traditional Stellar Corporate Conglomerate star is embroidered on the back."
|
||||
icon = 'icons/obj/custom_items/dekel_smock.dmi'
|
||||
icon_override = 'icons/obj/custom_items/dekel_smock.dmi'
|
||||
icon_state = "seccloak"
|
||||
item_state = "seccloak"
|
||||
var/hoodtype = /obj/item/clothing/head/winterhood/fluff/dekel_hood
|
||||
|
||||
/obj/item/clothing/accessory/poncho/tajarancloak/fluff/dekel_smock/Initialize()
|
||||
. = ..()
|
||||
new hoodtype(src)
|
||||
|
||||
/obj/item/clothing/head/winterhood/fluff/dekel_hood
|
||||
name = "corporate hood"
|
||||
desc = "A hood attached to a corporate smock."
|
||||
icon = 'icons/obj/custom_items/dekel_smock.dmi'
|
||||
icon_override = 'icons/obj/custom_items/dekel_smock.dmi'
|
||||
icon_state = "seccloak_hood"
|
||||
contained_sprite = TRUE
|
||||
flags_inv = HIDEEARS | BLOCKHAIR
|
||||
|
||||
/obj/item/clothing/accessory/poncho/tajarancloak/fluff/dekel_smock/on_attached(obj/item/clothing/S, mob/user as mob)
|
||||
..()
|
||||
has_suit.verbs += /obj/item/clothing/accessory/poncho/tajarancloak/fluff/dekel_smock/verb/change_hood
|
||||
|
||||
/obj/item/clothing/accessory/poncho/tajarancloak/fluff/dekel_smock/on_removed(mob/user as mob)
|
||||
if(has_suit)
|
||||
has_suit.verbs -= /obj/item/clothing/accessory/poncho/tajarancloak/fluff/dekel_smock/verb/change_hood
|
||||
..()
|
||||
|
||||
/obj/item/clothing/accessory/poncho/tajarancloak/fluff/dekel_smock/verb/change_hood()
|
||||
set name = "Toggle Hood"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
|
||||
if(use_check_and_message(usr))
|
||||
return
|
||||
|
||||
var/obj/item/clothing/accessory/poncho/tajarancloak/fluff/dekel_smock/D = get_accessory(/obj/item/clothing/accessory/poncho/tajarancloak/fluff/dekel_smock)
|
||||
if(!D)
|
||||
return
|
||||
|
||||
SEND_SIGNAL(D, COMSIG_ITEM_UPDATE_STATE, D)
|
||||
|
||||
@@ -377,6 +377,6 @@
|
||||
to_chat(user, "<span class='warning'>Access denied.</span>")
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/computer/HolodeckControl/Exodus
|
||||
/obj/machinery/computer/HolodeckControl/Aurora
|
||||
density = 0
|
||||
linkedholodeck_area = /area/holodeck/alphadeck
|
||||
|
||||
@@ -125,7 +125,6 @@
|
||||
if(95)
|
||||
new /obj/item/clothing/under/mime(src)
|
||||
new /obj/item/clothing/shoes/black(src)
|
||||
new /obj/item/modular_computer/handheld/pda/civilian/mime(src)
|
||||
new /obj/item/clothing/gloves/white(src)
|
||||
new /obj/item/clothing/mask/gas/mime(src)
|
||||
new /obj/item/clothing/head/beret/red(src)
|
||||
|
||||
@@ -1734,7 +1734,7 @@ Follow by example and make good judgement based on length which list to include
|
||||
icon = 'icons/mob/hair_gradients.dmi'
|
||||
species_allowed = list(/datum/species/human,/datum/species/human/offworlder,/datum/species/machine/shell,/datum/species/machine/shell/rogue,/datum/species/zombie,
|
||||
/datum/species/tajaran,/datum/species/tajaran/zhan_khazan,/datum/species/tajaran/m_sai,/datum/species/zombie/tajara,
|
||||
/datum/species/skrell, /datum/species/skrell/axiori, /datum/species/zombie/skrell, /datum/species/bug, /datum/species/bug/type_b)
|
||||
/datum/species/skrell, /datum/species/skrell/axiori, /datum/species/zombie/skrell, /datum/species/bug, /datum/species/bug/type_b, /datum/species/unathi,/datum/species/zombie/unathi)
|
||||
|
||||
none
|
||||
name = "None"
|
||||
@@ -2267,6 +2267,18 @@ Follow by example and make good judgement based on length which list to include
|
||||
length = 0
|
||||
chatname = "lump"
|
||||
|
||||
una_droopy
|
||||
name = "Unathi Droopy Dorsal Frill"
|
||||
icon_state = "unathi_droopydorsal"
|
||||
length = 0
|
||||
chatname = "droopy frill"
|
||||
|
||||
una_regal
|
||||
name = "Unathi Regal Frills"
|
||||
icon_state = "unathi_regalfrills"
|
||||
length = 6
|
||||
chatname = "massive frills"
|
||||
|
||||
|
||||
//skrell tentacles
|
||||
|
||||
@@ -3305,6 +3317,14 @@ Follow by example and make good judgement based on length which list to include
|
||||
name = "Unathi Pachy Boss"
|
||||
icon_state = "pachylump"
|
||||
|
||||
una_droopy
|
||||
name = "Unathi Droopy Dorsal Frill"
|
||||
icon_state = "unathi_droopydorsal"
|
||||
|
||||
una_regal
|
||||
name = "Unathi Regal Frills"
|
||||
icon_state = "unathi_regalfrills"
|
||||
|
||||
//ipc screens
|
||||
|
||||
ipc_screen_blank
|
||||
|
||||
@@ -294,6 +294,8 @@
|
||||
src.show_message(message)
|
||||
|
||||
/mob/proc/hear_sleep(var/message)
|
||||
if (isdeaf(src))
|
||||
return
|
||||
var/heard = ""
|
||||
if(prob(15))
|
||||
var/list/punctuation = list(",", "!", ".", ";", "?")
|
||||
|
||||
@@ -1257,6 +1257,11 @@
|
||||
custom_pain("You feel a stabbing pain in your chest!", 50)
|
||||
L.bruise()
|
||||
|
||||
/mob/living/carbon/human/proc/is_lung_rescued()
|
||||
var/species_organ = species.breathing_organ
|
||||
var/obj/item/organ/internal/lungs/L = internal_organs_by_name[species_organ]
|
||||
return L && L.rescued
|
||||
|
||||
//returns 1 if made bloody, returns 0 otherwise
|
||||
/mob/living/carbon/human/add_blood(mob/living/carbon/C as mob)
|
||||
if (!..())
|
||||
|
||||
@@ -146,6 +146,10 @@
|
||||
return
|
||||
last_x = x
|
||||
last_y = y
|
||||
if(shoes)
|
||||
var/obj/item/clothing/shoes/S = shoes
|
||||
if(S.do_special_footsteps(m_intent))
|
||||
return
|
||||
if (m_intent == M_RUN)
|
||||
playsound(src, is_noisy ? footsound : species.footsound, 70, 1, required_asfx_toggles = ASFX_FOOTSTEPS)
|
||||
else
|
||||
|
||||
@@ -287,6 +287,10 @@
|
||||
/mob/living/silicon/robot/drone/updatename()
|
||||
return
|
||||
|
||||
/mob/living/silicon/robot/drone/setup_icon_cache()
|
||||
setup_eye_cache()
|
||||
setup_panel_cache()
|
||||
|
||||
/mob/living/silicon/robot/drone/setup_eye_cache()
|
||||
cached_eye_overlays = list(
|
||||
I_HELP = image(icon, "[icon_state]-eyes_help"),
|
||||
|
||||
@@ -3,10 +3,6 @@
|
||||
|
||||
//Returns the thing in our active hand (whatever is in our active module-slot, in this case)
|
||||
/mob/living/silicon/robot/get_active_hand()
|
||||
if(istype(module_active, /obj/item/gripper))
|
||||
var/obj/item/gripper/G = module_active
|
||||
if(G.wrapped)
|
||||
return G.wrapped
|
||||
return module_active
|
||||
|
||||
/mob/living/silicon/robot/proc/return_wirecutter()
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/obj/item/gripper/proc/grip_item(var/obj/item/I, var/mob/user, var/feedback = 1)
|
||||
/obj/item/gripper/proc/grip_item(var/obj/item/I, var/mob/user, var/feedback = TRUE)
|
||||
//This function returns 1 if we successfully took the item, or 0 if it was invalid. This information is useful to the caller
|
||||
if(!wrapped)
|
||||
if((can_hold && is_type_in_list(I, can_hold)) || (cant_hold && !is_type_in_list(I, cant_hold)))
|
||||
@@ -125,14 +125,14 @@
|
||||
update_icon()
|
||||
return TRUE
|
||||
|
||||
/obj/item/gripper/attack(mob/living/carbon/M, mob/living/carbon/user)
|
||||
/obj/item/gripper/attack(mob/M, mob/user)
|
||||
if(wrapped) //The force of the wrapped obj gets set to zero during the attack() and afterattack().
|
||||
force_holder = wrapped.force
|
||||
wrapped.force = 0
|
||||
wrapped.attack(M,user)
|
||||
var/resolved = wrapped.attack(M,user)
|
||||
if(QDELETED(wrapped))
|
||||
wrapped = null
|
||||
return TRUE
|
||||
drop(get_turf(src), user, FALSE)
|
||||
return resolved
|
||||
else // mob interactions
|
||||
switch(user.a_intent)
|
||||
if(I_HELP)
|
||||
@@ -148,26 +148,23 @@
|
||||
/obj/item/gripper/attackby(obj/item/O, mob/user)
|
||||
if(wrapped)
|
||||
if(O == wrapped)
|
||||
attack_self(user) //Allows gripper to be clicked to use item.
|
||||
attack_self(user) //Allows gripper to be clicked to use item.
|
||||
return
|
||||
var/resolved = wrapped.attackby(O,user)
|
||||
if(!resolved && wrapped && O)
|
||||
O.afterattack(wrapped, user ,1)//We pass along things targeting the gripper, to objects inside the gripper. So that we can draw chemicals from held beakers for instance
|
||||
if(!resolved)
|
||||
O.afterattack(wrapped, user, TRUE)//We pass along things targeting the gripper, to objects inside the gripper. So that we can draw chemicals from held beakers for instance
|
||||
return
|
||||
|
||||
/obj/item/gripper/afterattack(var/atom/target, var/mob/living/user, proximity, params)
|
||||
if(!proximity)
|
||||
return // This will prevent them using guns at range but adminbuse can add them directly to modules, so eh.
|
||||
//There's some weirdness with items being lost inside the arm. Trying to fix all cases. ~Z
|
||||
if(!wrapped)
|
||||
for(var/obj/item/thing in src.contents)
|
||||
wrapped = thing
|
||||
break
|
||||
return
|
||||
if(wrapped) //Already have an item.
|
||||
return //This is handled in /mob/living/silicon/robot/GripperClickOn
|
||||
wrapped.afterattack(target, user, TRUE, params)
|
||||
if(QDELETED(wrapped))
|
||||
drop(get_turf(src), user, FALSE)
|
||||
else if(istype(target, /obj/item/storage) && !istype(target, /obj/item/storage/pill_bottle) && !istype(target, /obj/item/storage/secure))
|
||||
for(var/obj/item/C in target.contents)
|
||||
if(grip_item(C, user, 0))
|
||||
for(var/obj/item/C in target)
|
||||
if(grip_item(C, user, FALSE))
|
||||
to_chat(user, SPAN_NOTICE("You grab \the [C] from inside \the [target.name]."))
|
||||
return
|
||||
to_chat(user, SPAN_NOTICE("There is nothing inside the box that your gripper can collect."))
|
||||
@@ -183,6 +180,12 @@
|
||||
target.attack_ai(user)
|
||||
just_dropped = FALSE
|
||||
|
||||
/obj/item/gripper/resolve_attackby(atom/A, mob/user, var/click_parameters)
|
||||
if(wrapped)
|
||||
return wrapped.resolve_attackby(A, user, click_parameters)
|
||||
else
|
||||
. = ..()
|
||||
|
||||
/*
|
||||
//Definitions of gripper subtypes
|
||||
*/
|
||||
@@ -334,4 +337,4 @@
|
||||
/obj/item/storage,
|
||||
/obj/item/modular_computer,
|
||||
/obj/item/card/id
|
||||
)
|
||||
)
|
||||
|
||||
@@ -842,6 +842,7 @@ var/global/list/robot_modules = list(
|
||||
modules += new /obj/item/device/flash(src) // Non-lethal tool that prevents any 'borg from going lethal on Crew so long as it's an option according to laws.
|
||||
modules += new /obj/item/crowbar/robotic(src) // Base crowbar that all 'borgs should have access to.
|
||||
modules += new /obj/item/storage/part_replacer(src)
|
||||
modules += new /obj/item/device/multitool/robotic(src) // To enable them to connect machines that require multitools e.g. tech-processors
|
||||
emag = new /obj/item/hand_tele(src)
|
||||
|
||||
var/datum/matter_synth/nanite = new /datum/matter_synth/nanite(10000)
|
||||
|
||||
@@ -27,9 +27,9 @@
|
||||
var/image/blood_overlay
|
||||
|
||||
var/bleeding = FALSE
|
||||
var/blood_amount = 50 // set a limit to the amount of blood it can bleed, otherwise it will keep bleeding forever and crunk the server
|
||||
var/blood_amount = 20 // set a limit to the amount of blood it can bleed, otherwise it will keep bleeding forever and crunk the server
|
||||
var/previous_bleed_timer = 0 // they only bleed for as many seconds as force damage was applied to them
|
||||
var/blood_timer_mod = 1 // tweak to change the amount of seconds a mob will bleed
|
||||
var/blood_timer_mod = 0.25 // tweak to change the amount of seconds a mob will bleed
|
||||
|
||||
var/list/speak = list()
|
||||
var/speak_chance = 0
|
||||
|
||||
@@ -818,6 +818,9 @@
|
||||
stat("Game ID", game_id)
|
||||
stat("Map", current_map.full_name)
|
||||
stat("Current Space Sector", SSatlas.current_sector.name)
|
||||
var/current_month = text2num(time2text(world.realtime, "MM"))
|
||||
var/current_day = text2num(time2text(world.realtime, "DD"))
|
||||
stat("Current Date", "[current_day]/[current_month]/[game_year]")
|
||||
stat("Station Time", worldtime2text())
|
||||
stat("Round Duration", get_round_duration_formatted())
|
||||
stat("Last Transfer Vote", SSvote.last_transfer_vote ? time2text(SSvote.last_transfer_vote, "hh:mm") : "Never")
|
||||
@@ -953,13 +956,15 @@
|
||||
|
||||
|
||||
/mob/proc/facedir(var/ndir)
|
||||
if(!canface() || (client && client.moving) || (client && world.time < client.move_delay))
|
||||
if(!canface() || (client && client.moving))
|
||||
return 0
|
||||
if(facing_dir != ndir)
|
||||
facing_dir = null
|
||||
set_dir(ndir)
|
||||
if(buckled_to && buckled_to.buckle_movable)
|
||||
buckled_to.set_dir(ndir)
|
||||
if (client)//Fixing a ton of runtime errors that came from checking client vars on an NPC
|
||||
client.move_delay += movement_delay()
|
||||
setMoveCooldown(movement_delay())
|
||||
return 1
|
||||
|
||||
|
||||
|
||||
@@ -44,18 +44,6 @@
|
||||
. = ..()
|
||||
card_slot.stored_item = new /obj/item/pen/fountain
|
||||
|
||||
/obj/item/modular_computer/handheld/pda/civilian/clown
|
||||
_app_preset_type = /datum/modular_computer_app_presets/civilian/clown
|
||||
icon_add = "clown"
|
||||
|
||||
/obj/item/modular_computer/handheld/pda/civilian/clown/Initialize()
|
||||
. = ..()
|
||||
card_slot.stored_item = new /obj/item/pen/crayon
|
||||
|
||||
/obj/item/modular_computer/handheld/pda/civilian/mime
|
||||
_app_preset_type = /datum/modular_computer_app_presets/civilian/mime
|
||||
icon_add = "mime"
|
||||
|
||||
// Engineering
|
||||
|
||||
/obj/item/modular_computer/handheld/pda/engineering
|
||||
|
||||
@@ -457,18 +457,6 @@
|
||||
)
|
||||
return _prg_list
|
||||
|
||||
/datum/modular_computer_app_presets/civilian/clown
|
||||
name = "clown"
|
||||
display_name = "Clown"
|
||||
description = "Contains programs for HONK!!!"
|
||||
available = TRUE
|
||||
|
||||
/datum/modular_computer_app_presets/civilian/mime
|
||||
name = "mime"
|
||||
display_name = "Mime"
|
||||
description = "Contains programs for janitorial service."
|
||||
available = TRUE
|
||||
|
||||
/datum/modular_computer_app_presets/supply
|
||||
name = "supply"
|
||||
display_name = "Supply"
|
||||
|
||||
@@ -69,6 +69,14 @@
|
||||
if(SMES)
|
||||
var/outputset = input(usr, "Enter new output level (0-[SMES.output_level_max])", "SMES Input Power Control") as num
|
||||
SMES.set_output(outputset)
|
||||
if(href_list["smes_in_max"])
|
||||
var/obj/machinery/power/smes/buildable/SMES = GetSMESByTag(href_list["smes_in_max"])
|
||||
if(SMES)
|
||||
SMES.set_input(SMES.input_level_max)
|
||||
if(href_list["smes_out_max"])
|
||||
var/obj/machinery/power/smes/buildable/SMES = GetSMESByTag(href_list["smes_out_max"])
|
||||
if(SMES)
|
||||
SMES.set_output(SMES.output_level_max)
|
||||
|
||||
if(href_list["toggle_breaker"])
|
||||
var/obj/machinery/power/breakerbox/toggle = SSpower.rcon_breaker_units_by_tag[href_list["toggle_breaker"]]
|
||||
|
||||
@@ -846,7 +846,7 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
number_wounds += W.amount
|
||||
|
||||
//things tend to bleed if they are CUT OPEN
|
||||
if (open && !clamped && (H && !(H.species.flags & NO_BLOOD)))
|
||||
if (open && !clamped && (H && !(H.species.flags & NO_BLOOD) && !(status & ORGAN_ROBOT)))
|
||||
status |= ORGAN_BLEEDING
|
||||
|
||||
if (istype(tendon))
|
||||
|
||||
@@ -37,7 +37,7 @@ If this zlevel (or any of connected ones for multiz) doesn't have this object, y
|
||||
2. Put it anywhere on the ship/sector map. It will do the rest on its own during init.
|
||||
If your thing is multiz, only one is needed per multiz sector/ship.
|
||||
|
||||
If it's player's main base (e.g Exodus), set 'base' var to 1, so it adds itself to station_levels list.
|
||||
If it's player's main base (e.g Aurora), set 'base' var to 1, so it adds itself to station_levels list.
|
||||
If this place cannot be reached or left with EVA, set 'in_space' var to 0
|
||||
If you want exploration shuttles (look below) to be able to dock here, set up waypoints lists.
|
||||
generic_waypoints is list of landmark_tags of waypoints any shttle should be able to visit.
|
||||
@@ -84,4 +84,4 @@ Lets you control shuttles that can change destinations and visit other sectors/s
|
||||
2. Define a /datum/shuttle/autodock/overmap for your shuttle. Same as normal shuttle, aside from 'range' var - how many squares on overmap it can travel on its own.
|
||||
3. Place console anywhere on the ship/sector. Set shuttle_tag to shuttle's name.
|
||||
4. Use. You can select destinations if you're in range (on same tile by defualt) on the map and sector has waypoints lists defined
|
||||
*/
|
||||
*/
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
/obj/machinery/power/fractal_reactor/New()
|
||||
..()
|
||||
if(!mapped_in)
|
||||
to_world("<b><span class='alert'>WARNING:</span> Map testing power source activated at: X:[src.loc.x] Y:[src.loc.y] Z:[src.loc.z]</b>")
|
||||
log_and_message_admins("<b><span class='alert'>WARNING:</span> Map testing power source activated at: X:[src.loc.x] Y:[src.loc.y] Z:[src.loc.z]</b>")
|
||||
|
||||
/obj/machinery/power/fractal_reactor/machinery_process()
|
||||
if(!powernet && !powernet_connection_failed)
|
||||
|
||||
@@ -458,7 +458,6 @@
|
||||
// attack with hand - remove tube/bulb
|
||||
// if hands aren't protected and the light is on, burn the player
|
||||
/obj/machinery/light/attack_hand(mob/user)
|
||||
|
||||
add_fingerprint(user)
|
||||
|
||||
if(status == LIGHT_EMPTY)
|
||||
@@ -477,29 +476,6 @@
|
||||
shatter()
|
||||
return
|
||||
|
||||
// make it burn hands if not wearing fire-insulated gloves
|
||||
if(!stat)
|
||||
var/prot = 0
|
||||
var/mob/living/carbon/human/H = user
|
||||
|
||||
if(istype(H))
|
||||
if(H.species.heat_level_1 > LIGHT_BULB_TEMPERATURE)
|
||||
prot = 1
|
||||
else if(H.gloves)
|
||||
var/obj/item/clothing/gloves/G = H.gloves
|
||||
if(G.max_heat_protection_temperature && G.max_heat_protection_temperature > LIGHT_BULB_TEMPERATURE)
|
||||
prot = 1
|
||||
else
|
||||
prot = 1
|
||||
|
||||
if(prot || (COLD_RESISTANCE in user.mutations))
|
||||
to_chat(user, SPAN_NOTICE("You remove the light [fitting]."))
|
||||
else
|
||||
to_chat(user, SPAN_WARNING("You try to remove the light [fitting], but it's too hot and you don't want to burn your hand."))
|
||||
return // if burned, don't remove the light
|
||||
else
|
||||
to_chat(user, SPAN_NOTICE("You remove the light [fitting]."))
|
||||
|
||||
// create a light tube/bulb item and put it in the user's hand
|
||||
if(inserted_light)
|
||||
var/obj/item/light/L = new inserted_light()
|
||||
@@ -518,6 +494,8 @@
|
||||
|
||||
user.put_in_active_hand(L) //puts it in our active hand
|
||||
|
||||
to_chat(user, SPAN_NOTICE("You remove the light [fitting]."))
|
||||
|
||||
inserted_light = null
|
||||
|
||||
status = LIGHT_EMPTY
|
||||
|
||||
@@ -945,7 +945,7 @@
|
||||
return 0
|
||||
|
||||
//Autofire
|
||||
/obj/item/gun/proc/can_autofire()
|
||||
/obj/item/gun/proc/can_autofire(object, location, params)
|
||||
return (can_autofire && world.time >= next_fire_time)
|
||||
|
||||
/obj/item/gun/proc/update_maptext()
|
||||
|
||||
@@ -413,10 +413,10 @@
|
||||
is_wieldable = TRUE
|
||||
|
||||
firemodes = list(
|
||||
list(mode_name="2 second burst", burst=10, burst_delay = 1, fire_delay = 20),
|
||||
list(mode_name="4 second burst", burst=20, burst_delay = 1, fire_delay = 40),
|
||||
list(mode_name="6 second burst", burst=30, burst_delay = 1, fire_delay = 60),
|
||||
list(mode_name="point-burst auto", can_autofire = TRUE, burst = 1, fire_delay = 1, burst_accuracy = list(0,-1,-1,-2,-2,-2,-3,-3), dispersion = list(1.0, 1.0, 1.0, 1.0, 1.2))
|
||||
list(mode_name="2 second burst", burst=10, burst_delay = 1, fire_delay = 20, fire_delay_wielded = 20),
|
||||
list(mode_name="4 second burst", burst=20, burst_delay = 1, fire_delay = 40, fire_delay_wielded = 40),
|
||||
list(mode_name="6 second burst", burst=30, burst_delay = 1, fire_delay = 60, fire_delay_wielded = 60),
|
||||
list(mode_name="point-burst auto", can_autofire = TRUE, burst = 1, fire_delay = 1, fire_delay_wielded = 1, burst_accuracy = list(0,-1,-1,-2,-2,-2,-3,-3), dispersion = list(1.0, 1.0, 1.0, 1.0, 1.2))
|
||||
)
|
||||
|
||||
needspin = FALSE
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
list(mode_name="semiauto", can_autofire=0, burst=1),
|
||||
list(mode_name="3-round bursts", can_autofire=0, burst=3, burst_accuracy=list(1,0,0), dispersion=list(0, 10, 15)),
|
||||
list(mode_name="short bursts", can_autofire=0, burst=5, burst_accuracy=list(1,0,,-1,-1), dispersion=list(5, 10, 15, 20)),
|
||||
list(mode_name="full auto", can_autofire=1, burst=1, fire_delay=1, one_hand_fa_penalty=12, burst_accuracy = list(0,-1,-1,-2,-2,-2,-3,-3), dispersion = list(5, 10, 15, 20, 25))
|
||||
list(mode_name="full auto", can_autofire=1, burst=1, fire_delay=1, fire_delay_wielded=1, one_hand_fa_penalty=12, burst_accuracy = list(0,-1,-1,-2,-2,-2,-3,-3), dispersion = list(5, 10, 15, 20, 25))
|
||||
)
|
||||
|
||||
//Submachine guns and personal defence weapons, go.
|
||||
@@ -121,7 +121,7 @@
|
||||
list(mode_name="semiauto", burst=1, fire_delay=10),
|
||||
list(mode_name="3-round bursts", burst=3, burst_accuracy=list(1,0,0), dispersion=list(0, 5, 10)),
|
||||
list(mode_name="short bursts", burst=5, burst_accuracy=list(1,0,0,-1,-1), dispersion=list(5, 5, 15)),
|
||||
list(mode_name="full auto", can_autofire=1, burst=1, fire_delay=1, one_hand_fa_penalty=12, burst_accuracy = list(0,-1,-1,-2,-2,-2,-3,-3), dispersion = list(5, 10, 15, 20, 25)),
|
||||
list(mode_name="full auto", can_autofire=1, burst=1, fire_delay=1, fire_delay_wielded=1, one_hand_fa_penalty=12, burst_accuracy = list(0,-1,-1,-2,-2,-2,-3,-3), dispersion = list(5, 10, 15, 20, 25)),
|
||||
)
|
||||
|
||||
//slower to regain aim, more inaccurate if not wielding
|
||||
@@ -166,7 +166,7 @@
|
||||
knife_y_offset = 13
|
||||
firemodes = list(
|
||||
list(mode_name="semiauto", burst=1, fire_delay=8),
|
||||
list(mode_name="full auto", can_autofire=1, burst=1, fire_delay=1, one_hand_fa_penalty=22, burst_accuracy = list(0,-1,-1,-1,-2,-2,-2,-3), dispersion = list(5, 5, 10, 15, 20)),
|
||||
list(mode_name="full auto", can_autofire=1, burst=1, fire_delay=1, fire_delay_wielded=1, one_hand_fa_penalty=22, burst_accuracy = list(0,-1,-1,-1,-2,-2,-2,-3), dispersion = list(5, 5, 10, 15, 20)),
|
||||
)
|
||||
|
||||
fire_delay = 8
|
||||
@@ -194,7 +194,7 @@
|
||||
knife_x_offset = 23
|
||||
knife_y_offset = 13
|
||||
|
||||
firemodes = list(mode_name="semiauto", burst=1, fire_delay=12)
|
||||
firemodes = list(mode_name="semiauto", burst=1, fire_delay=12, fire_delay_wielded=12)
|
||||
|
||||
/obj/item/gun/projectile/automatic/rifle/carbine/update_icon()
|
||||
..()
|
||||
@@ -315,7 +315,7 @@
|
||||
firemodes = list(
|
||||
list(mode_name="short bursts", burst=5, burst_accuracy = list(1,0,0,-1,-1), dispersion = list(3, 6, 9)),
|
||||
list(mode_name="long bursts", burst=8, burst_accuracy = list(1,0,0,-1,-1,-1,-2,-2), dispersion = list(8)),
|
||||
list(mode_name="full auto", can_autofire=1, burst=1, fire_delay=1, one_hand_fa_penalty=12, burst_accuracy = list(0,-1,-1,-2,-2,-2,-3,-3), dispersion = list(5, 10, 15, 20, 25))
|
||||
list(mode_name="full auto", can_autofire=1, burst=1, fire_delay=1, fire_delay_wielded=1, one_hand_fa_penalty=12, burst_accuracy = list(0,-1,-1,-2,-2,-2,-3,-3), dispersion = list(5, 10, 15, 20, 25))
|
||||
)
|
||||
|
||||
var/cover_open = 0
|
||||
@@ -510,7 +510,7 @@
|
||||
accuracy_wielded = 0
|
||||
|
||||
firemodes = list(
|
||||
list(mode_name="semiauto", burst=1, fire_delay= 10),
|
||||
list(mode_name="semiauto", burst=1, fire_delay= 10, fire_delay_wielded=10),
|
||||
list(mode_name="3-round bursts", burst=3, burst_accuracy=list(0,-1,-1), dispersion=list(0, 10, 15))
|
||||
)
|
||||
|
||||
|
||||
@@ -127,9 +127,9 @@
|
||||
origin_tech = null
|
||||
|
||||
firemodes = list(
|
||||
list(mode_name="short bursts", can_autofire=0, burst=6, move_delay=8, burst_accuracy = list(0,-1,-1,-2,-2), dispersion = list(3, 6, 9)),
|
||||
list(mode_name="short bursts", can_autofire=0, burst=6, move_delay=8, burst_accuracy = list(0,-1,-1,-2,-2), dispersion = list(3, 6, 9)),
|
||||
list(mode_name="long bursts", can_autofire=0, burst=12, move_delay=9, burst_accuracy = list(0,-1,-1,-2,-2,-2,-3,-3), dispersion = list(8)),
|
||||
list(mode_name="full auto", can_autofire=1, burst=1, fire_delay=1, one_hand_fa_penalty=12, burst_accuracy = list(0,-1,-1,-2,-2,-2,-3,-3), dispersion = list(5, 10, 15, 20, 25))
|
||||
list(mode_name="full auto", can_autofire=1, burst=1, fire_delay=1, fire_delay_wielded=1, one_hand_fa_penalty=12, burst_accuracy = list(0,-1,-1,-2,-2,-2,-3,-3), dispersion = list(5, 10, 15, 20, 25))
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -180,7 +180,7 @@
|
||||
sel_mode = 1
|
||||
|
||||
firemodes = list(
|
||||
list(mode_name="semiauto", burst=1, fire_delay=0),
|
||||
list(mode_name="semiauto", burst=1, fire_delay=0, fire_delay_wielded=0),
|
||||
list(mode_name="3-round bursts", burst=3, burst_accuracy=list(1,0,0), dispersion=list(0, 10))
|
||||
)
|
||||
|
||||
|
||||
@@ -253,7 +253,7 @@
|
||||
auto_eject_sound = 'sound/weapons/smg_empty_alarm.ogg'
|
||||
|
||||
firemodes = list(
|
||||
list(mode_name="semiauto", burst=1, fire_delay=0),
|
||||
list(mode_name="semiauto", burst=1, fire_delay=0, fire_delay_wielded=0),
|
||||
list(mode_name="2-round bursts", burst=2, burst_accuracy=list(0,-1,-1), dispersion=list(0, 8))
|
||||
)
|
||||
|
||||
|
||||
@@ -134,6 +134,9 @@
|
||||
var/SM = (user == target) ? "your" : (target.name + "\'s")
|
||||
if(!L)
|
||||
return
|
||||
if(isvaurca(target))
|
||||
to_chat(usr, SPAN_WARNING("\The [src] won't pierce through [P] carapace!"))
|
||||
return
|
||||
if(L.rescued == TRUE)
|
||||
to_chat(usr, SPAN_NOTICE("[H]'s ribs are already punctured!"))
|
||||
return
|
||||
|
||||
@@ -240,4 +240,9 @@
|
||||
/datum/design/circuit/machine/slime_extractor
|
||||
name = "Slime Extractor"
|
||||
req_tech = list(TECH_BIO = 2, TECH_ENGINEERING = 1, TECH_BLUESPACE = 1)
|
||||
build_path = /obj/item/circuitboard/slime_extractor
|
||||
build_path = /obj/item/circuitboard/slime_extractor
|
||||
|
||||
/datum/design/circuit/machine/iv_drip
|
||||
name = "IV drip"
|
||||
req_tech = list(TECH_DATA = 1, TECH_BIO = 2)
|
||||
build_path = /obj/item/circuitboard/iv_drip
|
||||
@@ -99,7 +99,7 @@
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
user.visible_message("<b>[user]</b> has closed the maintenance hatch on [target]'s [affected.name] with \the [tool].", \
|
||||
SPAN_NOTICE("You have closed the maintenance hatch on [target]'s [affected.name] with \the [tool]."),)
|
||||
affected.open = ORGAN_OPEN_INCISION
|
||||
affected.open = ORGAN_CLOSED
|
||||
|
||||
/decl/surgery_step/robotics/screw_hatch/fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
|
||||
Reference in New Issue
Block a user