Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TWEAK: Assorted objects. #1824

Merged
merged 18 commits into from
Jan 28, 2024
Merged
Show file tree
Hide file tree
Changes from 17 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions code/controllers/subsystems/initialization/robots.dm
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ SUBSYSTEM_DEF(robots)
)

var/list/mmi_types_by_title = list(
// [SIERRA-ADD] - Allow to join as cyborg,
"cyborg" = /obj/item/device/mmi,
// [/SIERRA-ADD] ,
"robot" = /obj/item/organ/internal/posibrain,
"drone" = /obj/item/device/mmi/digital/robot,
"robot, flying" = /obj/item/organ/internal/posibrain,
Expand Down
3 changes: 3 additions & 0 deletions code/modules/ventcrawl/ventcrawl_atmospherics.dm
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@
/obj/machinery/atmospherics/relaymove(mob/living/user, direction)
if(user.loc != src || !(direction & initialize_directions)) //can't go in a way we aren't connecting to
return
// [SIERRA-ADD] - SSINPUT
direction &= ~(direction & ~initialize_directions)
// [SIERRA-ADD]
ventcrawl_to(user,findConnecting(direction),direction)

/obj/machinery/atmospherics/proc/ventcrawl_to(mob/living/user, obj/machinery/atmospherics/target_move, direction)
Expand Down
27 changes: 27 additions & 0 deletions maps/sierra/datums/species/species_overrides.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,30 @@ Various overrides for standart species, which are too tiny to have their own mod
/obj/item/organ/internal/eyes/skrell
eye_icon = 'maps/sierra/icons/mob/human_races/species/skrell/eyes.dmi'
apply_eye_colour = FALSE

// Unathi

/datum/species/unathi
autohiss_basic_map = list(
"s" = list("ss", "sss", "ssss"),

"с" = list("с", "сс", "ссс")
)
autohiss_extra_map = list(
"x" = list("ks", "kss", "ksss"),

"к" = list("х"),

"г" = list("х"),

"з" = list("с", "сс", "ссс"),

"ч" = list("щ", "щщ", "щщщ"),

"ж" = list("ш", "шш", "шшш")

)
autohiss_exempt = list(
LANGUAGE_UNATHI_SINTA,
LANGUAGE_UNATHI_YEOSA
)
Binary file added maps/sierra/icons/mob/onmob/item/lefthand.dmi
Binary file not shown.
Binary file added maps/sierra/icons/mob/onmob/item/righthand.dmi
Binary file not shown.
28 changes: 28 additions & 0 deletions maps/sierra/items/items.dm
Original file line number Diff line number Diff line change
Expand Up @@ -453,6 +453,34 @@ Passports
icon_state = "gangtool-white"
region_access = ACCESS_REGION_GENERAL

// Overrides

/obj/item/melee/baton
icon = 'maps/sierra/icons/obj/baton.dmi'
icon_state = "stunbaton"
item_state = "baton"
item_icons = list(
slot_r_hand_str = 'maps/sierra/icons/mob/onmob/item/righthand.dmi',
slot_l_hand_str = 'maps/sierra/icons/mob/onmob/item/lefthand.dmi',
)

/obj/item/melee/baton/on_update_icon()
if(status)
icon_state = "[initial(icon_state)]_active"
item_state = "[initial(item_state)]_active"
else if(!bcell)
icon_state = "[initial(icon_state)]_nocell"
item_state = "[initial(item_state)]"
else
icon_state = "[initial(icon_state)]"
item_state = "[initial(item_state)]"

if(icon_state == "[initial(item_state)]_active")
set_light(1.5, 2, "#75acff")
else
set_light(0)
loc.update_icon()
LordNest marked this conversation as resolved.
Show resolved Hide resolved

#undef REMOTE_OPEN
#undef REMOTE_BOLT
#undef REMOTE_ELECT
2 changes: 1 addition & 1 deletion maps/sierra/sierra.dm
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@
#include "../../mods/fancy_sofas/_fancy_sofas.dme"
#include "../../mods/jukebox_tapes/_jukebox_tapes.dme"
#include "../../mods/legalese_language/_legalese.dme"
#include "../../mods/leroy_beasts/_leroy_beasts.dme"
#include "../../mods/petting_zoo/_petting_zoo.dme"
#include "../../mods/screentips/_screentips.dme"
#include "../../mods/tajara/_tajara.dme"

Expand Down
3 changes: 2 additions & 1 deletion maps/sierra/z1-z5_sierra.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -29818,7 +29818,7 @@
"eqV" = (
/obj/floor_decal/corner/red/mono,
/obj/structure/closet/secure_closet{
name = "Security Equipment Locker";
name = "Checkpoint Locker";
req_access = list("ACCESS_SECURITY")
},
/obj/floor_decal/industrial/outline/yellow,
Expand Down Expand Up @@ -92673,6 +92673,7 @@
d2 = 4;
icon_state = "0-4"
},
/mob/living/simple_animal/hostile/commanded/rex,
/turf/simulated/floor/wood/mahogany,
/area/crew_quarters/heads/office/hos/cobed)
"nSz" = (
Expand Down
2 changes: 2 additions & 0 deletions mods/antagonists/_antagonists.dme
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,13 @@

#include "_antagonists.dm"

#include "code/blackout.dm"
#include "code/ert.dm"
#include "code/mercenary.dm"
#include "code/revolutionary.dm"
#include "code/operative.dm"
#include "code/traitor.dm"
#include "code/teleportation.dm"
#include "code/uplink.dm"

#endif
80 changes: 80 additions & 0 deletions mods/antagonists/code/blackout.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
// Too complex, so different file for it
// Blackout tool, used to trigger massive electricity outttage on ship or station, including connected levels.
// It may have additional shots to use, but currently balanced to one shot.

/datum/uplink_item/item/tools/blackout
name = "High Pulse Electricity Outage Tool"
item_cost = 36
path = /obj/item/device/blackout
desc = "A device which can create power surge in terminal, spread it in power network and temporally creating blackout."

/obj/item/device/blackout
name = "Energy network scanner"
desc = "A device with several metal antennas. It looks like a scanner or multimeter, but this one is completely black."
icon = 'mods/antagonists/icons/obj/blackout.dmi'
icon_state = "device_blackout-off"

var/severity = 2
var/shots = 1
var/lastUse = 0
var/cooldown = (20 MINUTES)

/obj/item/device/blackout/afterattack(obj/target, mob/user, proximity)
if(!proximity)
return
if(!istype(target))
return

target.add_fingerprint(user)

if(istype(target, /obj/machinery/power/terminal))
var/obj/machinery/power/terminal/terminal = target

if(!terminal.powernet)
to_chat(user, SPAN_WARNING("This power station isn't connected to power net."))
return

if(check_to_use())
to_chat(user, SPAN_WARNING("Device does not respond. Perhaps you need to try later."))
return

if(!shots)
to_chat(user, SPAN_WARNING("Device does not respond."))
return

hacktheenergy(terminal, user)

/obj/item/device/blackout/proc/hacktheenergy(obj/machinery/power/terminal/terminal_in, mob/user)
if(!istype(terminal_in) || !user) return // security

src.audible_message("<font color=Maroon><b>Synthesized recording</b></font> states, \"-- Вас приветствует Ассистент КиДжи. Начало. Производится подключение к терминалу. --\"")
if(!do_after(user, 60, terminal_in)) return

src.audible_message("<font color=Maroon><b>Synthesized recording</b></font> states, \"-- Подключение к терминалу успешно. Начато получение информации о конфигурации электросети... --\"")
if(!do_after(user, 160, terminal_in)) return

src.audible_message("<font color=Maroon><b>Synthesized recording</b></font> states, \"-- Сканирование корабельной электросети успешно. Начинается процедура перегрузки корабельной электросети. Не прерывайте работу терминала. --\"")
icon_state = "device_blackout-on"
playsound(src, 'sound/items/goggles_charge.ogg', 50, 1)

if(do_after(user, 80, terminal_in))
src.audible_message("<font color=Maroon><b>Synthesized recording</b></font> states, \"-- Перегрузка завершена. Можете отсоединять терминал. \
Утилизируйте устройство после использования. --\"")

shots--
cooldown = world.time

power_failure()

log_and_message_admins("[key_name(usr)] used \the [src.name] on \the [admin_jump_link(terminal_in, src)] to shutdown entire ship.")

icon_state = "device_blackout-off"

/obj/item/device/blackout/proc/check_to_use()
return lastUse <= (world.time - cooldown)

/obj/item/device/blackout/examine(mob/user)
. = ..()
if (isobserver(user) || (user.mind && user.mind.special_role != null) || user.skill_check(SKILL_DEVICES, SKILL_EXPERIENCED) || user.skill_check(SKILL_ELECTRICAL, SKILL_EXPERIENCED))
to_chat(user, "This device appears to be able to send a signal to overload the power grid. ")
return
2 changes: 1 addition & 1 deletion mods/antagonists/code/operative.dm
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,6 @@
/obj/item/clothing/mask/gas/syndicate,
/obj/item/storage/backpack/dufflebag/syndie_kit/plastique,
/obj/item/storage/box/anti_photons,
/obj/item/device/encryptionkey/syndicate,
/obj/item/device/encryptionkey/syndie_full,
/obj/item/card/emag
)
121 changes: 83 additions & 38 deletions mods/antagonists/code/traitor.dm
Original file line number Diff line number Diff line change
Expand Up @@ -42,16 +42,6 @@
airlock.ex_act(1)
qdel(src)

//
// Uplink part
//

/datum/uplink_item/item/tools/door_charge
name = "Door Charge"
desc = "Special explosive, which can be planted on doors and will explode when somebody will open this door."
item_cost = 14
path = /obj/item/door_charge

//
// BLUESPACE JAUNTER
//
Expand Down Expand Up @@ -107,31 +97,10 @@
to_chat(user, "You can't link [src] to [target]!")
update_icon()

//
// Uplink part
//

/obj/item/storage/box/syndie_kit/jaunter
startswith = list(/obj/item/device/syndietele,
/obj/item/device/syndiejaunter)

/datum/uplink_item/item/tools/jaunter
name = "Bluespace Jaunter"
item_cost = 42
path = /obj/item/storage/box/syndie_kit/jaunter
desc = "Disposable one way teleportation device. Use with care. Don't forget to link jaunter to the beacon!"


//
// Psi Amp - Uplink part (Here because turned off by Bay12)
//

/datum/uplink_item/item/visible_weapons/psi_amp
name = "Cerebroenergetic Psionic Amplifier"
item_cost = 50
path = /obj/item/clothing/head/helmet/space/psi_amp/lesser
desc = "A powerful, illegal psi-amp. Boosts latent psi-faculties to extremely high levels."

//
// HOLOBOMBS
//
Expand Down Expand Up @@ -215,12 +184,88 @@
startswith = list(/obj/item/device/holobomb = 5, /obj/item/paper/holobomb = 1)

//
// Holobombs - Uplink part
// Poison
//

/datum/uplink_item/item/tools/holobomb
name = "Box of holobombs"
item_cost = 32
path =/obj/item/storage/box/syndie_kit/holobombs
desc = "Contains 5 holobomb and instruction. \
A bomb that changes appearance, and can destroy some hands."
/obj/item/storage/box/syndie_kit/bioterror
startswith = list(
/obj/item/reagent_containers/glass/beaker/vial/random/toxin/bioterror = 7
)

/obj/item/reagent_containers/glass/beaker/vial/random/toxin/bioterror
random_reagent_list = list(
list(/datum/reagent/drugs/mindbreaker = 10, /datum/reagent/drugs/hextro = 20) = 2,
list(/datum/reagent/toxin/carpotoxin = 30) = 2,
list(/datum/reagent/impedrezene = 30) = 2,
list(/datum/reagent/mutagen = 30) = 2,
list(/datum/reagent/toxin/amatoxin = 30) = 2,
list(/datum/reagent/drugs/cryptobiolin = 30) = 2,
list(/datum/reagent/impedrezene = 30) = 2,
list(/datum/reagent/toxin/potassium_chlorophoride = 30) = 2,
list(/datum/reagent/acid/polyacid = 30) = 2,
list(/datum/reagent/radium = 30) = 2,
list(/datum/reagent/toxin/zombiepowder = 30) = 1)

// Key

/obj/item/device/encryptionkey/syndie_full
icon_state = "cypherkey"
channels = list("Mercenary" = 1, "Command" = 1, "Security" = 1, "Engineering" = 1, "Exploration" = 1, "Science" = 1, "Medical" = 1, "Supply" = 1, "Service" = 1)
origin_tech = list(TECH_ESOTERIC = 3)
syndie = 1

// Stimm

/obj/item/reagent_containers/hypospray/autoinjector/stimpack
name = "stimpack"
band_color = COLOR_PINK //inf //was: COLOR_DARK_GRAY
starts_with = list(/datum/reagent/nitritozadole = 5)

/datum/reagent/nitritozadole
name = "Nitritozadole"
description = "Nitritozadole is a very dangerous mix, which can increase your speed temporarly."
taste_description = "metal"
reagent_state = LIQUID
color = "#ff2681"
metabolism = REM * 0.20
overdose = REAGENTS_OVERDOSE / 3
value = 4.5

/datum/reagent/nitritozadole/affect_blood(mob/living/carbon/M, alien, removed)
if(alien == SPECIES_DIONA)
return

if(prob(2))
to_chat(M, SPAN_DANGER("My heart gonna break out from the chest!"))
M.stun_effect_act(0, 15, BP_CHEST, "heart damage") //a small pain without damage
if(prob(15))
for(var/obj/item/organ/internal/heart/H in M.internal_organs)
H.damage += 1

if(prob(5))
M.emote(pick("twitch", "blink_r", "shiver"))
M.add_chemical_effect(CE_SPEEDBOOST, 1.5)
M.add_chemical_effect(CE_PULSE, 3)


// Radlaser

/obj/item/device/scanner/health/syndie
name = "health analyzer"
desc = "A hand-held body scanner able to distinguish vital signs of the subject."
item_flags = ITEM_FLAG_NO_BLUDGEON
matter = list(MATERIAL_ALUMINIUM = 200)
origin_tech = list(TECH_MAGNET = 3, TECH_BIO = 2, TECH_ESOTERIC = 2)

/obj/item/device/scanner/health/syndie/scan(mob/living/carbon/human/A, mob/user)
playsound(src, 'sound/effects/fastbeep.ogg', 20)
if(!istype(A))
return

A.apply_damage(30, DAMAGE_RADIATION, damage_flags = DAMAGE_FLAG_DISPERSED)

/obj/item/device/scanner/health/syndie/examine(mob/user)
. = ..()
if (isobserver(user) || (user.mind && user.mind.special_role != null) || user.skill_check(SKILL_DEVICES, SKILL_MASTER) || user.skill_check(SKILL_MEDICAL, SKILL_MASTER))
to_chat(user, "The scanner contacts do not look as they should. ")
return
Loading