mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 03:57:13 +01:00
Merge remote-tracking branch 'ParadiseSS13/master' into multi-instance-support
This commit is contained in:
@@ -786,3 +786,24 @@
|
||||
/datum/AI_Module/large/cameracrack/upgrade(mob/living/silicon/ai/AI)
|
||||
if(AI.builtInCamera)
|
||||
QDEL_NULL(AI.builtInCamera)
|
||||
|
||||
/datum/AI_Module/large/engi_upgrade
|
||||
module_name = "Engineering Cyborg Emitter Upgrade"
|
||||
mod_pick_name = "emitter"
|
||||
description = "Downloads firmware that activates the built in emitter in all engineering cyborgs linked to you. Cyborgs built after this upgrade will have it pre-installed."
|
||||
cost = 50 // IDK look into this
|
||||
one_purchase = TRUE
|
||||
upgrade = TRUE
|
||||
unlock_text = "<span class='notice'>Firmware downloaded. Bugs removed. Built in emitters operating at 73% efficiency.</span>"
|
||||
unlock_sound = 'sound/items/rped.ogg'
|
||||
|
||||
/datum/AI_Module/large/engi_upgrade/upgrade(mob/living/silicon/ai/AI)
|
||||
AI.purchased_modules += /obj/item/robot_module/engineering
|
||||
log_game("[key_name(usr)] purchased emitters for all engineering cyborgs.")
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] purchased emitters for all engineering cyborgs!</span>")
|
||||
for(var/mob/living/silicon/robot/R in AI.connected_robots)
|
||||
if(!istype(R.module, /obj/item/robot_module/engineering))
|
||||
continue
|
||||
R.module.malfhacked = TRUE
|
||||
R.module.rebuild_modules()
|
||||
to_chat(R, "<span class='notice'>New firmware downloaded. Emitter is now online.</span>")
|
||||
|
||||
@@ -205,6 +205,15 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
|
||||
|
||||
/datum/objective/protect/mindslave //subytpe for mindslave implants
|
||||
|
||||
/datum/objective/protect/mindslave/on_target_cryo()
|
||||
if(owner?.current)
|
||||
to_chat(owner.current, "<BR><span class='userdanger'>You notice that your master has entered cryogenic storage, and revert to your normal self, until they return again. You are no longer a mindslave!</span>")
|
||||
SEND_SOUND(owner.current, sound('sound/ambience/alarm4.ogg'))
|
||||
owner.remove_antag_datum(/datum/antagonist/mindslave)
|
||||
SSticker.mode.implanted.Remove(owner)
|
||||
log_admin("[key_name(owner.current)]'s mindslave master has cryo'd, and is no longer a mindslave.")
|
||||
message_admins("[key_name_admin(owner.current)]'s mindslave master has cryo'd, and is no longer a mindslave.") //Since they were on antag hud earlier, this feels important to log
|
||||
qdel(src)
|
||||
|
||||
/datum/objective/hijack
|
||||
martyr_compatible = 0 //Technically you won't get both anyway.
|
||||
|
||||
@@ -343,6 +343,21 @@
|
||||
playsound(get_turf(user), 'sound/effects/ghost2.ogg', 50, 1)
|
||||
return TRUE
|
||||
|
||||
/datum/spellbook_entry/summon/slience_ghosts
|
||||
name = "Silence Ghosts"
|
||||
desc = "Tired of people talking behind your back, and spooking you? Why not silence them, and make the dead deader."
|
||||
cost = 2
|
||||
log_name = "SLG"
|
||||
is_ragin_restricted = TRUE //Salt needs to flow here, to be honest
|
||||
|
||||
/datum/spellbook_entry/summon/slience_ghosts/Buy(mob/living/carbon/human/user, obj/item/spellbook/book)
|
||||
new /datum/event/wizard/ghost_mute()
|
||||
active = TRUE
|
||||
to_chat(user, "<span class='notice'>You have silenced all ghosts!</span>")
|
||||
playsound(get_turf(user), 'sound/effects/ghost.ogg', 50, 1)
|
||||
message_admins("[key_name_admin(usr)] silenced all ghosts as a wizard! (Deadchat is now DISABLED)")
|
||||
return TRUE
|
||||
|
||||
/datum/spellbook_entry/summon/guns
|
||||
name = "Summon Guns"
|
||||
desc = "Nothing could possibly go wrong with arming a crew of lunatics just itching for an excuse to kill you. There is a good chance that they will shoot each other first."
|
||||
|
||||
@@ -194,16 +194,18 @@ GLOBAL_DATUM_INIT(captain_announcement, /datum/announcement/minor, new(do_newsca
|
||||
/datum/job/judge
|
||||
title = "Magistrate"
|
||||
flag = JOB_JUDGE
|
||||
department_flag = JOBCAT_KARMA
|
||||
department_flag = JOBCAT_ENGSEC
|
||||
total_positions = 1
|
||||
spawn_positions = 1
|
||||
supervisors = "the Nanotrasen Supreme Court"
|
||||
department_head = list("Captain")
|
||||
selection_color = "#ddddff"
|
||||
req_admin_notify = 1
|
||||
is_legal = 1
|
||||
req_admin_notify = TRUE
|
||||
is_legal = TRUE
|
||||
transfer_allowed = FALSE
|
||||
minimal_player_age = 30
|
||||
exp_requirements = 6000 // 100 hours baby
|
||||
exp_type = EXP_TYPE_SECURITY
|
||||
access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_FORENSICS_LOCKERS,
|
||||
ACCESS_MEDICAL, ACCESS_ENGINE, ACCESS_CHANGE_IDS, ACCESS_EVA, ACCESS_HEADS,
|
||||
ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_MAINT_TUNNELS, ACCESS_BAR, ACCESS_JANITOR, ACCESS_CONSTRUCTION, ACCESS_MORGUE,
|
||||
|
||||
@@ -96,8 +96,7 @@ GLOBAL_LIST_INIT(whitelisted_positions, list(
|
||||
"Blueshield",
|
||||
"Nanotrasen Representative",
|
||||
"Barber",
|
||||
"Brig Physician",
|
||||
"Magistrate"
|
||||
"Brig Physician"
|
||||
))
|
||||
|
||||
|
||||
|
||||
@@ -322,6 +322,8 @@
|
||||
if(shock(user, 100))
|
||||
return
|
||||
if(!is_operational())
|
||||
if(user.a_intent != INTENT_HELP)
|
||||
return ..()
|
||||
if(panel_open)
|
||||
to_chat(usr, "<span class='warning'>Close the maintenance panel first.</span>")
|
||||
else
|
||||
|
||||
@@ -88,6 +88,70 @@
|
||||
/obj/item/stack/tile/carpet/black/twenty
|
||||
amount = 20
|
||||
|
||||
/obj/item/stack/tile/carpet/blue
|
||||
name = "blue carpet"
|
||||
icon_state = "tile-carpet-blue"
|
||||
turf_type = /turf/simulated/floor/carpet/blue
|
||||
|
||||
/obj/item/stack/tile/carpet/blue/twenty
|
||||
amount = 20
|
||||
|
||||
/obj/item/stack/tile/carpet/cyan
|
||||
name = "cyan carpet"
|
||||
icon_state = "tile-carpet-cyan"
|
||||
turf_type = /turf/simulated/floor/carpet/cyan
|
||||
|
||||
/obj/item/stack/tile/carpet/cyan/twenty
|
||||
amount = 20
|
||||
|
||||
/obj/item/stack/tile/carpet/green
|
||||
name = "green carpet"
|
||||
icon_state = "tile-carpet-green"
|
||||
turf_type = /turf/simulated/floor/carpet/green
|
||||
|
||||
/obj/item/stack/tile/carpet/green/twenty
|
||||
amount = 20
|
||||
|
||||
/obj/item/stack/tile/carpet/orange
|
||||
name = "orange carpet"
|
||||
icon_state = "tile-carpet-orange"
|
||||
turf_type = /turf/simulated/floor/carpet/orange
|
||||
|
||||
/obj/item/stack/tile/carpet/orange/twenty
|
||||
amount = 20
|
||||
|
||||
/obj/item/stack/tile/carpet/purple
|
||||
name = "purple carpet"
|
||||
icon_state = "tile-carpet-purple"
|
||||
turf_type = /turf/simulated/floor/carpet/purple
|
||||
|
||||
/obj/item/stack/tile/carpet/purple/twenty
|
||||
amount = 20
|
||||
|
||||
/obj/item/stack/tile/carpet/red
|
||||
name = "red carpet"
|
||||
icon_state = "tile-carpet-red"
|
||||
turf_type = /turf/simulated/floor/carpet/red
|
||||
|
||||
/obj/item/stack/tile/carpet/red/twenty
|
||||
amount = 20
|
||||
|
||||
/obj/item/stack/tile/carpet/royalblack
|
||||
name = "royal black carpet"
|
||||
icon_state = "tile-carpet-royalblack"
|
||||
turf_type = /turf/simulated/floor/carpet/royalblack
|
||||
|
||||
/obj/item/stack/tile/carpet/royalblack/twenty
|
||||
amount = 20
|
||||
|
||||
/obj/item/stack/tile/carpet/royalblue
|
||||
name = "royal blue carpet"
|
||||
icon_state = "tile-carpet-royalblue"
|
||||
turf_type = /turf/simulated/floor/carpet/royalblue
|
||||
|
||||
/obj/item/stack/tile/carpet/royalblue/twenty
|
||||
amount = 20
|
||||
|
||||
//Plasteel
|
||||
/obj/item/stack/tile/plasteel
|
||||
name = "floor tiles"
|
||||
|
||||
@@ -371,6 +371,7 @@
|
||||
icon = 'icons/obj/food/containers.dmi'
|
||||
icon_state = "tray"
|
||||
desc = "A metal tray to lay food on."
|
||||
storage_slots = 8
|
||||
force = 5
|
||||
throwforce = 10
|
||||
throw_speed = 3
|
||||
|
||||
@@ -68,6 +68,9 @@
|
||||
playsound(src, 'sound/effects/shovel_dig.ogg', 50, 1)
|
||||
make_plating()
|
||||
|
||||
|
||||
//Carpets
|
||||
|
||||
/turf/simulated/floor/carpet
|
||||
name = "carpet"
|
||||
icon = 'icons/turf/floors/carpet.dmi'
|
||||
@@ -112,6 +115,48 @@
|
||||
floor_tile = /obj/item/stack/tile/carpet/black
|
||||
canSmoothWith = list(/turf/simulated/floor/carpet/black)
|
||||
|
||||
/turf/simulated/floor/carpet/blue
|
||||
icon = 'icons/turf/floors/carpet_blue.dmi'
|
||||
floor_tile = /obj/item/stack/tile/carpet/blue
|
||||
canSmoothWith = list(/turf/simulated/floor/carpet/blue)
|
||||
|
||||
/turf/simulated/floor/carpet/cyan
|
||||
icon = 'icons/turf/floors/carpet_cyan.dmi'
|
||||
floor_tile = /obj/item/stack/tile/carpet/cyan
|
||||
canSmoothWith = list(/turf/simulated/floor/carpet/cyan)
|
||||
|
||||
/turf/simulated/floor/carpet/green
|
||||
icon = 'icons/turf/floors/carpet_green.dmi'
|
||||
floor_tile = /obj/item/stack/tile/carpet/green
|
||||
canSmoothWith = list(/turf/simulated/floor/carpet/green)
|
||||
|
||||
/turf/simulated/floor/carpet/orange
|
||||
icon = 'icons/turf/floors/carpet_orange.dmi'
|
||||
floor_tile = /obj/item/stack/tile/carpet/orange
|
||||
canSmoothWith = list(/turf/simulated/floor/carpet/orange)
|
||||
|
||||
/turf/simulated/floor/carpet/purple
|
||||
icon = 'icons/turf/floors/carpet_purple.dmi'
|
||||
floor_tile = /obj/item/stack/tile/carpet/purple
|
||||
canSmoothWith = list(/turf/simulated/floor/carpet/purple)
|
||||
|
||||
/turf/simulated/floor/carpet/red
|
||||
icon = 'icons/turf/floors/carpet_red.dmi'
|
||||
floor_tile = /obj/item/stack/tile/carpet/red
|
||||
canSmoothWith = list(/turf/simulated/floor/carpet/red)
|
||||
|
||||
/turf/simulated/floor/carpet/royalblack
|
||||
icon = 'icons/turf/floors/carpet_royalblack.dmi'
|
||||
floor_tile = /obj/item/stack/tile/carpet/royalblack
|
||||
canSmoothWith = list(/turf/simulated/floor/carpet/royalblack)
|
||||
|
||||
/turf/simulated/floor/carpet/royalblue
|
||||
icon = 'icons/turf/floors/carpet_royalblue.dmi'
|
||||
floor_tile = /obj/item/stack/tile/carpet/royalblue
|
||||
canSmoothWith = list(/turf/simulated/floor/carpet/royalblue)
|
||||
|
||||
//End of carpets
|
||||
|
||||
/turf/simulated/floor/fakespace
|
||||
icon = 'icons/turf/space.dmi'
|
||||
icon_state = "0"
|
||||
|
||||
Reference in New Issue
Block a user