Merge remote-tracking branch 'Citadel-Station-13/master' into syntheticbloods
This commit is contained in:
@@ -206,7 +206,7 @@
|
||||
switch(action)
|
||||
if("vote")
|
||||
var/selected_answer = params["answer"]
|
||||
if(!selected_answer in possible_answers)
|
||||
if(!(selected_answer in possible_answers))
|
||||
return
|
||||
else
|
||||
votes[user.ckey] = selected_answer
|
||||
|
||||
@@ -89,11 +89,12 @@
|
||||
return TRUE
|
||||
|
||||
/obj/item/implant/proc/removed(mob/living/source, silent = FALSE, special = 0)
|
||||
SEND_SIGNAL(src, COMSIG_IMPLANT_REMOVING, args)
|
||||
imp_in = null
|
||||
source.implants -= src
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.Grant(source)
|
||||
A.Remove(source)
|
||||
if(ishuman(source))
|
||||
var/mob/living/carbon/human/H = source
|
||||
H.sec_hud_set_implants()
|
||||
|
||||
@@ -244,7 +244,7 @@
|
||||
..()
|
||||
|
||||
/obj/item/book/manual/wiki/proc/initialize_wikibook()
|
||||
var/wikiurl = CONFIG_GET(string/wikiurl)
|
||||
var/wikiurl = CONFIG_GET(string/wikiurltg)
|
||||
if(wikiurl)
|
||||
dat = {"
|
||||
|
||||
@@ -270,13 +270,67 @@
|
||||
|
||||
"}
|
||||
|
||||
/obj/item/book/manual/wiki/chemistry
|
||||
/obj/item/book/manual/wiki/cit
|
||||
name = "Citadel infobook"
|
||||
icon_state ="book8"
|
||||
author = "Nanotrasen"
|
||||
title = "Citadel infobook"
|
||||
page_link = ""
|
||||
window_size = "1500x800" //Too squashed otherwise
|
||||
|
||||
/obj/item/book/manual/wiki/cit/initialize_wikibook()
|
||||
var/wikiurl = CONFIG_GET(string/wikiurl)
|
||||
if(wikiurl)
|
||||
dat = {"
|
||||
|
||||
<html><head>
|
||||
<style>
|
||||
iframe {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<script type="text/javascript">
|
||||
function pageloaded(myframe) {
|
||||
document.getElementById("loading").style.display = "none";
|
||||
myframe.style.display = "block";
|
||||
}
|
||||
</script>
|
||||
<p id='loading'>You start skimming through the manual...</p>
|
||||
<iframe width='100%' height='97%' onload="pageloaded(this)" src="[wikiurl]/[page_link]" frameborder="0" id="main_frame"></iframe>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
"}
|
||||
|
||||
/obj/item/book/manual/wiki/cit/chemistry
|
||||
name = "Chemistry Textbook"
|
||||
icon_state ="chemistrybook"
|
||||
author = "Nanotrasen"
|
||||
title = "Chemistry Textbook"
|
||||
page_link = "main/guides/guide_chemistry"
|
||||
|
||||
/obj/item/book/manual/wiki/cit/chem_recipies
|
||||
name = "Chemistry Recipies"
|
||||
icon_state ="chemrecibook"
|
||||
author = "Chemcat"
|
||||
title = "Chemistry Recipies"
|
||||
page_link = "main/guides/chem_recipies"
|
||||
|
||||
/obj/item/book/manual/wiki/chemistry
|
||||
name = "Outdated Chemistry Textbook"
|
||||
icon_state ="chemistrybook_old"
|
||||
author = "Nanotrasen"
|
||||
title = "Outdated Chemistry Textbook"
|
||||
page_link = "Guide_to_chemistry"
|
||||
|
||||
/obj/item/book/manual/wiki/chemistry/Initialize()
|
||||
..()
|
||||
new /obj/item/book/manual/wiki/cit/chemistry(loc)
|
||||
new /obj/item/book/manual/wiki/cit/chem_recipies(loc)
|
||||
|
||||
/obj/item/book/manual/wiki/engineering_construction
|
||||
name = "Station Repairs and Construction"
|
||||
icon_state ="bookEngineering"
|
||||
|
||||
@@ -122,7 +122,7 @@
|
||||
if(user.mob_size <= MOB_SIZE_SMALL)
|
||||
to_chat(user, "<span class='notice'>You poke a limb through [src]'s bars and start fumbling for the lock switch... (This will take some time.)</span>")
|
||||
to_chat(loc, "<span class='warning'>You see [user] reach through the bars and fumble for the lock switch!</span>")
|
||||
if(!do_after(user, rand(300, 400), target = user) || open || !locked || !user in occupants)
|
||||
if(!do_after(user, rand(300, 400), target = user) || open || !locked || !(user in occupants))
|
||||
return
|
||||
loc.visible_message("<span class='warning'>[user] flips the lock switch on [src] by reaching through!</span>", null, null, null, user)
|
||||
to_chat(user, "<span class='boldannounce'>Bingo! The lock pops open!</span>")
|
||||
@@ -132,7 +132,7 @@
|
||||
else
|
||||
loc.visible_message("<span class='warning'>[src] starts rattling as something pushes against the door!</span>", null, null, null, user)
|
||||
to_chat(user, "<span class='notice'>You start pushing out of [src]... (This will take about 20 seconds.)</span>")
|
||||
if(!do_after(user, 200, target = user) || open || !locked || !user in occupants)
|
||||
if(!do_after(user, 200, target = user) || open || !locked || !(user in occupants))
|
||||
return
|
||||
loc.visible_message("<span class='warning'>[user] shoves out of [src]!</span>", null, null, null, user)
|
||||
to_chat(user, "<span class='notice'>You shove open [src]'s door against the lock's resistance and fall out!</span>")
|
||||
@@ -185,7 +185,7 @@
|
||||
occupant_weight += occupant.mob_size
|
||||
|
||||
/obj/item/pet_carrier/proc/remove_occupant(mob/living/occupant, turf/new_turf)
|
||||
if(!occupant in occupants || !istype(occupant))
|
||||
if(!(occupant in occupants) || !istype(occupant))
|
||||
return
|
||||
occupant.forceMove(new_turf ? new_turf : drop_location())
|
||||
occupants -= occupant
|
||||
|
||||
@@ -366,7 +366,7 @@
|
||||
STR.max_combined_w_class = 200
|
||||
STR.max_items = 50
|
||||
STR.insert_preposition = "in"
|
||||
STR.can_hold = typecacheof(list(/obj/item/reagent_containers/pill, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/glass/bottle))
|
||||
STR.can_hold = typecacheof(list(/obj/item/reagent_containers/pill, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/syringe/dart))
|
||||
|
||||
/*
|
||||
* Biowaste bag (mostly for xenobiologists)
|
||||
|
||||
@@ -620,6 +620,9 @@
|
||||
GET_COMPONENT(STR, /datum/component/storage)
|
||||
STR.max_items = 15
|
||||
STR.display_numerical_stacking = FALSE
|
||||
STR.allow_quick_gather = TRUE
|
||||
STR.allow_quick_empty = TRUE
|
||||
STR.click_gather = TRUE
|
||||
STR.can_hold = typecacheof(list(
|
||||
/obj/item/reagent_containers/syringe/dart
|
||||
))
|
||||
@@ -628,6 +631,25 @@
|
||||
for(var/i in 1 to 16)
|
||||
new /obj/item/reagent_containers/syringe/dart/(src)
|
||||
|
||||
/obj/item/storage/belt/medolier/afterattack(obj/target, mob/user , proximity)
|
||||
if(!(istype(target, /obj/item/reagent_containers/glass/beaker)))
|
||||
return
|
||||
if(!proximity)
|
||||
return
|
||||
if(!target.reagents)
|
||||
return
|
||||
|
||||
for(var/obj/item/reagent_containers/syringe/dart/D in contents)
|
||||
if(round(target.reagents.total_volume, 1) <= 0)
|
||||
to_chat(user, "<span class='notice'>You soak as many of the darts as you can with the contents from [target].</span>")
|
||||
return
|
||||
if(D.mode == SYRINGE_INJECT)
|
||||
continue
|
||||
|
||||
D.afterattack(target, user, proximity)
|
||||
|
||||
..()
|
||||
|
||||
/obj/item/storage/belt/holster
|
||||
name = "shoulder holster"
|
||||
desc = "A holster to carry a handgun and ammo. WARNING: Badasses only."
|
||||
|
||||
@@ -187,8 +187,13 @@
|
||||
user.show_message("<span class='notice'>\The [src] is recharging!</span>")
|
||||
return
|
||||
var/atom/T = L[t1]
|
||||
var/implantcheckmate = FALSE
|
||||
if(isliving(T))
|
||||
var/mob/living/M = T
|
||||
if(!locate(/obj/item/implant/tracking) in M.implants) //The user was too slow and let the target mob's tracking implant expire or get removed.
|
||||
implantcheckmate = TRUE
|
||||
var/area/A = get_area(T)
|
||||
if(A.noteleport)
|
||||
if(A.noteleport || implantcheckmate)
|
||||
to_chat(user, "<span class='notice'>\The [src] is malfunctioning.</span>")
|
||||
return
|
||||
current_location = get_turf(user) //Recheck.
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
var/climbable = FALSE
|
||||
var/mob/living/structureclimber
|
||||
var/broken = 0 //similar to machinery's stat BROKEN
|
||||
layer = BELOW_OBJ_LAYER
|
||||
|
||||
/obj/structure/Initialize()
|
||||
if (!armor)
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
icon = 'icons/obj/closet.dmi'
|
||||
icon_state = "generic"
|
||||
density = TRUE
|
||||
layer = BELOW_OBJ_LAYER
|
||||
var/icon_door = null
|
||||
var/icon_door_override = FALSE //override to have open overlay use icon different to its base's
|
||||
var/secure = FALSE //secure locker or not, also used if overriding a non-secure locker with a secure door overlay to add fancy lights
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
desc = "A large structural assembly made out of metal; It requires a layer of metal before it can be considered a wall."
|
||||
anchored = TRUE
|
||||
density = TRUE
|
||||
layer = BELOW_OBJ_LAYER
|
||||
var/state = GIRDER_NORMAL
|
||||
var/girderpasschance = 20 // percentage chance that a projectile passes through the girder.
|
||||
var/can_displace = TRUE //If the girder can be moved around by wrenching it
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
opacity = TRUE
|
||||
layer = CLOSED_DOOR_LAYER
|
||||
|
||||
icon = 'icons/obj/doors/mineral_doors.dmi'
|
||||
icon_state = "metal"
|
||||
@@ -90,6 +91,7 @@
|
||||
flick("[initial_state]opening",src)
|
||||
sleep(10)
|
||||
density = FALSE
|
||||
layer = OPEN_DOOR_LAYER
|
||||
state = 1
|
||||
air_update_turf(1)
|
||||
update_icon()
|
||||
@@ -111,6 +113,7 @@
|
||||
density = TRUE
|
||||
set_opacity(TRUE)
|
||||
state = 0
|
||||
layer = initial(layer)
|
||||
air_update_turf(1)
|
||||
update_icon()
|
||||
isSwitchingStates = 0
|
||||
|
||||
@@ -133,9 +133,11 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an
|
||||
|
||||
/obj/structure/bodycontainer/proc/close()
|
||||
playsound(src, 'sound/effects/roll.ogg', 5, 1)
|
||||
playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1)
|
||||
playsound(src, 'sound/items/deconstruct.ogg', 50, 1)
|
||||
for(var/atom/movable/AM in connected.loc)
|
||||
if(!AM.anchored || AM == connected)
|
||||
if(ismob(AM) && !isliving(AM))
|
||||
continue
|
||||
AM.forceMove(src)
|
||||
recursive_organ_check(src)
|
||||
update_icon()
|
||||
@@ -305,7 +307,7 @@ GLOBAL_LIST_EMPTY(crematoriums)
|
||||
/obj/structure/tray
|
||||
icon = 'icons/obj/stationobjs.dmi'
|
||||
density = TRUE
|
||||
layer = BELOW_OBJ_LAYER
|
||||
layer = TRAY_LAYER
|
||||
var/obj/structure/bodycontainer/connected = null
|
||||
anchored = TRUE
|
||||
pass_flags = LETPASSTHROW
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
desc = "A base for reflector assemblies."
|
||||
anchored = FALSE
|
||||
density = FALSE
|
||||
layer = BELOW_OBJ_LAYER
|
||||
var/deflector_icon_state
|
||||
var/image/deflector_overlay
|
||||
var/finished = FALSE
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
animate_movement = FORWARD_STEPS
|
||||
anchored = TRUE
|
||||
density = TRUE
|
||||
layer = BELOW_OBJ_LAYER
|
||||
var/moving = 0
|
||||
var/datum/gas_mixture/air_contents = new()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user