Tg patch branch to master (#192)
* code nitpicking * Midnight oil More like 6am oil. Still having issues with actually eating anyone. * Subsystem 12/21 Most Recent TG subsystem folder * globalvars 12/21 Tossed out the flavor_misc and parallax files * Onclick 12/21 as well as .dme updates * _defines 12/21 ommited old _MC.dm * _HELPERS 12/21 Preserved snowflake placement of furry sprites * _defeines/genetics reapplied narkism holdover for snowflake races. * Oops forgot mutant colors * modules porting 12/21 + Sounds/icons Admin, Client and most of mob life files ommitted * enviroment file * Admin optimizations ahelp log system kept * Mob ports 12/21 Flavor text preserved * datums ported 12/21 * Game ported 12/21 * batch of duplicate fixes/dogborg work Dogborgs need to be modernized to refractored borg standards. * moar fixes * Maps and futher compile fixes * missed commit * Noms * specific release doesn't work * Tg modernization patch (#115) * sync (#3) * shuttle auto call * Merge /vore into /master (#39) * progress * Compile errors fixed No idea if it's test worthy tho as conflicts with race overhaul and narky removal. * Update admins.txt * efforts continue Fuck grab code, seriously * grab code is cancer * Execute the Narkism Do not hesitate. Show no mercy. * holy shit grab code is awful * have I bitched about grab code My bitching, let me show you it * código de agarre es una mierda No really it is * yeah I don't even know anymore. * Lolnope. Fuck grab code * I'm not even sure what to fix anymore * Self eating is not an acceptable fate * Taste the void, son. * My code doesn't pass it's own sanity check. Maybe it's a sign of things to come. * uncommented and notes * It Works and I Don't Know Why (#38) * shuttle auto call * it works and I don't know why * Subsystem 12/21 Most Recent TG subsystem folder * globalvars 12/21 Tossed out the flavor_misc and parallax files * Onclick 12/21 as well as .dme updates * _defines 12/21 ommited old _MC.dm * _HELPERS 12/21 Preserved snowflake placement of furry sprites * _defeines/genetics reapplied narkism holdover for snowflake races. * Oops forgot mutant colors * modules porting 12/21 + Sounds/icons Admin, Client and most of mob life files ommitted * enviroment file * Admin optimizations ahelp log system kept * Mob ports 12/21 Flavor text preserved * datums ported 12/21 * Game ported 12/21 * batch of duplicate fixes/dogborg work Dogborgs need to be modernized to refractored borg standards. * moar fixes * Maps and futher compile fixes * port from cactus did * fix format error * Update preferences.dm unfuck * Revert "port from cactus did" * unfuck * more sprite work * vore * disabled roundstart xenos for now * admin QOL needs callback porting, TBD * Mentor system initial port I'm sure I've missed a fuckton of shit * test merge * Jesus tits did this finally fix compile issues? * Tg modern (#149) * sync (#3) * shuttle auto call * Merge /vore into /master (#39) * progress * Compile errors fixed No idea if it's test worthy tho as conflicts with race overhaul and narky removal. * Update admins.txt * efforts continue Fuck grab code, seriously * grab code is cancer * Execute the Narkism Do not hesitate. Show no mercy. * holy shit grab code is awful * have I bitched about grab code My bitching, let me show you it * código de agarre es una mierda No really it is * yeah I don't even know anymore. * Lolnope. Fuck grab code * I'm not even sure what to fix anymore * Self eating is not an acceptable fate * Taste the void, son. * My code doesn't pass it's own sanity check. Maybe it's a sign of things to come. * uncommented and notes * It Works and I Don't Know Why (#38) * shuttle auto call * it works and I don't know why * Subsystem 12/21 Most Recent TG subsystem folder * globalvars 12/21 Tossed out the flavor_misc and parallax files * Onclick 12/21 as well as .dme updates * _defines 12/21 ommited old _MC.dm * _HELPERS 12/21 Preserved snowflake placement of furry sprites * _defeines/genetics reapplied narkism holdover for snowflake races. * Oops forgot mutant colors * modules porting 12/21 + Sounds/icons Admin, Client and most of mob life files ommitted * enviroment file * Admin optimizations ahelp log system kept * Mob ports 12/21 Flavor text preserved * datums ported 12/21 * Game ported 12/21 * batch of duplicate fixes/dogborg work Dogborgs need to be modernized to refractored borg standards. * moar fixes * Maps and futher compile fixes * Tg modernization patch (#115) * sync (#3) * shuttle auto call * Merge /vore into /master (#39) * progress * Compile errors fixed No idea if it's test worthy tho as conflicts with race overhaul and narky removal. * Update admins.txt * efforts continue Fuck grab code, seriously * grab code is cancer * Execute the Narkism Do not hesitate. Show no mercy. * holy shit grab code is awful * have I bitched about grab code My bitching, let me show you it * código de agarre es una mierda No really it is * yeah I don't even know anymore. * Lolnope. Fuck grab code * I'm not even sure what to fix anymore * Self eating is not an acceptable fate * Taste the void, son. * My code doesn't pass it's own sanity check. Maybe it's a sign of things to come. * uncommented and notes * It Works and I Don't Know Why (#38) * shuttle auto call * it works and I don't know why * Subsystem 12/21 Most Recent TG subsystem folder * globalvars 12/21 Tossed out the flavor_misc and parallax files * Onclick 12/21 as well as .dme updates * _defines 12/21 ommited old _MC.dm * _HELPERS 12/21 Preserved snowflake placement of furry sprites * _defeines/genetics reapplied narkism holdover for snowflake races. * Oops forgot mutant colors * modules porting 12/21 + Sounds/icons Admin, Client and most of mob life files ommitted * enviroment file * Admin optimizations ahelp log system kept * Mob ports 12/21 Flavor text preserved * datums ported 12/21 * Game ported 12/21 * batch of duplicate fixes/dogborg work Dogborgs need to be modernized to refractored borg standards. * moar fixes * Maps and futher compile fixes * port from cactus did * fix format error * Update preferences.dm unfuck * Revert "port from cactus did" * unfuck * more sprite work * vore * disabled roundstart xenos for now * test merge * Jesus tits did this finally fix compile issues? * Initial test compiles. hooray. * Admin ticket fixes * I'll give you a bad argument you piece of shit dream maker I fucking swear on my mum * who list wip also ahelps are broken again. fuck if I know why * discord bot basics * maybe tickets work now & bot framework done * ahelp callback readd * Mentor system, Tickets, and discord (#151) * sync (#3) * shuttle auto call * Merge /vore into /master (#39) * progress * Compile errors fixed No idea if it's test worthy tho as conflicts with race overhaul and narky removal. * Update admins.txt * efforts continue Fuck grab code, seriously * grab code is cancer * Execute the Narkism Do not hesitate. Show no mercy. * holy shit grab code is awful * have I bitched about grab code My bitching, let me show you it * código de agarre es una mierda No really it is * yeah I don't even know anymore. * Lolnope. Fuck grab code * I'm not even sure what to fix anymore * Self eating is not an acceptable fate * Taste the void, son. * My code doesn't pass it's own sanity check. Maybe it's a sign of things to come. * uncommented and notes * It Works and I Don't Know Why (#38) * shuttle auto call * it works and I don't know why * Subsystem 12/21 Most Recent TG subsystem folder * globalvars 12/21 Tossed out the flavor_misc and parallax files * Onclick 12/21 as well as .dme updates * _defines 12/21 ommited old _MC.dm * _HELPERS 12/21 Preserved snowflake placement of furry sprites * _defeines/genetics reapplied narkism holdover for snowflake races. * Oops forgot mutant colors * modules porting 12/21 + Sounds/icons Admin, Client and most of mob life files ommitted * enviroment file * Admin optimizations ahelp log system kept * Mob ports 12/21 Flavor text preserved * datums ported 12/21 * Game ported 12/21 * batch of duplicate fixes/dogborg work Dogborgs need to be modernized to refractored borg standards. * moar fixes * Maps and futher compile fixes * Tg modernization patch (#115) * sync (#3) * shuttle auto call * Merge /vore into /master (#39) * progress * Compile errors fixed No idea if it's test worthy tho as conflicts with race overhaul and narky removal. * Update admins.txt * efforts continue Fuck grab code, seriously * grab code is cancer * Execute the Narkism Do not hesitate. Show no mercy. * holy shit grab code is awful * have I bitched about grab code My bitching, let me show you it * código de agarre es una mierda No really it is * yeah I don't even know anymore. * Lolnope. Fuck grab code * I'm not even sure what to fix anymore * Self eating is not an acceptable fate * Taste the void, son. * My code doesn't pass it's own sanity check. Maybe it's a sign of things to come. * uncommented and notes * It Works and I Don't Know Why (#38) * shuttle auto call * it works and I don't know why * Subsystem 12/21 Most Recent TG subsystem folder * globalvars 12/21 Tossed out the flavor_misc and parallax files * Onclick 12/21 as well as .dme updates * _defines 12/21 ommited old _MC.dm * _HELPERS 12/21 Preserved snowflake placement of furry sprites * _defeines/genetics reapplied narkism holdover for snowflake races. * Oops forgot mutant colors * modules porting 12/21 + Sounds/icons Admin, Client and most of mob life files ommitted * enviroment file * Admin optimizations ahelp log system kept * Mob ports 12/21 Flavor text preserved * datums ported 12/21 * Game ported 12/21 * batch of duplicate fixes/dogborg work Dogborgs need to be modernized to refractored borg standards. * moar fixes * Maps and futher compile fixes * port from cactus did * fix format error * Update preferences.dm unfuck * Revert "port from cactus did" * unfuck * more sprite work * vore * disabled roundstart xenos for now * admin QOL needs callback porting, TBD * Mentor system initial port I'm sure I've missed a fuckton of shit * test merge * Jesus tits did this finally fix compile issues? * Initial test compiles. hooray. * Admin ticket fixes * I'll give you a bad argument you piece of shit dream maker I fucking swear on my mum * who list wip also ahelps are broken again. fuck if I know why * discord bot basics * maybe tickets work now & bot framework done * ahelp callback readd * vore tweaks * progress * dirtier fix than a korean hooker in the 60s * The release your hooker will always fake * you could save that hookers number but wouldn't you rather just vore the hooker instead * Save system is literal black magic * great googly moogly it's all gone to shit * We May 2015 save code now * fiddling with digestion code now * fuck if I know anymore. I'm going to bed * OWN UP YOUR OWN DIGESTION * UNREGULATED GUTS ARE NON COMPLIANT AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA * BELLIES MUST COMPLY WITH USER OWNERSHIP * Removed debug messages * Unneeded verb additions * file change tweaks * WATCH YOUR SPACING, DRIVER * Changelog and devourment for some mobs. Because I knew people were gunna ask. NO YOU CANNOT EAT THE FUCKING LEGION * Vore code sync (#157) * sync (#3) * shuttle auto call * Merge /vore into /master (#39) * progress * Compile errors fixed No idea if it's test worthy tho as conflicts with race overhaul and narky removal. * Update admins.txt * efforts continue Fuck grab code, seriously * grab code is cancer * Execute the Narkism Do not hesitate. Show no mercy. * holy shit grab code is awful * have I bitched about grab code My bitching, let me show you it * código de agarre es una mierda No really it is * yeah I don't even know anymore. * Lolnope. Fuck grab code * I'm not even sure what to fix anymore * Self eating is not an acceptable fate * Taste the void, son. * My code doesn't pass it's own sanity check. Maybe it's a sign of things to come. * uncommented and notes * It Works and I Don't Know Why (#38) * shuttle auto call * it works and I don't know why * Escape and Devourable For the normies who play here yet complain about it. * Things that should be committed * unneeded files * Sizeray works now * tweaks and bed time going * IT WORKS mostly Need to get multiple guts and saving working tho * save tweaks * item hotfix * gut examine message * damifino * save system works also ensured some mobs have vore controls, so silicons can't even remotely do vore things. * code nitpicking * Midnight oil More like 6am oil. Still having issues with actually eating anyone. * Subsystem 12/21 Most Recent TG subsystem folder * globalvars 12/21 Tossed out the flavor_misc and parallax files * Onclick 12/21 as well as .dme updates * _defines 12/21 ommited old _MC.dm * _HELPERS 12/21 Preserved snowflake placement of furry sprites * _defeines/genetics reapplied narkism holdover for snowflake races. * Oops forgot mutant colors * modules porting 12/21 + Sounds/icons Admin, Client and most of mob life files ommitted * enviroment file * Admin optimizations ahelp log system kept * Mob ports 12/21 Flavor text preserved * datums ported 12/21 * Game ported 12/21 * batch of duplicate fixes/dogborg work Dogborgs need to be modernized to refractored borg standards. * moar fixes * Maps and futher compile fixes * missed commit * Noms * specific release doesn't work * Tg modernization patch (#115) * sync (#3) * shuttle auto call * Merge /vore into /master (#39) * progress * Compile errors fixed No idea if it's test worthy tho as conflicts with race overhaul and narky removal. * Update admins.txt * efforts continue Fuck grab code, seriously * grab code is cancer * Execute the Narkism Do not hesitate. Show no mercy. * holy shit grab code is awful * have I bitched about grab code My bitching, let me show you it * código de agarre es una mierda No really it is * yeah I don't even know anymore. * Lolnope. Fuck grab code * I'm not even sure what to fix anymore * Self eating is not an acceptable fate * Taste the void, son. * My code doesn't pass it's own sanity check. Maybe it's a sign of things to come. * uncommented and notes * It Works and I Don't Know Why (#38) * shuttle auto call * it works and I don't know why * Subsystem 12/21 Most Recent TG subsystem folder * globalvars 12/21 Tossed out the flavor_misc and parallax files * Onclick 12/21 as well as .dme updates * _defines 12/21 ommited old _MC.dm * _HELPERS 12/21 Preserved snowflake placement of furry sprites * _defeines/genetics reapplied narkism holdover for snowflake races. * Oops forgot mutant colors * modules porting 12/21 + Sounds/icons Admin, Client and most of mob life files ommitted * enviroment file * Admin optimizations ahelp log system kept * Mob ports 12/21 Flavor text preserved * datums ported 12/21 * Game ported 12/21 * batch of duplicate fixes/dogborg work Dogborgs need to be modernized to refractored borg standards. * moar fixes * Maps and futher compile fixes * port from cactus did * fix format error * Update preferences.dm unfuck * Revert "port from cactus did" * unfuck * more sprite work * vore * disabled roundstart xenos for now * admin QOL needs callback porting, TBD * Mentor system initial port I'm sure I've missed a fuckton of shit * test merge * Jesus tits did this finally fix compile issues? * Initial test compiles. hooray. * Admin ticket fixes * I'll give you a bad argument you piece of shit dream maker I fucking swear on my mum * who list wip also ahelps are broken again. fuck if I know why * discord bot basics * maybe tickets work now & bot framework done * ahelp callback readd * vore tweaks * progress * dirtier fix than a korean hooker in the 60s * The release your hooker will always fake * you could save that hookers number but wouldn't you rather just vore the hooker instead * Save system is literal black magic * great googly moogly it's all gone to shit * We May 2015 save code now * fiddling with digestion code now * fuck if I know anymore. I'm going to bed * OWN UP YOUR OWN DIGESTION * UNREGULATED GUTS ARE NON COMPLIANT AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA * BELLIES MUST COMPLY WITH USER OWNERSHIP * Removed debug messages * Unneeded verb additions * file change tweaks * WATCH YOUR SPACING, DRIVER * Changelog and devourment for some mobs. Because I knew people were gunna ask. NO YOU CANNOT EAT THE FUCKING LEGION * title screen change from Crow's PR. * More of Crow's title screen stuff * mode tweaks.... again * gamemode voting in lobby via TalkingCactus disabled ashwalkers as roundstart Verk's species tweak paralax starts disabled by default * LOOC * index sync problem (#158) * digifix * things * furry races.dm * actually deletes species_types * maps * tgui and stuff * Sounds * icon updates * Defines and helpers * global vars and on click * controllers * datums * game folder * fixes invisible flan mobs * some modules * dropbomb verb enhanced * moar * moar * moar * even more again * and finally these for modules * Some compile tweaks * silly dme get updated you scrub * compiles cleanly now * various open PR fixes from TG as of 0800 Texas Standard Time * also fancy cryopods before I forget again * headslug gold core fix * edgy code of the modernization (#164) * sync (#3) * shuttle auto call * Merge /vore into /master (#39) * progress * Compile errors fixed No idea if it's test worthy tho as conflicts with race overhaul and narky removal. * Update admins.txt * efforts continue Fuck grab code, seriously * grab code is cancer * Execute the Narkism Do not hesitate. Show no mercy. * holy shit grab code is awful * have I bitched about grab code My bitching, let me show you it * código de agarre es una mierda No really it is * yeah I don't even know anymore. * Lolnope. Fuck grab code * I'm not even sure what to fix anymore * Self eating is not an acceptable fate * Taste the void, son. * My code doesn't pass it's own sanity check. Maybe it's a sign of things to come. * uncommented and notes * It Works and I Don't Know Why (#38) * shuttle auto call * it works and I don't know why * Escape and Devourable For the normies who play here yet complain about it. * Things that should be committed * unneeded files * Sizeray works now * tweaks and bed time going * IT WORKS mostly Need to get multiple guts and saving working tho * save tweaks * item hotfix * gut examine message * damifino * save system works also ensured some mobs have vore controls, so silicons can't even remotely do vore things. * code nitpicking * Midnight oil More like 6am oil. Still having issues with actually eating anyone. * Subsystem 12/21 Most Recent TG subsystem folder * globalvars 12/21 Tossed out the flavor_misc and parallax files * Onclick 12/21 as well as .dme updates * _defines 12/21 ommited old _MC.dm * _HELPERS 12/21 Preserved snowflake placement of furry sprites * _defeines/genetics reapplied narkism holdover for snowflake races. * Oops forgot mutant colors * modules porting 12/21 + Sounds/icons Admin, Client and most of mob life files ommitted * enviroment file * Admin optimizations ahelp log system kept * Mob ports 12/21 Flavor text preserved * datums ported 12/21 * Game ported 12/21 * batch of duplicate fixes/dogborg work Dogborgs need to be modernized to refractored borg standards. * moar fixes * Maps and futher compile fixes * missed commit * Noms * specific release doesn't work * Tg modernization patch (#115) * sync (#3) * shuttle auto call * Merge /vore into /master (#39) * progress * Compile errors fixed No idea if it's test worthy tho as conflicts with race overhaul and narky removal. * Update admins.txt * efforts continue Fuck grab code, seriously * grab code is cancer * Execute the Narkism Do not hesitate. Show no mercy. * holy shit grab code is awful * have I bitched about grab code My bitching, let me show you it * código de agarre es una mierda No really it is * yeah I don't even know anymore. * Lolnope. Fuck grab code * I'm not even sure what to fix anymore * Self eating is not an acceptable fate * Taste the void, son. * My code doesn't pass it's own sanity check. Maybe it's a sign of things to come. * uncommented and notes * It Works and I Don't Know Why (#38) * shuttle auto call * it works and I don't know why * Subsystem 12/21 Most Recent TG subsystem folder * globalvars 12/21 Tossed out the flavor_misc and parallax files * Onclick 12/21 as well as .dme updates * _defines 12/21 ommited old _MC.dm * _HELPERS 12/21 Preserved snowflake placement of furry sprites * _defeines/genetics reapplied narkism holdover for snowflake races. * Oops forgot mutant colors * modules porting 12/21 + Sounds/icons Admin, Client and most of mob life files ommitted * enviroment file * Admin optimizations ahelp log system kept * Mob ports 12/21 Flavor text preserved * datums ported 12/21 * Game ported 12/21 * batch of duplicate fixes/dogborg work Dogborgs need to be modernized to refractored borg standards. * moar fixes * Maps and futher compile fixes * port from cactus did * fix format error * Update preferences.dm unfuck * Revert "port from cactus did" * unfuck * more sprite work * vore * disabled roundstart xenos for now * admin QOL needs callback porting, TBD * Mentor system initial port I'm sure I've missed a fuckton of shit * test merge * Jesus tits did this finally fix compile issues? * Initial test compiles. hooray. * Admin ticket fixes * I'll give you a bad argument you piece of shit dream maker I fucking swear on my mum * who list wip also ahelps are broken again. fuck if I know why * discord bot basics * maybe tickets work now & bot framework done * ahelp callback readd * vore tweaks * progress * Small fixes for dogborgs and sprite accessories: -Ported the hidden snippets of the dogborg code. -Reset module now resets pixel offset and icon directory again. (broke shit when reseting from dogborg) -Medihound belly fixed. -Husky body marking tweaked to not overlap arms in side view. -Added husky ears that are basically wolf ears that use secondary color instead. * dirtier fix than a korean hooker in the 60s * The release your hooker will always fake * you could save that hookers number but wouldn't you rather just vore the hooker instead * Save system is literal black magic * great googly moogly it's all gone to shit * We May 2015 save code now * fiddling with digestion code now * fuck if I know anymore. I'm going to bed * OWN UP YOUR OWN DIGESTION * UNREGULATED GUTS ARE NON COMPLIANT AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA * BELLIES MUST COMPLY WITH USER OWNERSHIP * Removed debug messages * Unneeded verb additions * file change tweaks * WATCH YOUR SPACING, DRIVER * Changelog and devourment for some mobs. Because I knew people were gunna ask. NO YOU CANNOT EAT THE FUCKING LEGION * title screen change from Crow's PR. * More of Crow's title screen stuff * mode tweaks.... again * gamemode voting in lobby via TalkingCactus disabled ashwalkers as roundstart Verk's species tweak paralax starts disabled by default * LOOC * index sync problem (#158) * digifix * things * furry races.dm * actually deletes species_types * maps * tgui and stuff * Sounds * icon updates * Defines and helpers * global vars and on click * controllers * datums * game folder * fixes invisible flan mobs * some modules * dropbomb verb enhanced * moar * moar * moar * even more again * and finally these for modules * Some compile tweaks * silly dme get updated you scrub * compiles cleanly now * various open PR fixes from TG as of 0800 Texas Standard Time * also fancy cryopods before I forget again * headslug gold core fix * some species and DNA tweaks * Digest already damn you * suddenly sound and resist works. wtf * Minor tweaks, cryopod noise change * Vore tested working, species working * Merge test onto bleeding edgy (#165) * sync (#3) * shuttle auto call * Merge /vore into /master (#39) * progress * Compile errors fixed No idea if it's test worthy tho as conflicts with race overhaul and narky removal. * Update admins.txt * efforts continue Fuck grab code, seriously * grab code is cancer * Execute the Narkism Do not hesitate. Show no mercy. * holy shit grab code is awful * have I bitched about grab code My bitching, let me show you it * código de agarre es una mierda No really it is * yeah I don't even know anymore. * Lolnope. Fuck grab code * I'm not even sure what to fix anymore * Self eating is not an acceptable fate * Taste the void, son. * My code doesn't pass it's own sanity check. Maybe it's a sign of things to come. * uncommented and notes * It Works and I Don't Know Why (#38) * shuttle auto call * it works and I don't know why * Escape and Devourable For the normies who play here yet complain about it. * Things that should be committed * unneeded files * Sizeray works now * tweaks and bed time going * IT WORKS mostly Need to get multiple guts and saving working tho * save tweaks * item hotfix * gut examine message * damifino * save system works also ensured some mobs have vore controls, so silicons can't even remotely do vore things. * code nitpicking * Midnight oil More like 6am oil. Still having issues with actually eating anyone. * Subsystem 12/21 Most Recent TG subsystem folder * globalvars 12/21 Tossed out the flavor_misc and parallax files * Onclick 12/21 as well as .dme updates * _defines 12/21 ommited old _MC.dm * _HELPERS 12/21 Preserved snowflake placement of furry sprites * _defeines/genetics reapplied narkism holdover for snowflake races. * Oops forgot mutant colors * modules porting 12/21 + Sounds/icons Admin, Client and most of mob life files ommitted * enviroment file * Admin optimizations ahelp log system kept * Mob ports 12/21 Flavor text preserved * datums ported 12/21 * Game ported 12/21 * batch of duplicate fixes/dogborg work Dogborgs need to be modernized to refractored borg standards. * moar fixes * Maps and futher compile fixes * missed commit * Noms * specific release doesn't work * Tg modernization patch (#115) * sync (#3) * shuttle auto call * Merge /vore into /master (#39) * progress * Compile errors fixed No idea if it's test worthy tho as conflicts with race overhaul and narky removal. * Update admins.txt * efforts continue Fuck grab code, seriously * grab code is cancer * Execute the Narkism Do not hesitate. Show no mercy. * holy shit grab code is awful * have I bitched about grab code My bitching, let me show you it * código de agarre es una mierda No really it is * yeah I don't even know anymore. * Lolnope. Fuck grab code * I'm not even sure what to fix anymore * Self eating is not an acceptable fate * Taste the void, son. * My code doesn't pass it's own sanity check. Maybe it's a sign of things to come. * uncommented and notes * It Works and I Don't Know Why (#38) * shuttle auto call * it works and I don't know why * Subsystem 12/21 Most Recent TG subsystem folder * globalvars 12/21 Tossed out the flavor_misc and parallax files * Onclick 12/21 as well as .dme updates * _defines 12/21 ommited old _MC.dm * _HELPERS 12/21 Preserved snowflake placement of furry sprites * _defeines/genetics reapplied narkism holdover for snowflake races. * Oops forgot mutant colors * modules porting 12/21 + Sounds/icons Admin, Client and most of mob life files ommitted * enviroment file * Admin optimizations ahelp log system kept * Mob ports 12/21 Flavor text preserved * datums ported 12/21 * Game ported 12/21 * batch of duplicate fixes/dogborg work Dogborgs need to be modernized to refractored borg standards. * moar fixes * Maps and futher compile fixes * port from cactus did * fix format error * Update preferences.dm unfuck * Revert "port from cactus did" * unfuck * more sprite work * vore * disabled roundstart xenos for now * admin QOL needs callback porting, TBD * Mentor system initial port I'm sure I've missed a fuckton of shit * test merge * Jesus tits did this finally fix compile issues? * Initial test compiles. hooray. * Admin ticket fixes * I'll give you a bad argument you piece of shit dream maker I fucking swear on my mum * who list wip also ahelps are broken again. fuck if I know why * discord bot basics * maybe tickets work now & bot framework done * ahelp callback readd * vore tweaks * progress * Small fixes for dogborgs and sprite accessories: -Ported the hidden snippets of the dogborg code. -Reset module now resets pixel offset and icon directory again. (broke shit when reseting from dogborg) -Medihound belly fixed. -Husky body marking tweaked to not overlap arms in side view. -Added husky ears that are basically wolf ears that use secondary color instead. * dirtier fix than a korean hooker in the 60s * The release your hooker will always fake * you could save that hookers number but wouldn't you rather just vore the hooker instead * Save system is literal black magic * great googly moogly it's all gone to shit * We May 2015 save code now * fiddling with digestion code now * fuck if I know anymore. I'm going to bed * OWN UP YOUR OWN DIGESTION * UNREGULATED GUTS ARE NON COMPLIANT AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA * BELLIES MUST COMPLY WITH USER OWNERSHIP * Removed debug messages * Unneeded verb additions * file change tweaks * WATCH YOUR SPACING, DRIVER * Changelog and devourment for some mobs. Because I knew people were gunna ask. NO YOU CANNOT EAT THE FUCKING LEGION * title screen change from Crow's PR. * More of Crow's title screen stuff * mode tweaks.... again * gamemode voting in lobby via TalkingCactus disabled ashwalkers as roundstart Verk's species tweak paralax starts disabled by default * LOOC * index sync problem (#158) * digifix * things * furry races.dm * actually deletes species_types * maps * tgui and stuff * Sounds * icon updates * Defines and helpers * global vars and on click * controllers * datums * game folder * fixes invisible flan mobs * some modules * dropbomb verb enhanced * moar * moar * moar * even more again * and finally these for modules * Some compile tweaks * silly dme get updated you scrub * compiles cleanly now * various open PR fixes from TG as of 0800 Texas Standard Time * also fancy cryopods before I forget again * headslug gold core fix * some species and DNA tweaks * Digest already damn you * suddenly sound and resist works. wtf * Minor tweaks, cryopod noise change * Vore tested working, species working * travis map updates * updates * pool's closed due to lag * datum pools are closed too * Initializing new pool's closed * Pool's closed and initializing shit is done * sprite updates * chattering is okay to do now. * bleeblin edgy 1/23 (#166) * sync (#3) * shuttle auto call * Merge /vore into /master (#39) * progress * Compile errors fixed No idea if it's test worthy tho as conflicts with race overhaul and narky removal. * Update admins.txt * efforts continue Fuck grab code, seriously * grab code is cancer * Execute the Narkism Do not hesitate. Show no mercy. * holy shit grab code is awful * have I bitched about grab code My bitching, let me show you it * código de agarre es una mierda No really it is * yeah I don't even know anymore. * Lolnope. Fuck grab code * I'm not even sure what to fix anymore * Self eating is not an acceptable fate * Taste the void, son. * My code doesn't pass it's own sanity check. Maybe it's a sign of things to come. * uncommented and notes * It Works and I Don't Know Why (#38) * shuttle auto call * it works and I don't know why * Escape and Devourable For the normies who play here yet complain about it. * Things that should be committed * unneeded files * Sizeray works now * tweaks and bed time going * IT WORKS mostly Need to get multiple guts and saving working tho * save tweaks * item hotfix * gut examine message * damifino * save system works also ensured some mobs have vore controls, so silicons can't even remotely do vore things. * code nitpicking * Midnight oil More like 6am oil. Still having issues with actually eating anyone. * Subsystem 12/21 Most Recent TG subsystem folder * globalvars 12/21 Tossed out the flavor_misc and parallax files * Onclick 12/21 as well as .dme updates * _defines 12/21 ommited old _MC.dm * _HELPERS 12/21 Preserved snowflake placement of furry sprites * _defeines/genetics reapplied narkism holdover for snowflake races. * Oops forgot mutant colors * modules porting 12/21 + Sounds/icons Admin, Client and most of mob life files ommitted * enviroment file * Admin optimizations ahelp log system kept * Mob ports 12/21 Flavor text preserved * datums ported 12/21 * Game ported 12/21 * batch of duplicate fixes/dogborg work Dogborgs need to be modernized to refractored borg standards. * moar fixes * Maps and futher compile fixes * missed commit * Noms * specific release doesn't work * Tg modernization patch (#115) * sync (#3) * shuttle auto call * Merge /vore into /master (#39) * progress * Compile errors fixed No idea if it's test worthy tho as conflicts with race overhaul and narky removal. * Update admins.txt * efforts continue Fuck grab code, seriously * grab code is cancer * Execute the Narkism Do not hesitate. Show no mercy. * holy shit grab code is awful * have I bitched about grab code My bitching, let me show you it * código de agarre es una mierda No really it is * yeah I don't even know anymore. * Lolnope. Fuck grab code * I'm not even sure what to fix anymore * Self eating is not an acceptable fate * Taste the void, son. * My code doesn't pass it's own sanity check. Maybe it's a sign of things to come. * uncommented and notes * It Works and I Don't Know Why (#38) * shuttle auto call * it works and I don't know why * Subsystem 12/21 Most Recent TG subsystem folder * globalvars 12/21 Tossed out the flavor_misc and parallax files * Onclick 12/21 as well as .dme updates * _defines 12/21 ommited old _MC.dm * _HELPERS 12/21 Preserved snowflake placement of furry sprites * _defeines/genetics reapplied narkism holdover for snowflake races. * Oops forgot mutant colors * modules porting 12/21 + Sounds/icons Admin, Client and most of mob life files ommitted * enviroment file * Admin optimizations ahelp log system kept * Mob ports 12/21 Flavor text preserved * datums ported 12/21 * Game ported 12/21 * batch of duplicate fixes/dogborg work Dogborgs need to be modernized to refractored borg standards. * moar fixes * Maps and futher compile fixes * port from cactus did * fix format error * Update preferences.dm unfuck * Revert "port from cactus did" * unfuck * more sprite work * vore * disabled roundstart xenos for now * admin QOL needs callback porting, TBD * Mentor system initial port I'm sure I've missed a fuckton of shit * test merge * Jesus tits did this finally fix compile issues? * Initial test compiles. hooray. * Admin ticket fixes * I'll give you a bad argument you piece of shit dream maker I fucking swear on my mum * who list wip also ahelps are broken again. fuck if I know why * discord bot basics * maybe tickets work now & bot framework done * ahelp callback readd * vore tweaks * progress * Small fixes for dogborgs and sprite accessories: -Ported the hidden snippets of the dogborg code. -Reset module now resets pixel offset and icon directory again. (broke shit when reseting from dogborg) -Medihound belly fixed. -Husky body marking tweaked to not overlap arms in side view. -Added husky ears that are basically wolf ears that use secondary color instead. * dirtier fix than a korean hooker in the 60s * The release your hooker will always fake * you could save that hookers number but wouldn't you rather just vore the hooker instead * Save system is literal black magic * great googly moogly it's all gone to shit * We May 2015 save code now * fiddling with digestion code now * fuck if I know anymore. I'm going to bed * OWN UP YOUR OWN DIGESTION * UNREGULATED GUTS ARE NON COMPLIANT AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA * BELLIES MUST COMPLY WITH USER OWNERSHIP * Removed debug messages * Unneeded verb additions * file change tweaks * WATCH YOUR SPACING, DRIVER * Changelog and devourment for some mobs. Because I knew people were gunna ask. NO YOU CANNOT EAT THE FUCKING LEGION * title screen change from Crow's PR. * More of Crow's title screen stuff * mode tweaks.... again * gamemode voting in lobby via TalkingCactus disabled ashwalkers as roundstart Verk's species tweak paralax starts disabled by default * LOOC * index sync problem (#158) * digifix * things * furry races.dm * actually deletes species_types * maps * tgui and stuff * Sounds * icon updates * Defines and helpers * global vars and on click * controllers * datums * game folder * fixes invisible flan mobs * some modules * dropbomb verb enhanced * moar * moar * moar * even more again * and finally these for modules * Some compile tweaks * silly dme get updated you scrub * compiles cleanly now * various open PR fixes from TG as of 0800 Texas Standard Time * also fancy cryopods before I forget again * headslug gold core fix * some species and DNA tweaks * Digest already damn you * suddenly sound and resist works. wtf * Minor tweaks, cryopod noise change * Vore tested working, species working * travis map updates * updates * pool's closed due to lag * datum pools are closed too * Initializing new pool's closed * Pool's closed and initializing shit is done * sprite updates * chattering is okay to do now. * Update .travis.yml * Update .travis.yml * Update .travis.yml * Revert "Modern modern" * Revert "Revert "Modern modern"" * fix it fix it fix it fix it * fixes title screen - thanks crow * Riding code reverted * possible tgui fix? * who the fuck even knows if this is the problem * adds moths and sharks (no colors yet, not greyscaled) adds LOOC back * "fixes" missing items in some machinery. * slight tweaks to abductor spawns borer event enabled (max 1) * Update .travis.yml * fixes shuttle purchase from comms * fixes and QoL * Polymorphing all is dangerous too * re-fixes ahelp ticket system again * metagaming check proving to be spamlicious * Fixes not being able to see devoured mob poses * fix for vehicle buckling * ahelp timer runtime fix (#178) * controller and game updates 1/29 * Defines, helpers, datums 1/29 * world.dm updates * modules/admin tweaks * everything in modules not a mob * modules/mob fixes and such No more PAIs ventcrawling * icons, maps, tools, etc. * compiler fixes * round type vote fixed * hardsuit cargo pack * reduce ion and electric storm chance * perms access for travis * fix helmet to the suit removes CE from crate * changelog * fuck * perms for travis... again * Update tgstation.dme * Update tgstation.dme * Donation race * redpanda * red panda * size play work * Size chemical basics Needs testing/refining * some fixing ports before I just fucking ported it anyway * It's been a fucking week. * commiting moar changes because github * admins.txt lol * icons * defines and such * globalvars and onclick * Controllers * datums * game folder * oh look, HoG is back * modules pt 1 * client things * more modules * everything not mob code * some mob stuff * more mob things * silicon mobs * ayylims and monkeys * human updates * huh * housekeeping is fired. * last minute fixes * more last minute things * human parts double check'd * more paper * Icons are fixed * double check of thermal protection code. (#191)
This commit is contained in:
+59
-35
@@ -1,4 +1,4 @@
|
||||
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
|
||||
|
||||
|
||||
/var/const/access_security = 1 // Security equipment
|
||||
/var/const/access_brig = 2 // Brig timers and permabrig
|
||||
@@ -64,6 +64,8 @@
|
||||
/var/const/access_mineral_storeroom = 64
|
||||
/var/const/access_minisat = 65
|
||||
/var/const/access_weapons = 66 //Weapon authorization for secbots
|
||||
/var/const/access_network = 67
|
||||
/var/const/access_cloning = 68 //Cloning room
|
||||
|
||||
//BEGIN CENTCOM ACCESS
|
||||
/*Should leave plenty of room if we need to add more access levels.
|
||||
@@ -82,6 +84,19 @@
|
||||
/var/const/access_syndicate = 150//General Syndicate Access
|
||||
/var/const/access_syndicate_leader = 151//Nuke Op Leader Access
|
||||
|
||||
//Away Missions or Ruins
|
||||
/*For generic away-mission/ruin access. Why would normal crew have access to a long-abandoned derelict
|
||||
or a 2000 year-old temple? */
|
||||
/var/const/access_away_general = 200//General facilities.
|
||||
/var/const/access_away_maint = 201//Away maintenance
|
||||
/var/const/access_away_med = 202//Away medical
|
||||
/var/const/access_away_sec = 203//Away security
|
||||
/var/const/access_away_engine = 204//Away engineering
|
||||
/var/const/access_away_generic1 = 205//Away generic access
|
||||
/var/const/access_away_generic2 = 206
|
||||
/var/const/access_away_generic3 = 207
|
||||
/var/const/access_away_generic4 = 208
|
||||
|
||||
/obj/var/list/req_access = null
|
||||
/obj/var/req_access_txt = "0"
|
||||
/obj/var/list/req_one_access = null
|
||||
@@ -91,28 +106,29 @@
|
||||
/obj/proc/allowed(mob/M)
|
||||
//check if it doesn't require any access at all
|
||||
if(src.check_access(null))
|
||||
return 1
|
||||
if(istype(M, /mob/living/silicon))
|
||||
//AI can do whatever he wants
|
||||
return 1
|
||||
return TRUE
|
||||
if(issilicon(M))
|
||||
if(ispAI(M))
|
||||
return FALSE
|
||||
return TRUE //AI can do whatever it wants
|
||||
if(IsAdminGhost(M))
|
||||
//Access can't stop the abuse
|
||||
return 1
|
||||
else if(istype(M, /mob/living/carbon/human))
|
||||
return TRUE
|
||||
else if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
//if they are holding or wearing a card that has access, that works
|
||||
if(src.check_access(H.get_active_hand()) || src.check_access(H.wear_id))
|
||||
return 1
|
||||
else if(istype(M, /mob/living/carbon/monkey) || istype(M, /mob/living/carbon/alien/humanoid))
|
||||
if(check_access(H.get_active_held_item()) || src.check_access(H.wear_id))
|
||||
return TRUE
|
||||
else if(ismonkey(M) || isalienadult(M))
|
||||
var/mob/living/carbon/george = M
|
||||
//they can only hold things :(
|
||||
if(src.check_access(george.get_active_hand()))
|
||||
return 1
|
||||
if(check_access(george.get_active_held_item()))
|
||||
return TRUE
|
||||
else if(isanimal(M))
|
||||
var/mob/living/simple_animal/A = M
|
||||
if(check_access(A.access_card))
|
||||
return 1
|
||||
return 0
|
||||
if(check_access(A.get_active_held_item()) || check_access(A.access_card))
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/obj/item/proc/GetAccess()
|
||||
return list()
|
||||
@@ -120,7 +136,8 @@
|
||||
/obj/item/proc/GetID()
|
||||
return null
|
||||
|
||||
/obj/proc/check_access(obj/item/I)
|
||||
//Call this before using req_access or req_one_access directly
|
||||
/obj/proc/gen_access()
|
||||
//These generations have been moved out of /obj/New() because they were slowing down the creation of objects that never even used the access system.
|
||||
if(!src.req_access)
|
||||
src.req_access = list()
|
||||
@@ -140,45 +157,48 @@
|
||||
if(n)
|
||||
req_one_access += n
|
||||
|
||||
/obj/proc/check_access(obj/item/I)
|
||||
gen_access()
|
||||
|
||||
if(!istype(src.req_access, /list)) //something's very wrong
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
var/list/L = src.req_access
|
||||
if(!L.len && (!src.req_one_access || !src.req_one_access.len)) //no requirements
|
||||
return 1
|
||||
return TRUE
|
||||
if(!I)
|
||||
return 0
|
||||
return FALSE
|
||||
for(var/req in src.req_access)
|
||||
if(!(req in I.GetAccess())) //doesn't have this access
|
||||
return 0
|
||||
return FALSE
|
||||
if(src.req_one_access && src.req_one_access.len)
|
||||
for(var/req in src.req_one_access)
|
||||
if(req in I.GetAccess()) //has an access from the single access list
|
||||
return 1
|
||||
return 0
|
||||
return 1
|
||||
return TRUE
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
|
||||
/obj/proc/check_access_list(list/L)
|
||||
if(!src.req_access && !src.req_one_access)
|
||||
return 1
|
||||
return TRUE
|
||||
if(!istype(src.req_access, /list))
|
||||
return 1
|
||||
return TRUE
|
||||
if(!src.req_access.len && (!src.req_one_access || !src.req_one_access.len))
|
||||
return 1
|
||||
return TRUE
|
||||
if(!L)
|
||||
return 0
|
||||
return FALSE
|
||||
if(!istype(L, /list))
|
||||
return 0
|
||||
return FALSE
|
||||
for(var/req in src.req_access)
|
||||
if(!(req in L)) //doesn't have this access
|
||||
return 0
|
||||
return FALSE
|
||||
if(src.req_one_access && src.req_one_access.len)
|
||||
for(var/req in src.req_one_access)
|
||||
if(req in L) //has an access from the single access list
|
||||
return 1
|
||||
return 0
|
||||
return 1
|
||||
return TRUE
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/proc/get_centcom_access(job)
|
||||
switch(job)
|
||||
@@ -224,7 +244,7 @@
|
||||
access_hydroponics, access_library, access_lawyer, access_virology, access_cmo, access_qm, access_surgery,
|
||||
access_theatre, access_research, access_mining, access_mailsorting, access_weapons,
|
||||
access_heads_vault, access_mining_station, access_xenobiology, access_ce, access_hop, access_hos, access_RC_announce,
|
||||
access_keycard_auth, access_tcomsat, access_gateway, access_mineral_storeroom, access_minisat)
|
||||
access_keycard_auth, access_tcomsat, access_gateway, access_mineral_storeroom, access_minisat, access_network, access_cloning)
|
||||
|
||||
/proc/get_all_centcom_access()
|
||||
return list(access_cent_general, access_cent_thunder, access_cent_specops, access_cent_medical, access_cent_living, access_cent_storage, access_cent_teleporter, access_cent_captain)
|
||||
@@ -252,9 +272,9 @@
|
||||
if(2) //security
|
||||
return list(access_sec_doors, access_weapons, access_security, access_brig, access_armory, access_forensics_lockers, access_court, access_hos)
|
||||
if(3) //medbay
|
||||
return list(access_medical, access_genetics, access_morgue, access_chemistry, access_virology, access_surgery, access_cmo)
|
||||
return list(access_medical, access_genetics, access_cloning, access_morgue, access_chemistry, access_virology, access_surgery, access_cmo)
|
||||
if(4) //research
|
||||
return list(access_research, access_tox, access_tox_storage, access_genetics, access_robotics, access_xenobiology, access_minisat, access_rd)
|
||||
return list(access_research, access_tox, access_tox_storage, access_genetics, access_robotics, access_xenobiology, access_minisat, access_rd, access_network)
|
||||
if(5) //engineering and maintenance
|
||||
return list(access_construction, access_maint_tunnels, access_engine, access_engine_equip, access_external_airlocks, access_tech_storage, access_atmospherics, access_tcomsat, access_minisat, access_ce)
|
||||
if(6) //supply
|
||||
@@ -411,6 +431,10 @@
|
||||
return "AI Satellite"
|
||||
if(access_weapons)
|
||||
return "Weapon Permit"
|
||||
if(access_network)
|
||||
return "Network Access"
|
||||
if(access_cloning)
|
||||
return "Cloning Room"
|
||||
|
||||
/proc/get_centcom_access_desc(A)
|
||||
switch(A)
|
||||
|
||||
@@ -14,6 +14,7 @@ Assistant
|
||||
minimal_access = list() //See /datum/job/assistant/get_access()
|
||||
outfit = /datum/outfit/job/assistant
|
||||
|
||||
|
||||
/datum/job/assistant/get_access()
|
||||
if((config.jobs_have_maint_access & ASSISTANTS_HAVE_MAINT_ACCESS) || !config.jobs_have_minimal_access) //Config has assistant maint access set
|
||||
. = ..()
|
||||
@@ -31,6 +32,7 @@ Assistant
|
||||
|
||||
/datum/outfit/job/assistant
|
||||
name = "Assistant"
|
||||
jobtype = /datum/job/assistant
|
||||
|
||||
/datum/outfit/job/assistant/pre_equip(mob/living/carbon/human/H)
|
||||
..()
|
||||
|
||||
@@ -22,9 +22,13 @@ Captain
|
||||
/datum/job/captain/get_access()
|
||||
return get_all_accesses()
|
||||
|
||||
/datum/job/captain/announce(mob/living/carbon/human/H)
|
||||
..()
|
||||
minor_announce("Captain [H.real_name] on deck!")
|
||||
|
||||
/datum/outfit/job/captain
|
||||
name = "Captain"
|
||||
jobtype = /datum/job/captain
|
||||
|
||||
id = /obj/item/weapon/card/id/gold
|
||||
belt = /obj/item/device/pda/captain
|
||||
@@ -38,24 +42,11 @@ Captain
|
||||
backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1, /obj/item/station_charter=1)
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/captain
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_cap
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel/cap
|
||||
dufflebag = /obj/item/weapon/storage/backpack/dufflebag/captain
|
||||
|
||||
/datum/outfit/job/captain/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
..()
|
||||
implants = list(/obj/item/weapon/implant/mindshield)
|
||||
|
||||
var/obj/item/clothing/under/U = H.w_uniform
|
||||
U.attachTie(new /obj/item/clothing/tie/medal/gold/captain())
|
||||
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/weapon/implant/mindshield/L = new/obj/item/weapon/implant/mindshield(H)
|
||||
L.imp_in = H
|
||||
L.implanted = 1
|
||||
H.sec_hud_set_implants()
|
||||
|
||||
minor_announce("Captain [H.real_name] on deck!")
|
||||
|
||||
/*
|
||||
Head of Personnel
|
||||
@@ -65,6 +56,7 @@ Head of Personnel
|
||||
flag = HOP
|
||||
department_head = list("Captain")
|
||||
department_flag = CIVILIAN
|
||||
head_announce = list("Supply", "Service")
|
||||
faction = "Station"
|
||||
total_positions = 1
|
||||
spawn_positions = 1
|
||||
@@ -91,6 +83,7 @@ Head of Personnel
|
||||
|
||||
/datum/outfit/job/hop
|
||||
name = "Head of Personnel"
|
||||
jobtype = /datum/job/hop
|
||||
|
||||
id = /obj/item/weapon/card/id/silver
|
||||
belt = /obj/item/device/pda/heads/hop
|
||||
@@ -99,12 +92,4 @@ Head of Personnel
|
||||
shoes = /obj/item/clothing/shoes/sneakers/brown
|
||||
head = /obj/item/clothing/head/hopcap
|
||||
backpack_contents = list(/obj/item/weapon/storage/box/ids=1,\
|
||||
/obj/item/weapon/melee/classic_baton/telescopic=1)
|
||||
|
||||
/datum/outfit/job/hop/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
..()
|
||||
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
announce_head(H, list("Supply", "Service"))
|
||||
/obj/item/weapon/melee/classic_baton/telescopic=1, /obj/item/device/modular_computer/tablet/preset/advanced = 1)
|
||||
|
||||
@@ -19,6 +19,7 @@ Quartermaster
|
||||
|
||||
/datum/outfit/job/quartermaster
|
||||
name = "Quartermaster"
|
||||
jobtype = /datum/job/qm
|
||||
|
||||
belt = /obj/item/device/pda/quartermaster
|
||||
ears = /obj/item/device/radio/headset/headset_cargo
|
||||
@@ -48,6 +49,7 @@ Cargo Technician
|
||||
|
||||
/datum/outfit/job/cargo_tech
|
||||
name = "Cargo Technician"
|
||||
jobtype = /datum/job/cargo_tech
|
||||
|
||||
belt = /obj/item/device/pda/cargo
|
||||
ears = /obj/item/device/radio/headset/headset_cargo
|
||||
@@ -74,7 +76,8 @@ Shaft Miner
|
||||
minimal_access = list(access_mining, access_mining_station, access_mailsorting, access_mineral_storeroom)
|
||||
|
||||
/datum/outfit/job/miner
|
||||
name = "Shaft Miner"
|
||||
name = "Shaft Miner (Lavaland)"
|
||||
jobtype = /datum/job/mining
|
||||
|
||||
belt = /obj/item/device/pda/shaftminer
|
||||
ears = /obj/item/device/radio/headset/headset_cargo/mining
|
||||
@@ -89,10 +92,46 @@ Shaft Miner
|
||||
/obj/item/weapon/mining_voucher=1)
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/explorer
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_explorer
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel/explorer
|
||||
dufflebag = /obj/item/weapon/storage/backpack/dufflebag
|
||||
box = /obj/item/weapon/storage/box/survival_mining
|
||||
|
||||
/datum/outfit/job/miner/asteroid
|
||||
name = "Shaft Miner (Asteroid)"
|
||||
uniform = /obj/item/clothing/under/rank/miner
|
||||
shoes = /obj/item/clothing/shoes/workboots
|
||||
|
||||
/datum/outfit/job/miner/equipped
|
||||
name = "Shaft Miner (Lavaland + Equipment)"
|
||||
suit = /obj/item/clothing/suit/hooded/explorer
|
||||
mask = /obj/item/clothing/mask/gas/explorer
|
||||
glasses = /obj/item/clothing/glasses/meson
|
||||
suit_store = /obj/item/weapon/tank/internals/oxygen
|
||||
internals_slot = slot_s_store
|
||||
backpack_contents = list(
|
||||
/obj/item/weapon/storage/bag/ore=1,
|
||||
/obj/item/weapon/kitchen/knife/combat/survival=1,
|
||||
/obj/item/weapon/mining_voucher=1,
|
||||
/obj/item/device/t_scanner/adv_mining_scanner/lesser=1,
|
||||
/obj/item/weapon/gun/energy/kinetic_accelerator=1)
|
||||
|
||||
/datum/outfit/job/miner/equipped/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
..()
|
||||
if(visualsOnly)
|
||||
return
|
||||
if(istype(H.wear_suit, /obj/item/clothing/suit/hooded))
|
||||
var/obj/item/clothing/suit/hooded/S = H.wear_suit
|
||||
S.ToggleHood()
|
||||
|
||||
/datum/outfit/job/miner/equipped/asteroid
|
||||
name = "Shaft Miner (Asteroid + Equipment)"
|
||||
uniform = /obj/item/clothing/under/rank/miner
|
||||
shoes = /obj/item/clothing/shoes/workboots
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/mining
|
||||
mask = /obj/item/clothing/mask/breath
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Bartender
|
||||
*/
|
||||
@@ -115,6 +154,7 @@ Bartender
|
||||
|
||||
/datum/outfit/job/bartender
|
||||
name = "Bartender"
|
||||
jobtype = /datum/job/bartender
|
||||
|
||||
glasses = /obj/item/clothing/glasses/sunglasses/reagent
|
||||
belt = /obj/item/device/pda/bar
|
||||
@@ -146,21 +186,24 @@ Cook
|
||||
|
||||
/datum/outfit/job/cook
|
||||
name = "Cook"
|
||||
jobtype = /datum/job/cook
|
||||
|
||||
belt = /obj/item/device/pda/cook
|
||||
ears = /obj/item/device/radio/headset/headset_srv
|
||||
uniform = /obj/item/clothing/under/rank/chef
|
||||
suit = /obj/item/clothing/suit/toggle/chef
|
||||
head = /obj/item/clothing/head/chefhat
|
||||
backpack_contents = list(/obj/item/weapon/sharpener = 1)
|
||||
|
||||
/datum/outfit/job/cook/pre_equip(mob/living/carbon/human/H)
|
||||
/datum/outfit/job/cook/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
..()
|
||||
var/datum/job/cook/J = SSjob.GetJob(H.job)
|
||||
var/datum/job/cook/J = SSjob.GetJobType(jobtype)
|
||||
if(J) // Fix for runtime caused by invalid job being passed
|
||||
J.cooks++
|
||||
if(J.cooks>1)//Cooks
|
||||
if(J.cooks>0)//Cooks
|
||||
suit = /obj/item/clothing/suit/apron/chef
|
||||
head = /obj/item/clothing/head/soft/mime
|
||||
if(!visualsOnly)
|
||||
J.cooks++
|
||||
|
||||
/datum/outfit/job/cook/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
..()
|
||||
@@ -185,11 +228,16 @@ Botanist
|
||||
|
||||
outfit = /datum/outfit/job/botanist
|
||||
|
||||
access = list(access_hydroponics, access_bar, access_kitchen, access_morgue) // Removed tox and chem access because STOP PISSING OFF THE CHEMIST GUYS // //Removed medical access because WHAT THE FUCK YOU AREN'T A DOCTOR YOU GROW WHEAT //Given Morgue access because they have a viable means of cloning.
|
||||
minimal_access = list(access_hydroponics, access_morgue) // Removed tox and chem access because STOP PISSING OFF THE CHEMIST GUYS // //Removed medical access because WHAT THE FUCK YOU AREN'T A DOCTOR YOU GROW WHEAT //Given Morgue access because they have a viable means of cloning.
|
||||
access = list(access_hydroponics, access_bar, access_kitchen, access_morgue)
|
||||
minimal_access = list(access_hydroponics, access_morgue)
|
||||
// Removed tox and chem access because STOP PISSING OFF THE CHEMIST GUYS
|
||||
// Removed medical access because WHAT THE FUCK YOU AREN'T A DOCTOR YOU GROW WHEAT
|
||||
// Given Morgue access because they have a viable means of cloning.
|
||||
|
||||
|
||||
/datum/outfit/job/botanist
|
||||
name = "Botanist"
|
||||
jobtype = /datum/job/hydro
|
||||
|
||||
belt = /obj/item/device/pda/botanist
|
||||
ears = /obj/item/device/radio/headset/headset_srv
|
||||
@@ -199,7 +247,7 @@ Botanist
|
||||
suit_store = /obj/item/device/plant_analyzer
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/botany
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_hyd
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel/hyd
|
||||
|
||||
|
||||
/*
|
||||
@@ -224,7 +272,9 @@ Janitor
|
||||
|
||||
/datum/outfit/job/janitor
|
||||
name = "Janitor"
|
||||
jobtype = /datum/job/janitor
|
||||
|
||||
belt = /obj/item/device/pda/janitor
|
||||
ears = /obj/item/device/radio/headset/headset_srv
|
||||
uniform = /obj/item/clothing/under/rank/janitor
|
||||
backpack_contents = list(/obj/item/device/modular_computer/tablet/preset/advanced=1)
|
||||
|
||||
@@ -19,6 +19,7 @@ Clown
|
||||
|
||||
/datum/outfit/job/clown
|
||||
name = "Clown"
|
||||
jobtype = /datum/job/clown
|
||||
|
||||
belt = /obj/item/device/pda/clown
|
||||
uniform = /obj/item/clothing/under/rank/clown
|
||||
@@ -30,16 +31,18 @@ Clown
|
||||
/obj/item/weapon/stamp/clown = 1,
|
||||
/obj/item/weapon/reagent_containers/spray/waterflower = 1,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/banana = 1,
|
||||
/obj/item/device/megaphone/clown = 1
|
||||
/obj/item/device/megaphone/clown = 1,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/soda_cans/canned_laughter = 1
|
||||
)
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/clown
|
||||
satchel = /obj/item/weapon/storage/backpack/clown
|
||||
dufflebag = /obj/item/weapon/storage/backpack/dufflebag/clown //strangely has a duffle
|
||||
|
||||
implants = list(/obj/item/weapon/implant/sad_trombone)
|
||||
|
||||
/datum/outfit/job/clown/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
..()
|
||||
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
@@ -47,14 +50,9 @@ Clown
|
||||
|
||||
/datum/outfit/job/clown/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
..()
|
||||
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/weapon/implant/sad_trombone/S = new/obj/item/weapon/implant/sad_trombone(H)
|
||||
S.imp_in = H
|
||||
S.implanted = 1
|
||||
|
||||
H.dna.add_mutation(CLOWNMUT)
|
||||
H.rename_self("clown")
|
||||
|
||||
@@ -79,6 +77,7 @@ Mime
|
||||
|
||||
/datum/outfit/job/mime
|
||||
name = "Mime"
|
||||
jobtype = /datum/job/mime
|
||||
|
||||
belt = /obj/item/device/pda/mime
|
||||
uniform = /obj/item/clothing/under/rank/mime
|
||||
@@ -127,12 +126,16 @@ Librarian
|
||||
|
||||
/datum/outfit/job/librarian
|
||||
name = "Librarian"
|
||||
jobtype = /datum/job/librarian
|
||||
|
||||
belt = /obj/item/device/pda/librarian
|
||||
uniform = /obj/item/clothing/under/rank/librarian
|
||||
l_hand = /obj/item/weapon/storage/bag/books
|
||||
r_pocket = /obj/item/weapon/barcodescanner
|
||||
l_pocket = /obj/item/device/laser_pointer
|
||||
backpack_contents = list(
|
||||
/obj/item/soapstone = 1
|
||||
)
|
||||
|
||||
/*
|
||||
Lawyer
|
||||
@@ -156,6 +159,7 @@ Lawyer
|
||||
|
||||
/datum/outfit/job/lawyer
|
||||
name = "Lawyer"
|
||||
jobtype = /datum/job/lawyer
|
||||
|
||||
belt = /obj/item/device/pda/lawyer
|
||||
ears = /obj/item/device/radio/headset/headset_sec
|
||||
@@ -164,14 +168,15 @@ Lawyer
|
||||
shoes = /obj/item/clothing/shoes/laceup
|
||||
l_hand = /obj/item/weapon/storage/briefcase/lawyer
|
||||
l_pocket = /obj/item/device/laser_pointer
|
||||
r_pocket = /obj/item/clothing/tie/lawyers_badge
|
||||
|
||||
|
||||
/datum/outfit/job/lawyer/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
..()
|
||||
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/datum/job/lawyer/J = SSjob.GetJob(H.job)
|
||||
var/datum/job/lawyer/J = SSjob.GetJobType(jobtype)
|
||||
J.lawyers++
|
||||
if(J.lawyers>1)
|
||||
uniform = /obj/item/clothing/under/lawyer/purpsuit
|
||||
|
||||
@@ -20,6 +20,7 @@ Chaplain
|
||||
|
||||
/datum/outfit/job/chaplain
|
||||
name = "Chaplain"
|
||||
jobtype = /datum/job/chaplain
|
||||
|
||||
belt = /obj/item/device/pda/chaplain
|
||||
uniform = /obj/item/clothing/under/rank/chaplain
|
||||
@@ -34,7 +35,22 @@ Chaplain
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
if(H.mind)
|
||||
H.mind.isholy = TRUE
|
||||
|
||||
var/obj/item/weapon/storage/book/bible/B = new /obj/item/weapon/storage/book/bible/booze(H)
|
||||
|
||||
if(SSreligion.Bible_deity_name)
|
||||
B.deity_name = SSreligion.Bible_deity_name
|
||||
B.name = SSreligion.Bible_name
|
||||
B.icon_state = SSreligion.Bible_icon_state
|
||||
B.item_state = SSreligion.Bible_item_state
|
||||
H << "There is already an established religion onboard the station. You are an acolyte of [SSreligion.Bible_deity_name]. Defer to the Chaplain."
|
||||
H.equip_to_slot_or_del(B, slot_in_backpack)
|
||||
var/obj/item/weapon/nullrod/N = new(H)
|
||||
H.equip_to_slot_or_del(N, slot_in_backpack)
|
||||
return
|
||||
|
||||
var/new_religion = "Christianity"
|
||||
if(H.client && H.client.prefs.custom_names["religion"])
|
||||
new_religion = H.client.prefs.custom_names["religion"]
|
||||
@@ -66,14 +82,13 @@ Chaplain
|
||||
else
|
||||
B.name = "The Holy Book of [new_religion]"
|
||||
feedback_set_details("religion_name","[new_religion]")
|
||||
ticker.Bible_name = B.name
|
||||
SSreligion.Bible_name = B.name
|
||||
|
||||
var/new_deity = "Space Jesus"
|
||||
if(H.client && H.client.prefs.custom_names["deity"])
|
||||
new_deity = H.client.prefs.custom_names["deity"]
|
||||
B.deity_name = new_deity
|
||||
|
||||
if(ticker)
|
||||
ticker.Bible_deity_name = B.deity_name
|
||||
SSreligion.Bible_deity_name = B.deity_name
|
||||
feedback_set_details("religion_deity","[new_deity]")
|
||||
H.equip_to_slot_or_del(B, slot_in_backpack)
|
||||
H.equip_to_slot_or_del(B, slot_in_backpack)
|
||||
|
||||
@@ -6,6 +6,7 @@ Chief Engineer
|
||||
flag = CHIEF
|
||||
department_head = list("Captain")
|
||||
department_flag = ENGSEC
|
||||
head_announce = list("Engineering")
|
||||
faction = "Station"
|
||||
total_positions = 1
|
||||
spawn_positions = 1
|
||||
@@ -27,6 +28,7 @@ Chief Engineer
|
||||
|
||||
/datum/outfit/job/ce
|
||||
name = "Chief Engineer"
|
||||
jobtype = /datum/job/chief_engineer
|
||||
|
||||
id = /obj/item/weapon/card/id/silver
|
||||
belt = /obj/item/weapon/storage/belt/utility/chief/full
|
||||
@@ -36,21 +38,25 @@ Chief Engineer
|
||||
shoes = /obj/item/clothing/shoes/sneakers/brown
|
||||
head = /obj/item/clothing/head/hardhat/white
|
||||
gloves = /obj/item/clothing/gloves/color/black/ce
|
||||
backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1)
|
||||
backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1,/obj/item/device/modular_computer/tablet/preset/advanced=1)
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/industrial
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_eng
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel/eng
|
||||
dufflebag = /obj/item/weapon/storage/backpack/dufflebag/engineering
|
||||
box = /obj/item/weapon/storage/box/engineer
|
||||
pda_slot = slot_l_store
|
||||
|
||||
/datum/outfit/job/ce/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
..()
|
||||
/datum/outfit/job/ce/rig
|
||||
name = "Chief Engineer (Hardsuit)"
|
||||
|
||||
if(visualsOnly)
|
||||
return
|
||||
mask = /obj/item/clothing/mask/breath
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/engine/elite
|
||||
shoes = /obj/item/clothing/shoes/magboots/advance
|
||||
suit_store = /obj/item/weapon/tank/internals/oxygen
|
||||
gloves = /obj/item/clothing/gloves/color/yellow
|
||||
head = null
|
||||
internals_slot = slot_s_store
|
||||
|
||||
announce_head(H, list("Engineering"))
|
||||
|
||||
/*
|
||||
Station Engineer
|
||||
@@ -75,6 +81,7 @@ Station Engineer
|
||||
|
||||
/datum/outfit/job/engineer
|
||||
name = "Station Engineer"
|
||||
jobtype = /datum/job/engineer
|
||||
|
||||
belt = /obj/item/weapon/storage/belt/utility/full
|
||||
l_pocket = /obj/item/device/pda/engineering
|
||||
@@ -85,10 +92,22 @@ Station Engineer
|
||||
r_pocket = /obj/item/device/t_scanner
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/industrial
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_eng
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel/eng
|
||||
dufflebag = /obj/item/weapon/storage/backpack/dufflebag/engineering
|
||||
box = /obj/item/weapon/storage/box/engineer
|
||||
pda_slot = slot_l_store
|
||||
backpack_contents = list(/obj/item/device/modular_computer/tablet/preset/advanced=1)
|
||||
|
||||
/datum/outfit/job/engineer/rig
|
||||
name = "Station Engineer (Hardsuit)"
|
||||
|
||||
mask = /obj/item/clothing/mask/breath
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/engine
|
||||
suit_store = /obj/item/weapon/tank/internals/oxygen
|
||||
gloves = /obj/item/clothing/gloves/color/yellow
|
||||
head = null
|
||||
internals_slot = slot_s_store
|
||||
|
||||
|
||||
/*
|
||||
Atmospheric Technician
|
||||
@@ -112,6 +131,7 @@ Atmospheric Technician
|
||||
|
||||
/datum/outfit/job/atmos
|
||||
name = "Atmospheric Technician"
|
||||
jobtype = /datum/job/atmos
|
||||
|
||||
belt = /obj/item/weapon/storage/belt/utility/atmostech
|
||||
l_pocket = /obj/item/device/pda/atmos
|
||||
@@ -120,7 +140,16 @@ Atmospheric Technician
|
||||
r_pocket = /obj/item/device/analyzer
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/industrial
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_eng
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel/eng
|
||||
dufflebag = /obj/item/weapon/storage/backpack/dufflebag/engineering
|
||||
box = /obj/item/weapon/storage/box/engineer
|
||||
pda_slot = slot_l_store
|
||||
pda_slot = slot_l_store
|
||||
backpack_contents = list(/obj/item/device/modular_computer/tablet/preset/advanced=1)
|
||||
|
||||
/datum/outfit/job/atmos/rig
|
||||
name = "Atmospheric Technician (Hardsuit)"
|
||||
|
||||
mask = /obj/item/clothing/mask/gas
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/engine/atmos
|
||||
suit_store = /obj/item/weapon/tank/internals/oxygen
|
||||
internals_slot = slot_s_store
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
/datum/job
|
||||
|
||||
//The name of the job
|
||||
var/title = "NOPE"
|
||||
|
||||
@@ -10,6 +9,9 @@
|
||||
//Determines who can demote this position
|
||||
var/department_head = list()
|
||||
|
||||
//Tells the given channels that the given mob is the new department head. See communications.dm for valid channels.
|
||||
var/list/head_announce = null
|
||||
|
||||
//Bitflags for the job
|
||||
var/flag = 0
|
||||
var/department_flag = 0
|
||||
@@ -42,10 +44,16 @@
|
||||
var/outfit = null
|
||||
|
||||
//Only override this proc
|
||||
/datum/job/proc/equip_items(mob/living/carbon/human/H)
|
||||
/datum/job/proc/after_spawn(mob/living/carbon/human/H)
|
||||
|
||||
|
||||
/datum/job/proc/announce(mob/living/carbon/human/H)
|
||||
if(head_announce)
|
||||
announce_head(H, head_announce)
|
||||
|
||||
|
||||
//But don't override this
|
||||
/datum/job/proc/equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
/datum/job/proc/equip(mob/living/carbon/human/H, visualsOnly = FALSE, announce = TRUE)
|
||||
if(!H)
|
||||
return 0
|
||||
|
||||
@@ -57,42 +65,8 @@
|
||||
|
||||
H.dna.species.after_equip_job(src, H, visualsOnly)
|
||||
|
||||
/datum/job/proc/apply_fingerprints(mob/living/carbon/human/H)
|
||||
if(!istype(H))
|
||||
return
|
||||
if(H.back)
|
||||
H.back.add_fingerprint(H,1) //The 1 sets a flag to ignore gloves
|
||||
for(var/obj/item/I in H.back.contents)
|
||||
I.add_fingerprint(H,1)
|
||||
if(H.wear_id)
|
||||
H.wear_id.add_fingerprint(H,1)
|
||||
if(H.w_uniform)
|
||||
H.w_uniform.add_fingerprint(H,1)
|
||||
if(H.wear_suit)
|
||||
H.wear_suit.add_fingerprint(H,1)
|
||||
if(H.wear_mask)
|
||||
H.wear_mask.add_fingerprint(H,1)
|
||||
if(H.head)
|
||||
H.head.add_fingerprint(H,1)
|
||||
if(H.shoes)
|
||||
H.shoes.add_fingerprint(H,1)
|
||||
if(H.gloves)
|
||||
H.gloves.add_fingerprint(H,1)
|
||||
if(H.ears)
|
||||
H.ears.add_fingerprint(H,1)
|
||||
if(H.glasses)
|
||||
H.glasses.add_fingerprint(H,1)
|
||||
if(H.belt)
|
||||
H.belt.add_fingerprint(H,1)
|
||||
for(var/obj/item/I in H.belt.contents)
|
||||
I.add_fingerprint(H,1)
|
||||
if(H.s_store)
|
||||
H.s_store.add_fingerprint(H,1)
|
||||
if(H.l_store)
|
||||
H.l_store.add_fingerprint(H,1)
|
||||
if(H.r_store)
|
||||
H.r_store.add_fingerprint(H,1)
|
||||
return 1
|
||||
if(!visualsOnly && announce)
|
||||
announce(H)
|
||||
|
||||
/datum/job/proc/get_access()
|
||||
if(!config) //Needed for robots.
|
||||
@@ -108,6 +82,12 @@
|
||||
if(config.jobs_have_maint_access & EVERYONE_HAS_MAINT_ACCESS) //Config has global maint access set
|
||||
. |= list(access_maint_tunnels)
|
||||
|
||||
/datum/job/proc/announce_head(var/mob/living/carbon/human/H, var/channels) //tells the given channel that the given mob is the new department head. See communications.dm for valid channels.
|
||||
spawn(4) //to allow some initialization
|
||||
if(H && announcement_systems.len)
|
||||
var/obj/machinery/announcement_system/announcer = pick(announcement_systems)
|
||||
announcer.announce("NEWHEAD", H.real_name, H.job, channels)
|
||||
|
||||
//If the configuration option is set to require players to be logged as old enough to play certain jobs, then this proc checks that they are, otherwise it just returns 1
|
||||
/datum/job/proc/player_old_enough(client/C)
|
||||
if(available_in_days(C) == 0)
|
||||
@@ -130,9 +110,13 @@
|
||||
/datum/job/proc/config_check()
|
||||
return 1
|
||||
|
||||
|
||||
|
||||
/datum/outfit/job
|
||||
name = "Standard Gear"
|
||||
|
||||
var/jobtype = null
|
||||
|
||||
uniform = /obj/item/clothing/under/color/grey
|
||||
id = /obj/item/weapon/card/id
|
||||
ears = /obj/item/device/radio/headset
|
||||
@@ -140,8 +124,10 @@
|
||||
back = /obj/item/weapon/storage/backpack
|
||||
shoes = /obj/item/clothing/shoes/sneakers/black
|
||||
|
||||
var/list/implants = null
|
||||
|
||||
var/backpack = /obj/item/weapon/storage/backpack
|
||||
var/satchel = /obj/item/weapon/storage/backpack/satchel_norm
|
||||
var/satchel = /obj/item/weapon/storage/backpack/satchel
|
||||
var/dufflebag = /obj/item/weapon/storage/backpack/dufflebag
|
||||
var/box = /obj/item/weapon/storage/box/survival
|
||||
|
||||
@@ -152,11 +138,11 @@
|
||||
if(GBACKPACK)
|
||||
back = /obj/item/weapon/storage/backpack //Grey backpack
|
||||
if(GSATCHEL)
|
||||
back = /obj/item/weapon/storage/backpack/satchel_norm //Grey satchel
|
||||
back = /obj/item/weapon/storage/backpack/satchel //Grey satchel
|
||||
if(GDUFFLEBAG)
|
||||
back = /obj/item/weapon/storage/backpack/dufflebag //Grey Dufflebag
|
||||
if(LSATCHEL)
|
||||
back = /obj/item/weapon/storage/backpack/satchel //Leather Satchel
|
||||
back = /obj/item/weapon/storage/backpack/satchel/leather //Leather Satchel
|
||||
if(DSATCHEL)
|
||||
back = satchel //Department satchel
|
||||
if(DDUFFLEBAG)
|
||||
@@ -172,23 +158,25 @@
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/datum/job/J = SSjob.GetJobType(jobtype)
|
||||
if(!J)
|
||||
J = SSjob.GetJob(H.job)
|
||||
|
||||
var/obj/item/weapon/card/id/C = H.wear_id
|
||||
if(istype(C))
|
||||
var/datum/job/J = SSjob.GetJob(H.job) // Not sure the best idea
|
||||
C.access = J.get_access()
|
||||
C.registered_name = H.real_name
|
||||
C.assignment = H.job
|
||||
C.assignment = J.title
|
||||
C.update_label()
|
||||
H.sec_hud_set_ID()
|
||||
|
||||
var/obj/item/device/pda/PDA = H.get_item_by_slot(pda_slot)
|
||||
if(istype(PDA))
|
||||
PDA.owner = H.real_name
|
||||
PDA.ownjob = H.job
|
||||
PDA.ownjob = J.title
|
||||
PDA.update_label()
|
||||
|
||||
/datum/outfit/job/proc/announce_head(var/mob/living/carbon/human/H, var/channels) //tells the given channel that the given mob is the new department head. See communications.dm for valid channels.
|
||||
spawn(4) //to allow some initialization
|
||||
if(H && announcement_systems.len)
|
||||
var/obj/machinery/announcement_system/announcer = pick(announcement_systems)
|
||||
announcer.announce("NEWHEAD", H.real_name, H.job, channels)
|
||||
if(implants)
|
||||
for(var/implant_type in implants)
|
||||
var/obj/item/weapon/implant/I = new implant_type(H)
|
||||
I.implant(H, null, silent=TRUE)
|
||||
|
||||
@@ -6,6 +6,7 @@ Chief Medical Officer
|
||||
flag = CMO
|
||||
department_head = list("Captain")
|
||||
department_flag = MEDSCI
|
||||
head_announce = list("Medical")
|
||||
faction = "Station"
|
||||
total_positions = 1
|
||||
spawn_positions = 1
|
||||
@@ -16,15 +17,16 @@ Chief Medical Officer
|
||||
|
||||
outfit = /datum/outfit/job/cmo
|
||||
|
||||
access = list(access_medical, access_morgue, access_genetics, access_heads, access_mineral_storeroom,
|
||||
access = list(access_medical, access_morgue, access_genetics, access_cloning, access_heads, access_mineral_storeroom,
|
||||
access_chemistry, access_virology, access_cmo, access_surgery, access_RC_announce,
|
||||
access_keycard_auth, access_sec_doors, access_maint_tunnels)
|
||||
minimal_access = list(access_medical, access_morgue, access_genetics, access_heads, access_mineral_storeroom,
|
||||
minimal_access = list(access_medical, access_morgue, access_genetics, access_cloning, access_heads, access_mineral_storeroom,
|
||||
access_chemistry, access_virology, access_cmo, access_surgery, access_RC_announce,
|
||||
access_keycard_auth, access_sec_doors, access_maint_tunnels)
|
||||
|
||||
/datum/outfit/job/cmo
|
||||
name = "Chief Medical Officer"
|
||||
jobtype = /datum/job/cmo
|
||||
|
||||
id = /obj/item/weapon/card/id/silver
|
||||
belt = /obj/item/device/pda/heads/cmo
|
||||
@@ -37,17 +39,9 @@ Chief Medical Officer
|
||||
backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1)
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/medic
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_med
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel/med
|
||||
dufflebag = /obj/item/weapon/storage/backpack/dufflebag/med
|
||||
|
||||
/datum/outfit/job/cmo/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
..()
|
||||
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
announce_head(H, list("Medical")) //tell underlings (medical radio) they have a head
|
||||
|
||||
/*
|
||||
Medical Doctor
|
||||
*/
|
||||
@@ -64,11 +58,12 @@ Medical Doctor
|
||||
|
||||
outfit = /datum/outfit/job/doctor
|
||||
|
||||
access = list(access_medical, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics, access_mineral_storeroom)
|
||||
minimal_access = list(access_medical, access_morgue, access_surgery)
|
||||
access = list(access_medical, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics, access_cloning, access_mineral_storeroom)
|
||||
minimal_access = list(access_medical, access_morgue, access_surgery, access_cloning)
|
||||
|
||||
/datum/outfit/job/doctor
|
||||
name = "Medical Doctor"
|
||||
jobtype = /datum/job/doctor
|
||||
|
||||
belt = /obj/item/device/pda/medical
|
||||
ears = /obj/item/device/radio/headset/headset_med
|
||||
@@ -79,7 +74,7 @@ Medical Doctor
|
||||
suit_store = /obj/item/device/flashlight/pen
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/medic
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_med
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel/med
|
||||
dufflebag = /obj/item/weapon/storage/backpack/dufflebag/med
|
||||
|
||||
/*
|
||||
@@ -98,11 +93,12 @@ Chemist
|
||||
|
||||
outfit = /datum/outfit/job/chemist
|
||||
|
||||
access = list(access_medical, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics, access_mineral_storeroom)
|
||||
access = list(access_medical, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics, access_cloning, access_mineral_storeroom)
|
||||
minimal_access = list(access_medical, access_chemistry, access_mineral_storeroom)
|
||||
|
||||
/datum/outfit/job/chemist
|
||||
name = "Chemist"
|
||||
jobtype = /datum/job/chemist
|
||||
|
||||
glasses = /obj/item/clothing/glasses/science
|
||||
belt = /obj/item/device/pda/chemist
|
||||
@@ -112,7 +108,7 @@ Chemist
|
||||
suit = /obj/item/clothing/suit/toggle/labcoat/chemist
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/chemistry
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_chem
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel/chem
|
||||
dufflebag = /obj/item/weapon/storage/backpack/dufflebag/med
|
||||
|
||||
/*
|
||||
@@ -131,11 +127,12 @@ Geneticist
|
||||
|
||||
outfit = /datum/outfit/job/geneticist
|
||||
|
||||
access = list(access_medical, access_morgue, access_chemistry, access_virology, access_genetics, access_research, access_xenobiology, access_robotics, access_mineral_storeroom, access_tech_storage)
|
||||
minimal_access = list(access_medical, access_morgue, access_genetics, access_research)
|
||||
access = list(access_medical, access_morgue, access_chemistry, access_virology, access_genetics, access_cloning, access_research, access_xenobiology, access_robotics, access_mineral_storeroom, access_tech_storage)
|
||||
minimal_access = list(access_medical, access_morgue, access_genetics, access_cloning, access_research)
|
||||
|
||||
/datum/outfit/job/geneticist
|
||||
name = "Geneticist"
|
||||
jobtype = /datum/job/geneticist
|
||||
|
||||
belt = /obj/item/device/pda/geneticist
|
||||
ears = /obj/item/device/radio/headset/headset_medsci
|
||||
@@ -145,7 +142,7 @@ Geneticist
|
||||
suit_store = /obj/item/device/flashlight/pen
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/genetics
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_gen
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel/gen
|
||||
dufflebag = /obj/item/weapon/storage/backpack/dufflebag/med
|
||||
|
||||
/*
|
||||
@@ -164,11 +161,12 @@ Virologist
|
||||
|
||||
outfit = /datum/outfit/job/virologist
|
||||
|
||||
access = list(access_medical, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics, access_mineral_storeroom)
|
||||
access = list(access_medical, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics, access_cloning, access_mineral_storeroom)
|
||||
minimal_access = list(access_medical, access_virology, access_mineral_storeroom)
|
||||
|
||||
/datum/outfit/job/virologist
|
||||
name = "Virologist"
|
||||
jobtype = /datum/job/virologist
|
||||
|
||||
belt = /obj/item/device/pda/viro
|
||||
ears = /obj/item/device/radio/headset/headset_med
|
||||
@@ -179,5 +177,5 @@ Virologist
|
||||
suit_store = /obj/item/device/flashlight/pen
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/virology
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_vir
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel/vir
|
||||
dufflebag = /obj/item/weapon/storage/backpack/dufflebag/med
|
||||
|
||||
@@ -6,6 +6,7 @@ Research Director
|
||||
flag = RD
|
||||
department_head = list("Captain")
|
||||
department_flag = MEDSCI
|
||||
head_announce = list("Science")
|
||||
faction = "Station"
|
||||
total_positions = 1
|
||||
spawn_positions = 1
|
||||
@@ -20,15 +21,16 @@ Research Director
|
||||
access_tox_storage, access_teleporter, access_sec_doors,
|
||||
access_research, access_robotics, access_xenobiology, access_ai_upload,
|
||||
access_RC_announce, access_keycard_auth, access_gateway, access_mineral_storeroom,
|
||||
access_tech_storage, access_minisat, access_maint_tunnels)
|
||||
access_tech_storage, access_minisat, access_maint_tunnels, access_network)
|
||||
minimal_access = list(access_rd, access_heads, access_tox, access_genetics, access_morgue,
|
||||
access_tox_storage, access_teleporter, access_sec_doors,
|
||||
access_research, access_robotics, access_xenobiology, access_ai_upload,
|
||||
access_RC_announce, access_keycard_auth, access_gateway, access_mineral_storeroom,
|
||||
access_tech_storage, access_minisat, access_maint_tunnels)
|
||||
access_tech_storage, access_minisat, access_maint_tunnels, access_network)
|
||||
|
||||
/datum/outfit/job/rd
|
||||
name = "Research Director"
|
||||
jobtype = /datum/job/rd
|
||||
|
||||
id = /obj/item/weapon/card/id/silver
|
||||
belt = /obj/item/device/pda/heads/rd
|
||||
@@ -38,18 +40,19 @@ Research Director
|
||||
suit = /obj/item/clothing/suit/toggle/labcoat
|
||||
l_hand = /obj/item/weapon/clipboard
|
||||
l_pocket = /obj/item/device/laser_pointer
|
||||
backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1)
|
||||
backpack_contents = list(/obj/item/weapon/melee/classic_baton/telescopic=1,/obj/item/device/modular_computer/tablet/preset/advanced=1)
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/science
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_tox
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel/tox
|
||||
|
||||
/datum/outfit/job/rd/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
..()
|
||||
/datum/outfit/job/rd/rig
|
||||
name = "Research Director (Hardsuit)"
|
||||
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
announce_head(H, list("Science")) //tell underlings (science radio) they have a head
|
||||
l_hand = null
|
||||
mask = /obj/item/clothing/mask/breath
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/rd
|
||||
suit_store = /obj/item/weapon/tank/internals/oxygen
|
||||
internals_slot = slot_s_store
|
||||
|
||||
/*
|
||||
Scientist
|
||||
@@ -72,6 +75,7 @@ Scientist
|
||||
|
||||
/datum/outfit/job/scientist
|
||||
name = "Scientist"
|
||||
jobtype = /datum/job/scientist
|
||||
|
||||
belt = /obj/item/device/pda/toxins
|
||||
ears = /obj/item/device/radio/headset/headset_sci
|
||||
@@ -80,7 +84,7 @@ Scientist
|
||||
suit = /obj/item/clothing/suit/toggle/labcoat/science
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/science
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_tox
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel/tox
|
||||
|
||||
/*
|
||||
Roboticist
|
||||
@@ -103,6 +107,7 @@ Roboticist
|
||||
|
||||
/datum/outfit/job/roboticist
|
||||
name = "Roboticist"
|
||||
jobtype = /datum/job/roboticist
|
||||
|
||||
belt = /obj/item/weapon/storage/belt/utility/full
|
||||
l_pocket = /obj/item/device/pda/roboticist
|
||||
@@ -111,6 +116,6 @@ Roboticist
|
||||
suit = /obj/item/clothing/suit/toggle/labcoat
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/science
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_tox
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel/tox
|
||||
|
||||
pda_slot = slot_l_store
|
||||
|
||||
@@ -12,6 +12,7 @@ Head of Security
|
||||
flag = HOS
|
||||
department_head = list("Captain")
|
||||
department_flag = ENGSEC
|
||||
head_announce = list("Security")
|
||||
faction = "Station"
|
||||
total_positions = 1
|
||||
spawn_positions = 1
|
||||
@@ -33,6 +34,7 @@ Head of Security
|
||||
|
||||
/datum/outfit/job/hos
|
||||
name = "Head of Security"
|
||||
jobtype = /datum/job/hos
|
||||
|
||||
id = /obj/item/weapon/card/id/silver
|
||||
belt = /obj/item/device/pda/heads/hos
|
||||
@@ -43,28 +45,18 @@ Head of Security
|
||||
gloves = /obj/item/clothing/gloves/color/black/hos
|
||||
head = /obj/item/clothing/head/HoS/beret
|
||||
glasses = /obj/item/clothing/glasses/hud/security/sunglasses
|
||||
suit_store = /obj/item/weapon/gun/energy/gun
|
||||
suit_store = /obj/item/weapon/gun/energy/e_gun
|
||||
r_pocket = /obj/item/device/assembly/flash/handheld
|
||||
l_pocket = /obj/item/weapon/restraints/handcuffs
|
||||
backpack_contents = list(/obj/item/weapon/melee/baton/loaded=1)
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/security
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_sec
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel/sec
|
||||
dufflebag = /obj/item/weapon/storage/backpack/dufflebag/sec
|
||||
box = /obj/item/weapon/storage/box/security
|
||||
|
||||
/datum/outfit/job/hos/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
..()
|
||||
implants = list(/obj/item/weapon/implant/mindshield)
|
||||
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/weapon/implant/mindshield/L = new/obj/item/weapon/implant/mindshield(H)
|
||||
L.imp_in = H
|
||||
L.implanted = 1
|
||||
H.sec_hud_set_implants()
|
||||
|
||||
announce_head(H, list("Security")) //tell underlings (security radio) they have a head
|
||||
/*
|
||||
Warden
|
||||
*/
|
||||
@@ -92,6 +84,7 @@ Warden
|
||||
|
||||
/datum/outfit/job/warden
|
||||
name = "Warden"
|
||||
jobtype = /datum/job/warden
|
||||
|
||||
belt = /obj/item/device/pda/warden
|
||||
ears = /obj/item/device/radio/headset/headset_sec/alt
|
||||
@@ -103,25 +96,16 @@ Warden
|
||||
glasses = /obj/item/clothing/glasses/hud/security/sunglasses
|
||||
r_pocket = /obj/item/device/assembly/flash/handheld
|
||||
l_pocket = /obj/item/weapon/restraints/handcuffs
|
||||
suit_store = /obj/item/weapon/gun/energy/gun/advtaser
|
||||
suit_store = /obj/item/weapon/gun/energy/e_gun/advtaser
|
||||
backpack_contents = list(/obj/item/weapon/melee/baton/loaded=1)
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/security
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_sec
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel/sec
|
||||
dufflebag = /obj/item/weapon/storage/backpack/dufflebag/sec
|
||||
box = /obj/item/weapon/storage/box/security
|
||||
|
||||
implants = list(/obj/item/weapon/implant/mindshield)
|
||||
|
||||
/datum/outfit/job/warden/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
..()
|
||||
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/weapon/implant/mindshield/L = new/obj/item/weapon/implant/mindshield(H)
|
||||
L.imp_in = H
|
||||
L.implanted = 1
|
||||
H.sec_hud_set_implants()
|
||||
|
||||
/*
|
||||
Detective
|
||||
@@ -145,6 +129,7 @@ Detective
|
||||
|
||||
/datum/outfit/job/detective
|
||||
name = "Detective"
|
||||
jobtype = /datum/job/detective
|
||||
|
||||
belt = /obj/item/device/pda/detective
|
||||
ears = /obj/item/device/radio/headset/headset_sec/alt
|
||||
@@ -157,10 +142,11 @@ Detective
|
||||
r_pocket = /obj/item/weapon/lighter
|
||||
backpack_contents = list(/obj/item/weapon/storage/box/evidence=1,\
|
||||
/obj/item/device/detective_scanner=1,\
|
||||
/obj/item/weapon/melee/classic_baton=1,\
|
||||
/obj/item/weapon/reagent_containers/food/drinks/flask/det)
|
||||
/obj/item/weapon/melee/classic_baton=1)
|
||||
mask = /obj/item/clothing/mask/cigarette
|
||||
|
||||
implants = list(/obj/item/weapon/implant/mindshield)
|
||||
|
||||
/datum/outfit/job/detective/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
..()
|
||||
var/obj/item/clothing/mask/cigarette/cig = H.wear_mask
|
||||
@@ -169,11 +155,6 @@ Detective
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/weapon/implant/mindshield/L = new/obj/item/weapon/implant/mindshield(H)
|
||||
L.imp_in = H
|
||||
L.implanted = 1
|
||||
H.sec_hud_set_implants()
|
||||
|
||||
/*
|
||||
Security Officer
|
||||
*/
|
||||
@@ -194,86 +175,63 @@ Security Officer
|
||||
access = list(access_security, access_sec_doors, access_brig, access_court, access_maint_tunnels, access_morgue, access_weapons, access_forensics_lockers)
|
||||
minimal_access = list(access_security, access_sec_doors, access_brig, access_court, access_weapons) //But see /datum/job/warden/get_access()
|
||||
|
||||
|
||||
/datum/job/officer/get_access()
|
||||
var/list/L = list()
|
||||
L |= ..() | check_config_for_sec_maint()
|
||||
return L
|
||||
|
||||
var/list/sec_departments = list("engineering", "supply", "medical", "science")
|
||||
var/list/available_depts = list(SEC_DEPT_ENGINEERING, SEC_DEPT_MEDICAL, SEC_DEPT_SCIENCE, SEC_DEPT_SUPPLY)
|
||||
|
||||
/datum/outfit/job/security
|
||||
name = "Security Officer"
|
||||
|
||||
belt = /obj/item/device/pda/security
|
||||
ears = /obj/item/device/radio/headset/headset_sec/alt
|
||||
uniform = /obj/item/clothing/under/rank/security
|
||||
gloves = /obj/item/clothing/gloves/color/black
|
||||
head = /obj/item/clothing/head/helmet/sec
|
||||
suit = /obj/item/clothing/suit/armor/vest/alt
|
||||
shoes = /obj/item/clothing/shoes/jackboots
|
||||
l_pocket = /obj/item/weapon/restraints/handcuffs
|
||||
r_pocket = /obj/item/device/assembly/flash/handheld
|
||||
suit_store = /obj/item/weapon/gun/energy/gun/advtaser
|
||||
backpack_contents = list(/obj/item/weapon/melee/baton/loaded=1)
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/security
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel_sec
|
||||
dufflebag = /obj/item/weapon/storage/backpack/dufflebag/sec
|
||||
box = /obj/item/weapon/storage/box/security
|
||||
|
||||
var/department = null
|
||||
/datum/job/officer/after_spawn(mob/living/carbon/human/H)
|
||||
// Assign department security
|
||||
var/department
|
||||
if(H && H.client && H.client.prefs)
|
||||
department = H.client.prefs.prefered_security_department
|
||||
if(!LAZYLEN(available_depts) || department == "None")
|
||||
return
|
||||
else if(department in available_depts)
|
||||
LAZYREMOVE(available_depts, department)
|
||||
else
|
||||
department = pick_n_take(available_depts)
|
||||
var/ears = null
|
||||
var/tie = null
|
||||
var/list/dep_access = null
|
||||
var/destination = null
|
||||
var/spawn_point = null
|
||||
switch(department)
|
||||
if(SEC_DEPT_SUPPLY)
|
||||
ears = /obj/item/device/radio/headset/headset_sec/alt/department/supply
|
||||
dep_access = list(access_mailsorting, access_mining, access_mining_station)
|
||||
destination = /area/security/checkpoint/supply
|
||||
spawn_point = locate(/obj/effect/landmark/start/depsec/supply) in department_security_spawns
|
||||
tie = /obj/item/clothing/tie/armband/cargo
|
||||
if(SEC_DEPT_ENGINEERING)
|
||||
ears = /obj/item/device/radio/headset/headset_sec/alt/department/engi
|
||||
dep_access = list(access_construction, access_engine)
|
||||
destination = /area/security/checkpoint/engineering
|
||||
spawn_point = locate(/obj/effect/landmark/start/depsec/engineering) in department_security_spawns
|
||||
tie = /obj/item/clothing/tie/armband/engine
|
||||
if(SEC_DEPT_MEDICAL)
|
||||
ears = /obj/item/device/radio/headset/headset_sec/alt/department/med
|
||||
dep_access = list(access_medical)
|
||||
destination = /area/security/checkpoint/medical
|
||||
spawn_point = locate(/obj/effect/landmark/start/depsec/medical) in department_security_spawns
|
||||
tie = /obj/item/clothing/tie/armband/medblue
|
||||
if(SEC_DEPT_SCIENCE)
|
||||
ears = /obj/item/device/radio/headset/headset_sec/alt/department/sci
|
||||
dep_access = list(access_research)
|
||||
destination = /area/security/checkpoint/science
|
||||
spawn_point = locate(/obj/effect/landmark/start/depsec/science) in department_security_spawns
|
||||
tie = /obj/item/clothing/tie/armband/science
|
||||
|
||||
/datum/outfit/job/security/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
..()
|
||||
|
||||
if(sec_departments.len)
|
||||
department = pick(sec_departments)
|
||||
if(!visualsOnly)
|
||||
sec_departments -= department
|
||||
switch(department)
|
||||
if("supply")
|
||||
ears = /obj/item/device/radio/headset/headset_sec/alt/department/supply
|
||||
dep_access = list(access_mailsorting, access_mining, access_mining_station)
|
||||
destination = /area/security/checkpoint/supply
|
||||
spawn_point = locate(/obj/effect/landmark/start/depsec/supply) in department_security_spawns
|
||||
tie = /obj/item/clothing/tie/armband/cargo
|
||||
if("engineering")
|
||||
ears = /obj/item/device/radio/headset/headset_sec/alt/department/engi
|
||||
dep_access = list(access_construction, access_engine)
|
||||
destination = /area/security/checkpoint/engineering
|
||||
spawn_point = locate(/obj/effect/landmark/start/depsec/engineering) in department_security_spawns
|
||||
tie = /obj/item/clothing/tie/armband/engine
|
||||
if("medical")
|
||||
ears = /obj/item/device/radio/headset/headset_sec/alt/department/med
|
||||
dep_access = list(access_medical)
|
||||
destination = /area/security/checkpoint/medical
|
||||
spawn_point = locate(/obj/effect/landmark/start/depsec/medical) in department_security_spawns
|
||||
tie = /obj/item/clothing/tie/armband/medblue
|
||||
if("science")
|
||||
ears = /obj/item/device/radio/headset/headset_sec/alt/department/sci
|
||||
dep_access = list(access_research)
|
||||
destination = /area/security/checkpoint/science
|
||||
spawn_point = locate(/obj/effect/landmark/start/depsec/science) in department_security_spawns
|
||||
tie = /obj/item/clothing/tie/armband/science
|
||||
|
||||
/datum/outfit/job/security/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
..()
|
||||
|
||||
var/obj/item/clothing/under/U = H.w_uniform
|
||||
if(tie)
|
||||
var/obj/item/clothing/under/U = H.w_uniform
|
||||
U.attachTie(new tie)
|
||||
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/weapon/implant/mindshield/L = new/obj/item/weapon/implant/mindshield(H)
|
||||
L.imp_in = H
|
||||
L.implanted = 1
|
||||
H.sec_hud_set_implants()
|
||||
if(ears)
|
||||
if(H.ears)
|
||||
qdel(H.ears)
|
||||
H.equip_to_slot_or_del(new ears(H),slot_ears)
|
||||
|
||||
var/obj/item/weapon/card/id/W = H.wear_id
|
||||
W.access |= dep_access
|
||||
@@ -301,12 +259,37 @@ var/list/sec_departments = list("engineering", "supply", "medical", "science")
|
||||
else
|
||||
H << "<b>You have not been assigned to any department. Patrol the halls and help where needed.</b>"
|
||||
|
||||
/obj/item/device/radio/headset/headset_sec/department/New()
|
||||
wires = new(src)
|
||||
secure_radio_connections = new
|
||||
|
||||
initialize()
|
||||
|
||||
/datum/outfit/job/security
|
||||
name = "Security Officer"
|
||||
jobtype = /datum/job/officer
|
||||
|
||||
belt = /obj/item/device/pda/security
|
||||
ears = /obj/item/device/radio/headset/headset_sec/alt
|
||||
uniform = /obj/item/clothing/under/rank/security
|
||||
gloves = /obj/item/clothing/gloves/color/black
|
||||
head = /obj/item/clothing/head/helmet/sec
|
||||
suit = /obj/item/clothing/suit/armor/vest/alt
|
||||
shoes = /obj/item/clothing/shoes/jackboots
|
||||
l_pocket = /obj/item/weapon/restraints/handcuffs
|
||||
r_pocket = /obj/item/device/assembly/flash/handheld
|
||||
suit_store = /obj/item/weapon/gun/energy/e_gun/advtaser
|
||||
backpack_contents = list(/obj/item/weapon/melee/baton/loaded=1)
|
||||
|
||||
backpack = /obj/item/weapon/storage/backpack/security
|
||||
satchel = /obj/item/weapon/storage/backpack/satchel/sec
|
||||
dufflebag = /obj/item/weapon/storage/backpack/dufflebag/sec
|
||||
box = /obj/item/weapon/storage/box/security
|
||||
|
||||
implants = list(/obj/item/weapon/implant/mindshield)
|
||||
|
||||
|
||||
/obj/item/device/radio/headset/headset_sec/alt/department/Initialize()
|
||||
wires = new/datum/wires/radio(src)
|
||||
secure_radio_connections = new
|
||||
recalculateChannels()
|
||||
..()
|
||||
|
||||
/obj/item/device/radio/headset/headset_sec/alt/department/engi
|
||||
keyslot = new /obj/item/device/encryptionkey/headset_sec
|
||||
|
||||
@@ -136,4 +136,37 @@ var/list/nonhuman_positions = list(
|
||||
|
||||
for(var/datum/job/J in SSjob.occupations)
|
||||
if(J.title == job_title)
|
||||
return J.department_head //this is a list
|
||||
return J.department_head //this is a list
|
||||
|
||||
var/static/regex/cap_expand = new("cap(?!tain)")
|
||||
var/static/regex/cmo_expand = new("cmo")
|
||||
var/static/regex/hos_expand = new("hos")
|
||||
var/static/regex/hop_expand = new("hop")
|
||||
var/static/regex/rd_expand = new("rd")
|
||||
var/static/regex/ce_expand = new("ce")
|
||||
var/static/regex/qm_expand = new("qm")
|
||||
var/static/regex/sec_expand = new("(?<!security )officer")
|
||||
var/static/regex/engi_expand = new("(?<!station )engineer")
|
||||
var/static/regex/atmos_expand = new("atmos tech")
|
||||
var/static/regex/doc_expand = new("(?<!medical )doctor|medic(?!al)")
|
||||
var/static/regex/mine_expand = new("(?<!shaft )miner")
|
||||
var/static/regex/chef_expand = new("chef")
|
||||
var/static/regex/borg_expand = new("(?<!cy)borg")
|
||||
|
||||
/proc/get_full_job_name(job)
|
||||
job = lowertext(job)
|
||||
job = cap_expand.Replace(job, "captain")
|
||||
job = cmo_expand.Replace(job, "chief medical officer")
|
||||
job = hos_expand.Replace(job, "head of security")
|
||||
job = hop_expand.Replace(job, "head of personnel")
|
||||
job = rd_expand.Replace(job, "research director")
|
||||
job = ce_expand.Replace(job, "chief engineer")
|
||||
job = qm_expand.Replace(job, "quartermaster")
|
||||
job = sec_expand.Replace(job, "security officer")
|
||||
job = engi_expand.Replace(job, "station engineer")
|
||||
job = atmos_expand.Replace(job, "atmospheric technician")
|
||||
job = doc_expand.Replace(job, "medical doctor")
|
||||
job = mine_expand.Replace(job, "shaft miner")
|
||||
job = chef_expand.Replace(job, "cook")
|
||||
job = borg_expand.Replace(job, "cyborg")
|
||||
return job
|
||||
@@ -1,15 +0,0 @@
|
||||
#define WHITELISTFILE "data/whitelist.txt"
|
||||
|
||||
var/list/whitelist
|
||||
|
||||
/proc/load_whitelist()
|
||||
whitelist = file2list(WHITELISTFILE)
|
||||
if(!whitelist.len)
|
||||
whitelist = null
|
||||
|
||||
/proc/check_whitelist(mob/M /*, var/rank*/)
|
||||
if(!whitelist)
|
||||
return 0
|
||||
return ("[M.ckey]" in whitelist)
|
||||
|
||||
#undef WHITELISTFILE
|
||||
Reference in New Issue
Block a user