Merge pull request #1060 from Erthilo/TGUpdates
TG Updates 3586 to 3594 + Var logging for stripping
@@ -643,6 +643,7 @@
|
||||
#include "code\game\objects\toys.dm"
|
||||
#include "code\game\objects\transfer_valve.dm"
|
||||
#include "code\game\objects\washing_machine.dm"
|
||||
#include "code\game\objects\watercloset.dm"
|
||||
#include "code\game\objects\weapons.dm"
|
||||
#include "code\game\objects\window.dm"
|
||||
#include "code\game\objects\alien\acid.dm"
|
||||
|
||||
@@ -485,8 +485,8 @@ proc/process_ghost_teleport_locs()
|
||||
|
||||
//PRISON
|
||||
/area/prison
|
||||
name = "Prison Wing"
|
||||
icon_state = "security"
|
||||
name = "Prison Station"
|
||||
icon_state = "brig"
|
||||
|
||||
/area/prison/arrival_airlock
|
||||
name = "Prison Station Airlock"
|
||||
@@ -1058,6 +1058,10 @@ proc/process_ghost_teleport_locs()
|
||||
name = "Brig"
|
||||
icon_state = "brig"
|
||||
|
||||
/area/security/prison
|
||||
name = "Prison Wing"
|
||||
icon_state = "security"
|
||||
|
||||
/area/security/warden
|
||||
name = "Warden"
|
||||
icon_state = "Warden"
|
||||
|
||||
@@ -1679,6 +1679,9 @@
|
||||
reagents = R
|
||||
R.my_atom = src
|
||||
|
||||
/obj/item/weapon/grown/proc/changePotency(newValue) //-QualityVan
|
||||
potency = newValue
|
||||
|
||||
/obj/item/weapon/grown/log
|
||||
name = "tower-cap log"
|
||||
desc = "It's better than bad, it's good!"
|
||||
|
||||
@@ -756,7 +756,8 @@
|
||||
containername = "Secruity Barriers crate"
|
||||
group = "Security"
|
||||
|
||||
/datum/supply_packs/hats/
|
||||
/datum/supply_packs/randomised
|
||||
var/num_contained = 3 //number of items picked to be contained in a randomised crate
|
||||
contains = list("/obj/item/clothing/head/collectable/chef",
|
||||
"/obj/item/clothing/head/collectable/paper",
|
||||
"/obj/item/clothing/head/collectable/tophat",
|
||||
@@ -783,32 +784,22 @@
|
||||
"/obj/item/clothing/head/collectable/petehat")
|
||||
name = "Collectable hat crate!"
|
||||
cost = 200
|
||||
containertype = "/obj/structure/closet/crate/hat"
|
||||
containertype = "/obj/structure/closet/crate"
|
||||
containername = "Collectable hats crate! Brought to you by Bass.inc!"
|
||||
group = "Clothing"
|
||||
|
||||
/datum/supply_packs/hats/New()
|
||||
/datum/supply_packs/randomised/New()
|
||||
var/list/tempContains = list()
|
||||
for(var/i = 0,i<min(3,contains.len),i++)
|
||||
for(var/i = 0,i<num_contained,i++)
|
||||
tempContains += pick(contains)
|
||||
contains = tempContains
|
||||
..()
|
||||
|
||||
|
||||
/datum/supply_packs/contraband
|
||||
/datum/supply_packs/randomised/contraband
|
||||
num_contained = 5
|
||||
contains = list("/obj/item/weapon/contraband/poster","/obj/item/weapon/cigpacket/dromedaryco") //We randomly pick 5 items from this list through the constructor, look below
|
||||
name = "Contraband crate"
|
||||
cost = 30
|
||||
containertype = "/obj/structure/closet/crate/contraband"
|
||||
containertype = "/obj/structure/closet/crate"
|
||||
containername = "Contraband crate"
|
||||
contraband = 1
|
||||
group = "NanoTrasen Contraband Storage"
|
||||
|
||||
/datum/supply_packs/contraband/New()
|
||||
var/list/tempContains = list()
|
||||
for(1 to 5)
|
||||
if(!contains || !contains.len)
|
||||
break //Sanity checking.
|
||||
tempContains += pick(contains)
|
||||
contains = tempContains
|
||||
..()
|
||||
@@ -3,22 +3,28 @@
|
||||
Announce()
|
||||
|
||||
for (var/obj/machinery/power/apc/temp_apc in world)
|
||||
if(istype(get_area(temp_apc), /area/security/prison))
|
||||
temp_apc.overload_lighting()
|
||||
if(istype(get_area(temp_apc), /area/security/brig))
|
||||
temp_apc.overload_lighting()
|
||||
// for (var/obj/machinery/computer/prison_shuttle/temp_shuttle in world)
|
||||
// temp_shuttle.prison_break()
|
||||
for (var/obj/structure/closet/secure_closet/security/temp_closet in world)
|
||||
if(istype(get_area(temp_closet), /area/security/brig))
|
||||
for (var/obj/structure/closet/secure_closet/brig/temp_closet in world)
|
||||
if(istype(get_area(temp_closet), /area/security/prison))
|
||||
temp_closet.locked = 0
|
||||
temp_closet.icon_state = temp_closet.icon_closed
|
||||
for (var/obj/machinery/door/airlock/security/temp_airlock in world)
|
||||
if(istype(get_area(temp_airlock), /area/security/prison))
|
||||
temp_airlock.prison_open()
|
||||
if(istype(get_area(temp_airlock), /area/security/brig))
|
||||
temp_airlock.prison_open()
|
||||
for (var/obj/machinery/door/airlock/glass/glass_security/temp_glassairlock in world)
|
||||
if(istype(get_area(temp_glassairlock), /area/security/prison))
|
||||
temp_glassairlock.prison_open()
|
||||
if(istype(get_area(temp_glassairlock), /area/security/brig))
|
||||
temp_glassairlock.prison_open()
|
||||
for (var/obj/machinery/door_timer/temp_timer in world)
|
||||
if(istype(get_area(temp_timer), /area/security/brig))
|
||||
temp_timer.releasetime = 1
|
||||
sleep(150)
|
||||
command_alert("Glitch in imprisonment subroutines detected on [station_name()]. Recommend station AI involvement.", "Security Alert")
|
||||
command_alert("Glitch in imprisonment subroutines detected on [station_name()]. Recommend station AI involvement.", "Security Alert")
|
||||
|
||||
@@ -215,9 +215,9 @@
|
||||
access_tox, access_tox_storage, access_chemistry, access_medical, access_genetics, access_engine,
|
||||
access_emergency_storage, access_change_ids, access_ai_upload, access_eva, access_heads,
|
||||
access_all_personal_lockers, access_tech_storage, access_maint_tunnels, access_bar, access_janitor,
|
||||
access_crematorium, access_kitchen, access_robotics, access_cargo, access_cargo_bot, access_hydroponics, access_lawyer,
|
||||
access_theatre, access_research, access_mining, access_heads_vault, access_mining_station,
|
||||
access_hop, access_RC_announce, access_keycard_auth)
|
||||
access_crematorium, access_kitchen, access_robotics, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer,
|
||||
access_theatre, access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station,
|
||||
access_clown, access_mime, access_hop, access_RC_announce, access_keycard_auth)
|
||||
if("Atmospheric Technician")
|
||||
return list(access_atmospherics, access_maint_tunnels, access_emergency_storage)
|
||||
if("Bartender")
|
||||
@@ -239,7 +239,7 @@
|
||||
if("Shaft Miner")
|
||||
return list(access_mining, access_mint, access_mining_station)
|
||||
if("Quartermaster")
|
||||
return list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mint, access_mining)
|
||||
return list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mint, access_mining, access_mining_station)
|
||||
if("Chief Engineer")
|
||||
return list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels,
|
||||
access_teleporter, access_external_airlocks, access_atmospherics, access_emergency_storage, access_eva,
|
||||
|
||||
@@ -146,6 +146,7 @@
|
||||
if(H.backbag == 2) H.equip_if_possible(new /obj/item/weapon/storage/backpack/industrial (H), H.slot_back)
|
||||
if(H.backbag == 3) H.equip_if_possible(new /obj/item/weapon/storage/backpack/satchel(H), H.slot_back)
|
||||
if(H.backbag == 4) H.equip_if_possible(new /obj/item/weapon/storage/backpack/satchel_eng(H), H.slot_back)
|
||||
H.equip_if_possible(new /obj/item/device/pda/shaftminer(H), H.slot_belt)
|
||||
H.equip_if_possible(new /obj/item/clothing/under/rank/miner(H), H.slot_w_uniform)
|
||||
H.equip_if_possible(new /obj/item/clothing/shoes/black(H), H.slot_shoes)
|
||||
if(H.backbag == 1)
|
||||
|
||||
@@ -119,7 +119,7 @@
|
||||
if(H.backbag == 4) H.equip_if_possible(new /obj/item/weapon/storage/backpack/satchel_norm(H), H.slot_back)
|
||||
H.equip_if_possible(new /obj/item/clothing/under/rank/roboticist(H), H.slot_w_uniform)
|
||||
H.equip_if_possible(new /obj/item/clothing/shoes/black(H), H.slot_shoes)
|
||||
H.equip_if_possible(new /obj/item/device/pda/engineering(H), H.slot_belt)
|
||||
H.equip_if_possible(new /obj/item/device/pda/roboticist(H), H.slot_belt)
|
||||
H.equip_if_possible(new /obj/item/clothing/suit/storage/labcoat(H), H.slot_wear_suit)
|
||||
H.equip_if_possible(new /obj/item/clothing/gloves/black(H), H.slot_gloves)
|
||||
H.equip_if_possible(new /obj/item/weapon/storage/toolbox/mechanical(H), H.slot_l_hand)
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
faction = "Station"
|
||||
total_positions = 1
|
||||
spawn_positions = 1
|
||||
supervisors = "the chief medical officer"
|
||||
supervisors = "the chief medical officer and research director"
|
||||
selection_color = "#ffeef0"
|
||||
|
||||
|
||||
|
||||
@@ -23,6 +23,8 @@ var/global/list/autolathe_recipes = list( \
|
||||
new /obj/item/weapon/kitchenknife(), \
|
||||
new /obj/item/weapon/scalpel(), \
|
||||
new /obj/item/weapon/circular_saw(), \
|
||||
new /obj/item/weapon/reagent_containers/glass/beaker(), \
|
||||
new /obj/item/weapon/reagent_containers/glass/large(), \
|
||||
new /obj/item/ammo_casing/shotgun/blank(), \
|
||||
new /obj/item/ammo_casing/shotgun/beanbag(), \
|
||||
new /obj/item/ammo_magazine/c38(), \
|
||||
|
||||
@@ -820,7 +820,7 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
var/t_amount = 0
|
||||
|
||||
while ( t_amount < (yield * parent.yieldmod ))
|
||||
var/obj/item/weapon/reagent_containers/food/snacks/grown/t_prod = new produce(user.loc, potency) // User gets a consumable
|
||||
var/obj/item/weapon/grown/t_prod = new produce(user.loc, potency) // User gets a consumable -QualityVan
|
||||
t_prod.seed = mypath
|
||||
t_prod.species = species
|
||||
t_prod.lifespan = lifespan
|
||||
@@ -828,7 +828,7 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
t_prod.maturation = maturation
|
||||
t_prod.production = production
|
||||
t_prod.yield = yield
|
||||
t_prod.potency = potency
|
||||
t_prod.changePotency(potency) // -QualityVan
|
||||
t_prod.plant_type = plant_type
|
||||
t_amount++
|
||||
|
||||
@@ -840,7 +840,7 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
var/t_amount = 0
|
||||
|
||||
while ( t_amount < (yield * parent.yieldmod ))
|
||||
var/obj/item/weapon/reagent_containers/food/snacks/grown/t_prod = new produce(user.loc, potency) // User gets a consumable
|
||||
var/obj/item/weapon/grown/t_prod = new produce(user.loc, potency) // User gets a consumable -QualityVan
|
||||
t_prod.seed = mypath
|
||||
t_prod.species = species
|
||||
t_prod.lifespan = lifespan
|
||||
@@ -848,7 +848,7 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
t_prod.maturation = maturation
|
||||
t_prod.production = production
|
||||
t_prod.yield = yield
|
||||
t_prod.potency = potency
|
||||
t_prod.changePotency(potency) // -QualityVan
|
||||
t_prod.plant_type = plant_type
|
||||
t_amount++
|
||||
|
||||
|
||||
@@ -110,6 +110,9 @@
|
||||
default_cartridge = /obj/item/weapon/cartridge/quartermaster
|
||||
icon_state = "pda-q"
|
||||
|
||||
/obj/item/device/pda/shaftminer
|
||||
icon_state = "pda-miner"
|
||||
|
||||
/obj/item/device/pda/syndicate
|
||||
default_cartridge = /obj/item/weapon/cartridge/syndicate
|
||||
icon_state = "pda-syn"
|
||||
@@ -129,6 +132,11 @@
|
||||
//default_cartridge = /obj/item/weapon/cartridge/botanist
|
||||
icon_state = "pda-hydro"
|
||||
|
||||
/obj/item/device/pda/roboticist
|
||||
icon_state = "pda-robot"
|
||||
desc = "A portable microcomputer by Thinktronic Systems, LTD. This is model is a special edition with a transparent case."
|
||||
note = "Congratulations, your station has chosen the Thinktronic 5230 Personal Data Assistant Deluxe Special Turbo Edition!"
|
||||
|
||||
/obj/item/device/pda/librarian
|
||||
icon_state = "pda-libb"
|
||||
desc = "A portable microcomputer by Thinktronic Systems, LTD. This is model is a WGW-11 series e-reader."
|
||||
|
||||
@@ -97,6 +97,10 @@ Craftables (Cob pipes, potato batteries, pumpkinheads)
|
||||
usr << "All the leaves have fallen off the nettle from violent whacking."
|
||||
del(src)
|
||||
|
||||
/obj/item/weapon/grown/nettle/changePotency(newValue) //-QualityVan
|
||||
potency = newValue
|
||||
force = round((5+potency/5), 1)
|
||||
|
||||
|
||||
// Deathnettle
|
||||
|
||||
@@ -137,6 +141,10 @@ Craftables (Cob pipes, potato batteries, pumpkinheads)
|
||||
usr << "All the leaves have fallen off the deathnettle from violent whacking."
|
||||
del(src)
|
||||
|
||||
/obj/item/weapon/grown/deathnettle/changePotency(newValue) //-QualityVan
|
||||
potency = newValue
|
||||
force = round((5+potency/2.5), 1)
|
||||
|
||||
//Crafting
|
||||
|
||||
/obj/item/weapon/corncob/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
|
||||
@@ -16,6 +16,14 @@ RACK PARTS
|
||||
new /obj/item/stack/sheet/metal( src.loc )
|
||||
//SN src = null
|
||||
del(src)
|
||||
if (istype(W, /obj/item/stack/rods))
|
||||
if (W:amount >= 4)
|
||||
new /obj/item/weapon/table_parts/reinforced( user.loc )
|
||||
user << "\blue You reinforce the [name]."
|
||||
W:use(4)
|
||||
del(src)
|
||||
else if (W:amount < 4)
|
||||
user << "\red You need at least four rods to do this."
|
||||
|
||||
/obj/item/weapon/table_parts/attack_self(mob/user as mob)
|
||||
var/obj/structure/table/T = new /obj/structure/table( user.loc )
|
||||
@@ -29,8 +37,6 @@ RACK PARTS
|
||||
new /obj/item/stack/sheet/wood( src.loc )
|
||||
//SN src = null
|
||||
del(src)
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/weapon/table_parts/wood/attack_self(mob/user as mob)
|
||||
new /obj/structure/table/woodentable( user.loc )
|
||||
@@ -40,9 +46,9 @@ RACK PARTS
|
||||
|
||||
// REINFORCED TABLE PARTS
|
||||
/obj/item/weapon/table_parts/reinforced/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
..()
|
||||
if (istype(W, /obj/item/weapon/wrench))
|
||||
new /obj/item/stack/sheet/plasteel( src.loc )
|
||||
new /obj/item/stack/sheet/metal( src.loc )
|
||||
new /obj/item/stack/rods( src.loc )
|
||||
//SN src = null
|
||||
del(src)
|
||||
|
||||
|
||||
@@ -103,7 +103,6 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \
|
||||
|
||||
// /datum/stack_recipe/New(title, result_type, req_amount, res_amount, max_res_amount, time, one_per_turf, on_floor = 0)
|
||||
var/global/list/datum/stack_recipe/plasteel_recipes = list ( \
|
||||
new/datum/stack_recipe("table parts", /obj/item/weapon/table_parts/reinforced, 2), \
|
||||
new/datum/stack_recipe("AI core", /obj/structure/AIcore, 4, one_per_turf = 1), \
|
||||
)
|
||||
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
icon_opened = "trashcartopen"
|
||||
icon_closed = "trashcart"
|
||||
|
||||
/*these aren't needed anymore
|
||||
/obj/structure/closet/crate/hat
|
||||
desc = "A crate filled with Valuable Collector's Hats!."
|
||||
name = "Hat Crate"
|
||||
@@ -39,15 +40,6 @@
|
||||
icon_closed = "crate"
|
||||
|
||||
/obj/structure/closet/crate/contraband
|
||||
name = "Contraband crate"
|
||||
desc = "A random assortment of items manufactured by providers NOT listed under Nanotrasen's whitelist."
|
||||
icon = 'storage.dmi'
|
||||
icon_state = "crate"
|
||||
density = 1
|
||||
icon_opened = "crateopen"
|
||||
icon_closed = "crate"
|
||||
|
||||
/obj/structure/closet/crate/poster
|
||||
name = "Poster crate"
|
||||
desc = "A random assortment of posters manufactured by providers NOT listed under Nanotrasen's whitelist."
|
||||
icon = 'storage.dmi'
|
||||
@@ -55,15 +47,7 @@
|
||||
density = 1
|
||||
icon_opened = "crateopen"
|
||||
icon_closed = "crate"
|
||||
|
||||
/obj/structure/closet/crate/cigarettes
|
||||
name = "DromedaryCo cigarettes crate"
|
||||
desc = "A crate of cigarettes manufactured by the notorious DromedaryCo company."
|
||||
icon = 'storage.dmi'
|
||||
icon_state = "crate"
|
||||
density = 1
|
||||
icon_opened = "crateopen"
|
||||
icon_closed = "crate"
|
||||
*/
|
||||
|
||||
/obj/structure/closet/crate/medical
|
||||
desc = "A medical crate."
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
//todo: flushing, flushing heads, showers actually cleaning people
|
||||
|
||||
/obj/structure/toilet
|
||||
name = "toilet"
|
||||
desc = "The HT-451, a torque rotation-based, waste disposal unit for small matter. This one seems remarkably clean."
|
||||
icon = 'watercloset.dmi'
|
||||
icon_state = "toilet0"
|
||||
density = 0
|
||||
anchored = 1
|
||||
var/open = 0
|
||||
|
||||
/obj/structure/toilet/New()
|
||||
open = round(rand(0, 1))
|
||||
update_icon()
|
||||
|
||||
/obj/structure/toilet/attack_hand()
|
||||
open = !open
|
||||
update_icon()
|
||||
|
||||
/obj/structure/toilet/update_icon()
|
||||
icon_state = "toilet[open]"
|
||||
|
||||
|
||||
|
||||
/obj/structure/urinal
|
||||
name = "urinal"
|
||||
desc = "The HU-452, an experimental urinal."
|
||||
icon = 'watercloset.dmi'
|
||||
icon_state = "urinal"
|
||||
density = 0
|
||||
anchored = 1
|
||||
|
||||
|
||||
|
||||
/obj/structure/shower
|
||||
name = "shower"
|
||||
desc = "The HS-451. Installed in the 2550s by the Nanotrasen Hygiene Division."
|
||||
icon = 'watercloset.dmi'
|
||||
icon_state = "shower"
|
||||
density = 0
|
||||
anchored = 1
|
||||
var/on = 0
|
||||
var/mist = 0 //needs a var so we can make it linger~
|
||||
|
||||
//add heat controls? when emagged, you can freeze to death in it?
|
||||
|
||||
/obj/structure/shower/attack_hand()
|
||||
on = !on
|
||||
update_icon()
|
||||
|
||||
/obj/structure/shower/update_icon()
|
||||
overlays = null
|
||||
if(on)
|
||||
overlays += image('watercloset.dmi', src, "water", MOB_LAYER + 1, dir)
|
||||
spawn(50)
|
||||
if(src && on)
|
||||
overlays += image('watercloset.dmi', src, "mist", MOB_LAYER + 1, dir)
|
||||
mist = 1
|
||||
else if(mist)
|
||||
overlays += image('watercloset.dmi', src, "mist", MOB_LAYER + 1, dir)
|
||||
spawn(100)
|
||||
if(src && !on)
|
||||
overlays = null
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/bikehorn/rubberducky
|
||||
name = "rubber ducky"
|
||||
desc = "Rubber ducky you're so fine, you make bathtime lots of fuuun. Rubber ducky I'm awfully fooooond of yooooouuuu~" //thanks doohl
|
||||
icon = 'watercloset.dmi'
|
||||
icon_state = "rubberducky"
|
||||
item_state = "rubberducky"
|
||||
@@ -616,10 +616,26 @@
|
||||
for(var/mob/living/carbon/M in D.loc)
|
||||
if(!istype(M,/mob/living/carbon)) continue
|
||||
if(M == user) continue
|
||||
//Syring gune attack logging by Yvarov
|
||||
var/R
|
||||
for(var/datum/reagent/A in D.reagents.reagent_list)
|
||||
R += A.id + " ("
|
||||
R += num2text(A.volume) + "),"
|
||||
if (istype(M, /mob))
|
||||
M.attack_log += "\[[time_stamp()]\] <b>[user]/[user.ckey]</b> shot <b>[M]/[M.ckey]</b> with a <b>syringegun</b> ([R])"
|
||||
user.attack_log += "\[[time_stamp()]\] <b>[user]/[user.ckey]</b> shot <b>[M]/[M.ckey]</b> with a <b>syringegun</b> ([R])"
|
||||
log_attack("<font color='red'>[user] ([user.ckey]) shot [M] ([M.ckey]) with a syringegun ([R])</font>")
|
||||
log_admin("ATTACK: [user] ([user.ckey]) shot [M] ([M.ckey]) with a syringegun ([R]).")
|
||||
message_admins("ATTACK: [user] ([user.ckey]) shot [M] ([M.ckey]) with a syringegun ([R]).")
|
||||
else
|
||||
M.attack_log += "\[[time_stamp()]\] <b>UNKNOWN SUBJECT (No longer exists)</b> shot <b>[M]/[M.ckey]</b> with a <b>syringegun</b> ([R])"
|
||||
log_attack("<font color='red'>UNKNOWN shot [M] ([M.ckey]) with a <b>syringegun</b> ([R])</font>")
|
||||
log_admin("ATTACK: UNKNOWN shot [M] ([M.ckey]) with a <b>syringegun</b> ([R]).")
|
||||
message_admins("ATTACK: UNKNOWN shot [M] ([M.ckey]) with a <b>syringegun</b> ([R]).")
|
||||
D.reagents.trans_to(M, 15)
|
||||
M.take_organ_damage(5)
|
||||
for(var/mob/O in viewers(world.view, D))
|
||||
O.show_message(text("\red [] was hit by the syringe!", M), 1)
|
||||
O.show_message(text("\red [] is hit by the syringe!", M.name), 1)
|
||||
|
||||
del(D)
|
||||
if(D)
|
||||
@@ -1936,6 +1952,8 @@
|
||||
icon = 'chemical.dmi'
|
||||
icon_state = "beaker0"
|
||||
item_state = "beaker"
|
||||
m_amt = 0
|
||||
g_amt = 500
|
||||
|
||||
pickup(mob/user)
|
||||
on_reagent_change(user)
|
||||
@@ -2015,6 +2033,8 @@
|
||||
icon = 'chemical.dmi'
|
||||
icon_state = "beakerlarge"
|
||||
item_state = "beaker"
|
||||
m_amt = 0
|
||||
g_amt = 15000
|
||||
volume = 100
|
||||
amount_per_transfer_from_this = 10
|
||||
possible_transfer_amounts = list(5,10,15,25,30,50,100)
|
||||
|
||||
@@ -29,25 +29,7 @@
|
||||
|
||||
handle_regular_hud_updates()
|
||||
|
||||
if (src.stat == 2 || src.mutations & XRAY)
|
||||
src.sight |= SEE_TURFS
|
||||
src.sight |= SEE_MOBS
|
||||
src.sight |= SEE_OBJS
|
||||
src.see_in_dark = 8
|
||||
src.see_invisible = 2
|
||||
else if (src.stat != 2)
|
||||
src.sight |= SEE_MOBS
|
||||
src.sight |= SEE_TURFS
|
||||
src.sight &= ~SEE_OBJS
|
||||
src.see_in_dark = 5
|
||||
src.see_invisible = 2
|
||||
|
||||
if (src.sleep)
|
||||
src.sleep.icon_state = text("sleep[]", src.sleeping > 0 ? 1 : 0)
|
||||
src.sleep.overlays = null
|
||||
if(src.sleeping_willingly)
|
||||
src.sleep.overlays += icon(src.sleep.icon, "sleep_willing")
|
||||
if (src.rest) src.rest.icon_state = text("rest[]", src.resting)
|
||||
..() //-Yvarov
|
||||
|
||||
if (src.healths)
|
||||
if (src.stat != 2)
|
||||
@@ -86,7 +68,7 @@
|
||||
|
||||
if(src.sleeping)
|
||||
Paralyse(3)
|
||||
if (prob(10) && health) spawn(0) emote("snore")
|
||||
//if (prob(10) && health) spawn(0) emote("snore") Invalid Emote
|
||||
if(!src.sleeping_willingly)
|
||||
src.sleeping--
|
||||
|
||||
|
||||
@@ -29,25 +29,7 @@
|
||||
|
||||
handle_regular_hud_updates()
|
||||
|
||||
if (src.stat == 2 || src.mutations & XRAY)
|
||||
src.sight |= SEE_TURFS
|
||||
src.sight |= SEE_MOBS
|
||||
src.sight |= SEE_OBJS
|
||||
src.see_in_dark = 8
|
||||
src.see_invisible = 2
|
||||
else if (src.stat != 2)
|
||||
src.sight |= SEE_MOBS
|
||||
src.sight &= SEE_TURFS
|
||||
src.sight &= ~SEE_OBJS
|
||||
src.see_in_dark = 7
|
||||
src.see_invisible = 3
|
||||
|
||||
if (src.sleep)
|
||||
src.sleep.icon_state = text("sleep[]", src.sleeping > 0 ? 1 : 0)
|
||||
src.sleep.overlays = null
|
||||
if(src.sleeping_willingly)
|
||||
src.sleep.overlays += icon(src.sleep.icon, "sleep_willing")
|
||||
if (src.rest) src.rest.icon_state = text("rest[]", src.resting)
|
||||
..() //-Yvarov
|
||||
|
||||
if (src.healths)
|
||||
if (src.stat != 2)
|
||||
@@ -87,7 +69,7 @@
|
||||
|
||||
if(src.sleeping)
|
||||
Paralyse(3)
|
||||
if (prob(10) && health) spawn(0) emote("snore")
|
||||
//if (prob(10) && health) spawn(0) emote("snore") Invalid Emote
|
||||
if(!src.sleeping_willingly)
|
||||
src.sleeping--
|
||||
|
||||
|
||||
@@ -404,7 +404,7 @@
|
||||
|
||||
if(src.sleeping)
|
||||
Paralyse(3)
|
||||
if (prob(10) && health) spawn(0) emote("snore")
|
||||
//if (prob(10) && health) emote("snore") //Invalid emote for aliens, but it might be worth making sleep noticeable somehow -Yvarov
|
||||
if(!src.sleeping_willingly)
|
||||
src.sleeping--
|
||||
|
||||
|
||||
@@ -32,25 +32,7 @@
|
||||
|
||||
handle_regular_hud_updates()
|
||||
|
||||
if (src.stat == 2 || src.mutations & XRAY)
|
||||
src.sight |= SEE_TURFS
|
||||
src.sight |= SEE_MOBS
|
||||
src.sight |= SEE_OBJS
|
||||
src.see_in_dark = 8
|
||||
src.see_invisible = 2
|
||||
else if (src.stat != 2)
|
||||
src.sight |= SEE_MOBS
|
||||
src.sight |= SEE_TURFS
|
||||
src.sight &= ~SEE_OBJS
|
||||
src.see_in_dark = 8
|
||||
src.see_invisible = 2
|
||||
|
||||
if (src.sleep)
|
||||
src.sleep.icon_state = text("sleep[]", src.sleeping > 0 ? 1 : 0)
|
||||
src.sleep.overlays = null
|
||||
if(src.sleeping_willingly)
|
||||
src.sleep.overlays += icon(src.sleep.icon, "sleep_willing")
|
||||
if (src.rest) src.rest.icon_state = text("rest[]", src.resting)
|
||||
..() //-Yvarov
|
||||
|
||||
if (src.healths)
|
||||
if (src.stat != 2)
|
||||
@@ -88,7 +70,7 @@
|
||||
|
||||
if(src.sleeping)
|
||||
Paralyse(3)
|
||||
if (prob(10) && health) spawn(0) emote("snore")
|
||||
//if (prob(10) && health) spawn(0) emote("snore") Invalid Emote
|
||||
if(!src.sleeping_willingly)
|
||||
src.sleeping--
|
||||
|
||||
|
||||
@@ -327,7 +327,7 @@
|
||||
|
||||
if(sleeping)
|
||||
Paralyse(3)
|
||||
if (prob(10) && health) spawn(0) emote("snore")
|
||||
//if (prob(10) && health) spawn(0) emote("snore") Invalid Emote
|
||||
if(!src.sleeping_willingly)
|
||||
src.sleeping--
|
||||
|
||||
|
||||
@@ -1618,6 +1618,8 @@
|
||||
if("dnainjector")
|
||||
message = text("\red <B>[] is trying to inject [] with the []!</B>", source, target, item)
|
||||
if("mask")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their mask removed by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to remove [target.name]'s ([target.ckey]) mask</font>")
|
||||
if(istype(target.wear_mask, /obj/item/clothing)&&!target.wear_mask:canremove)
|
||||
message = text("\red <B>[] fails to take off \a [] from []'s body!</B>", source, target.wear_mask, target)
|
||||
else
|
||||
@@ -1625,51 +1627,75 @@
|
||||
/* if("headset")
|
||||
message = text("\red <B>[] is trying to take off \a [] from []'s face!</B>", source, target.w_radio, target) */
|
||||
if("l_hand")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their left hand item removed by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to remove [target.name]'s ([target.ckey]) left hand item</font>")
|
||||
message = text("\red <B>[] is trying to take off \a [] from []'s left hand!</B>", source, target.l_hand, target)
|
||||
if("r_hand")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their right hand item removed by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to remove [target.name]'s ([target.ckey]) right hand item</font>")
|
||||
message = text("\red <B>[] is trying to take off \a [] from []'s right hand!</B>", source, target.r_hand, target)
|
||||
if("gloves")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their gloves removed by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to remove [target.name]'s ([target.ckey]) gloves</font>")
|
||||
if(istype(target.gloves, /obj/item/clothing)&&!target.gloves:canremove)
|
||||
message = text("\red <B>[] fails to take off \a [] from []'s body!</B>", source, target.gloves, target)
|
||||
else
|
||||
message = text("\red <B>[] is trying to take off the [] from []'s hands!</B>", source, target.gloves, target)
|
||||
if("eyes")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their eyewear removed by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to remove [target.name]'s ([target.ckey]) eyewear</font>")
|
||||
if(istype(target.glasses, /obj/item/clothing)&&!target.glasses:canremove)
|
||||
message = text("\red <B>[] fails to take off \a [] from []'s body!</B>", source, target.glasses, target)
|
||||
else
|
||||
message = text("\red <B>[] is trying to take off the [] from []'s eyes!</B>", source, target.glasses, target)
|
||||
if("l_ear")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their left ear item removed by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to remove [target.name]'s ([target.ckey]) left ear item</font>")
|
||||
if(istype(target.l_ear, /obj/item/clothing)&&!target.l_ear:canremove)
|
||||
message = text("\red <B>[] fails to take off \a [] from []'s body!</B>", source, target.l_ear, target)
|
||||
else
|
||||
message = text("\red <B>[] is trying to take off the [] from []'s left ear!</B>", source, target.l_ear, target)
|
||||
if("r_ear")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their right ear item removed by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to remove [target.name]'s ([target.ckey]) right ear item</font>")
|
||||
if(istype(target.r_ear, /obj/item/clothing)&&!target.r_ear:canremove)
|
||||
message = text("\red <B>[] fails to take off \a [] from []'s body!</B>", source, target.r_ear, target)
|
||||
else
|
||||
message = text("\red <B>[] is trying to take off the [] from []'s right ear!</B>", source, target.r_ear, target)
|
||||
if("head")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their hat removed by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to remove [target.name]'s ([target.ckey]) hat</font>")
|
||||
if(istype(target.head, /obj/item/clothing)&&!target.head:canremove)
|
||||
message = text("\red <B>[] fails to take off \a [] from []'s body!</B>", source, target.head, target)
|
||||
else
|
||||
message = text("\red <B>[] is trying to take off the [] from []'s head!</B>", source, target.head, target)
|
||||
if("shoes")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their shoes removed by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to remove [target.name]'s ([target.ckey]) shoes</font>")
|
||||
if(istype(target.shoes, /obj/item/clothing)&&!target.shoes:canremove)
|
||||
message = text("\red <B>[] fails to take off \a [] from []'s body!</B>", source, target.shoes, target)
|
||||
else
|
||||
message = text("\red <B>[] is trying to take off the [] from []'s feet!</B>", source, target.shoes, target)
|
||||
if("belt")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their belt item removed by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to remove [target.name]'s ([target.ckey]) belt item</font>")
|
||||
message = text("\red <B>[] is trying to take off the [] from []'s belt!</B>", source, target.belt, target)
|
||||
if("suit")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their suit removed by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to remove [target.name]'s ([target.ckey]) suit</font>")
|
||||
if(istype(target.wear_suit, /obj/item/clothing)&&!target.wear_suit:canremove)
|
||||
message = text("\red <B>[] fails to take off \a [] from []'s body!</B>", source, target.wear_suit, target)
|
||||
else
|
||||
message = text("\red <B>[] is trying to take off \a [] from []'s body!</B>", source, target.wear_suit, target)
|
||||
if("back")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their back item removed by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to remove [target.name]'s ([target.ckey]) back item</font>")
|
||||
message = text("\red <B>[] is trying to take off \a [] from []'s back!</B>", source, target.back, target)
|
||||
if("handcuff")
|
||||
message = text("\red <B>[] is trying to unhandcuff []!</B>", source, target)
|
||||
if("uniform")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their uniform removed by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to remove [target.name]'s ([target.ckey]) uniform</font>")
|
||||
if(istype(target.w_uniform, /obj/item/clothing)&&!target.w_uniform:canremove)
|
||||
message = text("\red <B>[] fails to take off \a [] from []'s body!</B>", source, target.w_uniform, target)
|
||||
else
|
||||
@@ -1679,6 +1705,8 @@
|
||||
if("h_store")
|
||||
message = text("\red <B>[] is trying to empty []'s hat!</B>", source, target)
|
||||
if("pockets")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their pockets emptied by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to empty [target.name]'s ([target.ckey]) pockets</font>")
|
||||
for(var/obj/item/weapon/mousetrap/MT in list(target.l_store, target.r_store))
|
||||
if(MT.armed)
|
||||
for(var/mob/O in viewers(target, null))
|
||||
@@ -1701,8 +1729,12 @@
|
||||
return
|
||||
message = text("\red <B>[] is trying perform CPR on []!</B>", source, target)
|
||||
if("id")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their ID removed by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to remove [target.name]'s ([target.ckey]) ID</font>")
|
||||
message = text("\red <B>[] is trying to take off [] from []'s uniform!</B>", source, target.wear_id, target)
|
||||
if("internal")
|
||||
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their internals toggled by [source.name] ([source.ckey])</font>")
|
||||
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to toggle [target.name]'s ([target.ckey]) internals</font>")
|
||||
if (target.internal)
|
||||
message = text("\red <B>[] is trying to remove []'s internals</B>", source, target)
|
||||
else
|
||||
|
||||
@@ -173,7 +173,7 @@
|
||||
|
||||
hogan
|
||||
name = "Hulk Hogan Mustache"
|
||||
icon_state = "facial_chaplin"
|
||||
icon_state = "facial_hogan" //-Neek
|
||||
|
||||
vandyke
|
||||
name = "Van Dyke Mustache"
|
||||
|
||||
@@ -47,6 +47,24 @@ Stuff which is in development and not yet visible to players or just code relate
|
||||
should be listed in the changelog upon commit though. Thanks. -->
|
||||
|
||||
<!-- To take advantage of the pretty new format (well it was new when I wrote this anyway), open the "add-to-changelog.html" file in any browser and add the stuff and then generate the html code and paste it here -->
|
||||
<div class="commit sansserif">
|
||||
<h2 class="date">15 May 2012</h2>
|
||||
<h3 class="author">TG updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="rscadd">Beakers, small and large can now be made/recycled in autolathes.</li>
|
||||
<li class="rscadd">New PDA's for roboticists and shaft miners.</li>
|
||||
<li class="rscadd">Nettles now do damage based on their potency.</li>
|
||||
<li class="rscadd">Reinforced tables are now made with table parts + four rods, rather than plasteel.</li>
|
||||
<li class="imageadd">New sprites for bomb suit, in-hands for pulse rifles, advances energyguns, and laser guns. </li>
|
||||
<li class="bugfix">Fix for contraband crates being empty.</li>
|
||||
</ul>
|
||||
<h3 class="author">Erthilo updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="rscadd">More customs!</li>
|
||||
<li class="imageadd">New sprites for bomb suit, in-hands for pulse rifles, advanced energy guns, and laser guns. Credit to Flashkirby!</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="commit sansserif">
|
||||
<h2 class="date">13 May 2012</h2>
|
||||
<h3 class="author">TG updated:</h3>
|
||||
|
||||
|
Before Width: | Height: | Size: 124 KiB After Width: | Height: | Size: 125 KiB |
|
Before Width: | Height: | Size: 128 KiB After Width: | Height: | Size: 128 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 11 KiB |