Merge branch 'incremental_tg' r5514 (11/1/2013) into bs12_with_tgport

Conflicts:
	baystation12.dme
	code/ATMOSPHERICS/components/unary/vent_pump.dm
	code/ATMOSPHERICS/components/unary/vent_scrubber.dm
	code/__HELPERS/game.dm
	code/controllers/shuttle_controller.dm
	code/datums/datumvars.dm
	code/datums/supplypacks.dm
	code/defines/obj/storage.dm
	code/defines/obj/vending.dm
	code/defines/obj/weapon.dm
	code/defines/procs/command_alert.dm
	code/game/area/Space Station 13 areas.dm
	code/game/atoms.dm
	code/game/gamemodes/changeling/modularchangling.dm
	code/game/gamemodes/cult/runes.dm
	code/game/gamemodes/events.dm
	code/game/gamemodes/events/dust.dm
	code/game/gamemodes/events/miniblob.dm
	code/game/gamemodes/events/ninja_equipment.dm
	code/game/gamemodes/factions.dm
	code/game/gamemodes/game_mode.dm
	code/game/gamemodes/gameticker.dm
	code/game/jobs/access.dm
	code/game/jobs/job/assistant.dm
	code/game/jobs/job/captain.dm
	code/game/jobs/job/civilian.dm
	code/game/jobs/job/engineering.dm
	code/game/jobs/job/medical.dm
	code/game/jobs/job/science.dm
	code/game/jobs/job/security.dm
	code/game/jobs/job_controller.dm
	code/game/machinery/alarm.dm
	code/game/machinery/atmo_control.dm
	code/game/machinery/atmoalter/area_atmos_computer.dm
	code/game/machinery/bots/medbot.dm
	code/game/machinery/computer/HolodeckControl.dm
	code/game/machinery/computer/ai_core.dm
	code/game/machinery/computer/atmos_alert.dm
	code/game/machinery/computer/card.dm
	code/game/machinery/computer/cloning.dm
	code/game/machinery/computer/computer.dm
	code/game/machinery/computer/message.dm
	code/game/machinery/computer/pod.dm
	code/game/machinery/computer/prisoner.dm
	code/game/machinery/computer/syndicate_shuttle.dm
	code/game/machinery/constructable_frame.dm
	code/game/machinery/doors/door.dm
	code/game/machinery/doors/firedoor.dm
	code/game/machinery/newscaster.dm
	code/game/machinery/recharger.dm
	code/game/machinery/spaceheater.dm
	code/game/machinery/telecomms/broadcaster.dm
	code/game/machinery/telecomms/logbrowser.dm
	code/game/machinery/telecomms/machine_interactions.dm
	code/game/machinery/teleporter.dm
	code/game/machinery/wishgranter.dm
	code/game/mecha/mech_fabricator.dm
	code/game/mecha/working/ripley.dm
	code/game/objects/items.dm
	code/game/objects/items/blueprints.dm
	code/game/objects/items/devices/flashlight.dm
	code/game/objects/items/devices/radio/encryptionkey.dm
	code/game/objects/items/devices/uplinks.dm
	code/game/objects/items/stacks/medical.dm
	code/game/objects/items/weapons/cards_ids.dm
	code/game/objects/items/weapons/gift_wrappaper.dm
	code/game/objects/items/weapons/hydroponics.dm
	code/game/objects/items/weapons/manuals.dm
	code/game/objects/items/weapons/secstorage/secstorage.dm
	code/game/objects/items/weapons/storage/backpack.dm
	code/game/objects/items/weapons/storage/firstaid.dm
	code/game/objects/items/weapons/storage/kit.dm
	code/game/objects/items/weapons/storage/storage.dm
	code/game/objects/items/weapons/storage/toolbox.dm
	code/game/objects/items/weapons/storage/uplink_kits.dm
	code/game/objects/items/weapons/stunbaton.dm
	code/game/objects/items/weapons/surgery_tools.dm
	code/game/objects/items/weapons/tools.dm
	code/game/objects/structures/crates_lockers/closets/secure/cargo.dm
	code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm
	code/game/objects/structures/crates_lockers/closets/secure/scientist.dm
	code/game/objects/structures/crates_lockers/closets/secure/security.dm
	code/game/objects/structures/electricchair.dm
	code/game/objects/structures/extinguisher.dm
	code/game/objects/structures/watercloset.dm
	code/game/objects/weapons.dm
	code/game/turfs/turf.dm
	code/game/vehicles/airtight/airtight.dm
	code/game/vehicles/vehicle.dm
	code/global.dm
	code/modules/DetectiveWork/evidence.dm
	code/modules/admin/IsBanned.dm
	code/modules/admin/player_panel.dm
	code/modules/admin/verbs/diagnostics.dm
	code/modules/admin/verbs/getlogs.dm
	code/modules/client/preferences.dm
	code/modules/clothing/masks/miscellaneous.dm
	code/modules/clothing/spacesuits/rig.dm
	code/modules/clothing/suits/miscellaneous.dm
	code/modules/critters/critter_defenses.dm
	code/modules/detectivework/scanner.dm
	code/modules/flufftext/Hallucination.dm
	code/modules/food/recipes_microwave.dm
	code/modules/mining/mine_items.dm
	code/modules/mining/mine_turfs.dm
	code/modules/mining/satchel_ore_boxdm.dm
	code/modules/mob/dead/observer/observer.dm
	code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm
	code/modules/mob/living/carbon/alien/special/facehugger.dm
	code/modules/mob/living/carbon/carbon.dm
	code/modules/mob/living/carbon/carbon_defines.dm
	code/modules/mob/living/carbon/human/human.dm
	code/modules/mob/living/carbon/human/human_attackhand.dm
	code/modules/mob/living/carbon/human/life.dm
	code/modules/mob/living/carbon/human/say.dm
	code/modules/mob/living/carbon/human/update_icons.dm
	code/modules/mob/living/carbon/metroid/metroid.dm
	code/modules/mob/living/living.dm
	code/modules/mob/living/silicon/ai/life.dm
	code/modules/mob/living/silicon/robot/robot.dm
	code/modules/mob/mob_cleanup.dm
	code/modules/mob/mob_defines.dm
	code/modules/mob/mob_transformation_simple.dm
	code/modules/paperwork/clipboard.dm
	code/modules/paperwork/folders.dm
	code/modules/paperwork/paper.dm
	code/modules/paperwork/paperbin.dm
	code/modules/paperwork/pen.dm
	code/modules/power/cable.dm
	code/modules/projectiles/guns/energy/special.dm
	code/modules/projectiles/guns/projectile/revolver.dm
	code/modules/projectiles/projectile/change.dm
	code/modules/projectiles/projectile/special.dm
	code/modules/reagents/Chemistry-Reagents.dm
	code/modules/reagents/reagent_containers/glass.dm
	code/modules/reagents/reagent_containers/hypospray.dm
	code/modules/recycling/sortingmachinery.dm
	code/modules/research/designs.dm
	config/config.txt
	html/changelog.html
	icons/mob/head.dmi
	icons/mob/hud.dmi
	icons/mob/items_lefthand.dmi
	icons/mob/items_righthand.dmi
	icons/mob/mask.dmi
	icons/mob/suit.dmi
	icons/mob/ties.dmi
	icons/mob/uniform.dmi
	icons/obj/clothing/hats.dmi
	icons/obj/clothing/masks.dmi
	icons/obj/clothing/suits.dmi
	icons/obj/clothing/ties.dmi
	icons/obj/grenade.dmi
	icons/obj/projectiles.dmi

Signed-off-by: Cael_Aislinn <cael_aislinn@yahoo.com.au>
This commit is contained in:
Cael_Aislinn
2013-01-11 22:10:41 +10:00
637 changed files with 28812 additions and 21593 deletions

View File

@@ -52,6 +52,7 @@
src.reagents.reaction(safe_thing, TOUCH)
user << "\blue You transfer [trans] units of the solution."
if (src.reagents.total_volume<=0)
filled = 0
@@ -62,6 +63,15 @@
for(var/mob/O in viewers(world.view, user))
O.show_message(text("\red <B>[] squirts something into []'s eyes!</B>", user, target), 1)
src.reagents.reaction(target, TOUCH)
var/mob/M = target
var/R
if(src.reagents)
for(var/datum/reagent/A in src.reagents.reagent_list)
R += A.id + " ("
R += num2text(A.volume) + "),"
user.attack_log += "\[[time_stamp()]\] <b>[user]/[user.ckey]</b> squirted <b>[M]/[M.ckey]</b> with ([R])"
M.attack_log += "\[[time_stamp()]\] <b>[user]/[user.ckey]</b> squirted <b>[M]/[M.ckey]</b> with ([R])"
log_attack("\[[time_stamp()]\] <b>[user]/[user.ckey]</b> squirted <b>[M]/[M.ckey]</b> with ([R])")
trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
user << "\blue You transfer [trans] units of the solution."

View File

@@ -120,11 +120,11 @@
if (!(usr in range(0)) && usr!=src.loc) return
if(!reagents || reagents.total_volume==0)
usr << "\blue \The [src] is empty!"
else if (reagents.total_volume<src.volume/4)
else if (reagents.total_volume<=src.volume/4)
usr << "\blue \The [src] is almost empty!"
else if (reagents.total_volume<src.volume/2)
else if (reagents.total_volume<=src.volume*0.66)
usr << "\blue \The [src] is half full!"
else if (reagents.total_volume<src.volume/0.90)
else if (reagents.total_volume<=src.volume*0.90)
usr << "\blue \The [src] is almost full!"
else
usr << "\blue \The [src] is full!"

View File

@@ -124,7 +124,6 @@
throw_speed = 3
throw_range = 5
item_state = "beer"
//item_state - Need to find a bottle sprite
attack_verb = list("stabbed", "slashed", "attacked")
var/icon/broken_outline = icon('icons/obj/drinks.dmi', "broken")

View File

@@ -9,15 +9,15 @@
item_state = "beaker"
New()
..()
reagents.add_reagent("metroid", 50)
reagents.add_reagent("slime", 50)
on_reagent_change()
if (reagents.reagent_list.len > 0)
switch(reagents.get_master_reagent_id())
if("metroid")
icon_state = "jar_metroid"
name = "metroid jam"
desc = "A jar of metroid jam. Delicious!"
if("slime")
icon_state = "jar_slime"
name = "slime jam"
desc = "A jar of slime jam. Delicious!"
else
icon_state ="jar_what"
name = "jar of something"

View File

@@ -50,7 +50,7 @@
M << "\red You cannot force any more of [src] to go down your throat."
return 0
else
if(!istype(M, /mob/living/carbon/metroid)) //If you're feeding it to someone else.
if(!istype(M, /mob/living/carbon/slime)) //If you're feeding it to someone else.
var/fullness = M.nutrition + (M.reagents.get_reagent_amount("nutriment") * 25)
if (fullness <= (550 * (1 + M.overeatduration / 1000)))
for(var/mob/O in viewers(world.view, user))
@@ -118,6 +118,10 @@
usr << "\blue \The [src] was bitten multiple times!"
/obj/item/weapon/reagent_containers/food/snacks/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/storage))
..() // -> item/attackby()
if(istype(W,/obj/item/weapon/storage))
..() // -> item/attackby()
if((slices_num <= 0 || !slices_num) || !slice_path)
return 1
var/inaccurate = 0
@@ -345,7 +349,7 @@
desc = "Like life, it never quite tastes the same."
icon_state = "donut1"
New()
..()
reagents.add_reagent("nutriment", 2)
reagents.add_reagent("sprinkles", 1)
bitesize = 10
@@ -364,7 +368,7 @@
if(6)
reagents.add_reagent("coco", 3)
if(7)
reagents.add_reagent("rorojelly", 3)
reagents.add_reagent("slimejelly", 3)
if(8)
reagents.add_reagent("banana", 3)
if(9)
@@ -392,7 +396,7 @@
src.name = "Frosted Jelly Donut"
reagents.add_reagent("sprinkles", 2)
/obj/item/weapon/reagent_containers/food/snacks/donut/rorojelly
/obj/item/weapon/reagent_containers/food/snacks/donut/slimejelly
name = "Jelly Donut"
desc = "You jelly?"
icon_state = "jdonut1"
@@ -400,7 +404,7 @@
..()
reagents.add_reagent("nutriment", 3)
reagents.add_reagent("sprinkles", 1)
reagents.add_reagent("rorojelly", 5)
reagents.add_reagent("slimejelly", 5)
bitesize = 5
if(prob(30))
src.icon_state = "jdonut2"
@@ -1032,7 +1036,7 @@
New()
..()
reagents.add_reagent("nutriment", 4)
reagents.add_reagent("doctor_delight", 2)
reagents.add_reagent("doctorsdelight", 5)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/loadedbakedpotato
@@ -1159,13 +1163,13 @@
reagents.add_reagent("water", 5)
bitesize = 5
/obj/item/weapon/reagent_containers/food/snacks/rorosoup
name = "Roro soup"
/obj/item/weapon/reagent_containers/food/snacks/slimesoup
name = "slime soup"
desc = "If no water is available, you may substitute tears."
icon_state = "rorosoup"
icon_state = "slimesoup"
New()
..()
reagents.add_reagent("rorojelly", 5)
reagents.add_reagent("slimejelly", 5)
reagents.add_reagent("water", 10)
bitesize = 5
@@ -1245,7 +1249,7 @@
reagents.add_reagent("nutriment", 6)
reagents.add_reagent("blood", 10)
if(7)
reagents.add_reagent("rorojelly", 10)
reagents.add_reagent("slimejelly", 10)
reagents.add_reagent("water", 10)
if(8)
reagents.add_reagent("carbon", 10)
@@ -1486,7 +1490,7 @@
/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast
name = "Jellied Toast"
desc = "A slice of bread covered with delicious jam."
icon_state = "rorotoast"
icon_state = "jellytoast"
trash = /obj/item/trash/plate
New()
..()
@@ -1498,24 +1502,24 @@
..()
reagents.add_reagent("cherryjelly", 5)
/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/roro
/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/slime
New()
..()
reagents.add_reagent("rorojelly", 5)
reagents.add_reagent("slimejelly", 5)
/obj/item/weapon/reagent_containers/food/snacks/jellyburger
name = "Jelly Burger"
desc = "Culinary delight..?"
icon_state = "roroburger"
icon_state = "jellyburger"
New()
..()
reagents.add_reagent("nutriment", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/jellyburger/roro
/obj/item/weapon/reagent_containers/food/snacks/jellyburger/slime
New()
..()
reagents.add_reagent("rorojelly", 5)
reagents.add_reagent("slimejelly", 5)
/obj/item/weapon/reagent_containers/food/snacks/jellyburger/cherry
New()
@@ -1652,32 +1656,32 @@
/obj/item/weapon/reagent_containers/food/snacks/jellysandwich
name = "Jelly Sandwich"
desc = "You wish you had some peanut butter to go with this..."
icon_state = "rorosandwich"
icon_state = "jellysandwich"
trash = /obj/item/trash/plate
New()
..()
reagents.add_reagent("nutriment", 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/jellysandwich/roro
/obj/item/weapon/reagent_containers/food/snacks/jellysandwich/slime
New()
..()
reagents.add_reagent("rorojelly", 5)
reagents.add_reagent("slimejelly", 5)
/obj/item/weapon/reagent_containers/food/snacks/jellysandwich/cherry
New()
..()
reagents.add_reagent("cherryjelly", 5)
/obj/item/weapon/reagent_containers/food/snacks/boiledrorocore
name = "Boiled Roro Core"
/*
/obj/item/weapon/reagent_containers/food/snacks/boiledslimecore
name = "Boiled slime Core"
desc = "A boiled red thing."
icon_state = "boiledrorocore"
icon_state = "boiledslimecore"
New()
..()
reagents.add_reagent("rorojelly", 5)
reagents.add_reagent("slimejelly", 5)
bitesize = 3
*/
/obj/item/weapon/reagent_containers/food/snacks/mint
name = "mint"
desc = "it is only wafer thin."
@@ -1764,7 +1768,7 @@
New()
..()
reagents.add_reagent("nutriment", 8)
reagents.add_reagent("doctor_delight", 5)
reagents.add_reagent("doctorsdelight", 5)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/appletart

View File

@@ -49,22 +49,42 @@
usr << msg
return
if (istype(O, /obj/item/weapon/plantbag))
/*if (istype(O, /obj/item/weapon/storage/bag/plants))
var/obj/item/weapon/plantbag/S = O
if (S.mode == 1)
for (var/obj/item/weapon/reagent_containers/food/snacks/grown/G in locate(src.x,src.y,src.z))
if (S.contents.len < S.capacity)
S.contents += G;
else
user << "\blue The plant bag is full."
return
user << "\blue You pick up all the plants."
for(var/obj/item/G in get_turf(src))
if(istype(G, /obj/item/seeds) || istype(G, /obj/item/weapon/reagent_containers/food/snacks/grown))
if (S.contents.len < S.capacity)
S.contents += G
else
user << "\blue The plant bag is full."
return
user << "\blue You pick up all the plants and seeds."
else
if (S.contents.len < S.capacity)
S.contents += src;
else
user << "\blue The plant bag is full."*/
return
/*/obj/item/seeds/attackby(var/obj/item/O as obj, var/mob/user as mob)
if (istype(O, /obj/item/weapon/storage/bag/plants))
var/obj/item/weapon/plantbag/S = O
if (S.mode == 1)
for(var/obj/item/G in get_turf(src))
if(istype(G, /obj/item/seeds) || istype(G, /obj/item/weapon/reagent_containers/food/snacks/grown))
if (S.contents.len < S.capacity)
S.contents += G
else
user << "\blue The plant bag is full."
return
user << "\blue You pick up all the plants and seeds."
else
if (S.contents.len < S.capacity)
S.contents += src;
else
user << "\blue The plant bag is full."
return
return*/
/obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob)
..()
@@ -852,6 +872,7 @@
// Putting these at the bottom so they don't clutter the list up. -Cheridan
// *************************************
/*
//This object is just a transition object. All it does is make a grass tile and delete itself.
/obj/item/weapon/reagent_containers/food/snacks/grown/grass
seed = "/obj/item/seeds/grassseed"
@@ -863,6 +884,7 @@
new/obj/item/stack/tile/grass(src.loc)
spawn(5) //Workaround to keep harvesting from working weirdly.
del(src)
*/
//This object is just a transition object. All it does is make dosh and delete itself. -Cheridan
/obj/item/weapon/reagent_containers/food/snacks/grown/money

View File

@@ -25,7 +25,7 @@
/obj/item/weapon/grenade/chem_grenade,
/obj/machinery/bot/medbot,
/obj/machinery/computer/pandemic,
/obj/item/weapon/secstorage/ssafe,
/obj/item/weapon/storage/secure/safe,
/obj/machinery/disposal,
/obj/machinery/iv_drip,
/obj/machinery/disease2/incubator
@@ -48,7 +48,16 @@
return
if(ismob(target) && target.reagents && reagents.total_volume)
var/mob/M = target
user << "\blue You splash the solution onto [target]."
var/R
if(src.reagents)
for(var/datum/reagent/A in src.reagents.reagent_list)
R += A.id + " ("
R += num2text(A.volume) + "),"
user.attack_log += "\[[time_stamp()]\] <b>[user]/[user.ckey]</b> splashed <b>[M]/[M.ckey]</b> with ([R])"
M.attack_log += "\[[time_stamp()]\] <b>[user]/[user.ckey]</b> splashed <b>[M]/[M.ckey]</b> with ([R])"
log_attack("\[[time_stamp()]\] <b>[user]/[user.ckey]</b> splashed <b>[M]/[M.ckey]</b> with ([R])")
for(var/mob/O in viewers(world.view, user))
O.show_message(text("\red [] has been splashed with something by []!", target, user), 1)
src.reagents.reaction(target, TOUCH)
@@ -114,7 +123,7 @@
update_icon()
update_icon()
overlays = null
overlays.Cut()
if(reagents.total_volume)
var/image/filling = image('icons/obj/reagentfillings.dmi', src, "[icon_state]10")
@@ -148,10 +157,16 @@
reagents.add_reagent("cryoxadone", 30)
update_icon()
/obj/item/weapon/reagent_containers/glass/beaker/roro
/obj/item/weapon/reagent_containers/glass/beaker/sulphuric
New()
..()
reagents.add_reagent("rorojelly", 50)
reagents.add_reagent("sacid", 50)
update_icon()
/obj/item/weapon/reagent_containers/glass/beaker/slime
New()
..()
reagents.add_reagent("slimejelly", 50)
update_icon()
/obj/item/weapon/reagent_containers/glass/bucket

View File

@@ -125,7 +125,7 @@
icon_state = "bottle3"
New()
..()
var/datum/disease/F = new /datum/disease/advance/heal(0)
var/datum/disease/F = new /datum/disease/advance/voice_change(0)
var/list/data = list("viruses"= list(F))
reagents.add_reagent("blood", 20, data)
@@ -136,7 +136,7 @@
icon_state = "bottle3"
New()
..()
var/datum/disease/F = new /datum/disease/advance/voice_change(0)
var/datum/disease/F = new /datum/disease/advance/heal(0)
var/list/data = list("viruses"= list(F))
reagents.add_reagent("blood", 20, data)

View File

@@ -6,9 +6,8 @@
name = "hypospray"
desc = "The DeForest Medical Corporation hypospray is a sterile, air-needle autoinjector for rapid administration of drugs to patients."
icon = 'icons/obj/syringe.dmi'
item_state = "hypo1"
item_state = "hypo"
icon_state = "hypo"
var/original_icon_state = "hypo"
amount_per_transfer_from_this = 5
volume = 30
possible_transfer_amounts = null
@@ -34,54 +33,20 @@
user << "\blue You inject [M] with the hypospray."
M << "\red You feel a tiny prick!"
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been injected with [src.name] by [user.name] ([user.ckey])</font>")
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src.name] to inject [M.name] ([M.ckey])</font>")
log_attack("<font color='red'>[user.name] ([user.ckey]) injected [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
src.reagents.reaction(M, INGEST)
if(M.reagents)
var/list/injected = list()
for(var/datum/reagent/R in src.reagents.reagent_list)
injected += R.name
var/trans = reagents.trans_to(M, amount_per_transfer_from_this)
user << "\blue [trans] units injected. [reagents.total_volume] units remaining in the hypospray."
return
/obj/item/weapon/reagent_containers/hypospray/ert
name = "emergency hypospray"
desc = "The DeForest Medical Corporation hypospray is a sterile, air-needle autoinjector for rapid administration of drugs to patients."
amount_per_transfer_from_this = 50
volume = 50
var/contained = english_list(injected)
/obj/item/weapon/reagent_containers/hypospray/autoinjector
name = "autoinjector"
desc = "A rapid and safe way to administer small amounts of drugs by untrained or trained personnel."
icon_state = "autoinjector"
original_icon_state = "autoinjector"
item_state = "autoinjector"
amount_per_transfer_from_this = 5
volume = 5
log_attack("<font color='red'>[user.name] ([user.ckey]) injected [M.name] ([M.ckey]) with [src.name], which had [contained] (INTENT: [uppertext(user.a_intent)])</font>")
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been injected ([contained]) with [src.name] by [user.name] ([user.ckey])</font>")
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src.name] to inject [M.name] ([M.ckey]) with [contained]</font>")
/obj/item/weapon/reagent_containers/hypospray/autoinjector/New()
..()
reagents.remove_reagent("tricordrazine", 30)
reagents.add_reagent("inaprovaline", 5)
update_icon()
return
/obj/item/weapon/reagent_containers/hypospray/autoinjector/attack(mob/M as mob, mob/user as mob)
..()
update_icon()
return
/obj/item/weapon/reagent_containers/hypospray/autoinjector/update_icon()
if(reagents.total_volume > 0)
icon_state = "[original_icon_state]1"
else
icon_state = "[original_icon_state]0"
/obj/item/weapon/reagent_containers/hypospray/autoinjector/examine()
..()
if(reagents && reagents.reagent_list.len)
for(var/datum/reagent/R in reagents.reagent_list)
usr << "\blue It currently has [R.volume] units of [R.name] stored."
else
usr << "\blue It is currently empty."
return

View File

@@ -15,25 +15,6 @@
if(!icon_state)
icon_state = "pill[rand(1,20)]"
attackby(obj/item/weapon/W as obj, mob/user as mob)
if (istype(W, /obj/item/weapon/storage/pill_bottle))
var/obj/item/weapon/storage/pill_bottle/P = W
if (P.mode == 1)
for (var/obj/item/weapon/reagent_containers/pill/O in locate(src.x,src.y,src.z))
if(P.contents.len < P.storage_slots)
O.loc = P
P.orient2hud(user)
else
user << "\blue The pill bottle is full."
return
user << "\blue You pick up all the pills."
else
if (P.contents.len < P.storage_slots)
loc = P
P.orient2hud(user)
else
user << "\blue The pill bottle is full."
return
attack_self(mob/user as mob)
return
attack(mob/M as mob, mob/user as mob, def_zone)

View File

@@ -61,6 +61,15 @@
for(var/mob/O in viewers(world.view, user))
O.show_message(text("\red <B>[] squirts something into []'s eyes!</B>", user, target), 1)
src.reagents.reaction(target, TOUCH)
var/mob/M = target
var/R
if(src.reagents)
for(var/datum/reagent/A in src.reagents.reagent_list)
R += A.id + " ("
R += num2text(A.volume) + "),"
user.attack_log += "\[[time_stamp()]\] <b>[user]/[user.ckey]</b> squirted <b>[M]/[M.ckey]</b> with ([R])"
M.attack_log += "\[[time_stamp()]\] <b>[user]/[user.ckey]</b> squirted <b>[M]/[M.ckey]</b> with ([R])"
log_attack("\[[time_stamp()]\] <b>[user]/[user.ckey]</b> squirted <b>[M]/[M.ckey]</b> with ([R])")
trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
user << "\blue You transfer [trans] units of the solution."

View File

@@ -59,7 +59,7 @@
return
if(ismob(target))//Blood!
if(istype(target, /mob/living/carbon/metroid))
if(istype(target, /mob/living/carbon/slime))
user << "\red You are unable to locate any blood."
return
if(src.reagents.has_reagent("blood"))
@@ -128,7 +128,7 @@
user << "\red [target] is empty."
return
if(!target.is_open_container() && !istype(target,/obj/structure/reagent_dispensers) && !istype(target,/obj/item/metroid_core))
if(!target.is_open_container() && !istype(target,/obj/structure/reagent_dispensers) && !istype(target,/obj/item/slime_extract))
user << "\red You cannot directly remove reagents from this object."
return
@@ -146,17 +146,13 @@
if(istype(target, /obj/item/weapon/implantcase/chem))
return
if(!target.is_open_container() && !ismob(target) && !istype(target, /obj/item/weapon/reagent_containers/food) && !istype(target, /obj/item/metroid_core) && !istype(target, /obj/item/clothing/mask/cigarette) && !istype(target, /obj/item/weapon/cigpacket))
if(!target.is_open_container() && !ismob(target) && !istype(target, /obj/item/weapon/reagent_containers/food) && !istype(target, /obj/item/slime_extract) && !istype(target, /obj/item/clothing/mask/cigarette) && !istype(target, /obj/item/weapon/storage/fancy/cigarettes))
user << "\red You cannot directly fill this object."
return
if(target.reagents.total_volume >= target.reagents.maximum_volume)
user << "\red [target] is full."
return
if(istype(target, /obj/item/metroid_core))
var/obj/item/metroid_core/core = target
core.Flush = 30 // reset flush counter
if(ismob(target) && target != user)
for(var/mob/O in viewers(world.view, user))
O.show_message(text("\red <B>[] is trying to inject []!</B>", user, target), 1)
@@ -188,7 +184,7 @@
update_icon()
var/rounded_vol = round(reagents.total_volume,5)
overlays = null
overlays.Cut()
if(ismob(loc))
var/injoverlay
switch(mode)