Makes Grille code a bit more sensible and simpler (#22352)
Makes Grille code a bit more sensible and simpler (#22352)

* Modularizes some grille stuff.

* rverts istype() of attack_by

tgstation/tgstation,loqoman/tgstation,kevinz000/-tg-station,optimumtact/-tg-station,Razharas/-tg-station,MrStonedOne/tgstation,Buggy123/-tg-station,McBawbaggings/HippieStation,ChangelingRain/-tg-station,CosmicScientist/-tg-station,Yoshmaster/-tg-station,Razharas/-tg-station,infinitystation/-tg-station,lzimann/tgstation,Xhuis/tgfork,Shadowlight213/-tg-station,TheOneForgotten/white,McBawbaggings/HippieStation,Memendia/HippieStation,posttk421/tgstation,Tacolizard/tgstation,Memendia/HippieStation13,kyrahabattoir/-tg-station,WJohn/-tg-station,kevinz000/-tg-station,TheVekter/-tg-station,JJRcop/-tg-station,Poojawa/tgstation-fork,Expletive/tgstation,chickenboy10/tgstation,lzimann/-tg-station,GuyonBroadway/HippieStation,loqoman/tgstation,Buggy123/-tg-station,tgstation/tgstation,tgstation/-tg-station,lordpidey/-tg-station,Core0verload/-tg-station,Cyberboss/tgstation,nicbn/tgstation,ChangelingRain/-tg-station,Yoshmaster/-tg-station,Tacolizard/tgstation,TheOneForgotten/white,Shadowlight213/-tg-station,kevinz000/-tg-station,paprka/-tg-station,Thunder12345/-tg-station,CPTANT/-tg-station,Iamgoofball/-tg-station,InsaneHyena/tgstation,Memendia/HippieStation13,posttk421/tgstation,AuroranAI/FTL13,Niknakflak/-tg-station,Buggy123/-tg-station,GunHog/-tg-station,JStheguy/tgstation,CosmicScientist/-tg-station,anconfuzedrock/tgstation,kingofkosmos/-tg-station,CPTANT/-tg-station,Penguaro/tgstation,Tacolizard/tgstation,xxalpha/-tg-station,QualityVan/tgstation,PKPenguin321/-tg-station,vcordie/tgstation,Robustin/tgstation,loqoman/tgstation,Shadowlight213/-tg-station,phil235/-tg-station,octareenroon91/-tg-station,Groxic/tgstation,LegendaryPoro/FTL13,HippieStation/HippieStation,F-OS/tgstation,XDTM/tgstation,Xhuis/tgfork,NicholasM10/-tg-station,coiax/-tg-station,Jalleo/-tg-station,Anonus/-tg-station,ShizCalev/tgstation,infinitystation/-tg-station,erwgd/-tg-station,CosmicScientist/-tg-station,Bawhoppen/-tg-station,ike709/FTL13,feemjmeem/-tg-station,ShizCalev/tgstation,xxalpha/-tg-station,Profakos/tgstation,Thunder12345/-tg-station,JJRcop/tgstation,Niknakflak/-tg-station,HippieStation/HippieStation,AuroranAI/FTL13,Bawhoppen/-tg-station,tgstation/tgstation,OBA-code/tgstation,Xhuis/tgfork,WJohn/-tg-station,Robustin/tgstation,Cruix/-tg-station,Cheridan/-tg-station,Memendia/HippieStation,kingofkosmos/-tg-station,Osokorn/tgstation,Mervill/tgstation,Groxic/tgstation,Incoming5643/-tg-station,riftstation/riftstation,phil235/-tg-station,loqoman/tgstation,HippieStation/HippieStation,tgstation/-tg-station,chickenboy10/tgstation,Kraseo/-tg-station,tgstation/-tg-station,Ultimate-Chimera/tgstation,Buggy123/-tg-station,OBA-code/tgstation,Memendia/HippieStation,Y0SH1M4S73R/-tg-station,kingofkosmos/-tg-station,QualityVan/tgstation,Jordie0608/tgstation,lzimann/-tg-station,Robustin/tgstation,Niknakflak/-tg-station,nicbn/tgstation,GuyonBroadway/HippieStation,ChayseRamsay/Soteria-v3,JJRcop/tgstation,TheVekter/-tg-station,MrStonedOne/tgstation,TheRealGLH/-tg-station,ike709/FTL13,QualityVan/tgstation,McBawbaggings/HippieStation,optimumtact/-tg-station,InsaneHyena/tgstation,McBawbaggings/HippieStation,xxalpha/-tg-station,TehZombehz/-tg-station,vcordie/tgstation,Ultimate-Chimera/tgstation,4dplanner/tgstation,CPTANT/-tg-station,Razharas/-tg-station,SamuelRowe/-tg-station,Ultimate-Chimera/tgstation,Qwertyon666/Necro,AnturK/-tg-station,Haevacht/tgstation,4dplanner/tgstation,Core0verload/-tg-station,Buggy123/-tg-station,ChangelingRain/-tg-station,Aranclanos/-tg-station,tgstation/tgstation,Aranclanos/-tg-station,tgstation/tgstation,Fox-McCloud/-tg-station,Core0verload/-tg-station,Xhuis/AquaStation,Mervill/tgstation,Xhuis/-tg-station,Bawhoppen/-tg-station,kevinz000/-tg-station,Groxic/tgstation,Jalleo/-tg-station,TheVekter/-tg-station,AnturK/-tg-station,JJRcop/tgstation,greytide/greytide,Buggy123/-tg-station,TalkingCactus/tgstation,JStheguy/tgstation,MrStonedOne/-tg-station,lordpidey/-tg-station,CosmicScientist/-tg-station,Razharas/-tg-station,Tokiko1/tgstation,PJB3005/tgstation,Cheridan/tgstation,Penguaro/tgstation,Arianya/tgstation,kevinz000/-tg-station,Xhuis/tgfork,Anonus/-tg-station,MrStonedOne/tgstation,chickenboy10/tgstation,Iamgoofball/-tg-station,Mark9013100/tgstation-m9,GunHog/-tg-station,Memendia/HippieStation,Yoshmaster/-tg-station,securitycopper/-tg-station,Cheridan/-tg-station,WJohn/-tg-station,GunHog/-tg-station,MrStonedOne/-tg-station,JStheguy/tgstation,Mark9013100/tgstation-m9,TheOneForgotten/white,Xhuis/AquaStation,duncathan/-tg-station,Xhuis/tgfork,nicbn/tgstation,ChayseRamsay/Soteria-v3,octareenroon91/-tg-station,HippieStationCode/HippieStation13,Cruix/-tg-station,riftstation/riftstation,Jalleo/-tg-station,Niknakflak/-tg-station,NicholasM10/-tg-station,MrStonedOne/-tg-station,paprka/-tg-station,Qwertyon666/Necro,Robustin/tgstation,4dplanner/tgstation,Niknakflak/-tg-station,ohnopigeons/tgstation,Aranclanos/-tg-station,securitycopper/-tg-station,Poojawa/tgstation-fork,Arianya/tgstation,Mark9013100/tgstation-m9,Jordie0608/-tg-station,TehZombehz/-tg-station,Tokiko1/tgstation,Cyberboss/tgstation,coiax/-tg-station,SamuelRowe/-tg-station,Thunder12345/-tg-station,WJohn/-tg-station,Core0verload/-tg-station,optimumtact/-tg-station,Thunder12345/-tg-station,Xhuis/AquaStation,xxalpha/-tg-station,posttk421/tgstation,MrStonedOne/-tg-station,Y0SH1M4S73R/-tg-station,HippieStationCode/HippieStation13,TalkingCactus/tgstation,neersighted/tgstation,GunHog/-tg-station,Xhuis/-tg-station,AuroranAI/FTL13,Crexfu/tgstation,xxalpha/-tg-station,Cyberboss/tgstation,CPTANT/-tg-station,octareenroon91/-tg-station,xxalpha/-tg-station,CosmicScientist/-tg-station,XDTM/tgstation,ShizCalev/tgstation,ToGWtF/yogstation,XDTM/tgstation,kevinz000/-tg-station,ShizCalev/tgstation,Jordie0608/tgstation,Xhuis/tgfork,F-OS/tgstation,OBA-code/tgstation,TehZombehz/-tg-station,Tokiko1/tgstation,CPTANT/-tg-station,dannno/-tg-station,Xhuis/-tg-station,Qwertyon666/Necro,TheVekter/-tg-station,TehZombehz/-tg-station,Fox-McCloud/-tg-station,ZioZan/tgstation,ShizCalev/tgstation,CosmicScientist/-tg-station,ToGWtF/yogstation,kevinz000/-tg-station,Profakos/tgstation,lordpidey/-tg-station,MrStonedOne/tgstation,lordpidey/-tg-station,ShizCalev/tgstation,Kraseo/-tg-station,XDTM/tgstation,nicbn/tgstation,Y0SH1M4S73R/-tg-station,Memendia/HippieStation,nicbn/tgstation,ChayseRamsay/Soteria-v3,Kraseo/-tg-station,riftstation/riftstation,anconfuzedrock/tgstation,riftstation/riftstation,QualityVan/tgstation,HippieStation/HippieStation,Incoming5643/-tg-station,athompson11/Soteria-v3,TheRealGLH/-tg-station,XDTM/tgstation,optimumtact/-tg-station,ChangelingRain/-tg-station,phil235/-tg-station,QualityVan/tgstation,Robustin/tgstation,AuroranAI/FTL13,MrStonedOne/tgstation,Cyberboss/tgstation,MicroWorldwide/SS13-TG-station,ohnopigeons/tgstation,Haevacht/tgstation,kingofkosmos/-tg-station,Aranclanos/-tg-station,Aranclanos/-tg-station,Bawhoppen/-tg-station,Anonus/-tg-station,Jordie0608/-tg-station,ChangelingRain/-tg-station,nicbn/tgstation,dannno/-tg-station,lordpidey/-tg-station,4dplanner/tgstation,AnturK/-tg-station,CPTANT/-tg-station,Mervill/tgstation,F-OS/tgstation,GuyonBroadway/HippieStation,WJohn/-tg-station,duncathan/-tg-station,Poojawa/tgstation-fork,Fox-McCloud/-tg-station,Cruix/-tg-station,tgstation/tgstation,Mark9013100/tgstation-m9,Jordie0608/tgstation,XDTM/tgstation,CPTANT/-tg-station,XDTM/tgstation,ike709/FTL13,ChayseRamsay/Soteria-v3,Y0SH1M4S73R/-tg-station,F-OS/tgstation,4dplanner/tgstation,Cyberboss/tgstation,NicholasM10/-tg-station,Memendia/HippieStation,Razharas/-tg-station,Cheridan/tgstation,optimumtact/-tg-station,Cruix/-tg-station,Cyberboss/tgstation,neersighted/tgstation,Arianya/tgstation,NicholasM10/-tg-station,Memendia/HippieStation13,anconfuzedrock/tgstation,JJRcop/-tg-station,QualityVan/tgstation,MicroWorldwide/SS13-TG-station,lzimann/-tg-station,Xhuis/tgfork,Incoming5643/-tg-station,Robustin/tgstation,NicholasM10/-tg-station,optimumtact/-tg-station,Arianya/tgstation,HippieStationCode/HippieStation13,Cyberboss/tgstation,Razharas/-tg-station,Iamgoofball/-tg-station,Tacolizard/tgstation,Tokiko1/tgstation,Arianya/tgstation,Aranclanos/-tg-station,GunHog/-tg-station,MicroWorldwide/SS13-TG-station,Expletive/tgstation,HippieStation/HippieStation,AnturK/-tg-station,Jalleo/-tg-station,PJB3005/tgstation,PKPenguin321/-tg-station,Bawhoppen/-tg-station,lzimann/tgstation,JJRcop/tgstation,kyrahabattoir/-tg-station,PKPenguin321/-tg-station,GunHog/-tg-station,coiax/-tg-station,neersighted/tgstation,Groxic/tgstation,erwgd/-tg-station,kingofkosmos/-tg-station,ToGWtF/yogstation,tgstation/tgstation,Profakos/tgstation,Tacolizard/tgstation,JStheguy/tgstation,MrStonedOne/tgstation,infinitystation/-tg-station,McBawbaggings/HippieStation,GuyonBroadway/HippieStation,loqoman/tgstation,TehZombehz/-tg-station,Niknakflak/-tg-station,Haevacht/tgstation,Yoshmaster/-tg-station,Razharas/-tg-station,JJRcop/-tg-station,PJB3005/tgstation,GunHog/-tg-station,TheVekter/-tg-station,Cheridan/-tg-station,anconfuzedrock/tgstation,Fox-McCloud/-tg-station,Incoming5643/-tg-station,erwgd/-tg-station,Haevacht/tgstation,Jordie0608/-tg-station,LegendaryPoro/FTL13,feemjmeem/-tg-station,Cruix/-tg-station,securitycopper/-tg-station,ChangelingRain/-tg-station,Buggy123/-tg-station,Memendia/HippieStation,TheVekter/-tg-station,octareenroon91/-tg-station,infinitystation/-tg-station,GuyonBroadway/HippieStation,MicroWorldwide/SS13-TG-station,Jordie0608/tgstation,Cheridan/-tg-station,OBA-code/tgstation,riftstation/riftstation,JStheguy/tgstation,paprka/-tg-station,loqoman/tgstation,Tacolizard/tgstation,ZioZan/tgstation,Incoming5643/-tg-station,Bawhoppen/-tg-station,GuyonBroadway/HippieStation,Jordie0608/tgstation,LegendaryPoro/FTL13,dannno/-tg-station,Poojawa/tgstation-fork,Arianya/tgstation,Crexfu/tgstation,anconfuzedrock/tgstation,Aranclanos/-tg-station,F-OS/tgstation,ChangelingRain/-tg-station,Xhuis/-tg-station,Poojawa/tgstation-fork,ShizCalev/tgstation,JStheguy/tgstation,riftstation/riftstation,lzimann/-tg-station,SamuelRowe/-tg-station,HippieStationCode/HippieStation13,Bawhoppen/-tg-station,feemjmeem/-tg-station,MicroWorldwide/SS13-TG-station,securitycopper/-tg-station,TheOneForgotten/white,NicholasM10/-tg-station,4dplanner/tgstation,paprka/-tg-station,Thunder12345/-tg-station,Shadowlight213/-tg-station,lordpidey/-tg-station,PJB3005/tgstation,Incoming5643/-tg-station,Buggy123/-tg-station,dannno/-tg-station,SamuelRowe/-tg-station,JJRcop/tgstation,Niknakflak/-tg-station,neersighted/tgstation,LegendaryPoro/FTL13,Osokorn/tgstation,Memendia/HippieStation13,Jalleo/-tg-station,Xhuis/tgfork,GuyonBroadway/HippieStation,Incoming5643/-tg-station,ohnopigeons/tgstation,ShizCalev/tgstation,Razharas/-tg-station,Robustin/tgstation,neersighted/tgstation,vcordie/tgstation,Iamgoofball/-tg-station,Poojawa/tgstation-fork,infinitystation/-tg-station,kingofkosmos/-tg-station,vcordie/tgstation,Thunder12345/-tg-station,infinitystation/-tg-station,Profakos/tgstation,Mark9013100/tgstation-m9,Penguaro/tgstation,ike709/FTL13,greytide/greytide,GuyonBroadway/HippieStation,riftstation/riftstation,AnturK/-tg-station,CosmicScientist/-tg-station,Profakos/tgstation,lzimann/tgstation,securitycopper/-tg-station,Penguaro/tgstation,QualityVan/tgstation,Jordie0608/tgstation,securitycopper/-tg-station,WJohn/-tg-station,duncathan/-tg-station,feemjmeem/-tg-station,AnturK/-tg-station,NicholasM10/-tg-station,chickenboy10/tgstation,JJRcop/tgstation,Mervill/tgstation,Tacolizard/tgstation,TehZombehz/-tg-station,feemjmeem/-tg-station,InsaneHyena/tgstation,paprka/-tg-station,TheVekter/-tg-station,paprka/-tg-station,Osokorn/tgstation,Mark9013100/tgstation-m9,tgstation/-tg-station,Y0SH1M4S73R/-tg-station,Cruix/-tg-station,F-OS/tgstation,TehZombehz/-tg-station,Bawhoppen/-tg-station,F-OS/tgstation,Xhuis/AquaStation,greytide/greytide,Ultimate-Chimera/tgstation,ToGWtF/yogstation,TehZombehz/-tg-station,PKPenguin321/-tg-station,TheRealGLH/-tg-station,Robustin/tgstation,securitycopper/-tg-station,paprka/-tg-station,lordpidey/-tg-station,loqoman/tgstation,Crexfu/tgstation,infinitystation/-tg-station,feemjmeem/-tg-station,MicroWorldwide/SS13-TG-station,Cruix/-tg-station,CPTANT/-tg-station,TalkingCactus/tgstation,riftstation/riftstation,AnturK/-tg-station,Anonus/-tg-station,ZioZan/tgstation,Jordie0608/tgstation,athompson11/Soteria-v3,WJohn/-tg-station,F-OS/tgstation,Shadowlight213/-tg-station,Qwertyon666/Necro,coiax/-tg-station,Fox-McCloud/-tg-station,PKPenguin321/-tg-station,Arianya/tgstation,anconfuzedrock/tgstation,PKPenguin321/-tg-station,anconfuzedrock/tgstation,Jordie0608/tgstation,Shadowlight213/-tg-station,HippieStation/HippieStation,PKPenguin321/-tg-station,Cheridan/tgstation,greytide/greytide,loqoman/tgstation,Jalleo/-tg-station,athompson11/Soteria-v3,Shadowlight213/-tg-station,octareenroon91/-tg-station,kingofkosmos/-tg-station,kyrahabattoir/-tg-station,paprka/-tg-station,athompson11/Soteria-v3,neersighted/tgstation,MicroWorldwide/SS13-TG-station,Aranclanos/-tg-station,ohnopigeons/tgstation,InsaneHyena/tgstation,xxalpha/-tg-station,HippieStation/HippieStation,McBawbaggings/HippieStation,Y0SH1M4S73R/-tg-station,neersighted/tgstation,McBawbaggings/HippieStation,infinitystation/-tg-station,Kraseo/-tg-station,JJRcop/tgstation,Profakos/tgstation,Incoming5643/-tg-station,feemjmeem/-tg-station,tgstation/tgstation,PKPenguin321/-tg-station,optimumtact/-tg-station,Shadowlight213/-tg-station,Jalleo/-tg-station,xxalpha/-tg-station,kyrahabattoir/-tg-station,Jalleo/-tg-station,Expletive/tgstation,coiax/-tg-station,Fox-McCloud/-tg-station,coiax/-tg-station,MrStonedOne/tgstation,Tacolizard/tgstation,Cruix/-tg-station,neersighted/tgstation,MrStonedOne/tgstation,Jordie0608/-tg-station,kevinz000/-tg-station,feemjmeem/-tg-station,posttk421/tgstation,Memendia/HippieStation,coiax/-tg-station,lordpidey/-tg-station,nicbn/tgstation,4dplanner/tgstation,JJRcop/-tg-station,Poojawa/tgstation-fork,Profakos/tgstation,ChangelingRain/-tg-station,phil235/-tg-station,Expletive/tgstation,TalkingCactus/tgstation,Y0SH1M4S73R/-tg-station,McBawbaggings/HippieStation,NicholasM10/-tg-station,TheRealGLH/-tg-station,duncathan/-tg-station,MicroWorldwide/SS13-TG-station,CosmicScientist/-tg-station,Y0SH1M4S73R/-tg-station,Thunder12345/-tg-station,Mark9013100/tgstation-m9,Crexfu/tgstation,securitycopper/-tg-station,4dplanner/tgstation,JStheguy/tgstation,Cheridan/tgstation,Fox-McCloud/-tg-station