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:
TalkingCactus
2017-02-03 06:56:14 -05:00
committed by Poojawa
parent 7735dec0ec
commit f7c09077d2
2489 changed files with 830965 additions and 416701 deletions
+149 -43
View File
@@ -1,3 +1,5 @@
#define EMP_RANDOMISE_TIME 300
/datum/action/item_action/chameleon/drone/randomise
name = "Randomise Headgear"
button_icon_state = "random"
@@ -57,7 +59,7 @@
if(new_headgear)
// Force drop the item in the headslot, even though
// it's NODROP
D.unEquip(target, 1)
D.dropItemToGround(target, TRUE)
qdel(old_headgear)
// where is `slot_head` defined? WHO KNOWS
D.equip_to_slot(new_headgear, slot_head)
@@ -66,18 +68,25 @@
/datum/action/item_action/chameleon/change
name = "Chameleon Change"
var/list/chameleon_blacklist = list()
var/list/chameleon_blacklist = list() //This is a typecache
var/list/chameleon_list = list()
var/chameleon_type = null
var/chameleon_name = "Item"
var/emp_timer
/datum/action/item_action/chameleon/change/proc/initialize_disguises()
if(button)
button.name = "Change [chameleon_name] Appearance"
chameleon_blacklist += target.type
var/list/temp_list = typesof(chameleon_type)
for(var/V in temp_list - (chameleon_blacklist))
chameleon_list += V
chameleon_blacklist |= typecacheof(target.type)
for(var/V in typesof(chameleon_type))
if(ispath(V, /obj/item))
var/obj/item/I = V
if(chameleon_blacklist[V] || (initial(I.flags) & ABSTRACT))
continue
chameleon_list += I
/datum/action/item_action/chameleon/change/proc/select_look(mob/user)
var/list/item_names = list()
@@ -86,7 +95,7 @@
var/obj/item/I = U
item_names += initial(I.name)
var/picked_name
picked_name = input("Select [chameleon_name] to change it to", "Chameleon [chameleon_name]", picked_name) in item_names
picked_name = input("Select [chameleon_name] to change into", "Chameleon [chameleon_name]", picked_name) in item_names
if(!picked_name)
return
for(var/V in chameleon_list)
@@ -119,8 +128,7 @@
return
update_item(picked_item)
C.regenerate_icons() //so our overlays update.
update_item_icon()
UpdateButtonIcon()
/datum/action/item_action/chameleon/change/proc/update_item(obj/item/picked_item)
@@ -144,6 +152,48 @@
select_look(owner)
return 1
/datum/action/item_action/chameleon/change/proc/emp_randomise()
START_PROCESSING(SSprocessing, src)
random_look(owner)
emp_timer = world.time + EMP_RANDOMISE_TIME
/datum/action/item_action/chameleon/change/process()
if(world.time > emp_timer)
STOP_PROCESSING(SSprocessing, src)
return
random_look(owner)
/datum/action/item_action/chameleon/change/proc/update_item_icon()
var/obj/item/I = target
var/mob/living/M = owner
var/flags = I.slot_flags
if(flags & SLOT_OCLOTHING)
M.update_inv_wear_suit()
if(flags & SLOT_ICLOTHING)
M.update_inv_w_uniform()
if(flags & SLOT_GLOVES)
M.update_inv_gloves()
if(flags & SLOT_EYES)
M.update_inv_glasses()
if(flags & SLOT_EARS)
M.update_inv_ears()
if(flags & SLOT_MASK)
M.update_inv_wear_mask()
if(flags & SLOT_HEAD)
M.update_inv_head()
if(flags & SLOT_FEET)
M.update_inv_shoes()
if(flags & SLOT_ID)
M.update_inv_wear_id()
if(flags & SLOT_BELT)
M.update_inv_belt()
if(flags & SLOT_BACK)
M.update_inv_back()
if(flags & SLOT_NECK)
M.update_inv_neck()
/obj/item/clothing/under/chameleon
//starts off as black
name = "black jumpsuit"
@@ -154,16 +204,22 @@
origin_tech = "syndicate=2"
sensor_mode = 0 //Hey who's this guy on the Syndicate Shuttle??
random_sensor = 0
burn_state = FIRE_PROOF
armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
resistance_flags = 0
armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50)
var/datum/action/item_action/chameleon/change/chameleon_action
/obj/item/clothing/under/chameleon/New()
..()
var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
chameleon_action = new(src)
chameleon_action.chameleon_type = /obj/item/clothing/under
chameleon_action.chameleon_name = "Jumpsuit"
chameleon_action.chameleon_blacklist = typecacheof(list(/obj/item/clothing/under, /obj/item/clothing/under/color, /obj/item/clothing/under/rank, /obj/item/clothing/under/changeling), only_root_path = TRUE)
chameleon_action.initialize_disguises()
/obj/item/clothing/under/chameleon/emp_act(severity)
chameleon_action.emp_randomise()
/obj/item/clothing/suit/chameleon
name = "armor"
desc = "A slim armored vest that protects against most types of damage."
@@ -171,71 +227,93 @@
item_state = "armor"
blood_overlay_type = "armor"
origin_tech = "syndicate=2"
burn_state = FIRE_PROOF
armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
resistance_flags = 0
armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50)
var/datum/action/item_action/chameleon/change/chameleon_action
/obj/item/clothing/suit/chameleon/New()
..()
var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
chameleon_action = new(src)
chameleon_action.chameleon_type = /obj/item/clothing/suit
chameleon_action.chameleon_name = "Suit"
chameleon_action.chameleon_blacklist = typecacheof(list(/obj/item/clothing/suit/armor/abductor, /obj/item/clothing/suit/changeling), only_root_path = TRUE)
chameleon_action.initialize_disguises()
/obj/item/clothing/suit/chameleon/emp_act(severity)
chameleon_action.emp_randomise()
/obj/item/clothing/glasses/chameleon
name = "Optical Meson Scanner"
desc = "Used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting condition."
icon_state = "meson"
item_state = "meson"
origin_tech = "syndicate=2"
burn_state = FIRE_PROOF
armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
resistance_flags = 0
armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50)
var/datum/action/item_action/chameleon/change/chameleon_action
/obj/item/clothing/glasses/chameleon/New()
..()
var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
chameleon_action = new(src)
chameleon_action.chameleon_type = /obj/item/clothing/glasses
chameleon_action.chameleon_name = "Glasses"
chameleon_action.chameleon_blacklist = typecacheof(/obj/item/clothing/glasses/changeling, only_root_path = TRUE)
chameleon_action.initialize_disguises()
/obj/item/clothing/glasses/chameleon/emp_act(severity)
chameleon_action.emp_randomise()
/obj/item/clothing/gloves/chameleon
desc = "These gloves will protect the wearer from electric shock."
name = "insulated gloves"
icon_state = "yellow"
item_state = "ygloves"
burn_state = FIRE_PROOF
armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
resistance_flags = 0
armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50)
var/datum/action/item_action/chameleon/change/chameleon_action
/obj/item/clothing/gloves/chameleon/New()
..()
var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
chameleon_action = new(src)
chameleon_action.chameleon_type = /obj/item/clothing/gloves
chameleon_action.chameleon_name = "Gloves"
chameleon_action.chameleon_blacklist = typecacheof(list(/obj/item/clothing/gloves, /obj/item/clothing/gloves/color, /obj/item/clothing/gloves/changeling), only_root_path = TRUE)
chameleon_action.initialize_disguises()
/obj/item/clothing/gloves/chameleon/emp_act(severity)
chameleon_action.emp_randomise()
/obj/item/clothing/head/chameleon
name = "grey cap"
desc = "It's a baseball hat in a tasteful grey colour."
icon_state = "greysoft"
item_color = "grey"
burn_state = FIRE_PROOF
armor = list(melee = 5, bullet = 5, laser = 5, energy = 0, bomb = 0, bio = 0, rad = 0)
resistance_flags = 0
armor = list(melee = 5, bullet = 5, laser = 5, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50)
var/datum/action/item_action/chameleon/change/chameleon_action = null
var/datum/action/item_action/chameleon/change/chameleon_action
/obj/item/clothing/head/chameleon/New()
..()
chameleon_action = new(src)
chameleon_action.chameleon_type = /obj/item/clothing/head
chameleon_action.chameleon_name = "Hat"
chameleon_action.chameleon_blacklist = typecacheof(/obj/item/clothing/head/changeling, only_root_path = TRUE)
chameleon_action.initialize_disguises()
/obj/item/clothing/head/chameleon/emp_act(severity)
chameleon_action.emp_randomise()
/obj/item/clothing/head/chameleon/drone
// The camohat, I mean, holographic hat projection, is part of the
// drone itself.
flags = NODROP
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
// which means it offers no protection, it's just air and light
/obj/item/clothing/head/chameleon/drone/New()
@@ -251,8 +329,8 @@
desc = "A face-covering mask that can be connected to an air supply. While good for concealing your identity, it isn't good for blocking gas flow." //More accurate
icon_state = "gas_alt"
item_state = "gas_alt"
burn_state = FIRE_PROOF
armor = list(melee = 5, bullet = 5, laser = 5, energy = 0, bomb = 0, bio = 0, rad = 0)
resistance_flags = 0
armor = list(melee = 5, bullet = 5, laser = 5, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50)
flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR
@@ -262,15 +340,19 @@
var/vchange = 1
var/datum/action/item_action/chameleon/change/chameleon_action = null
var/datum/action/item_action/chameleon/change/chameleon_action
/obj/item/clothing/mask/chameleon/New()
..()
chameleon_action = new(src)
chameleon_action.chameleon_type = /obj/item/clothing/mask
chameleon_action.chameleon_name = "Mask"
chameleon_action.chameleon_blacklist = typecacheof(/obj/item/clothing/mask/changeling, only_root_path = TRUE)
chameleon_action.initialize_disguises()
/obj/item/clothing/mask/chameleon/emp_act(severity)
chameleon_action.emp_randomise()
/obj/item/clothing/mask/chameleon/attack_self(mob/user)
vchange = !vchange
user << "<span class='notice'>The voice changer is now [vchange ? "on" : "off"]!</span>"
@@ -279,7 +361,7 @@
/obj/item/clothing/mask/chameleon/drone
//Same as the drone chameleon hat, undroppable and no protection
flags = NODROP
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
// Can drones use the voice changer part? Let's not find out.
vchange = 0
@@ -291,7 +373,7 @@
var/datum/action/item_action/chameleon/drone/randomise/randomise_action = new(src)
randomise_action.UpdateButtonIcon()
/obj/item/clothing/mask/chameleon/attack_self(mob/user)
/obj/item/clothing/mask/chameleon/drone/attack_self(mob/user)
user << "<span class='notice'>The [src] does not have a voice changer.</span>"
/obj/item/clothing/shoes/chameleon
@@ -302,17 +384,23 @@
permeability_coefficient = 0.05
flags = NOSLIP
origin_tech = "syndicate=2"
burn_state = FIRE_PROOF
can_hold_items = 1
armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
resistance_flags = 0
pockets = /obj/item/weapon/storage/internal/pocket/shoes
armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50)
var/datum/action/item_action/chameleon/change/chameleon_action
/obj/item/clothing/shoes/chameleon/New()
..()
var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
chameleon_action = new(src)
chameleon_action.chameleon_type = /obj/item/clothing/shoes
chameleon_action.chameleon_name = "Shoes"
chameleon_action.chameleon_blacklist = typecacheof(/obj/item/clothing/shoes/changeling, only_root_path = TRUE)
chameleon_action.initialize_disguises()
/obj/item/clothing/shoes/chameleon/emp_act(severity)
chameleon_action.emp_randomise()
/obj/item/weapon/gun/energy/laser/chameleon
name = "practice laser gun"
desc = "A modified version of the basic laser gun, this one fires less concentrated energy bolts designed for target practice."
@@ -322,41 +410,59 @@
pin = /obj/item/device/firing_pin
cell_type = /obj/item/weapon/stock_parts/cell/bluespace
var/datum/action/item_action/chameleon/change/chameleon_action
/obj/item/weapon/gun/energy/laser/chameleon/New()
..()
var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
chameleon_action = new(src)
chameleon_action.chameleon_type = /obj/item/weapon/gun
chameleon_action.chameleon_name = "Gun"
chameleon_action.chameleon_blacklist = typesof(/obj/item/weapon/gun/magic)
chameleon_action.chameleon_blacklist = typecacheof(/obj/item/weapon/gun/magic, ignore_root_path = FALSE)
chameleon_action.initialize_disguises()
/obj/item/weapon/gun/energy/laser/chameleon/emp_act(severity)
chameleon_action.emp_randomise()
/obj/item/weapon/storage/backpack/chameleon
name = "chameleon backpack"
name = "backpack"
var/datum/action/item_action/chameleon/change/chameleon_action
/obj/item/weapon/storage/backpack/chameleon/New()
..()
var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
chameleon_action = new(src)
chameleon_action.chameleon_type = /obj/item/weapon/storage/backpack
chameleon_action.chameleon_name = "Backpack"
chameleon_action.initialize_disguises()
/obj/item/weapon/storage/backpack/chameleon/emp_act(severity)
chameleon_action.emp_randomise()
/obj/item/device/radio/headset/chameleon
name = "chameleon headset"
name = "radio headset"
var/datum/action/item_action/chameleon/change/chameleon_action
/obj/item/device/radio/headset/chameleon/New()
..()
var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
chameleon_action = new(src)
chameleon_action.chameleon_type = /obj/item/device/radio/headset
chameleon_action.chameleon_name = "Headset"
chameleon_action.initialize_disguises()
/obj/item/device/radio/headset/chameleon/emp_act(severity)
chameleon_action.emp_randomise()
/obj/item/device/pda/chameleon
name = "chameleon PDA"
name = "PDA"
var/datum/action/item_action/chameleon/change/chameleon_action
/obj/item/device/pda/chameleon/New()
..()
var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
chameleon_action = new(src)
chameleon_action.chameleon_type = /obj/item/device/pda
chameleon_action.chameleon_name = "PDA"
chameleon_action.chameleon_blacklist = list(/obj/item/device/pda/ai)
chameleon_action.chameleon_blacklist = typecacheof(list(/obj/item/device/pda/heads, /obj/item/device/pda/ai, /obj/item/device/pda/ai/pai), only_root_path = TRUE)
chameleon_action.initialize_disguises()
/obj/item/device/pda/chameleon/emp_act(severity)
chameleon_action.emp_randomise()
+317 -128
View File
@@ -1,12 +1,18 @@
/obj/item/clothing
name = "clothing"
burn_state = FLAMMABLE
var/flash_protect = 0 //Malk: What level of bright light protection item has. 1 = Flashers, Flashes, & Flashbangs | 2 = Welding | -1 = OH GOD WELDING BURNT OUT MY RETINAS
var/tint = 0 //Malk: Sets the item's level of visual impairment tint, normally set to the same as flash_protect
var/up = 0 // but seperated to allow items to protect but not impair vision, like space helmets
var/visor_flags = 0 // flags that are added/removed when an item is adjusted up/down
var/visor_flags_inv = 0 // same as visor_flags, but for flags_inv
var/visor_flags_cover = 0 // same as above, but for flags_cover
resistance_flags = FLAMMABLE
obj_integrity = 200
max_integrity = 200
integrity_failure = 80
var/damaged_clothes = 0 //similar to machine's BROKEN stat and structure's broken var
var/flash_protect = 0 //What level of bright light protection item has. 1 = Flashers, Flashes, & Flashbangs | 2 = Welding | -1 = OH GOD WELDING BURNT OUT MY RETINAS
var/tint = 0 //Sets the item's level of visual impairment tint, normally set to the same as flash_protect
var/up = 0 //but seperated to allow items to protect but not impair vision, like space helmets
var/visor_flags = 0 //flags that are added/removed when an item is adjusted up/down
var/visor_flags_inv = 0 //same as visor_flags, but for flags_inv
var/visor_flags_cover = 0 //same as above, but for flags_cover
//what to toggle when toggled with weldingvisortoggle()
var/visor_vars_to_toggle = VISOR_FLASHPROTECT | VISOR_TINT | VISOR_VISIONFLAGS | VISOR_DARKNESSVIEW | VISOR_INVISVIEW
lefthand_file = 'icons/mob/inhands/clothing_lefthand.dmi'
righthand_file = 'icons/mob/inhands/clothing_righthand.dmi'
var/alt_desc = null
@@ -24,10 +30,86 @@
var/list/user_vars_to_edit = list() //VARNAME = VARVALUE eg: "name" = "butts"
var/list/user_vars_remembered = list() //Auto built by the above + dropped() + equipped()
var/obj/item/weapon/storage/internal/pocket/pockets = null
/obj/item/clothing/New()
..()
if(ispath(pockets))
pockets = new pockets(src)
/obj/item/clothing/MouseDrop(atom/over_object)
var/mob/M = usr
if(pockets && over_object == M)
return pockets.MouseDrop(over_object)
if(istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech
return
if(!M.restrained() && !M.stat && loc == M && istype(over_object, /obj/screen/inventory/hand))
var/obj/screen/inventory/hand/H = over_object
if(!M.temporarilyRemoveItemFromInventory(src))
return
if(!M.put_in_hand(src, H.held_index))
qdel(src)
return
add_fingerprint(usr)
/obj/item/clothing/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback)
if(pockets)
pockets.close_all()
return ..()
/obj/item/clothing/attack_hand(mob/user)
if(pockets && pockets.priority && ismob(loc))
//If we already have the pockets open, close them.
if (user.s_active == pockets)
pockets.close(user)
//Close whatever the user has open and show them the pockets.
else
if (user.s_active)
user.s_active.close(user)
pockets.orient2hud(user)
pockets.show_to(user)
else
return ..()
/obj/item/clothing/attackby(obj/item/W, mob/user, params)
if(damaged_clothes && istype(W, /obj/item/stack/sheet/cloth))
var/obj/item/stack/sheet/cloth/C = W
C.use(1)
update_clothes_damaged_state(FALSE)
obj_integrity = max_integrity
user << "<span class='notice'>You fix the damages on [src] with [C].</span>"
return 1
if(pockets)
var/i = pockets.attackby(W, user, params)
if(i)
return i
return ..()
/obj/item/clothing/AltClick(mob/user)
if(pockets && pockets.quickdraw && pockets.contents.len && !user.incapacitated())
var/obj/item/I = pockets.contents[1]
if(!I)
return
pockets.remove_from_storage(I, get_turf(src))
if(!user.put_in_hands(I))
user << "<span class='notice'>You fumble for [I] and it falls on the floor.</span>"
return 1
user.visible_message("<span class='warning'>[user] draws [I] from [src]!</span>", "<span class='notice'>You draw [I] from [src].</span>")
return 1
else
return ..()
/obj/item/clothing/Destroy()
if(isliving(loc))
dropped(loc)
if(pockets)
qdel(pockets)
pockets = null
user_vars_remembered = null //Oh god somebody put REFERENCES in here? not to worry, we'll clean it up
return ..()
@@ -52,14 +134,42 @@
user.vars[variable] = user_vars_to_edit[variable]
/obj/item/clothing/examine(mob/user)
..()
if(damaged_clothes)
user << "<span class='warning'>It looks damaged!</span>"
/obj/item/clothing/obj_break(damage_flag)
if(!damaged_clothes)
update_clothes_damaged_state(TRUE)
var/list/damaged_clothes_icons = list()
/obj/item/clothing/proc/update_clothes_damaged_state(damaging = TRUE)
var/index = "\ref[initial(icon)]-[initial(icon_state)]"
if(damaging)
damaged_clothes = 1
var/icon/damaged_clothes_icon = damaged_clothes_icons[index]
if(!damaged_clothes_icon)
damaged_clothes_icon = icon(initial(icon), initial(icon_state), , 1) //we only want to apply damaged effect to the initial icon_state for each object
damaged_clothes_icon.Blend("#fff", ICON_ADD) //fills the icon_state with white (except where it's transparent)
damaged_clothes_icon.Blend(icon('icons/effects/item_damage.dmi', "itemdamaged"), ICON_MULTIPLY) //adds damage effect and the remaining white areas become transparant
damaged_clothes_icon = fcopy_rsc(damaged_clothes_icon)
damaged_clothes_icons[index] = damaged_clothes_icon
add_overlay(damaged_clothes_icon, 1)
else
damaged_clothes = 0
overlays -= damaged_clothes_icons[index]
priority_overlays -= damaged_clothes_icons[index]
//Ears: currently only used for headsets and earmuffs
/obj/item/clothing/ears
name = "ears"
w_class = 1
w_class = WEIGHT_CLASS_TINY
throwforce = 0
slot_flags = SLOT_EARS
burn_state = FIRE_PROOF
resistance_flags = 0
/obj/item/clothing/ears/earmuffs
name = "earmuffs"
@@ -69,13 +179,13 @@
flags = EARBANGPROTECT
strip_delay = 15
put_on_delay = 25
burn_state = FLAMMABLE
resistance_flags = FLAMMABLE
//Glasses
/obj/item/clothing/glasses
name = "glasses"
icon = 'icons/obj/clothing/glasses.dmi'
w_class = 2
w_class = WEIGHT_CLASS_SMALL
flags_cover = GLASSESCOVERSEYES
slot_flags = SLOT_EYES
var/vision_flags = 0
@@ -87,7 +197,7 @@
var/vision_correction = 0 //does wearing these glasses correct some of our vision defects?
strip_delay = 20
put_on_delay = 25
burn_state = FIRE_PROOF
resistance_flags = 0
/*
SEE_SELF // can see self, no matter what
SEE_MOBS // can see all mobs, no matter what
@@ -103,7 +213,7 @@ BLIND // can't see anything
/obj/item/clothing/gloves
name = "gloves"
gender = PLURAL //Carn: for grammarically correct text-parsing
w_class = 2
w_class = WEIGHT_CLASS_SMALL
icon = 'icons/obj/clothing/gloves.dmi'
siemens_coefficient = 0.50
body_parts_covered = HANDS
@@ -114,12 +224,19 @@ BLIND // can't see anything
put_on_delay = 40
/obj/item/clothing/gloves/worn_overlays(var/isinhands = FALSE)
/obj/item/clothing/gloves/worn_overlays(isinhands = FALSE)
. = list()
if(!isinhands)
if(damaged_clothes)
. += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damagedgloves")
if(blood_DNA)
. += image("icon"='icons/effects/blood.dmi', "icon_state"="bloodyhands")
/obj/item/clothing/gloves/update_clothes_damaged_state(damaging = TRUE)
..()
if(ismob(loc))
var/mob/M = loc
M.update_inv_gloves()
// Called just before an attack_hand(), in mob/UnarmedAttack()
/obj/item/clothing/gloves/proc/Touch(atom/A, proximity)
@@ -135,12 +252,40 @@ BLIND // can't see anything
var/can_toggle = null
/obj/item/clothing/head/worn_overlays(var/isinhands = FALSE)
/obj/item/clothing/head/worn_overlays(isinhands = FALSE)
. = list()
if(!isinhands)
if(damaged_clothes)
. += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damagedhelmet")
if(blood_DNA)
. += image("icon"='icons/effects/blood.dmi', "icon_state"="helmetblood")
/obj/item/clothing/head/update_clothes_damaged_state(damaging = TRUE)
..()
if(ismob(loc))
var/mob/M = loc
M.update_inv_head()
//Neck
/obj/item/clothing/neck
name = "necklace"
icon = 'icons/obj/clothing/neck.dmi'
body_parts_covered = NECK
slot_flags = SLOT_NECK
strip_delay = 40
put_on_delay = 40
/obj/item/clothing/neck/worn_overlays(isinhands = FALSE)
. = list()
if(!isinhands)
if(body_parts_covered & HEAD)
if(damaged_clothes)
. += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damagedmask")
if(blood_DNA)
. += image("icon"='icons/effects/blood.dmi', "icon_state"="maskblood")
//Mask
/obj/item/clothing/mask
name = "mask"
@@ -153,11 +298,21 @@ BLIND // can't see anything
var/adjusted_flags = null
/obj/item/clothing/mask/worn_overlays(var/isinhands = FALSE)
/obj/item/clothing/mask/worn_overlays(isinhands = FALSE)
. = list()
if(!isinhands)
if(blood_DNA && (body_parts_covered & HEAD))
. += image("icon"='icons/effects/blood.dmi', "icon_state"="maskblood")
if(body_parts_covered & HEAD)
if(damaged_clothes)
. += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damagedmask")
if(blood_DNA)
. += image("icon"='icons/effects/blood.dmi', "icon_state"="maskblood")
/obj/item/clothing/mask/update_clothes_damaged_state(damaging = TRUE)
..()
if(ismob(loc))
var/mob/M = loc
M.update_inv_wear_mask()
//Override this to modify speech like luchador masks.
/obj/item/clothing/mask/proc/speechModification(message)
@@ -209,12 +364,8 @@ BLIND // can't see anything
slowdown = SHOES_SLOWDOWN
var/blood_state = BLOOD_STATE_NOT_BLOODY
var/list/bloody_shoes = list(BLOOD_STATE_HUMAN = 0,BLOOD_STATE_XENO = 0, BLOOD_STATE_OIL = 0, BLOOD_STATE_NOT_BLOODY = 0)
var/can_hold_items = 0//if set to 1, the shoe can hold knives and edaggers
var/obj/held_item
var/list/valid_held_items = list(/obj/item/weapon/kitchen/knife, /obj/item/weapon/pen, /obj/item/weapon/switchblade, /obj/item/weapon/scalpel, /obj/item/weapon/reagent_containers/syringe, /obj/item/weapon/dnainjector)//can hold both regular pens and energy daggers. made for your every-day tactical librarians/murderers.
/obj/item/clothing/shoes/worn_overlays(var/isinhands = FALSE)
/obj/item/clothing/shoes/worn_overlays(isinhands = FALSE)
. = list()
if(!isinhands)
var/bloody = 0
@@ -223,9 +374,16 @@ BLIND // can't see anything
else
bloody = bloody_shoes[BLOOD_STATE_HUMAN]
if(damaged_clothes)
. += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damagedshoe")
if(bloody)
. += image("icon"='icons/effects/blood.dmi', "icon_state"="shoeblood")
/obj/item/clothing/shoes/update_clothes_damaged_state(damaging = TRUE)
..()
if(ismob(loc))
var/mob/M = loc
M.update_inv_shoes()
/obj/item/clothing/shoes/clean_blood()
..()
@@ -235,33 +393,6 @@ BLIND // can't see anything
var/mob/M = loc
M.update_inv_shoes()
/obj/item/clothing/shoes/attackby(obj/item/I, mob/user, params)
..()
if(!can_hold_items)
return
if(held_item)
user << "<span class='notice'>There's already something in [src].</span>"
return
if(is_type_in_list(I, valid_held_items))//can hold both regular pens and energy daggers. made for your every-day tactical librarians/murderers.
if(I.w_class > 2)//if the object is too big (like if it's a cleaver or an extended edagger) it wont fit
user << "<span class='notice'>[I] is currently too big to fit into [src]. </span>"
return
if(!user.drop_item())
return
I.loc = src
held_item = I
user << "<span class='notice'>You discreetly slip [I] into [src]. Alt-click [src] to remove it.</span>"
/obj/item/clothing/shoes/AltClick(mob/user)
if(user.incapacitated() || !held_item || !can_hold_items)
return
if(!user.put_in_hands(held_item))
user << "<span class='notice'>You fumble for [held_item] and it falls on the floor.</span>"
return 1
held_item = null
user.visible_message("<span class='warning'>[user] draws [held_item] from their shoes!</span>", "<span class='notice'>You draw [held_item] from [src].</span>")
held_item = null
/obj/item/proc/negates_gravity()
return 0
@@ -271,18 +402,26 @@ BLIND // can't see anything
name = "suit"
var/fire_resist = T0C+100
allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
slot_flags = SLOT_OCLOTHING
var/blood_overlay_type = "suit"
var/togglename = null
/obj/item/clothing/suit/worn_overlays(var/isinhands = FALSE)
/obj/item/clothing/suit/worn_overlays(isinhands = FALSE)
. = list()
if(!isinhands)
if(damaged_clothes)
. += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damaged[blood_overlay_type]")
if(blood_DNA)
. += image("icon"='icons/effects/blood.dmi', "icon_state"="[blood_overlay_type]blood")
/obj/item/clothing/suit/update_clothes_damaged_state(damaging = TRUE)
..()
if(ismob(loc))
var/mob/M = loc
M.update_inv_wear_suit()
//Spacesuit
//Note: Everything in modules/clothing/spacesuits should have the entire suit grouped together.
// Meaning the the suit is defined directly after the corrisponding helmet. Just like below!
@@ -293,7 +432,7 @@ BLIND // can't see anything
flags = STOPSPRESSUREDMAGE | THICKMATERIAL
item_state = "spaceold"
permeability_coefficient = 0.01
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50, fire = 80, acid = 70)
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
cold_protection = HEAD
min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT
@@ -303,21 +442,21 @@ BLIND // can't see anything
strip_delay = 50
put_on_delay = 50
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
burn_state = FIRE_PROOF
resistance_flags = 0
/obj/item/clothing/suit/space
name = "space suit"
desc = "A suit that protects against low pressure environments. Has a big 13 on the back."
icon_state = "spaceold"
item_state = "s_suit"
w_class = 4//bulky item
w_class = WEIGHT_CLASS_BULKY
gas_transfer_coefficient = 0.01
permeability_coefficient = 0.02
flags = STOPSPRESSUREDMAGE | THICKMATERIAL
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals)
slowdown = 1
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50, fire = 80, acid = 70)
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
cold_protection = CHEST | GROIN | LEGS | FEET | ARMS | HANDS
min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT
@@ -325,7 +464,7 @@ BLIND // can't see anything
max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT
strip_delay = 80
put_on_delay = 80
burn_state = FIRE_PROOF
resistance_flags = 0
//Under clothing
@@ -335,72 +474,123 @@ BLIND // can't see anything
body_parts_covered = CHEST|GROIN|LEGS|ARMS
permeability_coefficient = 0.90
slot_flags = SLOT_ICLOTHING
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
var/fitted = FEMALE_UNIFORM_FULL // For use in alternate clothing styles for women
var/has_sensor = 1//For the crew computer 2 = unable to change mode
var/random_sensor = 1
var/sensor_mode = 0 /* 1 = Report living/dead, 2 = Report detailed damages, 3 = Report location */
var/can_adjust = 1
var/adjusted = 0
var/adjusted = NORMAL_STYLE
var/alt_covers_chest = 0 // for adjusted/rolled-down jumpsuits, 0 = exposes chest and arms, 1 = exposes arms only
var/obj/item/clothing/tie/hastie = null
var/mutantrace_variation = NO_MUTANTRACE_VARIATION //Are there special sprites for specific situations? Don't use this unless you need to.
/obj/item/clothing/under/worn_overlays(var/isinhands = FALSE)
/obj/item/clothing/under/worn_overlays(isinhands = FALSE)
. = list()
if(!isinhands)
if(damaged_clothes)
. += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damageduniform")
if(blood_DNA)
. += image("icon"='icons/effects/blood.dmi', "icon_state"="uniformblood")
if(hastie)
var/tie_color = hastie.item_color
if(!tie_color)
tie_color = hastie.icon_state
. += image("icon"='icons/mob/ties.dmi', "icon_state"="[tie_color]")
var/image/tI = image("icon"='icons/mob/ties.dmi', "icon_state"="[tie_color]")
tI.alpha = hastie.alpha
tI.color = hastie.color
. += tI
/obj/item/clothing/under/update_clothes_damaged_state(damaging = TRUE)
..()
if(ismob(loc))
var/mob/M = loc
M.update_inv_w_uniform()
/obj/item/clothing/under/New()
if(random_sensor)
//make the sensor mode favor higher levels, except coords.
sensor_mode = pick(0, 1, 1, 2, 2, 2, 3, 3)
adjusted = 0
adjusted = NORMAL_STYLE
..()
/obj/item/clothing/under/equipped(mob/user, slot)
..()
if(adjusted)
adjusted = NORMAL_STYLE
fitted = initial(fitted)
if(!alt_covers_chest)
body_parts_covered |= CHEST
if(mutantrace_variation && ishuman(user))
var/mob/living/carbon/human/H = user
if(DIGITIGRADE in H.dna.species.species_traits)
adjusted = DIGITIGRADE_STYLE
H.update_inv_w_uniform()
if(hastie && slot != slot_hands)
hastie.on_uniform_equip(src, user)
/obj/item/clothing/under/dropped(mob/user)
if(hastie)
hastie.on_uniform_dropped(src, user)
..()
/obj/item/clothing/under/attackby(obj/item/I, mob/user, params)
attachTie(I, user)
..()
if(!attachTie(I, user))
..()
/obj/item/clothing/under/proc/attachTie(obj/item/I, mob/user, notifyAttach = 1)
if(istype(I, /obj/item/clothing/tie))
var/obj/item/clothing/tie/T = I
if(hastie)
if(user)
user << "<span class='warning'>[src] already has an accessory.</span>"
return 0
else
if(user)
if(!user.drop_item())
return
hastie = I
I.loc = src
if(user && !user.drop_item())
return
if(!T.attach(src, user))
return
if(user && notifyAttach)
user << "<span class='notice'>You attach [I] to [src].</span>"
I.transform *= 0.5 //halve the size so it doesn't overpower the under
I.pixel_x += 8
I.pixel_y -= 8
I.layer = FLOAT_LAYER
add_overlay(I)
if(istype(loc, /mob/living/carbon/human))
if(ishuman(loc))
var/mob/living/carbon/human/H = loc
H.update_inv_w_uniform()
return 1
/obj/item/clothing/under/proc/removetie(mob/user)
if(!isliving(user))
return
if(!can_use(user))
return
if(hastie)
var/obj/item/clothing/tie/T = hastie
hastie.detach(src, user)
if(user.put_in_hands(T))
user << "<span class='notice'>You detach [T] from [src].</span>"
else
user << "<span class='notice'>You detach [T] from [src] and it falls on the floor.</span>"
if(ishuman(loc))
var/mob/living/carbon/human/H = loc
H.update_inv_w_uniform()
/obj/item/clothing/under/examine(mob/user)
..()
switch(src.sensor_mode)
if(can_adjust)
if(adjusted == ALT_STYLE)
user << "Alt-click on [src] to wear it normally."
else
user << "Alt-click on [src] to wear it casually."
switch(sensor_mode)
if(0)
user << "Its sensors appear to be disabled."
if(1)
@@ -453,7 +643,7 @@ BLIND // can't see anything
if(3)
usr << "<span class='notice'>Your suit will now report your exact vital lifesigns as well as your coordinate position.</span>"
if(istype(loc,/mob/living/carbon/human))
if(ishuman(loc))
var/mob/living/carbon/human/H = loc
if(H.w_uniform == src)
H.update_suit_sensors()
@@ -461,12 +651,17 @@ BLIND // can't see anything
..()
/obj/item/clothing/under/AltClick(mob/user)
..()
if(..())
return 1
if(!user.canUseTopic(src, be_close=TRUE))
user << "<span class='warning'>You can't do that right now!</span>"
return
else
rolldown()
if(hastie)
removetie(user)
else
rolldown()
/obj/item/clothing/under/verb/jumpsuit_adjust()
set name = "Adjust Jumpsuit Style"
@@ -484,73 +679,67 @@ BLIND // can't see anything
usr << "<span class='notice'>You adjust the suit to wear it more casually.</span>"
else
usr << "<span class='notice'>You adjust the suit back to normal.</span>"
usr.update_inv_w_uniform()
if(ishuman(usr))
var/mob/living/carbon/human/H = usr
H.update_inv_w_uniform()
H.update_body()
/obj/item/clothing/under/proc/toggle_jumpsuit_adjust()
if(adjusted == DIGITIGRADE_STYLE)
return
adjusted = !adjusted
if(adjusted)
if(fitted != FEMALE_UNIFORM_TOP)
fitted = NO_FEMALE_UNIFORM
if (alt_covers_chest) // for the special snowflake suits that don't expose the chest when adjusted
body_parts_covered = CHEST|GROIN|LEGS
else
body_parts_covered = GROIN|LEGS
if(!alt_covers_chest) // for the special snowflake suits that expose the chest when adjusted
body_parts_covered &= ~CHEST
else
fitted = initial(fitted)
body_parts_covered = CHEST|GROIN|LEGS|ARMS
if(!alt_covers_chest)
body_parts_covered |= CHEST
return adjusted
/obj/item/clothing/under/examine(mob/user)
..()
if(src.adjusted)
user << "Alt-click on [src] to wear it normally."
else
user << "Alt-click on [src] to wear it casually."
/obj/item/clothing/proc/weldingvisortoggle(mob/user) //proc to toggle welding visors on helmets, masks, goggles, etc.
if(!can_use(user))
return FALSE
/obj/item/clothing/under/verb/removetie()
set name = "Remove Accessory"
set category = "Object"
set src in usr
if(!istype(usr, /mob/living))
return
if(!can_use(usr))
return
visor_toggling()
if(hastie)
hastie.transform *= 2
hastie.pixel_x -= 8
hastie.pixel_y += 8
hastie.layer = initial(hastie.layer)
overlays = null
usr.put_in_hands(hastie)
hastie = null
user << "<span class='notice'>You adjust \the [src] [up ? "up" : "down"].</span>"
if(istype(loc, /mob/living/carbon/human))
var/mob/living/carbon/human/H = loc
H.update_inv_w_uniform()
/obj/item/clothing/proc/weldingvisortoggle() //Malk: proc to toggle welding visors on helmets, masks, goggles, etc.
if(!can_use(usr))
return
up ^= 1
flags ^= visor_flags
flags_inv ^= visor_flags_inv
flags_cover ^= initial(flags_cover)
icon_state = "[initial(icon_state)][up ? "up" : ""]"
usr << "<span class='notice'>You adjust \the [src] [up ? "up" : "down"].</span>"
flash_protect ^= initial(flash_protect)
tint ^= initial(tint)
if(istype(usr, /mob/living/carbon))
var/mob/living/carbon/C = usr
if(iscarbon(user))
var/mob/living/carbon/C = user
C.head_update(src, forced = 1)
for(var/X in actions)
var/datum/action/A = X
A.UpdateButtonIcon()
return TRUE
/obj/item/clothing/proc/visor_toggling() //handles all the actual toggling of flags
up = !up
flags ^= visor_flags
flags_inv ^= visor_flags_inv
flags_cover ^= initial(flags_cover)
icon_state = "[initial(icon_state)][up ? "up" : ""]"
if(visor_vars_to_toggle & VISOR_FLASHPROTECT)
flash_protect ^= initial(flash_protect)
if(visor_vars_to_toggle & VISOR_TINT)
tint ^= initial(tint)
/obj/item/clothing/proc/can_use(mob/user)
if(user && ismob(user))
if(!user.incapacitated())
return 1
return 0
/obj/item/clothing/obj_destruction(damage_flag)
if(damage_flag == "bomb" || damage_flag == "melee")
var/turf/T = get_turf(src)
spawn(1) //so the shred survives potential turf change from the explosion.
var/obj/effect/decal/cleanable/shreds/Shreds = new(T)
Shreds.desc = "The sad remains of what used to be [name]."
deconstruct(FALSE)
else
..()
@@ -42,7 +42,7 @@
if(!mode)
return
if(!istype(loc,/mob/living/carbon/human))
if(!ishuman(loc))
invis_update()
return
@@ -67,7 +67,7 @@
O.invisibility = 0
invis_objects += O
addtimer(src, "invis_update", 5)
addtimer(CALLBACK(src, .proc/invis_update), 5)
/obj/item/clothing/glasses/meson/engine/proc/invis_update()
for(var/obj/O in invis_objects)
@@ -78,7 +78,7 @@
O.invisibility = INVISIBILITY_MAXIMUM
/obj/item/clothing/glasses/meson/engine/proc/t_ray_on()
if(!istype(loc,/mob/living/carbon/human))
if(!ishuman(loc))
return 0
var/mob/living/carbon/human/user = loc
+93 -72
View File
@@ -1,6 +1,21 @@
/obj/item/clothing/glasses
name = "glasses"
materials = list(MAT_GLASS = 250)
var/glass_colour_type = null //colors your vision when worn
/obj/item/clothing/glasses/visor_toggling()
..()
if(visor_vars_to_toggle & VISOR_VISIONFLAGS)
vision_flags ^= initial(vision_flags)
if(visor_vars_to_toggle & VISOR_DARKNESSVIEW)
darkness_view ^= initial(darkness_view)
if(visor_vars_to_toggle & VISOR_INVISVIEW)
invis_view ^= initial(invis_view)
/obj/item/clothing/glasses/weldingvisortoggle(mob/user)
. = ..()
if(. && user)
user.update_sight()
//called when thermal glasses are emped.
/obj/item/clothing/glasses/proc/thermal_overload()
@@ -9,7 +24,7 @@
if(!(H.disabilities & BLIND))
if(H.glasses == src)
H << "<span class='danger'>The [src] overloads and blinds you!</span>"
H.flash_eyes(visual = 1)
H.flash_act(visual = 1)
H.blind_eyes(3)
H.blur_eyes(5)
H.adjust_eye_damage(5)
@@ -23,6 +38,7 @@
darkness_view = 2
vision_flags = SEE_TURFS
invis_view = SEE_INVISIBLE_MINIMUM
glass_colour_type = /datum/client_colour/glass_colour/lightgreen
/obj/item/clothing/glasses/meson/night
name = "Night Vision Optical Meson Scanner"
@@ -31,6 +47,7 @@
item_state = "nvgmeson"
origin_tech = "magnets=4;engineering=5;plasmatech=4"
darkness_view = 8
glass_colour_type = /datum/client_colour/glass_colour/green
/obj/item/clothing/glasses/meson/gar
name = "gar mesons"
@@ -52,6 +69,9 @@
origin_tech = "magnets=2;engineering=1"
scan_reagents = 1 //You can see reagents while wearing science goggles
actions_types = list(/datum/action/item_action/toggle_research_scanner)
glass_colour_type = /datum/client_colour/glass_colour/purple
resistance_flags = ACID_PROOF
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 100)
/obj/item/clothing/glasses/science/item_action_slot_check(slot)
if(slot == slot_glasses)
@@ -65,6 +85,7 @@
origin_tech = "materials=4;magnets=4;plasmatech=4;engineering=4"
darkness_view = 8
invis_view = SEE_INVISIBLE_MINIMUM
glass_colour_type = /datum/client_colour/glass_colour/green
/obj/item/clothing/glasses/eyepatch
name = "eyepatch"
@@ -85,6 +106,7 @@
item_state = "glasses"
origin_tech = "magnets=3;engineering=3"
vision_flags = SEE_OBJS
glass_colour_type = /datum/client_colour/glass_colour/lightblue
/obj/item/clothing/glasses/material/mining
name = "Optical Material Scanner"
@@ -105,6 +127,7 @@
attack_verb = list("sliced")
hitsound = 'sound/weapons/bladeslice.ogg'
sharpness = IS_SHARP
glass_colour_type = /datum/client_colour/glass_colour/lightgreen
/obj/item/clothing/glasses/regular
name = "Prescription Glasses"
@@ -119,11 +142,7 @@
icon_state = "hipster_glasses"
item_state = "hipster_glasses"
/obj/item/clothing/glasses/gglasses
name = "Green Glasses"
desc = "Forest green glasses, like the kind you'd wear when hatching a nasty scheme."
icon_state = "gglasses"
item_state = "gglasses"
//Here lies green glasses, so ugly they died. RIP
/obj/item/clothing/glasses/sunglasses
desc = "Strangely ancient technology used to help provide rudimentary eye cover. Enhanced shielding blocks many flashes."
@@ -133,7 +152,7 @@
darkness_view = 1
flash_protect = 1
tint = 1
glass_colour_type = /datum/client_colour/glass_colour/gray
dog_fashion = /datum/dog_fashion/head
/obj/item/clothing/glasses/sunglasses/reagent
@@ -173,6 +192,7 @@
attack_verb = list("sliced")
hitsound = 'sound/weapons/bladeslice.ogg'
sharpness = IS_SHARP
glass_colour_type = /datum/client_colour/glass_colour/orange
/obj/item/clothing/glasses/sunglasses/gar/supergar
desc = "We evolve past the person we were a minute before. Little by little we advance with each turn. That's how a drill works!"
@@ -181,6 +201,7 @@
item_state = "gar"
force = 12
throwforce = 12
glass_colour_type = /datum/client_colour/glass_colour/red
/obj/item/clothing/glasses/welding
name = "welding goggles"
@@ -191,20 +212,13 @@
materials = list(MAT_METAL = 250)
flash_protect = 2
tint = 2
visor_vars_to_toggle = VISOR_FLASHPROTECT | VISOR_TINT
flags_cover = GLASSESCOVERSEYES
visor_flags_inv = HIDEEYES
glass_colour_type = /datum/client_colour/glass_colour/gray
/obj/item/clothing/glasses/welding/attack_self()
toggle()
/obj/item/clothing/glasses/welding/verb/toggle()
set category = "Object"
set name = "Adjust welding goggles"
set src in usr
weldingvisortoggle()
/obj/item/clothing/glasses/welding/attack_self(mob/user)
weldingvisortoggle(user)
/obj/item/clothing/glasses/sunglasses/blindfold
@@ -212,7 +226,6 @@
desc = "Covers the eyes, preventing sight."
icon_state = "blindfold"
item_state = "blindfold"
// vision_flags = BLIND
flash_protect = 2
tint = 3 // to make them blind
@@ -230,6 +243,7 @@
vision_flags = SEE_MOBS
invis_view = 2
flash_protect = 0
glass_colour_type = /datum/client_colour/glass_colour/red
/obj/item/clothing/glasses/thermal/emp_act(severity)
thermal_overload()
@@ -237,12 +251,23 @@
/obj/item/clothing/glasses/thermal/syndi //These are now a traitor item, concealed as mesons. -Pete
name = "Chameleon Thermals"
desc = "A pair of thermal optic goggles with an onboard chameleon generator. Toggle to disguise."
desc = "A pair of thermal optic goggles with an onboard chameleon generator."
origin_tech = "magnets=3;syndicate=4"
flash_protect = -1
/obj/item/clothing/glasses/thermal/syndi/attack_self(mob/user)
chameleon(user)
var/datum/action/item_action/chameleon/change/chameleon_action
/obj/item/clothing/glasses/thermal/syndi/New()
..()
chameleon_action = new(src)
chameleon_action.chameleon_type = /obj/item/clothing/glasses
chameleon_action.chameleon_name = "Glasses"
chameleon_action.chameleon_blacklist = typecacheof(/obj/item/clothing/glasses/changeling, only_root_path = TRUE)
chameleon_action.initialize_disguises()
/obj/item/clothing/glasses/thermal/syndi/emp_act(severity)
..()
chameleon_action.emp_randomise()
/obj/item/clothing/glasses/thermal/monocle
name = "Thermoncle"
@@ -273,12 +298,14 @@
desc = "A sweet pair of orange shades."
icon_state = "orangeglasses"
item_state = "orangeglasses"
glass_colour_type = /datum/client_colour/glass_colour/lightorange
/obj/item/clothing/glasses/red
name = "red glasses"
desc = "A sweet pair of red shades."
desc = "Hey, you're looking good, senpai!"
icon_state = "redglasses"
item_state = "redglasses"
glass_colour_type = /datum/client_colour/glass_colour/red
/obj/item/clothing/glasses/godeye
name = "eye of god"
@@ -291,54 +318,48 @@
flags = NODROP
invis_view = SEE_INVISIBLE_MINIMUM
/obj/item/clothing/glasses/proc/chameleon(var/mob/user)
var/input_glasses = input(user, "Choose a piece of eyewear to disguise as.", "Choose glasses style.") as null|anything in list("Sunglasses", "Medical HUD", "Mesons", "Science Goggles", "Glasses", "Security Sunglasses","Eyepatch","Welding","Gar")
/obj/item/clothing/glasses/godeye/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, src) && W != src && W.loc == user)
if(W.icon_state == "godeye")
W.icon_state = "doublegodeye"
W.item_state = "doublegodeye"
W.desc = "A pair of strange eyes, said to have been torn from an omniscient creature that used to roam the wastes. There's no real reason to have two, but that isn't stopping you."
if(iscarbon(user))
var/mob/living/carbon/C = user
C.update_inv_wear_mask()
else
user << "<span class='notice'>The eye winks at you and vanishes into the abyss, you feel really unlucky.</span>"
qdel(src)
..()
if(user && src in user.contents)
switch(input_glasses)
if("Sunglasses")
desc = "Strangely ancient technology used to help provide rudimentary eye cover. Enhanced shielding blocks many flashes."
name = "sunglasses"
icon_state = "sun"
item_state = "sunglasses"
if("Medical HUD")
name = "Health Scanner HUD"
desc = "A heads-up display that scans the humans in view and provides accurate data about their health status."
icon_state = "healthhud"
item_state = "healthhud"
if("Mesons")
name = "Optical Meson Scanner"
desc = "Used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting condition."
icon_state = "meson"
item_state = "meson"
if("Science Goggles")
name = "Science Goggles"
desc = "A pair of snazzy goggles used to protect against chemical spills."
icon_state = "purple"
item_state = "glasses"
if("Glasses")
name = "Prescription Glasses"
desc = "Made by Nerd. Co."
icon_state = "glasses"
item_state = "glasses"
if("Security Sunglasses")
name = "HUDSunglasses"
desc = "Sunglasses with a HUD."
icon_state = "sunhud"
item_state = "sunglasses"
if("Eyepatch")
name = "eyepatch"
desc = "Yarr."
icon_state = "eyepatch"
item_state = "eyepatch"
if("Welding")
name = "welding goggles"
desc = "Protects the eyes from welders; approved by the mad scientist association."
icon_state = "welding-g"
item_state = "welding-g"
if("Gar")
desc = "Just who the hell do you think I am?!"
name = "gar glasses"
icon_state = "gar"
item_state = "gar"
/obj/item/clothing/glasses/AltClick(mob/user)
if(glass_colour_type && ishuman(user))
var/mob/living/carbon/human/H = user
if(H.client)
if(H.client.prefs)
if(src == H.glasses)
H.client.prefs.uses_glasses_colour = !H.client.prefs.uses_glasses_colour
if(H.client.prefs.uses_glasses_colour)
H << "You will now see glasses colors."
else
H << "You will no longer see glasses colors."
H.update_glasses_color(src, 1)
else
return ..()
/obj/item/clothing/glasses/proc/change_glass_color(mob/living/carbon/human/H, datum/client_colour/glass_colour/new_color_type)
var/old_colour_type = glass_colour_type
if(!new_color_type || ispath(new_color_type)) //the new glass colour type must be null or a path.
glass_colour_type = new_color_type
if(H && H.glasses == src)
if(old_colour_type)
H.remove_client_colour(old_colour_type)
if(glass_colour_type)
H.update_glasses_color(src, 1)
/mob/living/carbon/human/proc/update_glasses_color(obj/item/clothing/glasses/G, glasses_equipped)
if(client && client.prefs.uses_glasses_colour && glasses_equipped)
add_client_colour(G.glass_colour_type)
else
remove_client_colour(G.glass_colour_type)
+29 -4
View File
@@ -6,6 +6,7 @@
var/hud_type = null
/obj/item/clothing/glasses/hud/equipped(mob/living/carbon/human/user, slot)
..()
if(hud_type && slot == slot_glasses)
var/datum/atom_hud/H = huds[hud_type]
H.add_hud_to(user)
@@ -33,6 +34,7 @@
icon_state = "healthhud"
origin_tech = "magnets=3;biotech=2"
hud_type = DATA_HUD_MEDICAL_ADVANCED
glass_colour_type = /datum/client_colour/glass_colour/lightblue
/obj/item/clothing/glasses/hud/health/night
name = "Night Vision Health Scanner HUD"
@@ -42,6 +44,7 @@
origin_tech = "magnets=4;biotech=4;plasmatech=4;engineering=5"
darkness_view = 8
invis_view = SEE_INVISIBLE_MINIMUM
glass_colour_type = /datum/client_colour/glass_colour/green
/obj/item/clothing/glasses/hud/diagnostic
name = "Diagnostic HUD"
@@ -49,6 +52,7 @@
icon_state = "diagnostichud"
origin_tech = "magnets=2;engineering=2"
hud_type = DATA_HUD_DIAGNOSTIC
glass_colour_type = /datum/client_colour/glass_colour/lightorange
/obj/item/clothing/glasses/hud/diagnostic/night
name = "Night Vision Diagnostic HUD"
@@ -58,6 +62,7 @@
origin_tech = "magnets=4;powerstorage=4;plasmatech=4;engineering=5"
darkness_view = 8
invis_view = SEE_INVISIBLE_MINIMUM
glass_colour_type = /datum/client_colour/glass_colour/green
/obj/item/clothing/glasses/hud/security
name = "Security HUD"
@@ -65,14 +70,28 @@
icon_state = "securityhud"
origin_tech = "magnets=3;combat=2"
hud_type = DATA_HUD_SECURITY_ADVANCED
glass_colour_type = /datum/client_colour/glass_colour/red
/obj/item/clothing/glasses/hud/security/chameleon
name = "Chamleon Security HUD"
desc = "A stolen security HUD integrated with Syndicate chameleon technology. Toggle to disguise the HUD. Provides flash protection."
name = "Chameleon Security HUD"
desc = "A stolen security HUD integrated with Syndicate chameleon technology. Provides flash protection."
flash_protect = 1
/obj/item/clothing/glasses/hud/security/chameleon/attack_self(mob/user)
chameleon(user)
// Yes this code is the same as normal chameleon glasses, but we don't
// have multiple inheritance, okay?
var/datum/action/item_action/chameleon/change/chameleon_action
/obj/item/clothing/glasses/hud/security/chameleon/New()
..()
chameleon_action = new(src)
chameleon_action.chameleon_type = /obj/item/clothing/glasses
chameleon_action.chameleon_name = "Glasses"
chameleon_action.chameleon_blacklist = typecacheof(/obj/item/clothing/glasses/changeling, only_root_path = TRUE)
chameleon_action.initialize_disguises()
/obj/item/clothing/glasses/hud/security/chameleon/emp_act(severity)
. = ..()
chameleon_action.emp_randomise()
/obj/item/clothing/glasses/hud/security/sunglasses/eyepatch
@@ -88,6 +107,7 @@
darkness_view = 1
flash_protect = 1
tint = 1
glass_colour_type = /datum/client_colour/glass_colour/darkred
/obj/item/clothing/glasses/hud/security/night
name = "Night Vision Security HUD"
@@ -96,6 +116,7 @@
origin_tech = "magnets=4;combat=4;plasmatech=4;engineering=5"
darkness_view = 8
invis_view = SEE_INVISIBLE_MINIMUM
glass_colour_type = /datum/client_colour/glass_colour/green
/obj/item/clothing/glasses/hud/security/sunglasses/gars
name = "HUD gar glasses"
@@ -151,16 +172,20 @@
hud_type = DATA_HUD_SECURITY_ADVANCED
vision_flags = SEE_MOBS
invis_view = 2
glass_colour_type = /datum/client_colour/glass_colour/red
/obj/item/clothing/glasses/hud/toggle/thermal/attack_self(mob/user)
..()
switch (hud_type)
if (DATA_HUD_MEDICAL_ADVANCED)
icon_state = "meson"
change_glass_color(user, /datum/client_colour/glass_colour/green)
if (DATA_HUD_SECURITY_ADVANCED)
icon_state = "thermal"
change_glass_color(user, /datum/client_colour/glass_colour/red)
else
icon_state = "purple"
change_glass_color(user, /datum/client_colour/glass_colour/purple)
user.update_inv_glasses()
/obj/item/clothing/glasses/hud/toggle/thermal/emp_act(severity)
+12 -10
View File
@@ -6,7 +6,7 @@
siemens_coefficient = 0
permeability_coefficient = 0.05
item_color="yellow"
burn_state = FIRE_PROOF
resistance_flags = 0
/obj/item/clothing/gloves/color/fyellow //Cheap Chinese Crap
desc = "These gloves are cheap knockoffs of the coveted ones - no way this can end badly."
@@ -16,7 +16,7 @@
siemens_coefficient = 1 //Set to a default of 1, gets overridden in New()
permeability_coefficient = 0.05
item_color="yellow"
burn_state = FIRE_PROOF
resistance_flags = 0
/obj/item/clothing/gloves/color/fyellow/New()
..()
@@ -26,26 +26,26 @@
desc = "These gloves are fire-resistant."
name = "black gloves"
icon_state = "black"
item_state = "bgloves"
item_color="brown"
item_state = "blackgloves"
item_color="black"
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
heat_protection = HANDS
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
burn_state = FIRE_PROOF
resistance_flags = 0
var/can_be_cut = 1
/obj/item/clothing/gloves/color/black/hos
item_color = "hosred" //Exists for washing machines. Is not different from black gloves in any way.
item_color = "hosred" //Exists for washing machines. Is not different from black gloves in any way.
/obj/item/clothing/gloves/color/black/ce
item_color = "chief" //Exists for washing machines. Is not different from black gloves in any way.
item_color = "chief" //Exists for washing machines. Is not different from black gloves in any way.
/obj/item/clothing/gloves/color/black/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/weapon/wirecutters))
if(can_be_cut && icon_state == initial(icon_state))//only if not dyed
user << "<span class='notice'>You snip the fingertips off of [src].</span>"
playsound(user.loc,'sound/items/Wirecutter.ogg', rand(10,50), 1)
playsound(user.loc, W.usesound, rand(10,50), 1)
new /obj/item/clothing/gloves/fingerless(user.loc)
qdel(src)
..()
@@ -64,12 +64,13 @@
item_state = "redgloves"
item_color = "red"
/obj/item/clothing/gloves/color/red/insulated
name = "insulated gloves"
desc = "These gloves will protect the wearer from electric shock."
siemens_coefficient = 0
permeability_coefficient = 0.05
burn_state = FIRE_PROOF
resistance_flags = 0
/obj/item/clothing/gloves/color/rainbow
name = "rainbow gloves"
@@ -145,6 +146,7 @@
heat_protection = HANDS
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
strip_delay = 60
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 70, acid = 50)
/obj/item/clothing/gloves/color/latex
name = "latex gloves"
@@ -155,7 +157,7 @@
permeability_coefficient = 0.01
item_color="white"
transfer_prints = TRUE
burn_state = FIRE_PROOF
resistance_flags = 0
/obj/item/clothing/gloves/color/latex/nitrile
name = "nitrile gloves"
@@ -21,13 +21,14 @@
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
heat_protection = HANDS
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
burn_state = FIRE_PROOF
resistance_flags = 0
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 70, acid = 30)
/obj/item/clothing/gloves/combat
name = "combat gloves"
desc = "These tactical gloves are fireproof and shock resistant."
icon_state = "black"
item_state = "bgloves"
item_state = "blackgloves"
siemens_coefficient = 0
permeability_coefficient = 0.05
strip_delay = 80
@@ -35,7 +36,9 @@
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
heat_protection = HANDS
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
burn_state = FIRE_PROOF
resistance_flags = 0
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 50)
/obj/item/clothing/gloves/bracer
name = "bone bracers"
@@ -50,6 +53,5 @@
cold_protection = ARMS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
burn_state = FIRE_PROOF
armor = list(melee = 15, bullet = 35, laser = 35, energy = 20, bomb = 35, bio = 35, rad = 35) //Not like anything ever hits the arms anyways.
resistance_flags = 0
armor = list(melee = 15, bullet = 35, laser = 35, energy = 20, bomb = 35, bio = 35, rad = 35, fire = 0, acid = 0)
+77
View File
@@ -0,0 +1,77 @@
//BeanieStation13 Redux
/obj/item/clothing/head/beanie //Default is white, this is meant to be seen
name = "white beanie"
desc = "A stylish beanie. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their heads."
icon_state = "beanie" //Default white
item_color = "beanie"
/obj/item/clothing/head/beanie/black
name = "black beanie"
icon_state = "beanie"
color = "#4A4A4B" //Grey but it looks black
/obj/item/clothing/head/beanie/red
name = "red beanie"
icon_state = "beanie"
color = "#D91414" //Red
/obj/item/clothing/head/beanie/green
name = "green beanie"
icon_state = "beanie"
color = "#5C9E54" //Green
/obj/item/clothing/head/beanie/darkblue
name = "dark blue beanie"
icon_state = "beanie"
color = "#1E85BC" //Blue
/obj/item/clothing/head/beanie/purple
name = "purple beanie"
icon_state = "beanie"
color = "#9557C5" //purple
/obj/item/clothing/head/beanie/yellow
name = "yellow beanie"
icon_state = "beanie"
color = "#E0C14F" //Yellow
/obj/item/clothing/head/beanie/orange
name = "orange beanie"
icon_state = "beanie"
color = "#C67A4B" //orange
/obj/item/clothing/head/beanie/cyan
name = "cyan beanie"
icon_state = "beanie"
color = "#54A3CE" //Cyan (Or close to it)
//Striped Beanies have unique sprites
/obj/item/clothing/head/beanie/christmas
name = "christmas beanie"
icon_state = "beaniechristmas"
item_color = "beaniechristmas"
/obj/item/clothing/head/beanie/striped
name = "striped beanie"
icon_state = "beaniestriped"
item_color = "beaniestriped"
/obj/item/clothing/head/beanie/stripedred
name = "red striped beanie"
icon_state = "beaniestripedred"
item_color = "beaniestripedred"
/obj/item/clothing/head/beanie/stripedblue
name = "blue striped beanie"
icon_state = "beaniestripedblue"
item_color = "beaniestripedblue"
/obj/item/clothing/head/beanie/stripedgreen
name = "green striped beanie"
icon_state = "beaniestripedgreen"
item_color = "beaniestripedgreen"
//No dog fashion sprites yet :( poor Ian can't be dope like the rest of us yet
+3 -3
View File
@@ -68,7 +68,7 @@
desc = "A collectable welding helmet. Now with 80% less lead! Not for actual welding. Any welding done while wearing this helmet is done so at the owner's own risk!"
icon_state = "welding"
item_state = "welding"
burn_state = FIRE_PROOF
resistance_flags = 0
/obj/item/clothing/head/collectable/slime
name = "collectable slime hat"
@@ -137,11 +137,11 @@
desc = "Go Red! I mean Green! I mean Red! No Green!"
icon_state = "thunderdome"
item_state = "thunderdome"
burn_state = FIRE_PROOF
resistance_flags = 0
/obj/item/clothing/head/collectable/swat
name = "collectable SWAT helmet"
desc = "That's not real blood. That's red paint." //Reference to the actual description
icon_state = "swat"
item_state = "swat"
burn_state = FIRE_PROOF
resistance_flags = 0
+16 -4
View File
@@ -6,10 +6,10 @@
var/brightness_on = 4 //luminosity when on
var/on = 0
item_color = "yellow" //Determines used sprites: hardhat[on]_[item_color] and hardhat[on]_[item_color]2 (lying down sprite)
armor = list(melee = 15, bullet = 5, laser = 20,energy = 10, bomb = 20, bio = 10, rad = 20)
armor = list(melee = 15, bullet = 5, laser = 20,energy = 10, bomb = 20, bio = 10, rad = 20, fire = 100, acid = 50)
flags_inv = 0
actions_types = list(/datum/action/item_action/toggle_helmet_light)
burn_state = FIRE_PROOF
resistance_flags = FIRE_PROOF
dog_fashion = /datum/dog_fashion/head
@@ -27,11 +27,23 @@
var/datum/action/A = X
A.UpdateButtonIcon()
/obj/item/clothing/head/hardhat/pickup(mob/user)
..()
if(on)
user.AddLuminosity(brightness_on)
SetLuminosity(0)
/obj/item/clothing/head/hardhat/dropped(mob/user)
..()
if(on)
user.AddLuminosity(-brightness_on)
SetLuminosity(brightness_on)
/obj/item/clothing/head/hardhat/proc/turn_on(mob/user)
set_light(brightness_on)
user.AddLuminosity(brightness_on)
/obj/item/clothing/head/hardhat/proc/turn_off(mob/user)
set_light(0)
user.AddLuminosity(-brightness_on)
/obj/item/clothing/head/hardhat/orange
icon_state = "hardhat0_orange"
+51 -27
View File
@@ -4,14 +4,14 @@
icon_state = "helmet"
flags = HEADBANGPROTECT
item_state = "helmet"
armor = list(melee = 40, bullet = 30, laser = 30,energy = 10, bomb = 25, bio = 0, rad = 0)
armor = list(melee = 35, bullet = 30, laser = 30,energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 50)
flags_inv = HIDEEARS
cold_protection = HEAD
min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT
heat_protection = HEAD
max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT
strip_delay = 60
burn_state = FIRE_PROOF
resistance_flags = 0
flags_cover = HEADCOVERSEYES
dog_fashion = /datum/dog_fashion/head/helmet
@@ -20,9 +20,6 @@
/obj/item/clothing/head/helmet/New()
..()
/obj/item/clothing/head/helmet/emp_act(severity)
..()
/obj/item/clothing/head/helmet/sec
can_flashlight = 1
@@ -31,10 +28,14 @@
desc = "A bulletproof combat helmet that excels in protecting the wearer against traditional projectile weaponry and explosives to a minor extent."
icon_state = "helmetalt"
item_state = "helmetalt"
armor = list(melee = 15, bullet = 40, laser = 10, energy = 10, bomb = 40, bio = 0, rad = 0)
armor = list(melee = 15, bullet = 40, laser = 10, energy = 10, bomb = 40, bio = 0, rad = 0, fire = 50, acid = 50)
can_flashlight = 1
dog_fashion = null
/obj/item/clothing/head/helmet/blueshirt
icon_state = "blueshift"
item_state = "blueshift"
/obj/item/clothing/head/helmet/riot
name = "riot helmet"
desc = "It's a helmet specifically designed to protect against close range attacks."
@@ -44,13 +45,14 @@
alt_toggle_message = "You push the visor up on"
can_toggle = 1
flags = HEADBANGPROTECT
armor = list(melee = 41, bullet = 15, laser = 5,energy = 5, bomb = 5, bio = 2, rad = 0)
flags_inv = HIDEMASK|HIDEEARS|HIDEFACE
armor = list(melee = 45, bullet = 15, laser = 5,energy = 5, bomb = 5, bio = 2, rad = 0, fire = 50, acid = 50)
flags_inv = HIDEEARS|HIDEFACE
strip_delay = 80
actions_types = list(/datum/action/item_action/toggle)
visor_flags_inv = HIDEMASK|HIDEFACE
visor_flags_inv = HIDEFACE
toggle_cooldown = 0
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
dog_fashion = null
/obj/item/clothing/head/helmet/attack_self(mob/user)
@@ -98,7 +100,7 @@
desc = "An extremely robust, space-worthy helmet in a nefarious red and black stripe pattern."
icon_state = "swatsyndie"
item_state = "swatsyndie"
armor = list(melee = 40, bullet = 30, laser = 30,energy = 30, bomb = 50, bio = 90, rad = 20)
armor = list(melee = 40, bullet = 30, laser = 30,energy = 30, bomb = 50, bio = 90, rad = 20, fire = 50, acid = 50)
cold_protection = HEAD
min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT
heat_protection = HEAD
@@ -119,7 +121,7 @@
flags_inv = HIDEEARS|HIDEHAIR
icon_state = "thunderdome"
item_state = "thunderdome"
armor = list(melee = 40, bullet = 30, laser = 25,energy = 10, bomb = 25, bio = 10, rad = 0)
armor = list(melee = 40, bullet = 30, laser = 25,energy = 10, bomb = 25, bio = 10, rad = 0, fire = 50, acid = 50)
cold_protection = HEAD
min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT
heat_protection = HEAD
@@ -132,7 +134,8 @@
desc = "An ancient helmet made of bronze and leather."
flags_inv = HIDEEARS|HIDEHAIR
flags_cover = HEADCOVERSEYES
armor = list(melee = 25, bullet = 0, laser = 25, energy = 10, bomb = 10, bio = 0, rad = 0)
armor = list(melee = 25, bullet = 0, laser = 25, energy = 10, bomb = 10, bio = 0, rad = 0, fire = 100, acid = 50)
resistance_flags = FIRE_PROOF
icon_state = "roman"
item_state = "roman"
strip_delay = 100
@@ -159,7 +162,7 @@
icon_state = "redtaghelm"
flags_cover = HEADCOVERSEYES
item_state = "redtaghelm"
armor = list(melee = 15, bullet = 10, laser = 20,energy = 10, bomb = 20, bio = 0, rad = 0)
armor = list(melee = 15, bullet = 10, laser = 20,energy = 10, bomb = 20, bio = 0, rad = 0, fire = 0, acid = 50)
// Offer about the same protection as a hardhat.
dog_fashion = null
@@ -169,7 +172,7 @@
icon_state = "bluetaghelm"
flags_cover = HEADCOVERSEYES
item_state = "bluetaghelm"
armor = list(melee = 15, bullet = 10, laser = 20,energy = 10, bomb = 20, bio = 0, rad = 0)
armor = list(melee = 15, bullet = 10, laser = 20,energy = 10, bomb = 20, bio = 0, rad = 0, fire = 0, acid = 50)
// Offer about the same protection as a hardhat.
dog_fashion = null
@@ -178,7 +181,7 @@
desc = "A classic metal helmet."
icon_state = "knight_green"
item_state = "knight_green"
armor = list(melee = 41, bullet = 15, laser = 5,energy = 5, bomb = 5, bio = 2, rad = 0)
armor = list(melee = 41, bullet = 15, laser = 5,energy = 5, bomb = 5, bio = 2, rad = 0, fire = 0, acid = 50)
flags = null
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
@@ -208,7 +211,7 @@
desc = "An intimidating tribal helmet, it doesn't look very comfortable."
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
flags_cover = HEADCOVERSEYES
armor = list(melee = 25, bullet = 25, laser = 25, energy = 10, bomb = 10, bio = 5, rad = 20)
armor = list(melee = 25, bullet = 25, laser = 25, energy = 10, bomb = 10, bio = 5, rad = 20, fire = 40, acid = 20)
icon_state = "skull"
item_state = "skull"
strip_delay = 100
@@ -226,14 +229,14 @@
icon_state = state
if(istype(loc, /mob/living/carbon/human))
if(ishuman(loc))
var/mob/living/carbon/human/H = loc
H.update_inv_head()
return
/obj/item/clothing/head/helmet/ui_action_click(mob/user, actiontype)
if(actiontype == /datum/action/item_action/toggle_helmet_flashlight)
/obj/item/clothing/head/helmet/ui_action_click(mob/user, action)
if(istype(action, /datum/action/item_action/toggle_helmet_flashlight))
toggle_helmlight()
else
..()
@@ -243,13 +246,12 @@
var/obj/item/device/flashlight/seclite/S = I
if(can_flashlight)
if(!F)
if(!user.unEquip(S))
if(!user.transferItemToLoc(S, src))
return
user << "<span class='notice'>You click [S] into place on [src].</span>"
if(S.on)
set_light(0)
SetLuminosity(0)
F = S
S.loc = src
update_icon()
update_helmlight(user)
verbs += /obj/item/clothing/head/helmet/proc/toggle_helmlight
@@ -286,8 +288,6 @@
var/mob/user = usr
if(user.incapacitated())
return
if(!isturf(user.loc))
user << "<span class='warning'>You cannot turn the light on while in this [user.loc]!</span>"
F.on = !F.on
user << "<span class='notice'>You toggle the helmetlight [F.on ? "on":"off"].</span>"
@@ -298,13 +298,37 @@
/obj/item/clothing/head/helmet/proc/update_helmlight(mob/user = null)
if(F)
if(F.on)
set_light(F.brightness_on)
if(loc == user)
user.AddLuminosity(F.brightness_on)
else if(isturf(loc))
SetLuminosity(F.brightness_on)
else
set_light(0)
if(loc == user)
user.AddLuminosity(-F.brightness_on)
else if(isturf(loc))
SetLuminosity(0)
update_icon()
else
set_light(0)
if(loc == user)
user.AddLuminosity(-5)
else if(isturf(loc))
SetLuminosity(0)
for(var/X in actions)
var/datum/action/A = X
A.UpdateButtonIcon()
/obj/item/clothing/head/helmet/pickup(mob/user)
..()
if(F)
if(F.on)
user.AddLuminosity(F.brightness_on)
SetLuminosity(0)
/obj/item/clothing/head/helmet/dropped(mob/user)
..()
if(F)
if(F.on)
user.AddLuminosity(-F.brightness_on)
SetLuminosity(F.brightness_on)
+40 -16
View File
@@ -1,18 +1,16 @@
//Bartender //it's chef what the fuck is your problem?
//Chef
/obj/item/clothing/head/chefhat
name = "chef's hat"
desc = "It's a hat used by chefs to keep hair out of your food. Judging by the food in the mess, they don't work."
icon_state = "chef"
item_state = "chef"
icon_state = "chef"
desc = "The commander in chef's head wear."
strip_delay = 10
put_on_delay = 10
dog_fashion = /datum/dog_fashion/head/chef
/obj/item/clothing/head/chefhat/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is donning [src]! It looks like they're trying to become a chef.</span>")
user.visible_message("<span class='suicide'>[user] is donning [src]! It looks like [user.p_theyre()] trying to become a chef.</span>")
user.say("Bork Bork Bork!")
sleep(20)
user.visible_message("<span class='suicide'>[user] climbs into an imaginary oven!</span>")
@@ -27,9 +25,8 @@
icon_state = "captain"
item_state = "that"
flags_inv = 0
armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0)
armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 50)
strip_delay = 60
dog_fashion = /datum/dog_fashion/head/captain
//Captain: This is no longer space-worthy
@@ -46,8 +43,7 @@
name = "head of personnel's cap"
icon_state = "hopcap"
desc = "The symbol of true bureaucratic micromanagement."
armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0)
armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 50)
dog_fashion = /datum/dog_fashion/head/hop
//Chaplain
@@ -58,13 +54,31 @@
flags_inv = HIDEHAIR
flags_cover = HEADCOVERSEYES
/obj/item/clothing/head/cage
name = "cage"
desc = "A cage that restrains the will of the self, allowing one to see the profane world for what it is."
alternate_worn_icon = 'icons/mob/large-worn-icons/64x64/head.dmi'
icon_state = "cage"
item_state = "cage"
worn_x_dimension = 64
worn_y_dimension = 64
/obj/item/clothing/head/witchunter_hat
name = "witchunter hat"
desc = "This hat saw much use back in the day."
icon_state = "witchhunterhat"
item_state = "witchhunterhat"
flags_cover = HEADCOVERSEYES
//Detective
/obj/item/clothing/head/det_hat
name = "detective's fedora"
desc = "There's only one man who can sniff out the dirty stench of crime, and he's likely wearing this hat."
icon_state = "detective"
armor = list(melee = 25, bullet = 5, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0)
armor = list(melee = 25, bullet = 5, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 50)
var/candy_cooldown = 0
pockets = /obj/item/weapon/storage/internal/pocket/small/detective
dog_fashion = /datum/dog_fashion/head/detective
/obj/item/clothing/head/det_hat/AltClick()
@@ -88,6 +102,10 @@
dog_fashion = /datum/dog_fashion/head/beret
/obj/item/clothing/head/beret/highlander
desc = "That was white fabric. <i>Was.</i>"
flags = NODROP
dog_fashion = null //THIS IS FOR SLAUGHTER, NOT PUPPIES
//Security
@@ -95,7 +113,7 @@
name = "head of security cap"
desc = "The robust standard-issue cap of the Head of Security. For showing the officers who's in charge."
icon_state = "hoscap"
armor = list(melee = 40, bullet = 30, laser = 25, energy = 10, bomb = 25, bio = 10, rad = 0)
armor = list(melee = 40, bullet = 30, laser = 25, energy = 10, bomb = 25, bio = 10, rad = 0, fire = 50, acid = 60)
strip_delay = 80
/obj/item/clothing/head/HoS/beret
@@ -107,16 +125,15 @@
name = "warden's police hat"
desc = "It's a special armored hat issued to the Warden of a security force. Protects the head from impacts."
icon_state = "policehelm"
armor = list(melee = 40, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0)
armor = list(melee = 40, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 30, acid = 60)
strip_delay = 60
dog_fashion = /datum/dog_fashion/head/warden
/obj/item/clothing/head/beret/sec
name = "security beret"
desc = "A robust beret with the security insignia emblazoned on it. Uses reinforced fabric to offer sufficent protection."
icon_state = "beret_badge"
armor = list(melee = 40, bullet = 30, laser = 30,energy = 10, bomb = 25, bio = 0, rad = 0)
armor = list(melee = 40, bullet = 30, laser = 30,energy = 10, bomb = 25, bio = 0, rad = 0, fire = 20, acid = 50)
strip_delay = 60
dog_fashion = null
@@ -129,9 +146,16 @@
name = "warden's beret"
desc = "A special beret with the Warden's insignia emblazoned on it. For wardens with class."
icon_state = "wardenberet"
armor = list(melee = 40, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0)
armor = list(melee = 40, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 30, acid = 50)
strip_delay = 60
/obj/item/clothing/head/beret/sec/navyofficer
desc = "A special beret with the security insignia emblazoned on it. For officers with class."
icon_state = "officerberet"
//Curator
/obj/item/clothing/head/curator
name = "treasure hunter's fedora"
desc = "You got red text today kid, but it doesn't mean you have to like it."
icon_state = "curator"
armor = list(melee = 25, bullet = 5, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 50)
+27 -9
View File
@@ -6,7 +6,7 @@
desc = "It's good to be emperor."
item_state = "that"
flags_inv = 0
armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0)
armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 50)
strip_delay = 80
/obj/item/clothing/head/powdered_wig
@@ -24,7 +24,7 @@
/obj/item/clothing/head/canada
name = "striped red tophat"
desc = " It feels sticky, like maple syrup - <i>il se sent collante, comme le sirop d'érable</i>"
desc = "it smells like fresh donut holes / <i>il sent comme des trous de beignets frais</i>"
icon_state = "canada"
item_state = "canada"
@@ -65,6 +65,14 @@
desc = "A plastic replica of a Syndicate agent's space helmet. You'll look just like a real murderous Syndicate agent in this! This is a toy, it is not made for use in space!"
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
/obj/item/clothing/head/cueball
name = "cueball helmet"
desc = "A large, featureless white orb meant to be worn on your head. How do you even see out of this thing?"
icon_state = "cueball"
item_state="cueball"
flags_cover = HEADCOVERSEYES|HEADCOVERSMOUTH
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
/obj/item/clothing/head/snowman
name = "Snowman Head"
desc = "A ball of white styrofoam. So festive."
@@ -116,12 +124,9 @@
desc = "Yarr."
icon_state = "pirate"
item_state = "pirate"
dog_fashion = /datum/dog_fashion/head/pirate
/obj/item/clothing/head/hgpiratecap
name = "pirate hat"
desc = "Yarr."
/obj/item/clothing/head/pirate/captain
icon_state = "hgpiratecap"
item_state = "hgpiratecap"
@@ -176,6 +181,7 @@
icon_state = "fedora"
item_state = "fedora"
desc = "A really cool hat if you're a mobster. A really lame hat if you're not."
pockets = /obj/item/weapon/storage/internal/pocket/small
/obj/item/clothing/head/fedora/suicide_act(mob/user)
if(user.gender == FEMALE)
@@ -222,9 +228,9 @@
throwforce = 3
throw_speed = 2
throw_range = 5
w_class = 2
w_class = WEIGHT_CLASS_SMALL
attack_verb = list("warned", "cautioned", "smashed")
burn_state = FIRE_PROOF
resistance_flags = 0
/obj/item/clothing/head/santa
name = "santa hat"
@@ -260,4 +266,16 @@
name = "paper sack hat"
desc = "A paper sack with crude holes cut out for eyes and a sketchy smile drawn on the front. Not creepy at all."
icon_state = "papersack_smile"
flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS
flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS
/obj/item/clothing/head/crown
name = "crown"
desc = "A crown fit for a king, a petty king maybe."
icon_state = "crown"
armor = list(melee = 15, bullet = 0, laser = 0,energy = 15, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50)
resistance_flags = FIRE_PROOF
/obj/item/clothing/head/crown/fancy
name = "magnificent crown"
desc = "A crown worn by only the highest emperors of the land."
icon_state = "fancycrown"
+12 -28
View File
@@ -21,23 +21,15 @@
// var/up = 0
flash_protect = 2
tint = 2
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 60)
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
actions_types = list(/datum/action/item_action/toggle)
visor_flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
burn_state = FIRE_PROOF
resistance_flags = FIRE_PROOF
/obj/item/clothing/head/welding/attack_self()
toggle()
/obj/item/clothing/head/welding/verb/toggle()
set category = "Object"
set name = "Adjust welding helmet"
set src in usr
weldingvisortoggle()
/obj/item/clothing/head/welding/attack_self(mob/user)
weldingvisortoggle(user)
/*
@@ -51,19 +43,19 @@
item_color = "cakehat"
hitsound = 'sound/weapons/tap.ogg'
flags_inv = HIDEEARS|HIDEHAIR
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
brightness_on = 2 //luminosity when on
flags_cover = HEADCOVERSEYES
heat = 1000
/obj/item/clothing/head/hardhat/cakehat/process()
var/turf/location = src.loc
if(istype(location, /mob/))
if(ishuman(location))
var/mob/living/carbon/human/M = location
if(M.l_hand == src || M.r_hand == src || M.head == src)
if(M.is_holding(src) || M.head == src)
location = M.loc
if (istype(location, /turf))
if(isturf(location))
location.hotspot_expose(700, 1)
/obj/item/clothing/head/hardhat/cakehat/turn_on()
@@ -99,14 +91,6 @@
dog_fashion = /datum/dog_fashion/head/ushanka
/obj/item/clothing/head/hardhat/headlamp
name = "headlamp"
desc = "For giving people another reason to look away from you."
icon_state = "hardhat0_headlamp"
item_state = "hardhat0_headlamp"
item_color = "headlamp"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
/obj/item/clothing/head/ushanka/attack_self(mob/user)
if(earflaps)
src.icon_state = "ushankaup"
@@ -129,7 +113,7 @@
item_state = "hardhat0_pumpkin"
item_color = "pumpkin"
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
brightness_on = 2 //luminosity when on
flags_cover = HEADCOVERSEYES
@@ -140,7 +124,7 @@
name = "kitty ears"
desc = "A pair of kitty ears. Meow!"
icon_state = "kitty"
color = "#999"
color = "#999999"
dog_fashion = /datum/dog_fashion/head/kitty
@@ -151,7 +135,7 @@
/obj/item/clothing/head/kitty/update_icon(mob/living/carbon/human/user)
if(istype(user))
color = "#[user.hair_color]"
add_atom_colour("#[user.hair_color]", FIXED_COLOUR_PRIORITY)
/obj/item/clothing/head/hardhat/reindeer
@@ -161,7 +145,7 @@
item_state = "hardhat0_reindeer"
item_color = "reindeer"
flags_inv = 0
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
brightness_on = 1 //luminosity when on
dog_fashion = /datum/dog_fashion/head/reindeer
+1 -1
View File
@@ -120,7 +120,7 @@
desc = "It's a robust baseball hat in tasteful red colour."
icon_state = "secsoft"
item_color = "sec"
armor = list(melee = 30, bullet = 25, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0)
armor = list(melee = 30, bullet = 25, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 20, acid = 50)
strip_delay = 60
dog_fashion = null
+6 -6
View File
@@ -5,7 +5,7 @@
item_state = "balaclava"
flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
visor_flags_inv = HIDEFACE|HIDEFACIALHAIR
w_class = 2
w_class = WEIGHT_CLASS_SMALL
actions_types = list(/datum/action/item_action/adjust)
/obj/item/clothing/mask/balaclava/attack_self(mob/user)
@@ -17,13 +17,13 @@
icon_state = "luchag"
item_state = "luchag"
flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
w_class = 2
w_class = WEIGHT_CLASS_SMALL
/obj/item/clothing/mask/luchador/speechModification(message)
if(copytext(message, 1, 2) != "*")
message = replacetext(message, "captain", "CAPITÁN")
message = replacetext(message, "station", "ESTACIÓN")
message = replacetext(message, "sir", "SEÑOR")
message = replacetext(message, "captain", "CAPITÁN")
message = replacetext(message, "station", "ESTACIÓN")
message = replacetext(message, "sir", "SEÑOR")
message = replacetext(message, "the ", "el ")
message = replacetext(message, "my ", "mi ")
message = replacetext(message, "is ", "es ")
@@ -52,4 +52,4 @@
name = "Rudos Mask"
desc = "Worn by robust fighters who are willing to do anything to win."
icon_state = "luchar"
item_state = "luchar"
item_state = "luchar"
+2 -2
View File
@@ -6,13 +6,13 @@
body_parts_covered = 0
flags = MASKINTERNALS
visor_flags = MASKINTERNALS
w_class = 2
w_class = WEIGHT_CLASS_SMALL
gas_transfer_coefficient = 0.10
permeability_coefficient = 0.50
actions_types = list(/datum/action/item_action/adjust)
flags_cover = MASKCOVERSMOUTH
visor_flags_cover = MASKCOVERSMOUTH
burn_state = FIRE_PROOF
resistance_flags = 0
/obj/item/clothing/mask/breath/attack_self(mob/user)
adjustmask(user)
+43 -108
View File
@@ -4,12 +4,12 @@
icon_state = "gas_alt"
flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR
w_class = 3
w_class = WEIGHT_CLASS_NORMAL
item_state = "gas_alt"
gas_transfer_coefficient = 0.01
permeability_coefficient = 0.01
flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH
burn_state = FIRE_PROOF
resistance_flags = 0
// **** Welding gas mask ****
@@ -20,23 +20,18 @@
materials = list(MAT_METAL=4000, MAT_GLASS=2000)
flash_protect = 2
tint = 2
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 55)
origin_tech = "materials=2;engineering=3"
actions_types = list(/datum/action/item_action/toggle)
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE
flags_cover = MASKCOVERSEYES
visor_flags_inv = HIDEEYES
visor_flags_cover = MASKCOVERSEYES
resistance_flags = FIRE_PROOF
/obj/item/clothing/mask/gas/welding/attack_self()
toggle()
/obj/item/clothing/mask/gas/welding/attack_self(mob/user)
weldingvisortoggle(user)
/obj/item/clothing/mask/gas/welding/verb/toggle()
set category = "Object"
set name = "Adjust welding mask"
set src in usr
weldingvisortoggle()
// ********************************************************************
@@ -46,7 +41,7 @@
desc = "A modernised version of the classic design, this mask will not only filter out toxins but it can also be connected to an air supply."
icon_state = "plaguedoctor"
item_state = "gas_mask"
armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 75, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 75, rad = 0, fire = 0, acid = 0)
/obj/item/clothing/mask/gas/syndicate
name = "syndicate mask"
@@ -61,14 +56,11 @@
icon_state = "clown"
item_state = "clown_hat"
flags_cover = MASKCOVERSEYES
burn_state = FLAMMABLE
resistance_flags = FLAMMABLE
actions_types = list(/datum/action/item_action/adjust)
dog_fashion = /datum/dog_fashion/head/clown
/obj/item/clothing/mask/gas/clown_hat/attack_self(mob/user)
AltClick(user)
/obj/item/clothing/mask/gas/clown_hat/AltClick(mob/living/user)
/obj/item/clothing/mask/gas/clown_hat/ui_action_click(mob/user)
if(!istype(user) || user.incapacitated())
return
@@ -96,7 +88,7 @@
icon_state = "sexyclown"
item_state = "sexyclown"
flags_cover = MASKCOVERSEYES
burn_state = FLAMMABLE
resistance_flags = FLAMMABLE
/obj/item/clothing/mask/gas/mime
name = "mime mask"
@@ -105,7 +97,7 @@
icon_state = "mime"
item_state = "mime"
flags_cover = MASKCOVERSEYES
burn_state = FLAMMABLE
resistance_flags = FLAMMABLE
actions_types = list(/datum/action/item_action/adjust)
/obj/item/clothing/mask/gas/mime/attack_self(mob/user)
@@ -135,7 +127,7 @@
icon_state = "monkeymask"
item_state = "monkeymask"
flags_cover = MASKCOVERSEYES
burn_state = FLAMMABLE
resistance_flags = FLAMMABLE
/obj/item/clothing/mask/gas/sexymime
name = "sexy mime mask"
@@ -144,7 +136,7 @@
icon_state = "sexymime"
item_state = "sexymime"
flags_cover = MASKCOVERSEYES
burn_state = FLAMMABLE
resistance_flags = FLAMMABLE
/obj/item/clothing/mask/gas/death_commando
name = "Death Commando Mask"
@@ -155,7 +147,7 @@
name = "cyborg visor"
desc = "Beep boop."
icon_state = "death"
burn_state = FLAMMABLE
resistance_flags = FLAMMABLE
/obj/item/clothing/mask/gas/owl_mask
name = "owl mask"
@@ -163,98 +155,41 @@
icon_state = "owl"
flags = MASKINTERNALS
flags_cover = MASKCOVERSEYES
burn_state = FLAMMABLE
resistance_flags = FLAMMABLE
/obj/item/clothing/mask/gas/carp
name = "carp mask"
desc = "Gnash gnash."
icon_state = "carp_mask"
/obj/item/clothing/mask/gas/yautja_fake
name = "ceremonial mask"
desc = "A beautifully designed metallic face mask. This one appears to be mostly decorative."
icon_state = "pred_mask"
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR|HIDEHAIR
item_state = "pred_mask"
flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH
burn_state = LAVA_PROOF
/obj/item/clothing/mask/gas/tiki_mask
name = "tiki mask"
desc = "A creepy wooden mask. Surprisingly expresive for a poorly carved bit of wood."
icon_state = "tiki_eyebrow"
item_state = "tiki_eyebrow"
resistance_flags = FLAMMABLE
obj_integrity = 100
max_integrity = 100
dog_fashion = null
obj/item/clothing/mask/gas/tiki_mask/ui_action_click(mob/user)
var/mob/M = usr
var/list/options = list()
var/current_skin = ""
options["Original Tiki"] = "tiki_eyebrow"
options["Happy Tiki"] = "tiki_happy"
options["Confused Tiki"] = "tiki_confused"
options["Angry Tiki"] ="tiki_angry"
/obj/item/clothing/mask/gas/yautja_fake/New()
options["Jawbone"] = "jaw"
options["Plain"] = "plain"
options["Horned"] = "horn"
options["Winged"] = "wing"
options["Cancel"] = null
var/choice = input(M,"To what form do you wish to change this mask?","Morph Mask") in options
/obj/item/clothing/mask/gas/yautja_fake/examine(mob/user)
..()
if(!current_skin)
user << "<span class='notice'>Alt-click [src.name] to reskin it.</span>"
/obj/item/clothing/mask/gas/yautja_fake/proc/reskin_mask(mob/M)
var/choice = input(M,"Warning, you can only reskin your mask once!","Reskin Mask") in options
if(src && choice && !current_skin && !M.incapacitated() && in_range(M,src))
if(options[choice] == null)
return
current_skin = options[choice]
icon_state = "[initial(icon_state)]_[current_skin]"
item_state = "[initial(item_state)]_[current_skin]"
M << "Your mask is now skinned as \"[choice]\"."
update_icon()
M.regenerate_icons()
/obj/item/clothing/mask/gas/yautja_fake/AltClick(mob/user)
..()
if(user.incapacitated())
user << "<span class='warning'>You can't do that right now!</span>"
return
if(!current_skin && loc == user)
reskin_mask(user)
/obj/item/clothing/mask/gas/yautja
name = "clan mask"
desc = "A beautifully designed metallic face mask. Both decorative and functional."
icon_state = "pred_mask"
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR|HIDEHAIR
item_state = "pred_mask"
flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH
burn_state = LAVA_PROOF
armor = list(melee = 50, bullet = 50, laser = 50,energy = 50, bomb = 50, bio = 80, rad = 50)
var/list/options = list()
var/current_skin = ""
/obj/item/clothing/mask/gas/yautja/New()
options["Jawbone"] = "jaw"
options["Plain"] = "plain"
options["Horned"] = "horn"
options["Winged"] = "wing"
options["Cancel"] = null
/obj/item/clothing/mask/gas/yautja/proc/reskin_mask(mob/M)
var/choice = input(M,"Warning, you can only reskin your mask once!","Reskin Mask") in options
if(src && choice && !current_skin && !M.incapacitated() && in_range(M,src))
if(options[choice] == null)
return
current_skin = options[choice]
icon_state = "[initial(icon_state)]_[current_skin]"
item_state = "[initial(item_state)]_[current_skin]"
M << "Your mask is now skinned as \"[choice]\"."
update_icon()
M.regenerate_icons()
/obj/item/clothing/mask/gas/yautja/AltClick(mob/user)
..()
if(user.incapacitated())
user << "<span class='warning'>You can't do that right now!</span>"
return
if(!current_skin && loc == user)
reskin_mask(user)
/obj/item/clothing/mask/gas/yautja/examine(mob/user)
..()
if(!current_skin)
user << "<span class='notice'>Alt-click [src.name] to reskin it.</span>"
if(src && choice && !M.stat && in_range(M,src))
icon_state = options[choice]
item_state = options[choice]
user.update_inv_wear_mask()
for(var/X in actions)
var/datum/action/A = X
A.UpdateButtonIcon()
M << "The Tiki Mask has now changed into the [choice] Mask!"
return 1
+71 -59
View File
@@ -8,7 +8,7 @@
icon_state = "sechailer"
flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
flags_inv = HIDEFACIALHAIR|HIDEFACE
w_class = 2
w_class = WEIGHT_CLASS_SMALL
visor_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
visor_flags_inv = HIDEFACE
flags_cover = MASKCOVERSMOUTH
@@ -17,6 +17,7 @@
var/cooldown_special
var/recent_uses = 0
var/broken_hailer = 0
var/safety = TRUE
/obj/item/clothing/mask/gas/sechailer/swat
name = "\improper SWAT mask"
@@ -56,20 +57,26 @@
else
..()
/obj/item/clothing/mask/gas/sechailer/ui_action_click(mob/user, actiontype)
if(actiontype == /datum/action/item_action/halt)
/obj/item/clothing/mask/gas/sechailer/ui_action_click(mob/user, action)
if(istype(action, /datum/action/item_action/halt))
halt()
else
adjustmask(user)
/obj/item/clothing/mask/gas/sechailer/attack_self()
halt()
/obj/item/clothing/mask/gas/sechailer/emag_act(mob/user as mob)
if(safety)
safety = FALSE
user << "<span class='warning'>You silently fry [src]'s vocal circuit with the cryptographic sequencer."
else
return
/obj/item/clothing/mask/gas/sechailer/verb/halt()
set category = "Object"
set name = "HALT"
set src in usr
if(!istype(usr, /mob/living))
if(!isliving(usr))
return
if(!can_use(usr))
return
@@ -107,61 +114,66 @@
if(4)
phrase = rand(12,18) // user has broke the restrictor, it will now only play shitcurity phrases
switch(phrase) //sets the properties of the chosen phrase
if(1) // good cop
phrase_text = "HALT! HALT! HALT!"
phrase_sound = "halt"
if(2)
phrase_text = "Stop in the name of the Law."
phrase_sound = "bobby"
if(3)
phrase_text = "Compliance is in your best interest."
phrase_sound = "compliance"
if(4)
phrase_text = "Prepare for justice!"
phrase_sound = "justice"
if(5)
phrase_text = "Running will only increase your sentence."
phrase_sound = "running"
if(6) // bad cop
phrase_text = "Don't move, Creep!"
phrase_sound = "dontmove"
if(7)
phrase_text = "Down on the floor, Creep!"
phrase_sound = "floor"
if(8)
phrase_text = "Dead or alive you're coming with me."
phrase_sound = "robocop"
if(9)
phrase_text = "God made today for the crooks we could not catch yesterday."
phrase_sound = "god"
if(10)
phrase_text = "Freeze, Scum Bag!"
phrase_sound = "freeze"
if(11)
phrase_text = "Stop right there, criminal scum!"
phrase_sound = "imperial"
if(12) // LA-PD
phrase_text = "Stop or I'll bash you."
phrase_sound = "bash"
if(13)
phrase_text = "Go ahead, make my day."
phrase_sound = "harry"
if(14)
phrase_text = "Stop breaking the law, ass hole."
phrase_sound = "asshole"
if(15)
phrase_text = "You have the right to shut the fuck up."
phrase_sound = "stfu"
if(16)
phrase_text = "Shut up crime!"
phrase_sound = "shutup"
if(17)
phrase_text = "Face the wrath of the golden bolt."
phrase_sound = "super"
if(18)
phrase_text = "I am, the LAW!"
phrase_sound = "dredd"
if(!safety)
phrase_text = "FUCK YOUR CUNT YOU SHIT EATING COCKSTORM AND EAT A DONG FUCKING ASS RAMMING SHIT FUCK EAT PENISES IN YOUR FUCK FACE AND SHIT OUT ABORTIONS OF FUCK AND POO AND SHIT IN YOUR ASS YOU COCK FUCK SHIT MONKEY FUCK ASS WANKER FROM THE DEPTHS OF SHIT."
phrase_sound = "emag"
else
switch(phrase) //sets the properties of the chosen phrase
if(1) // good cop
phrase_text = "HALT! HALT! HALT!"
phrase_sound = "halt"
if(2)
phrase_text = "Stop in the name of the Law."
phrase_sound = "bobby"
if(3)
phrase_text = "Compliance is in your best interest."
phrase_sound = "compliance"
if(4)
phrase_text = "Prepare for justice!"
phrase_sound = "justice"
if(5)
phrase_text = "Running will only increase your sentence."
phrase_sound = "running"
if(6) // bad cop
phrase_text = "Don't move, Creep!"
phrase_sound = "dontmove"
if(7)
phrase_text = "Down on the floor, Creep!"
phrase_sound = "floor"
if(8)
phrase_text = "Dead or alive you're coming with me."
phrase_sound = "robocop"
if(9)
phrase_text = "God made today for the crooks we could not catch yesterday."
phrase_sound = "god"
if(10)
phrase_text = "Freeze, Scum Bag!"
phrase_sound = "freeze"
if(11)
phrase_text = "Stop right there, criminal scum!"
phrase_sound = "imperial"
if(12) // LA-PD
phrase_text = "Stop or I'll bash you."
phrase_sound = "bash"
if(13)
phrase_text = "Go ahead, make my day."
phrase_sound = "harry"
if(14)
phrase_text = "Stop breaking the law, ass hole."
phrase_sound = "asshole"
if(15)
phrase_text = "You have the right to shut the fuck up."
phrase_sound = "stfu"
if(16)
phrase_text = "Shut up crime!"
phrase_sound = "shutup"
if(17)
phrase_text = "Face the wrath of the golden bolt."
phrase_sound = "super"
if(18)
phrase_text = "I am, the LAW!"
phrase_sound = "dredd"
usr.audible_message("[usr]'s Compli-o-Nator: <font color='red' size='4'><b>[phrase_text]</b></font>")
playsound(src.loc, "sound/voice/complionator/[phrase_sound].ogg", 100, 0, 4)
+63 -8
View File
@@ -4,7 +4,7 @@
icon_state = "muzzle"
item_state = "blindfold"
flags_cover = MASKCOVERSMOUTH
w_class = 2
w_class = WEIGHT_CLASS_SMALL
gas_transfer_coefficient = 0.90
put_on_delay = 20
@@ -21,14 +21,14 @@
desc = "A sterile mask designed to help prevent the spread of diseases."
icon_state = "sterile"
item_state = "sterile"
w_class = 1
w_class = WEIGHT_CLASS_TINY
flags_inv = HIDEFACE
flags_cover = MASKCOVERSMOUTH
visor_flags_inv = HIDEFACE
visor_flags_cover = MASKCOVERSMOUTH
gas_transfer_coefficient = 0.90
permeability_coefficient = 0.01
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 25, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 25, rad = 0, fire = 0, acid = 0)
actions_types = list(/datum/action/item_action/adjust)
/obj/item/clothing/mask/surgical/attack_self(mob/user)
@@ -40,13 +40,18 @@
icon_state = "fake-moustache"
flags_inv = HIDEFACE
/obj/item/clothing/mask/joy
name = "joy mask"
desc = "Express your happiness or hide your sorrows with this laughing face with crying tears of joy cutout."
icon_state = "joy"
/obj/item/clothing/mask/pig
name = "pig mask"
desc = "A rubber pig mask."
icon_state = "pig"
item_state = "pig"
flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
w_class = 2
w_class = WEIGHT_CLASS_SMALL
actions_types = list(/datum/action/item_action/toggle_voice_box)
var/voicechange = 0
@@ -65,7 +70,7 @@
icon_state = "pig"
item_state = "pig"
flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
w_class = 2
w_class = WEIGHT_CLASS_SMALL
var/voicechange = 1
/obj/item/clothing/mask/spig/speechModification(message)
@@ -80,7 +85,7 @@
icon_state = "cowmask"
item_state = "cowmask"
flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
w_class = 2
w_class = WEIGHT_CLASS_SMALL
var/voicechange = 1
/obj/item/clothing/mask/cowmask/speechModification(message)
@@ -94,7 +99,7 @@
icon_state = "horsehead"
item_state = "horsehead"
flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDEEYES|HIDEEARS
w_class = 2
w_class = WEIGHT_CLASS_SMALL
var/voicechange = 1
/obj/item/clothing/mask/horsehead/speechModification(message)
@@ -102,10 +107,60 @@
message = pick("NEEIIGGGHHHH!", "NEEEIIIIGHH!", "NEIIIGGHH!", "HAAWWWWW!", "HAAAWWW!")
return message
/obj/item/clothing/mask/rat
name = "rat mask"
desc = "A mask made of soft vinyl and latex, representing the head of a rat."
icon_state = "rat"
item_state = "rat"
flags_inv = HIDEFACE
flags_cover = MASKCOVERSMOUTH
/obj/item/clothing/mask/rat/fox
name = "fox mask"
desc = "A mask made of soft vinyl and latex, representing the head of a fox."
icon_state = "fox"
item_state = "fox"
/obj/item/clothing/mask/rat/bee
name = "bee mask"
desc = "A mask made of soft vinyl and latex, representing the head of a bee."
icon_state = "bee"
item_state = "bee"
/obj/item/clothing/mask/rat/bear
name = "bear mask"
desc = "A mask made of soft vinyl and latex, representing the head of a bear."
icon_state = "bear"
item_state = "bear"
/obj/item/clothing/mask/rat/bat
name = "bat mask"
desc = "A mask made of soft vinyl and latex, representing the head of a bat."
icon_state = "bat"
item_state = "bat"
/obj/item/clothing/mask/rat/raven
name = "raven mask"
desc = "A mask made of soft vinyl and latex, representing the head of a raven."
icon_state = "raven"
item_state = "raven"
/obj/item/clothing/mask/rat/jackal
name = "jackal mask"
desc = "A mask made of soft vinyl and latex, representing the head of a jackal."
icon_state = "jackal"
item_state = "jackal"
/obj/item/clothing/mask/rat/tribal
name = "tribal mask"
desc = "A mask carved out of wood, detailed carefully by hand."
icon_state = "bumba"
item_state = "bumba"
/obj/item/clothing/mask/bandana
name = "botany bandana"
desc = "A fine bandana with nanotech lining and a hydroponics pattern."
w_class = 1
w_class = WEIGHT_CLASS_TINY
flags_cover = MASKCOVERSMOUTH
flags_inv = HIDEFACE|HIDEFACIALHAIR
visor_flags_inv = HIDEFACE|HIDEFACIALHAIR
+185
View File
@@ -0,0 +1,185 @@
/obj/item/clothing/neck/tie
name = "tie"
desc = "A neosilk clip-on tie."
icon = 'icons/obj/clothing/neck.dmi'
icon_state = "bluetie"
item_state = "" //no inhands
item_color = "bluetie"
w_class = WEIGHT_CLASS_SMALL
/obj/item/clothing/neck/tie/blue
name = "blue tie"
icon_state = "bluetie"
item_color = "bluetie"
/obj/item/clothing/neck/tie/red
name = "red tie"
icon_state = "redtie"
item_color = "redtie"
/obj/item/clothing/neck/tie/black
name = "black tie"
icon_state = "blacktie"
item_color = "blacktie"
/obj/item/clothing/neck/tie/horrible
name = "horrible tie"
desc = "A neosilk clip-on tie. This one is disgusting."
icon_state = "horribletie"
item_color = "horribletie"
/obj/item/clothing/neck/stethoscope
name = "stethoscope"
desc = "An outdated medical apparatus for listening to the sounds of the human body. It also makes you look like you know what you're doing."
icon_state = "stethoscope"
item_color = "stethoscope"
/obj/item/clothing/neck/stethoscope/attack(mob/living/carbon/human/M, mob/living/user)
if(ishuman(M) && isliving(user))
if(user.a_intent == INTENT_HELP)
var/body_part = parse_zone(user.zone_selected)
if(body_part)
var/their = "their"
switch(M.gender)
if(MALE)
their = "his"
if(FEMALE)
their = "her"
var/sound = "pulse"
var/sound_strength
if(M.stat == DEAD || (M.status_flags&FAKEDEATH))
sound_strength = "cannot hear"
sound = "anything"
else
sound_strength = "hear a weak"
switch(body_part)
if("chest")
if(M.oxyloss < 50)
sound_strength = "hear a healthy"
sound = "pulse and respiration"
if("eyes","mouth")
sound_strength = "cannot hear"
sound = "anything"
else
sound_strength = "hear a weak"
user.visible_message("[user] places [src] against [M]'s [body_part] and listens attentively.", "You place [src] against [their] [body_part]. You [sound_strength] [sound].")
return
return ..(M,user)
///////////
//SCARVES//
///////////
/obj/item/clothing/neck/scarf //Default white color, same functionality as beanies.
name = "white scarf"
icon_state = "scarf"
desc = "A stylish scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks."
item_color = "scarf"
dog_fashion = /datum/dog_fashion/head
/obj/item/clothing/neck/scarf/black
name = "black scarf"
icon_state = "scarf"
color = "#4A4A4B" //Grey but it looks black
/obj/item/clothing/neck/scarf/red
name = "red scarf"
icon_state = "scarf"
color = "#D91414" //Red
/obj/item/clothing/neck/scarf/green
name = "green scarf"
icon_state = "scarf"
color = "#5C9E54" //Green
/obj/item/clothing/neck/scarf/darkblue
name = "dark blue scarf"
icon_state = "scarf"
color = "#1E85BC" //Blue
/obj/item/clothing/neck/scarf/purple
name = "purple scarf"
icon_state = "scarf"
color = "#9557C5" //purple
/obj/item/clothing/neck/scarf/yellow
name = "yellow scarf"
icon_state = "scarf"
color = "#E0C14F" //Yellow
/obj/item/clothing/neck/scarf/orange
name = "orange scarf"
icon_state = "scarf"
color = "#C67A4B" //orange
/obj/item/clothing/neck/scarf/cyan
name = "cyan scarf"
icon_state = "scarf"
color = "#54A3CE" //Cyan
//Striped scarves get their own icons
/obj/item/clothing/neck/scarf/zebra
name = "zebra scarf"
icon_state = "zebrascarf"
item_color = "zebrascarf"
/obj/item/clothing/neck/scarf/christmas
name = "christmas scarf"
icon_state = "christmasscarf"
item_color = "christmasscarf"
//The three following scarves don't have the scarf subtype
//This is because Ian can equip anything from that subtype
//However, these 3 don't have corgi versions of their sprites
/obj/item/clothing/neck/stripedredscarf
name = "striped red scarf"
icon_state = "stripedredscarf"
item_color = "stripedredscarf"
/obj/item/clothing/neck/stripedgreenscarf
name = "striped green scarf"
icon_state = "stripedgreenscarf"
item_color = "stripedgreenscarf"
/obj/item/clothing/neck/stripedbluescarf
name = "striped blue scarf"
icon_state = "stripedbluescarf"
item_color = "stripedbluescarf"
/obj/item/clothing/neck/petcollar //don't really wear this though please c'mon seriously guys
name = "pet collar"
desc = "It's for pets. Though you probably could wear it yourself, you'd doubtless be the subject of ridicule."
icon_state = "petcollar"
item_color = "petcollar"
var/tagname = null
/obj/item/clothing/neck/petcollar/attack_self(mob/user)
tagname = copytext(sanitize(input(user, "Would you like to change the name on the tag?", "Name your new pet", "Spot") as null|text),1,MAX_NAME_LEN)
name = "[initial(name)] - [tagname]"
//////////////
//DOPE BLING//
//////////////
/obj/item/clothing/neck/necklace/dope
name = "gold necklace"
desc = "Damn, it feels good to be a gangster."
icon = 'icons/obj/clothing/ties.dmi'
icon_state = "bling"
item_color = "bling"
////////////////
//OONGA BOONGA//
////////////////
/obj/item/clothing/neck/talisman
name = "bone talisman"
desc = "A hunter's talisman, some say the old gods smile on those who wear it."
icon_state = "talisman"
item_color = "talisman"
armor = list(melee = 5, bullet = 5, laser = 5, energy = 5, bomb = 20, bio = 20, rad = 5, fire = 0, acid = 25)
+12 -14
View File
@@ -11,9 +11,7 @@
return
var/obj/item/weapon/implant/mindshield/L = new/obj/item/weapon/implant/mindshield(H)
L.imp_in = H
L.implanted = 1
H.sec_hud_set_implants()
L.implant(H, null, 1)
var/obj/item/device/radio/R = H.ears
R.set_frequency(CENTCOM_FREQ)
@@ -28,13 +26,13 @@
id = /obj/item/weapon/card/id/ert
suit = /obj/item/clothing/suit/space/hardsuit/ert
glasses = /obj/item/clothing/glasses/thermal/eyepatch
glasses = /obj/item/clothing/glasses/hud/security/sunglasses
back = /obj/item/weapon/storage/backpack/captain
belt = /obj/item/weapon/storage/belt/security/full
backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\
/obj/item/weapon/melee/baton/loaded=1,\
/obj/item/clothing/mask/gas/sechailer=1,\
/obj/item/weapon/gun/energy/gun=1)
/obj/item/weapon/gun/energy/e_gun=1)
l_pocket = /obj/item/weapon/switchblade
/datum/outfit/ert/commander/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
@@ -42,7 +40,6 @@
if(visualsOnly)
return
var/obj/item/device/radio/R = H.ears
R.keyslot = new /obj/item/device/encryptionkey/heads/captain
R.recalculateChannels()
@@ -50,6 +47,7 @@
/datum/outfit/ert/commander/alert
name = "ERT Commander - High Alert"
glasses = /obj/item/clothing/glasses/thermal/eyepatch
backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\
/obj/item/weapon/melee/baton/loaded=1,\
/obj/item/clothing/mask/gas/sechailer/swat=1,\
@@ -67,9 +65,9 @@
backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\
/obj/item/weapon/storage/box/handcuffs=1,\
/obj/item/clothing/mask/gas/sechailer=1,\
/obj/item/weapon/gun/energy/gun=1,\
/obj/item/weapon/gun/energy/e_gun=1,\
/obj/item/weapon/melee/baton/loaded=1,\
/obj/item/weapon/gun/energy/gun/advtaser=1)
/obj/item/weapon/gun/energy/e_gun/advtaser=1)
/datum/outfit/ert/security/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
..()
@@ -97,13 +95,13 @@
id = /obj/item/weapon/card/id/ert/Medical
suit = /obj/item/clothing/suit/space/hardsuit/ert/med
glasses = /obj/item/clothing/glasses/hud/health
back = /obj/item/weapon/storage/backpack/medic
back = /obj/item/weapon/storage/backpack/satchel/med
belt = /obj/item/weapon/storage/belt/medical
r_hand = /obj/item/weapon/storage/firstaid/regular
backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\
/obj/item/weapon/melee/baton/loaded=1,\
/obj/item/clothing/mask/gas/sechailer=1,\
/obj/item/weapon/gun/energy/gun=1,\
/obj/item/weapon/gun/energy/e_gun=1,\
/obj/item/weapon/reagent_containers/hypospray/combat=1,\
/obj/item/weapon/gun/medbeam=1)
@@ -140,7 +138,7 @@
backpack_contents = list(/obj/item/weapon/storage/box/engineer=1,\
/obj/item/weapon/melee/baton/loaded=1,\
/obj/item/clothing/mask/gas/sechailer=1,\
/obj/item/weapon/gun/energy/gun=1,\
/obj/item/weapon/gun/energy/e_gun=1,\
/obj/item/weapon/rcd/loaded=1)
/datum/outfit/ert/engineer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
@@ -171,9 +169,9 @@
gloves = /obj/item/clothing/gloves/color/black
ears = /obj/item/device/radio/headset/headset_cent
glasses = /obj/item/clothing/glasses/sunglasses
belt = /obj/item/weapon/gun/energy/gun
belt = /obj/item/weapon/gun/energy/e_gun
l_pocket = /obj/item/weapon/pen
back = /obj/item/weapon/storage/backpack/satchel_norm
back = /obj/item/weapon/storage/backpack/satchel
r_pocket = /obj/item/device/pda/heads
l_hand = /obj/item/weapon/clipboard
id = /obj/item/weapon/card/id
@@ -193,4 +191,4 @@
W.access += access_weapons
W.assignment = "Centcom Official"
W.registered_name = H.real_name
W.update_label()
W.update_label()
+21 -22
View File
@@ -31,7 +31,7 @@
suit = /obj/item/clothing/suit/det_suit
glasses = /obj/item/clothing/glasses/thermal/monocle
head = /obj/item/clothing/head/det_hat
r_hand = /obj/item/weapon/gun/projectile
r_hand = /obj/item/weapon/gun/ballistic
l_hand = null
r_pocket = /obj/item/ammo_box/c10mm
@@ -52,7 +52,7 @@
if(visualsOnly)
return
var/obj/item/weapon/reagent_containers/glass/bucket/bucket = H.l_hand
var/obj/item/weapon/reagent_containers/glass/bucket/bucket = H.get_item_for_held_index(1)
bucket.reagents.add_reagent("water",70)
/datum/outfit/laser_tag
@@ -133,9 +133,10 @@
r_hand = /obj/item/weapon/twohanded/fireaxe
/datum/outfit/psycho/post_equip(mob/living/carbon/human/H)
for(var/obj/item/carried_item in H.contents)
if(!istype(carried_item, /obj/item/weapon/implant))//If it's not an implant.
carried_item.add_mob_blood(H)//Oh yes, there will be blood...
for(var/obj/item/carried_item in H.get_equipped_items())
carried_item.add_mob_blood(H)//Oh yes, there will be blood...
for(var/obj/item/I in H.held_items)
I.add_mob_blood(H)
H.regenerate_icons()
/datum/outfit/assassin
@@ -159,13 +160,13 @@
return
//Could use a type
var/obj/item/weapon/storage/secure/briefcase/sec_briefcase = H.l_hand
var/obj/item/weapon/storage/secure/briefcase/sec_briefcase = H.get_item_for_held_index(1)
for(var/obj/item/briefcase_item in sec_briefcase)
qdel(briefcase_item)
for(var/i=3, i>0, i--)
for(var/i = 3 to 0 step -1)
sec_briefcase.handle_item_insertion(new /obj/item/stack/spacecash/c1000,1)
sec_briefcase.handle_item_insertion(new /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow,1)
sec_briefcase.handle_item_insertion(new /obj/item/weapon/gun/projectile/revolver/mateba,1)
sec_briefcase.handle_item_insertion(new /obj/item/weapon/gun/ballistic/revolver/mateba,1)
sec_briefcase.handle_item_insertion(new /obj/item/ammo_box/a357,1)
sec_briefcase.handle_item_insertion(new /obj/item/weapon/grenade/plastic/x4,1)
@@ -191,10 +192,10 @@
glasses = /obj/item/clothing/glasses/eyepatch
mask = /obj/item/clothing/mask/cigarette/cigar/cohiba
head = /obj/item/clothing/head/centhat
belt = /obj/item/weapon/gun/projectile/revolver/mateba
belt = /obj/item/weapon/gun/ballistic/revolver/mateba
r_pocket = /obj/item/weapon/lighter
l_pocket = /obj/item/ammo_box/a357
back = /obj/item/weapon/storage/backpack/satchel
back = /obj/item/weapon/storage/backpack/satchel/leather
id = /obj/item/weapon/card/id
/datum/outfit/centcom_commander/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
@@ -222,7 +223,7 @@
head = /obj/item/clothing/head/helmet/space/beret
belt = /obj/item/weapon/gun/energy/pulse/pistol/m1911
r_pocket = /obj/item/weapon/lighter
back = /obj/item/weapon/storage/backpack/satchel
back = /obj/item/weapon/storage/backpack/satchel/leather
id = /obj/item/weapon/card/id
/datum/outfit/spec_ops/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
@@ -246,7 +247,7 @@
uniform = /obj/item/clothing/under/color/lightpurple
suit = /obj/item/clothing/suit/wizrobe
shoes = /obj/item/clothing/shoes/sandal
shoes = /obj/item/clothing/shoes/sandal/magic
ears = /obj/item/device/radio/headset
head = /obj/item/clothing/head/wizard
r_pocket = /obj/item/weapon/teleportation_scroll
@@ -272,14 +273,14 @@
name = "Soviet Admiral"
uniform = /obj/item/clothing/under/soviet
head = /obj/item/clothing/head/hgpiratecap
head = /obj/item/clothing/head/pirate/captain
shoes = /obj/item/clothing/shoes/combat
gloves = /obj/item/clothing/gloves/combat
ears = /obj/item/device/radio/headset/headset_cent
glasses = /obj/item/clothing/glasses/thermal/eyepatch
suit = /obj/item/clothing/suit/hgpirate
back = /obj/item/weapon/storage/backpack/satchel
belt = /obj/item/weapon/gun/projectile/revolver/mateba
suit = /obj/item/clothing/suit/pirate/captain
back = /obj/item/weapon/storage/backpack/satchel/leather
belt = /obj/item/weapon/gun/ballistic/revolver/mateba
id = /obj/item/weapon/card/id
@@ -304,7 +305,7 @@
gloves = /obj/item/clothing/gloves/color/black
ears = /obj/item/device/radio/headset
glasses = /obj/item/clothing/glasses/sunglasses
r_hand = /obj/item/weapon/gun/projectile/automatic/tommygun
r_hand = /obj/item/weapon/gun/ballistic/automatic/tommygun
id = /obj/item/weapon/card/id
/datum/outfit/mobster/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
@@ -328,7 +329,7 @@
name = "Death Commando"
uniform = /obj/item/clothing/under/color/green
suit = /obj/item/clothing/suit/space/hardsuit/deathsquad
suit = /obj/item/clothing/suit/space/hardsuit/shielded/swat
shoes = /obj/item/clothing/shoes/combat/swat
gloves = /obj/item/clothing/gloves/combat
mask = /obj/item/clothing/mask/gas/sechailer/swat
@@ -337,7 +338,7 @@
l_pocket = /obj/item/weapon/melee/energy/sword/saber
r_pocket = /obj/item/weapon/shield/energy
suit_store = /obj/item/weapon/tank/internals/emergency_oxygen
belt = /obj/item/weapon/gun/projectile/revolver/mateba
belt = /obj/item/weapon/gun/ballistic/revolver/mateba
r_hand = /obj/item/weapon/gun/energy/pulse/loyalpin
id = /obj/item/weapon/card/id
ears = /obj/item/device/radio/headset/headset_cent/alt
@@ -358,9 +359,7 @@
R.freqlock = 1
var/obj/item/weapon/implant/mindshield/L = new/obj/item/weapon/implant/mindshield(H)//Here you go Deuryn
L.imp_in = H
L.implanted = 1
H.sec_hud_set_implants()
L.implant(H, null, 1)
var/obj/item/weapon/card/id/W = H.wear_id
+1 -1
View File
@@ -41,7 +41,7 @@
if(!bananium.get_item_material_amount(O))
user << "<span class='notice'>This item has no bananium!</span>"
return
if(!user.unEquip(O))
if(!user.dropItemToGround(O))
user << "<span class='notice'>You can't drop [O]!</span>"
return
+2 -5
View File
@@ -96,11 +96,8 @@
/obj/item/clothing/shoes/sneakers/orange/attackby(obj/H, loc, params)
..()
if ((istype(H, /obj/item/weapon/restraints/handcuffs) && !( src.chained )))
//H = null
if (src.icon_state != "orange") return
if(istype(H, /obj/item/weapon/restraints/handcuffs/cable))
return 0
// Note: not using istype here because we want to ignore all subtypes
if (H.type == /obj/item/weapon/restraints/handcuffs && !chained)
qdel(H)
src.chained = 1
src.slowdown = 15
+3 -2
View File
@@ -8,7 +8,7 @@
actions_types = list(/datum/action/item_action/toggle)
strip_delay = 70
put_on_delay = 70
burn_state = FIRE_PROOF
resistance_flags = FIRE_PROOF
origin_tech = "materials=3;magnets=4;engineering=4"
/obj/item/clothing/shoes/magboots/verb/toggle()
@@ -31,7 +31,7 @@
icon_state = "[magboot_state][magpulse]"
user << "<span class='notice'>You [magpulse ? "enable" : "disable"] the mag-pulse traction system.</span>"
user.update_inv_shoes() //so our mob-overlays update
user.update_gravity(user.mob_has_gravity())
user.update_gravity(user.has_gravity())
for(var/X in actions)
var/datum/action/A = X
A.UpdateButtonIcon()
@@ -51,6 +51,7 @@
magboot_state = "advmag"
slowdown_active = SHOES_SLOWDOWN
origin_tech = null
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
/obj/item/clothing/shoes/magboots/syndie
desc = "Reverse-engineered magnetic boots that have a heavy magnetic pull. Property of Gorlex Marauders."
+67 -21
View File
@@ -1,7 +1,7 @@
/obj/item/clothing/shoes/proc/step_action() //this was made to rewrite clown shoes squeaking
/obj/item/clothing/shoes/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is bashing their own head in with [src]! Ain't that a kick in the head?</span>")
user.visible_message("<span class='suicide'>[user] is bashing [user.p_their()] own head in with [src]! Ain't that a kick in the head?</span>")
for(var/i = 0, i < 3, i++)
sleep(3)
playsound(user, 'sound/weapons/genhit2.ogg', 50, 1)
@@ -17,17 +17,17 @@
desc = "High speed, low drag combat boots."
icon_state = "jackboots"
item_state = "jackboots"
armor = list(melee = 25, bullet = 25, laser = 25, energy = 25, bomb = 50, bio = 10, rad = 0)
armor = list(melee = 25, bullet = 25, laser = 25, energy = 25, bomb = 50, bio = 10, rad = 0, fire = 70, acid = 50)
strip_delay = 70
burn_state = FIRE_PROOF
can_hold_items = 1
resistance_flags = 0
pockets = /obj/item/weapon/storage/internal/pocket/shoes
/obj/item/clothing/shoes/combat/swat //overpowered boots for death squads
name = "\improper SWAT boots"
desc = "High speed, no drag combat boots."
permeability_coefficient = 0.01
flags = NOSLIP
armor = list(melee = 40, bullet = 30, laser = 25, energy = 25, bomb = 50, bio = 30, rad = 30)
armor = list(melee = 40, bullet = 30, laser = 25, energy = 25, bomb = 50, bio = 30, rad = 30, fire = 90, acid = 50)
/obj/item/clothing/shoes/sandal
desc = "A pair of rather plain, wooden sandals."
@@ -35,12 +35,17 @@
icon_state = "wizard"
strip_delay = 50
put_on_delay = 50
unacidable = 1
/obj/item/clothing/shoes/sandal/marisa
desc = "A pair of magic black shoes."
name = "magic shoes"
icon_state = "black"
resistance_flags = FIRE_PROOF | ACID_PROOF
/obj/item/clothing/shoes/sandal/magic
name = "magical sandals"
desc = "A pair of sandals imbued with magic"
resistance_flags = FIRE_PROOF | ACID_PROOF
/obj/item/clothing/shoes/galoshes
desc = "A pair of yellow rubber boots, designed to prevent slipping on wet surfaces."
@@ -51,7 +56,8 @@
slowdown = SHOES_SLOWDOWN+1
strip_delay = 50
put_on_delay = 50
burn_state = FIRE_PROOF
resistance_flags = 0
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 40, acid = 75)
/obj/item/clothing/shoes/galoshes/dry
name = "absorbent galoshes"
@@ -72,8 +78,7 @@
slowdown = SHOES_SLOWDOWN+1
item_color = "clown"
var/footstep = 1 //used for squeeks whilst walking
can_hold_items = 1
valid_held_items = list(/obj/item/weapon/bikehorn)
pockets = /obj/item/weapon/storage/internal/pocket/shoes/clown
/obj/item/clothing/shoes/clown_shoes/step_action()
if(footstep > 1)
@@ -90,8 +95,8 @@
item_color = "hosred"
strip_delay = 50
put_on_delay = 50
burn_state = FIRE_PROOF
can_hold_items = 1
resistance_flags = 0
pockets = /obj/item/weapon/storage/internal/pocket/shoes
/obj/item/clothing/shoes/jackboots/fast
slowdown = -1
@@ -105,7 +110,7 @@
min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT
heat_protection = FEET|LEGS
max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT
can_hold_items = 1
pockets = /obj/item/weapon/storage/internal/pocket/shoes
/obj/item/clothing/shoes/workboots
name = "work boots"
@@ -114,13 +119,13 @@
item_state = "jackboots"
strip_delay = 40
put_on_delay = 40
can_hold_items = 1
pockets = /obj/item/weapon/storage/internal/pocket/shoes
/obj/item/clothing/shoes/workboots/mining
name = "mining boots"
desc = "Steel-toed mining boots for mining in hazardous environments. Very good at keeping toes uncrushed."
icon_state = "explorer"
burn_state = FIRE_PROOF
resistance_flags = FIRE_PROOF
/obj/item/clothing/shoes/cult
name = "nar-sian invoker boots"
@@ -161,11 +166,52 @@
desc = "A pair of costume boots fashioned after bird talons."
icon_state = "griffinboots"
item_state = "griffinboots"
can_hold_items = 1
pockets = /obj/item/weapon/storage/internal/pocket/shoes
/obj/item/clothing/shoes/yautja_fake
name = "clan greaves"
desc = "A pair of armored, perfectly balanced boots. Perfect for running through the jungle or the central primary hallway."
icon_state = "yautjaboots"
item_state = "yautjaboots"
can_hold_items = 1
/obj/item/clothing/shoes/bhop
name = "jump boots"
desc = "A specialized pair of combat boots with a built-in propulsion system for rapid foward movement."
icon_state = "jetboots"
item_state = "jetboots"
item_color = "hosred"
resistance_flags = FIRE_PROOF
pockets = /obj/item/weapon/storage/internal/pocket/shoes
actions_types = list(/datum/action/item_action/bhop)
var/jumpdistance = 5 //-1 from to see the actual distance, e.g 4 goes over 3 tiles
var/recharging_rate = 60 //default 6 seconds between each dash
var/recharging_time = 0 //time until next dash
var/jumping = FALSE //are we mid-jump?
/obj/item/clothing/shoes/bhop/ui_action_click(mob/user, action)
if(!isliving(usr))
return
if(jumping)
return
if(recharging_time > world.time)
usr << "<span class='warning'>The boot's internal propulsion needs to recharge still!</span>"
return
var/atom/target = get_edge_target_turf(usr, usr.dir) //gets the user's direction
jumping = TRUE
playsound(src.loc, 'sound/effects/stealthoff.ogg', 50, 1, 1)
usr.visible_message("<span class='warning'>[usr] dashes foward into the air!</span>")
usr.throw_at(target, jumpdistance, 1, spin=0, diagonals_first = 1, callback = CALLBACK(src, .proc/hop_end))
/obj/item/clothing/shoes/bhop/proc/hop_end()
jumping = FALSE
recharging_time = world.time + recharging_rate
/obj/item/clothing/shoes/singery
name = "yellow performer's boots"
desc = "These boots were made for dancing."
icon_state = "ysing"
put_on_delay = 50
/obj/item/clothing/shoes/singerb
name = "blue performer's boots"
desc = "These boots were made for dancing."
icon_state = "bsing"
put_on_delay = 50
+108 -100
View File
@@ -4,12 +4,13 @@
icon_state = "chronohelmet"
item_state = "chronohelmet"
slowdown = 1
armor = list(melee = 60, bullet = 30/*bullet through the visor*/, laser = 60, energy = 60, bomb = 30, bio = 90, rad = 90)
armor = list(melee = 60, bullet = 30/*bullet through the visor*/, laser = 60, energy = 60, bomb = 30, bio = 90, rad = 90, fire = 100, acid = 100)
resistance_flags = FIRE_PROOF | ACID_PROOF
var/obj/item/clothing/suit/space/chronos/suit = null
/obj/item/clothing/head/helmet/space/chronos/dropped()
if(suit)
suit.deactivate()
suit.deactivate(1, 1)
..()
/obj/item/clothing/head/helmet/space/chronos/Destroy()
@@ -19,21 +20,23 @@
/obj/item/clothing/suit/space/chronos
name = "Chronosuit"
desc = "An advanced spacesuit equipped with teleportation and anti-compression technology"
desc = "An advanced spacesuit equipped with time-bluespace teleportation and anti-compression technology"
icon_state = "chronosuit"
item_state = "chronosuit"
actions_types = list(/datum/action/item_action/toggle)
armor = list(melee = 60, bullet = 60, laser = 60, energy = 60, bomb = 30, bio = 90, rad = 90)
armor = list(melee = 60, bullet = 60, laser = 60, energy = 60, bomb = 30, bio = 90, rad = 90, fire = 100, acid = 1000)
resistance_flags = FIRE_PROOF | ACID_PROOF
var/list/chronosafe_items = list(/obj/item/weapon/chrono_eraser, /obj/item/weapon/gun/energy/chrono_gun)
var/hands_nodrop_states
var/list/hands_nodrop = list()
var/obj/item/clothing/head/helmet/space/chronos/helmet = null
var/obj/effect/chronos_cam/camera = null
var/atom/movable/overlay/phase_underlay = null
var/image/phase_underlay = null
var/datum/action/innate/chrono_teleport/teleport_now = new
var/activating = 0
var/activated = 0
var/cooldowntime = 50 //deciseconds
var/teleporting = 0
var/phase_timer_id
/obj/item/clothing/suit/space/chronos/New()
..()
@@ -69,25 +72,33 @@
switch(severity)
if(1)
if(activated && user && ishuman(user) && (user.wear_suit == src))
user << "<span class='userdanger'>E:FATAL:RAM_READ_FAIL\nE:FATAL:STACK_EMPTY\nE:FATAL:READ_NULL_POINT\nE:FATAL:PWR_BUS_OVERLOAD</span>"
user << "<span class='danger'>E:FATAL:RAM_READ_FAIL\nE:FATAL:STACK_EMPTY\nE:FATAL:READ_NULL_POINT\nE:FATAL:PWR_BUS_OVERLOAD</span>"
user << "<span class='userdanger'>An electromagnetic pulse disrupts your [name] and violently tears you out of time-bluespace!</span>"
user.emote("scream")
deactivate(1, 1)
/obj/item/clothing/suit/space/chronos/proc/finish_chronowalk()
var/mob/living/carbon/human/user = src.loc
/obj/item/clothing/suit/space/chronos/proc/finish_chronowalk(mob/living/carbon/human/user, turf/to_turf)
if(!user)
user = src.loc
if(phase_timer_id)
deltimer(phase_timer_id)
phase_timer_id = 0
if(istype(user))
if(to_turf)
user.forceMove(to_turf)
user.SetStunned(0)
user.next_move = 1
user.alpha = 255
user.color = "#ffffff"
user.update_atom_colour()
user.animate_movement = FORWARD_STEPS
user.notransform = 0
user.anchored = 0
teleporting = 0
if(user.l_hand && !(hands_nodrop_states & 1))
user.l_hand.flags &= ~NODROP
if(user.r_hand && !(hands_nodrop_states & 2))
user.r_hand.flags &= ~NODROP
for(var/obj/item/I in user.held_items)
if(I in hands_nodrop)
I.flags &= ~NODROP
if(phase_underlay && !qdeleted(phase_underlay))
user.underlays -= phase_underlay
qdel(phase_underlay)
phase_underlay = null
if(camera)
@@ -109,26 +120,26 @@
teleport_now.UpdateButtonIcon()
var/list/nonsafe_slots = list(slot_belt, slot_back, slot_l_hand, slot_r_hand)
var/list/nonsafe_slots = list(slot_belt, slot_back)
var/list/exposed = list()
for(var/slot in nonsafe_slots)
var/obj/item/slot_item = user.get_item_by_slot(slot)
if(slot_item && !(slot_item.type in chronosafe_items) && user.unEquip(slot_item))
user << "<span class='notice'>Your [slot_item.name] got left behind.</span>"
exposed += slot_item
exposed += user.held_items
for(var/exposed_item in exposed)
var/obj/item/exposed_I = exposed_item
if(exposed_I && !(exposed_I.type in chronosafe_items) && user.dropItemToGround(exposed_I))
user << "<span class='notice'>Your [exposed_I.name] got left behind.</span>"
user.ExtinguishMob()
if(user.buckled)
user.buckled.unbuckle_mob(user,force=1)
phase_underlay = create_phase_underlay(user)
hands_nodrop_states = 0
if(user.l_hand)
hands_nodrop_states |= (user.l_hand.flags & NODROP) ? 1 : 0
user.l_hand.flags |= NODROP
if(user.r_hand)
hands_nodrop_states |= (user.r_hand.flags & NODROP) ? 2 : 0
user.r_hand.flags |= NODROP
hands_nodrop = list()
for(var/obj/item/I in user.held_items)
if(!(I.flags & NODROP))
hands_nodrop += I
I.flags |= NODROP
user.animate_movement = NO_STEPS
user.changeNext_move(8 + phase_in_ds)
user.notransform = 1
@@ -136,39 +147,37 @@
user.Stun(INFINITY)
animate(user, color = "#00ccee", time = 3)
spawn(3)
if(teleporting && activated && user && phase_underlay && !qdeleted(phase_underlay))
animate(user, alpha = 0, time = 2)
animate(phase_underlay, alpha = 255, time = 2)
sleep(2)
if(teleporting && activated && user && phase_underlay && !qdeleted(phase_underlay))
phase_underlay.loc = to_turf
user.loc = to_turf
animate(user, alpha = 255, time = phase_in_ds)
animate(phase_underlay, alpha = 0, time = phase_in_ds)
sleep(phase_in_ds)
if(teleporting && activated && phase_underlay && !qdeleted(phase_underlay))
animate(user, color = "#ffffff", time = 3)
sleep(3)
if(teleporting && user && !qdeleted(user))
user.loc = to_turf //this will cover if bad things happen before the teleport, yes it is redundant
finish_chronowalk()
phase_timer_id = addtimer(CALLBACK(src, .proc/phase_2, user, to_turf, phase_in_ds), 3, TIMER_STOPPABLE)
/obj/item/clothing/suit/space/chronos/proc/phase_2(mob/living/carbon/human/user, turf/to_turf, phase_in_ds)
if(teleporting && activated && user)
animate(user, alpha = 0, time = 2)
phase_timer_id = addtimer(CALLBACK(src, .proc/phase_3, user, to_turf, phase_in_ds), 2, TIMER_STOPPABLE)
else
finish_chronowalk(user, to_turf)
/obj/item/clothing/suit/space/chronos/proc/phase_3(mob/living/carbon/human/user, turf/to_turf, phase_in_ds)
if(teleporting && activated && user)
user.forceMove(to_turf)
animate(user, alpha = 255, time = phase_in_ds)
phase_timer_id = addtimer(CALLBACK(src, .proc/phase_4, user, to_turf), phase_in_ds, TIMER_STOPPABLE)
else
finish_chronowalk(user, to_turf)
/obj/item/clothing/suit/space/chronos/proc/phase_4(mob/living/carbon/human/user, turf/to_turf)
if(teleporting && activated && user)
animate(user, color = "#ffffff", time = 3)
phase_timer_id = addtimer(CALLBACK(src, .proc/finish_chronowalk, user, to_turf), 3, TIMER_STOPPABLE)
else
finish_chronowalk(user, to_turf)
/obj/item/clothing/suit/space/chronos/proc/create_phase_underlay(var/mob/user)
var/icon/user_icon = getFlatIcon(user)
user_icon.Blend("#ffffff")
var/atom/movable/overlay/phase = new(user.loc)
phase.icon = user_icon
phase.density = 1
phase.anchored = 1
phase.master = user
phase.animate_movement = NO_STEPS
phase.alpha = 0
phase.mouse_opacity = 0
phase.name = user.name
phase.transform = user.transform
phase.pixel_x = user.pixel_x
phase.pixel_y = user.pixel_y
var/icon/user_icon = icon('icons/effects/alphacolors.dmi', "")
user_icon.AddAlphaMask(getFlatIcon(user))
var/image/phase = new(user_icon)
phase.appearance_flags = RESET_COLOR|RESET_ALPHA
user.underlays += phase
return phase
/obj/item/clothing/suit/space/chronos/process()
@@ -191,61 +200,60 @@
if(!activating && !activated && !teleporting)
activating = 1
var/mob/living/carbon/human/user = src.loc
if(user && ishuman(user))
if(user.wear_suit == src)
user << "\nChronosuitMK4 login: root"
user << "Password:\n"
user << "root@ChronosuitMK4# chronowalk4 --start\n"
if(user.head && istype(user.head, /obj/item/clothing/head/helmet/space/chronos))
user << "\[ <span style='color: #00ff00;'>ok</span> \] Mounting /dev/helmet"
helmet = user.head
helmet.flags |= NODROP
helmet.suit = src
src.flags |= NODROP
user << "\[ <span style='color: #00ff00;'>ok</span> \] Starting brainwave scanner"
user << "\[ <span style='color: #00ff00;'>ok</span> \] Starting ui display driver"
user << "\[ <span style='color: #00ff00;'>ok</span> \] Initializing chronowalk4-view"
new_camera(user)
START_PROCESSING(SSobj, src)
activated = 1
else
user << "\[ <span style='color: #ff0000;'>fail</span> \] Mounting /dev/helmet"
user << "<span style='color: #ff0000;'><b>FATAL: </b>Unable to locate /dev/helmet. <b>Aborting...</b>"
if(user && ishuman(user) && user.wear_suit == src)
user << "\nChronosuitMK4 login: root"
user << "Password:\n"
user << "root@ChronosuitMK4# chronowalk4 --start\n"
if(user.head && istype(user.head, /obj/item/clothing/head/helmet/space/chronos))
user << "\[ <span style='color: #00ff00;'>ok</span> \] Mounting /dev/helm"
helmet = user.head
helmet.flags |= NODROP
helmet.suit = src
src.flags |= NODROP
user << "\[ <span style='color: #00ff00;'>ok</span> \] Starting brainwave scanner"
user << "\[ <span style='color: #00ff00;'>ok</span> \] Starting ui display driver"
user << "\[ <span style='color: #00ff00;'>ok</span> \] Initializing chronowalk4-view"
new_camera(user)
START_PROCESSING(SSobj, src)
activated = 1
else
user << "\[ <span style='color: #ff0000;'>fail</span> \] Mounting /dev/helm"
user << "<span style='color: #ff0000;'><b>FATAL: </b>Unable to locate /dev/helm. <b>Aborting...</b>"
teleport_now.Grant(user)
cooldown = world.time + cooldowntime
activating = 0
return 0
/obj/item/clothing/suit/space/chronos/proc/deactivate(force = 0, silent = 0)
if(activated && (!teleporting || force))
activating = 1
var/mob/living/carbon/human/user = src.loc
if(user && ishuman(user))
if(user.wear_suit == src)
if(!silent)
user << "\nroot@ChronosuitMK4# chronowalk4 --stop\n"
if(camera)
if(!silent)
user << "\[ <span style='color: #ff5500;'>ok</span> \] Sending TERM signal to chronowalk4-view" //yes I know they aren't a different color when shutting down, but they were too similar at a glance
qdel(camera)
if(helmet)
if(!silent)
user << "\[ <span style='color: #ff5500;'>ok</span> \] Stopping ui display driver"
user << "\[ <span style='color: #ff5500;'>ok</span> \] Stopping brainwave scanner"
user << "\[ <span style='color: #ff5500;'>ok</span> \] Unmounting /dev/helmet"
helmet.flags &= ~NODROP
helmet.suit = null
helmet = null
if(!silent)
user << "logout"
teleport_now.Remove(user)
var/hard_landing = teleporting && force
src.flags &= ~NODROP
cooldown = world.time + cooldowntime * 1.5
activated = 0
activating = 0
finish_chronowalk()
if(teleporting && force)
user.electrocute_act(35, src, safety = 1)
if(user && ishuman(user))
teleport_now.Remove(user)
if(user.wear_suit == src)
if(hard_landing)
user.electrocute_act(35, src, safety = 1)
user.Weaken(10)
if(!silent)
user << "\nroot@ChronosuitMK4# chronowalk4 --stop\n"
if(camera)
user << "\[ <span style='color: #ff5500;'>ok</span> \] Sending TERM signal to chronowalk4-view"
if(helmet)
user << "\[ <span style='color: #ff5500;'>ok</span> \] Stopping ui display driver"
user << "\[ <span style='color: #ff5500;'>ok</span> \] Stopping brainwave scanner"
user << "\[ <span style='color: #ff5500;'>ok</span> \] Unmounting /dev/helmet"
user << "logout"
if(helmet)
helmet.flags &= ~NODROP
helmet.suit = null
helmet = null
if(camera)
qdel(camera)
/obj/effect/chronos_cam
name = "Chronosuit View"
File diff suppressed because it is too large Load Diff
+186 -78
View File
@@ -4,7 +4,9 @@
desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding."
icon_state = "hardsuit0-engineering"
item_state = "eng_helm"
armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75)
obj_integrity = 300
max_integrity = 300
armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75, fire = 50, acid = 75)
var/basestate = "hardsuit"
var/brightness_on = 4 //luminosity when on
var/on = 0
@@ -19,16 +21,25 @@
user.update_inv_head() //so our mob-overlays update
if(on)
set_light(brightness_on)
user.AddLuminosity(brightness_on)
else
set_light(0)
user.AddLuminosity(-brightness_on)
for(var/X in actions)
var/datum/action/A = X
A.UpdateButtonIcon()
/obj/item/clothing/head/helmet/space/hardsuit/pickup(mob/user)
..()
if(on)
user.AddLuminosity(brightness_on)
SetLuminosity(0)
/obj/item/clothing/head/helmet/space/hardsuit/dropped(mob/user)
..()
if(on)
user.AddLuminosity(-brightness_on)
SetLuminosity(brightness_on)
if(suit)
suit.RemoveHelmet()
@@ -63,7 +74,9 @@
desc = "A special suit that protects against hazardous, low pressure environments. Has radiation shielding."
icon_state = "hardsuit-engineering"
item_state = "eng_hardsuit"
armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75)
obj_integrity = 300
max_integrity = 300
armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75, fire = 50, acid = 75)
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/device/t_scanner, /obj/item/weapon/rcd, /obj/item/weapon/pipe_dispenser)
siemens_coefficient = 0
var/obj/item/clothing/head/helmet/space/hardsuit/helmet
@@ -71,11 +84,43 @@
var/helmettype = /obj/item/clothing/head/helmet/space/hardsuit
var/obj/item/weapon/tank/jetpack/suit/jetpack = null
/obj/item/clothing/suit/space/hardsuit/New()
if(jetpack && ispath(jetpack))
jetpack = new jetpack(src)
..()
/obj/item/clothing/suit/space/hardsuit/attack_self(mob/user)
user.changeNext_move(CLICK_CD_MELEE)
..()
/obj/item/clothing/suit/space/hardsuit/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/tank/jetpack/suit))
if(jetpack)
user << "<span class='warning'>[src] already has a jetpack installed.</span>"
return
if(src == user.get_item_by_slot(slot_wear_suit)) //Make sure the player is not wearing the suit before applying the upgrade.
user << "<span class='warning'>You cannot install the upgrade to [src] while wearing it.</span>"
return
if(user.transferItemToLoc(I, src))
jetpack = I
user << "<span class='notice'>You successfully install the jetpack into [src].</span>"
else if(istype(I, /obj/item/weapon/screwdriver))
if(!jetpack)
user << "<span class='warning'>[src] has no jetpack installed.</span>"
return
if(src == user.get_item_by_slot(slot_wear_suit))
user << "<span class='warning'>You cannot remove the jetpack from [src] while wearing it.</span>"
return
jetpack.turn_off()
jetpack.loc = get_turf(src)
jetpack = null
user << "<span class='notice'>You successfully remove the jetpack from [src].</span>"
/obj/item/clothing/suit/space/hardsuit/equipped(mob/user, slot)
..()
if(jetpack)
@@ -101,16 +146,18 @@
desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding."
icon_state = "hardsuit0-engineering"
item_state = "eng_helm"
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75)
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75, fire = 100, acid = 75)
item_color = "engineering"
resistance_flags = FIRE_PROOF
/obj/item/clothing/suit/space/hardsuit/engine
name = "engineering hardsuit"
desc = "A special suit that protects against hazardous, low pressure environments. Has radiation shielding."
icon_state = "hardsuit-engineering"
item_state = "eng_hardsuit"
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75)
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75, fire = 100, acid = 75)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine
resistance_flags = FIRE_PROOF
//Atmospherics
/obj/item/clothing/head/helmet/space/hardsuit/engine/atmos
@@ -119,7 +166,7 @@
icon_state = "hardsuit0-atmospherics"
item_state = "atmo_helm"
item_color = "atmospherics"
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 0)
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 0, fire = 100, acid = 75)
heat_protection = HEAD //Uncomment to enable firesuit protection
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
@@ -128,7 +175,7 @@
desc = "A special suit that protects against hazardous, low pressure environments. Has thermal shielding."
icon_state = "hardsuit-atmospherics"
item_state = "atmo_hardsuit"
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 0)
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 0, fire = 100, acid = 75)
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine/atmos
@@ -141,23 +188,21 @@
icon_state = "hardsuit0-white"
item_state = "ce_helm"
item_color = "white"
armor = list(melee = 40, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 90)
heat_protection = HEAD //Uncomment to enable firesuit protection
armor = list(melee = 40, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 90, fire = 100, acid = 90)
heat_protection = HEAD
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
/obj/item/clothing/suit/space/hardsuit/engine/elite
icon_state = "hardsuit-white"
name = "advanced hardsuit"
desc = "An advanced suit that protects against hazardous, low pressure environments. Shines with a high polish."
item_state = "ce_hardsuit"
armor = list(melee = 40, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 90)
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection
armor = list(melee = 40, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 90, fire = 100, acid = 90)
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine/elite
jetpack = /obj/item/weapon/tank/jetpack/suit
//Mining hardsuit
/obj/item/clothing/head/helmet/space/hardsuit/mining
name = "mining hardsuit helmet"
@@ -166,8 +211,9 @@
item_state = "mining_helm"
item_color = "mining"
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF
heat_protection = CHEST|GROIN|LEGS|ARMS
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 50)
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 50, fire = 50, acid = 75)
brightness_on = 7
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/resonator, /obj/item/device/mining_scanner, /obj/item/device/t_scanner/adv_mining_scanner, /obj/item/weapon/gun/energy/kinetic_accelerator)
@@ -178,12 +224,11 @@
desc = "A special suit that protects against hazardous, low pressure environments. Has reinforced plating for wildlife encounters."
item_state = "mining_hardsuit"
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 50)
resistance_flags = FIRE_PROOF
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 50, fire = 50, acid = 75)
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/weapon/storage/bag/ore,/obj/item/weapon/pickaxe)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/mining
//Syndicate hardsuit
/obj/item/clothing/head/helmet/space/hardsuit/syndi
name = "blood-red hardsuit helmet"
@@ -192,7 +237,7 @@
icon_state = "hardsuit1-syndi"
item_state = "syndie_helm"
item_color = "syndi"
armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50)
armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50, fire = 50, acid = 90)
on = 1
var/obj/item/clothing/suit/space/hardsuit/syndi/linkedsuit = null
actions_types = list(/datum/action/item_action/toggle_helmet_mode)
@@ -216,7 +261,7 @@
user << "<span class='notice'>You switch your hardsuit to EVA mode, sacrificing speed for space protection.</span>"
name = initial(name)
desc = initial(desc)
set_light(brightness_on)
user.AddLuminosity(brightness_on)
flags |= visor_flags
flags_cover |= HEADCOVERSEYES | HEADCOVERSMOUTH
flags_inv |= visor_flags_inv
@@ -225,7 +270,7 @@
user << "<span class='notice'>You switch your hardsuit to combat mode and can now run at full speed.</span>"
name += " (combat)"
desc = alt_desc
set_light(0)
user.AddLuminosity(-brightness_on)
flags &= ~visor_flags
flags_cover &= ~(HEADCOVERSEYES | HEADCOVERSMOUTH)
flags_inv &= ~visor_flags_inv
@@ -269,13 +314,12 @@
icon_state = "hardsuit1-syndi"
item_state = "syndie_hardsuit"
item_color = "syndi"
w_class = 3
armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50)
w_class = WEIGHT_CLASS_NORMAL
armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50, fire = 50, acid = 90)
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi
jetpack = /obj/item/weapon/tank/jetpack/suit
//Elite Syndie suit
/obj/item/clothing/head/helmet/space/hardsuit/syndi/elite
name = "elite syndicate hardsuit helmet"
@@ -283,12 +327,13 @@
alt_desc = "An elite version of the syndicate helmet, with improved armour and fire shielding. It is in combat mode. Property of Gorlex Marauders."
icon_state = "hardsuit0-syndielite"
item_color = "syndielite"
armor = list(melee = 60, bullet = 60, laser = 50, energy = 25, bomb = 55, bio = 100, rad = 70)
armor = list(melee = 60, bullet = 60, laser = 50, energy = 25, bomb = 55, bio = 100, rad = 70, fire = 100, acid = 100)
heat_protection = HEAD
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
visor_flags_inv = 0
visor_flags = 0
on = 0
resistance_flags = FIRE_PROOF | ACID_PROOF
/obj/item/clothing/suit/space/hardsuit/syndi/elite
@@ -298,10 +343,10 @@
icon_state = "hardsuit0-syndielite"
item_color = "syndielite"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite
armor = list(melee = 60, bullet = 60, laser = 50, energy = 25, bomb = 55, bio = 100, rad = 70)
armor = list(melee = 60, bullet = 60, laser = 50, energy = 25, bomb = 55, bio = 100, rad = 70, fire = 100, acid = 100)
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF | ACID_PROOF
//The Owl Hardsuit
/obj/item/clothing/head/helmet/space/hardsuit/syndi/owl
@@ -332,8 +377,8 @@
icon_state = "hardsuit0-wiz"
item_state = "wiz_helm"
item_color = "wiz"
unacidable = 1 //No longer shall our kind be foiled by lone chemists with spray bottles!
armor = list(melee = 40, bullet = 40, laser = 40, energy = 20, bomb = 35, bio = 100, rad = 50)
resistance_flags = FIRE_PROOF | ACID_PROOF //No longer shall our kind be foiled by lone chemists with spray bottles!
armor = list(melee = 40, bullet = 40, laser = 40, energy = 20, bomb = 35, bio = 100, rad = 50, fire = 100, acid = 100)
heat_protection = HEAD //Uncomment to enable firesuit protection
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
@@ -342,9 +387,9 @@
name = "gem-encrusted hardsuit"
desc = "A bizarre gem-encrusted suit that radiates magical energies."
item_state = "wiz_hardsuit"
w_class = 3
unacidable = 1
armor = list(melee = 40, bullet = 40, laser = 40, energy = 20, bomb = 35, bio = 100, rad = 50)
w_class = WEIGHT_CLASS_NORMAL
resistance_flags = FIRE_PROOF | ACID_PROOF
armor = list(melee = 40, bullet = 40, laser = 40, energy = 20, bomb = 35, bio = 100, rad = 50, fire = 100, acid = 100)
allowed = list(/obj/item/weapon/teleportation_scroll,/obj/item/weapon/tank/internals)
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
@@ -359,7 +404,7 @@
item_state = "medical_helm"
item_color = "medical"
flash_protect = 0
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 50)
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 50, fire = 75, acid = 75)
scan_reagents = 1
/obj/item/clothing/suit/space/hardsuit/medical
@@ -368,38 +413,19 @@
desc = "A special suit that protects against hazardous, low pressure environments. Built with lightweight materials for easier movement."
item_state = "medical_hardsuit"
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/weapon/storage/firstaid,/obj/item/device/healthanalyzer,/obj/item/stack/medical)
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 50)
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 50, fire = 75, acid = 75)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/medical
//Captain hardsuit
/obj/item/clothing/head/helmet/space/hardsuit/captain
name = "captain's hardsuit helmet"
desc = "An advanced, armoured helmet for travel and combat in a hazardous, low pressure environment. Feels extra cozy."
icon_state = "hardsuit0-captain"
item_state = "captain_helm"
item_color = "captain"
armor = list(melee = 40, bullet = 50, laser = 50, energy = 25, bomb = 50, bio = 100, rad = 50)
flash_protect = 1
/obj/item/clothing/suit/space/hardsuit/captain
name = "captain's hardsuit"
desc = "An advanced, Nanotrasen exclusive, heavily armoured hardsuit that protects against hazardous, low pressure environments. Warm, sexy, and stylish."
icon_state = "hardsuit-captain"
item_state = "captain_hardsuit"
allowed = list(/obj/item/weapon/tank/internals, /obj/item/device/flashlight,/obj/item/weapon/gun/energy, /obj/item/weapon/gun/projectile, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs)
armor = list(melee = 40, bullet = 50, laser = 50, energy = 25, bomb = 50, bio = 100, rad = 50)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/captain
//Research Director hardsuit
/obj/item/clothing/head/helmet/space/hardsuit/rd
name = "prototype hardsuit helmet"
desc = "A prototype helmet designed for research in a hazardous, low pressure environment. Scientific data flashes across the visor."
icon_state = "hardsuit0-rd"
item_color = "rd"
unacidable = 1
resistance_flags = ACID_PROOF | FIRE_PROOF
var/onboard_hud_enabled = 0 //stops conflicts with another diag HUD
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 100, bio = 100, rad = 60)
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 100, bio = 100, rad = 60, fire = 60, acid = 80)
var/obj/machinery/doppler_array/integrated/bomb_radar
scan_reagents = 1
actions_types = list(/datum/action/item_action/toggle_helmet_light, /datum/action/item_action/toggle_research_scanner)
@@ -428,11 +454,11 @@
name = "prototype hardsuit"
desc = "A prototype suit that protects against hazardous, low pressure environments. Fitted with extensive plating for handling explosives and dangerous research materials."
item_state = "hardsuit-rd"
unacidable = 1
resistance_flags = ACID_PROOF | FIRE_PROOF
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT //Same as an emergency firesuit. Not ideal for extended exposure.
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/gun/energy/wormhole_projector,
/obj/item/weapon/hand_tele, /obj/item/device/aicard)
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 100, bio = 100, rad = 60)
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 100, bio = 100, rad = 60, fire = 60, acid = 80)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/rd
@@ -444,7 +470,7 @@
icon_state = "hardsuit0-sec"
item_state = "sec_helm"
item_color = "sec"
armor = list(melee = 30, bullet = 15, laser = 30,energy = 10, bomb = 10, bio = 100, rad = 50)
armor = list(melee = 30, bullet = 15, laser = 30,energy = 10, bomb = 10, bio = 100, rad = 50, fire = 75, acid = 75)
/obj/item/clothing/suit/space/hardsuit/security
@@ -452,8 +478,8 @@
name = "security hardsuit"
desc = "A special suit that protects against hazardous, low pressure environments. Has an additional layer of armor."
item_state = "sec_hardsuit"
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs)
armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50)
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs)
armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50, fire = 75, acid = 75)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security
/obj/item/clothing/head/helmet/space/hardsuit/security/hos
@@ -461,16 +487,69 @@
desc = "a special bulky helmet designed for work in a hazardous, low pressure environment. Has an additional layer of armor."
icon_state = "hardsuit0-hos"
item_color = "hos"
armor = list(melee = 45, bullet = 25, laser = 30,energy = 10, bomb = 25, bio = 100, rad = 50)
armor = list(melee = 45, bullet = 25, laser = 30,energy = 10, bomb = 25, bio = 100, rad = 50, fire = 95, acid = 95)
/obj/item/clothing/suit/space/hardsuit/security/hos
icon_state = "hardsuit-hos"
name = "head of security's hardsuit"
desc = "A special bulky suit that protects against hazardous, low pressure environments. Has an additional layer of armor."
armor = list(melee = 45, bullet = 25, laser = 30, energy = 10, bomb = 25, bio = 100, rad = 50)
armor = list(melee = 45, bullet = 25, laser = 30, energy = 10, bomb = 25, bio = 100, rad = 50, fire = 95, acid = 95)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security/hos
//Captain
/obj/item/clothing/head/helmet/space/hardsuit/captain
name = "captain's hardsuit helmet"
icon_state = "capspace"
item_state = "capspacehelmet"
desc = "A tactical SWAT helmet MK.II boasting better protection and a horrible fashion sense."
armor = list(melee = 40, bullet = 50, laser = 50, energy = 25, bomb = 50, bio = 100, rad = 50, fire = 100, acid = 100)
resistance_flags = FIRE_PROOF | ACID_PROOF
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR //we want to see the mask
heat_protection = HEAD
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
actions_types = list()
/obj/item/clothing/head/helmet/space/hardsuit/captain/attack_self()
return //Sprites required for flashlight
/obj/item/clothing/suit/space/hardsuit/captain
name = "captain's SWAT suit"
desc = "A MK.II SWAT suit with streamlined joints and armor made out of superior materials, insulated against intense heat. The most advanced tactical armor available Usually reserved for heavy hitter corporate security, this one has a regal finish in Nanotrasen company colors. Better not let the assistants get a hold of it."
icon_state = "caparmor"
item_state = "capspacesuit"
allowed = list(/obj/item/weapon/tank/internals, /obj/item/device/flashlight,/obj/item/weapon/gun/energy, /obj/item/weapon/gun/ballistic, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs)
armor = list(melee = 40, bullet = 50, laser = 50, energy = 25, bomb = 50, bio = 100, rad = 50, fire = 100, acid = 100)
resistance_flags = FIRE_PROOF | ACID_PROOF
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT //this needed to be added a long fucking time ago
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/captain
//Clown
/obj/item/clothing/head/helmet/space/hardsuit/clown
name = "cosmohonk hardsuit helmet"
desc = "A special helmet designed for work in a hazardous, low-humor environment. Has radiation shielding."
icon_state = "hardsuit0-clown"
item_state = "hardsuit0-clown"
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75, fire = 60, acid = 30)
item_color = "clown"
/obj/item/clothing/suit/space/hardsuit/clown
name = "cosmohonk hardsuit"
desc = "A special suit that protects against hazardous, low humor environments. Has radiation shielding. Only a true clown can wear it."
icon_state = "hardsuit-clown"
item_state = "clown_hardsuit"
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75, fire = 60, acid = 30)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/clown
/obj/item/clothing/suit/space/hardsuit/clown/mob_can_equip(mob/M, slot)
if(!..() || !ishuman(M))
return FALSE
var/mob/living/carbon/human/H = M
if(H.mind.assigned_role == "Clown")
return TRUE
else
return FALSE
/////////////SHIELDED//////////////////////////////////
@@ -481,7 +560,8 @@
icon_state = "hardsuit-hos"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security/hos
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/gun,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs)
armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50)
armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50, fire = 100, acid = 100)
resistance_flags = FIRE_PROOF | ACID_PROOF
var/current_charges = 3
var/max_charges = 3 //How many charges total the shielding has
var/recharge_delay = 200 //How long after we've been shot before we can start recharging. 20 seconds here
@@ -490,19 +570,16 @@
var/shield_state = "shield-old"
var/shield_on = "shield-old"
/obj/item/clothing/suit/space/hardsuit/shielded/New()
jetpack = new /obj/item/weapon/tank/jetpack/suit(src)
..()
/obj/item/clothing/suit/space/hardsuit/shielded/hit_reaction(mob/living/carbon/human/owner, attack_text)
recharge_cooldown = world.time + recharge_delay
if(current_charges > 0)
var/datum/effect_system/spark_spread/s = new
s.set_up(2, 1, src)
s.start()
owner.visible_message("<span class='danger'>[owner]'s shields deflect [attack_text] in a shower of sparks!</span>")
current_charges--
recharge_cooldown = world.time + recharge_delay
START_PROCESSING(SSobj, src)
if(recharge_rate)
START_PROCESSING(SSobj, src)
if(current_charges <= 0)
owner.visible_message("[owner]'s shield overloads!")
shield_state = "broken"
@@ -523,17 +600,17 @@
playsound(loc, 'sound/machines/ding.ogg', 50, 1)
STOP_PROCESSING(SSobj, src)
shield_state = "[shield_on]"
if(istype(loc, /mob/living/carbon/human))
if(ishuman(loc))
var/mob/living/carbon/human/C = loc
C.update_inv_wear_suit()
/obj/item/clothing/suit/space/hardsuit/shielded/worn_overlays(isinhands)
. = list()
if(!isinhands)
. += image(icon = 'icons/effects/effects.dmi', icon_state = "[shield_state]")
. += image(layer = MOB_LAYER+0.01, icon = 'icons/effects/effects.dmi', icon_state = "[shield_state]")
/obj/item/clothing/head/helmet/space/hardsuit/shielded
resistance_flags = FIRE_PROOF | ACID_PROOF
///////////////Capture the Flag////////////////////
@@ -545,7 +622,7 @@
item_color = "ert_medical"
flags = STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP //Dont want people changing into the other teams gear
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf
armor = list(melee = 0, bullet = 30, laser = 30, energy = 30, bomb = 50, bio = 100, rad = 100)
armor = list(melee = 0, bullet = 30, laser = 30, energy = 30, bomb = 50, bio = 100, rad = 100, fire = 95, acid = 95)
slowdown = 0
max_charges = 5
@@ -573,7 +650,7 @@
icon_state = "hardsuit0-ert_medical"
item_state = "hardsuit0-ert_medical"
item_color = "ert_medical"
armor = list(melee = 0, bullet = 30, laser = 30, energy = 30, bomb = 50, bio = 100, rad = 100)
armor = list(melee = 0, bullet = 30, laser = 30, energy = 30, bomb = 50, bio = 100, rad = 100, fire = 95, acid = 95)
/obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf/red
@@ -600,16 +677,47 @@
icon_state = "hardsuit1-syndi"
item_state = "syndie_hardsuit"
item_color = "syndi"
armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50)
armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50, fire = 100, acid = 100)
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/syndi
slowdown = 0
/obj/item/clothing/suit/space/hardsuit/shielded/syndi/New()
jetpack = new /obj/item/weapon/tank/jetpack/suit(src)
..()
/obj/item/clothing/head/helmet/space/hardsuit/shielded/syndi
name = "blood-red hardsuit helmet"
desc = "An advanced hardsuit helmet with built in energy shielding."
icon_state = "hardsuit1-syndi"
item_state = "syndie_helm"
item_color = "syndi"
armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50)
armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50, fire = 100, acid = 100)
///SWAT version
/obj/item/clothing/suit/space/hardsuit/shielded/swat
name = "death commando spacesuit"
desc = "an advanced hardsuit favored by commandos for use in special operations."
icon_state = "deathsquad"
item_state = "swat_suit"
item_color = "syndi"
max_charges = 4
current_charges = 4
recharge_delay = 15
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/swat
dog_fashion = /datum/dog_fashion/back/deathsquad
/obj/item/clothing/head/helmet/space/hardsuit/shielded/swat
name = "death commando helmet"
desc = "A tactical helmet with built in energy shielding."
icon_state = "deathsquad"
item_state = "deathsquad"
item_color = "syndi"
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
actions_types = list()
@@ -16,41 +16,42 @@ Contains:
//Death squad armored space suits, not hardsuits!
/obj/item/clothing/head/helmet/space/hardsuit/deathsquad
name = "deathsquad helmet"
desc = "That's not red paint. That's real blood."
name = "MK.III SWAT Helmet"
desc = "An advanced tactical space helmet."
icon_state = "deathsquad"
item_state = "deathsquad"
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100)
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
unacidable = 1
resistance_flags = FIRE_PROOF | ACID_PROOF
actions_types = list()
/obj/item/clothing/head/helmet/space/hardsuit/deathsquad/attack_self(mob/user)
return
/obj/item/clothing/suit/space/hardsuit/deathsquad
name = "deathsquad suit"
desc = "A heavily armored, advanced space suit that protects against most forms of damage."
name = "MK.III SWAT Suit"
desc = "A prototype designed to replace the ageing MK.II SWAT suit. Based on the streamlined MK.II model, the traditional ceramic and graphene plate construction was replaced with plasteel, allowing superior armor against most threats. There's room for some kind of energy projection device on the back."
icon_state = "deathsquad"
item_state = "swat_suit"
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals,/obj/item/weapon/kitchen/knife/combat)
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100)
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
unacidable = 1
resistance_flags = FIRE_PROOF | ACID_PROOF
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/deathsquad
dog_fashion = /datum/dog_fashion/back/deathsquad
//NEW SWAT suit
/obj/item/clothing/suit/space/swat
name = "SWAT armor"
desc = "Space-proof tactical SWAT armor."
name = "MK.I SWAT Suit"
desc = "A tactical space suit first developed in a joint effort by the defunct IS-ERI and Nanotrasen in 20XX for military space operations. A tried and true workhorse, it is very difficult to move in but offers robust protection against all threats!"
icon_state = "heavy"
item_state = "swat_suit"
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals,/obj/item/weapon/kitchen/knife/combat)
armor = list(melee = 40, bullet = 30, laser = 30,energy = 30, bomb = 50, bio = 90, rad = 20)
armor = list(melee = 40, bullet = 30, laser = 30,energy = 30, bomb = 50, bio = 90, rad = 20, fire = 100, acid = 100)
strip_delay = 120
resistance_flags = FIRE_PROOF | ACID_PROOF
/obj/item/clothing/head/helmet/space/beret
name = "officer's beret"
@@ -58,10 +59,10 @@ Contains:
icon_state = "beret_badge"
flags = STOPSPRESSUREDMAGE
flags_inv = 0
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100)
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
unacidable = 1
resistance_flags = FIRE_PROOF | ACID_PROOF
/obj/item/clothing/suit/space/officer
name = "officer's jacket"
@@ -71,12 +72,12 @@ Contains:
blood_overlay_type = "coat"
slowdown = 0
flags_inv = 0
w_class = 3
w_class = WEIGHT_CLASS_NORMAL
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals)
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100)
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
unacidable = 1
resistance_flags = FIRE_PROOF | ACID_PROOF
//NASA Voidsuit
@@ -120,7 +121,7 @@ Contains:
desc = "Yarr."
icon_state = "pirate"
item_state = "pirate"
armor = list(melee = 30, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
armor = list(melee = 30, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 60, acid = 75)
flags = STOPSPRESSUREDMAGE
strip_delay = 40
put_on_delay = 20
@@ -131,11 +132,11 @@ Contains:
desc = "Yarr."
icon_state = "pirate"
item_state = "pirate"
w_class = 3
w_class = WEIGHT_CLASS_NORMAL
flags_inv = 0
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals, /obj/item/weapon/melee/energy/sword/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/weapon/reagent_containers/food/drinks/bottle/rum)
slowdown = 0
armor = list(melee = 30, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
armor = list(melee = 30, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 60, acid = 75)
strip_delay = 40
put_on_delay = 20
@@ -146,7 +147,7 @@ Contains:
icon_state = "hardsuit0-ert_commander"
item_state = "hardsuit0-ert_commander"
item_color = "ert_commander"
armor = list(melee = 65, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 100, rad = 100)
armor = list(melee = 65, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 100, rad = 100, fire = 80, acid = 80)
strip_delay = 130
flags = STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP
brightness_on = 7
@@ -158,7 +159,7 @@ Contains:
item_state = "ert_command"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals)
armor = list(melee = 30, bullet = 50, laser = 30, energy = 50, bomb = 50, bio = 100, rad = 100)
armor = list(melee = 30, bullet = 50, laser = 30, energy = 50, bomb = 50, bio = 100, rad = 100, fire = 0, acid = 95)
slowdown = 0
strip_delay = 130
@@ -200,13 +201,14 @@ Contains:
icon_state = "ert_medical"
item_state = "ert_medical"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/med
species_exception = list(/datum/species/angel)
/obj/item/clothing/suit/space/eva
name = "EVA suit"
icon_state = "space"
item_state = "s_suit"
desc = "A lightweight space suit with the basic ability to protect the wearer from the vacuum of space during emergencies."
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20, fire = 50, acid = 65)
/obj/item/clothing/head/helmet/space/eva
name = "EVA helmet"
@@ -214,17 +216,17 @@ Contains:
item_state = "space"
desc = "A lightweight space helmet with the basic ability to protect the wearer from the vacuum of space during emergencies."
flash_protect = 0
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20, fire = 50, acid = 65)
/obj/item/clothing/head/helmet/space/freedom
name = "eagle helmet"
desc = "An advanced, space-proof helmet. It appears to be modeled after an old-world eagle."
icon_state = "griffinhat"
item_state = "griffinhat"
armor = list(melee = 20, bullet = 40, laser = 30, energy = 25, bomb = 100, bio = 100, rad = 100)
armor = list(melee = 20, bullet = 40, laser = 30, energy = 25, bomb = 100, bio = 100, rad = 100, fire = 80, acid = 80)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
unacidable = 1
resistance_flags = ACID_PROOF
/obj/item/clothing/suit/space/freedom
name = "eagle suit"
@@ -232,10 +234,10 @@ Contains:
icon_state = "freedom"
item_state = "freedom"
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals)
armor = list(melee = 20, bullet = 40, laser = 30,energy = 25, bomb = 100, bio = 100, rad = 100)
armor = list(melee = 20, bullet = 40, laser = 30,energy = 25, bomb = 100, bio = 100, rad = 100, fire = 80, acid = 80)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
unacidable = 1
resistance_flags = ACID_PROOF
//Carpsuit, bestsuit, lovesuit
/obj/item/clothing/head/helmet/space/hardsuit/carp
@@ -243,7 +245,7 @@ Contains:
desc = "Spaceworthy and it looks like a space carp's head, smells like one too."
icon_state = "carp_helm"
item_state = "syndicate"
armor = list(melee = -20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 75) //As whimpy as a space carp
armor = list(melee = -20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 75, fire = 60, acid = 75) //As whimpy as a space carp
brightness_on = 0 //luminosity when on
actions_types = list()
flags = STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP
@@ -255,8 +257,8 @@ Contains:
icon_state = "carp_suit"
item_state = "space_suit_syndicate"
slowdown = 0 //Space carp magic, never stop believing
armor = list(melee = -20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 75) //As whimpy whimpy whoo
allowed = list(/obj/item/weapon/tank/internals, /obj/item/weapon/gun/projectile/automatic/speargun) //I'm giving you a hint here
armor = list(melee = -20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 75, fire = 60, acid = 75) //As whimpy whimpy whoo
allowed = list(/obj/item/weapon/tank/internals, /obj/item/weapon/gun/ballistic/automatic/speargun) //I'm giving you a hint here
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/carp
@@ -268,6 +270,7 @@ Contains:
item_color = "knight_grey"
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
actions_types = list()
resistance_flags = FIRE_PROOF
/obj/item/clothing/suit/space/hardsuit/ert/paranormal
name = "paranormal response team suit"
@@ -276,7 +279,7 @@ Contains:
item_state = "knight_grey"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF
/obj/item/clothing/suit/space/hardsuit/ert/paranormal/New()
..()
+11 -8
View File
@@ -1,11 +1,12 @@
//Suits for the pink and grey skeletons!
//Suits for the pink and grey skeletons! //EVA version no longer used in favor of the Jumpsuit version
/obj/item/clothing/suit/space/eva/plasmaman
name = "plasmaman suit"
desc = "A special containment suit designed to protect a plasmaman's volatile body from outside exposure and quickly extinguish it in emergencies."
name = "EVA plasma envirosuit"
desc = "A special plasma containment suit designed to be space-worthy, as well as worn over other clothing. Like it's smaller counterpart, it can automatically extinguish the wearer in a crisis, and holds twice as many charges."
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_casing,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank)
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0, fire = 100, acid = 75)
resistance_flags = FIRE_PROOF
icon_state = "plasmaman_suit"
item_state = "plasmaman_suit"
var/next_extinguish = 0
@@ -15,7 +16,7 @@
/obj/item/clothing/suit/space/eva/plasmaman/examine(mob/user)
..()
user << "<span class='notice'>There are [extinguishes_left] extinguisher canisters left in this suit.</span>"
user << "<span class='notice'>There are [extinguishes_left] extinguisher charges left in this suit.</span>"
/obj/item/clothing/suit/space/eva/plasmaman/proc/Extinguish(mob/living/carbon/human/H)
@@ -30,16 +31,18 @@
extinguishes_left--
H.visible_message("<span class='warning'>[H]'s suit automatically extinguishes them!</span>","<span class='warning'>Your suit automatically extinguishes you.</span>")
H.ExtinguishMob()
PoolOrNew(/obj/effect/particle_effect/water, get_turf(H))
new /obj/effect/particle_effect/water(get_turf(H))
//I just want the light feature of the hardsuit helmet
/obj/item/clothing/head/helmet/space/plasmaman
name = "plasmaman helmet"
desc = "A special containment helmet designed to protect a plasmaman's volatile body from outside exposure and quickly extinguish it in emergencies."
name = "plasma envirosuit helmet"
desc = "A special containment helmet that allows plasma-based lifeforms to exist safely in an oxygenated environment. It is space-worthy, and may be worn in tandem with other EVA gear."
icon_state = "plasmaman-helm"
item_color = "plasma" //needed for the helmet lighting
item_state = "plasmaman-helm"
strip_delay = 80
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0, fire = 100, acid = 75)
resistance_flags = FIRE_PROOF
+6 -7
View File
@@ -1,20 +1,19 @@
//Regular syndicate space suit
/obj/item/clothing/head/helmet/space/syndicate
name = "red space helmet"
desc = "Top secret spess helmet."
icon_state = "syndicate"
item_state = "syndicate"
desc = "Has a tag: Totally not property of an enemy corporation, honest."
armor = list(melee = 40, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
desc = "Has a tag on it: Totally not property of an enemy corporation, honest!"
armor = list(melee = 40, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 80, acid = 85)
/obj/item/clothing/suit/space/syndicate
name = "red space suit"
icon_state = "syndicate"
item_state = "space_suit_syndicate"
desc = "Has a tag on it: Totally not property of of a hostile corporation, honest!"
w_class = 3
desc = "Has a tag on it: Totally not property of an enemy corporation, honest!"
w_class = WEIGHT_CLASS_NORMAL
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals)
armor = list(melee = 40, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
armor = list(melee = 40, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 80, acid = 85)
//Green syndicate space suit
@@ -146,4 +145,4 @@
/obj/item/clothing/suit/space/syndicate/black/engie
name = "black engineering space suit"
icon_state = "syndicate-black-engie"
item_state = "syndicate-black"
item_state = "syndicate-black"
+29 -68
View File
@@ -1,5 +1,5 @@
/obj/item/clothing/suit/armor
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/weapon/kitchen/knife/combat,/obj/item/weapon/tank/internals/emergency_oxygen)
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/weapon/kitchen/knife/combat,/obj/item/weapon/tank/internals/emergency_oxygen)
body_parts_covered = CHEST
cold_protection = CHEST|GROIN
min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
@@ -7,7 +7,10 @@
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
strip_delay = 60
put_on_delay = 40
burn_state = FIRE_PROOF
obj_integrity = 250
max_integrity = 250
resistance_flags = 0
armor = list(melee = 30, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 50)
/obj/item/clothing/suit/armor/vest
name = "armor"
@@ -15,7 +18,6 @@
icon_state = "armoralt"
item_state = "armoralt"
blood_overlay_type = "armor"
armor = list(melee = 30, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0)
dog_fashion = /datum/dog_fashion/back
/obj/item/clothing/suit/armor/vest/alt
@@ -23,13 +25,17 @@
icon_state = "armor"
item_state = "armor"
/obj/item/clothing/suit/armor/vest/blueshirt
icon_state = "blueshift"
item_state = "blueshift"
/obj/item/clothing/suit/armor/hos
name = "armored greatcoat"
desc = "A greatcoat enchanced with a special alloy for some protection and style for those with a commanding presence."
icon_state = "hos"
item_state = "greatcoat"
body_parts_covered = CHEST|GROIN|ARMS|LEGS
armor = list(melee = 30, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0)
armor = list(melee = 30, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 70, acid = 90)
cold_protection = CHEST|GROIN|LEGS|ARMS
heat_protection = CHEST|GROIN|LEGS|ARMS
strip_delay = 80
@@ -51,7 +57,7 @@
cold_protection = CHEST|GROIN|ARMS|HANDS
heat_protection = CHEST|GROIN|ARMS|HANDS
strip_delay = 70
burn_state = FLAMMABLE
resistance_flags = FLAMMABLE
dog_fashion = null
/obj/item/clothing/suit/armor/vest/warden/alt
@@ -75,8 +81,9 @@
icon_state = "capcarapace"
item_state = "armor"
body_parts_covered = CHEST|GROIN
armor = list(melee = 50, bullet = 40, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0)
armor = list(melee = 50, bullet = 40, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 100, acid = 90)
dog_fashion = null
resistance_flags = FIRE_PROOF
/obj/item/clothing/suit/armor/vest/capcarapace/alt
name = "captain's parade jacket"
@@ -92,7 +99,7 @@
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
armor = list(melee = 50, bullet = 10, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0)
armor = list(melee = 50, bullet = 10, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 80)
flags_inv = HIDEJUMPSUIT
strip_delay = 80
put_on_delay = 60
@@ -103,7 +110,7 @@
icon_state = "bonearmor"
item_state = "bonearmor"
blood_overlay_type = "armor"
armor = list(melee = 35, bullet = 25, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0)
armor = list(melee = 35, bullet = 25, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 50)
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS
/obj/item/clothing/suit/armor/bulletproof
@@ -112,7 +119,7 @@
icon_state = "bulletproof"
item_state = "armor"
blood_overlay_type = "armor"
armor = list(melee = 15, bullet = 80, laser = 10, energy = 10, bomb = 40, bio = 0, rad = 0)
armor = list(melee = 15, bullet = 80, laser = 10, energy = 10, bomb = 40, bio = 0, rad = 0, fire = 50, acid = 50)
strip_delay = 70
put_on_delay = 50
@@ -122,7 +129,8 @@
icon_state = "armor_reflec"
item_state = "armor_reflec"
blood_overlay_type = "armor"
armor = list(melee = 10, bullet = 10, laser = 60, energy = 50, bomb = 0, bio = 0, rad = 0)
armor = list(melee = 10, bullet = 10, laser = 60, energy = 50, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 100)
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
var/hit_reflect_chance = 40
/obj/item/clothing/suit/armor/laserproof/IsReflect(def_zone)
@@ -135,8 +143,8 @@
name = "armor"
desc = "An armored vest with a detective's badge on it."
icon_state = "detective-armor"
allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/weapon/melee/classic_baton/telescopic)
burn_state = FLAMMABLE
allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/weapon/melee/classic_baton)
resistance_flags = FLAMMABLE
dog_fashion = null
@@ -150,9 +158,9 @@
icon_state = "reactiveoff"
item_state = "reactiveoff"
blood_overlay_type = "armor"
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 100)
actions_types = list(/datum/action/item_action/toggle)
unacidable = 1
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
hit_reaction_chance = 50
@@ -166,7 +174,7 @@
user << "<span class='notice'>[src] is now inactive.</span>"
src.icon_state = "reactiveoff"
src.item_state = "reactiveoff"
src.add_fingerprint(user)
src.add_fingerprint(user)
return
/obj/item/clothing/suit/armor/reactive/emp_act(severity)
@@ -275,7 +283,7 @@
for(var/mob/living/M in view(6, owner))
if(M == owner)
continue
owner.Beam(M,icon_state="lightning[rand(1, 12)]",icon='icons/effects/effects.dmi',time=5)
owner.Beam(M,icon_state="lightning[rand(1, 12)]",time=5)
M.adjustFireLoss(25)
playsound(M, 'sound/machines/defib_zap.ogg', 50, 1, -1)
reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration
@@ -327,7 +335,7 @@
desc = "A suit that protects against some damage."
icon_state = "centcom"
item_state = "centcom"
w_class = 4//bulky item
w_class = WEIGHT_CLASS_BULKY
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals/emergency_oxygen)
flags = THICKMATERIAL
@@ -336,20 +344,20 @@
min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100)
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 90, acid = 90)
/obj/item/clothing/suit/armor/heavy
name = "heavy armor"
desc = "A heavily armored suit that protects against moderate damage."
icon_state = "heavy"
item_state = "swat_suit"
w_class = 4//bulky item
w_class = WEIGHT_CLASS_BULKY
gas_transfer_coefficient = 0.90
flags = THICKMATERIAL
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
slowdown = 3
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100)
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 90, acid = 90)
/obj/item/clothing/suit/armor/tdome
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
@@ -357,7 +365,7 @@
flags = THICKMATERIAL
cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100)
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100, fire = 90, acid = 90)
/obj/item/clothing/suit/armor/tdome/red
name = "thunderdome suit"
@@ -395,50 +403,3 @@
desc = "God wills it!"
icon_state = "knight_templar"
item_state = "knight_templar"
/obj/item/clothing/suit/armor/yautja_fake
name = "ceremonial breastplate"
desc = "Half of an aging, ceremonial breastplate. Its usefulness as armor are long gone."
icon_state = "yautjahalfarmor"
item_state = "yautjahalfarmor"
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
unacidable = TRUE
burn_state = FIRE_PROOF
body_parts_covered = CHEST|GROIN|LEGS|ARMS
cold_protection = CHEST|GROIN|LEGS|ARMS
heat_protection = CHEST|GROIN|LEGS|ARMS
allowed = list(/obj/item/device/flashlight,
/obj/item/weapon/tank/internals,
/obj/item/weapon/resonator,
/obj/item/device/mining_scanner,
/obj/item/device/t_scanner/adv_mining_scanner,
/obj/item/weapon/gun/energy/kinetic_accelerator,
/obj/item/weapon/pickaxe)
/obj/item/clothing/suit/armor/yautja
name = "clan breastplate"
desc = "An armored breastplate. This type is used by most clans for combat among elders."
icon_state = "yautjafullarmor"
item_state = "yautjafullarmor"
armor = list(melee = 50, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 0, rad = 15)
unacidable = TRUE
burn_state = FIRE_PROOF
body_parts_covered = CHEST|GROIN|LEGS|ARMS
cold_protection = CHEST|GROIN|LEGS|ARMS
heat_protection = CHEST|GROIN|LEGS|ARMS
allowed = list(/obj/item/device/flashlight,
/obj/item/weapon/tank/internals,
/obj/item/weapon/resonator,
/obj/item/device/mining_scanner,
/obj/item/device/t_scanner/adv_mining_scanner,
/obj/item/weapon/gun,
/obj/item/weapon/pickaxe,
/obj/item/weapon/melee,
/obj/item/weapon/kitchen/knife)
/obj/item/clothing/suit/armor/yautja/half
name = "clan half-breastplate"
desc = "Half of an armored breastplate. This type is used by most clans for combat among blooded."
icon_state = "yautjahalfarmor"
item_state = "yautjahalfarmor"
armor = list(melee = 30, bullet = 30, laser = 30, energy = 30, bomb = 30, bio = 0, rad = 5)
+7 -9
View File
@@ -5,10 +5,9 @@
desc = "A hood that protects the head and face from biological comtaminants."
permeability_coefficient = 0.01
flags = THICKMATERIAL
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20, fire = 30, acid = 100)
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR|HIDEFACE
unacidable = 1
burn_state = FIRE_PROOF
resistance_flags = ACID_PROOF
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
/obj/item/clothing/suit/bio_suit
@@ -16,19 +15,18 @@
desc = "A suit that protects against biological contamination."
icon_state = "bio"
item_state = "bio_suit"
w_class = 4//bulky item
w_class = WEIGHT_CLASS_BULKY
gas_transfer_coefficient = 0.01
permeability_coefficient = 0.01
flags = THICKMATERIAL
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
slowdown = 1
allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/pen,/obj/item/device/flashlight/pen, /obj/item/weapon/reagent_containers/dropper, /obj/item/weapon/reagent_containers/syringe, /obj/item/weapon/reagent_containers/hypospray)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20, fire = 30, acid = 100)
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
strip_delay = 70
put_on_delay = 70
unacidable = 1
burn_state = FIRE_PROOF
resistance_flags = ACID_PROOF
//Standard biosuit, orange stripe
/obj/item/clothing/head/bio_hood/general
@@ -48,11 +46,11 @@
//Security biosuit, grey with red stripe across the chest
/obj/item/clothing/head/bio_hood/security
armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 100, rad = 20)
armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 100, rad = 20, fire = 30, acid = 100)
icon_state = "bio_security"
/obj/item/clothing/suit/bio_suit/security
armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 100, rad = 20)
armor = list(melee = 25, bullet = 15, laser = 25, energy = 10, bomb = 25, bio = 100, rad = 20, fire = 30, acid = 100)
icon_state = "bio_security"
+23 -80
View File
@@ -1,12 +1,12 @@
//Cloaks. No, not THAT kind of cloak.
/obj/item/clothing/suit/cloak
/obj/item/clothing/neck/cloak
name = "brown cloak"
desc = "It's a cape that can be worn on your back."
desc = "It's a cape that can be worn around your neck."
icon = 'icons/obj/clothing/cloaks.dmi'
icon_state = "qmcloak"
item_state = "qmcloak"
w_class = 2
w_class = WEIGHT_CLASS_SMALL
body_parts_covered = CHEST|GROIN|LEGS|ARMS
/obj/item/clothing/head/cloakhood
@@ -18,118 +18,61 @@
flags = NODROP
flags_inv = HIDEHAIR|HIDEEARS
/obj/item/clothing/cloak/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is strangling themself with [src]! It looks like they're trying to commit suicide.</span>")
/obj/item/clothing/neck/cloak/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is strangling [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
return(OXYLOSS)
/obj/item/clothing/suit/cloak/hos
/obj/item/clothing/neck/cloak/hos
name = "head of security's cloak"
desc = "Worn by Securistan, ruling the station with an iron fist. It's slightly armored."
icon_state = "hoscloak"
allowed = list(/obj/item/weapon/gun/energy/gun/hos)
armor = list(melee = 30, bullet = 30, laser = 10, energy = 10, bomb = 25, bio = 0, rad = 0)
/obj/item/clothing/suit/cloak/qm
/obj/item/clothing/neck/cloak/qm
name = "quartermaster's cloak"
desc = "Worn by Cargonia, supplying the station with the necessary tools for survival."
/obj/item/clothing/suit/cloak/cmo
/obj/item/clothing/neck/cloak/cmo
name = "chief medical officer's cloak"
desc = "Worn by Meditopia, the valiant men and women keeping pestilence at bay. It's slightly shielded from contaminants."
icon_state = "cmocloak"
allowed = list(/obj/item/weapon/reagent_containers/hypospray/CMO)
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 25, rad = 0)
/obj/item/clothing/suit/cloak/ce
/obj/item/clothing/neck/cloak/ce
name = "chief engineer's cloak"
desc = "Worn by Engitopia, wielders of an unlimited power. It's slightly shielded against radiation."
icon_state = "cecloak"
allowed = list(/obj/item/weapon/rcd, /obj/item/weapon/pipe_dispenser)
armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 10)
/obj/item/clothing/suit/cloak/rd
name = "research director's cloak."
/obj/item/clothing/neck/cloak/rd
name = "research director's cloak"
desc = "Worn by Sciencia, thaumaturges and researchers of the universe. It's slightly shielded from contaminants."
icon_state = "rdcloak"
allowed = list(/obj/item/weapon/hand_tele, /obj/item/weapon/storage/part_replacer)
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 10, rad = 0)
/obj/item/clothing/suit/cloak/cap
/obj/item/clothing/neck/cloak/cap
name = "captain's cloak"
desc = "Worn by the commander of Space Station 13."
icon_state = "capcloak"
allowed = list(/obj/item/weapon/gun/energy/laser/captain)
armor = list(melee = 30, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 10, rad = 10)
/obj/item/clothing/neck/cloak/hop
name = "head of personnel's cloak"
desc = "Worn by the Head of Personnel. It smells faintly of bureaucracy."
icon_state = "hopcloak"
/obj/item/clothing/suit/hooded/cloak/drake
name = "drake armour"
icon_state = "dragon"
desc = "A suit of armour fashioned from the remains of an ash drake. "
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/resonator, /obj/item/device/mining_scanner, /obj/item/device/t_scanner/adv_mining_scanner, /obj/item/weapon/gun/energy/kinetic_accelerator, /obj/item/weapon/pickaxe, /obj/item/weapon/twohanded/spear)
armor = list(melee = 70, bullet = 30, laser = 50, energy = 40, bomb = 70, bio = 60, rad = 50)
hooded = 1
hoodtype = /obj/item/clothing/head/cloakhood/drake
armor = list(melee = 70, bullet = 30, laser = 50, energy = 40, bomb = 70, bio = 60, rad = 50, fire = 100, acid = 100)
hoodtype = /obj/item/clothing/head/hooded/cloakhood/drake
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
unacidable = 1
resistance_flags = FIRE_PROOF | ACID_PROOF
/obj/item/clothing/head/cloakhood/drake
/obj/item/clothing/head/hooded/cloakhood/drake
name = "drake helm"
icon_state = "dragon"
desc = "The skull of a dragon."
armor = list(melee = 70, bullet = 30, laser = 50, energy = 40, bomb = 70, bio = 60, rad = 50)
armor = list(melee = 70, bullet = 30, laser = 50, energy = 40, bomb = 70, bio = 60, rad = 50, fire = 100, acid = 100)
heat_protection = HEAD
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
unacidable = 1
/* //wip
/obj/item/clothing/cloak/wizard //Not actually obtainable until proper balancing can be done
name = "cloak of invisibility"
desc = "A tattered old thing that apparently gifts the wearer with near-invisibility."
armor = list(melee = 10, bullet = 10, laser = 10, energy = 10, bomb = 10, bio = 10, rad = 10)
action_button_name = "Flaunt Cloak"
var/invisible = 0
/obj/item/clothing/cloak/wizard/ui_action_click()
toggleInvisibility(usr)
return
/obj/item/clothing/cloak/wizard/proc/toggleInvisibility(mob/user)
if(user.slot_back != src)
user << "<span class='warning'>You need to be wearing the cloak first!</span>"
return
user.visible_message("<span class='notice'>[user] flaunts [src]!</span>")
if(!invisible)
makeInvisible(user)
return
if(invisible)
breakInvisible(user)
return
/obj/item/clothing/cloak/wizard/proc/makeInvisible(mob/user)
if(!invisible)
user.visible_message("<span class='warning'>[user] suddenly fades away!</span>", \
"<span class='notice'>You have become nearly invisible. This will require slow movement and will break upon taking damage.</span>")
flags |= NODROP //Cannot unequip while invisible
user.alpha = 10
slowdown = 2
invisible = 1
/obj/item/clothing/cloak/wizard/proc/breakInvisible(mob/user)
if(invisible)
user.visible_message("<span class='warning'>[user] suddenly appears from thin air!</span>", \
"<span class='warning'>The enchantment has broken! You are visible again.</span>")
flags -= NODROP
user.alpha = 255
slowdown = 0
invisible = 0
/obj/item/clothing/cloak/wizard/IsShield()
breakInvisible(src.loc)
return 0
/obj/item/clothing/cloak/wizard/IsReflect()
breakInvisible(src.loc)
return 0
*/
resistance_flags = FIRE_PROOF | ACID_PROOF
+34 -10
View File
@@ -30,18 +30,15 @@
item_state = "chaplain_hoodie"
body_parts_covered = CHEST|GROIN|LEGS|ARMS
allowed = list(/obj/item/weapon/storage/book/bible, /obj/item/weapon/nullrod, /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, /obj/item/weapon/storage/fancy/candle_box, /obj/item/candle, /obj/item/weapon/tank/internals/emergency_oxygen)
hooded = 1
hoodtype = /obj/item/clothing/head/chaplain_hood
hoodtype = /obj/item/clothing/head/hooded/chaplain_hood
/obj/item/clothing/head/chaplain_hood
/obj/item/clothing/head/hooded/chaplain_hood
name = "chaplain hood"
desc = "For protecting your identity when immolating demons."
icon_state = "chaplain_hood"
body_parts_covered = HEAD
flags = NODROP
flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS
//Chaplain
/obj/item/clothing/suit/nun
name = "nun robe"
desc = "Maximum piety in this star system."
@@ -51,6 +48,22 @@
flags_inv = HIDESHOES|HIDEJUMPSUIT
allowed = list(/obj/item/weapon/storage/book/bible, /obj/item/weapon/nullrod, /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, /obj/item/weapon/storage/fancy/candle_box, /obj/item/candle, /obj/item/weapon/tank/internals/emergency_oxygen)
/obj/item/clothing/suit/studentuni
name = "student robe"
desc = "The uniform of a bygone institute of learning."
icon_state = "studentuni"
item_state = "studentuni"
body_parts_covered = ARMS|CHEST
allowed = list(/obj/item/weapon/storage/book/bible, /obj/item/weapon/nullrod, /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, /obj/item/weapon/storage/fancy/candle_box, /obj/item/candle, /obj/item/weapon/tank/internals/emergency_oxygen)
/obj/item/clothing/suit/witchhunter
name = "witchunter garb"
desc = "This worn outfit saw much use back in the day."
icon_state = "witchhunter"
item_state = "witchhunter"
body_parts_covered = CHEST|GROIN|LEGS|ARMS
allowed = list(/obj/item/weapon/storage/book/bible, /obj/item/weapon/nullrod, /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, /obj/item/weapon/storage/fancy/candle_box, /obj/item/candle, /obj/item/weapon/tank/internals/emergency_oxygen)
//Chef
/obj/item/clothing/suit/toggle/chef
name = "chef's apron"
@@ -81,8 +94,8 @@
item_state = "det_suit"
blood_overlay_type = "coat"
body_parts_covered = CHEST|GROIN|LEGS|ARMS
allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/weapon/melee/classic_baton/telescopic)
armor = list(melee = 25, bullet = 10, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0)
allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder,/obj/item/weapon/melee/classic_baton)
armor = list(melee = 25, bullet = 10, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 45)
cold_protection = CHEST|GROIN|LEGS|ARMS
heat_protection = CHEST|GROIN|LEGS|ARMS
@@ -100,8 +113,7 @@
item_state = "hazard"
blood_overlay_type = "armor"
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/device/t_scanner,/obj/item/device/radio)
burn_state = FIRE_PROOF
resistance_flags = 0
//Lawyer
/obj/item/clothing/suit/toggle/lawyer
name = "blue suit jacket"
@@ -155,10 +167,22 @@
item_state = "hosbluejacket"
body_parts_covered = CHEST|ARMS
//Surgeon
/obj/item/clothing/suit/apron/surgical
name = "surgical apron"
desc = "A sterile blue surgical apron."
icon_state = "surgical"
allowed = list(/obj/item/weapon/scalpel, /obj/item/weapon/surgical_drapes, /obj/item/weapon/cautery, /obj/item/weapon/hemostat, /obj/item/weapon/retractor)
//Curator
/obj/item/clothing/suit/curator
name = "treasure hunter's coat"
desc = "Both fashionable and lightly armoured, this jacket is favoured by treasure hunters the galaxy over."
icon_state = "curator"
item_state = "curator"
blood_overlay_type = "coat"
body_parts_covered = CHEST|ARMS
allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/weapon/melee/curator_whip)
armor = list(melee = 25, bullet = 10, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 45)
cold_protection = CHEST|ARMS
heat_protection = CHEST|ARMS
+2 -2
View File
@@ -6,7 +6,7 @@
blood_overlay_type = "coat"
body_parts_covered = CHEST|ARMS
allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/weapon/soap,/obj/item/device/sensor_device,/obj/item/weapon/tank/internals/emergency_oxygen)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0, fire = 50, acid = 50)
togglename = "buttons"
/obj/item/clothing/suit/toggle/labcoat/cmo
@@ -45,4 +45,4 @@
/obj/item/clothing/suit/toggle/labcoat/science
name = "scientist labcoat"
desc = "A suit that protects against minor chemical spills. Has a purple stripe on the shoulder."
icon_state = "labcoat_tox"
icon_state = "labcoat_tox"
+74 -60
View File
@@ -16,7 +16,7 @@
blood_overlay_type = "armor"
body_parts_covered = CHEST
allowed = list (/obj/item/weapon/gun/energy/laser/bluetag)
burn_state = FIRE_PROOF
resistance_flags = 0
/obj/item/clothing/suit/redtag
name = "red laser tag armor"
@@ -26,7 +26,7 @@
blood_overlay_type = "armor"
body_parts_covered = CHEST
allowed = list (/obj/item/weapon/gun/energy/laser/redtag)
burn_state = FIRE_PROOF
resistance_flags = 0
/*
* Costume
@@ -38,12 +38,11 @@
item_state = "pirate"
allowed = list(/obj/item/weapon/melee/energy/sword/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/weapon/reagent_containers/food/drinks/bottle/rum)
/obj/item/clothing/suit/hgpirate
/obj/item/clothing/suit/pirate/captain
name = "pirate captain coat"
desc = "Yarr."
icon_state = "hgpirate"
item_state = "hgpirate"
allowed = list(/obj/item/weapon/melee/energy/sword/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/weapon/reagent_containers/food/drinks/bottle/rum)
/obj/item/clothing/suit/cyborg_suit
@@ -87,10 +86,10 @@
icon_state = "syndicate-black-red"
item_state = "syndicate-black-red"
desc = "A plastic replica of the Syndicate space suit. You'll look just like a real murderous Syndicate agent in this! This is a toy, it is not made for use in space!"
w_class = 3
w_class = WEIGHT_CLASS_NORMAL
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy)
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
burn_state = FIRE_PROOF
resistance_flags = 0
/obj/item/clothing/suit/hastur
name = "\improper Hastur's robe"
@@ -135,7 +134,7 @@
item_state = "owl_wings"
togglename = "wings"
body_parts_covered = ARMS|CHEST
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic)
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic)
actions_types = list(/datum/action/item_action/toggle_wings)
/obj/item/clothing/suit/toggle/owlwings/griffinwings
@@ -154,7 +153,6 @@
flags_inv = HIDEJUMPSUIT
allowed = list(/obj/item/weapon/storage/book/bible, /obj/item/weapon/nullrod, /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, /obj/item/weapon/storage/fancy/candle_box, /obj/item/candle, /obj/item/weapon/tank/internals/emergency_oxygen)
/obj/item/clothing/suit/cardborg
name = "cardborg suit"
desc = "An ordinary cardboard box with holes cut in the sides."
@@ -180,7 +178,7 @@
if(istype(borghead, /obj/item/clothing/head/cardborg)) //why is this done this way? because equipped() is called BEFORE THE ITEM IS IN THE SLOT WHYYYY
var/image/I = image(icon = 'icons/mob/robots.dmi' , icon_state = "robot", loc = H)
I.override = 1
I.overlays += image(icon = 'icons/mob/robots.dmi' , icon_state = "eyes-standard") //gotta look realistic
I.overlays += image(icon = 'icons/mob/robots.dmi' , icon_state = "robot_e") //gotta look realistic
H.add_alt_appearance("standard_borg_disguise", I, silicon_mobs+H) //you look like a robot to robots! (including yourself because you're totally a robot)
@@ -233,18 +231,16 @@
body_parts_covered = CHEST|GROIN|ARMS
cold_protection = CHEST|GROIN|ARMS
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT //Space carp like space, so you should too
allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/weapon/gun/projectile/automatic/speargun)
hooded = 1
hoodtype = /obj/item/clothing/head/carp_hood
allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen, /obj/item/weapon/gun/ballistic/automatic/speargun)
hoodtype = /obj/item/clothing/head/hooded/carp_hood
/obj/item/clothing/head/carp_hood
/obj/item/clothing/head/hooded/carp_hood
name = "carp hood"
desc = "A hood attached to a carp costume."
icon_state = "carp_casual"
body_parts_covered = HEAD
cold_protection = HEAD
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
flags = NODROP
flags_inv = HIDEHAIR|HIDEEARS
/obj/item/clothing/suit/hooded/ian_costume //It's Ian, rub his bell- oh god what happened to his inside parts?
@@ -255,19 +251,34 @@
body_parts_covered = CHEST|GROIN|ARMS
//cold_protection = CHEST|GROIN|ARMS
//min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
allowed = list(,)
hooded = 1
hoodtype = /obj/item/clothing/head/ian_hood
allowed = list()
hoodtype = /obj/item/clothing/head/hooded/ian_hood
dog_fashion = /datum/dog_fashion/back
/obj/item/clothing/head/ian_hood
/obj/item/clothing/head/hooded/ian_hood
name = "corgi hood"
desc = "A hood that looks just like a corgi's head, it won't guarantee dog biscuits."
icon_state = "ian"
body_parts_covered = HEAD
//cold_protection = HEAD
//min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
flags = NODROP
flags_inv = HIDEHAIR|HIDEEARS
/obj/item/clothing/suit/hooded/bee_costume // It's Hip!
name = "bee costume"
desc = "Bee the true Queen!"
icon_state = "bee"
item_state = "labcoat"
body_parts_covered = CHEST|GROIN|ARMS
flags = THICKMATERIAL
hoodtype = /obj/item/clothing/head/hooded/bee_hood
/obj/item/clothing/head/hooded/bee_hood
name = "bee hood"
desc = "A hood attached to a bee costume."
icon_state = "bee"
body_parts_covered = HEAD
flags = THICKMATERIAL
flags_inv = HIDEHAIR|HIDEEARS
/obj/item/clothing/suit/hooded/bloated_human //OH MY GOD WHAT HAVE YOU DONE!?!?!?
@@ -276,17 +287,16 @@
icon_state = "lingspacesuit"
item_state = "labcoat"
body_parts_covered = CHEST|GROIN|ARMS
allowed = list(,)
hooded = 1
allowed = list()
actions_types = list(/datum/action/item_action/toggle_human_head)
hoodtype = /obj/item/clothing/head/human_head
hoodtype = /obj/item/clothing/head/hooded/human_head
/obj/item/clothing/head/human_head
/obj/item/clothing/head/hooded/human_head
name = "bloated human head"
desc = "A horribly bloated and mismatched human head."
icon_state = "lingspacehelmet"
body_parts_covered = HEAD
flags = NODROP
flags_cover = HEADCOVERSEYES
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
@@ -323,6 +333,12 @@
icon_state = "nerdshirt"
item_state = "nerdshirt"
/obj/item/clothing/suit/vapeshirt //wearing this is asking to get beat.
name = "Vape Naysh shirt"
desc = "A cheap white T-shirt with a big tacky \"VN\" on the front, Why would you wear this unironicly?"
icon_state = "vapeshirt"
item_state = "vapeshirt"
/obj/item/clothing/suit/jacket
name = "bomber jacket"
desc = "Aviators not included."
@@ -338,9 +354,9 @@
desc = "Pompadour not included."
icon_state = "leatherjacket"
item_state = "hostrench"
burn_state = FIRE_PROOF
resistance_flags = 0
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/weapon/gun/projectile/automatic/pistol,/obj/item/weapon/gun/projectile/revolver,/obj/item/weapon/gun/projectile/revolver/detective,/obj/item/device/radio)
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/weapon/gun/ballistic/automatic/pistol,/obj/item/weapon/gun/ballistic/revolver,/obj/item/weapon/gun/ballistic/revolver/detective,/obj/item/device/radio)
/obj/item/clothing/suit/jacket/leather/overcoat
name = "leather overcoat"
@@ -354,7 +370,7 @@
desc = "A thick jacket with a rubbery, water-resistant shell."
icon_state = "pufferjacket"
item_state = "hostrench"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0, fire = 0, acid = 0)
/obj/item/clothing/suit/jacket/puffer/vest
name = "puffer vest"
@@ -363,14 +379,14 @@
item_state = "armor"
body_parts_covered = CHEST|GROIN
cold_protection = CHEST|GROIN
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 30, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 30, rad = 0, fire = 0, acid = 0)
/obj/item/clothing/suit/jacket/miljacket
name = "military jacket"
desc = "A canvas jacket styled after classical American military garb. Feels sturdy, yet comfortable."
icon_state = "militaryjacket"
item_state = "militaryjacket"
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/weapon/gun/projectile/automatic/pistol,/obj/item/weapon/gun/projectile/revolver,/obj/item/weapon/gun/projectile/revolver/detective,/obj/item/device/radio)
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/weapon/gun/ballistic/automatic/pistol,/obj/item/weapon/gun/ballistic/revolver,/obj/item/weapon/gun/ballistic/revolver/detective,/obj/item/device/radio)
/obj/item/clothing/suit/jacket/letterman
name = "letterman jacket"
@@ -416,103 +432,101 @@
body_parts_covered = CHEST|GROIN|ARMS
cold_protection = CHEST|GROIN|ARMS
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0)
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter)
hooded = 1
/obj/item/clothing/head/winterhood
/obj/item/clothing/head/hooded/winterhood
name = "winter hood"
desc = "A hood attached to a heavy winter jacket."
icon_state = "winterhood"
body_parts_covered = HEAD
cold_protection = HEAD
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
flags = NODROP
flags_inv = HIDEHAIR|HIDEEARS
/obj/item/clothing/suit/hooded/wintercoat/captain
name = "captain's winter coat"
icon_state = "coatcaptain"
armor = list(melee = 25, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0)
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic)
hoodtype = /obj/item/clothing/head/winterhood/captain
armor = list(melee = 25, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 0, acid = 50)
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic)
hoodtype = /obj/item/clothing/head/hooded/winterhood/captain
/obj/item/clothing/head/winterhood/captain
/obj/item/clothing/head/hooded/winterhood/captain
icon_state = "winterhood_captain"
/obj/item/clothing/suit/hooded/wintercoat/security
name = "security winter coat"
icon_state = "coatsecurity"
armor = list(melee = 25, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0)
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic)
hoodtype = /obj/item/clothing/head/winterhood/security
armor = list(melee = 25, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 0, acid = 45)
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/ballistic,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic)
hoodtype = /obj/item/clothing/head/hooded/winterhood/security
/obj/item/clothing/head/winterhood/security
/obj/item/clothing/head/hooded/winterhood/security
icon_state = "winterhood_security"
/obj/item/clothing/suit/hooded/wintercoat/medical
name = "medical winter coat"
icon_state = "coatmedical"
allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/weapon/melee/classic_baton/telescopic)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0)
hoodtype = /obj/item/clothing/head/winterhood/medical
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0, fire = 0, acid = 45)
hoodtype = /obj/item/clothing/head/hooded/winterhood/medical
/obj/item/clothing/head/winterhood/medical
/obj/item/clothing/head/hooded/winterhood/medical
icon_state = "winterhood_medical"
/obj/item/clothing/suit/hooded/wintercoat/science
name = "science winter coat"
icon_state = "coatscience"
allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/weapon/melee/classic_baton/telescopic)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0)
hoodtype = /obj/item/clothing/head/winterhood/science
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0, fire = 0, acid = 0)
hoodtype = /obj/item/clothing/head/hooded/winterhood/science
/obj/item/clothing/head/winterhood/science
/obj/item/clothing/head/hooded/winterhood/science
icon_state = "winterhood_science"
/obj/item/clothing/suit/hooded/wintercoat/engineering
name = "engineering winter coat"
icon_state = "coatengineer"
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 20)
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 20, fire = 30, acid = 45)
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/device/t_scanner, /obj/item/weapon/rcd, /obj/item/weapon/pipe_dispenser)
hoodtype = /obj/item/clothing/head/winterhood/engineering
hoodtype = /obj/item/clothing/head/hooded/winterhood/engineering
/obj/item/clothing/head/winterhood/engineering
/obj/item/clothing/head/hooded/winterhood/engineering
icon_state = "winterhood_engineer"
/obj/item/clothing/suit/hooded/wintercoat/engineering/atmos
name = "atmospherics winter coat"
icon_state = "coatatmos"
hoodtype = /obj/item/clothing/head/winterhood/engineering/atmos
hoodtype = /obj/item/clothing/head/hooded/winterhood/engineering/atmos
/obj/item/clothing/head/winterhood/engineering/atmos
/obj/item/clothing/head/hooded/winterhood/engineering/atmos
icon_state = "winterhood_atmos"
/obj/item/clothing/suit/hooded/wintercoat/hydro
name = "hydroponics winter coat"
icon_state = "coathydro"
allowed = list(/obj/item/weapon/reagent_containers/spray/plantbgone,/obj/item/device/plant_analyzer,/obj/item/seeds,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/cultivator,/obj/item/weapon/reagent_containers/spray/pestspray,/obj/item/weapon/hatchet,/obj/item/weapon/storage/bag/plants)
hoodtype = /obj/item/clothing/head/winterhood/hydro
hoodtype = /obj/item/clothing/head/hooded/winterhood/hydro
/obj/item/clothing/head/winterhood/hydro
item_state = "winterhood_hydro"
/obj/item/clothing/head/hooded/winterhood/hydro
icon_state = "winterhood_hydro"
/obj/item/clothing/suit/hooded/wintercoat/cargo
name = "cargo winter coat"
icon_state = "coatcargo"
hoodtype = /obj/item/clothing/head/winterhood/cargo
hoodtype = /obj/item/clothing/head/hooded/winterhood/cargo
/obj/item/clothing/head/winterhood/cargo
/obj/item/clothing/head/hooded/winterhood/cargo
icon_state = "winterhood_cargo"
/obj/item/clothing/suit/hooded/wintercoat/miner
name = "mining winter coat"
icon_state = "coatminer"
allowed = list(/obj/item/weapon/pickaxe,/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter)
armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
hoodtype = /obj/item/clothing/head/winterhood/miner
armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
hoodtype = /obj/item/clothing/head/hooded/winterhood/miner
/obj/item/clothing/head/winterhood/miner
/obj/item/clothing/head/hooded/winterhood/miner
icon_state = "winterhood_miner"
/obj/item/clothing/suit/spookyghost
+32 -7
View File
@@ -2,8 +2,9 @@
/obj/item/clothing/suit/hooded
actions_types = list(/datum/action/item_action/toggle_hood)
var/obj/item/clothing/head/hood
var/hoodtype = /obj/item/clothing/head/winterhood //so the chaplain hoodie or other hoodies can override this
var/obj/item/clothing/head/hooded/hood
var/hoodtype = /obj/item/clothing/head/hooded/winterhood //so the chaplain hoodie or other hoodies can override this
hooded = 1
/obj/item/clothing/suit/hooded/New()
MakeHood()
@@ -11,11 +12,13 @@
/obj/item/clothing/suit/hooded/Destroy()
qdel(hood)
hood = null
return ..()
/obj/item/clothing/suit/hooded/proc/MakeHood()
if(!hood)
var/obj/item/clothing/head/W = new hoodtype(src)
var/obj/item/clothing/head/hooded/W = new hoodtype(src)
W.suit = src
hood = W
/obj/item/clothing/suit/hooded/ui_action_click()
@@ -35,9 +38,10 @@
suittoggled = 0
if(ishuman(hood.loc))
var/mob/living/carbon/H = hood.loc
H.unEquip(hood, 1)
H.transferItemToLoc(hood, src, TRUE)
H.update_inv_wear_suit()
hood.loc = src
else
hood.forceMove(src)
for(var/X in actions)
var/datum/action/A = X
A.UpdateButtonIcon()
@@ -66,6 +70,26 @@
else
RemoveHood()
/obj/item/clothing/head/hooded
var/obj/item/clothing/suit/hooded/suit
/obj/item/clothing/head/hooded/Destroy()
suit = null
return ..()
/obj/item/clothing/head/hooded/dropped()
..()
if(suit)
suit.RemoveHood()
/obj/item/clothing/head/hooded/equipped(mob/user, slot)
..()
if(slot != slot_head)
if(suit)
suit.RemoveHood()
else
qdel(src)
//Toggle exosuits for different aesthetic styles (hoodies, suit jacket buttons, etc)
/obj/item/clothing/suit/toggle/AltClick(mob/user)
@@ -145,11 +169,12 @@
var/mob/living/carbon/H = helmet.loc
if(helmet.on)
helmet.attack_self(H)
H.unEquip(helmet, 1)
H.transferItemToLoc(helmet, src, TRUE)
H.update_inv_wear_suit()
H << "<span class='notice'>The helmet on the hardsuit disengages.</span>"
playsound(src.loc, 'sound/mecha/mechmove03.ogg', 50, 1)
helmet.loc = src
else
helmet.forceMove(src)
/obj/item/clothing/suit/space/hardsuit/dropped()
..()
+13 -12
View File
@@ -14,7 +14,7 @@
desc = "A suit that helps protect against fire and heat."
icon_state = "fire"
item_state = "ro_suit"
w_class = 4
w_class = WEIGHT_CLASS_BULKY
gas_transfer_coefficient = 0.90
permeability_coefficient = 0.50
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
@@ -28,7 +28,7 @@
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
strip_delay = 60
put_on_delay = 60
burn_state = FIRE_PROOF
resistance_flags = FIRE_PROOF
/obj/item/clothing/suit/fire/firefighter
icon_state = "firesuit"
@@ -57,7 +57,7 @@
desc = "Use in case of bomb."
icon_state = "bombsuit"
flags = THICKMATERIAL
armor = list(melee = 20, bullet = 0, laser = 20,energy = 10, bomb = 100, bio = 0, rad = 0)
armor = list(melee = 20, bullet = 0, laser = 20,energy = 10, bomb = 100, bio = 0, rad = 0, fire = 80, acid = 50)
flags_inv = HIDEFACE|HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR
cold_protection = HEAD
min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT
@@ -66,20 +66,21 @@
strip_delay = 70
put_on_delay = 70
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
burn_state = FIRE_PROOF
resistance_flags = 0
/obj/item/clothing/suit/bomb_suit
name = "bomb suit"
desc = "A suit designed for safety when handling explosives."
icon_state = "bombsuit"
item_state = "bombsuit"
w_class = 4//bulky item
w_class = WEIGHT_CLASS_BULKY
gas_transfer_coefficient = 0.01
permeability_coefficient = 0.01
flags = THICKMATERIAL
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
slowdown = 2
armor = list(melee = 20, bullet = 0, laser = 20,energy = 10, bomb = 100, bio = 0, rad = 0)
armor = list(melee = 20, bullet = 0, laser = 20,energy = 10, bomb = 100, bio = 0, rad = 0, fire = 80, acid = 50)
flags_inv = HIDEJUMPSUIT
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
@@ -87,7 +88,7 @@
min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
strip_delay = 70
put_on_delay = 70
burn_state = FIRE_PROOF
resistance_flags = 0
/obj/item/clothing/head/bomb_hood/security
@@ -109,26 +110,26 @@
desc = "A hood with radiation protective properties. The label reads, 'Made with lead. Please do not consume insulation.'"
flags = THICKMATERIAL
flags_inv = HIDEMASK|HIDEEARS|HIDEFACE|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100, fire = 30, acid = 30)
strip_delay = 60
put_on_delay = 60
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
burn_state = FIRE_PROOF
resistance_flags = 0
/obj/item/clothing/suit/radiation
name = "radiation suit"
desc = "A suit that protects against radiation. The label reads, 'Made with lead. Please do not consume insulation.'"
icon_state = "rad"
item_state = "rad_suit"
w_class = 4//bulky item
w_class = WEIGHT_CLASS_BULKY
gas_transfer_coefficient = 0.90
permeability_coefficient = 0.50
flags = THICKMATERIAL
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/device/geiger_counter)
slowdown = 1.5
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100, fire = 30, acid = 30)
strip_delay = 60
put_on_delay = 60
flags_inv = HIDEJUMPSUIT
burn_state = FIRE_PROOF
resistance_flags = 0
+94 -16
View File
@@ -4,11 +4,10 @@
icon_state = "wizard"
gas_transfer_coefficient = 0.01 // IT'S MAGICAL OKAY JEEZ +1 TO NOT DIE
permeability_coefficient = 0.01
armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20)
armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20, fire = 100, acid = 100)
strip_delay = 50
put_on_delay = 50
unacidable = 1
burn_state = FIRE_PROOF
resistance_flags = FIRE_PROOF | ACID_PROOF
dog_fashion = /datum/dog_fashion/head/blue_wizard
/obj/item/clothing/head/wizard/red
@@ -35,7 +34,8 @@
icon_state = "wizard-fake"
gas_transfer_coefficient = 1
permeability_coefficient = 1
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
resistance_flags = FLAMMABLE
dog_fashion = /datum/dog_fashion/head/blue_wizard
/obj/item/clothing/head/wizard/marisa
@@ -66,13 +66,12 @@
gas_transfer_coefficient = 0.01
permeability_coefficient = 0.01
body_parts_covered = CHEST|GROIN|ARMS|LEGS
armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20)
armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20, fire = 100, acid = 100)
allowed = list(/obj/item/weapon/teleportation_scroll)
flags_inv = HIDEJUMPSUIT
strip_delay = 50
put_on_delay = 50
unacidable = 1
burn_state = FIRE_PROOF
resistance_flags = FIRE_PROOF | ACID_PROOF
/obj/item/clothing/suit/wizrobe/red
name = "red wizard robe"
@@ -124,9 +123,8 @@
item_state = "wizrobe"
gas_transfer_coefficient = 1
permeability_coefficient = 1
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
unacidable = 0
burn_state = FLAMMABLE
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
resistance_flags = FLAMMABLE
/obj/item/clothing/head/wizard/marisa/fake
name = "witch hat"
@@ -134,9 +132,8 @@
icon_state = "marisa"
gas_transfer_coefficient = 1
permeability_coefficient = 1
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
unacidable = 0
burn_state = FLAMMABLE
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
resistance_flags = FLAMMABLE
/obj/item/clothing/suit/wizrobe/marisa/fake
name = "witch robe"
@@ -145,6 +142,87 @@
item_state = "marisarobe"
gas_transfer_coefficient = 1
permeability_coefficient = 1
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
unacidable = 0
burn_state = FLAMMABLE
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
resistance_flags = FLAMMABLE
/obj/item/clothing/suit/wizrobe/paper
name = "papier-mache robe" // no non-latin characters!
desc = "A robe held together by various bits of clear-tape and paste."
icon_state = "wizard-paper"
item_state = "wizrobe"
var/robe_charge = TRUE
actions_types = list(/datum/action/item_action/stickmen)
/obj/item/clothing/suit/wizrobe/paper/ui_action_click(mob/user, action)
stickmen()
/obj/item/clothing/suit/wizrobe/paper/verb/stickmen()
set category = "Object"
set name = "Summon Stick Minions"
set src in usr
if(!isliving(usr))
return
if(!robe_charge)
usr << "<span class='warning'>\The robe's internal magic supply is still recharging!</span>"
return
usr.say("Rise, my creation! Off your page into this realm!")
playsound(src.loc, 'sound/magic/Summon_Magic.ogg', 50, 1, 1)
var/mob/living/M = new /mob/living/simple_animal/hostile/stickman(get_turf(usr))
var/list/factions = usr.faction
M.faction = factions
src.robe_charge = FALSE
sleep(30)
src.robe_charge = TRUE
usr << "<span class='notice'>\The robe hums, its internal magic supply restored.</span>"
//Shielded Armour
/obj/item/clothing/suit/space/hardsuit/shielded/wizard
name = "battlemage armour"
desc = "Not all wizards are afraid of getting up close and personal."
icon_state = "battlemage"
item_state = "battlemage"
recharge_rate = 0
current_charges = 15
recharge_cooldown = INFINITY
shield_state = "shield-red"
shield_on = "shield-red"
min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard
armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20, fire = 100, acid = 100)
slowdown = 0
resistance_flags = FIRE_PROOF | ACID_PROOF
/obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard
name = "battlemage helmet"
desc = "A suitably impressive helmet.."
icon_state = "battlemage"
item_state = "battlemage"
min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20, fire = 100, acid = 100)
actions_types = null //No inbuilt light
resistance_flags = FIRE_PROOF | ACID_PROOF
/obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard/attack_self(mob/user)
return
/obj/item/wizard_armour_charge
name = "battlemage shield charges"
desc = "A powerful rune that will increase the number of hits a suit of battlemage armour can take before failing.."
icon = 'icons/effects/effects.dmi'
icon_state = "electricity2"
/obj/item/wizard_armour_charge/afterattack(obj/item/clothing/suit/space/hardsuit/shielded/wizard/W, mob/user)
..()
if(!istype(W))
user << "<span class='warning'>The rune can only be used on battlemage armour!</span>"
return
W.current_charges += 8
user <<"<span class='notice'>You charge \the [W]. It can now absorb [W.current_charges] hits.</span>"
qdel(src)
+1 -1
View File
@@ -14,7 +14,7 @@
icon_state = "black"
item_state = "bl_suit"
item_color = "black"
burn_state = FIRE_PROOF
resistance_flags = 0
/obj/item/clothing/under/color/grey
name = "grey jumpsuit"
+11 -19
View File
@@ -8,14 +8,14 @@
item_color = "barman"
alt_covers_chest = 1
/obj/item/clothing/under/rank/captain //Alright, technically not a 'civilian' but its better then giving a .dm file for a single define.
desc = "It's a blue jumpsuit with some gold markings denoting the rank of \"Captain\"."
name = "captain's jumpsuit"
icon_state = "captain"
item_state = "b_suit"
item_color = "captain"
sensor_mode = 3
random_sensor = 0
/obj/item/clothing/under/rank/cargo
name = "quartermaster's jumpsuit"
@@ -24,13 +24,14 @@
item_state = "lb_suit"
item_color = "qm"
/obj/item/clothing/under/rank/cargotech
name = "cargo technician's jumpsuit"
desc = "Shooooorts! They're comfy and easy to wear!"
icon_state = "cargotech"
item_state = "lb_suit"
item_color = "cargo"
body_parts_covered = CHEST|GROIN|ARMS
mutantrace_variation = MUTANTRACE_VARIATION
/obj/item/clothing/under/rank/chaplain
@@ -41,7 +42,6 @@
item_color = "chapblack"
can_adjust = 0
/obj/item/clothing/under/rank/chef
name = "cook's suit"
desc = "A suit which is given only to the most <b>hardcore</b> cooks in space."
@@ -49,7 +49,6 @@
item_color = "chef"
alt_covers_chest = 1
/obj/item/clothing/under/rank/clown
name = "clown suit"
desc = "<i>'HONK!'</i>"
@@ -71,7 +70,6 @@
item_color = "hop"
can_adjust = 0
/obj/item/clothing/under/rank/hydroponics
desc = "It's a jumpsuit designed to protect against minor plant-related hazards."
name = "botanist's jumpsuit"
@@ -80,45 +78,38 @@
item_color = "hydroponics"
permeability_coefficient = 0.50
/obj/item/clothing/under/rank/janitor
desc = "It's the official uniform of the station's janitor. It has minor protection from biohazards."
name = "janitor's jumpsuit"
icon_state = "janitor"
item_color = "janitor"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0)
/obj/item/clothing/under/lawyer
desc = "Slick threads."
name = "Lawyer suit"
can_adjust = 0
/obj/item/clothing/under/lawyer/black
icon_state = "lawyer_black"
item_state = "lawyer_black"
item_color = "lawyer_black"
/obj/item/clothing/under/lawyer/female
icon_state = "black_suit_fem"
item_state = "black_suit_fem"
item_color = "black_suit_fem"
/obj/item/clothing/under/lawyer/red
icon_state = "lawyer_red"
item_state = "lawyer_red"
item_color = "lawyer_red"
/obj/item/clothing/under/lawyer/blue
icon_state = "lawyer_blue"
item_state = "lawyer_blue"
item_color = "lawyer_blue"
/obj/item/clothing/under/lawyer/bluesuit
name = "blue suit"
desc = "A classy suit and tie."
@@ -128,7 +119,6 @@
can_adjust = 1
alt_covers_chest = 1
/obj/item/clothing/under/lawyer/purpsuit
name = "purple suit"
icon_state = "lawyer_purp"
@@ -138,7 +128,6 @@
can_adjust = 1
alt_covers_chest = 1
/obj/item/clothing/under/lawyer/blacksuit
name = "black suit"
desc = "A professional black suit. Nanotrasen Investigation Bureau approved!"
@@ -148,7 +137,6 @@
can_adjust = 1
alt_covers_chest = 1
/obj/item/clothing/under/rank/librarian
name = "sensible suit"
desc = "It's very... sensible."
@@ -157,6 +145,12 @@
item_color = "red_suit"
can_adjust = 0
/obj/item/clothing/under/rank/librarian/curator
name = "treasure hunter uniform"
desc = "A rugged uniform suitable for treasure hunting."
icon_state = "curator"
item_state = "curator"
item_color = "curator"
/obj/item/clothing/under/rank/mime
name = "mime's outfit"
@@ -165,7 +159,6 @@
item_state = "mime"
item_color = "mime"
/obj/item/clothing/under/rank/miner
desc = "It's a snappy jumpsuit with a sturdy set of overalls. It is very dirty."
name = "shaft miner's jumpsuit"
@@ -173,7 +166,6 @@
item_state = "miner"
item_color = "miner"
/obj/item/clothing/under/rank/miner/lavaland
desc = "A green uniform for operating in hazardous environments."
name = "shaft miner's jumpsuit"
@@ -5,8 +5,8 @@
icon_state = "chiefengineer"
item_state = "gy_suit"
item_color = "chief"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10)
burn_state = FIRE_PROOF
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10, fire = 80, acid = 40)
resistance_flags = 0
/obj/item/clothing/under/rank/atmospheric_technician
desc = "It's a jumpsuit worn by atmospheric technicians."
@@ -14,7 +14,7 @@
icon_state = "atmos"
item_state = "atmos_suit"
item_color = "atmos"
burn_state = FIRE_PROOF
resistance_flags = 0
/obj/item/clothing/under/rank/engineer
desc = "It's an orange high visibility jumpsuit worn by engineers. It has minor radiation shielding."
@@ -22,11 +22,13 @@
icon_state = "engine"
item_state = "engi_suit"
item_color = "engine"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10, fire = 60, acid = 20)
resistance_flags = 0
/obj/item/clothing/under/rank/roboticist
desc = "It's a slimming black with reinforced seams; great for industrial work."
name = "roboticist's jumpsuit"
icon_state = "robotics"
item_state = "robotics"
item_color = "robotics"
item_color = "robotics"
resistance_flags = 0
+12 -12
View File
@@ -7,7 +7,7 @@
icon_state = "director"
item_state = "lb_suit"
item_color = "director"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 10, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 10, rad = 0, fire = 0, acid = 35)
can_adjust = 0
/obj/item/clothing/under/rank/research_director/alt
@@ -16,7 +16,7 @@
icon_state = "rdwhimsy"
item_state = "rdwhimsy"
item_color = "rdwhimsy"
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 10, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 10, rad = 0, fire = 0, acid = 0)
can_adjust = 1
alt_covers_chest = 1
@@ -26,18 +26,18 @@
icon_state = "rdturtle"
item_state = "p_suit"
item_color = "rdturtle"
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 10, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 10, rad = 0, fire = 0, acid = 0)
can_adjust = 1
alt_covers_chest = 1
/obj/item/clothing/under/rank/scientist
desc = "It's made of a special fiber that provides minor protection against biohazards. It has markings that denote the wearer as a scientist."
desc = "It's made of a special fiber that provides minor protection against explosives. It has markings that denote the wearer as a scientist."
name = "scientist's jumpsuit"
icon_state = "toxins"
item_state = "w_suit"
item_color = "toxinswhite"
permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0, fire = 0, acid = 0)
/obj/item/clothing/under/rank/chemist
@@ -47,7 +47,7 @@
item_state = "w_suit"
item_color = "chemistrywhite"
permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 50, acid = 65)
/*
* Medical
@@ -59,7 +59,7 @@
item_state = "w_suit"
item_color = "cmo"
permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0)
/obj/item/clothing/under/rank/geneticist
desc = "It's made of a special fiber that gives special protection against biohazards. It has a genetics rank stripe on it."
@@ -68,7 +68,7 @@
item_state = "w_suit"
item_color = "geneticswhite"
permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0)
/obj/item/clothing/under/rank/virologist
desc = "It's made of a special fiber that gives special protection against biohazards. It has a virologist rank stripe on it."
@@ -77,7 +77,7 @@
item_state = "w_suit"
item_color = "virologywhite"
permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0)
/obj/item/clothing/under/rank/nursesuit
desc = "It's a jumpsuit commonly worn by nursing staff in the medical department."
@@ -86,7 +86,7 @@
item_state = "w_suit"
item_color = "nursesuit"
permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0)
fitted = NO_FEMALE_UNIFORM
can_adjust = 0
@@ -97,7 +97,7 @@
item_state = "w_suit"
item_color = "medical"
permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0)
/obj/item/clothing/under/rank/medical/blue
name = "medical scrubs"
@@ -118,4 +118,4 @@
desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in deep purple."
icon_state = "scrubspurple"
item_color = "scrubspurple"
can_adjust = 0
can_adjust = 0
+25 -5
View File
@@ -15,14 +15,17 @@
icon_state = "rsecurity"
item_state = "r_suit"
item_color = "rsecurity"
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 30)
strip_delay = 50
alt_covers_chest = 1
sensor_mode = 3
random_sensor = 0
/obj/item/clothing/under/rank/security/grey
icon_state = "security"
item_state = "gy_suit"
item_color = "security"
/obj/item/clothing/under/rank/warden
name = "security suit"
@@ -30,9 +33,11 @@
icon_state = "rwarden"
item_state = "r_suit"
item_color = "rwarden"
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 30)
strip_delay = 50
alt_covers_chest = 1
sensor_mode = 3
random_sensor = 0
/obj/item/clothing/under/rank/warden/grey
icon_state = "warden"
@@ -48,9 +53,11 @@
icon_state = "detective"
item_state = "det"
item_color = "detective"
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 30, acid = 30)
strip_delay = 50
alt_covers_chest = 1
sensor_mode = 3
random_sensor = 0
/obj/item/clothing/under/rank/det/grey
name = "noir suit"
@@ -69,9 +76,11 @@
icon_state = "rhos"
item_state = "r_suit"
item_color = "rhos"
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 50)
strip_delay = 60
alt_covers_chest = 1
sensor_mode = 3
random_sensor = 0
/obj/item/clothing/under/rank/head_of_security/grey
icon_state = "hos"
@@ -111,4 +120,15 @@
icon_state = "wardenblueclothes"
item_state = "wardenblueclothes"
item_color = "wardenblueclothes"
alt_covers_chest = 1
alt_covers_chest = 1
/*
*Blueshirt
*/
/obj/item/clothing/under/rank/security/blueshirt
desc = "I'm a little busy right now, Calhoun."
icon_state = "blueshift"
item_state = "blueshift"
item_color = "blueshift"
can_adjust = 0
+97 -36
View File
@@ -22,6 +22,14 @@
item_color = "ek"
can_adjust = 0
/obj/item/clothing/under/scratch
name = "white suit"
desc = "A white suit, suitable for an excellent host"
icon_state = "scratch"
item_state = "scratch"
item_color = "scratch"
can_adjust = 0
/obj/item/clothing/under/sl_suit
desc = "It's a very amish looking suit."
name = "amish suit"
@@ -37,7 +45,7 @@
item_state = "armor"
can_adjust = 0
strip_delay = 100
burn_state = FIRE_PROOF
resistance_flags = 0
/obj/item/clothing/under/waiter
name = "waiter's outfit"
@@ -79,6 +87,14 @@
item_color = "sexyclown"
can_adjust = 0
/obj/item/clothing/under/jabroni
name = "Jabroni Outfit"
desc = "The leather club is two sectors down."
icon_state = "darkholme"
item_state = "darkholme"
item_color = "darkholme"
can_adjust = 0
/obj/item/clothing/under/rank/vice
name = "vice officer's jumpsuit"
desc = "It's the standard issue pretty-boy outfit, as seen on Holo-Vision."
@@ -108,7 +124,7 @@
icon_state = "black"
item_state = "bl_suit"
item_color = "black"
w_class = 4//bulky item
w_class = WEIGHT_CLASS_BULKY
gas_transfer_coefficient = 0.01
permeability_coefficient = 0.02
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
@@ -117,7 +133,7 @@
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT
can_adjust = 0
burn_state = FIRE_PROOF
resistance_flags = 0
/obj/item/clothing/under/acj
name = "administrative cybernetic jumpsuit"
@@ -128,13 +144,13 @@
gas_transfer_coefficient = 0.01
permeability_coefficient = 0.01
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
armor = list(melee = 100, bullet = 100, laser = 100,energy = 100, bomb = 100, bio = 100, rad = 100)
armor = list(melee = 100, bullet = 100, laser = 100,energy = 100, bomb = 100, bio = 100, rad = 100, fire = 100, acid = 100)
cold_protection = CHEST | GROIN | LEGS | FEET | ARMS | HANDS
min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT
can_adjust = 0
burn_state = FIRE_PROOF
resistance_flags = FIRE_PROOF | ACID_PROOF
/obj/item/clothing/under/owl
name = "owl uniform"
@@ -251,7 +267,7 @@
item_state = "burial"
item_color = "burial"
/obj/item/clothing/under/blackskirt
/obj/item/clothing/under/skirt/black
name = "black skirt"
desc = "A black skirt, very fancy!"
icon_state = "blackskirt"
@@ -260,7 +276,7 @@
fitted = FEMALE_UNIFORM_TOP
can_adjust = 0
/obj/item/clothing/under/blueskirt
/obj/item/clothing/under/skirt/blue
name = "blue skirt"
desc = "A blue, casual skirt."
icon_state = "blueskirt"
@@ -270,12 +286,26 @@
fitted = FEMALE_UNIFORM_TOP
can_adjust = 0
/obj/item/clothing/under/blueskirt/redskirt
/obj/item/clothing/under/skirt/red
name = "red skirt"
desc = "A red, casual skirt."
icon_state = "redskirt"
item_color = "redskirt"
item_state = "r_suit"
body_parts_covered = CHEST|GROIN|ARMS
fitted = FEMALE_UNIFORM_TOP
can_adjust = 0
/obj/item/clothing/under/skirt/purple
name = "purple skirt"
desc = "A purple, casual skirt."
icon_state = "purpleskirt"
item_color = "purpleskirt"
item_state = "p_suit"
body_parts_covered = CHEST|GROIN|ARMS
fitted = FEMALE_UNIFORM_TOP
can_adjust = 0
/obj/item/clothing/under/schoolgirl
name = "blue schoolgirl uniform"
@@ -347,6 +377,10 @@
fitted = FEMALE_UNIFORM_TOP
can_adjust = 0
/obj/item/clothing/under/kilt/highlander
desc = "You're the only one worthy of this kilt."
flags = NODROP
/obj/item/clothing/under/sexymime
name = "sexy mime outfit"
desc = "The only time when you DON'T enjoy looking at someone's rack."
@@ -366,7 +400,11 @@
body_parts_covered = CHEST|GROIN|ARMS
fitted = NO_FEMALE_UNIFORM
can_adjust = 0
burn_state = FIRE_PROOF
resistance_flags = 0
/obj/item/clothing/under/gladiator/ash_walker
desc = "This gladiator uniform appears to be covered in ash and fairly dated."
has_sensor = 0
/obj/item/clothing/under/sundress
name = "sundress"
@@ -497,6 +535,26 @@
can_adjust = 1
alt_covers_chest = 1
/obj/item/clothing/under/singery
name = "yellow performer's outfit"
desc = "Just looking at this makes you want to sing."
icon_state = "ysing"
item_state = "ysing"
item_color = "ysing"
fitted = NO_FEMALE_UNIFORM
alternate_worn_layer = ABOVE_SHOES_LAYER
can_adjust = 0
/obj/item/clothing/under/singerb
name = "blue performer's outfit"
desc = "Just looking at this makes you want to sing."
icon_state = "bsing"
item_state = "bsing"
item_color = "bsing"
alternate_worn_layer = ABOVE_SHOES_LAYER
fitted = FEMALE_UNIFORM_TOP
can_adjust = 0
/obj/item/clothing/under/plaid_skirt/green
name = "green plaid skirt"
desc = "A preppy green skirt with a white blouse."
@@ -514,13 +572,35 @@
item_color = "jester"
can_adjust = 0
/obj/item/clothing/under/geisha
name = "geisha suit"
desc = "Cute space ninja senpai not included."
icon_state = "geisha"
item_color = "geisha"
can_adjust = 0
/obj/item/clothing/under/villain
name = "villain suit"
desc = "A change of wardrobe is necessary if you ever want to catch a real superhero."
icon_state = "villain"
item_color = "villain"
can_adjust = 0
/obj/item/clothing/under/sailor
name = "sailor suit"
desc = "Skipper's in the wardroom drinkin gin'."
icon_state = "sailor"
item_state = "b_suit"
item_color = "sailor"
can_adjust = 0
/obj/item/clothing/under/plasmaman
name = "Plasma-man Jumpsuit"
desc = "A specially designed suit that allows Plasma based life forms to exist in an oxygenated environment."
name = "plasma envirosuit"
desc = "A special containment suit that allows plasma-based lifeforms to exist safely in an oxygenated environment, and automatically extinguishes them in a crisis. Despite being airtight, it's not spaceworthy."
icon_state = "plasmaman"
item_state = "plasmaman"
item_color = "plasmaman"
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0, fire = 95, acid = 95)
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
can_adjust = 0
strip_delay = 80
@@ -531,7 +611,7 @@
/obj/item/clothing/under/plasmaman/examine(mob/user)
..()
user << "<span class='notice'>There are [extinguishes_left] extinguisher canisters left in this suit.</span>"
user << "<span class='notice'>There are [extinguishes_left] extinguisher charges left in this suit.</span>"
/obj/item/clothing/under/plasmaman/proc/Extinguish(mob/living/carbon/human/H)
@@ -546,7 +626,7 @@
extinguishes_left--
H.visible_message("<span class='warning'>[H]'s suit automatically extinguishes them!</span>","<span class='warning'>Your suit automatically extinguishes you.</span>")
H.ExtinguishMob()
PoolOrNew(/obj/effect/particle_effect/water, get_turf(H))
new /obj/effect/particle_effect/water(get_turf(H))
return 0
/obj/item/clothing/under/plasmaman/attackby(obj/item/E, mob/user, params)
@@ -556,15 +636,15 @@
return
else
extinguishes_left = 5
user << "<span class='notice'>You refill the suits inbuilt extinguisher, using up the refill pack.</span>"
user << "<span class='notice'>You refill the suit's built-in extinguisher, using up the cartridge.</span>"
qdel(E)
return
return
return
/obj/item/device/extinguisher_refill
name = "Plasma-man jumpsuit refill pack"
desc = "A compressed water pack used to refill plasma-man jumpsuit auto-extinguishers."
name = "envirosuit extinguisher cartridge"
desc = "A cartridge loaded with a compressed extinguisher mix, used to refill the automatic extinguisher on plasma envirosuits."
icon_state = "plasmarefill"
origin_tech = "materials=2;plasmatech=3;biotech=1"
@@ -574,22 +654,3 @@
icon_state = "hostanclothes"
item_state = "hostanclothes"
item_color = "hostanclothes"
/obj/item/clothing/under/mesh
name = "mesh suit"
desc = "A mesh of strong fabric worn underneath normal clothing and armor."
body_parts_covered = CHEST|GROIN|LEGS|ARMS
icon_state = "mesh_suit"
item_color = "mesh_suit"
item_state = "mesh_suit"
can_adjust = FALSE
burn_state = FIRE_PROOF
unacidable = TRUE
/obj/item/clothing/under/mesh/top
name = "mesh shirt"
desc = "A mesh of strong fabric worn underneath normal clothing and armor."
body_parts_covered = CHEST|GROIN
icon_state = "mesh_shirt"
item_color = "mesh_shirt"
item_state = "mesh_shirt"
+1
View File
@@ -4,6 +4,7 @@
gender = PLURAL
body_parts_covered = GROIN
fitted = NO_FEMALE_UNIFORM
mutantrace_variation = MUTANTRACE_VARIATION
can_adjust = 0
/obj/item/clothing/under/shorts/red
+4 -4
View File
@@ -5,7 +5,7 @@
item_state = "bl_suit"
item_color = "syndicate"
has_sensor = 0
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 40)
alt_covers_chest = 1
/obj/item/clothing/under/syndicate/tacticool
@@ -14,7 +14,7 @@
icon_state = "tactifool"
item_state = "bl_suit"
item_color = "tactifool"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 40)
/obj/item/clothing/under/syndicate/sniper
name = "Tactical turtleneck suit"
@@ -36,5 +36,5 @@
icon_state = "trackpants"
item_color = "trackpants"
can_adjust = 0
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
burn_state = FIRE_PROOF
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
resistance_flags = 0
+149 -65
View File
@@ -1,4 +1,4 @@
/obj/item/clothing/tie
/obj/item/clothing/tie //Ties moved to neck slot items, but as there are still things like medals and armbands, this accessory system is being kept as-is
name = "tie"
desc = "A neosilk clip-on tie."
icon = 'icons/obj/clothing/ties.dmi'
@@ -6,8 +6,56 @@
item_state = "" //no inhands
item_color = "bluetie"
slot_flags = 0
w_class = 2
w_class = WEIGHT_CLASS_SMALL
var/minimize_when_attached = TRUE // TRUE if shown as a small icon in corner, FALSE if overlayed
/obj/item/clothing/tie/proc/attach(obj/item/clothing/under/U, user)
if(pockets) // Attach storage to jumpsuit
if(U.pockets) // storage items conflict
return 0
pockets.loc = U
U.pockets = pockets
U.hastie = src
loc = U
layer = FLOAT_LAYER
plane = FLOAT_PLANE
if(minimize_when_attached)
transform *= 0.5 //halve the size so it doesn't overpower the under
pixel_x += 8
pixel_y -= 8
U.add_overlay(src)
for(var/armor_type in armor)
U.armor[armor_type] += armor[armor_type]
return 1
/obj/item/clothing/tie/proc/detach(obj/item/clothing/under/U, user)
if(pockets && pockets == U.pockets)
pockets.loc = src
U.pockets = null
for(var/armor_type in armor)
U.armor[armor_type] -= armor[armor_type]
if(minimize_when_attached)
transform *= 2
pixel_x -= 8
pixel_y += 8
layer = initial(layer)
plane = initial(plane)
U.cut_overlays()
U.hastie = null
/obj/item/clothing/tie/proc/on_uniform_equip(obj/item/clothing/under/U, user)
return
/obj/item/clothing/tie/proc/on_uniform_dropped(obj/item/clothing/under/U, user)
return
/*
/obj/item/clothing/tie/blue
name = "blue tie"
icon_state = "bluetie"
@@ -28,14 +76,15 @@
desc = "A neosilk clip-on tie. This one is disgusting."
icon_state = "horribletie"
item_color = "horribletie"
*/
/obj/item/clothing/tie/waistcoat
name = "waistcoat"
desc = "For some classy, murderous fun."
icon_state = "waistcoat"
item_state = "waistcoat"
item_color = "waistcoat"
minimize_when_attached = FALSE
/*
/obj/item/clothing/tie/stethoscope
name = "stethoscope"
desc = "An outdated medical apparatus for listening to the sounds of the human body. It also makes you look like you know what you're doing."
@@ -44,7 +93,7 @@
/obj/item/clothing/tie/stethoscope/attack(mob/living/carbon/human/M, mob/living/user)
if(ishuman(M) && isliving(user))
if(user.a_intent == "help")
if(user.a_intent == INTENT_HELP)
var/body_part = parse_zone(user.zone_selected)
if(body_part)
var/their = "their"
@@ -76,7 +125,7 @@
user.visible_message("[user] places [src] against [M]'s [body_part] and listens attentively.", "You place [src] against [their] [body_part]. You [sound_strength] [sound].")
return
return ..(M,user)
*/
//////////
//Medals//
//////////
@@ -87,11 +136,11 @@
icon_state = "bronze"
item_color = "bronze"
materials = list(MAT_METAL=1000)
burn_state = FIRE_PROOF
resistance_flags = FIRE_PROOF
//Pinning medals on people
/obj/item/clothing/tie/medal/attack(mob/living/carbon/human/M, mob/living/user)
if(ishuman(M) && (user.a_intent == "help"))
if(ishuman(M) && (user.a_intent == INTENT_HELP))
if(M.wear_suit)
if((M.wear_suit.flags_inv & HIDEJUMPSUIT)) //Check if the jumpsuit is covered
@@ -100,12 +149,19 @@
if(M.w_uniform)
var/obj/item/clothing/under/U = M.w_uniform
if(U.attachTie(src, user, 0)) //Attach it, do not notify the user of the attachment
if(user == M)
user << "<span class='notice'>You attach [src] to [U].</span>"
else
user.visible_message("[user] pins \the [src] on [M]'s chest.", \
"<span class='notice'>You pin \the [src] on [M]'s chest.</span>")
var/delay = 20
if(user == M)
delay = 0
else
user.visible_message("[user] is trying to pin [src] on [M]'s chest.", \
"<span class='notice'>You try to pin [src] on [M]'s chest.</span>")
if(do_after(user, delay, target = M))
if(U.attachTie(src, user, 0)) //Attach it, do not notify the user of the attachment
if(user == M)
user << "<span class='notice'>You attach [src] to [U].</span>"
else
user.visible_message("[user] pins \the [src] on [M]'s chest.", \
"<span class='notice'>You pin \the [src] on [M]'s chest.</span>")
else user << "<span class='warning'>Medals can only be pinned on jumpsuits!</span>"
else ..()
@@ -148,6 +204,7 @@
/obj/item/clothing/tie/medal/gold/captain
name = "medal of captaincy"
desc = "A golden medal awarded exclusively to those promoted to the rank of captain. It signifies the codified responsibilities of a captain to Nanotrasen, and their undisputable authority over their crew."
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
/obj/item/clothing/tie/medal/gold/heroism
name = "medal of exceptional heroism"
@@ -202,60 +259,60 @@
desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is white and blue."
icon_state = "medblueband"
item_color = "medblueband"
/*
///////////
//SCARVES//
///////////
/obj/item/clothing/tie/scarf
name = "scarf"
desc = "A stylish scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks."
dog_fashion = /datum/dog_fashion/head
/obj/item/clothing/tie/scarf/red
name = "red scarf"
icon_state = "redscarf"
item_color = "redscarf"
/obj/item/clothing/tie/scarf/green
name = "green scarf"
icon_state = "greenscarf"
item_color = "greenscarf"
/obj/item/clothing/tie/scarf/darkblue
name = "dark blue scarf"
icon_state = "darkbluescarf"
item_color = "darkbluescarf"
/obj/item/clothing/tie/scarf/purple
name = "purple scarf"
icon_state = "purplescarf"
item_color = "purplescarf"
/obj/item/clothing/tie/scarf/yellow
name = "yellow scarf"
icon_state = "yellowscarf"
item_color = "yellowscarf"
/obj/item/clothing/tie/scarf/orange
name = "orange scarf"
icon_state = "orangescarf"
item_color = "orangescarf"
/obj/item/clothing/tie/scarf/lightblue
name = "light blue scarf"
icon_state = "lightbluescarf"
item_color = "lightbluescarf"
/obj/item/clothing/tie/scarf/white
/obj/item/clothing/tie/scarf //Default white color, same functionality as beanies.
name = "white scarf"
icon_state = "whitescarf"
item_color = "whitescarf"
icon_state = "scarf"
desc = "A stylish scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks."
item_color = "scarf"
dog_fashion = /datum/dog_fashion/head
/obj/item/clothing/tie/scarf/black
name = "black scarf"
icon_state = "blackscarf"
item_color = "blackscarf"
icon_state = "scarf"
color = "#4A4A4B" //Grey but it looks black
/obj/item/clothing/tie/scarf/red
name = "red scarf"
icon_state = "scarf"
color = "#D91414" //Red
/obj/item/clothing/tie/scarf/green
name = "green scarf"
icon_state = "scarf"
color = "#5C9E54" //Green
/obj/item/clothing/tie/scarf/darkblue
name = "dark blue scarf"
icon_state = "scarf"
color = "#1E85BC" //Blue
/obj/item/clothing/tie/scarf/purple
name = "purple scarf"
icon_state = "scarf"
color = "#9557C5" //purple
/obj/item/clothing/tie/scarf/yellow
name = "yellow scarf"
icon_state = "scarf"
color = "#E0C14F" //Yellow
/obj/item/clothing/tie/scarf/orange
name = "orange scarf"
icon_state = "scarf"
color = "#C67A4B" //orange
/obj/item/clothing/tie/scarf/cyan
name = "cyan scarf"
icon_state = "scarf"
color = "#54A3CE" //Cyan
//Striped scarves get their own icons
/obj/item/clothing/tie/scarf/zebra
name = "zebra scarf"
@@ -305,7 +362,6 @@
desc = "Damn, it feels good to be a gangster."
icon = 'icons/obj/clothing/ties.dmi'
icon_state = "bling"
item_state = "" //no inhands
item_color = "bling"
////////////////
@@ -315,9 +371,37 @@
/obj/item/clothing/tie/talisman
name = "bone talisman"
desc = "A hunter's talisman, some say the old gods smile on those who wear it."
icon = 'icons/obj/clothing/ties.dmi'
icon_state = "talisman"
item_state = ""
item_color = "talisman"
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS|HEAD
armor = list(melee = 5, bullet = 5, laser = 5, energy = 5, bomb = 50, bio = 65, rad = 5) //Faith is the best armor. //This won't actually work because of accessories kill me with a fucking knife jesus christ I hate code
armor = list(melee = 5, bullet = 5, laser = 5, energy = 5, bomb = 20, bio = 20, rad = 5, fire = 0, acid = 25)
*/
//////////////
//OBJECTION!//
//////////////
/obj/item/clothing/tie/lawyers_badge
name = "attorney's badge"
desc = "Fills you with the conviction of JUSTICE. Lawyers tend to want to show it to everyone they meet."
icon_state = "lawyerbadge"
item_color = "lawyerbadge"
/obj/item/clothing/tie/lawyers_badge/attach(obj/item/clothing/under/U, user)
if(!..())
return 0
if(isliving(U.loc))
on_uniform_equip(U, user)
/obj/item/clothing/tie/lawyers_badge/detach(obj/item/clothing/under/U, user)
..()
if(isliving(U.loc))
on_uniform_dropped(U, user)
/obj/item/clothing/tie/lawyers_badge/on_uniform_equip(obj/item/clothing/under/U, user)
var/mob/living/L = user
if(L)
L.bubble_icon = "lawyer"
/obj/item/clothing/tie/lawyers_badge/on_uniform_dropped(obj/item/clothing/under/U, user)
var/mob/living/L = user
if(L)
L.bubble_icon = initial(L.bubble_icon)
+72
View File
@@ -0,0 +1,72 @@
//Just some alt-uniforms themed around Star Trek - Pls don't sue, Mr Roddenberry ;_;
/obj/item/clothing/under/trek
can_adjust = 0
//TOS
/obj/item/clothing/under/trek/command
name = "command uniform"
desc = "The uniform worn by command officers"
icon_state = "trek_command"
item_color = "trek_command"
item_state = "y_suit"
/obj/item/clothing/under/trek/engsec
name = "engsec uniform"
desc = "The uniform worn by engineering/security officers"
icon_state = "trek_engsec"
item_color = "trek_engsec"
item_state = "r_suit"
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) //more sec than eng, but w/e.
strip_delay = 50
/obj/item/clothing/under/trek/medsci
name = "medsci uniform"
desc = "The uniform worn by medical/science officers"
icon_state = "trek_medsci"
item_color = "trek_medsci"
item_state = "b_suit"
//TNG
/obj/item/clothing/under/trek/command/next
icon_state = "trek_next_command"
item_color = "trek_next_command"
item_state = "r_suit"
/obj/item/clothing/under/trek/engsec/next
icon_state = "trek_next_engsec"
item_color = "trek_next_engsec"
item_state = "y_suit"
/obj/item/clothing/under/trek/medsci/next
icon_state = "trek_next_medsci"
item_color = "trek_next_medsci"
//ENT
/obj/item/clothing/under/trek/command/ent
icon_state = "trek_ent_command"
item_color = "trek_ent_command"
item_state = "bl_suit"
/obj/item/clothing/under/trek/engsec/ent
icon_state = "trek_ent_engsec"
item_color = "trek_ent_engsec"
item_state = "bl_suit"
/obj/item/clothing/under/trek/medsci/ent
icon_state = "trek_ent_medsci"
item_color = "trek_ent_medsci"
item_state = "bl_suit"
//Q
/obj/item/clothing/under/trek/Q
name = "french marshall's uniform"
desc = "something about it feels off..."
icon_state = "trek_Q"
item_color = "trek_Q"
item_state = "r_suit"