Nova ports batch 1 (#26273)
* Map votes are no longer random (#43) * Disables the annoying fear of Santa from the claustrophobia quirk (#51) * Removes the job locks from all armbands except the sec armbands, and reflavors all armbands to not directly state this person is a member of x department (#62) * [MODULAR] Removes Arbitrary Loadout Restrictions (#58) * Removes an AM template from NorthStar as well as the prison curtain logic (#72) * Bilingual now let's you take common (if you don't already have it) (#78) * Period Era Re-Enactment: Basic autopunctuation (#84) * [Semi-modular] Gives Xeno-hybrids some xeno-organs in trade for high temperature weakness (#91) * The Thrill of the Hunt: Hemophage blood digestion changes (#93) * Removes the ability for shocks to stop your heart (#116) * Ghost cafe turf fixes (#161) * ungatekeeps headshots (#170) * Lo(v)re Wins: Mothic Language return (#186) * Add Bone Greaves As Foot Clothing For Tribals (#197) * Saving Private Oversized: Quirk balancing adjustments (#199) * Over(sized) and Under: Oversized combat adjustments (#202) * Shuttles no longer bolt their doors on transit (#203) * Increases PAI description and OOC notes limit (#207) * Makes headset sounds not insane (WHY DO THEY HAVE A RANGE OF 17 TI:LES?) (#215) * Add Bone D6 For Tribals. (#217) --------- Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: Name <w4rd3nn@gmail.com> Co-authored-by: Ephemeralis <Ephemeralis@users.noreply.github.com> Co-authored-by: lila <sheepwiththemask@gmail.com> Co-authored-by: nikothedude <59709059+nikothedude@users.noreply.github.com> Co-authored-by: Sable <102194057+Thlumyn@users.noreply.github.com> Co-authored-by: goobliner <141452834+goobliner@users.noreply.github.com> Co-authored-by: Lutowski <136726218+Lutowski@users.noreply.github.com> Co-authored-by: FearfulFurnishing <139661819+FearfulFurnishing@users.noreply.github.com> Co-authored-by: SomeRandomOwl <2568378+SomeRandomOwl@users.noreply.github.com> Co-authored-by: Paxilmaniac <82386923+Paxilmaniac@users.noreply.github.com>
@@ -310,12 +310,7 @@
|
||||
/turf/open/indestructible/hotelwood,
|
||||
/area/centcom/holding/cafe)
|
||||
"ahk" = (
|
||||
/turf/open/indestructible/hotelwood{
|
||||
desc = "It's really cozy! Great for soft paws!";
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/carpet_royalblack.dmi';
|
||||
icon_state = "carpet";
|
||||
name = "soft carpet"
|
||||
},
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafepark)
|
||||
"ahs" = (
|
||||
/obj/structure/flora/bush/leavy/style_2,
|
||||
@@ -363,7 +358,7 @@
|
||||
/obj/machinery/door/airlock{
|
||||
id_tag = "CCD2"
|
||||
},
|
||||
/turf/open/floor/carpet/royalblack,
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafe)
|
||||
"ahQ" = (
|
||||
/obj/structure/flora/bush/sparsegrass,
|
||||
@@ -475,12 +470,7 @@
|
||||
color = "#B22222";
|
||||
name = "Curtain"
|
||||
},
|
||||
/turf/open/indestructible/hotelwood{
|
||||
desc = "It's really cozy! Great for soft paws!";
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/carpet_royalblack.dmi';
|
||||
icon_state = "carpet";
|
||||
name = "soft carpet"
|
||||
},
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafe)
|
||||
"ajK" = (
|
||||
/obj/structure/flora/rock/pile{
|
||||
@@ -592,12 +582,7 @@
|
||||
"alk" = (
|
||||
/obj/item/bedsheet/dorms_double,
|
||||
/obj/structure/bed/double,
|
||||
/turf/open/indestructible/hotelwood{
|
||||
desc = "It's really cozy! Great for soft paws!";
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/carpet_royalblack.dmi';
|
||||
icon_state = "carpet";
|
||||
name = "soft carpet"
|
||||
},
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafe)
|
||||
"alm" = (
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
@@ -775,9 +760,6 @@
|
||||
},
|
||||
/turf/open/floor/iron/freezer,
|
||||
/area/centcom/holding/cafe)
|
||||
"amF" = (
|
||||
/turf/open/floor/carpet/royalblack,
|
||||
/area/centcom/holding/cafe)
|
||||
"amG" = (
|
||||
/obj/structure/chair/sofa/corp/left,
|
||||
/turf/open/floor/carpet/purple,
|
||||
@@ -1115,7 +1097,7 @@
|
||||
},
|
||||
/obj/structure/bed/double/pod,
|
||||
/obj/item/bedsheet/dorms_double,
|
||||
/turf/open/floor/carpet/royalblack,
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafe)
|
||||
"aqy" = (
|
||||
/obj/machinery/vending/wardrobe/cargo_wardrobe/ghost_cafe,
|
||||
@@ -1221,12 +1203,7 @@
|
||||
"asz" = (
|
||||
/obj/structure/table/wood/fancy/blue,
|
||||
/obj/machinery/light/directional/north,
|
||||
/turf/open/indestructible/hotelwood{
|
||||
desc = "It's really cozy! Great for soft paws!";
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/carpet_royalblack.dmi';
|
||||
icon_state = "carpet";
|
||||
name = "soft carpet"
|
||||
},
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafepark)
|
||||
"asC" = (
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
@@ -1645,11 +1622,7 @@
|
||||
light_range = 10;
|
||||
nightshift_light_power = 10
|
||||
},
|
||||
/turf/open/indestructible/hoteltile{
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/floors.dmi';
|
||||
icon_state = "titanium_blue_old";
|
||||
name = "bathroom floor"
|
||||
},
|
||||
/turf/open/indestructible/bathroom,
|
||||
/area/centcom/holding/cafe)
|
||||
"axF" = (
|
||||
/obj/structure/bed/dogbed,
|
||||
@@ -2064,12 +2037,7 @@
|
||||
/obj/structure/mirror{
|
||||
pixel_y = 32
|
||||
},
|
||||
/turf/open/indestructible/hotelwood{
|
||||
desc = "It's really cozy! Great for soft paws!";
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/carpet_royalblack.dmi';
|
||||
icon_state = "carpet";
|
||||
name = "soft carpet"
|
||||
},
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafe)
|
||||
"aAY" = (
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
@@ -2150,7 +2118,7 @@
|
||||
/obj/structure/chair/sofa/corp/right{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/carpet/royalblack,
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafe)
|
||||
"aBH" = (
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
@@ -2173,7 +2141,7 @@
|
||||
/area/centcom/holding/cafe)
|
||||
"aBT" = (
|
||||
/obj/structure/table/wood,
|
||||
/turf/open/floor/carpet/royalblack,
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafe)
|
||||
"aBW" = (
|
||||
/obj/machinery/hydroponics/constructable,
|
||||
@@ -3260,11 +3228,7 @@
|
||||
light_range = 10;
|
||||
nightshift_light_power = 10
|
||||
},
|
||||
/turf/open/indestructible/hoteltile{
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/floors.dmi';
|
||||
icon_state = "titanium_blue_old";
|
||||
name = "bathroom floor"
|
||||
},
|
||||
/turf/open/indestructible/bathroom,
|
||||
/area/centcom/holding/cafedorms)
|
||||
"aOZ" = (
|
||||
/obj/machinery/light/directional/north,
|
||||
@@ -3286,12 +3250,7 @@
|
||||
/turf/open/indestructible/hotelwood,
|
||||
/area/centcom/holding/cafe)
|
||||
"aPx" = (
|
||||
/turf/open/indestructible/hotelwood{
|
||||
desc = "It's really cozy! Great for soft paws!";
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/carpet_royalblack.dmi';
|
||||
icon_state = "carpet";
|
||||
name = "soft carpet"
|
||||
},
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafe)
|
||||
"aPC" = (
|
||||
/obj/structure/railing{
|
||||
@@ -3434,12 +3393,7 @@
|
||||
/obj/structure/fireplace{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/indestructible/hotelwood{
|
||||
desc = "It's really cozy! Great for soft paws!";
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/carpet_royalblack.dmi';
|
||||
icon_state = "carpet";
|
||||
name = "soft carpet"
|
||||
},
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafe)
|
||||
"aQR" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -3540,11 +3494,7 @@
|
||||
/obj/structure/toilet{
|
||||
pixel_y = 14
|
||||
},
|
||||
/turf/open/indestructible/hoteltile{
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/floors.dmi';
|
||||
icon_state = "titanium_blue_old";
|
||||
name = "bathroom floor"
|
||||
},
|
||||
/turf/open/indestructible/bathroom,
|
||||
/area/centcom/holding/cafe)
|
||||
"aRC" = (
|
||||
/obj/machinery/light/directional/north,
|
||||
@@ -3824,7 +3774,7 @@
|
||||
/obj/structure/chair/sofa/corp/left{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/carpet/royalblack,
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafe)
|
||||
"aUw" = (
|
||||
/obj/structure/stone_tile/surrounding_tile{
|
||||
@@ -3926,11 +3876,7 @@
|
||||
/area/centcom/holding/cafepark)
|
||||
"aVC" = (
|
||||
/obj/machinery/shower/directional/west,
|
||||
/turf/open/indestructible/hoteltile{
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/floors.dmi';
|
||||
icon_state = "titanium_blue_old";
|
||||
name = "bathroom floor"
|
||||
},
|
||||
/turf/open/indestructible/bathroom,
|
||||
/area/centcom/holding/cafedorms)
|
||||
"aVI" = (
|
||||
/obj/structure/fake_stairs/directional/east,
|
||||
@@ -4820,7 +4766,7 @@
|
||||
/obj/structure/chair/sofa/corp{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/carpet/royalblack,
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafe)
|
||||
"bQZ" = (
|
||||
/obj/structure/reagent_dispensers/plumbed,
|
||||
@@ -4858,12 +4804,7 @@
|
||||
/obj/structure/fireplace{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/indestructible/hotelwood{
|
||||
desc = "It's really cozy! Great for soft paws!";
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/carpet_royalblack.dmi';
|
||||
icon_state = "carpet";
|
||||
name = "soft carpet"
|
||||
},
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafe)
|
||||
"bTR" = (
|
||||
/obj/structure/table/reinforced,
|
||||
@@ -4979,7 +4920,7 @@
|
||||
/area/centcom/interlink)
|
||||
"bZt" = (
|
||||
/obj/structure/chair/sofa/corp/corner,
|
||||
/turf/open/floor/carpet/royalblack,
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafe)
|
||||
"cal" = (
|
||||
/obj/structure/railing{
|
||||
@@ -5094,7 +5035,7 @@
|
||||
/obj/structure/chair/sofa/corp/left{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/carpet/royalblack,
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafe)
|
||||
"cmh" = (
|
||||
/obj/effect/turf_decal/siding{
|
||||
@@ -5351,7 +5292,7 @@
|
||||
/obj/structure/sign/painting/library_secure{
|
||||
pixel_x = 32
|
||||
},
|
||||
/turf/open/floor/carpet/royalblack,
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafe)
|
||||
"cHY" = (
|
||||
/obj/effect/turf_decal/weather/dirt{
|
||||
@@ -5584,11 +5525,7 @@
|
||||
/obj/structure/toilet{
|
||||
pixel_y = 14
|
||||
},
|
||||
/turf/open/indestructible/hoteltile{
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/floors.dmi';
|
||||
icon_state = "titanium_blue_old";
|
||||
name = "bathroom floor"
|
||||
},
|
||||
/turf/open/indestructible/bathroom,
|
||||
/area/centcom/holding/cafe)
|
||||
"dbZ" = (
|
||||
/obj/effect/turf_decal/weather/dirt{
|
||||
@@ -5782,7 +5719,7 @@
|
||||
/obj/structure/chair/sofa/corp/corner{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/carpet/royalblack,
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafe)
|
||||
"dzn" = (
|
||||
/obj/structure/fence{
|
||||
@@ -5827,7 +5764,7 @@
|
||||
/area/centcom/interlink)
|
||||
"dDF" = (
|
||||
/obj/structure/chair/sofa/corp,
|
||||
/turf/open/floor/carpet/royalblack,
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafe)
|
||||
"dFj" = (
|
||||
/obj/machinery/door/airlock/medical/glass{
|
||||
@@ -6067,7 +6004,7 @@
|
||||
id_tag = "CCD1"
|
||||
},
|
||||
/obj/structure/fans/tiny/invisible,
|
||||
/turf/open/floor/carpet/royalblack,
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafe)
|
||||
"dXe" = (
|
||||
/obj/structure/flora/grass/jungle/b/style_2,
|
||||
@@ -7009,7 +6946,7 @@
|
||||
/area/centcom/interlink)
|
||||
"fPs" = (
|
||||
/obj/item/kirbyplants/random,
|
||||
/turf/open/floor/carpet/royalblack,
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafe)
|
||||
"fQt" = (
|
||||
/mob/living/basic/crab{
|
||||
@@ -7647,12 +7584,7 @@
|
||||
/obj/structure/dresser{
|
||||
pixel_y = 7
|
||||
},
|
||||
/turf/open/indestructible/hotelwood{
|
||||
desc = "It's really cozy! Great for soft paws!";
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/carpet_royalblack.dmi';
|
||||
icon_state = "carpet";
|
||||
name = "soft carpet"
|
||||
},
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafe)
|
||||
"hbE" = (
|
||||
/obj/structure/fence/interlink{
|
||||
@@ -8456,7 +8388,7 @@
|
||||
/area/centcom/interlink)
|
||||
"ioZ" = (
|
||||
/obj/machinery/light/directional/east,
|
||||
/turf/open/floor/carpet/royalblack,
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafe)
|
||||
"ipc" = (
|
||||
/obj/structure/sign/poster/random/directional/east,
|
||||
@@ -8598,11 +8530,7 @@
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/siding/thinplating_new/end,
|
||||
/turf/open/indestructible/hoteltile{
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/floors.dmi';
|
||||
icon_state = "titanium_blue_old";
|
||||
name = "bathroom floor"
|
||||
},
|
||||
/turf/open/indestructible/bathroom,
|
||||
/area/centcom/holding/cafe)
|
||||
"iCz" = (
|
||||
/obj/structure/fans/tiny/invisible,
|
||||
@@ -9346,7 +9274,7 @@
|
||||
"jYf" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/paper_bin,
|
||||
/turf/open/floor/carpet/royalblack,
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafe)
|
||||
"jYy" = (
|
||||
/obj/effect/turf_decal/sand,
|
||||
@@ -11267,12 +11195,7 @@
|
||||
/obj/structure/chair/sofa/corp/left{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/indestructible/hotelwood{
|
||||
desc = "It's really cozy! Great for soft paws!";
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/carpet_royalblack.dmi';
|
||||
icon_state = "carpet";
|
||||
name = "soft carpet"
|
||||
},
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafepark)
|
||||
"nii" = (
|
||||
/obj/structure/fireplace,
|
||||
@@ -11429,12 +11352,7 @@
|
||||
/obj/structure/chair/sofa/corp/right{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/indestructible/hotelwood{
|
||||
desc = "It's really cozy! Great for soft paws!";
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/carpet_royalblack.dmi';
|
||||
icon_state = "carpet";
|
||||
name = "soft carpet"
|
||||
},
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafepark)
|
||||
"npe" = (
|
||||
/obj/effect/turf_decal/tile/dark_blue/opposingcorners,
|
||||
@@ -12391,7 +12309,7 @@
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/light/directional/west,
|
||||
/turf/open/floor/carpet/royalblack,
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafe)
|
||||
"pao" = (
|
||||
/obj/effect/turf_decal/siding/thinplating_new/dark{
|
||||
@@ -12412,7 +12330,7 @@
|
||||
specialfunctions = 4
|
||||
},
|
||||
/obj/item/kirbyplants/random,
|
||||
/turf/open/floor/carpet/royalblack,
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafe)
|
||||
"pbz" = (
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
@@ -13017,12 +12935,7 @@
|
||||
/obj/structure/chair/sofa/corp/right{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/indestructible/hotelwood{
|
||||
desc = "It's really cozy! Great for soft paws!";
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/carpet_royalblack.dmi';
|
||||
icon_state = "carpet";
|
||||
name = "soft carpet"
|
||||
},
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafepark)
|
||||
"pTO" = (
|
||||
/obj/structure/table/reinforced,
|
||||
@@ -13192,12 +13105,7 @@
|
||||
/area/centcom/interlink)
|
||||
"qfy" = (
|
||||
/obj/structure/table/wood/fancy/blue,
|
||||
/turf/open/indestructible/hotelwood{
|
||||
desc = "It's really cozy! Great for soft paws!";
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/carpet_royalblack.dmi';
|
||||
icon_state = "carpet";
|
||||
name = "soft carpet"
|
||||
},
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafepark)
|
||||
"qgh" = (
|
||||
/obj/structure/stone_tile/surrounding,
|
||||
@@ -13509,8 +13417,8 @@
|
||||
/turf/open/floor/iron/white,
|
||||
/area/centcom/interlink)
|
||||
"qGA" = (
|
||||
/obj/structure/closet/secure_closet/brig,
|
||||
/obj/effect/turf_decal/tile/red/opposingcorners,
|
||||
/obj/machinery/vending/wardrobe/sec_wardrobe,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/centcom/holding/cafe)
|
||||
"qGW" = (
|
||||
@@ -13522,12 +13430,7 @@
|
||||
/obj/item/stack/sheet/mineral/wood/fifty,
|
||||
/obj/item/stack/sheet/mineral/wood/fifty,
|
||||
/obj/item/lighter,
|
||||
/turf/open/indestructible/hotelwood{
|
||||
desc = "It's really cozy! Great for soft paws!";
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/carpet_royalblack.dmi';
|
||||
icon_state = "carpet";
|
||||
name = "soft carpet"
|
||||
},
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafe)
|
||||
"qHJ" = (
|
||||
/obj/structure/extinguisher_cabinet/directional/north,
|
||||
@@ -13629,7 +13532,7 @@
|
||||
/obj/structure/chair/sofa/corp{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/carpet/royalblack,
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafe)
|
||||
"qQl" = (
|
||||
/obj/machinery/light/directional/south,
|
||||
@@ -13711,11 +13614,7 @@
|
||||
/area/centcom/holding/cafepark)
|
||||
"qWc" = (
|
||||
/obj/machinery/shower/directional/west,
|
||||
/turf/open/indestructible/hoteltile{
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/floors.dmi';
|
||||
icon_state = "titanium_blue_old";
|
||||
name = "bathroom floor"
|
||||
},
|
||||
/turf/open/indestructible/bathroom,
|
||||
/area/centcom/holding/cafe)
|
||||
"qWv" = (
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
@@ -14589,12 +14488,7 @@
|
||||
},
|
||||
/obj/structure/bed/double,
|
||||
/obj/item/bedsheet/dorms_double,
|
||||
/turf/open/indestructible/hotelwood{
|
||||
desc = "It's really cozy! Great for soft paws!";
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/carpet_royalblack.dmi';
|
||||
icon_state = "carpet";
|
||||
name = "soft carpet"
|
||||
},
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafepark)
|
||||
"ssn" = (
|
||||
/obj/machinery/status_display/shuttle{
|
||||
@@ -14665,11 +14559,7 @@
|
||||
"sys" = (
|
||||
/obj/machinery/shower/directional/west,
|
||||
/obj/structure/sink/directional/south,
|
||||
/turf/open/indestructible/hoteltile{
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/floors.dmi';
|
||||
icon_state = "titanium_blue_old";
|
||||
name = "bathroom floor"
|
||||
},
|
||||
/turf/open/indestructible/bathroom,
|
||||
/area/centcom/holding/cafe)
|
||||
"sAC" = (
|
||||
/obj/effect/turf_decal/box,
|
||||
@@ -15164,11 +15054,7 @@
|
||||
/turf/open/floor/fakebasalt,
|
||||
/area/centcom/holding/cafepark)
|
||||
"tky" = (
|
||||
/turf/open/indestructible/hoteltile{
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/floors.dmi';
|
||||
icon_state = "titanium_blue_old";
|
||||
name = "bathroom floor"
|
||||
},
|
||||
/turf/open/indestructible/bathroom,
|
||||
/area/centcom/holding/cafe)
|
||||
"tlu" = (
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
@@ -16262,11 +16148,7 @@
|
||||
/obj/structure/mirror{
|
||||
pixel_y = 32
|
||||
},
|
||||
/turf/open/indestructible/hoteltile{
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/floors.dmi';
|
||||
icon_state = "titanium_blue_old";
|
||||
name = "bathroom floor"
|
||||
},
|
||||
/turf/open/indestructible/bathroom,
|
||||
/area/centcom/holding/cafedorms)
|
||||
"vui" = (
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
@@ -16589,12 +16471,7 @@
|
||||
/obj/structure/chair/sofa/corp/left{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/indestructible/hotelwood{
|
||||
desc = "It's really cozy! Great for soft paws!";
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/carpet_royalblack.dmi';
|
||||
icon_state = "carpet";
|
||||
name = "soft carpet"
|
||||
},
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafepark)
|
||||
"vZv" = (
|
||||
/obj/structure/window/reinforced/spawner/directional/south,
|
||||
@@ -16896,11 +16773,7 @@
|
||||
/area/centcom/holding/cafepark)
|
||||
"wBX" = (
|
||||
/obj/structure/sink/directional/south,
|
||||
/turf/open/indestructible/hoteltile{
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/floors.dmi';
|
||||
icon_state = "titanium_blue_old";
|
||||
name = "bathroom floor"
|
||||
},
|
||||
/turf/open/indestructible/bathroom,
|
||||
/area/centcom/holding/cafedorms)
|
||||
"wCl" = (
|
||||
/obj/item/kirbyplants/random,
|
||||
@@ -17241,7 +17114,7 @@
|
||||
light_power = 10;
|
||||
name = "Super Light"
|
||||
},
|
||||
/turf/open/floor/carpet/royalblack,
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafe)
|
||||
"xgz" = (
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
@@ -17634,12 +17507,7 @@
|
||||
/obj/structure/sign/painting/library_secure{
|
||||
pixel_y = -32
|
||||
},
|
||||
/turf/open/indestructible/hotelwood{
|
||||
desc = "It's really cozy! Great for soft paws!";
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/carpet_royalblack.dmi';
|
||||
icon_state = "carpet";
|
||||
name = "soft carpet"
|
||||
},
|
||||
/turf/open/indestructible/carpet,
|
||||
/area/centcom/holding/cafe)
|
||||
"xRx" = (
|
||||
/obj/item/stack/sheet/mineral/wood/fifty,
|
||||
@@ -56583,9 +56451,9 @@ aFP
|
||||
ayI
|
||||
ayI
|
||||
dWE
|
||||
amF
|
||||
amF
|
||||
amF
|
||||
aPx
|
||||
aPx
|
||||
aPx
|
||||
axD
|
||||
tky
|
||||
aqf
|
||||
@@ -56841,7 +56709,7 @@ ayI
|
||||
ayI
|
||||
aqf
|
||||
paJ
|
||||
amF
|
||||
aPx
|
||||
cGX
|
||||
aqf
|
||||
qWc
|
||||
@@ -63522,7 +63390,7 @@ dyU
|
||||
bQR
|
||||
paj
|
||||
fPs
|
||||
amF
|
||||
aPx
|
||||
aqf
|
||||
aFP
|
||||
ayI
|
||||
@@ -63778,8 +63646,8 @@ aPZ
|
||||
dDF
|
||||
jYf
|
||||
xga
|
||||
amF
|
||||
amF
|
||||
aPx
|
||||
aPx
|
||||
aqf
|
||||
aFP
|
||||
ayI
|
||||
@@ -64035,8 +63903,8 @@ aqf
|
||||
bZt
|
||||
qPy
|
||||
clF
|
||||
amF
|
||||
amF
|
||||
aPx
|
||||
aPx
|
||||
ahP
|
||||
aFP
|
||||
ayI
|
||||
@@ -64291,9 +64159,9 @@ jeI
|
||||
aqf
|
||||
aqf
|
||||
aqf
|
||||
amF
|
||||
amF
|
||||
amF
|
||||
aPx
|
||||
aPx
|
||||
aPx
|
||||
aqf
|
||||
kWr
|
||||
ayI
|
||||
@@ -64548,9 +64416,9 @@ jeI
|
||||
aqf
|
||||
dbn
|
||||
axD
|
||||
amF
|
||||
amF
|
||||
amF
|
||||
aPx
|
||||
aPx
|
||||
aPx
|
||||
aqf
|
||||
lwv
|
||||
lwv
|
||||
@@ -64805,7 +64673,7 @@ jeI
|
||||
aqf
|
||||
sys
|
||||
aqf
|
||||
amF
|
||||
aPx
|
||||
ioZ
|
||||
aqw
|
||||
aqf
|
||||
|
||||
@@ -352,14 +352,6 @@ required_map = "north_star.dmm"
|
||||
coordinates = [121, 109, 4]
|
||||
trait_name = "Station"
|
||||
|
||||
# Northstar Prison
|
||||
[templates.northstar_prison]
|
||||
map_files = ["northstar_prison.dmm"]
|
||||
directory = "_maps/skyrat/automapper/templates/northstar/"
|
||||
required_map = "north_star.dmm"
|
||||
coordinates = [149, 109, 4]
|
||||
trait_name = "Station"
|
||||
|
||||
# Northstar NTR Office
|
||||
[templates.northstar_ntrep_office]
|
||||
map_files = ["northstar_ntrep_office.dmm"]
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"a" = (
|
||||
/obj/machinery/cryopod/prison/directional/west{
|
||||
quiet = 1
|
||||
},
|
||||
/turf/template_noop,
|
||||
/area/template_noop)
|
||||
"r" = (
|
||||
/obj/machinery/cryopod/prison/directional/north,
|
||||
/turf/template_noop,
|
||||
/area/template_noop)
|
||||
"P" = (
|
||||
/turf/template_noop,
|
||||
/area/template_noop)
|
||||
|
||||
(1,1,1) = {"
|
||||
r
|
||||
P
|
||||
P
|
||||
P
|
||||
P
|
||||
a
|
||||
"}
|
||||
@@ -26,6 +26,7 @@
|
||||
|
||||
// Damage modifiers
|
||||
#define OVERSIZED_HARM_DAMAGE_BONUS 5 /// Those with the oversized trait do 5 more damage.
|
||||
#define OVERSIZED_KICK_EFFECTIVENESS_BONUS 5 /// Increased unarmed_effectiveness/stun threshold on oversized kicks.
|
||||
|
||||
#define FILTER_STAMINACRIT filter(type="drop_shadow", x=0, y=0, size=-3, color="#04080F")
|
||||
|
||||
|
||||
@@ -32,6 +32,9 @@ GLOBAL_LIST_INIT_TYPED(quirk_blacklist, /list/datum/quirk, list(
|
||||
list(/datum/quirk/spacer_born, /datum/quirk/oversized),
|
||||
list(/datum/quirk/feline_aspect, /datum/quirk/item_quirk/canine, /datum/quirk/item_quirk/avian),
|
||||
list(/datum/quirk/all_nighter, /datum/quirk/heavy_sleeper),
|
||||
list(/datum/quirk/light_drinker, /datum/quirk/drunkhealing),
|
||||
list(/datum/quirk/oversized, /datum/quirk/freerunning),
|
||||
list(/datum/quirk/oversized, /datum/quirk/item_quirk/settler),
|
||||
//SKYRAT EDIT ADDITION END
|
||||
))
|
||||
|
||||
|
||||
@@ -205,3 +205,12 @@
|
||||
/obj/item/stack/cable_coil = 2,
|
||||
)
|
||||
category = CAT_EQUIPMENT
|
||||
|
||||
/datum/crafting_recipe/bonedice
|
||||
name = "Bone Die"
|
||||
result = /obj/item/dice/d6/bone
|
||||
time = 5 SECONDS
|
||||
reqs = list(
|
||||
/obj/item/stack/sheet/bone = 1,
|
||||
)
|
||||
category = CAT_EQUIPMENT
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/datum/quirk/claustrophobia
|
||||
name = "Claustrophobia"
|
||||
desc = "You are terrified of small spaces and certain jolly figures. If you are placed inside any container, locker, or machinery, a panic attack sets in and you struggle to breathe."
|
||||
desc = "You are terrified of small spaces. If you are placed inside any container, locker, or machinery, a panic attack sets in and you struggle to breathe." // SKYRAT EDIT CHANGE - ORIGINAL: desc = "You are terrified of small spaces and certain jolly figures. If you are placed inside any container, locker, or machinery, a panic attack sets in and you struggle to breathe."
|
||||
icon = FA_ICON_BOX_OPEN
|
||||
value = -4
|
||||
medical_record_text = "Patient demonstrates a fear of tight spaces."
|
||||
@@ -20,10 +20,12 @@
|
||||
|
||||
var/nick_spotted = FALSE
|
||||
|
||||
/* SKYRAT EDIT REMOVAL START
|
||||
for(var/mob/living/carbon/human/possible_claus in view(5, quirk_holder))
|
||||
if(evaluate_jolly_levels(possible_claus))
|
||||
nick_spotted = TRUE
|
||||
break
|
||||
SKYRAT EDIT REMOVAL END */
|
||||
|
||||
if(!nick_spotted && isturf(quirk_holder.loc))
|
||||
quirk_holder.clear_mood_event("claustrophobia")
|
||||
|
||||
@@ -107,6 +107,12 @@
|
||||
icon_state = "de6"
|
||||
microwave_riggable = FALSE // You can't melt wood in the microwave
|
||||
|
||||
/obj/item/dice/d6/bone
|
||||
name = "bone die"
|
||||
desc = "A die carved from a creature's bone. Dried blood marks the indented pits."
|
||||
icon_state = "db6"
|
||||
microwave_riggable = FALSE // You can't melt bone in the microwave
|
||||
|
||||
/obj/item/dice/d6/space
|
||||
name = "space cube"
|
||||
desc = "A die with six sides. 6 TIMES 255 TIMES 255 TILE TOTAL EXISTENCE, SQUARE YOUR MIND OF EDUCATED STUPID: 2 DOES NOT EXIST."
|
||||
|
||||
@@ -769,7 +769,8 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \
|
||||
// Sinew slapcrafting will mostly-sinew recipes, and bones will have mostly-bones recipes.
|
||||
var/static/list/slapcraft_recipe_list = list(\
|
||||
/datum/crafting_recipe/bonedagger, /datum/crafting_recipe/bonespear, /datum/crafting_recipe/boneaxe,\
|
||||
/datum/crafting_recipe/bonearmor, /datum/crafting_recipe/skullhelm, /datum/crafting_recipe/bracers
|
||||
/datum/crafting_recipe/bonearmor, /datum/crafting_recipe/skullhelm, /datum/crafting_recipe/bracers,
|
||||
/datum/crafting_recipe/ash_recipe/bone_greaves,
|
||||
)
|
||||
|
||||
AddComponent(
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
//we add uncommon as it's foreigner-only.
|
||||
var/datum/language/uncommon/uncommon_language = /datum/language/uncommon
|
||||
values += initial(uncommon_language.name)
|
||||
values += /datum/language/common::name // SKYRAT EDIT ADDITION START - Let's you select common
|
||||
|
||||
for(var/datum/language/language_type as anything in GLOB.uncommon_roundstart_languages)
|
||||
if(initial(language_type.name) in values)
|
||||
|
||||
@@ -339,7 +339,11 @@ Doesn't work on other aliens/AI.*/
|
||||
span_notice("[owner] vomits up a thick purple substance and begins to shape it."),
|
||||
span_notice("You shape a [choice] out of resin."),
|
||||
)
|
||||
|
||||
//SKYRAT EDIT START - Roundstart xenohybrid organs
|
||||
if(build_duration && !do_after(owner, build_duration))
|
||||
owner.balloon_alert(owner, "interrupted!")
|
||||
return
|
||||
//SKYRAT EDIT END
|
||||
new choice_path(owner.loc)
|
||||
return TRUE
|
||||
|
||||
|
||||
@@ -392,14 +392,6 @@
|
||||
//Don't go further if the shock was blocked/too weak.
|
||||
if(!.)
|
||||
return
|
||||
//SKYRAT EDIT BEGIN: MAKES POWERFUL SHOCKS HAVE A CHANCE TO STOP YOUR HEART. DANGER
|
||||
if(can_heartattack() && !(flags & SHOCK_ILLUSION) && shock_damage >= 70)
|
||||
if(shock_damage * siemens_coeff >= 1 && prob(30))//Higher chance to disrupt the pacemaker cells
|
||||
var/obj/item/organ/internal/heart/heart = get_organ_slot(ORGAN_SLOT_HEART)
|
||||
heart.Stop()
|
||||
visible_message("<span class='danger'>[src.name] briefly twitches; before falling limp - their breathing irratic and chest spasming violently!</span>", \
|
||||
"<span class='danger'>You feel your heart thump eratically; before ceasing to beat, a violent twitch overcoming your form!</span>", ignored_mobs=src)
|
||||
//SKYRAT EDIT END
|
||||
if(!(flags & SHOCK_ILLUSION))
|
||||
if(shock_damage * siemens_coeff >= 5)
|
||||
force_say()
|
||||
|
||||
@@ -222,6 +222,10 @@ GLOBAL_LIST_INIT(message_modes_stat_limits, list(
|
||||
//Get which verb is prefixed to the message before radio but after most modifications
|
||||
message_mods[SAY_MOD_VERB] = say_mod(message, message_mods)
|
||||
|
||||
// SKYRAT EDIT ADDITION START: autopunctuation
|
||||
//ensure EOL punctuation exists and that word-bounded 'i' are capitalized before we do anything else
|
||||
message = autopunct_bare(message)
|
||||
// SKYRAT EDIT ADDITION END
|
||||
//This is before anything that sends say a radio message, and after all important message type modifications, so you can scumb in alien chat or something
|
||||
if(saymode && !saymode.handle_message(src, message, language))
|
||||
return
|
||||
|
||||
@@ -553,7 +553,6 @@
|
||||
color_override = "orange",
|
||||
)
|
||||
INVOKE_ASYNC(SSticker, TYPE_PROC_REF(/datum/controller/subsystem/ticker, poll_hearts))
|
||||
bolt_all_doors() //SKYRAT EDIT ADDITION
|
||||
SSmapping.mapvote() //If no map vote has been run yet, start one.
|
||||
|
||||
if(!is_reserved_level(z))
|
||||
|
||||
@@ -160,7 +160,7 @@
|
||||
speaker.forceMove(run_loc_floor_bottom_left)
|
||||
listener.forceMove(locate((run_loc_floor_bottom_left.x + distance), run_loc_floor_bottom_left.y, run_loc_floor_bottom_left.z))
|
||||
|
||||
var/pangram_quote = "The quick brown fox jumps over the lazy dog"
|
||||
var/pangram_quote = "The quick brown fox jumps over the lazy dog." // SKYRAT EDIT CHANGE - account for autopunct in living_say.dm - ORIGINAL: var/pangram_quote = "The quick brown fox jumps over the lazy dog"
|
||||
|
||||
// speaking
|
||||
speaker.say(pangram_quote)
|
||||
@@ -201,7 +201,7 @@
|
||||
listener_radio.set_frequency(FREQ_CENTCOM)
|
||||
listener_radio.independent = TRUE
|
||||
|
||||
var/pangram_quote = "The quick brown fox jumps over the lazy dog"
|
||||
var/pangram_quote = "The quick brown fox jumps over the lazy dog." // SKYRAT EDIT CHANGE - account for autopunct in living_say.dm - ORIGINAL: var/pangram_quote = "The quick brown fox jumps over the lazy dog"
|
||||
|
||||
speaker.say(pangram_quote)
|
||||
TEST_ASSERT(handle_speech_result, "Handle speech signal was not fired (radio test)")
|
||||
|
||||
|
Before Width: | Height: | Size: 9.0 KiB After Width: | Height: | Size: 9.8 KiB |
@@ -0,0 +1,5 @@
|
||||
//Any EOL char that isn't appropriate punctuation
|
||||
GLOBAL_DATUM_INIT(has_no_eol_punctuation, /regex, regex(@"\w$"))
|
||||
|
||||
//All non-capitalized 'i' surrounded with whitespace (aka, 'hello >i< am a cat')
|
||||
GLOBAL_DATUM_INIT(noncapital_i, /regex, regex(@"\b[i]\b", "g"))
|
||||
@@ -0,0 +1,8 @@
|
||||
/// Ensures sentences end in appropriate punctuation (a period if none exist)
|
||||
/// and that all whitespace-bounded 'i' characters are capitalized.
|
||||
/proc/autopunct_bare(input_text)
|
||||
if (findtext(input_text, GLOB.has_no_eol_punctuation))
|
||||
input_text += "."
|
||||
|
||||
input_text = replacetext(input_text, GLOB.noncapital_i, "I")
|
||||
return input_text
|
||||
@@ -0,0 +1,3 @@
|
||||
//Map votes shouldn't be using weighted random
|
||||
/datum/vote/map_vote
|
||||
winner_method = VOTE_WINNER_METHOD_SIMPLE
|
||||
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 4.4 KiB |
@@ -15,6 +15,22 @@
|
||||
bomb = 20
|
||||
bio = 10
|
||||
|
||||
/datum/armor/ash_plates
|
||||
melee = 15
|
||||
bullet = 25
|
||||
laser = 15
|
||||
energy = 15
|
||||
bomb = 20
|
||||
bio = 10
|
||||
|
||||
/datum/armor/bone_greaves
|
||||
melee = 15
|
||||
bullet = 25
|
||||
laser = 15
|
||||
energy = 15
|
||||
bomb = 20
|
||||
bio = 50
|
||||
|
||||
/obj/item/clothing/head/ash_headdress
|
||||
name = "ash headdress"
|
||||
desc = "A headdress that shows the dominance of the walkers of ash."
|
||||
@@ -102,3 +118,22 @@
|
||||
name = "Decorated Ash Combat Plates"
|
||||
result = /obj/item/clothing/under/costume/gladiator/ash_walker/ash_plates/decorated
|
||||
category = CAT_CLOTHING
|
||||
|
||||
/obj/item/clothing/shoes/bone_greaves
|
||||
name = "bone greaves"
|
||||
desc = "For when you're expecting to step on spiky things. Offers modest protection to your feet."
|
||||
icon = 'modular_skyrat/modules/ashwalkers/icons/shoes.dmi'
|
||||
worn_icon = 'modular_skyrat/modules/ashwalkers/icons/feet.dmi'
|
||||
worn_icon_digi = 'modular_skyrat/modules/ashwalkers/icons/feet_digi.dmi'
|
||||
icon_state = "bone_greaves"
|
||||
supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION
|
||||
armor_type = /datum/armor/bone_greaves
|
||||
|
||||
/datum/crafting_recipe/ash_recipe/bone_greaves
|
||||
name = "Bone Greaves"
|
||||
result = /obj/item/clothing/shoes/bone_greaves
|
||||
reqs = list(
|
||||
/obj/item/stack/sheet/bone = 2,
|
||||
/obj/item/stack/sheet/sinew = 1,
|
||||
)
|
||||
category = CAT_CLOTHING
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.7 KiB |
@@ -102,11 +102,6 @@
|
||||
desired_atom = /obj/effect/landmark/start/customs_agent
|
||||
target_areas = list(/area/station/security/checkpoint/supply, /area/station/cargo/storage)
|
||||
|
||||
/datum/area_spawn_over/prison_curtains
|
||||
desired_atom = /obj/structure/curtain/cloth/prison
|
||||
over_atoms = list(/obj/structure/window/reinforced/fulltile, /obj/machinery/door/airlock/security/glass, /obj/machinery/door/airlock/public/glass)
|
||||
target_areas = list(/area/station/security/prison/safe)
|
||||
|
||||
/datum/area_spawn/corrections_officer_landmark
|
||||
desired_atom = /obj/effect/landmark/start/corrections_officer
|
||||
target_areas = list(/area/station/security/brig, /area/station/security/prison/)
|
||||
|
||||
@@ -6,3 +6,27 @@
|
||||
|
||||
/obj/item/clothing/accessory/skilt/armourless
|
||||
armor_type = /datum/armor/none
|
||||
|
||||
/obj/item/clothing/accessory/armband/cargo/nonsec
|
||||
name = "brown armband"
|
||||
desc = "An armband, worn to signify proficiency in a skill or association with a department. This one is brown."
|
||||
|
||||
/obj/item/clothing/accessory/armband/engine/nonsec
|
||||
name = "orange armband"
|
||||
desc = "An armband, worn to signify proficiency in a skill or association with a department. This one is orange with a reflective strip!"
|
||||
|
||||
/obj/item/clothing/accessory/armband/science/nonsec
|
||||
name = "purple armband"
|
||||
desc = "An armband, worn to signify proficiency in a skill or association with a department. This one is purple."
|
||||
|
||||
/obj/item/clothing/accessory/armband/hydro/nonsec
|
||||
name = "green-blue armband"
|
||||
desc = "An armband, worn to signify proficiency in a skill or association with a department. This one is green and blue."
|
||||
|
||||
/obj/item/clothing/accessory/armband/med/nonsec
|
||||
name = "white armband"
|
||||
desc = "An armband, worn to signify proficiency in a skill or association with a department. This one is white."
|
||||
|
||||
/obj/item/clothing/accessory/armband/medblue/nonsec
|
||||
name = "white-blue armband"
|
||||
desc = "An armband, worn to signify proficiency in a skill or association with a department. This one is white and blue."
|
||||
|
||||
@@ -24,13 +24,22 @@
|
||||
|
||||
//Cyberpunk PI Costume - Sprites from Eris
|
||||
/obj/item/clothing/head/fedora/det_hat/cybergoggles //Subset of detective fedora so that detectives dont have to sacrifice candycorns for style
|
||||
name = "type-34C semi-enclosed headwear"
|
||||
desc = "Civilian model of a popular helmet used by certain law enforcement agencies. It does not have any armor plating, but has a neo-laminated fiber lining."
|
||||
name = "type-34P semi-enclosed headwear"
|
||||
desc = "A popular helmet used by certain law enforcement agencies. It has minor armor plating and a neo-laminated fiber lining."
|
||||
icon = 'modular_skyrat/master_files/icons/obj/clothing/hats.dmi'
|
||||
worn_icon = 'modular_skyrat/master_files/icons/mob/clothing/head.dmi'
|
||||
icon_state = "cyberpunkgoggle"
|
||||
supports_variations_flags = CLOTHING_SNOUTED_VARIATION_NO_NEW_ICON
|
||||
|
||||
/obj/item/clothing/head/fedora/det_hat/cybergoggles/civilian //Actually civilian with no armor for drip purposes only
|
||||
name = "type-34C semi-enclosed headwear"
|
||||
desc = "The civilian model of a popular helmet used by certain law enforcement agencies. It has no armor plating."
|
||||
icon = 'modular_skyrat/master_files/icons/obj/clothing/hats.dmi'
|
||||
worn_icon = 'modular_skyrat/master_files/icons/mob/clothing/head.dmi'
|
||||
icon_state = "cyberpunkgoggle"
|
||||
armor_type = /datum/armor/none
|
||||
supports_variations_flags = CLOTHING_SNOUTED_VARIATION_NO_NEW_ICON
|
||||
|
||||
/obj/item/clothing/head/hats/intern/developer
|
||||
name = "intern beancap"
|
||||
|
||||
|
||||
@@ -161,9 +161,14 @@
|
||||
/datum/job/proc/has_required_languages(datum/preferences/pref)
|
||||
if(!required_languages)
|
||||
return TRUE
|
||||
for(var/lang in required_languages)
|
||||
// if we have a bilingual quirk, check that as well
|
||||
var/bilingual_pref
|
||||
if(/datum/quirk/bilingual::name in pref.all_quirks)
|
||||
bilingual_pref = pref.read_preference(/datum/preference/choiced/language)
|
||||
|
||||
for(var/datum/language/lang as anything in required_languages)
|
||||
//Doesnt have language, or the required "level" is too low (understood, while needing spoken)
|
||||
if(!pref.languages[lang] || pref.languages[lang] < required_languages[lang])
|
||||
if((!pref.languages[lang] || pref.languages[lang] < required_languages[lang]) && bilingual_pref != lang.name) // SKYRAT EDIT - check the bilingual quirk
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
|
||||
@@ -90,4 +90,3 @@
|
||||
/datum/language/common = list(LANGUAGE_ATOM),
|
||||
/datum/language/canilunzt = list(LANGUAGE_ATOM)
|
||||
)
|
||||
|
||||
|
||||
@@ -1,14 +1,21 @@
|
||||
/datum/language/moffic
|
||||
name = "Chitin-Click"
|
||||
desc = "A popular non-Human language that finds extensive use by various types of anthropomorphic invertebrates the likes of Mothpeople and other types of insects. It consists of complex flutters, chittering, antenna movements, and sparse guttural syllables. In modern Sol standard writing, some of its sounds have been compared to Ancient Swedish (Dating back to the Human 19th century)."
|
||||
/datum/language/chitinclick
|
||||
name = "Chitinclick"
|
||||
desc = "A popular non-Human language that finds extensive use by various types of anthropomorphic invertebrates. It consists of complex flutters, chittering, antenna movements, and sparse guttural syllables."
|
||||
key = "C"
|
||||
space_chance = 30
|
||||
space_chance = 40
|
||||
//References some replaced languages.
|
||||
syllables = list(
|
||||
// Original
|
||||
"chi", "cha", "at", "mo", "kli", "ac", "f", "cli", "fz", "fs",
|
||||
"a", "ak", "ae", "ai", "az", "ba", "bz", "bu", "bh", "br", "bi",
|
||||
"c", "ca", "ci", "ch", "chk", "cr", "cl", "ce", "cu", "cli", "cla",
|
||||
"du", "dr", "dri", "de", "do", "dza", "dk", "g", "ga", "gr", "dz",
|
||||
"gi", "gchk", "i", "ii", "ik", "it", "il", "ie", "iz", "ir", "io",
|
||||
"pi", "pz", "pe", "po", "phk", "k", "kz", "kl", "ka", "kli", "kh",
|
||||
"kch", "vh", "vr", "vz", "veh", "mr", "mz", "mi", "ma", "mhk", "zz",
|
||||
"ze", "zu", "zo", "za", "nz", "zi", "fz", "fr", "f", "fi", "click",
|
||||
"chit", "rr", "ru", "ra", "rzz", "ri", "re",
|
||||
// Buzzwords
|
||||
"zz", "buzz", "ZZ",
|
||||
// Moffic
|
||||
"ø", "öh", "ää", "år", "käyt", "dår", "ån", "næ", "møt", "om", "när",
|
||||
)
|
||||
icon_state = "chitinclick"
|
||||
icon = 'modular_skyrat/master_files/icons/misc/language.dmi'
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
/datum/language/moffic
|
||||
name = "Mothic"
|
||||
desc = "Spoken colloquially by the Mothfolk of Va Lumla, the early iteration of Mothic emerged when Fueljacks relied on their receptors for simple, one-worded pheromones to communicate, and navigate the often fatal maintenance tunnels sprawled throughout the fleet. \
|
||||
The moths developed gesticulation through antennas and wings to convey deeper intent, with mandibles providing emotional context through clicks and trills. \
|
||||
After First Contact, human speakers managed to achieve a similar effect from clicking their tongue to roof, and steer the tone with the width of their mouth while using their hands in place of antennas. \
|
||||
It is informally spoken, deploying many slangs and shorthands from Common. Has phonetic resemblance to Italian."
|
||||
space_chance = 40
|
||||
// Syllables derived from Italian.
|
||||
syllables = list(
|
||||
"a", "an", "ar", "ave", "avo", "are", "ale", "be", "buo", "ca", "cie", "cr",
|
||||
"ch", "che", "co", "cco", "ce", "cu", "ci", "ccia", "ccio", "da", "di", "do",
|
||||
"e", "é", "ere", "ette", "fa", "fu", "fo", "gi", "gio", "gn", "go", "gu", "ni",
|
||||
"gri", "ia", "iei", "ile", "imo", "l", "la", "lla", "le", "li", "lia", "lio",
|
||||
"lo", "lu", "me", "mi", "mo", "mos", "na", "ne", "no", "nuo", "o", "ò", "oi",
|
||||
"or", "os", "otto", "qua", "que", "qui", "pi", "po", "rò", "sa", "se", "si",
|
||||
"sto", "ua", "ue", "ui", "un", "ta", "tra", "te", "tri", "tre", "tro", "to",
|
||||
"ti", "va", "vi", "ve", "vo", "veni", "ver", "tu", "dru", "bi", "en", "je",
|
||||
"dici", "tru", "zo", "ze", "ul", "bo", "ba", "gh", "ino", "etta", "i", "in",
|
||||
"chh", "rio", "ie", "bar", "bas", "die", "ter", "pa", "pe", "pu", "fe", "fi",
|
||||
)
|
||||
@@ -1,8 +1,7 @@
|
||||
/// Maximum an Hemophage will drain, they will drain less if they hit their cap.
|
||||
#define HEMOPHAGE_DRAIN_AMOUNT 50
|
||||
/// The multiplier for blood received by Hemophages out of humans with ckeys.
|
||||
#define BLOOD_DRAIN_MULTIPLIER_CKEY 1.5
|
||||
|
||||
#define BLOOD_DRAIN_MULTIPLIER_CKEY 1.15
|
||||
|
||||
/datum/component/organ_corruption/tongue
|
||||
corruptable_organ_type = /obj/item/organ/internal/tongue
|
||||
@@ -102,11 +101,20 @@
|
||||
// We start by checking that the victim is a human and they have a client, so we can give them the
|
||||
// beneficial status effect for drinking higher-quality blood.
|
||||
var/is_target_human_with_client = istype(victim, /mob/living/carbon/human) && victim.client
|
||||
var/horrible_feeding = FALSE
|
||||
|
||||
if(ismonkey(victim))
|
||||
is_target_human_with_client = FALSE // Sorry, not going to get the status effect from monkeys, even if they have a client in them.
|
||||
|
||||
hemophage.add_mood_event("gross_food", /datum/mood_event/disgust/hemophage_feed_monkey) // drinking from a monkey is inherently gross, like, REALLY gross
|
||||
hemophage.adjust_disgust(DISGUST_LEVEL_GROSS + 15, DISGUST_LEVEL_MAXEDOUT)
|
||||
blood_volume_difference = BLOOD_VOLUME_NORMAL - hemophage.blood_volume
|
||||
horrible_feeding = TRUE
|
||||
|
||||
if(istype(victim, /mob/living/carbon/human/species/monkey))
|
||||
is_target_human_with_client = FALSE // yep you're still not getting the status effect from humonkeys either. your tumour knows.
|
||||
hemophage.add_mood_event("gross_food", /datum/mood_event/disgust/hemophage_feed_humonkey)
|
||||
hemophage.adjust_disgust(DISGUST_LEVEL_GROSS / 4, DISGUST_LEVEL_GROSS) // it's still gross but nowhere near as bad, though.
|
||||
horrible_feeding = TRUE
|
||||
|
||||
StartCooldown()
|
||||
|
||||
@@ -129,18 +137,36 @@
|
||||
|
||||
log_combat(hemophage, victim, "drained [drained_blood]u of blood from", addition = " (NEW BLOOD VOLUME: [victim.blood_volume] cL)")
|
||||
victim.show_message(span_danger("[hemophage] drains some of your blood!"))
|
||||
to_chat(hemophage, span_notice("You drink some blood from [victim]![is_target_human_with_client ? " That tasted particularly good!" : ""]"))
|
||||
|
||||
if(horrible_feeding)
|
||||
if(istype(victim, /mob/living/carbon/human/species/monkey))
|
||||
to_chat(hemophage, span_notice("You take tentative draws of blood from [victim], each mouthful awash with the taste of ozone and a strange artificial twinge."))
|
||||
else
|
||||
to_chat(hemophage, span_warning("You choke back tepid mouthfuls of foul blood from [victim]. The taste is absolutely vile."))
|
||||
else
|
||||
to_chat(hemophage, span_notice("You pull greedy gulps of precious lifeblood from [victim]'s veins![is_target_human_with_client ? " That tasted particularly good!" : ""]"))
|
||||
|
||||
playsound(hemophage, 'sound/items/drink.ogg', 30, TRUE, -2)
|
||||
|
||||
// just let the hemophage know they're capped out on blood if they're trying to go for an exsanguinate and wondering why it isn't working
|
||||
if(drained_blood != HEMOPHAGE_DRAIN_AMOUNT && hemophage.blood_volume >= (BLOOD_VOLUME_MAXIMUM - HEMOPHAGE_DRAIN_AMOUNT))
|
||||
to_chat(hemophage, span_boldnotice("Your thirst is temporarily slaked, and you can digest no more new blood for the moment."))
|
||||
|
||||
if(victim.blood_volume <= BLOOD_VOLUME_OKAY)
|
||||
to_chat(hemophage, span_warning("That definitely left them looking pale..."))
|
||||
to_chat(victim, span_warning("A groaning lethargy creeps into your muscles as you begin to feel slightly clammy...")) //let the victim know too
|
||||
|
||||
if(is_target_human_with_client)
|
||||
hemophage.apply_status_effect(/datum/status_effect/blood_thirst_satiated)
|
||||
hemophage.add_mood_event("drank_human_blood", /datum/mood_event/hemophage_feed_human) // absolutely scrumptious
|
||||
hemophage.clear_mood_event("gross_food") // it's a real palate cleanser, you know
|
||||
hemophage.disgust *= 0.85 //also clears a little bit of disgust too
|
||||
|
||||
if(!victim.blood_volume || victim.blood_volume < BLOOD_VOLUME_SURVIVE)
|
||||
to_chat(hemophage, span_warning("You finish off [victim]'s blood supply."))
|
||||
// for this to ever occur, the hemophage actually has to be decently hungry, otherwise they'll cap their own blood reserves and be unable to pull it off.
|
||||
if(!victim.blood_volume || victim.blood_volume <= BLOOD_VOLUME_SURVIVE)
|
||||
to_chat(hemophage, span_boldwarning("A final sputter of blood trickles from [victim]'s collapsing veins as your terrible hunger drains them almost completely dry."))
|
||||
else if ((victim.blood_volume + HEMOPHAGE_DRAIN_AMOUNT) <= BLOOD_VOLUME_SURVIVE)
|
||||
to_chat(hemophage, span_warning("A sense of hesitation gnaws: you know for certain that taking much more blood from [victim] WILL kill them. <b>...but another part of you sees only opportunity.</b>"))
|
||||
|
||||
|
||||
#undef HEMOPHAGE_DRAIN_AMOUNT
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
/datum/mood_event/hemophage_feed_human
|
||||
description = "I slaked my hunger on fresh, vital blood. That felt good!"
|
||||
mood_change = 2
|
||||
timeout = 5 MINUTES
|
||||
|
||||
/datum/mood_event/disgust/hemophage_feed_monkey
|
||||
description = "I had to feed off a gibbering monkey... what have I become?"
|
||||
mood_change = -4
|
||||
timeout = 5 MINUTES
|
||||
|
||||
/datum/mood_event/disgust/hemophage_feed_humonkey
|
||||
description = "Somehow I know deep down that humonkey blood is no substitute for the real thing..."
|
||||
mood_change = -1
|
||||
timeout = 5 MINUTES
|
||||
|
||||
/datum/mood_event/disgust/hemophage_feed_synthesized_blood
|
||||
description = "My last blood meal was artificial and tasted... wrong."
|
||||
mood_change = -2
|
||||
timeout = 5 MINUTES
|
||||
@@ -85,6 +85,10 @@
|
||||
var/datum/reagent/blood/blood = reagents.has_reagent(/datum/reagent/blood)
|
||||
if(blood)
|
||||
blood.metabolization_rate = BLOOD_METABOLIZATION_RATE
|
||||
var/blood_DNA = blood.data["blood_DNA"]
|
||||
if (!blood_DNA) //does the blood we're digesting have any DNA? if it doesn't, it's artificial, and that's gross.
|
||||
src.owner.adjust_disgust(DISGUST_LEVEL_GROSS / 16, DISGUST_LEVEL_VERYGROSS)
|
||||
src.owner.add_mood_event("gross_food", /datum/mood_event/disgust/hemophage_feed_synthesized_blood)
|
||||
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// A cloning mistake, crossing human and xenomorph DNA
|
||||
name = "Xenomorph Hybrid"
|
||||
id = SPECIES_XENO
|
||||
family_heirlooms = list(/obj/item/toy/plush/rouny, /obj/item/toy/toy_xeno)
|
||||
family_heirlooms = list(/obj/item/toy/plush/rouny, /obj/item/clothing/mask/facehugger/toy)
|
||||
inherent_traits = list(
|
||||
TRAIT_ADVANCEDTOOLUSER,
|
||||
TRAIT_CAN_STRIP,
|
||||
@@ -10,7 +10,17 @@
|
||||
TRAIT_MUTANT_COLORS,
|
||||
)
|
||||
inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID
|
||||
mutantbrain = /obj/item/organ/internal/brain/xeno_hybrid
|
||||
mutanttongue = /obj/item/organ/internal/tongue/xeno_hybrid
|
||||
mutantliver = /obj/item/organ/internal/liver/xeno_hybrid
|
||||
mutantstomach = /obj/item/organ/internal/stomach/xeno_hybrid
|
||||
mutant_organs = list(
|
||||
/obj/item/organ/internal/alien/plasmavessel/roundstart,
|
||||
/obj/item/organ/internal/alien/resinspinner/roundstart,
|
||||
/obj/item/organ/internal/alien/hivenode,
|
||||
)
|
||||
exotic_blood = /datum/reagent/toxin/acid
|
||||
heatmod = 2.5
|
||||
mutant_bodyparts = list()
|
||||
external_organs = list()
|
||||
payday_modifier = 1.0
|
||||
@@ -42,6 +52,25 @@
|
||||
/datum/species/xeno/get_species_lore()
|
||||
return list(placeholder_lore)
|
||||
|
||||
/datum/species/xeno/create_pref_unique_perks()
|
||||
var/list/to_add = list()
|
||||
|
||||
to_add += list(list(
|
||||
SPECIES_PERK_TYPE = SPECIES_POSITIVE_PERK,
|
||||
SPECIES_PERK_ICON = "biohazard",
|
||||
SPECIES_PERK_NAME = "Xenomorphic Biology",
|
||||
SPECIES_PERK_DESC = "Xeno-hybrids inherit organs from their primal ascendants."
|
||||
))
|
||||
|
||||
to_add += list(list(
|
||||
SPECIES_PERK_TYPE = SPECIES_NEGATIVE_PERK,
|
||||
SPECIES_PERK_ICON = "fire",
|
||||
SPECIES_PERK_NAME = "High Temperature Weakness",
|
||||
SPECIES_PERK_DESC = "A partial silicone structure and acid blood make the xeno-hybrid species extremely weak to heat."
|
||||
))
|
||||
|
||||
return to_add
|
||||
|
||||
/datum/species/xeno/prepare_human_for_preview(mob/living/carbon/human/xeno)
|
||||
var/xeno_color = "#525288"
|
||||
xeno.dna.features["mcolor"] = xeno_color
|
||||
@@ -52,3 +81,60 @@
|
||||
xeno.dna.mutant_bodyparts["xenohead"] = list(MUTANT_INDEX_NAME = "Standard", MUTANT_INDEX_COLOR_LIST = list(xeno_color, xeno_color, xeno_color))
|
||||
regenerate_organs(xeno, src, visual_only = TRUE)
|
||||
xeno.update_body(TRUE)
|
||||
|
||||
///Xenomorph organs modified to suit roundstart styling
|
||||
#define BUILD_DURATION 0.5 SECONDS
|
||||
|
||||
//Plasma vessel
|
||||
/obj/item/organ/internal/alien/plasmavessel/roundstart
|
||||
stored_plasma = 55
|
||||
max_plasma = 55
|
||||
plasma_rate = 2
|
||||
heal_rate = 0
|
||||
actions_types = list(
|
||||
/datum/action/cooldown/alien/make_structure/plant_weeds/roundstart,
|
||||
/datum/action/cooldown/alien/transfer,
|
||||
)
|
||||
|
||||
/datum/action/cooldown/alien/make_structure/plant_weeds
|
||||
var/build_duration = 0 SECONDS //regular aliens can build instantly
|
||||
|
||||
/datum/action/cooldown/alien/make_structure/plant_weeds/roundstart
|
||||
build_duration = BUILD_DURATION //hybrids are a bit slower
|
||||
|
||||
/datum/action/cooldown/alien/make_structure/plant_weeds/Activate(atom/target)
|
||||
if(build_duration && !do_after(owner, build_duration))
|
||||
owner.balloon_alert(owner, "interrupted!")
|
||||
return
|
||||
return ..()
|
||||
|
||||
//Resin spinner
|
||||
/obj/item/organ/internal/alien/resinspinner/roundstart
|
||||
actions_types = list(/datum/action/cooldown/alien/make_structure/resin/roundstart)
|
||||
|
||||
/datum/action/cooldown/alien/make_structure/resin
|
||||
var/build_duration = 0 SECONDS
|
||||
|
||||
/datum/action/cooldown/alien/make_structure/resin/roundstart
|
||||
build_duration = BUILD_DURATION
|
||||
//Non-modularly checked in `code\modules\mob\living\carbon\alien\adult\alien_powers.dm`
|
||||
|
||||
//Organ resprites
|
||||
/obj/item/organ/internal/brain/xeno_hybrid
|
||||
icon_state = "brain-x" //rebranding
|
||||
|
||||
/obj/item/organ/internal/stomach/xeno_hybrid
|
||||
icon_state = "stomach-x"
|
||||
|
||||
/obj/item/organ/internal/liver/xeno_hybrid
|
||||
icon_state = "liver-x"
|
||||
|
||||
//Liver modification (xenohybrids can process plasma!)
|
||||
/obj/item/organ/internal/liver/xeno_hybrid/handle_chemical(mob/living/carbon/owner, datum/reagent/toxin/chem, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(. & COMSIG_MOB_STOP_REAGENT_CHECK)
|
||||
return
|
||||
if(chem.type == /datum/reagent/toxin/plasma)
|
||||
chem.toxpwr = 0
|
||||
|
||||
#undef BUILD_DURATION
|
||||
|
||||
@@ -13,3 +13,22 @@
|
||||
name = "nitrogen-filled plating"
|
||||
desc = "Vox box certified."
|
||||
initial_gas_mix = "n2=104;TEMP=293.15"
|
||||
|
||||
/turf/open/indestructible/bathroom
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/floors.dmi';
|
||||
icon_state = "titanium_blue_old";
|
||||
name = "bathroom floor"
|
||||
footstep = FOOTSTEP_FLOOR
|
||||
tiled_dirt = FALSE
|
||||
|
||||
/turf/open/indestructible/carpet
|
||||
desc = "It's really cozy! Great for soft paws!";
|
||||
icon = 'modular_skyrat/modules/ghostcafe/icons/carpet_royalblack.dmi';
|
||||
icon_state = "carpet";
|
||||
name = "soft carpet"
|
||||
bullet_bounce_sound = null
|
||||
footstep = FOOTSTEP_CARPET
|
||||
barefootstep = FOOTSTEP_CARPET_BAREFOOT
|
||||
clawfootstep = FOOTSTEP_CARPET_BAREFOOT
|
||||
heavyfootstep = FOOTSTEP_GENERIC_HEAVY
|
||||
tiled_dirt = FALSE
|
||||
|
||||
@@ -38,6 +38,10 @@
|
||||
worn_icon = 'modular_skyrat/master_files/icons/mob/clothing/accessories.dmi'
|
||||
icon_state = "armband_lopland"
|
||||
|
||||
/obj/item/clothing/accessory/armband/deputy/lopland/nonsec
|
||||
name = "blue armband"
|
||||
desc = "An armband, worn to signify proficiency in a skill or association with a department. This one is blue."
|
||||
|
||||
/obj/item/clothing/accessory/armband/deputy/lopland
|
||||
desc = "A Peacekeeper-blue armband, showing the wearer to be certified by Lopland as a top-of-their-class Security Officer."
|
||||
|
||||
|
||||
@@ -51,39 +51,38 @@ GLOBAL_LIST_INIT(loadout_accessory, generate_loadout_items(/datum/loadout_item/a
|
||||
*/
|
||||
|
||||
/datum/loadout_item/accessory/armband_medblue
|
||||
name = "Medical Armband (blue stripe)"
|
||||
item_path = /obj/item/clothing/accessory/armband/medblue
|
||||
restricted_roles = list(JOB_CHIEF_MEDICAL_OFFICER, JOB_MEDICAL_DOCTOR, JOB_PARAMEDIC, JOB_CHEMIST, JOB_VIROLOGIST, JOB_ORDERLY, JOB_CORONER)
|
||||
name = "Blue-White Armband"
|
||||
item_path = /obj/item/clothing/accessory/armband/medblue/nonsec
|
||||
|
||||
/datum/loadout_item/accessory/armband_med
|
||||
name = "Medical Armband (white)"
|
||||
item_path = /obj/item/clothing/accessory/armband/med
|
||||
restricted_roles = list(JOB_CHIEF_MEDICAL_OFFICER, JOB_MEDICAL_DOCTOR, JOB_PARAMEDIC, JOB_CHEMIST, JOB_VIROLOGIST, JOB_ORDERLY, JOB_CORONER)
|
||||
name = "White Armband"
|
||||
item_path = /obj/item/clothing/accessory/armband/med/nonsec
|
||||
|
||||
/datum/loadout_item/accessory/armband_cargo
|
||||
name = "Cargo Armband"
|
||||
item_path = /obj/item/clothing/accessory/armband/cargo
|
||||
restricted_roles = list(JOB_QUARTERMASTER, JOB_CARGO_TECHNICIAN, JOB_SHAFT_MINER, JOB_CUSTOMS_AGENT)
|
||||
name = "Brown Armband"
|
||||
item_path = /obj/item/clothing/accessory/armband/cargo/nonsec
|
||||
|
||||
/datum/loadout_item/accessory/armband_engineering
|
||||
name = "Engineering Armband"
|
||||
item_path = /obj/item/clothing/accessory/armband/engine
|
||||
restricted_roles = list(JOB_CHIEF_ENGINEER, JOB_STATION_ENGINEER, JOB_ATMOSPHERIC_TECHNICIAN, JOB_ENGINEERING_GUARD)
|
||||
name = "Orange Armband"
|
||||
item_path = /obj/item/clothing/accessory/armband/engine/nonsec
|
||||
|
||||
/datum/loadout_item/accessory/armband_security_nonsec
|
||||
name = "Blue Armband"
|
||||
item_path = /obj/item/clothing/accessory/armband/deputy/lopland/nonsec
|
||||
|
||||
/datum/loadout_item/accessory/armband_security
|
||||
name = "Security Armband"
|
||||
item_path = /obj/item/clothing/accessory/armband/deputy/lopland
|
||||
restricted_roles = list(JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_DETECTIVE)
|
||||
restricted_roles = list(JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_DETECTIVE, JOB_CORRECTIONS_OFFICER)
|
||||
|
||||
/datum/loadout_item/accessory/armband_security_deputy
|
||||
name = "Security Deputy Armband"
|
||||
item_path = /obj/item/clothing/accessory/armband/deputy
|
||||
restricted_roles = list(JOB_CORRECTIONS_OFFICER)
|
||||
restricted_roles = list(JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_DETECTIVE, JOB_CORRECTIONS_OFFICER)
|
||||
|
||||
/datum/loadout_item/accessory/armband_science
|
||||
name = "Science Armband"
|
||||
item_path = /obj/item/clothing/accessory/armband/science
|
||||
restricted_roles = list(JOB_RESEARCH_DIRECTOR, JOB_SCIENTIST, JOB_ROBOTICIST, JOB_GENETICIST, JOB_SCIENCE_GUARD)
|
||||
name = "Purple Armband"
|
||||
item_path = /obj/item/clothing/accessory/armband/science/nonsec
|
||||
|
||||
/*
|
||||
* ARMOURLESS
|
||||
|
||||
@@ -63,6 +63,10 @@ GLOBAL_LIST_INIT(loadout_glasses, generate_loadout_items(/datum/loadout_item/gla
|
||||
name = "Modern Glasses"
|
||||
item_path = /obj/item/clothing/glasses/regular/betterunshit
|
||||
|
||||
/datum/loadout_item/glasses/prescription_glasses/kim
|
||||
name = "Binoclard Lenses"
|
||||
item_path = /obj/item/clothing/glasses/regular/kim
|
||||
|
||||
/*
|
||||
* COSMETIC GLASSES
|
||||
*/
|
||||
|
||||
@@ -78,6 +78,10 @@ GLOBAL_LIST_INIT(loadout_gloves, generate_loadout_items(/datum/loadout_item/glov
|
||||
name = "Evening Gloves"
|
||||
item_path = /obj/item/clothing/gloves/evening
|
||||
|
||||
/datum/loadout_item/gloves/kim
|
||||
name = "Aerostatic Gloves"
|
||||
item_path = /obj/item/clothing/gloves/kim
|
||||
|
||||
/datum/loadout_item/gloves/maid
|
||||
name = "Maid Arm Covers"
|
||||
item_path = /obj/item/clothing/gloves/maid
|
||||
|
||||
@@ -464,27 +464,22 @@ GLOBAL_LIST_INIT(loadout_helmets, generate_loadout_items(/datum/loadout_item/hea
|
||||
/datum/loadout_item/head/trekcap
|
||||
name = "Officer's Cap (White)"
|
||||
item_path = /obj/item/clothing/head/hats/caphat/parade/fedcap
|
||||
restricted_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_PERSONNEL)
|
||||
|
||||
/datum/loadout_item/head/trekcapcap
|
||||
name = "Officer's Cap (Black)"
|
||||
item_path = /obj/item/clothing/head/hats/caphat/parade/fedcap/black
|
||||
restricted_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_PERSONNEL, JOB_HEAD_OF_SECURITY)
|
||||
|
||||
/datum/loadout_item/head/trekcapmedisci
|
||||
name = "MedSci Officer's Cap (Blue)"
|
||||
item_path = /obj/item/clothing/head/hats/caphat/parade/fedcap/medsci
|
||||
restricted_roles = list(JOB_CHIEF_MEDICAL_OFFICER, JOB_MEDICAL_DOCTOR, JOB_PARAMEDIC, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PSYCHOLOGIST, JOB_GENETICIST, JOB_RESEARCH_DIRECTOR, JOB_SCIENTIST, JOB_ROBOTICIST, JOB_ORDERLY, JOB_CORONER)
|
||||
|
||||
/datum/loadout_item/head/trekcapeng
|
||||
name = "Eng Officer's Cap (Yellow)"
|
||||
item_path = /obj/item/clothing/head/hats/caphat/parade/fedcap/eng
|
||||
restricted_roles = list(JOB_CHIEF_ENGINEER, JOB_ATMOSPHERIC_TECHNICIAN, JOB_STATION_ENGINEER, JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_CORRECTIONS_OFFICER, JOB_CARGO_TECHNICIAN, JOB_SHAFT_MINER, JOB_QUARTERMASTER, JOB_ENGINEERING_GUARD, JOB_CUSTOMS_AGENT)
|
||||
|
||||
/datum/loadout_item/head/trekcapsec
|
||||
name = "Officer's Cap (Red)"
|
||||
item_path = /obj/item/clothing/head/hats/caphat/parade/fedcap/sec
|
||||
restricted_roles = list(JOB_CHIEF_ENGINEER, JOB_ATMOSPHERIC_TECHNICIAN, JOB_STATION_ENGINEER, JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_CORRECTIONS_OFFICER, JOB_CARGO_TECHNICIAN, JOB_SHAFT_MINER, JOB_QUARTERMASTER, JOB_CUSTOMS_AGENT)
|
||||
|
||||
/*
|
||||
* JOB-LOCKED
|
||||
@@ -527,9 +522,8 @@ GLOBAL_LIST_INIT(loadout_helmets, generate_loadout_items(/datum/loadout_item/hea
|
||||
restricted_roles = list(JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_CORRECTIONS_OFFICER)
|
||||
|
||||
/datum/loadout_item/head/blasthelmet
|
||||
name = "General's Helmet"
|
||||
name = "Blast Helmet"
|
||||
item_path = /obj/item/clothing/head/hats/imperial/helmet
|
||||
restricted_roles = list(JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_OFFICER, JOB_CORRECTIONS_OFFICER, JOB_CAPTAIN, JOB_HEAD_OF_PERSONNEL, JOB_BLUESHIELD, JOB_HEAD_OF_SECURITY, JOB_RESEARCH_DIRECTOR, JOB_QUARTERMASTER, JOB_CHIEF_MEDICAL_OFFICER, JOB_CHIEF_ENGINEER)
|
||||
|
||||
/datum/loadout_item/head/navybluehoscap
|
||||
name = "Head of Security's Naval Cap"
|
||||
@@ -546,35 +540,34 @@ GLOBAL_LIST_INIT(loadout_helmets, generate_loadout_items(/datum/loadout_item/hea
|
||||
item_path = /obj/item/clothing/head/beret/sec/navywarden
|
||||
restricted_roles = list(JOB_WARDEN)
|
||||
|
||||
/datum/loadout_item/head/cybergoggles //Cyberpunk-P.I. Outfit
|
||||
/datum/loadout_item/head/cybergoggles_civ
|
||||
name = "Type-34C Forensics Headwear"
|
||||
item_path = /obj/item/clothing/head/fedora/det_hat/cybergoggles/civilian
|
||||
|
||||
/datum/loadout_item/head/cybergoggles //Cyberpunk-P.I. Outfit
|
||||
name = "Type-34P Forensics Headwear"
|
||||
item_path = /obj/item/clothing/head/fedora/det_hat/cybergoggles
|
||||
restricted_roles = list(JOB_DETECTIVE)
|
||||
restricted_roles = list(JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_CORRECTIONS_OFFICER)
|
||||
|
||||
/datum/loadout_item/head/nursehat
|
||||
name = "Nurse Hat"
|
||||
item_path = /obj/item/clothing/head/costume/nursehat
|
||||
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST)
|
||||
|
||||
/datum/loadout_item/head/imperial_generic
|
||||
name = "Grey Naval Officer Cap"
|
||||
item_path = /obj/item/clothing/head/hats/imperial
|
||||
restricted_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_PERSONNEL, JOB_BLUESHIELD, JOB_HEAD_OF_SECURITY, JOB_RESEARCH_DIRECTOR, JOB_QUARTERMASTER, JOB_CHIEF_MEDICAL_OFFICER, JOB_CHIEF_ENGINEER, JOB_NT_REP)
|
||||
|
||||
/datum/loadout_item/head/imperial_grey
|
||||
name = "Dark Grey Naval Officer Cap"
|
||||
item_path = /obj/item/clothing/head/hats/imperial/grey
|
||||
restricted_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_PERSONNEL, JOB_BLUESHIELD, JOB_HEAD_OF_SECURITY, JOB_RESEARCH_DIRECTOR, JOB_QUARTERMASTER, JOB_CHIEF_MEDICAL_OFFICER, JOB_CHIEF_ENGINEER, JOB_NT_REP)
|
||||
|
||||
/datum/loadout_item/head/imperial_red
|
||||
name = "Red Naval Officer Cap"
|
||||
item_path = /obj/item/clothing/head/hats/imperial/red
|
||||
restricted_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_PERSONNEL, JOB_BLUESHIELD, JOB_HEAD_OF_SECURITY, JOB_RESEARCH_DIRECTOR, JOB_QUARTERMASTER, JOB_CHIEF_MEDICAL_OFFICER, JOB_CHIEF_ENGINEER)
|
||||
|
||||
/datum/loadout_item/head/imperial_white
|
||||
name = "White Naval Officer Cap"
|
||||
item_path = /obj/item/clothing/head/hats/imperial/white
|
||||
restricted_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_PERSONNEL, JOB_BLUESHIELD, JOB_HEAD_OF_SECURITY, JOB_RESEARCH_DIRECTOR, JOB_QUARTERMASTER, JOB_CHIEF_MEDICAL_OFFICER, JOB_CHIEF_ENGINEER)
|
||||
|
||||
/datum/loadout_item/head/azulea_oldblood
|
||||
name = "Oldblood's Royal cap"
|
||||
@@ -595,50 +588,38 @@ GLOBAL_LIST_INIT(loadout_helmets, generate_loadout_items(/datum/loadout_item/hea
|
||||
/datum/loadout_item/head/atmos_beret
|
||||
name = "Atmospherics Beret"
|
||||
item_path = /obj/item/clothing/head/beret/atmos
|
||||
restricted_roles = list(
|
||||
JOB_ATMOSPHERIC_TECHNICIAN,
|
||||
JOB_CHIEF_ENGINEER,
|
||||
)
|
||||
|
||||
/datum/loadout_item/head/engi_beret
|
||||
name = "Engineering Beret"
|
||||
item_path = /obj/item/clothing/head/beret/engi
|
||||
restricted_roles = list(JOB_STATION_ENGINEER, JOB_ATMOSPHERIC_TECHNICIAN, JOB_CHIEF_ENGINEER, JOB_ENGINEERING_GUARD)
|
||||
|
||||
/datum/loadout_item/head/cargo_beret
|
||||
name = "Supply Beret"
|
||||
item_path = /obj/item/clothing/head/beret/cargo
|
||||
restricted_roles = list(JOB_QUARTERMASTER, JOB_CARGO_TECHNICIAN, JOB_SHAFT_MINER, JOB_CUSTOMS_AGENT)
|
||||
|
||||
/datum/loadout_item/head/beret_med
|
||||
name = "Medical Beret"
|
||||
item_path = /obj/item/clothing/head/beret/medical
|
||||
restricted_roles = list(JOB_MEDICAL_DOCTOR,JOB_VIROLOGIST, JOB_CHEMIST, JOB_CHIEF_MEDICAL_OFFICER, JOB_ORDERLY, JOB_CORONER)
|
||||
|
||||
/datum/loadout_item/head/beret_paramedic
|
||||
name = "Paramedic Beret"
|
||||
item_path = /obj/item/clothing/head/beret/medical/paramedic
|
||||
restricted_roles = list(JOB_PARAMEDIC, JOB_CHIEF_MEDICAL_OFFICER)
|
||||
|
||||
/datum/loadout_item/head/beret_viro
|
||||
name = "Virologist Beret"
|
||||
item_path = /obj/item/clothing/head/beret/medical/virologist
|
||||
restricted_roles = list(JOB_VIROLOGIST, JOB_CHIEF_MEDICAL_OFFICER)
|
||||
|
||||
/datum/loadout_item/head/beret_chem
|
||||
name = "Chemist Beret"
|
||||
item_path = /obj/item/clothing/head/beret/medical/chemist
|
||||
restricted_roles = list(JOB_CHEMIST, JOB_CHIEF_MEDICAL_OFFICER)
|
||||
|
||||
/datum/loadout_item/head/beret_sci
|
||||
name = "Scientist Beret"
|
||||
item_path = /obj/item/clothing/head/beret/science
|
||||
restricted_roles = list(JOB_SCIENTIST, JOB_ROBOTICIST, JOB_GENETICIST, JOB_RESEARCH_DIRECTOR, JOB_SCIENCE_GUARD)
|
||||
|
||||
/datum/loadout_item/head/beret_robo
|
||||
name = "Roboticist Beret"
|
||||
item_path = /obj/item/clothing/head/beret/science/fancy/robo
|
||||
restricted_roles = list(JOB_ROBOTICIST, JOB_RESEARCH_DIRECTOR)
|
||||
|
||||
/*
|
||||
* FAMILIES
|
||||
|
||||
@@ -121,7 +121,6 @@ GLOBAL_LIST_INIT(loadout_necks, generate_loadout_items(/datum/loadout_item/neck)
|
||||
/datum/loadout_item/neck/discoproper
|
||||
name = "Horrible Necktie"
|
||||
item_path = /obj/item/clothing/neck/tie/disco
|
||||
restricted_roles = list(JOB_DETECTIVE)
|
||||
|
||||
/*
|
||||
* COLLARS
|
||||
@@ -282,7 +281,6 @@ GLOBAL_LIST_INIT(loadout_necks, generate_loadout_items(/datum/loadout_item/neck)
|
||||
/datum/loadout_item/neck/stethoscope
|
||||
name = "Stethoscope"
|
||||
item_path = /obj/item/clothing/neck/stethoscope
|
||||
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER)
|
||||
|
||||
/datum/loadout_item/neck/maid
|
||||
name = "Maid Neck Cover"
|
||||
@@ -295,12 +293,12 @@ GLOBAL_LIST_INIT(loadout_necks, generate_loadout_items(/datum/loadout_item/neck)
|
||||
/datum/loadout_item/neck/holobadge
|
||||
name = "Holobadge"
|
||||
item_path = /obj/item/clothing/accessory/badge/holo
|
||||
restricted_roles = list(JOB_SECURITY_OFFICER, JOB_DETECTIVE, JOB_WARDEN, JOB_HEAD_OF_SECURITY)
|
||||
restricted_roles = list(JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_DETECTIVE, JOB_CORRECTIONS_OFFICER)
|
||||
|
||||
/datum/loadout_item/neck/holobadge_cord
|
||||
name = "Holobadge with Lanyard"
|
||||
item_path = /obj/item/clothing/accessory/badge/holo/cord
|
||||
restricted_roles = list(JOB_SECURITY_OFFICER, JOB_DETECTIVE, JOB_WARDEN, JOB_HEAD_OF_SECURITY)
|
||||
restricted_roles = list(JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_DETECTIVE, JOB_CORRECTIONS_OFFICER)
|
||||
|
||||
/*
|
||||
* DONATOR
|
||||
|
||||
@@ -194,6 +194,10 @@ GLOBAL_LIST_INIT(loadout_shoes, generate_loadout_items(/datum/loadout_item/shoes
|
||||
name = "Green Snakeskin Shoes"
|
||||
item_path = /obj/item/clothing/shoes/discoshoes
|
||||
|
||||
/datum/loadout_item/shoes/kim
|
||||
name = "Aerostatic Shoes"
|
||||
item_path = /obj/item/clothing/shoes/kim
|
||||
|
||||
/datum/loadout_item/shoes/dominaheels
|
||||
name = "Dominant Heels"
|
||||
item_path = /obj/item/clothing/shoes/latex_heels/domina_heels
|
||||
@@ -215,6 +219,10 @@ GLOBAL_LIST_INIT(loadout_shoes, generate_loadout_items(/datum/loadout_item/shoes
|
||||
name = "Roller Skates"
|
||||
item_path = /obj/item/clothing/shoes/wheelys/rollerskates
|
||||
|
||||
/datum/loadout_item/shoes/jingleshoes
|
||||
name = "Jester Shoes"
|
||||
item_path = /obj/item/clothing/shoes/jester_shoes
|
||||
|
||||
/*
|
||||
* SEASONAL
|
||||
*/
|
||||
@@ -233,7 +241,7 @@ GLOBAL_LIST_INIT(loadout_shoes, generate_loadout_items(/datum/loadout_item/shoes
|
||||
*/
|
||||
|
||||
/datum/loadout_item/shoes/jester
|
||||
name = "Jester Shoes"
|
||||
name = "Clown's Jester Shoes"
|
||||
item_path = /obj/item/clothing/shoes/clown_shoes/jester
|
||||
restricted_roles = list(JOB_CLOWN)
|
||||
|
||||
|
||||
@@ -119,7 +119,6 @@ GLOBAL_LIST_INIT(loadout_exosuits, generate_loadout_items(/datum/loadout_item/su
|
||||
/datum/loadout_item/suit/labcoat_medical
|
||||
name = "Medical Labcoat"
|
||||
item_path = /obj/item/clothing/suit/toggle/labcoat/medical
|
||||
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER)
|
||||
|
||||
/*
|
||||
* PONCHOS
|
||||
@@ -455,7 +454,10 @@ GLOBAL_LIST_INIT(loadout_exosuits, generate_loadout_items(/datum/loadout_item/su
|
||||
/datum/loadout_item/suit/discojacket
|
||||
name = "Disco Ass Blazer"
|
||||
item_path = /obj/item/clothing/suit/discoblazer
|
||||
restricted_roles = list(JOB_DETECTIVE)
|
||||
|
||||
/datum/loadout_item/suit/kimjacket
|
||||
name = "Aerostatic Bomber Jacket"
|
||||
item_path = /obj/item/clothing/suit/kimjacket
|
||||
|
||||
/datum/loadout_item/suit/cardigan
|
||||
name = "Cardigan"
|
||||
@@ -537,58 +539,48 @@ GLOBAL_LIST_INIT(loadout_exosuits, generate_loadout_items(/datum/loadout_item/su
|
||||
/datum/loadout_item/suit/coat_med
|
||||
name = "Medical Winter Coat"
|
||||
item_path = /obj/item/clothing/suit/hooded/wintercoat/medical
|
||||
restricted_roles = list(JOB_CHIEF_MEDICAL_OFFICER, JOB_MEDICAL_DOCTOR, JOB_ORDERLY) // Reserved for Medical Doctors, Orderlies, and their boss, the Chief Medical Officer
|
||||
|
||||
/datum/loadout_item/suit/coat_paramedic
|
||||
name = "Paramedic Winter Coat"
|
||||
item_path = /obj/item/clothing/suit/hooded/wintercoat/medical/paramedic
|
||||
restricted_roles = list(JOB_CHIEF_MEDICAL_OFFICER, JOB_PARAMEDIC) // Reserved for Paramedics and their boss, the Chief Medical Officer
|
||||
|
||||
/datum/loadout_item/suit/coat_robotics
|
||||
name = "Robotics Winter Coat"
|
||||
item_path = /obj/item/clothing/suit/hooded/wintercoat/science/robotics
|
||||
restricted_roles = list(JOB_RESEARCH_DIRECTOR, JOB_ROBOTICIST)
|
||||
|
||||
/datum/loadout_item/suit/coat_sci
|
||||
name = "Science Winter Coat"
|
||||
item_path = /obj/item/clothing/suit/hooded/wintercoat/science
|
||||
restricted_roles = list(JOB_RESEARCH_DIRECTOR, JOB_SCIENTIST, JOB_ROBOTICIST, JOB_SCIENCE_GUARD) // Reserved for the Science Departement
|
||||
|
||||
/datum/loadout_item/suit/coat_eng
|
||||
name = "Engineering Winter Coat"
|
||||
item_path = /obj/item/clothing/suit/hooded/wintercoat/engineering
|
||||
restricted_roles = list(JOB_CHIEF_ENGINEER, JOB_STATION_ENGINEER, JOB_ENGINEERING_GUARD) // Reserved for Station Engineers, Engineering Guards, and their boss, the Chief Engineer
|
||||
|
||||
/datum/loadout_item/suit/coat_atmos
|
||||
name = "Atmospherics Winter Coat"
|
||||
item_path = /obj/item/clothing/suit/hooded/wintercoat/engineering/atmos
|
||||
restricted_roles = list(JOB_CHIEF_ENGINEER, JOB_ATMOSPHERIC_TECHNICIAN) // Reserved for Atmos Techs and their boss, the Chief Engineer
|
||||
|
||||
/datum/loadout_item/suit/coat_hydro
|
||||
name = "Hydroponics Winter Coat"
|
||||
item_path = /obj/item/clothing/suit/hooded/wintercoat/hydro
|
||||
restricted_roles = list(JOB_HEAD_OF_PERSONNEL, JOB_BOTANIST) // Reserved for Botanists and their boss, the Head of Personnel
|
||||
|
||||
/datum/loadout_item/suit/coat_bar
|
||||
name = "Bartender Winter Coat"
|
||||
item_path = /obj/item/clothing/suit/hooded/wintercoat/skyrat/bartender
|
||||
restricted_roles = list(JOB_HEAD_OF_PERSONNEL, JOB_BARTENDER) //Reserved for Bartenders and their boss, the Head of Personnel
|
||||
|
||||
/datum/loadout_item/suit/coat_cargo
|
||||
name = "Cargo Winter Coat"
|
||||
item_path = /obj/item/clothing/suit/hooded/wintercoat/cargo
|
||||
restricted_roles = list(JOB_QUARTERMASTER, JOB_CARGO_TECHNICIAN, JOB_CUSTOMS_AGENT) // Reserved for Cargo Techs, Customs Agents, and their boss, the Quartermaster
|
||||
|
||||
/datum/loadout_item/suit/coat_miner
|
||||
name = "Mining Winter Coat"
|
||||
item_path = /obj/item/clothing/suit/hooded/wintercoat/miner
|
||||
restricted_roles = list(JOB_QUARTERMASTER, JOB_SHAFT_MINER) // Reserved for Miners and their boss, the Quartermaster
|
||||
|
||||
// JACKETS
|
||||
/datum/loadout_item/suit/navybluejacketofficer
|
||||
name = "Security Officer's Navy Blue Formal Jacket"
|
||||
item_path = /obj/item/clothing/suit/jacket/officer/blue
|
||||
restricted_roles = list(JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_WARDEN) // I aint making a medic one, maybe i'll add some rank thing from cm or civ for it
|
||||
restricted_roles = list(JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_CORRECTIONS_OFFICER)
|
||||
|
||||
/datum/loadout_item/suit/navybluejacketwarden
|
||||
name = "Warden's Navy Blue Formal Jacket"
|
||||
@@ -603,7 +595,7 @@ GLOBAL_LIST_INIT(loadout_exosuits, generate_loadout_items(/datum/loadout_item/su
|
||||
/datum/loadout_item/suit/security_jacket
|
||||
name = "Security Jacket"
|
||||
item_path = /obj/item/clothing/suit/toggle/jacket/sec
|
||||
restricted_roles = list(JOB_HEAD_OF_SECURITY, JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_DETECTIVE) //Not giving this one to COs because it's actually better than the one they spawn with
|
||||
restricted_roles = list(JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY) //Not giving this one to COs because it's actually better than the one they spawn with
|
||||
|
||||
/datum/loadout_item/suit/brit
|
||||
name = "High Vis Armored Vest"
|
||||
@@ -613,7 +605,7 @@ GLOBAL_LIST_INIT(loadout_exosuits, generate_loadout_items(/datum/loadout_item/su
|
||||
/datum/loadout_item/suit/british_jacket
|
||||
name = "Peacekeeper Officer Coat"
|
||||
item_path = /obj/item/clothing/suit/british_officer
|
||||
restricted_roles = list(JOB_HEAD_OF_SECURITY, JOB_WARDEN, JOB_DETECTIVE)
|
||||
restricted_roles = list(JOB_WARDEN, JOB_DETECTIVE, JOB_SECURITY_OFFICER, JOB_HEAD_OF_SECURITY, JOB_CORRECTIONS_OFFICER)
|
||||
|
||||
/datum/loadout_item/suit/offdep_jacket
|
||||
name = "Off-Department Jacket"
|
||||
@@ -622,27 +614,22 @@ GLOBAL_LIST_INIT(loadout_exosuits, generate_loadout_items(/datum/loadout_item/su
|
||||
/datum/loadout_item/suit/engi_jacket
|
||||
name = "Engineering Jacket"
|
||||
item_path = /obj/item/clothing/suit/toggle/jacket/engi
|
||||
restricted_roles = list(JOB_CHIEF_ENGINEER, JOB_STATION_ENGINEER, JOB_ATMOSPHERIC_TECHNICIAN, JOB_ENGINEERING_GUARD)
|
||||
|
||||
/datum/loadout_item/suit/sci_jacket
|
||||
name = "Science Jacket"
|
||||
item_path = /obj/item/clothing/suit/toggle/jacket/sci
|
||||
restricted_roles = list(JOB_RESEARCH_DIRECTOR, JOB_SCIENTIST, JOB_ROBOTICIST, JOB_GENETICIST, JOB_SCIENCE_GUARD)
|
||||
|
||||
/datum/loadout_item/suit/med_jacket
|
||||
name = "Medbay Jacket"
|
||||
item_path = /obj/item/clothing/suit/toggle/jacket/med
|
||||
restricted_roles = list(JOB_CHIEF_MEDICAL_OFFICER, JOB_MEDICAL_DOCTOR, JOB_PARAMEDIC, JOB_CHEMIST, JOB_VIROLOGIST, JOB_ORDERLY)
|
||||
|
||||
/datum/loadout_item/suit/supply_jacket
|
||||
name = "Supply Jacket"
|
||||
item_path = /obj/item/clothing/suit/toggle/jacket/supply
|
||||
restricted_roles = list(JOB_QUARTERMASTER, JOB_CARGO_TECHNICIAN, JOB_SHAFT_MINER, JOB_CUSTOMS_AGENT)
|
||||
|
||||
/datum/loadout_item/suit/cargo_gorka_jacket
|
||||
name = "Cargo Gorka Jacket"
|
||||
item_path = /obj/item/clothing/suit/toggle/cargo_tech
|
||||
restricted_roles = list(JOB_QUARTERMASTER, JOB_CARGO_TECHNICIAN, JOB_SHAFT_MINER, JOB_CUSTOMS_AGENT)
|
||||
|
||||
/datum/loadout_item/suit/qm_jacket
|
||||
name = "Quartermaster's Overcoat"
|
||||
@@ -653,7 +640,6 @@ GLOBAL_LIST_INIT(loadout_exosuits, generate_loadout_items(/datum/loadout_item/su
|
||||
/datum/loadout_item/suit/labcoat_highvis
|
||||
name = "High-Vis Labcoat"
|
||||
item_path = /obj/item/clothing/suit/toggle/labcoat/skyrat/highvis
|
||||
restricted_roles = list(JOB_CHIEF_MEDICAL_OFFICER, JOB_PARAMEDIC, JOB_ATMOSPHERIC_TECHNICIAN, JOB_DETECTIVE, JOB_CHEMIST, JOB_ORDERLY) // And now chemist and orderly get it too.
|
||||
|
||||
/*
|
||||
* FAMILIES
|
||||
|
||||
@@ -33,7 +33,6 @@ GLOBAL_LIST_INIT(loadout_toys, generate_loadout_items(/datum/loadout_item/toys))
|
||||
/datum/loadout_item/toys/narsie
|
||||
name = "Nar'sie Plushie"
|
||||
item_path = /obj/item/toy/plush/narplush
|
||||
restricted_roles = list(JOB_CHAPLAIN)
|
||||
|
||||
/datum/loadout_item/toys/nukie
|
||||
name = "Nukie Plushie"
|
||||
@@ -50,7 +49,6 @@ GLOBAL_LIST_INIT(loadout_toys, generate_loadout_items(/datum/loadout_item/toys))
|
||||
/datum/loadout_item/toys/ratvar
|
||||
name = "Ratvar Plushie"
|
||||
item_path = /obj/item/toy/plush/ratplush
|
||||
restricted_roles = list(JOB_CHAPLAIN)
|
||||
|
||||
/datum/loadout_item/toys/rouny
|
||||
name = "Rouny Plushie"
|
||||
|
||||
@@ -96,23 +96,18 @@ GLOBAL_LIST_INIT(loadout_miscunders, generate_loadout_items(/datum/loadout_item/
|
||||
/datum/loadout_item/under/jumpsuit/impcommand
|
||||
name = "Light Grey Officer's Naval Jumpsuit"
|
||||
item_path = /obj/item/clothing/under/rank/captain/skyrat/imperial/generic
|
||||
restricted_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_PERSONNEL, JOB_BLUESHIELD, JOB_HEAD_OF_SECURITY, JOB_RESEARCH_DIRECTOR, JOB_QUARTERMASTER, JOB_CHIEF_MEDICAL_OFFICER, JOB_CHIEF_ENGINEER, JOB_NT_REP)
|
||||
|
||||
/datum/loadout_item/under/jumpsuit/impcom
|
||||
name = "Grey Officer's Naval Jumpsuit"
|
||||
item_path = /obj/item/clothing/under/rank/captain/skyrat/imperial/generic/grey
|
||||
restricted_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_PERSONNEL, JOB_BLUESHIELD, JOB_HEAD_OF_SECURITY, JOB_RESEARCH_DIRECTOR, JOB_QUARTERMASTER, JOB_CHIEF_MEDICAL_OFFICER, JOB_CHIEF_ENGINEER, JOB_NT_REP)
|
||||
|
||||
/datum/loadout_item/under/jumpsuit/impred
|
||||
name = "Red Officer's Naval Jumpsuit"
|
||||
item_path = /obj/item/clothing/under/rank/captain/skyrat/imperial/generic/red
|
||||
restricted_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_PERSONNEL, JOB_BLUESHIELD, JOB_HEAD_OF_SECURITY, JOB_RESEARCH_DIRECTOR, JOB_QUARTERMASTER, JOB_CHIEF_MEDICAL_OFFICER, JOB_CHIEF_ENGINEER) //NT Reps would never wear red, it's unbefitting
|
||||
|
||||
|
||||
/datum/loadout_item/under/jumpsuit/impcomtrous
|
||||
name = "Grey Officer's Naval Jumpsuit (Trousers)"
|
||||
item_path = /obj/item/clothing/under/rank/captain/skyrat/imperial/generic/pants
|
||||
restricted_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_PERSONNEL, JOB_BLUESHIELD, JOB_HEAD_OF_SECURITY, JOB_RESEARCH_DIRECTOR, JOB_QUARTERMASTER, JOB_CHIEF_MEDICAL_OFFICER, JOB_CHIEF_ENGINEER, JOB_NT_REP)
|
||||
|
||||
/datum/loadout_item/under/jumpsuit/security_trousers
|
||||
name = "Security Trousers"
|
||||
@@ -132,37 +127,30 @@ GLOBAL_LIST_INIT(loadout_miscunders, generate_loadout_items(/datum/loadout_item/
|
||||
/datum/loadout_item/under/jumpsuit/disco
|
||||
name = "Superstar Cop Uniform"
|
||||
item_path = /obj/item/clothing/under/rank/security/detective/disco
|
||||
restricted_roles = list(JOB_DETECTIVE)
|
||||
|
||||
/datum/loadout_item/under/jumpsuit/kim
|
||||
name = "Aerostatic Suit"
|
||||
item_path = /obj/item/clothing/under/rank/security/detective/kim
|
||||
restricted_roles = list(JOB_DETECTIVE)
|
||||
|
||||
/datum/loadout_item/under/jumpsuit/paramed_light
|
||||
name = "Light Paramedic Uniform"
|
||||
item_path = /obj/item/clothing/under/rank/medical/paramedic/skyrat/light
|
||||
restricted_roles = list(JOB_PARAMEDIC)
|
||||
|
||||
/datum/loadout_item/under/jumpsuit/paramed_light_skirt
|
||||
name = "Light Paramedic Skirt"
|
||||
item_path = /obj/item/clothing/under/rank/medical/paramedic/skyrat/light/skirt
|
||||
restricted_roles = list(JOB_PARAMEDIC)
|
||||
|
||||
/datum/loadout_item/under/jumpsuit/chemist_formal
|
||||
name = "Chemist's Formal Jumpsuit"
|
||||
item_path = /obj/item/clothing/under/rank/medical/chemist/skyrat/formal
|
||||
restricted_roles = list(JOB_CHEMIST)
|
||||
|
||||
/datum/loadout_item/under/jumpsuit/chemist_formal_skirt
|
||||
name = "Chemist's Formal Jumpskirt"
|
||||
item_path = /obj/item/clothing/under/rank/medical/chemist/skyrat/formal/skirt
|
||||
restricted_roles = list(JOB_CHEMIST)
|
||||
|
||||
/datum/loadout_item/under/jumpsuit/hlscientist
|
||||
name = "Ridiculous Scientist Outfit"
|
||||
item_path = /obj/item/clothing/under/rank/rnd/scientist/skyrat/hlscience
|
||||
restricted_roles = list(JOB_SCIENTIST, JOB_ROBOTICIST, JOB_GENETICIST, JOB_RESEARCH_DIRECTOR)
|
||||
|
||||
/datum/loadout_item/under/jumpsuit/rd_jumpsuit
|
||||
name = "Research Director's Jumpsuit"
|
||||
@@ -177,7 +165,6 @@ GLOBAL_LIST_INIT(loadout_miscunders, generate_loadout_items(/datum/loadout_item/
|
||||
/datum/loadout_item/under/jumpsuit/cargo
|
||||
name = "Cargo Technician's Jumpsuit"
|
||||
item_path = /obj/item/clothing/under/rank/cargo/tech
|
||||
restricted_roles = list(JOB_CARGO_TECHNICIAN, JOB_QUARTERMASTER, JOB_CUSTOMS_AGENT)
|
||||
|
||||
/datum/loadout_item/under/jumpsuit/cargo/skirt
|
||||
name = "Cargo Technician's Skirt"
|
||||
@@ -199,22 +186,18 @@ GLOBAL_LIST_INIT(loadout_miscunders, generate_loadout_items(/datum/loadout_item/
|
||||
/datum/loadout_item/under/jumpsuit/utility_eng
|
||||
name = "Engineering Utility Uniform"
|
||||
item_path = /obj/item/clothing/under/rank/engineering/engineer/skyrat/utility
|
||||
restricted_roles = list(JOB_STATION_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN, JOB_CHIEF_ENGINEER, JOB_ENGINEERING_GUARD)
|
||||
|
||||
/datum/loadout_item/under/jumpsuit/utility_med
|
||||
name = "Medical Utility Uniform"
|
||||
item_path = /obj/item/clothing/under/rank/medical/doctor/skyrat/utility
|
||||
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_PARAMEDIC, JOB_CHEMIST, JOB_VIROLOGIST, JOB_GENETICIST, JOB_CHIEF_MEDICAL_OFFICER, JOB_PSYCHOLOGIST, JOB_ORDERLY)
|
||||
|
||||
/datum/loadout_item/under/jumpsuit/utility_sci
|
||||
name = "Science Utility Uniform"
|
||||
item_path = /obj/item/clothing/under/rank/rnd/scientist/skyrat/utility
|
||||
restricted_roles = list(JOB_SCIENTIST, JOB_ROBOTICIST, JOB_GENETICIST, JOB_RESEARCH_DIRECTOR, JOB_SCIENCE_GUARD)
|
||||
|
||||
/datum/loadout_item/under/jumpsuit/utility_cargo
|
||||
name = "Supply Utility Uniform"
|
||||
item_path = /obj/item/clothing/under/rank/cargo/tech/skyrat/utility
|
||||
restricted_roles = list(JOB_CARGO_TECHNICIAN, JOB_SHAFT_MINER, JOB_QUARTERMASTER, JOB_CUSTOMS_AGENT)
|
||||
|
||||
/datum/loadout_item/under/jumpsuit/utility_sec
|
||||
name = "Security Utility Uniform"
|
||||
@@ -566,32 +549,26 @@ GLOBAL_LIST_INIT(loadout_miscunders, generate_loadout_items(/datum/loadout_item/
|
||||
/datum/loadout_item/under/miscellaneous/blacknwhite
|
||||
name = "Classic Prisoner Jumpsuit"
|
||||
item_path = /obj/item/clothing/under/rank/prisoner/classic
|
||||
restricted_roles = list(JOB_PRISONER)
|
||||
|
||||
/datum/loadout_item/under/miscellaneous/redscrubs
|
||||
name = "Red Scrubs"
|
||||
item_path = /obj/item/clothing/under/rank/medical/scrubs/skyrat/red
|
||||
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC)
|
||||
|
||||
/datum/loadout_item/under/miscellaneous/bluescrubs
|
||||
name = "Blue Scrubs"
|
||||
item_path = /obj/item/clothing/under/rank/medical/scrubs/blue
|
||||
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC)
|
||||
|
||||
/datum/loadout_item/under/miscellaneous/greenscrubs
|
||||
name = "Green Scrubs"
|
||||
item_path = /obj/item/clothing/under/rank/medical/scrubs/green
|
||||
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC)
|
||||
|
||||
/datum/loadout_item/under/miscellaneous/purplescrubs
|
||||
name = "Purple Scrubs"
|
||||
item_path = /obj/item/clothing/under/rank/medical/scrubs/purple
|
||||
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC)
|
||||
|
||||
/datum/loadout_item/under/miscellaneous/whitescrubs
|
||||
name = "White Scrubs"
|
||||
item_path = /obj/item/clothing/under/rank/medical/scrubs/skyrat/white
|
||||
restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_GENETICIST, JOB_CHEMIST, JOB_VIROLOGIST, JOB_PARAMEDIC)
|
||||
|
||||
/datum/loadout_item/under/miscellaneous/gear_harness
|
||||
name = "Gear Harness"
|
||||
@@ -604,27 +581,22 @@ GLOBAL_LIST_INIT(loadout_miscunders, generate_loadout_items(/datum/loadout_item/
|
||||
/datum/loadout_item/under/miscellaneous/cargo_casual
|
||||
name = "Cargo Tech Casualwear"
|
||||
item_path = /obj/item/clothing/under/rank/cargo/tech/skyrat/casualman
|
||||
restricted_roles = list(JOB_CARGO_TECHNICIAN)
|
||||
|
||||
/datum/loadout_item/under/miscellaneous/cargo_shorts
|
||||
name = "Cargo Tech Shorts"
|
||||
item_path = /obj/item/clothing/under/rank/cargo/tech/alt
|
||||
restricted_roles = list(JOB_CARGO_TECHNICIAN)
|
||||
|
||||
/datum/loadout_item/under/miscellaneous/cargo_black
|
||||
name = "Black Cargo Uniform"
|
||||
item_path = /obj/item/clothing/under/rank/cargo/tech/skyrat/evil
|
||||
restricted_roles = list(JOB_CARGO_TECHNICIAN)
|
||||
|
||||
/datum/loadout_item/under/miscellaneous/cargo_turtle
|
||||
name = "Cargo Turtleneck"
|
||||
item_path = /obj/item/clothing/under/rank/cargo/tech/skyrat/turtleneck
|
||||
restricted_roles = list(JOB_CARGO_TECHNICIAN)
|
||||
|
||||
/datum/loadout_item/under/miscellaneous/cargo_skirtle
|
||||
name = "Cargo Skirtleneck"
|
||||
item_path = /obj/item/clothing/under/rank/cargo/tech/skyrat/turtleneck/skirt
|
||||
restricted_roles = list(JOB_CARGO_TECHNICIAN)
|
||||
|
||||
/datum/loadout_item/under/miscellaneous/qm_skirtle
|
||||
name = "Quartermaster's Skirtleneck"
|
||||
@@ -651,7 +623,6 @@ GLOBAL_LIST_INIT(loadout_miscunders, generate_loadout_items(/datum/loadout_item/
|
||||
/datum/loadout_item/under/miscellaneous/mech_suit
|
||||
name = "Mech Suit"
|
||||
item_path = /obj/item/clothing/under/costume/mech_suit
|
||||
restricted_roles = list(JOB_ROBOTICIST)
|
||||
|
||||
/*
|
||||
* FORMAL UNDERSUITS
|
||||
@@ -879,7 +850,6 @@ GLOBAL_LIST_INIT(loadout_miscunders, generate_loadout_items(/datum/loadout_item/
|
||||
/datum/loadout_item/under/formal/designer_inferno
|
||||
name = "Designer Inferno Suit"
|
||||
item_path = /obj/item/clothing/under/suit/skyrat/inferno/beeze
|
||||
restricted_roles = list(JOB_LAWYER)
|
||||
|
||||
/datum/loadout_item/under/formal/pencil
|
||||
name = "Black Pencilskirt"
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
var/affecting = crossing_human.get_bodypart(BODY_ZONE_HEAD)
|
||||
crossing_human.apply_damage(15, BRUTE, affecting)
|
||||
crossing_human.Knockdown(20)
|
||||
crossing_human.adjustOrganLoss(ORGAN_SLOT_BRAIN, 15) //We do a bit of brain damage
|
||||
crossing_human.visible_message(span_warning("[crossing_human] slams their head into the frame of [src] with a sickening thud!"), \
|
||||
span_userdanger("You slam your head against [src]!")
|
||||
)
|
||||
|
||||
@@ -21,15 +21,12 @@
|
||||
human_holder.maptext_height = 32 * human_holder.dna.features["body_size"] //Adjust runechat height
|
||||
human_holder.dna.update_body_size()
|
||||
human_holder.mob_size = MOB_SIZE_LARGE
|
||||
var/obj/item/bodypart/arm/left/left_arm = human_holder.get_bodypart(BODY_ZONE_L_ARM)
|
||||
if(left_arm)
|
||||
left_arm.unarmed_damage_low += OVERSIZED_HARM_DAMAGE_BONUS
|
||||
left_arm.unarmed_damage_high += OVERSIZED_HARM_DAMAGE_BONUS
|
||||
|
||||
var/obj/item/bodypart/arm/right/right_arm = human_holder.get_bodypart(BODY_ZONE_R_ARM)
|
||||
if(right_arm)
|
||||
right_arm.unarmed_damage_low += OVERSIZED_HARM_DAMAGE_BONUS
|
||||
right_arm.unarmed_damage_high += OVERSIZED_HARM_DAMAGE_BONUS
|
||||
RegisterSignal(human_holder, COMSIG_CARBON_POST_ATTACH_LIMB, PROC_REF(on_gain_limb)) // make sure we handle this when new ones are applied
|
||||
|
||||
// just dummy call our current limbs to have less duplication (by having more duplication ahueheu)
|
||||
for(var/obj/item/bodypart/bodypart as anything in human_holder.bodyparts)
|
||||
on_gain_limb(src, bodypart, special = FALSE)
|
||||
|
||||
human_holder.blood_volume_normal = BLOOD_VOLUME_OVERSIZED
|
||||
human_holder.physiology.hunger_mod *= OVERSIZED_HUNGER_MOD //50% hungrier
|
||||
@@ -57,18 +54,48 @@
|
||||
|
||||
var/obj/item/bodypart/arm/left/left_arm = human_holder.get_bodypart(BODY_ZONE_L_ARM)
|
||||
if(left_arm)
|
||||
left_arm.unarmed_damage_low -= OVERSIZED_HARM_DAMAGE_BONUS
|
||||
left_arm.unarmed_damage_high -= OVERSIZED_HARM_DAMAGE_BONUS
|
||||
left_arm.unarmed_damage_high = initial(left_arm.unarmed_damage_high)
|
||||
|
||||
var/obj/item/bodypart/arm/right/right_arm = human_holder.get_bodypart(BODY_ZONE_R_ARM)
|
||||
if(right_arm)
|
||||
right_arm.unarmed_damage_low -= OVERSIZED_HARM_DAMAGE_BONUS
|
||||
right_arm.unarmed_damage_high -= OVERSIZED_HARM_DAMAGE_BONUS
|
||||
right_arm.unarmed_damage_high = initial(right_arm.unarmed_damage_high)
|
||||
|
||||
var/obj/item/bodypart/leg/left_leg = human_holder.get_bodypart(BODY_ZONE_L_LEG)
|
||||
if (left_leg)
|
||||
left_leg.unarmed_effectiveness = initial(left_leg.unarmed_effectiveness)
|
||||
|
||||
var/obj/item/bodypart/leg/right_leg = human_holder.get_bodypart(BODY_ZONE_R_LEG)
|
||||
if (right_leg)
|
||||
right_leg.unarmed_effectiveness = initial(right_leg.unarmed_effectiveness)
|
||||
|
||||
for(var/obj/item/bodypart/bodypart as anything in human_holder.bodyparts)
|
||||
bodypart.name = replacetext(bodypart.name, "oversized ", "")
|
||||
|
||||
UnregisterSignal(human_holder, COMSIG_CARBON_POST_ATTACH_LIMB)
|
||||
|
||||
human_holder.blood_volume_normal = BLOOD_VOLUME_NORMAL
|
||||
human_holder.physiology.hunger_mod /= OVERSIZED_HUNGER_MOD
|
||||
human_holder.remove_movespeed_modifier(/datum/movespeed_modifier/oversized)
|
||||
|
||||
/datum/quirk/oversized/proc/on_gain_limb(datum/source, obj/item/bodypart/gained, special)
|
||||
SIGNAL_HANDLER
|
||||
|
||||
if(findtext(gained.name, "oversized"))
|
||||
return
|
||||
|
||||
// Oversized arms have a higher damage maximum. Pretty simple.
|
||||
if(istype(gained, /obj/item/bodypart/arm))
|
||||
var/obj/item/bodypart/arm/new_arm = gained
|
||||
new_arm.unarmed_damage_high = initial(new_arm.unarmed_damage_high) + OVERSIZED_HARM_DAMAGE_BONUS
|
||||
|
||||
// Before this, we never actually did anything with Oversized legs.
|
||||
// This brings their unarmed_effectiveness up to 20 from 15, which is on par with mushroom legs.
|
||||
// Functionally, this makes their prone kicks more accurate and increases the chance of extending prone knockdown... but only while the victim is already prone.
|
||||
else if(istype(gained, /obj/item/bodypart/leg))
|
||||
var/obj/item/bodypart/leg/new_leg = gained
|
||||
new_leg.unarmed_effectiveness = initial(new_leg.unarmed_effectiveness) + OVERSIZED_KICK_EFFECTIVENESS_BONUS
|
||||
|
||||
gained.name = "oversized " + gained.name
|
||||
|
||||
/datum/movespeed_modifier/oversized
|
||||
multiplicative_slowdown = OVERSIZED_SPEED_SLOWDOWN
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
/obj/item/radio/headset
|
||||
/// The sound that plays when someone uses the headset
|
||||
var/radiosound = 'modular_skyrat/modules/radiosound/sound/radio/common.ogg'
|
||||
/// The volume of the radio sound we make
|
||||
var/radio_sound_volume = 25
|
||||
|
||||
/obj/item/radio/headset/syndicate //disguised to look like a normal headset for stealth ops
|
||||
radiosound = 'modular_skyrat/modules/radiosound/sound/radio/syndie.ogg'
|
||||
@@ -7,7 +10,7 @@
|
||||
/obj/item/radio/headset/headset_sec
|
||||
radiosound = 'modular_skyrat/modules/radiosound/sound/radio/security.ogg'
|
||||
|
||||
/obj/item/radio/headset/talk_into(mob/living/M, message, channel, list/spans, datum/language/language, list/message_mods, direct = TRUE)
|
||||
/obj/item/radio/headset/talk_into(mob/living/mob_in_question, message, channel, list/spans, datum/language/language, list/message_mods, direct = TRUE)
|
||||
if(radiosound && listening)
|
||||
playsound(M, radiosound, rand(20, 30), 0, 0, SOUND_FALLOFF_EXPONENT)
|
||||
playsound(mob_in_question, radiosound, radio_sound_volume, TRUE, SHORT_RANGE_SOUND_EXTRARANGE, SOUND_FALLOFF_EXPONENT)
|
||||
. = ..()
|
||||
|
||||
@@ -6172,7 +6172,9 @@
|
||||
#include "interface\fonts\tiny_unicode.dm"
|
||||
#include "interface\fonts\vcr_osd_mono.dm"
|
||||
#include "modular_skyrat\master_files\code\_globalvars\configuration.dm"
|
||||
#include "modular_skyrat\master_files\code\_globalvars\regexes.dm"
|
||||
#include "modular_skyrat\master_files\code\_globalvars\religion.dm"
|
||||
#include "modular_skyrat\master_files\code\_globalvars\text.dm"
|
||||
#include "modular_skyrat\master_files\code\_globalvars\lists\ambience.dm"
|
||||
#include "modular_skyrat\master_files\code\_globalvars\lists\chat.dm"
|
||||
#include "modular_skyrat\master_files\code\_onclick\cyborg.dm"
|
||||
@@ -6224,6 +6226,7 @@
|
||||
#include "modular_skyrat\master_files\code\datums\traits\negative.dm"
|
||||
#include "modular_skyrat\master_files\code\datums\traits\neutral.dm"
|
||||
#include "modular_skyrat\master_files\code\datums\votes\_vote_datum.dm"
|
||||
#include "modular_skyrat\master_files\code\datums\votes\map_vote.dm"
|
||||
#include "modular_skyrat\master_files\code\game\atoms.dm"
|
||||
#include "modular_skyrat\master_files\code\game\sound.dm"
|
||||
#include "modular_skyrat\master_files\code\game\effects\spawners\random\structure.dm"
|
||||
@@ -7057,6 +7060,7 @@
|
||||
#include "modular_skyrat\modules\customization\modules\language\common.dm"
|
||||
#include "modular_skyrat\modules\customization\modules\language\gutter.dm"
|
||||
#include "modular_skyrat\modules\customization\modules\language\monkey.dm"
|
||||
#include "modular_skyrat\modules\customization\modules\language\mothic.dm"
|
||||
#include "modular_skyrat\modules\customization\modules\language\mushroom.dm"
|
||||
#include "modular_skyrat\modules\customization\modules\language\nekomimetic.dm"
|
||||
#include "modular_skyrat\modules\customization\modules\language\panslavic.dm"
|
||||
@@ -7137,6 +7141,7 @@
|
||||
#include "modular_skyrat\modules\customization\modules\mob\living\carbon\human\species\hemophage\corrupted_stomach.dm"
|
||||
#include "modular_skyrat\modules\customization\modules\mob\living\carbon\human\species\hemophage\corrupted_tongue.dm"
|
||||
#include "modular_skyrat\modules\customization\modules\mob\living\carbon\human\species\hemophage\hemophage_actions.dm"
|
||||
#include "modular_skyrat\modules\customization\modules\mob\living\carbon\human\species\hemophage\hemophage_moods.dm"
|
||||
#include "modular_skyrat\modules\customization\modules\mob\living\carbon\human\species\hemophage\hemophage_organs.dm"
|
||||
#include "modular_skyrat\modules\customization\modules\mob\living\carbon\human\species\hemophage\hemophage_species.dm"
|
||||
#include "modular_skyrat\modules\customization\modules\mob\living\carbon\human\species\hemophage\hemophage_status_effects.dm"
|
||||
|
||||
@@ -86,7 +86,7 @@ const InputDisplay = (props) => {
|
||||
</Box>
|
||||
<Input
|
||||
fluid
|
||||
maxLength={100}
|
||||
maxLength={500} /* SKYRAT EDIT: ORIGINAL 100 */
|
||||
value={description}
|
||||
onChange={(e, value) => setInput({ ...input, description: value })}
|
||||
/>
|
||||
@@ -97,7 +97,7 @@ const InputDisplay = (props) => {
|
||||
</Box>
|
||||
<Input
|
||||
fluid
|
||||
maxLength={100}
|
||||
maxLength={500} /* SKYRAT EDIT: ORIGINAL 100 */
|
||||
value={comments}
|
||||
onChange={(e, value) => setInput({ ...input, comments: value })}
|
||||
/>
|
||||
|
||||
@@ -6,6 +6,8 @@ export const headshot: Feature<string> = {
|
||||
description:
|
||||
'Requires a link ending with .png, .jpeg, or .jpg, starting with \
|
||||
https://, and hosted on Gyazo or Discord. Renders the image underneath \
|
||||
your character preview in the examine more window.',
|
||||
your character preview in the examine more window. \
|
||||
Image larger than 250x250 will be resized to 250x250. \
|
||||
Aim for 250x250 whenever possible',
|
||||
component: FeatureShortTextInput,
|
||||
};
|
||||
|
||||