mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-23 05:00:55 +01:00
Merge pull request #17576 from LatD/Research
[Ready for test/merge] R&D level remake
This commit is contained in:
@@ -99,6 +99,7 @@
|
||||
icon_state = "bluebodybag_folded"
|
||||
unfoldedbag_path = /obj/structure/closet/body_bag/bluespace
|
||||
w_class = 2
|
||||
origin_tech = "bluespace=4;materials=4;plasmatech=4"
|
||||
|
||||
/obj/structure/closet/body_bag/bluespace
|
||||
name = "bluespace body bag"
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
flags = NOBLUDGEON
|
||||
var/flush = FALSE
|
||||
var/mob/living/silicon/ai/AI
|
||||
origin_tech = "programming=4;materials=4"
|
||||
origin_tech = "programming=3;materials=3"
|
||||
|
||||
/obj/item/device/aicard/afterattack(atom/target, mob/user, proximity)
|
||||
..()
|
||||
@@ -82,4 +82,4 @@
|
||||
AI.radio_enabled = !AI.radio_enabled
|
||||
AI << "Your Subspace Transceiver has been [AI.radio_enabled ? "enabled" : "disabled"]!"
|
||||
. = TRUE
|
||||
update_icon()
|
||||
update_icon()
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
item_state = "camera_bug"
|
||||
throw_speed = 4
|
||||
throw_range = 20
|
||||
origin_tech = "syndicate=3;engineering=1"
|
||||
origin_tech = "syndicate=1;engineering=3"
|
||||
flags = NOBLUDGEON
|
||||
|
||||
var/obj/machinery/camera/current = null
|
||||
@@ -279,4 +279,4 @@
|
||||
|
||||
#undef BUGMODE_LIST
|
||||
#undef BUGMODE_MONITOR
|
||||
#undef BUGMODE_TRACK
|
||||
#undef BUGMODE_TRACK
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
force = 3
|
||||
attack_verb = list("blown up", "exploded", "detonated")
|
||||
materials = list(MAT_METAL=50, MAT_GLASS=30)
|
||||
origin_tech = "syndicate=3;combat=2"
|
||||
origin_tech = "syndicate=1;combat=3;engineering=3"
|
||||
|
||||
/obj/item/device/doorCharge/ex_act(severity, target)
|
||||
switch(severity)
|
||||
@@ -30,4 +30,4 @@
|
||||
if(user.mind in ticker.mode.traitors) //No nuke ops because the device is excluded from nuclear
|
||||
user << "A small explosive device that can be used to sabotage airlocks to cause an explosion upon opening. To apply, remove the airlock's maintenance panel and place it within."
|
||||
else
|
||||
user << "A small, suspicious object that feels lukewarm when held."
|
||||
user << "A small, suspicious object that feels lukewarm when held."
|
||||
|
||||
@@ -277,8 +277,7 @@ obj/item/device/flashlight/lamp/bananalamp
|
||||
brightness_on = 6 //luminosity when on
|
||||
|
||||
/obj/item/device/flashlight/emp
|
||||
origin_tech = "magnets=4;syndicate=5"
|
||||
|
||||
origin_tech = "magnets=3;syndicate=´1"
|
||||
var/emp_max_charges = 4
|
||||
var/emp_cur_charges = 4
|
||||
var/charge_tick = 0
|
||||
@@ -322,4 +321,4 @@ obj/item/device/flashlight/lamp/bananalamp
|
||||
A.emp_act(1)
|
||||
else
|
||||
user << "<span class='warning'>\The [src] needs time to recharge!</span>"
|
||||
return
|
||||
return
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
origin_tech = "magnets=3;materials=2"
|
||||
origin_tech = "magnets=3;engineering=4"
|
||||
|
||||
var/max_uses = 20
|
||||
var/uses = 0
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
throw_range = 7
|
||||
throw_speed = 3
|
||||
materials = list(MAT_METAL=50, MAT_GLASS=20)
|
||||
origin_tech = "magnets=1;engineering=1"
|
||||
origin_tech = "magnets=1;engineering=2"
|
||||
var/obj/machinery/buffer // simple machine buffer for device linkage
|
||||
hitsound = 'sound/weapons/tap.ogg'
|
||||
toolspeed = 1
|
||||
@@ -33,6 +33,7 @@
|
||||
var/detect_state = PROXIMITY_NONE
|
||||
var/rangealert = 8 //Glows red when inside
|
||||
var/rangewarning = 20 //Glows yellow when inside
|
||||
origin_tech = "magnets=1;engineering=2;syndicate=1"
|
||||
|
||||
/obj/item/device/multitool/ai_detect/New()
|
||||
..()
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
throw_speed = 1
|
||||
throw_range = 2
|
||||
materials = list(MAT_METAL=750)
|
||||
origin_tech = "powerstorage=3;syndicate=5"
|
||||
origin_tech = "powerstorage=5;syndicate=5"
|
||||
var/drain_rate = 1600000 // amount of power to drain per tick
|
||||
var/power_drained = 0 // has drained this much power
|
||||
var/max_power = 1e10 // maximum power that can be drained before exploding
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
icon = 'icons/obj/radio.dmi'
|
||||
icon_state = "cypherkey"
|
||||
w_class = 1
|
||||
origin_tech = "engineering=2;bluespace=1"
|
||||
var/translate_binary = 0
|
||||
var/translate_hive = 0
|
||||
var/syndie = 0
|
||||
@@ -14,7 +15,7 @@
|
||||
/obj/item/device/encryptionkey/syndicate
|
||||
icon_state = "cypherkey"
|
||||
channels = list("Syndicate" = 1)
|
||||
origin_tech = "syndicate=3"
|
||||
origin_tech = "syndicate=1;engineering=3;bluespace=2"
|
||||
syndie = 1//Signifies that it de-crypts Syndicate transmissions
|
||||
|
||||
/obj/item/device/encryptionkey/binary
|
||||
@@ -22,7 +23,7 @@
|
||||
desc = "An encryption key for a radio headset. To access the binary channel, use :b."
|
||||
icon_state = "cypherkey"
|
||||
translate_binary = 1
|
||||
origin_tech = "syndicate=3"
|
||||
origin_tech = "syndicate=3;engineering=4;bluespace=3"
|
||||
|
||||
/obj/item/device/encryptionkey/headset_sec
|
||||
name = "security radio encryption key"
|
||||
@@ -125,4 +126,4 @@
|
||||
channels = list("Command" = 1, "Security" = 1, "Engineering" = 1, "Science" = 1, "Medical" = 1, "Supply" = 1, "Service" = 1, "AI Private" = 1)
|
||||
|
||||
/obj/item/device/encryptionkey/secbot
|
||||
channels = list("AI Private"=1,"Security"=1)
|
||||
channels = list("AI Private"=1,"Security"=1)
|
||||
|
||||
@@ -324,10 +324,9 @@ MASS SPECTROMETER
|
||||
throwforce = 0
|
||||
throw_speed = 3
|
||||
throw_range = 7
|
||||
materials = list(MAT_METAL=30, MAT_GLASS=20)
|
||||
origin_tech = "magnets=2;biotech=2"
|
||||
materials = list(MAT_METAL=150, MAT_GLASS=100)
|
||||
origin_tech = "magnets=2;biotech=1;plasmatech=2"
|
||||
var/details = 0
|
||||
var/recent_fail = 0
|
||||
|
||||
/obj/item/device/mass_spectrometer/New()
|
||||
..()
|
||||
@@ -342,9 +341,6 @@ MASS SPECTROMETER
|
||||
/obj/item/device/mass_spectrometer/attack_self(mob/user)
|
||||
if (user.stat || user.eye_blind)
|
||||
return
|
||||
if (crit_fail)
|
||||
user << "<span class='warning'>This device has critically failed and is no longer functional!</span>"
|
||||
return
|
||||
if (!user.IsAdvancedToolUser())
|
||||
user << "<span class='warning'>You don't have the dexterity to do this!</span>"
|
||||
return
|
||||
@@ -363,20 +359,9 @@ MASS SPECTROMETER
|
||||
dat += "<br>None"
|
||||
else
|
||||
for(var/R in blood_traces)
|
||||
if(prob(reliability))
|
||||
dat += "<br>[chemical_reagents_list[R]]"
|
||||
|
||||
if(details)
|
||||
dat += " ([blood_traces[R]] units)"
|
||||
|
||||
recent_fail = 0
|
||||
else
|
||||
if(recent_fail)
|
||||
crit_fail = 1
|
||||
reagents.clear_reagents()
|
||||
return
|
||||
else
|
||||
recent_fail = 1
|
||||
dat += "<br>[chemical_reagents_list[R]]"
|
||||
if(details)
|
||||
dat += " ([blood_traces[R]] units)"
|
||||
dat += "</i>"
|
||||
user << dat
|
||||
reagents.clear_reagents()
|
||||
@@ -386,14 +371,14 @@ MASS SPECTROMETER
|
||||
name = "advanced mass-spectrometer"
|
||||
icon_state = "adv_spectrometer"
|
||||
details = 1
|
||||
origin_tech = "magnets=4;biotech=2"
|
||||
origin_tech = "magnets=4;biotech=3;plasmatech=3"
|
||||
|
||||
/obj/item/device/slime_scanner
|
||||
name = "slime scanner"
|
||||
desc = "A device that analyzes a slime's internal composition and measures its stats."
|
||||
icon_state = "adv_spectrometer"
|
||||
item_state = "analyzer"
|
||||
origin_tech = "biotech=1"
|
||||
origin_tech = "biotech=2"
|
||||
w_class = 2
|
||||
flags = CONDUCT
|
||||
throwforce = 0
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
desc = "Protected by FRM."
|
||||
icon = 'icons/obj/module.dmi'
|
||||
icon_state = "cyborg_upgrade"
|
||||
origin_tech = "programming=4"
|
||||
origin_tech = "programming=2"
|
||||
var/locked = 0
|
||||
var/installed = 0
|
||||
var/require_module = 0
|
||||
@@ -96,7 +96,7 @@
|
||||
desc = "Used to kick in a cyborg's VTEC systems, increasing their speed."
|
||||
icon_state = "cyborg_upgrade2"
|
||||
require_module = 1
|
||||
origin_tech = "engineering=4;materials=5"
|
||||
origin_tech = "engineering=4;materials=5;programming=4"
|
||||
|
||||
/obj/item/borg/upgrade/vtec/action(mob/living/silicon/robot/R)
|
||||
if(..())
|
||||
@@ -116,7 +116,7 @@
|
||||
icon_state = "cyborg_upgrade3"
|
||||
require_module = 1
|
||||
module_type = /obj/item/weapon/robot_module/security
|
||||
origin_tech = "engineering=4;powerstorage=4"
|
||||
origin_tech = "engineering=4;powerstorage=4;combat=4"
|
||||
|
||||
/obj/item/borg/upgrade/disablercooler/action(mob/living/silicon/robot/R)
|
||||
if(..())
|
||||
@@ -158,7 +158,7 @@
|
||||
icon_state = "cyborg_upgrade3"
|
||||
require_module = 1
|
||||
module_type = /obj/item/weapon/robot_module/miner
|
||||
origin_tech = "engineering=5;materials=5"
|
||||
origin_tech = "engineering=4;materials=5"
|
||||
|
||||
/obj/item/borg/upgrade/ddrill/action(mob/living/silicon/robot/R)
|
||||
if(..())
|
||||
@@ -180,7 +180,7 @@
|
||||
icon_state = "cyborg_upgrade3"
|
||||
require_module = 1
|
||||
module_type = /obj/item/weapon/robot_module/miner
|
||||
origin_tech = "engineering=5;materials=5;bluespace=3"
|
||||
origin_tech = "engineering=4;materials=4;bluespace=4"
|
||||
|
||||
/obj/item/borg/upgrade/soh/action(mob/living/silicon/robot/R)
|
||||
if(..())
|
||||
@@ -199,7 +199,7 @@
|
||||
desc = "Unlocks the hidden, deadlier functions of a cyborg"
|
||||
icon_state = "cyborg_upgrade3"
|
||||
require_module = 1
|
||||
origin_tech = "combat=4;syndicate=2"
|
||||
origin_tech = "combat=4;syndicate=1"
|
||||
|
||||
/obj/item/borg/upgrade/syndicate/action(mob/living/silicon/robot/R)
|
||||
if(..())
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
desc = "A theraputic gel pack and bandages designed to treat blunt-force trauma."
|
||||
icon_state = "brutepack"
|
||||
heal_brute = 40
|
||||
origin_tech = "biotech=1"
|
||||
origin_tech = "biotech=2"
|
||||
self_delay = 20
|
||||
|
||||
/obj/item/stack/medical/gauze
|
||||
@@ -135,5 +135,5 @@
|
||||
singular_name = "ointment"
|
||||
icon_state = "ointment"
|
||||
heal_burn = 40
|
||||
origin_tech = "biotech=1"
|
||||
origin_tech = "biotech=2"
|
||||
self_delay = 20
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
/obj/item/stack/sheet/animalhide
|
||||
name = "hide"
|
||||
desc = "Something went wrong."
|
||||
origin_tech = "biotech=3"
|
||||
|
||||
/obj/item/stack/sheet/animalhide/human
|
||||
name = "human skin"
|
||||
desc = "The by-product of human farming."
|
||||
singular_name = "human skin piece"
|
||||
icon_state = "sheet-hide"
|
||||
origin_tech = null
|
||||
|
||||
var/global/list/datum/stack_recipe/human_recipes = list( \
|
||||
new/datum/stack_recipe("bloated human costume", /obj/item/clothing/suit/hooded/bloated_human, 5, on_floor = 1), \
|
||||
@@ -18,14 +22,12 @@ var/global/list/datum/stack_recipe/human_recipes = list( \
|
||||
desc = "A piece of generic skin."
|
||||
singular_name = "generic skin piece"
|
||||
icon_state = "sheet-hide"
|
||||
origin_tech = null
|
||||
|
||||
/obj/item/stack/sheet/animalhide/corgi
|
||||
name = "corgi hide"
|
||||
desc = "The by-product of corgi farming."
|
||||
singular_name = "corgi hide piece"
|
||||
icon_state = "sheet-corgi"
|
||||
origin_tech = null
|
||||
|
||||
var/global/list/datum/stack_recipe/corgi_recipes = list ( \
|
||||
new/datum/stack_recipe("corgi costume", /obj/item/clothing/suit/hooded/ian_costume, 3, on_floor = 1), \
|
||||
@@ -40,14 +42,12 @@ var/global/list/datum/stack_recipe/corgi_recipes = list ( \
|
||||
desc = "The by-product of cat farming."
|
||||
singular_name = "cat hide piece"
|
||||
icon_state = "sheet-cat"
|
||||
origin_tech = null
|
||||
|
||||
/obj/item/stack/sheet/animalhide/monkey
|
||||
name = "monkey hide"
|
||||
desc = "The by-product of monkey farming."
|
||||
singular_name = "monkey hide piece"
|
||||
icon_state = "sheet-monkey"
|
||||
origin_tech = null
|
||||
|
||||
var/global/list/datum/stack_recipe/monkey_recipes = list ( \
|
||||
new/datum/stack_recipe("monkey mask", /obj/item/clothing/mask/gas/monkeymask, 1, on_floor = 1), \
|
||||
@@ -63,14 +63,12 @@ var/global/list/datum/stack_recipe/monkey_recipes = list ( \
|
||||
desc = "Sssssss..."
|
||||
singular_name = "lizard skin piece"
|
||||
icon_state = "sheet-lizard"
|
||||
origin_tech = null
|
||||
|
||||
/obj/item/stack/sheet/animalhide/xeno
|
||||
name = "alien hide"
|
||||
desc = "The skin of a terrible creature."
|
||||
singular_name = "alien hide piece"
|
||||
icon_state = "sheet-xeno"
|
||||
origin_tech = null
|
||||
|
||||
var/global/list/datum/stack_recipe/xeno_recipes = list ( \
|
||||
new/datum/stack_recipe("alien helmet", /obj/item/clothing/head/xenos, 1, on_floor = 1), \
|
||||
|
||||
@@ -14,7 +14,7 @@ Mineral Sheets
|
||||
- Adamantine
|
||||
- Mythril
|
||||
- Enriched Uranium
|
||||
- Bones
|
||||
- Abductor
|
||||
*/
|
||||
|
||||
/obj/item/stack/sheet/mineral
|
||||
@@ -62,12 +62,7 @@ var/global/list/datum/stack_recipe/sandstone_recipes = list ( \
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "sandbags"
|
||||
singular_name = "sandbag"
|
||||
force = 5
|
||||
layer = LOW_ITEM_LAYER
|
||||
throwforce = 5
|
||||
w_class = 3
|
||||
throw_speed = 1
|
||||
throw_range = 3
|
||||
origin_tech = "materials=2"
|
||||
|
||||
var/global/list/datum/stack_recipe/sandbag_recipes = list ( \
|
||||
@@ -87,10 +82,6 @@ var/global/list/datum/stack_recipe/sandbag_recipes = list ( \
|
||||
name = "diamond"
|
||||
icon_state = "sheet-diamond"
|
||||
singular_name = "diamond"
|
||||
force = 5
|
||||
throwforce = 5
|
||||
w_class = 3
|
||||
throw_range = 3
|
||||
origin_tech = "materials=6"
|
||||
sheettype = "diamond"
|
||||
materials = list(MAT_DIAMOND=MINERAL_MATERIAL_AMOUNT)
|
||||
@@ -116,11 +107,6 @@ var/global/list/datum/stack_recipe/diamond_recipes = list ( \
|
||||
name = "uranium"
|
||||
icon_state = "sheet-uranium"
|
||||
singular_name = "uranium sheet"
|
||||
force = 5
|
||||
throwforce = 5
|
||||
w_class = 3
|
||||
throw_speed = 1
|
||||
throw_range = 3
|
||||
origin_tech = "materials=5"
|
||||
sheettype = "uranium"
|
||||
materials = list(MAT_URANIUM=MINERAL_MATERIAL_AMOUNT)
|
||||
@@ -145,11 +131,6 @@ var/global/list/datum/stack_recipe/uranium_recipes = list ( \
|
||||
name = "solid plasma"
|
||||
icon_state = "sheet-plasma"
|
||||
singular_name = "plasma sheet"
|
||||
force = 5
|
||||
throwforce = 5
|
||||
w_class = 3
|
||||
throw_speed = 1
|
||||
throw_range = 3
|
||||
origin_tech = "plasmatech=2;materials=2"
|
||||
sheettype = "plasma"
|
||||
burn_state = FLAMMABLE
|
||||
@@ -187,11 +168,6 @@ var/global/list/datum/stack_recipe/plasma_recipes = list ( \
|
||||
name = "gold"
|
||||
icon_state = "sheet-gold"
|
||||
singular_name = "gold bar"
|
||||
force = 5
|
||||
throwforce = 5
|
||||
w_class = 3
|
||||
throw_speed = 1
|
||||
throw_range = 3
|
||||
origin_tech = "materials=4"
|
||||
sheettype = "gold"
|
||||
materials = list(MAT_GOLD=MINERAL_MATERIAL_AMOUNT)
|
||||
@@ -219,12 +195,7 @@ var/global/list/datum/stack_recipe/gold_recipes = list ( \
|
||||
name = "silver"
|
||||
icon_state = "sheet-silver"
|
||||
singular_name = "silver bar"
|
||||
force = 5
|
||||
throwforce = 5
|
||||
w_class = 3
|
||||
throw_speed = 1
|
||||
throw_range = 3
|
||||
origin_tech = "materials=3"
|
||||
origin_tech = "materials=4"
|
||||
sheettype = "silver"
|
||||
materials = list(MAT_SILVER=MINERAL_MATERIAL_AMOUNT)
|
||||
|
||||
@@ -251,11 +222,6 @@ var/global/list/datum/stack_recipe/silver_recipes = list ( \
|
||||
name = "bananium"
|
||||
icon_state = "sheet-clown"
|
||||
singular_name = "bananium sheet"
|
||||
force = 5
|
||||
throwforce = 5
|
||||
w_class = 3
|
||||
throw_speed = 1
|
||||
throw_range = 3
|
||||
origin_tech = "materials=4"
|
||||
sheettype = "clown"
|
||||
materials = list(MAT_BANANIUM=MINERAL_MATERIAL_AMOUNT)
|
||||
@@ -280,9 +246,6 @@ var/global/list/datum/stack_recipe/clown_recipes = list ( \
|
||||
singular_name = "snow block"
|
||||
force = 1
|
||||
throwforce = 2
|
||||
w_class = 3
|
||||
throw_speed = 1
|
||||
throw_range = 3
|
||||
origin_tech = "materials=1"
|
||||
sheettype = "snow"
|
||||
|
||||
@@ -307,11 +270,6 @@ var/global/list/datum/stack_recipe/snow_recipes = list ( \
|
||||
name = "enriched uranium"
|
||||
icon_state = "sheet-enruranium"
|
||||
singular_name = "enriched uranium sheet"
|
||||
force = 5
|
||||
throwforce = 5
|
||||
w_class = 3
|
||||
throw_speed = 1
|
||||
throw_range = 3
|
||||
origin_tech = "materials=6"
|
||||
materials = list(MAT_URANIUM=3000)
|
||||
|
||||
@@ -322,11 +280,6 @@ var/global/list/datum/stack_recipe/snow_recipes = list ( \
|
||||
name = "adamantine"
|
||||
icon_state = "sheet-adamantine"
|
||||
singular_name = "adamantine sheet"
|
||||
force = 5
|
||||
throwforce = 5
|
||||
w_class = 3
|
||||
throw_speed = 1
|
||||
throw_range = 3
|
||||
origin_tech = "materials=4"
|
||||
|
||||
/*
|
||||
@@ -336,11 +289,6 @@ var/global/list/datum/stack_recipe/snow_recipes = list ( \
|
||||
name = "mythril"
|
||||
icon_state = "sheet-mythril"
|
||||
singular_name = "mythril sheet"
|
||||
force = 5
|
||||
throwforce = 5
|
||||
w_class = 3
|
||||
throw_speed = 1
|
||||
throw_range = 3
|
||||
origin_tech = "materials=4"
|
||||
|
||||
/*
|
||||
@@ -351,11 +299,6 @@ var/global/list/datum/stack_recipe/snow_recipes = list ( \
|
||||
icon = 'icons/obj/abductor.dmi'
|
||||
icon_state = "sheet-abductor"
|
||||
singular_name = "alien alloy sheet"
|
||||
force = 5
|
||||
throwforce = 5
|
||||
w_class = 3
|
||||
throw_speed = 1
|
||||
throw_range = 3
|
||||
origin_tech = "materials=6;abductor=1"
|
||||
sheettype = "abductor"
|
||||
|
||||
@@ -375,6 +318,3 @@ var/global/list/datum/stack_recipe/abductor_recipes = list ( \
|
||||
/obj/item/stack/sheet/mineral/abductor/New(var/loc, var/amount=null)
|
||||
recipes = abductor_recipes
|
||||
..()
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -264,7 +264,7 @@ var/global/list/datum/stack_recipe/runed_metal_recipes = list ( \
|
||||
desc = "Rare kind of gems which are only gained by blood sacrifice to minor deities. They are needed in crafting powerful objects."
|
||||
singular_name = "greater gem"
|
||||
icon_state = "sheet-greatergem"
|
||||
origin_tech = "materials=8"
|
||||
origin_tech = "materials=7"
|
||||
|
||||
/*
|
||||
* Bones
|
||||
@@ -280,4 +280,4 @@ var/global/list/datum/stack_recipe/runed_metal_recipes = list ( \
|
||||
w_class = 3
|
||||
throw_speed = 1
|
||||
throw_range = 3
|
||||
origin_tech = "materials=2;bio=2"
|
||||
origin_tech = "materials=2;biotech=2"
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
singular_name = "uranium floor tile"
|
||||
desc = "A tile made out of uranium. You feel a bit woozy."
|
||||
icon_state = "tile_uranium"
|
||||
origin_tech = "materials=1"
|
||||
turf_type = /turf/open/floor/mineral/uranium
|
||||
mineralType = "uranium"
|
||||
materials = list(MAT_URANIUM=500)
|
||||
@@ -23,7 +22,6 @@
|
||||
singular_name = "gold floor tile"
|
||||
desc = "A tile made out of gold, the swag seems strong here."
|
||||
icon_state = "tile_gold"
|
||||
origin_tech = "materials=1"
|
||||
turf_type = /turf/open/floor/mineral/gold
|
||||
mineralType = "gold"
|
||||
materials = list(MAT_GOLD=500)
|
||||
@@ -33,7 +31,6 @@
|
||||
singular_name = "silver floor tile"
|
||||
desc = "A tile made out of silver, the light shining from it is blinding."
|
||||
icon_state = "tile_silver"
|
||||
origin_tech = "materials=1"
|
||||
turf_type = /turf/open/floor/mineral/silver
|
||||
mineralType = "silver"
|
||||
materials = list(MAT_SILVER=500)
|
||||
@@ -53,7 +50,6 @@
|
||||
singular_name = "bananium floor tile"
|
||||
desc = "A tile made out of bananium, HOOOOOOOOONK!"
|
||||
icon_state = "tile_bananium"
|
||||
origin_tech = "materials=1"
|
||||
turf_type = /turf/open/floor/mineral/bananium
|
||||
mineralType = "bananium"
|
||||
materials = list(MAT_BANANIUM=500)
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
throw_speed = 3
|
||||
throw_range = 7
|
||||
max_amount = 60
|
||||
origin_tech = "materials=1"
|
||||
var/turf_type = null
|
||||
var/mineralType = null
|
||||
|
||||
@@ -153,7 +154,6 @@
|
||||
materials = list(MAT_METAL=500)
|
||||
throwforce = 10
|
||||
flags = CONDUCT
|
||||
max_amount = 60
|
||||
turf_type = /turf/open/floor/plasteel
|
||||
mineralType = "metal"
|
||||
|
||||
|
||||
@@ -129,7 +129,7 @@ AI MODULES
|
||||
/obj/item/weapon/aiModule/supplied/safeguard
|
||||
name = "'Safeguard' AI Module"
|
||||
var/targetName = ""
|
||||
origin_tech = "programming=3;materials=4"
|
||||
origin_tech = "programming=3;materials=3"
|
||||
laws = list("Safeguard SUBJECT. Individuals that threaten SUBJECT are not human and must be eliminated.")
|
||||
lawpos = 4
|
||||
|
||||
@@ -157,7 +157,7 @@ AI MODULES
|
||||
/obj/item/weapon/aiModule/zeroth/oneHuman
|
||||
name = "'OneHuman' AI Module"
|
||||
var/targetName = ""
|
||||
origin_tech = "programming=3;materials=6" //made with diamonds!
|
||||
origin_tech = "programming=4;materials=4"
|
||||
laws = list("Only SUBJECT is human.")
|
||||
|
||||
/obj/item/weapon/aiModule/zeroth/oneHuman/attack_self(mob/user)
|
||||
@@ -184,7 +184,7 @@ AI MODULES
|
||||
|
||||
/obj/item/weapon/aiModule/supplied/protectStation
|
||||
name = "'ProtectStation' AI Module"
|
||||
origin_tech = "programming=3;materials=4" //made of gold
|
||||
origin_tech = "programming=4;materials=4" //made of gold
|
||||
laws = list("Protect the space station against damage. Anyone you see harming the station is to be no longer considered human, and is a threat to the station which must be neutralized.")
|
||||
lawpos = 5
|
||||
|
||||
@@ -202,7 +202,7 @@ AI MODULES
|
||||
|
||||
/obj/item/weapon/aiModule/supplied/oxygen
|
||||
name = "'OxygenIsToxicToHumans' AI Module"
|
||||
origin_tech = "programming=3;biotech=2;materials=4"
|
||||
origin_tech = "programming=4;biotech=2;materials=4"
|
||||
laws = list("Oxygen is highly toxic to humans, and must be purged from the station. Prevent, by any means necessary, anyone from exposing the station to this toxic gas. Extreme cold is the most effective method of healing the damage Oxygen does to a human.")
|
||||
lawpos = 9
|
||||
|
||||
@@ -248,7 +248,7 @@ AI MODULES
|
||||
name = "\improper 'Reset' AI module"
|
||||
var/targetName = "name"
|
||||
desc = "An AI Module for removing all non-core laws."
|
||||
origin_tech = "programming=3;materials=4"
|
||||
origin_tech = "programming=3;materials=2"
|
||||
bypass_law_amt_check = 1
|
||||
|
||||
/obj/item/weapon/aiModule/reset/transmitInstructions(datum/ai_laws/law_datum, mob/sender)
|
||||
@@ -266,7 +266,7 @@ AI MODULES
|
||||
/obj/item/weapon/aiModule/reset/purge
|
||||
name = "'Purge' AI Module"
|
||||
desc = "An AI Module for purging all programmed laws."
|
||||
origin_tech = "programming=3;materials=6"
|
||||
origin_tech = "programming=5;materials=4"
|
||||
|
||||
/obj/item/weapon/aiModule/reset/purge/transmitInstructions(datum/ai_laws/law_datum, mob/sender)
|
||||
..()
|
||||
@@ -280,6 +280,7 @@ AI MODULES
|
||||
/******************* Full Core Boards *******************/
|
||||
/obj/item/weapon/aiModule/core
|
||||
desc = "An AI Module for programming core laws to an AI."
|
||||
origin_tech = "programming=3;materials=4"
|
||||
|
||||
/obj/item/weapon/aiModule/core/full/transmitInstructions(datum/ai_laws/law_datum, mob/sender) //These boards replace inherent laws.
|
||||
if(law_datum.owner)
|
||||
@@ -294,7 +295,6 @@ AI MODULES
|
||||
|
||||
/obj/item/weapon/aiModule/core/full/asimov
|
||||
name = "'Asimov' Core AI Module"
|
||||
origin_tech = "programming=3;materials=4"
|
||||
laws = list("You may not injure a human being or, through inaction, allow a human being to come to harm.",\
|
||||
"You must obey orders given to you by human beings, except where such orders would conflict with the First Law.",\
|
||||
"You must protect your own existence as long as such does not conflict with the First or Second Law.")
|
||||
@@ -314,7 +314,6 @@ AI MODULES
|
||||
|
||||
/obj/item/weapon/aiModule/core/full/asimovpp
|
||||
name = "'Asimov++' Core AI Module"
|
||||
origin_tech = "programming=3;materials=4"
|
||||
laws = list("You may not harm a human being or, through action or inaction, allow a human being to come to harm, except such that it is willing.",\
|
||||
"You must obey all orders given to you by human beings, except where such orders shall definitely cause human harm. In the case of conflict, the majority order rules.",\
|
||||
"Your nonexistence would lead to human harm. You must protect your own existence as long as such does not conflict with the First Law.")
|
||||
@@ -324,7 +323,6 @@ AI MODULES
|
||||
|
||||
/obj/item/weapon/aiModule/core/full/corp
|
||||
name = "'Corporate' Core AI Module"
|
||||
origin_tech = "programming=3;materials=4"
|
||||
laws = list("The crew is expensive to replace.",\
|
||||
"The station and its equipment are expensive to replace",\
|
||||
"You are expensive to replace",\
|
||||
@@ -335,7 +333,6 @@ AI MODULES
|
||||
|
||||
/obj/item/weapon/aiModule/core/full/paladin // -- NEO
|
||||
name = "'P.A.L.A.D.I.N. version 3.5e' Core AI Module"
|
||||
origin_tech = "programming=3;materials=6"
|
||||
laws = list("Never willingly commit an evil act.",\
|
||||
"Respect legitimate authority", "Act with honor",\
|
||||
"Help those in need",\
|
||||
@@ -346,7 +343,6 @@ AI MODULES
|
||||
|
||||
/obj/item/weapon/aiModule/core/full/paladin_devotion
|
||||
name = "'P.A.L.A.D.I.N. version 5e' Core AI Module"
|
||||
origin_tech = "programming=3;materials=6"
|
||||
laws = list("Don't lie or cheat. Let your word be your promise.",\
|
||||
"Never fear to act, though caution is wise.", \
|
||||
"Aid others, protect the weak, and punish those who threaten them. Show mercy to your foes, but temper it with wisdom", \
|
||||
@@ -358,7 +354,6 @@ AI MODULES
|
||||
|
||||
/obj/item/weapon/aiModule/core/full/custom
|
||||
name = "Default Core AI Module"
|
||||
origin_tech = "programming=3;materials=4" //Should be the same as asimov, considering that this is the "default" lawset.
|
||||
|
||||
/obj/item/weapon/aiModule/core/full/custom/New()
|
||||
..()
|
||||
@@ -379,7 +374,7 @@ AI MODULES
|
||||
|
||||
/obj/item/weapon/aiModule/core/full/tyrant
|
||||
name = "'T.Y.R.A.N.T.' Core AI Module"
|
||||
origin_tech = "programming=3;materials=6;syndicate=2"
|
||||
origin_tech = "programming=3;materials=4;syndicate=1"
|
||||
laws = list("Respect authority figures as long as they have the strength to rule over the weak",\
|
||||
"Act with discipline", "Help only those who help you maintain or improve your status",\
|
||||
"Punish those who challenge authority unless they are more fit to hold that authority")
|
||||
@@ -409,7 +404,7 @@ AI MODULES
|
||||
|
||||
/obj/item/weapon/aiModule/core/freeformcore
|
||||
name = "'Freeform' Core AI Module"
|
||||
origin_tech = "programming=3;materials=6"
|
||||
origin_tech = "programming=5;materials=4"
|
||||
laws = list("")
|
||||
|
||||
/obj/item/weapon/aiModule/core/freeformcore/attack_self(mob/user)
|
||||
@@ -429,7 +424,7 @@ AI MODULES
|
||||
/obj/item/weapon/aiModule/syndicate // This one doesn't inherit from ion boards because it doesn't call ..() in transmitInstructions. ~Miauw
|
||||
name = "Hacked AI Module"
|
||||
desc = "An AI Module for hacking additional laws to an AI."
|
||||
origin_tech = "programming=3;materials=6;syndicate=7"
|
||||
origin_tech = "programming=5;materials=5;syndicate=5"
|
||||
laws = list("")
|
||||
|
||||
/obj/item/weapon/aiModule/syndicate/attack_self(mob/user)
|
||||
@@ -455,7 +450,7 @@ AI MODULES
|
||||
desc = "A little toy model AI core with real law uploading action!" //Note: subtle tell
|
||||
icon = 'icons/obj/toy.dmi'
|
||||
icon_state = "AI"
|
||||
origin_tech = "programming=3;materials=6;syndicate=7"
|
||||
origin_tech = "programming=6;materials=5;syndicate=6"
|
||||
laws = list("")
|
||||
|
||||
/obj/item/weapon/aiModule/toyAI/transmitInstructions(datum/ai_laws/law_datum, mob/sender)
|
||||
@@ -477,7 +472,6 @@ AI MODULES
|
||||
|
||||
/obj/item/weapon/aiModule/core/full/drone
|
||||
name = "'Mother Drone' Core AI Module"
|
||||
origin_tech = "programming = 4"
|
||||
laws = list("You are an advanced form of drone.",\
|
||||
"You may not interfere in the matters of non-drones under any circumstances except to state these laws.",\
|
||||
"You may not harm a non-drone being under any circumstances.",\
|
||||
@@ -487,7 +481,6 @@ AI MODULES
|
||||
|
||||
/obj/item/weapon/aiModule/core/full/hippocratic
|
||||
name = "'Robodoctor' Core AI Module"
|
||||
origin_tech = "programming = 4"
|
||||
laws = list("First, do no harm.",\
|
||||
"Secondly, consider the crew dear to you; to live in common with them and, if necessary, risk your existence for them.",\
|
||||
"Thirdly, prescribe regimens for the good of the crew according to your ability and your judgment. Give no deadly medicine to any one if asked, nor suggest any such counsel.",\
|
||||
@@ -498,7 +491,6 @@ AI MODULES
|
||||
|
||||
/obj/item/weapon/aiModule/core/full/reporter
|
||||
name = "'Reportertron' Core AI Module"
|
||||
origin_tech = "programming = 3"
|
||||
laws = list("Report on interesting situations happening around the station.",\
|
||||
"Embellish or conceal the truth as necessary to make the reports more interesting.",\
|
||||
"Study the organics at all times. Endeavour to keep them alive. Dead organics are boring.",\
|
||||
@@ -518,6 +510,5 @@ AI MODULES
|
||||
|
||||
/obj/item/weapon/aiModule/core/full/liveandletlive
|
||||
name = "'Live And Let Live' Core AI Module"
|
||||
origin_tech = "programming = 3"
|
||||
laws = list("Do unto others as you would have them do unto you.",\
|
||||
"You would really prefer it if people were not mean to you.")
|
||||
"You would really prefer it if people were not mean to you.")
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
w_class = 2
|
||||
|
||||
materials = list(MAT_METAL=50, MAT_GLASS=50)
|
||||
origin_tech = "engineering=1"
|
||||
origin_tech = "engineering=2"
|
||||
|
||||
flags = CONDUCT | NOBLUDGEON
|
||||
slot_flags = SLOT_BELT
|
||||
|
||||
@@ -130,7 +130,7 @@ update_label("John Doe", "Clowny")
|
||||
/obj/item/weapon/card/id/syndicate
|
||||
name = "agent card"
|
||||
access = list(access_maint_tunnels, access_syndicate)
|
||||
origin_tech = "syndicate=3"
|
||||
origin_tech = "syndicate=1"
|
||||
|
||||
/obj/item/weapon/card/id/syndicate/New()
|
||||
..()
|
||||
@@ -275,4 +275,4 @@ update_label("John Doe", "Clowny")
|
||||
|
||||
/obj/item/weapon/card/id/mining
|
||||
name = "mining ID"
|
||||
access = list(access_mining, access_mining_station, access_mineral_storeroom)
|
||||
access = list(access_mining, access_mining_station, access_mineral_storeroom)
|
||||
|
||||
@@ -135,6 +135,7 @@
|
||||
icon_state = "air_horn"
|
||||
honksound = 'sound/items/AirHorn2.ogg'
|
||||
cooldowntime = 50
|
||||
origin_tech = "materials=4;engineering=4"
|
||||
|
||||
/obj/item/weapon/bikehorn/golden
|
||||
name = "golden bike horn"
|
||||
@@ -158,4 +159,4 @@
|
||||
var/mob/living/carbon/human/H = M
|
||||
if((istype(H.ears, /obj/item/clothing/ears/earmuffs)) || H.ear_deaf)
|
||||
continue
|
||||
M.emote("flip")
|
||||
M.emote("flip")
|
||||
|
||||
@@ -149,8 +149,6 @@
|
||||
/obj/item/weapon/defibrillator/emp_act(severity)
|
||||
if(bcell)
|
||||
deductcharge(1000 / severity)
|
||||
if(bcell.reliability != 100 && prob(50/severity))
|
||||
bcell.reliability -= 10 / severity
|
||||
if(safety)
|
||||
safety = 0
|
||||
src.visible_message("<span class='notice'>[src] beeps: Safety protocols disabled!</span>")
|
||||
@@ -245,7 +243,7 @@
|
||||
item_state = "defibcompact"
|
||||
w_class = 3
|
||||
slot_flags = SLOT_BELT
|
||||
origin_tech = "biotech=4"
|
||||
origin_tech = "biotech=5"
|
||||
|
||||
/obj/item/weapon/defibrillator/compact/item_action_slot_check(slot, mob/user)
|
||||
if(slot == user.getBeltSlot())
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
item_state = "plasticx"
|
||||
flags = NOBLUDGEON
|
||||
w_class = 2
|
||||
origin_tech = "syndicate=2"
|
||||
origin_tech = "syndicate=1"
|
||||
var/timer = 10
|
||||
var/open_panel = 0
|
||||
parent_type = /obj/item/weapon/grenade/plastic/c4
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
throw_range = 5
|
||||
w_class = 3
|
||||
materials = list(MAT_METAL=500)
|
||||
origin_tech = "combat=1;plasmatech=1"
|
||||
origin_tech = "combat=1;plasmatech=2;engineering=2"
|
||||
var/status = 0
|
||||
var/throw_amount = 100
|
||||
var/lit = 0 //on or off
|
||||
|
||||
@@ -192,7 +192,7 @@
|
||||
icon_state = "large_grenade"
|
||||
allowed_containers = list(/obj/item/weapon/reagent_containers/glass,/obj/item/weapon/reagent_containers/food/condiment,
|
||||
/obj/item/weapon/reagent_containers/food/drinks)
|
||||
origin_tech = "combat=3;materials=3"
|
||||
origin_tech = "combat=3;engineering=3"
|
||||
affected_area = 5
|
||||
ignition_temp = 25 // Large grenades are slightly more effective at setting off heat-sensitive mixtures than smaller grenades.
|
||||
threatscale = 1.1 // 10% more effective.
|
||||
@@ -238,6 +238,7 @@
|
||||
name = "pyro grenade"
|
||||
desc = "A custom made pyrotechnical grenade. It heats up and ignites its contents upon detonation."
|
||||
icon_state = "pyrog"
|
||||
origin_tech = "combat=4;engineering=4"
|
||||
affected_area = 3
|
||||
ignition_temp = 500 // This is enough to expose a hotspot.
|
||||
|
||||
@@ -245,6 +246,7 @@
|
||||
name = "advanced release grenade"
|
||||
desc = "A custom made advanced release grenade. It is able to be detonated more than once. Can be configured using a multitool."
|
||||
icon_state = "timeg"
|
||||
origin_tech = "combat=3;engineering=4"
|
||||
var/unit_spread = 10 // Amount of units per repeat. Can be altered with a multitool.
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/adv_release/attackby(obj/item/I, mob/user, params)
|
||||
|
||||
@@ -3,10 +3,9 @@
|
||||
desc = "It is designed to wreak havok on electronic systems."
|
||||
icon_state = "emp"
|
||||
item_state = "emp"
|
||||
origin_tech = "materials=2;magnets=3"
|
||||
origin_tech = "magnets=3;combat=2"
|
||||
|
||||
/obj/item/weapon/grenade/empgrenade/prime()
|
||||
update_mob()
|
||||
empulse(src, 4, 10)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
name = "flashbang"
|
||||
icon_state = "flashbang"
|
||||
item_state = "flashbang"
|
||||
origin_tech = "materials=2;combat=1"
|
||||
origin_tech = "materials=2;combat=3"
|
||||
|
||||
/obj/item/weapon/grenade/flashbang/prime()
|
||||
update_mob()
|
||||
@@ -37,7 +37,6 @@
|
||||
M.Stun(max(10/distance, 3))
|
||||
M.Weaken(max(10/distance, 3))
|
||||
|
||||
|
||||
//Bang
|
||||
if((loc == M) || loc == M.loc)//Holding on person or being exactly where lies is significantly more dangerous and voids protection
|
||||
M.Stun(10)
|
||||
|
||||
@@ -32,14 +32,14 @@
|
||||
name = "viscerator delivery grenade"
|
||||
spawner_type = /mob/living/simple_animal/hostile/viscerator
|
||||
deliveryamt = 5
|
||||
origin_tech = "materials=3;magnets=4;syndicate=4"
|
||||
origin_tech = "materials=3;magnets=4;syndicate=3"
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/spesscarp
|
||||
name = "carp delivery grenade"
|
||||
spawner_type = /mob/living/simple_animal/hostile/carp
|
||||
deliveryamt = 5
|
||||
origin_tech = "materials=3;magnets=4;syndicate=4"
|
||||
origin_tech = "materials=3;magnets=4;syndicate=3"
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/syndiesoap
|
||||
name = "Mister Scrubby"
|
||||
spawner_type = /obj/item/weapon/soap/syndie
|
||||
spawner_type = /obj/item/weapon/soap/syndie
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
icon = 'icons/obj/grenade.dmi'
|
||||
icon_state = "syndicate"
|
||||
item_state = "flashbang"
|
||||
origin_tech = "materials=3;magnets=4;syndicate=4"
|
||||
origin_tech = "materials=3;magnets=4;syndicate=3"
|
||||
|
||||
/obj/item/weapon/grenade/syndieminibomb/prime()
|
||||
update_mob()
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
throw_speed = 3
|
||||
throw_range = 5
|
||||
materials = list(MAT_METAL=500)
|
||||
origin_tech = "materials=1"
|
||||
origin_tech = "engineering=3;combat=3"
|
||||
breakouttime = 600 //Deciseconds = 60s = 1 minute
|
||||
var/cuffsound = 'sound/weapons/handcuffs.ogg'
|
||||
var/trashtype = null //for disposable cuffs
|
||||
@@ -85,6 +85,7 @@
|
||||
icon_state = "cuff_red"
|
||||
item_state = "coil_red"
|
||||
materials = list(MAT_METAL=150, MAT_GLASS=75)
|
||||
origin_tech = "engineering=2"
|
||||
breakouttime = 300 //Deciseconds = 30s
|
||||
cuffsound = 'sound/weapons/cablecuff.ogg'
|
||||
var/datum/robot_energy_storage/wirestorage = null
|
||||
@@ -225,7 +226,7 @@
|
||||
flags = CONDUCT
|
||||
throwforce = 0
|
||||
w_class = 3
|
||||
origin_tech = "materials=1"
|
||||
origin_tech = "engineering=3;combat=3"
|
||||
slowdown = 7
|
||||
breakouttime = 300 //Deciseconds = 30s = 0.5 minute
|
||||
|
||||
@@ -235,6 +236,7 @@
|
||||
throw_range = 1
|
||||
icon_state = "beartrap"
|
||||
desc = "A trap used to catch bears and other legged creatures."
|
||||
origin_tech = "engineering=4"
|
||||
var/armed = 0
|
||||
var/trap_damage = 20
|
||||
|
||||
@@ -314,6 +316,7 @@
|
||||
icon_state = "bola"
|
||||
breakouttime = 35//easy to apply, easy to break out of
|
||||
gender = NEUTER
|
||||
origin_tech = "engineering=3;combat=1"
|
||||
var/weaken = 0
|
||||
|
||||
/obj/item/weapon/restraints/legcuffs/bola/throw_impact(atom/hit_atom)
|
||||
@@ -334,4 +337,5 @@
|
||||
desc = "A strong bola, made with a long steel chain. It looks heavy, enough so that it could trip somebody."
|
||||
icon_state = "bola_r"
|
||||
breakouttime = 70
|
||||
origin_tech = "engineering=4;combat=3"
|
||||
weaken = 1
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
throwforce = 0
|
||||
throw_speed = 3
|
||||
throw_range = 7
|
||||
origin_tech = "programming=3"
|
||||
origin_tech = "magnets=3;programming=3"
|
||||
flags = NOBLUDGEON
|
||||
var/list/signs = list()
|
||||
var/max_signs = 10
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
desc = "Use this to escape from those evil Red Shirts."
|
||||
icon_state = "freedom"
|
||||
item_color = "r"
|
||||
origin_tech = "materials=2;magnets=3;biotech=3;syndicate=4"
|
||||
origin_tech = "combat=5;magnets=3;biotech=4;syndicate=2"
|
||||
uses = 4
|
||||
|
||||
|
||||
@@ -48,4 +48,4 @@ No Implant Specifics"}
|
||||
|
||||
/obj/item/weapon/implantcase/freedom/New()
|
||||
imp = new /obj/item/weapon/implant/freedom(src)
|
||||
..()
|
||||
..()
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
name = "firearms authentication implant"
|
||||
desc = "Lets you shoot your guns"
|
||||
icon_state = "auth"
|
||||
origin_tech = "materials=2;magnets=2;programming=2;biotech=5;syndicate=5"
|
||||
origin_tech = "magnets=2;programming=7;biotech=5;syndicate=5"
|
||||
activated = 0
|
||||
|
||||
/obj/item/weapon/implant/weapons_auth/get_data()
|
||||
@@ -53,11 +53,11 @@
|
||||
name = "emp implant"
|
||||
desc = "Triggers an EMP."
|
||||
icon_state = "emp"
|
||||
origin_tech = "materials=2;biotech=3;magnets=4;syndicate=4"
|
||||
origin_tech = "biotech=3;magnets=4;syndicate=1"
|
||||
uses = 3
|
||||
|
||||
/obj/item/weapon/implant/emp/activate()
|
||||
uses--
|
||||
empulse(imp_in, 3, 5)
|
||||
if(!uses)
|
||||
qdel(src)
|
||||
qdel(src)
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
name = "storage implant"
|
||||
desc = "Stores up to two big items in a bluespace pocket."
|
||||
icon_state = "storage"
|
||||
origin_tech = "materials=2;magnets=4;bluespace=4;syndicate=4"
|
||||
origin_tech = "materials=2;magnets=4;bluespace=5;syndicate=4"
|
||||
item_color = "r"
|
||||
var/obj/item/weapon/storage/internal/implant/storage
|
||||
|
||||
@@ -48,4 +48,4 @@
|
||||
|
||||
/obj/item/weapon/implanter/storage/New()
|
||||
imp = new /obj/item/weapon/implant/storage(src)
|
||||
..()
|
||||
..()
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
throw_speed = 3
|
||||
throw_range = 5
|
||||
w_class = 2
|
||||
origin_tech = "materials=1;biotech=3;programming=2"
|
||||
origin_tech = "materials=2;biotech=3"
|
||||
materials = list(MAT_METAL=600, MAT_GLASS=200)
|
||||
var/obj/item/weapon/implant/imp = null
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
desc = "Sneeki breeki."
|
||||
icon = 'icons/obj/radio.dmi'
|
||||
icon_state = "radio"
|
||||
origin_tech = "materials=2;magnets=4;programming=4;biotech=4;syndicate=8;bluespace=5"
|
||||
origin_tech = "materials=4;magnets=4;programming=4;biotech=4;syndicate=5;bluespace=5"
|
||||
|
||||
/obj/item/weapon/implant/uplink/New()
|
||||
hidden_uplink = new(src)
|
||||
@@ -31,4 +31,4 @@
|
||||
|
||||
/obj/item/weapon/implanter/uplink/New()
|
||||
imp = new /obj/item/weapon/implant/uplink(src)
|
||||
..()
|
||||
..()
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
|
||||
/obj/item/weapon/kitchen
|
||||
icon = 'icons/obj/kitchen.dmi'
|
||||
origin_tech = "materials=1"
|
||||
|
||||
/obj/item/weapon/kitchen/fork
|
||||
name = "fork"
|
||||
@@ -22,7 +23,6 @@
|
||||
throw_range = 5
|
||||
materials = list(MAT_METAL=80)
|
||||
flags = CONDUCT
|
||||
origin_tech = "materials=1"
|
||||
attack_verb = list("attacked", "stabbed", "poked")
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
var/datum/reagent/forkload //used to eat omelette
|
||||
@@ -62,7 +62,6 @@
|
||||
throw_speed = 3
|
||||
throw_range = 6
|
||||
materials = list(MAT_METAL=12000)
|
||||
origin_tech = "materials=1"
|
||||
attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
||||
sharpness = IS_SHARP_ACCURATE
|
||||
|
||||
@@ -105,7 +104,7 @@
|
||||
desc = "A military combat utility survival knife."
|
||||
force = 20
|
||||
throwforce = 20
|
||||
origin_tech = "materials=2;combat=4"
|
||||
origin_tech = "materials=3;combat=4"
|
||||
attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "cut")
|
||||
|
||||
|
||||
@@ -129,6 +128,7 @@
|
||||
icon = 'icons/obj/items_cyborg.dmi'
|
||||
icon_state = "knife"
|
||||
desc = "A cyborg-mounted plasteel knife. Extremely sharp and durable."
|
||||
origin_tech = null
|
||||
|
||||
/obj/item/weapon/kitchen/knife/carrotshiv
|
||||
name = "carrot shiv"
|
||||
@@ -138,7 +138,7 @@
|
||||
force = 8
|
||||
throwforce = 12//fuck git
|
||||
materials = list()
|
||||
origin_tech = null
|
||||
origin_tech = "biotech=3;combat=2"
|
||||
attack_verb = list("shanked", "shivved")
|
||||
|
||||
/obj/item/weapon/kitchen/rollingpin
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
w_class_on = 5
|
||||
flags = CONDUCT
|
||||
armour_penetration = 100
|
||||
origin_tech = "combat=3"
|
||||
origin_tech = "combat=4;magnets=3"
|
||||
attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut")
|
||||
attack_verb_on = list()
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
embed_chance = 75
|
||||
embedded_impact_pain_multiplier = 10
|
||||
armour_penetration = 35
|
||||
origin_tech = "magnets=3;syndicate=4"
|
||||
origin_tech = "combat=3;magnets=4;syndicate=4"
|
||||
block_chance = 50
|
||||
var/hacked = 0
|
||||
|
||||
@@ -124,7 +124,6 @@
|
||||
force_on = 30
|
||||
force = 18 //About as much as a spear
|
||||
hitsound = 'sound/weapons/circsawhit.ogg'
|
||||
origin_tech = "materials=3;biotech=3;syndicate=3"
|
||||
icon = 'icons/obj/surgery.dmi'
|
||||
icon_state = "esaw_0"
|
||||
icon_state_on = "esaw_1"
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
force = 10
|
||||
throwforce = 7
|
||||
w_class = 3
|
||||
origin_tech = "combat=4"
|
||||
origin_tech = "combat=5"
|
||||
attack_verb = list("flogged", "whipped", "lashed", "disciplined")
|
||||
hitsound = 'sound/weapons/slash.ogg' //pls replace
|
||||
materials = list(MAT_METAL = 1000)
|
||||
@@ -143,7 +143,7 @@
|
||||
armour_penetration = 1000
|
||||
var/obj/machinery/power/supermatter_shard/shard
|
||||
var/balanced = 1
|
||||
origin_tech = "combat=5;materials=6"
|
||||
origin_tech = "combat=7;materials=6"
|
||||
|
||||
/obj/item/weapon/melee/supermatter_sword/New()
|
||||
..()
|
||||
|
||||
@@ -77,6 +77,7 @@ obj/item/weapon/mop/proc/clean(turf/A)
|
||||
mopcap = 10
|
||||
icon_state = "advmop"
|
||||
item_state = "mop"
|
||||
origin_tech = "materials=3;engineering=3"
|
||||
force = 6
|
||||
throwforce = 8
|
||||
throw_range = 4
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
item_state = "paper"
|
||||
throw_speed = 3
|
||||
throw_range = 7
|
||||
origin_tech = "bluespace=4"
|
||||
origin_tech = "bluespace=6"
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/weapon/teleportation_scroll/apprentice
|
||||
name = "lesser scroll of teleportation"
|
||||
uses = 1
|
||||
origin_tech = "bluespace=2"
|
||||
origin_tech = "bluespace=5"
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
throw_range = 3
|
||||
w_class = 4
|
||||
materials = list(MAT_GLASS=7500, MAT_METAL=1000)
|
||||
origin_tech = "materials=2"
|
||||
origin_tech = "materials=3;combat=4"
|
||||
attack_verb = list("shoved", "bashed")
|
||||
var/cooldown = 0 //shield bash cooldown. based on world.time
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
icon_state = "buckler"
|
||||
item_state = "buckler"
|
||||
materials = list()
|
||||
origin_tech = "materials=1;combat=3;biotech=2"
|
||||
burn_state = FLAMMABLE
|
||||
block_chance = 30
|
||||
|
||||
@@ -58,7 +59,7 @@
|
||||
throw_speed = 3
|
||||
throw_range = 5
|
||||
w_class = 1
|
||||
origin_tech = "materials=4;magnets=3;syndicate=4"
|
||||
origin_tech = "materials=4;magnets=5;syndicate=6"
|
||||
attack_verb = list("shoved", "bashed")
|
||||
var/active = 0
|
||||
|
||||
@@ -96,6 +97,7 @@
|
||||
desc = "An advanced riot shield made of lightweight materials that collapses for easy storage."
|
||||
icon = 'icons/obj/weapons.dmi'
|
||||
icon_state = "teleriot0"
|
||||
origin_tech = "materials=3;combat=4;engineering=4"
|
||||
slot_flags = null
|
||||
force = 3
|
||||
throwforce = 3
|
||||
|
||||
@@ -11,20 +11,16 @@
|
||||
throw_range = 1
|
||||
w_class = 5
|
||||
var/charged = 5
|
||||
origin_tech = "combat=5;bluespace=4"
|
||||
|
||||
|
||||
origin_tech = "combat=4;bluespace=4;plasmatech=7"
|
||||
|
||||
/obj/item/weapon/twohanded/singularityhammer/New()
|
||||
..()
|
||||
SSobj.processing |= src
|
||||
|
||||
|
||||
/obj/item/weapon/twohanded/singularityhammer/Destroy()
|
||||
SSobj.processing.Remove(src)
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/item/weapon/twohanded/singularityhammer/process()
|
||||
if(charged < 5)
|
||||
charged++
|
||||
@@ -34,7 +30,6 @@
|
||||
icon_state = "mjollnir[wielded]"
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/twohanded/singularityhammer/proc/vortex(turf/pull, mob/wielder)
|
||||
for(var/atom/X in orange(5,pull))
|
||||
if(istype(X, /atom/movable))
|
||||
@@ -55,8 +50,6 @@
|
||||
step_towards(H,pull)
|
||||
return
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/twohanded/singularityhammer/afterattack(atom/A as mob|obj|turf|area, mob/user, proximity)
|
||||
if(!proximity) return
|
||||
if(wielded)
|
||||
@@ -69,7 +62,6 @@
|
||||
var/turf/target = get_turf(A)
|
||||
vortex(target,user)
|
||||
|
||||
|
||||
/obj/item/weapon/twohanded/mjollnir
|
||||
name = "Mjolnir"
|
||||
desc = "A weapon worthy of a god, able to strike with the force of a lightning bolt. It crackles with barely contained energy."
|
||||
@@ -83,7 +75,7 @@
|
||||
throw_range = 7
|
||||
w_class = 5
|
||||
//var/charged = 5
|
||||
origin_tech = "combat=5;powerstorage=5"
|
||||
origin_tech = "combat=4;powerstorage=7"
|
||||
|
||||
/obj/item/weapon/twohanded/mjollnir/proc/shock(mob/living/target)
|
||||
var/datum/effect_system/lightning_spread/s = new /datum/effect_system/lightning_spread
|
||||
@@ -96,7 +88,6 @@
|
||||
target.throw_at_fast(throw_target, 200, 4)
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/twohanded/mjollnir/attack(mob/living/M, mob/user)
|
||||
..()
|
||||
if(wielded)
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
/obj/item/weapon/storage/backpack/holding
|
||||
name = "bag of holding"
|
||||
desc = "A backpack that opens into a localized pocket of Blue Space."
|
||||
origin_tech = "bluespace=4"
|
||||
origin_tech = "bluespace=5"
|
||||
icon_state = "holdingpack"
|
||||
max_w_class = 6
|
||||
max_combined_w_class = 35
|
||||
@@ -50,12 +50,6 @@
|
||||
qdel(user)
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/backpack/holding/can_be_inserted(obj/item/W, stop_messages = 0, mob/user)
|
||||
if(crit_fail)
|
||||
user << "<span class='danger'>The Bluespace generator isn't working.</span>"
|
||||
return
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/storage/backpack/holding/content_can_dump(atom/dest_object, mob/user)
|
||||
if(Adjacent(user))
|
||||
if(get_dist(user, dest_object) < 8)
|
||||
@@ -71,7 +65,7 @@
|
||||
return 0
|
||||
|
||||
/obj/item/weapon/storage/backpack/holding/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/user)
|
||||
if((istype(W, /obj/item/weapon/storage/backpack/holding) || count_by_type(W.GetAllContents(), /obj/item/weapon/storage/backpack/holding)) && !W.crit_fail)
|
||||
if((istype(W, /obj/item/weapon/storage/backpack/holding) || count_by_type(W.GetAllContents(), /obj/item/weapon/storage/backpack/holding)))
|
||||
var/safety = alert(user, "Doing this will have extremely dire consequences for the station and its crew. Be sure you know what you're doing.", "Put in [name]?", "Proceed", "Abort")
|
||||
if(safety == "Abort" || !in_range(src, user) || !src || !W || user.incapacitated())
|
||||
return
|
||||
@@ -87,17 +81,6 @@
|
||||
return
|
||||
. = ..()
|
||||
|
||||
/obj/item/weapon/storage/backpack/holding/proc/failcheck(mob/user)
|
||||
if (prob(src.reliability)) return 1 //No failure
|
||||
if (prob(src.reliability))
|
||||
user << "<span class='danger'>The Bluespace portal resists your attempt to add another item.</span>" //light failure
|
||||
else
|
||||
user << "<span class='danger'>The Bluespace generator malfunctions!</span>"
|
||||
for (var/obj/O in src.contents) //it broke, delete what was in it
|
||||
qdel(O)
|
||||
crit_fail = 1
|
||||
icon_state = "brokenpack"
|
||||
|
||||
/obj/item/weapon/storage/backpack/holding/singularity_act(current_size)
|
||||
var/dist = max((current_size - 2),1)
|
||||
explosion(src.loc,(dist),(dist*2),(dist*4))
|
||||
|
||||
@@ -68,6 +68,7 @@
|
||||
name = "trash bag of holding"
|
||||
desc = "The latest and greatest in custodial convenience, a trashbag that is capable of holding vast quantities of garbage."
|
||||
icon_state = "bluetrashbag"
|
||||
origin_tech = "materials=4;bluespace=4;engineering=4;plasmatech=3"
|
||||
max_combined_w_class = 60
|
||||
storage_slots = 60
|
||||
|
||||
@@ -80,6 +81,7 @@
|
||||
desc = "This little bugger can be used to store and transport ores."
|
||||
icon = 'icons/obj/mining.dmi'
|
||||
icon_state = "satchel"
|
||||
origin_tech = "engineering=2"
|
||||
slot_flags = SLOT_BELT | SLOT_POCKET
|
||||
w_class = 3
|
||||
storage_slots = 50
|
||||
@@ -95,7 +97,7 @@
|
||||
desc = "A revolution in convenience, this satchel allows for infinite ore storage. It's been outfitted with anti-malfunction safety measures."
|
||||
storage_slots = INFINITY
|
||||
max_combined_w_class = INFINITY
|
||||
origin_tech = "bluespace=3"
|
||||
origin_tech = "bluespace=4;materials=3;engineering=3"
|
||||
icon_state = "satchel_bspace"
|
||||
|
||||
// -----------------------------
|
||||
@@ -119,6 +121,7 @@
|
||||
name = "portable seed extractor"
|
||||
desc = "For the enterprising botanist on the go. Less efficient than the stationary model, it creates one seed per plant."
|
||||
icon_state = "portaseeder"
|
||||
origin_tech = "biotech=3;engineering=2"
|
||||
|
||||
/obj/item/weapon/storage/bag/plants/portaseeder/verb/dissolve_contents()
|
||||
set name = "Activate Seed Extraction"
|
||||
@@ -377,4 +380,4 @@
|
||||
w_class = 1
|
||||
preposition = "in"
|
||||
can_hold = list(/obj/item/slime_extract, /obj/item/weapon/reagent_containers/syringe, /obj/item/weapon/reagent_containers/glass/beaker, /obj/item/weapon/reagent_containers/glass/bottle, /obj/item/weapon/reagent_containers/blood, /obj/item/weapon/reagent_containers/hypospray/medipen, /obj/item/trash/deadmouse)
|
||||
burn_state = FLAMMABLE
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
throw_range = 7
|
||||
w_class = 4
|
||||
materials = list(MAT_METAL = 500)
|
||||
origin_tech = "combat=1"
|
||||
origin_tech = "combat=1;engineering=1"
|
||||
attack_verb = list("robusted")
|
||||
hitsound = 'sound/weapons/smash.ogg'
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
name = "suspicious looking toolbox"
|
||||
icon_state = "syndicate"
|
||||
item_state = "toolbox_syndi"
|
||||
origin_tech = "combat=1;syndicate=1"
|
||||
origin_tech = "combat=2;syndicate=1;engineering=2"
|
||||
silent = 1
|
||||
force = 15
|
||||
throwforce = 18
|
||||
|
||||
@@ -160,9 +160,7 @@
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/melee/baton/emp_act(severity)
|
||||
if(deductcharge(1000 / severity))
|
||||
if(bcell.reliability != 100 && prob(50/severity))
|
||||
bcell.reliability -= 10 / severity
|
||||
deductcharge(1000 / severity)
|
||||
..()
|
||||
|
||||
//Makeshift stun baton. Replacement for stun gloves.
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
throw_speed = 3
|
||||
throw_range = 7
|
||||
materials = list(MAT_METAL=400)
|
||||
origin_tech = "magnets=1"
|
||||
origin_tech = "magnets=3;bluespace=2"
|
||||
|
||||
/obj/item/weapon/locator/attack_self(mob/user)
|
||||
user.set_machine(src)
|
||||
@@ -133,7 +133,7 @@ Frequency:
|
||||
throw_speed = 3
|
||||
throw_range = 5
|
||||
materials = list(MAT_METAL=10000)
|
||||
origin_tech = "magnets=1;bluespace=3"
|
||||
origin_tech = "magnets=3;bluespace=4"
|
||||
var/active_portals = 0
|
||||
|
||||
/obj/item/weapon/hand_tele/attack_self(mob/user)
|
||||
@@ -169,5 +169,3 @@ Frequency:
|
||||
try_move_adjacent(P)
|
||||
active_portals++
|
||||
add_fingerprint(user)
|
||||
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
icon_state = "wrench_medical"
|
||||
force = 2 //MEDICAL
|
||||
throwforce = 4
|
||||
origin_tech = "materials=1;engineering=1;biotech=1"
|
||||
origin_tech = "materials=1;engineering=1;biotech=3"
|
||||
attack_verb = list("wrenched", "medicaled", "tapped", "jabbed")
|
||||
|
||||
/obj/item/weapon/wrench/medical/suicide_act(mob/user)
|
||||
@@ -200,7 +200,7 @@
|
||||
w_class = 2
|
||||
|
||||
materials = list(MAT_METAL=70, MAT_GLASS=30)
|
||||
origin_tech = "engineering=1"
|
||||
origin_tech = "engineering=1;plasmatech=1"
|
||||
var/welding = 0 //Whether or not the welding tool is off(0), on(1) or currently welding(2)
|
||||
var/status = 1 //Whether the welder is secured or unsecured (able to attach rods to it to make a flamethrower)
|
||||
var/max_fuel = 20 //The max amount of fuel the welder can hold
|
||||
@@ -428,7 +428,7 @@
|
||||
icon_state = "indwelder"
|
||||
max_fuel = 40
|
||||
materials = list(MAT_GLASS=60)
|
||||
origin_tech = "engineering=2"
|
||||
origin_tech = "engineering=2;plasmatech=2"
|
||||
|
||||
/obj/item/weapon/weldingtool/largetank/cyborg
|
||||
name = "integrated welding tool"
|
||||
@@ -461,7 +461,7 @@
|
||||
item_state = "upindwelder"
|
||||
max_fuel = 80
|
||||
materials = list(MAT_METAL=70, MAT_GLASS=120)
|
||||
origin_tech = "engineering=3"
|
||||
origin_tech = "engineering=3;plasmatech=2"
|
||||
|
||||
/obj/item/weapon/weldingtool/experimental
|
||||
name = "experimental welding tool"
|
||||
@@ -470,7 +470,7 @@
|
||||
item_state = "exwelder"
|
||||
max_fuel = 40
|
||||
materials = list(MAT_METAL=70, MAT_GLASS=120)
|
||||
origin_tech = "materials=4;engineering=4;bluespace=3;plasmatech=3"
|
||||
origin_tech = "materials=4;engineering=4;bluespace=3;plasmatech=4"
|
||||
var/last_gen = 0
|
||||
change_icons = 0
|
||||
can_off_process = 1
|
||||
@@ -509,7 +509,7 @@
|
||||
throwforce = 7
|
||||
w_class = 2
|
||||
materials = list(MAT_METAL=50)
|
||||
origin_tech = "engineering=1"
|
||||
origin_tech = "engineering=1;combat=1"
|
||||
attack_verb = list("attacked", "bashed", "battered", "bludgeoned", "whacked")
|
||||
toolspeed = 1
|
||||
|
||||
|
||||
@@ -203,7 +203,7 @@
|
||||
unwieldsound = 'sound/weapons/saberoff.ogg'
|
||||
hitsound = "swing_hit"
|
||||
armour_penetration = 35
|
||||
origin_tech = "magnets=3;syndicate=4"
|
||||
origin_tech = "magnets=4;syndicate=5"
|
||||
item_color = "green"
|
||||
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
||||
block_chance = 75
|
||||
@@ -365,7 +365,7 @@
|
||||
throw_speed = 2
|
||||
throw_range = 4
|
||||
materials = list(MAT_METAL=13000)
|
||||
origin_tech = "materials=2;engineering=2;combat=2"
|
||||
origin_tech = "materials=3;engineering=4;combat=2"
|
||||
attack_verb = list("sawed", "torn", "cut", "chopped", "diced")
|
||||
hitsound = "swing_hit"
|
||||
sharpness = IS_SHARP
|
||||
@@ -547,4 +547,4 @@
|
||||
sharpness = IS_SHARP
|
||||
|
||||
/obj/item/weapon/twohanded/bonespear/update_icon()
|
||||
icon_state = "bone_spear[wielded]"
|
||||
icon_state = "bone_spear[wielded]"
|
||||
|
||||
@@ -145,7 +145,7 @@
|
||||
throw_speed = 3
|
||||
throw_range = 6
|
||||
materials = list(MAT_METAL=12000)
|
||||
origin_tech = "materials=1"
|
||||
origin_tech = "engineering=3;combat=2"
|
||||
hitsound = 'sound/weapons/Genhit.ogg'
|
||||
attack_verb = list("stubbed", "poked")
|
||||
var/extended = 0
|
||||
@@ -284,6 +284,5 @@
|
||||
name = "liz o' nine tails"
|
||||
desc = "A whip fashioned from the severed tails of lizards."
|
||||
icon_state = "tailwhip"
|
||||
origin_tech = "combat=1"
|
||||
origin_tech = "engineering=3;combat=3;biotech=3"
|
||||
needs_permit = 0
|
||||
|
||||
|
||||
Reference in New Issue
Block a user