The inteliCard now has a NanoUI interface, allowing it to utilize custom CanUseTopic() checks depending on context, in-hand or in-rig.
This commit is contained in:
PsiOmega
2015-05-24 11:33:54 +02:00
parent 048771ed94
commit c21a456379
6 changed files with 170 additions and 90 deletions

View File

@@ -131,7 +131,7 @@
if(!target)
if(ai_card)
if(istype(ai_card,/obj/item/device/aicard))
ai_card.attack_self(H)
ai_card.ui_interact(H, state = deep_inventory_state)
else
eject_ai(H)
update_verb_holder()

View File

@@ -234,7 +234,7 @@
SetupStat(R)
/mob/proc/SetupStat(var/obj/item/weapon/rig/R)
if(R && !R.canremove && R.installed_modules.len && statpanel("Hardsuit Modules"))
if(src == usr && R && !R.canremove && R.installed_modules.len && statpanel("Hardsuit Modules"))
var/cell_status = R.cell ? "[R.cell.charge]/[R.cell.maxcharge]" : "ERROR"
statpanel("Hardsuit Modules", "Suit charge", cell_status)
for(var/obj/item/rig_module/module in R.installed_modules)

View File

@@ -0,0 +1,10 @@
/*
This state checks if src_object is contained anywhere in the user's inventory, including bags, etc.
*/
/var/global/datum/topic_state/deep_inventory_state/deep_inventory_state = new()
/datum/topic_state/deep_inventory_state/can_use_topic(var/src_object, var/mob/user)
if(!user.contains(src_object))
return STATUS_CLOSE
return user.shared_nano_interaction()