Ports AI/Cyborg QoL updates, Allows AI to examine and adds more QoL features. (#1167)

* Update ai.dm

* Update cyborg.dm

* travis

* Revert

* spacing

* Update ai.dm

* Update cyborg.dm

* Update cyborg.dm

* Create Silicon_QoL

* Add files via upload

* Delete Silicon_QoL

* Update _onclick.dm

* Update _onclick.dm

* Create readme.dm

* Update readme.dm

* Rename readme.dm to readme.md

* Update ai.dm
This commit is contained in:
MLGTASTICa
2020-10-14 02:11:18 +03:00
committed by GitHub
parent 8710554396
commit ed689a2069
4 changed files with 123 additions and 9 deletions
+4 -5
View File
@@ -99,14 +99,14 @@
for AI shift, ctrl, and alt clicking.
*/
/mob/living/silicon/ai/CtrlShiftClickOn(atom/A)
A.AICtrlShiftClick(src)
/mob/living/silicon/ai/CtrlShiftClickOn(atom/A) // Procs overriden in modular_skyrat/modules/Silicon_QoL
A.AICtrlShiftClick(src)
/mob/living/silicon/ai/ShiftClickOn(atom/A)
A.AIShiftClick(src)
/mob/living/silicon/ai/CtrlClickOn(atom/A)
A.AICtrlClick(src)
/mob/living/silicon/ai/AltClickOn(atom/A)
A.AIAltClick(src)
A.AIAltClick(src)
/*
The following criminally helpful code is just the previous code cleaned up;
@@ -124,7 +124,6 @@
return
/atom/proc/AICtrlShiftClick()
return
/* Airlocks */
/obj/machinery/door/airlock/AICtrlClick() // Bolts doors
if(obj_flags & EMAGGED)
@@ -148,7 +147,7 @@
user_toggle_open(usr)
add_hiddenprint(usr)
/obj/machinery/door/airlock/AICtrlShiftClick() // Sets/Unsets Emergency Access Override
if(obj_flags & EMAGGED)
return
+4 -4
View File
@@ -85,14 +85,14 @@
//Give cyborgs hotkey clicks without breaking existing uses of hotkey clicks
// for non-doors/apcs
/mob/living/silicon/robot/CtrlShiftClickOn(atom/A)
A.BorgCtrlShiftClick(src)
/mob/living/silicon/robot/CtrlShiftClickOn(atom/A) // Procs overridden in skyrat_modular/modules/Silicon_QoL
A.BorgCtrlShiftClick(src)
/mob/living/silicon/robot/ShiftClickOn(atom/A)
A.BorgShiftClick(src)
A.BorgShiftClick(src)
/mob/living/silicon/robot/CtrlClickOn(atom/A)
A.BorgCtrlClick(src)
/mob/living/silicon/robot/AltClickOn(atom/A)
A.BorgAltClick(src)
A.BorgAltClick(src)
/atom/proc/BorgCtrlShiftClick(mob/living/silicon/robot/user) //forward to human click if not overridden
CtrlShiftClick(user)
@@ -0,0 +1,85 @@
/////////////////////
/////AI Changes//////
/////////////////////
/mob/living/silicon/ai/CtrlShiftClickOn(atom/A)
if(isturf(A))
var/obj/machinery/door/airlock/airlock = locate(/obj/machinery/door/airlock) in A
if(airlock)
airlock.AICtrlShiftClick(src)
else
A.AICtrlShiftClick(src) // End of skyrat edit
/mob/living/silicon/ai/ShiftClickOn(atom/A)
if(isturf(A))
var/obj/machinery/door/airlock/airlock = locate(/obj/machinery/door/airlock) in A
if(airlock)
airlock.AIShiftClick(src)
else
A.AIShiftClick(src)
A.AIExamine(A)
/mob/living/silicon/ai/CtrlClickOn(atom/A)
if(isturf(A))
var/obj/machinery/door/airlock/airlock = locate(/obj/machinery/door/airlock) in A
if(airlock)
airlock.AICtrlClick(src)
else
A.AICtrlClick(src)
/mob/living/silicon/ai/AltClickOn(atom/A)
if(isturf(A))
var/obj/machinery/door/airlock/airlock = locate(/obj/machinery/door/airlock) in A
if(airlock)
airlock.AIAltClick(src)
else
A.AIAltClick(src)
/atom/proc/AIExamine() // Used for AI specific examines .Currently only employed to stop door examines.
usr.examinate(src)
// Should keep all AI Examines in here in a list.
/obj/machinery/door/airlock/AIExamine() // Lets not spam the AI with door examinations
return
/mob/living/silicon/ai/ClickOn(atom/A, params)
..()
var/list/modifiers = params2list(params)
if(isturf(A)&&(!modifiers)) // Have to check for modifiers.
var/obj/machinery/door/firedoor/TheDoor = locate(/obj/machinery/door/firedoor) in A
if(TheDoor)
TheDoor.attack_ai(usr)
/////////////////////////
/////Cyborg changes//////
/////////////////////////
/mob/living/silicon/robot/CtrlShiftClickOn(atom/A)
if(isturf(A))
var/obj/machinery/door/airlock/airlock = locate(/obj/machinery/door/airlock) in A // Skyrat edit
if(airlock)
airlock.BorgCtrlShiftClick(src)
else
A.BorgCtrlShiftClick(src)
/mob/living/silicon/robot/ShiftClickOn(atom/A)
if(isturf(A))
var/obj/machinery/door/airlock/airlock = locate(/obj/machinery/door/airlock) in A // Skyrat edit
if(airlock)
airlock.BorgShiftClick(src)
else
A.BorgShiftClick(src)
/mob/living/silicon/robot/CtrlClickOn(atom/A)
if(isturf(A))
var/obj/machinery/door/airlock/airlock = locate(/obj/machinery/door/airlock) in A // Skyrat edit
if(airlock)
airlock.BorgCtrlClick(src)
else
A.BorgCtrlClick(src) // End of skyrat edit
/mob/living/silicon/robot/AltClickOn(atom/A)
if(isturf(A))
var/obj/machinery/door/airlock/airlock = locate(/obj/machinery/door/airlock) in A // Skyrat edit
if(airlock)
airlock.BorgAltClick(src)
else
A.BorgAltClick(src)
@@ -0,0 +1,30 @@
https://github.com/Skyrat-SS13/Skyrat-tg/pull/1167
## Title: Allows AI to examine and adds more QoL features. #1167
MODULE ID: SiliconQoL
### Description:
1.Ports AI/Cyborg QoL from SkyratSS13
-Interacting with doors no longer requires to click the sprite itself , it now also works by clicking the turf.
2.Allows AI to examine , creates a new proc for it.
3.Allows AI to close firelocks by clicking the turf they are on.
### TG Proc Changes:
Added a comment informing of the overrides.
### Defines:
- N/A
### Master file additions
- N/A
### Included files that are not contained in this module:
- N/A
### Credits:
MLGTastica - Code , Ideas
Bobjoga - Helping with the code , a lot.