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:
@@ -1,3 +1,5 @@
|
||||
#define EMP_RANDOMISE_TIME 300
|
||||
|
||||
/datum/action/item_action/chameleon/drone/randomise
|
||||
name = "Randomise Headgear"
|
||||
button_icon_state = "random"
|
||||
@@ -57,7 +59,7 @@
|
||||
if(new_headgear)
|
||||
// Force drop the item in the headslot, even though
|
||||
// it's NODROP
|
||||
D.unEquip(target, 1)
|
||||
D.dropItemToGround(target, TRUE)
|
||||
qdel(old_headgear)
|
||||
// where is `slot_head` defined? WHO KNOWS
|
||||
D.equip_to_slot(new_headgear, slot_head)
|
||||
@@ -66,18 +68,25 @@
|
||||
|
||||
/datum/action/item_action/chameleon/change
|
||||
name = "Chameleon Change"
|
||||
var/list/chameleon_blacklist = list()
|
||||
var/list/chameleon_blacklist = list() //This is a typecache
|
||||
var/list/chameleon_list = list()
|
||||
var/chameleon_type = null
|
||||
var/chameleon_name = "Item"
|
||||
|
||||
var/emp_timer
|
||||
|
||||
/datum/action/item_action/chameleon/change/proc/initialize_disguises()
|
||||
if(button)
|
||||
button.name = "Change [chameleon_name] Appearance"
|
||||
chameleon_blacklist += target.type
|
||||
var/list/temp_list = typesof(chameleon_type)
|
||||
for(var/V in temp_list - (chameleon_blacklist))
|
||||
chameleon_list += V
|
||||
|
||||
|
||||
chameleon_blacklist |= typecacheof(target.type)
|
||||
for(var/V in typesof(chameleon_type))
|
||||
if(ispath(V, /obj/item))
|
||||
var/obj/item/I = V
|
||||
if(chameleon_blacklist[V] || (initial(I.flags) & ABSTRACT))
|
||||
continue
|
||||
chameleon_list += I
|
||||
|
||||
/datum/action/item_action/chameleon/change/proc/select_look(mob/user)
|
||||
var/list/item_names = list()
|
||||
@@ -86,7 +95,7 @@
|
||||
var/obj/item/I = U
|
||||
item_names += initial(I.name)
|
||||
var/picked_name
|
||||
picked_name = input("Select [chameleon_name] to change it to", "Chameleon [chameleon_name]", picked_name) in item_names
|
||||
picked_name = input("Select [chameleon_name] to change into", "Chameleon [chameleon_name]", picked_name) in item_names
|
||||
if(!picked_name)
|
||||
return
|
||||
for(var/V in chameleon_list)
|
||||
@@ -119,8 +128,7 @@
|
||||
return
|
||||
|
||||
update_item(picked_item)
|
||||
|
||||
C.regenerate_icons() //so our overlays update.
|
||||
update_item_icon()
|
||||
UpdateButtonIcon()
|
||||
|
||||
/datum/action/item_action/chameleon/change/proc/update_item(obj/item/picked_item)
|
||||
@@ -144,6 +152,48 @@
|
||||
select_look(owner)
|
||||
return 1
|
||||
|
||||
/datum/action/item_action/chameleon/change/proc/emp_randomise()
|
||||
START_PROCESSING(SSprocessing, src)
|
||||
random_look(owner)
|
||||
|
||||
emp_timer = world.time + EMP_RANDOMISE_TIME
|
||||
|
||||
/datum/action/item_action/chameleon/change/process()
|
||||
if(world.time > emp_timer)
|
||||
STOP_PROCESSING(SSprocessing, src)
|
||||
return
|
||||
random_look(owner)
|
||||
|
||||
/datum/action/item_action/chameleon/change/proc/update_item_icon()
|
||||
var/obj/item/I = target
|
||||
var/mob/living/M = owner
|
||||
|
||||
var/flags = I.slot_flags
|
||||
if(flags & SLOT_OCLOTHING)
|
||||
M.update_inv_wear_suit()
|
||||
if(flags & SLOT_ICLOTHING)
|
||||
M.update_inv_w_uniform()
|
||||
if(flags & SLOT_GLOVES)
|
||||
M.update_inv_gloves()
|
||||
if(flags & SLOT_EYES)
|
||||
M.update_inv_glasses()
|
||||
if(flags & SLOT_EARS)
|
||||
M.update_inv_ears()
|
||||
if(flags & SLOT_MASK)
|
||||
M.update_inv_wear_mask()
|
||||
if(flags & SLOT_HEAD)
|
||||
M.update_inv_head()
|
||||
if(flags & SLOT_FEET)
|
||||
M.update_inv_shoes()
|
||||
if(flags & SLOT_ID)
|
||||
M.update_inv_wear_id()
|
||||
if(flags & SLOT_BELT)
|
||||
M.update_inv_belt()
|
||||
if(flags & SLOT_BACK)
|
||||
M.update_inv_back()
|
||||
if(flags & SLOT_NECK)
|
||||
M.update_inv_neck()
|
||||
|
||||
/obj/item/clothing/under/chameleon
|
||||
//starts off as black
|
||||
name = "black jumpsuit"
|
||||
@@ -154,16 +204,22 @@
|
||||
origin_tech = "syndicate=2"
|
||||
sensor_mode = 0 //Hey who's this guy on the Syndicate Shuttle??
|
||||
random_sensor = 0
|
||||
burn_state = FIRE_PROOF
|
||||
armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
resistance_flags = 0
|
||||
armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50)
|
||||
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action
|
||||
|
||||
/obj/item/clothing/under/chameleon/New()
|
||||
..()
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
|
||||
chameleon_action = new(src)
|
||||
chameleon_action.chameleon_type = /obj/item/clothing/under
|
||||
chameleon_action.chameleon_name = "Jumpsuit"
|
||||
chameleon_action.chameleon_blacklist = typecacheof(list(/obj/item/clothing/under, /obj/item/clothing/under/color, /obj/item/clothing/under/rank, /obj/item/clothing/under/changeling), only_root_path = TRUE)
|
||||
chameleon_action.initialize_disguises()
|
||||
|
||||
/obj/item/clothing/under/chameleon/emp_act(severity)
|
||||
chameleon_action.emp_randomise()
|
||||
|
||||
/obj/item/clothing/suit/chameleon
|
||||
name = "armor"
|
||||
desc = "A slim armored vest that protects against most types of damage."
|
||||
@@ -171,71 +227,93 @@
|
||||
item_state = "armor"
|
||||
blood_overlay_type = "armor"
|
||||
origin_tech = "syndicate=2"
|
||||
burn_state = FIRE_PROOF
|
||||
armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
resistance_flags = 0
|
||||
armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50)
|
||||
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action
|
||||
|
||||
/obj/item/clothing/suit/chameleon/New()
|
||||
..()
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
|
||||
chameleon_action = new(src)
|
||||
chameleon_action.chameleon_type = /obj/item/clothing/suit
|
||||
chameleon_action.chameleon_name = "Suit"
|
||||
chameleon_action.chameleon_blacklist = typecacheof(list(/obj/item/clothing/suit/armor/abductor, /obj/item/clothing/suit/changeling), only_root_path = TRUE)
|
||||
chameleon_action.initialize_disguises()
|
||||
|
||||
/obj/item/clothing/suit/chameleon/emp_act(severity)
|
||||
chameleon_action.emp_randomise()
|
||||
|
||||
/obj/item/clothing/glasses/chameleon
|
||||
name = "Optical Meson Scanner"
|
||||
desc = "Used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting condition."
|
||||
icon_state = "meson"
|
||||
item_state = "meson"
|
||||
origin_tech = "syndicate=2"
|
||||
burn_state = FIRE_PROOF
|
||||
armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
resistance_flags = 0
|
||||
armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50)
|
||||
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action
|
||||
|
||||
/obj/item/clothing/glasses/chameleon/New()
|
||||
..()
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
|
||||
chameleon_action = new(src)
|
||||
chameleon_action.chameleon_type = /obj/item/clothing/glasses
|
||||
chameleon_action.chameleon_name = "Glasses"
|
||||
chameleon_action.chameleon_blacklist = typecacheof(/obj/item/clothing/glasses/changeling, only_root_path = TRUE)
|
||||
chameleon_action.initialize_disguises()
|
||||
|
||||
/obj/item/clothing/glasses/chameleon/emp_act(severity)
|
||||
chameleon_action.emp_randomise()
|
||||
|
||||
/obj/item/clothing/gloves/chameleon
|
||||
desc = "These gloves will protect the wearer from electric shock."
|
||||
name = "insulated gloves"
|
||||
icon_state = "yellow"
|
||||
item_state = "ygloves"
|
||||
|
||||
burn_state = FIRE_PROOF
|
||||
armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
resistance_flags = 0
|
||||
armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50)
|
||||
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action
|
||||
|
||||
/obj/item/clothing/gloves/chameleon/New()
|
||||
..()
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
|
||||
chameleon_action = new(src)
|
||||
chameleon_action.chameleon_type = /obj/item/clothing/gloves
|
||||
chameleon_action.chameleon_name = "Gloves"
|
||||
chameleon_action.chameleon_blacklist = typecacheof(list(/obj/item/clothing/gloves, /obj/item/clothing/gloves/color, /obj/item/clothing/gloves/changeling), only_root_path = TRUE)
|
||||
chameleon_action.initialize_disguises()
|
||||
|
||||
/obj/item/clothing/gloves/chameleon/emp_act(severity)
|
||||
chameleon_action.emp_randomise()
|
||||
|
||||
/obj/item/clothing/head/chameleon
|
||||
name = "grey cap"
|
||||
desc = "It's a baseball hat in a tasteful grey colour."
|
||||
icon_state = "greysoft"
|
||||
item_color = "grey"
|
||||
|
||||
burn_state = FIRE_PROOF
|
||||
armor = list(melee = 5, bullet = 5, laser = 5, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
resistance_flags = 0
|
||||
armor = list(melee = 5, bullet = 5, laser = 5, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50)
|
||||
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action = null
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action
|
||||
|
||||
/obj/item/clothing/head/chameleon/New()
|
||||
..()
|
||||
chameleon_action = new(src)
|
||||
chameleon_action.chameleon_type = /obj/item/clothing/head
|
||||
chameleon_action.chameleon_name = "Hat"
|
||||
chameleon_action.chameleon_blacklist = typecacheof(/obj/item/clothing/head/changeling, only_root_path = TRUE)
|
||||
chameleon_action.initialize_disguises()
|
||||
|
||||
/obj/item/clothing/head/chameleon/emp_act(severity)
|
||||
chameleon_action.emp_randomise()
|
||||
|
||||
/obj/item/clothing/head/chameleon/drone
|
||||
// The camohat, I mean, holographic hat projection, is part of the
|
||||
// drone itself.
|
||||
flags = NODROP
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
|
||||
// which means it offers no protection, it's just air and light
|
||||
|
||||
/obj/item/clothing/head/chameleon/drone/New()
|
||||
@@ -251,8 +329,8 @@
|
||||
desc = "A face-covering mask that can be connected to an air supply. While good for concealing your identity, it isn't good for blocking gas flow." //More accurate
|
||||
icon_state = "gas_alt"
|
||||
item_state = "gas_alt"
|
||||
burn_state = FIRE_PROOF
|
||||
armor = list(melee = 5, bullet = 5, laser = 5, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
resistance_flags = 0
|
||||
armor = list(melee = 5, bullet = 5, laser = 5, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50)
|
||||
|
||||
flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
|
||||
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR
|
||||
@@ -262,15 +340,19 @@
|
||||
|
||||
var/vchange = 1
|
||||
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action = null
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action
|
||||
|
||||
/obj/item/clothing/mask/chameleon/New()
|
||||
..()
|
||||
chameleon_action = new(src)
|
||||
chameleon_action.chameleon_type = /obj/item/clothing/mask
|
||||
chameleon_action.chameleon_name = "Mask"
|
||||
chameleon_action.chameleon_blacklist = typecacheof(/obj/item/clothing/mask/changeling, only_root_path = TRUE)
|
||||
chameleon_action.initialize_disguises()
|
||||
|
||||
/obj/item/clothing/mask/chameleon/emp_act(severity)
|
||||
chameleon_action.emp_randomise()
|
||||
|
||||
/obj/item/clothing/mask/chameleon/attack_self(mob/user)
|
||||
vchange = !vchange
|
||||
user << "<span class='notice'>The voice changer is now [vchange ? "on" : "off"]!</span>"
|
||||
@@ -279,7 +361,7 @@
|
||||
/obj/item/clothing/mask/chameleon/drone
|
||||
//Same as the drone chameleon hat, undroppable and no protection
|
||||
flags = NODROP
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
|
||||
// Can drones use the voice changer part? Let's not find out.
|
||||
vchange = 0
|
||||
|
||||
@@ -291,7 +373,7 @@
|
||||
var/datum/action/item_action/chameleon/drone/randomise/randomise_action = new(src)
|
||||
randomise_action.UpdateButtonIcon()
|
||||
|
||||
/obj/item/clothing/mask/chameleon/attack_self(mob/user)
|
||||
/obj/item/clothing/mask/chameleon/drone/attack_self(mob/user)
|
||||
user << "<span class='notice'>The [src] does not have a voice changer.</span>"
|
||||
|
||||
/obj/item/clothing/shoes/chameleon
|
||||
@@ -302,17 +384,23 @@
|
||||
permeability_coefficient = 0.05
|
||||
flags = NOSLIP
|
||||
origin_tech = "syndicate=2"
|
||||
burn_state = FIRE_PROOF
|
||||
can_hold_items = 1
|
||||
armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
resistance_flags = 0
|
||||
pockets = /obj/item/weapon/storage/internal/pocket/shoes
|
||||
armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50)
|
||||
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action
|
||||
|
||||
/obj/item/clothing/shoes/chameleon/New()
|
||||
..()
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
|
||||
chameleon_action = new(src)
|
||||
chameleon_action.chameleon_type = /obj/item/clothing/shoes
|
||||
chameleon_action.chameleon_name = "Shoes"
|
||||
chameleon_action.chameleon_blacklist = typecacheof(/obj/item/clothing/shoes/changeling, only_root_path = TRUE)
|
||||
chameleon_action.initialize_disguises()
|
||||
|
||||
/obj/item/clothing/shoes/chameleon/emp_act(severity)
|
||||
chameleon_action.emp_randomise()
|
||||
|
||||
/obj/item/weapon/gun/energy/laser/chameleon
|
||||
name = "practice laser gun"
|
||||
desc = "A modified version of the basic laser gun, this one fires less concentrated energy bolts designed for target practice."
|
||||
@@ -322,41 +410,59 @@
|
||||
pin = /obj/item/device/firing_pin
|
||||
cell_type = /obj/item/weapon/stock_parts/cell/bluespace
|
||||
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action
|
||||
|
||||
/obj/item/weapon/gun/energy/laser/chameleon/New()
|
||||
..()
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
|
||||
chameleon_action = new(src)
|
||||
chameleon_action.chameleon_type = /obj/item/weapon/gun
|
||||
chameleon_action.chameleon_name = "Gun"
|
||||
chameleon_action.chameleon_blacklist = typesof(/obj/item/weapon/gun/magic)
|
||||
chameleon_action.chameleon_blacklist = typecacheof(/obj/item/weapon/gun/magic, ignore_root_path = FALSE)
|
||||
chameleon_action.initialize_disguises()
|
||||
|
||||
/obj/item/weapon/gun/energy/laser/chameleon/emp_act(severity)
|
||||
chameleon_action.emp_randomise()
|
||||
|
||||
/obj/item/weapon/storage/backpack/chameleon
|
||||
name = "chameleon backpack"
|
||||
name = "backpack"
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action
|
||||
|
||||
/obj/item/weapon/storage/backpack/chameleon/New()
|
||||
..()
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
|
||||
chameleon_action = new(src)
|
||||
chameleon_action.chameleon_type = /obj/item/weapon/storage/backpack
|
||||
chameleon_action.chameleon_name = "Backpack"
|
||||
chameleon_action.initialize_disguises()
|
||||
|
||||
/obj/item/weapon/storage/backpack/chameleon/emp_act(severity)
|
||||
chameleon_action.emp_randomise()
|
||||
|
||||
/obj/item/device/radio/headset/chameleon
|
||||
name = "chameleon headset"
|
||||
name = "radio headset"
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action
|
||||
|
||||
/obj/item/device/radio/headset/chameleon/New()
|
||||
..()
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
|
||||
chameleon_action = new(src)
|
||||
chameleon_action.chameleon_type = /obj/item/device/radio/headset
|
||||
chameleon_action.chameleon_name = "Headset"
|
||||
chameleon_action.initialize_disguises()
|
||||
|
||||
/obj/item/device/radio/headset/chameleon/emp_act(severity)
|
||||
chameleon_action.emp_randomise()
|
||||
|
||||
/obj/item/device/pda/chameleon
|
||||
name = "chameleon PDA"
|
||||
name = "PDA"
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action
|
||||
|
||||
/obj/item/device/pda/chameleon/New()
|
||||
..()
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
|
||||
chameleon_action = new(src)
|
||||
chameleon_action.chameleon_type = /obj/item/device/pda
|
||||
chameleon_action.chameleon_name = "PDA"
|
||||
chameleon_action.chameleon_blacklist = list(/obj/item/device/pda/ai)
|
||||
chameleon_action.chameleon_blacklist = typecacheof(list(/obj/item/device/pda/heads, /obj/item/device/pda/ai, /obj/item/device/pda/ai/pai), only_root_path = TRUE)
|
||||
chameleon_action.initialize_disguises()
|
||||
|
||||
/obj/item/device/pda/chameleon/emp_act(severity)
|
||||
chameleon_action.emp_randomise()
|
||||
|
||||
|
||||
+317
-128
@@ -1,12 +1,18 @@
|
||||
/obj/item/clothing
|
||||
name = "clothing"
|
||||
burn_state = FLAMMABLE
|
||||
var/flash_protect = 0 //Malk: What level of bright light protection item has. 1 = Flashers, Flashes, & Flashbangs | 2 = Welding | -1 = OH GOD WELDING BURNT OUT MY RETINAS
|
||||
var/tint = 0 //Malk: Sets the item's level of visual impairment tint, normally set to the same as flash_protect
|
||||
var/up = 0 // but seperated to allow items to protect but not impair vision, like space helmets
|
||||
var/visor_flags = 0 // flags that are added/removed when an item is adjusted up/down
|
||||
var/visor_flags_inv = 0 // same as visor_flags, but for flags_inv
|
||||
var/visor_flags_cover = 0 // same as above, but for flags_cover
|
||||
resistance_flags = FLAMMABLE
|
||||
obj_integrity = 200
|
||||
max_integrity = 200
|
||||
integrity_failure = 80
|
||||
var/damaged_clothes = 0 //similar to machine's BROKEN stat and structure's broken var
|
||||
var/flash_protect = 0 //What level of bright light protection item has. 1 = Flashers, Flashes, & Flashbangs | 2 = Welding | -1 = OH GOD WELDING BURNT OUT MY RETINAS
|
||||
var/tint = 0 //Sets the item's level of visual impairment tint, normally set to the same as flash_protect
|
||||
var/up = 0 //but seperated to allow items to protect but not impair vision, like space helmets
|
||||
var/visor_flags = 0 //flags that are added/removed when an item is adjusted up/down
|
||||
var/visor_flags_inv = 0 //same as visor_flags, but for flags_inv
|
||||
var/visor_flags_cover = 0 //same as above, but for flags_cover
|
||||
//what to toggle when toggled with weldingvisortoggle()
|
||||
var/visor_vars_to_toggle = VISOR_FLASHPROTECT | VISOR_TINT | VISOR_VISIONFLAGS | VISOR_DARKNESSVIEW | VISOR_INVISVIEW
|
||||
lefthand_file = 'icons/mob/inhands/clothing_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/clothing_righthand.dmi'
|
||||
var/alt_desc = null
|
||||
@@ -24,10 +30,86 @@
|
||||
var/list/user_vars_to_edit = list() //VARNAME = VARVALUE eg: "name" = "butts"
|
||||
var/list/user_vars_remembered = list() //Auto built by the above + dropped() + equipped()
|
||||
|
||||
var/obj/item/weapon/storage/internal/pocket/pockets = null
|
||||
|
||||
/obj/item/clothing/New()
|
||||
..()
|
||||
if(ispath(pockets))
|
||||
pockets = new pockets(src)
|
||||
|
||||
/obj/item/clothing/MouseDrop(atom/over_object)
|
||||
var/mob/M = usr
|
||||
|
||||
if(pockets && over_object == M)
|
||||
return pockets.MouseDrop(over_object)
|
||||
|
||||
if(istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech
|
||||
return
|
||||
|
||||
if(!M.restrained() && !M.stat && loc == M && istype(over_object, /obj/screen/inventory/hand))
|
||||
var/obj/screen/inventory/hand/H = over_object
|
||||
if(!M.temporarilyRemoveItemFromInventory(src))
|
||||
return
|
||||
if(!M.put_in_hand(src, H.held_index))
|
||||
qdel(src)
|
||||
return
|
||||
add_fingerprint(usr)
|
||||
|
||||
/obj/item/clothing/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback)
|
||||
if(pockets)
|
||||
pockets.close_all()
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/attack_hand(mob/user)
|
||||
if(pockets && pockets.priority && ismob(loc))
|
||||
//If we already have the pockets open, close them.
|
||||
if (user.s_active == pockets)
|
||||
pockets.close(user)
|
||||
//Close whatever the user has open and show them the pockets.
|
||||
else
|
||||
if (user.s_active)
|
||||
user.s_active.close(user)
|
||||
pockets.orient2hud(user)
|
||||
pockets.show_to(user)
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/attackby(obj/item/W, mob/user, params)
|
||||
if(damaged_clothes && istype(W, /obj/item/stack/sheet/cloth))
|
||||
var/obj/item/stack/sheet/cloth/C = W
|
||||
C.use(1)
|
||||
update_clothes_damaged_state(FALSE)
|
||||
obj_integrity = max_integrity
|
||||
user << "<span class='notice'>You fix the damages on [src] with [C].</span>"
|
||||
return 1
|
||||
if(pockets)
|
||||
var/i = pockets.attackby(W, user, params)
|
||||
if(i)
|
||||
return i
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/AltClick(mob/user)
|
||||
if(pockets && pockets.quickdraw && pockets.contents.len && !user.incapacitated())
|
||||
var/obj/item/I = pockets.contents[1]
|
||||
if(!I)
|
||||
return
|
||||
pockets.remove_from_storage(I, get_turf(src))
|
||||
|
||||
if(!user.put_in_hands(I))
|
||||
user << "<span class='notice'>You fumble for [I] and it falls on the floor.</span>"
|
||||
return 1
|
||||
user.visible_message("<span class='warning'>[user] draws [I] from [src]!</span>", "<span class='notice'>You draw [I] from [src].</span>")
|
||||
return 1
|
||||
else
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/item/clothing/Destroy()
|
||||
if(isliving(loc))
|
||||
dropped(loc)
|
||||
if(pockets)
|
||||
qdel(pockets)
|
||||
pockets = null
|
||||
user_vars_remembered = null //Oh god somebody put REFERENCES in here? not to worry, we'll clean it up
|
||||
return ..()
|
||||
|
||||
@@ -52,14 +134,42 @@
|
||||
user.vars[variable] = user_vars_to_edit[variable]
|
||||
|
||||
|
||||
/obj/item/clothing/examine(mob/user)
|
||||
..()
|
||||
if(damaged_clothes)
|
||||
user << "<span class='warning'>It looks damaged!</span>"
|
||||
|
||||
/obj/item/clothing/obj_break(damage_flag)
|
||||
if(!damaged_clothes)
|
||||
update_clothes_damaged_state(TRUE)
|
||||
|
||||
var/list/damaged_clothes_icons = list()
|
||||
|
||||
/obj/item/clothing/proc/update_clothes_damaged_state(damaging = TRUE)
|
||||
var/index = "\ref[initial(icon)]-[initial(icon_state)]"
|
||||
if(damaging)
|
||||
damaged_clothes = 1
|
||||
var/icon/damaged_clothes_icon = damaged_clothes_icons[index]
|
||||
if(!damaged_clothes_icon)
|
||||
damaged_clothes_icon = icon(initial(icon), initial(icon_state), , 1) //we only want to apply damaged effect to the initial icon_state for each object
|
||||
damaged_clothes_icon.Blend("#fff", ICON_ADD) //fills the icon_state with white (except where it's transparent)
|
||||
damaged_clothes_icon.Blend(icon('icons/effects/item_damage.dmi', "itemdamaged"), ICON_MULTIPLY) //adds damage effect and the remaining white areas become transparant
|
||||
damaged_clothes_icon = fcopy_rsc(damaged_clothes_icon)
|
||||
damaged_clothes_icons[index] = damaged_clothes_icon
|
||||
add_overlay(damaged_clothes_icon, 1)
|
||||
else
|
||||
damaged_clothes = 0
|
||||
overlays -= damaged_clothes_icons[index]
|
||||
priority_overlays -= damaged_clothes_icons[index]
|
||||
|
||||
|
||||
//Ears: currently only used for headsets and earmuffs
|
||||
/obj/item/clothing/ears
|
||||
name = "ears"
|
||||
w_class = 1
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
throwforce = 0
|
||||
slot_flags = SLOT_EARS
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/clothing/ears/earmuffs
|
||||
name = "earmuffs"
|
||||
@@ -69,13 +179,13 @@
|
||||
flags = EARBANGPROTECT
|
||||
strip_delay = 15
|
||||
put_on_delay = 25
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = FLAMMABLE
|
||||
|
||||
//Glasses
|
||||
/obj/item/clothing/glasses
|
||||
name = "glasses"
|
||||
icon = 'icons/obj/clothing/glasses.dmi'
|
||||
w_class = 2
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
flags_cover = GLASSESCOVERSEYES
|
||||
slot_flags = SLOT_EYES
|
||||
var/vision_flags = 0
|
||||
@@ -87,7 +197,7 @@
|
||||
var/vision_correction = 0 //does wearing these glasses correct some of our vision defects?
|
||||
strip_delay = 20
|
||||
put_on_delay = 25
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
/*
|
||||
SEE_SELF // can see self, no matter what
|
||||
SEE_MOBS // can see all mobs, no matter what
|
||||
@@ -103,7 +213,7 @@ BLIND // can't see anything
|
||||
/obj/item/clothing/gloves
|
||||
name = "gloves"
|
||||
gender = PLURAL //Carn: for grammarically correct text-parsing
|
||||
w_class = 2
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
icon = 'icons/obj/clothing/gloves.dmi'
|
||||
siemens_coefficient = 0.50
|
||||
body_parts_covered = HANDS
|
||||
@@ -114,12 +224,19 @@ BLIND // can't see anything
|
||||
put_on_delay = 40
|
||||
|
||||
|
||||
/obj/item/clothing/gloves/worn_overlays(var/isinhands = FALSE)
|
||||
/obj/item/clothing/gloves/worn_overlays(isinhands = FALSE)
|
||||
. = list()
|
||||
if(!isinhands)
|
||||
if(damaged_clothes)
|
||||
. += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damagedgloves")
|
||||
if(blood_DNA)
|
||||
. += image("icon"='icons/effects/blood.dmi', "icon_state"="bloodyhands")
|
||||
|
||||
/obj/item/clothing/gloves/update_clothes_damaged_state(damaging = TRUE)
|
||||
..()
|
||||
if(ismob(loc))
|
||||
var/mob/M = loc
|
||||
M.update_inv_gloves()
|
||||
|
||||
// Called just before an attack_hand(), in mob/UnarmedAttack()
|
||||
/obj/item/clothing/gloves/proc/Touch(atom/A, proximity)
|
||||
@@ -135,12 +252,40 @@ BLIND // can't see anything
|
||||
var/can_toggle = null
|
||||
|
||||
|
||||
/obj/item/clothing/head/worn_overlays(var/isinhands = FALSE)
|
||||
/obj/item/clothing/head/worn_overlays(isinhands = FALSE)
|
||||
. = list()
|
||||
if(!isinhands)
|
||||
if(damaged_clothes)
|
||||
. += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damagedhelmet")
|
||||
if(blood_DNA)
|
||||
. += image("icon"='icons/effects/blood.dmi', "icon_state"="helmetblood")
|
||||
|
||||
/obj/item/clothing/head/update_clothes_damaged_state(damaging = TRUE)
|
||||
..()
|
||||
if(ismob(loc))
|
||||
var/mob/M = loc
|
||||
M.update_inv_head()
|
||||
|
||||
|
||||
//Neck
|
||||
/obj/item/clothing/neck
|
||||
name = "necklace"
|
||||
icon = 'icons/obj/clothing/neck.dmi'
|
||||
body_parts_covered = NECK
|
||||
slot_flags = SLOT_NECK
|
||||
strip_delay = 40
|
||||
put_on_delay = 40
|
||||
|
||||
/obj/item/clothing/neck/worn_overlays(isinhands = FALSE)
|
||||
. = list()
|
||||
if(!isinhands)
|
||||
if(body_parts_covered & HEAD)
|
||||
if(damaged_clothes)
|
||||
. += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damagedmask")
|
||||
if(blood_DNA)
|
||||
. += image("icon"='icons/effects/blood.dmi', "icon_state"="maskblood")
|
||||
|
||||
|
||||
//Mask
|
||||
/obj/item/clothing/mask
|
||||
name = "mask"
|
||||
@@ -153,11 +298,21 @@ BLIND // can't see anything
|
||||
var/adjusted_flags = null
|
||||
|
||||
|
||||
/obj/item/clothing/mask/worn_overlays(var/isinhands = FALSE)
|
||||
/obj/item/clothing/mask/worn_overlays(isinhands = FALSE)
|
||||
. = list()
|
||||
if(!isinhands)
|
||||
if(blood_DNA && (body_parts_covered & HEAD))
|
||||
. += image("icon"='icons/effects/blood.dmi', "icon_state"="maskblood")
|
||||
if(body_parts_covered & HEAD)
|
||||
if(damaged_clothes)
|
||||
. += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damagedmask")
|
||||
if(blood_DNA)
|
||||
. += image("icon"='icons/effects/blood.dmi', "icon_state"="maskblood")
|
||||
|
||||
/obj/item/clothing/mask/update_clothes_damaged_state(damaging = TRUE)
|
||||
..()
|
||||
if(ismob(loc))
|
||||
var/mob/M = loc
|
||||
M.update_inv_wear_mask()
|
||||
|
||||
|
||||
//Override this to modify speech like luchador masks.
|
||||
/obj/item/clothing/mask/proc/speechModification(message)
|
||||
@@ -209,12 +364,8 @@ BLIND // can't see anything
|
||||
slowdown = SHOES_SLOWDOWN
|
||||
var/blood_state = BLOOD_STATE_NOT_BLOODY
|
||||
var/list/bloody_shoes = list(BLOOD_STATE_HUMAN = 0,BLOOD_STATE_XENO = 0, BLOOD_STATE_OIL = 0, BLOOD_STATE_NOT_BLOODY = 0)
|
||||
var/can_hold_items = 0//if set to 1, the shoe can hold knives and edaggers
|
||||
var/obj/held_item
|
||||
var/list/valid_held_items = list(/obj/item/weapon/kitchen/knife, /obj/item/weapon/pen, /obj/item/weapon/switchblade, /obj/item/weapon/scalpel, /obj/item/weapon/reagent_containers/syringe, /obj/item/weapon/dnainjector)//can hold both regular pens and energy daggers. made for your every-day tactical librarians/murderers.
|
||||
|
||||
|
||||
/obj/item/clothing/shoes/worn_overlays(var/isinhands = FALSE)
|
||||
/obj/item/clothing/shoes/worn_overlays(isinhands = FALSE)
|
||||
. = list()
|
||||
if(!isinhands)
|
||||
var/bloody = 0
|
||||
@@ -223,9 +374,16 @@ BLIND // can't see anything
|
||||
else
|
||||
bloody = bloody_shoes[BLOOD_STATE_HUMAN]
|
||||
|
||||
if(damaged_clothes)
|
||||
. += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damagedshoe")
|
||||
if(bloody)
|
||||
. += image("icon"='icons/effects/blood.dmi', "icon_state"="shoeblood")
|
||||
|
||||
/obj/item/clothing/shoes/update_clothes_damaged_state(damaging = TRUE)
|
||||
..()
|
||||
if(ismob(loc))
|
||||
var/mob/M = loc
|
||||
M.update_inv_shoes()
|
||||
|
||||
/obj/item/clothing/shoes/clean_blood()
|
||||
..()
|
||||
@@ -235,33 +393,6 @@ BLIND // can't see anything
|
||||
var/mob/M = loc
|
||||
M.update_inv_shoes()
|
||||
|
||||
/obj/item/clothing/shoes/attackby(obj/item/I, mob/user, params)
|
||||
..()
|
||||
if(!can_hold_items)
|
||||
return
|
||||
if(held_item)
|
||||
user << "<span class='notice'>There's already something in [src].</span>"
|
||||
return
|
||||
if(is_type_in_list(I, valid_held_items))//can hold both regular pens and energy daggers. made for your every-day tactical librarians/murderers.
|
||||
if(I.w_class > 2)//if the object is too big (like if it's a cleaver or an extended edagger) it wont fit
|
||||
user << "<span class='notice'>[I] is currently too big to fit into [src]. </span>"
|
||||
return
|
||||
if(!user.drop_item())
|
||||
return
|
||||
I.loc = src
|
||||
held_item = I
|
||||
user << "<span class='notice'>You discreetly slip [I] into [src]. Alt-click [src] to remove it.</span>"
|
||||
|
||||
/obj/item/clothing/shoes/AltClick(mob/user)
|
||||
if(user.incapacitated() || !held_item || !can_hold_items)
|
||||
return
|
||||
if(!user.put_in_hands(held_item))
|
||||
user << "<span class='notice'>You fumble for [held_item] and it falls on the floor.</span>"
|
||||
return 1
|
||||
held_item = null
|
||||
user.visible_message("<span class='warning'>[user] draws [held_item] from their shoes!</span>", "<span class='notice'>You draw [held_item] from [src].</span>")
|
||||
held_item = null
|
||||
|
||||
/obj/item/proc/negates_gravity()
|
||||
return 0
|
||||
|
||||
@@ -271,18 +402,26 @@ BLIND // can't see anything
|
||||
name = "suit"
|
||||
var/fire_resist = T0C+100
|
||||
allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
|
||||
slot_flags = SLOT_OCLOTHING
|
||||
var/blood_overlay_type = "suit"
|
||||
var/togglename = null
|
||||
|
||||
|
||||
/obj/item/clothing/suit/worn_overlays(var/isinhands = FALSE)
|
||||
/obj/item/clothing/suit/worn_overlays(isinhands = FALSE)
|
||||
. = list()
|
||||
if(!isinhands)
|
||||
if(damaged_clothes)
|
||||
. += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damaged[blood_overlay_type]")
|
||||
if(blood_DNA)
|
||||
. += image("icon"='icons/effects/blood.dmi', "icon_state"="[blood_overlay_type]blood")
|
||||
|
||||
/obj/item/clothing/suit/update_clothes_damaged_state(damaging = TRUE)
|
||||
..()
|
||||
if(ismob(loc))
|
||||
var/mob/M = loc
|
||||
M.update_inv_wear_suit()
|
||||
|
||||
//Spacesuit
|
||||
//Note: Everything in modules/clothing/spacesuits should have the entire suit grouped together.
|
||||
// Meaning the the suit is defined directly after the corrisponding helmet. Just like below!
|
||||
@@ -293,7 +432,7 @@ BLIND // can't see anything
|
||||
flags = STOPSPRESSUREDMAGE | THICKMATERIAL
|
||||
item_state = "spaceold"
|
||||
permeability_coefficient = 0.01
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50, fire = 80, acid = 70)
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
|
||||
cold_protection = HEAD
|
||||
min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT
|
||||
@@ -303,21 +442,21 @@ BLIND // can't see anything
|
||||
strip_delay = 50
|
||||
put_on_delay = 50
|
||||
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/clothing/suit/space
|
||||
name = "space suit"
|
||||
desc = "A suit that protects against low pressure environments. Has a big 13 on the back."
|
||||
icon_state = "spaceold"
|
||||
item_state = "s_suit"
|
||||
w_class = 4//bulky item
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
gas_transfer_coefficient = 0.01
|
||||
permeability_coefficient = 0.02
|
||||
flags = STOPSPRESSUREDMAGE | THICKMATERIAL
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals)
|
||||
slowdown = 1
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50, fire = 80, acid = 70)
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
|
||||
cold_protection = CHEST | GROIN | LEGS | FEET | ARMS | HANDS
|
||||
min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT
|
||||
@@ -325,7 +464,7 @@ BLIND // can't see anything
|
||||
max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT
|
||||
strip_delay = 80
|
||||
put_on_delay = 80
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
//Under clothing
|
||||
|
||||
@@ -335,72 +474,123 @@ BLIND // can't see anything
|
||||
body_parts_covered = CHEST|GROIN|LEGS|ARMS
|
||||
permeability_coefficient = 0.90
|
||||
slot_flags = SLOT_ICLOTHING
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
|
||||
var/fitted = FEMALE_UNIFORM_FULL // For use in alternate clothing styles for women
|
||||
var/has_sensor = 1//For the crew computer 2 = unable to change mode
|
||||
var/random_sensor = 1
|
||||
var/sensor_mode = 0 /* 1 = Report living/dead, 2 = Report detailed damages, 3 = Report location */
|
||||
var/can_adjust = 1
|
||||
var/adjusted = 0
|
||||
var/adjusted = NORMAL_STYLE
|
||||
var/alt_covers_chest = 0 // for adjusted/rolled-down jumpsuits, 0 = exposes chest and arms, 1 = exposes arms only
|
||||
var/obj/item/clothing/tie/hastie = null
|
||||
var/mutantrace_variation = NO_MUTANTRACE_VARIATION //Are there special sprites for specific situations? Don't use this unless you need to.
|
||||
|
||||
/obj/item/clothing/under/worn_overlays(var/isinhands = FALSE)
|
||||
/obj/item/clothing/under/worn_overlays(isinhands = FALSE)
|
||||
. = list()
|
||||
|
||||
if(!isinhands)
|
||||
|
||||
if(damaged_clothes)
|
||||
. += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damageduniform")
|
||||
if(blood_DNA)
|
||||
. += image("icon"='icons/effects/blood.dmi', "icon_state"="uniformblood")
|
||||
|
||||
if(hastie)
|
||||
var/tie_color = hastie.item_color
|
||||
if(!tie_color)
|
||||
tie_color = hastie.icon_state
|
||||
. += image("icon"='icons/mob/ties.dmi', "icon_state"="[tie_color]")
|
||||
var/image/tI = image("icon"='icons/mob/ties.dmi', "icon_state"="[tie_color]")
|
||||
tI.alpha = hastie.alpha
|
||||
tI.color = hastie.color
|
||||
. += tI
|
||||
|
||||
/obj/item/clothing/under/update_clothes_damaged_state(damaging = TRUE)
|
||||
..()
|
||||
if(ismob(loc))
|
||||
var/mob/M = loc
|
||||
M.update_inv_w_uniform()
|
||||
|
||||
/obj/item/clothing/under/New()
|
||||
if(random_sensor)
|
||||
//make the sensor mode favor higher levels, except coords.
|
||||
sensor_mode = pick(0, 1, 1, 2, 2, 2, 3, 3)
|
||||
adjusted = 0
|
||||
adjusted = NORMAL_STYLE
|
||||
..()
|
||||
|
||||
/obj/item/clothing/under/equipped(mob/user, slot)
|
||||
..()
|
||||
if(adjusted)
|
||||
adjusted = NORMAL_STYLE
|
||||
fitted = initial(fitted)
|
||||
if(!alt_covers_chest)
|
||||
body_parts_covered |= CHEST
|
||||
|
||||
if(mutantrace_variation && ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(DIGITIGRADE in H.dna.species.species_traits)
|
||||
adjusted = DIGITIGRADE_STYLE
|
||||
H.update_inv_w_uniform()
|
||||
|
||||
if(hastie && slot != slot_hands)
|
||||
hastie.on_uniform_equip(src, user)
|
||||
|
||||
/obj/item/clothing/under/dropped(mob/user)
|
||||
if(hastie)
|
||||
hastie.on_uniform_dropped(src, user)
|
||||
..()
|
||||
|
||||
/obj/item/clothing/under/attackby(obj/item/I, mob/user, params)
|
||||
attachTie(I, user)
|
||||
..()
|
||||
if(!attachTie(I, user))
|
||||
..()
|
||||
|
||||
/obj/item/clothing/under/proc/attachTie(obj/item/I, mob/user, notifyAttach = 1)
|
||||
if(istype(I, /obj/item/clothing/tie))
|
||||
var/obj/item/clothing/tie/T = I
|
||||
if(hastie)
|
||||
if(user)
|
||||
user << "<span class='warning'>[src] already has an accessory.</span>"
|
||||
return 0
|
||||
else
|
||||
if(user)
|
||||
if(!user.drop_item())
|
||||
return
|
||||
hastie = I
|
||||
I.loc = src
|
||||
if(user && !user.drop_item())
|
||||
return
|
||||
if(!T.attach(src, user))
|
||||
return
|
||||
|
||||
if(user && notifyAttach)
|
||||
user << "<span class='notice'>You attach [I] to [src].</span>"
|
||||
I.transform *= 0.5 //halve the size so it doesn't overpower the under
|
||||
I.pixel_x += 8
|
||||
I.pixel_y -= 8
|
||||
I.layer = FLOAT_LAYER
|
||||
add_overlay(I)
|
||||
|
||||
|
||||
if(istype(loc, /mob/living/carbon/human))
|
||||
if(ishuman(loc))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
H.update_inv_w_uniform()
|
||||
|
||||
return 1
|
||||
|
||||
/obj/item/clothing/under/proc/removetie(mob/user)
|
||||
if(!isliving(user))
|
||||
return
|
||||
if(!can_use(user))
|
||||
return
|
||||
|
||||
if(hastie)
|
||||
var/obj/item/clothing/tie/T = hastie
|
||||
hastie.detach(src, user)
|
||||
if(user.put_in_hands(T))
|
||||
user << "<span class='notice'>You detach [T] from [src].</span>"
|
||||
else
|
||||
user << "<span class='notice'>You detach [T] from [src] and it falls on the floor.</span>"
|
||||
|
||||
if(ishuman(loc))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
H.update_inv_w_uniform()
|
||||
|
||||
|
||||
/obj/item/clothing/under/examine(mob/user)
|
||||
..()
|
||||
switch(src.sensor_mode)
|
||||
if(can_adjust)
|
||||
if(adjusted == ALT_STYLE)
|
||||
user << "Alt-click on [src] to wear it normally."
|
||||
else
|
||||
user << "Alt-click on [src] to wear it casually."
|
||||
switch(sensor_mode)
|
||||
if(0)
|
||||
user << "Its sensors appear to be disabled."
|
||||
if(1)
|
||||
@@ -453,7 +643,7 @@ BLIND // can't see anything
|
||||
if(3)
|
||||
usr << "<span class='notice'>Your suit will now report your exact vital lifesigns as well as your coordinate position.</span>"
|
||||
|
||||
if(istype(loc,/mob/living/carbon/human))
|
||||
if(ishuman(loc))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
if(H.w_uniform == src)
|
||||
H.update_suit_sensors()
|
||||
@@ -461,12 +651,17 @@ BLIND // can't see anything
|
||||
..()
|
||||
|
||||
/obj/item/clothing/under/AltClick(mob/user)
|
||||
..()
|
||||
if(..())
|
||||
return 1
|
||||
|
||||
if(!user.canUseTopic(src, be_close=TRUE))
|
||||
user << "<span class='warning'>You can't do that right now!</span>"
|
||||
return
|
||||
else
|
||||
rolldown()
|
||||
if(hastie)
|
||||
removetie(user)
|
||||
else
|
||||
rolldown()
|
||||
|
||||
/obj/item/clothing/under/verb/jumpsuit_adjust()
|
||||
set name = "Adjust Jumpsuit Style"
|
||||
@@ -484,73 +679,67 @@ BLIND // can't see anything
|
||||
usr << "<span class='notice'>You adjust the suit to wear it more casually.</span>"
|
||||
else
|
||||
usr << "<span class='notice'>You adjust the suit back to normal.</span>"
|
||||
usr.update_inv_w_uniform()
|
||||
if(ishuman(usr))
|
||||
var/mob/living/carbon/human/H = usr
|
||||
H.update_inv_w_uniform()
|
||||
H.update_body()
|
||||
|
||||
/obj/item/clothing/under/proc/toggle_jumpsuit_adjust()
|
||||
if(adjusted == DIGITIGRADE_STYLE)
|
||||
return
|
||||
adjusted = !adjusted
|
||||
if(adjusted)
|
||||
if(fitted != FEMALE_UNIFORM_TOP)
|
||||
fitted = NO_FEMALE_UNIFORM
|
||||
if (alt_covers_chest) // for the special snowflake suits that don't expose the chest when adjusted
|
||||
body_parts_covered = CHEST|GROIN|LEGS
|
||||
else
|
||||
body_parts_covered = GROIN|LEGS
|
||||
if(!alt_covers_chest) // for the special snowflake suits that expose the chest when adjusted
|
||||
body_parts_covered &= ~CHEST
|
||||
else
|
||||
fitted = initial(fitted)
|
||||
body_parts_covered = CHEST|GROIN|LEGS|ARMS
|
||||
if(!alt_covers_chest)
|
||||
body_parts_covered |= CHEST
|
||||
return adjusted
|
||||
|
||||
/obj/item/clothing/under/examine(mob/user)
|
||||
..()
|
||||
if(src.adjusted)
|
||||
user << "Alt-click on [src] to wear it normally."
|
||||
else
|
||||
user << "Alt-click on [src] to wear it casually."
|
||||
/obj/item/clothing/proc/weldingvisortoggle(mob/user) //proc to toggle welding visors on helmets, masks, goggles, etc.
|
||||
if(!can_use(user))
|
||||
return FALSE
|
||||
|
||||
/obj/item/clothing/under/verb/removetie()
|
||||
set name = "Remove Accessory"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
if(!istype(usr, /mob/living))
|
||||
return
|
||||
if(!can_use(usr))
|
||||
return
|
||||
visor_toggling()
|
||||
|
||||
if(hastie)
|
||||
hastie.transform *= 2
|
||||
hastie.pixel_x -= 8
|
||||
hastie.pixel_y += 8
|
||||
hastie.layer = initial(hastie.layer)
|
||||
overlays = null
|
||||
usr.put_in_hands(hastie)
|
||||
hastie = null
|
||||
user << "<span class='notice'>You adjust \the [src] [up ? "up" : "down"].</span>"
|
||||
|
||||
if(istype(loc, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
H.update_inv_w_uniform()
|
||||
|
||||
/obj/item/clothing/proc/weldingvisortoggle() //Malk: proc to toggle welding visors on helmets, masks, goggles, etc.
|
||||
if(!can_use(usr))
|
||||
return
|
||||
|
||||
up ^= 1
|
||||
flags ^= visor_flags
|
||||
flags_inv ^= visor_flags_inv
|
||||
flags_cover ^= initial(flags_cover)
|
||||
icon_state = "[initial(icon_state)][up ? "up" : ""]"
|
||||
usr << "<span class='notice'>You adjust \the [src] [up ? "up" : "down"].</span>"
|
||||
flash_protect ^= initial(flash_protect)
|
||||
tint ^= initial(tint)
|
||||
|
||||
if(istype(usr, /mob/living/carbon))
|
||||
var/mob/living/carbon/C = usr
|
||||
if(iscarbon(user))
|
||||
var/mob/living/carbon/C = user
|
||||
C.head_update(src, forced = 1)
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
return TRUE
|
||||
|
||||
/obj/item/clothing/proc/visor_toggling() //handles all the actual toggling of flags
|
||||
up = !up
|
||||
flags ^= visor_flags
|
||||
flags_inv ^= visor_flags_inv
|
||||
flags_cover ^= initial(flags_cover)
|
||||
icon_state = "[initial(icon_state)][up ? "up" : ""]"
|
||||
if(visor_vars_to_toggle & VISOR_FLASHPROTECT)
|
||||
flash_protect ^= initial(flash_protect)
|
||||
if(visor_vars_to_toggle & VISOR_TINT)
|
||||
tint ^= initial(tint)
|
||||
|
||||
|
||||
/obj/item/clothing/proc/can_use(mob/user)
|
||||
if(user && ismob(user))
|
||||
if(!user.incapacitated())
|
||||
return 1
|
||||
return 0
|
||||
|
||||
|
||||
/obj/item/clothing/obj_destruction(damage_flag)
|
||||
if(damage_flag == "bomb" || damage_flag == "melee")
|
||||
var/turf/T = get_turf(src)
|
||||
spawn(1) //so the shred survives potential turf change from the explosion.
|
||||
var/obj/effect/decal/cleanable/shreds/Shreds = new(T)
|
||||
Shreds.desc = "The sad remains of what used to be [name]."
|
||||
deconstruct(FALSE)
|
||||
else
|
||||
..()
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
if(!mode)
|
||||
return
|
||||
|
||||
if(!istype(loc,/mob/living/carbon/human))
|
||||
if(!ishuman(loc))
|
||||
invis_update()
|
||||
return
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
O.invisibility = 0
|
||||
invis_objects += O
|
||||
|
||||
addtimer(src, "invis_update", 5)
|
||||
addtimer(CALLBACK(src, .proc/invis_update), 5)
|
||||
|
||||
/obj/item/clothing/glasses/meson/engine/proc/invis_update()
|
||||
for(var/obj/O in invis_objects)
|
||||
@@ -78,7 +78,7 @@
|
||||
O.invisibility = INVISIBILITY_MAXIMUM
|
||||
|
||||
/obj/item/clothing/glasses/meson/engine/proc/t_ray_on()
|
||||
if(!istype(loc,/mob/living/carbon/human))
|
||||
if(!ishuman(loc))
|
||||
return 0
|
||||
|
||||
var/mob/living/carbon/human/user = loc
|
||||
|
||||
@@ -1,6 +1,21 @@
|
||||
/obj/item/clothing/glasses
|
||||
name = "glasses"
|
||||
materials = list(MAT_GLASS = 250)
|
||||
var/glass_colour_type = null //colors your vision when worn
|
||||
|
||||
/obj/item/clothing/glasses/visor_toggling()
|
||||
..()
|
||||
if(visor_vars_to_toggle & VISOR_VISIONFLAGS)
|
||||
vision_flags ^= initial(vision_flags)
|
||||
if(visor_vars_to_toggle & VISOR_DARKNESSVIEW)
|
||||
darkness_view ^= initial(darkness_view)
|
||||
if(visor_vars_to_toggle & VISOR_INVISVIEW)
|
||||
invis_view ^= initial(invis_view)
|
||||
|
||||
/obj/item/clothing/glasses/weldingvisortoggle(mob/user)
|
||||
. = ..()
|
||||
if(. && user)
|
||||
user.update_sight()
|
||||
|
||||
//called when thermal glasses are emped.
|
||||
/obj/item/clothing/glasses/proc/thermal_overload()
|
||||
@@ -9,7 +24,7 @@
|
||||
if(!(H.disabilities & BLIND))
|
||||
if(H.glasses == src)
|
||||
H << "<span class='danger'>The [src] overloads and blinds you!</span>"
|
||||
H.flash_eyes(visual = 1)
|
||||
H.flash_act(visual = 1)
|
||||
H.blind_eyes(3)
|
||||
H.blur_eyes(5)
|
||||
H.adjust_eye_damage(5)
|
||||
@@ -23,6 +38,7 @@
|
||||
darkness_view = 2
|
||||
vision_flags = SEE_TURFS
|
||||
invis_view = SEE_INVISIBLE_MINIMUM
|
||||
glass_colour_type = /datum/client_colour/glass_colour/lightgreen
|
||||
|
||||
/obj/item/clothing/glasses/meson/night
|
||||
name = "Night Vision Optical Meson Scanner"
|
||||
@@ -31,6 +47,7 @@
|
||||
item_state = "nvgmeson"
|
||||
origin_tech = "magnets=4;engineering=5;plasmatech=4"
|
||||
darkness_view = 8
|
||||
glass_colour_type = /datum/client_colour/glass_colour/green
|
||||
|
||||
/obj/item/clothing/glasses/meson/gar
|
||||
name = "gar mesons"
|
||||
@@ -52,6 +69,9 @@
|
||||
origin_tech = "magnets=2;engineering=1"
|
||||
scan_reagents = 1 //You can see reagents while wearing science goggles
|
||||
actions_types = list(/datum/action/item_action/toggle_research_scanner)
|
||||
glass_colour_type = /datum/client_colour/glass_colour/purple
|
||||
resistance_flags = ACID_PROOF
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 100)
|
||||
|
||||
/obj/item/clothing/glasses/science/item_action_slot_check(slot)
|
||||
if(slot == slot_glasses)
|
||||
@@ -65,6 +85,7 @@
|
||||
origin_tech = "materials=4;magnets=4;plasmatech=4;engineering=4"
|
||||
darkness_view = 8
|
||||
invis_view = SEE_INVISIBLE_MINIMUM
|
||||
glass_colour_type = /datum/client_colour/glass_colour/green
|
||||
|
||||
/obj/item/clothing/glasses/eyepatch
|
||||
name = "eyepatch"
|
||||
@@ -85,6 +106,7 @@
|
||||
item_state = "glasses"
|
||||
origin_tech = "magnets=3;engineering=3"
|
||||
vision_flags = SEE_OBJS
|
||||
glass_colour_type = /datum/client_colour/glass_colour/lightblue
|
||||
|
||||
/obj/item/clothing/glasses/material/mining
|
||||
name = "Optical Material Scanner"
|
||||
@@ -105,6 +127,7 @@
|
||||
attack_verb = list("sliced")
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
sharpness = IS_SHARP
|
||||
glass_colour_type = /datum/client_colour/glass_colour/lightgreen
|
||||
|
||||
/obj/item/clothing/glasses/regular
|
||||
name = "Prescription Glasses"
|
||||
@@ -119,11 +142,7 @@
|
||||
icon_state = "hipster_glasses"
|
||||
item_state = "hipster_glasses"
|
||||
|
||||
/obj/item/clothing/glasses/gglasses
|
||||
name = "Green Glasses"
|
||||
desc = "Forest green glasses, like the kind you'd wear when hatching a nasty scheme."
|
||||
icon_state = "gglasses"
|
||||
item_state = "gglasses"
|
||||
//Here lies green glasses, so ugly they died. RIP
|
||||
|
||||
/obj/item/clothing/glasses/sunglasses
|
||||
desc = "Strangely ancient technology used to help provide rudimentary eye cover. Enhanced shielding blocks many flashes."
|
||||
@@ -133,7 +152,7 @@
|
||||
darkness_view = 1
|
||||
flash_protect = 1
|
||||
tint = 1
|
||||
|
||||
glass_colour_type = /datum/client_colour/glass_colour/gray
|
||||
dog_fashion = /datum/dog_fashion/head
|
||||
|
||||
/obj/item/clothing/glasses/sunglasses/reagent
|
||||
@@ -173,6 +192,7 @@
|
||||
attack_verb = list("sliced")
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
sharpness = IS_SHARP
|
||||
glass_colour_type = /datum/client_colour/glass_colour/orange
|
||||
|
||||
/obj/item/clothing/glasses/sunglasses/gar/supergar
|
||||
desc = "We evolve past the person we were a minute before. Little by little we advance with each turn. That's how a drill works!"
|
||||
@@ -181,6 +201,7 @@
|
||||
item_state = "gar"
|
||||
force = 12
|
||||
throwforce = 12
|
||||
glass_colour_type = /datum/client_colour/glass_colour/red
|
||||
|
||||
/obj/item/clothing/glasses/welding
|
||||
name = "welding goggles"
|
||||
@@ -191,20 +212,13 @@
|
||||
materials = list(MAT_METAL = 250)
|
||||
flash_protect = 2
|
||||
tint = 2
|
||||
visor_vars_to_toggle = VISOR_FLASHPROTECT | VISOR_TINT
|
||||
flags_cover = GLASSESCOVERSEYES
|
||||
visor_flags_inv = HIDEEYES
|
||||
glass_colour_type = /datum/client_colour/glass_colour/gray
|
||||
|
||||
|
||||
/obj/item/clothing/glasses/welding/attack_self()
|
||||
toggle()
|
||||
|
||||
|
||||
/obj/item/clothing/glasses/welding/verb/toggle()
|
||||
set category = "Object"
|
||||
set name = "Adjust welding goggles"
|
||||
set src in usr
|
||||
|
||||
weldingvisortoggle()
|
||||
/obj/item/clothing/glasses/welding/attack_self(mob/user)
|
||||
weldingvisortoggle(user)
|
||||
|
||||
|
||||
/obj/item/clothing/glasses/sunglasses/blindfold
|
||||
@@ -212,7 +226,6 @@
|
||||
desc = "Covers the eyes, preventing sight."
|
||||
icon_state = "blindfold"
|
||||
item_state = "blindfold"
|
||||
// vision_flags = BLIND
|
||||
flash_protect = 2
|
||||
tint = 3 // to make them blind
|
||||
|
||||
@@ -230,6 +243,7 @@
|
||||
vision_flags = SEE_MOBS
|
||||
invis_view = 2
|
||||
flash_protect = 0
|
||||
glass_colour_type = /datum/client_colour/glass_colour/red
|
||||
|
||||
/obj/item/clothing/glasses/thermal/emp_act(severity)
|
||||
thermal_overload()
|
||||
@@ -237,12 +251,23 @@
|
||||
|
||||
/obj/item/clothing/glasses/thermal/syndi //These are now a traitor item, concealed as mesons. -Pete
|
||||
name = "Chameleon Thermals"
|
||||
desc = "A pair of thermal optic goggles with an onboard chameleon generator. Toggle to disguise."
|
||||
desc = "A pair of thermal optic goggles with an onboard chameleon generator."
|
||||
origin_tech = "magnets=3;syndicate=4"
|
||||
flash_protect = -1
|
||||
|
||||
/obj/item/clothing/glasses/thermal/syndi/attack_self(mob/user)
|
||||
chameleon(user)
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action
|
||||
|
||||
/obj/item/clothing/glasses/thermal/syndi/New()
|
||||
..()
|
||||
chameleon_action = new(src)
|
||||
chameleon_action.chameleon_type = /obj/item/clothing/glasses
|
||||
chameleon_action.chameleon_name = "Glasses"
|
||||
chameleon_action.chameleon_blacklist = typecacheof(/obj/item/clothing/glasses/changeling, only_root_path = TRUE)
|
||||
chameleon_action.initialize_disguises()
|
||||
|
||||
/obj/item/clothing/glasses/thermal/syndi/emp_act(severity)
|
||||
..()
|
||||
chameleon_action.emp_randomise()
|
||||
|
||||
/obj/item/clothing/glasses/thermal/monocle
|
||||
name = "Thermoncle"
|
||||
@@ -273,12 +298,14 @@
|
||||
desc = "A sweet pair of orange shades."
|
||||
icon_state = "orangeglasses"
|
||||
item_state = "orangeglasses"
|
||||
glass_colour_type = /datum/client_colour/glass_colour/lightorange
|
||||
|
||||
/obj/item/clothing/glasses/red
|
||||
name = "red glasses"
|
||||
desc = "A sweet pair of red shades."
|
||||
desc = "Hey, you're looking good, senpai!"
|
||||
icon_state = "redglasses"
|
||||
item_state = "redglasses"
|
||||
glass_colour_type = /datum/client_colour/glass_colour/red
|
||||
|
||||
/obj/item/clothing/glasses/godeye
|
||||
name = "eye of god"
|
||||
@@ -291,54 +318,48 @@
|
||||
flags = NODROP
|
||||
invis_view = SEE_INVISIBLE_MINIMUM
|
||||
|
||||
/obj/item/clothing/glasses/proc/chameleon(var/mob/user)
|
||||
var/input_glasses = input(user, "Choose a piece of eyewear to disguise as.", "Choose glasses style.") as null|anything in list("Sunglasses", "Medical HUD", "Mesons", "Science Goggles", "Glasses", "Security Sunglasses","Eyepatch","Welding","Gar")
|
||||
/obj/item/clothing/glasses/godeye/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
|
||||
if(istype(W, src) && W != src && W.loc == user)
|
||||
if(W.icon_state == "godeye")
|
||||
W.icon_state = "doublegodeye"
|
||||
W.item_state = "doublegodeye"
|
||||
W.desc = "A pair of strange eyes, said to have been torn from an omniscient creature that used to roam the wastes. There's no real reason to have two, but that isn't stopping you."
|
||||
if(iscarbon(user))
|
||||
var/mob/living/carbon/C = user
|
||||
C.update_inv_wear_mask()
|
||||
else
|
||||
user << "<span class='notice'>The eye winks at you and vanishes into the abyss, you feel really unlucky.</span>"
|
||||
qdel(src)
|
||||
..()
|
||||
|
||||
if(user && src in user.contents)
|
||||
switch(input_glasses)
|
||||
if("Sunglasses")
|
||||
desc = "Strangely ancient technology used to help provide rudimentary eye cover. Enhanced shielding blocks many flashes."
|
||||
name = "sunglasses"
|
||||
icon_state = "sun"
|
||||
item_state = "sunglasses"
|
||||
if("Medical HUD")
|
||||
name = "Health Scanner HUD"
|
||||
desc = "A heads-up display that scans the humans in view and provides accurate data about their health status."
|
||||
icon_state = "healthhud"
|
||||
item_state = "healthhud"
|
||||
if("Mesons")
|
||||
name = "Optical Meson Scanner"
|
||||
desc = "Used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting condition."
|
||||
icon_state = "meson"
|
||||
item_state = "meson"
|
||||
if("Science Goggles")
|
||||
name = "Science Goggles"
|
||||
desc = "A pair of snazzy goggles used to protect against chemical spills."
|
||||
icon_state = "purple"
|
||||
item_state = "glasses"
|
||||
if("Glasses")
|
||||
name = "Prescription Glasses"
|
||||
desc = "Made by Nerd. Co."
|
||||
icon_state = "glasses"
|
||||
item_state = "glasses"
|
||||
if("Security Sunglasses")
|
||||
name = "HUDSunglasses"
|
||||
desc = "Sunglasses with a HUD."
|
||||
icon_state = "sunhud"
|
||||
item_state = "sunglasses"
|
||||
if("Eyepatch")
|
||||
name = "eyepatch"
|
||||
desc = "Yarr."
|
||||
icon_state = "eyepatch"
|
||||
item_state = "eyepatch"
|
||||
if("Welding")
|
||||
name = "welding goggles"
|
||||
desc = "Protects the eyes from welders; approved by the mad scientist association."
|
||||
icon_state = "welding-g"
|
||||
item_state = "welding-g"
|
||||
if("Gar")
|
||||
desc = "Just who the hell do you think I am?!"
|
||||
name = "gar glasses"
|
||||
icon_state = "gar"
|
||||
item_state = "gar"
|
||||
/obj/item/clothing/glasses/AltClick(mob/user)
|
||||
if(glass_colour_type && ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.client)
|
||||
if(H.client.prefs)
|
||||
if(src == H.glasses)
|
||||
H.client.prefs.uses_glasses_colour = !H.client.prefs.uses_glasses_colour
|
||||
if(H.client.prefs.uses_glasses_colour)
|
||||
H << "You will now see glasses colors."
|
||||
else
|
||||
H << "You will no longer see glasses colors."
|
||||
H.update_glasses_color(src, 1)
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/glasses/proc/change_glass_color(mob/living/carbon/human/H, datum/client_colour/glass_colour/new_color_type)
|
||||
var/old_colour_type = glass_colour_type
|
||||
if(!new_color_type || ispath(new_color_type)) //the new glass colour type must be null or a path.
|
||||
glass_colour_type = new_color_type
|
||||
if(H && H.glasses == src)
|
||||
if(old_colour_type)
|
||||
H.remove_client_colour(old_colour_type)
|
||||
if(glass_colour_type)
|
||||
H.update_glasses_color(src, 1)
|
||||
|
||||
|
||||
/mob/living/carbon/human/proc/update_glasses_color(obj/item/clothing/glasses/G, glasses_equipped)
|
||||
if(client && client.prefs.uses_glasses_colour && glasses_equipped)
|
||||
add_client_colour(G.glass_colour_type)
|
||||
else
|
||||
remove_client_colour(G.glass_colour_type)
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
var/hud_type = null
|
||||
|
||||
/obj/item/clothing/glasses/hud/equipped(mob/living/carbon/human/user, slot)
|
||||
..()
|
||||
if(hud_type && slot == slot_glasses)
|
||||
var/datum/atom_hud/H = huds[hud_type]
|
||||
H.add_hud_to(user)
|
||||
@@ -33,6 +34,7 @@
|
||||
icon_state = "healthhud"
|
||||
origin_tech = "magnets=3;biotech=2"
|
||||
hud_type = DATA_HUD_MEDICAL_ADVANCED
|
||||
glass_colour_type = /datum/client_colour/glass_colour/lightblue
|
||||
|
||||
/obj/item/clothing/glasses/hud/health/night
|
||||
name = "Night Vision Health Scanner HUD"
|
||||
@@ -42,6 +44,7 @@
|
||||
origin_tech = "magnets=4;biotech=4;plasmatech=4;engineering=5"
|
||||
darkness_view = 8
|
||||
invis_view = SEE_INVISIBLE_MINIMUM
|
||||
glass_colour_type = /datum/client_colour/glass_colour/green
|
||||
|
||||
/obj/item/clothing/glasses/hud/diagnostic
|
||||
name = "Diagnostic HUD"
|
||||
@@ -49,6 +52,7 @@
|
||||
icon_state = "diagnostichud"
|
||||
origin_tech = "magnets=2;engineering=2"
|
||||
hud_type = DATA_HUD_DIAGNOSTIC
|
||||
glass_colour_type = /datum/client_colour/glass_colour/lightorange
|
||||
|
||||
/obj/item/clothing/glasses/hud/diagnostic/night
|
||||
name = "Night Vision Diagnostic HUD"
|
||||
@@ -58,6 +62,7 @@
|
||||
origin_tech = "magnets=4;powerstorage=4;plasmatech=4;engineering=5"
|
||||
darkness_view = 8
|
||||
invis_view = SEE_INVISIBLE_MINIMUM
|
||||
glass_colour_type = /datum/client_colour/glass_colour/green
|
||||
|
||||
/obj/item/clothing/glasses/hud/security
|
||||
name = "Security HUD"
|
||||
@@ -65,14 +70,28 @@
|
||||
icon_state = "securityhud"
|
||||
origin_tech = "magnets=3;combat=2"
|
||||
hud_type = DATA_HUD_SECURITY_ADVANCED
|
||||
glass_colour_type = /datum/client_colour/glass_colour/red
|
||||
|
||||
/obj/item/clothing/glasses/hud/security/chameleon
|
||||
name = "Chamleon Security HUD"
|
||||
desc = "A stolen security HUD integrated with Syndicate chameleon technology. Toggle to disguise the HUD. Provides flash protection."
|
||||
name = "Chameleon Security HUD"
|
||||
desc = "A stolen security HUD integrated with Syndicate chameleon technology. Provides flash protection."
|
||||
flash_protect = 1
|
||||
|
||||
/obj/item/clothing/glasses/hud/security/chameleon/attack_self(mob/user)
|
||||
chameleon(user)
|
||||
// Yes this code is the same as normal chameleon glasses, but we don't
|
||||
// have multiple inheritance, okay?
|
||||
var/datum/action/item_action/chameleon/change/chameleon_action
|
||||
|
||||
/obj/item/clothing/glasses/hud/security/chameleon/New()
|
||||
..()
|
||||
chameleon_action = new(src)
|
||||
chameleon_action.chameleon_type = /obj/item/clothing/glasses
|
||||
chameleon_action.chameleon_name = "Glasses"
|
||||
chameleon_action.chameleon_blacklist = typecacheof(/obj/item/clothing/glasses/changeling, only_root_path = TRUE)
|
||||
chameleon_action.initialize_disguises()
|
||||
|
||||
/obj/item/clothing/glasses/hud/security/chameleon/emp_act(severity)
|
||||
. = ..()
|
||||
chameleon_action.emp_randomise()
|
||||
|
||||
|
||||
/obj/item/clothing/glasses/hud/security/sunglasses/eyepatch
|
||||
@@ -88,6 +107,7 @@
|
||||
darkness_view = 1
|
||||
flash_protect = 1
|
||||
tint = 1
|
||||
glass_colour_type = /datum/client_colour/glass_colour/darkred
|
||||
|
||||
/obj/item/clothing/glasses/hud/security/night
|
||||
name = "Night Vision Security HUD"
|
||||
@@ -96,6 +116,7 @@
|
||||
origin_tech = "magnets=4;combat=4;plasmatech=4;engineering=5"
|
||||
darkness_view = 8
|
||||
invis_view = SEE_INVISIBLE_MINIMUM
|
||||
glass_colour_type = /datum/client_colour/glass_colour/green
|
||||
|
||||
/obj/item/clothing/glasses/hud/security/sunglasses/gars
|
||||
name = "HUD gar glasses"
|
||||
@@ -151,16 +172,20 @@
|
||||
hud_type = DATA_HUD_SECURITY_ADVANCED
|
||||
vision_flags = SEE_MOBS
|
||||
invis_view = 2
|
||||
glass_colour_type = /datum/client_colour/glass_colour/red
|
||||
|
||||
/obj/item/clothing/glasses/hud/toggle/thermal/attack_self(mob/user)
|
||||
..()
|
||||
switch (hud_type)
|
||||
if (DATA_HUD_MEDICAL_ADVANCED)
|
||||
icon_state = "meson"
|
||||
change_glass_color(user, /datum/client_colour/glass_colour/green)
|
||||
if (DATA_HUD_SECURITY_ADVANCED)
|
||||
icon_state = "thermal"
|
||||
change_glass_color(user, /datum/client_colour/glass_colour/red)
|
||||
else
|
||||
icon_state = "purple"
|
||||
change_glass_color(user, /datum/client_colour/glass_colour/purple)
|
||||
user.update_inv_glasses()
|
||||
|
||||
/obj/item/clothing/glasses/hud/toggle/thermal/emp_act(severity)
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
siemens_coefficient = 0
|
||||
permeability_coefficient = 0.05
|
||||
item_color="yellow"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/clothing/gloves/color/fyellow //Cheap Chinese Crap
|
||||
desc = "These gloves are cheap knockoffs of the coveted ones - no way this can end badly."
|
||||
@@ -16,7 +16,7 @@
|
||||
siemens_coefficient = 1 //Set to a default of 1, gets overridden in New()
|
||||
permeability_coefficient = 0.05
|
||||
item_color="yellow"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/clothing/gloves/color/fyellow/New()
|
||||
..()
|
||||
@@ -26,26 +26,26 @@
|
||||
desc = "These gloves are fire-resistant."
|
||||
name = "black gloves"
|
||||
icon_state = "black"
|
||||
item_state = "bgloves"
|
||||
item_color="brown"
|
||||
item_state = "blackgloves"
|
||||
item_color="black"
|
||||
cold_protection = HANDS
|
||||
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
|
||||
heat_protection = HANDS
|
||||
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
var/can_be_cut = 1
|
||||
|
||||
/obj/item/clothing/gloves/color/black/hos
|
||||
item_color = "hosred" //Exists for washing machines. Is not different from black gloves in any way.
|
||||
item_color = "hosred" //Exists for washing machines. Is not different from black gloves in any way.
|
||||
|
||||
/obj/item/clothing/gloves/color/black/ce
|
||||
item_color = "chief" //Exists for washing machines. Is not different from black gloves in any way.
|
||||
item_color = "chief" //Exists for washing machines. Is not different from black gloves in any way.
|
||||
|
||||
/obj/item/clothing/gloves/color/black/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
|
||||
if(istype(W, /obj/item/weapon/wirecutters))
|
||||
if(can_be_cut && icon_state == initial(icon_state))//only if not dyed
|
||||
user << "<span class='notice'>You snip the fingertips off of [src].</span>"
|
||||
playsound(user.loc,'sound/items/Wirecutter.ogg', rand(10,50), 1)
|
||||
playsound(user.loc, W.usesound, rand(10,50), 1)
|
||||
new /obj/item/clothing/gloves/fingerless(user.loc)
|
||||
qdel(src)
|
||||
..()
|
||||
@@ -64,12 +64,13 @@
|
||||
item_state = "redgloves"
|
||||
item_color = "red"
|
||||
|
||||
|
||||
/obj/item/clothing/gloves/color/red/insulated
|
||||
name = "insulated gloves"
|
||||
desc = "These gloves will protect the wearer from electric shock."
|
||||
siemens_coefficient = 0
|
||||
permeability_coefficient = 0.05
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/clothing/gloves/color/rainbow
|
||||
name = "rainbow gloves"
|
||||
@@ -145,6 +146,7 @@
|
||||
heat_protection = HANDS
|
||||
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
|
||||
strip_delay = 60
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 70, acid = 50)
|
||||
|
||||
/obj/item/clothing/gloves/color/latex
|
||||
name = "latex gloves"
|
||||
@@ -155,7 +157,7 @@
|
||||
permeability_coefficient = 0.01
|
||||
item_color="white"
|
||||
transfer_prints = TRUE
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/clothing/gloves/color/latex/nitrile
|
||||
name = "nitrile gloves"
|
||||
|
||||
@@ -21,13 +21,14 @@
|
||||
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
|
||||
heat_protection = HANDS
|
||||
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 70, acid = 30)
|
||||
|
||||
/obj/item/clothing/gloves/combat
|
||||
name = "combat gloves"
|
||||
desc = "These tactical gloves are fireproof and shock resistant."
|
||||
icon_state = "black"
|
||||
item_state = "bgloves"
|
||||
item_state = "blackgloves"
|
||||
siemens_coefficient = 0
|
||||
permeability_coefficient = 0.05
|
||||
strip_delay = 80
|
||||
@@ -35,7 +36,9 @@
|
||||
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
|
||||
heat_protection = HANDS
|
||||
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 50)
|
||||
|
||||
|
||||
/obj/item/clothing/gloves/bracer
|
||||
name = "bone bracers"
|
||||
@@ -50,6 +53,5 @@
|
||||
cold_protection = ARMS
|
||||
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
|
||||
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
|
||||
burn_state = FIRE_PROOF
|
||||
armor = list(melee = 15, bullet = 35, laser = 35, energy = 20, bomb = 35, bio = 35, rad = 35) //Not like anything ever hits the arms anyways.
|
||||
|
||||
resistance_flags = 0
|
||||
armor = list(melee = 15, bullet = 35, laser = 35, energy = 20, bomb = 35, bio = 35, rad = 35, fire = 0, acid = 0)
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
|
||||
//BeanieStation13 Redux
|
||||
|
||||
/obj/item/clothing/head/beanie //Default is white, this is meant to be seen
|
||||
name = "white beanie"
|
||||
desc = "A stylish beanie. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their heads."
|
||||
icon_state = "beanie" //Default white
|
||||
item_color = "beanie"
|
||||
|
||||
/obj/item/clothing/head/beanie/black
|
||||
name = "black beanie"
|
||||
icon_state = "beanie"
|
||||
color = "#4A4A4B" //Grey but it looks black
|
||||
|
||||
/obj/item/clothing/head/beanie/red
|
||||
name = "red beanie"
|
||||
icon_state = "beanie"
|
||||
color = "#D91414" //Red
|
||||
|
||||
/obj/item/clothing/head/beanie/green
|
||||
name = "green beanie"
|
||||
icon_state = "beanie"
|
||||
color = "#5C9E54" //Green
|
||||
|
||||
/obj/item/clothing/head/beanie/darkblue
|
||||
name = "dark blue beanie"
|
||||
icon_state = "beanie"
|
||||
color = "#1E85BC" //Blue
|
||||
|
||||
/obj/item/clothing/head/beanie/purple
|
||||
name = "purple beanie"
|
||||
icon_state = "beanie"
|
||||
color = "#9557C5" //purple
|
||||
|
||||
/obj/item/clothing/head/beanie/yellow
|
||||
name = "yellow beanie"
|
||||
icon_state = "beanie"
|
||||
color = "#E0C14F" //Yellow
|
||||
|
||||
/obj/item/clothing/head/beanie/orange
|
||||
name = "orange beanie"
|
||||
icon_state = "beanie"
|
||||
color = "#C67A4B" //orange
|
||||
|
||||
/obj/item/clothing/head/beanie/cyan
|
||||
name = "cyan beanie"
|
||||
icon_state = "beanie"
|
||||
color = "#54A3CE" //Cyan (Or close to it)
|
||||
|
||||
//Striped Beanies have unique sprites
|
||||
|
||||
/obj/item/clothing/head/beanie/christmas
|
||||
name = "christmas beanie"
|
||||
icon_state = "beaniechristmas"
|
||||
item_color = "beaniechristmas"
|
||||
|
||||
/obj/item/clothing/head/beanie/striped
|
||||
name = "striped beanie"
|
||||
icon_state = "beaniestriped"
|
||||
item_color = "beaniestriped"
|
||||
|
||||
/obj/item/clothing/head/beanie/stripedred
|
||||
name = "red striped beanie"
|
||||
icon_state = "beaniestripedred"
|
||||
item_color = "beaniestripedred"
|
||||
|
||||
/obj/item/clothing/head/beanie/stripedblue
|
||||
name = "blue striped beanie"
|
||||
icon_state = "beaniestripedblue"
|
||||
item_color = "beaniestripedblue"
|
||||
|
||||
/obj/item/clothing/head/beanie/stripedgreen
|
||||
name = "green striped beanie"
|
||||
icon_state = "beaniestripedgreen"
|
||||
item_color = "beaniestripedgreen"
|
||||
|
||||
//No dog fashion sprites yet :( poor Ian can't be dope like the rest of us yet
|
||||
@@ -68,7 +68,7 @@
|
||||
desc = "A collectable welding helmet. Now with 80% less lead! Not for actual welding. Any welding done while wearing this helmet is done so at the owner's own risk!"
|
||||
icon_state = "welding"
|
||||
item_state = "welding"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/clothing/head/collectable/slime
|
||||
name = "collectable slime hat"
|
||||
@@ -137,11 +137,11 @@
|
||||
desc = "Go Red! I mean Green! I mean Red! No Green!"
|
||||
icon_state = "thunderdome"
|
||||
item_state = "thunderdome"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/clothing/head/collectable/swat
|
||||
name = "collectable SWAT helmet"
|
||||
desc = "That's not real blood. That's red paint." //Reference to the actual description
|
||||
icon_state = "swat"
|
||||
item_state = "swat"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
var/brightness_on = 4 //luminosity when on
|
||||
var/on = 0
|
||||
item_color = "yellow" //Determines used sprites: hardhat[on]_[item_color] and hardhat[on]_[item_color]2 (lying down sprite)
|
||||
armor = list(melee = 15, bullet = 5, laser = 20,energy = 10, bomb = 20, bio = 10, rad = 20)
|
||||
armor = list(melee = 15, bullet = 5, laser = 20,energy = 10, bomb = 20, bio = 10, rad = 20, fire = 100, acid = 50)
|
||||
flags_inv = 0
|
||||
actions_types = list(/datum/action/item_action/toggle_helmet_light)
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head
|
||||
|
||||
@@ -27,11 +27,23 @@
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
|
||||
/obj/item/clothing/head/hardhat/pickup(mob/user)
|
||||
..()
|
||||
if(on)
|
||||
user.AddLuminosity(brightness_on)
|
||||
SetLuminosity(0)
|
||||
|
||||
/obj/item/clothing/head/hardhat/dropped(mob/user)
|
||||
..()
|
||||
if(on)
|
||||
user.AddLuminosity(-brightness_on)
|
||||
SetLuminosity(brightness_on)
|
||||
|
||||
/obj/item/clothing/head/hardhat/proc/turn_on(mob/user)
|
||||
set_light(brightness_on)
|
||||
user.AddLuminosity(brightness_on)
|
||||
|
||||
/obj/item/clothing/head/hardhat/proc/turn_off(mob/user)
|
||||
set_light(0)
|
||||
user.AddLuminosity(-brightness_on)
|
||||
|
||||
/obj/item/clothing/head/hardhat/orange
|
||||
icon_state = "hardhat0_orange"
|
||||
|
||||
@@ -4,14 +4,14 @@
|
||||
icon_state = "helmet"
|
||||
flags = HEADBANGPROTECT
|
||||
item_state = "helmet"
|
||||
armor = list(melee = 40, bullet = 30, laser = 30,energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
armor = list(melee = 35, bullet = 30, laser = 30,energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 50)
|
||||
flags_inv = HIDEEARS
|
||||
cold_protection = HEAD
|
||||
min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT
|
||||
heat_protection = HEAD
|
||||
max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT
|
||||
strip_delay = 60
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
flags_cover = HEADCOVERSEYES
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/helmet
|
||||
@@ -20,9 +20,6 @@
|
||||
/obj/item/clothing/head/helmet/New()
|
||||
..()
|
||||
|
||||
/obj/item/clothing/head/helmet/emp_act(severity)
|
||||
..()
|
||||
|
||||
/obj/item/clothing/head/helmet/sec
|
||||
can_flashlight = 1
|
||||
|
||||
@@ -31,10 +28,14 @@
|
||||
desc = "A bulletproof combat helmet that excels in protecting the wearer against traditional projectile weaponry and explosives to a minor extent."
|
||||
icon_state = "helmetalt"
|
||||
item_state = "helmetalt"
|
||||
armor = list(melee = 15, bullet = 40, laser = 10, energy = 10, bomb = 40, bio = 0, rad = 0)
|
||||
armor = list(melee = 15, bullet = 40, laser = 10, energy = 10, bomb = 40, bio = 0, rad = 0, fire = 50, acid = 50)
|
||||
can_flashlight = 1
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/helmet/blueshirt
|
||||
icon_state = "blueshift"
|
||||
item_state = "blueshift"
|
||||
|
||||
/obj/item/clothing/head/helmet/riot
|
||||
name = "riot helmet"
|
||||
desc = "It's a helmet specifically designed to protect against close range attacks."
|
||||
@@ -44,13 +45,14 @@
|
||||
alt_toggle_message = "You push the visor up on"
|
||||
can_toggle = 1
|
||||
flags = HEADBANGPROTECT
|
||||
armor = list(melee = 41, bullet = 15, laser = 5,energy = 5, bomb = 5, bio = 2, rad = 0)
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEFACE
|
||||
armor = list(melee = 45, bullet = 15, laser = 5,energy = 5, bomb = 5, bio = 2, rad = 0, fire = 50, acid = 50)
|
||||
flags_inv = HIDEEARS|HIDEFACE
|
||||
strip_delay = 80
|
||||
actions_types = list(/datum/action/item_action/toggle)
|
||||
visor_flags_inv = HIDEMASK|HIDEFACE
|
||||
visor_flags_inv = HIDEFACE
|
||||
toggle_cooldown = 0
|
||||
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/head/helmet/attack_self(mob/user)
|
||||
@@ -98,7 +100,7 @@
|
||||
desc = "An extremely robust, space-worthy helmet in a nefarious red and black stripe pattern."
|
||||
icon_state = "swatsyndie"
|
||||
item_state = "swatsyndie"
|
||||
armor = list(melee = 40, bullet = 30, laser = 30,energy = 30, bomb = 50, bio = 90, rad = 20)
|
||||
armor = list(melee = 40, bullet = 30, laser = 30,energy = 30, bomb = 50, bio = 90, rad = 20, fire = 50, acid = 50)
|
||||
cold_protection = HEAD
|
||||
min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT
|
||||
heat_protection = HEAD
|
||||
@@ -119,7 +121,7 @@
|
||||
flags_inv = HIDEEARS|HIDEHAIR
|
||||
icon_state = "thunderdome"
|
||||
item_state = "thunderdome"
|
||||
armor = list(melee = 40, bullet = 30, laser = 25,energy = 10, bomb = 25, bio = 10, rad = 0)
|
||||
armor = list(melee = 40, bullet = 30, laser = 25,energy = 10, bomb = 25, bio = 10, rad = 0, fire = 50, acid = 50)
|
||||
cold_protection = HEAD
|
||||
min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT
|
||||
heat_protection = HEAD
|
||||
@@ -132,7 +134,8 @@
|
||||
desc = "An ancient helmet made of bronze and leather."
|
||||
flags_inv = HIDEEARS|HIDEHAIR
|
||||
flags_cover = HEADCOVERSEYES
|
||||
armor = list(melee = 25, bullet = 0, laser = 25, energy = 10, bomb = 10, bio = 0, rad = 0)
|
||||
armor = list(melee = 25, bullet = 0, laser = 25, energy = 10, bomb = 10, bio = 0, rad = 0, fire = 100, acid = 50)
|
||||
resistance_flags = FIRE_PROOF
|
||||
icon_state = "roman"
|
||||
item_state = "roman"
|
||||
strip_delay = 100
|
||||
@@ -159,7 +162,7 @@
|
||||
icon_state = "redtaghelm"
|
||||
flags_cover = HEADCOVERSEYES
|
||||
item_state = "redtaghelm"
|
||||
armor = list(melee = 15, bullet = 10, laser = 20,energy = 10, bomb = 20, bio = 0, rad = 0)
|
||||
armor = list(melee = 15, bullet = 10, laser = 20,energy = 10, bomb = 20, bio = 0, rad = 0, fire = 0, acid = 50)
|
||||
// Offer about the same protection as a hardhat.
|
||||
dog_fashion = null
|
||||
|
||||
@@ -169,7 +172,7 @@
|
||||
icon_state = "bluetaghelm"
|
||||
flags_cover = HEADCOVERSEYES
|
||||
item_state = "bluetaghelm"
|
||||
armor = list(melee = 15, bullet = 10, laser = 20,energy = 10, bomb = 20, bio = 0, rad = 0)
|
||||
armor = list(melee = 15, bullet = 10, laser = 20,energy = 10, bomb = 20, bio = 0, rad = 0, fire = 0, acid = 50)
|
||||
// Offer about the same protection as a hardhat.
|
||||
dog_fashion = null
|
||||
|
||||
@@ -178,7 +181,7 @@
|
||||
desc = "A classic metal helmet."
|
||||
icon_state = "knight_green"
|
||||
item_state = "knight_green"
|
||||
armor = list(melee = 41, bullet = 15, laser = 5,energy = 5, bomb = 5, bio = 2, rad = 0)
|
||||
armor = list(melee = 41, bullet = 15, laser = 5,energy = 5, bomb = 5, bio = 2, rad = 0, fire = 0, acid = 50)
|
||||
flags = null
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR
|
||||
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
@@ -208,7 +211,7 @@
|
||||
desc = "An intimidating tribal helmet, it doesn't look very comfortable."
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
|
||||
flags_cover = HEADCOVERSEYES
|
||||
armor = list(melee = 25, bullet = 25, laser = 25, energy = 10, bomb = 10, bio = 5, rad = 20)
|
||||
armor = list(melee = 25, bullet = 25, laser = 25, energy = 10, bomb = 10, bio = 5, rad = 20, fire = 40, acid = 20)
|
||||
icon_state = "skull"
|
||||
item_state = "skull"
|
||||
strip_delay = 100
|
||||
@@ -226,14 +229,14 @@
|
||||
|
||||
icon_state = state
|
||||
|
||||
if(istype(loc, /mob/living/carbon/human))
|
||||
if(ishuman(loc))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
H.update_inv_head()
|
||||
|
||||
return
|
||||
|
||||
/obj/item/clothing/head/helmet/ui_action_click(mob/user, actiontype)
|
||||
if(actiontype == /datum/action/item_action/toggle_helmet_flashlight)
|
||||
/obj/item/clothing/head/helmet/ui_action_click(mob/user, action)
|
||||
if(istype(action, /datum/action/item_action/toggle_helmet_flashlight))
|
||||
toggle_helmlight()
|
||||
else
|
||||
..()
|
||||
@@ -243,13 +246,12 @@
|
||||
var/obj/item/device/flashlight/seclite/S = I
|
||||
if(can_flashlight)
|
||||
if(!F)
|
||||
if(!user.unEquip(S))
|
||||
if(!user.transferItemToLoc(S, src))
|
||||
return
|
||||
user << "<span class='notice'>You click [S] into place on [src].</span>"
|
||||
if(S.on)
|
||||
set_light(0)
|
||||
SetLuminosity(0)
|
||||
F = S
|
||||
S.loc = src
|
||||
update_icon()
|
||||
update_helmlight(user)
|
||||
verbs += /obj/item/clothing/head/helmet/proc/toggle_helmlight
|
||||
@@ -286,8 +288,6 @@
|
||||
var/mob/user = usr
|
||||
if(user.incapacitated())
|
||||
return
|
||||
if(!isturf(user.loc))
|
||||
user << "<span class='warning'>You cannot turn the light on while in this [user.loc]!</span>"
|
||||
F.on = !F.on
|
||||
user << "<span class='notice'>You toggle the helmetlight [F.on ? "on":"off"].</span>"
|
||||
|
||||
@@ -298,13 +298,37 @@
|
||||
/obj/item/clothing/head/helmet/proc/update_helmlight(mob/user = null)
|
||||
if(F)
|
||||
if(F.on)
|
||||
set_light(F.brightness_on)
|
||||
if(loc == user)
|
||||
user.AddLuminosity(F.brightness_on)
|
||||
else if(isturf(loc))
|
||||
SetLuminosity(F.brightness_on)
|
||||
else
|
||||
set_light(0)
|
||||
if(loc == user)
|
||||
user.AddLuminosity(-F.brightness_on)
|
||||
else if(isturf(loc))
|
||||
SetLuminosity(0)
|
||||
update_icon()
|
||||
|
||||
else
|
||||
set_light(0)
|
||||
if(loc == user)
|
||||
user.AddLuminosity(-5)
|
||||
else if(isturf(loc))
|
||||
SetLuminosity(0)
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
|
||||
/obj/item/clothing/head/helmet/pickup(mob/user)
|
||||
..()
|
||||
if(F)
|
||||
if(F.on)
|
||||
user.AddLuminosity(F.brightness_on)
|
||||
SetLuminosity(0)
|
||||
|
||||
|
||||
/obj/item/clothing/head/helmet/dropped(mob/user)
|
||||
..()
|
||||
if(F)
|
||||
if(F.on)
|
||||
user.AddLuminosity(-F.brightness_on)
|
||||
SetLuminosity(F.brightness_on)
|
||||
|
||||
@@ -1,18 +1,16 @@
|
||||
|
||||
//Bartender //it's chef what the fuck is your problem?
|
||||
//Chef
|
||||
/obj/item/clothing/head/chefhat
|
||||
name = "chef's hat"
|
||||
desc = "It's a hat used by chefs to keep hair out of your food. Judging by the food in the mess, they don't work."
|
||||
icon_state = "chef"
|
||||
item_state = "chef"
|
||||
icon_state = "chef"
|
||||
desc = "The commander in chef's head wear."
|
||||
strip_delay = 10
|
||||
put_on_delay = 10
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/chef
|
||||
|
||||
/obj/item/clothing/head/chefhat/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is donning [src]! It looks like they're trying to become a chef.</span>")
|
||||
user.visible_message("<span class='suicide'>[user] is donning [src]! It looks like [user.p_theyre()] trying to become a chef.</span>")
|
||||
user.say("Bork Bork Bork!")
|
||||
sleep(20)
|
||||
user.visible_message("<span class='suicide'>[user] climbs into an imaginary oven!</span>")
|
||||
@@ -27,9 +25,8 @@
|
||||
icon_state = "captain"
|
||||
item_state = "that"
|
||||
flags_inv = 0
|
||||
armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 50)
|
||||
strip_delay = 60
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/captain
|
||||
|
||||
//Captain: This is no longer space-worthy
|
||||
@@ -46,8 +43,7 @@
|
||||
name = "head of personnel's cap"
|
||||
icon_state = "hopcap"
|
||||
desc = "The symbol of true bureaucratic micromanagement."
|
||||
armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
|
||||
armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 50)
|
||||
dog_fashion = /datum/dog_fashion/head/hop
|
||||
|
||||
//Chaplain
|
||||
@@ -58,13 +54,31 @@
|
||||
flags_inv = HIDEHAIR
|
||||
flags_cover = HEADCOVERSEYES
|
||||
|
||||
/obj/item/clothing/head/cage
|
||||
name = "cage"
|
||||
desc = "A cage that restrains the will of the self, allowing one to see the profane world for what it is."
|
||||
alternate_worn_icon = 'icons/mob/large-worn-icons/64x64/head.dmi'
|
||||
icon_state = "cage"
|
||||
item_state = "cage"
|
||||
worn_x_dimension = 64
|
||||
worn_y_dimension = 64
|
||||
|
||||
|
||||
/obj/item/clothing/head/witchunter_hat
|
||||
name = "witchunter hat"
|
||||
desc = "This hat saw much use back in the day."
|
||||
icon_state = "witchhunterhat"
|
||||
item_state = "witchhunterhat"
|
||||
flags_cover = HEADCOVERSEYES
|
||||
|
||||
//Detective
|
||||
/obj/item/clothing/head/det_hat
|
||||
name = "detective's fedora"
|
||||
desc = "There's only one man who can sniff out the dirty stench of crime, and he's likely wearing this hat."
|
||||
icon_state = "detective"
|
||||
armor = list(melee = 25, bullet = 5, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0)
|
||||
armor = list(melee = 25, bullet = 5, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 50)
|
||||
var/candy_cooldown = 0
|
||||
|
||||
pockets = /obj/item/weapon/storage/internal/pocket/small/detective
|
||||
dog_fashion = /datum/dog_fashion/head/detective
|
||||
|
||||
/obj/item/clothing/head/det_hat/AltClick()
|
||||
@@ -88,6 +102,10 @@
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/beret
|
||||
|
||||
/obj/item/clothing/head/beret/highlander
|
||||
desc = "That was white fabric. <i>Was.</i>"
|
||||
flags = NODROP
|
||||
dog_fashion = null //THIS IS FOR SLAUGHTER, NOT PUPPIES
|
||||
|
||||
//Security
|
||||
|
||||
@@ -95,7 +113,7 @@
|
||||
name = "head of security cap"
|
||||
desc = "The robust standard-issue cap of the Head of Security. For showing the officers who's in charge."
|
||||
icon_state = "hoscap"
|
||||
armor = list(melee = 40, bullet = 30, laser = 25, energy = 10, bomb = 25, bio = 10, rad = 0)
|
||||
armor = list(melee = 40, bullet = 30, laser = 25, energy = 10, bomb = 25, bio = 10, rad = 0, fire = 50, acid = 60)
|
||||
strip_delay = 80
|
||||
|
||||
/obj/item/clothing/head/HoS/beret
|
||||
@@ -107,16 +125,15 @@
|
||||
name = "warden's police hat"
|
||||
desc = "It's a special armored hat issued to the Warden of a security force. Protects the head from impacts."
|
||||
icon_state = "policehelm"
|
||||
armor = list(melee = 40, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
armor = list(melee = 40, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 30, acid = 60)
|
||||
strip_delay = 60
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/warden
|
||||
|
||||
/obj/item/clothing/head/beret/sec
|
||||
name = "security beret"
|
||||
desc = "A robust beret with the security insignia emblazoned on it. Uses reinforced fabric to offer sufficent protection."
|
||||
icon_state = "beret_badge"
|
||||
armor = list(melee = 40, bullet = 30, laser = 30,energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
armor = list(melee = 40, bullet = 30, laser = 30,energy = 10, bomb = 25, bio = 0, rad = 0, fire = 20, acid = 50)
|
||||
strip_delay = 60
|
||||
dog_fashion = null
|
||||
|
||||
@@ -129,9 +146,16 @@
|
||||
name = "warden's beret"
|
||||
desc = "A special beret with the Warden's insignia emblazoned on it. For wardens with class."
|
||||
icon_state = "wardenberet"
|
||||
armor = list(melee = 40, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
armor = list(melee = 40, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 30, acid = 50)
|
||||
strip_delay = 60
|
||||
|
||||
/obj/item/clothing/head/beret/sec/navyofficer
|
||||
desc = "A special beret with the security insignia emblazoned on it. For officers with class."
|
||||
icon_state = "officerberet"
|
||||
|
||||
//Curator
|
||||
/obj/item/clothing/head/curator
|
||||
name = "treasure hunter's fedora"
|
||||
desc = "You got red text today kid, but it doesn't mean you have to like it."
|
||||
icon_state = "curator"
|
||||
armor = list(melee = 25, bullet = 5, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 50)
|
||||
@@ -6,7 +6,7 @@
|
||||
desc = "It's good to be emperor."
|
||||
item_state = "that"
|
||||
flags_inv = 0
|
||||
armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 50)
|
||||
strip_delay = 80
|
||||
|
||||
/obj/item/clothing/head/powdered_wig
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
/obj/item/clothing/head/canada
|
||||
name = "striped red tophat"
|
||||
desc = " It feels sticky, like maple syrup - <i>il se sent collante, comme le sirop d'érable</i>"
|
||||
desc = "it smells like fresh donut holes / <i>il sent comme des trous de beignets frais</i>"
|
||||
icon_state = "canada"
|
||||
item_state = "canada"
|
||||
|
||||
@@ -65,6 +65,14 @@
|
||||
desc = "A plastic replica of a Syndicate agent's space helmet. You'll look just like a real murderous Syndicate agent in this! This is a toy, it is not made for use in space!"
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
|
||||
|
||||
/obj/item/clothing/head/cueball
|
||||
name = "cueball helmet"
|
||||
desc = "A large, featureless white orb meant to be worn on your head. How do you even see out of this thing?"
|
||||
icon_state = "cueball"
|
||||
item_state="cueball"
|
||||
flags_cover = HEADCOVERSEYES|HEADCOVERSMOUTH
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
|
||||
|
||||
/obj/item/clothing/head/snowman
|
||||
name = "Snowman Head"
|
||||
desc = "A ball of white styrofoam. So festive."
|
||||
@@ -116,12 +124,9 @@
|
||||
desc = "Yarr."
|
||||
icon_state = "pirate"
|
||||
item_state = "pirate"
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/pirate
|
||||
|
||||
/obj/item/clothing/head/hgpiratecap
|
||||
name = "pirate hat"
|
||||
desc = "Yarr."
|
||||
/obj/item/clothing/head/pirate/captain
|
||||
icon_state = "hgpiratecap"
|
||||
item_state = "hgpiratecap"
|
||||
|
||||
@@ -176,6 +181,7 @@
|
||||
icon_state = "fedora"
|
||||
item_state = "fedora"
|
||||
desc = "A really cool hat if you're a mobster. A really lame hat if you're not."
|
||||
pockets = /obj/item/weapon/storage/internal/pocket/small
|
||||
|
||||
/obj/item/clothing/head/fedora/suicide_act(mob/user)
|
||||
if(user.gender == FEMALE)
|
||||
@@ -222,9 +228,9 @@
|
||||
throwforce = 3
|
||||
throw_speed = 2
|
||||
throw_range = 5
|
||||
w_class = 2
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
attack_verb = list("warned", "cautioned", "smashed")
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/clothing/head/santa
|
||||
name = "santa hat"
|
||||
@@ -260,4 +266,16 @@
|
||||
name = "paper sack hat"
|
||||
desc = "A paper sack with crude holes cut out for eyes and a sketchy smile drawn on the front. Not creepy at all."
|
||||
icon_state = "papersack_smile"
|
||||
flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS
|
||||
flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS
|
||||
|
||||
/obj/item/clothing/head/crown
|
||||
name = "crown"
|
||||
desc = "A crown fit for a king, a petty king maybe."
|
||||
icon_state = "crown"
|
||||
armor = list(melee = 15, bullet = 0, laser = 0,energy = 15, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50)
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/head/crown/fancy
|
||||
name = "magnificent crown"
|
||||
desc = "A crown worn by only the highest emperors of the land."
|
||||
icon_state = "fancycrown"
|
||||
|
||||
@@ -21,23 +21,15 @@
|
||||
// var/up = 0
|
||||
flash_protect = 2
|
||||
tint = 2
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 60)
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
|
||||
actions_types = list(/datum/action/item_action/toggle)
|
||||
visor_flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
|
||||
visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/head/welding/attack_self()
|
||||
toggle()
|
||||
|
||||
|
||||
/obj/item/clothing/head/welding/verb/toggle()
|
||||
set category = "Object"
|
||||
set name = "Adjust welding helmet"
|
||||
set src in usr
|
||||
|
||||
weldingvisortoggle()
|
||||
/obj/item/clothing/head/welding/attack_self(mob/user)
|
||||
weldingvisortoggle(user)
|
||||
|
||||
|
||||
/*
|
||||
@@ -51,19 +43,19 @@
|
||||
item_color = "cakehat"
|
||||
hitsound = 'sound/weapons/tap.ogg'
|
||||
flags_inv = HIDEEARS|HIDEHAIR
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
|
||||
brightness_on = 2 //luminosity when on
|
||||
flags_cover = HEADCOVERSEYES
|
||||
heat = 1000
|
||||
|
||||
/obj/item/clothing/head/hardhat/cakehat/process()
|
||||
var/turf/location = src.loc
|
||||
if(istype(location, /mob/))
|
||||
if(ishuman(location))
|
||||
var/mob/living/carbon/human/M = location
|
||||
if(M.l_hand == src || M.r_hand == src || M.head == src)
|
||||
if(M.is_holding(src) || M.head == src)
|
||||
location = M.loc
|
||||
|
||||
if (istype(location, /turf))
|
||||
if(isturf(location))
|
||||
location.hotspot_expose(700, 1)
|
||||
|
||||
/obj/item/clothing/head/hardhat/cakehat/turn_on()
|
||||
@@ -99,14 +91,6 @@
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/ushanka
|
||||
|
||||
/obj/item/clothing/head/hardhat/headlamp
|
||||
name = "headlamp"
|
||||
desc = "For giving people another reason to look away from you."
|
||||
icon_state = "hardhat0_headlamp"
|
||||
item_state = "hardhat0_headlamp"
|
||||
item_color = "headlamp"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
|
||||
/obj/item/clothing/head/ushanka/attack_self(mob/user)
|
||||
if(earflaps)
|
||||
src.icon_state = "ushankaup"
|
||||
@@ -129,7 +113,7 @@
|
||||
item_state = "hardhat0_pumpkin"
|
||||
item_color = "pumpkin"
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
|
||||
brightness_on = 2 //luminosity when on
|
||||
flags_cover = HEADCOVERSEYES
|
||||
|
||||
@@ -140,7 +124,7 @@
|
||||
name = "kitty ears"
|
||||
desc = "A pair of kitty ears. Meow!"
|
||||
icon_state = "kitty"
|
||||
color = "#999"
|
||||
color = "#999999"
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/kitty
|
||||
|
||||
@@ -151,7 +135,7 @@
|
||||
|
||||
/obj/item/clothing/head/kitty/update_icon(mob/living/carbon/human/user)
|
||||
if(istype(user))
|
||||
color = "#[user.hair_color]"
|
||||
add_atom_colour("#[user.hair_color]", FIXED_COLOUR_PRIORITY)
|
||||
|
||||
|
||||
/obj/item/clothing/head/hardhat/reindeer
|
||||
@@ -161,7 +145,7 @@
|
||||
item_state = "hardhat0_reindeer"
|
||||
item_color = "reindeer"
|
||||
flags_inv = 0
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
|
||||
brightness_on = 1 //luminosity when on
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/reindeer
|
||||
|
||||
@@ -120,7 +120,7 @@
|
||||
desc = "It's a robust baseball hat in tasteful red colour."
|
||||
icon_state = "secsoft"
|
||||
item_color = "sec"
|
||||
armor = list(melee = 30, bullet = 25, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
armor = list(melee = 30, bullet = 25, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 20, acid = 50)
|
||||
strip_delay = 60
|
||||
dog_fashion = null
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
item_state = "balaclava"
|
||||
flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
|
||||
visor_flags_inv = HIDEFACE|HIDEFACIALHAIR
|
||||
w_class = 2
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
actions_types = list(/datum/action/item_action/adjust)
|
||||
|
||||
/obj/item/clothing/mask/balaclava/attack_self(mob/user)
|
||||
@@ -17,13 +17,13 @@
|
||||
icon_state = "luchag"
|
||||
item_state = "luchag"
|
||||
flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
|
||||
w_class = 2
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
|
||||
/obj/item/clothing/mask/luchador/speechModification(message)
|
||||
if(copytext(message, 1, 2) != "*")
|
||||
message = replacetext(message, "captain", "CAPITÁN")
|
||||
message = replacetext(message, "station", "ESTACIÓN")
|
||||
message = replacetext(message, "sir", "SEÑOR")
|
||||
message = replacetext(message, "captain", "CAPITÁN")
|
||||
message = replacetext(message, "station", "ESTACIÓN")
|
||||
message = replacetext(message, "sir", "SEÑOR")
|
||||
message = replacetext(message, "the ", "el ")
|
||||
message = replacetext(message, "my ", "mi ")
|
||||
message = replacetext(message, "is ", "es ")
|
||||
@@ -52,4 +52,4 @@
|
||||
name = "Rudos Mask"
|
||||
desc = "Worn by robust fighters who are willing to do anything to win."
|
||||
icon_state = "luchar"
|
||||
item_state = "luchar"
|
||||
item_state = "luchar"
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
body_parts_covered = 0
|
||||
flags = MASKINTERNALS
|
||||
visor_flags = MASKINTERNALS
|
||||
w_class = 2
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
gas_transfer_coefficient = 0.10
|
||||
permeability_coefficient = 0.50
|
||||
actions_types = list(/datum/action/item_action/adjust)
|
||||
flags_cover = MASKCOVERSMOUTH
|
||||
visor_flags_cover = MASKCOVERSMOUTH
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/clothing/mask/breath/attack_self(mob/user)
|
||||
adjustmask(user)
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
icon_state = "gas_alt"
|
||||
flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
|
||||
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR
|
||||
w_class = 3
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
item_state = "gas_alt"
|
||||
gas_transfer_coefficient = 0.01
|
||||
permeability_coefficient = 0.01
|
||||
flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
// **** Welding gas mask ****
|
||||
|
||||
@@ -20,23 +20,18 @@
|
||||
materials = list(MAT_METAL=4000, MAT_GLASS=2000)
|
||||
flash_protect = 2
|
||||
tint = 2
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 55)
|
||||
origin_tech = "materials=2;engineering=3"
|
||||
actions_types = list(/datum/action/item_action/toggle)
|
||||
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE
|
||||
flags_cover = MASKCOVERSEYES
|
||||
visor_flags_inv = HIDEEYES
|
||||
visor_flags_cover = MASKCOVERSEYES
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/mask/gas/welding/attack_self()
|
||||
toggle()
|
||||
/obj/item/clothing/mask/gas/welding/attack_self(mob/user)
|
||||
weldingvisortoggle(user)
|
||||
|
||||
/obj/item/clothing/mask/gas/welding/verb/toggle()
|
||||
set category = "Object"
|
||||
set name = "Adjust welding mask"
|
||||
set src in usr
|
||||
|
||||
weldingvisortoggle()
|
||||
|
||||
// ********************************************************************
|
||||
|
||||
@@ -46,7 +41,7 @@
|
||||
desc = "A modernised version of the classic design, this mask will not only filter out toxins but it can also be connected to an air supply."
|
||||
icon_state = "plaguedoctor"
|
||||
item_state = "gas_mask"
|
||||
armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 75, rad = 0)
|
||||
armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 75, rad = 0, fire = 0, acid = 0)
|
||||
|
||||
/obj/item/clothing/mask/gas/syndicate
|
||||
name = "syndicate mask"
|
||||
@@ -61,14 +56,11 @@
|
||||
icon_state = "clown"
|
||||
item_state = "clown_hat"
|
||||
flags_cover = MASKCOVERSEYES
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = FLAMMABLE
|
||||
actions_types = list(/datum/action/item_action/adjust)
|
||||
dog_fashion = /datum/dog_fashion/head/clown
|
||||
|
||||
/obj/item/clothing/mask/gas/clown_hat/attack_self(mob/user)
|
||||
AltClick(user)
|
||||
|
||||
/obj/item/clothing/mask/gas/clown_hat/AltClick(mob/living/user)
|
||||
/obj/item/clothing/mask/gas/clown_hat/ui_action_click(mob/user)
|
||||
if(!istype(user) || user.incapacitated())
|
||||
return
|
||||
|
||||
@@ -96,7 +88,7 @@
|
||||
icon_state = "sexyclown"
|
||||
item_state = "sexyclown"
|
||||
flags_cover = MASKCOVERSEYES
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = FLAMMABLE
|
||||
|
||||
/obj/item/clothing/mask/gas/mime
|
||||
name = "mime mask"
|
||||
@@ -105,7 +97,7 @@
|
||||
icon_state = "mime"
|
||||
item_state = "mime"
|
||||
flags_cover = MASKCOVERSEYES
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = FLAMMABLE
|
||||
actions_types = list(/datum/action/item_action/adjust)
|
||||
|
||||
/obj/item/clothing/mask/gas/mime/attack_self(mob/user)
|
||||
@@ -135,7 +127,7 @@
|
||||
icon_state = "monkeymask"
|
||||
item_state = "monkeymask"
|
||||
flags_cover = MASKCOVERSEYES
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = FLAMMABLE
|
||||
|
||||
/obj/item/clothing/mask/gas/sexymime
|
||||
name = "sexy mime mask"
|
||||
@@ -144,7 +136,7 @@
|
||||
icon_state = "sexymime"
|
||||
item_state = "sexymime"
|
||||
flags_cover = MASKCOVERSEYES
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = FLAMMABLE
|
||||
|
||||
/obj/item/clothing/mask/gas/death_commando
|
||||
name = "Death Commando Mask"
|
||||
@@ -155,7 +147,7 @@
|
||||
name = "cyborg visor"
|
||||
desc = "Beep boop."
|
||||
icon_state = "death"
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = FLAMMABLE
|
||||
|
||||
/obj/item/clothing/mask/gas/owl_mask
|
||||
name = "owl mask"
|
||||
@@ -163,98 +155,41 @@
|
||||
icon_state = "owl"
|
||||
flags = MASKINTERNALS
|
||||
flags_cover = MASKCOVERSEYES
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = FLAMMABLE
|
||||
|
||||
/obj/item/clothing/mask/gas/carp
|
||||
name = "carp mask"
|
||||
desc = "Gnash gnash."
|
||||
icon_state = "carp_mask"
|
||||
|
||||
/obj/item/clothing/mask/gas/yautja_fake
|
||||
name = "ceremonial mask"
|
||||
desc = "A beautifully designed metallic face mask. This one appears to be mostly decorative."
|
||||
icon_state = "pred_mask"
|
||||
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR|HIDEHAIR
|
||||
item_state = "pred_mask"
|
||||
flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH
|
||||
burn_state = LAVA_PROOF
|
||||
/obj/item/clothing/mask/gas/tiki_mask
|
||||
name = "tiki mask"
|
||||
desc = "A creepy wooden mask. Surprisingly expresive for a poorly carved bit of wood."
|
||||
icon_state = "tiki_eyebrow"
|
||||
item_state = "tiki_eyebrow"
|
||||
resistance_flags = FLAMMABLE
|
||||
obj_integrity = 100
|
||||
max_integrity = 100
|
||||
dog_fashion = null
|
||||
|
||||
|
||||
obj/item/clothing/mask/gas/tiki_mask/ui_action_click(mob/user)
|
||||
|
||||
var/mob/M = usr
|
||||
var/list/options = list()
|
||||
var/current_skin = ""
|
||||
options["Original Tiki"] = "tiki_eyebrow"
|
||||
options["Happy Tiki"] = "tiki_happy"
|
||||
options["Confused Tiki"] = "tiki_confused"
|
||||
options["Angry Tiki"] ="tiki_angry"
|
||||
|
||||
/obj/item/clothing/mask/gas/yautja_fake/New()
|
||||
options["Jawbone"] = "jaw"
|
||||
options["Plain"] = "plain"
|
||||
options["Horned"] = "horn"
|
||||
options["Winged"] = "wing"
|
||||
options["Cancel"] = null
|
||||
var/choice = input(M,"To what form do you wish to change this mask?","Morph Mask") in options
|
||||
|
||||
/obj/item/clothing/mask/gas/yautja_fake/examine(mob/user)
|
||||
..()
|
||||
if(!current_skin)
|
||||
user << "<span class='notice'>Alt-click [src.name] to reskin it.</span>"
|
||||
|
||||
/obj/item/clothing/mask/gas/yautja_fake/proc/reskin_mask(mob/M)
|
||||
var/choice = input(M,"Warning, you can only reskin your mask once!","Reskin Mask") in options
|
||||
|
||||
if(src && choice && !current_skin && !M.incapacitated() && in_range(M,src))
|
||||
if(options[choice] == null)
|
||||
return
|
||||
current_skin = options[choice]
|
||||
icon_state = "[initial(icon_state)]_[current_skin]"
|
||||
item_state = "[initial(item_state)]_[current_skin]"
|
||||
M << "Your mask is now skinned as \"[choice]\"."
|
||||
update_icon()
|
||||
M.regenerate_icons()
|
||||
|
||||
/obj/item/clothing/mask/gas/yautja_fake/AltClick(mob/user)
|
||||
..()
|
||||
if(user.incapacitated())
|
||||
user << "<span class='warning'>You can't do that right now!</span>"
|
||||
return
|
||||
if(!current_skin && loc == user)
|
||||
reskin_mask(user)
|
||||
|
||||
/obj/item/clothing/mask/gas/yautja
|
||||
name = "clan mask"
|
||||
desc = "A beautifully designed metallic face mask. Both decorative and functional."
|
||||
icon_state = "pred_mask"
|
||||
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR|HIDEHAIR
|
||||
item_state = "pred_mask"
|
||||
flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH
|
||||
burn_state = LAVA_PROOF
|
||||
armor = list(melee = 50, bullet = 50, laser = 50,energy = 50, bomb = 50, bio = 80, rad = 50)
|
||||
var/list/options = list()
|
||||
var/current_skin = ""
|
||||
|
||||
/obj/item/clothing/mask/gas/yautja/New()
|
||||
options["Jawbone"] = "jaw"
|
||||
options["Plain"] = "plain"
|
||||
options["Horned"] = "horn"
|
||||
options["Winged"] = "wing"
|
||||
options["Cancel"] = null
|
||||
|
||||
/obj/item/clothing/mask/gas/yautja/proc/reskin_mask(mob/M)
|
||||
var/choice = input(M,"Warning, you can only reskin your mask once!","Reskin Mask") in options
|
||||
|
||||
if(src && choice && !current_skin && !M.incapacitated() && in_range(M,src))
|
||||
if(options[choice] == null)
|
||||
return
|
||||
current_skin = options[choice]
|
||||
icon_state = "[initial(icon_state)]_[current_skin]"
|
||||
item_state = "[initial(item_state)]_[current_skin]"
|
||||
M << "Your mask is now skinned as \"[choice]\"."
|
||||
update_icon()
|
||||
M.regenerate_icons()
|
||||
|
||||
/obj/item/clothing/mask/gas/yautja/AltClick(mob/user)
|
||||
..()
|
||||
if(user.incapacitated())
|
||||
user << "<span class='warning'>You can't do that right now!</span>"
|
||||
return
|
||||
if(!current_skin && loc == user)
|
||||
reskin_mask(user)
|
||||
|
||||
/obj/item/clothing/mask/gas/yautja/examine(mob/user)
|
||||
..()
|
||||
if(!current_skin)
|
||||
user << "<span class='notice'>Alt-click [src.name] to reskin it.</span>"
|
||||
if(src && choice && !M.stat && in_range(M,src))
|
||||
icon_state = options[choice]
|
||||
item_state = options[choice]
|
||||
user.update_inv_wear_mask()
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
M << "The Tiki Mask has now changed into the [choice] Mask!"
|
||||
return 1
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
icon_state = "sechailer"
|
||||
flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
|
||||
flags_inv = HIDEFACIALHAIR|HIDEFACE
|
||||
w_class = 2
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
visor_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
|
||||
visor_flags_inv = HIDEFACE
|
||||
flags_cover = MASKCOVERSMOUTH
|
||||
@@ -17,6 +17,7 @@
|
||||
var/cooldown_special
|
||||
var/recent_uses = 0
|
||||
var/broken_hailer = 0
|
||||
var/safety = TRUE
|
||||
|
||||
/obj/item/clothing/mask/gas/sechailer/swat
|
||||
name = "\improper SWAT mask"
|
||||
@@ -56,20 +57,26 @@
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/clothing/mask/gas/sechailer/ui_action_click(mob/user, actiontype)
|
||||
if(actiontype == /datum/action/item_action/halt)
|
||||
/obj/item/clothing/mask/gas/sechailer/ui_action_click(mob/user, action)
|
||||
if(istype(action, /datum/action/item_action/halt))
|
||||
halt()
|
||||
else
|
||||
adjustmask(user)
|
||||
|
||||
/obj/item/clothing/mask/gas/sechailer/attack_self()
|
||||
halt()
|
||||
/obj/item/clothing/mask/gas/sechailer/emag_act(mob/user as mob)
|
||||
if(safety)
|
||||
safety = FALSE
|
||||
user << "<span class='warning'>You silently fry [src]'s vocal circuit with the cryptographic sequencer."
|
||||
else
|
||||
return
|
||||
|
||||
/obj/item/clothing/mask/gas/sechailer/verb/halt()
|
||||
set category = "Object"
|
||||
set name = "HALT"
|
||||
set src in usr
|
||||
if(!istype(usr, /mob/living))
|
||||
if(!isliving(usr))
|
||||
return
|
||||
if(!can_use(usr))
|
||||
return
|
||||
@@ -107,61 +114,66 @@
|
||||
if(4)
|
||||
phrase = rand(12,18) // user has broke the restrictor, it will now only play shitcurity phrases
|
||||
|
||||
switch(phrase) //sets the properties of the chosen phrase
|
||||
if(1) // good cop
|
||||
phrase_text = "HALT! HALT! HALT!"
|
||||
phrase_sound = "halt"
|
||||
if(2)
|
||||
phrase_text = "Stop in the name of the Law."
|
||||
phrase_sound = "bobby"
|
||||
if(3)
|
||||
phrase_text = "Compliance is in your best interest."
|
||||
phrase_sound = "compliance"
|
||||
if(4)
|
||||
phrase_text = "Prepare for justice!"
|
||||
phrase_sound = "justice"
|
||||
if(5)
|
||||
phrase_text = "Running will only increase your sentence."
|
||||
phrase_sound = "running"
|
||||
if(6) // bad cop
|
||||
phrase_text = "Don't move, Creep!"
|
||||
phrase_sound = "dontmove"
|
||||
if(7)
|
||||
phrase_text = "Down on the floor, Creep!"
|
||||
phrase_sound = "floor"
|
||||
if(8)
|
||||
phrase_text = "Dead or alive you're coming with me."
|
||||
phrase_sound = "robocop"
|
||||
if(9)
|
||||
phrase_text = "God made today for the crooks we could not catch yesterday."
|
||||
phrase_sound = "god"
|
||||
if(10)
|
||||
phrase_text = "Freeze, Scum Bag!"
|
||||
phrase_sound = "freeze"
|
||||
if(11)
|
||||
phrase_text = "Stop right there, criminal scum!"
|
||||
phrase_sound = "imperial"
|
||||
if(12) // LA-PD
|
||||
phrase_text = "Stop or I'll bash you."
|
||||
phrase_sound = "bash"
|
||||
if(13)
|
||||
phrase_text = "Go ahead, make my day."
|
||||
phrase_sound = "harry"
|
||||
if(14)
|
||||
phrase_text = "Stop breaking the law, ass hole."
|
||||
phrase_sound = "asshole"
|
||||
if(15)
|
||||
phrase_text = "You have the right to shut the fuck up."
|
||||
phrase_sound = "stfu"
|
||||
if(16)
|
||||
phrase_text = "Shut up crime!"
|
||||
phrase_sound = "shutup"
|
||||
if(17)
|
||||
phrase_text = "Face the wrath of the golden bolt."
|
||||
phrase_sound = "super"
|
||||
if(18)
|
||||
phrase_text = "I am, the LAW!"
|
||||
phrase_sound = "dredd"
|
||||
if(!safety)
|
||||
phrase_text = "FUCK YOUR CUNT YOU SHIT EATING COCKSTORM AND EAT A DONG FUCKING ASS RAMMING SHIT FUCK EAT PENISES IN YOUR FUCK FACE AND SHIT OUT ABORTIONS OF FUCK AND POO AND SHIT IN YOUR ASS YOU COCK FUCK SHIT MONKEY FUCK ASS WANKER FROM THE DEPTHS OF SHIT."
|
||||
phrase_sound = "emag"
|
||||
else
|
||||
|
||||
switch(phrase) //sets the properties of the chosen phrase
|
||||
if(1) // good cop
|
||||
phrase_text = "HALT! HALT! HALT!"
|
||||
phrase_sound = "halt"
|
||||
if(2)
|
||||
phrase_text = "Stop in the name of the Law."
|
||||
phrase_sound = "bobby"
|
||||
if(3)
|
||||
phrase_text = "Compliance is in your best interest."
|
||||
phrase_sound = "compliance"
|
||||
if(4)
|
||||
phrase_text = "Prepare for justice!"
|
||||
phrase_sound = "justice"
|
||||
if(5)
|
||||
phrase_text = "Running will only increase your sentence."
|
||||
phrase_sound = "running"
|
||||
if(6) // bad cop
|
||||
phrase_text = "Don't move, Creep!"
|
||||
phrase_sound = "dontmove"
|
||||
if(7)
|
||||
phrase_text = "Down on the floor, Creep!"
|
||||
phrase_sound = "floor"
|
||||
if(8)
|
||||
phrase_text = "Dead or alive you're coming with me."
|
||||
phrase_sound = "robocop"
|
||||
if(9)
|
||||
phrase_text = "God made today for the crooks we could not catch yesterday."
|
||||
phrase_sound = "god"
|
||||
if(10)
|
||||
phrase_text = "Freeze, Scum Bag!"
|
||||
phrase_sound = "freeze"
|
||||
if(11)
|
||||
phrase_text = "Stop right there, criminal scum!"
|
||||
phrase_sound = "imperial"
|
||||
if(12) // LA-PD
|
||||
phrase_text = "Stop or I'll bash you."
|
||||
phrase_sound = "bash"
|
||||
if(13)
|
||||
phrase_text = "Go ahead, make my day."
|
||||
phrase_sound = "harry"
|
||||
if(14)
|
||||
phrase_text = "Stop breaking the law, ass hole."
|
||||
phrase_sound = "asshole"
|
||||
if(15)
|
||||
phrase_text = "You have the right to shut the fuck up."
|
||||
phrase_sound = "stfu"
|
||||
if(16)
|
||||
phrase_text = "Shut up crime!"
|
||||
phrase_sound = "shutup"
|
||||
if(17)
|
||||
phrase_text = "Face the wrath of the golden bolt."
|
||||
phrase_sound = "super"
|
||||
if(18)
|
||||
phrase_text = "I am, the LAW!"
|
||||
phrase_sound = "dredd"
|
||||
|
||||
usr.audible_message("[usr]'s Compli-o-Nator: <font color='red' size='4'><b>[phrase_text]</b></font>")
|
||||
playsound(src.loc, "sound/voice/complionator/[phrase_sound].ogg", 100, 0, 4)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
icon_state = "muzzle"
|
||||
item_state = "blindfold"
|
||||
flags_cover = MASKCOVERSMOUTH
|
||||
w_class = 2
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
gas_transfer_coefficient = 0.90
|
||||
put_on_delay = 20
|
||||
|
||||
@@ -21,14 +21,14 @@
|
||||
desc = "A sterile mask designed to help prevent the spread of diseases."
|
||||
icon_state = "sterile"
|
||||
item_state = "sterile"
|
||||
w_class = 1
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
flags_inv = HIDEFACE
|
||||
flags_cover = MASKCOVERSMOUTH
|
||||
visor_flags_inv = HIDEFACE
|
||||
visor_flags_cover = MASKCOVERSMOUTH
|
||||
gas_transfer_coefficient = 0.90
|
||||
permeability_coefficient = 0.01
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 25, rad = 0)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 25, rad = 0, fire = 0, acid = 0)
|
||||
actions_types = list(/datum/action/item_action/adjust)
|
||||
|
||||
/obj/item/clothing/mask/surgical/attack_self(mob/user)
|
||||
@@ -40,13 +40,18 @@
|
||||
icon_state = "fake-moustache"
|
||||
flags_inv = HIDEFACE
|
||||
|
||||
/obj/item/clothing/mask/joy
|
||||
name = "joy mask"
|
||||
desc = "Express your happiness or hide your sorrows with this laughing face with crying tears of joy cutout."
|
||||
icon_state = "joy"
|
||||
|
||||
/obj/item/clothing/mask/pig
|
||||
name = "pig mask"
|
||||
desc = "A rubber pig mask."
|
||||
icon_state = "pig"
|
||||
item_state = "pig"
|
||||
flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
|
||||
w_class = 2
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
actions_types = list(/datum/action/item_action/toggle_voice_box)
|
||||
var/voicechange = 0
|
||||
|
||||
@@ -65,7 +70,7 @@
|
||||
icon_state = "pig"
|
||||
item_state = "pig"
|
||||
flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
|
||||
w_class = 2
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
var/voicechange = 1
|
||||
|
||||
/obj/item/clothing/mask/spig/speechModification(message)
|
||||
@@ -80,7 +85,7 @@
|
||||
icon_state = "cowmask"
|
||||
item_state = "cowmask"
|
||||
flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
|
||||
w_class = 2
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
var/voicechange = 1
|
||||
|
||||
/obj/item/clothing/mask/cowmask/speechModification(message)
|
||||
@@ -94,7 +99,7 @@
|
||||
icon_state = "horsehead"
|
||||
item_state = "horsehead"
|
||||
flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDEEYES|HIDEEARS
|
||||
w_class = 2
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
var/voicechange = 1
|
||||
|
||||
/obj/item/clothing/mask/horsehead/speechModification(message)
|
||||
@@ -102,10 +107,60 @@
|
||||
message = pick("NEEIIGGGHHHH!", "NEEEIIIIGHH!", "NEIIIGGHH!", "HAAWWWWW!", "HAAAWWW!")
|
||||
return message
|
||||
|
||||
/obj/item/clothing/mask/rat
|
||||
name = "rat mask"
|
||||
desc = "A mask made of soft vinyl and latex, representing the head of a rat."
|
||||
icon_state = "rat"
|
||||
item_state = "rat"
|
||||
flags_inv = HIDEFACE
|
||||
flags_cover = MASKCOVERSMOUTH
|
||||
|
||||
/obj/item/clothing/mask/rat/fox
|
||||
name = "fox mask"
|
||||
desc = "A mask made of soft vinyl and latex, representing the head of a fox."
|
||||
icon_state = "fox"
|
||||
item_state = "fox"
|
||||
|
||||
/obj/item/clothing/mask/rat/bee
|
||||
name = "bee mask"
|
||||
desc = "A mask made of soft vinyl and latex, representing the head of a bee."
|
||||
icon_state = "bee"
|
||||
item_state = "bee"
|
||||
|
||||
/obj/item/clothing/mask/rat/bear
|
||||
name = "bear mask"
|
||||
desc = "A mask made of soft vinyl and latex, representing the head of a bear."
|
||||
icon_state = "bear"
|
||||
item_state = "bear"
|
||||
|
||||
/obj/item/clothing/mask/rat/bat
|
||||
name = "bat mask"
|
||||
desc = "A mask made of soft vinyl and latex, representing the head of a bat."
|
||||
icon_state = "bat"
|
||||
item_state = "bat"
|
||||
|
||||
/obj/item/clothing/mask/rat/raven
|
||||
name = "raven mask"
|
||||
desc = "A mask made of soft vinyl and latex, representing the head of a raven."
|
||||
icon_state = "raven"
|
||||
item_state = "raven"
|
||||
|
||||
/obj/item/clothing/mask/rat/jackal
|
||||
name = "jackal mask"
|
||||
desc = "A mask made of soft vinyl and latex, representing the head of a jackal."
|
||||
icon_state = "jackal"
|
||||
item_state = "jackal"
|
||||
|
||||
/obj/item/clothing/mask/rat/tribal
|
||||
name = "tribal mask"
|
||||
desc = "A mask carved out of wood, detailed carefully by hand."
|
||||
icon_state = "bumba"
|
||||
item_state = "bumba"
|
||||
|
||||
/obj/item/clothing/mask/bandana
|
||||
name = "botany bandana"
|
||||
desc = "A fine bandana with nanotech lining and a hydroponics pattern."
|
||||
w_class = 1
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
flags_cover = MASKCOVERSMOUTH
|
||||
flags_inv = HIDEFACE|HIDEFACIALHAIR
|
||||
visor_flags_inv = HIDEFACE|HIDEFACIALHAIR
|
||||
|
||||
@@ -0,0 +1,185 @@
|
||||
/obj/item/clothing/neck/tie
|
||||
name = "tie"
|
||||
desc = "A neosilk clip-on tie."
|
||||
icon = 'icons/obj/clothing/neck.dmi'
|
||||
icon_state = "bluetie"
|
||||
item_state = "" //no inhands
|
||||
item_color = "bluetie"
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
|
||||
/obj/item/clothing/neck/tie/blue
|
||||
name = "blue tie"
|
||||
icon_state = "bluetie"
|
||||
item_color = "bluetie"
|
||||
|
||||
/obj/item/clothing/neck/tie/red
|
||||
name = "red tie"
|
||||
icon_state = "redtie"
|
||||
item_color = "redtie"
|
||||
|
||||
/obj/item/clothing/neck/tie/black
|
||||
name = "black tie"
|
||||
icon_state = "blacktie"
|
||||
item_color = "blacktie"
|
||||
|
||||
/obj/item/clothing/neck/tie/horrible
|
||||
name = "horrible tie"
|
||||
desc = "A neosilk clip-on tie. This one is disgusting."
|
||||
icon_state = "horribletie"
|
||||
item_color = "horribletie"
|
||||
|
||||
/obj/item/clothing/neck/stethoscope
|
||||
name = "stethoscope"
|
||||
desc = "An outdated medical apparatus for listening to the sounds of the human body. It also makes you look like you know what you're doing."
|
||||
icon_state = "stethoscope"
|
||||
item_color = "stethoscope"
|
||||
|
||||
/obj/item/clothing/neck/stethoscope/attack(mob/living/carbon/human/M, mob/living/user)
|
||||
if(ishuman(M) && isliving(user))
|
||||
if(user.a_intent == INTENT_HELP)
|
||||
var/body_part = parse_zone(user.zone_selected)
|
||||
if(body_part)
|
||||
var/their = "their"
|
||||
switch(M.gender)
|
||||
if(MALE)
|
||||
their = "his"
|
||||
if(FEMALE)
|
||||
their = "her"
|
||||
|
||||
var/sound = "pulse"
|
||||
var/sound_strength
|
||||
|
||||
if(M.stat == DEAD || (M.status_flags&FAKEDEATH))
|
||||
sound_strength = "cannot hear"
|
||||
sound = "anything"
|
||||
else
|
||||
sound_strength = "hear a weak"
|
||||
switch(body_part)
|
||||
if("chest")
|
||||
if(M.oxyloss < 50)
|
||||
sound_strength = "hear a healthy"
|
||||
sound = "pulse and respiration"
|
||||
if("eyes","mouth")
|
||||
sound_strength = "cannot hear"
|
||||
sound = "anything"
|
||||
else
|
||||
sound_strength = "hear a weak"
|
||||
|
||||
user.visible_message("[user] places [src] against [M]'s [body_part] and listens attentively.", "You place [src] against [their] [body_part]. You [sound_strength] [sound].")
|
||||
return
|
||||
return ..(M,user)
|
||||
|
||||
///////////
|
||||
//SCARVES//
|
||||
///////////
|
||||
|
||||
/obj/item/clothing/neck/scarf //Default white color, same functionality as beanies.
|
||||
name = "white scarf"
|
||||
icon_state = "scarf"
|
||||
desc = "A stylish scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks."
|
||||
item_color = "scarf"
|
||||
dog_fashion = /datum/dog_fashion/head
|
||||
|
||||
/obj/item/clothing/neck/scarf/black
|
||||
name = "black scarf"
|
||||
icon_state = "scarf"
|
||||
color = "#4A4A4B" //Grey but it looks black
|
||||
|
||||
/obj/item/clothing/neck/scarf/red
|
||||
name = "red scarf"
|
||||
icon_state = "scarf"
|
||||
color = "#D91414" //Red
|
||||
|
||||
/obj/item/clothing/neck/scarf/green
|
||||
name = "green scarf"
|
||||
icon_state = "scarf"
|
||||
color = "#5C9E54" //Green
|
||||
|
||||
/obj/item/clothing/neck/scarf/darkblue
|
||||
name = "dark blue scarf"
|
||||
icon_state = "scarf"
|
||||
color = "#1E85BC" //Blue
|
||||
|
||||
/obj/item/clothing/neck/scarf/purple
|
||||
name = "purple scarf"
|
||||
icon_state = "scarf"
|
||||
color = "#9557C5" //purple
|
||||
|
||||
/obj/item/clothing/neck/scarf/yellow
|
||||
name = "yellow scarf"
|
||||
icon_state = "scarf"
|
||||
color = "#E0C14F" //Yellow
|
||||
|
||||
/obj/item/clothing/neck/scarf/orange
|
||||
name = "orange scarf"
|
||||
icon_state = "scarf"
|
||||
color = "#C67A4B" //orange
|
||||
|
||||
/obj/item/clothing/neck/scarf/cyan
|
||||
name = "cyan scarf"
|
||||
icon_state = "scarf"
|
||||
color = "#54A3CE" //Cyan
|
||||
|
||||
|
||||
//Striped scarves get their own icons
|
||||
|
||||
/obj/item/clothing/neck/scarf/zebra
|
||||
name = "zebra scarf"
|
||||
icon_state = "zebrascarf"
|
||||
item_color = "zebrascarf"
|
||||
|
||||
/obj/item/clothing/neck/scarf/christmas
|
||||
name = "christmas scarf"
|
||||
icon_state = "christmasscarf"
|
||||
item_color = "christmasscarf"
|
||||
|
||||
//The three following scarves don't have the scarf subtype
|
||||
//This is because Ian can equip anything from that subtype
|
||||
//However, these 3 don't have corgi versions of their sprites
|
||||
/obj/item/clothing/neck/stripedredscarf
|
||||
name = "striped red scarf"
|
||||
icon_state = "stripedredscarf"
|
||||
item_color = "stripedredscarf"
|
||||
|
||||
/obj/item/clothing/neck/stripedgreenscarf
|
||||
name = "striped green scarf"
|
||||
icon_state = "stripedgreenscarf"
|
||||
item_color = "stripedgreenscarf"
|
||||
|
||||
/obj/item/clothing/neck/stripedbluescarf
|
||||
name = "striped blue scarf"
|
||||
icon_state = "stripedbluescarf"
|
||||
item_color = "stripedbluescarf"
|
||||
|
||||
/obj/item/clothing/neck/petcollar //don't really wear this though please c'mon seriously guys
|
||||
name = "pet collar"
|
||||
desc = "It's for pets. Though you probably could wear it yourself, you'd doubtless be the subject of ridicule."
|
||||
icon_state = "petcollar"
|
||||
item_color = "petcollar"
|
||||
var/tagname = null
|
||||
|
||||
/obj/item/clothing/neck/petcollar/attack_self(mob/user)
|
||||
tagname = copytext(sanitize(input(user, "Would you like to change the name on the tag?", "Name your new pet", "Spot") as null|text),1,MAX_NAME_LEN)
|
||||
name = "[initial(name)] - [tagname]"
|
||||
|
||||
//////////////
|
||||
//DOPE BLING//
|
||||
//////////////
|
||||
|
||||
/obj/item/clothing/neck/necklace/dope
|
||||
name = "gold necklace"
|
||||
desc = "Damn, it feels good to be a gangster."
|
||||
icon = 'icons/obj/clothing/ties.dmi'
|
||||
icon_state = "bling"
|
||||
item_color = "bling"
|
||||
|
||||
////////////////
|
||||
//OONGA BOONGA//
|
||||
////////////////
|
||||
|
||||
/obj/item/clothing/neck/talisman
|
||||
name = "bone talisman"
|
||||
desc = "A hunter's talisman, some say the old gods smile on those who wear it."
|
||||
icon_state = "talisman"
|
||||
item_color = "talisman"
|
||||
armor = list(melee = 5, bullet = 5, laser = 5, energy = 5, bomb = 20, bio = 20, rad = 5, fire = 0, acid = 25)
|
||||
@@ -11,9 +11,7 @@
|
||||
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()
|
||||
L.implant(H, null, 1)
|
||||
|
||||
var/obj/item/device/radio/R = H.ears
|
||||
R.set_frequency(CENTCOM_FREQ)
|
||||
@@ -28,13 +26,13 @@
|
||||
|
||||
id = /obj/item/weapon/card/id/ert
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/ert
|
||||
glasses = /obj/item/clothing/glasses/thermal/eyepatch
|
||||
glasses = /obj/item/clothing/glasses/hud/security/sunglasses
|
||||
back = /obj/item/weapon/storage/backpack/captain
|
||||
belt = /obj/item/weapon/storage/belt/security/full
|
||||
backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\
|
||||
/obj/item/weapon/melee/baton/loaded=1,\
|
||||
/obj/item/clothing/mask/gas/sechailer=1,\
|
||||
/obj/item/weapon/gun/energy/gun=1)
|
||||
/obj/item/weapon/gun/energy/e_gun=1)
|
||||
l_pocket = /obj/item/weapon/switchblade
|
||||
|
||||
/datum/outfit/ert/commander/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
@@ -42,7 +40,6 @@
|
||||
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/device/radio/R = H.ears
|
||||
R.keyslot = new /obj/item/device/encryptionkey/heads/captain
|
||||
R.recalculateChannels()
|
||||
@@ -50,6 +47,7 @@
|
||||
/datum/outfit/ert/commander/alert
|
||||
name = "ERT Commander - High Alert"
|
||||
|
||||
glasses = /obj/item/clothing/glasses/thermal/eyepatch
|
||||
backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\
|
||||
/obj/item/weapon/melee/baton/loaded=1,\
|
||||
/obj/item/clothing/mask/gas/sechailer/swat=1,\
|
||||
@@ -67,9 +65,9 @@
|
||||
backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\
|
||||
/obj/item/weapon/storage/box/handcuffs=1,\
|
||||
/obj/item/clothing/mask/gas/sechailer=1,\
|
||||
/obj/item/weapon/gun/energy/gun=1,\
|
||||
/obj/item/weapon/gun/energy/e_gun=1,\
|
||||
/obj/item/weapon/melee/baton/loaded=1,\
|
||||
/obj/item/weapon/gun/energy/gun/advtaser=1)
|
||||
/obj/item/weapon/gun/energy/e_gun/advtaser=1)
|
||||
|
||||
/datum/outfit/ert/security/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
..()
|
||||
@@ -97,13 +95,13 @@
|
||||
id = /obj/item/weapon/card/id/ert/Medical
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/ert/med
|
||||
glasses = /obj/item/clothing/glasses/hud/health
|
||||
back = /obj/item/weapon/storage/backpack/medic
|
||||
back = /obj/item/weapon/storage/backpack/satchel/med
|
||||
belt = /obj/item/weapon/storage/belt/medical
|
||||
r_hand = /obj/item/weapon/storage/firstaid/regular
|
||||
backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\
|
||||
/obj/item/weapon/melee/baton/loaded=1,\
|
||||
/obj/item/clothing/mask/gas/sechailer=1,\
|
||||
/obj/item/weapon/gun/energy/gun=1,\
|
||||
/obj/item/weapon/gun/energy/e_gun=1,\
|
||||
/obj/item/weapon/reagent_containers/hypospray/combat=1,\
|
||||
/obj/item/weapon/gun/medbeam=1)
|
||||
|
||||
@@ -140,7 +138,7 @@
|
||||
backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\
|
||||
/obj/item/weapon/melee/baton/loaded=1,\
|
||||
/obj/item/clothing/mask/gas/sechailer=1,\
|
||||
/obj/item/weapon/gun/energy/gun=1,\
|
||||
/obj/item/weapon/gun/energy/e_gun=1,\
|
||||
/obj/item/weapon/rcd/loaded=1)
|
||||
|
||||
/datum/outfit/ert/engineer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
@@ -171,9 +169,9 @@
|
||||
gloves = /obj/item/clothing/gloves/color/black
|
||||
ears = /obj/item/device/radio/headset/headset_cent
|
||||
glasses = /obj/item/clothing/glasses/sunglasses
|
||||
belt = /obj/item/weapon/gun/energy/gun
|
||||
belt = /obj/item/weapon/gun/energy/e_gun
|
||||
l_pocket = /obj/item/weapon/pen
|
||||
back = /obj/item/weapon/storage/backpack/satchel_norm
|
||||
back = /obj/item/weapon/storage/backpack/satchel
|
||||
r_pocket = /obj/item/device/pda/heads
|
||||
l_hand = /obj/item/weapon/clipboard
|
||||
id = /obj/item/weapon/card/id
|
||||
@@ -193,4 +191,4 @@
|
||||
W.access += access_weapons
|
||||
W.assignment = "Centcom Official"
|
||||
W.registered_name = H.real_name
|
||||
W.update_label()
|
||||
W.update_label()
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
suit = /obj/item/clothing/suit/det_suit
|
||||
glasses = /obj/item/clothing/glasses/thermal/monocle
|
||||
head = /obj/item/clothing/head/det_hat
|
||||
r_hand = /obj/item/weapon/gun/projectile
|
||||
r_hand = /obj/item/weapon/gun/ballistic
|
||||
l_hand = null
|
||||
r_pocket = /obj/item/ammo_box/c10mm
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/weapon/reagent_containers/glass/bucket/bucket = H.l_hand
|
||||
var/obj/item/weapon/reagent_containers/glass/bucket/bucket = H.get_item_for_held_index(1)
|
||||
bucket.reagents.add_reagent("water",70)
|
||||
|
||||
/datum/outfit/laser_tag
|
||||
@@ -133,9 +133,10 @@
|
||||
r_hand = /obj/item/weapon/twohanded/fireaxe
|
||||
|
||||
/datum/outfit/psycho/post_equip(mob/living/carbon/human/H)
|
||||
for(var/obj/item/carried_item in H.contents)
|
||||
if(!istype(carried_item, /obj/item/weapon/implant))//If it's not an implant.
|
||||
carried_item.add_mob_blood(H)//Oh yes, there will be blood...
|
||||
for(var/obj/item/carried_item in H.get_equipped_items())
|
||||
carried_item.add_mob_blood(H)//Oh yes, there will be blood...
|
||||
for(var/obj/item/I in H.held_items)
|
||||
I.add_mob_blood(H)
|
||||
H.regenerate_icons()
|
||||
|
||||
/datum/outfit/assassin
|
||||
@@ -159,13 +160,13 @@
|
||||
return
|
||||
|
||||
//Could use a type
|
||||
var/obj/item/weapon/storage/secure/briefcase/sec_briefcase = H.l_hand
|
||||
var/obj/item/weapon/storage/secure/briefcase/sec_briefcase = H.get_item_for_held_index(1)
|
||||
for(var/obj/item/briefcase_item in sec_briefcase)
|
||||
qdel(briefcase_item)
|
||||
for(var/i=3, i>0, i--)
|
||||
for(var/i = 3 to 0 step -1)
|
||||
sec_briefcase.handle_item_insertion(new /obj/item/stack/spacecash/c1000,1)
|
||||
sec_briefcase.handle_item_insertion(new /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow,1)
|
||||
sec_briefcase.handle_item_insertion(new /obj/item/weapon/gun/projectile/revolver/mateba,1)
|
||||
sec_briefcase.handle_item_insertion(new /obj/item/weapon/gun/ballistic/revolver/mateba,1)
|
||||
sec_briefcase.handle_item_insertion(new /obj/item/ammo_box/a357,1)
|
||||
sec_briefcase.handle_item_insertion(new /obj/item/weapon/grenade/plastic/x4,1)
|
||||
|
||||
@@ -191,10 +192,10 @@
|
||||
glasses = /obj/item/clothing/glasses/eyepatch
|
||||
mask = /obj/item/clothing/mask/cigarette/cigar/cohiba
|
||||
head = /obj/item/clothing/head/centhat
|
||||
belt = /obj/item/weapon/gun/projectile/revolver/mateba
|
||||
belt = /obj/item/weapon/gun/ballistic/revolver/mateba
|
||||
r_pocket = /obj/item/weapon/lighter
|
||||
l_pocket = /obj/item/ammo_box/a357
|
||||
back = /obj/item/weapon/storage/backpack/satchel
|
||||
back = /obj/item/weapon/storage/backpack/satchel/leather
|
||||
id = /obj/item/weapon/card/id
|
||||
|
||||
/datum/outfit/centcom_commander/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
@@ -222,7 +223,7 @@
|
||||
head = /obj/item/clothing/head/helmet/space/beret
|
||||
belt = /obj/item/weapon/gun/energy/pulse/pistol/m1911
|
||||
r_pocket = /obj/item/weapon/lighter
|
||||
back = /obj/item/weapon/storage/backpack/satchel
|
||||
back = /obj/item/weapon/storage/backpack/satchel/leather
|
||||
id = /obj/item/weapon/card/id
|
||||
|
||||
/datum/outfit/spec_ops/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
@@ -246,7 +247,7 @@
|
||||
|
||||
uniform = /obj/item/clothing/under/color/lightpurple
|
||||
suit = /obj/item/clothing/suit/wizrobe
|
||||
shoes = /obj/item/clothing/shoes/sandal
|
||||
shoes = /obj/item/clothing/shoes/sandal/magic
|
||||
ears = /obj/item/device/radio/headset
|
||||
head = /obj/item/clothing/head/wizard
|
||||
r_pocket = /obj/item/weapon/teleportation_scroll
|
||||
@@ -272,14 +273,14 @@
|
||||
name = "Soviet Admiral"
|
||||
|
||||
uniform = /obj/item/clothing/under/soviet
|
||||
head = /obj/item/clothing/head/hgpiratecap
|
||||
head = /obj/item/clothing/head/pirate/captain
|
||||
shoes = /obj/item/clothing/shoes/combat
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
ears = /obj/item/device/radio/headset/headset_cent
|
||||
glasses = /obj/item/clothing/glasses/thermal/eyepatch
|
||||
suit = /obj/item/clothing/suit/hgpirate
|
||||
back = /obj/item/weapon/storage/backpack/satchel
|
||||
belt = /obj/item/weapon/gun/projectile/revolver/mateba
|
||||
suit = /obj/item/clothing/suit/pirate/captain
|
||||
back = /obj/item/weapon/storage/backpack/satchel/leather
|
||||
belt = /obj/item/weapon/gun/ballistic/revolver/mateba
|
||||
|
||||
id = /obj/item/weapon/card/id
|
||||
|
||||
@@ -304,7 +305,7 @@
|
||||
gloves = /obj/item/clothing/gloves/color/black
|
||||
ears = /obj/item/device/radio/headset
|
||||
glasses = /obj/item/clothing/glasses/sunglasses
|
||||
r_hand = /obj/item/weapon/gun/projectile/automatic/tommygun
|
||||
r_hand = /obj/item/weapon/gun/ballistic/automatic/tommygun
|
||||
id = /obj/item/weapon/card/id
|
||||
|
||||
/datum/outfit/mobster/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
@@ -328,7 +329,7 @@
|
||||
name = "Death Commando"
|
||||
|
||||
uniform = /obj/item/clothing/under/color/green
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/deathsquad
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/shielded/swat
|
||||
shoes = /obj/item/clothing/shoes/combat/swat
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
mask = /obj/item/clothing/mask/gas/sechailer/swat
|
||||
@@ -337,7 +338,7 @@
|
||||
l_pocket = /obj/item/weapon/melee/energy/sword/saber
|
||||
r_pocket = /obj/item/weapon/shield/energy
|
||||
suit_store = /obj/item/weapon/tank/internals/emergency_oxygen
|
||||
belt = /obj/item/weapon/gun/projectile/revolver/mateba
|
||||
belt = /obj/item/weapon/gun/ballistic/revolver/mateba
|
||||
r_hand = /obj/item/weapon/gun/energy/pulse/loyalpin
|
||||
id = /obj/item/weapon/card/id
|
||||
ears = /obj/item/device/radio/headset/headset_cent/alt
|
||||
@@ -358,9 +359,7 @@
|
||||
R.freqlock = 1
|
||||
|
||||
var/obj/item/weapon/implant/mindshield/L = new/obj/item/weapon/implant/mindshield(H)//Here you go Deuryn
|
||||
L.imp_in = H
|
||||
L.implanted = 1
|
||||
H.sec_hud_set_implants()
|
||||
L.implant(H, null, 1)
|
||||
|
||||
|
||||
var/obj/item/weapon/card/id/W = H.wear_id
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
if(!bananium.get_item_material_amount(O))
|
||||
user << "<span class='notice'>This item has no bananium!</span>"
|
||||
return
|
||||
if(!user.unEquip(O))
|
||||
if(!user.dropItemToGround(O))
|
||||
user << "<span class='notice'>You can't drop [O]!</span>"
|
||||
return
|
||||
|
||||
|
||||
@@ -96,11 +96,8 @@
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/orange/attackby(obj/H, loc, params)
|
||||
..()
|
||||
if ((istype(H, /obj/item/weapon/restraints/handcuffs) && !( src.chained )))
|
||||
//H = null
|
||||
if (src.icon_state != "orange") return
|
||||
if(istype(H, /obj/item/weapon/restraints/handcuffs/cable))
|
||||
return 0
|
||||
// Note: not using istype here because we want to ignore all subtypes
|
||||
if (H.type == /obj/item/weapon/restraints/handcuffs && !chained)
|
||||
qdel(H)
|
||||
src.chained = 1
|
||||
src.slowdown = 15
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
actions_types = list(/datum/action/item_action/toggle)
|
||||
strip_delay = 70
|
||||
put_on_delay = 70
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF
|
||||
origin_tech = "materials=3;magnets=4;engineering=4"
|
||||
|
||||
/obj/item/clothing/shoes/magboots/verb/toggle()
|
||||
@@ -31,7 +31,7 @@
|
||||
icon_state = "[magboot_state][magpulse]"
|
||||
user << "<span class='notice'>You [magpulse ? "enable" : "disable"] the mag-pulse traction system.</span>"
|
||||
user.update_inv_shoes() //so our mob-overlays update
|
||||
user.update_gravity(user.mob_has_gravity())
|
||||
user.update_gravity(user.has_gravity())
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
@@ -51,6 +51,7 @@
|
||||
magboot_state = "advmag"
|
||||
slowdown_active = SHOES_SLOWDOWN
|
||||
origin_tech = null
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
|
||||
|
||||
/obj/item/clothing/shoes/magboots/syndie
|
||||
desc = "Reverse-engineered magnetic boots that have a heavy magnetic pull. Property of Gorlex Marauders."
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/item/clothing/shoes/proc/step_action() //this was made to rewrite clown shoes squeaking
|
||||
|
||||
/obj/item/clothing/shoes/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is bashing their own head in with [src]! Ain't that a kick in the head?</span>")
|
||||
user.visible_message("<span class='suicide'>[user] is bashing [user.p_their()] own head in with [src]! Ain't that a kick in the head?</span>")
|
||||
for(var/i = 0, i < 3, i++)
|
||||
sleep(3)
|
||||
playsound(user, 'sound/weapons/genhit2.ogg', 50, 1)
|
||||
@@ -17,17 +17,17 @@
|
||||
desc = "High speed, low drag combat boots."
|
||||
icon_state = "jackboots"
|
||||
item_state = "jackboots"
|
||||
armor = list(melee = 25, bullet = 25, laser = 25, energy = 25, bomb = 50, bio = 10, rad = 0)
|
||||
armor = list(melee = 25, bullet = 25, laser = 25, energy = 25, bomb = 50, bio = 10, rad = 0, fire = 70, acid = 50)
|
||||
strip_delay = 70
|
||||
burn_state = FIRE_PROOF
|
||||
can_hold_items = 1
|
||||
resistance_flags = 0
|
||||
pockets = /obj/item/weapon/storage/internal/pocket/shoes
|
||||
|
||||
/obj/item/clothing/shoes/combat/swat //overpowered boots for death squads
|
||||
name = "\improper SWAT boots"
|
||||
desc = "High speed, no drag combat boots."
|
||||
permeability_coefficient = 0.01
|
||||
flags = NOSLIP
|
||||
armor = list(melee = 40, bullet = 30, laser = 25, energy = 25, bomb = 50, bio = 30, rad = 30)
|
||||
armor = list(melee = 40, bullet = 30, laser = 25, energy = 25, bomb = 50, bio = 30, rad = 30, fire = 90, acid = 50)
|
||||
|
||||
/obj/item/clothing/shoes/sandal
|
||||
desc = "A pair of rather plain, wooden sandals."
|
||||
@@ -35,12 +35,17 @@
|
||||
icon_state = "wizard"
|
||||
strip_delay = 50
|
||||
put_on_delay = 50
|
||||
unacidable = 1
|
||||
|
||||
/obj/item/clothing/shoes/sandal/marisa
|
||||
desc = "A pair of magic black shoes."
|
||||
name = "magic shoes"
|
||||
icon_state = "black"
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
|
||||
/obj/item/clothing/shoes/sandal/magic
|
||||
name = "magical sandals"
|
||||
desc = "A pair of sandals imbued with magic"
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
|
||||
/obj/item/clothing/shoes/galoshes
|
||||
desc = "A pair of yellow rubber boots, designed to prevent slipping on wet surfaces."
|
||||
@@ -51,7 +56,8 @@
|
||||
slowdown = SHOES_SLOWDOWN+1
|
||||
strip_delay = 50
|
||||
put_on_delay = 50
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 40, acid = 75)
|
||||
|
||||
/obj/item/clothing/shoes/galoshes/dry
|
||||
name = "absorbent galoshes"
|
||||
@@ -72,8 +78,7 @@
|
||||
slowdown = SHOES_SLOWDOWN+1
|
||||
item_color = "clown"
|
||||
var/footstep = 1 //used for squeeks whilst walking
|
||||
can_hold_items = 1
|
||||
valid_held_items = list(/obj/item/weapon/bikehorn)
|
||||
pockets = /obj/item/weapon/storage/internal/pocket/shoes/clown
|
||||
|
||||
/obj/item/clothing/shoes/clown_shoes/step_action()
|
||||
if(footstep > 1)
|
||||
@@ -90,8 +95,8 @@
|
||||
item_color = "hosred"
|
||||
strip_delay = 50
|
||||
put_on_delay = 50
|
||||
burn_state = FIRE_PROOF
|
||||
can_hold_items = 1
|
||||
resistance_flags = 0
|
||||
pockets = /obj/item/weapon/storage/internal/pocket/shoes
|
||||
|
||||
/obj/item/clothing/shoes/jackboots/fast
|
||||
slowdown = -1
|
||||
@@ -105,7 +110,7 @@
|
||||
min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT
|
||||
heat_protection = FEET|LEGS
|
||||
max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT
|
||||
can_hold_items = 1
|
||||
pockets = /obj/item/weapon/storage/internal/pocket/shoes
|
||||
|
||||
/obj/item/clothing/shoes/workboots
|
||||
name = "work boots"
|
||||
@@ -114,13 +119,13 @@
|
||||
item_state = "jackboots"
|
||||
strip_delay = 40
|
||||
put_on_delay = 40
|
||||
can_hold_items = 1
|
||||
pockets = /obj/item/weapon/storage/internal/pocket/shoes
|
||||
|
||||
/obj/item/clothing/shoes/workboots/mining
|
||||
name = "mining boots"
|
||||
desc = "Steel-toed mining boots for mining in hazardous environments. Very good at keeping toes uncrushed."
|
||||
icon_state = "explorer"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/shoes/cult
|
||||
name = "nar-sian invoker boots"
|
||||
@@ -161,11 +166,52 @@
|
||||
desc = "A pair of costume boots fashioned after bird talons."
|
||||
icon_state = "griffinboots"
|
||||
item_state = "griffinboots"
|
||||
can_hold_items = 1
|
||||
pockets = /obj/item/weapon/storage/internal/pocket/shoes
|
||||
|
||||
/obj/item/clothing/shoes/yautja_fake
|
||||
name = "clan greaves"
|
||||
desc = "A pair of armored, perfectly balanced boots. Perfect for running through the jungle or the central primary hallway."
|
||||
icon_state = "yautjaboots"
|
||||
item_state = "yautjaboots"
|
||||
can_hold_items = 1
|
||||
/obj/item/clothing/shoes/bhop
|
||||
name = "jump boots"
|
||||
desc = "A specialized pair of combat boots with a built-in propulsion system for rapid foward movement."
|
||||
icon_state = "jetboots"
|
||||
item_state = "jetboots"
|
||||
item_color = "hosred"
|
||||
resistance_flags = FIRE_PROOF
|
||||
pockets = /obj/item/weapon/storage/internal/pocket/shoes
|
||||
actions_types = list(/datum/action/item_action/bhop)
|
||||
var/jumpdistance = 5 //-1 from to see the actual distance, e.g 4 goes over 3 tiles
|
||||
var/recharging_rate = 60 //default 6 seconds between each dash
|
||||
var/recharging_time = 0 //time until next dash
|
||||
var/jumping = FALSE //are we mid-jump?
|
||||
|
||||
/obj/item/clothing/shoes/bhop/ui_action_click(mob/user, action)
|
||||
if(!isliving(usr))
|
||||
return
|
||||
|
||||
if(jumping)
|
||||
return
|
||||
|
||||
if(recharging_time > world.time)
|
||||
usr << "<span class='warning'>The boot's internal propulsion needs to recharge still!</span>"
|
||||
return
|
||||
|
||||
var/atom/target = get_edge_target_turf(usr, usr.dir) //gets the user's direction
|
||||
|
||||
jumping = TRUE
|
||||
playsound(src.loc, 'sound/effects/stealthoff.ogg', 50, 1, 1)
|
||||
usr.visible_message("<span class='warning'>[usr] dashes foward into the air!</span>")
|
||||
usr.throw_at(target, jumpdistance, 1, spin=0, diagonals_first = 1, callback = CALLBACK(src, .proc/hop_end))
|
||||
|
||||
/obj/item/clothing/shoes/bhop/proc/hop_end()
|
||||
jumping = FALSE
|
||||
recharging_time = world.time + recharging_rate
|
||||
|
||||
/obj/item/clothing/shoes/singery
|
||||
name = "yellow performer's boots"
|
||||
desc = "These boots were made for dancing."
|
||||
icon_state = "ysing"
|
||||
put_on_delay = 50
|
||||
|
||||
/obj/item/clothing/shoes/singerb
|
||||
name = "blue performer's boots"
|
||||
desc = "These boots were made for dancing."
|
||||
icon_state = "bsing"
|
||||
put_on_delay = 50
|
||||
@@ -4,12 +4,13 @@
|
||||
icon_state = "chronohelmet"
|
||||
item_state = "chronohelmet"
|
||||
slowdown = 1
|
||||
armor = list(melee = 60, bullet = 30/*bullet through the visor*/, laser = 60, energy = 60, bomb = 30, bio = 90, rad = 90)
|
||||
armor = list(melee = 60, bullet = 30/*bullet through the visor*/, laser = 60, energy = 60, bomb = 30, bio = 90, rad = 90, fire = 100, acid = 100)
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
var/obj/item/clothing/suit/space/chronos/suit = null
|
||||
|
||||
/obj/item/clothing/head/helmet/space/chronos/dropped()
|
||||
if(suit)
|
||||
suit.deactivate()
|
||||
suit.deactivate(1, 1)
|
||||
..()
|
||||
|
||||
/obj/item/clothing/head/helmet/space/chronos/Destroy()
|
||||
@@ -19,21 +20,23 @@
|
||||
|
||||
/obj/item/clothing/suit/space/chronos
|
||||
name = "Chronosuit"
|
||||
desc = "An advanced spacesuit equipped with teleportation and anti-compression technology"
|
||||
desc = "An advanced spacesuit equipped with time-bluespace teleportation and anti-compression technology"
|
||||
icon_state = "chronosuit"
|
||||
item_state = "chronosuit"
|
||||
actions_types = list(/datum/action/item_action/toggle)
|
||||
armor = list(melee = 60, bullet = 60, laser = 60, energy = 60, bomb = 30, bio = 90, rad = 90)
|
||||
armor = list(melee = 60, bullet = 60, laser = 60, energy = 60, bomb = 30, bio = 90, rad = 90, fire = 100, acid = 1000)
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
var/list/chronosafe_items = list(/obj/item/weapon/chrono_eraser, /obj/item/weapon/gun/energy/chrono_gun)
|
||||
var/hands_nodrop_states
|
||||
var/list/hands_nodrop = list()
|
||||
var/obj/item/clothing/head/helmet/space/chronos/helmet = null
|
||||
var/obj/effect/chronos_cam/camera = null
|
||||
var/atom/movable/overlay/phase_underlay = null
|
||||
var/image/phase_underlay = null
|
||||
var/datum/action/innate/chrono_teleport/teleport_now = new
|
||||
var/activating = 0
|
||||
var/activated = 0
|
||||
var/cooldowntime = 50 //deciseconds
|
||||
var/teleporting = 0
|
||||
var/phase_timer_id
|
||||
|
||||
/obj/item/clothing/suit/space/chronos/New()
|
||||
..()
|
||||
@@ -69,25 +72,33 @@
|
||||
switch(severity)
|
||||
if(1)
|
||||
if(activated && user && ishuman(user) && (user.wear_suit == src))
|
||||
user << "<span class='userdanger'>E:FATAL:RAM_READ_FAIL\nE:FATAL:STACK_EMPTY\nE:FATAL:READ_NULL_POINT\nE:FATAL:PWR_BUS_OVERLOAD</span>"
|
||||
user << "<span class='danger'>E:FATAL:RAM_READ_FAIL\nE:FATAL:STACK_EMPTY\nE:FATAL:READ_NULL_POINT\nE:FATAL:PWR_BUS_OVERLOAD</span>"
|
||||
user << "<span class='userdanger'>An electromagnetic pulse disrupts your [name] and violently tears you out of time-bluespace!</span>"
|
||||
user.emote("scream")
|
||||
deactivate(1, 1)
|
||||
|
||||
/obj/item/clothing/suit/space/chronos/proc/finish_chronowalk()
|
||||
var/mob/living/carbon/human/user = src.loc
|
||||
/obj/item/clothing/suit/space/chronos/proc/finish_chronowalk(mob/living/carbon/human/user, turf/to_turf)
|
||||
if(!user)
|
||||
user = src.loc
|
||||
if(phase_timer_id)
|
||||
deltimer(phase_timer_id)
|
||||
phase_timer_id = 0
|
||||
if(istype(user))
|
||||
if(to_turf)
|
||||
user.forceMove(to_turf)
|
||||
user.SetStunned(0)
|
||||
user.next_move = 1
|
||||
user.alpha = 255
|
||||
user.color = "#ffffff"
|
||||
user.update_atom_colour()
|
||||
user.animate_movement = FORWARD_STEPS
|
||||
user.notransform = 0
|
||||
user.anchored = 0
|
||||
teleporting = 0
|
||||
if(user.l_hand && !(hands_nodrop_states & 1))
|
||||
user.l_hand.flags &= ~NODROP
|
||||
if(user.r_hand && !(hands_nodrop_states & 2))
|
||||
user.r_hand.flags &= ~NODROP
|
||||
for(var/obj/item/I in user.held_items)
|
||||
if(I in hands_nodrop)
|
||||
I.flags &= ~NODROP
|
||||
if(phase_underlay && !qdeleted(phase_underlay))
|
||||
user.underlays -= phase_underlay
|
||||
qdel(phase_underlay)
|
||||
phase_underlay = null
|
||||
if(camera)
|
||||
@@ -109,26 +120,26 @@
|
||||
|
||||
teleport_now.UpdateButtonIcon()
|
||||
|
||||
var/list/nonsafe_slots = list(slot_belt, slot_back, slot_l_hand, slot_r_hand)
|
||||
var/list/nonsafe_slots = list(slot_belt, slot_back)
|
||||
var/list/exposed = list()
|
||||
for(var/slot in nonsafe_slots)
|
||||
var/obj/item/slot_item = user.get_item_by_slot(slot)
|
||||
if(slot_item && !(slot_item.type in chronosafe_items) && user.unEquip(slot_item))
|
||||
user << "<span class='notice'>Your [slot_item.name] got left behind.</span>"
|
||||
exposed += slot_item
|
||||
exposed += user.held_items
|
||||
for(var/exposed_item in exposed)
|
||||
var/obj/item/exposed_I = exposed_item
|
||||
if(exposed_I && !(exposed_I.type in chronosafe_items) && user.dropItemToGround(exposed_I))
|
||||
user << "<span class='notice'>Your [exposed_I.name] got left behind.</span>"
|
||||
|
||||
user.ExtinguishMob()
|
||||
if(user.buckled)
|
||||
user.buckled.unbuckle_mob(user,force=1)
|
||||
|
||||
phase_underlay = create_phase_underlay(user)
|
||||
|
||||
hands_nodrop_states = 0
|
||||
if(user.l_hand)
|
||||
hands_nodrop_states |= (user.l_hand.flags & NODROP) ? 1 : 0
|
||||
user.l_hand.flags |= NODROP
|
||||
if(user.r_hand)
|
||||
hands_nodrop_states |= (user.r_hand.flags & NODROP) ? 2 : 0
|
||||
user.r_hand.flags |= NODROP
|
||||
|
||||
hands_nodrop = list()
|
||||
for(var/obj/item/I in user.held_items)
|
||||
if(!(I.flags & NODROP))
|
||||
hands_nodrop += I
|
||||
I.flags |= NODROP
|
||||
user.animate_movement = NO_STEPS
|
||||
user.changeNext_move(8 + phase_in_ds)
|
||||
user.notransform = 1
|
||||
@@ -136,39 +147,37 @@
|
||||
user.Stun(INFINITY)
|
||||
|
||||
animate(user, color = "#00ccee", time = 3)
|
||||
spawn(3)
|
||||
if(teleporting && activated && user && phase_underlay && !qdeleted(phase_underlay))
|
||||
animate(user, alpha = 0, time = 2)
|
||||
animate(phase_underlay, alpha = 255, time = 2)
|
||||
sleep(2)
|
||||
if(teleporting && activated && user && phase_underlay && !qdeleted(phase_underlay))
|
||||
phase_underlay.loc = to_turf
|
||||
user.loc = to_turf
|
||||
animate(user, alpha = 255, time = phase_in_ds)
|
||||
animate(phase_underlay, alpha = 0, time = phase_in_ds)
|
||||
sleep(phase_in_ds)
|
||||
if(teleporting && activated && phase_underlay && !qdeleted(phase_underlay))
|
||||
animate(user, color = "#ffffff", time = 3)
|
||||
sleep(3)
|
||||
if(teleporting && user && !qdeleted(user))
|
||||
user.loc = to_turf //this will cover if bad things happen before the teleport, yes it is redundant
|
||||
finish_chronowalk()
|
||||
phase_timer_id = addtimer(CALLBACK(src, .proc/phase_2, user, to_turf, phase_in_ds), 3, TIMER_STOPPABLE)
|
||||
|
||||
/obj/item/clothing/suit/space/chronos/proc/phase_2(mob/living/carbon/human/user, turf/to_turf, phase_in_ds)
|
||||
if(teleporting && activated && user)
|
||||
animate(user, alpha = 0, time = 2)
|
||||
phase_timer_id = addtimer(CALLBACK(src, .proc/phase_3, user, to_turf, phase_in_ds), 2, TIMER_STOPPABLE)
|
||||
else
|
||||
finish_chronowalk(user, to_turf)
|
||||
|
||||
/obj/item/clothing/suit/space/chronos/proc/phase_3(mob/living/carbon/human/user, turf/to_turf, phase_in_ds)
|
||||
if(teleporting && activated && user)
|
||||
user.forceMove(to_turf)
|
||||
animate(user, alpha = 255, time = phase_in_ds)
|
||||
phase_timer_id = addtimer(CALLBACK(src, .proc/phase_4, user, to_turf), phase_in_ds, TIMER_STOPPABLE)
|
||||
else
|
||||
finish_chronowalk(user, to_turf)
|
||||
|
||||
/obj/item/clothing/suit/space/chronos/proc/phase_4(mob/living/carbon/human/user, turf/to_turf)
|
||||
if(teleporting && activated && user)
|
||||
animate(user, color = "#ffffff", time = 3)
|
||||
phase_timer_id = addtimer(CALLBACK(src, .proc/finish_chronowalk, user, to_turf), 3, TIMER_STOPPABLE)
|
||||
else
|
||||
finish_chronowalk(user, to_turf)
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/chronos/proc/create_phase_underlay(var/mob/user)
|
||||
var/icon/user_icon = getFlatIcon(user)
|
||||
user_icon.Blend("#ffffff")
|
||||
var/atom/movable/overlay/phase = new(user.loc)
|
||||
phase.icon = user_icon
|
||||
phase.density = 1
|
||||
phase.anchored = 1
|
||||
phase.master = user
|
||||
phase.animate_movement = NO_STEPS
|
||||
phase.alpha = 0
|
||||
phase.mouse_opacity = 0
|
||||
phase.name = user.name
|
||||
phase.transform = user.transform
|
||||
phase.pixel_x = user.pixel_x
|
||||
phase.pixel_y = user.pixel_y
|
||||
var/icon/user_icon = icon('icons/effects/alphacolors.dmi', "")
|
||||
user_icon.AddAlphaMask(getFlatIcon(user))
|
||||
var/image/phase = new(user_icon)
|
||||
phase.appearance_flags = RESET_COLOR|RESET_ALPHA
|
||||
user.underlays += phase
|
||||
return phase
|
||||
|
||||
/obj/item/clothing/suit/space/chronos/process()
|
||||
@@ -191,61 +200,60 @@
|
||||
if(!activating && !activated && !teleporting)
|
||||
activating = 1
|
||||
var/mob/living/carbon/human/user = src.loc
|
||||
if(user && ishuman(user))
|
||||
if(user.wear_suit == src)
|
||||
user << "\nChronosuitMK4 login: root"
|
||||
user << "Password:\n"
|
||||
user << "root@ChronosuitMK4# chronowalk4 --start\n"
|
||||
if(user.head && istype(user.head, /obj/item/clothing/head/helmet/space/chronos))
|
||||
user << "\[ <span style='color: #00ff00;'>ok</span> \] Mounting /dev/helmet"
|
||||
helmet = user.head
|
||||
helmet.flags |= NODROP
|
||||
helmet.suit = src
|
||||
src.flags |= NODROP
|
||||
user << "\[ <span style='color: #00ff00;'>ok</span> \] Starting brainwave scanner"
|
||||
user << "\[ <span style='color: #00ff00;'>ok</span> \] Starting ui display driver"
|
||||
user << "\[ <span style='color: #00ff00;'>ok</span> \] Initializing chronowalk4-view"
|
||||
new_camera(user)
|
||||
START_PROCESSING(SSobj, src)
|
||||
activated = 1
|
||||
else
|
||||
user << "\[ <span style='color: #ff0000;'>fail</span> \] Mounting /dev/helmet"
|
||||
user << "<span style='color: #ff0000;'><b>FATAL: </b>Unable to locate /dev/helmet. <b>Aborting...</b>"
|
||||
if(user && ishuman(user) && user.wear_suit == src)
|
||||
user << "\nChronosuitMK4 login: root"
|
||||
user << "Password:\n"
|
||||
user << "root@ChronosuitMK4# chronowalk4 --start\n"
|
||||
if(user.head && istype(user.head, /obj/item/clothing/head/helmet/space/chronos))
|
||||
user << "\[ <span style='color: #00ff00;'>ok</span> \] Mounting /dev/helm"
|
||||
helmet = user.head
|
||||
helmet.flags |= NODROP
|
||||
helmet.suit = src
|
||||
src.flags |= NODROP
|
||||
user << "\[ <span style='color: #00ff00;'>ok</span> \] Starting brainwave scanner"
|
||||
user << "\[ <span style='color: #00ff00;'>ok</span> \] Starting ui display driver"
|
||||
user << "\[ <span style='color: #00ff00;'>ok</span> \] Initializing chronowalk4-view"
|
||||
new_camera(user)
|
||||
START_PROCESSING(SSobj, src)
|
||||
activated = 1
|
||||
else
|
||||
user << "\[ <span style='color: #ff0000;'>fail</span> \] Mounting /dev/helm"
|
||||
user << "<span style='color: #ff0000;'><b>FATAL: </b>Unable to locate /dev/helm. <b>Aborting...</b>"
|
||||
teleport_now.Grant(user)
|
||||
cooldown = world.time + cooldowntime
|
||||
activating = 0
|
||||
return 0
|
||||
|
||||
/obj/item/clothing/suit/space/chronos/proc/deactivate(force = 0, silent = 0)
|
||||
if(activated && (!teleporting || force))
|
||||
activating = 1
|
||||
var/mob/living/carbon/human/user = src.loc
|
||||
if(user && ishuman(user))
|
||||
if(user.wear_suit == src)
|
||||
if(!silent)
|
||||
user << "\nroot@ChronosuitMK4# chronowalk4 --stop\n"
|
||||
if(camera)
|
||||
if(!silent)
|
||||
user << "\[ <span style='color: #ff5500;'>ok</span> \] Sending TERM signal to chronowalk4-view" //yes I know they aren't a different color when shutting down, but they were too similar at a glance
|
||||
qdel(camera)
|
||||
if(helmet)
|
||||
if(!silent)
|
||||
user << "\[ <span style='color: #ff5500;'>ok</span> \] Stopping ui display driver"
|
||||
user << "\[ <span style='color: #ff5500;'>ok</span> \] Stopping brainwave scanner"
|
||||
user << "\[ <span style='color: #ff5500;'>ok</span> \] Unmounting /dev/helmet"
|
||||
helmet.flags &= ~NODROP
|
||||
helmet.suit = null
|
||||
helmet = null
|
||||
if(!silent)
|
||||
user << "logout"
|
||||
teleport_now.Remove(user)
|
||||
var/hard_landing = teleporting && force
|
||||
src.flags &= ~NODROP
|
||||
cooldown = world.time + cooldowntime * 1.5
|
||||
activated = 0
|
||||
activating = 0
|
||||
finish_chronowalk()
|
||||
if(teleporting && force)
|
||||
user.electrocute_act(35, src, safety = 1)
|
||||
if(user && ishuman(user))
|
||||
teleport_now.Remove(user)
|
||||
if(user.wear_suit == src)
|
||||
if(hard_landing)
|
||||
user.electrocute_act(35, src, safety = 1)
|
||||
user.Weaken(10)
|
||||
if(!silent)
|
||||
user << "\nroot@ChronosuitMK4# chronowalk4 --stop\n"
|
||||
if(camera)
|
||||
user << "\[ <span style='color: #ff5500;'>ok</span> \] Sending TERM signal to chronowalk4-view"
|
||||
if(helmet)
|
||||
user << "\[ <span style='color: #ff5500;'>ok</span> \] Stopping ui display driver"
|
||||
user << "\[ <span style='color: #ff5500;'>ok</span> \] Stopping brainwave scanner"
|
||||
user << "\[ <span style='color: #ff5500;'>ok</span> \] Unmounting /dev/helmet"
|
||||
user << "logout"
|
||||
if(helmet)
|
||||
helmet.flags &= ~NODROP
|
||||
helmet.suit = null
|
||||
helmet = null
|
||||
if(camera)
|
||||
qdel(camera)
|
||||
|
||||
/obj/effect/chronos_cam
|
||||
name = "Chronosuit View"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -4,7 +4,9 @@
|
||||
desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding."
|
||||
icon_state = "hardsuit0-engineering"
|
||||
item_state = "eng_helm"
|
||||
armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75)
|
||||
obj_integrity = 300
|
||||
max_integrity = 300
|
||||
armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75, fire = 50, acid = 75)
|
||||
var/basestate = "hardsuit"
|
||||
var/brightness_on = 4 //luminosity when on
|
||||
var/on = 0
|
||||
@@ -19,16 +21,25 @@
|
||||
user.update_inv_head() //so our mob-overlays update
|
||||
|
||||
if(on)
|
||||
set_light(brightness_on)
|
||||
user.AddLuminosity(brightness_on)
|
||||
else
|
||||
set_light(0)
|
||||
|
||||
user.AddLuminosity(-brightness_on)
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/pickup(mob/user)
|
||||
..()
|
||||
if(on)
|
||||
user.AddLuminosity(brightness_on)
|
||||
SetLuminosity(0)
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/dropped(mob/user)
|
||||
..()
|
||||
if(on)
|
||||
user.AddLuminosity(-brightness_on)
|
||||
SetLuminosity(brightness_on)
|
||||
if(suit)
|
||||
suit.RemoveHelmet()
|
||||
|
||||
@@ -63,7 +74,9 @@
|
||||
desc = "A special suit that protects against hazardous, low pressure environments. Has radiation shielding."
|
||||
icon_state = "hardsuit-engineering"
|
||||
item_state = "eng_hardsuit"
|
||||
armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75)
|
||||
obj_integrity = 300
|
||||
max_integrity = 300
|
||||
armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75, fire = 50, acid = 75)
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/device/t_scanner, /obj/item/weapon/rcd, /obj/item/weapon/pipe_dispenser)
|
||||
siemens_coefficient = 0
|
||||
var/obj/item/clothing/head/helmet/space/hardsuit/helmet
|
||||
@@ -71,11 +84,43 @@
|
||||
var/helmettype = /obj/item/clothing/head/helmet/space/hardsuit
|
||||
var/obj/item/weapon/tank/jetpack/suit/jetpack = null
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/New()
|
||||
if(jetpack && ispath(jetpack))
|
||||
jetpack = new jetpack(src)
|
||||
..()
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/attack_self(mob/user)
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
..()
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/weapon/tank/jetpack/suit))
|
||||
if(jetpack)
|
||||
user << "<span class='warning'>[src] already has a jetpack installed.</span>"
|
||||
return
|
||||
if(src == user.get_item_by_slot(slot_wear_suit)) //Make sure the player is not wearing the suit before applying the upgrade.
|
||||
user << "<span class='warning'>You cannot install the upgrade to [src] while wearing it.</span>"
|
||||
return
|
||||
|
||||
if(user.transferItemToLoc(I, src))
|
||||
jetpack = I
|
||||
user << "<span class='notice'>You successfully install the jetpack into [src].</span>"
|
||||
|
||||
else if(istype(I, /obj/item/weapon/screwdriver))
|
||||
if(!jetpack)
|
||||
user << "<span class='warning'>[src] has no jetpack installed.</span>"
|
||||
return
|
||||
if(src == user.get_item_by_slot(slot_wear_suit))
|
||||
user << "<span class='warning'>You cannot remove the jetpack from [src] while wearing it.</span>"
|
||||
return
|
||||
|
||||
jetpack.turn_off()
|
||||
jetpack.loc = get_turf(src)
|
||||
jetpack = null
|
||||
user << "<span class='notice'>You successfully remove the jetpack from [src].</span>"
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/equipped(mob/user, slot)
|
||||
..()
|
||||
if(jetpack)
|
||||
@@ -101,16 +146,18 @@
|
||||
desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding."
|
||||
icon_state = "hardsuit0-engineering"
|
||||
item_state = "eng_helm"
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75)
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75, fire = 100, acid = 75)
|
||||
item_color = "engineering"
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/engine
|
||||
name = "engineering hardsuit"
|
||||
desc = "A special suit that protects against hazardous, low pressure environments. Has radiation shielding."
|
||||
icon_state = "hardsuit-engineering"
|
||||
item_state = "eng_hardsuit"
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75)
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75, fire = 100, acid = 75)
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
//Atmospherics
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/engine/atmos
|
||||
@@ -119,7 +166,7 @@
|
||||
icon_state = "hardsuit0-atmospherics"
|
||||
item_state = "atmo_helm"
|
||||
item_color = "atmospherics"
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 0)
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 0, fire = 100, acid = 75)
|
||||
heat_protection = HEAD //Uncomment to enable firesuit protection
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
|
||||
|
||||
@@ -128,7 +175,7 @@
|
||||
desc = "A special suit that protects against hazardous, low pressure environments. Has thermal shielding."
|
||||
icon_state = "hardsuit-atmospherics"
|
||||
item_state = "atmo_hardsuit"
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 0)
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 0, fire = 100, acid = 75)
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine/atmos
|
||||
@@ -141,23 +188,21 @@
|
||||
icon_state = "hardsuit0-white"
|
||||
item_state = "ce_helm"
|
||||
item_color = "white"
|
||||
armor = list(melee = 40, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 90)
|
||||
heat_protection = HEAD //Uncomment to enable firesuit protection
|
||||
armor = list(melee = 40, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 90, fire = 100, acid = 90)
|
||||
heat_protection = HEAD
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/engine/elite
|
||||
icon_state = "hardsuit-white"
|
||||
name = "advanced hardsuit"
|
||||
desc = "An advanced suit that protects against hazardous, low pressure environments. Shines with a high polish."
|
||||
item_state = "ce_hardsuit"
|
||||
armor = list(melee = 40, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 90)
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection
|
||||
armor = list(melee = 40, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 90, fire = 100, acid = 90)
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine/elite
|
||||
jetpack = /obj/item/weapon/tank/jetpack/suit
|
||||
|
||||
|
||||
//Mining hardsuit
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/mining
|
||||
name = "mining hardsuit helmet"
|
||||
@@ -166,8 +211,9 @@
|
||||
item_state = "mining_helm"
|
||||
item_color = "mining"
|
||||
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
|
||||
resistance_flags = FIRE_PROOF
|
||||
heat_protection = CHEST|GROIN|LEGS|ARMS
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 50)
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 50, fire = 50, acid = 75)
|
||||
brightness_on = 7
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/resonator, /obj/item/device/mining_scanner, /obj/item/device/t_scanner/adv_mining_scanner, /obj/item/weapon/gun/energy/kinetic_accelerator)
|
||||
|
||||
@@ -178,12 +224,11 @@
|
||||
desc = "A special suit that protects against hazardous, low pressure environments. Has reinforced plating for wildlife encounters."
|
||||
item_state = "mining_hardsuit"
|
||||
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 50)
|
||||
resistance_flags = FIRE_PROOF
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 50, fire = 50, acid = 75)
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/weapon/storage/bag/ore,/obj/item/weapon/pickaxe)
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/mining
|
||||
|
||||
|
||||
|
||||
//Syndicate hardsuit
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/syndi
|
||||
name = "blood-red hardsuit helmet"
|
||||
@@ -192,7 +237,7 @@
|
||||
icon_state = "hardsuit1-syndi"
|
||||
item_state = "syndie_helm"
|
||||
item_color = "syndi"
|
||||
armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50)
|
||||
armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50, fire = 50, acid = 90)
|
||||
on = 1
|
||||
var/obj/item/clothing/suit/space/hardsuit/syndi/linkedsuit = null
|
||||
actions_types = list(/datum/action/item_action/toggle_helmet_mode)
|
||||
@@ -216,7 +261,7 @@
|
||||
user << "<span class='notice'>You switch your hardsuit to EVA mode, sacrificing speed for space protection.</span>"
|
||||
name = initial(name)
|
||||
desc = initial(desc)
|
||||
set_light(brightness_on)
|
||||
user.AddLuminosity(brightness_on)
|
||||
flags |= visor_flags
|
||||
flags_cover |= HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
flags_inv |= visor_flags_inv
|
||||
@@ -225,7 +270,7 @@
|
||||
user << "<span class='notice'>You switch your hardsuit to combat mode and can now run at full speed.</span>"
|
||||
name += " (combat)"
|
||||
desc = alt_desc
|
||||
set_light(0)
|
||||
user.AddLuminosity(-brightness_on)
|
||||
flags &= ~visor_flags
|
||||
flags_cover &= ~(HEADCOVERSEYES | HEADCOVERSMOUTH)
|
||||
flags_inv &= ~visor_flags_inv
|
||||
@@ -269,13 +314,12 @@
|
||||
icon_state = "hardsuit1-syndi"
|
||||
item_state = "syndie_hardsuit"
|
||||
item_color = "syndi"
|
||||
w_class = 3
|
||||
armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50)
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50, fire = 50, acid = 90)
|
||||
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals)
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi
|
||||
jetpack = /obj/item/weapon/tank/jetpack/suit
|
||||
|
||||
|
||||
//Elite Syndie suit
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/syndi/elite
|
||||
name = "elite syndicate hardsuit helmet"
|
||||
@@ -283,12 +327,13 @@
|
||||
alt_desc = "An elite version of the syndicate helmet, with improved armour and fire shielding. It is in combat mode. Property of Gorlex Marauders."
|
||||
icon_state = "hardsuit0-syndielite"
|
||||
item_color = "syndielite"
|
||||
armor = list(melee = 60, bullet = 60, laser = 50, energy = 25, bomb = 55, bio = 100, rad = 70)
|
||||
armor = list(melee = 60, bullet = 60, laser = 50, energy = 25, bomb = 55, bio = 100, rad = 70, fire = 100, acid = 100)
|
||||
heat_protection = HEAD
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
|
||||
visor_flags_inv = 0
|
||||
visor_flags = 0
|
||||
on = 0
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/syndi/elite
|
||||
@@ -298,10 +343,10 @@
|
||||
icon_state = "hardsuit0-syndielite"
|
||||
item_color = "syndielite"
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite
|
||||
armor = list(melee = 60, bullet = 60, laser = 50, energy = 25, bomb = 55, bio = 100, rad = 70)
|
||||
armor = list(melee = 60, bullet = 60, laser = 50, energy = 25, bomb = 55, bio = 100, rad = 70, fire = 100, acid = 100)
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
|
||||
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
|
||||
//The Owl Hardsuit
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/syndi/owl
|
||||
@@ -332,8 +377,8 @@
|
||||
icon_state = "hardsuit0-wiz"
|
||||
item_state = "wiz_helm"
|
||||
item_color = "wiz"
|
||||
unacidable = 1 //No longer shall our kind be foiled by lone chemists with spray bottles!
|
||||
armor = list(melee = 40, bullet = 40, laser = 40, energy = 20, bomb = 35, bio = 100, rad = 50)
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF //No longer shall our kind be foiled by lone chemists with spray bottles!
|
||||
armor = list(melee = 40, bullet = 40, laser = 40, energy = 20, bomb = 35, bio = 100, rad = 50, fire = 100, acid = 100)
|
||||
heat_protection = HEAD //Uncomment to enable firesuit protection
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
|
||||
|
||||
@@ -342,9 +387,9 @@
|
||||
name = "gem-encrusted hardsuit"
|
||||
desc = "A bizarre gem-encrusted suit that radiates magical energies."
|
||||
item_state = "wiz_hardsuit"
|
||||
w_class = 3
|
||||
unacidable = 1
|
||||
armor = list(melee = 40, bullet = 40, laser = 40, energy = 20, bomb = 35, bio = 100, rad = 50)
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
armor = list(melee = 40, bullet = 40, laser = 40, energy = 20, bomb = 35, bio = 100, rad = 50, fire = 100, acid = 100)
|
||||
allowed = list(/obj/item/weapon/teleportation_scroll,/obj/item/weapon/tank/internals)
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
|
||||
@@ -359,7 +404,7 @@
|
||||
item_state = "medical_helm"
|
||||
item_color = "medical"
|
||||
flash_protect = 0
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 50)
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 50, fire = 75, acid = 75)
|
||||
scan_reagents = 1
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/medical
|
||||
@@ -368,38 +413,19 @@
|
||||
desc = "A special suit that protects against hazardous, low pressure environments. Built with lightweight materials for easier movement."
|
||||
item_state = "medical_hardsuit"
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/weapon/storage/firstaid,/obj/item/device/healthanalyzer,/obj/item/stack/medical)
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 50)
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 50, fire = 75, acid = 75)
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/medical
|
||||
|
||||
//Captain hardsuit
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/captain
|
||||
name = "captain's hardsuit helmet"
|
||||
desc = "An advanced, armoured helmet for travel and combat in a hazardous, low pressure environment. Feels extra cozy."
|
||||
icon_state = "hardsuit0-captain"
|
||||
item_state = "captain_helm"
|
||||
item_color = "captain"
|
||||
armor = list(melee = 40, bullet = 50, laser = 50, energy = 25, bomb = 50, bio = 100, rad = 50)
|
||||
flash_protect = 1
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/captain
|
||||
name = "captain's hardsuit"
|
||||
desc = "An advanced, Nanotrasen exclusive, heavily armoured hardsuit that protects against hazardous, low pressure environments. Warm, sexy, and stylish."
|
||||
icon_state = "hardsuit-captain"
|
||||
item_state = "captain_hardsuit"
|
||||
allowed = list(/obj/item/weapon/tank/internals, /obj/item/device/flashlight,/obj/item/weapon/gun/energy, /obj/item/weapon/gun/projectile, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs)
|
||||
armor = list(melee = 40, bullet = 50, laser = 50, energy = 25, bomb = 50, bio = 100, rad = 50)
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/captain
|
||||
|
||||
//Research Director hardsuit
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/rd
|
||||
name = "prototype hardsuit helmet"
|
||||
desc = "A prototype helmet designed for research in a hazardous, low pressure environment. Scientific data flashes across the visor."
|
||||
icon_state = "hardsuit0-rd"
|
||||
item_color = "rd"
|
||||
unacidable = 1
|
||||
resistance_flags = ACID_PROOF | FIRE_PROOF
|
||||
var/onboard_hud_enabled = 0 //stops conflicts with another diag HUD
|
||||
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 100, bio = 100, rad = 60)
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 100, bio = 100, rad = 60, fire = 60, acid = 80)
|
||||
var/obj/machinery/doppler_array/integrated/bomb_radar
|
||||
scan_reagents = 1
|
||||
actions_types = list(/datum/action/item_action/toggle_helmet_light, /datum/action/item_action/toggle_research_scanner)
|
||||
@@ -428,11 +454,11 @@
|
||||
name = "prototype hardsuit"
|
||||
desc = "A prototype suit that protects against hazardous, low pressure environments. Fitted with extensive plating for handling explosives and dangerous research materials."
|
||||
item_state = "hardsuit-rd"
|
||||
unacidable = 1
|
||||
resistance_flags = ACID_PROOF | FIRE_PROOF
|
||||
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT //Same as an emergency firesuit. Not ideal for extended exposure.
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/gun/energy/wormhole_projector,
|
||||
/obj/item/weapon/hand_tele, /obj/item/device/aicard)
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 100, bio = 100, rad = 60)
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 100, bio = 100, rad = 60, fire = 60, acid = 80)
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/rd
|
||||
|
||||
|
||||
@@ -444,7 +470,7 @@
|
||||
icon_state = "hardsuit0-sec"
|
||||
item_state = "sec_helm"
|
||||
item_color = "sec"
|
||||
armor = list(melee = 30, bullet = 15, laser = 30,energy = 10, bomb = 10, bio = 100, rad = 50)
|
||||
armor = list(melee = 30, bullet = 15, laser = 30,energy = 10, bomb = 10, bio = 100, rad = 50, fire = 75, acid = 75)
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/security
|
||||
@@ -452,8 +478,8 @@
|
||||
name = "security hardsuit"
|
||||
desc = "A special suit that protects against hazardous, low pressure environments. Has an additional layer of armor."
|
||||
item_state = "sec_hardsuit"
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs)
|
||||
armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50)
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs)
|
||||
armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50, fire = 75, acid = 75)
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/security/hos
|
||||
@@ -461,16 +487,69 @@
|
||||
desc = "a special bulky helmet designed for work in a hazardous, low pressure environment. Has an additional layer of armor."
|
||||
icon_state = "hardsuit0-hos"
|
||||
item_color = "hos"
|
||||
armor = list(melee = 45, bullet = 25, laser = 30,energy = 10, bomb = 25, bio = 100, rad = 50)
|
||||
armor = list(melee = 45, bullet = 25, laser = 30,energy = 10, bomb = 25, bio = 100, rad = 50, fire = 95, acid = 95)
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/security/hos
|
||||
icon_state = "hardsuit-hos"
|
||||
name = "head of security's hardsuit"
|
||||
desc = "A special bulky suit that protects against hazardous, low pressure environments. Has an additional layer of armor."
|
||||
armor = list(melee = 45, bullet = 25, laser = 30, energy = 10, bomb = 25, bio = 100, rad = 50)
|
||||
armor = list(melee = 45, bullet = 25, laser = 30, energy = 10, bomb = 25, bio = 100, rad = 50, fire = 95, acid = 95)
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security/hos
|
||||
|
||||
//Captain
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/captain
|
||||
name = "captain's hardsuit helmet"
|
||||
icon_state = "capspace"
|
||||
item_state = "capspacehelmet"
|
||||
desc = "A tactical SWAT helmet MK.II boasting better protection and a horrible fashion sense."
|
||||
armor = list(melee = 40, bullet = 50, laser = 50, energy = 25, bomb = 50, bio = 100, rad = 50, fire = 100, acid = 100)
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR //we want to see the mask
|
||||
heat_protection = HEAD
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
|
||||
actions_types = list()
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/captain/attack_self()
|
||||
return //Sprites required for flashlight
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/captain
|
||||
name = "captain's SWAT suit"
|
||||
desc = "A MK.II SWAT suit with streamlined joints and armor made out of superior materials, insulated against intense heat. The most advanced tactical armor available Usually reserved for heavy hitter corporate security, this one has a regal finish in Nanotrasen company colors. Better not let the assistants get a hold of it."
|
||||
icon_state = "caparmor"
|
||||
item_state = "capspacesuit"
|
||||
allowed = list(/obj/item/weapon/tank/internals, /obj/item/device/flashlight,/obj/item/weapon/gun/energy, /obj/item/weapon/gun/ballistic, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs)
|
||||
armor = list(melee = 40, bullet = 50, laser = 50, energy = 25, bomb = 50, bio = 100, rad = 50, fire = 100, acid = 100)
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT //this needed to be added a long fucking time ago
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/captain
|
||||
|
||||
//Clown
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/clown
|
||||
name = "cosmohonk hardsuit helmet"
|
||||
desc = "A special helmet designed for work in a hazardous, low-humor environment. Has radiation shielding."
|
||||
icon_state = "hardsuit0-clown"
|
||||
item_state = "hardsuit0-clown"
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75, fire = 60, acid = 30)
|
||||
item_color = "clown"
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/clown
|
||||
name = "cosmohonk hardsuit"
|
||||
desc = "A special suit that protects against hazardous, low humor environments. Has radiation shielding. Only a true clown can wear it."
|
||||
icon_state = "hardsuit-clown"
|
||||
item_state = "clown_hardsuit"
|
||||
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75, fire = 60, acid = 30)
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/clown
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/clown/mob_can_equip(mob/M, slot)
|
||||
if(!..() || !ishuman(M))
|
||||
return FALSE
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.mind.assigned_role == "Clown")
|
||||
return TRUE
|
||||
else
|
||||
return FALSE
|
||||
|
||||
|
||||
/////////////SHIELDED//////////////////////////////////
|
||||
@@ -481,7 +560,8 @@
|
||||
icon_state = "hardsuit-hos"
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security/hos
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/gun,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs)
|
||||
armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50)
|
||||
armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50, fire = 100, acid = 100)
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
var/current_charges = 3
|
||||
var/max_charges = 3 //How many charges total the shielding has
|
||||
var/recharge_delay = 200 //How long after we've been shot before we can start recharging. 20 seconds here
|
||||
@@ -490,19 +570,16 @@
|
||||
var/shield_state = "shield-old"
|
||||
var/shield_on = "shield-old"
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/shielded/New()
|
||||
jetpack = new /obj/item/weapon/tank/jetpack/suit(src)
|
||||
..()
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/shielded/hit_reaction(mob/living/carbon/human/owner, attack_text)
|
||||
recharge_cooldown = world.time + recharge_delay
|
||||
if(current_charges > 0)
|
||||
var/datum/effect_system/spark_spread/s = new
|
||||
s.set_up(2, 1, src)
|
||||
s.start()
|
||||
owner.visible_message("<span class='danger'>[owner]'s shields deflect [attack_text] in a shower of sparks!</span>")
|
||||
current_charges--
|
||||
recharge_cooldown = world.time + recharge_delay
|
||||
START_PROCESSING(SSobj, src)
|
||||
if(recharge_rate)
|
||||
START_PROCESSING(SSobj, src)
|
||||
if(current_charges <= 0)
|
||||
owner.visible_message("[owner]'s shield overloads!")
|
||||
shield_state = "broken"
|
||||
@@ -523,17 +600,17 @@
|
||||
playsound(loc, 'sound/machines/ding.ogg', 50, 1)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
shield_state = "[shield_on]"
|
||||
if(istype(loc, /mob/living/carbon/human))
|
||||
if(ishuman(loc))
|
||||
var/mob/living/carbon/human/C = loc
|
||||
C.update_inv_wear_suit()
|
||||
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/shielded/worn_overlays(isinhands)
|
||||
. = list()
|
||||
if(!isinhands)
|
||||
. += image(icon = 'icons/effects/effects.dmi', icon_state = "[shield_state]")
|
||||
. += image(layer = MOB_LAYER+0.01, icon = 'icons/effects/effects.dmi', icon_state = "[shield_state]")
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/shielded
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
|
||||
///////////////Capture the Flag////////////////////
|
||||
|
||||
@@ -545,7 +622,7 @@
|
||||
item_color = "ert_medical"
|
||||
flags = STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP //Dont want people changing into the other teams gear
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf
|
||||
armor = list(melee = 0, bullet = 30, laser = 30, energy = 30, bomb = 50, bio = 100, rad = 100)
|
||||
armor = list(melee = 0, bullet = 30, laser = 30, energy = 30, bomb = 50, bio = 100, rad = 100, fire = 95, acid = 95)
|
||||
slowdown = 0
|
||||
max_charges = 5
|
||||
|
||||
@@ -573,7 +650,7 @@
|
||||
icon_state = "hardsuit0-ert_medical"
|
||||
item_state = "hardsuit0-ert_medical"
|
||||
item_color = "ert_medical"
|
||||
armor = list(melee = 0, bullet = 30, laser = 30, energy = 30, bomb = 50, bio = 100, rad = 100)
|
||||
armor = list(melee = 0, bullet = 30, laser = 30, energy = 30, bomb = 50, bio = 100, rad = 100, fire = 95, acid = 95)
|
||||
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf/red
|
||||
@@ -600,16 +677,47 @@
|
||||
icon_state = "hardsuit1-syndi"
|
||||
item_state = "syndie_hardsuit"
|
||||
item_color = "syndi"
|
||||
armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50)
|
||||
armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50, fire = 100, acid = 100)
|
||||
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals)
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/syndi
|
||||
slowdown = 0
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/shielded/syndi/New()
|
||||
jetpack = new /obj/item/weapon/tank/jetpack/suit(src)
|
||||
..()
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/shielded/syndi
|
||||
name = "blood-red hardsuit helmet"
|
||||
desc = "An advanced hardsuit helmet with built in energy shielding."
|
||||
icon_state = "hardsuit1-syndi"
|
||||
item_state = "syndie_helm"
|
||||
item_color = "syndi"
|
||||
armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50)
|
||||
armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50, fire = 100, acid = 100)
|
||||
|
||||
///SWAT version
|
||||
/obj/item/clothing/suit/space/hardsuit/shielded/swat
|
||||
name = "death commando spacesuit"
|
||||
desc = "an advanced hardsuit favored by commandos for use in special operations."
|
||||
icon_state = "deathsquad"
|
||||
item_state = "swat_suit"
|
||||
item_color = "syndi"
|
||||
max_charges = 4
|
||||
current_charges = 4
|
||||
recharge_delay = 15
|
||||
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100)
|
||||
strip_delay = 130
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/swat
|
||||
dog_fashion = /datum/dog_fashion/back/deathsquad
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/shielded/swat
|
||||
name = "death commando helmet"
|
||||
desc = "A tactical helmet with built in energy shielding."
|
||||
icon_state = "deathsquad"
|
||||
item_state = "deathsquad"
|
||||
item_color = "syndi"
|
||||
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100)
|
||||
strip_delay = 130
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
|
||||
actions_types = list()
|
||||
|
||||
@@ -16,41 +16,42 @@ Contains:
|
||||
|
||||
//Death squad armored space suits, not hardsuits!
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/deathsquad
|
||||
name = "deathsquad helmet"
|
||||
desc = "That's not red paint. That's real blood."
|
||||
name = "MK.III SWAT Helmet"
|
||||
desc = "An advanced tactical space helmet."
|
||||
icon_state = "deathsquad"
|
||||
item_state = "deathsquad"
|
||||
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100)
|
||||
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100)
|
||||
strip_delay = 130
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
|
||||
unacidable = 1
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
actions_types = list()
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/deathsquad/attack_self(mob/user)
|
||||
return
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/deathsquad
|
||||
name = "deathsquad suit"
|
||||
desc = "A heavily armored, advanced space suit that protects against most forms of damage."
|
||||
name = "MK.III SWAT Suit"
|
||||
desc = "A prototype designed to replace the ageing MK.II SWAT suit. Based on the streamlined MK.II model, the traditional ceramic and graphene plate construction was replaced with plasteel, allowing superior armor against most threats. There's room for some kind of energy projection device on the back."
|
||||
icon_state = "deathsquad"
|
||||
item_state = "swat_suit"
|
||||
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals,/obj/item/weapon/kitchen/knife/combat)
|
||||
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100)
|
||||
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100)
|
||||
strip_delay = 130
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
|
||||
unacidable = 1
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/deathsquad
|
||||
dog_fashion = /datum/dog_fashion/back/deathsquad
|
||||
|
||||
//NEW SWAT suit
|
||||
/obj/item/clothing/suit/space/swat
|
||||
name = "SWAT armor"
|
||||
desc = "Space-proof tactical SWAT armor."
|
||||
name = "MK.I SWAT Suit"
|
||||
desc = "A tactical space suit first developed in a joint effort by the defunct IS-ERI and Nanotrasen in 20XX for military space operations. A tried and true workhorse, it is very difficult to move in but offers robust protection against all threats!"
|
||||
icon_state = "heavy"
|
||||
item_state = "swat_suit"
|
||||
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals,/obj/item/weapon/kitchen/knife/combat)
|
||||
armor = list(melee = 40, bullet = 30, laser = 30,energy = 30, bomb = 50, bio = 90, rad = 20)
|
||||
armor = list(melee = 40, bullet = 30, laser = 30,energy = 30, bomb = 50, bio = 90, rad = 20, fire = 100, acid = 100)
|
||||
strip_delay = 120
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
|
||||
/obj/item/clothing/head/helmet/space/beret
|
||||
name = "officer's beret"
|
||||
@@ -58,10 +59,10 @@ Contains:
|
||||
icon_state = "beret_badge"
|
||||
flags = STOPSPRESSUREDMAGE
|
||||
flags_inv = 0
|
||||
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100)
|
||||
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100)
|
||||
strip_delay = 130
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
|
||||
unacidable = 1
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
|
||||
/obj/item/clothing/suit/space/officer
|
||||
name = "officer's jacket"
|
||||
@@ -71,12 +72,12 @@ Contains:
|
||||
blood_overlay_type = "coat"
|
||||
slowdown = 0
|
||||
flags_inv = 0
|
||||
w_class = 3
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals)
|
||||
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100)
|
||||
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100)
|
||||
strip_delay = 130
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
|
||||
unacidable = 1
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
|
||||
|
||||
//NASA Voidsuit
|
||||
@@ -120,7 +121,7 @@ Contains:
|
||||
desc = "Yarr."
|
||||
icon_state = "pirate"
|
||||
item_state = "pirate"
|
||||
armor = list(melee = 30, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
|
||||
armor = list(melee = 30, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 60, acid = 75)
|
||||
flags = STOPSPRESSUREDMAGE
|
||||
strip_delay = 40
|
||||
put_on_delay = 20
|
||||
@@ -131,11 +132,11 @@ Contains:
|
||||
desc = "Yarr."
|
||||
icon_state = "pirate"
|
||||
item_state = "pirate"
|
||||
w_class = 3
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
flags_inv = 0
|
||||
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals, /obj/item/weapon/melee/energy/sword/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/weapon/reagent_containers/food/drinks/bottle/rum)
|
||||
slowdown = 0
|
||||
armor = list(melee = 30, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
|
||||
armor = list(melee = 30, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 60, acid = 75)
|
||||
strip_delay = 40
|
||||
put_on_delay = 20
|
||||
|
||||
@@ -146,7 +147,7 @@ Contains:
|
||||
icon_state = "hardsuit0-ert_commander"
|
||||
item_state = "hardsuit0-ert_commander"
|
||||
item_color = "ert_commander"
|
||||
armor = list(melee = 65, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 100, rad = 100)
|
||||
armor = list(melee = 65, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 100, rad = 100, fire = 80, acid = 80)
|
||||
strip_delay = 130
|
||||
flags = STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP
|
||||
brightness_on = 7
|
||||
@@ -158,7 +159,7 @@ Contains:
|
||||
item_state = "ert_command"
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert
|
||||
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals)
|
||||
armor = list(melee = 30, bullet = 50, laser = 30, energy = 50, bomb = 50, bio = 100, rad = 100)
|
||||
armor = list(melee = 30, bullet = 50, laser = 30, energy = 50, bomb = 50, bio = 100, rad = 100, fire = 0, acid = 95)
|
||||
slowdown = 0
|
||||
strip_delay = 130
|
||||
|
||||
@@ -200,13 +201,14 @@ Contains:
|
||||
icon_state = "ert_medical"
|
||||
item_state = "ert_medical"
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/med
|
||||
species_exception = list(/datum/species/angel)
|
||||
|
||||
/obj/item/clothing/suit/space/eva
|
||||
name = "EVA suit"
|
||||
icon_state = "space"
|
||||
item_state = "s_suit"
|
||||
desc = "A lightweight space suit with the basic ability to protect the wearer from the vacuum of space during emergencies."
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20, fire = 50, acid = 65)
|
||||
|
||||
/obj/item/clothing/head/helmet/space/eva
|
||||
name = "EVA helmet"
|
||||
@@ -214,17 +216,17 @@ Contains:
|
||||
item_state = "space"
|
||||
desc = "A lightweight space helmet with the basic ability to protect the wearer from the vacuum of space during emergencies."
|
||||
flash_protect = 0
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20, fire = 50, acid = 65)
|
||||
|
||||
/obj/item/clothing/head/helmet/space/freedom
|
||||
name = "eagle helmet"
|
||||
desc = "An advanced, space-proof helmet. It appears to be modeled after an old-world eagle."
|
||||
icon_state = "griffinhat"
|
||||
item_state = "griffinhat"
|
||||
armor = list(melee = 20, bullet = 40, laser = 30, energy = 25, bomb = 100, bio = 100, rad = 100)
|
||||
armor = list(melee = 20, bullet = 40, laser = 30, energy = 25, bomb = 100, bio = 100, rad = 100, fire = 80, acid = 80)
|
||||
strip_delay = 130
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
|
||||
unacidable = 1
|
||||
resistance_flags = ACID_PROOF
|
||||
|
||||
/obj/item/clothing/suit/space/freedom
|
||||
name = "eagle suit"
|
||||
@@ -232,10 +234,10 @@ Contains:
|
||||
icon_state = "freedom"
|
||||
item_state = "freedom"
|
||||
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals)
|
||||
armor = list(melee = 20, bullet = 40, laser = 30,energy = 25, bomb = 100, bio = 100, rad = 100)
|
||||
armor = list(melee = 20, bullet = 40, laser = 30,energy = 25, bomb = 100, bio = 100, rad = 100, fire = 80, acid = 80)
|
||||
strip_delay = 130
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
|
||||
unacidable = 1
|
||||
resistance_flags = ACID_PROOF
|
||||
|
||||
//Carpsuit, bestsuit, lovesuit
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/carp
|
||||
@@ -243,7 +245,7 @@ Contains:
|
||||
desc = "Spaceworthy and it looks like a space carp's head, smells like one too."
|
||||
icon_state = "carp_helm"
|
||||
item_state = "syndicate"
|
||||
armor = list(melee = -20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 75) //As whimpy as a space carp
|
||||
armor = list(melee = -20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 75, fire = 60, acid = 75) //As whimpy as a space carp
|
||||
brightness_on = 0 //luminosity when on
|
||||
actions_types = list()
|
||||
flags = STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP
|
||||
@@ -255,8 +257,8 @@ Contains:
|
||||
icon_state = "carp_suit"
|
||||
item_state = "space_suit_syndicate"
|
||||
slowdown = 0 //Space carp magic, never stop believing
|
||||
armor = list(melee = -20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 75) //As whimpy whimpy whoo
|
||||
allowed = list(/obj/item/weapon/tank/internals, /obj/item/weapon/gun/projectile/automatic/speargun) //I'm giving you a hint here
|
||||
armor = list(melee = -20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 75, fire = 60, acid = 75) //As whimpy whimpy whoo
|
||||
allowed = list(/obj/item/weapon/tank/internals, /obj/item/weapon/gun/ballistic/automatic/speargun) //I'm giving you a hint here
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/carp
|
||||
|
||||
|
||||
@@ -268,6 +270,7 @@ Contains:
|
||||
item_color = "knight_grey"
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
|
||||
actions_types = list()
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/ert/paranormal
|
||||
name = "paranormal response team suit"
|
||||
@@ -276,7 +279,7 @@ Contains:
|
||||
item_state = "knight_grey"
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
|
||||
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/ert/paranormal/New()
|
||||
..()
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
//Suits for the pink and grey skeletons!
|
||||
//Suits for the pink and grey skeletons! //EVA version no longer used in favor of the Jumpsuit version
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/eva/plasmaman
|
||||
name = "plasmaman suit"
|
||||
desc = "A special containment suit designed to protect a plasmaman's volatile body from outside exposure and quickly extinguish it in emergencies."
|
||||
name = "EVA plasma envirosuit"
|
||||
desc = "A special plasma containment suit designed to be space-worthy, as well as worn over other clothing. Like it's smaller counterpart, it can automatically extinguish the wearer in a crisis, and holds twice as many charges."
|
||||
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_casing,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0, fire = 100, acid = 75)
|
||||
resistance_flags = FIRE_PROOF
|
||||
icon_state = "plasmaman_suit"
|
||||
item_state = "plasmaman_suit"
|
||||
var/next_extinguish = 0
|
||||
@@ -15,7 +16,7 @@
|
||||
|
||||
/obj/item/clothing/suit/space/eva/plasmaman/examine(mob/user)
|
||||
..()
|
||||
user << "<span class='notice'>There are [extinguishes_left] extinguisher canisters left in this suit.</span>"
|
||||
user << "<span class='notice'>There are [extinguishes_left] extinguisher charges left in this suit.</span>"
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/eva/plasmaman/proc/Extinguish(mob/living/carbon/human/H)
|
||||
@@ -30,16 +31,18 @@
|
||||
extinguishes_left--
|
||||
H.visible_message("<span class='warning'>[H]'s suit automatically extinguishes them!</span>","<span class='warning'>Your suit automatically extinguishes you.</span>")
|
||||
H.ExtinguishMob()
|
||||
PoolOrNew(/obj/effect/particle_effect/water, get_turf(H))
|
||||
new /obj/effect/particle_effect/water(get_turf(H))
|
||||
|
||||
|
||||
//I just want the light feature of the hardsuit helmet
|
||||
/obj/item/clothing/head/helmet/space/plasmaman
|
||||
name = "plasmaman helmet"
|
||||
desc = "A special containment helmet designed to protect a plasmaman's volatile body from outside exposure and quickly extinguish it in emergencies."
|
||||
name = "plasma envirosuit helmet"
|
||||
desc = "A special containment helmet that allows plasma-based lifeforms to exist safely in an oxygenated environment. It is space-worthy, and may be worn in tandem with other EVA gear."
|
||||
icon_state = "plasmaman-helm"
|
||||
item_color = "plasma" //needed for the helmet lighting
|
||||
item_state = "plasmaman-helm"
|
||||
strip_delay = 80
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0, fire = 100, acid = 75)
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
|
||||
|
||||
@@ -1,20 +1,19 @@
|
||||
//Regular syndicate space suit
|
||||
/obj/item/clothing/head/helmet/space/syndicate
|
||||
name = "red space helmet"
|
||||
desc = "Top secret spess helmet."
|
||||
icon_state = "syndicate"
|
||||
item_state = "syndicate"
|
||||
desc = "Has a tag: Totally not property of an enemy corporation, honest."
|
||||
armor = list(melee = 40, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
|
||||
desc = "Has a tag on it: Totally not property of an enemy corporation, honest!"
|
||||
armor = list(melee = 40, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 80, acid = 85)
|
||||
|
||||
/obj/item/clothing/suit/space/syndicate
|
||||
name = "red space suit"
|
||||
icon_state = "syndicate"
|
||||
item_state = "space_suit_syndicate"
|
||||
desc = "Has a tag on it: Totally not property of of a hostile corporation, honest!"
|
||||
w_class = 3
|
||||
desc = "Has a tag on it: Totally not property of an enemy corporation, honest!"
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals)
|
||||
armor = list(melee = 40, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
|
||||
armor = list(melee = 40, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 80, acid = 85)
|
||||
|
||||
|
||||
//Green syndicate space suit
|
||||
@@ -146,4 +145,4 @@
|
||||
/obj/item/clothing/suit/space/syndicate/black/engie
|
||||
name = "black engineering space suit"
|
||||
icon_state = "syndicate-black-engie"
|
||||
item_state = "syndicate-black"
|
||||
item_state = "syndicate-black"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/obj/item/clothing/suit/armor
|
||||
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/weapon/kitchen/knife/combat,/obj/item/weapon/tank/internals/emergency_oxygen)
|
||||
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/weapon/kitchen/knife/combat,/obj/item/weapon/tank/internals/emergency_oxygen)
|
||||
body_parts_covered = CHEST
|
||||
cold_protection = CHEST|GROIN
|
||||
min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
|
||||
@@ -7,7 +7,10 @@
|
||||
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
|
||||
strip_delay = 60
|
||||
put_on_delay = 40
|
||||
burn_state = FIRE_PROOF
|
||||
obj_integrity = 250
|
||||
max_integrity = 250
|
||||
resistance_flags = 0
|
||||
armor = list(melee = 30, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 50)
|
||||
|
||||
/obj/item/clothing/suit/armor/vest
|
||||
name = "armor"
|
||||
@@ -15,7 +18,6 @@
|
||||
icon_state = "armoralt"
|
||||
item_state = "armoralt"
|
||||
blood_overlay_type = "armor"
|
||||
armor = list(melee = 30, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
dog_fashion = /datum/dog_fashion/back
|
||||
|
||||
/obj/item/clothing/suit/armor/vest/alt
|
||||
@@ -23,13 +25,17 @@
|
||||
icon_state = "armor"
|
||||
item_state = "armor"
|
||||
|
||||
/obj/item/clothing/suit/armor/vest/blueshirt
|
||||
icon_state = "blueshift"
|
||||
item_state = "blueshift"
|
||||
|
||||
/obj/item/clothing/suit/armor/hos
|
||||
name = "armored greatcoat"
|
||||
desc = "A greatcoat enchanced with a special alloy for some protection and style for those with a commanding presence."
|
||||
icon_state = "hos"
|
||||
item_state = "greatcoat"
|
||||
body_parts_covered = CHEST|GROIN|ARMS|LEGS
|
||||
armor = list(melee = 30, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
armor = list(melee = 30, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 70, acid = 90)
|
||||
cold_protection = CHEST|GROIN|LEGS|ARMS
|
||||
heat_protection = CHEST|GROIN|LEGS|ARMS
|
||||
strip_delay = 80
|
||||
@@ -51,7 +57,7 @@
|
||||
cold_protection = CHEST|GROIN|ARMS|HANDS
|
||||
heat_protection = CHEST|GROIN|ARMS|HANDS
|
||||
strip_delay = 70
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = FLAMMABLE
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/clothing/suit/armor/vest/warden/alt
|
||||
@@ -75,8 +81,9 @@
|
||||
icon_state = "capcarapace"
|
||||
item_state = "armor"
|
||||
body_parts_covered = CHEST|GROIN
|
||||
armor = list(melee = 50, bullet = 40, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
armor = list(melee = 50, bullet = 40, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 100, acid = 90)
|
||||
dog_fashion = null
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/suit/armor/vest/capcarapace/alt
|
||||
name = "captain's parade jacket"
|
||||
@@ -92,7 +99,7 @@
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
armor = list(melee = 50, bullet = 10, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0)
|
||||
armor = list(melee = 50, bullet = 10, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 80)
|
||||
flags_inv = HIDEJUMPSUIT
|
||||
strip_delay = 80
|
||||
put_on_delay = 60
|
||||
@@ -103,7 +110,7 @@
|
||||
icon_state = "bonearmor"
|
||||
item_state = "bonearmor"
|
||||
blood_overlay_type = "armor"
|
||||
armor = list(melee = 35, bullet = 25, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
armor = list(melee = 35, bullet = 25, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 50)
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS
|
||||
|
||||
/obj/item/clothing/suit/armor/bulletproof
|
||||
@@ -112,7 +119,7 @@
|
||||
icon_state = "bulletproof"
|
||||
item_state = "armor"
|
||||
blood_overlay_type = "armor"
|
||||
armor = list(melee = 15, bullet = 80, laser = 10, energy = 10, bomb = 40, bio = 0, rad = 0)
|
||||
armor = list(melee = 15, bullet = 80, laser = 10, energy = 10, bomb = 40, bio = 0, rad = 0, fire = 50, acid = 50)
|
||||
strip_delay = 70
|
||||
put_on_delay = 50
|
||||
|
||||
@@ -122,7 +129,8 @@
|
||||
icon_state = "armor_reflec"
|
||||
item_state = "armor_reflec"
|
||||
blood_overlay_type = "armor"
|
||||
armor = list(melee = 10, bullet = 10, laser = 60, energy = 50, bomb = 0, bio = 0, rad = 0)
|
||||
armor = list(melee = 10, bullet = 10, laser = 60, energy = 50, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 100)
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
|
||||
var/hit_reflect_chance = 40
|
||||
|
||||
/obj/item/clothing/suit/armor/laserproof/IsReflect(def_zone)
|
||||
@@ -135,8 +143,8 @@
|
||||
name = "armor"
|
||||
desc = "An armored vest with a detective's badge on it."
|
||||
icon_state = "detective-armor"
|
||||
allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/weapon/melee/classic_baton/telescopic)
|
||||
burn_state = FLAMMABLE
|
||||
allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/weapon/melee/classic_baton)
|
||||
resistance_flags = FLAMMABLE
|
||||
dog_fashion = null
|
||||
|
||||
|
||||
@@ -150,9 +158,9 @@
|
||||
icon_state = "reactiveoff"
|
||||
item_state = "reactiveoff"
|
||||
blood_overlay_type = "armor"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 100)
|
||||
actions_types = list(/datum/action/item_action/toggle)
|
||||
unacidable = 1
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
|
||||
hit_reaction_chance = 50
|
||||
|
||||
|
||||
@@ -166,7 +174,7 @@
|
||||
user << "<span class='notice'>[src] is now inactive.</span>"
|
||||
src.icon_state = "reactiveoff"
|
||||
src.item_state = "reactiveoff"
|
||||
src.add_fingerprint(user)
|
||||
src.add_fingerprint(user)
|
||||
return
|
||||
|
||||
/obj/item/clothing/suit/armor/reactive/emp_act(severity)
|
||||
@@ -275,7 +283,7 @@
|
||||
for(var/mob/living/M in view(6, owner))
|
||||
if(M == owner)
|
||||
continue
|
||||
owner.Beam(M,icon_state="lightning[rand(1, 12)]",icon='icons/effects/effects.dmi',time=5)
|
||||
owner.Beam(M,icon_state="lightning[rand(1, 12)]",time=5)
|
||||
M.adjustFireLoss(25)
|
||||
playsound(M, 'sound/machines/defib_zap.ogg', 50, 1, -1)
|
||||
reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration
|
||||
@@ -327,7 +335,7 @@
|
||||
desc = "A suit that protects against some damage."
|
||||
icon_state = "centcom"
|
||||
item_state = "centcom"
|
||||
w_class = 4//bulky item
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals/emergency_oxygen)
|
||||
flags = THICKMATERIAL
|
||||
@@ -336,20 +344,20 @@
|
||||
min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT
|
||||
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100)
|
||||
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 90, acid = 90)
|
||||
|
||||
/obj/item/clothing/suit/armor/heavy
|
||||
name = "heavy armor"
|
||||
desc = "A heavily armored suit that protects against moderate damage."
|
||||
icon_state = "heavy"
|
||||
item_state = "swat_suit"
|
||||
w_class = 4//bulky item
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
gas_transfer_coefficient = 0.90
|
||||
flags = THICKMATERIAL
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
slowdown = 3
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
|
||||
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100)
|
||||
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 90, acid = 90)
|
||||
|
||||
/obj/item/clothing/suit/armor/tdome
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
@@ -357,7 +365,7 @@
|
||||
flags = THICKMATERIAL
|
||||
cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100)
|
||||
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 90, acid = 90)
|
||||
|
||||
/obj/item/clothing/suit/armor/tdome/red
|
||||
name = "thunderdome suit"
|
||||
@@ -395,50 +403,3 @@
|
||||
desc = "God wills it!"
|
||||
icon_state = "knight_templar"
|
||||
item_state = "knight_templar"
|
||||
|
||||
/obj/item/clothing/suit/armor/yautja_fake
|
||||
name = "ceremonial breastplate"
|
||||
desc = "Half of an aging, ceremonial breastplate. Its usefulness as armor are long gone."
|
||||
icon_state = "yautjahalfarmor"
|
||||
item_state = "yautjahalfarmor"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
unacidable = TRUE
|
||||
burn_state = FIRE_PROOF
|
||||
body_parts_covered = CHEST|GROIN|LEGS|ARMS
|
||||
cold_protection = CHEST|GROIN|LEGS|ARMS
|
||||
heat_protection = CHEST|GROIN|LEGS|ARMS
|
||||
allowed = list(/obj/item/device/flashlight,
|
||||
/obj/item/weapon/tank/internals,
|
||||
/obj/item/weapon/resonator,
|
||||
/obj/item/device/mining_scanner,
|
||||
/obj/item/device/t_scanner/adv_mining_scanner,
|
||||
/obj/item/weapon/gun/energy/kinetic_accelerator,
|
||||
/obj/item/weapon/pickaxe)
|
||||
|
||||
/obj/item/clothing/suit/armor/yautja
|
||||
name = "clan breastplate"
|
||||
desc = "An armored breastplate. This type is used by most clans for combat among elders."
|
||||
icon_state = "yautjafullarmor"
|
||||
item_state = "yautjafullarmor"
|
||||
armor = list(melee = 50, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 0, rad = 15)
|
||||
unacidable = TRUE
|
||||
burn_state = FIRE_PROOF
|
||||
body_parts_covered = CHEST|GROIN|LEGS|ARMS
|
||||
cold_protection = CHEST|GROIN|LEGS|ARMS
|
||||
heat_protection = CHEST|GROIN|LEGS|ARMS
|
||||
allowed = list(/obj/item/device/flashlight,
|
||||
/obj/item/weapon/tank/internals,
|
||||
/obj/item/weapon/resonator,
|
||||
/obj/item/device/mining_scanner,
|
||||
/obj/item/device/t_scanner/adv_mining_scanner,
|
||||
/obj/item/weapon/gun,
|
||||
/obj/item/weapon/pickaxe,
|
||||
/obj/item/weapon/melee,
|
||||
/obj/item/weapon/kitchen/knife)
|
||||
|
||||
/obj/item/clothing/suit/armor/yautja/half
|
||||
name = "clan half-breastplate"
|
||||
desc = "Half of an armored breastplate. This type is used by most clans for combat among blooded."
|
||||
icon_state = "yautjahalfarmor"
|
||||
item_state = "yautjahalfarmor"
|
||||
armor = list(melee = 30, bullet = 30, laser = 30, energy = 30, bomb = 30, bio = 0, rad = 5)
|
||||
|
||||
@@ -5,10 +5,9 @@
|
||||
desc = "A hood that protects the head and face from biological comtaminants."
|
||||
permeability_coefficient = 0.01
|
||||
flags = THICKMATERIAL
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20, fire = 30, acid = 100)
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR|HIDEFACE
|
||||
unacidable = 1
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = ACID_PROOF
|
||||
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
|
||||
/obj/item/clothing/suit/bio_suit
|
||||
@@ -16,19 +15,18 @@
|
||||
desc = "A suit that protects against biological contamination."
|
||||
icon_state = "bio"
|
||||
item_state = "bio_suit"
|
||||
w_class = 4//bulky item
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
gas_transfer_coefficient = 0.01
|
||||
permeability_coefficient = 0.01
|
||||
flags = THICKMATERIAL
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
slowdown = 1
|
||||
allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/pen,/obj/item/device/flashlight/pen, /obj/item/weapon/reagent_containers/dropper, /obj/item/weapon/reagent_containers/syringe, /obj/item/weapon/reagent_containers/hypospray)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20, fire = 30, acid = 100)
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
|
||||
strip_delay = 70
|
||||
put_on_delay = 70
|
||||
unacidable = 1
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = ACID_PROOF
|
||||
|
||||
//Standard biosuit, orange stripe
|
||||
/obj/item/clothing/head/bio_hood/general
|
||||
@@ -48,11 +46,11 @@
|
||||
|
||||
//Security biosuit, grey with red stripe across the chest
|
||||
/obj/item/clothing/head/bio_hood/security
|
||||
armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 100, rad = 20)
|
||||
armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 100, rad = 20, fire = 30, acid = 100)
|
||||
icon_state = "bio_security"
|
||||
|
||||
/obj/item/clothing/suit/bio_suit/security
|
||||
armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 100, rad = 20)
|
||||
armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 100, rad = 20, fire = 30, acid = 100)
|
||||
icon_state = "bio_security"
|
||||
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
//Cloaks. No, not THAT kind of cloak.
|
||||
|
||||
/obj/item/clothing/suit/cloak
|
||||
/obj/item/clothing/neck/cloak
|
||||
name = "brown cloak"
|
||||
desc = "It's a cape that can be worn on your back."
|
||||
desc = "It's a cape that can be worn around your neck."
|
||||
icon = 'icons/obj/clothing/cloaks.dmi'
|
||||
icon_state = "qmcloak"
|
||||
item_state = "qmcloak"
|
||||
w_class = 2
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
body_parts_covered = CHEST|GROIN|LEGS|ARMS
|
||||
|
||||
/obj/item/clothing/head/cloakhood
|
||||
@@ -18,118 +18,61 @@
|
||||
flags = NODROP
|
||||
flags_inv = HIDEHAIR|HIDEEARS
|
||||
|
||||
/obj/item/clothing/cloak/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is strangling themself with [src]! It looks like they're trying to commit suicide.</span>")
|
||||
/obj/item/clothing/neck/cloak/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is strangling [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
return(OXYLOSS)
|
||||
|
||||
/obj/item/clothing/suit/cloak/hos
|
||||
/obj/item/clothing/neck/cloak/hos
|
||||
name = "head of security's cloak"
|
||||
desc = "Worn by Securistan, ruling the station with an iron fist. It's slightly armored."
|
||||
icon_state = "hoscloak"
|
||||
allowed = list(/obj/item/weapon/gun/energy/gun/hos)
|
||||
armor = list(melee = 30, bullet = 30, laser = 10, energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
|
||||
/obj/item/clothing/suit/cloak/qm
|
||||
/obj/item/clothing/neck/cloak/qm
|
||||
name = "quartermaster's cloak"
|
||||
desc = "Worn by Cargonia, supplying the station with the necessary tools for survival."
|
||||
|
||||
/obj/item/clothing/suit/cloak/cmo
|
||||
/obj/item/clothing/neck/cloak/cmo
|
||||
name = "chief medical officer's cloak"
|
||||
desc = "Worn by Meditopia, the valiant men and women keeping pestilence at bay. It's slightly shielded from contaminants."
|
||||
icon_state = "cmocloak"
|
||||
allowed = list(/obj/item/weapon/reagent_containers/hypospray/CMO)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 25, rad = 0)
|
||||
|
||||
/obj/item/clothing/suit/cloak/ce
|
||||
/obj/item/clothing/neck/cloak/ce
|
||||
name = "chief engineer's cloak"
|
||||
desc = "Worn by Engitopia, wielders of an unlimited power. It's slightly shielded against radiation."
|
||||
icon_state = "cecloak"
|
||||
allowed = list(/obj/item/weapon/rcd, /obj/item/weapon/pipe_dispenser)
|
||||
armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 10)
|
||||
|
||||
/obj/item/clothing/suit/cloak/rd
|
||||
name = "research director's cloak."
|
||||
/obj/item/clothing/neck/cloak/rd
|
||||
name = "research director's cloak"
|
||||
desc = "Worn by Sciencia, thaumaturges and researchers of the universe. It's slightly shielded from contaminants."
|
||||
icon_state = "rdcloak"
|
||||
allowed = list(/obj/item/weapon/hand_tele, /obj/item/weapon/storage/part_replacer)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 10, rad = 0)
|
||||
|
||||
/obj/item/clothing/suit/cloak/cap
|
||||
/obj/item/clothing/neck/cloak/cap
|
||||
name = "captain's cloak"
|
||||
desc = "Worn by the commander of Space Station 13."
|
||||
icon_state = "capcloak"
|
||||
allowed = list(/obj/item/weapon/gun/energy/laser/captain)
|
||||
armor = list(melee = 30, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 10, rad = 10)
|
||||
|
||||
/obj/item/clothing/neck/cloak/hop
|
||||
name = "head of personnel's cloak"
|
||||
desc = "Worn by the Head of Personnel. It smells faintly of bureaucracy."
|
||||
icon_state = "hopcloak"
|
||||
|
||||
/obj/item/clothing/suit/hooded/cloak/drake
|
||||
name = "drake armour"
|
||||
icon_state = "dragon"
|
||||
desc = "A suit of armour fashioned from the remains of an ash drake. "
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/resonator, /obj/item/device/mining_scanner, /obj/item/device/t_scanner/adv_mining_scanner, /obj/item/weapon/gun/energy/kinetic_accelerator, /obj/item/weapon/pickaxe, /obj/item/weapon/twohanded/spear)
|
||||
armor = list(melee = 70, bullet = 30, laser = 50, energy = 40, bomb = 70, bio = 60, rad = 50)
|
||||
hooded = 1
|
||||
hoodtype = /obj/item/clothing/head/cloakhood/drake
|
||||
armor = list(melee = 70, bullet = 30, laser = 50, energy = 40, bomb = 70, bio = 60, rad = 50, fire = 100, acid = 100)
|
||||
hoodtype = /obj/item/clothing/head/hooded/cloakhood/drake
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
|
||||
unacidable = 1
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
|
||||
/obj/item/clothing/head/cloakhood/drake
|
||||
/obj/item/clothing/head/hooded/cloakhood/drake
|
||||
name = "drake helm"
|
||||
icon_state = "dragon"
|
||||
desc = "The skull of a dragon."
|
||||
armor = list(melee = 70, bullet = 30, laser = 50, energy = 40, bomb = 70, bio = 60, rad = 50)
|
||||
armor = list(melee = 70, bullet = 30, laser = 50, energy = 40, bomb = 70, bio = 60, rad = 50, fire = 100, acid = 100)
|
||||
heat_protection = HEAD
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
|
||||
unacidable = 1
|
||||
|
||||
/* //wip
|
||||
/obj/item/clothing/cloak/wizard //Not actually obtainable until proper balancing can be done
|
||||
name = "cloak of invisibility"
|
||||
desc = "A tattered old thing that apparently gifts the wearer with near-invisibility."
|
||||
armor = list(melee = 10, bullet = 10, laser = 10, energy = 10, bomb = 10, bio = 10, rad = 10)
|
||||
action_button_name = "Flaunt Cloak"
|
||||
var/invisible = 0
|
||||
|
||||
/obj/item/clothing/cloak/wizard/ui_action_click()
|
||||
toggleInvisibility(usr)
|
||||
return
|
||||
|
||||
/obj/item/clothing/cloak/wizard/proc/toggleInvisibility(mob/user)
|
||||
if(user.slot_back != src)
|
||||
user << "<span class='warning'>You need to be wearing the cloak first!</span>"
|
||||
return
|
||||
user.visible_message("<span class='notice'>[user] flaunts [src]!</span>")
|
||||
if(!invisible)
|
||||
makeInvisible(user)
|
||||
return
|
||||
if(invisible)
|
||||
breakInvisible(user)
|
||||
return
|
||||
|
||||
/obj/item/clothing/cloak/wizard/proc/makeInvisible(mob/user)
|
||||
if(!invisible)
|
||||
user.visible_message("<span class='warning'>[user] suddenly fades away!</span>", \
|
||||
"<span class='notice'>You have become nearly invisible. This will require slow movement and will break upon taking damage.</span>")
|
||||
flags |= NODROP //Cannot unequip while invisible
|
||||
user.alpha = 10
|
||||
slowdown = 2
|
||||
invisible = 1
|
||||
|
||||
/obj/item/clothing/cloak/wizard/proc/breakInvisible(mob/user)
|
||||
if(invisible)
|
||||
user.visible_message("<span class='warning'>[user] suddenly appears from thin air!</span>", \
|
||||
"<span class='warning'>The enchantment has broken! You are visible again.</span>")
|
||||
flags -= NODROP
|
||||
user.alpha = 255
|
||||
slowdown = 0
|
||||
invisible = 0
|
||||
|
||||
/obj/item/clothing/cloak/wizard/IsShield()
|
||||
breakInvisible(src.loc)
|
||||
return 0
|
||||
|
||||
/obj/item/clothing/cloak/wizard/IsReflect()
|
||||
breakInvisible(src.loc)
|
||||
return 0
|
||||
*/
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
|
||||
@@ -30,18 +30,15 @@
|
||||
item_state = "chaplain_hoodie"
|
||||
body_parts_covered = CHEST|GROIN|LEGS|ARMS
|
||||
allowed = list(/obj/item/weapon/storage/book/bible, /obj/item/weapon/nullrod, /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, /obj/item/weapon/storage/fancy/candle_box, /obj/item/candle, /obj/item/weapon/tank/internals/emergency_oxygen)
|
||||
hooded = 1
|
||||
hoodtype = /obj/item/clothing/head/chaplain_hood
|
||||
hoodtype = /obj/item/clothing/head/hooded/chaplain_hood
|
||||
|
||||
/obj/item/clothing/head/chaplain_hood
|
||||
/obj/item/clothing/head/hooded/chaplain_hood
|
||||
name = "chaplain hood"
|
||||
desc = "For protecting your identity when immolating demons."
|
||||
icon_state = "chaplain_hood"
|
||||
body_parts_covered = HEAD
|
||||
flags = NODROP
|
||||
flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS
|
||||
|
||||
//Chaplain
|
||||
/obj/item/clothing/suit/nun
|
||||
name = "nun robe"
|
||||
desc = "Maximum piety in this star system."
|
||||
@@ -51,6 +48,22 @@
|
||||
flags_inv = HIDESHOES|HIDEJUMPSUIT
|
||||
allowed = list(/obj/item/weapon/storage/book/bible, /obj/item/weapon/nullrod, /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, /obj/item/weapon/storage/fancy/candle_box, /obj/item/candle, /obj/item/weapon/tank/internals/emergency_oxygen)
|
||||
|
||||
/obj/item/clothing/suit/studentuni
|
||||
name = "student robe"
|
||||
desc = "The uniform of a bygone institute of learning."
|
||||
icon_state = "studentuni"
|
||||
item_state = "studentuni"
|
||||
body_parts_covered = ARMS|CHEST
|
||||
allowed = list(/obj/item/weapon/storage/book/bible, /obj/item/weapon/nullrod, /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, /obj/item/weapon/storage/fancy/candle_box, /obj/item/candle, /obj/item/weapon/tank/internals/emergency_oxygen)
|
||||
|
||||
/obj/item/clothing/suit/witchhunter
|
||||
name = "witchunter garb"
|
||||
desc = "This worn outfit saw much use back in the day."
|
||||
icon_state = "witchhunter"
|
||||
item_state = "witchhunter"
|
||||
body_parts_covered = CHEST|GROIN|LEGS|ARMS
|
||||
allowed = list(/obj/item/weapon/storage/book/bible, /obj/item/weapon/nullrod, /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, /obj/item/weapon/storage/fancy/candle_box, /obj/item/candle, /obj/item/weapon/tank/internals/emergency_oxygen)
|
||||
|
||||
//Chef
|
||||
/obj/item/clothing/suit/toggle/chef
|
||||
name = "chef's apron"
|
||||
@@ -81,8 +94,8 @@
|
||||
item_state = "det_suit"
|
||||
blood_overlay_type = "coat"
|
||||
body_parts_covered = CHEST|GROIN|LEGS|ARMS
|
||||
allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/weapon/melee/classic_baton/telescopic)
|
||||
armor = list(melee = 25, bullet = 10, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0)
|
||||
allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/weapon/melee/classic_baton)
|
||||
armor = list(melee = 25, bullet = 10, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 45)
|
||||
cold_protection = CHEST|GROIN|LEGS|ARMS
|
||||
heat_protection = CHEST|GROIN|LEGS|ARMS
|
||||
|
||||
@@ -100,8 +113,7 @@
|
||||
item_state = "hazard"
|
||||
blood_overlay_type = "armor"
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/device/t_scanner,/obj/item/device/radio)
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
resistance_flags = 0
|
||||
//Lawyer
|
||||
/obj/item/clothing/suit/toggle/lawyer
|
||||
name = "blue suit jacket"
|
||||
@@ -155,10 +167,22 @@
|
||||
item_state = "hosbluejacket"
|
||||
body_parts_covered = CHEST|ARMS
|
||||
|
||||
|
||||
//Surgeon
|
||||
/obj/item/clothing/suit/apron/surgical
|
||||
name = "surgical apron"
|
||||
desc = "A sterile blue surgical apron."
|
||||
icon_state = "surgical"
|
||||
allowed = list(/obj/item/weapon/scalpel, /obj/item/weapon/surgical_drapes, /obj/item/weapon/cautery, /obj/item/weapon/hemostat, /obj/item/weapon/retractor)
|
||||
|
||||
//Curator
|
||||
/obj/item/clothing/suit/curator
|
||||
name = "treasure hunter's coat"
|
||||
desc = "Both fashionable and lightly armoured, this jacket is favoured by treasure hunters the galaxy over."
|
||||
icon_state = "curator"
|
||||
item_state = "curator"
|
||||
blood_overlay_type = "coat"
|
||||
body_parts_covered = CHEST|ARMS
|
||||
allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/weapon/melee/curator_whip)
|
||||
armor = list(melee = 25, bullet = 10, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 45)
|
||||
cold_protection = CHEST|ARMS
|
||||
heat_protection = CHEST|ARMS
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
blood_overlay_type = "coat"
|
||||
body_parts_covered = CHEST|ARMS
|
||||
allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/weapon/soap,/obj/item/device/sensor_device,/obj/item/weapon/tank/internals/emergency_oxygen)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0, fire = 50, acid = 50)
|
||||
togglename = "buttons"
|
||||
|
||||
/obj/item/clothing/suit/toggle/labcoat/cmo
|
||||
@@ -45,4 +45,4 @@
|
||||
/obj/item/clothing/suit/toggle/labcoat/science
|
||||
name = "scientist labcoat"
|
||||
desc = "A suit that protects against minor chemical spills. Has a purple stripe on the shoulder."
|
||||
icon_state = "labcoat_tox"
|
||||
icon_state = "labcoat_tox"
|
||||
@@ -16,7 +16,7 @@
|
||||
blood_overlay_type = "armor"
|
||||
body_parts_covered = CHEST
|
||||
allowed = list (/obj/item/weapon/gun/energy/laser/bluetag)
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/clothing/suit/redtag
|
||||
name = "red laser tag armor"
|
||||
@@ -26,7 +26,7 @@
|
||||
blood_overlay_type = "armor"
|
||||
body_parts_covered = CHEST
|
||||
allowed = list (/obj/item/weapon/gun/energy/laser/redtag)
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
/*
|
||||
* Costume
|
||||
@@ -38,12 +38,11 @@
|
||||
item_state = "pirate"
|
||||
allowed = list(/obj/item/weapon/melee/energy/sword/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/weapon/reagent_containers/food/drinks/bottle/rum)
|
||||
|
||||
/obj/item/clothing/suit/hgpirate
|
||||
/obj/item/clothing/suit/pirate/captain
|
||||
name = "pirate captain coat"
|
||||
desc = "Yarr."
|
||||
icon_state = "hgpirate"
|
||||
item_state = "hgpirate"
|
||||
allowed = list(/obj/item/weapon/melee/energy/sword/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/weapon/reagent_containers/food/drinks/bottle/rum)
|
||||
|
||||
|
||||
/obj/item/clothing/suit/cyborg_suit
|
||||
@@ -87,10 +86,10 @@
|
||||
icon_state = "syndicate-black-red"
|
||||
item_state = "syndicate-black-red"
|
||||
desc = "A plastic replica of the Syndicate space suit. You'll look just like a real murderous Syndicate agent in this! This is a toy, it is not made for use in space!"
|
||||
w_class = 3
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy)
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/clothing/suit/hastur
|
||||
name = "\improper Hastur's robe"
|
||||
@@ -135,7 +134,7 @@
|
||||
item_state = "owl_wings"
|
||||
togglename = "wings"
|
||||
body_parts_covered = ARMS|CHEST
|
||||
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic)
|
||||
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic)
|
||||
actions_types = list(/datum/action/item_action/toggle_wings)
|
||||
|
||||
/obj/item/clothing/suit/toggle/owlwings/griffinwings
|
||||
@@ -154,7 +153,6 @@
|
||||
flags_inv = HIDEJUMPSUIT
|
||||
allowed = list(/obj/item/weapon/storage/book/bible, /obj/item/weapon/nullrod, /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, /obj/item/weapon/storage/fancy/candle_box, /obj/item/candle, /obj/item/weapon/tank/internals/emergency_oxygen)
|
||||
|
||||
|
||||
/obj/item/clothing/suit/cardborg
|
||||
name = "cardborg suit"
|
||||
desc = "An ordinary cardboard box with holes cut in the sides."
|
||||
@@ -180,7 +178,7 @@
|
||||
if(istype(borghead, /obj/item/clothing/head/cardborg)) //why is this done this way? because equipped() is called BEFORE THE ITEM IS IN THE SLOT WHYYYY
|
||||
var/image/I = image(icon = 'icons/mob/robots.dmi' , icon_state = "robot", loc = H)
|
||||
I.override = 1
|
||||
I.overlays += image(icon = 'icons/mob/robots.dmi' , icon_state = "eyes-standard") //gotta look realistic
|
||||
I.overlays += image(icon = 'icons/mob/robots.dmi' , icon_state = "robot_e") //gotta look realistic
|
||||
H.add_alt_appearance("standard_borg_disguise", I, silicon_mobs+H) //you look like a robot to robots! (including yourself because you're totally a robot)
|
||||
|
||||
|
||||
@@ -233,18 +231,16 @@
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
cold_protection = CHEST|GROIN|ARMS
|
||||
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT //Space carp like space, so you should too
|
||||
allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/weapon/gun/projectile/automatic/speargun)
|
||||
hooded = 1
|
||||
hoodtype = /obj/item/clothing/head/carp_hood
|
||||
allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/weapon/gun/ballistic/automatic/speargun)
|
||||
hoodtype = /obj/item/clothing/head/hooded/carp_hood
|
||||
|
||||
/obj/item/clothing/head/carp_hood
|
||||
/obj/item/clothing/head/hooded/carp_hood
|
||||
name = "carp hood"
|
||||
desc = "A hood attached to a carp costume."
|
||||
icon_state = "carp_casual"
|
||||
body_parts_covered = HEAD
|
||||
cold_protection = HEAD
|
||||
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
|
||||
flags = NODROP
|
||||
flags_inv = HIDEHAIR|HIDEEARS
|
||||
|
||||
/obj/item/clothing/suit/hooded/ian_costume //It's Ian, rub his bell- oh god what happened to his inside parts?
|
||||
@@ -255,19 +251,34 @@
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
//cold_protection = CHEST|GROIN|ARMS
|
||||
//min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
|
||||
allowed = list(,)
|
||||
hooded = 1
|
||||
hoodtype = /obj/item/clothing/head/ian_hood
|
||||
allowed = list()
|
||||
hoodtype = /obj/item/clothing/head/hooded/ian_hood
|
||||
dog_fashion = /datum/dog_fashion/back
|
||||
|
||||
/obj/item/clothing/head/ian_hood
|
||||
/obj/item/clothing/head/hooded/ian_hood
|
||||
name = "corgi hood"
|
||||
desc = "A hood that looks just like a corgi's head, it won't guarantee dog biscuits."
|
||||
icon_state = "ian"
|
||||
body_parts_covered = HEAD
|
||||
//cold_protection = HEAD
|
||||
//min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
|
||||
flags = NODROP
|
||||
flags_inv = HIDEHAIR|HIDEEARS
|
||||
|
||||
/obj/item/clothing/suit/hooded/bee_costume // It's Hip!
|
||||
name = "bee costume"
|
||||
desc = "Bee the true Queen!"
|
||||
icon_state = "bee"
|
||||
item_state = "labcoat"
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
flags = THICKMATERIAL
|
||||
hoodtype = /obj/item/clothing/head/hooded/bee_hood
|
||||
|
||||
/obj/item/clothing/head/hooded/bee_hood
|
||||
name = "bee hood"
|
||||
desc = "A hood attached to a bee costume."
|
||||
icon_state = "bee"
|
||||
body_parts_covered = HEAD
|
||||
flags = THICKMATERIAL
|
||||
flags_inv = HIDEHAIR|HIDEEARS
|
||||
|
||||
/obj/item/clothing/suit/hooded/bloated_human //OH MY GOD WHAT HAVE YOU DONE!?!?!?
|
||||
@@ -276,17 +287,16 @@
|
||||
icon_state = "lingspacesuit"
|
||||
item_state = "labcoat"
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
allowed = list(,)
|
||||
hooded = 1
|
||||
allowed = list()
|
||||
actions_types = list(/datum/action/item_action/toggle_human_head)
|
||||
hoodtype = /obj/item/clothing/head/human_head
|
||||
hoodtype = /obj/item/clothing/head/hooded/human_head
|
||||
|
||||
/obj/item/clothing/head/human_head
|
||||
|
||||
/obj/item/clothing/head/hooded/human_head
|
||||
name = "bloated human head"
|
||||
desc = "A horribly bloated and mismatched human head."
|
||||
icon_state = "lingspacehelmet"
|
||||
body_parts_covered = HEAD
|
||||
flags = NODROP
|
||||
flags_cover = HEADCOVERSEYES
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
|
||||
|
||||
@@ -323,6 +333,12 @@
|
||||
icon_state = "nerdshirt"
|
||||
item_state = "nerdshirt"
|
||||
|
||||
/obj/item/clothing/suit/vapeshirt //wearing this is asking to get beat.
|
||||
name = "Vape Naysh shirt"
|
||||
desc = "A cheap white T-shirt with a big tacky \"VN\" on the front, Why would you wear this unironicly?"
|
||||
icon_state = "vapeshirt"
|
||||
item_state = "vapeshirt"
|
||||
|
||||
/obj/item/clothing/suit/jacket
|
||||
name = "bomber jacket"
|
||||
desc = "Aviators not included."
|
||||
@@ -338,9 +354,9 @@
|
||||
desc = "Pompadour not included."
|
||||
icon_state = "leatherjacket"
|
||||
item_state = "hostrench"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/weapon/gun/projectile/automatic/pistol,/obj/item/weapon/gun/projectile/revolver,/obj/item/weapon/gun/projectile/revolver/detective,/obj/item/device/radio)
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/weapon/gun/ballistic/automatic/pistol,/obj/item/weapon/gun/ballistic/revolver,/obj/item/weapon/gun/ballistic/revolver/detective,/obj/item/device/radio)
|
||||
|
||||
/obj/item/clothing/suit/jacket/leather/overcoat
|
||||
name = "leather overcoat"
|
||||
@@ -354,7 +370,7 @@
|
||||
desc = "A thick jacket with a rubbery, water-resistant shell."
|
||||
icon_state = "pufferjacket"
|
||||
item_state = "hostrench"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0, fire = 0, acid = 0)
|
||||
|
||||
/obj/item/clothing/suit/jacket/puffer/vest
|
||||
name = "puffer vest"
|
||||
@@ -363,14 +379,14 @@
|
||||
item_state = "armor"
|
||||
body_parts_covered = CHEST|GROIN
|
||||
cold_protection = CHEST|GROIN
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 30, rad = 0)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 30, rad = 0, fire = 0, acid = 0)
|
||||
|
||||
/obj/item/clothing/suit/jacket/miljacket
|
||||
name = "military jacket"
|
||||
desc = "A canvas jacket styled after classical American military garb. Feels sturdy, yet comfortable."
|
||||
icon_state = "militaryjacket"
|
||||
item_state = "militaryjacket"
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/weapon/gun/projectile/automatic/pistol,/obj/item/weapon/gun/projectile/revolver,/obj/item/weapon/gun/projectile/revolver/detective,/obj/item/device/radio)
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/weapon/gun/ballistic/automatic/pistol,/obj/item/weapon/gun/ballistic/revolver,/obj/item/weapon/gun/ballistic/revolver/detective,/obj/item/device/radio)
|
||||
|
||||
/obj/item/clothing/suit/jacket/letterman
|
||||
name = "letterman jacket"
|
||||
@@ -416,103 +432,101 @@
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
cold_protection = CHEST|GROIN|ARMS
|
||||
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0)
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter)
|
||||
hooded = 1
|
||||
|
||||
/obj/item/clothing/head/winterhood
|
||||
/obj/item/clothing/head/hooded/winterhood
|
||||
name = "winter hood"
|
||||
desc = "A hood attached to a heavy winter jacket."
|
||||
icon_state = "winterhood"
|
||||
body_parts_covered = HEAD
|
||||
cold_protection = HEAD
|
||||
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
|
||||
flags = NODROP
|
||||
flags_inv = HIDEHAIR|HIDEEARS
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/captain
|
||||
name = "captain's winter coat"
|
||||
icon_state = "coatcaptain"
|
||||
armor = list(melee = 25, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic)
|
||||
hoodtype = /obj/item/clothing/head/winterhood/captain
|
||||
armor = list(melee = 25, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 0, acid = 50)
|
||||
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic)
|
||||
hoodtype = /obj/item/clothing/head/hooded/winterhood/captain
|
||||
|
||||
/obj/item/clothing/head/winterhood/captain
|
||||
/obj/item/clothing/head/hooded/winterhood/captain
|
||||
icon_state = "winterhood_captain"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/security
|
||||
name = "security winter coat"
|
||||
icon_state = "coatsecurity"
|
||||
armor = list(melee = 25, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic)
|
||||
hoodtype = /obj/item/clothing/head/winterhood/security
|
||||
armor = list(melee = 25, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 0, acid = 45)
|
||||
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic)
|
||||
hoodtype = /obj/item/clothing/head/hooded/winterhood/security
|
||||
|
||||
/obj/item/clothing/head/winterhood/security
|
||||
/obj/item/clothing/head/hooded/winterhood/security
|
||||
icon_state = "winterhood_security"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/medical
|
||||
name = "medical winter coat"
|
||||
icon_state = "coatmedical"
|
||||
allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/weapon/melee/classic_baton/telescopic)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0)
|
||||
hoodtype = /obj/item/clothing/head/winterhood/medical
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0, fire = 0, acid = 45)
|
||||
hoodtype = /obj/item/clothing/head/hooded/winterhood/medical
|
||||
|
||||
/obj/item/clothing/head/winterhood/medical
|
||||
/obj/item/clothing/head/hooded/winterhood/medical
|
||||
icon_state = "winterhood_medical"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/science
|
||||
name = "science winter coat"
|
||||
icon_state = "coatscience"
|
||||
allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/weapon/melee/classic_baton/telescopic)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0)
|
||||
hoodtype = /obj/item/clothing/head/winterhood/science
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0, fire = 0, acid = 0)
|
||||
hoodtype = /obj/item/clothing/head/hooded/winterhood/science
|
||||
|
||||
/obj/item/clothing/head/winterhood/science
|
||||
/obj/item/clothing/head/hooded/winterhood/science
|
||||
icon_state = "winterhood_science"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/engineering
|
||||
name = "engineering winter coat"
|
||||
icon_state = "coatengineer"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 20)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 20, fire = 30, acid = 45)
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/device/t_scanner, /obj/item/weapon/rcd, /obj/item/weapon/pipe_dispenser)
|
||||
hoodtype = /obj/item/clothing/head/winterhood/engineering
|
||||
hoodtype = /obj/item/clothing/head/hooded/winterhood/engineering
|
||||
|
||||
/obj/item/clothing/head/winterhood/engineering
|
||||
/obj/item/clothing/head/hooded/winterhood/engineering
|
||||
icon_state = "winterhood_engineer"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/engineering/atmos
|
||||
name = "atmospherics winter coat"
|
||||
icon_state = "coatatmos"
|
||||
hoodtype = /obj/item/clothing/head/winterhood/engineering/atmos
|
||||
hoodtype = /obj/item/clothing/head/hooded/winterhood/engineering/atmos
|
||||
|
||||
/obj/item/clothing/head/winterhood/engineering/atmos
|
||||
/obj/item/clothing/head/hooded/winterhood/engineering/atmos
|
||||
icon_state = "winterhood_atmos"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/hydro
|
||||
name = "hydroponics winter coat"
|
||||
icon_state = "coathydro"
|
||||
allowed = list(/obj/item/weapon/reagent_containers/spray/plantbgone,/obj/item/device/plant_analyzer,/obj/item/seeds,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/cultivator,/obj/item/weapon/reagent_containers/spray/pestspray,/obj/item/weapon/hatchet,/obj/item/weapon/storage/bag/plants)
|
||||
hoodtype = /obj/item/clothing/head/winterhood/hydro
|
||||
hoodtype = /obj/item/clothing/head/hooded/winterhood/hydro
|
||||
|
||||
/obj/item/clothing/head/winterhood/hydro
|
||||
item_state = "winterhood_hydro"
|
||||
/obj/item/clothing/head/hooded/winterhood/hydro
|
||||
icon_state = "winterhood_hydro"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/cargo
|
||||
name = "cargo winter coat"
|
||||
icon_state = "coatcargo"
|
||||
hoodtype = /obj/item/clothing/head/winterhood/cargo
|
||||
hoodtype = /obj/item/clothing/head/hooded/winterhood/cargo
|
||||
|
||||
/obj/item/clothing/head/winterhood/cargo
|
||||
/obj/item/clothing/head/hooded/winterhood/cargo
|
||||
icon_state = "winterhood_cargo"
|
||||
|
||||
/obj/item/clothing/suit/hooded/wintercoat/miner
|
||||
name = "mining winter coat"
|
||||
icon_state = "coatminer"
|
||||
allowed = list(/obj/item/weapon/pickaxe,/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter)
|
||||
armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
hoodtype = /obj/item/clothing/head/winterhood/miner
|
||||
armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
|
||||
hoodtype = /obj/item/clothing/head/hooded/winterhood/miner
|
||||
|
||||
/obj/item/clothing/head/winterhood/miner
|
||||
/obj/item/clothing/head/hooded/winterhood/miner
|
||||
icon_state = "winterhood_miner"
|
||||
|
||||
/obj/item/clothing/suit/spookyghost
|
||||
|
||||
@@ -2,8 +2,9 @@
|
||||
|
||||
/obj/item/clothing/suit/hooded
|
||||
actions_types = list(/datum/action/item_action/toggle_hood)
|
||||
var/obj/item/clothing/head/hood
|
||||
var/hoodtype = /obj/item/clothing/head/winterhood //so the chaplain hoodie or other hoodies can override this
|
||||
var/obj/item/clothing/head/hooded/hood
|
||||
var/hoodtype = /obj/item/clothing/head/hooded/winterhood //so the chaplain hoodie or other hoodies can override this
|
||||
hooded = 1
|
||||
|
||||
/obj/item/clothing/suit/hooded/New()
|
||||
MakeHood()
|
||||
@@ -11,11 +12,13 @@
|
||||
|
||||
/obj/item/clothing/suit/hooded/Destroy()
|
||||
qdel(hood)
|
||||
hood = null
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/suit/hooded/proc/MakeHood()
|
||||
if(!hood)
|
||||
var/obj/item/clothing/head/W = new hoodtype(src)
|
||||
var/obj/item/clothing/head/hooded/W = new hoodtype(src)
|
||||
W.suit = src
|
||||
hood = W
|
||||
|
||||
/obj/item/clothing/suit/hooded/ui_action_click()
|
||||
@@ -35,9 +38,10 @@
|
||||
suittoggled = 0
|
||||
if(ishuman(hood.loc))
|
||||
var/mob/living/carbon/H = hood.loc
|
||||
H.unEquip(hood, 1)
|
||||
H.transferItemToLoc(hood, src, TRUE)
|
||||
H.update_inv_wear_suit()
|
||||
hood.loc = src
|
||||
else
|
||||
hood.forceMove(src)
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
@@ -66,6 +70,26 @@
|
||||
else
|
||||
RemoveHood()
|
||||
|
||||
/obj/item/clothing/head/hooded
|
||||
var/obj/item/clothing/suit/hooded/suit
|
||||
|
||||
/obj/item/clothing/head/hooded/Destroy()
|
||||
suit = null
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/head/hooded/dropped()
|
||||
..()
|
||||
if(suit)
|
||||
suit.RemoveHood()
|
||||
|
||||
/obj/item/clothing/head/hooded/equipped(mob/user, slot)
|
||||
..()
|
||||
if(slot != slot_head)
|
||||
if(suit)
|
||||
suit.RemoveHood()
|
||||
else
|
||||
qdel(src)
|
||||
|
||||
//Toggle exosuits for different aesthetic styles (hoodies, suit jacket buttons, etc)
|
||||
|
||||
/obj/item/clothing/suit/toggle/AltClick(mob/user)
|
||||
@@ -145,11 +169,12 @@
|
||||
var/mob/living/carbon/H = helmet.loc
|
||||
if(helmet.on)
|
||||
helmet.attack_self(H)
|
||||
H.unEquip(helmet, 1)
|
||||
H.transferItemToLoc(helmet, src, TRUE)
|
||||
H.update_inv_wear_suit()
|
||||
H << "<span class='notice'>The helmet on the hardsuit disengages.</span>"
|
||||
playsound(src.loc, 'sound/mecha/mechmove03.ogg', 50, 1)
|
||||
helmet.loc = src
|
||||
else
|
||||
helmet.forceMove(src)
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/dropped()
|
||||
..()
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
desc = "A suit that helps protect against fire and heat."
|
||||
icon_state = "fire"
|
||||
item_state = "ro_suit"
|
||||
w_class = 4
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
gas_transfer_coefficient = 0.90
|
||||
permeability_coefficient = 0.50
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
@@ -28,7 +28,7 @@
|
||||
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
|
||||
strip_delay = 60
|
||||
put_on_delay = 60
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/suit/fire/firefighter
|
||||
icon_state = "firesuit"
|
||||
@@ -57,7 +57,7 @@
|
||||
desc = "Use in case of bomb."
|
||||
icon_state = "bombsuit"
|
||||
flags = THICKMATERIAL
|
||||
armor = list(melee = 20, bullet = 0, laser = 20,energy = 10, bomb = 100, bio = 0, rad = 0)
|
||||
armor = list(melee = 20, bullet = 0, laser = 20,energy = 10, bomb = 100, bio = 0, rad = 0, fire = 80, acid = 50)
|
||||
flags_inv = HIDEFACE|HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR
|
||||
cold_protection = HEAD
|
||||
min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT
|
||||
@@ -66,20 +66,21 @@
|
||||
strip_delay = 70
|
||||
put_on_delay = 70
|
||||
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
|
||||
/obj/item/clothing/suit/bomb_suit
|
||||
name = "bomb suit"
|
||||
desc = "A suit designed for safety when handling explosives."
|
||||
icon_state = "bombsuit"
|
||||
item_state = "bombsuit"
|
||||
w_class = 4//bulky item
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
gas_transfer_coefficient = 0.01
|
||||
permeability_coefficient = 0.01
|
||||
flags = THICKMATERIAL
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
slowdown = 2
|
||||
armor = list(melee = 20, bullet = 0, laser = 20,energy = 10, bomb = 100, bio = 0, rad = 0)
|
||||
armor = list(melee = 20, bullet = 0, laser = 20,energy = 10, bomb = 100, bio = 0, rad = 0, fire = 80, acid = 50)
|
||||
flags_inv = HIDEJUMPSUIT
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
|
||||
@@ -87,7 +88,7 @@
|
||||
min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
|
||||
strip_delay = 70
|
||||
put_on_delay = 70
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
|
||||
/obj/item/clothing/head/bomb_hood/security
|
||||
@@ -109,26 +110,26 @@
|
||||
desc = "A hood with radiation protective properties. The label reads, 'Made with lead. Please do not consume insulation.'"
|
||||
flags = THICKMATERIAL
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEFACE|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100, fire = 30, acid = 30)
|
||||
strip_delay = 60
|
||||
put_on_delay = 60
|
||||
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/clothing/suit/radiation
|
||||
name = "radiation suit"
|
||||
desc = "A suit that protects against radiation. The label reads, 'Made with lead. Please do not consume insulation.'"
|
||||
icon_state = "rad"
|
||||
item_state = "rad_suit"
|
||||
w_class = 4//bulky item
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
gas_transfer_coefficient = 0.90
|
||||
permeability_coefficient = 0.50
|
||||
flags = THICKMATERIAL
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/device/geiger_counter)
|
||||
slowdown = 1.5
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100, fire = 30, acid = 30)
|
||||
strip_delay = 60
|
||||
put_on_delay = 60
|
||||
flags_inv = HIDEJUMPSUIT
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
@@ -4,11 +4,10 @@
|
||||
icon_state = "wizard"
|
||||
gas_transfer_coefficient = 0.01 // IT'S MAGICAL OKAY JEEZ +1 TO NOT DIE
|
||||
permeability_coefficient = 0.01
|
||||
armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20)
|
||||
armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20, fire = 100, acid = 100)
|
||||
strip_delay = 50
|
||||
put_on_delay = 50
|
||||
unacidable = 1
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
dog_fashion = /datum/dog_fashion/head/blue_wizard
|
||||
|
||||
/obj/item/clothing/head/wizard/red
|
||||
@@ -35,7 +34,8 @@
|
||||
icon_state = "wizard-fake"
|
||||
gas_transfer_coefficient = 1
|
||||
permeability_coefficient = 1
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
|
||||
resistance_flags = FLAMMABLE
|
||||
dog_fashion = /datum/dog_fashion/head/blue_wizard
|
||||
|
||||
/obj/item/clothing/head/wizard/marisa
|
||||
@@ -66,13 +66,12 @@
|
||||
gas_transfer_coefficient = 0.01
|
||||
permeability_coefficient = 0.01
|
||||
body_parts_covered = CHEST|GROIN|ARMS|LEGS
|
||||
armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20)
|
||||
armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20, fire = 100, acid = 100)
|
||||
allowed = list(/obj/item/weapon/teleportation_scroll)
|
||||
flags_inv = HIDEJUMPSUIT
|
||||
strip_delay = 50
|
||||
put_on_delay = 50
|
||||
unacidable = 1
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
|
||||
/obj/item/clothing/suit/wizrobe/red
|
||||
name = "red wizard robe"
|
||||
@@ -124,9 +123,8 @@
|
||||
item_state = "wizrobe"
|
||||
gas_transfer_coefficient = 1
|
||||
permeability_coefficient = 1
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
unacidable = 0
|
||||
burn_state = FLAMMABLE
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
|
||||
resistance_flags = FLAMMABLE
|
||||
|
||||
/obj/item/clothing/head/wizard/marisa/fake
|
||||
name = "witch hat"
|
||||
@@ -134,9 +132,8 @@
|
||||
icon_state = "marisa"
|
||||
gas_transfer_coefficient = 1
|
||||
permeability_coefficient = 1
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
unacidable = 0
|
||||
burn_state = FLAMMABLE
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
|
||||
resistance_flags = FLAMMABLE
|
||||
|
||||
/obj/item/clothing/suit/wizrobe/marisa/fake
|
||||
name = "witch robe"
|
||||
@@ -145,6 +142,87 @@
|
||||
item_state = "marisarobe"
|
||||
gas_transfer_coefficient = 1
|
||||
permeability_coefficient = 1
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
unacidable = 0
|
||||
burn_state = FLAMMABLE
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
|
||||
resistance_flags = FLAMMABLE
|
||||
|
||||
/obj/item/clothing/suit/wizrobe/paper
|
||||
name = "papier-mache robe" // no non-latin characters!
|
||||
desc = "A robe held together by various bits of clear-tape and paste."
|
||||
icon_state = "wizard-paper"
|
||||
item_state = "wizrobe"
|
||||
var/robe_charge = TRUE
|
||||
actions_types = list(/datum/action/item_action/stickmen)
|
||||
|
||||
|
||||
/obj/item/clothing/suit/wizrobe/paper/ui_action_click(mob/user, action)
|
||||
stickmen()
|
||||
|
||||
|
||||
/obj/item/clothing/suit/wizrobe/paper/verb/stickmen()
|
||||
set category = "Object"
|
||||
set name = "Summon Stick Minions"
|
||||
set src in usr
|
||||
if(!isliving(usr))
|
||||
return
|
||||
if(!robe_charge)
|
||||
usr << "<span class='warning'>\The robe's internal magic supply is still recharging!</span>"
|
||||
return
|
||||
|
||||
usr.say("Rise, my creation! Off your page into this realm!")
|
||||
playsound(src.loc, 'sound/magic/Summon_Magic.ogg', 50, 1, 1)
|
||||
var/mob/living/M = new /mob/living/simple_animal/hostile/stickman(get_turf(usr))
|
||||
var/list/factions = usr.faction
|
||||
M.faction = factions
|
||||
src.robe_charge = FALSE
|
||||
sleep(30)
|
||||
src.robe_charge = TRUE
|
||||
usr << "<span class='notice'>\The robe hums, its internal magic supply restored.</span>"
|
||||
|
||||
|
||||
//Shielded Armour
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/shielded/wizard
|
||||
name = "battlemage armour"
|
||||
desc = "Not all wizards are afraid of getting up close and personal."
|
||||
icon_state = "battlemage"
|
||||
item_state = "battlemage"
|
||||
recharge_rate = 0
|
||||
current_charges = 15
|
||||
recharge_cooldown = INFINITY
|
||||
shield_state = "shield-red"
|
||||
shield_on = "shield-red"
|
||||
min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
|
||||
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
|
||||
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard
|
||||
armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20, fire = 100, acid = 100)
|
||||
slowdown = 0
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard
|
||||
name = "battlemage helmet"
|
||||
desc = "A suitably impressive helmet.."
|
||||
icon_state = "battlemage"
|
||||
item_state = "battlemage"
|
||||
min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
|
||||
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
|
||||
armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20, fire = 100, acid = 100)
|
||||
actions_types = null //No inbuilt light
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard/attack_self(mob/user)
|
||||
return
|
||||
|
||||
/obj/item/wizard_armour_charge
|
||||
name = "battlemage shield charges"
|
||||
desc = "A powerful rune that will increase the number of hits a suit of battlemage armour can take before failing.."
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "electricity2"
|
||||
|
||||
/obj/item/wizard_armour_charge/afterattack(obj/item/clothing/suit/space/hardsuit/shielded/wizard/W, mob/user)
|
||||
..()
|
||||
if(!istype(W))
|
||||
user << "<span class='warning'>The rune can only be used on battlemage armour!</span>"
|
||||
return
|
||||
W.current_charges += 8
|
||||
user <<"<span class='notice'>You charge \the [W]. It can now absorb [W.current_charges] hits.</span>"
|
||||
qdel(src)
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
icon_state = "black"
|
||||
item_state = "bl_suit"
|
||||
item_color = "black"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/clothing/under/color/grey
|
||||
name = "grey jumpsuit"
|
||||
|
||||
@@ -8,14 +8,14 @@
|
||||
item_color = "barman"
|
||||
alt_covers_chest = 1
|
||||
|
||||
|
||||
/obj/item/clothing/under/rank/captain //Alright, technically not a 'civilian' but its better then giving a .dm file for a single define.
|
||||
desc = "It's a blue jumpsuit with some gold markings denoting the rank of \"Captain\"."
|
||||
name = "captain's jumpsuit"
|
||||
icon_state = "captain"
|
||||
item_state = "b_suit"
|
||||
item_color = "captain"
|
||||
|
||||
sensor_mode = 3
|
||||
random_sensor = 0
|
||||
|
||||
/obj/item/clothing/under/rank/cargo
|
||||
name = "quartermaster's jumpsuit"
|
||||
@@ -24,13 +24,14 @@
|
||||
item_state = "lb_suit"
|
||||
item_color = "qm"
|
||||
|
||||
|
||||
/obj/item/clothing/under/rank/cargotech
|
||||
name = "cargo technician's jumpsuit"
|
||||
desc = "Shooooorts! They're comfy and easy to wear!"
|
||||
icon_state = "cargotech"
|
||||
item_state = "lb_suit"
|
||||
item_color = "cargo"
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
mutantrace_variation = MUTANTRACE_VARIATION
|
||||
|
||||
|
||||
/obj/item/clothing/under/rank/chaplain
|
||||
@@ -41,7 +42,6 @@
|
||||
item_color = "chapblack"
|
||||
can_adjust = 0
|
||||
|
||||
|
||||
/obj/item/clothing/under/rank/chef
|
||||
name = "cook's suit"
|
||||
desc = "A suit which is given only to the most <b>hardcore</b> cooks in space."
|
||||
@@ -49,7 +49,6 @@
|
||||
item_color = "chef"
|
||||
alt_covers_chest = 1
|
||||
|
||||
|
||||
/obj/item/clothing/under/rank/clown
|
||||
name = "clown suit"
|
||||
desc = "<i>'HONK!'</i>"
|
||||
@@ -71,7 +70,6 @@
|
||||
item_color = "hop"
|
||||
can_adjust = 0
|
||||
|
||||
|
||||
/obj/item/clothing/under/rank/hydroponics
|
||||
desc = "It's a jumpsuit designed to protect against minor plant-related hazards."
|
||||
name = "botanist's jumpsuit"
|
||||
@@ -80,45 +78,38 @@
|
||||
item_color = "hydroponics"
|
||||
permeability_coefficient = 0.50
|
||||
|
||||
|
||||
/obj/item/clothing/under/rank/janitor
|
||||
desc = "It's the official uniform of the station's janitor. It has minor protection from biohazards."
|
||||
name = "janitor's jumpsuit"
|
||||
icon_state = "janitor"
|
||||
item_color = "janitor"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
|
||||
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0)
|
||||
|
||||
/obj/item/clothing/under/lawyer
|
||||
desc = "Slick threads."
|
||||
name = "Lawyer suit"
|
||||
can_adjust = 0
|
||||
|
||||
|
||||
/obj/item/clothing/under/lawyer/black
|
||||
icon_state = "lawyer_black"
|
||||
item_state = "lawyer_black"
|
||||
item_color = "lawyer_black"
|
||||
|
||||
|
||||
/obj/item/clothing/under/lawyer/female
|
||||
icon_state = "black_suit_fem"
|
||||
item_state = "black_suit_fem"
|
||||
item_color = "black_suit_fem"
|
||||
|
||||
|
||||
/obj/item/clothing/under/lawyer/red
|
||||
icon_state = "lawyer_red"
|
||||
item_state = "lawyer_red"
|
||||
item_color = "lawyer_red"
|
||||
|
||||
|
||||
/obj/item/clothing/under/lawyer/blue
|
||||
icon_state = "lawyer_blue"
|
||||
item_state = "lawyer_blue"
|
||||
item_color = "lawyer_blue"
|
||||
|
||||
|
||||
/obj/item/clothing/under/lawyer/bluesuit
|
||||
name = "blue suit"
|
||||
desc = "A classy suit and tie."
|
||||
@@ -128,7 +119,6 @@
|
||||
can_adjust = 1
|
||||
alt_covers_chest = 1
|
||||
|
||||
|
||||
/obj/item/clothing/under/lawyer/purpsuit
|
||||
name = "purple suit"
|
||||
icon_state = "lawyer_purp"
|
||||
@@ -138,7 +128,6 @@
|
||||
can_adjust = 1
|
||||
alt_covers_chest = 1
|
||||
|
||||
|
||||
/obj/item/clothing/under/lawyer/blacksuit
|
||||
name = "black suit"
|
||||
desc = "A professional black suit. Nanotrasen Investigation Bureau approved!"
|
||||
@@ -148,7 +137,6 @@
|
||||
can_adjust = 1
|
||||
alt_covers_chest = 1
|
||||
|
||||
|
||||
/obj/item/clothing/under/rank/librarian
|
||||
name = "sensible suit"
|
||||
desc = "It's very... sensible."
|
||||
@@ -157,6 +145,12 @@
|
||||
item_color = "red_suit"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/rank/librarian/curator
|
||||
name = "treasure hunter uniform"
|
||||
desc = "A rugged uniform suitable for treasure hunting."
|
||||
icon_state = "curator"
|
||||
item_state = "curator"
|
||||
item_color = "curator"
|
||||
|
||||
/obj/item/clothing/under/rank/mime
|
||||
name = "mime's outfit"
|
||||
@@ -165,7 +159,6 @@
|
||||
item_state = "mime"
|
||||
item_color = "mime"
|
||||
|
||||
|
||||
/obj/item/clothing/under/rank/miner
|
||||
desc = "It's a snappy jumpsuit with a sturdy set of overalls. It is very dirty."
|
||||
name = "shaft miner's jumpsuit"
|
||||
@@ -173,7 +166,6 @@
|
||||
item_state = "miner"
|
||||
item_color = "miner"
|
||||
|
||||
|
||||
/obj/item/clothing/under/rank/miner/lavaland
|
||||
desc = "A green uniform for operating in hazardous environments."
|
||||
name = "shaft miner's jumpsuit"
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
icon_state = "chiefengineer"
|
||||
item_state = "gy_suit"
|
||||
item_color = "chief"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10)
|
||||
burn_state = FIRE_PROOF
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10, fire = 80, acid = 40)
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/clothing/under/rank/atmospheric_technician
|
||||
desc = "It's a jumpsuit worn by atmospheric technicians."
|
||||
@@ -14,7 +14,7 @@
|
||||
icon_state = "atmos"
|
||||
item_state = "atmos_suit"
|
||||
item_color = "atmos"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/clothing/under/rank/engineer
|
||||
desc = "It's an orange high visibility jumpsuit worn by engineers. It has minor radiation shielding."
|
||||
@@ -22,11 +22,13 @@
|
||||
icon_state = "engine"
|
||||
item_state = "engi_suit"
|
||||
item_color = "engine"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10, fire = 60, acid = 20)
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/clothing/under/rank/roboticist
|
||||
desc = "It's a slimming black with reinforced seams; great for industrial work."
|
||||
name = "roboticist's jumpsuit"
|
||||
icon_state = "robotics"
|
||||
item_state = "robotics"
|
||||
item_color = "robotics"
|
||||
item_color = "robotics"
|
||||
resistance_flags = 0
|
||||
@@ -7,7 +7,7 @@
|
||||
icon_state = "director"
|
||||
item_state = "lb_suit"
|
||||
item_color = "director"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 10, rad = 0)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 10, rad = 0, fire = 0, acid = 35)
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/rank/research_director/alt
|
||||
@@ -16,7 +16,7 @@
|
||||
icon_state = "rdwhimsy"
|
||||
item_state = "rdwhimsy"
|
||||
item_color = "rdwhimsy"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 10, rad = 0)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 10, rad = 0, fire = 0, acid = 0)
|
||||
can_adjust = 1
|
||||
alt_covers_chest = 1
|
||||
|
||||
@@ -26,18 +26,18 @@
|
||||
icon_state = "rdturtle"
|
||||
item_state = "p_suit"
|
||||
item_color = "rdturtle"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 10, rad = 0)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 10, rad = 0, fire = 0, acid = 0)
|
||||
can_adjust = 1
|
||||
alt_covers_chest = 1
|
||||
|
||||
/obj/item/clothing/under/rank/scientist
|
||||
desc = "It's made of a special fiber that provides minor protection against biohazards. It has markings that denote the wearer as a scientist."
|
||||
desc = "It's made of a special fiber that provides minor protection against explosives. It has markings that denote the wearer as a scientist."
|
||||
name = "scientist's jumpsuit"
|
||||
icon_state = "toxins"
|
||||
item_state = "w_suit"
|
||||
item_color = "toxinswhite"
|
||||
permeability_coefficient = 0.50
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0, fire = 0, acid = 0)
|
||||
|
||||
|
||||
/obj/item/clothing/under/rank/chemist
|
||||
@@ -47,7 +47,7 @@
|
||||
item_state = "w_suit"
|
||||
item_color = "chemistrywhite"
|
||||
permeability_coefficient = 0.50
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 50, acid = 65)
|
||||
|
||||
/*
|
||||
* Medical
|
||||
@@ -59,7 +59,7 @@
|
||||
item_state = "w_suit"
|
||||
item_color = "cmo"
|
||||
permeability_coefficient = 0.50
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0)
|
||||
|
||||
/obj/item/clothing/under/rank/geneticist
|
||||
desc = "It's made of a special fiber that gives special protection against biohazards. It has a genetics rank stripe on it."
|
||||
@@ -68,7 +68,7 @@
|
||||
item_state = "w_suit"
|
||||
item_color = "geneticswhite"
|
||||
permeability_coefficient = 0.50
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0)
|
||||
|
||||
/obj/item/clothing/under/rank/virologist
|
||||
desc = "It's made of a special fiber that gives special protection against biohazards. It has a virologist rank stripe on it."
|
||||
@@ -77,7 +77,7 @@
|
||||
item_state = "w_suit"
|
||||
item_color = "virologywhite"
|
||||
permeability_coefficient = 0.50
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0)
|
||||
|
||||
/obj/item/clothing/under/rank/nursesuit
|
||||
desc = "It's a jumpsuit commonly worn by nursing staff in the medical department."
|
||||
@@ -86,7 +86,7 @@
|
||||
item_state = "w_suit"
|
||||
item_color = "nursesuit"
|
||||
permeability_coefficient = 0.50
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0)
|
||||
fitted = NO_FEMALE_UNIFORM
|
||||
can_adjust = 0
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
item_state = "w_suit"
|
||||
item_color = "medical"
|
||||
permeability_coefficient = 0.50
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0)
|
||||
|
||||
/obj/item/clothing/under/rank/medical/blue
|
||||
name = "medical scrubs"
|
||||
@@ -118,4 +118,4 @@
|
||||
desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in deep purple."
|
||||
icon_state = "scrubspurple"
|
||||
item_color = "scrubspurple"
|
||||
can_adjust = 0
|
||||
can_adjust = 0
|
||||
|
||||
@@ -15,14 +15,17 @@
|
||||
icon_state = "rsecurity"
|
||||
item_state = "r_suit"
|
||||
item_color = "rsecurity"
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 30)
|
||||
strip_delay = 50
|
||||
alt_covers_chest = 1
|
||||
sensor_mode = 3
|
||||
random_sensor = 0
|
||||
|
||||
/obj/item/clothing/under/rank/security/grey
|
||||
icon_state = "security"
|
||||
item_state = "gy_suit"
|
||||
item_color = "security"
|
||||
|
||||
|
||||
/obj/item/clothing/under/rank/warden
|
||||
name = "security suit"
|
||||
@@ -30,9 +33,11 @@
|
||||
icon_state = "rwarden"
|
||||
item_state = "r_suit"
|
||||
item_color = "rwarden"
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 30)
|
||||
strip_delay = 50
|
||||
alt_covers_chest = 1
|
||||
sensor_mode = 3
|
||||
random_sensor = 0
|
||||
|
||||
/obj/item/clothing/under/rank/warden/grey
|
||||
icon_state = "warden"
|
||||
@@ -48,9 +53,11 @@
|
||||
icon_state = "detective"
|
||||
item_state = "det"
|
||||
item_color = "detective"
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 30)
|
||||
strip_delay = 50
|
||||
alt_covers_chest = 1
|
||||
sensor_mode = 3
|
||||
random_sensor = 0
|
||||
|
||||
/obj/item/clothing/under/rank/det/grey
|
||||
name = "noir suit"
|
||||
@@ -69,9 +76,11 @@
|
||||
icon_state = "rhos"
|
||||
item_state = "r_suit"
|
||||
item_color = "rhos"
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50)
|
||||
strip_delay = 60
|
||||
alt_covers_chest = 1
|
||||
sensor_mode = 3
|
||||
random_sensor = 0
|
||||
|
||||
/obj/item/clothing/under/rank/head_of_security/grey
|
||||
icon_state = "hos"
|
||||
@@ -111,4 +120,15 @@
|
||||
icon_state = "wardenblueclothes"
|
||||
item_state = "wardenblueclothes"
|
||||
item_color = "wardenblueclothes"
|
||||
alt_covers_chest = 1
|
||||
alt_covers_chest = 1
|
||||
|
||||
/*
|
||||
*Blueshirt
|
||||
*/
|
||||
|
||||
/obj/item/clothing/under/rank/security/blueshirt
|
||||
desc = "I'm a little busy right now, Calhoun."
|
||||
icon_state = "blueshift"
|
||||
item_state = "blueshift"
|
||||
item_color = "blueshift"
|
||||
can_adjust = 0
|
||||
|
||||
@@ -22,6 +22,14 @@
|
||||
item_color = "ek"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/scratch
|
||||
name = "white suit"
|
||||
desc = "A white suit, suitable for an excellent host"
|
||||
icon_state = "scratch"
|
||||
item_state = "scratch"
|
||||
item_color = "scratch"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/sl_suit
|
||||
desc = "It's a very amish looking suit."
|
||||
name = "amish suit"
|
||||
@@ -37,7 +45,7 @@
|
||||
item_state = "armor"
|
||||
can_adjust = 0
|
||||
strip_delay = 100
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/clothing/under/waiter
|
||||
name = "waiter's outfit"
|
||||
@@ -79,6 +87,14 @@
|
||||
item_color = "sexyclown"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/jabroni
|
||||
name = "Jabroni Outfit"
|
||||
desc = "The leather club is two sectors down."
|
||||
icon_state = "darkholme"
|
||||
item_state = "darkholme"
|
||||
item_color = "darkholme"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/rank/vice
|
||||
name = "vice officer's jumpsuit"
|
||||
desc = "It's the standard issue pretty-boy outfit, as seen on Holo-Vision."
|
||||
@@ -108,7 +124,7 @@
|
||||
icon_state = "black"
|
||||
item_state = "bl_suit"
|
||||
item_color = "black"
|
||||
w_class = 4//bulky item
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
gas_transfer_coefficient = 0.01
|
||||
permeability_coefficient = 0.02
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
@@ -117,7 +133,7 @@
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT
|
||||
can_adjust = 0
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/clothing/under/acj
|
||||
name = "administrative cybernetic jumpsuit"
|
||||
@@ -128,13 +144,13 @@
|
||||
gas_transfer_coefficient = 0.01
|
||||
permeability_coefficient = 0.01
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
armor = list(melee = 100, bullet = 100, laser = 100,energy = 100, bomb = 100, bio = 100, rad = 100)
|
||||
armor = list(melee = 100, bullet = 100, laser = 100,energy = 100, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100)
|
||||
cold_protection = CHEST | GROIN | LEGS | FEET | ARMS | HANDS
|
||||
min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT
|
||||
can_adjust = 0
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
|
||||
/obj/item/clothing/under/owl
|
||||
name = "owl uniform"
|
||||
@@ -251,7 +267,7 @@
|
||||
item_state = "burial"
|
||||
item_color = "burial"
|
||||
|
||||
/obj/item/clothing/under/blackskirt
|
||||
/obj/item/clothing/under/skirt/black
|
||||
name = "black skirt"
|
||||
desc = "A black skirt, very fancy!"
|
||||
icon_state = "blackskirt"
|
||||
@@ -260,7 +276,7 @@
|
||||
fitted = FEMALE_UNIFORM_TOP
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/blueskirt
|
||||
/obj/item/clothing/under/skirt/blue
|
||||
name = "blue skirt"
|
||||
desc = "A blue, casual skirt."
|
||||
icon_state = "blueskirt"
|
||||
@@ -270,12 +286,26 @@
|
||||
fitted = FEMALE_UNIFORM_TOP
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/blueskirt/redskirt
|
||||
/obj/item/clothing/under/skirt/red
|
||||
name = "red skirt"
|
||||
desc = "A red, casual skirt."
|
||||
icon_state = "redskirt"
|
||||
item_color = "redskirt"
|
||||
item_state = "r_suit"
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
fitted = FEMALE_UNIFORM_TOP
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/skirt/purple
|
||||
name = "purple skirt"
|
||||
desc = "A purple, casual skirt."
|
||||
icon_state = "purpleskirt"
|
||||
item_color = "purpleskirt"
|
||||
item_state = "p_suit"
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
fitted = FEMALE_UNIFORM_TOP
|
||||
can_adjust = 0
|
||||
|
||||
|
||||
/obj/item/clothing/under/schoolgirl
|
||||
name = "blue schoolgirl uniform"
|
||||
@@ -347,6 +377,10 @@
|
||||
fitted = FEMALE_UNIFORM_TOP
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/kilt/highlander
|
||||
desc = "You're the only one worthy of this kilt."
|
||||
flags = NODROP
|
||||
|
||||
/obj/item/clothing/under/sexymime
|
||||
name = "sexy mime outfit"
|
||||
desc = "The only time when you DON'T enjoy looking at someone's rack."
|
||||
@@ -366,7 +400,11 @@
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
fitted = NO_FEMALE_UNIFORM
|
||||
can_adjust = 0
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/clothing/under/gladiator/ash_walker
|
||||
desc = "This gladiator uniform appears to be covered in ash and fairly dated."
|
||||
has_sensor = 0
|
||||
|
||||
/obj/item/clothing/under/sundress
|
||||
name = "sundress"
|
||||
@@ -497,6 +535,26 @@
|
||||
can_adjust = 1
|
||||
alt_covers_chest = 1
|
||||
|
||||
/obj/item/clothing/under/singery
|
||||
name = "yellow performer's outfit"
|
||||
desc = "Just looking at this makes you want to sing."
|
||||
icon_state = "ysing"
|
||||
item_state = "ysing"
|
||||
item_color = "ysing"
|
||||
fitted = NO_FEMALE_UNIFORM
|
||||
alternate_worn_layer = ABOVE_SHOES_LAYER
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/singerb
|
||||
name = "blue performer's outfit"
|
||||
desc = "Just looking at this makes you want to sing."
|
||||
icon_state = "bsing"
|
||||
item_state = "bsing"
|
||||
item_color = "bsing"
|
||||
alternate_worn_layer = ABOVE_SHOES_LAYER
|
||||
fitted = FEMALE_UNIFORM_TOP
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/plaid_skirt/green
|
||||
name = "green plaid skirt"
|
||||
desc = "A preppy green skirt with a white blouse."
|
||||
@@ -514,13 +572,35 @@
|
||||
item_color = "jester"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/geisha
|
||||
name = "geisha suit"
|
||||
desc = "Cute space ninja senpai not included."
|
||||
icon_state = "geisha"
|
||||
item_color = "geisha"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/villain
|
||||
name = "villain suit"
|
||||
desc = "A change of wardrobe is necessary if you ever want to catch a real superhero."
|
||||
icon_state = "villain"
|
||||
item_color = "villain"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/sailor
|
||||
name = "sailor suit"
|
||||
desc = "Skipper's in the wardroom drinkin gin'."
|
||||
icon_state = "sailor"
|
||||
item_state = "b_suit"
|
||||
item_color = "sailor"
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/plasmaman
|
||||
name = "Plasma-man Jumpsuit"
|
||||
desc = "A specially designed suit that allows Plasma based life forms to exist in an oxygenated environment."
|
||||
name = "plasma envirosuit"
|
||||
desc = "A special containment suit that allows plasma-based lifeforms to exist safely in an oxygenated environment, and automatically extinguishes them in a crisis. Despite being airtight, it's not spaceworthy."
|
||||
icon_state = "plasmaman"
|
||||
item_state = "plasmaman"
|
||||
item_color = "plasmaman"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0, fire = 95, acid = 95)
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
can_adjust = 0
|
||||
strip_delay = 80
|
||||
@@ -531,7 +611,7 @@
|
||||
|
||||
/obj/item/clothing/under/plasmaman/examine(mob/user)
|
||||
..()
|
||||
user << "<span class='notice'>There are [extinguishes_left] extinguisher canisters left in this suit.</span>"
|
||||
user << "<span class='notice'>There are [extinguishes_left] extinguisher charges left in this suit.</span>"
|
||||
|
||||
|
||||
/obj/item/clothing/under/plasmaman/proc/Extinguish(mob/living/carbon/human/H)
|
||||
@@ -546,7 +626,7 @@
|
||||
extinguishes_left--
|
||||
H.visible_message("<span class='warning'>[H]'s suit automatically extinguishes them!</span>","<span class='warning'>Your suit automatically extinguishes you.</span>")
|
||||
H.ExtinguishMob()
|
||||
PoolOrNew(/obj/effect/particle_effect/water, get_turf(H))
|
||||
new /obj/effect/particle_effect/water(get_turf(H))
|
||||
return 0
|
||||
|
||||
/obj/item/clothing/under/plasmaman/attackby(obj/item/E, mob/user, params)
|
||||
@@ -556,15 +636,15 @@
|
||||
return
|
||||
else
|
||||
extinguishes_left = 5
|
||||
user << "<span class='notice'>You refill the suits inbuilt extinguisher, using up the refill pack.</span>"
|
||||
user << "<span class='notice'>You refill the suit's built-in extinguisher, using up the cartridge.</span>"
|
||||
qdel(E)
|
||||
return
|
||||
return
|
||||
return
|
||||
|
||||
/obj/item/device/extinguisher_refill
|
||||
name = "Plasma-man jumpsuit refill pack"
|
||||
desc = "A compressed water pack used to refill plasma-man jumpsuit auto-extinguishers."
|
||||
name = "envirosuit extinguisher cartridge"
|
||||
desc = "A cartridge loaded with a compressed extinguisher mix, used to refill the automatic extinguisher on plasma envirosuits."
|
||||
icon_state = "plasmarefill"
|
||||
origin_tech = "materials=2;plasmatech=3;biotech=1"
|
||||
|
||||
@@ -574,22 +654,3 @@
|
||||
icon_state = "hostanclothes"
|
||||
item_state = "hostanclothes"
|
||||
item_color = "hostanclothes"
|
||||
|
||||
/obj/item/clothing/under/mesh
|
||||
name = "mesh suit"
|
||||
desc = "A mesh of strong fabric worn underneath normal clothing and armor."
|
||||
body_parts_covered = CHEST|GROIN|LEGS|ARMS
|
||||
icon_state = "mesh_suit"
|
||||
item_color = "mesh_suit"
|
||||
item_state = "mesh_suit"
|
||||
can_adjust = FALSE
|
||||
burn_state = FIRE_PROOF
|
||||
unacidable = TRUE
|
||||
|
||||
/obj/item/clothing/under/mesh/top
|
||||
name = "mesh shirt"
|
||||
desc = "A mesh of strong fabric worn underneath normal clothing and armor."
|
||||
body_parts_covered = CHEST|GROIN
|
||||
icon_state = "mesh_shirt"
|
||||
item_color = "mesh_shirt"
|
||||
item_state = "mesh_shirt"
|
||||
@@ -4,6 +4,7 @@
|
||||
gender = PLURAL
|
||||
body_parts_covered = GROIN
|
||||
fitted = NO_FEMALE_UNIFORM
|
||||
mutantrace_variation = MUTANTRACE_VARIATION
|
||||
can_adjust = 0
|
||||
|
||||
/obj/item/clothing/under/shorts/red
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
item_state = "bl_suit"
|
||||
item_color = "syndicate"
|
||||
has_sensor = 0
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 40)
|
||||
alt_covers_chest = 1
|
||||
|
||||
/obj/item/clothing/under/syndicate/tacticool
|
||||
@@ -14,7 +14,7 @@
|
||||
icon_state = "tactifool"
|
||||
item_state = "bl_suit"
|
||||
item_color = "tactifool"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 40)
|
||||
|
||||
/obj/item/clothing/under/syndicate/sniper
|
||||
name = "Tactical turtleneck suit"
|
||||
@@ -36,5 +36,5 @@
|
||||
icon_state = "trackpants"
|
||||
item_color = "trackpants"
|
||||
can_adjust = 0
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
burn_state = FIRE_PROOF
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
|
||||
resistance_flags = 0
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/clothing/tie
|
||||
/obj/item/clothing/tie //Ties moved to neck slot items, but as there are still things like medals and armbands, this accessory system is being kept as-is
|
||||
name = "tie"
|
||||
desc = "A neosilk clip-on tie."
|
||||
icon = 'icons/obj/clothing/ties.dmi'
|
||||
@@ -6,8 +6,56 @@
|
||||
item_state = "" //no inhands
|
||||
item_color = "bluetie"
|
||||
slot_flags = 0
|
||||
w_class = 2
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
var/minimize_when_attached = TRUE // TRUE if shown as a small icon in corner, FALSE if overlayed
|
||||
|
||||
/obj/item/clothing/tie/proc/attach(obj/item/clothing/under/U, user)
|
||||
if(pockets) // Attach storage to jumpsuit
|
||||
if(U.pockets) // storage items conflict
|
||||
return 0
|
||||
|
||||
pockets.loc = U
|
||||
U.pockets = pockets
|
||||
|
||||
U.hastie = src
|
||||
loc = U
|
||||
layer = FLOAT_LAYER
|
||||
plane = FLOAT_PLANE
|
||||
if(minimize_when_attached)
|
||||
transform *= 0.5 //halve the size so it doesn't overpower the under
|
||||
pixel_x += 8
|
||||
pixel_y -= 8
|
||||
U.add_overlay(src)
|
||||
|
||||
for(var/armor_type in armor)
|
||||
U.armor[armor_type] += armor[armor_type]
|
||||
|
||||
return 1
|
||||
|
||||
|
||||
/obj/item/clothing/tie/proc/detach(obj/item/clothing/under/U, user)
|
||||
if(pockets && pockets == U.pockets)
|
||||
pockets.loc = src
|
||||
U.pockets = null
|
||||
|
||||
for(var/armor_type in armor)
|
||||
U.armor[armor_type] -= armor[armor_type]
|
||||
|
||||
if(minimize_when_attached)
|
||||
transform *= 2
|
||||
pixel_x -= 8
|
||||
pixel_y += 8
|
||||
layer = initial(layer)
|
||||
plane = initial(plane)
|
||||
U.cut_overlays()
|
||||
U.hastie = null
|
||||
|
||||
/obj/item/clothing/tie/proc/on_uniform_equip(obj/item/clothing/under/U, user)
|
||||
return
|
||||
|
||||
/obj/item/clothing/tie/proc/on_uniform_dropped(obj/item/clothing/under/U, user)
|
||||
return
|
||||
/*
|
||||
/obj/item/clothing/tie/blue
|
||||
name = "blue tie"
|
||||
icon_state = "bluetie"
|
||||
@@ -28,14 +76,15 @@
|
||||
desc = "A neosilk clip-on tie. This one is disgusting."
|
||||
icon_state = "horribletie"
|
||||
item_color = "horribletie"
|
||||
|
||||
*/
|
||||
/obj/item/clothing/tie/waistcoat
|
||||
name = "waistcoat"
|
||||
desc = "For some classy, murderous fun."
|
||||
icon_state = "waistcoat"
|
||||
item_state = "waistcoat"
|
||||
item_color = "waistcoat"
|
||||
|
||||
minimize_when_attached = FALSE
|
||||
/*
|
||||
/obj/item/clothing/tie/stethoscope
|
||||
name = "stethoscope"
|
||||
desc = "An outdated medical apparatus for listening to the sounds of the human body. It also makes you look like you know what you're doing."
|
||||
@@ -44,7 +93,7 @@
|
||||
|
||||
/obj/item/clothing/tie/stethoscope/attack(mob/living/carbon/human/M, mob/living/user)
|
||||
if(ishuman(M) && isliving(user))
|
||||
if(user.a_intent == "help")
|
||||
if(user.a_intent == INTENT_HELP)
|
||||
var/body_part = parse_zone(user.zone_selected)
|
||||
if(body_part)
|
||||
var/their = "their"
|
||||
@@ -76,7 +125,7 @@
|
||||
user.visible_message("[user] places [src] against [M]'s [body_part] and listens attentively.", "You place [src] against [their] [body_part]. You [sound_strength] [sound].")
|
||||
return
|
||||
return ..(M,user)
|
||||
|
||||
*/
|
||||
//////////
|
||||
//Medals//
|
||||
//////////
|
||||
@@ -87,11 +136,11 @@
|
||||
icon_state = "bronze"
|
||||
item_color = "bronze"
|
||||
materials = list(MAT_METAL=1000)
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
//Pinning medals on people
|
||||
/obj/item/clothing/tie/medal/attack(mob/living/carbon/human/M, mob/living/user)
|
||||
if(ishuman(M) && (user.a_intent == "help"))
|
||||
if(ishuman(M) && (user.a_intent == INTENT_HELP))
|
||||
|
||||
if(M.wear_suit)
|
||||
if((M.wear_suit.flags_inv & HIDEJUMPSUIT)) //Check if the jumpsuit is covered
|
||||
@@ -100,12 +149,19 @@
|
||||
|
||||
if(M.w_uniform)
|
||||
var/obj/item/clothing/under/U = M.w_uniform
|
||||
if(U.attachTie(src, user, 0)) //Attach it, do not notify the user of the attachment
|
||||
if(user == M)
|
||||
user << "<span class='notice'>You attach [src] to [U].</span>"
|
||||
else
|
||||
user.visible_message("[user] pins \the [src] on [M]'s chest.", \
|
||||
"<span class='notice'>You pin \the [src] on [M]'s chest.</span>")
|
||||
var/delay = 20
|
||||
if(user == M)
|
||||
delay = 0
|
||||
else
|
||||
user.visible_message("[user] is trying to pin [src] on [M]'s chest.", \
|
||||
"<span class='notice'>You try to pin [src] on [M]'s chest.</span>")
|
||||
if(do_after(user, delay, target = M))
|
||||
if(U.attachTie(src, user, 0)) //Attach it, do not notify the user of the attachment
|
||||
if(user == M)
|
||||
user << "<span class='notice'>You attach [src] to [U].</span>"
|
||||
else
|
||||
user.visible_message("[user] pins \the [src] on [M]'s chest.", \
|
||||
"<span class='notice'>You pin \the [src] on [M]'s chest.</span>")
|
||||
|
||||
else user << "<span class='warning'>Medals can only be pinned on jumpsuits!</span>"
|
||||
else ..()
|
||||
@@ -148,6 +204,7 @@
|
||||
/obj/item/clothing/tie/medal/gold/captain
|
||||
name = "medal of captaincy"
|
||||
desc = "A golden medal awarded exclusively to those promoted to the rank of captain. It signifies the codified responsibilities of a captain to Nanotrasen, and their undisputable authority over their crew."
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
|
||||
|
||||
/obj/item/clothing/tie/medal/gold/heroism
|
||||
name = "medal of exceptional heroism"
|
||||
@@ -202,60 +259,60 @@
|
||||
desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is white and blue."
|
||||
icon_state = "medblueband"
|
||||
item_color = "medblueband"
|
||||
|
||||
/*
|
||||
///////////
|
||||
//SCARVES//
|
||||
///////////
|
||||
|
||||
/obj/item/clothing/tie/scarf
|
||||
name = "scarf"
|
||||
desc = "A stylish scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks."
|
||||
dog_fashion = /datum/dog_fashion/head
|
||||
|
||||
/obj/item/clothing/tie/scarf/red
|
||||
name = "red scarf"
|
||||
icon_state = "redscarf"
|
||||
item_color = "redscarf"
|
||||
|
||||
/obj/item/clothing/tie/scarf/green
|
||||
name = "green scarf"
|
||||
icon_state = "greenscarf"
|
||||
item_color = "greenscarf"
|
||||
|
||||
/obj/item/clothing/tie/scarf/darkblue
|
||||
name = "dark blue scarf"
|
||||
icon_state = "darkbluescarf"
|
||||
item_color = "darkbluescarf"
|
||||
|
||||
/obj/item/clothing/tie/scarf/purple
|
||||
name = "purple scarf"
|
||||
icon_state = "purplescarf"
|
||||
item_color = "purplescarf"
|
||||
|
||||
/obj/item/clothing/tie/scarf/yellow
|
||||
name = "yellow scarf"
|
||||
icon_state = "yellowscarf"
|
||||
item_color = "yellowscarf"
|
||||
|
||||
/obj/item/clothing/tie/scarf/orange
|
||||
name = "orange scarf"
|
||||
icon_state = "orangescarf"
|
||||
item_color = "orangescarf"
|
||||
|
||||
/obj/item/clothing/tie/scarf/lightblue
|
||||
name = "light blue scarf"
|
||||
icon_state = "lightbluescarf"
|
||||
item_color = "lightbluescarf"
|
||||
|
||||
/obj/item/clothing/tie/scarf/white
|
||||
/obj/item/clothing/tie/scarf //Default white color, same functionality as beanies.
|
||||
name = "white scarf"
|
||||
icon_state = "whitescarf"
|
||||
item_color = "whitescarf"
|
||||
icon_state = "scarf"
|
||||
desc = "A stylish scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks."
|
||||
item_color = "scarf"
|
||||
dog_fashion = /datum/dog_fashion/head
|
||||
|
||||
/obj/item/clothing/tie/scarf/black
|
||||
name = "black scarf"
|
||||
icon_state = "blackscarf"
|
||||
item_color = "blackscarf"
|
||||
icon_state = "scarf"
|
||||
color = "#4A4A4B" //Grey but it looks black
|
||||
|
||||
/obj/item/clothing/tie/scarf/red
|
||||
name = "red scarf"
|
||||
icon_state = "scarf"
|
||||
color = "#D91414" //Red
|
||||
|
||||
/obj/item/clothing/tie/scarf/green
|
||||
name = "green scarf"
|
||||
icon_state = "scarf"
|
||||
color = "#5C9E54" //Green
|
||||
|
||||
/obj/item/clothing/tie/scarf/darkblue
|
||||
name = "dark blue scarf"
|
||||
icon_state = "scarf"
|
||||
color = "#1E85BC" //Blue
|
||||
|
||||
/obj/item/clothing/tie/scarf/purple
|
||||
name = "purple scarf"
|
||||
icon_state = "scarf"
|
||||
color = "#9557C5" //purple
|
||||
|
||||
/obj/item/clothing/tie/scarf/yellow
|
||||
name = "yellow scarf"
|
||||
icon_state = "scarf"
|
||||
color = "#E0C14F" //Yellow
|
||||
|
||||
/obj/item/clothing/tie/scarf/orange
|
||||
name = "orange scarf"
|
||||
icon_state = "scarf"
|
||||
color = "#C67A4B" //orange
|
||||
|
||||
/obj/item/clothing/tie/scarf/cyan
|
||||
name = "cyan scarf"
|
||||
icon_state = "scarf"
|
||||
color = "#54A3CE" //Cyan
|
||||
|
||||
|
||||
//Striped scarves get their own icons
|
||||
|
||||
/obj/item/clothing/tie/scarf/zebra
|
||||
name = "zebra scarf"
|
||||
@@ -305,7 +362,6 @@
|
||||
desc = "Damn, it feels good to be a gangster."
|
||||
icon = 'icons/obj/clothing/ties.dmi'
|
||||
icon_state = "bling"
|
||||
item_state = "" //no inhands
|
||||
item_color = "bling"
|
||||
|
||||
////////////////
|
||||
@@ -315,9 +371,37 @@
|
||||
/obj/item/clothing/tie/talisman
|
||||
name = "bone talisman"
|
||||
desc = "A hunter's talisman, some say the old gods smile on those who wear it."
|
||||
icon = 'icons/obj/clothing/ties.dmi'
|
||||
icon_state = "talisman"
|
||||
item_state = ""
|
||||
item_color = "talisman"
|
||||
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS|HEAD
|
||||
armor = list(melee = 5, bullet = 5, laser = 5, energy = 5, bomb = 50, bio = 65, rad = 5) //Faith is the best armor. //This won't actually work because of accessories kill me with a fucking knife jesus christ I hate code
|
||||
armor = list(melee = 5, bullet = 5, laser = 5, energy = 5, bomb = 20, bio = 20, rad = 5, fire = 0, acid = 25)
|
||||
*/
|
||||
//////////////
|
||||
//OBJECTION!//
|
||||
//////////////
|
||||
|
||||
/obj/item/clothing/tie/lawyers_badge
|
||||
name = "attorney's badge"
|
||||
desc = "Fills you with the conviction of JUSTICE. Lawyers tend to want to show it to everyone they meet."
|
||||
icon_state = "lawyerbadge"
|
||||
item_color = "lawyerbadge"
|
||||
|
||||
/obj/item/clothing/tie/lawyers_badge/attach(obj/item/clothing/under/U, user)
|
||||
if(!..())
|
||||
return 0
|
||||
if(isliving(U.loc))
|
||||
on_uniform_equip(U, user)
|
||||
|
||||
/obj/item/clothing/tie/lawyers_badge/detach(obj/item/clothing/under/U, user)
|
||||
..()
|
||||
if(isliving(U.loc))
|
||||
on_uniform_dropped(U, user)
|
||||
|
||||
/obj/item/clothing/tie/lawyers_badge/on_uniform_equip(obj/item/clothing/under/U, user)
|
||||
var/mob/living/L = user
|
||||
if(L)
|
||||
L.bubble_icon = "lawyer"
|
||||
|
||||
/obj/item/clothing/tie/lawyers_badge/on_uniform_dropped(obj/item/clothing/under/U, user)
|
||||
var/mob/living/L = user
|
||||
if(L)
|
||||
L.bubble_icon = initial(L.bubble_icon)
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
//Just some alt-uniforms themed around Star Trek - Pls don't sue, Mr Roddenberry ;_;
|
||||
|
||||
|
||||
/obj/item/clothing/under/trek
|
||||
can_adjust = 0
|
||||
|
||||
|
||||
//TOS
|
||||
/obj/item/clothing/under/trek/command
|
||||
name = "command uniform"
|
||||
desc = "The uniform worn by command officers"
|
||||
icon_state = "trek_command"
|
||||
item_color = "trek_command"
|
||||
item_state = "y_suit"
|
||||
|
||||
/obj/item/clothing/under/trek/engsec
|
||||
name = "engsec uniform"
|
||||
desc = "The uniform worn by engineering/security officers"
|
||||
icon_state = "trek_engsec"
|
||||
item_color = "trek_engsec"
|
||||
item_state = "r_suit"
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) //more sec than eng, but w/e.
|
||||
strip_delay = 50
|
||||
|
||||
/obj/item/clothing/under/trek/medsci
|
||||
name = "medsci uniform"
|
||||
desc = "The uniform worn by medical/science officers"
|
||||
icon_state = "trek_medsci"
|
||||
item_color = "trek_medsci"
|
||||
item_state = "b_suit"
|
||||
|
||||
|
||||
//TNG
|
||||
/obj/item/clothing/under/trek/command/next
|
||||
icon_state = "trek_next_command"
|
||||
item_color = "trek_next_command"
|
||||
item_state = "r_suit"
|
||||
|
||||
/obj/item/clothing/under/trek/engsec/next
|
||||
icon_state = "trek_next_engsec"
|
||||
item_color = "trek_next_engsec"
|
||||
item_state = "y_suit"
|
||||
|
||||
/obj/item/clothing/under/trek/medsci/next
|
||||
icon_state = "trek_next_medsci"
|
||||
item_color = "trek_next_medsci"
|
||||
|
||||
|
||||
//ENT
|
||||
/obj/item/clothing/under/trek/command/ent
|
||||
icon_state = "trek_ent_command"
|
||||
item_color = "trek_ent_command"
|
||||
item_state = "bl_suit"
|
||||
|
||||
/obj/item/clothing/under/trek/engsec/ent
|
||||
icon_state = "trek_ent_engsec"
|
||||
item_color = "trek_ent_engsec"
|
||||
item_state = "bl_suit"
|
||||
|
||||
/obj/item/clothing/under/trek/medsci/ent
|
||||
icon_state = "trek_ent_medsci"
|
||||
item_color = "trek_ent_medsci"
|
||||
item_state = "bl_suit"
|
||||
|
||||
|
||||
//Q
|
||||
/obj/item/clothing/under/trek/Q
|
||||
name = "french marshall's uniform"
|
||||
desc = "something about it feels off..."
|
||||
icon_state = "trek_Q"
|
||||
item_color = "trek_Q"
|
||||
item_state = "r_suit"
|
||||
Reference in New Issue
Block a user