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:
@@ -14,17 +14,14 @@
|
||||
desc = "You wear this on your back and put items into it."
|
||||
icon_state = "backpack"
|
||||
item_state = "backpack"
|
||||
w_class = 4
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
slot_flags = SLOT_BACK //ERROOOOO
|
||||
max_w_class = 3
|
||||
max_w_class = WEIGHT_CLASS_NORMAL
|
||||
max_combined_w_class = 21
|
||||
storage_slots = 21
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 20
|
||||
|
||||
/obj/item/weapon/storage/backpack/attackby(obj/item/weapon/W, mob/user, params)
|
||||
playsound(src.loc, "rustle", 50, 1, -5)
|
||||
return ..()
|
||||
resistance_flags = 0
|
||||
obj_integrity = 300
|
||||
max_integrity = 300
|
||||
|
||||
/*
|
||||
* Backpack Types
|
||||
@@ -35,14 +32,16 @@
|
||||
desc = "A backpack that opens into a localized pocket of Blue Space."
|
||||
origin_tech = "bluespace=5;materials=4;engineering=4;plasmatech=5"
|
||||
icon_state = "holdingpack"
|
||||
max_w_class = 6
|
||||
max_w_class = WEIGHT_CLASS_GIGANTIC
|
||||
max_combined_w_class = 35
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF
|
||||
var/pshoom = 'sound/items/PSHOOM.ogg'
|
||||
var/alt_sound = 'sound/items/PSHOOM_2.ogg'
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 60, acid = 50)
|
||||
|
||||
|
||||
/obj/item/weapon/storage/backpack/holding/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is jumping into [src]! It looks like \he's trying to commit suicide.</span>")
|
||||
user.visible_message("<span class='suicide'>[user] is jumping into [src]! It looks like [user.p_theyre()] trying to commit suicide.</span>")
|
||||
user.drop_item()
|
||||
user.Stun(5)
|
||||
sleep(20)
|
||||
@@ -58,7 +57,7 @@
|
||||
playsound(src, alt_sound, 40, 1)
|
||||
else
|
||||
playsound(src, pshoom, 40, 1)
|
||||
user.Beam(dest_object,icon_state="rped_upgrade",icon='icons/effects/effects.dmi',time=5)
|
||||
user.Beam(dest_object,icon_state="rped_upgrade",time=5)
|
||||
return 1
|
||||
user << "The [src.name] buzzes."
|
||||
playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 0)
|
||||
@@ -92,12 +91,12 @@
|
||||
desc = "Space Santa uses this to deliver toys to all the nice children in space in Christmas! Wow, it's pretty big!"
|
||||
icon_state = "giftbag0"
|
||||
item_state = "giftbag"
|
||||
w_class = 4
|
||||
max_w_class = 3
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
max_w_class = WEIGHT_CLASS_NORMAL
|
||||
max_combined_w_class = 60
|
||||
|
||||
/obj/item/weapon/storage/backpack/santabag/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] places the [src.name] over their head and pulls it tight! It looks like they aren't in the Christmas spirit...</span>")
|
||||
user.visible_message("<span class='suicide'>[user] places [src] over their head and pulls it tight! It looks like they aren't in the Christmas spirit...</span>")
|
||||
return (OXYLOSS)
|
||||
|
||||
/obj/item/weapon/storage/backpack/cultpack
|
||||
@@ -141,14 +140,14 @@
|
||||
desc = "It's a special backpack made exclusively for Nanotrasen officers."
|
||||
icon_state = "captainpack"
|
||||
item_state = "captainpack"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/weapon/storage/backpack/industrial
|
||||
name = "industrial backpack"
|
||||
desc = "It's a tough backpack for the daily grind of station life."
|
||||
icon_state = "engiepack"
|
||||
item_state = "engiepack"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/weapon/storage/backpack/botany
|
||||
name = "botany backpack"
|
||||
@@ -173,7 +172,7 @@
|
||||
desc = "A specially designed backpack. It's fire resistant and smells vaguely of plasma."
|
||||
icon_state = "toxpack"
|
||||
item_state = "toxpack"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/weapon/storage/backpack/virology
|
||||
name = "virology backpack"
|
||||
@@ -187,93 +186,94 @@
|
||||
*/
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel
|
||||
name = "leather satchel"
|
||||
desc = "It's a very fancy satchel made with fine leather."
|
||||
icon_state = "satchel"
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel/withwallet/New()
|
||||
..()
|
||||
new /obj/item/weapon/storage/wallet/random( src )
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel_norm
|
||||
name = "satchel"
|
||||
desc = "A trendy looking satchel."
|
||||
icon_state = "satchel-norm"
|
||||
species_exception = list(/datum/species/angel) //satchels can be equipped since they are on the side, not back
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel_eng
|
||||
/obj/item/weapon/storage/backpack/satchel/leather
|
||||
name = "leather satchel"
|
||||
desc = "It's a very fancy satchel made with fine leather."
|
||||
icon_state = "satchel"
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel/leather/withwallet/New()
|
||||
..()
|
||||
new /obj/item/weapon/storage/wallet/random( src )
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel/eng
|
||||
name = "industrial satchel"
|
||||
desc = "A tough satchel with extra pockets."
|
||||
icon_state = "satchel-eng"
|
||||
item_state = "engiepack"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel_med
|
||||
/obj/item/weapon/storage/backpack/satchel/med
|
||||
name = "medical satchel"
|
||||
desc = "A sterile satchel used in medical departments."
|
||||
icon_state = "satchel-med"
|
||||
item_state = "medicalpack"
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel_vir
|
||||
/obj/item/weapon/storage/backpack/satchel/vir
|
||||
name = "virologist satchel"
|
||||
desc = "A sterile satchel with virologist colours."
|
||||
icon_state = "satchel-vir"
|
||||
item_state = "satchel-vir"
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel_chem
|
||||
/obj/item/weapon/storage/backpack/satchel/chem
|
||||
name = "chemist satchel"
|
||||
desc = "A sterile satchel with chemist colours."
|
||||
icon_state = "satchel-chem"
|
||||
item_state = "satchel-chem"
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel_gen
|
||||
/obj/item/weapon/storage/backpack/satchel/gen
|
||||
name = "geneticist satchel"
|
||||
desc = "A sterile satchel with geneticist colours."
|
||||
icon_state = "satchel-gen"
|
||||
item_state = "satchel-gen"
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel_tox
|
||||
/obj/item/weapon/storage/backpack/satchel/tox
|
||||
name = "scientist satchel"
|
||||
desc = "Useful for holding research materials."
|
||||
icon_state = "satchel-tox"
|
||||
item_state = "satchel-tox"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel_hyd
|
||||
/obj/item/weapon/storage/backpack/satchel/hyd
|
||||
name = "botanist satchel"
|
||||
desc = "A satchel made of all natural fibers."
|
||||
icon_state = "satchel-hyd"
|
||||
item_state = "satchel-hyd"
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel_sec
|
||||
/obj/item/weapon/storage/backpack/satchel/sec
|
||||
name = "security satchel"
|
||||
desc = "A robust satchel for security related needs."
|
||||
icon_state = "satchel-sec"
|
||||
item_state = "securitypack"
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel_explorer
|
||||
/obj/item/weapon/storage/backpack/satchel/explorer
|
||||
name = "explorer satchel"
|
||||
desc = "A robust satchel for stashing your loot."
|
||||
icon_state = "satchel-explorer"
|
||||
item_state = "securitypack"
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel_cap
|
||||
/obj/item/weapon/storage/backpack/satchel/cap
|
||||
name = "captain's satchel"
|
||||
desc = "An exclusive satchel for Nanotrasen officers."
|
||||
icon_state = "satchel-cap"
|
||||
item_state = "captainpack"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel_flat
|
||||
/obj/item/weapon/storage/backpack/satchel/flat
|
||||
name = "smuggler's satchel"
|
||||
desc = "A very slim satchel that can easily fit into tight spaces."
|
||||
icon_state = "satchel-flat"
|
||||
w_class = 3 //Can fit in backpacks itself.
|
||||
w_class = WEIGHT_CLASS_NORMAL //Can fit in backpacks itself.
|
||||
max_combined_w_class = 15
|
||||
level = 1
|
||||
cant_hold = list(/obj/item/weapon/storage/backpack/satchel_flat) //muh recursive backpacks
|
||||
cant_hold = list(/obj/item/weapon/storage/backpack/satchel/flat) //muh recursive backpacks
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel_flat/hide(var/intact)
|
||||
/obj/item/weapon/storage/backpack/satchel/flat/hide(var/intact)
|
||||
if(intact)
|
||||
invisibility = INVISIBILITY_MAXIMUM
|
||||
anchored = 1 //otherwise you can start pulling, cover it, and drag around an invisible backpack.
|
||||
@@ -283,10 +283,36 @@
|
||||
anchored = 0
|
||||
icon_state = initial(icon_state)
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel_flat/New()
|
||||
/obj/item/weapon/storage/backpack/satchel/flat/New()
|
||||
..()
|
||||
new /obj/item/stack/tile/plasteel(src)
|
||||
new /obj/item/weapon/crowbar(src)
|
||||
SSpersistence.new_secret_satchels += src
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel/flat/Destroy()
|
||||
SSpersistence.new_secret_satchels -= src
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel/flat/secret
|
||||
var/list/reward_one_of_these = list() //Intended for map editing
|
||||
var/list/reward_all_of_these = list() //use paths!
|
||||
var/revealed = 0
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel/flat/secret/New()
|
||||
..()
|
||||
|
||||
if(isfloorturf(loc) && !istype(loc,/turf/open/floor/plating/))
|
||||
hide(1)
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel/flat/secret/hide(intact)
|
||||
..()
|
||||
if(!intact && !revealed)
|
||||
if(reward_one_of_these.len > 0)
|
||||
var/reward = pick(reward_one_of_these)
|
||||
new reward(src)
|
||||
for(var/R in reward_all_of_these)
|
||||
new R(src)
|
||||
revealed = 1
|
||||
|
||||
/obj/item/weapon/storage/backpack/dufflebag
|
||||
name = "dufflebag"
|
||||
@@ -301,7 +327,7 @@
|
||||
desc = "A large dufflebag for holding extra captainly goods."
|
||||
icon_state = "duffle-captain"
|
||||
item_state = "duffle-captain"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/weapon/storage/backpack/dufflebag/med
|
||||
name = "medical dufflebag"
|
||||
@@ -320,14 +346,14 @@
|
||||
desc = "A large dufflebag for holding extra tools and supplies."
|
||||
icon_state = "duffle-eng"
|
||||
item_state = "duffle-eng"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = 0
|
||||
|
||||
/obj/item/weapon/storage/backpack/dufflebag/drone
|
||||
name = "drone dufflebag"
|
||||
desc = "A large dufflebag for holding tools and hats."
|
||||
icon_state = "duffle-drone"
|
||||
item_state = "duffle-drone"
|
||||
burn_state = FIRE_PROOF
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/weapon/storage/backpack/dufflebag/drone/New()
|
||||
..()
|
||||
@@ -355,7 +381,7 @@
|
||||
name = "suspicious looking dufflebag"
|
||||
desc = "A large dufflebag for holding extra tactical supplies."
|
||||
icon_state = "duffle-syndie"
|
||||
item_state = "duffle-syndiemed"
|
||||
item_state = "duffle-syndie"
|
||||
origin_tech = "syndicate=1"
|
||||
silent = 1
|
||||
slowdown = 0
|
||||
@@ -424,7 +450,7 @@
|
||||
contents = list()
|
||||
new /obj/item/ammo_box/magazine/smgm45(src)
|
||||
new /obj/item/ammo_box/magazine/smgm45(src)
|
||||
new /obj/item/weapon/gun/projectile/automatic/c20r(src)
|
||||
new /obj/item/weapon/gun/ballistic/automatic/c20r(src)
|
||||
new /obj/item/weapon/suppressor/specialoffer(src)
|
||||
return
|
||||
|
||||
@@ -435,7 +461,7 @@
|
||||
..()
|
||||
contents = list()
|
||||
new /obj/item/ammo_box/magazine/m12g(src)
|
||||
new /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog(src)
|
||||
new /obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog(src)
|
||||
new /obj/item/ammo_box/magazine/m12g/buckshot(src)
|
||||
new /obj/item/clothing/glasses/thermal/syndi(src)
|
||||
return
|
||||
@@ -448,7 +474,7 @@
|
||||
contents = list()
|
||||
new /obj/item/clothing/shoes/magboots/syndie(src)
|
||||
new /obj/item/weapon/storage/firstaid/tactical(src)
|
||||
new /obj/item/weapon/gun/projectile/automatic/l6_saw/toy(src)
|
||||
new /obj/item/weapon/gun/ballistic/automatic/l6_saw/toy(src)
|
||||
new /obj/item/ammo_box/foambox/riot(src)
|
||||
return
|
||||
|
||||
@@ -460,7 +486,7 @@
|
||||
contents = list()
|
||||
new /obj/item/clothing/shoes/magboots/syndie(src)
|
||||
new /obj/item/weapon/storage/firstaid/tactical(src)
|
||||
new /obj/item/weapon/gun/projectile/automatic/l6_saw/toy(src)
|
||||
new /obj/item/weapon/gun/ballistic/automatic/l6_saw/toy(src)
|
||||
new /obj/item/ammo_box/foambox/riot(src)
|
||||
return
|
||||
|
||||
@@ -473,7 +499,7 @@
|
||||
new /obj/item/weapon/reagent_containers/spray/chemsprayer/bioterror(src)
|
||||
new /obj/item/weapon/storage/box/syndie_kit/chemical(src)
|
||||
new /obj/item/weapon/gun/syringe/syndicate(src)
|
||||
new /obj/item/weapon/gun/projectile/automatic/c20r/toy(src)
|
||||
new /obj/item/weapon/gun/ballistic/automatic/c20r/toy(src)
|
||||
new /obj/item/weapon/storage/box/syringes(src)
|
||||
new /obj/item/ammo_box/foambox/riot(src)
|
||||
new /obj/item/weapon/grenade/chem_grenade/bioterrorfoam(src)
|
||||
@@ -500,7 +526,7 @@
|
||||
new /obj/item/clothing/under/syndicate/soviet(src)
|
||||
new /obj/item/weapon/watertank/operator(src)
|
||||
new /obj/item/clothing/suit/space/hardsuit/syndi/elite(src)
|
||||
new /obj/item/weapon/gun/projectile/automatic/pistol/APS(src)
|
||||
new /obj/item/weapon/gun/ballistic/automatic/pistol/APS(src)
|
||||
new /obj/item/ammo_box/magazine/pistolm9mm(src)
|
||||
new /obj/item/ammo_box/magazine/pistolm9mm(src)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka(src)
|
||||
|
||||
@@ -33,15 +33,15 @@
|
||||
icon_state = "trashbag"
|
||||
item_state = "trashbag"
|
||||
|
||||
w_class = 4
|
||||
max_w_class = 2
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
max_w_class = WEIGHT_CLASS_SMALL
|
||||
max_combined_w_class = 30
|
||||
storage_slots = 30
|
||||
can_hold = list() // any
|
||||
cant_hold = list(/obj/item/weapon/disk/nuclear)
|
||||
|
||||
/obj/item/weapon/storage/bag/trash/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] puts the [src.name] over their head and starts chomping at the insides! Disgusting!</span>")
|
||||
user.visible_message("<span class='suicide'>[user] puts [src] over [user.p_their()] head and starts chomping at the insides! Disgusting!</span>")
|
||||
playsound(loc, 'sound/items/eatfood.ogg', 50, 1, -1)
|
||||
return (TOXLOSS)
|
||||
|
||||
@@ -83,10 +83,10 @@
|
||||
icon_state = "satchel"
|
||||
origin_tech = "engineering=2"
|
||||
slot_flags = SLOT_BELT | SLOT_POCKET
|
||||
w_class = 3
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
storage_slots = 50
|
||||
max_combined_w_class = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * ore.w_class
|
||||
max_w_class = 3
|
||||
max_w_class = WEIGHT_CLASS_NORMAL
|
||||
can_hold = list(/obj/item/weapon/ore)
|
||||
|
||||
/obj/item/weapon/storage/bag/ore/cyborg
|
||||
@@ -108,18 +108,12 @@
|
||||
name = "plant bag"
|
||||
icon = 'icons/obj/hydroponics/equipment.dmi'
|
||||
icon_state = "plantbag"
|
||||
storage_slots = 50; //the number of plant pieces it can carry.
|
||||
max_combined_w_class = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * plants.w_class
|
||||
max_w_class = 3
|
||||
w_class = 1
|
||||
can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/grown,/obj/item/seeds,/obj/item/weapon/grown)
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/weapon/storage/bag/plants/holding // Now botany can crash the server too
|
||||
name = "plant bag of holding"
|
||||
icon_state = "plantbag_holding"
|
||||
storage_slots = INFINITY
|
||||
max_combined_w_class = INFINITY
|
||||
storage_slots = 100; //the number of plant pieces it can carry.
|
||||
max_combined_w_class = 100 //Doesn't matter what this is, so long as it's more or equal to storage_slots * plants.w_class
|
||||
max_w_class = WEIGHT_CLASS_NORMAL
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/grown,/obj/item/seeds,/obj/item/weapon/grown,/obj/item/weapon/reagent_containers/food/snacks/ash_flora)
|
||||
resistance_flags = FLAMMABLE
|
||||
|
||||
////////
|
||||
|
||||
@@ -153,7 +147,7 @@
|
||||
icon_state = "sheetsnatcher"
|
||||
|
||||
var/capacity = 300; //the number of sheets it can carry.
|
||||
w_class = 3
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
|
||||
allow_quick_empty = 1 // this function is superceded
|
||||
|
||||
@@ -200,7 +194,7 @@
|
||||
break
|
||||
|
||||
if(!inserted || !S.amount)
|
||||
usr.unEquip(S)
|
||||
usr.dropItemToGround(S)
|
||||
if (usr.client && usr.s_active != src)
|
||||
usr.client.screen -= S
|
||||
S.dropped(usr)
|
||||
@@ -297,10 +291,10 @@
|
||||
display_contents_with_number = 0 //This would look really stupid otherwise
|
||||
storage_slots = 7
|
||||
max_combined_w_class = 21
|
||||
max_w_class = 3
|
||||
w_class = 4 //Bigger than a book because physics
|
||||
max_w_class = WEIGHT_CLASS_NORMAL
|
||||
w_class = WEIGHT_CLASS_BULKY //Bigger than a book because physics
|
||||
can_hold = list(/obj/item/weapon/book, /obj/item/weapon/storage/book, /obj/item/weapon/spellbook)
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = FLAMMABLE
|
||||
|
||||
/*
|
||||
* Trays - Agouri
|
||||
@@ -314,7 +308,7 @@
|
||||
throwforce = 10
|
||||
throw_speed = 3
|
||||
throw_range = 5
|
||||
w_class = 4
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
flags = CONDUCT
|
||||
materials = list(MAT_METAL=3000)
|
||||
preposition = "on"
|
||||
@@ -367,10 +361,10 @@
|
||||
desc = "A bag for storing pills, patches, and bottles."
|
||||
storage_slots = 50
|
||||
max_combined_w_class = 200
|
||||
w_class = 1
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
preposition = "in"
|
||||
can_hold = list(/obj/item/weapon/reagent_containers/pill, /obj/item/weapon/reagent_containers/glass/beaker, /obj/item/weapon/reagent_containers/glass/bottle)
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = FLAMMABLE
|
||||
|
||||
/*
|
||||
* Biowaste bag (mostly for xenobiologists)
|
||||
@@ -383,7 +377,7 @@
|
||||
desc = "A bag for the safe transportation and disposal of biowaste and other biological materials."
|
||||
storage_slots = 25
|
||||
max_combined_w_class = 200
|
||||
w_class = 1
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
preposition = "in"
|
||||
can_hold = list(/obj/item/slime_extract, /obj/item/weapon/reagent_containers/syringe, /obj/item/weapon/reagent_containers/glass/beaker, /obj/item/weapon/reagent_containers/glass/bottle, /obj/item/weapon/reagent_containers/blood, /obj/item/weapon/reagent_containers/hypospray/medipen, /obj/item/trash/deadmouse)
|
||||
burn_state = FLAMMABLE
|
||||
can_hold = list(/obj/item/slime_extract, /obj/item/weapon/reagent_containers/syringe, /obj/item/weapon/reagent_containers/glass/beaker, /obj/item/weapon/reagent_containers/glass/bottle, /obj/item/weapon/reagent_containers/blood, /obj/item/weapon/reagent_containers/hypospray/medipen, /obj/item/trash/deadmouse, /obj/item/weapon/reagent_containers/food/snacks/monkeycube)
|
||||
resistance_flags = FLAMMABLE
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
item_state = "utility"
|
||||
slot_flags = SLOT_BELT
|
||||
attack_verb = list("whipped", "lashed", "disciplined")
|
||||
obj_integrity = 300
|
||||
max_integrity = 300
|
||||
|
||||
/obj/item/weapon/storage/belt/update_icon()
|
||||
cut_overlays()
|
||||
@@ -31,7 +33,7 @@
|
||||
/obj/item/device/analyzer,
|
||||
/obj/item/weapon/extinguisher/mini,
|
||||
/obj/item/device/radio,
|
||||
/obj/item/clothing/gloves/
|
||||
/obj/item/clothing/gloves
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/belt/utility/chief
|
||||
@@ -48,8 +50,10 @@
|
||||
new /obj/item/device/multitool(src)
|
||||
new /obj/item/stack/cable_coil(src,30,pick("red","yellow","orange"))
|
||||
new /obj/item/weapon/extinguisher/mini(src)
|
||||
new /obj/item/device/analyzer(src)
|
||||
//much roomier now that we've managed to remove two tools
|
||||
|
||||
|
||||
/obj/item/weapon/storage/belt/utility/full/New()
|
||||
..()
|
||||
new /obj/item/weapon/screwdriver(src)
|
||||
@@ -78,7 +82,7 @@
|
||||
desc = "Can hold various medical equipment."
|
||||
icon_state = "medicalbelt"
|
||||
item_state = "medical"
|
||||
max_w_class = 4
|
||||
max_w_class = WEIGHT_CLASS_BULKY
|
||||
can_hold = list(
|
||||
/obj/item/device/healthanalyzer,
|
||||
/obj/item/weapon/dnainjector,
|
||||
@@ -110,7 +114,7 @@
|
||||
/obj/item/weapon/cautery,
|
||||
/obj/item/weapon/hemostat,
|
||||
/obj/item/device/geiger_counter,
|
||||
/obj/item/clothing/tie/stethoscope,
|
||||
/obj/item/clothing/neck/stethoscope,
|
||||
/obj/item/weapon/stamp,
|
||||
/obj/item/clothing/glasses,
|
||||
/obj/item/weapon/wrench/medical,
|
||||
@@ -128,7 +132,7 @@
|
||||
icon_state = "securitybelt"
|
||||
item_state = "security"//Could likely use a better one.
|
||||
storage_slots = 5
|
||||
max_w_class = 3 //Because the baton wouldn't fit otherwise. - Neerti
|
||||
max_w_class = WEIGHT_CLASS_NORMAL //Because the baton wouldn't fit otherwise. - Neerti
|
||||
can_hold = list(
|
||||
/obj/item/weapon/melee/baton,
|
||||
/obj/item/weapon/melee/classic_baton,
|
||||
@@ -156,6 +160,7 @@
|
||||
new /obj/item/weapon/grenade/flashbang(src)
|
||||
new /obj/item/device/assembly/flash/handheld(src)
|
||||
new /obj/item/weapon/melee/baton/loaded(src)
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/item/weapon/storage/belt/mining
|
||||
@@ -164,8 +169,8 @@
|
||||
icon_state = "explorer1"
|
||||
item_state = "explorer1"
|
||||
storage_slots = 6
|
||||
w_class = 4
|
||||
max_w_class = 4 //Pickaxes are big.
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
max_w_class = WEIGHT_CLASS_BULKY //Pickaxes are big.
|
||||
max_combined_w_class = 20 //Not an issue with this whitelist, probably.
|
||||
can_hold = list(
|
||||
/obj/item/weapon/crowbar,
|
||||
@@ -201,7 +206,8 @@
|
||||
/obj/item/weapon/reagent_containers/food/drinks,
|
||||
/obj/item/organ/hivelord_core,
|
||||
/obj/item/device/wormhole_jaunter,
|
||||
/obj/item/device/t_scanner/motionTracker
|
||||
/obj/item/weapon/storage/bag/plants,
|
||||
|
||||
)
|
||||
|
||||
|
||||
@@ -250,7 +256,25 @@
|
||||
desc = "A syndicate belt designed to be used by boarding parties. Its style is modeled after the hardsuits they wear."
|
||||
icon_state = "militarybelt"
|
||||
item_state = "military"
|
||||
max_w_class = 2
|
||||
max_w_class = WEIGHT_CLASS_SMALL
|
||||
|
||||
/obj/item/weapon/storage/belt/military/abductor
|
||||
name = "agent belt"
|
||||
desc = "A belt used by abductor agents."
|
||||
icon = 'icons/obj/abductor.dmi'
|
||||
icon_state = "belt"
|
||||
item_state = "security"
|
||||
|
||||
/obj/item/weapon/storage/belt/military/abductor/full/New()
|
||||
..()
|
||||
new /obj/item/weapon/screwdriver/abductor(src)
|
||||
new /obj/item/weapon/wrench/abductor(src)
|
||||
new /obj/item/weapon/weldingtool/abductor(src)
|
||||
new /obj/item/weapon/crowbar/abductor(src)
|
||||
new /obj/item/weapon/wirecutters/abductor(src)
|
||||
new /obj/item/device/multitool/abductor(src)
|
||||
new /obj/item/stack/cable_coil(src,30,"white")
|
||||
|
||||
|
||||
/obj/item/weapon/storage/belt/military/army
|
||||
name = "army belt"
|
||||
@@ -270,7 +294,7 @@
|
||||
desc = "A belt for holding grenades."
|
||||
icon_state = "grenadebeltnew"
|
||||
item_state = "security"
|
||||
max_w_class = 4
|
||||
max_w_class = WEIGHT_CLASS_BULKY
|
||||
storage_slots = 30
|
||||
can_hold = list(
|
||||
/obj/item/weapon/grenade,
|
||||
@@ -340,7 +364,7 @@
|
||||
icon_state = "janibelt"
|
||||
item_state = "janibelt"
|
||||
storage_slots = 6
|
||||
max_w_class = 4 // Set to this so the light replacer can fit.
|
||||
max_w_class = WEIGHT_CLASS_BULKY // Set to this so the light replacer can fit.
|
||||
can_hold = list(
|
||||
/obj/item/weapon/grenade/chem_grenade,
|
||||
/obj/item/device/lightreplacer,
|
||||
@@ -349,7 +373,7 @@
|
||||
/obj/item/weapon/soap,
|
||||
/obj/item/weapon/holosign_creator,
|
||||
/obj/item/key/janitor,
|
||||
/obj/item/clothing/gloves/
|
||||
/obj/item/clothing/gloves
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/belt/bandolier
|
||||
@@ -368,10 +392,10 @@
|
||||
icon_state = "holster"
|
||||
item_state = "holster"
|
||||
storage_slots = 3
|
||||
max_w_class = 3
|
||||
max_w_class = WEIGHT_CLASS_NORMAL
|
||||
can_hold = list(
|
||||
/obj/item/weapon/gun/projectile/automatic/pistol,
|
||||
/obj/item/weapon/gun/projectile/revolver,
|
||||
/obj/item/weapon/gun/ballistic/automatic/pistol,
|
||||
/obj/item/weapon/gun/ballistic/revolver,
|
||||
/obj/item/ammo_box,
|
||||
)
|
||||
alternate_worn_layer = UNDER_SUIT_LAYER
|
||||
@@ -382,7 +406,7 @@
|
||||
icon_state = "fannypack_leather"
|
||||
item_state = "fannypack_leather"
|
||||
storage_slots = 3
|
||||
max_w_class = 2
|
||||
max_w_class = WEIGHT_CLASS_SMALL
|
||||
|
||||
/obj/item/weapon/storage/belt/fannypack/black
|
||||
name = "black fannypack"
|
||||
@@ -433,3 +457,49 @@
|
||||
name = "yellow fannypack"
|
||||
icon_state = "fannypack_yellow"
|
||||
item_state = "fannypack_yellow"
|
||||
|
||||
/obj/item/weapon/storage/belt/sabre
|
||||
name = "sabre sheath"
|
||||
desc = "An ornate sheath designed to hold an officer's blade."
|
||||
icon_state = "sheath"
|
||||
item_state = "sheath"
|
||||
storage_slots = 1
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
max_w_class = WEIGHT_CLASS_BULKY
|
||||
can_hold = list(
|
||||
/obj/item/weapon/melee/sabre
|
||||
)
|
||||
|
||||
/obj/item/weapon/storage/belt/sabre/examine(mob/user)
|
||||
..()
|
||||
if(contents.len)
|
||||
user << "<span class='notice'>Alt-click it to quickly draw the blade.</span>"
|
||||
|
||||
/obj/item/weapon/storage/belt/sabre/AltClick(mob/user)
|
||||
if(!ishuman(user) || !user.canUseTopic(src, be_close=TRUE))
|
||||
return
|
||||
if(contents.len)
|
||||
var/obj/item/I = contents[1]
|
||||
user.visible_message("[user] takes [I] out of [src].", "<span class='notice'>You take [I] out of [src].</span>",\
|
||||
)
|
||||
user.put_in_hands(I)
|
||||
update_icon()
|
||||
else
|
||||
user << "[src] is empty."
|
||||
|
||||
/obj/item/weapon/storage/belt/sabre/update_icon()
|
||||
icon_state = "sheath"
|
||||
item_state = "sheath"
|
||||
if(contents.len)
|
||||
icon_state += "-sabre"
|
||||
item_state += "-sabre"
|
||||
if(loc && isliving(loc))
|
||||
var/mob/living/L = loc
|
||||
L.regenerate_icons()
|
||||
..()
|
||||
|
||||
|
||||
/obj/item/weapon/storage/belt/sabre/New()
|
||||
..()
|
||||
new /obj/item/weapon/melee/sabre(src)
|
||||
update_icon()
|
||||
|
||||
@@ -5,12 +5,18 @@
|
||||
icon_state ="book"
|
||||
throw_speed = 2
|
||||
throw_range = 5
|
||||
w_class = 3
|
||||
burn_state = FLAMMABLE
|
||||
storage_slots = 1
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
resistance_flags = FLAMMABLE
|
||||
var/title = "book"
|
||||
|
||||
/obj/item/weapon/storage/book/attack_self(mob/user)
|
||||
user << "<span class='notice'>The pages of [title] have been cut out!</span>"
|
||||
|
||||
var/global/list/biblenames = list("Bible", "Quran", "Scrapbook", "Burning Bible", "Clown Bible", "Banana Bible", "Creeper Bible", "White Bible", "Holy Light", "The God Delusion", "Tome", "The King in Yellow", "Ithaqua", "Scientology", "Melted Bible", "Necronomicon")
|
||||
var/global/list/biblestates = list("bible", "koran", "scrapbook", "burning", "honk1", "honk2", "creeper", "white", "holylight", "atheist", "tome", "kingyellow", "ithaqua", "scientology", "melted", "necronomicon")
|
||||
var/global/list/bibleitemstates = list("bible", "koran", "scrapbook", "bible", "bible", "bible", "syringe_kit", "syringe_kit", "syringe_kit", "syringe_kit", "syringe_kit", "kingyellow", "ithaqua", "scientology", "melted", "necronomicon")
|
||||
|
||||
/obj/item/weapon/storage/book/bible
|
||||
name = "bible"
|
||||
desc = "Apply to head repeatedly."
|
||||
@@ -20,13 +26,134 @@
|
||||
var/deity_name = "Christ"
|
||||
|
||||
/obj/item/weapon/storage/book/bible/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is offering \himself to [src.deity_name]! It looks like \he's trying to commit suicide.</span>")
|
||||
user.visible_message("<span class='suicide'>[user] is offering [user.p_them()]self to [deity_name]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
return (BRUTELOSS)
|
||||
|
||||
/obj/item/weapon/storage/book/bible/attack_self(mob/living/carbon/human/H)
|
||||
if(!istype(H))
|
||||
return
|
||||
// If H is the Chaplain, we can set the icon_state of the bible (but only once!)
|
||||
if(!SSreligion.Bible_icon_state && H.job == "Chaplain")
|
||||
var/dat = "<html><head><title>Pick Bible Style</title></head><body><center><h2>Pick a bible style</h2></center><table>"
|
||||
var/i
|
||||
for(i = 1, i < biblestates.len, i++)
|
||||
var/icon/bibleicon = icon('icons/obj/storage.dmi', biblestates[i])
|
||||
var/nicename = biblenames[i]
|
||||
H << browse_rsc(bibleicon, nicename)
|
||||
dat += {"<tr><td><img src="[nicename]"></td><td><a href="?src=\ref[src];seticon=[i]">[nicename]</a></td></tr>"}
|
||||
dat += "</table></body></html>"
|
||||
H << browse(dat, "window=editicon;can_close=0;can_minimize=0;size=250x650")
|
||||
|
||||
/obj/item/weapon/storage/book/bible/Topic(href, href_list)
|
||||
if(!usr.canUseTopic(src))
|
||||
return
|
||||
if(href_list["seticon"] && ticker && !SSreligion.Bible_icon_state)
|
||||
var/iconi = text2num(href_list["seticon"])
|
||||
var/biblename = biblenames[iconi]
|
||||
var/obj/item/weapon/storage/book/bible/B = locate(href_list["src"])
|
||||
B.icon_state = biblestates[iconi]
|
||||
B.item_state = bibleitemstates[iconi]
|
||||
|
||||
if(B.icon_state == "honk1" || B.icon_state == "honk2")
|
||||
var/mob/living/carbon/human/H = usr
|
||||
new /obj/item/weapon/bikehorn(B)
|
||||
H.dna.add_mutation(CLOWNMUT)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(H), slot_wear_mask)
|
||||
|
||||
SSreligion.Bible_icon_state = B.icon_state
|
||||
SSreligion.Bible_item_state = B.item_state
|
||||
|
||||
feedback_set_details("religion_book","[biblename]")
|
||||
usr << browse(null, "window=editicon")
|
||||
|
||||
/obj/item/weapon/storage/book/bible/proc/bless(mob/living/carbon/human/H, mob/living/user)
|
||||
for(var/X in H.bodyparts)
|
||||
var/obj/item/bodypart/BP = X
|
||||
if(BP.status == BODYPART_ROBOTIC)
|
||||
user << "<span class='warning'>[src.deity_name] refuses to heal this metallic taint!</span>"
|
||||
return 0
|
||||
|
||||
var/heal_amt = 10
|
||||
var/list/hurt_limbs = H.get_damaged_bodyparts(1, 1)
|
||||
|
||||
if(hurt_limbs.len)
|
||||
for(var/X in hurt_limbs)
|
||||
var/obj/item/bodypart/affecting = X
|
||||
if(affecting.heal_damage(heal_amt, heal_amt))
|
||||
H.update_damage_overlays()
|
||||
H.visible_message("<span class='notice'>[user] heals [H] with the power of [deity_name]!</span>")
|
||||
H << "<span class='boldnotice'>May the power of [deity_name] compel you to be healed!</span>"
|
||||
playsound(src.loc, "punch", 25, 1, -1)
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/storage/book/bible/attack(mob/living/M, mob/living/carbon/human/user)
|
||||
|
||||
if (!user.IsAdvancedToolUser())
|
||||
user << "<span class='warning'>You don't have the dexterity to do this!</span>"
|
||||
return
|
||||
|
||||
if (user.disabilities & CLUMSY && prob(50))
|
||||
user << "<span class='danger'>[src] slips out of your hand and hits your head.</span>"
|
||||
user.take_bodypart_damage(10)
|
||||
user.Paralyse(20)
|
||||
return
|
||||
|
||||
var/chaplain = 0
|
||||
if(user.mind && (user.mind.isholy))
|
||||
chaplain = 1
|
||||
|
||||
if(!chaplain)
|
||||
user << "<span class='danger'>The book sizzles in your hands.</span>"
|
||||
user.take_bodypart_damage(0,10)
|
||||
return
|
||||
|
||||
var/smack = 1
|
||||
|
||||
if (M.stat != DEAD)
|
||||
if(chaplain && user == M)
|
||||
user << "<span class='warning'>You can't heal yourself!</span>"
|
||||
return
|
||||
|
||||
if(ishuman(M) && prob(60) && bless(M, user))
|
||||
smack = 0
|
||||
else if(iscarbon(M))
|
||||
var/mob/living/carbon/C = M
|
||||
if(!istype(C.head, /obj/item/clothing/head/helmet))
|
||||
C.adjustBrainLoss(10)
|
||||
C << "<span class='danger'>You feel dumber.</span>"
|
||||
|
||||
if(smack)
|
||||
M.visible_message("<span class='danger'>[user] beats [M] over the head with [src]!</span>", \
|
||||
"<span class='userdanger'>[user] beats [M] over the head with [src]!</span>")
|
||||
playsound(src.loc, "punch", 25, 1, -1)
|
||||
add_logs(user, M, "attacked", src)
|
||||
|
||||
else
|
||||
M.visible_message("<span class='danger'>[user] smacks [M]'s lifeless corpse with [src].</span>")
|
||||
playsound(src.loc, "punch", 25, 1, -1)
|
||||
|
||||
/obj/item/weapon/storage/book/bible/afterattack(atom/A, mob/user, proximity)
|
||||
if(!proximity)
|
||||
return
|
||||
if(isfloorturf(A))
|
||||
user << "<span class='notice'>You hit the floor with the bible.</span>"
|
||||
if(user.mind && (user.mind.isholy))
|
||||
for(var/obj/effect/rune/R in orange(2,user))
|
||||
R.invisibility = 0
|
||||
if(user.mind && (user.mind.isholy))
|
||||
if(A.reagents && A.reagents.has_reagent("water")) // blesses all the water in the holder
|
||||
user << "<span class='notice'>You bless [A].</span>"
|
||||
var/water2holy = A.reagents.get_reagent_amount("water")
|
||||
A.reagents.del_reagent("water")
|
||||
A.reagents.add_reagent("holywater",water2holy)
|
||||
if(A.reagents && A.reagents.has_reagent("unholywater")) // yeah yeah, copy pasted code - sue me
|
||||
user << "<span class='notice'>You purify [A].</span>"
|
||||
var/unholy2clean = A.reagents.get_reagent_amount("unholywater")
|
||||
A.reagents.del_reagent("unholywater")
|
||||
A.reagents.add_reagent("holywater",unholy2clean)
|
||||
|
||||
/obj/item/weapon/storage/book/bible/booze
|
||||
name = "bible"
|
||||
desc = "To be applied to the head repeatedly."
|
||||
icon_state ="bible"
|
||||
|
||||
/obj/item/weapon/storage/book/bible/booze/New()
|
||||
..()
|
||||
@@ -35,174 +162,3 @@
|
||||
new /obj/item/stack/spacecash(src)
|
||||
new /obj/item/stack/spacecash(src)
|
||||
new /obj/item/stack/spacecash(src)
|
||||
|
||||
//Pretty bible names
|
||||
var/global/list/biblenames = list("Bible", "Quran", "Scrapbook", "Burning Bible", "Clown Bible", "Banana Bible", "Creeper Bible", "White Bible", "Holy Light", "The God Delusion", "Tome", "The King in Yellow", "Ithaqua", "Scientology", "Melted Bible", "Necronomicon")
|
||||
|
||||
//Bible iconstates
|
||||
var/global/list/biblestates = list("bible", "koran", "scrapbook", "burning", "honk1", "honk2", "creeper", "white", "holylight", "atheist", "tome", "kingyellow", "ithaqua", "scientology", "melted", "necronomicon")
|
||||
|
||||
//Bible itemstates
|
||||
var/global/list/bibleitemstates = list("bible", "koran", "scrapbook", "bible", "bible", "bible", "syringe_kit", "syringe_kit", "syringe_kit", "syringe_kit", "syringe_kit", "kingyellow", "ithaqua", "scientology", "melted", "necronomicon")
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/storage/book/bible/attack_self(mob/living/carbon/human/H)
|
||||
if(!istype(H))
|
||||
return
|
||||
if(ticker && !ticker.Bible_icon_state && H.job == "Chaplain")
|
||||
//Open bible selection
|
||||
var/dat = "<html><head><title>Pick Bible Style</title></head><body><center><h2>Pick a bible style</h2></center><table>"
|
||||
|
||||
var/i
|
||||
for(i = 1, i < biblestates.len, i++)
|
||||
var/icon/bibleicon = icon('icons/obj/storage.dmi', biblestates[i])
|
||||
|
||||
var/nicename = biblenames[i]
|
||||
H << browse_rsc(bibleicon, nicename)
|
||||
dat += {"<tr><td><img src="[nicename]"></td><td><a href="?src=\ref[src];seticon=[i]">[nicename]</a></td></tr>"}
|
||||
|
||||
dat += "</table></body></html>"
|
||||
|
||||
H << browse(dat, "window=editicon;can_close=0;can_minimize=0;size=250x650")
|
||||
|
||||
/obj/item/weapon/storage/book/bible/proc/setupbiblespecifics(obj/item/weapon/storage/book/bible/B, mob/living/carbon/human/H)
|
||||
switch(B.icon_state)
|
||||
if("honk1","honk2")
|
||||
new /obj/item/weapon/bikehorn(B)
|
||||
H.dna.add_mutation(CLOWNMUT)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(H), slot_wear_mask)
|
||||
|
||||
if("bible")
|
||||
for(var/area/chapel/main/A in world)
|
||||
for(var/turf/T in A.contents)
|
||||
if(T.icon_state == "carpetsymbol")
|
||||
T.setDir(2)
|
||||
if("koran")
|
||||
for(var/area/chapel/main/A in world)
|
||||
for(var/turf/T in A.contents)
|
||||
if(T.icon_state == "carpetsymbol")
|
||||
T.setDir(4)
|
||||
if("scientology")
|
||||
for(var/area/chapel/main/A in world)
|
||||
for(var/turf/T in A.contents)
|
||||
if(T.icon_state == "carpetsymbol")
|
||||
T.setDir(8)
|
||||
if("atheist")
|
||||
for(var/area/chapel/main/A in world)
|
||||
for(var/turf/T in A.contents)
|
||||
if(T.icon_state == "carpetsymbol")
|
||||
T.setDir(10)
|
||||
|
||||
/obj/item/weapon/storage/book/bible/Topic(href, href_list)
|
||||
if(href_list["seticon"] && ticker && !ticker.Bible_icon_state)
|
||||
var/iconi = text2num(href_list["seticon"])
|
||||
|
||||
var/biblename = biblenames[iconi]
|
||||
var/obj/item/weapon/storage/book/bible/B = locate(href_list["src"])
|
||||
|
||||
B.icon_state = biblestates[iconi]
|
||||
B.item_state = bibleitemstates[iconi]
|
||||
|
||||
//Set biblespecific chapels
|
||||
setupbiblespecifics(B, usr)
|
||||
|
||||
if(ticker)
|
||||
ticker.Bible_icon_state = B.icon_state
|
||||
ticker.Bible_item_state = B.item_state
|
||||
feedback_set_details("religion_book","[biblename]")
|
||||
|
||||
usr << browse(null, "window=editicon") // Close window
|
||||
|
||||
/obj/item/weapon/storage/book/bible/proc/bless(mob/living/carbon/M)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/heal_amt = 10
|
||||
for(var/obj/item/bodypart/affecting in H.bodyparts)
|
||||
if(affecting.status == ORGAN_ORGANIC) //No Bible can heal a robotic arm!
|
||||
if(affecting.heal_damage(heal_amt, heal_amt, 0))
|
||||
H.update_damage_overlays(0)
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/book/bible/attack(mob/living/M, mob/living/carbon/human/user)
|
||||
|
||||
var/chaplain = 0
|
||||
if(user.mind && (user.mind.assigned_role == "Chaplain"))
|
||||
chaplain = 1
|
||||
|
||||
|
||||
|
||||
if (!user.IsAdvancedToolUser())
|
||||
user << "<span class='warning'>You don't have the dexterity to do this!</span>"
|
||||
return
|
||||
if(!chaplain)
|
||||
user << "<span class='danger'>The book sizzles in your hands.</span>"
|
||||
user.take_organ_damage(0,10)
|
||||
return
|
||||
|
||||
if (user.disabilities & CLUMSY && prob(50))
|
||||
user << "<span class='danger'>The [src] slips out of your hand and hits your head.</span>"
|
||||
user.take_organ_damage(10)
|
||||
user.Paralyse(20)
|
||||
return
|
||||
|
||||
if (M.stat !=2)
|
||||
if(M.mind && (M.mind.assigned_role == "Chaplain"))
|
||||
user << "<span class='warning'>You can't heal yourself!</span>"
|
||||
return
|
||||
if ((istype(M, /mob/living/carbon/human) && prob(60)))
|
||||
bless(M)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/message_halt = 0
|
||||
for(var/obj/item/bodypart/affecting in H.bodyparts)
|
||||
if(affecting.status == ORGAN_ORGANIC)
|
||||
if(message_halt == 0)
|
||||
M.visible_message("<span class='notice'>[user] heals [M] with the power of [src.deity_name]!</span>")
|
||||
M << "<span class='boldnotice'>May the power of [src.deity_name] compel you to be healed!</span>"
|
||||
playsound(src.loc, "punch", 25, 1, -1)
|
||||
message_halt = 1
|
||||
else
|
||||
user << "<span class='warning'>[src.deity_name] refuses to heal this metallic taint!</span>"
|
||||
return
|
||||
|
||||
|
||||
|
||||
|
||||
else
|
||||
if(ishuman(M) && !istype(M:head, /obj/item/clothing/head/helmet))
|
||||
M.adjustBrainLoss(10)
|
||||
M << "<span class='danger'>You feel dumber.</span>"
|
||||
M.visible_message("<span class='danger'>[user] beats [M] over the head with [src]!</span>", \
|
||||
"<span class='userdanger'>[user] beats [M] over the head with [src]!</span>")
|
||||
playsound(src.loc, "punch", 25, 1, -1)
|
||||
add_logs(user, M, "attacked", src)
|
||||
|
||||
else if(M.stat == 2)
|
||||
M.visible_message("<span class='danger'>[user] smacks [M]'s lifeless corpse with [src].</span>")
|
||||
playsound(src.loc, "punch", 25, 1, -1)
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/book/bible/afterattack(atom/A, mob/user, proximity)
|
||||
if(!proximity)
|
||||
return
|
||||
if (istype(A, /turf/open/floor))
|
||||
user << "<span class='notice'>You hit the floor with the bible.</span>"
|
||||
if(user.mind && (user.mind.assigned_role == "Chaplain"))
|
||||
for(var/obj/effect/rune/R in orange(2,user))
|
||||
R.invisibility = 0
|
||||
if(user.mind && (user.mind.assigned_role == "Chaplain"))
|
||||
if(A.reagents && A.reagents.has_reagent("water")) //blesses all the water in the holder
|
||||
user << "<span class='notice'>You bless [A].</span>"
|
||||
var/water2holy = A.reagents.get_reagent_amount("water")
|
||||
A.reagents.del_reagent("water")
|
||||
A.reagents.add_reagent("holywater",water2holy)
|
||||
if(A.reagents && A.reagents.has_reagent("unholywater")) //yeah yeah, copy pasted code - sue me
|
||||
user << "<span class='notice'>You purify [A].</span>"
|
||||
var/unholy2clean = A.reagents.get_reagent_amount("unholywater")
|
||||
A.reagents.del_reagent("unholywater")
|
||||
A.reagents.add_reagent("holywater",unholy2clean)
|
||||
|
||||
/obj/item/weapon/storage/book/bible/attackby(obj/item/weapon/W, mob/user, params)
|
||||
playsound(src.loc, "rustle", 50, 1, -5)
|
||||
return ..()
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
* Handcuff, mousetrap, and pillbottle boxes,
|
||||
* Snap-pops and matchboxes,
|
||||
* Replacement light boxes.
|
||||
* Action Figure Boxes
|
||||
* Various paper bags.
|
||||
*
|
||||
* For syndicate call-ins see uplink_kits.dm
|
||||
@@ -25,102 +26,9 @@
|
||||
desc = "It's just an ordinary box."
|
||||
icon_state = "box"
|
||||
item_state = "syringe_kit"
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = FLAMMABLE
|
||||
var/foldable = /obj/item/stack/sheet/cardboard
|
||||
var/obj/item/device/boobytrap/trap = null
|
||||
|
||||
/obj/item/weapon/storage/box/examine(mob/user)
|
||||
..()
|
||||
|
||||
if(trap && in_range(user, src))
|
||||
user << "<span class='warning'>Something seems to be wired to the inside of the box!</span>"
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/storage/box/attackby(obj/item/C, mob/user, params)
|
||||
|
||||
if(!istype(C, /obj/item/device/boobytrap) && trap && !istype(C, /obj/item/weapon/wirecutters))
|
||||
visible_message("<span class='warning'>[src] blows up in a spray of deadly shrapnel!</span>")
|
||||
trap.loc = get_turf(src)
|
||||
trap.blow()
|
||||
trap = null
|
||||
for(var/mob/living/carbon/human/H in orange(2,src))
|
||||
H.Paralyse(8)
|
||||
H.adjust_fire_stacks(1)
|
||||
H.IgniteMob()
|
||||
qdel(src)
|
||||
|
||||
if(istype(C, /obj/item/device/boobytrap))
|
||||
if(trap)
|
||||
user << "<span class='warning'>There's already a booby trap hooked up to this box!</span>"
|
||||
return
|
||||
user << "<span class='warning'>You apply [C]. Next time someone opens the box, it will explode.</span>"
|
||||
C.loc = src
|
||||
trap = C
|
||||
qdel(C)
|
||||
user.drop_item()
|
||||
|
||||
if(istype(C, /obj/item/weapon/wirecutters) && trap)
|
||||
user << "<span class='notice'>You begin attempting to disarm the booby trap...</span>"
|
||||
visible_message("<span class='warning'>[user] begins attempting to disarm the booby trap.</span>")
|
||||
if(do_after(user, 80, target = src))
|
||||
if(prob(75))
|
||||
user << "<span class='notice'>You disarm the booby trap, destroying it in the process.</span>"
|
||||
visible_message("<span class='notice'>[user] disarms the booby trap!</span>")
|
||||
trap = null
|
||||
|
||||
else
|
||||
user << "<span class='warning'>You accidentally bump the sensor and set off the booby trap!</span>"
|
||||
visible_message("<span class='warning'>[user] fails to disarm the booby trap!</span>")
|
||||
visible_message("<span class='warning'>[src] blows up in a spray of deadly shrapnel!</span>")
|
||||
trap.loc = get_turf(src)
|
||||
trap.blow()
|
||||
trap = null
|
||||
for(var/mob/living/carbon/human/H in orange(2,src))
|
||||
H.Paralyse(8)
|
||||
H.adjust_fire_stacks(1)
|
||||
H.IgniteMob()
|
||||
qdel(src)
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/weapon/storage/box/MouseDrop(atom/over_object)
|
||||
if(iscarbon(usr) || isdrone(usr))
|
||||
var/mob/M = usr
|
||||
|
||||
if(!over_object)
|
||||
return
|
||||
|
||||
if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech
|
||||
return
|
||||
|
||||
if(over_object == M && Adjacent(M))
|
||||
if(trap)
|
||||
visible_message("<span class='warning'>[src] blows up in a spray of deadly shrapnel!</span>")
|
||||
trap.loc = get_turf(src)
|
||||
trap.blow()
|
||||
trap = null
|
||||
for(var/mob/living/carbon/human/H in orange(2,src))
|
||||
H.Paralyse(8)
|
||||
H.adjust_fire_stacks(1)
|
||||
H.IgniteMob()
|
||||
qdel(src)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/storage/box/attack_hand(mob/user)
|
||||
..()
|
||||
|
||||
if(trap)
|
||||
visible_message("<span class='warning'>[src] blows up in a spray of deadly shrapnel!</span>")
|
||||
trap.loc = get_turf(src)
|
||||
trap.blow()
|
||||
trap = null
|
||||
for(var/mob/living/carbon/human/H in orange(2,src))
|
||||
H.Paralyse(8)
|
||||
H.adjust_fire_stacks(1)
|
||||
H.IgniteMob()
|
||||
qdel(src)
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/storage/box/attack_self(mob/user)
|
||||
..()
|
||||
@@ -140,8 +48,7 @@
|
||||
var/obj/item/I = new foldable(get_turf(src))
|
||||
user.drop_item()
|
||||
user.put_in_hands(I)
|
||||
user.update_inv_l_hand()
|
||||
user.update_inv_r_hand()
|
||||
user.update_inv_hands()
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/storage/box/attackby(obj/item/W, mob/user, params)
|
||||
@@ -163,7 +70,7 @@
|
||||
|
||||
/obj/item/weapon/storage/box/survival_mining/New()
|
||||
..()
|
||||
new /obj/item/clothing/mask/breath(src)
|
||||
new /obj/item/clothing/mask/gas/explorer(src)
|
||||
new /obj/item/weapon/tank/internals/emergency_oxygen/engi(src)
|
||||
new /obj/item/weapon/crowbar/red(src)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen(src)
|
||||
@@ -220,7 +127,6 @@
|
||||
/obj/item/weapon/storage/box/syringes
|
||||
name = "box of syringes"
|
||||
desc = "A box full of syringes."
|
||||
desc = "A biohazard alert warning is printed on the box"
|
||||
icon_state = "syringe"
|
||||
|
||||
/obj/item/weapon/storage/box/syringes/New()
|
||||
@@ -259,7 +165,7 @@
|
||||
|
||||
/obj/item/weapon/storage/box/injectors
|
||||
name = "box of DNA injectors"
|
||||
desc = "This box contains injectors it seems."
|
||||
desc = "This box contains injectors, it seems."
|
||||
|
||||
/obj/item/weapon/storage/box/injectors/New()
|
||||
..()
|
||||
@@ -290,7 +196,7 @@
|
||||
|
||||
/obj/item/weapon/storage/box/wall_flash
|
||||
name = "wall-mounted flash kit"
|
||||
desc = "This box contains everything neccesary to build a wall-mounted flash. <B>WARNING: Flashes can cause serious eye damage, protective eyewear is required.</B>"
|
||||
desc = "This box contains everything necessary to build a wall-mounted flash. <B>WARNING: Flashes can cause serious eye damage, protective eyewear is required.</B>"
|
||||
icon_state = "flashbang"
|
||||
|
||||
/obj/item/weapon/storage/box/wall_flash/New()
|
||||
@@ -436,18 +342,6 @@
|
||||
for(var/i = 1; i <= 5; i++)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/monkeycube(src)
|
||||
|
||||
|
||||
/obj/item/weapon/storage/box/permits
|
||||
name = "box of construction permits"
|
||||
desc = "A box for containing construction permits, used to officially declare built rooms as additions to the station."
|
||||
icon_state = "id"
|
||||
|
||||
/obj/item/weapon/storage/box/permits/New() //There's only a few, so blueprints are still useful beyond setting every room's name to PRIMARY FART STORAGE
|
||||
..()
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/areaeditor/permit(src)
|
||||
|
||||
|
||||
/obj/item/weapon/storage/box/ids
|
||||
name = "box of spare IDs"
|
||||
desc = "Has so many empty IDs."
|
||||
@@ -595,7 +489,7 @@
|
||||
icon_state = "matchbox"
|
||||
item_state = "zippo"
|
||||
storage_slots = 10
|
||||
w_class = 1
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
slot_flags = SLOT_BELT
|
||||
can_hold = list(/obj/item/weapon/match)
|
||||
|
||||
@@ -657,7 +551,7 @@
|
||||
|
||||
/obj/item/weapon/storage/box/metalfoam
|
||||
name = "box of metal foam grenades"
|
||||
desc = "To be used to rapidly seal hull breaches"
|
||||
desc = "To be used to rapidly seal hull breaches."
|
||||
icon_state = "flashbang"
|
||||
|
||||
/obj/item/weapon/storage/box/metalfoam/New()
|
||||
@@ -672,7 +566,7 @@
|
||||
foldable = null
|
||||
|
||||
/obj/item/weapon/storage/box/hug/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] clamps the box of hugs on \his jugular! Guess it wasn't such a hugbox after all..</span>")
|
||||
user.visible_message("<span class='suicide'>[user] clamps the box of hugs on [user.p_their()] jugular! Guess it wasn't such a hugbox after all..</span>")
|
||||
return (BRUTELOSS)
|
||||
|
||||
/obj/item/weapon/storage/box/hug/attack_self(mob/user)
|
||||
@@ -729,6 +623,18 @@
|
||||
new /obj/item/ammo_casing/shotgun/beanbag(src)
|
||||
new /obj/item/ammo_casing/shotgun/beanbag(src)
|
||||
|
||||
|
||||
/obj/item/weapon/storage/box/actionfigure
|
||||
name = "box of action figures"
|
||||
desc = "The latest set of collectable action figures."
|
||||
icon_state = "box"
|
||||
|
||||
/obj/item/weapon/storage/box/actionfigure/New()
|
||||
..()
|
||||
for(var/i in 1 to 4)
|
||||
var/randomFigure = pick(subtypesof(/obj/item/toy/figure))
|
||||
new randomFigure(src)
|
||||
|
||||
#define NODESIGN "None"
|
||||
#define NANOTRASEN "NanotrasenStandard"
|
||||
#define SYNDI "SyndiSnacks"
|
||||
@@ -740,7 +646,7 @@
|
||||
desc = "A sack neatly crafted out of paper."
|
||||
icon_state = "paperbag_None"
|
||||
item_state = "paperbag_None"
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = FLAMMABLE
|
||||
foldable = null
|
||||
var/design = NODESIGN
|
||||
|
||||
@@ -809,38 +715,31 @@
|
||||
|
||||
/obj/item/weapon/storage/box/ingredients/wildcard/New()
|
||||
..()
|
||||
for(var/i in 1 to 6)
|
||||
//Pick common ingredients
|
||||
for(var/i in 1 to 7)
|
||||
var/randomFood = pick(/obj/item/weapon/reagent_containers/food/snacks/grown/chili,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/carrot,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/potato,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/apple,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/carrot,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/potato,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/potato/sweet,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/apple,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/chocolatebar,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/cherries,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/cherries,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/banana,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/cabbage,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/soybeans,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/corn)
|
||||
new randomFood(src)
|
||||
//Pick one random rare ingredient
|
||||
var/randomRareFood = pick(/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/deus,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/apple/gold,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/icepepper,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ghost_chili,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/plumphelmet,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/corn,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/plumphelmet,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/chanterelle)
|
||||
new randomRareFood(src)
|
||||
new randomFood(src)
|
||||
|
||||
/obj/item/weapon/storage/box/ingredients/fiesta
|
||||
item_state = "fiesta"
|
||||
|
||||
/obj/item/weapon/storage/box/ingredients/fiesta/New()
|
||||
..()
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/tortilla(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/tortilla(src)
|
||||
for(var/i in 1 to 2)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/corn(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/chili(src)
|
||||
|
||||
@@ -851,32 +750,80 @@
|
||||
..()
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/tomato(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/faggot(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/faggot(src)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/bottle/wine(src)
|
||||
|
||||
/obj/item/weapon/storage/box/ingredients/vegetarian
|
||||
item_state = "vegetarian"
|
||||
|
||||
/obj/item/weapon/storage/box/ingredients/vegetarian/New()
|
||||
..()
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/carrot(src)
|
||||
for(var/i in 1 to 2)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/carrot(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/eggplant(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/potato(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/apple(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/corn(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/tomato(src)
|
||||
|
||||
/obj/item/weapon/storage/box/ingredients/american
|
||||
item_state = "american"
|
||||
|
||||
/obj/item/weapon/storage/box/ingredients/american/New()
|
||||
..()
|
||||
for(var/i in 1 to 2)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/potato(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/tomato(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/corn(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/faggot(src)
|
||||
|
||||
/obj/item/weapon/storage/box/ingredients/fruity
|
||||
item_state = "fruity"
|
||||
|
||||
/obj/item/weapon/storage/box/ingredients/fruity/New()
|
||||
..()
|
||||
for(var/i in 1 to 2)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/apple(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lemon(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lime(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/watermelon(src)
|
||||
|
||||
/obj/item/weapon/storage/box/ingredients/sweets
|
||||
item_state = "sweets"
|
||||
|
||||
/obj/item/weapon/storage/box/ingredients/sweets/New()
|
||||
..()
|
||||
for(var/i in 1 to 2)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/cherries(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/banana(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/chocolatebar(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/cocoapod(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/apple(src)
|
||||
|
||||
/obj/item/weapon/storage/box/ingredients/delights
|
||||
item_state = "delights"
|
||||
|
||||
/obj/item/weapon/storage/box/ingredients/delights/New()
|
||||
..()
|
||||
for(var/i in 1 to 2)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/potato/sweet(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/bluecherries(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/vanillapod(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/cocoapod(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/berries(src)
|
||||
|
||||
/obj/item/weapon/storage/box/ingredients/grains
|
||||
item_state = "grains"
|
||||
|
||||
/obj/item/weapon/storage/box/ingredients/grains/New()
|
||||
..()
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/chocolatebar(src)
|
||||
new /obj/item/weapon/reagent_containers/food/condiment/sugar(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/cherries(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/banana(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/icecream(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/oat(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/wheat(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/cocoapod(src)
|
||||
new /obj/item/weapon/reagent_containers/honeycomb(src)
|
||||
new /obj/item/seeds/poppy(src)
|
||||
|
||||
/obj/item/weapon/storage/box/ingredients/carnivore
|
||||
item_state = "carnivore"
|
||||
@@ -885,22 +832,22 @@
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/bear(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/spider(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/spidereggs(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/carpmeat(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/slime(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/faggot(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/faggot(src)
|
||||
|
||||
/obj/item/weapon/storage/box/ingredients/exotic
|
||||
item_state = "exotic"
|
||||
|
||||
/obj/item/weapon/storage/box/ingredients/exotic/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/food/condiment/soysauce(src)
|
||||
for(var/i in 1 to 2)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/cabbage(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/soydope(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/carpmeat(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/cabbage(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/grown/chili(src)
|
||||
|
||||
/obj/item/weapon/storage/box/ingredients/New()
|
||||
..()
|
||||
@@ -930,14 +877,3 @@
|
||||
new /obj/item/weapon/circuitboard/machine/destructive_analyzer(src)
|
||||
new /obj/item/weapon/circuitboard/machine/circuit_imprinter(src)
|
||||
new /obj/item/weapon/circuitboard/computer/rdconsole(src)
|
||||
|
||||
/obj/item/weapon/storage/box/medipens/utility1
|
||||
name = "survival value kit"
|
||||
desc = "A box with several survival medipens for the economical miner."
|
||||
icon_state = "syringe"
|
||||
|
||||
/obj/item/weapon/storage/box/medipens/utility1/New()
|
||||
..()
|
||||
for(var/i in 1 to 5)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen/survival(src)
|
||||
|
||||
|
||||
@@ -7,12 +7,13 @@
|
||||
hitsound = "swing_hit"
|
||||
throw_speed = 2
|
||||
throw_range = 4
|
||||
w_class = 4
|
||||
max_w_class = 3
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
max_w_class = WEIGHT_CLASS_NORMAL
|
||||
max_combined_w_class = 21
|
||||
attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked")
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 20
|
||||
resistance_flags = FLAMMABLE
|
||||
obj_integrity = 150
|
||||
max_integrity = 150
|
||||
var/folder_path = /obj/item/weapon/folder //this is the path of the folder that gets spawned in New()
|
||||
|
||||
/obj/item/weapon/storage/briefcase/New()
|
||||
@@ -38,17 +39,18 @@
|
||||
hitsound = "swing_hit"
|
||||
throw_speed = 2
|
||||
throw_range = 4
|
||||
w_class = 4
|
||||
max_w_class = 3
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
max_w_class = WEIGHT_CLASS_NORMAL
|
||||
max_combined_w_class = 21
|
||||
attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked")
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 20
|
||||
resistance_flags = FLAMMABLE
|
||||
obj_integrity = 150
|
||||
max_integrity = 150
|
||||
|
||||
/obj/item/weapon/storage/briefcase/sniperbundle/New()
|
||||
..()
|
||||
new /obj/item/weapon/gun/projectile/automatic/sniper_rifle/syndicate(src)
|
||||
new /obj/item/clothing/tie/red(src)
|
||||
new /obj/item/weapon/gun/ballistic/automatic/sniper_rifle/syndicate(src)
|
||||
new /obj/item/clothing/neck/tie/red(src)
|
||||
new /obj/item/clothing/under/syndicate/sniper(src)
|
||||
new /obj/item/ammo_box/magazine/sniper_rounds/soporific(src)
|
||||
new /obj/item/ammo_box/magazine/sniper_rounds/haemorrhage(src)
|
||||
|
||||
@@ -17,9 +17,10 @@
|
||||
icon = 'icons/obj/food/containers.dmi'
|
||||
icon_state = "donutbox6"
|
||||
name = "donut box"
|
||||
burn_state = FLAMMABLE
|
||||
resistance_flags = FLAMMABLE
|
||||
var/icon_type = "donut"
|
||||
var/spawn_type = null
|
||||
var/fancy_open = FALSE
|
||||
|
||||
/obj/item/weapon/storage/fancy/New()
|
||||
..()
|
||||
@@ -27,16 +28,37 @@
|
||||
new spawn_type(src)
|
||||
|
||||
/obj/item/weapon/storage/fancy/update_icon(itemremoved = 0)
|
||||
var/total_contents = src.contents.len - itemremoved
|
||||
src.icon_state = "[src.icon_type]box[total_contents]"
|
||||
return
|
||||
if(fancy_open)
|
||||
var/total_contents = src.contents.len - itemremoved
|
||||
icon_state = "[icon_type]box[total_contents]"
|
||||
else
|
||||
icon_state = "[icon_type]box"
|
||||
|
||||
/obj/item/weapon/storage/fancy/examine(mob/user)
|
||||
..()
|
||||
if(contents.len == 1)
|
||||
user << "There is one [src.icon_type] left."
|
||||
else
|
||||
user << "There are [contents.len <= 0 ? "no" : "[src.contents.len]"] [src.icon_type]s left."
|
||||
if(fancy_open)
|
||||
if(contents.len == 1)
|
||||
user << "There is one [src.icon_type] left."
|
||||
else
|
||||
user << "There are [contents.len <= 0 ? "no" : "[src.contents.len]"] [src.icon_type]s left."
|
||||
|
||||
/obj/item/weapon/storage/fancy/attack_self(mob/user)
|
||||
fancy_open = !fancy_open
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/storage/fancy/content_can_dump(atom/dest_object, mob/user)
|
||||
. = ..()
|
||||
if(.)
|
||||
fancy_open = TRUE
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/storage/fancy/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/user)
|
||||
fancy_open = TRUE
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/storage/fancy/remove_from_storage(obj/item/W, atom/new_location, burn = 0)
|
||||
fancy_open = TRUE
|
||||
return ..()
|
||||
|
||||
/*
|
||||
* Donut Box
|
||||
@@ -50,6 +72,7 @@
|
||||
storage_slots = 6
|
||||
can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/donut)
|
||||
spawn_type = /obj/item/weapon/reagent_containers/food/snacks/donut
|
||||
fancy_open = TRUE
|
||||
|
||||
/*
|
||||
* Egg Box
|
||||
@@ -79,6 +102,10 @@
|
||||
throwforce = 2
|
||||
slot_flags = SLOT_BELT
|
||||
spawn_type = /obj/item/candle
|
||||
fancy_open = TRUE
|
||||
|
||||
/obj/item/weapon/storage/fancy/candle_box/attack_self(mob_user)
|
||||
return
|
||||
|
||||
////////////
|
||||
//CIG PACK//
|
||||
@@ -89,7 +116,7 @@
|
||||
icon = 'icons/obj/cigarettes.dmi'
|
||||
icon_state = "cig"
|
||||
item_state = "cigpacket"
|
||||
w_class = 1
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
throwforce = 0
|
||||
slot_flags = SLOT_BELT
|
||||
storage_slots = 6
|
||||
@@ -105,21 +132,39 @@
|
||||
cig.desc = "\An [name] brand [cig.name]."
|
||||
name = "\improper [name] packet"
|
||||
|
||||
/obj/item/weapon/storage/fancy/cigarettes/AltClick(mob/user)
|
||||
if(user.get_active_held_item())
|
||||
return
|
||||
for(var/obj/item/weapon/lighter/lighter in src)
|
||||
remove_from_storage(lighter, user.loc)
|
||||
user.put_in_active_hand(lighter)
|
||||
break
|
||||
|
||||
/obj/item/weapon/storage/fancy/cigarettes/update_icon()
|
||||
cut_overlays()
|
||||
icon_state = initial(icon_state)
|
||||
if(!contents.len)
|
||||
icon_state += "_empty"
|
||||
if(fancy_open || !contents.len)
|
||||
cut_overlays()
|
||||
if(!contents.len)
|
||||
icon_state = "[initial(icon_state)]_empty"
|
||||
else
|
||||
icon_state = initial(icon_state)
|
||||
add_overlay("[icon_state]_open")
|
||||
var/i = contents.len
|
||||
for(var/C in contents)
|
||||
if(istype(C, /obj/item/weapon/lighter/greyscale))
|
||||
add_overlay(image(icon = src.icon, icon_state = "lighter_in", pixel_x = 1 * (i -1)))
|
||||
else if(istype(C, /obj/item/weapon/lighter))
|
||||
add_overlay(image(icon = src.icon, icon_state = "zippo_in", pixel_x = 1 * (i -1)))
|
||||
else
|
||||
add_overlay(image(icon = src.icon, icon_state = "cigarette", pixel_x = 1 * (i -1)))
|
||||
i--
|
||||
else
|
||||
add_overlay("[icon_state]_open")
|
||||
for(var/c = contents.len, c >= 1, c--)
|
||||
add_overlay(image(icon = src.icon, icon_state = "cigarette", pixel_x = 1 * (c -1)))
|
||||
return
|
||||
cut_overlays()
|
||||
|
||||
/obj/item/weapon/storage/fancy/cigarettes/remove_from_storage(obj/item/W, atom/new_location)
|
||||
if(istype(W,/obj/item/clothing/mask/cigarette))
|
||||
if(reagents)
|
||||
reagents.trans_to(W,(reagents.total_volume/contents.len))
|
||||
fancy_open = TRUE
|
||||
..()
|
||||
|
||||
/obj/item/weapon/storage/fancy/cigarettes/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
|
||||
@@ -202,7 +247,7 @@
|
||||
/obj/item/weapon/storage/fancy/rollingpapers
|
||||
name = "rolling paper pack"
|
||||
desc = "A pack of NanoTrasen brand rolling papers."
|
||||
w_class = 1
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
icon = 'icons/obj/cigarettes.dmi'
|
||||
icon_state = "cig_paper_pack"
|
||||
storage_slots = 10
|
||||
@@ -214,7 +259,6 @@
|
||||
cut_overlays()
|
||||
if(!contents.len)
|
||||
add_overlay("[icon_state]_empty")
|
||||
return
|
||||
|
||||
/////////////
|
||||
//CIGAR BOX//
|
||||
@@ -225,18 +269,21 @@
|
||||
desc = "A case of premium cigars. Very expensive."
|
||||
icon = 'icons/obj/cigarettes.dmi'
|
||||
icon_state = "cigarcase"
|
||||
w_class = 3
|
||||
storage_slots = 7
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
storage_slots = 5
|
||||
can_hold = list(/obj/item/clothing/mask/cigarette/cigar)
|
||||
icon_type = "premium cigar"
|
||||
spawn_type = /obj/item/clothing/mask/cigarette/cigar
|
||||
|
||||
/obj/item/weapon/storage/fancy/cigarettes/cigars/update_icon()
|
||||
cut_overlays()
|
||||
add_overlay("[icon_state]_open")
|
||||
for(var/c = contents.len, c >= 1, c--)
|
||||
add_overlay(image(icon = src.icon, icon_state = icon_type, pixel_x = 4 * (c -1)))
|
||||
return
|
||||
if(fancy_open)
|
||||
cut_overlays()
|
||||
add_overlay("[icon_state]_open")
|
||||
for(var/c = contents.len, c >= 1, c--)
|
||||
add_overlay(image(icon = src.icon, icon_state = icon_type, pixel_x = 4 * (c -1)))
|
||||
else
|
||||
cut_overlays()
|
||||
icon_state = "cigarcase"
|
||||
|
||||
/obj/item/weapon/storage/fancy/cigarettes/cigars/cohiba
|
||||
name = "\improper cohiba robusto cigar case"
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
name = "combat medical kit"
|
||||
desc = "I hope you've got insurance."
|
||||
icon_state = "bezerk"
|
||||
max_w_class = 3
|
||||
max_w_class = WEIGHT_CLASS_NORMAL
|
||||
|
||||
/obj/item/weapon/storage/firstaid/tactical/New()
|
||||
..()
|
||||
@@ -127,7 +127,7 @@
|
||||
icon_state = "pill_canister"
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
item_state = "contsolid"
|
||||
w_class = 2
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
can_hold = list(/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/dice)
|
||||
allow_quick_gather = 1
|
||||
use_to_pickup = 1
|
||||
@@ -140,13 +140,11 @@
|
||||
return ..()
|
||||
if(!M.restrained() && !M.stat && istype(over_object, /obj/screen/inventory/hand))
|
||||
var/obj/screen/inventory/hand/H = over_object
|
||||
if(!M.unEquip(src))
|
||||
if(!M.temporarilyRemoveItemFromInventory(src))
|
||||
return
|
||||
if(!M.put_in_hand(src,H.held_index))
|
||||
qdel(src)
|
||||
return
|
||||
switch(H.slot_id)
|
||||
if(slot_r_hand)
|
||||
M.put_in_r_hand(src)
|
||||
if(slot_l_hand)
|
||||
M.put_in_l_hand(src)
|
||||
src.add_fingerprint(usr)
|
||||
return
|
||||
if(over_object == usr && in_range(src, usr) || usr.contents.Find(src))
|
||||
|
||||
@@ -1,42 +1,75 @@
|
||||
/obj/item/weapon/storage/internal
|
||||
storage_slots = 2
|
||||
max_w_class = 2
|
||||
max_combined_w_class = 4
|
||||
w_class = 4
|
||||
var/priority = 1
|
||||
max_w_class = WEIGHT_CLASS_SMALL
|
||||
max_combined_w_class = 50 // Limited by slots, not combined weight class
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
rustle_jimmies = FALSE
|
||||
|
||||
/*obj/item/weapon/storage/internal/pocket/New()
|
||||
/obj/item/weapon/storage/internal/ClickAccessible(mob/user, depth=1)
|
||||
if(loc)
|
||||
return loc.ClickAccessible(user, depth)
|
||||
|
||||
/obj/item/weapon/storage/internal/Adjacent(A)
|
||||
if(loc)
|
||||
return loc.Adjacent(A)
|
||||
|
||||
/obj/item/weapon/storage/internal/pocket
|
||||
var/priority = TRUE
|
||||
// TRUE if opens when clicked, like a backpack.
|
||||
// FALSE if opens only when dragged on mob's icon (hidden pocket)
|
||||
var/quickdraw = FALSE
|
||||
// TRUE if you can quickdraw items from it with alt-click.
|
||||
|
||||
/obj/item/weapon/storage/internal/pocket/New()
|
||||
..()
|
||||
if(loc) name = loc.name
|
||||
if(loc)
|
||||
name = loc.name
|
||||
|
||||
/obj/item/weapon/storage/internal/pocket/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/user)
|
||||
. = ..()
|
||||
if(. && silent && !prevent_warning)
|
||||
if(quickdraw)
|
||||
user << "<span class='notice'>You discreetly slip [W] into [src]. Alt-click [src] to remove it.</span>"
|
||||
else
|
||||
user << "<span class='notice'>You discreetly slip [W] into [src]."
|
||||
|
||||
/obj/item/weapon/storage/internal/pocket/big
|
||||
max_w_class = 3
|
||||
max_combined_w_class = 6
|
||||
max_w_class = WEIGHT_CLASS_NORMAL
|
||||
|
||||
/obj/item/weapon/storage/internal/pocket/small
|
||||
storage_slots = 1
|
||||
max_combined_w_class = 2
|
||||
priority = 0
|
||||
priority = FALSE
|
||||
|
||||
/obj/item/weapon/storage/internal/pocket/tiny
|
||||
storage_slots = 1
|
||||
max_w_class = 1
|
||||
max_combined_w_class = 1
|
||||
priority = 0
|
||||
max_w_class = WEIGHT_CLASS_TINY
|
||||
priority = FALSE
|
||||
|
||||
/obj/item/weapon/storage/internal/pocket/shoes
|
||||
can_hold = list(
|
||||
/obj/item/weapon/kitchen/knife, /obj/item/weapon/switchblade, /obj/item/weapon/pen,
|
||||
/obj/item/weapon/scalpel, /obj/item/weapon/reagent_containers/syringe, /obj/item/weapon/dnainjector,
|
||||
/obj/item/weapon/reagent_containers/hypospray/medipen, /obj/item/weapon/reagent_containers/dropper,
|
||||
/obj/item/weapon/implanter, /obj/item/weapon/screwdriver, /obj/item/weapon/weldingtool/mini,
|
||||
/obj/item/device/firing_pin
|
||||
)
|
||||
//can hold both regular pens and energy daggers. made for your every-day tactical librarians/murderers.
|
||||
priority = FALSE
|
||||
quickdraw = TRUE
|
||||
silent = TRUE
|
||||
|
||||
|
||||
/obj/item/weapon/storage/internal/pocket/shoes/clown
|
||||
can_hold = list(
|
||||
/obj/item/weapon/kitchen/knife, /obj/item/weapon/switchblade, /obj/item/weapon/pen,
|
||||
/obj/item/weapon/scalpel, /obj/item/weapon/reagent_containers/syringe, /obj/item/weapon/dnainjector,
|
||||
/obj/item/weapon/reagent_containers/hypospray/medipen, /obj/item/weapon/reagent_containers/dropper,
|
||||
/obj/item/weapon/implanter, /obj/item/weapon/screwdriver, /obj/item/weapon/weldingtool/mini,
|
||||
/obj/item/device/firing_pin, /obj/item/weapon/bikehorn)
|
||||
|
||||
/obj/item/weapon/storage/internal/pocket/small/detective
|
||||
priority = 1
|
||||
priority = TRUE // so the detectives would discover pockets in their hats
|
||||
|
||||
/obj/item/weapon/storage/internal/pocket/small/detective/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/flask/det(src)
|
||||
|
||||
|
||||
proc/isstorage(var/atom/A)
|
||||
if(istype(A, /obj/item/weapon/storage))
|
||||
return 1
|
||||
|
||||
if(istype(A, /obj/item/clothing))
|
||||
var/obj/item/clothing/C = A
|
||||
if(C.pockets) return 1*/
|
||||
@@ -1,12 +1,12 @@
|
||||
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
|
||||
|
||||
|
||||
/obj/item/weapon/storage/lockbox
|
||||
name = "lockbox"
|
||||
desc = "A locked box."
|
||||
icon_state = "lockbox+l"
|
||||
item_state = "syringe_kit"
|
||||
w_class = 4
|
||||
max_w_class = 3
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
max_w_class = WEIGHT_CLASS_NORMAL
|
||||
max_combined_w_class = 14 //The sum of the w_classes of all the items in this storage item.
|
||||
storage_slots = 4
|
||||
req_access = list(access_armory)
|
||||
@@ -101,9 +101,9 @@
|
||||
desc = "A locked box used to store medals of honor."
|
||||
icon_state = "medalbox+l"
|
||||
item_state = "syringe_kit"
|
||||
w_class = 3
|
||||
max_w_class = 2
|
||||
storage_slots = 6
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
max_w_class = WEIGHT_CLASS_SMALL
|
||||
storage_slots = 10
|
||||
req_access = list(access_captain)
|
||||
icon_locked = "medalbox+l"
|
||||
icon_closed = "medalbox"
|
||||
@@ -116,3 +116,6 @@
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/tie/medal/conduct(src)
|
||||
new /obj/item/clothing/tie/medal/gold/captain(src)
|
||||
new /obj/item/clothing/tie/medal/silver/security(src)
|
||||
new /obj/item/clothing/tie/medal/nobel_science(src)
|
||||
new /obj/item/clothing/tie/medal/gold/heroism(src)
|
||||
|
||||
@@ -21,10 +21,9 @@
|
||||
var/l_set = 0
|
||||
var/l_setshort = 0
|
||||
var/l_hacking = 0
|
||||
var/emagged = 0
|
||||
var/open = 0
|
||||
w_class = 3
|
||||
max_w_class = 2
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
max_w_class = WEIGHT_CLASS_SMALL
|
||||
max_combined_w_class = 14
|
||||
|
||||
/obj/item/weapon/storage/secure/examine(mob/user)
|
||||
@@ -34,15 +33,15 @@
|
||||
/obj/item/weapon/storage/secure/attackby(obj/item/weapon/W, mob/user, params)
|
||||
if(locked)
|
||||
if (istype(W, /obj/item/weapon/screwdriver))
|
||||
if (do_after(user, 20/W.toolspeed, target = src))
|
||||
if (do_after(user, 20*W.toolspeed, target = src))
|
||||
src.open =! src.open
|
||||
user.show_message("<span class='notice'>You [open ? "open" : "close"] the service panel.</span>", 1)
|
||||
return
|
||||
if ((istype(W, /obj/item/device/multitool)) && (src.open == 1)&& (!src.l_hacking))
|
||||
user.show_message("<span class='danger'>Now attempting to reset internal memory, please hold.</span>", 1)
|
||||
src.l_hacking = 1
|
||||
if (do_after(usr, 100/W.toolspeed, target = src))
|
||||
if (prob(40))
|
||||
if (do_after(usr, 100*W.toolspeed, target = src))
|
||||
if (prob(33))
|
||||
src.l_setshort = 1
|
||||
src.l_set = 0
|
||||
user.show_message("<span class='danger'>Internal memory reset. Please give it a few seconds to reinitialize.</span>", 1)
|
||||
@@ -62,17 +61,6 @@
|
||||
// -> storage/attackby() what with handle insertion, etc
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/storage/secure/emag_act(mob/user)
|
||||
if(locked)
|
||||
if(!emagged)
|
||||
emagged = 1
|
||||
src.add_overlay(image('icons/obj/storage.dmi', icon_sparking))
|
||||
sleep(6)
|
||||
src.overlays = null
|
||||
add_overlay(image('icons/obj/storage.dmi', icon_locking))
|
||||
locked = 0
|
||||
user << "<span class='notice'>You short out the lock on [src].</span>"
|
||||
|
||||
/obj/item/weapon/storage/secure/MouseDrop(over_object, src_location, over_location)
|
||||
if (locked)
|
||||
src.add_fingerprint(usr)
|
||||
@@ -84,10 +72,8 @@
|
||||
user.set_machine(src)
|
||||
var/dat = text("<TT><B>[]</B><BR>\n\nLock Status: []",src, (src.locked ? "LOCKED" : "UNLOCKED"))
|
||||
var/message = "Code"
|
||||
if ((src.l_set == 0) && (!src.emagged) && (!src.l_setshort))
|
||||
if ((src.l_set == 0) && (!src.l_setshort))
|
||||
dat += text("<p>\n<b>5-DIGIT PASSCODE NOT SET.<br>ENTER NEW PASSCODE.</b>")
|
||||
if (src.emagged)
|
||||
dat += text("<p>\n<font color=red><b>LOCKING SYSTEM ERROR - 1701</b></font>")
|
||||
if (src.l_setshort)
|
||||
dat += text("<p>\n<font color=red><b>ALERT: MEMORY SYSTEM ERROR - 6040 201</b></font>")
|
||||
message = text("[]", src.code)
|
||||
@@ -105,7 +91,7 @@
|
||||
if ((src.l_set == 0) && (length(src.code) == 5) && (!src.l_setshort) && (src.code != "ERROR"))
|
||||
src.l_code = src.code
|
||||
src.l_set = 1
|
||||
else if ((src.code == src.l_code) && (src.emagged == 0) && (src.l_set == 1))
|
||||
else if ((src.code == src.l_code) && (src.l_set == 1))
|
||||
src.locked = 0
|
||||
src.overlays = null
|
||||
add_overlay(image('icons/obj/storage.dmi', icon_opened))
|
||||
@@ -113,13 +99,13 @@
|
||||
else
|
||||
src.code = "ERROR"
|
||||
else
|
||||
if ((href_list["type"] == "R") && (src.emagged == 0) && (!src.l_setshort))
|
||||
if ((href_list["type"] == "R") && (!src.l_setshort))
|
||||
src.locked = 1
|
||||
src.overlays = null
|
||||
src.code = null
|
||||
src.close(usr)
|
||||
else
|
||||
src.code += text("[]", href_list["type"])
|
||||
src.code += text("[]", sanitize_text(href_list["type"]))
|
||||
if (length(src.code) > 5)
|
||||
src.code = "ERROR"
|
||||
src.add_fingerprint(usr)
|
||||
@@ -154,8 +140,8 @@
|
||||
hitsound = "swing_hit"
|
||||
throw_speed = 2
|
||||
throw_range = 4
|
||||
w_class = 4
|
||||
max_w_class = 3
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
max_w_class = WEIGHT_CLASS_NORMAL
|
||||
max_combined_w_class = 21
|
||||
attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked")
|
||||
|
||||
@@ -167,19 +153,9 @@
|
||||
/obj/item/weapon/storage/secure/briefcase/attack_hand(mob/user)
|
||||
if ((src.loc == user) && (src.locked == 1))
|
||||
usr << "<span class='warning'>[src] is locked and cannot be opened!</span>"
|
||||
else if ((src.loc == user) && (!src.locked))
|
||||
playsound(src.loc, "rustle", 50, 1, -5)
|
||||
if (user.s_active)
|
||||
user.s_active.close(user) //Close and re-open
|
||||
src.show_to(user)
|
||||
add_fingerprint(user)
|
||||
else
|
||||
..()
|
||||
for(var/mob/M in range(1))
|
||||
if (M.s_active == src)
|
||||
src.close(M)
|
||||
src.orient2hud(user)
|
||||
src.add_fingerprint(user)
|
||||
return
|
||||
|
||||
//Syndie variant of Secure Briefcase. Contains space cash, slightly more robust.
|
||||
/obj/item/weapon/storage/secure/briefcase/syndie
|
||||
@@ -203,7 +179,7 @@
|
||||
icon_locking = "safeb"
|
||||
icon_sparking = "safespark"
|
||||
force = 8
|
||||
w_class = 8
|
||||
w_class = WEIGHT_CLASS_GIGANTIC
|
||||
max_w_class = 8
|
||||
anchored = 1
|
||||
density = 0
|
||||
@@ -219,4 +195,4 @@
|
||||
|
||||
/obj/item/weapon/storage/secure/safe/HoS/New()
|
||||
..()
|
||||
//new /obj/item/weapon/storage/lockbox/clusterbang(src) This item is currently broken... and probably shouldnt exist to begin with (even though it's cool)
|
||||
//new /obj/item/weapon/storage/lockbox/clusterbang(src) This item is currently broken... and probably shouldnt exist to begin with (even though it's cool)
|
||||
|
||||
@@ -8,12 +8,12 @@
|
||||
/obj/item/weapon/storage
|
||||
name = "storage"
|
||||
icon = 'icons/obj/storage.dmi'
|
||||
w_class = 3
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
var/silent = 0 // No message on putting items in
|
||||
var/list/can_hold = new/list() //List of objects which this item can store (if set, it can't store anything else)
|
||||
var/list/cant_hold = new/list() //List of objects which this item can't store (in effect only if can_hold isn't set)
|
||||
var/list/can_hold = new/list() //Typecache of objects which this item can store (if set, it can't store anything else)
|
||||
var/list/cant_hold = new/list() //Typecache of objects which this item can't store
|
||||
var/list/is_seeing = new/list() //List of mobs which are currently seeing the contents of this item's storage
|
||||
var/max_w_class = 2 //Max size of objects that this object can store (in effect only if can_hold isn't set)
|
||||
var/max_w_class = WEIGHT_CLASS_SMALL //Max size of objects that this object can store (in effect only if can_hold isn't set)
|
||||
var/max_combined_w_class = 14 //The sum of the w_classes of all the items in this storage item.
|
||||
var/storage_slots = 7 //The number of storage slots in this container.
|
||||
var/obj/screen/storage/boxes = null
|
||||
@@ -24,10 +24,11 @@
|
||||
var/allow_quick_gather //Set this variable to allow the object to have the 'toggle mode' verb, which quickly collects all items from a tile.
|
||||
var/collection_mode = 1; //0 = pick one at a time, 1 = pick all on tile, 2 = pick all of a type
|
||||
var/preposition = "in" // You put things 'in' a bag, but trays need 'on'.
|
||||
var/rustle_jimmies = TRUE //Play the rustle sound on insertion
|
||||
|
||||
|
||||
/obj/item/weapon/storage/MouseDrop(atom/over_object)
|
||||
if(iscarbon(usr) || isdrone(usr)) //all the check for item manipulation are in other places, you can safely open any storages as anything and its not buggy, i checked
|
||||
if(ismob(usr)) //all the check for item manipulation are in other places, you can safely open any storages as anything and its not buggy, i checked
|
||||
var/mob/M = usr
|
||||
|
||||
if(!over_object)
|
||||
@@ -36,8 +37,9 @@
|
||||
if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech
|
||||
return
|
||||
|
||||
if(over_object == M && Adjacent(M)) // this must come before the screen objects only block
|
||||
orient2hud(M) // dunno why it wasn't before
|
||||
// this must come before the screen objects only block, dunno why it wasn't before
|
||||
if(over_object == M && (src.ClickAccessible(M, depth=STORAGE_VIEW_DEPTH) || Adjacent(M)))
|
||||
orient2hud(M)
|
||||
if(M.s_active)
|
||||
M.s_active.close(M)
|
||||
show_to(M)
|
||||
@@ -55,16 +57,25 @@
|
||||
|
||||
if(istype(over_object, /obj/screen/inventory/hand))
|
||||
var/obj/screen/inventory/hand/H = over_object
|
||||
if(!M.unEquip(src))
|
||||
if(!M.temporarilyRemoveItemFromInventory(src))
|
||||
return
|
||||
if(!M.put_in_hand(src,H.held_index))
|
||||
qdel(src)
|
||||
return
|
||||
switch(H.slot_id)
|
||||
if(slot_r_hand)
|
||||
M.put_in_r_hand(src)
|
||||
if(slot_l_hand)
|
||||
M.put_in_l_hand(src)
|
||||
|
||||
add_fingerprint(usr)
|
||||
|
||||
|
||||
/obj/item/weapon/storage/MouseDrop_T(atom/movable/O, mob/user)
|
||||
if(istype(O, /obj/item))
|
||||
var/obj/item/I = O
|
||||
if(iscarbon(user) || isdrone(user))
|
||||
var/mob/living/L = user
|
||||
if(!L.incapacitated() && I == L.get_active_held_item())
|
||||
if(can_be_inserted(I, 0))
|
||||
handle_item_insertion(I, 0 , L)
|
||||
|
||||
|
||||
//Check if this storage can dump the items
|
||||
/obj/item/weapon/storage/proc/content_can_dump(atom/dest_object, mob/user)
|
||||
if(Adjacent(user) && dest_object.Adjacent(user))
|
||||
@@ -80,7 +91,7 @@
|
||||
if(I.on_found(user))
|
||||
return
|
||||
if(can_be_inserted(I,0,user))
|
||||
src_object.remove_from_storage(I, src)
|
||||
handle_item_insertion(I, TRUE, user)
|
||||
orient2hud(user)
|
||||
src_object.orient2hud(user)
|
||||
if(user.s_active) //refresh the HUD to show the transfered contents
|
||||
@@ -113,7 +124,7 @@
|
||||
is_seeing |= user
|
||||
|
||||
|
||||
/obj/item/weapon/storage/throw_at(atom/target, range, speed, mob/thrower, spin)
|
||||
/obj/item/weapon/storage/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback)
|
||||
close_all()
|
||||
return ..()
|
||||
|
||||
@@ -158,6 +169,7 @@
|
||||
for(var/obj/O in contents)
|
||||
O.screen_loc = "[cx],[cy]"
|
||||
O.layer = ABOVE_HUD_LAYER
|
||||
O.plane = ABOVE_HUD_PLANE
|
||||
cx++
|
||||
if(cx > mx)
|
||||
cx = tx
|
||||
@@ -177,6 +189,7 @@
|
||||
ND.sample_object.screen_loc = "[cx]:16,[cy]:16"
|
||||
ND.sample_object.maptext = "<font color='white'>[(ND.number > 1)? "[ND.number]" : ""]</font>"
|
||||
ND.sample_object.layer = ABOVE_HUD_LAYER
|
||||
ND.sample_object.plane = ABOVE_HUD_PLANE
|
||||
cx++
|
||||
if(cx > (4+cols))
|
||||
cx = 4
|
||||
@@ -187,6 +200,7 @@
|
||||
O.screen_loc = "[cx]:16,[cy]:16"
|
||||
O.maptext = ""
|
||||
O.layer = ABOVE_HUD_LAYER
|
||||
O.plane = ABOVE_HUD_PLANE
|
||||
cx++
|
||||
if(cx > (4+cols))
|
||||
cx = 4
|
||||
@@ -205,7 +219,7 @@
|
||||
number = 1
|
||||
|
||||
|
||||
//This proc determins the size of the inventory to be displayed. Please touch it only if you know what you're doing.
|
||||
//This proc determines the size of the inventory to be displayed. Please touch it only if you know what you're doing.
|
||||
/obj/item/weapon/storage/proc/orient2hud(mob/user)
|
||||
var/adjusted_contents = contents.len
|
||||
|
||||
@@ -247,21 +261,15 @@
|
||||
return 0 //Storage item is full
|
||||
|
||||
if(can_hold.len)
|
||||
var/ok = 0
|
||||
for(var/A in can_hold)
|
||||
if(istype(W, A))
|
||||
ok = 1
|
||||
break
|
||||
if(!ok)
|
||||
if(!is_type_in_typecache(W, can_hold))
|
||||
if(!stop_messages)
|
||||
usr << "<span class='warning'>[src] cannot hold [W]!</span>"
|
||||
return 0
|
||||
|
||||
for(var/A in cant_hold) //Check for specific items which this container can't hold.
|
||||
if(istype(W, A))
|
||||
if(!stop_messages)
|
||||
usr << "<span class='warning'>[src] cannot hold [W]!</span>"
|
||||
return 0
|
||||
if(is_type_in_typecache(W, cant_hold)) //Check for specific items which this container can't hold.
|
||||
if(!stop_messages)
|
||||
usr << "<span class='warning'>[src] cannot hold [W]!</span>"
|
||||
return 0
|
||||
|
||||
if(W.w_class > max_w_class)
|
||||
if(!stop_messages)
|
||||
@@ -297,19 +305,27 @@
|
||||
if(!istype(W))
|
||||
return 0
|
||||
if(usr)
|
||||
if(!usr.unEquip(W))
|
||||
if(!usr.transferItemToLoc(W, src))
|
||||
return 0
|
||||
else
|
||||
W.forceMove(src)
|
||||
if(silent)
|
||||
prevent_warning = 1
|
||||
if(W.pulledby)
|
||||
W.pulledby.stop_pulling()
|
||||
W.loc = src
|
||||
W.on_enter_storage(src)
|
||||
if(usr)
|
||||
if(usr.client && usr.s_active != src)
|
||||
usr.client.screen -= W
|
||||
if(usr.observers && usr.observers.len)
|
||||
for(var/M in usr.observers)
|
||||
var/mob/dead/observe = M
|
||||
if(observe.client && observe.s_active != src)
|
||||
observe.client.screen -= W
|
||||
|
||||
add_fingerprint(usr)
|
||||
if(rustle_jimmies && !prevent_warning)
|
||||
playsound(src.loc, "rustle", 50, 1, -5)
|
||||
|
||||
if(!prevent_warning)
|
||||
for(var/mob/M in viewers(usr, null))
|
||||
@@ -329,7 +345,7 @@
|
||||
|
||||
|
||||
//Call this proc to handle the removal of an item from the storage item. The item will be moved to the atom sent as new_target
|
||||
/obj/item/weapon/storage/proc/remove_from_storage(obj/item/W, atom/new_location, burn = 0)
|
||||
/obj/item/weapon/storage/proc/remove_from_storage(obj/item/W, atom/new_location)
|
||||
if(!istype(W))
|
||||
return 0
|
||||
|
||||
@@ -345,37 +361,43 @@
|
||||
var/mob/M = loc
|
||||
W.dropped(M)
|
||||
W.layer = initial(W.layer)
|
||||
W.loc = new_location
|
||||
W.plane = initial(W.plane)
|
||||
W.forceMove(new_location)
|
||||
|
||||
for(var/mob/M in can_see_contents())
|
||||
orient2hud(M)
|
||||
show_to(M)
|
||||
|
||||
if(usr)
|
||||
orient2hud(usr)
|
||||
if(usr.s_active)
|
||||
usr.s_active.show_to(usr)
|
||||
if(W.maptext)
|
||||
W.maptext = ""
|
||||
W.on_exit_storage(src)
|
||||
update_icon()
|
||||
W.mouse_opacity = initial(W.mouse_opacity)
|
||||
if(burn)
|
||||
W.fire_act()
|
||||
return 1
|
||||
|
||||
|
||||
/obj/item/weapon/storage/empty_object_contents(burn, src.loc)
|
||||
for(var/obj/item/Item in contents)
|
||||
remove_from_storage(Item, src.loc, burn)
|
||||
/obj/item/weapon/storage/deconstruct(disassembled = TRUE)
|
||||
var/drop_loc = loc
|
||||
if(ismob(loc))
|
||||
drop_loc = get_turf(src)
|
||||
for(var/obj/item/I in contents)
|
||||
remove_from_storage(I, drop_loc)
|
||||
qdel(src)
|
||||
|
||||
//This proc is called when you want to place an item into the storage item.
|
||||
/obj/item/weapon/storage/attackby(obj/item/W, mob/user, params)
|
||||
..()
|
||||
if(istype(W, /obj/item/weapon/hand_labeler))
|
||||
var/obj/item/weapon/hand_labeler/labeler = W
|
||||
if(labeler.mode)
|
||||
return 0
|
||||
. = 1 //no afterattack
|
||||
if(isrobot(user))
|
||||
if(iscyborg(user))
|
||||
return //Robots can't interact with storage items.
|
||||
|
||||
if(!can_be_inserted(W, 0 , user))
|
||||
return
|
||||
if(!istype(W, /obj/item/device/boobytrap))
|
||||
handle_item_insertion(W, 0 , user)
|
||||
return 0
|
||||
|
||||
handle_item_insertion(W, 0 , user)
|
||||
|
||||
|
||||
/obj/item/weapon/storage/attack_hand(mob/user)
|
||||
@@ -384,15 +406,16 @@
|
||||
close(user)
|
||||
return
|
||||
|
||||
playsound(loc, "rustle", 50, 1, -5)
|
||||
if(rustle_jimmies)
|
||||
playsound(loc, "rustle", 50, 1, -5)
|
||||
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.l_store == src && !H.get_active_hand()) //Prevents opening if it's in a pocket.
|
||||
if(H.l_store == src && !H.get_active_held_item()) //Prevents opening if it's in a pocket.
|
||||
H.put_in_hands(src)
|
||||
H.l_store = null
|
||||
return
|
||||
if(H.r_store == src && !H.get_active_hand())
|
||||
if(H.r_store == src && !H.get_active_held_item())
|
||||
H.put_in_hands(src)
|
||||
H.r_store = null
|
||||
return
|
||||
@@ -449,6 +472,10 @@
|
||||
|
||||
/obj/item/weapon/storage/New()
|
||||
..()
|
||||
|
||||
can_hold = typecacheof(can_hold)
|
||||
cant_hold = typecacheof(cant_hold)
|
||||
|
||||
if(allow_quick_empty)
|
||||
verbs += /obj/item/weapon/storage/verb/quick_empty
|
||||
else
|
||||
@@ -465,10 +492,12 @@
|
||||
boxes.icon_state = "block"
|
||||
boxes.screen_loc = "7,7 to 10,8"
|
||||
boxes.layer = HUD_LAYER
|
||||
boxes.plane = HUD_PLANE
|
||||
closer = new /obj/screen/close()
|
||||
closer.master = src
|
||||
closer.icon_state = "backpack_close"
|
||||
closer.layer = ABOVE_HUD_LAYER
|
||||
closer.plane = ABOVE_HUD_PLANE
|
||||
orient2hud()
|
||||
|
||||
|
||||
@@ -483,7 +512,7 @@
|
||||
|
||||
|
||||
/obj/item/weapon/storage/emp_act(severity)
|
||||
if(!istype(loc, /mob/living))
|
||||
if(!isliving(loc))
|
||||
for(var/obj/O in contents)
|
||||
O.emp_act(severity)
|
||||
..()
|
||||
@@ -491,7 +520,7 @@
|
||||
|
||||
/obj/item/weapon/storage/attack_self(mob/user)
|
||||
//Clicking on itself will empty it, if it has the verb to do that.
|
||||
if(user.get_active_hand() == src)
|
||||
if(user.get_active_held_item() == src)
|
||||
if(verbs.Find(/obj/item/weapon/storage/verb/quick_empty))
|
||||
quick_empty()
|
||||
|
||||
@@ -499,3 +528,8 @@
|
||||
if(A in contents)
|
||||
usr = null
|
||||
remove_from_storage(A, loc)
|
||||
|
||||
/obj/item/weapon/storage/contents_explosion(severity, target)
|
||||
for(var/atom/A in contents)
|
||||
A.ex_act(severity, target)
|
||||
CHECK_TICK
|
||||
|
||||
@@ -4,18 +4,18 @@
|
||||
icon_state = "red"
|
||||
item_state = "toolbox_red"
|
||||
flags = CONDUCT
|
||||
force = 10
|
||||
throwforce = 10
|
||||
force = 12
|
||||
throwforce = 12
|
||||
throw_speed = 2
|
||||
throw_range = 7
|
||||
w_class = 4
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
materials = list(MAT_METAL = 500)
|
||||
origin_tech = "combat=1;engineering=1"
|
||||
attack_verb = list("robusted")
|
||||
hitsound = 'sound/weapons/smash.ogg'
|
||||
|
||||
/obj/item/weapon/storage/toolbox/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] robusts \himself with [src]! It looks like \he's trying to commit suicide..</span>")
|
||||
user.visible_message("<span class='suicide'>[user] robusts [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
return (BRUTELOSS)
|
||||
|
||||
/obj/item/weapon/storage/toolbox/emergency
|
||||
@@ -55,17 +55,17 @@
|
||||
|
||||
/obj/item/weapon/storage/toolbox/electrical/New()
|
||||
..()
|
||||
var/color = pick("red","yellow","green","blue","pink","orange","cyan","white")
|
||||
var/pickedcolor = pick("red","yellow","green","blue","pink","orange","cyan","white")
|
||||
new /obj/item/weapon/screwdriver(src)
|
||||
new /obj/item/weapon/wirecutters(src)
|
||||
new /obj/item/device/t_scanner(src)
|
||||
new /obj/item/weapon/crowbar(src)
|
||||
new /obj/item/stack/cable_coil(src,30,color)
|
||||
new /obj/item/stack/cable_coil(src,30,color)
|
||||
new /obj/item/stack/cable_coil(src,30,pickedcolor)
|
||||
new /obj/item/stack/cable_coil(src,30,pickedcolor)
|
||||
if(prob(5))
|
||||
new /obj/item/clothing/gloves/color/yellow(src)
|
||||
else
|
||||
new /obj/item/stack/cable_coil(src,30,color)
|
||||
new /obj/item/stack/cable_coil(src,30,pickedcolor)
|
||||
|
||||
/obj/item/weapon/storage/toolbox/syndicate
|
||||
name = "suspicious looking toolbox"
|
||||
@@ -93,12 +93,12 @@
|
||||
|
||||
/obj/item/weapon/storage/toolbox/drone/New()
|
||||
..()
|
||||
var/color = pick("red","yellow","green","blue","pink","orange","cyan","white")
|
||||
var/pickedcolor = pick("red","yellow","green","blue","pink","orange","cyan","white")
|
||||
new /obj/item/weapon/screwdriver(src)
|
||||
new /obj/item/weapon/wrench(src)
|
||||
new /obj/item/weapon/weldingtool(src)
|
||||
new /obj/item/weapon/crowbar(src)
|
||||
new /obj/item/stack/cable_coil(src,30,color)
|
||||
new /obj/item/stack/cable_coil(src,30,pickedcolor)
|
||||
new /obj/item/weapon/wirecutters(src)
|
||||
new /obj/item/device/multitool(src)
|
||||
|
||||
@@ -106,8 +106,8 @@
|
||||
name = "brass box"
|
||||
desc = "A huge brass box with several indentations in its surface."
|
||||
icon_state = "brassbox"
|
||||
w_class = 5
|
||||
max_w_class = 3
|
||||
w_class = WEIGHT_CLASS_HUGE
|
||||
max_w_class = WEIGHT_CLASS_NORMAL
|
||||
max_combined_w_class = 28
|
||||
storage_slots = 28
|
||||
slowdown = 1
|
||||
|
||||
@@ -1,31 +1,32 @@
|
||||
/obj/item/weapon/storage/box/syndicate/
|
||||
/obj/item/weapon/storage/box/syndicate
|
||||
|
||||
/obj/item/weapon/storage/box/syndicate/New()
|
||||
..()
|
||||
switch (pickweight(list("bloodyspai" = 3, "stealth" = 3, "bond" = 1, "screwed" = 3, "sabotage" = 3, "guns" = 1, "murder" = 2, "implant" = 2, "hacker" = 2, "lordsingulo" = 2, "darklord" = 1)))
|
||||
if("bloodyspai")
|
||||
new /obj/item/clothing/under/chameleon(src)
|
||||
new /obj/item/clothing/mask/chameleon(src)
|
||||
new /obj/item/weapon/card/id/syndicate(src)
|
||||
new /obj/item/clothing/shoes/chameleon(src)
|
||||
new /obj/item/device/camera_bug(src)
|
||||
new /obj/item/device/multitool/ai_detect(src)
|
||||
new /obj/item/device/encryptionkey/syndicate(src)
|
||||
new /obj/item/weapon/reagent_containers/syringe/mulligan(src)
|
||||
new /obj/item/weapon/switchblade(src)
|
||||
return
|
||||
switch (pickweight(list("bloodyspai" = 3, "stealth" = 2, "bond" = 2, "screwed" = 2, "sabotage" = 3, "guns" = 2, "murder" = 2, "implant" = 1, "hacker" = 3, "lordsingulo" = 1, "darklord" = 1, "sniper" = 1, "metaops" = 1, "ninja" = 1)))
|
||||
if("bloodyspai") // 27 tc now this is more right
|
||||
new /obj/item/clothing/under/chameleon(src) // 2 tc since it's not the full set
|
||||
new /obj/item/clothing/mask/chameleon(src) // Goes with above
|
||||
new /obj/item/weapon/card/id/syndicate(src) // 2 tc
|
||||
new /obj/item/clothing/shoes/chameleon(src) // 2 tc
|
||||
new /obj/item/device/camera_bug(src) // 1 tc
|
||||
new /obj/item/device/multitool/ai_detect(src) // 1 tc
|
||||
new /obj/item/device/encryptionkey/syndicate(src) // 2 tc
|
||||
new /obj/item/weapon/reagent_containers/syringe/mulligan(src) // 4 tc
|
||||
new /obj/item/weapon/switchblade(src) //I'll count this as 2 tc
|
||||
new /obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate (src) // 2 tc this shit heals
|
||||
new /obj/item/device/flashlight/emp(src) // 2 tc
|
||||
new /obj/item/device/chameleon(src) // 7 tc
|
||||
|
||||
if("stealth")
|
||||
if("stealth") // 31 tc
|
||||
new /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow(src)
|
||||
new /obj/item/weapon/pen/sleepy(src)
|
||||
new /obj/item/device/healthanalyzer/rad_laser(src)
|
||||
new /obj/item/device/chameleon(src)
|
||||
new /obj/item/weapon/soap/syndie(src)
|
||||
new /obj/item/clothing/glasses/thermal/syndi(src)
|
||||
return
|
||||
|
||||
if("bond")
|
||||
new /obj/item/weapon/gun/projectile/automatic/pistol(src)
|
||||
if("bond") // 29 tc
|
||||
new /obj/item/weapon/gun/ballistic/automatic/pistol(src)
|
||||
new /obj/item/weapon/suppressor(src)
|
||||
new /obj/item/ammo_box/magazine/m10mm(src)
|
||||
new /obj/item/ammo_box/magazine/m10mm(src)
|
||||
@@ -33,59 +34,54 @@
|
||||
new /obj/item/weapon/card/id/syndicate(src)
|
||||
new /obj/item/weapon/reagent_containers/syringe/stimulants(src)
|
||||
|
||||
return
|
||||
|
||||
if("screwed")
|
||||
if("screwed") // 29 tc
|
||||
new /obj/item/device/sbeacondrop/bomb(src)
|
||||
new /obj/item/weapon/grenade/syndieminibomb(src)
|
||||
new /obj/item/device/sbeacondrop/powersink(src)
|
||||
new /obj/item/clothing/suit/space/syndicate/black/red(src)
|
||||
new /obj/item/clothing/head/helmet/space/syndicate/black/red(src)
|
||||
new /obj/item/device/encryptionkey/syndicate(src)
|
||||
return
|
||||
|
||||
if("guns")
|
||||
new /obj/item/weapon/gun/projectile/revolver(src)
|
||||
if("guns") // 28 tc now
|
||||
new /obj/item/weapon/gun/ballistic/revolver(src)
|
||||
new /obj/item/ammo_box/a357(src)
|
||||
new /obj/item/ammo_box/a357(src)
|
||||
new /obj/item/weapon/card/emag(src)
|
||||
new /obj/item/weapon/grenade/plastic/c4(src)
|
||||
new /obj/item/clothing/gloves/color/latex/nitrile(src)
|
||||
new /obj/item/clothing/mask/gas/clown_hat(src)
|
||||
new /obj/item/clothing/under/suit_jacket/really_black(src)
|
||||
return
|
||||
|
||||
if("murder")
|
||||
if("murder") // 28 tc now
|
||||
new /obj/item/weapon/melee/energy/sword/saber(src)
|
||||
new /obj/item/clothing/glasses/thermal/syndi(src)
|
||||
new /obj/item/weapon/card/emag(src)
|
||||
new /obj/item/clothing/shoes/chameleon(src)
|
||||
return
|
||||
new /obj/item/device/encryptionkey/syndicate(src)
|
||||
new /obj/item/weapon/grenade/syndieminibomb(src)
|
||||
|
||||
if("implant")
|
||||
if("implant") // 55+ tc holy shit what the fuck this is a lottery disguised as fun boxes isn't it?
|
||||
new /obj/item/weapon/implanter/freedom(src)
|
||||
new /obj/item/weapon/implanter/uplink(src)
|
||||
new /obj/item/weapon/implanter/uplink/precharged(src)
|
||||
new /obj/item/weapon/implanter/emp(src)
|
||||
new /obj/item/weapon/implanter/adrenalin(src)
|
||||
new /obj/item/weapon/implanter/explosive(src)
|
||||
new /obj/item/weapon/implanter/storage(src)
|
||||
return
|
||||
|
||||
if("hacker")
|
||||
if("hacker") // 26 tc
|
||||
new /obj/item/weapon/aiModule/syndicate(src)
|
||||
new /obj/item/weapon/card/emag(src)
|
||||
new /obj/item/device/encryptionkey/binary(src)
|
||||
new /obj/item/weapon/aiModule/toyAI(src)
|
||||
new /obj/item/device/multitool/ai_detect(src)
|
||||
return
|
||||
|
||||
if("lordsingulo")
|
||||
if("lordsingulo") // 24 tc
|
||||
new /obj/item/device/sbeacondrop(src)
|
||||
new /obj/item/clothing/suit/space/syndicate/black/red(src)
|
||||
new /obj/item/clothing/head/helmet/space/syndicate/black/red(src)
|
||||
new /obj/item/weapon/card/emag(src)
|
||||
return
|
||||
|
||||
if("sabotage")
|
||||
if("sabotage") // 26 tc now
|
||||
new /obj/item/weapon/grenade/plastic/c4 (src)
|
||||
new /obj/item/weapon/grenade/plastic/c4 (src)
|
||||
new /obj/item/device/doorCharge(src)
|
||||
@@ -93,14 +89,48 @@
|
||||
new /obj/item/device/camera_bug(src)
|
||||
new /obj/item/device/sbeacondrop/powersink(src)
|
||||
new /obj/item/weapon/cartridge/syndicate(src)
|
||||
new /obj/item/weapon/storage/toolbox/syndicate(src) //To actually get to those places
|
||||
new /obj/item/pizzabox/bomb
|
||||
|
||||
if("darklord")
|
||||
if("darklord") //20 tc + tk + summon item close enough for now
|
||||
new /obj/item/weapon/melee/energy/sword/saber(src)
|
||||
new /obj/item/weapon/melee/energy/sword/saber(src)
|
||||
new /obj/item/weapon/dnainjector/telemut/darkbundle(src)
|
||||
new /obj/item/clothing/suit/hooded/chaplain_hoodie(src)
|
||||
new /obj/item/weapon/card/id/syndicate(src)
|
||||
return
|
||||
new /obj/item/clothing/shoes/chameleon(src) //because slipping while being a dark lord sucks
|
||||
new /obj/item/weapon/spellbook/oneuse/summonitem(src)
|
||||
|
||||
if("sniper") //This shit is unique so can't really balance it around tc, also no silencer because getting killed without ANY indicator on what killed you sucks
|
||||
new /obj/item/weapon/gun/ballistic/automatic/sniper_rifle(src) // 12 tc
|
||||
new /obj/item/ammo_box/magazine/sniper_rounds/penetrator(src)
|
||||
new /obj/item/clothing/glasses/thermal/syndi(src)
|
||||
new /obj/item/clothing/gloves/color/latex/nitrile(src)
|
||||
new /obj/item/clothing/mask/gas/clown_hat(src)
|
||||
new /obj/item/clothing/under/suit_jacket/really_black(src)
|
||||
|
||||
if("metaops") // 30 tc
|
||||
new /obj/item/clothing/suit/space/hardsuit/syndi(src) // 8 tc
|
||||
new /obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/unrestricted(src) // 8 tc
|
||||
new /obj/item/weapon/implanter/explosive(src) // 2 tc
|
||||
new /obj/item/ammo_box/magazine/m12g/buckshot(src) // 2 tc
|
||||
new /obj/item/ammo_box/magazine/m12g/buckshot(src) // 2 tc
|
||||
new /obj/item/weapon/grenade/plastic/c4 (src) // 1 tc
|
||||
new /obj/item/weapon/grenade/plastic/c4 (src) // 1 tc
|
||||
new /obj/item/weapon/card/emag(src) // 6 tc
|
||||
|
||||
if("ninja") // 33 tc worth
|
||||
new /obj/item/weapon/katana(src) // Unique , hard to tell how much tc this is worth. 8 tc?
|
||||
new /obj/item/weapon/implanter/adrenalin(src) // 8 tc
|
||||
new /obj/item/weapon/throwing_star(src) // ~5 tc for all 6
|
||||
new /obj/item/weapon/throwing_star(src)
|
||||
new /obj/item/weapon/throwing_star(src)
|
||||
new /obj/item/weapon/throwing_star(src)
|
||||
new /obj/item/weapon/throwing_star(src)
|
||||
new /obj/item/weapon/throwing_star(src)
|
||||
new /obj/item/weapon/storage/belt/military/assault(src) // 3 tc
|
||||
new /obj/item/weapon/card/id/syndicate(src) // 2 tc
|
||||
new /obj/item/device/chameleon(src) // 7 tc
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit
|
||||
name = "box"
|
||||
@@ -115,16 +145,6 @@
|
||||
var/obj/item/weapon/implanter/O = new(src)
|
||||
O.imp = new /obj/item/weapon/implant/freedom(O)
|
||||
O.update_icon()
|
||||
return
|
||||
|
||||
/*/obj/item/weapon/storage/box/syndie_kit/imp_compress
|
||||
name = "Compressed Matter Implant (with injector)"
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/imp_compress/New()
|
||||
new /obj/item/weapon/implanter/compressed(src)
|
||||
..()
|
||||
return
|
||||
*/
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/imp_microbomb
|
||||
name = "Microbomb Implant (with injector)"
|
||||
@@ -134,7 +154,6 @@
|
||||
O.imp = new /obj/item/weapon/implant/explosive(O)
|
||||
O.update_icon()
|
||||
..()
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/imp_macrobomb
|
||||
name = "Macrobomb Implant (with injector)"
|
||||
@@ -144,7 +163,6 @@
|
||||
O.imp = new /obj/item/weapon/implant/explosive/macro(O)
|
||||
O.update_icon()
|
||||
..()
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/imp_uplink
|
||||
name = "boxed uplink implant (with injector)"
|
||||
@@ -154,7 +172,6 @@
|
||||
var/obj/item/weapon/implanter/O = new(src)
|
||||
O.imp = new /obj/item/weapon/implant/uplink(O)
|
||||
O.update_icon()
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/bioterror
|
||||
name = "bioterror syringe box"
|
||||
@@ -163,7 +180,6 @@
|
||||
..()
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/weapon/reagent_containers/syringe/bioterror(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/imp_adrenal
|
||||
name = "boxed adrenal implant (with injector)"
|
||||
@@ -173,7 +189,6 @@
|
||||
var/obj/item/weapon/implanter/O = new(src)
|
||||
O.imp = new /obj/item/weapon/implant/adrenalin(O)
|
||||
O.update_icon()
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/imp_storage
|
||||
name = "boxed storage implant (with injector)"
|
||||
@@ -181,18 +196,16 @@
|
||||
/obj/item/weapon/storage/box/syndie_kit/imp_storage/New()
|
||||
..()
|
||||
new /obj/item/weapon/implanter/storage(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/space
|
||||
name = "boxed space suit and helmet"
|
||||
can_hold = list(/obj/item/clothing/suit/space/syndicate, /obj/item/clothing/head/helmet/space/syndicate)
|
||||
max_w_class = 3
|
||||
max_w_class = WEIGHT_CLASS_NORMAL
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/space/New()
|
||||
..()
|
||||
new /obj/item/clothing/suit/space/syndicate/black/red(src) // Black and red is so in right now
|
||||
new /obj/item/clothing/head/helmet/space/syndicate/black/red(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/emp
|
||||
name = "boxed EMP kit"
|
||||
@@ -225,7 +238,6 @@
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/curare(src)
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/amanitin(src)
|
||||
new /obj/item/weapon/reagent_containers/syringe(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/nuke
|
||||
name = "box"
|
||||
@@ -284,7 +296,8 @@
|
||||
new/obj/item/cardboard_cutout/adaptive(src)
|
||||
new/obj/item/toy/crayon/rainbow(src)
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/thermite/New()
|
||||
/obj/item/weapon/storage/box/syndie_kit/romerol/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/spray/thermite(src)
|
||||
new /obj/item/weapon/lighter(src)
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/romerol(src)
|
||||
new /obj/item/weapon/reagent_containers/syringe(src)
|
||||
new /obj/item/weapon/reagent_containers/dropper(src)
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
desc = "It can hold a few small and personal things."
|
||||
storage_slots = 4
|
||||
icon_state = "wallet"
|
||||
w_class = 2
|
||||
burn_state = FLAMMABLE
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
resistance_flags = FLAMMABLE
|
||||
can_hold = list(
|
||||
/obj/item/stack/spacecash,
|
||||
/obj/item/weapon/card,
|
||||
|
||||
Reference in New Issue
Block a user