mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-24 05:23:22 +01:00
Merge branch 'upstream-master' into placeholder
This commit is contained in:
@@ -177,6 +177,8 @@
|
||||
|
||||
/obj/item/device/radio/headset/alt/double
|
||||
name = "soundproof headset"
|
||||
desc = "A sound isolating version of the common radio headset."
|
||||
desc_info = "This radio doubles as a pair of earmuffs by providing sound protection."
|
||||
icon_state = "earset"
|
||||
item_state = "earset"
|
||||
item_flags = SOUNDPROTECTION
|
||||
@@ -184,6 +186,8 @@
|
||||
|
||||
/obj/item/device/radio/headset/wrist
|
||||
name = "wristbound radio"
|
||||
desc = "A radio designed to fit on the wrist. Often known for broadcasting loudly enough that those closeby might overhear it."
|
||||
desc_info = "This radio can be heard by people standing next to the one wearing it."
|
||||
icon_state = "wristset"
|
||||
item_state = "wristset"
|
||||
slot_flags = SLOT_WRISTS
|
||||
|
||||
@@ -639,7 +639,7 @@ BREATH ANALYZER
|
||||
name = "zeng-hu body analyzer"
|
||||
desc = "An expensive and varied-use health analyzer that prints full-body scans after a short scanning delay."
|
||||
icon_state = "zh-analyzer"
|
||||
item_state = "healthanalyzer"
|
||||
item_state = "zh-analyzer"
|
||||
slot_flags = SLOT_BELT
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
origin_tech = list(TECH_MAGNET = 2, TECH_BIO = 3)
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
/obj/structure/easel/Initialize(ml, _mat, _reinf_mat)
|
||||
. = ..()
|
||||
moved_event.register(src, src, /obj/structure/easel/proc/move_painting)
|
||||
material = SSmaterials.get_material_by_name(MATERIAL_WOOD)
|
||||
|
||||
/obj/structure/easel/Destroy()
|
||||
painting = null
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
icon_state = "[initial(icon_state)]-[amount]"
|
||||
else
|
||||
icon_state = "[initial(icon_state)]-empty"
|
||||
check_maptext(SMALL_FONTS(7, amount))
|
||||
|
||||
/obj/item/stack/nanopaste/attack(atom/M, mob/user, var/target_zone)
|
||||
if(!ismob(M) || !istype(user))
|
||||
|
||||
@@ -61,6 +61,7 @@ var/global/list/datum/stack_recipe/rod_recipes = list(
|
||||
icon_state = "rods-[amount]"
|
||||
else
|
||||
icon_state = "rods"
|
||||
check_maptext(SMALL_FONTS(7, amount))
|
||||
|
||||
/obj/item/stack/rods/attackby(obj/item/W as obj, mob/user as mob)
|
||||
..()
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
/obj/item/stack
|
||||
gender = PLURAL
|
||||
origin_tech = list(TECH_MATERIAL = 1)
|
||||
flags = HELDMAPTEXT
|
||||
var/list/datum/stack_recipe/recipes
|
||||
var/singular_name
|
||||
var/amount = 1
|
||||
@@ -43,6 +44,10 @@
|
||||
item_state = icon_state
|
||||
|
||||
update_icon()
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/obj/item/stack/LateInitialize()
|
||||
check_maptext(SMALL_FONTS(7, get_amount()))
|
||||
|
||||
/obj/item/stack/Destroy()
|
||||
if (src && usr && usr.machine == src)
|
||||
@@ -50,6 +55,8 @@
|
||||
return ..()
|
||||
|
||||
/obj/item/stack/update_icon()
|
||||
check_maptext(SMALL_FONTS(7, get_amount()))
|
||||
|
||||
if (!icon_has_variants)
|
||||
return ..()
|
||||
|
||||
@@ -212,6 +219,7 @@
|
||||
var/datum/matter_synth/S = synths[i]
|
||||
if(!S.use_charge(charge_costs[i] * used)) // Doesn't need to be deleted
|
||||
return 0
|
||||
check_maptext(SMALL_FONTS(7, get_amount()))
|
||||
return 1
|
||||
|
||||
/obj/item/stack/proc/add(var/extra)
|
||||
@@ -228,6 +236,7 @@
|
||||
for(var/i = 1 to uses_charge)
|
||||
var/datum/matter_synth/S = synths[i]
|
||||
S.add_charge(charge_costs[i] * extra)
|
||||
check_maptext(SMALL_FONTS(7, get_amount()))
|
||||
|
||||
/*
|
||||
The transfer and split procs work differently than use() and add().
|
||||
|
||||
@@ -233,3 +233,7 @@
|
||||
/obj/item/trash/vkrexitaffy
|
||||
name = "V'krexi Snax"
|
||||
icon_state = "vkrexitaffy"
|
||||
|
||||
/obj/item/trash/broken_electronics
|
||||
name = "broken electronics"
|
||||
icon_state = "door_electronics_smoked"
|
||||
@@ -121,6 +121,8 @@ var/const/NO_EMAG_ACT = -50
|
||||
var/dorm = 0 // determines if this ID has claimed a dorm already
|
||||
var/datum/ntnet_user/chat_user
|
||||
|
||||
var/iff_faction = IFF_DEFAULT
|
||||
|
||||
/obj/item/card/id/Destroy()
|
||||
mob = null
|
||||
return ..()
|
||||
@@ -367,7 +369,7 @@ var/const/NO_EMAG_ACT = -50
|
||||
item_state = "gold_id"
|
||||
overlay_state = "gold"
|
||||
|
||||
/obj/item/card/id/syndicate_command
|
||||
/obj/item/card/id/syndicate/command
|
||||
name = "syndicate ID card"
|
||||
desc = "An ID straight from the Syndicate."
|
||||
icon_state = "dark"
|
||||
@@ -375,14 +377,14 @@ var/const/NO_EMAG_ACT = -50
|
||||
assignment = "Syndicate Overlord"
|
||||
access = list(access_syndicate, access_external_airlocks)
|
||||
|
||||
/obj/item/card/id/syndicate_ert
|
||||
/obj/item/card/id/syndicate/ert
|
||||
name = "\improper Syndicate Commando ID"
|
||||
assignment = "Commando"
|
||||
icon_state = "centcom"
|
||||
|
||||
/obj/item/card/id/syndicate_ert/New()
|
||||
/obj/item/card/id/syndicate/ert/Initialize()
|
||||
. = ..()
|
||||
access = get_all_accesses()
|
||||
..()
|
||||
|
||||
/obj/item/card/id/syndicate/raider
|
||||
name = "passport"
|
||||
@@ -602,12 +604,14 @@ var/const/NO_EMAG_ACT = -50
|
||||
desc = "A stylized plastic card, belonging to one of the many specialists at Einstein Engines."
|
||||
icon_state = "einstein_card"
|
||||
overlay_state = "einstein_card"
|
||||
iff_faction = IFF_EE
|
||||
|
||||
/obj/item/card/id/bluespace
|
||||
name = "bluespace identification card"
|
||||
desc = "A bizarre imitation of Nanotrasen identification cards. It seems to function normally as well."
|
||||
desc_antag = "Access can be copied from other ID cards by clicking on them."
|
||||
icon_state = "crystalid"
|
||||
iff_faction = IFF_BLUESPACE
|
||||
|
||||
/obj/item/card/id/bluespace/update_name()
|
||||
return
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
name = "agent card"
|
||||
assignment = "Agent"
|
||||
origin_tech = list(TECH_ILLEGAL = 3)
|
||||
iff_faction = IFF_SYNDICATE
|
||||
can_copy_access = TRUE
|
||||
access_copy_msg = "The microscanner activates as you pass it over the ID, copying its access."
|
||||
var/charge = 10000
|
||||
@@ -64,6 +65,8 @@
|
||||
entries[++entries.len] = list("name" = "Name", "value" = registered_name)
|
||||
entries[++entries.len] = list("name" = "Photo", "value" = "Update")
|
||||
entries[++entries.len] = list("name" = "Sex", "value" = sex)
|
||||
entries[++entries.len] = list("name" = "Citizenship", "value" = citizenship)
|
||||
entries[++entries.len] = list("name" = "Religion", "value" = religion)
|
||||
entries[++entries.len] = list("name" = "Factory Reset", "value" = "Use With Care")
|
||||
data["electronic_warfare"] = electronic_warfare
|
||||
data["entries"] = entries
|
||||
@@ -214,12 +217,25 @@
|
||||
src.sex = new_sex
|
||||
to_chat(user, "<span class='notice'>Sex changed to '[new_sex]'.</span>")
|
||||
. = 1
|
||||
if("Citizenship")
|
||||
var/new_citizenship = sanitize(input(user,"Which citizenship would you like to put on this card?","Agent Card Citizenship", citizenship) as null|text)
|
||||
if(!isnull(new_citizenship) && CanUseTopic(user,state))
|
||||
src.citizenship = new_citizenship
|
||||
to_chat(user, SPAN_NOTICE("Citizenship changed to '[new_citizenship]'."))
|
||||
. = 1
|
||||
if("Religion")
|
||||
var/new_religion = sanitize(input(user,"What religion would you like to put on this card?","Agent Card Religion", religion) as null|text)
|
||||
if(!isnull(new_religion) && CanUseTopic(user,state))
|
||||
src.religion = new_religion
|
||||
to_chat(user, SPAN_NOTICE("Religion changed to '[new_religion]'."))
|
||||
. = 1
|
||||
if("Factory Reset")
|
||||
if(alert("This will factory reset the card, including access and owner. Continue?", "Factory Reset", "No", "Yes") == "Yes" && CanUseTopic(user, state))
|
||||
age = initial(age)
|
||||
access = syndicate_access.Copy()
|
||||
assignment = initial(assignment)
|
||||
blood_type = initial(blood_type)
|
||||
citizenship = initial(citizenship)
|
||||
dna_hash = initial(dna_hash)
|
||||
electronic_warfare = initial(electronic_warfare)
|
||||
fingerprint_hash = initial(fingerprint_hash)
|
||||
@@ -227,6 +243,7 @@
|
||||
name = initial(name)
|
||||
registered_name = initial(registered_name)
|
||||
unset_registered_user()
|
||||
religion = initial(religion)
|
||||
sex = initial(sex)
|
||||
to_chat(user, "<span class='notice'>All information has been deleted from \the [src].</span>")
|
||||
. = 1
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
/obj/item/circuitboard/broken
|
||||
name = "broken electronics"
|
||||
icon = 'icons/obj/doors/door_assembly.dmi'
|
||||
icon_state = "door_electronics_smoked"
|
||||
origin_tech = null
|
||||
board_type = "other"
|
||||
@@ -23,7 +23,7 @@
|
||||
var/loaded //Descriptive string for currently loaded food object.
|
||||
var/is_liquid = FALSE //whether you've got liquid on your utensil
|
||||
var/scoop_food = 1
|
||||
var/transfer_amt = 5
|
||||
var/transfer_amt = 1
|
||||
var/list/bite_sizes = list(1,2,3,4,5)
|
||||
|
||||
/obj/item/material/kitchen/utensil/Initialize(newloc, material_key)
|
||||
|
||||
@@ -1,16 +1,25 @@
|
||||
var/list/tape_roll_applications = list()
|
||||
|
||||
//Define all tape types in policetape.dm
|
||||
/obj/item/taperoll
|
||||
name = "tape roll"
|
||||
icon = 'icons/policetape.dmi'
|
||||
icon_state = "tape"
|
||||
w_class = ITEMSIZE_SMALL
|
||||
var/static/list/hazard_overlays
|
||||
var/turf/start
|
||||
var/turf/end
|
||||
var/tape_type = /obj/item/tape
|
||||
var/icon_base
|
||||
|
||||
var/list/image/hazard_overlays
|
||||
var/list/tape_roll_applications = list()
|
||||
/obj/item/taperoll/Initialize()
|
||||
. = ..()
|
||||
if(!hazard_overlays)
|
||||
hazard_overlays = list()
|
||||
hazard_overlays["[NORTH]"] = image('icons/effects/warning_stripes.dmi', icon_state = "N")
|
||||
hazard_overlays["[EAST]"] = image('icons/effects/warning_stripes.dmi', icon_state = "E")
|
||||
hazard_overlays["[SOUTH]"] = image('icons/effects/warning_stripes.dmi', icon_state = "S")
|
||||
hazard_overlays["[WEST]"] = image('icons/effects/warning_stripes.dmi', icon_state = "W")
|
||||
|
||||
/obj/item/tape
|
||||
name = "tape"
|
||||
@@ -26,15 +35,6 @@ var/list/tape_roll_applications = list()
|
||||
if(LAZYLEN(crumplers) && Adjacent(user))
|
||||
to_chat(user, SPAN_WARNING("\The [initial(name)] has been crumpled by [english_list(crumplers)]."))
|
||||
|
||||
/obj/item/tape/New()
|
||||
..()
|
||||
if(!hazard_overlays)
|
||||
hazard_overlays = list()
|
||||
hazard_overlays["[NORTH]"] = new/image('icons/effects/warning_stripes.dmi', icon_state = "N")
|
||||
hazard_overlays["[EAST]"] = new/image('icons/effects/warning_stripes.dmi', icon_state = "E")
|
||||
hazard_overlays["[SOUTH]"] = new/image('icons/effects/warning_stripes.dmi', icon_state = "S")
|
||||
hazard_overlays["[WEST]"] = new/image('icons/effects/warning_stripes.dmi', icon_state = "W")
|
||||
|
||||
/obj/item/taperoll/police
|
||||
name = "police tape"
|
||||
desc = "A roll of police tape used to block off crime scenes from the public."
|
||||
|
||||
@@ -924,3 +924,77 @@
|
||||
/obj/item/storage/box/folders/blue
|
||||
starts_with = list(/obj/item/folder/sec = 5)
|
||||
|
||||
/obj/item/storage/box/papersack
|
||||
name = "paper sack"
|
||||
desc = "A neatly sack crafted out of paper."
|
||||
item_icons = list(
|
||||
slot_l_hand_str = 'icons/mob/items/lefthand.dmi',
|
||||
slot_r_hand_str = 'icons/mob/items/righthand.dmi',
|
||||
)
|
||||
item_state = "papersack"
|
||||
icon_state = "paperbag_None"
|
||||
use_sound = 'sound/bureaucracy/papercrumple.ogg'
|
||||
drop_sound = 'sound/items/drop/paper.ogg'
|
||||
pickup_sound = 'sound/items/storage/wrapper.ogg'
|
||||
foldable = null
|
||||
max_w_class = ITEMSIZE_NORMAL
|
||||
max_storage_space = 8
|
||||
use_to_pickup = TRUE
|
||||
chewable = TRUE
|
||||
var/opened = TRUE
|
||||
var/static/list/papersack_designs
|
||||
var/choice = "None"
|
||||
|
||||
/obj/item/storage/box/papersack/update_icon()
|
||||
. = ..()
|
||||
if(length(contents) == 0)
|
||||
icon_state = "paperbag_[choice]"
|
||||
else if(length(contents) < 8)
|
||||
icon_state = "paperbag_[choice]-food"
|
||||
|
||||
/obj/item/storage/box/papersack/attackby(obj/item/O, mob/user)
|
||||
if(O.ispen())
|
||||
if(!papersack_designs)
|
||||
papersack_designs = sortList(list(
|
||||
"None" = image(icon = src.icon, icon_state = "paperbag_None"),
|
||||
"NanotrasenStandard" = image(icon = src.icon, icon_state = "paperbag_NanotrasenStandard"),
|
||||
"Idris" = image(icon = src.icon, icon_state = "paperbag_Idris"),
|
||||
"Heart" = image(icon = src.icon, icon_state = "paperbag_Heart"),
|
||||
"SmileyFace" = image(icon = src.icon, icon_state = "paperbag_SmileyFace")
|
||||
))
|
||||
|
||||
choice = show_radial_menu(user, src, papersack_designs, radius = 42, tooltips = TRUE)
|
||||
if(!choice)
|
||||
return
|
||||
switch(choice)
|
||||
if("None")
|
||||
desc = "A sack neatly crafted out of paper."
|
||||
if("NanotrasenStandard")
|
||||
desc = "A standard Nanotrasen paper lunch sack for loyal employees on the go."
|
||||
if("Idris")
|
||||
desc = "A premium paper bag produced by Idris Incorporated."
|
||||
if("Heart")
|
||||
desc = "A paper sack with a heart etched onto the side."
|
||||
if("SmileyFace")
|
||||
desc = "A paper sack with a crude smile etched onto the side."
|
||||
else
|
||||
return
|
||||
to_chat(user, SPAN_NOTICE("You make some modifications to [src] using your pen."))
|
||||
update_icon()
|
||||
return
|
||||
|
||||
else if(O.isscrewdriver())
|
||||
if(length(contents) == 0)
|
||||
to_chat(user, SPAN_NOTICE("You begin poking holes in \the [src]."))
|
||||
if (do_after(user, 10/O.toolspeed, act_target = src))
|
||||
if(choice == "SmileyFace")
|
||||
var/obj/item/clothing/head/papersack/smiley/S = new()
|
||||
user.put_in_hands(S)
|
||||
else
|
||||
var/obj/item/clothing/head/papersack/PS = new()
|
||||
user.put_in_hands(PS)
|
||||
qdel(src)
|
||||
else
|
||||
to_chat(user, SPAN_WARNING("\The [src] needs to be empty before you can do that!"))
|
||||
else
|
||||
..()
|
||||
@@ -77,7 +77,7 @@
|
||||
and hunting. It is a common practice for armies to confiscate villages productions, something that can cause resentment among farmers when their lands are occupied by the liberation \
|
||||
army, to feed their soldiers."
|
||||
|
||||
/obj/item/storage/field_ration/dpraa/create_ration()
|
||||
/obj/item/storage/field_ration/dpra/create_ration()
|
||||
new /obj/item/reagent_containers/food/snacks/explorer_ration(src)
|
||||
new /obj/item/reagent_containers/food/snacks/tajaran_bread(src)
|
||||
new /obj/item/reagent_containers/food/drinks/cans/adhomai_milk(src)
|
||||
|
||||
@@ -280,4 +280,13 @@
|
||||
item_state = "swimstars_xana"
|
||||
|
||||
/obj/item/storage/toolbox/lunchbox/swimstars_xana/filled
|
||||
filled = TRUE
|
||||
|
||||
/obj/item/storage/toolbox/lunchbox/sedantis
|
||||
name = "Sedantis lunchbox"
|
||||
desc = "A little lunchbox, displaying a proud Sedantis flag."
|
||||
icon_state = "lunchbox_sedantis"
|
||||
item_state = "lunchbox_sedantis"
|
||||
|
||||
/obj/item/storage/toolbox/lunchbox/sedantis/filled
|
||||
filled = TRUE
|
||||
@@ -172,17 +172,16 @@
|
||||
icon_state = initial(icon_state)
|
||||
ion_trail.stop()
|
||||
|
||||
if (ismob(usr))
|
||||
var/mob/M = usr
|
||||
M.update_inv_back()
|
||||
|
||||
to_chat(usr, "You toggle the thrusters [on? "on":"off"].")
|
||||
to_chat(usr, SPAN_NOTICE("You toggle the thrusters [on ? "on" : "off"]."))
|
||||
stabilization_on = !stabilization_on
|
||||
to_chat(usr, SPAN_NOTICE("You toggle the stabilization [stabilization_on ? "on" : "off"]."))
|
||||
|
||||
/obj/item/tank/jetpack/carbondioxide/synthetic/verb/toggle_stabilizer()
|
||||
set name = "Toggle Jetpack Stabilization"
|
||||
set category = "Robot Commands"
|
||||
src.stabilization_on = !( src.stabilization_on )
|
||||
to_chat(usr, "You toggle the stabilization [stabilization_on? "on":"off"].")
|
||||
|
||||
stabilization_on = !stabilization_on
|
||||
to_chat(usr, SPAN_NOTICE("You toggle the stabilization [stabilization_on ? "on" : "off"]."))
|
||||
|
||||
/obj/item/tank/jetpack/rig
|
||||
name = "hardsuit jetpack"
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
force = 15
|
||||
throwforce = 30
|
||||
w_class = ITEMSIZE_LARGE
|
||||
var/seed = /datum/seed/koisspore
|
||||
|
||||
/obj/item/grenade/spawnergrenade/vaurca/prime()
|
||||
|
||||
@@ -200,11 +201,17 @@
|
||||
M.flash_eyes()
|
||||
|
||||
for(var/i=1, i<=deliveryamt, i++)
|
||||
var/obj/machinery/portable_atmospherics/hydroponics/soil/invisible/x = new spawner_type(T, new /datum/seed/koisspore())
|
||||
var/obj/machinery/portable_atmospherics/hydroponics/soil/invisible/x = new spawner_type(T, new seed())
|
||||
x.tumble(4)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/item/grenade/spawnergrenade/vaurca/liidra
|
||||
name = "Black K'ois delivery pod"
|
||||
desc = "A device made for rapid spread of black k'ois."
|
||||
icon_state = "liibeacon"
|
||||
seed = /datum/seed/koisspore/black
|
||||
|
||||
/obj/item/clothing/suit/space/void/vaurca
|
||||
name = "voidsuit"
|
||||
contained_sprite = 1
|
||||
|
||||
Reference in New Issue
Block a user