Bay12 examine overhaul.

This commit overhauls the examine system to baystation's latest system,
including a more efficient verb approach, and a new status panel tab,
which shows more information for pre-defined objects.
This commit is contained in:
Tigercat2000
2015-09-14 11:51:40 -07:00
parent cfbbf104ac
commit 0603f73232
146 changed files with 1381 additions and 1090 deletions
+8 -12
View File
@@ -57,18 +57,14 @@
cartridge = new /obj/item/weapon/dart_cartridge(src)
update_icon()
/obj/item/weapon/gun/dartgun/examine()
set src in view()
update_icon()
..()
if (!(usr in view(2)) && usr!=src.loc)
return
if (beakers.len)
usr << "\blue [src] contains:"
for(var/obj/item/weapon/reagent_containers/glass/beaker/B in beakers)
if(B.reagents && B.reagents.reagent_list.len)
for(var/datum/reagent/R in B.reagents.reagent_list)
usr << "\blue [R.volume] units of [R.name]"
/obj/item/weapon/gun/dartgun/examine(mob/user)
if(..(user, 2))
if(beakers.len)
user << "\blue [src] contains:"
for(var/obj/item/weapon/reagent_containers/glass/beaker/B in beakers)
if(B.reagents && B.reagents.reagent_list.len)
for(var/datum/reagent/R in B.reagents.reagent_list)
user << "\blue [R.volume] units of [R.name]"
/obj/item/weapon/gun/dartgun/attackby(obj/item/I as obj, mob/user as mob, params)
if(istype(I, /obj/item/weapon/dart_cartridge))
+3 -6
View File
@@ -17,12 +17,9 @@
materials = list(MAT_METAL=2000)
/obj/item/weapon/gun/grenadelauncher/examine()
set src in view()
..()
if (!(usr in view(2)) && usr!=src.loc) return
usr << "\icon [name]:"
usr << "\blue [grenades.len] / [max_grenades] [ammo_name]s."
/obj/item/weapon/gun/grenadelauncher/examine(mob/user)
if(..(user, 2))
user << "\blue [grenades.len] / [max_grenades] [ammo_name]s."
/obj/item/weapon/gun/grenadelauncher/attackby(obj/item/I as obj, mob/user as mob, params)
@@ -79,7 +79,7 @@
if(M.ckey)
msg_admin_attack("[key_name_admin(user)] injected [key_name_admin(M)] with [src.name]. Reagents: [contained] (INTENT: [uppertext(user.a_intent)])")
M.LAssailant = user
var/trans = R.trans_to(M, amount_per_transfer_from_this)
user << "<span class='notice'>[trans] units injected. [R.total_volume] units remaining.</span>"
return
@@ -95,18 +95,17 @@
user << "\blue Synthesizer is now producing '[R.name]'."
return
/obj/item/weapon/reagent_containers/borghypo/examine()
set src in view()
..()
if (!(usr in view(2)) && usr!=src.loc) return
/obj/item/weapon/reagent_containers/borghypo/examine(mob/user)
if(!..(user, 2))
return
var/empty = 1
for(var/datum/reagents/RS in reagent_list)
var/datum/reagent/R = locate() in RS.reagent_list
if(R)
usr << "\blue It currently has [R.volume] units of [R.name] stored."
user << "\blue It currently has [R.volume] units of [R.name] stored."
empty = 0
if(empty)
usr << "\blue It is currently empty. Allow some time for the internal syntheszier to produce more."
user << "\blue It is currently empty. Allow some time for the internal syntheszier to produce more."
@@ -19,15 +19,13 @@
base_name = name
examine()
set src in view()
..()
if (!(usr in view(2)) && usr!=src.loc) return
usr << "\blue It contains:"
if(reagents && reagents.reagent_list.len)
usr << "\blue [src.reagents.total_volume] units of powder."
else
usr << "\blue Nothing."
examine(mob/user)
if(..(user, 2))
user << "\blue It contains:"
if(reagents && reagents.reagent_list.len)
user << "\blue [src.reagents.total_volume] units of powder."
else
user << "\blue Nothing."
afterattack(obj/target, mob/user, proximity)
if(!proximity) return
@@ -32,20 +32,19 @@
else
return ..(target, user, proximity)
/* examine()
set src in view()
..()
if (!(usr in range(0)) && usr!=src.loc) return
/* examine(mob/user)
if(!..(user, 1))
return
if(!reagents || reagents.total_volume==0)
usr << "\blue \The [src] is empty!"
user << "\blue \The [src] is empty!"
else if (reagents.total_volume<=src.volume/4)
usr << "\blue \The [src] is almost empty!"
user << "\blue \The [src] is almost empty!"
else if (reagents.total_volume<=src.volume*0.66)
usr << "\blue \The [src] is half full!"
user << "\blue \The [src] is half full!"
else if (reagents.total_volume<=src.volume*0.90)
usr << "\blue \The [src] is almost full!"
user << "\blue \The [src] is almost full!"
else
usr << "\blue \The [src] is full!"*/
user << "\blue \The [src] is full!"*/
//DRINKS
@@ -146,20 +146,19 @@
user << "<span class='notice'>You heat [src] with [I].</span>"
src.reagents.handle_reactions()
examine()
set src in view()
..()
if (!(usr in range(0)) && usr!=src.loc) return
examine(mob/user)
if(!..(user, 1))
return
if(!reagents || reagents.total_volume==0)
usr << "\blue \The [src] is empty!"
user << "\blue \The [src] is empty!"
else if (reagents.total_volume<=src.volume/4)
usr << "\blue \The [src] is almost empty!"
user << "\blue \The [src] is almost empty!"
else if (reagents.total_volume<=src.volume*0.66)
usr << "\blue \The [src] is half full!"
user << "\blue \The [src] is half full!"
else if (reagents.total_volume<=src.volume*0.90)
usr << "\blue \The [src] is almost full!"
user << "\blue \The [src] is almost full!"
else
usr << "\blue \The [src] is full!"
user << "\blue \The [src] is full!"
////////////////////////////////////////////////////////////////////////////////
@@ -80,10 +80,10 @@
del(O)
return ..()
/obj/item/weapon/reagent_containers/food/snacks/csandwich/examine()
..()
/obj/item/weapon/reagent_containers/food/snacks/csandwich/examine(mob/user)
..(user)
var/obj/item/O = pick(contents)
usr << "\blue You think you can see [O.name] in there."
user << "\blue You think you can see [O.name] in there."
/obj/item/weapon/reagent_containers/food/snacks/csandwich/attack(mob/M as mob, mob/user as mob, def_zone)
@@ -120,18 +120,16 @@
/obj/item/weapon/reagent_containers/food/snacks/afterattack(obj/target, mob/user, proximity)
return
/obj/item/weapon/reagent_containers/food/snacks/examine()
set src in view()
..()
if (!(usr in range(0)) && usr!=src.loc) return
if (bitecount==0)
return
else if (bitecount==1)
usr << "\blue \The [src] was bitten by someone!"
else if (bitecount<=3)
usr << "\blue \The [src] was bitten [bitecount] times!"
else
usr << "\blue \The [src] was bitten multiple times!"
/obj/item/weapon/reagent_containers/food/snacks/examine(mob/user)
if(..(user, 0))
if (bitecount==0)
return
else if (bitecount==1)
user << "\blue \The [src] was bitten by someone!"
else if (bitecount<=3)
user << "\blue \The [src] was bitten [bitecount] times!"
else
user << "\blue \The [src] was bitten multiple times!"
/obj/item/weapon/reagent_containers/food/snacks/attackby(obj/item/weapon/W, mob/user, params)
@@ -46,17 +46,16 @@
..()
base_name = name
examine()
set src in view()
..()
if (!(usr in view(2)) && usr!=src.loc) return
usr << "\blue It contains:"
examine(mob/user)
if(!..(user, 2))
return
user << "\blue It contains:"
if(reagents && reagents.reagent_list.len)
usr << "\blue [src.reagents.total_volume] units of liquid."
user << "\blue [src.reagents.total_volume] units of liquid."
else
usr << "\blue Nothing."
user << "\blue Nothing."
if (!is_open_container())
usr << "\blue Airtight lid seals it completely."
user << "\blue Airtight lid seals it completely."
attack_self()
..()
@@ -100,12 +100,12 @@
else
icon_state = "[initial(icon_state)]0"
/obj/item/weapon/reagent_containers/hypospray/autoinjector/examine()
..()
/obj/item/weapon/reagent_containers/hypospray/autoinjector/examine(mob/user)
..(user)
if(reagents && reagents.reagent_list.len)
usr << "\blue It is currently loaded."
user << "\blue It is currently loaded."
else
usr << "\blue It is spent."
user << "\blue It is spent."
/obj/item/weapon/reagent_containers/hypospray/autoinjector/teporone //basilisks
name = "teporone autoinjector"
@@ -83,7 +83,6 @@
/obj/item/weapon/reagent_containers/spray/examine(mob/user)
if(..(user, 0) && user==src.loc)
user << "[round(src.reagents.total_volume)] units left."
return
/obj/item/weapon/reagent_containers/spray/verb/empty()
+9 -11
View File
@@ -23,16 +23,15 @@
src.verbs -= /obj/structure/reagent_dispensers/verb/set_APTFT
..()
/obj/structure/reagent_dispensers/examine()
set src in view()
..()
if (!(usr in view(2)) && usr!=src.loc) return
usr << "\blue It contains:"
/obj/structure/reagent_dispensers/examine(mob/user)
if(!..(user, 2))
return
user << "\blue It contains:"
if(reagents && reagents.reagent_list.len)
for(var/datum/reagent/R in reagents.reagent_list)
usr << "\blue [R.volume] units of [R.name]"
user << "\blue [R.volume] units of [R.name]"
else
usr << "\blue Nothing."
user << "\blue Nothing."
/obj/structure/reagent_dispensers/verb/set_APTFT() //set amount_per_transfer_from_this
set name = "Set transfer amount"
@@ -111,10 +110,9 @@
/obj/structure/reagent_dispensers/fueltank/ex_act()
explode()
/obj/structure/reagent_dispensers/fueltank/examine()
set src in view()
..()
if (!(usr in view(2)) && usr!=src.loc) return
/obj/structure/reagent_dispensers/fueltank/examine(mob/user)
if(!..(user, 2))
return
if(rig)
usr << "<span class='notice'>There is some kind of device rigged to the tank."
+3 -4
View File
@@ -28,10 +28,9 @@
qdel(S)
return 1
/obj/item/weapon/gun/syringe/examine()
..()
usr << "Can hold [max_syringes] syringe\s. Has [syringes.len] syringe\s remaining."
return
/obj/item/weapon/gun/syringe/examine(mob/user)
..(user)
user << "Can hold [max_syringes] syringe\s. Has [syringes.len] syringe\s remaining."
/obj/item/weapon/gun/syringe/attack_self(mob/living/user as mob)
if(!syringes.len)