Merge remote-tracking branch 'refs/remotes/ParadiseSS13/master' into freegolems
@@ -100,7 +100,7 @@
|
||||
"bV" = (/turf/simulated/floor/plasteel{icon_state = "wood"},/area/derelict/bridge)
|
||||
"bW" = (/obj/structure/table/wood,/obj/item/trash/can{desc = "A miniature ship in a bottle. I wonder how they got it in there?"; icon = 'icons/obj/lavaland/artefacts.dmi'; icon_state = "ship_bottle"; name = "ship in a bottle"},/turf/simulated/floor/plasteel{icon_state = "wood"},/area/derelict/bridge)
|
||||
"bX" = (/turf/simulated/floor/carpet,/area/derelict/bridge)
|
||||
"bY" = (/obj/item/clothing/under/retro/security,/obj/item/clothing/under/retro/security,/obj/structure/closet,/obj/item/clothing/gloves/combat,/obj/item/clothing/gloves/combat,/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_y = 24},/turf/simulated/floor/plasteel{dir = 9; icon_state = "darkred"},/area/derelict/arrival)
|
||||
"bY" = (/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Human remains"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/vomit,/turf/simulated/floor/plasteel{dir = 5; icon_state = "darkblue"},/area/derelict/bridge)
|
||||
"bZ" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "darkblue"},/area/derelict/bridge)
|
||||
"ca" = (/obj/structure/table,/turf/simulated/floor/plasteel{dir = 5; icon_state = "blue"},/area/derelict/crew_quarters)
|
||||
"cb" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/bridge)
|
||||
@@ -112,7 +112,7 @@
|
||||
"ch" = (/obj/item/cigbutt{pixel_x = 6; pixel_y = 3},/obj/item/cigbutt{pixel_x = 8; pixel_y = 9},/obj/item/cigbutt,/obj/item/lighter{pixel_x = -6; pixel_y = 5},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 1; icon_state = "darkblue"},/area/derelict/bridge)
|
||||
"ci" = (/obj/item/paper/djstation{info = "<i>The note is stained with ink-smudges, the forceful and shaky handwriting scrawled across it is barely legible.</i><br><br>Vostok stopped banging on the door an hour ago. he must be looking for something to try and force it. I am still unsure what's happened, but it's been six hours now.<br><br>My hands won't stop shaking, not even the cigarettes are helping.<br><br>Vostok, if you manage to get in and I am no longer concious, my medication is in the freezer next to my desk. Please. I'm counting on you."; name = "shaky note"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 1; icon_state = "darkblue"},/area/derelict/bridge)
|
||||
"cj" = (/obj/structure/sign/mech,/turf/simulated/wall/mineral/titanium/nodecon/nodiagonal,/area/derelict/arrival)
|
||||
"ck" = (/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Human remains"},/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 5; icon_state = "darkblue"},/area/derelict/bridge)
|
||||
"ck" = (/obj/structure/cable{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc/noalarm{dir = 8; pixel_x = -24},/turf/simulated/floor/plasteel{icon_state = "wood"},/area/derelict/bridge)
|
||||
"cl" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc/noalarm{dir = 0; name = "Worn-out APC"; pixel_y = -24},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/djstation)
|
||||
"cm" = (/obj/structure/grille,/obj/structure/window/full/shuttle,/turf/simulated/floor/plating,/area/djstation)
|
||||
"cn" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate/orange{desc = "This spacesuit is emblazoned with the emblem of the USSP. Glory to Space Russia!"; name = "Cosmonaut Security Suit"},/obj/item/clothing/head/helmet/space/syndicate/orange{desc = "This spacesuit is emblazoned with the emblem of the USSP. Glory to Space Russia!"; name = "Cosmonaut Security Helmet"},/obj/item/clothing/mask/breath,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/djstation)
|
||||
@@ -120,7 +120,7 @@
|
||||
"cp" = (/obj/structure/sign/securearea,/turf/simulated/wall/mineral/titanium/nodecon/nodiagonal,/area/derelict/arrival)
|
||||
"cq" = (/obj/effect/decal/cleanable/fungus,/turf/simulated/wall/mineral/titanium/nodecon/nodiagonal,/area/derelict/crew_quarters)
|
||||
"cr" = (/obj/structure/chair/comfy/red{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "wood"},/area/derelict/bridge)
|
||||
"cs" = (/obj/structure/cable{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24; shock_proof = 0},/turf/simulated/floor/plasteel{icon_state = "wood"},/area/derelict/bridge)
|
||||
"cs" = (/obj/item/clothing/under/retro/security,/obj/item/clothing/under/retro/security,/obj/structure/closet,/obj/item/clothing/gloves/combat,/obj/item/clothing/gloves/combat,/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/apc/noalarm{dir = 1; pixel_y = 24},/turf/simulated/floor/plasteel{dir = 9; icon_state = "darkred"},/area/derelict/arrival)
|
||||
"ct" = (/obj/structure/chair/stool,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "wood"},/area/derelict/bridge)
|
||||
"cu" = (/obj/structure/table/wood,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/paper/djstation{info = "This damned shower is going to be the death of me. I can see the way Vostok looks at me when I speak of it, the way his eyes sneer with amusement. Just this morning, I swear the damn thing tried to lock me in! I had to break the manual release just to get out, Vostok nearly shit himself he was laughing so hard.<br><br>Well, we'll see how long he'll be laughing when I write to Commissar Grigor about his insolence; the only thing he will be officer of then is the toilet!"; name = "captain's log"},/turf/simulated/floor/plasteel{icon_state = "wood"},/area/derelict/bridge)
|
||||
"cv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/carpet,/area/derelict/bridge)
|
||||
@@ -230,7 +230,7 @@
|
||||
"ev" = (/obj/structure/table/wood,/obj/item/flashlight/lamp/green,/obj/structure/sign/poster/contraband/communist_state{pixel_y = 31},/turf/simulated/floor/plasteel{icon_state = "wood"},/area/derelict/bridge)
|
||||
"ew" = (/obj/structure/sign/poster/contraband/communist_state,/turf/simulated/wall/mineral/titanium/nodecon/nodiagonal,/area/derelict/crew_quarters)
|
||||
"ex" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/poddoor/impassable{id_tag = "ruslockcom"; layer = 3; name = "Bridge Lockdown"},/obj/machinery/door/airlock/command/glass{name = "Command Wing"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/bridge)
|
||||
"ey" = (/obj/machinery/newscaster{desc = "A standard Nanotrasen-licensed newsfeed handler for use in commercial space stations. Strange that it's on a Russian station."; layer = 3.3; pixel_x = 27; pixel_x = 1},/obj/item/trash/spentcasing{icon_state = "762-casing"},/turf/simulated/floor/plasteel{icon_state = "wood"},/area/derelict/crew_quarters)
|
||||
"ey" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/piano,/obj/machinery/power/apc/noalarm{dir = 1; pixel_y = 24},/turf/simulated/floor/plasteel{icon_state = "wood"},/area/derelict/crew_quarters)
|
||||
"ez" = (/turf/simulated/wall/mineral/titanium/interior,/area/derelict/arrival)
|
||||
"eA" = (/obj/structure/closet/crate/can,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/item/trash/can,/obj/item/trash/semki,/turf/simulated/floor/plasteel{dir = 10; icon_state = "darkblue"},/area/derelict/bridge)
|
||||
"eB" = (/obj/structure/sign/poster/contraband/random{pixel_x = 32},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 4; icon_state = "darkblue"},/area/derelict/bridge)
|
||||
@@ -367,8 +367,8 @@
|
||||
"hc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/eva{name = "Derelict Annex"})
|
||||
"hd" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/arrival)
|
||||
"he" = (/obj/machinery/door/airlock/shuttle{name = "Dormitories"},/turf/simulated/floor/plasteel{icon_state = "wood"},/area/derelict/crew_quarters)
|
||||
"hf" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/piano,/turf/simulated/floor/plasteel{icon_state = "wood"},/area/derelict/crew_quarters)
|
||||
"hg" = (/obj/structure/chair/stool,/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Human remains"},/turf/simulated/floor/plasteel{icon_state = "wood"},/area/derelict/crew_quarters)
|
||||
"hf" = (/obj/structure/chair/stool,/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Human remains"},/obj/effect/decal/cleanable/blood,/turf/simulated/floor/plasteel{icon_state = "wood"},/area/derelict/crew_quarters)
|
||||
"hg" = (/obj/machinery/newscaster{desc = "A standard Nanotrasen-licensed newsfeed handler for use in commercial space stations. Strange that it's on a Russian station."; layer = 3.3; pixel_x = 30},/obj/item/trash/spentcasing{icon_state = "762-casing"},/turf/simulated/floor/plasteel{icon_state = "wood"},/area/derelict/crew_quarters)
|
||||
"hh" = (/obj/structure/rack,/obj/item/clothing/shoes/jackboots{desc = "Nothing quite strikes fear into the hearts of TSF marines like a good pair of jackboots!"},/turf/simulated/floor/plasteel{dir = 10; icon_state = "darkred"},/area/derelict/arrival)
|
||||
"hi" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/window/westleft,/obj/structure/sign/poster/contraband/red_rum{pixel_y = -32},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 2; icon_state = "darkred"},/area/derelict/arrival)
|
||||
"hj" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 2; icon_state = "darkred"},/area/derelict/arrival)
|
||||
@@ -419,8 +419,8 @@
|
||||
"ic" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Human remains"},/obj/structure/spider/cocoon,/turf/simulated/floor/plasteel,/area/derelict/crew_quarters)
|
||||
"id" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/arrival)
|
||||
"ie" = (/obj/structure/closet/crate/can,/obj/item/trash/raisins,/obj/item/trash/can,/obj/item/trash/semki,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 9; icon_state = "darkred"},/area/derelict/arrival)
|
||||
"if" = (/obj/effect/decal/cleanable/blood,/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Human remains"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "darkred"},/area/derelict/arrival)
|
||||
"ig" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "cautionfull"},/obj/effect/landmark/burnturf,/turf/simulated/wall/mineral/titanium/nodecon/tileblend{fixed_underlay = list("icon" = 'icons/turf/floors.dmi', "icon_state" = "cautionfull"); icon_state = "4-i"},/area/derelict/eva{name = "Derelict Annex"})
|
||||
"if" = (/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Human remains"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "darkred"},/area/derelict/arrival)
|
||||
"ig" = (/obj/structure/chair/stool/bar,/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Human remains"},/obj/effect/decal/cleanable/blood,/turf/simulated/floor/plasteel{icon_state = "wood"},/area/derelict/crew_quarters)
|
||||
"ih" = (/obj/structure/rack,/obj/item/storage/toolbox/emergency/old,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 5; icon_state = "darkred"},/area/derelict/arrival)
|
||||
"ii" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "purple"},/area/derelict/eva{name = "Derelict Annex"})
|
||||
"ij" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel,/area/derelict/eva{name = "Derelict Annex"})
|
||||
@@ -461,7 +461,7 @@
|
||||
"iS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/obj/item/trash/spentcasing{icon_state = "762-casing"},/turf/simulated/floor/plasteel,/area/derelict/eva{name = "Derelict Annex"})
|
||||
"iT" = (/obj/machinery/door_control{id = "ruslock"; layer = 2.1; name = "suspicious button"},/obj/machinery/vending/cigarette/free{product_slogans = "Just remember! No capitalist.;Best enjoyed with Vodka!.;Smoke!;Nine out of ten USSP scientists agree, smoking reduces stress!;There's no cigarette like a Russian cigarette!;Cigarettes! Now with 100% less capitalism."},/turf/simulated/floor/wood{broken = 1; icon_state = "wood-broken"},/area/derelict/crew_quarters)
|
||||
"iU" = (/obj/structure/chair/stool/bar,/turf/simulated/floor/plasteel{icon_state = "wood"},/area/derelict/crew_quarters)
|
||||
"iV" = (/obj/structure/chair/stool/bar,/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Human remains"},/turf/simulated/floor/plasteel{icon_state = "wood"},/area/derelict/crew_quarters)
|
||||
"iV" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc/noalarm{dir = 1; pixel_y = 24},/turf/simulated/floor/plasteel{dir = 1; icon_state = "caution"},/area/derelict/eva{name = "Derelict Annex"})
|
||||
"iW" = (/obj/structure/grille,/obj/structure/shuttle/window{tag = "icon-window5_end (NORTH)"; icon = 'icons/turf/shuttle.dmi'; icon_state = "window5_end"; dir = 1},/turf/simulated/floor/plating,/area/derelict/arrival)
|
||||
"iX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/arrival)
|
||||
"iY" = (/obj/structure/table/reinforced,/obj/item/paper_bin,/obj/item/pen,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 4; icon_state = "darkred"},/area/derelict/arrival)
|
||||
@@ -475,7 +475,7 @@
|
||||
"jg" = (/obj/structure/chair/wood/normal{dir = 8},/obj/structure/sign/poster/contraband/random{pixel_x = 32},/turf/simulated/floor/plasteel{dir = 6; icon_state = "darkblue"},/area/derelict/eva{name = "Derelict Annex"})
|
||||
"jh" = (/obj/structure/table/wood,/obj/item/ashtray/plastic,/turf/simulated/floor/plasteel{dir = 2; icon_state = "darkblue"},/area/derelict/eva{name = "Derelict Annex"})
|
||||
"ji" = (/obj/machinery/floodlight,/turf/simulated/floor/plasteel{dir = 10; icon_state = "caution"},/area/derelict/eva{name = "Derelict Annex"})
|
||||
"jj" = (/turf/space,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating/airless/catwalk,/area/derelict/solar_control)
|
||||
"jj" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "cautionfull"},/obj/effect/landmark/burnturf,/turf/simulated/wall/mineral/titanium/nodecon/tileblend{fixed_underlay = list("icon" = 'icons/turf/floors.dmi', "icon_state" = "cautionfull"); icon_state = "4-i"},/area/derelict/eva{name = "Derelict Annex"})
|
||||
"jk" = (/obj/machinery/power/solar_control{id = "russolar"; track = 2},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plasteel{icon_state = "caution"; dir = 4},/area/derelict/eva{name = "Derelict Annex"})
|
||||
"jl" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/stock_parts/cell/high,/obj/structure/spider/stickyweb,/turf/simulated/floor/plasteel,/area/derelict/crew_quarters)
|
||||
"jm" = (/obj/structure/spider/stickyweb,/turf/simulated/floor/plasteel,/area/derelict/crew_quarters)
|
||||
@@ -502,7 +502,7 @@
|
||||
"jH" = (/obj/machinery/recharge_station,/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor/plasteel{dir = 10; icon_state = "caution"},/area/derelict/eva{name = "Derelict Annex"})
|
||||
"jI" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/derelict/eva{name = "Derelict Annex"})
|
||||
"jJ" = (/obj/structure/rack,/obj/item/t_scanner,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/machinery/light/spot{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/turf/simulated/floor/plasteel{icon_state = "caution"; dir = 5},/area/derelict/eva{name = "Derelict Annex"})
|
||||
"jK" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plasteel{dir = 1; icon_state = "caution"},/area/derelict/eva{name = "Derelict Annex"})
|
||||
"jK" = (/turf/space,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating/airless/catwalk,/area/derelict/solar_control)
|
||||
"jL" = (/obj/structure/table/wood,/obj/item/ashtray/bronze,/turf/simulated/floor/plasteel{icon_state = "wood"},/area/derelict/crew_quarters)
|
||||
"jM" = (/obj/structure/chair/wood/normal{dir = 8},/turf/simulated/floor/plasteel{icon_state = "wood"},/area/derelict/crew_quarters)
|
||||
"jN" = (/obj/structure/closet/secure_closet/bar,/obj/item/reagent_containers/food/drinks/bottle/vodka,/obj/item/reagent_containers/food/drinks/bottle/vodka,/obj/item/reagent_containers/food/drinks/bottle/vodka,/obj/item/reagent_containers/food/drinks/bottle/rum,/obj/item/reagent_containers/food/drinks/bottle/kahlua,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/derelict/crew_quarters)
|
||||
@@ -1334,8 +1334,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjbj
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjaeaeaEaEacacaaaaaGaFaFaHahahaGaeaeacacaEaEaeaabjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIaJaKaKaKaLaJaMaPaNaKaJaIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjaeaEaQaQaRaRaSaSaGahahajakaUaGaSaSaTaTaVaVaEaabjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIaYaYaYaJaZbdbcbfbebhbgbkbibmblaJaYaYaYaIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjaaaaaEaEacacaaaaboamahbpahaFbobqbqacacaEaEaaaabjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIaYaYbbbrbwbuaJbxbCbBbDbCbFbEbHbGbJbIaJbKbMbLaJaYaYbnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaeaEaQaQaQaRaSaSayahahbPbQbQbRaSaSaTaTaVaVaEaebjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtaJbUbTbWbVbVbXaJbZcbbCcdcccccccebCbCcfaJbZcgcgcichckbzbnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjaeaeaEaEaEaEaeaecmclaraqcocncmaaaaaEaEaEaEaeaebjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtbNbNaJcscrcuctcwcvcycxcxczczczcAbCbCbCbCbCcBcgcDcCcFcEcGbzbzbzbnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaeaEaQaQaQaRaSaSayahahbPbQbQbRaSaSaTaTaVaVaEaebjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtaJbUbTbWbVbVbXaJbZcbbCcdcccccccebCbCcfaJbZcgcgcichbYbzbnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjaeaeaEaEaEaEaeaecmclaraqcocncmaaaaaEaEaEaEaeaebjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtbNbNaJckcrcuctcwcvcycxcxczczczcAbCbCbCbCbCcBcgcDcCcFcEcGbzbzbzbnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjbjaeaaaaaaaaaaaeaxaxaxcKaxaxaxaaaaaaaaaaaaaebjbjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtgkcLcNaJcPcOcRcQbVbXaJbZbCbCbCbCcTbCbCbCcVcUaJbZcDcWcXcEcZbzdadabzbnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjbjaaaxaxaxaxaxdddcdfdedhdgddaxaxaxaxaxaabjbjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtbNgkdjdidkaJcQdlbVbVbVcQaJdmdodndpbCcTbCdrdqdtdsaJducDdvdwcEdxbzdzdydAbzbzbnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmaBdBdDdCagdEdFdfdHdGagdIdKdJdLcmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtbNdOdNdQdPdRaJaJdSaJaJdXdWaJaYaYaYaJdYeadZaJaYaYaYaJecefcgcgcgcfbzegdydAbzbnbnbnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
@@ -1345,21 +1345,21 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxfEfDaxgHfFdedefGfHaxaaaebsaaaaaeaeaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaabNfKfJfMfLfNfMfPfOfQaJaIaeaaaaaaaaaaaaaagUaaeSfceeaaaaaaaaaaaaaaaaaaaeaIbzfTfSfUflflfVbzfWfWbzbnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaxfYfXgaaxgcgbddbvddaxaabsbsaeaaaaaeaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtbNggfMfMghgjgiglbNgmaIaeaeaaaaaaaaaaaaaaaaaafmfceeaaaaaaaaaaaaaaaaaaaeaebngrbzbzgsgsbzbzgtflgubnbnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxaxddaxaxaxaxaxbyaxaebjbsaeaaaaaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtbNbNgwfMfMfMfMgxbNbtaeaeaeaeaaaaaaaaaaaaaaaaaaeefyeeaaaaaaaaaaaaaaaaaaaeaeaeaebnbnflflflflflflflgAbzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxbAaxbsbsaeaaaaaeaeaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtaWbYgCfMfMfMfMgFaWezaaaaaaaeaaaaaaaaaaaaaaaaaaaaeefceeaaaaaaaaaaaaaaaaaeaeaeaaaaaabnbnflgtflflflgtgGbzbnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxbAaxbsbsaeaaaaaeaeaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtaWcsgCfMfMfMfMgFaWezaaaaaaaeaaaaaaaaaaaaaaaaaaaaeefceeaaaaaaaaaaaaaaaaaeaeaeaaaaaabnbnflgtflflflgtgGbzbnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagIhlgIaaaeaeaaaaaeaaaaaaaaaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtaWgJeEfMfMfMfMgFaWezaaaaaaaaaaaaaaaeaaaaaaaaaaaacHcJgNcJcHaaaaaaaaaaaaaeaeaeaaaaaaaaaabnbngPgRgQgQgSbzbzbzbnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNgVfMeEfMfMgWgXaWezaaaaaaaaaaaaaaaaaaaaaaaacHcMcMcMgZhcbScMcMcMcHaeaeaeaeaeaaaaaaaaaaaaaabnbzbzbzhebzbzhfhgbzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaeaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtbNhhfMeEdNhjhihkgmaaaaaaaaaaaaaaaaaaaeaecHcMcMhnhmcSeheZhbcMhohvcYcMcHhwaeaeaaaaaaaaaaaaaaaagrhyhxhAhzhChBeybzbnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNgVfMeEfMfMgWgXaWezaaaaaaaaaaaaaaaaaaaaaaaacHcMcMcMgZhcbScMcMcMcHaeaeaeaeaeaaaaaaaaaaaaaabnbzbzbzhebzbzeyhfbzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaeaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtbNhhfMeEdNhjhihkgmaaaaaaaaaaaaaaaaaaaeaecHcMcMhnhmcSeheZhbcMhohvcYcMcHhwaeaeaaaaaaaaaaaaaaaagrhyhxhAhzhChBhgbzbnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtbNbNdbhEfxcpbNbNbNbtaaaaaaaeaaaaaaaaaecHhJhshLhKhMhMhOhqhrhthRhQhThShVhUhWcHaeaaaaaaaaaaaaaaaabnbnhAeFhYhAiahAibbnbnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaabNieftiffMeEftihbNbtaaaaaaaaaaaaaaaaaacHcMhLiihMijikikimilioiniqipisirhMitiuhUcHaaaaaaaaaaaaaaaaaabnbnhAivixiwhAiyizgraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNiBfMhGidiAiEiGiFaaaaaaaaaaaaaaaaaacHhsiHiIhMijiJhMiKdMhNiMhPcMiNhMiPirhMiRiQcMcHaaaaaaaaaaaaaaaaaagriThAgDiahYgMiVgraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNiBfMhGidiAiEiGiFaaaaaaaaaaaaaaaaaacHhsiHiIhMijiJhMiKdMhNiMhPcMiNhMiPirhMiRiQcMcHaaaaaaaaaaaaaaaaaagriThAgDiahYgMiggraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtaWgwfMiXfMiZiYbNbtaaaaaaaaaaaaaaaacHhsjbjahMijiJhMjdeTdTjejhjgcMjihMhMiPirhMjkcMdUcHaaaaaaaaaaaaaaaabnbzjnjpiajrjqjsbzbnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNjufzfMiXfMfMjviFaaaaaaaaaaaaaaaacHcMjwjyjxijiJhMjzjBcMcMcMhJcMcMdVjHjGhMiPjIiJjKjJhUcHaaaaaaaaaaaaaaaagrjLjMiaiUjqgOjNbzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebjPhdfMiXgTjSaWbtaaaaaaaaaaaaaaaahJjUjTjVijiJiRiKhshJcHaaaaaaaaaacHhJigkaiRiPikkbhMfAhJaaaaaaaaaaaaaaaabnbzhAhBiUkdkfkebzaaaaaaaaaakgaaaaaakhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNkifJkjiXkkklbNaaaaaaaaaaaaaaaacHhskmikikiJiRknkohJaaaaaaaaaaaaaaaakphJkrkqhMhMkshMkthUcHaaaaaaaaaaaaaaaabzkuiaiUkvgOkwbzaaaaaaaakxjjkyaakAjjkyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtbNeikDbNkFbNbNbtaaaaaaaaaaaaaaaacMkHkshMhMhMkKkJcMcHaaaaaaaaaajtaagUaacHepkLkNhMkshMkPkOcMaaaaaaaaaaaaaaaabnbzkQkReDkSbzbzbnaaaaaakxjjkyaakAjjkyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNgBkTkVkVkXkWbNaaaaaaaaaaaaaaaacHcMkYkshMhMiKhshJcHaeaaaeaeaaaeaakZaaaaaacHhJhUlaiPikldlccMcHaaaaaaaaaaaaaaaabzlelglflgjXlibzaaaaaakxjjkyaakAjjkyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNljgfgfgfhDlkbNaaaaaaaaaaaaaaaacMjDhMkslnlqlohJaaaaaaaaaacHcMfbfRlDlyedaeaeaahJlMhMhMkshMlNcMaaaaaaaaaaaaaaaaewlQhFlflflTmdgraaaaaakxjjkyaakAjjkyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiCiDiLiWjFbtbNbNplpkgfhHllpobNaaaaaaaaaaaaaaaacMprhMkspspvcMcHaaaaaaaacHcMlhpJpHlDpKaagUaaaacHcMpMjGkshMpNcMaaaaaaaaaaaaaaaabzpOgylghIpQpRgraaaaaakxjjkyaakAjjkyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNjufzfMiXfMfMjviFaaaaaaaaaaaaaaaacHcMjwjyjxijiJhMjzjBcMcMcMhJcMcMdVjHjGhMiPjIiJiVjJhUcHaaaaaaaaaaaaaaaagrjLjMiaiUjqgOjNbzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebjPhdfMiXgTjSaWbtaaaaaaaaaaaaaaaahJjUjTjVijiJiRiKhshJcHaaaaaaaaaacHhJjjkaiRiPikkbhMfAhJaaaaaaaaaaaaaaaabnbzhAhBiUkdkfkebzaaaaaaaaaakgaaaaaakhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNkifJkjiXkkklbNaaaaaaaaaaaaaaaacHhskmikikiJiRknkohJaaaaaaaaaaaaaaaakphJkrkqhMhMkshMkthUcHaaaaaaaaaaaaaaaabzkuiaiUkvgOkwbzaaaaaaaakxjKkyaakAjKkyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtbNeikDbNkFbNbNbtaaaaaaaaaaaaaaaacMkHkshMhMhMkKkJcMcHaaaaaaaaaajtaagUaacHepkLkNhMkshMkPkOcMaaaaaaaaaaaaaaaabnbzkQkReDkSbzbzbnaaaaaakxjKkyaakAjKkyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNgBkTkVkVkXkWbNaaaaaaaaaaaaaaaacHcMkYkshMhMiKhshJcHaeaaaeaeaaaeaakZaaaaaacHhJhUlaiPikldlccMcHaaaaaaaaaaaaaaaabzlelglflgjXlibzaaaaaakxjKkyaakAjKkyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNljgfgfgfhDlkbNaaaaaaaaaaaaaaaacMjDhMkslnlqlohJaaaaaaaaaacHcMfbfRlDlyedaeaeaahJlMhMhMkshMlNcMaaaaaaaaaaaaaaaaewlQhFlflflTmdgraaaaaakxjKkyaakAjKkyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiCiDiLiWjFbtbNbNplpkgfhHllpobNaaaaaaaaaaaaaaaacMprhMkspspvcMcHaaaaaaaacHcMlhpJpHlDpKaagUaaaacHcMpMjGkshMpNcMaaaaaaaaaaaaaaaabzpOgylghIpQpRgraaaaaakxjKkyaakAjKkyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajOpSpVpUjObNpXpWgfgfpZgfllqabNbtaaaaaaaaaaaacHcMcSqdqfcMcMcMaaaaaaaacHcMlhpJqglDlDgngoaajtaaaacMcMcMqkqjcMcMcHaaaaaaaaaaaabnbzqmqoqnhAhAonbzbzbnaaaaoSaaaaaaoSaaaakhkhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajOqrqtqsqvquqxgfhXgfgfgfqzhZqAbNfbfbfbfbfbfbcMkclmkcmEnnqpcMqEqDqEqEcMlhpJgElDhapJhpcMqEqDqEqEcMqNpjpTqCqIqJcMfbfbfbfbfbfbbzqoqmqolfqLhArlqMqPqOrmrmrnrmrmrmrnrmrmrnrFkyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajOqTqsqUjObNqXqWgYqYrbiOrdrcrfreikrgrhiSrgrjrXrkscsViJhMrHstrororororppJkClDlDlDlbrrrurtrtrtrtrvrWikrwiksYikrxikryikikryrhrzrBrArCrCsZrEsgeGbzbzrIaarJaaaaaarJaaaaaashrKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"c" = (/obj/machinery/shower{pixel_y = 24},/obj/structure/window/reinforced/polarized{dir = 4; id = "room_s"},/turf/unsimulated/floor{dir = 8; icon_state = "whiteblue"},/area/template_noop)
|
||||
"d" = (/turf/unsimulated/floor/carpet,/area/template_noop)
|
||||
"e" = (/obj/structure/rack,/obj/item/clothing/suit/apron,/obj/item/clothing/suit/storage/hazardvest,/obj/item/clothing/suit/holidaypriest,/obj/item/clothing/suit/judgerobe,/obj/item/clothing/suit/storage/labcoat,/obj/item/clothing/suit/hooded/nun,/obj/item/clothing/suit/straight_jacket,/obj/item/clothing/suit/wizrobe/fake,/obj/item/clothing/suit/wizrobe/marisa/fake,/obj/effect/decal/cleanable/greenglow,/turf/unsimulated/floor/carpet,/area/template_noop)
|
||||
"f" = (/obj/structure/rack,/obj/item/clothing/head/collectable/police,/obj/item/clothing/head/nun_hood,/obj/item/clothing/head/mailman,/obj/item/clothing/head/nursehat,/obj/item/clothing/head/wizard/fake,/obj/item/clothing/head/powdered_wig,/obj/item/clothing/head/wizard/marisa/fake,/obj/item/clothing/mask/gas/sexyclown,/turf/unsimulated/floor/carpet,/area/template_noop)
|
||||
"f" = (/obj/structure/rack,/obj/item/clothing/head/collectable/police,/obj/item/clothing/head/nun_hood,/obj/item/clothing/head/mailman,/obj/item/clothing/head/nursehat,/obj/item/clothing/head/wizard/fake,/obj/item/clothing/head/powdered_wig,/obj/item/clothing/head/wizard/marisa/fake,/obj/item/clothing/mask/gas/clown_hat/sexy,/turf/unsimulated/floor/carpet,/area/template_noop)
|
||||
"g" = (/obj/structure/rack,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/head/kitty,/obj/item/clothing/head/rabbitears,/obj/item/clothing/mask/muzzle,/obj/item/clothing/accessory/stethoscope,/turf/unsimulated/floor/carpet,/area/template_noop)
|
||||
"h" = (/obj/structure/dresser,/turf/unsimulated/floor/carpet,/area/template_noop)
|
||||
"i" = (/obj/structure/table/wood,/obj/item/flashlight/lamp/green,/turf/unsimulated/floor/carpet,/area/template_noop)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"c" = (/obj/machinery/shower{pixel_y = 24},/obj/structure/window/reinforced/polarized{dir = 4; id = "room_s"},/turf/unsimulated/floor{dir = 8; icon_state = "whiteblue"},/area/template_noop)
|
||||
"d" = (/turf/unsimulated/floor/carpet,/area/template_noop)
|
||||
"e" = (/obj/structure/rack,/obj/item/clothing/suit/apron,/obj/item/clothing/suit/storage/hazardvest,/obj/item/clothing/suit/holidaypriest,/obj/item/clothing/suit/judgerobe,/obj/item/clothing/suit/storage/labcoat,/obj/item/clothing/suit/hooded/nun,/obj/item/clothing/suit/straight_jacket,/obj/item/clothing/suit/wizrobe/fake,/obj/item/clothing/suit/xenos,/obj/item/clothing/suit/wizrobe/marisa/fake,/turf/unsimulated/floor/carpet,/area/template_noop)
|
||||
"f" = (/obj/structure/rack,/obj/item/clothing/head/collectable/police,/obj/item/clothing/head/nun_hood,/obj/item/clothing/head/mailman,/obj/item/clothing/head/nursehat,/obj/item/clothing/head/wizard/fake,/obj/item/clothing/head/powdered_wig,/obj/item/clothing/head/xenos,/obj/item/clothing/head/wizard/marisa/fake,/obj/item/clothing/mask/gas/sexyclown,/turf/unsimulated/floor/carpet,/area/template_noop)
|
||||
"f" = (/obj/structure/rack,/obj/item/clothing/head/collectable/police,/obj/item/clothing/head/nun_hood,/obj/item/clothing/head/mailman,/obj/item/clothing/head/nursehat,/obj/item/clothing/head/wizard/fake,/obj/item/clothing/head/powdered_wig,/obj/item/clothing/head/xenos,/obj/item/clothing/head/wizard/marisa/fake,/obj/item/clothing/mask/gas/clown_hat/sexy,/turf/unsimulated/floor/carpet,/area/template_noop)
|
||||
"g" = (/obj/structure/rack,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/head/kitty,/obj/item/clothing/head/rabbitears,/obj/item/clothing/mask/muzzle,/obj/item/clothing/accessory/stethoscope,/turf/unsimulated/floor/carpet,/area/template_noop)
|
||||
"h" = (/obj/structure/dresser,/turf/unsimulated/floor/carpet,/area/template_noop)
|
||||
"i" = (/obj/structure/table/wood,/obj/item/flashlight/lamp/green,/turf/unsimulated/floor/carpet,/area/template_noop)
|
||||
|
||||
@@ -75,6 +75,9 @@ GLOBAL_LIST_INIT(glass_sheet_types, typecacheof(list(
|
||||
|
||||
#define isslime(A) (istype((A), /mob/living/carbon/slime))
|
||||
|
||||
//Structures
|
||||
#define isstructure(A) (istype((A), /obj/structure))
|
||||
|
||||
// Misc
|
||||
#define isclient(A) istype(A, /client)
|
||||
#define isradio(A) istype(A, /obj/item/radio)
|
||||
|
||||
@@ -51,4 +51,6 @@
|
||||
#define EXP_TYPE_SECURITY "Security"
|
||||
#define EXP_TYPE_SILICON "Silicon"
|
||||
#define EXP_TYPE_SERVICE "Service"
|
||||
#define EXP_TYPE_WHITELIST "Whitelist"
|
||||
#define EXP_TYPE_WHITELIST "Whitelist"
|
||||
|
||||
#define EXP_DEPT_TYPE_LIST list(EXP_TYPE_SERVICE, EXP_TYPE_MEDICAL, EXP_TYPE_ENGINEERING, EXP_TYPE_SCIENCE, EXP_TYPE_SECURITY, EXP_TYPE_COMMAND, EXP_TYPE_SILICON, EXP_TYPE_SPECIAL)
|
||||
@@ -449,7 +449,7 @@ proc/pollCandidates(Question, be_special_type, antag_age_check = 0, poll_time =
|
||||
if(jobban_isbanned(G, roletext) || jobban_isbanned(G, "Syndicate"))
|
||||
continue
|
||||
if(config.use_exp_restrictions && min_hours)
|
||||
if(G.client.get_exp_living_num() < min_hours * 60)
|
||||
if(G.client.get_exp_type_num(EXP_TYPE_LIVING) < min_hours * 60)
|
||||
continue
|
||||
if(check_antaghud && cannotPossess(G))
|
||||
continue
|
||||
|
||||
@@ -343,7 +343,7 @@ var/record_id_num = 1001
|
||||
locked += L
|
||||
return
|
||||
|
||||
/proc/get_id_photo(mob/living/carbon/human/H)
|
||||
/proc/get_id_photo(mob/living/carbon/human/H, var/custom_job = null)
|
||||
var/icon/preview_icon = null
|
||||
var/obj/item/organ/external/head/head_organ = H.get_organ("head")
|
||||
var/obj/item/organ/internal/eyes/eyes_organ = H.get_int_organ(/obj/item/organ/internal/eyes)
|
||||
@@ -470,142 +470,166 @@ var/record_id_num = 1001
|
||||
|
||||
|
||||
var/icon/clothes_s = null
|
||||
if(H.mind)
|
||||
switch(H.mind.assigned_role)
|
||||
if("Head of Personnel")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "hop_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
if("Nanotrasen Representative")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "officer_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY)
|
||||
if("Blueshield")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "officer_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/hands.dmi', "swat_gl"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "blueshield"), ICON_OVERLAY)
|
||||
if("Magistrate")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "really_black_suit_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "judge"), ICON_OVERLAY)
|
||||
if("Bartender")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "ba_suit_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Botanist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "hydroponics_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Chef")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "chef_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Janitor")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "janitor_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Librarian")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "red_suit_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Quartermaster")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "qm_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
if("Cargo Technician")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "cargotech_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Shaft Miner")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "miner_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Lawyer")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "internalaffairs_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
if("Chaplain")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "chapblack_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Research Director")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "director_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY)
|
||||
if("Scientist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "toxinswhite_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_tox_open"), ICON_OVERLAY)
|
||||
if("Chemist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "chemistrywhite_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_chem_open"), ICON_OVERLAY)
|
||||
if("Chief Medical Officer")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "cmo_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_cmo_open"), ICON_OVERLAY)
|
||||
if("Medical Doctor")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "medical_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY)
|
||||
if("Geneticist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "geneticswhite_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_gen_open"), ICON_OVERLAY)
|
||||
if("Virologist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "virologywhite_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_vir_open"), ICON_OVERLAY)
|
||||
if("Psychiatrist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "psych_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_UNDERLAY)
|
||||
if("Paramedic")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "paramedic_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Captain")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "captain_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
if("Head of Security")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "hosred_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
|
||||
if("Warden")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "warden_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
|
||||
if("Detective")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "detective_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "detective"), ICON_OVERLAY)
|
||||
if("Security Pod Pilot")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "secred_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "bomber"), ICON_OVERLAY)
|
||||
if("Brig Physician")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "medical_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "fr_jacket_open"), ICON_OVERLAY)
|
||||
if("Security Officer")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "secred_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
|
||||
if("Chief Engineer")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "chief_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
|
||||
if("Station Engineer")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "engine_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "orange"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
|
||||
if("Life Support Specialist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "atmos_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
|
||||
if("Mechanic")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "mechanic_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "orange"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
|
||||
if("Roboticist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "robotics_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY)
|
||||
else if(H.mind.assigned_role in get_all_centcom_jobs())
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "officer_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY)
|
||||
else
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "grey_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
else
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "grey_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
|
||||
var/job_clothes = null
|
||||
if(custom_job)
|
||||
job_clothes = custom_job
|
||||
else if(H.mind)
|
||||
job_clothes = H.mind.assigned_role
|
||||
switch(job_clothes)
|
||||
if("Head of Personnel")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "hop_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
if("Nanotrasen Representative")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "officer_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY)
|
||||
if("Blueshield")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "officer_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/hands.dmi', "swat_gl"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "blueshield"), ICON_OVERLAY)
|
||||
if("Magistrate")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "really_black_suit_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "judge"), ICON_OVERLAY)
|
||||
if("Bartender")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "ba_suit_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Botanist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "hydroponics_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Chef")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "chef_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Janitor")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "janitor_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Librarian")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "red_suit_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Barber")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "barber_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Clown")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "clown_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "clown"), ICON_UNDERLAY)
|
||||
if("Mime")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "mime_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Quartermaster")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "qm_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
if("Cargo Technician")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "cargotech_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Shaft Miner")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "miner_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Lawyer")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "internalaffairs_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
if("Chaplain")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "chapblack_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Research Director")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "director_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY)
|
||||
if("Scientist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "toxinswhite_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_tox_open"), ICON_OVERLAY)
|
||||
if("Chemist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "chemistrywhite_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_chem_open"), ICON_OVERLAY)
|
||||
if("Chief Medical Officer")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "cmo_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_cmo_open"), ICON_OVERLAY)
|
||||
if("Medical Doctor")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "medical_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY)
|
||||
if("Coroner")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "scrubsblack_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_mort_open"), ICON_OVERLAY)
|
||||
if("Geneticist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "geneticswhite_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_gen_open"), ICON_OVERLAY)
|
||||
if("Virologist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "virologywhite_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_vir_open"), ICON_OVERLAY)
|
||||
if("Psychiatrist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "psych_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_UNDERLAY)
|
||||
if("Paramedic")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "paramedic_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Captain")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "captain_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
if("Head of Security")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "hosred_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
|
||||
if("Warden")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "warden_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
|
||||
if("Detective")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "detective_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "detective"), ICON_OVERLAY)
|
||||
if("Security Pod Pilot")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "secred_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "bomber"), ICON_OVERLAY)
|
||||
if("Brig Physician")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "medical_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "fr_jacket_open"), ICON_OVERLAY)
|
||||
if("Security Officer")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "secred_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
|
||||
if("Chief Engineer")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "chief_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
|
||||
if("Station Engineer")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "engine_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "orange"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
|
||||
if("Life Support Specialist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "atmos_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
|
||||
if("Mechanic")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "mechanic_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "orange"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
|
||||
if("Roboticist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "robotics_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY)
|
||||
if("Syndicate Agent")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "syndicate_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Syndicate Officer")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "syndicate_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/hands.dmi', "swat_gl"), ICON_UNDERLAY)
|
||||
if("Syndicate Nuclear Operative")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "syndicate_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/hands.dmi', "swat_gl"), ICON_UNDERLAY)
|
||||
else if(H.mind.assigned_role in get_all_centcom_jobs())
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "officer_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY)
|
||||
else
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "grey_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
|
||||
preview_icon.Blend(face_s, ICON_OVERLAY) // Why do we do this twice
|
||||
if(clothes_s)
|
||||
|
||||
@@ -59,6 +59,7 @@ var/list/diseases = subtypesof(/datum/disease)
|
||||
var/cure_chance = 8
|
||||
var/carrier = FALSE //If our host is only a carrier
|
||||
var/bypasses_immunity = FALSE //Does it skip species virus immunity check? Some things may diseases and not viruses
|
||||
var/virus_heal_resistant = FALSE // Some things aren't technically viruses/traditional diseases and should be immune to edge case cure methods, like healing viruses.
|
||||
var/permeability_mod = 1
|
||||
var/severity = NONTHREAT
|
||||
var/list/required_organs = list()
|
||||
|
||||
@@ -69,6 +69,8 @@ Bonus
|
||||
var/cured = 0
|
||||
for(var/thing in M.viruses)
|
||||
var/datum/disease/D = thing
|
||||
if(D.virus_heal_resistant)
|
||||
continue
|
||||
if(D != A)
|
||||
cured = 1
|
||||
cured_diseases += D.GetDiseaseID()
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
visibility_flags = HIDDEN_PANDEMIC
|
||||
required_organs = list(/obj/item/organ/internal/appendix)
|
||||
bypasses_immunity = TRUE
|
||||
virus_heal_resistant = TRUE
|
||||
|
||||
/datum/disease/appendicitis/stage_act()
|
||||
..()
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
severity = MINOR
|
||||
disease_flags = CURABLE
|
||||
spread_flags = NON_CONTAGIOUS
|
||||
virus_heal_resistant = TRUE
|
||||
var/remissive = 0
|
||||
|
||||
/datum/disease/food_poisoning/stage_act()
|
||||
|
||||
@@ -11,7 +11,9 @@
|
||||
desc = "Uncontrollable laughing."
|
||||
severity = BIOHAZARD
|
||||
spread_flags = NON_CONTAGIOUS
|
||||
disease_flags = CAN_CARRY
|
||||
bypasses_immunity = TRUE //Kuru is a prion disorder, not a virus
|
||||
virus_heal_resistant = TRUE
|
||||
|
||||
/datum/disease/kuru/stage_act()
|
||||
..()
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
qdel(src)
|
||||
owner = new_owner
|
||||
|
||||
/datum/spawners_menu/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = FALSE, datum/nanoui/master_ui = null)
|
||||
/datum/spawners_menu/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = FALSE, datum/topic_state/state = ghost_state, datum/nanoui/master_ui = null)
|
||||
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
if(!ui)
|
||||
ui = new(user, src, ui_key, "spawners_menu.tmpl", "Spawners Menu", 700, 600, master_ui)
|
||||
ui = new(user, src, ui_key, "spawners_menu.tmpl", "Spawners Menu", 700, 600, master_ui, state = state)
|
||||
ui.open()
|
||||
|
||||
/datum/spawners_menu/ui_data(mob/user)
|
||||
|
||||
@@ -878,6 +878,13 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
|
||||
item = /obj/item/grenade/plastic/c4
|
||||
cost = 1
|
||||
|
||||
/datum/uplink_item/explosives/plastic_explosives_pack
|
||||
name = "Pack of 5 C-4 Explosives"
|
||||
desc = "A package containing 5 C-4 Explosives at a discounted price. For when you need that little bit extra for your sabotaging needs."
|
||||
reference = "C4P"
|
||||
item = /obj/item/storage/box/syndie_kit/c4
|
||||
cost = 4
|
||||
|
||||
/datum/uplink_item/explosives/breaching_charge
|
||||
name = "Composition X-4"
|
||||
desc = "X-4 is a shaped charge designed to be safe to the user while causing maximum damage to the occupants of the room beach breached. It has a modifiable timer with a minimum setting of 10 seconds."
|
||||
|
||||
@@ -93,6 +93,7 @@
|
||||
pulling.pulledby = null
|
||||
var/mob/living/ex_pulled = pulling
|
||||
pulling = null
|
||||
pulledby = null
|
||||
if(isliving(ex_pulled))
|
||||
var/mob/living/L = ex_pulled
|
||||
L.update_canmove()// mob gets up if it was lyng down in a chokehold
|
||||
|
||||
@@ -202,3 +202,15 @@
|
||||
/datum/dna/gene/disability/wingdings/New()
|
||||
block = WINGDINGSBLOCK
|
||||
|
||||
/datum/dna/gene/disability/wingdings/OnSay(var/mob/M, var/message)
|
||||
var/list/chars = string2charlist(message)
|
||||
var/garbled_message = ""
|
||||
for(var/C in chars)
|
||||
if(C in GLOB.alphabet_uppercase)
|
||||
garbled_message += pick(GLOB.alphabet_uppercase)
|
||||
else if(C in GLOB.alphabet)
|
||||
garbled_message += pick(GLOB.alphabet)
|
||||
else
|
||||
garbled_message += C
|
||||
message = garbled_message
|
||||
return message
|
||||
@@ -61,61 +61,6 @@
|
||||
var/blacklisted_lights = list(/obj/item/flashlight/flare, /obj/item/flashlight/slime)
|
||||
action_icon_state = "veil"
|
||||
|
||||
/obj/effect/proc_holder/spell/aoe_turf/veil/proc/extinguishItem(var/obj/item/I) //WARNING NOT SUFFICIENT TO EXTINGUISH AN ITEM HELD BY A MOB
|
||||
if(istype(I, /obj/item/flashlight))
|
||||
var/obj/item/flashlight/F = I
|
||||
if(istype(F, /obj/item/flashlight/flare/glowstick))
|
||||
var/obj/item/flashlight/flare/glowstick/gstick = F
|
||||
gstick.fuel = 0
|
||||
if(F.on)
|
||||
if(is_type_in_list(I, blacklisted_lights))
|
||||
I.visible_message("<span class='danger'>[I] dims slightly before scattering the shadows around it.</span>")
|
||||
return
|
||||
F.on = 0
|
||||
F.update_brightness()
|
||||
else if(istype(I, /obj/item/pda))
|
||||
var/obj/item/pda/P = I
|
||||
var/datum/data/pda/utility/flashlight/FL = P.find_program(/datum/data/pda/utility/flashlight)
|
||||
if(FL && FL.fon)
|
||||
FL.start()
|
||||
else if(istype(I, /obj/item/clothing/head/helmet/space/hardsuit))
|
||||
var/obj/item/clothing/head/helmet/space/hardsuit/R = I
|
||||
if(R.on)
|
||||
R.toggle_light()
|
||||
R.visible_message("<span class='danger'>[R]'s light fades and turns off.</span>")
|
||||
else if(istype(I, /obj/item/clothing/head/helmet/space/eva/plasmaman))
|
||||
var/obj/item/clothing/head/helmet/space/eva/plasmaman/P = I
|
||||
if(P.on)
|
||||
P.toggle_light()
|
||||
P.visible_message("<span class='danger'>[P]'s light fades and turns off.</span>")
|
||||
else if(istype(I, /obj/item/gun))
|
||||
var/obj/item/gun/G = I
|
||||
if(G.gun_light)
|
||||
var/obj/item/flashlight/F = G.gun_light
|
||||
if(F.on)
|
||||
G.toggle_gunlight()
|
||||
G.visible_message("<span class='danger'>[G]'s light fades and turns off.</span>")
|
||||
else if(istype(I, /obj/item/clothing/head/hardhat)) //There really needs to be a better way to handle this.
|
||||
var/obj/item/clothing/head/hardhat/hhat = I
|
||||
if(hhat.on)
|
||||
hhat.on = 0
|
||||
hhat.set_light(0)
|
||||
hhat.icon_state = "hardhat0_[hhat.item_color]"
|
||||
hhat.item_state = "hardhat0_[hhat.item_color]"
|
||||
hhat.visible_message("<span class='danger'>[hhat]'s light fades and turns off.</span>")
|
||||
return I.light_range
|
||||
|
||||
/obj/effect/proc_holder/spell/aoe_turf/veil/proc/extinguishMob(mob/living/L)
|
||||
for(var/obj/item/F in L)
|
||||
if(F.light_range > 0)
|
||||
extinguishItem(F)
|
||||
if(ishuman(L))
|
||||
var/mob/living/carbon/human/H = L
|
||||
var/obj/item/organ/internal/lantern/O = H.get_int_organ(/obj/item/organ/internal/lantern)
|
||||
if(O && O.glowing)
|
||||
O.toggle_biolum(1)
|
||||
H.visible_message("<span class='danger'>[H] is engulfed in shadows and fades into the darkness.</span>", "<span class='danger'>A sense of dread washes over you as you suddenly dim dark.</span>")
|
||||
|
||||
/obj/effect/proc_holder/spell/aoe_turf/veil/cast(list/targets, mob/user = usr)
|
||||
if(!shadowling_check(user))
|
||||
charge_counter = charge_max
|
||||
@@ -125,23 +70,8 @@
|
||||
G.visible_message("<span class='warning'>\The [G] withers away!</span>")
|
||||
qdel(G)
|
||||
for(var/turf/T in targets)
|
||||
for(var/obj/item/F in T.contents)
|
||||
extinguishItem(F)
|
||||
for(var/obj/machinery/floodlight/F in T.contents)
|
||||
F.on = 0
|
||||
F.set_light(0)
|
||||
for(var/obj/machinery/light/L in T.contents)
|
||||
L.on = 0
|
||||
L.visible_message("<span class='danger'>[L] flickers and falls dark.</span>")
|
||||
L.update(0)
|
||||
for(var/obj/machinery/computer/C in T.contents)
|
||||
C.set_light(0)
|
||||
C.visible_message("<span class='danger'>[C] grows dim, its screen barely readable.</span>")
|
||||
for(var/mob/living/H in T.contents)
|
||||
extinguishMob(H)
|
||||
for(var/mob/living/silicon/robot/borg in T.contents)
|
||||
borg.update_headlamp(1, charge_max)
|
||||
|
||||
for(var/atom/A in T.contents)
|
||||
A.extinguish_light()
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/shadow_walk
|
||||
name = "Shadow Walk"
|
||||
|
||||
@@ -237,8 +237,8 @@
|
||||
/datum/outfit/job/clown/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
if(H.gender == FEMALE)
|
||||
mask = /obj/item/clothing/mask/gas/sexyclown
|
||||
uniform = /obj/item/clothing/under/sexyclown
|
||||
mask = /obj/item/clothing/mask/gas/clown_hat/sexy
|
||||
uniform = /obj/item/clothing/under/rank/clown/sexy
|
||||
|
||||
/datum/outfit/job/clown/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
|
||||
@@ -47,7 +47,7 @@ var/global/list/role_playtime_requirements = list(
|
||||
to_chat(src, "<span class='warning'>Playtime tracking is not enabled.</span>")
|
||||
return
|
||||
|
||||
to_chat(src, "<span class='notice'>Your playtime is [get_exp_living()].</span>")
|
||||
to_chat(src, "<span class='notice'>Your [EXP_TYPE_CREW] playtime is [get_exp_type(EXP_TYPE_CREW)].</span>")
|
||||
|
||||
// Admin Verbs
|
||||
|
||||
@@ -57,36 +57,31 @@ var/global/list/role_playtime_requirements = list(
|
||||
if(!check_rights(R_ADMIN|R_MOD|R_MENTOR))
|
||||
return
|
||||
var/msg = "<html><head><title>Playtime Report</title></head><body>"
|
||||
var/list/players_new = list()
|
||||
var/list/players_old = list()
|
||||
var/pline
|
||||
var/datum/job/theirjob
|
||||
var/jtext
|
||||
msg += "<TABLE border ='1'><TR><TH>Player</TH><TH>Job</TH><TH>Crew</TH>"
|
||||
for(var/thisdept in EXP_DEPT_TYPE_LIST)
|
||||
msg += "<TH>[thisdept]</TH>"
|
||||
msg += "</TR>"
|
||||
for(var/client/C in GLOB.clients)
|
||||
jtext = "No Job"
|
||||
msg += "<TR>"
|
||||
if(check_rights(R_ADMIN, 0))
|
||||
msg += "<TD>[key_name_admin(C.mob)]</TD>"
|
||||
else
|
||||
msg += "<TD>[key_name_mentor(C.mob)]</TD>"
|
||||
|
||||
jtext = "-"
|
||||
if(C.mob.mind && C.mob.mind.assigned_role)
|
||||
theirjob = job_master.GetJob(C.mob.mind.assigned_role)
|
||||
if(theirjob)
|
||||
jtext = theirjob.title
|
||||
if(config.use_exp_restrictions && theirjob.exp_requirements && theirjob.exp_type)
|
||||
jtext += "<span class='warning'>*</span>"
|
||||
if(check_rights(R_ADMIN, 0))
|
||||
pline = "<LI> [key_name_admin(C.mob)]: [jtext]: <A href='?_src_=holder;getplaytimewindow=[C.mob.UID()]'>" + C.get_exp_living() + "</a></LI>"
|
||||
else
|
||||
pline = "<LI> [key_name_mentor(C.mob)]: [jtext]: <A href='?_src_=holder;getplaytimewindow=[C.mob.UID()]'>" + C.get_exp_living() + "</a></LI>"
|
||||
if(C.get_exp_living_num() > 1200)
|
||||
players_old += pline
|
||||
else
|
||||
players_new += pline
|
||||
if(players_new.len)
|
||||
msg += "<BR>Players under 20h:<BR><UL>"
|
||||
msg += players_new.Join()
|
||||
msg += "</UL>"
|
||||
if(players_old.len)
|
||||
msg += "<BR>Players over 20h:<BR><UL>"
|
||||
msg += players_old.Join()
|
||||
msg += "</UL>"
|
||||
msg += "</BODY></HTML>"
|
||||
msg += "<TD>[jtext]</TD>"
|
||||
|
||||
msg += "<TD><A href='?_src_=holder;getplaytimewindow=[C.mob.UID()]'>" + C.get_exp_type(EXP_TYPE_CREW) + "</a></TD>"
|
||||
msg += "[C.get_exp_dept_string()]"
|
||||
msg += "</TR>"
|
||||
|
||||
msg += "</TABLE></BODY></HTML>"
|
||||
src << browse(msg, "window=Player_playtime_check")
|
||||
|
||||
|
||||
@@ -200,14 +195,24 @@ var/global/list/role_playtime_requirements = list(
|
||||
return_text += "</LI></UL>"
|
||||
return return_text
|
||||
|
||||
/client/proc/get_exp_type(var/etype)
|
||||
return get_exp_format(get_exp_type_num(etype))
|
||||
|
||||
/client/proc/get_exp_living()
|
||||
return get_exp_format(get_exp_living_num())
|
||||
|
||||
/client/proc/get_exp_living_num()
|
||||
/client/proc/get_exp_type_num(var/etype)
|
||||
var/list/play_records = params2list(prefs.exp)
|
||||
var/exp_living = text2num(play_records[EXP_TYPE_LIVING])
|
||||
return exp_living
|
||||
return text2num(play_records[etype])
|
||||
|
||||
/client/proc/get_exp_dept_string()
|
||||
var/list/play_records = params2list(prefs.exp)
|
||||
var/list/result_text = list()
|
||||
for(var/thistype in EXP_DEPT_TYPE_LIST)
|
||||
var/thisvalue = text2num(play_records[thistype])
|
||||
if(thisvalue)
|
||||
result_text.Add("<TD>[get_exp_format(thisvalue)]</TD>")
|
||||
else
|
||||
result_text.Add("<TD>-</TD>")
|
||||
return result_text.Join("")
|
||||
|
||||
|
||||
/proc/get_exp_format(var/expnum)
|
||||
if(expnum > 60)
|
||||
|
||||
@@ -68,6 +68,10 @@
|
||||
set_broken()
|
||||
density = 0
|
||||
|
||||
/obj/machinery/computer/extinguish_light()
|
||||
set_light(0)
|
||||
visible_message("<span class='danger'>[src] grows dim, its screen barely readable.</span>")
|
||||
|
||||
/obj/machinery/computer/update_icon()
|
||||
overlays.Cut()
|
||||
if(stat & NOPOWER)
|
||||
|
||||
@@ -132,3 +132,7 @@
|
||||
cell = W
|
||||
to_chat(user, "You insert the power cell.")
|
||||
updateicon()
|
||||
|
||||
/obj/machinery/floodlight/extinguish_light()
|
||||
on = 0
|
||||
set_light(0)
|
||||
|
||||
@@ -1184,8 +1184,8 @@
|
||||
/obj/item/clothing/head/bandana = 1,/obj/item/clothing/under/soviet = 1,/obj/item/clothing/head/ushanka = 1,/obj/item/clothing/suit/imperium_monk = 1,
|
||||
/obj/item/clothing/mask/gas/cyborg = 1,/obj/item/clothing/suit/holidaypriest = 1,/obj/item/clothing/head/wizard/marisa/fake = 1,
|
||||
/obj/item/clothing/suit/wizrobe/marisa/fake = 1,/obj/item/clothing/under/sundress = 1,/obj/item/clothing/head/witchwig = 1,/obj/item/twohanded/staff/broom = 1,
|
||||
/obj/item/clothing/suit/wizrobe/fake = 1,/obj/item/clothing/head/wizard/fake = 1,/obj/item/twohanded/staff = 3,/obj/item/clothing/mask/gas/sexyclown = 1,
|
||||
/obj/item/clothing/under/sexyclown = 1,/obj/item/clothing/mask/gas/sexymime = 1,/obj/item/clothing/under/sexymime = 1,
|
||||
/obj/item/clothing/suit/wizrobe/fake = 1,/obj/item/clothing/head/wizard/fake = 1,/obj/item/twohanded/staff = 3,/obj/item/clothing/mask/gas/clown_hat/sexy = 1,
|
||||
/obj/item/clothing/under/rank/clown/sexy = 1,/obj/item/clothing/mask/gas/sexymime = 1,/obj/item/clothing/under/sexymime = 1,
|
||||
/obj/item/clothing/mask/face/bat = 1,/obj/item/clothing/mask/face/bee = 1,/obj/item/clothing/mask/face/bear = 1,/obj/item/clothing/mask/face/raven = 1,/obj/item/clothing/mask/face/jackal = 1,/obj/item/clothing/mask/face/fox = 1,/obj/item/clothing/mask/face/tribal = 1,/obj/item/clothing/mask/face/rat = 1,
|
||||
/obj/item/clothing/suit/apron/overalls = 1,
|
||||
/obj/item/clothing/head/rabbitears =1, /obj/item/clothing/head/sombrero = 1, /obj/item/clothing/suit/poncho = 1,
|
||||
|
||||
@@ -250,8 +250,8 @@
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/landmark/costume/sexyclown/New()
|
||||
new /obj/item/clothing/mask/gas/sexyclown(src.loc)
|
||||
new /obj/item/clothing/under/sexyclown(src.loc)
|
||||
new /obj/item/clothing/mask/gas/clown_hat/sexy(loc)
|
||||
new /obj/item/clothing/under/rank/clown/sexy(loc)
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/landmark/costume/sexymime/New()
|
||||
|
||||
@@ -84,6 +84,11 @@
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/flashlight/extinguish_light()
|
||||
if(on)
|
||||
on = FALSE
|
||||
update_brightness()
|
||||
|
||||
/obj/item/flashlight/pen
|
||||
name = "penlight"
|
||||
desc = "A pen-sized light, used by medical staff."
|
||||
@@ -122,7 +127,7 @@
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
flags = CONDUCT
|
||||
materials = list()
|
||||
on = 1
|
||||
on = TRUE
|
||||
|
||||
|
||||
// green-shaded desk lamp
|
||||
@@ -292,6 +297,9 @@
|
||||
new T(loc)
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
/obj/item/flashlight/flare/extinguish_light()
|
||||
visible_message("<span class='danger'>[src] dims slightly before scattering the shadows around it.</span>")
|
||||
|
||||
/obj/item/flashlight/flare/torch
|
||||
name = "torch"
|
||||
desc = "A torch fashioned from some leaves and a log."
|
||||
@@ -312,7 +320,7 @@
|
||||
brightness_on = 6
|
||||
light_color = "#FFBF00"
|
||||
materials = list()
|
||||
on = 1 //Bio-luminesence has one setting, on.
|
||||
on = TRUE //Bio-luminesence has one setting, on.
|
||||
|
||||
/obj/item/flashlight/slime/New()
|
||||
set_light(brightness_on)
|
||||
@@ -323,6 +331,9 @@
|
||||
/obj/item/flashlight/slime/attack_self(mob/user)
|
||||
return //Bio-luminescence does not toggle.
|
||||
|
||||
/obj/item/flashlight/slime/extinguish_light()
|
||||
visible_message("<span class='danger'>[src] dims slightly before scattering the shadows around it.</span>")
|
||||
|
||||
/obj/item/flashlight/emp
|
||||
origin_tech = "magnets=3;syndicate=1"
|
||||
|
||||
|
||||
@@ -339,3 +339,7 @@
|
||||
pai.ex_act(severity)
|
||||
else
|
||||
qdel(src)
|
||||
|
||||
/obj/item/paicard/extinguish_light()
|
||||
pai.extinguish_light()
|
||||
set_light(0)
|
||||
|
||||
@@ -333,25 +333,6 @@
|
||||
to_chat(usr, "<span class='notice'>The card's microscanners activate as you pass it over \the [I], copying its access.</span>")
|
||||
src.access |= I.access //Don't copy access if user isn't an antag -- to prevent metagaming
|
||||
|
||||
/obj/item/card/id/syndicate/proc/fake_id_photo(var/mob/living/carbon/human/H)//get_id_photo wouldn't work correctly
|
||||
if(!istype(H))
|
||||
return
|
||||
var/storedDir = H.dir //don't want to lose track of this
|
||||
|
||||
var/icon/faked = new()
|
||||
if(!H.equip_to_slot_if_possible(src, slot_l_store, 0, 1))
|
||||
to_chat(H, "<span class='warning'>You need to empty your pockets before taking the ID picture.</span>")
|
||||
return
|
||||
|
||||
H.dir = WEST //ensure the icon is actually the proper direction before copying it
|
||||
faked.Insert(getFlatIcon(H), dir = WEST)
|
||||
H.dir = SOUTH
|
||||
faked.Insert(getFlatIcon(H), dir = SOUTH)
|
||||
H.dir = storedDir
|
||||
H.equip_to_slot_if_possible(src, slot_l_hand, 0, 1)
|
||||
|
||||
return faked
|
||||
|
||||
/obj/item/card/id/syndicate/attack_self(mob/user as mob)
|
||||
if(!src.registered_name)
|
||||
var t = reject_bad_name(input(user, "What name would you like to use on this card?", "Agent Card name", ishuman(user) ? user.real_name : user.name))
|
||||
@@ -377,7 +358,7 @@
|
||||
if("Show")
|
||||
return ..()
|
||||
if("Edit")
|
||||
switch(input(user,"What would you like to edit on \the [src]?") in list("Name","Photo","Appearance","Sex","Age","Occupation","Money Account","Blood Type","DNA Hash","Fingerprint Hash","Reset Card"))
|
||||
switch(input(user,"What would you like to edit on \the [src]?") in list("Name", "Photo", "Appearance", "Sex", "Age", "Occupation", "Money Account", "Blood Type", "DNA Hash", "Fingerprint Hash", "Reset Access", "Delete Card Information"))
|
||||
if("Name")
|
||||
var/new_name = reject_bad_name(input(user,"What name would you like to put on this card?","Agent Card Name", ishuman(user) ? user.real_name : user.name))
|
||||
if(!Adjacent(user))
|
||||
@@ -390,11 +371,14 @@
|
||||
if("Photo")
|
||||
if(!Adjacent(user))
|
||||
return
|
||||
var/icon/newphoto = fake_id_photo(user)
|
||||
var/job_clothes = null
|
||||
if(assignment)
|
||||
job_clothes = assignment
|
||||
var/icon/newphoto = get_id_photo(user, job_clothes)
|
||||
if(!newphoto)
|
||||
return
|
||||
photo = newphoto
|
||||
to_chat(user, "<span class='notice'>Photo changed.</span>")
|
||||
to_chat(user, "<span class='notice'>Photo changed. Select another occupation and take a new photo if you wish to appear with different clothes.</span>")
|
||||
RebuildHTML()
|
||||
|
||||
if("Appearance")
|
||||
@@ -432,22 +416,41 @@
|
||||
return
|
||||
if(!choice)
|
||||
return
|
||||
src.icon_state = choice
|
||||
icon_state = choice
|
||||
switch(choice)
|
||||
if("silver")
|
||||
desc = "A silver card which shows honour and dedication."
|
||||
if("gold")
|
||||
desc = "A golden card which shows power and might."
|
||||
if("clown")
|
||||
desc = "Even looking at the card strikes you with deep fear."
|
||||
if("mime")
|
||||
desc = "..."
|
||||
if("prisoner")
|
||||
desc = "You are a number, you are not a free man."
|
||||
if("centcom")
|
||||
desc = "An ID straight from Central Command."
|
||||
else
|
||||
desc = "A card used to provide ID and determine access across the station."
|
||||
to_chat(usr, "<span class='notice'>Appearance changed to [choice].</span>")
|
||||
|
||||
if("Sex")
|
||||
var/new_sex = sanitize(stripped_input(user,"What sex would you like to put on this card?","Agent Card Sex", ishuman(user) ? capitalize(user.gender) : "Male", MAX_MESSAGE_LEN))
|
||||
if(!Adjacent(user))
|
||||
return
|
||||
src.sex = new_sex
|
||||
sex = new_sex
|
||||
to_chat(user, "<span class='notice'>Sex changed to [new_sex].</span>")
|
||||
RebuildHTML()
|
||||
|
||||
if("Age")
|
||||
var/new_age = sanitize(stripped_input(user,"What age would you like to put on this card?","Agent Card Age","21", MAX_MESSAGE_LEN))
|
||||
var/default = "21"
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
default = H.age
|
||||
var/new_age = sanitize(input(user,"What age would you like to be written on this card?","Agent Card Age", default) as text)
|
||||
if(!Adjacent(user))
|
||||
return
|
||||
src.age = new_age
|
||||
age = new_age
|
||||
to_chat(user, "<span class='notice'>Age changed to [new_age].</span>")
|
||||
RebuildHTML()
|
||||
|
||||
@@ -485,7 +488,7 @@
|
||||
|
||||
if(!Adjacent(user))
|
||||
return
|
||||
src.assignment = new_job
|
||||
assignment = new_job
|
||||
to_chat(user, "<span class='notice'>Occupation changed to [new_job].</span>")
|
||||
UpdateName()
|
||||
RebuildHTML()
|
||||
@@ -507,7 +510,7 @@
|
||||
var/new_blood_type = sanitize(input(user,"What blood type would you like to be written on this card?","Agent Card Blood Type",default) as text)
|
||||
if(!Adjacent(user))
|
||||
return
|
||||
src.blood_type = new_blood_type
|
||||
blood_type = new_blood_type
|
||||
to_chat(user, "<span class='notice'>Blood type changed to [new_blood_type].</span>")
|
||||
RebuildHTML()
|
||||
|
||||
@@ -521,7 +524,7 @@
|
||||
var/new_dna_hash = sanitize(input(user,"What DNA hash would you like to be written on this card?","Agent Card DNA Hash",default) as text)
|
||||
if(!Adjacent(user))
|
||||
return
|
||||
src.dna_hash = new_dna_hash
|
||||
dna_hash = new_dna_hash
|
||||
to_chat(user, "<span class='notice'>DNA hash changed to [new_dna_hash].</span>")
|
||||
RebuildHTML()
|
||||
|
||||
@@ -535,26 +538,33 @@
|
||||
var/new_fingerprint_hash = sanitize(input(user,"What fingerprint hash would you like to be written on this card?","Agent Card Fingerprint Hash",default) as text)
|
||||
if(!Adjacent(user))
|
||||
return
|
||||
src.fingerprint_hash = new_fingerprint_hash
|
||||
fingerprint_hash = new_fingerprint_hash
|
||||
to_chat(user, "<span class='notice'>Fingerprint hash changed to [new_fingerprint_hash].</span>")
|
||||
RebuildHTML()
|
||||
|
||||
if("Reset Card")
|
||||
name = initial(name)
|
||||
registered_name = initial(registered_name)
|
||||
icon_state = initial(icon_state)
|
||||
sex = initial(sex)
|
||||
age = initial(age)
|
||||
assignment = initial(assignment)
|
||||
associated_account_number = initial(associated_account_number)
|
||||
blood_type = initial(blood_type)
|
||||
dna_hash = initial(dna_hash)
|
||||
fingerprint_hash = initial(fingerprint_hash)
|
||||
access = initial_access.Copy() // Initial() doesn't work on lists
|
||||
registered_user = null
|
||||
if("Reset Access")
|
||||
var/response = alert(user, "Are you sure you want to reset access saved on the card?","Reset Access", "No", "Yes")
|
||||
if(response == "Yes")
|
||||
access = initial_access.Copy() // Initial() doesn't work on lists
|
||||
to_chat(user, "<span class='notice'>Card access reset.</span>")
|
||||
|
||||
to_chat(user, "<span class='notice'>All information has been deleted from \the [src].</span>")
|
||||
RebuildHTML()
|
||||
if("Delete Card Information")
|
||||
var/response = alert(user, "Are you sure you want to delete all information saved on the card?","Delete Card Information", "No", "Yes")
|
||||
if(response == "Yes")
|
||||
name = initial(name)
|
||||
registered_name = initial(registered_name)
|
||||
icon_state = initial(icon_state)
|
||||
sex = initial(sex)
|
||||
age = initial(age)
|
||||
assignment = initial(assignment)
|
||||
associated_account_number = initial(associated_account_number)
|
||||
blood_type = initial(blood_type)
|
||||
dna_hash = initial(dna_hash)
|
||||
fingerprint_hash = initial(fingerprint_hash)
|
||||
photo = null
|
||||
registered_user = null
|
||||
to_chat(user, "<span class='notice'>All information has been deleted from \the [src].</span>")
|
||||
RebuildHTML()
|
||||
else
|
||||
..()
|
||||
|
||||
@@ -565,7 +575,7 @@
|
||||
icon_state = "syndie"
|
||||
assignment = "Syndicate Overlord"
|
||||
untrackable = 1
|
||||
access = list(access_syndicate, access_external_airlocks)
|
||||
access = list(access_syndicate, access_syndicate_leader, access_syndicate_command, access_external_airlocks)
|
||||
|
||||
/obj/item/card/id/captains_spare
|
||||
name = "captain's spare ID"
|
||||
|
||||
@@ -116,8 +116,9 @@
|
||||
cure_text = "Unknown"
|
||||
viable_mobtypes = list(/mob/living/carbon/human)
|
||||
severity = BIOHAZARD
|
||||
disease_flags = CURABLE
|
||||
disease_flags = CAN_CARRY
|
||||
spread_flags = NON_CONTAGIOUS
|
||||
virus_heal_resistant = TRUE
|
||||
var/obj/item/storage/toolbox/green/memetic/progenitor = null
|
||||
|
||||
/datum/disease/memetic_madness/Destroy()
|
||||
|
||||
@@ -189,6 +189,17 @@
|
||||
new /obj/item/grenade/empgrenade(src)
|
||||
new /obj/item/implanter/emp/(src)
|
||||
|
||||
/obj/item/storage/box/syndie_kit/c4
|
||||
name = "Pack of C-4 Explosives"
|
||||
|
||||
/obj/item/storage/box/syndie_kit/c4/New()
|
||||
..()
|
||||
new /obj/item/grenade/plastic/c4(src)
|
||||
new /obj/item/grenade/plastic/c4(src)
|
||||
new /obj/item/grenade/plastic/c4(src)
|
||||
new /obj/item/grenade/plastic/c4(src)
|
||||
new /obj/item/grenade/plastic/c4(src)
|
||||
|
||||
/obj/item/storage/box/syndie_kit/throwing_weapons
|
||||
name = "boxed throwing kit"
|
||||
can_hold = list(/obj/item/throwing_star, /obj/item/restraints/legcuffs/bola/tactical)
|
||||
|
||||
@@ -62,7 +62,7 @@ var/global/nologevent = 0
|
||||
if(M.client)
|
||||
body += " played by <b>[M.client]</b> "
|
||||
body += "\[<A href='?_src_=holder;editrights=rank;ckey=[M.ckey]'>[M.client.holder ? M.client.holder.rank : "Player"]</A>\] "
|
||||
body += "\[<A href='?_src_=holder;getplaytimewindow=[M.UID()]'>" + M.client.get_exp_living() + "</a>\]"
|
||||
body += "\[<A href='?_src_=holder;getplaytimewindow=[M.UID()]'>" + M.client.get_exp_type(EXP_TYPE_CREW) + " as [EXP_TYPE_CREW]</a>\]"
|
||||
|
||||
if(istype(M, /mob/new_player))
|
||||
body += " <B>Hasn't Entered Game</B> "
|
||||
|
||||
@@ -106,8 +106,8 @@ var/global/sent_honksquad = 0
|
||||
equip_to_slot_or_del(new /obj/item/storage/backpack/clown(src), slot_back)
|
||||
equip_to_slot_or_del(new /obj/item/storage/box/survival(src), slot_in_backpack)
|
||||
if(src.gender == FEMALE)
|
||||
equip_to_slot_or_del(new /obj/item/clothing/mask/gas/sexyclown(src), slot_wear_mask)
|
||||
equip_to_slot_or_del(new /obj/item/clothing/under/sexyclown(src), slot_w_uniform)
|
||||
equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat/sexy(src), slot_wear_mask)
|
||||
equip_to_slot_or_del(new /obj/item/clothing/under/rank/clown/sexy(src), slot_w_uniform)
|
||||
else
|
||||
equip_to_slot_or_del(new /obj/item/clothing/under/rank/clown(src), slot_w_uniform)
|
||||
equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(src), slot_wear_mask)
|
||||
|
||||
@@ -373,15 +373,7 @@
|
||||
if(prefs.lastchangelog != changelog_hash) //bolds the changelog button on the interface so we know there are updates. -CP
|
||||
if(establish_db_connection())
|
||||
to_chat(src, "<span class='info'>Changelog has changed since your last visit.</span>")
|
||||
winset(src, "rpane.changelog", "background-color=#bb7700;font-color=#FFFFFF;font-style=bold")
|
||||
else
|
||||
if(establish_db_connection())
|
||||
if(prefs.toggles & UI_DARKMODE)
|
||||
winset(src, "rpane.changelog", "background-color=#bb7700;font-color=#FFFFFF;font-style=bold") // makes changelog dark if its been set
|
||||
else
|
||||
winset(src, "rpane.changelog", "background-color=#ffffff;font-color=#000000") // makes changelog normal if it hasnt been set
|
||||
else
|
||||
winset(src, "rpane.changelog", "background-color=#ffffff;font-color=#000000") // makes changelog normal if DB isnt connected
|
||||
winset(src, "rpane.changelog", "background-color=#bb7700;text-color=#FFFFFF;font-style=bold")
|
||||
|
||||
if(!void)
|
||||
void = new()
|
||||
@@ -714,33 +706,33 @@
|
||||
/client/proc/deactivate_darkmode()
|
||||
///// BUTTONS /////
|
||||
/* Rpane */
|
||||
winset(src, "rpane.textb", "background-color=#ffffff;text-color=#000000")
|
||||
winset(src, "rpane.infob", "background-color=#ffffff;text-color=#000000")
|
||||
winset(src, "rpane.wikib", "background-color=#ffffff;text-color=#000000")
|
||||
winset(src, "rpane.forumb", "background-color=#ffffff;text-color=#000000")
|
||||
winset(src, "rpane.rulesb", "background-color=#ffffff;text-color=#000000")
|
||||
winset(src, "rpane.githubb", "background-color=#ffffff;text-color=#000000")
|
||||
winset(src, "rpane.textb", "background-color=none;text-color=#000000")
|
||||
winset(src, "rpane.infob", "background-color=none;text-color=#000000")
|
||||
winset(src, "rpane.wikib", "background-color=none;text-color=#000000")
|
||||
winset(src, "rpane.forumb", "background-color=none;text-color=#000000")
|
||||
winset(src, "rpane.rulesb", "background-color=none;text-color=#000000")
|
||||
winset(src, "rpane.githubb", "background-color=none;text-color=#000000")
|
||||
/* Mainwindow */
|
||||
winset(src, "mainwindow.saybutton", "background-color=#ffffff;text-color=#000000")
|
||||
winset(src, "mainwindow.mebutton", "background-color=#ffffff;text-color=#000000")
|
||||
winset(src, "mainwindow.hotkey_toggle", "background-color=#ffffff;text-color=#000000")
|
||||
winset(src, "mainwindow.saybutton", "background-color=none;text-color=#000000")
|
||||
winset(src, "mainwindow.mebutton", "background-color=none;text-color=#000000")
|
||||
winset(src, "mainwindow.hotkey_toggle", "background-color=none;text-color=#000000")
|
||||
///// UI ELEMENTS /////
|
||||
/* Mainwindow */
|
||||
winset(src, "mainwindow", "background-color=#ffffff")
|
||||
winset(src, "mainwindow.mainvsplit", "background-color=#ffffff")
|
||||
winset(src, "mainwindow.tooltip", "background-color=#ffffff")
|
||||
winset(src, "mainwindow", "background-color=none")
|
||||
winset(src, "mainwindow.mainvsplit", "background-color=none")
|
||||
winset(src, "mainwindow.tooltip", "background-color=none")
|
||||
/* Outputwindow */
|
||||
winset(src, "outputwindow.outputwindow", "background-color=#ffffff")
|
||||
winset(src, "outputwindow.browseroutput", "background-color=#ffffff")
|
||||
winset(src, "outputwindow.outputwindow", "background-color=none")
|
||||
winset(src, "outputwindow.browseroutput", "background-color=none")
|
||||
/* Rpane */
|
||||
winset(src, "rpane", "background-color=#ffffff")
|
||||
winset(src, "rpane.rpane", "background-color=#ffffff")
|
||||
winset(src, "rpane.rpanewindow", "background-color=#ffffff")
|
||||
winset(src, "rpane", "background-color=none")
|
||||
winset(src, "rpane.rpane", "background-color=none")
|
||||
winset(src, "rpane.rpanewindow", "background-color=none")
|
||||
/* Browserwindow */
|
||||
winset(src, "browserwindow", "background-color=#ffffff")
|
||||
winset(src, "browserwindow.browser", "background-color=#ffffff")
|
||||
winset(src, "browserwindow", "background-color=none")
|
||||
winset(src, "browserwindow.browser", "background-color=none")
|
||||
/* Infowindow */
|
||||
winset(src, "infowindow", "background-color=#ffffff;text-color=#000000")
|
||||
winset(src, "infowindow.info", "background-color=#ffffff;text-color=#000000;highlight-color=#007700;tab-text-color=#000000;tab-background-color=#ffffff")
|
||||
winset(src, "infowindow", "background-color=none;text-color=#000000")
|
||||
winset(src, "infowindow.info", "background-color=none;text-color=#000000;highlight-color=#007700;tab-text-color=#000000;tab-background-color=none")
|
||||
///// NOTIFY USER /////
|
||||
to_chat(src, "<span class='notice'>Darkmode Disabled</span>") // what a sick fuck
|
||||
@@ -482,7 +482,10 @@
|
||||
|
||||
/datum/preferences/proc/SetChangelog(client/C,hash)
|
||||
lastchangelog=hash
|
||||
winset(C, "rpane.changelog", "background-color=none;font-style=")
|
||||
if(preferences_datums[C.ckey].toggles & UI_DARKMODE)
|
||||
winset(C, "rpane.changelog", "background-color=#40628a;font-color=#ffffff;font-style=none")
|
||||
else
|
||||
winset(C, "rpane.changelog", "background-color=none;font-style=none")
|
||||
var/DBQuery/query = dbcon.NewQuery("UPDATE [format_table_name("player")] SET lastchangelog='[lastchangelog]' WHERE ckey='[C.ckey]'")
|
||||
if(!query.Execute())
|
||||
var/err = query.ErrorMsg()
|
||||
@@ -491,3 +494,9 @@
|
||||
to_chat(C, "Couldn't update your last seen changelog, please try again later.")
|
||||
return
|
||||
return 1
|
||||
|
||||
/datum/preferences/proc/UpdateChangelogButton(client/C)
|
||||
if(preferences_datums[C.ckey].toggles & UI_DARKMODE)
|
||||
winset(C, "rpane.changelog", "background-color=#40628a;text-color=#ffffff;font-style=none")
|
||||
else
|
||||
winset(C, "rpane.changelog", "background-color=none;text-color=#000000;font-style=none")
|
||||
@@ -5,7 +5,7 @@
|
||||
icon_state = "hardhat0_yellow"
|
||||
item_state = "hardhat0_yellow"
|
||||
var/brightness_on = 4 //luminosity when on
|
||||
var/on = 0
|
||||
var/on = FALSE
|
||||
item_color = "yellow" //Determines used sprites: hardhat[on]_[color] and hardhat[on]_[color]2 (lying down sprite)
|
||||
armor = list(melee = 15, bullet = 5, laser = 20, energy = 10, bomb = 20, bio = 10, rad = 20)
|
||||
flags_inv = 0
|
||||
@@ -29,6 +29,13 @@
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
|
||||
/obj/item/clothing/head/hardhat/extinguish_light()
|
||||
if(on)
|
||||
on = FALSE
|
||||
set_light(0)
|
||||
icon_state = "hardhat0_[item_color]"
|
||||
item_state = "hardhat0_[item_color]"
|
||||
visible_message("<span class='danger'>[src]'s light fades and turns off.</span>")
|
||||
|
||||
/obj/item/clothing/head/hardhat/orange
|
||||
icon_state = "hardhat0_orange"
|
||||
|
||||
@@ -119,6 +119,12 @@
|
||||
to_chat(M, "Your Clown Mask has now morphed into [choice], all praise the Honk Mother!")
|
||||
return 1
|
||||
|
||||
/obj/item/clothing/mask/gas/clown_hat/sexy
|
||||
name = "sexy-clown wig and mask"
|
||||
desc = "A feminine clown mask for the dabbling crossdressers or female entertainers."
|
||||
icon_state = "sexyclown"
|
||||
item_state = "sexyclown"
|
||||
|
||||
/obj/item/clothing/mask/gas/clownwiz
|
||||
name = "wizard clown wig and mask"
|
||||
desc = "Some pranksters are truly magical."
|
||||
@@ -135,13 +141,6 @@
|
||||
item_state = "clown_hat"
|
||||
flags = NODROP
|
||||
|
||||
/obj/item/clothing/mask/gas/sexyclown
|
||||
name = "sexy-clown wig and mask"
|
||||
desc = "A feminine clown mask for the dabbling crossdressers or female entertainers."
|
||||
icon_state = "sexyclown"
|
||||
item_state = "sexyclown"
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/clothing/mask/gas/mime
|
||||
name = "mime mask"
|
||||
desc = "The traditional mime's mask. It has an eerie facial posture."
|
||||
|
||||
@@ -57,6 +57,11 @@
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/extinguish_light()
|
||||
if(on)
|
||||
toggle_light()
|
||||
visible_message("<span class='danger'>[src]'s light fades and turns off.</span>")
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/item_action_slot_check(slot)
|
||||
if(slot == slot_head)
|
||||
return 1
|
||||
|
||||
@@ -102,6 +102,11 @@
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
|
||||
/obj/item/clothing/head/helmet/space/eva/plasmaman/extinguish_light()
|
||||
if(on)
|
||||
toggle_light()
|
||||
visible_message("<span class='danger'>[src]'s light fades and turns off.</span>")
|
||||
|
||||
// ENGINEERING
|
||||
/obj/item/clothing/suit/space/eva/plasmaman/atmostech
|
||||
name = "plasmaman atmospheric suit"
|
||||
|
||||
@@ -81,6 +81,13 @@
|
||||
score_clownabuse++
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/under/rank/clown/sexy
|
||||
name = "sexy-clown suit"
|
||||
desc = "It makes you look HONKable!"
|
||||
icon_state = "sexyclown"
|
||||
item_state = "sexyclown"
|
||||
item_color = "sexyclown"
|
||||
|
||||
/obj/item/clothing/under/rank/head_of_personnel
|
||||
desc = "It's a jumpsuit worn by someone who works in the position of \"Head of Personnel\"."
|
||||
name = "head of personnel's jumpsuit"
|
||||
|
||||
@@ -53,13 +53,6 @@
|
||||
item_state = "b_suit"
|
||||
item_color = "mailman"
|
||||
|
||||
/obj/item/clothing/under/sexyclown
|
||||
name = "sexy-clown suit"
|
||||
desc = "It makes you look HONKable!"
|
||||
icon_state = "sexyclown"
|
||||
item_state = "sexyclown"
|
||||
item_color = "sexyclown"
|
||||
|
||||
/obj/item/clothing/under/rank/vice
|
||||
name = "vice officer's jumpsuit"
|
||||
desc = "It's the standard issue pretty-boy outfit, as seen on Holo-Vision."
|
||||
|
||||
@@ -1627,3 +1627,40 @@
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
icon_state = "ps_bunny"
|
||||
|
||||
|
||||
/obj/item/clothing/under/fluff/kiaoutfit //FullOfSkittles: Kiachi
|
||||
name = "Suspicious Outfit"
|
||||
desc = "A very expensive top with intricate details tailored to fit a vox and paired with a glittery blue skirt, probably illegal."
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
lefthand_file = 'icons/mob/inhands/fluff_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/fluff_righthand.dmi'
|
||||
species_fit = list("Vox")
|
||||
sprite_sheets = list("Vox" = 'icons/mob/species/vox/uniform.dmi')
|
||||
icon_state = "kiaoutfit"
|
||||
item_state = "kiaoutfit"
|
||||
item_color = "kiaoutfit"
|
||||
displays_id = FALSE
|
||||
species_restricted = list("Vox")
|
||||
|
||||
/obj/item/clothing/head/fluff/kiahat //FullOfSkittles: Kiachi
|
||||
name = "Suspicious Witch Hat"
|
||||
desc = "A black witch hat with a blue sash decorated with tiny glimmering stars and a gold squid-like medallion, probably possessed."
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
lefthand_file = 'icons/mob/inhands/fluff_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/fluff_righthand.dmi'
|
||||
icon_state = "kiahat"
|
||||
item_state = "kiahat"
|
||||
item_color = "kiahat"
|
||||
|
||||
/obj/item/clothing/mask/gas/fluff/kiamask //FullOfSkittles: Kiachi
|
||||
name = "Suspicious Mask"
|
||||
desc = "A sleek mask that blends in with the owner's existing quills using strange technology. It might even be magic..."
|
||||
icon = 'icons/obj/custom_items.dmi'
|
||||
lefthand_file = 'icons/mob/inhands/fluff_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/fluff_righthand.dmi'
|
||||
species_fit = list("Vox")
|
||||
sprite_sheets = list("Vox" = 'icons/mob/species/vox/mask.dmi')
|
||||
icon_state = "kiamask"
|
||||
item_state = "kiamask"
|
||||
item_color = "kiamask"
|
||||
species_restricted = list("Vox")
|
||||
@@ -40,6 +40,9 @@
|
||||
else
|
||||
light = new /datum/light_source(src, .)
|
||||
|
||||
/atom/proc/extinguish_light()
|
||||
return
|
||||
|
||||
/atom/Destroy()
|
||||
if(light)
|
||||
light.destroy()
|
||||
|
||||
@@ -1992,3 +1992,12 @@ Eyes need to have significantly high darksight to shine unless the mob has the X
|
||||
dna.SetSEState(block, FALSE, TRUE)
|
||||
genemutcheck(src, block, null, MUTCHK_FORCED)
|
||||
dna.UpdateSE()
|
||||
|
||||
/mob/living/carbon/human/extinguish_light()
|
||||
// Parent function handles stuff the human may be holding
|
||||
..()
|
||||
|
||||
var/obj/item/organ/internal/lantern/O = get_int_organ(/obj/item/organ/internal/lantern)
|
||||
if(O && O.glowing)
|
||||
O.toggle_biolum(TRUE)
|
||||
visible_message("<span class='danger'>[src] is engulfed in shadows and fades into the darkness.</span>", "<span class='danger'>A sense of dread washes over you as you suddenly dim dark.</span>")
|
||||
|
||||
@@ -91,6 +91,9 @@
|
||||
var/obj/item/organ/internal/L = get_organ_slot("lungs")
|
||||
if((breathes && !L) || breathes && L && (L.status & ORGAN_DEAD))
|
||||
return FALSE
|
||||
if(oxyloss > 10 || losebreath >= 4)
|
||||
emote("gasp")
|
||||
return FALSE
|
||||
if(mind)
|
||||
return !mind.miming
|
||||
return TRUE
|
||||
|
||||
@@ -80,6 +80,10 @@
|
||||
if(moving_diagonally) //no mob swap during diagonal moves.
|
||||
return 1
|
||||
|
||||
if(a_intent == INTENT_HELP) // Help intent doesn't mob swap a mob pulling a structure
|
||||
if(isstructure(M.pulling) || isstructure(pulling))
|
||||
return 1
|
||||
|
||||
if(!M.buckled && !M.has_buckled_mobs())
|
||||
var/mob_swap
|
||||
//the puller can always swap with it's victim if on grab intent
|
||||
@@ -128,6 +132,13 @@
|
||||
|
||||
//Called when we want to push an atom/movable
|
||||
/mob/living/proc/PushAM(atom/movable/AM, force = move_force)
|
||||
|
||||
if(isstructure(AM) && AM.pulledby)
|
||||
if(a_intent == INTENT_HELP && AM.pulledby != src) // Help intent doesn't push other peoples pulled structures
|
||||
return FALSE
|
||||
if(get_dist(get_step(AM, get_dir(src, AM)), AM.pulledby)>1)//Release pulled structures beyond 1 distance
|
||||
AM.pulledby.stop_pulling()
|
||||
|
||||
if(now_pushing)
|
||||
return TRUE
|
||||
if(moving_diagonally) // no pushing during diagonal moves
|
||||
@@ -976,3 +987,8 @@
|
||||
|
||||
/mob/living/proc/fakefire()
|
||||
return
|
||||
|
||||
/mob/living/extinguish_light()
|
||||
for(var/atom/A in src)
|
||||
if(A.light_range > 0)
|
||||
A.extinguish_light()
|
||||
|
||||
@@ -79,6 +79,7 @@
|
||||
var/obj/item/integrated_radio/signal/sradio // AI's signaller
|
||||
|
||||
var/translator_on = 0 // keeps track of the translator module
|
||||
var/flashlight_on = FALSE //keeps track of the flashlight module
|
||||
|
||||
var/current_pda_messaging = null
|
||||
var/custom_sprite = 0
|
||||
@@ -607,3 +608,8 @@
|
||||
else //something went very wrong.
|
||||
CRASH("pAI without card")
|
||||
loc = card
|
||||
|
||||
/mob/living/silicon/pai/extinguish_light()
|
||||
flashlight_on = FALSE
|
||||
set_light(0)
|
||||
card.set_light(0)
|
||||
|
||||
@@ -609,3 +609,20 @@
|
||||
data["holder"] = 0
|
||||
|
||||
return data
|
||||
|
||||
/datum/pai_software/flashlight
|
||||
name = "Flashlight"
|
||||
ram_cost = 5
|
||||
id = "flashlight"
|
||||
|
||||
/datum/pai_software/flashlight/toggle(mob/living/silicon/pai/user)
|
||||
var/atom/movable/actual_location = istype(user.loc, /obj/item/paicard) ? user.loc : user
|
||||
if(user.flashlight_on)
|
||||
actual_location.set_light(2)
|
||||
user.card.set_light(2)
|
||||
return
|
||||
actual_location.set_light(2)
|
||||
user.card.set_light(0)
|
||||
|
||||
/datum/pai_software/flashlight/is_active(mob/living/silicon/pai/user)
|
||||
return user.flashlight_on
|
||||
|
||||
@@ -1382,6 +1382,9 @@ var/list/robot_verbs_default = list(
|
||||
if(2)
|
||||
disable_component("comms", 60)
|
||||
|
||||
/mob/living/silicon/robot/extinguish_light()
|
||||
update_headlamp(1, 150)
|
||||
|
||||
/mob/living/silicon/robot/rejuvenate()
|
||||
..()
|
||||
var/brute = 1000
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
layer = 4.0
|
||||
animate_movement = 2
|
||||
pressure_resistance = 8
|
||||
dont_save = TRUE //to avoid it messing up in buildmode saving
|
||||
var/datum/mind/mind
|
||||
|
||||
var/stat = 0 //Whether a mob is alive or dead. TODO: Move this to living - Nodrak
|
||||
|
||||
@@ -536,6 +536,7 @@ var/list/intents = list(INTENT_HELP,INTENT_DISARM,INTENT_GRAB,INTENT_HARM)
|
||||
if(ID.registered_name == oldname)
|
||||
ID.registered_name = newname
|
||||
ID.name = "[newname]'s ID Card ([ID.assignment])"
|
||||
ID.RebuildHTML()
|
||||
if(!search_pda) break
|
||||
search_id = 0
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
/*
|
||||
This checks that the user is a ghost or alternatively an admin. Used for the mob spawner.
|
||||
We don't want any living people somehow getting the menu open and reincarnating while alive
|
||||
*/
|
||||
|
||||
/var/global/datum/topic_state/ghost_state/ghost_state = new()
|
||||
|
||||
/datum/topic_state/ghost_state/can_use_topic(var/src_object, var/mob/user)
|
||||
if(user.stat == DEAD)
|
||||
return STATUS_INTERACTIVE
|
||||
if(check_rights(R_ADMIN, 0, src))
|
||||
return STATUS_INTERACTIVE
|
||||
return STATUS_CLOSE
|
||||
|
||||
@@ -511,3 +511,8 @@ var/global/list/obj/item/pda/PDAs = list()
|
||||
/obj/item/pda/process()
|
||||
if(current_app)
|
||||
current_app.program_process()
|
||||
|
||||
/obj/item/pda/extinguish_light()
|
||||
var/datum/data/pda/utility/flashlight/FL = find_program(/datum/data/pda/utility/flashlight)
|
||||
if(FL && FL.fon)
|
||||
FL.start()
|
||||
|
||||
@@ -137,7 +137,7 @@
|
||||
idle_power_usage = 2
|
||||
active_power_usage = 20
|
||||
power_channel = LIGHT //Lights are calc'd via area so they dont need to be in the machine list
|
||||
var/on = 0 // 1 if on, 0 if off
|
||||
var/on = FALSE // 1 if on, 0 if off
|
||||
var/on_gs = 0
|
||||
var/static_power_used = 0
|
||||
var/brightness_range = 8 // luminosity when on, also used in power calculation
|
||||
@@ -159,7 +159,6 @@
|
||||
var/nightshift_light_power = 0.45
|
||||
var/nightshift_light_color = "#FFDDCC"
|
||||
|
||||
|
||||
// the smaller bulb light fixture
|
||||
|
||||
/obj/machinery/light/small
|
||||
@@ -213,7 +212,7 @@
|
||||
/obj/machinery/light/Destroy()
|
||||
var/area/A = get_area(src)
|
||||
if(A)
|
||||
on = 0
|
||||
on = FALSE
|
||||
// A.update_lights()
|
||||
return ..()
|
||||
|
||||
@@ -224,13 +223,13 @@
|
||||
icon_state = "[base_state][on]"
|
||||
if(LIGHT_EMPTY)
|
||||
icon_state = "[base_state]-empty"
|
||||
on = 0
|
||||
on = FALSE
|
||||
if(LIGHT_BURNED)
|
||||
icon_state = "[base_state]-burned"
|
||||
on = 0
|
||||
on = FALSE
|
||||
if(LIGHT_BROKEN)
|
||||
icon_state = "[base_state]-broken"
|
||||
on = 0
|
||||
on = FALSE
|
||||
return
|
||||
|
||||
// update the icon_state and luminosity of the light depending on its state
|
||||
@@ -255,7 +254,7 @@
|
||||
if(status == LIGHT_OK && trigger)
|
||||
status = LIGHT_BURNED
|
||||
icon_state = "[base_state]-burned"
|
||||
on = 0
|
||||
on = FALSE
|
||||
set_light(0)
|
||||
else
|
||||
use_power = ACTIVE_POWER_USE
|
||||
@@ -730,3 +729,8 @@
|
||||
if(limb)
|
||||
limb.droplimb(0, DROPLIMB_BURN)
|
||||
return FIRELOSS
|
||||
|
||||
/obj/machinery/light/extinguish_light()
|
||||
on = FALSE
|
||||
visible_message("<span class='danger'>[src] flickers and falls dark.</span>")
|
||||
update(0)
|
||||
|
||||
@@ -305,6 +305,11 @@ obj/item/gun/proc/newshot()
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
|
||||
/obj/item/gun/extinguish_light()
|
||||
if(gun_light.on)
|
||||
toggle_gunlight()
|
||||
visible_message("<span class='danger'>[src]'s light fades and turns off.</span>")
|
||||
|
||||
/obj/item/gun/pickup(mob/user)
|
||||
..()
|
||||
if(azoom)
|
||||
|
||||
@@ -430,7 +430,6 @@
|
||||
update_flags |= M.adjustOxyLoss(-25*REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
if(volume >= 4)
|
||||
M.LoseBreath(6)
|
||||
M.Silence(6)
|
||||
if(prob(33))
|
||||
update_flags |= M.adjustBruteLoss(-1*REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
update_flags |= M.adjustFireLoss(-1*REAGENTS_EFFECT_MULTIPLIER, FALSE)
|
||||
|
||||
@@ -189,7 +189,7 @@
|
||||
|
||||
for(var/mob/living/carbon/human/H in view(2, E.loc))//germs from people
|
||||
if(AStar(E.loc, H.loc, /turf/proc/Distance, 2, simulated_only = 0))
|
||||
if((!(BREATHLESS in H.mutations) || !(NO_BREATHE in H.dna.species.species_traits)) && !H.wear_mask) //wearing a mask helps preventing people from breathing cooties into open incisions
|
||||
if(!((BREATHLESS in H.mutations) || (NO_BREATHE in H.dna.species.species_traits)) && !H.wear_mask) //wearing a mask helps preventing people from breathing cooties into open incisions
|
||||
germs += H.germ_level * 0.25
|
||||
|
||||
for(var/obj/effect/decal/cleanable/M in view(2, E.loc))//germs from messes
|
||||
|
||||
@@ -56,6 +56,69 @@
|
||||
-->
|
||||
<div class="commit sansserif">
|
||||
|
||||
<h2 class="date">03 February 2019</h2>
|
||||
<h3 class="author">Fox McCloud updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="bugfix">Fixes a few edge cases of being able to create immunity to a few diseases</li>
|
||||
<li class="rscadd">Adds suspiciously Voxy outfit to the game</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="date">02 February 2019</h2>
|
||||
<h3 class="author">AzuleUtama updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="rscadd">Added Pack of C-4 for Traitors and Nuke ops. Comes with 5 C-4 charges for 4TC.</li>
|
||||
</ul>
|
||||
<h3 class="author">Kyep updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="tweak">Made playtime numbers displayed to admins (in the playtime report) and players (in the 'check my playtime' verb) clearer in meaning.</li>
|
||||
</ul>
|
||||
<h3 class="author">MINIMAN10000 updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="rscadd">Mobs in help intent do not push mobs pulling a structure or the structure they are pulling</li>
|
||||
<li class="bugfix">mobs standing on the same tile when being walked into on help intent.</li>
|
||||
<li class="bugfix">structures pulled beyond 1 distance call stop_pulling</li>
|
||||
<li class="bugfix">stop_pulling() now sets pulledby to null</li>
|
||||
</ul>
|
||||
<h3 class="author">Shadeykins updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="tweak">Thunderdome volume.</li>
|
||||
<li class="bugfix">Newscaster placement</li>
|
||||
<li class="tweak">Power alarm subtype (noalarm), vomit/blood</li>
|
||||
</ul>
|
||||
<h3 class="author">TDSSS updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="bugfix">Mob spawner menu buttons now work. This time it really works, I swear.</li>
|
||||
</ul>
|
||||
<h3 class="author">uc_guy updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="bugfix">Non-breathing mobs no longer cause an increase in germ level by not wearing a mask.</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="date">01 February 2019</h2>
|
||||
<h3 class="author">AffectedArc07 updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="tweak">Disabled darkmode is now normal grey, not full white</li>
|
||||
<li class="tweak">Changelog button now respects darkmode and will update when clicked</li>
|
||||
</ul>
|
||||
<h3 class="author">Citinited updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="bugfix">Sexy clown suits now have the squeak component</li>
|
||||
<li class="bugfix">You can now change the way your sexy clown mask looks</li>
|
||||
</ul>
|
||||
<h3 class="author">Ty-Omaha updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="bugfix">Admin save feature in build mode will ignore mobs</li>
|
||||
</ul>
|
||||
<h3 class="author">datlo updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="tweak">Wingdings now garbles sentences.</li>
|
||||
<li class="bugfix">Clown and mime now have their ID properly updated to their new name after they rename roundstart</li>
|
||||
<li class="rscadd">Added some ID photo outfits to some jobs missing it.</li>
|
||||
<li class="tweak">Agent ID photo editing refactored. The photo now looks the same as a real ID, with an outfit based on the job you've forged on the ID.</li>
|
||||
<li class="tweak">Agent ID should now be impossible to distinguish from a real ID by non-antagonists once properly forged.</li>
|
||||
<li class="tweak">You can now reset access or delete the agent ID's information without having to do both.</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="date">31 January 2019</h2>
|
||||
<h3 class="author">Darkmight9 updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
|
||||
@@ -8957,3 +8957,49 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
|
||||
- tweak: Replaced the toolbox in the professional syndicate bundle by a pair of
|
||||
combat gloves.
|
||||
- bugfix: Wingdings mutation works again.
|
||||
2019-02-01:
|
||||
AffectedArc07:
|
||||
- tweak: Disabled darkmode is now normal grey, not full white
|
||||
- tweak: Changelog button now respects darkmode and will update when clicked
|
||||
Citinited:
|
||||
- bugfix: Sexy clown suits now have the squeak component
|
||||
- bugfix: You can now change the way your sexy clown mask looks
|
||||
Ty-Omaha:
|
||||
- bugfix: Admin save feature in build mode will ignore mobs
|
||||
datlo:
|
||||
- tweak: Wingdings now garbles sentences.
|
||||
- bugfix: Clown and mime now have their ID properly updated to their new name after
|
||||
they rename roundstart
|
||||
- rscadd: Added some ID photo outfits to some jobs missing it.
|
||||
- tweak: Agent ID photo editing refactored. The photo now looks the same as a real
|
||||
ID, with an outfit based on the job you've forged on the ID.
|
||||
- tweak: Agent ID should now be impossible to distinguish from a real ID by non-antagonists
|
||||
once properly forged.
|
||||
- tweak: You can now reset access or delete the agent ID's information without having
|
||||
to do both.
|
||||
2019-02-02:
|
||||
AzuleUtama:
|
||||
- rscadd: Added Pack of C-4 for Traitors and Nuke ops. Comes with 5 C-4 charges
|
||||
for 4TC.
|
||||
Kyep:
|
||||
- tweak: Made playtime numbers displayed to admins (in the playtime report) and
|
||||
players (in the 'check my playtime' verb) clearer in meaning.
|
||||
MINIMAN10000:
|
||||
- rscadd: Mobs in help intent do not push mobs pulling a structure or the structure
|
||||
they are pulling
|
||||
- bugfix: mobs standing on the same tile when being walked into on help intent.
|
||||
- bugfix: structures pulled beyond 1 distance call stop_pulling
|
||||
- bugfix: stop_pulling() now sets pulledby to null
|
||||
Shadeykins:
|
||||
- tweak: Thunderdome volume.
|
||||
- bugfix: Newscaster placement
|
||||
- tweak: Power alarm subtype (noalarm), vomit/blood
|
||||
TDSSS:
|
||||
- bugfix: Mob spawner menu buttons now work. This time it really works, I swear.
|
||||
uc_guy:
|
||||
- bugfix: Non-breathing mobs no longer cause an increase in germ level by not wearing
|
||||
a mask.
|
||||
2019-02-03:
|
||||
Fox McCloud:
|
||||
- bugfix: Fixes a few edge cases of being able to create immunity to a few diseases
|
||||
- rscadd: Adds suspiciously Voxy outfit to the game
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "Fox McCloud"
|
||||
delete-after: True
|
||||
changes:
|
||||
- tweak: "Lack of breathing will render you unable to speak"
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "Tayyyyyyy, TaukaUsanake"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "pAI units now have access to a flashlight module, which can be obtained with 5 RAM points."
|
||||
|
Before Width: | Height: | Size: 251 KiB After Width: | Height: | Size: 252 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 277 KiB After Width: | Height: | Size: 290 KiB |
|
Before Width: | Height: | Size: 107 KiB After Width: | Height: | Size: 108 KiB |
@@ -38,7 +38,7 @@
|
||||
'html/changelog.html'
|
||||
)
|
||||
src << browse('html/changelog.html', "window=changes;size=675x650")
|
||||
|
||||
prefs.UpdateChangelogButton(src)
|
||||
if(prefs.lastchangelog != changelog_hash) //if it's already opened, no need to tell them they have unread changes
|
||||
prefs.SetChangelog(src,changelog_hash)
|
||||
|
||||
|
||||
@@ -2028,6 +2028,7 @@
|
||||
#include "code\modules\nano\interaction\conscious.dm"
|
||||
#include "code\modules\nano\interaction\contained.dm"
|
||||
#include "code\modules\nano\interaction\default.dm"
|
||||
#include "code\modules\nano\interaction\ghost.dm"
|
||||
#include "code\modules\nano\interaction\inventory.dm"
|
||||
#include "code\modules\nano\interaction\inventory_deep.dm"
|
||||
#include "code\modules\nano\interaction\not_incapacitated.dm"
|
||||
|
||||