Merge branch 'master' of https://github.com/tgstation/-tg-station into GenShit

Conflicts:
	code/modules/reagents/Chemistry-Reagents.dm

conflicts resolution
This commit is contained in:
Razharas
2014-12-16 02:52:08 +03:00
117 changed files with 7789 additions and 4608 deletions
+1 -1
View File
@@ -224,7 +224,7 @@
"ep" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/simulated/floor/plasteel{icon_state = "white"},/area/awaymission/academy/classrooms)
"eq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 5},/turf/simulated/floor/plating,/area/awaymission/academy/classrooms)
"er" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{dir = 6; icon_state = "yellow"},/area/awaymission/academy/classrooms)
"es" = (/obj/machinery/singularity/academy,/turf/space,/area/space)
"es" = (/obj/singularity/academy,/turf/space,/area/space)
"et" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{icon_state = "yellow"; dir = 10},/area/awaymission/academy/classrooms)
"eu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/awaymission/academy/classrooms)
"ev" = (/obj/structure/mineral_door/wood,/turf/simulated/floor/plasteel,/area/awaymission/academy/classrooms)
+1 -1
View File
@@ -176,7 +176,7 @@
"dt" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research)
"du" = (/obj/effect/decal/remains/human,/obj/item/clothing/suit/labcoat,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/awaymission/research)
"dv" = (/obj/machinery/door/airlock/hatch{name = "High-Security Airlock"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/research)
"dw" = (/obj/machinery/singularity/narsie/sc_Narsie{pixel_x = -48; pixel_y = -51},/turf/space,/area/awaymission/research)
"dw" = (/obj/singularity/narsie/sc_Narsie{pixel_x = -48; pixel_y = -51},/turf/space,/area/awaymission/research)
"dx" = (/turf/simulated/floor/plasteel{dir = 0; icon_state = "blue"},/area/awaymission/northblock)
"dy" = (/obj/machinery/message_server{stat = 1},/turf/simulated/floor/plasteel{dir = 0; icon_state = "blue"},/area/awaymission/northblock)
"dz" = (/obj/machinery/computer/message_monitor{stat = 1},/turf/simulated/floor/plasteel{dir = 0; icon_state = "blue"},/area/awaymission/northblock)
+15 -15
View File
@@ -140,7 +140,7 @@
"acJ" = (/obj/machinery/deployable/barrier,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
"acK" = (/obj/machinery/deployable/barrier,/obj/machinery/alarm{pixel_y = 23},/obj/machinery/camera/motion{c_tag = "Armory Motion Sensor"; dir = 2; name = "motion-sensitive security camera"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
"acL" = (/obj/machinery/suit_storage_unit/security,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
"acM" = (/obj/structure/rack,/obj/item/weapon/storage/lockbox/loyalty,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
"acM" = (/obj/structure/rack,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/gun/energy/ionrifle,/obj/item/clothing/suit/armor/laserproof,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
"acN" = (/obj/structure/rack,/obj/item/clothing/suit/armor/riot,/obj/item/clothing/suit/armor/riot,/obj/item/clothing/suit/armor/riot,/obj/item/clothing/head/helmet/riot,/obj/item/clothing/head/helmet/riot,/obj/item/clothing/head/helmet/riot,/obj/structure/window/reinforced{dir = 1},/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
"acO" = (/obj/structure/rack,/obj/item/weapon/shield/riot{pixel_x = -3; pixel_y = 3},/obj/item/weapon/shield/riot,/obj/item/weapon/shield/riot{pixel_x = 3; pixel_y = -3},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
"acP" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/closet/ammunitionlocker,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
@@ -196,7 +196,7 @@
"adN" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/power/apc{dir = 4; name = "Prison Wing APC"; pixel_x = 24; pixel_y = 0; step_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 5},/area/security/prison)
"adO" = (/obj/structure/closet/secure_closet{name = "contraband locker"; req_access_txt = "3"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
"adP" = (/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/ai_monitored/security/armory)
"adQ" = (/obj/structure/rack,/obj/item/clothing/suit/armor/bulletproof{pixel_x = -4; pixel_y = 3},/obj/item/clothing/suit/armor/laserproof,/turf/simulated/floor/plasteel{dir = 2; icon_state = "bot"},/area/ai_monitored/security/armory)
"adQ" = (/obj/structure/rack,/obj/item/weapon/storage/lockbox/loyalty,/turf/simulated/floor/plasteel{dir = 2; icon_state = "bot"},/area/ai_monitored/security/armory)
"adR" = (/obj/structure/rack,/obj/item/weapon/storage/box/chemimp{pixel_x = 4; pixel_y = 3},/obj/item/weapon/storage/box/trackimp,/obj/item/weapon/storage/box/teargas,/turf/simulated/floor/plasteel{dir = 2; icon_state = "bot"},/area/ai_monitored/security/armory)
"adS" = (/obj/structure/rack,/obj/item/weapon/storage/box/handcuffs,/obj/item/weapon/storage/box/flashbangs{pixel_x = -2; pixel_y = -2},/turf/simulated/floor/plasteel{dir = 2; icon_state = "bot"},/area/ai_monitored/security/armory)
"adT" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/shotgun/riot{pixel_x = 3; pixel_y = 3},/obj/item/weapon/gun/projectile/shotgun/riot,/turf/simulated/floor/plasteel{dir = 2; icon_state = "bot"},/area/ai_monitored/security/armory)
@@ -273,7 +273,7 @@
"afm" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 5},/area/security/prison)
"afn" = (/obj/machinery/status_display{density = 0; layer = 3; pixel_x = -32; pixel_y = 0},/obj/structure/window/reinforced,/obj/machinery/flasher/portable,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
"afo" = (/obj/machinery/flasher/portable,/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
"afp" = (/obj/structure/rack,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/gun/energy/ionrifle,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
"afp" = (/obj/structure/rack,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/item/clothing/suit/armor/bulletproof,/obj/item/clothing/head/helmet/bulletproof,/obj/item/clothing/suit/armor/bulletproof,/obj/item/clothing/head/helmet/bulletproof,/obj/item/clothing/suit/armor/bulletproof,/obj/item/clothing/head/helmet/bulletproof,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
"afq" = (/obj/structure/rack,/obj/item/weapon/gun/energy/laser{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/laser,/obj/item/weapon/gun/energy/laser{pixel_x = 3; pixel_y = -3},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
"afr" = (/obj/structure/rack,/obj/item/weapon/gun/energy/gun{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun{pixel_x = 3; pixel_y = -3},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory)
"afs" = (/obj/machinery/door/window/southleft{name = "Armory"; req_access_txt = "3"},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/ai_monitored/security/armory)
@@ -2170,7 +2170,7 @@
"aPL" = (/obj/machinery/vending/cola,/turf/simulated/floor/plasteel,/area/crew_quarters/locker)
"aPM" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/crew_quarters/locker)
"aPN" = (/obj/machinery/vending/coffee,/turf/simulated/floor/plasteel,/area/crew_quarters/locker)
"aPO" = (/obj/machinery/vending/snack,/turf/simulated/floor/plasteel,/area/crew_quarters/locker)
"aPO" = (/obj/machinery/vending/clothing,/turf/simulated/floor/plasteel,/area/crew_quarters/locker)
"aPP" = (/obj/machinery/vending/cigarette,/turf/simulated/floor/plasteel,/area/crew_quarters/locker)
"aPQ" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/plasteel,/area/crew_quarters/locker)
"aPR" = (/obj/structure/closet/secure_closet/personal,/turf/simulated/floor/plasteel,/area/crew_quarters/locker)
@@ -2261,9 +2261,9 @@
"aRy" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "greencorner"},/area/bridge)
"aRz" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/fancy/donut_box,/turf/simulated/floor/plasteel,/area/bridge)
"aRA" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/simulated/floor/plating,/area/crew_quarters/bar)
"aRB" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aRC" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 3},/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -3; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aRD" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aRB" = (/obj/structure/flora/tree/pine/xmas,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
"aRC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aRD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/flora/tree/pine/xmas,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aRE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aRF" = (/obj/structure/stool/bed/chair{dir = 4},/obj/effect/landmark/start{name = "Assistant"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aRG" = (/obj/structure/table,/obj/item/weapon/kitchen/utensil/fork,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
@@ -3864,7 +3864,7 @@
"bwp" = (/obj/machinery/computer/aifixer,/obj/machinery/requests_console{announcementConsole = 1; department = "Research Director's Desk"; departmentType = 5; name = "Research Director RC"; pixel_x = -2; pixel_y = 30},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/hor)
"bwq" = (/obj/structure/rack,/obj/item/weapon/circuitboard/aicore{pixel_x = -2; pixel_y = 4},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warnwhite"},/area/crew_quarters/hor)
"bwr" = (/obj/machinery/ai_status_display{pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "warnwhite"; dir = 1},/area/crew_quarters/hor)
"bws" = (/turf/simulated/floor/plasteel{icon_state = "warnwhite"; dir = 5},/area/crew_quarters/hor)
"bws" = (/obj/structure/flora/tree/festivus,/turf/simulated/floor/plasteel{icon_state = "warnwhite"; dir = 5},/area/crew_quarters/hor)
"bwt" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/toxins/telesci)
"bwu" = (/turf/simulated/wall,/area/toxins/telesci)
"bwv" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/book/manual/wiki/telescience{pixel_y = 8},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitecorner"},/area/toxins/telesci)
@@ -6471,7 +6471,7 @@
"cuw" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/fulltile,/turf/simulated/floor/plating,/area/engine/engineering)
"cux" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/simulated/floor/plating/airless,/area/shuttle/laborcamp/station)
"cuy" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/simulated/shuttle/plating,/area/shuttle/mining/station)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -6547,11 +6547,11 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHabqabrabqaaHabsaaiabtaasaasabuabvabwaasabxabyabzaasabAabBaaiaafaaaaaaaaaaaaaaaaaaaaaabmabCabDabEabFabnabGabHabIabJabKabnaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafabLaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaabeabeabdabeabeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHabMabNabOabPabQaaiabRabSabRabRabRabTabRabRabRabUabRabRabVaaiaafaaaaafaafaafaafaaaaafablabWabDabXabCabnabYabZacaacaacbabnaaaaafaahaafaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdabdabdabdabdaaaaaaaaaaccaaaaaaaaaabdabdabeabeabeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaaaaafaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacdaceabgacfaaHacgaaiachaasaciabRacjackaclabRacmacnacoabRacpaaiacqacqacqacqacqacqacqacqacqacrabDacsabCaboactacuacvacaacwabnaaaaafacxacyacxaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaafaafaafaaaaaaaccaafaafaaaaafaafaaaaaaabeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafaczaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaafaaHacAacBacCaaHacDaaiacEaasacFabRacGackacFabRacHacnacFabRacIaaiacJacKacLacLacMacNacOacPacqacQabDacsabCaboacRacSacTacaacUabnaafaafacxacVacxaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafacWacWacWacWacWaafacXaafacWacWacWacWacWaafabdaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafaczaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaafaaHacAacBacCaaHacDaaiacEaasacFabRacGackacFabRacHacnacFabRacIaaiacJacKacLacLafpacNacOacPacqacQabDacsabCaboacRacSacTacaacUabnaafaafacxacVacxaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafacWacWacWacWacWaafacXaafacWacWacWacWacWaafabdaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeabeabeabdabdaaaaaaaaaacYaaaaaaaaaabdabdabeabeabeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHaaHacdacZaaHadaaaiadbadcaddabRadbadeaddabRadbadfaddabRabRaaiacJadgadhadhadhadhadiadjacqadkabDacsabCabnadladmadnadoadpabnabmabladqacyacxacxadraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafadsadtadtadtadtaduadvadwadxadxadxadxadyaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaaaaaaaafaafaaaaaaaaaacYaafaafaaaaafaafaaaaaaabeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadzadAadBadCadDadEadFadGadDadHadIadJadDadKadLadMadNaaiadOadPadQadRadSadTadUadVadWabDadXadYablabnadZabnaeaabnaebabnaecaedablaeeaefaegaegaehaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafaeiaeiaeiaeiaeiaafadvaafaeiaeiaeiaeiaeiaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafaejaejaejaejaejaafaekaafaejaejaejaejaejaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaelaemaenaeoaepaeqaeoaeraepaeoaeoaeoaepaesaetaeuaevaaiaewaexaeyaezaeAaeBaeCaeDacqaeEaeFaeGablaeHaeIaeJaeKaeLaeMaeJaeNaeOaePaeQaeRaeSaeTaeUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaaaaaaaaaaafaaaaaaaafadvaaaaaaaaaaafaaaaaaaaaabeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafaeVaeWaeWaeWaeWaeXaeYaeZafaafaafaafaafbaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcaaiaaiaaiaaiafdafeaffafgafhafiafjafkafkafkabRaflafmaaiafnafoafpafqafrafsaftafuacqafvafwafxablafyafzafAafBafCafDafEafFafGablafHafIaegaegafJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafacWacWacWacWacWaafadvaafacWacWacWacWacWaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafaeVaeWaeWaeWaeWaeXaeYaeZafaafaafaafaafbaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcaaiaaiaaiaaiafdafeaffafgafhafiafjafkafkafkabRaflafmaaiafnafoacMafqafrafsaftafuacqafvafwafxablafyafzafAafBafCafDafEafFafGablafHafIaegaegafJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafacWacWacWacWacWaafadvaafacWacWacWacWacWaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafafKafKafKafKafKaafaeYaafafKafKafKafKafKaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaiaaiaddafLadbafMafMafMafMafMafMafMafNafOafPafQafRafSafTafUafVafWafXafPafYafZagaagbagcagdafAageafCagfaggaghabladqacxacxacxadraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafadsadtadtadtadtaduadvadwadxadxadxadxadyaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaaaaaaaaaaafaaaaaaaafaeYaaaaaaaaaaafaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaafaaaaaaaaiagiagjagkafMaglagmagnagoagpafMagqagragsagtaguagvagwafVagxafWagyagzagAagBagCagDagEagFagGagHagIagJagKagLagMagNagOagPacxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafaeiaeiaeiaeiaeiaafadvaafaeiaeiaeiaeiaeiaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdaafaejaejaejaejaejaafaeYaafaejaejaejaejaejaafabdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaafaafaafaafaafaafaafaaiagQagRagSafMagTagUagVagWagXafMagqagYagZahaahbahcahdaheaheahfahgahhahiahjahkahlahmahnahmahoahpahpahqahrablablaeQahsacxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeaaaaaaaaaaafaaaaaaaaaadvaaaaaaaaaaafaaaaaaaaaabeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -6587,12 +6587,12 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBVaHHaHHaHIaDraEHaDraEHaDraEHaDraEHaDraDyaEIavYaHJaHKaHLaHMaHMaHNaHOaxmaHPaHQaHRaHSayGaHTazQazQaHUayGaHVaHWaCqaHXaHYaHZaIaaIbaIcaIdaASaaaaafaaaaIeaIfaIeaaaaafaaaaxAaxGaxHaDVaIgaIhaIiaIjaxHapSasUaxWaIkaIlaEcaEcaEcaImaInaxWaaaaaaaIoaIpaIqaIraIsaItaIuaIvaIoaaaaaaaIwaIxaIyaIzazlaIAaAyaAyaAyaCPaAyaAyaAyazlaBraIBaICaBraBraABaIDaIEaIEaIFaIGaIHaIEaIIaIEaIJaIKaIJaILaIJaIMaHqaHqaINaHqaHqaHqaHqaIOaIPaHqaHraEyaHtaIQaIRaISaITaIUaEyaIVaIWaIXaIYaIZaJaaJbaJcaJdaBOaJeaGoaGpaJfaGraaaaaaaaaaaaaaaaaaaaaaafaaaaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJgaBTaBTaDpaDqaDraDraDraDraDraDraJhaDraDyaJiavYaBYaxmaJjaJkaJkaJkaJkaJkaJkaJkaJlaxmayGaJmaJnaJmayGayGaJoaJpaJqaARaARaARaARaJqaJraJsaASaJtaJuaJuaJvaJwaJvaJuaJuaJxaxAaJyaxHaJzaxHaJAaJAaJBaxHaJCaJDaxWaxWaxWaAsaEaaAsaxWaxWaxWaIoaIoaIoaJEaIsaIsaIsaIsaIsaJFaIoaIoaIoaIwaJGaIyaJHazlazlazlazlazlazlazlazlazlazlaJIaJJaJKaJLaJMaJNaJOaJPaIEaJQaIGaJRaJSaJRaIJaJTaJUaIJaJVaIJaJWaJXaJYaJZaKaaKaaKaaKbaKcaKdaHqaHraEyaKeaIQaKfaISaITaKgaEyaKhaKiaKjaKkaKlaKmaKnaKoaKpaKqaKraDlaHFaKsaGraaaaafaafaafaafaafaafaafaaaaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJgaBTaBUaBTaBVaBVaBVaBVaBTaBUaKtaKuaquaKvaxmaKwaKxaKxaKyaKxaKzarxaKAaKBaxmaKCaKDaKEaKEaKFaKEaKGaKHaKEaKEaKEaKEaKEaKEaKEaKIaKJaKKaKLaKMaKMaKNaKOaKMaKMaKMaKPaKQaKRaKNaKMaKMaKMaKSaGSaKTaIsaKUaKVaItaIuaIuaIuaIraIsaIsaKWaIsaKXaKYaKZaLaaLbaLcaLdaLeaIsaIsaKWaLfaLgaLhaLiaLjaLkaLlaLmaIsaLnaIsaBraLoaLpaLqaJJaLraLsaLtaLuaLvaLwaIEaLxaLyaLzaLAaLBaIJaLCaJUaLDaLEaIJaHqaLFaLGaLHaLIaLJaLKaLLaLMaLNaHqaHraEyaLOaLPaLQaLRaLSaLTaEyaLUaLVaEBaLWaLWaLWaLWaEBaLXaDjaKraDlaBRaBRaBRaLYaLYaLYaLZaLZaLZaafaafaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagapKapKapKapKavYayxavYaMaaMaaMaaMaavYayxavYaAHaquaAIaMbaKwaMcaMdaMeaMeaMfarxaMgaKBaMhaMiaKDaMjaMkaMlaMmaMnaMoaKEaKEaKEaKEaKEaKEaKEaKIaKEaKDaKEaKEaKEaMpaMqaMraMraMraMraMsaMraMtaMraMraMuaKDaGSaIsaIsaIsaIsaIsaIsaIsaIsaIsaIsaIsaKWaIsaMvaMwaMxaMyaMzaMAaMBaMCaIsaIsaKWaIsaIsaIsaIsaIsaIsaIsaIsaIsaMDaIsaBraLqaLqaLqaMEaMFaMGaMHaMIaMJaMKaIEaMLaIGaMMaIEaIEaIJaMNaJUaMOaLEaMPaIJaHqaHqaHqaHqaHqaHqaMQaMRaVmaHqaHraEyaMTaHtaMUaMVaHtaMWaEyaEBaEBaEBaEBaEBaEBaMXaEBaECaECaEDaDlaMYaMZaBRaNaaNbaNcaNdaNeaLZaafaaaaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagapKapKapKapKavYayxavYaMaaMaaMaaMaavYayxavYaAHaquaAIaMbaKwaMcaMdaMeaMeaMfarxaMgaKBaMhaMiaKDaMjaMkaMlaMmaMnaMoaKEaKEaKEaKEaKEaKEaKEaKIaKEaKDaKEaKEaKEaMpaMqaMraMraMraMraMsaMraMtaMraMraMuaKDaGSaIsaIsaIsaIsaIsaIsaIsaIsaIsaIsaIsaKWaIsaMvaMwaMxaMyaMzaMAaMBaMCaIsaIsaKWaIsaIsaIsaIsaIsaIsaIsaIsaIsaMDaIsaBraLqaLqaLqaMEaMFaMGaMHaMIaMJaMKaIEaMLaIGaMMaIEaIEaIJaMNaJUaMOaLEaMPaIJaHqaHqaHqaHqaHqaHqaMQaMRaVmaHqaHraEyaMTaHtaMUaMVaHtaMWaEyaEBaEBaEBaEBaEBaEBaMXaEBaECaRBaEDaDlaMYaMZaBRaNaaNbaNcaNdaNeaLZaafaaaaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafazFaquavYatMavYavYavYavYavYavYatMavYavYaquaBYaxmaKwaNfaNgaMeaMeaMfarxaNhaKBaxmaMiaKDaKEaNiaNjaNjaNjaNkaNlaNmaNjaNnaNjaNjaNjaNoaNjaNpaNjaNjaNjaNqaNraNsaNtaNtaNuaNvaNwaNxaNyaKEaNzaKDaGSaIsaNAaIsaNBaNBaNBaNBaNBaNBaNBaNBaNCaNBaNBaNBaNBaNBaNBaNBaNBaNBaNBaNBaNDaNBaNBaNBaNBaNBaNBaNBaNBaIsaIsaIsaBraNEaNEaNEaNEaNEaNFaNGaJNaLvaNHaIEaNIaNJaNKaIEaNLaIJaNMaNNaNOaLEaNPaIJaHqaNQaNRaNSaNTaNSaNUaNVaNWaHqaHraEyaNXaNXaNYaNZaOaaOaaObaEyaOcaOdaOeaBRaOfaOgaOhaECaECaOiaOjaBRaOkaBRaOlaOmaOnaOnaOoaLZaLZaLZaLZaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarxavYayxavYaOpaOqaOraOsavYayxavYaOtaOuaOvaxmaKwaOwaOwaKyaOwaKzarxaOxaKBaxmaOyaOyaOyaOzaOyaOAaOAaOAaOAaOAaOBaOCaOAaODaOAaOAaOAaOEaOFaOGaOFaOHaOIaOJaKEaKEaOKaOLaOMaONaKHaKEaNzaOOaOOaIsaIsaItaIoaIoaIoaIoaIoaIoaIoaIoaOPaOQaORaOSaORaORaORaOTaORaOUaORaOVaOPaIoaIoaIoaIoaIoaIoaIoaIoaIraIsaIsaIEaOWaOXaOYaOYaOYaOYaOYaJNaOZaOYaIEaPaaPbaPcaIJaIJaIJaPdaPeaIJaIJaIJaIJaHqaNSaPfaPgaPgaPgaPhaPiaNSaHqaHraEyaPjaHtaNYaNZaHtaHtaPkaEyaPlaPmaPnaBRaECaPoaPpaPqaPqaPraPsaPtaPuaBRaPvaPwaOnaPxaOnaPyaPzaPzaPyaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafavYaPAaxmavZaOvaxmaxmaPBavZaxmaPAaOvaxmaxmaxmaPCaPDaPDaPDaPDaPDaPDaPDaPEaxmaOyaPFaOyaPGaOAaPHaPIaPJaPKaPLaPIaPMaPNaPOaPPaPQaPRaOEaPSaPTaPUaOHaPVaOJaOJaPWaOJaOJaOOaPXaPYaPZaQaaOOaOOaQbaIsaItaIoaaaaaaaaaaaaaaaaaaaaaaOPaQcaQdaQeaQfaQgaQhaQiaQjaQkaQlaQmaOPaaaaaaaaaaaaaaaaaaaaaaIoaIraIsaQnaIEaQoaOYaQpaOYaOYaOYaQqaJNaOZaQraQsaJNaQtaQuaIJaQvaQwaQxaQyaQzaQAaQBaQCaIJaNSaQDaQEaQEaQEaQFaQGaNSaHqaQHaEyaQIaQIaNYaNZaQJaQJaQKaEyaEyaQLaEyaBRaQMaOgaOhaQNaQNaOiaOjaBRaBRaBRaLZaQOaQPaQQaLZaLZaLZaLZaQRaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaavYaQSaQTaQTaQTaQTaQTaQTaQTaQTaQSaQTaQUaxmaxmaMiaxmaQVaQWaxmaQXaQYaxmaQZaRaaOyaRbaOyaPGaOAaRcaPIaRdaPIaPIaPIaPMaReaPIaPIaPIaPRaOEaRfaPTaPTaOHaPVaOJaRgaRhaRhaRiaOOaRjaRkaRlaRmaRnaRoaIsaIsaItaIoaaaaaaaaaaaaaOPaOPaOPaOPaRpaRqaRraRsaRtaRuaRvaRwaRxaRyaRzaOPaOPaOPaOPaaaaaaaaaaaaaIoaIraIsaIsaRAaOYaRBaRCaRDaREaRFaRGaRHaRIaRJaRKaRLaRMaRNaROaRPaRPaRQaRRaRSaRSaRTaRPaRUaRVaRWaRXaRYaRZaSaaQGaNSaHqaHraEyaHtaHtaNYaNZaHtaHtaHtaSbaScaHtaSdaBRaSeaSfaSgaQNaQNaShaSiaSjaBRaSkaSlaPwaOnaSmaOnaSnaPzaPzaSoaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaisaisaquaquavYavYavYavYavYavYavYavYaquaquarxaMiaSpaSqaSqaSraSqaSqaSqaSsaSqaSqaSqaOyaRbaStaSuaOAaSvaPIaSwaSxaSyaSzaSAaSxaPIaPIaPIaSBaOEaSCaSDaSEaOHaPVaOJaSFaSGaSHaSIaOOaSJaSKaSLaSMaSNaRoaIsaIsaItaIoaIoaIwaSOaOPaOPaSPaSQaSRaSSaSTaSUaSVaSWaSUaSXaSUaSUaSYaSZaTaaTbaTcaOPaOPaSOaIwaIoaIoaIraIsaIsaIEaTdaJNaTeaOYaOYaOYaTfaOYaTgaThaTiaTjaTkaTlaTmaTnaToaTpaTqaTraTsaTtaTnaTuaTvaTwaTxaTyaTzaTxaTAaTBaHqaHraEyaTCaTCaNYaNZaTDaHtaHtaTEaHtaTFaTGaBRaTHaTIaTJaQNaQNaTKaTLaECaBRaTMaOnaPwaOnaSmaTNaLZaLZaLZaLZaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafavYaPAaxmavZaOvaxmaxmaPBavZaxmaPAaOvaxmaxmaxmaPCaPDaPDaPDaPDaPDaPDaPDaPEaxmaOyaPFaOyaPGaOAaPHaPIaPJaPKaPLaPIaPMaPNaPOaPPaPQaPRaOEaPSaPTaPUaOHaPVaOJaOJaPWaOJaOJaOOaPXaPYaPZaQaaOOaOOaQbaIsaItaIoaaaaaaaaaaaaaaaaaaaaaaOPaQcaQdaQeaQfaQgaQhaQiaQjaQkaQlaQmaOPaaaaaaaaaaaaaaaaaaaaaaIoaIraIsaQnaIEaQoaOYaOYaOYaOYaOYaQqaJNaOZaQraQsaJNaQtaQuaIJaQvaQwaQxaQyaQzaQAaQBaQCaIJaNSaQDaQEaQEaQEaQFaQGaNSaHqaQHaEyaQIaQIaNYaNZaQJaQJaQKaEyaEyaQLaEyaBRaQMaOgaOhaQNaQNaOiaOjaBRaBRaBRaLZaQOaQPaQQaLZaLZaLZaLZaQRaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaavYaQSaQTaQTaQTaQTaQTaQTaQTaQTaQSaQTaQUaxmaxmaMiaxmaQVaQWaxmaQXaQYaxmaQZaRaaOyaRbaOyaPGaOAaRcaPIaRdaPIaPIaPIaPMaReaPIaPIaPIaPRaOEaRfaPTaPTaOHaPVaOJaRgaRhaRhaRiaOOaRjaRkaRlaRmaRnaRoaIsaIsaItaIoaaaaaaaaaaaaaOPaOPaOPaOPaRpaRqaRraRsaRtaRuaRvaRwaRxaRyaRzaOPaOPaOPaOPaaaaaaaaaaaaaIoaIraIsaIsaRAaOYaRCaRDaREaREaRFaRGaRHaRIaRJaRKaRLaRMaRNaROaRPaRPaRQaRRaRSaRSaRTaRPaRUaRVaRWaRXaRYaRZaSaaQGaNSaHqaHraEyaHtaHtaNYaNZaHtaHtaHtaSbaScaHtaSdaBRaSeaSfaSgaQNaQNaShaSiaSjaBRaSkaSlaPwaOnaSmaOnaSnaPzaPzaSoaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaisaisaquaquavYavYavYavYavYavYavYavYaquaquarxaMiaSpaSqaSqaSraSqaSqaSqaSsaSqaSqaSqaOyaRbaStaSuaOAaSvaPIaSwaSxaSyaSzaSAaSxaPIaPIaPIaSBaOEaSCaSDaSEaOHaPVaOJaSFaSGaSHaSIaOOaSJaSKaSLaSMaSNaRoaIsaIsaItaIoaIoaIwaSOaOPaOPaSPaSQaSRaSSaSTaSUaSVaSWaSUaSXaSUaSUaSYaSZaTaaTbaTcaOPaOPaSOaIwaIoaIoaIraIsaIsaIEaTdaJNaOYaOYaOYaOYaTfaOYaTgaThaTiaTjaTkaTlaTmaTnaToaTpaTqaTraTsaTtaTnaTuaTvaTwaTxaTyaTzaTxaTAaTBaHqaHraEyaTCaTCaNYaNZaTDaHtaHtaTEaHtaTFaTGaBRaTHaTIaTJaQNaQNaTKaTLaECaBRaTMaOnaPwaOnaSmaTNaLZaLZaLZaLZaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOavYayyaxnaTPaSqaTQaTRaTSaTTaTSaTUaTQaTSaSqaRbaRbaTVaTWaOAaTXaPIaTYaTZaUaaUbaUcaSxaPIaPIaPIaPRaOEaOEaOEaOEaOHaPVaOJaOJaOJaOJaOJaOOaUdaRlaRlaRlaRlaRoaIsaIsaItaIuaIuaUeaUfaUgaOPaUhaUiaUjaUkaUlaUkaUmaUnaUoaUpaUqaUraUsaUqaUtaUuaUvaOPaUwaUfaUxaUyaIuaIraIsaIsaRAaOYaJNaQpaOYaUzaOYaQpaOYaOZaQraUAaOYaOYaOYaUBaUCaUDaUEaUFaUGaUHaUIaUJaIJaUKaULaUMaQEaUNaQEaUOaUPaHqaUQaEyaEyaEyaNYaNZaURaUSaHtaUTaUUaKfaUVaBRaECaUWaSgaQNaQNaShaUXaUYaBRaUZaOnaPwaVaaVbaVcaLZaaaaafaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaVdavYavYaBYaVeaVfaVgaVhaViaVjaVkaVlaTQaTSaSqaVnaYDaVoaOyaOAaVpaVqaVraVsaVraVtaVuaVtaVtaVtaVvaVwaOAaVxaVyaVzaVAaVBaVCaVDaVEaOyaVFaOOaVGaVHaVIaVJaVJaRoaIsaIsaIsaIsaIsaVKaVLaVMaVNaVOaVPaVQaVRaVSaVTaVUaVVaVWaVXaVYaVZaWaaWbaVQaWcaWdaWeaWfaWgaWhaWiaWjaWkaIsaIsaIEaWlaWmaWnaWoaOYaWpaWqaWoaOZaQraWraWraWsaWtaIJaUCaUCaUCaWuaUCaUCaUIaWvaIJaNSaULaQEaQEaUNaQEaWwaNSaHqaWxaWyaWzaWAaWBaWCaWDaWDaWDaWDaWDaWDaWEaWFaWGaWGaWGaWGaWGaWHaWIaWJaWFaWKaWLaWMaWNaOnaWOaLZaafaafaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaTOaWPatMaWPaxmaxmaSqaWQaWRaWSaWSaWSaWTaWUaWVaSqaWWaRbaVoaWXaWXaWXaWYaWZaWXaXaaXbaXcaXdaXeaXeaXfaXgaOAaXhaXiaXjaXkaXlaXmaXmaXnaXoaXoaXpaXpaXpaXpaXpaXqaOOaIsaIsaXraXsaXtaXuaXvaXwaOPaXxaXyaXzaXAaXBaXCaXCaXDaXEaXFaXGaXHaXIaXJaXzaXKaXxaOPaXwaXvaXLaXMaXsaXNaIsaIsaRAaOYaXOaTeaOYaOYaOYaTeaOYaOZaOYaQraQraOYaOYaXPaXQaXRaUCaUCaUCaUCaXSaXTaIJaXUaXVaQEaXWaXXaXYaXVaXZaHqaYaaYbaYbaYcaYdaYeaYfaYgaYhaYfaYfaYfaYiaYjaYkaYlaYlaYlaYlaYlaYmaYnaYjaYoaYpaYqaYraOnaYsaLZaaaaafaaaaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaGsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
File diff suppressed because it is too large Load Diff
+9 -1
View File
@@ -64,4 +64,12 @@
//Organ stuff, It's here because "Genetics" is the most relevant file for organs
#define ORGAN_ORGANIC 1
#define ORGAN_ROBOTIC 2
#define ORGAN_ROBOTIC 2
//Nutrition levels for humans. No idea where else to put it
#define NUTRITION_LEVEL_FAT 600
#define NUTRITION_LEVEL_FULL 550
#define NUTRITION_LEVEL_WELL_FED 450
#define NUTRITION_LEVEL_FED 350
#define NUTRITION_LEVEL_HUNGRY 250
#define NUTRITION_LEVEL_STARVING 150
+1 -1
View File
@@ -20,7 +20,7 @@
return // seems legit.
// Things you might plausibly want to follow
if((ismob(A) && A != src) || istype(A,/obj/machinery/bot) || istype(A,/obj/machinery/singularity))
if((ismob(A) && A != src) || istype(A,/obj/machinery/bot) || istype(A,/obj/singularity))
ManualFollow(A)
// Otherwise jump
+3
View File
@@ -67,6 +67,9 @@
if(prob(15/D.permeability_mod))
return
if(satiety>0 && prob(satiety/10)) // positive satiety makes it harder to contract the disease.
return
var/target_zone = pick(head_ch;1,body_ch;2,hands_ch;3,feet_ch;4)
if(istype(src, /mob/living/carbon/human))
+1 -1
View File
@@ -102,7 +102,7 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease
return
if(affected_mob)
if(affected_mob.reagents.has_reagent("spaceacillin"))
if( affected_mob.reagents.has_reagent("spaceacillin") || (affected_mob.satiety > 0 && prob(affected_mob.satiety/10)) )
return
var/spread_range = 1
@@ -34,7 +34,7 @@ Bonus
M << "<span class='notice'>[pick("You feel blubbery.", "You feel full.")]</span>"
else
M.overeatduration = min(M.overeatduration + 100, 600)
M.nutrition = min(M.nutrition + 100, 500)
M.nutrition = min(M.nutrition + 100, NUTRITION_LEVEL_FULL)
return
@@ -116,6 +116,6 @@ Bonus
switch(A.stage)
if(4, 5)
M.overeatduration = 0
M.nutrition = 400
M.nutrition = NUTRITION_LEVEL_WELL_FED + 50
return
+15
View File
@@ -0,0 +1,15 @@
//Santa spells!
/obj/effect/proc_holder/spell/aoe_turf/conjure/presents
name = "Conjure Presents!"
desc = "This spell lets you reach into S-space and retrieve presents! Yay!"
school = "santa"
charge_max = 600
clothes_req = 0
invocation = "HO HO HO"
invocation_type = "shout"
range = 3
cooldown_min = 50
summon_type = list("/obj/item/weapon/a_gift")
summon_lifespan = 0
summon_amt = 5
+22 -5
View File
@@ -250,13 +250,13 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
cost = 15
containername = "riot helmets crate"
/datum/supply_packs/security/armory/riotsuits
name = "Riot Suits Crate"
/datum/supply_packs/security/armory/riotarmor
name = "Riot Armor Crate"
contains = list(/obj/item/clothing/suit/armor/riot,
/obj/item/clothing/suit/armor/riot,
/obj/item/clothing/suit/armor/riot)
cost = 15
containername = "riot suits crate"
containername = "riot armor crate"
/datum/supply_packs/security/armory/riotshields
name = "Riot Shields Crate"
@@ -266,13 +266,21 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
cost = 20
containername = "riot shields crate"
/datum/supply_packs/security/armory/bullethelmet
name = "Tactical Helmets Crate"
contains = list(/obj/item/clothing/head/helmet/bulletproof,
/obj/item/clothing/head/helmet/bulletproof,
/obj/item/clothing/head/helmet/bulletproof)
cost = 15
containername = "tactical helmets crate"
/datum/supply_packs/security/armory/bulletarmor
name = "Bulletproof Armor Crate"
name = "Tactical Armor Crate"
contains = list(/obj/item/clothing/suit/armor/bulletproof,
/obj/item/clothing/suit/armor/bulletproof,
/obj/item/clothing/suit/armor/bulletproof)
cost = 15
containername = "bulletproof armor crate"
containername = "tactical armor crate"
/datum/supply_packs/security/armory/laserarmor
name = "Ablative Armor Crate"
@@ -697,6 +705,15 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
cost = 10
containername = "food crate"
/datum/supply_packs/organic/pizza
name = "Pizza Crate"
contains = list(/obj/item/pizzabox/margherita,
/obj/item/pizzabox/mushroom,
/obj/item/pizzabox/meat,
/obj/item/pizzabox/vegetable)
cost = 60
containername = "Pizza crate"
/datum/supply_packs/organic/monkey
name = "Monkey Crate"
contains = list (/obj/item/weapon/storage/box/monkeycubes)
@@ -59,7 +59,8 @@
if(!changeling.has_dna(target.dna))
changeling.absorb_dna(target, user)
if(user.nutrition < 400) user.nutrition = min((user.nutrition + target.nutrition), 400)
if(user.nutrition < NUTRITION_LEVEL_WELL_FED)
user.nutrition = min((user.nutrition + target.nutrition), NUTRITION_LEVEL_WELL_FED)
if(target.mind)//if the victim has got a mind
+1 -1
View File
@@ -167,7 +167,7 @@ var/list/sacrificed = list()
M.reagents.add_reagent("hell_water", 10)
M << "<span class='h2.userdanger'>YOUR SOUL BURNS WITH YOUR ARROGANCE!!!</span>"
return
var/narsie_type = /obj/machinery/singularity/narsie/large
var/narsie_type = /obj/singularity/narsie/large
// Moves narsie if she was already summoned.
var/obj/her = locate(narsie_type, machines)
if(her)
+1 -1
View File
@@ -26,7 +26,7 @@
/obj/effect/rend/New()
spawn(50)
new /obj/machinery/singularity/narsie/wizard(get_turf(src))
new /obj/singularity/narsie/wizard(get_turf(src))
qdel(src)
return
return
+1
View File
@@ -177,6 +177,7 @@ Security Officer
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/head/helmet(H), slot_head)
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
H.equip_to_slot_or_del(new /obj/item/weapon/restraints/handcuffs(H), slot_s_store)
H.equip_to_slot_or_del(new /obj/item/device/flash/handheld(H), slot_l_store)
+1 -1
View File
@@ -57,7 +57,7 @@
/obj/machinery/suit_storage_unit/security
SUIT_TYPE = /obj/item/clothing/suit/space/hardsuit/security
HELMET_TYPE = /obj/item/clothing/head/helmet/space/hardsuit/security
MASK_TYPE = /obj/item/clothing/mask/gas/sechailer
MASK_TYPE = /obj/item/clothing/mask/gas
/obj/machinery/suit_storage_unit/atmos
SUIT_TYPE = /obj/item/clothing/suit/space/hardsuit/atmos
+2 -2
View File
@@ -122,7 +122,7 @@
if(surplus() < 1500)
if(user) user << "<span class='notice'>The connected wire doesn't have enough current.</span>"
return
for(var/obj/machinery/singularity/singulo in world)
for(var/obj/singularity/singulo in world)
if(singulo.z == z)
singulo.target = src
icon_state = "[icontype]1"
@@ -133,7 +133,7 @@
/obj/machinery/power/singularity_beacon/proc/Deactivate(mob/user = null)
for(var/obj/machinery/singularity/singulo in world)
for(var/obj/singularity/singulo in world)
if(singulo.target == src)
singulo.target = null
icon_state = "[icontype]0"
+137 -5
View File
@@ -44,6 +44,8 @@
var/obj/item/weapon/coin/coin
var/datum/wires/vending/wires = null
var/dish_quants = list() //used by the snack machine's custom compartment to count dishes.
var/obj/item/weapon/vending_refill/refill_canister = null //The type of refill canisters used by this machine.
/obj/machinery/vending/New()
@@ -64,6 +66,11 @@
coin = null
..()
/obj/machinery/vending/snack/Destroy()
for(var/obj/item/weapon/reagent_containers/food/snacks/S in contents)
S.loc = get_turf(src)
..()
/obj/machinery/vending/initialize()
build_inventory(products)
build_inventory(contraband, 1)
@@ -93,7 +100,8 @@
/obj/machinery/vending/proc/build_inventory(list/productlist, hidden=0, req_coin=0, start_empty = null)
for(var/typepath in productlist)
var/amount = productlist[typepath]
if(isnull(amount)) amount = 0
if(isnull(amount))
amount = 0
var/atom/temp = new typepath(null)
var/datum/data/vending_product/R = new /datum/data/vending_product()
@@ -139,6 +147,70 @@
total += restock
return total
/obj/machinery/vending/snack/attackby(obj/item/weapon/W, mob/user)
if(istype(W, /obj/item/weapon/reagent_containers/food/snacks))
if(!compartment_access_check(user))
return
if(nosugar_check(W))
if(!iscompartmentfull(user))
user.drop_item()
W.loc = src
food_load(W)
user << "<span class='notice'>You insert [W] into [src]'s chef compartment.</span>"
else
user << "<span class='notice'>[src]'s chef compartment does not accept sugary food.</span>"
return
if(istype(W, /obj/item/weapon/storage/bag/tray))
if(!compartment_access_check(user))
return
var/obj/item/weapon/storage/T = W
var/loaded = 0
var/denied_items = 0
for(var/obj/item/weapon/reagent_containers/food/snacks/S in T.contents)
if(iscompartmentfull(user))
break
if(nosugar_check(S))
T.remove_from_storage(S, src)
food_load(S)
loaded++
else
denied_items++
if(denied_items)
user << "<span class='notice'>[src] refuses some items.</span>"
if(loaded)
user << "<span class='notice'>You insert [loaded] dishes into [src]'s chef compartment.</span>"
updateUsrDialog()
return
..()
/obj/machinery/vending/snack/proc/compartment_access_check(user)
req_access_txt = chef_compartment_access
if(!allowed(user) && !emagged && scan_id)
user << "<span class='warning'>[src]'s chef compartment blinks red: Access denied.</span>"
req_access_txt = "0"
return 0
req_access_txt = "0"
return 1
/obj/machinery/vending/snack/proc/nosugar_check(obj/item/weapon/W)
if(W.reagents.has_reagent("sugar"))
return 0
return 1
/obj/machinery/vending/snack/proc/iscompartmentfull(mob/user)
if(contents.len >= 30) // no more than 30 dishes can fit inside
user << "<span class='warning'>[src]'s chef compartment is full.</span>"
return 1
return 0
/obj/machinery/vending/snack/proc/food_load(obj/item/weapon/reagent_containers/food/snacks/S)
if(dish_quants[S.name])
dish_quants[S.name]++
else
dish_quants[S.name] = 1
sortList(dish_quants)
/obj/machinery/vending/attackby(obj/item/weapon/W, mob/user)
if(panel_open)
@@ -247,6 +319,15 @@
dat += "[coin]&nbsp;&nbsp;<a href='byond://?src=\ref[src];remove_coin=1'>Remove</a>"
else
dat += "<i>No coin</i>&nbsp;&nbsp;<span class='linkOff'>Remove</span>"
if(istype(src, /obj/machinery/vending/snack))
dat += "<h3>Chef's Food Selection</h3>"
dat += "<div class='statusDisplay'>"
for (var/O in dish_quants)
if(dish_quants[O] > 0)
var/N = dish_quants[O]
dat += "<a href='byond://?src=\ref[src];dispense=[sanitize(O)]'>Dispense</A> "
dat += "<B>[capitalize(O)]: [N]</B><br>"
dat += "</div>"
user.set_machine(src)
if(seconds_electrified && !(stat & NOPOWER))
if(shock(user, 100))
@@ -293,6 +374,24 @@
usr.set_machine(src)
if((href_list["dispense"]) && (vend_ready))
var/N = href_list["dispense"]
if(dish_quants[N] <= 0) // Sanity check, there are probably ways to press the button when it shouldn't be possible.
return
vend_ready = 0
use_power(5)
spawn(vend_delay)
dish_quants[N] = max(dish_quants[N] - 1, 0)
for(var/obj/O in contents)
if(O.name == N)
O.loc = src.loc
break
vend_ready = 1
updateUsrDialog()
return
if((href_list["vend"]) && (vend_ready))
if(panel_open)
usr << "<span class='notice'>The vending machine cannot dispense products while its service panel is open!</span>"
@@ -563,12 +662,12 @@
product_slogans = "Try our new nougat bar!;Twice the calories for half the price!"
product_ads = "The healthiest!;Award-winning chocolate bars!;Mmm! So good!;Oh my god it's so juicy!;Have a snack.;Snacks are good for you!;Have some more Getmore!;Best quality snacks straight from mars.;We love chocolate!;Try our new jerky!"
icon_state = "snack"
products = list(/obj/item/weapon/reagent_containers/food/snacks/candy = 6,/obj/item/weapon/reagent_containers/food/drinks/dry_ramen = 6,/obj/item/weapon/reagent_containers/food/snacks/chips =6,
/obj/item/weapon/reagent_containers/food/snacks/sosjerky = 6,/obj/item/weapon/reagent_containers/food/snacks/no_raisin = 6,/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie = 6,
/obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers = 6)
products = list(/obj/item/weapon/reagent_containers/food/snacks/candy = 5,/obj/item/weapon/reagent_containers/food/drinks/dry_ramen = 5,/obj/item/weapon/reagent_containers/food/snacks/chips =5,
/obj/item/weapon/reagent_containers/food/snacks/sosjerky = 5,/obj/item/weapon/reagent_containers/food/snacks/no_raisin = 5,/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie = 5,
/obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers = 5)
contraband = list(/obj/item/weapon/reagent_containers/food/snacks/syndicake = 6)
refill_canister = /obj/item/weapon/vending_refill/snack
var/chef_compartment_access = "28"
/obj/machinery/vending/snack/New()
..()
@@ -855,3 +954,36 @@
/obj/item/weapon/stock_parts/cell/high = 12, /obj/item/device/assembly/prox_sensor = 3,/obj/item/device/assembly/signaler = 3,/obj/item/device/healthanalyzer = 3,
/obj/item/weapon/scalpel = 2,/obj/item/weapon/circular_saw = 2,/obj/item/weapon/tank/anesthetic = 2,/obj/item/clothing/mask/breath/medical = 5,
/obj/item/weapon/screwdriver = 5,/obj/item/weapon/crowbar = 5)
//This one's from NTstation
//don't forget to change the refill size if you change the machine's contents!
/obj/machinery/vending/clothing
name = "ClothesMate" //renamed to make the slogan rhyme
desc = "A vending machine for clothing."
icon_state = "clothes"
product_slogans = "Dress for success!;Prepare to look swagalicious!;Look at all this free swag!;Why leave style up to fate? Use the ClothesMate!"
vend_delay = 15
vend_reply = "Thank you for using the ClothesMate!"
products = list(/obj/item/clothing/head/that=2,/obj/item/clothing/head/fedora=1,/obj/item/clothing/glasses/monocle=1,
/obj/item/clothing/under/suit_jacket/navy=2,/obj/item/clothing/under/kilt=1,/obj/item/clothing/under/overalls=1,
/obj/item/clothing/under/suit_jacket/really_black=2,/obj/item/clothing/under/pants/jeans=3,/obj/item/clothing/under/pants/classicjeans=2,
/obj/item/clothing/under/pants/camo = 1,/obj/item/clothing/under/pants/blackjeans=2,/obj/item/clothing/under/pants/khaki=2,
/obj/item/clothing/under/pants/white=2,/obj/item/clothing/under/pants/red=1,/obj/item/clothing/under/pants/black=2,
/obj/item/clothing/under/pants/tan=2,/obj/item/clothing/under/pants/blue=1,/obj/item/clothing/under/pants/track=1,
/obj/item/clothing/tie/waistcoat=1,/obj/item/clothing/under/sundress=2,/obj/item/clothing/under/blacktango=1,
/obj/item/clothing/suit/jacket=3,/obj/item/clothing/glasses/regular=2,/obj/item/clothing/head/sombrero=1,
/obj/item/clothing/suit/poncho=1,/obj/item/clothing/suit/ianshirt=1,/obj/item/clothing/shoes/laceup=2,
/obj/item/clothing/shoes/sneakers/black=4,/obj/item/clothing/shoes/sandal=1)
contraband = list(/obj/item/clothing/under/syndicate/tacticool=1,/obj/item/clothing/mask/balaclava=1,/obj/item/clothing/head/ushanka=1,/obj/item/clothing/under/soviet=1)
premium = list(/obj/item/clothing/under/suit_jacket/checkered=1,/obj/item/clothing/head/mailman=1,/obj/item/clothing/under/rank/mailman=1,/obj/item/clothing/suit/jacket/leather=1,/obj/item/clothing/under/pants/mustangjeans=1)
refill_canister = /obj/item/weapon/vending_refill/clothing
/obj/machinery/vending/clothing/New()
..()
component_parts = list()
var/obj/item/weapon/circuitboard/vendor/V = new(null)
V.set_type(type)
component_parts += V
component_parts += new /obj/item/weapon/vending_refill/clothing(0)
component_parts += new /obj/item/weapon/vending_refill/clothing(0)
component_parts += new /obj/item/weapon/vending_refill/clothing(0)
+4 -4
View File
@@ -251,16 +251,16 @@
var/turf/W = get_step(src, WEST)
if(!locate(/obj/structure/alien) in N.contents)
if(istype(N, /turf/simulated/floor))
src.overlays += image('icons/mob/alien.dmi', "weeds_side_s", layer=2, pixel_y = 32)
src.overlays += image('icons/mob/alien.dmi', "weeds_side_s", layer=2.11, pixel_y = 32)
if(!locate(/obj/structure/alien) in S.contents)
if(istype(S, /turf/simulated/floor))
src.overlays += image('icons/mob/alien.dmi', "weeds_side_n", layer=2, pixel_y = -32)
src.overlays += image('icons/mob/alien.dmi', "weeds_side_n", layer=2.11, pixel_y = -32)
if(!locate(/obj/structure/alien) in E.contents)
if(istype(E, /turf/simulated/floor))
src.overlays += image('icons/mob/alien.dmi', "weeds_side_w", layer=2, pixel_x = 32)
src.overlays += image('icons/mob/alien.dmi', "weeds_side_w", layer=2.11, pixel_x = 32)
if(!locate(/obj/structure/alien) in W.contents)
if(istype(W, /turf/simulated/floor))
src.overlays += image('icons/mob/alien.dmi', "weeds_side_e", layer=2, pixel_x = -32)
src.overlays += image('icons/mob/alien.dmi', "weeds_side_e", layer=2.11, pixel_x = -32)
/obj/structure/alien/weeds/proc/fullUpdateWeedOverlays()
@@ -169,7 +169,7 @@
if(current && current.can_use())
var/list/seen = current.can_see()
var/list/names = list()
for(var/obj/machinery/singularity/S in seen) // god help you if you see more than one
for(var/obj/singularity/S in seen) // god help you if you see more than one
if(S.name in names)
names[S.name]++
dat += "[S.name] ([names[S.name]])"
@@ -136,7 +136,7 @@
desc = "A classic green-shaded desk lamp."
icon_state = "lampgreen"
item_state = "lampgreen"
brightness_on = 5
/obj/item/device/flashlight/lamp/verb/toggle_light()
@@ -147,6 +147,13 @@
if(!usr.stat)
attack_self(usr)
//Bananalamp
obj/item/device/flashlight/lamp/bananalamp
name = "banana lamp"
desc = "Only a clown would think to make a ghetto banana-shaped lamp. Even has a goofy pullstring."
icon_state = "bananalamp"
item_state = "bananalamp"
// FLARES
/obj/item/device/flashlight/flare
@@ -22,7 +22,11 @@
icon_state = "giftcrate[rand(1,5)]"
/obj/item/weapon/a_gift/attack_self(mob/M as mob)
var/gift_type = pick(/obj/item/weapon/sord,
if(M && M.mind && M.mind.special_role == "Santa")
M << "<span class='warning'>You're supposed to be spreading gifts, not opening them yourself!</span>"
return
var/gift_type_list = list(/obj/item/weapon/sord,
/obj/item/weapon/storage/wallet,
/obj/item/weapon/storage/photo_album,
/obj/item/weapon/storage/box/snappops,
@@ -36,35 +40,28 @@
/obj/item/weapon/grenade/smokebomb,
/obj/item/weapon/grown/corncob,
/obj/item/weapon/contraband/poster,
/obj/item/weapon/contraband/poster/legit,
/obj/item/weapon/book/manual/barman_recipes,
/obj/item/weapon/book/manual/chef_recipes,
/obj/item/weapon/bikehorn,
/obj/item/weapon/beach_ball,
/obj/item/weapon/beach_ball/holoball,
/obj/item/weapon/banhammer,
/obj/item/toy/balloon,
/obj/item/toy/crossbow,
/obj/item/toy/gun,
/obj/item/toy/katana,
/obj/item/toy/prize/deathripley,
/obj/item/toy/prize/durand,
/obj/item/toy/prize/fireripley,
/obj/item/toy/prize/gygax,
/obj/item/toy/prize/honk,
/obj/item/toy/prize/marauder,
/obj/item/toy/prize/mauler,
/obj/item/toy/prize/odysseus,
/obj/item/toy/prize/phazon,
/obj/item/toy/prize/ripley,
/obj/item/toy/prize/seraph,
/obj/item/toy/spinningtoy,
/obj/item/toy/sword,
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/deus,
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris,
/obj/item/device/paicard,
/obj/item/device/violin,
/obj/item/weapon/storage/belt/utility/full,
/obj/item/clothing/tie/horrible)
/obj/item/clothing/tie/horrible,
/obj/item/clothing/suit/jacket/leather,
/obj/item/clothing/suit/poncho,
/obj/item/clothing/suit/poncho/green,
/obj/item/clothing/suit/poncho/red)
gift_type_list += typesof(/obj/item/clothing/head/collectable) - /obj/item/clothing/head/collectable
gift_type_list += typesof(/obj/item/toy) - (((typesof(/obj/item/toy/cards) - /obj/item/toy/cards/deck) + /obj/item/toy/ammo) + /obj/item/toy) //All toys, except for abstract types and syndicate cards.
var/gift_type = pick(gift_type_list)
if(!ispath(gift_type,/obj/item)) return
@@ -46,7 +46,7 @@
investigate_log("has become a singularity. Caused by [user.key]","singulo")
user << "<span class='danger'>The Bluespace interfaces of the two devices catastrophically malfunction!</span>"
qdel(W)
var/obj/machinery/singularity/singulo = new /obj/machinery/singularity (get_turf(src))
var/obj/singularity/singulo = new /obj/singularity (get_turf(src))
singulo.energy = 300 //should make it a bit bigger~
message_admins("[key_name_admin(user)] detonated a bag of holding")
log_game("[key_name(user)] detonated a bag of holding")
@@ -586,4 +586,4 @@
new /obj/item/clothing/tie/armband/deputy(src)
new /obj/item/clothing/tie/armband/deputy(src)
new /obj/item/clothing/tie/armband/deputy(src)
new /obj/item/clothing/tie/armband/deputy(src)
new /obj/item/clothing/tie/armband/deputy(src)
@@ -57,3 +57,8 @@
machine_name = "AutoDrobe"
icon_state = "refill_costume"
charges = 19// of 58
/obj/item/weapon/vending_refill/clothing
machine_name = "ClothesMate"
icon_state = "refill_clothes"
charges = 16// of 48
@@ -298,8 +298,8 @@
if(istype(user.loc, /obj/structure/closet/critter) && !welded)
breakout_time = 0.75 //45 seconds if it's an unwelded critter crate
if(opened || (!welded && !locked))
return //Door's open, not locked or welded, no point in resisting.
if( opened || (!welded && !locked && !istype(src.loc, /obj/mecha)) )
return //Door's open, not locked or welded or inside a mech, no point in resisting.
//okay, so the closet is either welded or locked... resist!!!
user.changeNext_move(CLICK_CD_BREAKOUT)
@@ -308,7 +308,7 @@
for(var/mob/O in viewers(src))
O << "<span class='warning'>[src] begins to shake violently!</span>"
if(do_after(user,(breakout_time*60*10))) //minutes * 60seconds * 10deciseconds
if(!user || user.stat != CONSCIOUS || user.loc != src || opened || (!locked && !welded))
if(!user || user.stat != CONSCIOUS || user.loc != src || opened || (!locked && !welded && !istype(src.loc, /obj/mecha)) )
return
//we check after a while whether there is a point of resisting anymore and whether the user is capable of resisting
@@ -317,6 +317,11 @@
broken = 1 //applies to secure lockers only
visible_message("<span class='danger'>[user] successfully broke out of [src]!</span>")
user << "<span class='notice'>You successfully break out of [src]!</span>"
if(istype( src.loc, /obj/structure/bigDelivery))
var/obj/structure/bigDelivery/D = src.loc
qdel(D)
else if(istype( src.loc, /obj/mecha))
src.loc = get_turf(src.loc)
open()
else
user << "<span class='warning'>You fail to break out of [src]!</span>"
@@ -129,12 +129,12 @@
/obj/structure/closet/secure_closet/chemical
name = "chemical closet"
desc = "Store dangerous chemicals in here."
icon_state = "medical1"
icon_closed = "medical"
icon_locked = "medical1"
icon_state = "chemical1"
icon_closed = "chemical"
icon_locked = "chemical1"
icon_opened = "medicalopen"
icon_broken = "medicalbroken"
icon_off = "medicaloff"
icon_broken = "chemicalbroken"
icon_off = "chemicaloff"
req_access = list(access_chemistry)
@@ -15,7 +15,7 @@
else
new /obj/item/weapon/storage/backpack/satchel_cap(src)
new /obj/item/clothing/suit/captunic(src)
new /obj/item/clothing/under/captainformal(src)
new /obj/item/clothing/under/captainparade(src)
new /obj/item/clothing/head/caphat/parade(src)
new /obj/item/clothing/under/rank/captain(src)
new /obj/item/clothing/suit/armor/vest/capcarapace(src)
@@ -70,19 +70,18 @@
/obj/structure/closet/secure_closet/hos/New()
..()
new /obj/item/clothing/suit/armor/vest(src)
new /obj/item/clothing/under/hosformalfem(src)
new /obj/item/clothing/under/hosformalmale(src)
new /obj/item/clothing/suit/armor/hos/trenchcoat(src)
new /obj/item/clothing/head/HoS/beret(src)
new /obj/item/weapon/cartridge/hos(src)
new /obj/item/device/radio/headset/heads/hos(src)
new /obj/item/clothing/under/hosparadefem(src)
new /obj/item/clothing/under/hosparademale(src)
new /obj/item/clothing/suit/armor/hos/trenchcoat(src)
new /obj/item/clothing/under/rank/head_of_security/formal(src)
new /obj/item/clothing/head/HoS/beret(src)
new /obj/item/clothing/glasses/hud/security/eyepatch(src)
new /obj/item/weapon/storage/lockbox/loyalty(src)
new /obj/item/weapon/shield/riot/tele(src)
new /obj/item/clothing/mask/gas/sechailer/swat(src)
new /obj/item/weapon/storage/box/flashbangs(src)
new /obj/item/device/flash/handheld(src)
new /obj/item/clothing/mask/gas/sechailer/swat(src)
new /obj/item/weapon/shield/riot/tele(src)
new /obj/item/weapon/melee/baton/loaded(src)
new /obj/item/weapon/gun/energy/gun(src)
new /obj/item/weapon/storage/belt/security(src)
@@ -103,12 +102,12 @@
/obj/structure/closet/secure_closet/warden/New()
..()
new /obj/item/clothing/suit/armor/vest(src)
new /obj/item/clothing/under/rank/warden(src)
new /obj/item/device/radio/headset/headset_sec(src)
new /obj/item/clothing/suit/armor/vest/warden(src)
new /obj/item/clothing/head/warden(src)
new /obj/item/clothing/suit/armor/vest(src)
new /obj/item/clothing/under/rank/warden/formal(src)
new /obj/item/clothing/head/warden/drill(src)
new /obj/item/device/radio/headset/headset_sec(src)
new /obj/item/clothing/glasses/hud/security/sunglasses(src)
new /obj/item/clothing/mask/gas/sechailer(src)
new /obj/item/weapon/storage/box/flashbangs(src)
@@ -137,9 +136,9 @@
new /obj/item/clothing/suit/armor/vest(src)
new /obj/item/clothing/head/helmet(src)
new /obj/item/device/radio/headset/headset_sec/alt(src)
new /obj/item/weapon/reagent_containers/spray/pepper(src)
new /obj/item/clothing/mask/gas/sechailer(src)
new /obj/item/device/flash/handheld(src)
new /obj/item/weapon/reagent_containers/spray/pepper(src)
new /obj/item/weapon/grenade/flashbang(src)
new /obj/item/weapon/gun/energy/taser(src)
new /obj/item/weapon/storage/belt/security(src)
@@ -204,7 +203,7 @@
new /obj/item/clothing/suit/det_suit(src)
new /obj/item/clothing/head/det_hat(src)
new /obj/item/clothing/gloves/black(src)
new /obj/item/clothing/under/det/grey(src)
new /obj/item/clothing/under/rank/det/grey(src)
new /obj/item/clothing/suit/det_suit/grey(src)
new /obj/item/clothing/head/fedora(src)
new /obj/item/clothing/shoes/laceup(src)
@@ -298,4 +297,3 @@
icon_state = icon_closed
else
icon_state = icon_opened
+2 -2
View File
@@ -847,7 +847,7 @@ var/global/list/g_fancy_list_of_types = null
if("centcom commander")
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_commander(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/bulletproof(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/armor(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat/swat(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_cent(M), slot_ears)
@@ -989,7 +989,7 @@ var/global/list/g_fancy_list_of_types = null
spawn(30)
for(var/obj/machinery/the_singularitygen/G in world)
if(G.anchored)
var/obj/machinery/singularity/S = new /obj/machinery/singularity(get_turf(G), 50)
var/obj/singularity/S = new /obj/singularity(get_turf(G), 50)
// qdel(G)
S.energy = 1750
S.current_size = 7
+1 -1
View File
@@ -2,7 +2,7 @@
set name = "Possess Obj"
set category = "Object"
if(istype(O,/obj/machinery/singularity))
if(istype(O,/obj/singularity))
if(config.forbid_singulo_possession)
usr << "It is forbidden to possess singularities."
return
+1 -1
View File
@@ -255,7 +255,7 @@
/obj/effect/landmark/corpse/commander
name = "Commander"
corpseuniform = /obj/item/clothing/under/rank/centcom_commander
corpsesuit = /obj/item/clothing/suit/armor/bulletproof
corpsesuit = /obj/item/clothing/suit/armor
corpseradio = /obj/item/device/radio/headset/heads/captain
corpseglasses = /obj/item/clothing/glasses/eyepatch
corpsemask = /obj/item/clothing/mask/cigarette/cigar/cohiba
@@ -22,15 +22,15 @@
//Academy Items
/obj/machinery/singularity/academy
/obj/singularity/academy
dissipate = 0
move_self = 0
grav_pull = 1
/obj/machinery/singularity/academy/admin_investigate_setup()
/obj/singularity/academy/admin_investigate_setup()
return
/obj/machinery/singularity/academy/process()
/obj/singularity/academy/process()
eat()
if(prob(1))
mezzer()
@@ -159,21 +159,21 @@ var/sc_safecode5 = "[rand(0,9)]"
/*
* Modified Nar-Sie
*/
/obj/machinery/singularity/narsie/sc_Narsie
/obj/singularity/narsie/sc_Narsie
desc = "Your body becomes weak and your feel your mind slipping away as you try to comprehend what you know can't be possible."
move_self = 0 //Contianed narsie does not move!
grav_pull = 0 //Contained narsie does not pull stuff in!
//Override this to prevent no adminlog runtimes and admin warnings about a singularity without containment
/obj/machinery/singularity/narsie/sc_Narsie/admin_investigate_setup()
/obj/singularity/narsie/sc_Narsie/admin_investigate_setup()
return
/obj/machinery/singularity/narsie/sc_Narsie/process()
/obj/singularity/narsie/sc_Narsie/process()
eat()
if(prob(25))
mezzer()
/obj/machinery/singularity/narsie/sc_Narsie/consume(var/atom/A)
/obj/singularity/narsie/sc_Narsie/consume(var/atom/A)
if(is_type_in_list(A, uneatable))
return 0
if (istype(A,/mob/living))
@@ -194,5 +194,5 @@ var/sc_safecode5 = "[rand(0,9)]"
T.ChangeTurf(/turf/space)
return
/obj/machinery/singularity/narsie/sc_Narsie/ex_act()
/obj/singularity/narsie/sc_Narsie/ex_act()
return
+1 -1
View File
@@ -11,7 +11,7 @@
H.add_hud_to(user)
/obj/item/clothing/glasses/hud/dropped(mob/living/carbon/human/user)
if(user.glasses == src)
if(istype(user) && user.glasses == src)
var/datum/atom_hud/H = huds[hud_type]
H.remove_hud_from(user)
+7
View File
@@ -54,6 +54,13 @@
max_heat_protection_temperature = SPACE_HELM_MAX_TEMP_PROTECT
strip_delay = 80
/obj/item/clothing/head/helmet/bulletproof
name = "tactical helmet"
desc = "An advanced helmet designed to protect against traditional projectile weaponry and explosives."
icon_state = "bulletproof"
armor = list(melee = 25, bullet = 60, laser = 25, energy = 10, bomb = 40, bio = 0, rad = 0)
strip_delay = 70
/obj/item/clothing/head/helmet/swat/syndicate
name = "blood-red helmet"
desc = "An extremely robust, space-worthy helmet that lacks a visor to allow for goggle usage underneath. Property of Gorlex Marauders."
+6 -6
View File
@@ -235,12 +235,12 @@
temp_message[H] = ninjaspeak(temp_message[H])
pick_list -= H
message = list2text(temp_message, " ")
message = replacetext(message, "o", "¤")
message = replacetext(message, "p", "þ")
message = replacetext(message, "l", "£")
message = replacetext(message, "s", "§")
message = replacetext(message, "u", "µ")
message = replacetext(message, "b", "ß")
message = replacetext(message, "o", "?")
message = replacetext(message, "p", "?")
message = replacetext(message, "l", "?")
message = replacetext(message, "s", "?")
message = replacetext(message, "u", "?")
message = replacetext(message, "b", "?")
return message
+13 -18
View File
@@ -6,11 +6,11 @@
heat_protection = CHEST|GROIN
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
strip_delay = 60
put_on_delay = 60
put_on_delay = 40
/obj/item/clothing/suit/armor/vest
name = "armor"
desc = "An armored vest that protects against some damage."
desc = "An armored vest that protects against most types of damage."
icon_state = "armor"
item_state = "armor"
blood_overlay_type = "armor"
@@ -27,7 +27,6 @@
cold_protection = CHEST|GROIN|LEGS|ARMS
heat_protection = CHEST|GROIN|LEGS|ARMS
strip_delay = 80
put_on_delay = 40
/obj/item/clothing/suit/armor/hos/trenchcoat
name = "armored trenchoat"
@@ -36,7 +35,6 @@
item_state = "hostrench"
flags_inv = 0
strip_delay = 80
put_on_delay = 40
/obj/item/clothing/suit/armor/vest/warden
name = "warden's jacket"
@@ -46,6 +44,7 @@
body_parts_covered = CHEST|GROIN|ARMS
cold_protection = CHEST|GROIN|ARMS|HANDS
heat_protection = CHEST|GROIN|ARMS|HANDS
strip_delay = 70
/obj/item/clothing/suit/armor/vest/capcarapace
name = "captain's carapace"
@@ -61,36 +60,33 @@
desc = "A suit of armor with heavy padding to protect against melee attacks. Looks like it might impair movement."
icon_state = "riot"
item_state = "swat_suit"
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
slowdown = 1
armor = list(melee = 80, bullet = 10, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0)
flags_inv = HIDEJUMPSUIT
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
armor = list(melee = 80, bullet = 10, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0)
flags_inv = HIDEJUMPSUIT
strip_delay = 80
put_on_delay = 80
put_on_delay = 60
/obj/item/clothing/suit/armor/bulletproof
name = "bulletproof vest"
desc = "A vest that excels in protecting the wearer against high-velocity solid projectiles."
name = "tactical armor"
desc = "A kevlar vest that excels in protecting the wearer against traditional projectile weaponry and explosives."
icon_state = "bulletproof"
item_state = "armor"
blood_overlay_type = "armor"
armor = list(melee = 10, bullet = 80, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0)
strip_delay = 40
put_on_delay = 40
armor = list(melee = 25, bullet = 60, laser = 25, energy = 10, bomb = 40, bio = 0, rad = 0)
strip_delay = 70
put_on_delay = 50
/obj/item/clothing/suit/armor/laserproof
name = "ablative armor vest"
desc = "A vest that excels in protecting the wearer against energy projectiles."
desc = "A vest that excels in protecting the wearer against energy projectiles, as well as occasionally reflecting them."
icon_state = "armor_reflec"
item_state = "armor_reflec"
blood_overlay_type = "armor"
armor = list(melee = 10, bullet = 10, laser = 80, energy = 50, bomb = 0, bio = 0, rad = 0)
reflect_chance = 40
strip_delay = 40
put_on_delay = 40
/obj/item/clothing/suit/armor/laserproof/IsReflect(var/def_zone)
var/hit_reflect_chance = reflect_chance
@@ -99,7 +95,6 @@
if (prob(hit_reflect_chance))
return 1
/obj/item/clothing/suit/armor/vest/det_suit
name = "armor"
desc = "An armored vest with a detective's badge on it."
+12 -1
View File
@@ -38,6 +38,11 @@
icon_state = "magus"
item_state = "magus"
/obj/item/clothing/head/wizard/santa
name = "Santa's hat"
desc = "Ho ho ho. Merrry X-mas!"
icon_state = "santahat"
flags = BLOCKHAIR
/obj/item/clothing/suit/wizrobe
name = "wizard robe"
@@ -86,6 +91,12 @@
item_state = "magusred"
/obj/item/clothing/suit/wizrobe/santa
name = "Santa's suit"
desc = "Festive!"
icon_state = "santa"
item_state = "santa"
/obj/item/clothing/suit/wizrobe/fake
name = "wizard robe"
desc = "A rather dull blue robe meant to mimick real wizard robes."
@@ -113,4 +124,4 @@
gas_transfer_coefficient = 1
permeability_coefficient = 1
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
unacidable = 0
unacidable = 0
+27 -16
View File
@@ -8,23 +8,30 @@
/*
* Security
*/
/obj/item/clothing/under/rank/security
name = "security jumpsuit"
desc = "A security jumpsuit for officers complete with nanotrasen waistbuckle."
icon_state = "security"
item_state = "r_suit"
item_color = "security"
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
strip_delay = 50
/obj/item/clothing/under/rank/warden
desc = "It's made of a slightly sturdier material than standard jumpsuits, to allow for more robust protection. It has the word \"Warden\" written on the shoulders."
name = "warden's jumpsuit"
icon_state = "warden"
desc = "A security jumpsuit suit with decorative silver pips and 'warden' written on the shoulders."
icon_state = "wardenformal"
item_state = "r_suit"
item_color = "warden"
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
strip_delay = 50
/obj/item/clothing/under/rank/security
name = "security officer's jumpsuit"
desc = "It's made of a slightly sturdier material than standard jumpsuits, to allow for robust protection."
icon_state = "security"
item_state = "r_suit"
item_color = "secred"
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
strip_delay = 50
/obj/item/clothing/under/rank/warden/formal
name = "warden's formal suit"
desc = "A security formal suit with silver shoulder pips, a striped red tie, and tan slacks - the universal sign of bureaucracy.="
icon_state = "wardenformal"
item_color = "wardenformal"
/*
* Detective
@@ -38,26 +45,30 @@
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
strip_delay = 50
/obj/item/clothing/under/det/grey
/obj/item/clothing/under/rank/det/grey
name = "noir suit"
desc = "A hard-boiled private investigator's grey suit, complete with tie clip."
icon_state = "greydet"
item_state = "greydet"
item_color = "greydet"
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
/*
* Head of Security
*/
/obj/item/clothing/under/rank/head_of_security
desc = "It's a jumpsuit worn by those few with the dedication to achieve the position of \"Head of Security\". It has additional armor to protect the wearer."
name = "head of security's jumpsuit"
name = "head of security's suit"
desc = "The jumpsuit worn by those few with the dedication to achieve the position of Head of Security."
icon_state = "hos"
item_state = "r_suit"
item_color = "hosred"
item_color = "hos"
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
strip_delay = 60
/obj/item/clothing/under/rank/head_of_security/formal
name = "head of security's formal suit"
desc = "The formal suit for a Head of Security with a superior sense of style."
icon_state = "hosformal"
item_color = "hosformal"
/*
* Navy uniforms
@@ -82,4 +93,4 @@
name = "warden's uniform"
icon_state = "wardenblueclothes"
item_state = "wardenblueclothes"
item_color = "wardenblueclothes"
item_color = "wardenblueclothes"
+16 -16
View File
@@ -334,28 +334,28 @@
fitted = 0
can_adjust = 0
/obj/item/clothing/under/captainformal
name = "captain's formal uniform"
desc = "A captain's formal-wear, for special occasions."
icon_state = "captain_formal"
/obj/item/clothing/under/captainparade
name = "captain's parade uniform"
desc = "A captain's luxury-wear, for special occasions."
icon_state = "captain_parade"
item_state = "by_suit"
item_color = "captain_formal"
item_color = "captain_parade"
can_adjust = 0
/obj/item/clothing/under/hosformalmale
name = "head of security's formal uniform"
desc = "A male head of security's formal-wear, for special occasions."
icon_state = "hos_formal_male"
/obj/item/clothing/under/hosparademale
name = "head of security's parade uniform"
desc = "A male head of security's luxury-wear, for special occasions."
icon_state = "hos_parade_male"
item_state = "r_suit"
item_color = "hos_formal_male"
item_color = "hos_parade_male"
can_adjust = 0
/obj/item/clothing/under/hosformalfem
name = "head of security's formal uniform"
desc = "A female head of security's formal-wear, for special occasions."
icon_state = "hos_formal_fem"
/obj/item/clothing/under/hosparadefem
name = "head of security's parade uniform"
desc = "A female head of security's luxury-wear, for special occasions."
icon_state = "hos_parade_fem"
item_state = "r_suit"
item_color = "hos_formal_fem"
item_color = "hos_parade_fem"
fitted = 0
can_adjust = 0
@@ -374,4 +374,4 @@
item_state = "wcoat"
item_color = "black_tango"
fitted = 0
can_adjust = 0
can_adjust = 0
+83
View File
@@ -0,0 +1,83 @@
/obj/item/clothing/under/pants
gender = PLURAL
body_parts_covered = GROIN|LEGS
fitted = 0
can_adjust = 0
/obj/item/clothing/under/pants/classicjeans
name = "classic jeans"
desc = "You feel cooler already."
icon_state = "jeansclassic"
item_color = "jeansclassic"
/obj/item/clothing/under/pants/mustangjeans
name = "Must Hang jeans"
desc = "Made in the finest space jeans factory this side of Alpha Centauri."
icon_state = "jeansmustang"
item_color = "jeansmustang"
/obj/item/clothing/under/pants/blackjeans
name = "black jeans"
desc = "Only for those who can pull it off."
icon_state = "jeansblack"
item_color = "jeansblack"
/obj/item/clothing/under/pants/youngfolksjeans
name = "Young Folks jeans"
desc = "For those tired of boring old jeans. Relive the passion of your youth!"
icon_state = "jeansyoungfolks"
item_color = "jeansyoungfolks"
/obj/item/clothing/under/pants/white
name = "white pants"
desc = "Plain white pants. Boring."
icon_state = "whitepants"
item_color = "whitepants"
/obj/item/clothing/under/pants/red
name = "red pants"
desc = "Bright red pants. Overflowing with personality."
icon_state = "redpants"
item_color = "redpants"
/obj/item/clothing/under/pants/black
name = "black pants"
desc = "These pants are dark, like your soul."
icon_state = "blackpants"
item_color = "blackpants"
/obj/item/clothing/under/pants/tan
name = "tan pants"
desc = "Some tan pants. You look like a white collar worker with these on."
icon_state = "tanpants"
item_color = "tanpants"
/obj/item/clothing/under/pants/blue
name = "blue pants"
desc = "Stylish blue pants. These go well with a lot of clothes."
icon_state = "bluepants"
item_color = "bluepants"
/obj/item/clothing/under/pants/track
name = "track pants"
desc = "A pair of track pants, for the athletic."
icon_state = "trackpants"
item_color = "trackpants"
/obj/item/clothing/under/pants/jeans
name = "jeans"
desc = "A nondescript pair of tough blue jeans."
icon_state = "jeans"
item_color = "jeans"
/obj/item/clothing/under/pants/khaki
name = "khaki pants"
desc = "A pair of dust beige khaki pants."
icon_state = "khaki"
item_color = "khaki"
/obj/item/clothing/under/pants/camo
name = "camo pants"
desc = "A pair of woodland camouflage pants. Probably not the best choice for a space station."
icon_state = "camopants"
item_color = "camopants"
+14 -14
View File
@@ -154,8 +154,8 @@
/obj/item/clothing/tie/armband
name = "red armband"
desc = "An fancy red armband!"
icon_state = "red"
item_color = "red"
icon_state = "redband"
item_color = "redband"
/obj/item/clothing/tie/armband/deputy
name = "security deputy armband"
@@ -164,35 +164,35 @@
/obj/item/clothing/tie/armband/cargo
name = "cargo bay guard armband"
desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is brown."
icon_state = "cargo"
item_color = "cargo"
icon_state = "cargoband"
item_color = "cargoband"
/obj/item/clothing/tie/armband/engine
name = "engineering guard armband"
desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is orange with a reflective strip!"
icon_state = "engie"
item_color = "engie"
icon_state = "engieband"
item_color = "engieband"
/obj/item/clothing/tie/armband/science
name = "science guard armband"
desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is purple."
icon_state = "rnd"
item_color = "rnd"
icon_state = "rndband"
item_color = "rndband"
/obj/item/clothing/tie/armband/hydro
name = "hydroponics guard armband"
desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is green and blue."
icon_state = "hydro"
item_color = "hydro"
icon_state = "hydroband"
item_color = "hydroband"
/obj/item/clothing/tie/armband/med
name = "medical guard armband"
desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is white."
icon_state = "med"
item_color = "med"
icon_state = "medband"
item_color = "medband"
/obj/item/clothing/tie/armband/medblue
name = "medical guard armband"
desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is white and blue."
icon_state = "medblue"
item_color = "medblue"
icon_state = "medblueband"
item_color = "medblueband"
+10
View File
@@ -117,6 +117,16 @@
tools = list(/obj/item/weapon/screwdriver)
time = 5
/datum/table_recipe/frag12
name = "FRAG-12 Shell"
result = /obj/item/ammo_casing/shotgun/frag12
reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1,
/datum/reagent/glycerol = 5,
/datum/reagent/toxin/acid = 5,
/datum/reagent/toxin/acid/polyacid = 5,)
tools = list(/obj/item/weapon/screwdriver)
time = 5
/datum/table_recipe/ishotgun
name = "Improvised Shotgun"
result = /obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised
+72 -1
View File
@@ -77,4 +77,75 @@
icon_state = "xmashat"
desc = "A crappy paper hat that you are REQUIRED to wear."
flags_inv = 0
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
/datum/round_event_control/santa
name = "Santa is coming to town! (Christmas)"
holidayID = "Xmas"
typepath = /datum/round_event/santa
weight = 150
max_occurrences = 1
earliest_start = 20000
/datum/round_event/santa
var/mob/living/carbon/human/santa //who is our santa?
/datum/round_event/santa/announce()
priority_announce("Santa is coming to town!", "Unknown Transmission")
/datum/round_event/santa/start()
for(var/mob/M in dead_mob_list)
spawn(0)
var/response = alert(M, "Santa is coming to town! Do you want to be santa?", "Ho ho ho!", "Yes", "No")
if(response == "Yes" && M && M.client && M.stat == DEAD && !santa)
santa = new /mob/living/carbon/human(pick(blobstart))
M.mind.transfer_to(santa)
santa.key = M.key
santa.real_name = "Santa Claus"
santa.name = "Santa Claus"
santa.mind.name = "Santa Claus"
santa.mind.assigned_role = "Santa"
santa.mind.special_role = "Santa"
santa.hair_style = "Long Hair"
santa.facial_hair_style = "Full Beard"
santa.hair_color = "FFF"
santa.facial_hair_color = "FFF"
santa.equip_to_slot_or_del(new /obj/item/clothing/under/color/red, slot_w_uniform)
santa.equip_to_slot_or_del(new /obj/item/clothing/suit/space/santa, slot_wear_suit)
santa.equip_to_slot_or_del(new /obj/item/clothing/head/santa, slot_head)
santa.equip_to_slot_or_del(new /obj/item/clothing/mask/breath, slot_wear_mask)
santa.equip_to_slot_or_del(new /obj/item/clothing/gloves/red, slot_gloves)
santa.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/red, slot_shoes)
santa.equip_to_slot_or_del(new /obj/item/weapon/tank/emergency_oxygen/double, slot_belt)
santa.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain, slot_ears)
santa.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/santabag, slot_back)
santa.equip_to_slot_or_del(new /obj/item/device/flashlight, slot_r_store) //most blob spawn locations are really dark.
var/obj/item/weapon/card/id/gold/santacard = new(santa)
santacard.update_label("Santa Claus", "Santa")
var/datum/job/captain/J = new/datum/job/captain
santacard.access = J.get_access()
santa.equip_to_slot_or_del(santacard, slot_wear_id)
santa.update_icons()
var/obj/item/weapon/storage/backpack/bag = santa.back
var/obj/item/weapon/a_gift/gift = new(santa)
while(bag.can_be_inserted(gift, 1))
bag.handle_item_insertion(gift, 1)
gift = new(santa)
var/datum/objective/santa_objective = new()
santa_objective.explanation_text = "Bring joy and presents to the station!"
santa_objective.completed = 1 //lets cut our santas some slack.
santa_objective.owner = santa.mind
santa.mind.objectives += santa_objective
santa.mind.spell_list += new /obj/effect/proc_holder/spell/aoe_turf/conjure/presents
var/obj/effect/proc_holder/spell/targeted/area_teleport/teleport/telespell = new(santa)
telespell.clothes_req = 0 //santa robes aren't actually magical.
santa.mind.spell_list += telespell //does the station have chimneys? WHO KNOWS!
M << "<span class='userdanger'>You are Santa! Your objective is to bring joy to the people on this station. You can conjure more presents using a spell, and there are several presents in your bag.</span>"
@@ -28,6 +28,10 @@
return 0
if(M == user)
if(src.reagents.has_reagent("sugar") && M.satiety < -150 && M.nutrition > NUTRITION_LEVEL_STARVING + 50 )
M << "<span class='notice'>You don't feel like drinking any more sugary drink at the moment.</span>"
return 0
M << "<span class='notice'>You swallow a gulp of [src].</span>"
if(reagents.total_volume)
reagents.reaction(M, INGEST)
@@ -191,6 +195,7 @@
/obj/item/weapon/reagent_containers/food/drinks/h_chocolate/New()
..()
reagents.add_reagent("hot_coco", 30)
reagents.add_reagent("sugar", 5)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
@@ -42,6 +42,9 @@
return 0
if(M == user)
if(src.reagents.has_reagent("sugar") && M.satiety < -150 && M.nutrition > NUTRITION_LEVEL_STARVING + 50 )
M << "<span class='notice'>You don't feel like drinking any more sugary food at the moment.</span>"
return 0
M << "<span class='notice'>You swallow some of contents of the [src].</span>"
if(reagents.total_volume)
reagents.reaction(M, INGEST)
+15 -7
View File
@@ -49,8 +49,15 @@
if(!canconsume(M, user))
return 0
var/fullness = M.nutrition + 10
for(var/datum/reagent/consumable/C in M.reagents.reagent_list) //we add the nutrition value of what we're currently digesting
fullness += C.nutriment_factor * C.volume / C.metabolization_rate
if(M == user) //If you're eating it yourself.
var/fullness = M.nutrition + (M.reagents.get_reagent_amount("nutriment") * 25)
if(src.reagents.has_reagent("sugar") && M.satiety < -150 && M.nutrition > NUTRITION_LEVEL_STARVING + 50 )
M << "<span class='notice'>You don't feel like eating any more sugary food at the moment.</span>"
return 0
if(wrapped)
M << "<span class='notice'>You can't eat wrapped food!</span>"
return 0
@@ -58,19 +65,18 @@
M << "<span class='notice'>You hungrily [eatverb] some of \the [src] and gobble it down!</span>"
else if(fullness > 50 && fullness < 150)
M << "<span class='notice'>You hungrily begin to [eatverb] \the [src].</span>"
else if(fullness > 150 && fullness < 350)
else if(fullness > 150 && fullness < 500)
M << "<span class='notice'>You [eatverb] \the [src].</span>"
else if(fullness > 350 && fullness < 550)
else if(fullness > 500 && fullness < 600)
M << "<span class='notice'>You unwillingly [eatverb] a bit of \the [src].</span>"
else if(fullness > (550 * (1 + M.overeatduration / 2000))) // The more you eat - the more you can eat
else if(fullness > (600 * (1 + M.overeatduration / 2000))) // The more you eat - the more you can eat
M << "<span class='notice'>You cannot force any more of \the [src] to go down your throat.</span>"
return 0
else
if(! (isslime(M) || isbrain(M)) ) //If you're feeding it to someone else.
var/fullness = M.nutrition + (M.reagents.get_reagent_amount("nutriment") * 25)
if(wrapped)
return 0
if(fullness <= (550 * (1 + M.overeatduration / 1000)))
if(fullness <= (600 * (1 + M.overeatduration / 1000)))
M.visible_message("<span class='danger'>[user] attempts to feed [M] [src].</span>", \
"<span class='userdanger'>[user] attempts to feed [M] [src].</span>")
else
@@ -78,7 +84,8 @@
"<span class='userdanger'>[user] cannot force anymore of [src] down [M]'s throat!</span>")
return 0
if(!do_mob(user, M)) return
if(!do_mob(user, M))
return
add_logs(user, M, "fed", object="[reagentlist(src)]")
M.visible_message("<span class='danger'>[user] forces [M] to eat [src].</span>", \
"<span class='userdanger'>[user] feeds [M] to eat [src].</span>")
@@ -253,6 +260,7 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesewheel/New()
..()
reagents.add_reagent("nutriment", 20)
reagents.add_reagent("vitamin", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge
@@ -9,6 +9,7 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/store/meatbread/New()
..()
reagents.add_reagent("nutriment", 30)
reagents.add_reagent("vitamin", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/meatbreadslice
@@ -28,6 +29,7 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/store/xenomeatbread/New()
..()
reagents.add_reagent("nutriment", 30)
reagents.add_reagent("vitamin", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice
@@ -48,6 +50,7 @@
..()
reagents.add_reagent("nutriment", 30)
reagents.add_reagent("toxin", 15)
reagents.add_reagent("vitamin", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/spidermeatbreadslice
@@ -91,6 +94,7 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/store/tofubread/New()
..()
reagents.add_reagent("nutriment", 30)
reagents.add_reagent("vitamin", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/tofubreadslice
@@ -130,6 +134,7 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/store/creamcheesebread/New()
..()
reagents.add_reagent("nutriment", 20)
reagents.add_reagent("vitamin", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/creamcheesebreadslice
@@ -149,4 +154,5 @@
reagents.add_reagent("nutriment", 6)
reagents.add_reagent("blackpepper", 1)
reagents.add_reagent("sodiumchloride", 1)
reagents.add_reagent("vitamin", 1)
bitesize = 3
@@ -6,6 +6,7 @@
/obj/item/weapon/reagent_containers/food/snacks/burger/New()
..()
reagents.add_reagent("nutriment", 6)
reagents.add_reagent("vitamin", 1)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/burger/human
@@ -27,6 +28,7 @@
/obj/item/weapon/reagent_containers/food/snacks/burger/fish/New()
..()
reagents.add_reagent("carpotoxin", 3)
reagents.add_reagent("vitamin", 3)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/burger/tofu
@@ -42,6 +44,7 @@
/obj/item/weapon/reagent_containers/food/snacks/burger/roburger/New()
..()
reagents.add_reagent("nanites", 2)
reagents.add_reagent("vitamin", 5)
/obj/item/weapon/reagent_containers/food/snacks/burger/roburgerbig
name = "roburger"
@@ -52,6 +55,7 @@
/obj/item/weapon/reagent_containers/food/snacks/burger/roburgerbig/New()
..()
reagents.add_reagent("nanites", 100)
reagents.add_reagent("vitamin", 20)
bitesize = 0.1
/obj/item/weapon/reagent_containers/food/snacks/burger/xeno
@@ -81,6 +85,7 @@
/obj/item/weapon/reagent_containers/food/snacks/burger/brain/New()
..()
reagents.add_reagent("alkysine", 6)
reagents.add_reagent("vitamin", 3)
/obj/item/weapon/reagent_containers/food/snacks/burger/ghost
name = "ghost burger"
@@ -176,10 +181,12 @@
/obj/item/weapon/reagent_containers/food/snacks/burger/jelly/slime/New()
..()
reagents.add_reagent("slimejelly", 5)
reagents.add_reagent("vitamin", 3)
/obj/item/weapon/reagent_containers/food/snacks/burger/jelly/cherry/New()
..()
reagents.add_reagent("cherryjelly", 5)
reagents.add_reagent("vitamin", 3)
/obj/item/weapon/reagent_containers/food/snacks/burger/superbite
name = "super bite burger"
+14 -4
View File
@@ -8,8 +8,9 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/store/carrotcake/New()
..()
reagents.add_reagent("nutriment", 25)
reagents.add_reagent("nutriment", 20)
reagents.add_reagent("imidazoline", 10)
reagents.add_reagent("vitamin", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/carrotcakeslice
@@ -28,8 +29,9 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/store/braincake/New()
..()
reagents.add_reagent("nutriment", 25)
reagents.add_reagent("nutriment", 20)
reagents.add_reagent("alkysine", 10)
reagents.add_reagent("vitamin", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/braincakeslice
@@ -48,7 +50,8 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/store/cheesecake/New()
..()
reagents.add_reagent("nutriment", 25)
reagents.add_reagent("nutriment", 20)
reagents.add_reagent("vitamin", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/cheesecakeslice
@@ -68,6 +71,7 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/store/plaincake/New()
..()
reagents.add_reagent("nutriment", 20)
reagents.add_reagent("vitamin", 5)
/obj/item/weapon/reagent_containers/food/snacks/plaincakeslice
name = "vanilla cake slice"
@@ -86,6 +90,7 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/store/orangecake/New()
..()
reagents.add_reagent("nutriment", 20)
reagents.add_reagent("vitamin", 5)
/obj/item/weapon/reagent_containers/food/snacks/orangecakeslice
name = "orange cake slice"
@@ -104,6 +109,7 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/store/limecake/New()
..()
reagents.add_reagent("nutriment", 20)
reagents.add_reagent("vitamin", 5)
/obj/item/weapon/reagent_containers/food/snacks/limecakeslice
name = "lime cake slice"
@@ -122,6 +128,7 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/store/lemoncake/New()
..()
reagents.add_reagent("nutriment", 20)
reagents.add_reagent("vitamin", 5)
/obj/item/weapon/reagent_containers/food/snacks/lemoncakeslice
name = "lemon cake slice"
@@ -140,6 +147,7 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/store/chocolatecake/New()
..()
reagents.add_reagent("nutriment", 20)
reagents.add_reagent("vitamin", 5)
/obj/item/weapon/reagent_containers/food/snacks/chocolatecakeslice
name = "chocolate cake slice"
@@ -159,6 +167,7 @@
..()
reagents.add_reagent("nutriment", 20)
reagents.add_reagent("sprinkles", 10)
reagents.add_reagent("vitamin", 5)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/birthdaycakeslice
@@ -177,7 +186,8 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/store/applecake/New()
..()
reagents.add_reagent("nutriment", 15)
reagents.add_reagent("nutriment", 20)
reagents.add_reagent("vitamin", 5)
/obj/item/weapon/reagent_containers/food/snacks/applecakeslice
name = "apple cake slice"
@@ -21,6 +21,7 @@
/obj/item/weapon/reagent_containers/food/snacks/egg/New()
..()
reagents.add_reagent("nutriment", 1)
reagents.add_reagent("vitamin", 1)
/obj/item/weapon/reagent_containers/food/snacks/egg/throw_impact(atom/hit_atom)
..()
@@ -120,6 +121,8 @@
reagents.remove_reagent("nutriment", 1)
if(reagents.total_volume <= 0)
qdel(src)
return
..()
/obj/item/weapon/reagent_containers/food/snacks/benedict
name = "eggs benedict"
@@ -129,4 +132,5 @@
/obj/item/weapon/reagent_containers/food/snacks/benedict/New()
..()
reagents.add_reagent("nutriment", 6)
reagents.add_reagent("vitamin", 4)
bitesize = 3
+10 -5
View File
@@ -12,7 +12,6 @@
/obj/item/weapon/reagent_containers/food/snacks/cubancarp/New()
..()
reagents.add_reagent("nutriment", 6)
reagents.add_reagent("carpotoxin", 3)
reagents.add_reagent("capsaicin", 3)
bitesize = 3
@@ -25,7 +24,8 @@
..()
eatverb = pick("bite","chew","choke down","gnaw","swallow","chomp")
reagents.add_reagent("nutriment", 3)
reagents.add_reagent("carpotoxin", 3)
reagents.add_reagent("carpotoxin", 2)
reagents.add_reagent("vitamin", 2)
bitesize = 6
/obj/item/weapon/reagent_containers/food/snacks/carpmeat/imitation
@@ -40,7 +40,6 @@
/obj/item/weapon/reagent_containers/food/snacks/fishfingers/New()
..()
reagents.add_reagent("nutriment", 4)
reagents.add_reagent("carpotoxin", 3)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/fishandchips
@@ -51,7 +50,6 @@
/obj/item/weapon/reagent_containers/food/snacks/fishandchips/New()
..()
reagents.add_reagent("nutriment", 6)
reagents.add_reagent("carpotoxin", 3)
bitesize = 3
////////////////////////////////////////////MEATS AND ALIKE////////////////////////////////////////////
@@ -86,6 +84,7 @@
..()
reagents.add_reagent("nutriment", 12)
reagents.add_reagent("hyperzine", 5)
reagents.add_reagent("vitamin", 2)
src.bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/xenomeat
@@ -96,6 +95,7 @@
/obj/item/weapon/reagent_containers/food/snacks/xenomeat/New()
..()
reagents.add_reagent("nutriment", 3)
reagents.add_reagent("vitamin", 1)
src.bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/spidermeat
@@ -107,6 +107,7 @@
..()
reagents.add_reagent("nutriment", 3)
reagents.add_reagent("toxin", 3)
reagents.add_reagent("vitamin", 1)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/spiderleg
@@ -139,6 +140,7 @@
/obj/item/weapon/reagent_containers/food/snacks/faggot/New()
..()
reagents.add_reagent("nutriment", 3)
reagents.add_reagent("vitamin", 1)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/sausage
@@ -150,6 +152,7 @@
..()
eatverb = pick("bite","chew","nibble","deep throat","gobble","chomp")
reagents.add_reagent("nutriment", 6)
reagents.add_reagent("vitamin", 1)
bitesize = 2
@@ -162,6 +165,7 @@
/obj/item/weapon/reagent_containers/food/snacks/wingfangchu/New()
..()
reagents.add_reagent("nutriment", 6)
reagents.add_reagent("vitamin", 2)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/human/kebab
@@ -205,9 +209,10 @@
/obj/item/weapon/reagent_containers/food/snacks/meatsteak/New()
..()
reagents.add_reagent("nutriment", 4)
reagents.add_reagent("nutriment", 6)
reagents.add_reagent("sodiumchloride", 1)
reagents.add_reagent("blackpepper", 1)
reagents.add_reagent("vitamin", 1)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/monkeycube
@@ -24,6 +24,7 @@
reagents.add_reagent("nutriment", 3)
reagents.add_reagent("sugar", 2)
reagents.add_reagent("coco", 2)
reagents.add_reagent("vitamin", 1)
/obj/item/weapon/reagent_containers/food/snacks/chocolatebar/attack_self(mob/user)
if(wrapped)
@@ -51,6 +52,7 @@
/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice/New()
..()
reagents.add_reagent("nutriment", 3)
reagents.add_reagent("vitamin", 1)
src.bitesize = 3
@@ -165,6 +167,7 @@
..()
reagents.add_reagent("nutriment", 3)
reagents.add_reagent("imidazoline", 3)
reagents.add_reagent("vitamin", 2)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/candiedapple
@@ -175,6 +178,7 @@
/obj/item/weapon/reagent_containers/food/snacks/candiedapple/New()
..()
reagents.add_reagent("nutriment", 3)
reagents.add_reagent("sugar", 3)
bitesize = 3
/*
+20 -7
View File
@@ -14,6 +14,7 @@
..()
reagents.add_reagent("nutriment", 3)
reagents.add_reagent("sprinkles", 1)
reagents.add_reagent("sugar", 2)
src.bitesize = 3
if(prob(30))
src.icon_state = "donut2"
@@ -28,6 +29,7 @@
..()
reagents.add_reagent("nutriment", 2)
reagents.add_reagent("sprinkles", 1)
reagents.add_reagent("sugar", 1)
bitesize = 10
switch(rand(1,10))
if(1)
@@ -67,6 +69,7 @@
reagents.add_reagent("nutriment", 3)
reagents.add_reagent("sprinkles", 1)
reagents.add_reagent("berryjuice", 5)
reagents.add_reagent("vitamin", 1)
if(prob(30))
icon_state = "jdonut2"
name = "Frosted Jelly Donut"
@@ -83,6 +86,7 @@
reagents.add_reagent("nutriment", 3)
reagents.add_reagent("sprinkles", 1)
reagents.add_reagent("slimejelly", 5)
reagents.add_reagent("vitamin", 1)
bitesize = 5
if(prob(30))
icon_state = "jdonut2"
@@ -100,6 +104,7 @@
reagents.add_reagent("nutriment", 3)
reagents.add_reagent("sprinkles", 1)
reagents.add_reagent("cherryjelly", 5)
reagents.add_reagent("vitamin", 1)
if(prob(30))
icon_state = "jdonut2"
name = "Frosted Jelly Donut"
@@ -150,6 +155,7 @@
/obj/item/weapon/reagent_containers/food/snacks/waffles/New()
..()
reagents.add_reagent("nutriment", 8)
reagents.add_reagent("vitamin", 1)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/soylentgreen
@@ -161,6 +167,7 @@
/obj/item/weapon/reagent_containers/food/snacks/soylentgreen/New()
..()
reagents.add_reagent("nutriment", 10)
reagents.add_reagent("vitamin", 1)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/soylenviridians
@@ -172,6 +179,7 @@
/obj/item/weapon/reagent_containers/food/snacks/soylenviridians/New()
..()
reagents.add_reagent("nutriment", 10)
reagents.add_reagent("vitamin", 1)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/rofflewaffles
@@ -184,6 +192,7 @@
..()
reagents.add_reagent("nutriment", 8)
reagents.add_reagent("mushroomhallucinogen", 8)
reagents.add_reagent("vitamin", 2)
bitesize = 4
////////////////////////////////////////////OTHER////////////////////////////////////////////
@@ -207,12 +216,14 @@
/obj/item/weapon/reagent_containers/food/snacks/donkpocket/New()
..()
reagents.add_reagent("nutriment", 4)
reagents.add_reagent("sugar", 5)
/obj/item/weapon/reagent_containers/food/snacks/donkpocket/proc/cooltime() //Not working, derp?
if(warm)
spawn(4200) //ew
warm = 0
reagents.del_reagent("tricordrazine")
reagents.add_reagent("sugar", 5)
name = initial(name)
return
@@ -248,12 +259,11 @@
if(prob(10))
name = "exceptional plump helmet biscuit"
desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump helmet biscuit!"
reagents.add_reagent("nutriment", 8)
reagents.add_reagent("nutriment", 3)
reagents.add_reagent("tricordrazine", 5)
bitesize = 2
else
reagents.add_reagent("nutriment", 5)
bitesize = 2
reagents.add_reagent("nutriment", 5)
reagents.add_reagent("vitamin", 1)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/appletart
name = "golden apple streusel tart"
@@ -265,6 +275,7 @@
..()
reagents.add_reagent("nutriment", 8)
reagents.add_reagent("gold", 5)
reagents.add_reagent("vitamin", 4)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/cracker
@@ -285,6 +296,7 @@
..()
reagents.add_reagent("nutriment", 6)
reagents.add_reagent("ketchup", 3)
reagents.add_reagent("vitamin", 3)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/meatbun
@@ -295,6 +307,7 @@
/obj/item/weapon/reagent_containers/food/snacks/meatbun/New()
..()
reagents.add_reagent("nutriment", 6)
reagents.add_reagent("vitamin", 2)
bitesize = 6
/obj/item/weapon/reagent_containers/food/snacks/sugarcookie
@@ -304,6 +317,6 @@
/obj/item/weapon/reagent_containers/food/snacks/sugarcookie/New()
..()
reagents.add_reagent("nutriment", 2)
reagents.add_reagent("sugar", 5)
reagents.add_reagent("nutriment", 3)
reagents.add_reagent("sugar", 3)
bitesize = 2
+14 -6
View File
@@ -9,6 +9,7 @@
..()
reagents.add_reagent("nutriment", 4)
reagents.add_reagent("banana",5)
reagents.add_reagent("vitamin", 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/pie/throw_impact(atom/hit_atom)
@@ -27,6 +28,7 @@
..()
reagents.add_reagent("nutriment", 4)
reagents.add_reagent("berryjuice", 5)
reagents.add_reagent("vitamin", 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/meatpie
@@ -38,6 +40,7 @@
/obj/item/weapon/reagent_containers/food/snacks/meatpie/New()
..()
reagents.add_reagent("nutriment", 10)
reagents.add_reagent("vitamin", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/tofupie
@@ -49,6 +52,7 @@
/obj/item/weapon/reagent_containers/food/snacks/tofupie/New()
..()
reagents.add_reagent("nutriment", 10)
reagents.add_reagent("vitamin", 2)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/amanita_pie
@@ -61,7 +65,8 @@
reagents.add_reagent("nutriment", 5)
reagents.add_reagent("amatoxin", 3)
reagents.add_reagent("mushroomhallucinogen", 1)
bitesize = 3
reagents.add_reagent("vitamin", 4)
bitesize = 4
/obj/item/weapon/reagent_containers/food/snacks/plump_pie
name = "plump pie"
@@ -73,12 +78,11 @@
if(prob(10))
name = "exceptional plump pie"
desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump pie!"
reagents.add_reagent("nutriment", 8)
reagents.add_reagent("tricordrazine", 5)
bitesize = 2
else
reagents.add_reagent("nutriment", 8)
bitesize = 2
reagents.add_reagent("nutriment", 8)
reagents.add_reagent("vitamin", 4)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/xemeatpie
name = "xeno-pie"
@@ -89,6 +93,7 @@
/obj/item/weapon/reagent_containers/food/snacks/xemeatpie/New()
..()
reagents.add_reagent("nutriment", 10)
reagents.add_reagent("vitamin", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/applepie
@@ -99,6 +104,7 @@
/obj/item/weapon/reagent_containers/food/snacks/applepie/New()
..()
reagents.add_reagent("nutriment", 4)
reagents.add_reagent("vitamin", 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/cherrypie
@@ -109,6 +115,7 @@
/obj/item/weapon/reagent_containers/food/snacks/cherrypie/New()
..()
reagents.add_reagent("nutriment", 4)
reagents.add_reagent("vitamin", 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/sliceable/pumpkinpie
@@ -121,6 +128,7 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/pumpkinpie/New()
..()
reagents.add_reagent("nutriment", 15)
reagents.add_reagent("vitamin", 3)
/obj/item/weapon/reagent_containers/food/snacks/pumpkinpieslice
name = "pumpkin pie slice"
+28 -4
View File
@@ -13,8 +13,9 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/margherita/New()
..()
reagents.add_reagent("nutriment", 40)
reagents.add_reagent("nutriment", 30)
reagents.add_reagent("tomatojuice", 6)
reagents.add_reagent("vitamin", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/margheritaslice
@@ -32,8 +33,9 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatpizza/New()
..()
reagents.add_reagent("nutriment", 50)
reagents.add_reagent("nutriment", 40)
reagents.add_reagent("tomatojuice", 6)
reagents.add_reagent("vitamin", 8)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/meatpizzaslice
@@ -51,7 +53,8 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/mushroompizza/New()
..()
reagents.add_reagent("nutriment", 35)
reagents.add_reagent("nutriment", 30)
reagents.add_reagent("vitamin", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/mushroompizzaslice
@@ -69,9 +72,10 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegetablepizza/New()
..()
reagents.add_reagent("nutriment", 30)
reagents.add_reagent("nutriment", 25)
reagents.add_reagent("tomatojuice", 6)
reagents.add_reagent("imidazoline", 12)
reagents.add_reagent("vitamin", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/vegetablepizzaslice
@@ -235,3 +239,23 @@
update_icon()
return
..()
/obj/item/pizzabox/margherita/New()
pizza = new /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/margherita(src)
boxtag = "Margherita Deluxe"
update_icon()
/obj/item/pizzabox/vegetable/New()
pizza = new /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegetablepizza(src)
boxtag = "Gourmet Vegatable"
update_icon()
/obj/item/pizzabox/mushroom/New()
pizza = new /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/mushroompizza(src)
boxtag = "Mushroom Special"
update_icon()
/obj/item/pizzabox/meat/New()
pizza = new /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatpizza(src)
boxtag = "Meatlover's Supreme"
update_icon()
@@ -12,6 +12,7 @@
eatverb = pick("crunch","devour","nibble","gnaw","gobble","chomp")
reagents.add_reagent("nutriment", 8)
reagents.add_reagent("tricordrazine", 8)
reagents.add_reagent("vitamin", 6)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/herbsalad
@@ -23,6 +24,7 @@
/obj/item/weapon/reagent_containers/food/snacks/herbsalad/New()
..()
reagents.add_reagent("nutriment", 8)
reagents.add_reagent("vitamin", 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/validsalad
@@ -35,4 +37,5 @@
..()
reagents.add_reagent("nutriment", 8)
reagents.add_reagent("doctorsdelight", 5)
reagents.add_reagent("vitamin", 2)
bitesize = 3
@@ -8,6 +8,7 @@
/obj/item/weapon/reagent_containers/food/snacks/sandwich/New()
..()
reagents.add_reagent("nutriment", 6)
reagents.add_reagent("vitamin", 1)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/toastedsandwich
@@ -31,6 +32,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grilledcheese/New()
..()
reagents.add_reagent("nutriment", 7)
reagents.add_reagent("vitamin", 1)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/jellysandwich
@@ -47,10 +49,12 @@
/obj/item/weapon/reagent_containers/food/snacks/jellysandwich/slime/New()
..()
reagents.add_reagent("slimejelly", 5)
reagents.add_reagent("vitamin", 2)
/obj/item/weapon/reagent_containers/food/snacks/jellysandwich/cherry/New()
..()
reagents.add_reagent("cherryjelly", 5)
reagents.add_reagent("vitamin", 2)
/obj/item/weapon/reagent_containers/food/snacks/icecreamsandwich
name = "icecream sandwich"
@@ -72,6 +76,7 @@
/obj/item/weapon/reagent_containers/food/snacks/notasandwich/New()
..()
reagents.add_reagent("nutriment", 6)
reagents.add_reagent("vitamin", 6)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast
@@ -88,10 +93,12 @@
/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/cherry/New()
..()
reagents.add_reagent("cherryjelly", 5)
reagents.add_reagent("vitamin", 2)
/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/slime/New()
..()
reagents.add_reagent("slimejelly", 5)
reagents.add_reagent("vitamin", 2)
/obj/item/weapon/reagent_containers/food/snacks/twobread
name = "two bread"
@@ -101,4 +108,5 @@
/obj/item/weapon/reagent_containers/food/snacks/twobread/New()
..()
reagents.add_reagent("nutriment", 2)
reagents.add_reagent("vitamin", 2)
bitesize = 3
+19 -5
View File
@@ -10,6 +10,7 @@
eatverb = pick("slurp","sip","suck","inhale","drink")
reagents.add_reagent("nutriment", 8)
reagents.add_reagent("water", 5)
reagents.add_reagent("vitamin", 4)
bitesize = 5
/obj/item/weapon/reagent_containers/food/snacks/slimesoup
@@ -22,6 +23,7 @@
eatverb = pick("slurp","sip","suck","inhale","drink")
reagents.add_reagent("slimejelly", 5)
reagents.add_reagent("water", 10)
reagents.add_reagent("vitamin", 5)
bitesize = 5
/obj/item/weapon/reagent_containers/food/snacks/bloodsoup
@@ -35,6 +37,7 @@
reagents.add_reagent("nutriment", 2)
reagents.add_reagent("blood", 10)
reagents.add_reagent("water", 5)
reagents.add_reagent("vitamin", 5)
bitesize = 5
/obj/item/weapon/reagent_containers/food/snacks/clownstears
@@ -48,6 +51,7 @@
reagents.add_reagent("nutriment", 4)
reagents.add_reagent("banana", 5)
reagents.add_reagent("water", 10)
reagents.add_reagent("vitamin", 8)
bitesize = 5
/obj/item/weapon/reagent_containers/food/snacks/vegetablesoup
@@ -61,6 +65,7 @@
eatverb = pick("slurp","sip","suck","inhale","drink")
reagents.add_reagent("nutriment", 8)
reagents.add_reagent("water", 5)
reagents.add_reagent("vitamin", 5)
bitesize = 5
/obj/item/weapon/reagent_containers/food/snacks/nettlesoup
@@ -75,6 +80,7 @@
reagents.add_reagent("nutriment", 8)
reagents.add_reagent("water", 5)
reagents.add_reagent("tricordrazine", 5)
reagents.add_reagent("vitamin", 5)
bitesize = 5
/obj/item/weapon/reagent_containers/food/snacks/mysterysoup
@@ -137,6 +143,7 @@
if(prob(25))
desc = "A wish come true!"
reagents.add_reagent("nutriment", 8)
reagents.add_reagent("vitamin", 1)
/obj/item/weapon/reagent_containers/food/snacks/hotchili
name = "hot chili"
@@ -147,9 +154,10 @@
/obj/item/weapon/reagent_containers/food/snacks/hotchili/New()
..()
eatverb = pick("slurp","sip","suck","inhale","drink")
reagents.add_reagent("nutriment", 6)
reagents.add_reagent("capsaicin", 3)
reagents.add_reagent("nutriment", 5)
reagents.add_reagent("capsaicin", 1)
reagents.add_reagent("tomatojuice", 2)
reagents.add_reagent("vitamin", 2)
bitesize = 5
@@ -162,9 +170,10 @@
/obj/item/weapon/reagent_containers/food/snacks/coldchili/New()
..()
eatverb = pick("slurp","sip","suck","inhale","drink")
reagents.add_reagent("nutriment", 6)
reagents.add_reagent("frostoil", 3)
reagents.add_reagent("nutriment", 5)
reagents.add_reagent("frostoil", 1)
reagents.add_reagent("tomatojuice", 2)
reagents.add_reagent("vitamin", 2)
bitesize = 5
/obj/item/weapon/reagent_containers/food/snacks/monkeysdelight
@@ -179,7 +188,8 @@
reagents.add_reagent("banana", 5)
reagents.add_reagent("blackpepper", 1)
reagents.add_reagent("sodiumchloride", 1)
bitesize = 6
reagents.add_reagent("vitamin", 5)
bitesize = 4
/obj/item/weapon/reagent_containers/food/snacks/tomatosoup
name = "tomato soup"
@@ -192,6 +202,7 @@
eatverb = pick("slurp","sip","suck","inhale","drink")
reagents.add_reagent("nutriment", 5)
reagents.add_reagent("tomatojuice", 10)
reagents.add_reagent("vitamin", 3)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/milosoup
@@ -205,6 +216,7 @@
eatverb = pick("slurp","sip","suck","inhale","drink")
reagents.add_reagent("nutriment", 8)
reagents.add_reagent("water", 5)
reagents.add_reagent("vitamin", 3)
bitesize = 4
/obj/item/weapon/reagent_containers/food/snacks/mushroomsoup
@@ -217,6 +229,7 @@
..()
eatverb = pick("slurp","sip","suck","inhale","drink")
reagents.add_reagent("nutriment", 8)
reagents.add_reagent("vitamin", 4)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/beetsoup
@@ -230,4 +243,5 @@
eatverb = pick("slurp","sip","suck","inhale","drink")
name = pick("borsch","bortsch","borstch","borsh","borshch","borscht")
reagents.add_reagent("nutriment", 8)
reagents.add_reagent("vitamin", 4)
bitesize = 2
@@ -7,6 +7,7 @@
/obj/item/weapon/reagent_containers/food/snacks/spaghetti/New()
..()
reagents.add_reagent("nutriment", 1)
reagents.add_reagent("vitamin", 1)
bitesize = 1
/obj/item/weapon/reagent_containers/food/snacks/boiledspaghetti
@@ -18,6 +19,7 @@
/obj/item/weapon/reagent_containers/food/snacks/boiledspaghetti/New()
..()
reagents.add_reagent("nutriment", 2)
reagents.add_reagent("vitamin", 1)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/pastatomato
@@ -30,6 +32,7 @@
..()
reagents.add_reagent("nutriment", 6)
reagents.add_reagent("tomatojuice", 10)
reagents.add_reagent("vitamin", 4)
bitesize = 4
/obj/item/weapon/reagent_containers/food/snacks/copypasta
@@ -42,7 +45,8 @@
..()
reagents.add_reagent("nutriment", 12)
reagents.add_reagent("tomatojuice", 20)
bitesize = 1
reagents.add_reagent("vitamin", 8)
bitesize = 4
/obj/item/weapon/reagent_containers/food/snacks/meatballspaghetti
name = "spaghetti and meatballs"
@@ -53,7 +57,8 @@
/obj/item/weapon/reagent_containers/food/snacks/meatballspaghetti/New()
..()
reagents.add_reagent("nutriment", 8)
bitesize = 2
reagents.add_reagent("vitamin", 4)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/spesslaw
name = "spesslaw"
@@ -63,7 +68,8 @@
/obj/item/weapon/reagent_containers/food/snacks/spesslaw/New()
..()
reagents.add_reagent("nutriment", 8)
bitesize = 2
reagents.add_reagent("vitamin", 6)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/eggplantparm
name = "eggplant parmigiana"
@@ -74,4 +80,5 @@
/obj/item/weapon/reagent_containers/food/snacks/eggplantparm/New()
..()
reagents.add_reagent("nutriment", 6)
reagents.add_reagent("vitamin", 2)
bitesize = 2
+8 -4
View File
@@ -22,7 +22,8 @@
/obj/item/weapon/reagent_containers/food/snacks/sosjerky/New()
..()
reagents.add_reagent("nutriment", 4)
reagents.add_reagent("nutriment", 1)
reagents.add_reagent("sugar", 3)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/chips
@@ -33,7 +34,8 @@
/obj/item/weapon/reagent_containers/food/snacks/chips/New()
..()
reagents.add_reagent("nutriment", 3)
reagents.add_reagent("nutriment", 1)
reagents.add_reagent("sugar", 3)
bitesize = 1
/obj/item/weapon/reagent_containers/food/snacks/no_raisin
@@ -44,7 +46,8 @@
/obj/item/weapon/reagent_containers/food/snacks/no_raisin/New()
..()
reagents.add_reagent("nutriment", 6)
reagents.add_reagent("nutriment", 2)
reagents.add_reagent("sugar", 4)
/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie
name = "space twinkie"
@@ -64,7 +67,8 @@
/obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers/New()
..()
reagents.add_reagent("nutriment", 4)
reagents.add_reagent("nutriment", 1)
reagents.add_reagent("sugar", 3)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/syndicake
@@ -74,16 +74,19 @@
/obj/item/weapon/reagent_containers/food/snacks/faggot,
)
result = /obj/item/weapon/reagent_containers/food/snacks/donkpocket //SPECIAL
proc/warm_up(var/obj/item/weapon/reagent_containers/food/snacks/donkpocket/being_cooked)
being_cooked.warm = 1
being_cooked.reagents.add_reagent("tricordrazine", 5)
being_cooked.bitesize = 6
being_cooked.name = "Warm " + being_cooked.name
being_cooked.cooltime()
make_food(var/obj/container as obj)
var/obj/item/weapon/reagent_containers/food/snacks/donkpocket/being_cooked = ..(container)
warm_up(being_cooked)
return being_cooked
/datum/recipe/donkpocket/proc/warm_up(var/obj/item/weapon/reagent_containers/food/snacks/donkpocket/being_cooked)
being_cooked.warm = 1
being_cooked.reagents.add_reagent("tricordrazine", 5)
being_cooked.reagents.del_reagent("sugar")
being_cooked.bitesize = 6
being_cooked.name = "Warm " + being_cooked.name
being_cooked.cooltime()
/datum/recipe/donkpocket/make_food(var/obj/container as obj)
var/obj/item/weapon/reagent_containers/food/snacks/donkpocket/being_cooked = ..(container)
warm_up(being_cooked)
return being_cooked
/datum/recipe/donkpocket/warm
reagents = list() //This is necessary since this is a child object of the above recipe and we don't want donk pockets to need flour
+28 -2
View File
@@ -103,6 +103,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/corn/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 10), 1))
reagents.add_reagent("vitamin", 1 + round((potency / 10), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
@@ -116,7 +117,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/cherries/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 15), 1))
reagents.add_reagent("sugar", 1 + round((potency / 15), 1))
reagents.add_reagent("sugar", 1 + round((potency / 50), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
@@ -156,6 +157,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/potato/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 10), 1))
reagents.add_reagent("vitamin", 1 + round((potency / 10), 1))
bitesize = reagents.total_volume
/obj/item/weapon/reagent_containers/food/snacks/grown/potato/attackby(obj/item/weapon/W as obj, mob/user as mob)
@@ -184,7 +186,8 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/grapes/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 10), 1))
reagents.add_reagent("sugar", 1 + round((potency / 5), 1))
reagents.add_reagent("sugar", 1 + round((potency / 40), 1))
reagents.add_reagent("vitamin", 1 + round((potency / 10), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/grapes/green
@@ -208,6 +211,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/cabbage/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 10), 1))
reagents.add_reagent("vitamin", 1 + round((potency / 10), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
@@ -221,6 +225,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/berries/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 10), 1))
reagents.add_reagent("vitamin", 1 + round((potency / 10), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/berries/poison
@@ -318,6 +323,7 @@
reagents.add_reagent("kelotane", 1 + round(potency / 8, 1))
reagents.add_reagent("bicaridine", 1 + round(potency / 10, 1))
reagents.add_reagent("toxin", 1 + round(potency / 10, 1))
reagents.add_reagent("vitamin", 1 + round((potency / 20), 1))
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/deus
@@ -332,6 +338,7 @@
reagents.add_reagent("synaptizine", 1 + round(potency / 8, 1))
reagents.add_reagent("hyperzine", 1 + round(potency / 10, 1))
reagents.add_reagent("space_drugs", 1 + round(potency / 10, 1))
reagents.add_reagent("vitamin", 1 + round((potency / 10), 1))
/obj/item/weapon/reagent_containers/food/snacks/grown/apple
@@ -344,6 +351,7 @@
if(..())
reagents.maximum_volume = 20
reagents.add_reagent("nutriment", 1 + round((potency / 10), 1))
reagents.add_reagent("vitamin", 1 + round((potency / 20), 1))
bitesize = reagents.maximum_volume // Always eat the apple in one
@@ -386,6 +394,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 6), 1))
reagents.add_reagent("vitamin", 1 + round((potency / 10), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin
@@ -397,6 +406,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 6), 1))
reagents.add_reagent("vitamin", 1 + round((potency / 10), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin/attackby(obj/item/weapon/W as obj, mob/user as mob)
@@ -417,6 +427,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 20), 1))
reagents.add_reagent("vitamin", 1 + round((potency / 10), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lime
@@ -447,6 +458,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/whitebeet/add_juice()
if(..())
reagents.add_reagent("nutriment", round((potency / 20), 1))
reagents.add_reagent("vitamin", 1 + round((potency / 20), 1))
reagents.add_reagent("sugar", 1 + round((potency / 5), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
@@ -461,7 +473,9 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/banana/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 50), 1))
reagents.add_reagent("banana", 1 + round((potency / 10), 1))
reagents.add_reagent("vitamin", 1 + round((potency / 20), 1))
bitesize = 5
/obj/item/weapon/reagent_containers/food/snacks/grown/chili
@@ -474,6 +488,7 @@
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 25), 1))
reagents.add_reagent("capsaicin", 3+round(potency / 5, 1))
reagents.add_reagent("vitamin", 1 + round((potency / 25), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/chili/attackby(var/obj/item/O as obj, var/mob/user as mob)
@@ -491,6 +506,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/icepepper/add_juice()
..()
reagents.add_reagent("nutriment", 1 + round((potency / 50), 1))
reagents.add_reagent("vitamin", 1 + round((potency / 50), 1))
reagents.add_reagent("frostoil", 3+round(potency / 5, 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
@@ -546,6 +562,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/eggplant/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 10), 1))
reagents.add_reagent("vitamin", 1 + round((potency / 20), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
@@ -581,6 +598,7 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice()
/obj/item/weapon/reagent_containers/food/snacks/grown/soybeans/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 20), 1))
reagents.add_reagent("vitamin", 1 + round((potency / 10), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/koibeans
@@ -593,6 +611,7 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 30), 1))
reagents.add_reagent("carpotoxin", 1 + round((potency / 20), 1))
reagents.add_reagent("vitamin", 1 + round((potency / 10), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/moonflower
@@ -606,6 +625,7 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 50), 1))
reagents.add_reagent("moonshine", 1 + round((potency / 10), 1))
reagents.add_reagent("vitamin", 1 + round((potency / 50), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
//tomaters
@@ -619,6 +639,7 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice()
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 10), 1))
reagents.add_reagent("vitamin", 1 + round((potency / 10), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato/proc/squish(atom/target)
@@ -808,6 +829,7 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice()
/obj/item/weapon/reagent_containers/food/snacks/grown/carrot/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 20), 1))
reagents.add_reagent("vitamin", 1 + round((potency / 20), 1))
reagents.add_reagent("imidazoline", 3+round(potency / 5, 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
@@ -895,6 +917,7 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice()
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/plumphelmet/add_juice()
..()
reagents.add_reagent("nutriment", 2+round((potency / 10), 1))
reagents.add_reagent("vitamin", 1 + round((potency / 20), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
@@ -1040,6 +1063,7 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice()
/obj/item/weapon/reagent_containers/food/snacks/grown/coffee/add_juice()
if(..())
reagents.add_reagent("coffeepowder", 1 + round((potency / 10), 2))
reagents.add_reagent("vitamin", 1 + round((potency / 10), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/coffee/arabica
@@ -1067,6 +1091,7 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice()
/obj/item/weapon/reagent_containers/food/snacks/grown/tobacco/add_juice()
if(..())
reagents.add_reagent("nutriment", 1 + round((potency / 40), 1))
reagents.add_reagent("vitamin", 1 + round((potency / 40), 1))
/obj/item/weapon/reagent_containers/food/snacks/grown/tobacco_space
@@ -1089,6 +1114,7 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice()
/obj/item/weapon/reagent_containers/food/snacks/grown/tea/add_juice()
if(..())
reagents.add_reagent("teapowder", 1 + round((potency / 10), 2))
reagents.add_reagent("vitamin", 1 + round((potency / 20), 1))
/obj/item/weapon/reagent_containers/food/snacks/grown/tea/aspera
@@ -228,7 +228,7 @@ var/const/MAX_ACTIVE_TIME = 400
return
/proc/CanHug(var/mob/M)
if(!M)
if(!istype(M))
return 0
if(M.stat == DEAD)
return 0
@@ -222,10 +222,10 @@
msg += "[t_He] looks a little soaked.\n"
if(nutrition < 100)
if(nutrition < NUTRITION_LEVEL_STARVING - 50)
msg += "[t_He] [t_is] severely malnourished.\n"
else if(nutrition >= 500)
if(user.nutrition < 100)
else if(nutrition >= NUTRITION_LEVEL_FAT)
if(user.nutrition < NUTRITION_LEVEL_STARVING - 50)
msg += "[t_He] [t_is] plump and delicious looking - Like a fat little piggy. A tasty piggy.\n"
else
msg += "[t_He] [t_is] quite chubby.\n"
+2 -2
View File
@@ -216,10 +216,10 @@
if(nutrition >= 2) //If we are very, very cold we'll use up quite a bit of nutriment to heat us up.
nutrition -= 2
var/body_temperature_difference = 310.15 - bodytemperature
bodytemperature += max((body_temperature_difference / BODYTEMP_AUTORECOVERY_DIVISOR), BODYTEMP_AUTORECOVERY_MINIMUM)
bodytemperature += max((body_temperature_difference * metabolism_efficiency / BODYTEMP_AUTORECOVERY_DIVISOR), BODYTEMP_AUTORECOVERY_MINIMUM)
if(260.15 to 360.15)
var/body_temperature_difference = 310.15 - bodytemperature
bodytemperature += body_temperature_difference / BODYTEMP_AUTORECOVERY_DIVISOR
bodytemperature += body_temperature_difference * metabolism_efficiency / BODYTEMP_AUTORECOVERY_DIVISOR
if(360.15 to INFINITY) //360.15 is 310.15 + 50, the temperature where you start to feel effects.
//We totally need a sweat system cause it totally makes sense...~
var/body_temperature_difference = 310.15 - bodytemperature
@@ -400,17 +400,42 @@
H.update_inv_w_uniform(0)
H.update_inv_wear_suit()
// nutrition decrease
// nutrition decrease and satiety
if (H.nutrition > 0 && H.stat != 2)
H.nutrition = max (0, H.nutrition - HUNGER_FACTOR)
var/hunger_rate = HUNGER_FACTOR
if(H.satiety > 0)
H.satiety--
if(H.satiety < 0)
H.satiety++
if(prob(round(-H.satiety/40)))
H.Jitter(5)
hunger_rate = 5 * HUNGER_FACTOR
H.nutrition = max (0, H.nutrition - hunger_rate)
if (H.nutrition > 450)
if (H.nutrition > NUTRITION_LEVEL_FULL)
if(H.overeatduration < 600) //capped so people don't take forever to unfat
H.overeatduration++
else
if(H.overeatduration > 1)
H.overeatduration -= 2 //doubled the unfat rate
//metabolism change
if(H.nutrition > NUTRITION_LEVEL_FAT)
H.metabolism_efficiency = 1
else if(H.nutrition > NUTRITION_LEVEL_FED && H.satiety > 80)
if(H.metabolism_efficiency != 1.25)
H << "<span class='notice'>You feel vigorous.</span>"
H.metabolism_efficiency = 1.25
else if(H.nutrition < NUTRITION_LEVEL_STARVING + 50)
if(H.metabolism_efficiency != 0.8)
H << "<span class='notice'>You feel sluggish.</span>"
H.metabolism_efficiency = 0.8
else
if(H.metabolism_efficiency == 1.25)
H << "<span class='notice'>You no longer feel vigorous.</span>"
H.metabolism_efficiency = 1
if (H.drowsyness)
H.drowsyness--
H.eye_blurry = max(2, H.eye_blurry)
@@ -508,11 +533,18 @@
if(H.nutrition_icon)
switch(H.nutrition)
if(450 to INFINITY) H.nutrition_icon.icon_state = "nutrition0"
if(350 to 450) H.nutrition_icon.icon_state = "nutrition1"
if(250 to 350) H.nutrition_icon.icon_state = "nutrition2"
if(150 to 250) H.nutrition_icon.icon_state = "nutrition3"
else H.nutrition_icon.icon_state = "nutrition4"
if(NUTRITION_LEVEL_FULL to INFINITY)
H.nutrition_icon.icon_state = "nutritionFAT"
if(NUTRITION_LEVEL_WELL_FED to NUTRITION_LEVEL_FULL)
H.nutrition_icon.icon_state = "nutrition0"
if(NUTRITION_LEVEL_FED to NUTRITION_LEVEL_WELL_FED)
H.nutrition_icon.icon_state = "nutrition1"
if(NUTRITION_LEVEL_HUNGRY to NUTRITION_LEVEL_FED)
H.nutrition_icon.icon_state = "nutrition2"
if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_HUNGRY)
H.nutrition_icon.icon_state = "nutrition3"
else
H.nutrition_icon.icon_state = "nutrition4"
if(H.pressure)
H.pressure.icon_state = "pressure[H.pressure_alert]"
@@ -82,7 +82,7 @@
H.adjustFireLoss(rand(5,15))
H.show_message("<span class='danger'>The radiation beam singes you!</span>")
if(/obj/item/projectile/energy/florayield)
H.nutrition = min(H.nutrition+30, 500)
H.nutrition = min(H.nutrition+30, NUTRITION_LEVEL_FULL)
return
/*
@@ -103,14 +103,14 @@
if(A.lighting_use_dynamic) light_amount = min(10,T.lighting_lumcount) - 5
else light_amount = 5
H.nutrition += light_amount
if(H.nutrition > 500)
H.nutrition = 500
if(H.nutrition > NUTRITION_LEVEL_FULL)
H.nutrition = NUTRITION_LEVEL_FULL
if(light_amount > 2) //if there's enough light, heal
H.heal_overall_damage(1,1)
H.adjustToxLoss(-1)
H.adjustOxyLoss(-1)
if(H.nutrition < 200)
if(H.nutrition < NUTRITION_LEVEL_STARVING + 50)
H.take_overall_damage(2,0)
/*
+1 -1
View File
@@ -374,7 +374,7 @@
SetStunned(0)
SetWeakened(0)
radiation = 0
nutrition = 400
nutrition = NUTRITION_LEVEL_FED + 50
bodytemperature = 310
disabilities = 0
eye_blind = 0
@@ -41,3 +41,4 @@
var/floating = 0
var/nightvision = 0
var/mob_size = 1 //size of the mob. 0 is small, 1 is human sized, and 2 is large.
var/metabolism_efficiency = 1 //more or less efficiency to metabolize helpful/harmful reagents and regulate body temperature..
+1 -1
View File
@@ -517,7 +517,7 @@ var/list/slot_equipment_priority = list( \
namecounts[name] = 1
creatures[name] = O
if(istype(O, /obj/machinery/singularity))
if(istype(O, /obj/singularity))
var/name = "Singularity"
if (names.Find(name))
namecounts[name]++
+2 -1
View File
@@ -76,7 +76,8 @@
var/drowsyness = 0//Carbon
var/dizziness = 0//Carbon
var/jitteriness = 0//Carbon
var/nutrition = 400//Carbon
var/nutrition = NUTRITION_LEVEL_FED + 50//Carbon
var/satiety = 0//Carbon
var/overeatduration = 0 // How long this guy is overeating //Carbon
var/paralysis = 0
@@ -720,12 +720,12 @@
gender = NEUTER
/datum/sprite_accessory/undershirt/tank_white
name = "White Tank-Top"
name = "White Tank Top"
icon_state = "tank_white"
gender = NEUTER
/datum/sprite_accessory/undershirt/tank_black
name = "Black Tank-Top"
name = "Black Tank Top"
icon_state = "tank_black"
gender = NEUTER
@@ -738,3 +738,208 @@
name = "Midriff Tank Top"
icon_state = "tank_midriff"
gender = FEMALE
/datum/sprite_accessory/undershirt/lover
name = "Lover shirt"
icon_state = "lover"
gender = NEUTER
/datum/sprite_accessory/undershirt/ian
name = "Blue Ian Shirt"
icon_state = "ian"
gender = NEUTER
/datum/sprite_accessory/undershirt/uk
name = "UK Shirt"
icon_state = "uk"
gender = NEUTER
/datum/sprite_accessory/undershirt/ilovent
name = "I Love NT Shirt"
icon_state = "ilovent"
gender = NEUTER
/datum/sprite_accessory/undershirt/peace
name = "Peace Shirt"
icon_state = "peace"
gender = NEUTER
/datum/sprite_accessory/undershirt/mondmondjaja
name = "Band Shirt"
icon_state = "band"
gender = NEUTER
/datum/sprite_accessory/undershirt/pacman
name = "Pogoman Shirt"
icon_state = "pogoman"
gender = NEUTER
/datum/sprite_accessory/undershirt/matroska
name = "Matroska Shirt"
icon_state = "matroska"
gender = NEUTER
/datum/sprite_accessory/undershirt/whiteshortsleeve
name = "White Short-sleeved Shirt"
icon_state = "whiteshortsleeve"
gender = NEUTER
/datum/sprite_accessory/undershirt/purpleshortsleeve
name = "Purple Short-sleeved Shirt"
icon_state = "purpleshortsleeve"
gender = NEUTER
/datum/sprite_accessory/undershirt/blueshortsleeve
name = "Blue Short-sleeved Shirt"
icon_state = "blueshortsleeve"
gender = NEUTER
/datum/sprite_accessory/undershirt/greenshortsleeve
name = "Green Short-sleeved Shirt"
icon_state = "greenshortsleeve"
gender = NEUTER
/datum/sprite_accessory/undershirt/blackshortsleeve
name = "Black Short-sleeved Shirt"
icon_state = "blackshortsleeve"
gender = NEUTER
/datum/sprite_accessory/undershirt/blueshirt
name = "Blue T-Shirt"
icon_state = "blueshirt"
gender = NEUTER
/datum/sprite_accessory/undershirt/redshirt
name = "Red T-Shirt"
icon_state = "redshirt"
gender = NEUTER
/datum/sprite_accessory/undershirt/yellowshirt
name = "Yellow T-Shirt"
icon_state = "yellowshirt"
gender = NEUTER
/datum/sprite_accessory/undershirt/greenshirt
name = "Green T-Shirt"
icon_state = "greenshirt"
gender = NEUTER
/datum/sprite_accessory/undershirt/bluepolo
name = "Blue Polo Shirt"
icon_state = "bluepolo"
gender = NEUTER
/datum/sprite_accessory/undershirt/redpolo
name = "Red Polo Shirt"
icon_state = "redpolo"
gender = NEUTER
/datum/sprite_accessory/undershirt/whitepolo
name = "White Polo Shirt"
icon_state = "whitepolo"
gender = NEUTER
/datum/sprite_accessory/undershirt/grayyellowpolo
name = "Gray-Yellow Polo Shirt"
icon_state = "grayyellowpolo"
gender = NEUTER
/datum/sprite_accessory/undershirt/redtop
name = "Red Top"
icon_state = "redtop"
gender = FEMALE
/datum/sprite_accessory/undershirt/whitetop
name = "White Top"
icon_state = "whitetop"
gender = FEMALE
/datum/sprite_accessory/undershirt/greenshirtsport
name = "Green Sports Shirt"
icon_state = "greenshirtsport"
gender = NEUTER
/datum/sprite_accessory/undershirt/redshirtsport
name = "Red Sports Shirt"
icon_state = "redshirtsport"
gender = NEUTER
/datum/sprite_accessory/undershirt/blueshirtsport
name = "Blue Sports Shirt"
icon_state = "blueshirtsport"
gender = NEUTER
/datum/sprite_accessory/undershirt/ss13
name = "SS13 Shirt"
icon_state = "shirt_ss13"
gender = NEUTER
/datum/sprite_accessory/undershirt/tankfire
name = "Fire Tank Top"
icon_state = "tank_fire"
gender = NEUTER
/datum/sprite_accessory/undershirt/question
name = "Question Shirt"
icon_state = "shirt_question"
gender = NEUTER
/datum/sprite_accessory/undershirt/skull
name = "Skull Shirt"
icon_state = "shirt_skull"
gender = NEUTER
/datum/sprite_accessory/undershirt/commie
name = "Commie Shirt"
icon_state = "shirt_commie"
gender = NEUTER
/datum/sprite_accessory/undershirt/nano
name = "Nanotransen Shirt"
icon_state = "shirt_nano"
gender = NEUTER
/datum/sprite_accessory/undershirt/stripe
name = "Striped Shirt"
icon_state = "shirt_stripes"
gender = NEUTER
/datum/sprite_accessory/undershirt/blueshirt
name = "Blue Shirt"
icon_state = "shirt_blue"
gender = NEUTER
/datum/sprite_accessory/undershirt/redshirt
name = "Red Shirt"
icon_state = "shirt_red"
gender = NEUTER
/datum/sprite_accessory/undershirt/greenshirt
name = "Green Shirt"
icon_state = "shirt_green"
gender = NEUTER
/datum/sprite_accessory/undershirt/meat
name = "Meat Shirt"
icon_state = "shirt_meat"
gender = NEUTER
/datum/sprite_accessory/undershirt/tiedye
name = "Tie-dye Shirt"
icon_state = "shirt_tiedye"
gender = NEUTER
/datum/sprite_accessory/undershirt/redjersey
name = "Red Jersey"
icon_state = "shirt_redjersey"
gender = NEUTER
/datum/sprite_accessory/undershirt/bluejersey
name = "Blue Jersey"
icon_state = "shirt_bluejersey"
gender = NEUTER
/datum/sprite_accessory/undershirt/tankstripe
name = "Striped Tank Top"
icon_state = "tank_stripes"
gender = FEMALE
@@ -74,7 +74,7 @@
return ..()
/obj/machinery/field/CanPass(obj/mover as obj, turf/target, height=0)
if((istype(mover, /obj/machinery) && !istype(mover, /obj/machinery/singularity)) || \
if((istype(mover, /obj/machinery) && !istype(mover, /obj/singularity)) || \
istype(mover, /obj/structure) || \
istype(mover, /obj/mecha))
bump(mover)
@@ -344,7 +344,7 @@ field_generator power level display
//I want to avoid using global variables.
spawn(1)
var/temp = 1 //stops spam
for(var/obj/machinery/singularity/O in world)
for(var/obj/singularity/O in world)
if(O.last_warning && temp)
if((world.time - O.last_warning) > 50) //to stop message-spam
temp = 0
+1 -1
View File
@@ -12,7 +12,7 @@
/obj/machinery/the_singularitygen/process()
var/turf/T = get_turf(src)
if(src.energy >= 200)
new /obj/machinery/singularity/(T, 50)
new /obj/singularity/(T, 50)
if(src) qdel(src)
/obj/machinery/the_singularitygen/attackby(obj/item/W, mob/user)
+16 -16
View File
@@ -1,4 +1,4 @@
/obj/machinery/singularity/narsie //Moving narsie to a child object of the singularity so it can be made to function differently. --NEO
/obj/singularity/narsie //Moving narsie to a child object of the singularity so it can be made to function differently. --NEO
name = "Nar-sie's Avatar"
desc = "Your mind begins to bubble and ooze as it tries to comprehend what it sees."
icon = 'icons/obj/magic_terror.dmi'
@@ -12,7 +12,7 @@
consume_range = 6 //How many tiles out do we eat
var/uneatable = list(/turf/space, /obj/effect/overlay, /mob/living/simple_animal/construct)
/obj/machinery/singularity/narsie/large
/obj/singularity/narsie/large
name = "Nar-Sie"
icon = 'icons/obj/narsie.dmi'
// Pixel stuff centers Narsie.
@@ -23,7 +23,7 @@
grav_pull = 10
consume_range = 12 //How many tiles out do we eat
/obj/machinery/singularity/narsie/large/New()
/obj/singularity/narsie/large/New()
..()
world << "<font size='15' color='red'><b>NAR-SIE HAS RISEN</b></font>"
world << pick(sound('sound/hallucinations/im_here1.ogg'), sound('sound/hallucinations/im_here2.ogg'))
@@ -39,7 +39,7 @@
emergency_shuttle.incall(0.3) // Cannot recall
/obj/machinery/singularity/narsie/large/attack_ghost(mob/dead/observer/user as mob)
/obj/singularity/narsie/large/attack_ghost(mob/dead/observer/user as mob)
if(!(src in view()))
user << "Your soul is too far away."
return
@@ -47,7 +47,7 @@
new /obj/effect/effect/sleep_smoke(user.loc)
/obj/machinery/singularity/narsie/process()
/obj/singularity/narsie/process()
eat()
if(!target || prob(5))
pickcultist()
@@ -56,15 +56,15 @@
mezzer()
/obj/machinery/singularity/narsie/Bump(atom/A)//you dare stand before a god?!
/obj/singularity/narsie/Bump(atom/A)//you dare stand before a god?!
godsmack(A)
return
/obj/machinery/singularity/narsie/Bumped(atom/A)
/obj/singularity/narsie/Bumped(atom/A)
godsmack(A)
return
/obj/machinery/singularity/narsie/proc/godsmack(var/atom/A)
/obj/singularity/narsie/proc/godsmack(var/atom/A)
if(istype(A,/obj/))
var/obj/O = A
O.ex_act(1.0)
@@ -75,7 +75,7 @@
T.ChangeTurf(/turf/simulated/floor/engine/cult)
/obj/machinery/singularity/narsie/mezzer()
/obj/singularity/narsie/mezzer()
for(var/mob/living/carbon/M in oviewers(8, src))
if(M.stat == CONSCIOUS)
if(!iscultist(M))
@@ -83,7 +83,7 @@
M.apply_effect(3, STUN)
/obj/machinery/singularity/narsie/consume(var/atom/A)
/obj/singularity/narsie/consume(var/atom/A)
if(is_type_in_list(A, uneatable))
return 0
@@ -105,11 +105,11 @@
return
/obj/machinery/singularity/narsie/ex_act() //No throwing bombs at it either. --NEO
/obj/singularity/narsie/ex_act() //No throwing bombs at it either. --NEO
return
/obj/machinery/singularity/narsie/proc/pickcultist() //Narsie rewards his cultists with being devoured first, then picks a ghost to follow. --NEO
/obj/singularity/narsie/proc/pickcultist() //Narsie rewards his cultists with being devoured first, then picks a ghost to follow. --NEO
var/list/cultists = list()
var/list/noncultists = list()
for(var/mob/living/carbon/food in living_mob_list) //we don't care about constructs or cult-Ians or whatever. cult-monkeys are fair game i guess
@@ -143,7 +143,7 @@
return
/obj/machinery/singularity/narsie/proc/acquire(var/mob/food)
/obj/singularity/narsie/proc/acquire(var/mob/food)
target << "<span class='notice'>NAR-SIE HAS LOST INTEREST IN YOU</span>"
target = food
if(ishuman(target))
@@ -152,10 +152,10 @@
target << "<span class ='userdanger'>NAR-SIE HAS CHOSEN YOU TO LEAD HIM TO HIS NEXT MEAL</span>"
//Wizard narsie
/obj/machinery/singularity/narsie/wizard
/obj/singularity/narsie/wizard
grav_pull = 0
/obj/machinery/singularity/narsie/wizard/eat()
/obj/singularity/narsie/wizard/eat()
set background = BACKGROUND_ENABLED
// if(defer_powernet_rebuild != 2)
// defer_powernet_rebuild = 1
@@ -167,7 +167,7 @@
return
/obj/machinery/singularity/narsie/proc/narsie_spawn_animation()
/obj/singularity/narsie/proc/narsie_spawn_animation()
icon = 'icons/obj/narsie_spawn_anim.dmi'
dir = SOUTH
move_self = 0
@@ -38,7 +38,7 @@
if (A)
if(ismob(A))
toxmob(A)
if((istype(A,/obj/machinery/the_singularitygen))||(istype(A,/obj/machinery/singularity/)))
if((istype(A,/obj/machinery/the_singularitygen))||(istype(A,/obj/singularity/)))
A:energy += energy
return
+32 -29
View File
@@ -1,6 +1,6 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
/obj/machinery/singularity
/obj/singularity
name = "gravitational singularity"
desc = "A gravitational singularity."
icon = 'icons/obj/singularity.dmi'
@@ -10,7 +10,6 @@
layer = 6
luminosity = 6
unacidable = 1 //Don't comment this out.
use_power = 0
var/current_size = 1
var/allowed_size = 1
var/contained = 1 //Are we going to move around?
@@ -27,20 +26,24 @@
var/last_failed_movement = 0//Will not move in the same dir if it couldnt before, will help with the getting stuck on fields thing
var/last_warning
/obj/machinery/singularity/New(loc, var/starting_energy = 50, var/temp = 0)
/obj/singularity/New(loc, var/starting_energy = 50, var/temp = 0)
//CARN: admin-alert for chuckle-fuckery.
admin_investigate_setup()
src.energy = starting_energy
..()
processing_objects.Add(src)
for(var/obj/machinery/power/singularity_beacon/singubeacon in world)
if(singubeacon.active)
target = singubeacon
break
return
/obj/singularity/Destroy()
processing_objects.Remove(src)
..()
/obj/machinery/singularity/Move(atom/newloc, direct)
/obj/singularity/Move(atom/newloc, direct)
if(current_size >= STAGE_FIVE || check_turfs_in(direct))
last_failed_movement = 0//Reset this because we moved
return ..()
@@ -49,17 +52,17 @@
return 0
/obj/machinery/singularity/attack_hand(mob/user as mob)
/obj/singularity/attack_hand(mob/user as mob)
consume(user)
return 1
/obj/machinery/singularity/Process_Spacemove() //The singularity stops drifting for no man!
/obj/singularity/Process_Spacemove() //The singularity stops drifting for no man!
return 0
/obj/machinery/singularity/blob_act(severity)
/obj/singularity/blob_act(severity)
return
/obj/machinery/singularity/ex_act(severity, target)
/obj/singularity/ex_act(severity, target)
switch(severity)
if(1.0)
if(current_size <= STAGE_TWO)
@@ -75,21 +78,21 @@
return
/obj/machinery/singularity/bullet_act(obj/item/projectile/P)
/obj/singularity/bullet_act(obj/item/projectile/P)
return 0 //Will there be an impact? Who knows. Will we see it? No.
/obj/machinery/singularity/Bump(atom/A)
/obj/singularity/Bump(atom/A)
consume(A)
return
/obj/machinery/singularity/Bumped(atom/A)
/obj/singularity/Bumped(atom/A)
consume(A)
return
/obj/machinery/singularity/process()
/obj/singularity/process()
if(current_size >= STAGE_TWO)
move()
pulse()
@@ -102,17 +105,17 @@
return
/obj/machinery/singularity/attack_ai() //to prevent ais from gibbing themselves when they click on one.
/obj/singularity/attack_ai() //to prevent ais from gibbing themselves when they click on one.
return
/obj/machinery/singularity/proc/admin_investigate_setup()
/obj/singularity/proc/admin_investigate_setup()
last_warning = world.time
var/count = locate(/obj/machinery/field/containment) in orange(30, src)
if(!count) message_admins("A singulo has been created without containment fields active ([x],[y],[z])",1)
investigate_log("was created. [count?"":"<font color='red'>No containment fields were active</font>"]","singulo")
/obj/machinery/singularity/proc/dissipate()
/obj/singularity/proc/dissipate()
if(!dissipate)
return
if(dissipate_track >= dissipate_delay)
@@ -122,7 +125,7 @@
dissipate_track++
/obj/machinery/singularity/proc/expand(var/force_size = 0)
/obj/singularity/proc/expand(var/force_size = 0)
var/temp_allowed_size = src.allowed_size
if(force_size)
temp_allowed_size = force_size
@@ -191,7 +194,7 @@
return 0
/obj/machinery/singularity/proc/check_energy()
/obj/singularity/proc/check_energy()
if(energy <= 0)
investigate_log("collapsed.","singulo")
qdel(src)
@@ -212,11 +215,11 @@
return 1
/obj/machinery/singularity/proc/eat()
/obj/singularity/proc/eat()
set background = BACKGROUND_ENABLED
for(var/atom/X in orange(grav_pull,src))
var/dist = get_dist(X, src)
var/obj/machinery/singularity/S = src
var/obj/singularity/S = src
if(dist > consume_range)
X.singularity_pull(S, current_size)
else if(dist <= consume_range)
@@ -224,13 +227,13 @@
return
/obj/machinery/singularity/proc/consume(var/atom/A)
/obj/singularity/proc/consume(var/atom/A)
var/gain = A.singularity_act(current_size)
src.energy += gain
return
/obj/machinery/singularity/proc/move(var/force_move = 0)
/obj/singularity/proc/move(var/force_move = 0)
if(!move_self)
return 0
@@ -245,7 +248,7 @@
step(src, movement_dir)
/obj/machinery/singularity/proc/check_turfs_in(var/direction = 0, var/step = 0)
/obj/singularity/proc/check_turfs_in(var/direction = 0, var/step = 0)
if(!direction)
return 0
var/steps = 0
@@ -298,7 +301,7 @@
return 1
/obj/machinery/singularity/proc/can_move(var/turf/T)
/obj/singularity/proc/can_move(var/turf/T)
if(!T)
return 0
if((locate(/obj/machinery/field/containment) in T)||(locate(/obj/machinery/shieldwall) in T))
@@ -314,7 +317,7 @@
return 1
/obj/machinery/singularity/proc/event()
/obj/singularity/proc/event()
var/numb = pick(1,2,3,4,5,6)
switch(numb)
if(1)//EMP
@@ -328,7 +331,7 @@
return 1
/obj/machinery/singularity/proc/toxmob()
/obj/singularity/proc/toxmob()
var/toxrange = 10
var/toxdamage = 4
var/radiation = 15
@@ -344,7 +347,7 @@
return
/obj/machinery/singularity/proc/mezzer()
/obj/singularity/proc/mezzer()
for(var/mob/living/carbon/M in oviewers(8, src))
if(istype(M, /mob/living/carbon/brain)) //Ignore brains
continue
@@ -361,19 +364,19 @@
return
/obj/machinery/singularity/proc/emp_area()
/obj/singularity/proc/emp_area()
empulse(src, 8, 10)
return
/obj/machinery/singularity/proc/pulse()
/obj/singularity/proc/pulse()
for(var/obj/machinery/power/rad_collector/R in rad_collectors)
if(get_dist(R, src) <= 15) // Better than using orange() every process
R.receive_pulse(energy)
return
/obj/machinery/singularity/singularity_act()
/obj/singularity/singularity_act()
var/gain = (energy/2)
var/dist = max((current_size - 2),1)
explosion(src.loc,(dist),(dist*2),(dist*4))
@@ -96,6 +96,12 @@
icon_state = "ishell"
projectile_type = /obj/item/projectile/bullet/incendiary/shell
/obj/item/ammo_casing/shotgun/frag12
name = "FRAG-12 slug"
desc = "A high explosive breaching round for a 12 gauge shotgun."
icon_state = "heshell"
projectile_type = /obj/item/projectile/bullet/frag12
/obj/item/ammo_casing/shotgun/incendiary/dragonsbreath
name = "dragonsbreath shell"
desc = "A shotgun shell which fires a spread of incendiary pellets."
@@ -157,4 +163,4 @@
desc = "A cased high explosive grenade that can only be activated once fired out of a grenade launcher."
caliber = "40mm"
icon_state = "40mmHE"
projectile_type = /obj/item/projectile/bullet/a40mm
projectile_type = /obj/item/projectile/bullet/a40mm
@@ -126,7 +126,7 @@
caliber = ".45"
max_ammo = 20
/obj/item/ammo_box/magazine/smgm/update_icon()
/obj/item/ammo_box/magazine/smgm45/update_icon()
..()
icon_state = "[initial(icon_state)]-[round(ammo_count(),2)]"
@@ -168,3 +168,14 @@ obj/item/projectile/kinetic/New()
if(!gun)
qdel(src)
gun.create_portal(src)
/obj/item/projectile/bullet/gyro/on_hit(atom/target, blocked = 0)
explosion(target, -1, 0, 2)
return 1
/obj/item/projectile/bullet/frag12
name ="explosive slug"
damage = 25
weaken = 5
@@ -0,0 +1,620 @@
///////////////////////////////////////////////////////////////////////////////////////
//ALCOHOLS
/////////////////////////////////////////////////////////////////////////////////////
/*boozepwr chart
55 = non-toxic alchohol
45 = medium-toxic
35 = the hard stuff
25 = potent mixes
<15 = deadly toxic
*/
datum/reagent/consumable/ethanol
name = "Ethanol"
id = "ethanol"
description = "A well-known alcohol with a variety of applications."
color = "#404030" // rgb: 64, 64, 48
nutriment_factor = 0
var/boozepwr = 10 //lower numbers mean the booze will have an effect faster.
datum/reagent/consumable/ethanol/on_mob_life(var/mob/living/M as mob)
if(!data)
data = 1
data++
M.jitteriness = max(M.jitteriness-5,0)
if(data >= boozepwr)
if (!M.stuttering) M.stuttering = 1
M.stuttering += 4
M.Dizzy(5)
if(data >= boozepwr*2.5 && prob(33))
if (!M.confused) M.confused = 1
M.confused += 3
if(data >= boozepwr*10 && prob(33))
M.adjustToxLoss(2)
..()
return
datum/reagent/consumable/ethanol/reaction_obj(var/obj/O, var/volume)
if(istype(O,/obj/item/weapon/paper))
var/obj/item/weapon/paper/paperaffected = O
paperaffected.clearpaper()
usr << "The solution melts away the ink on the paper."
if(istype(O,/obj/item/weapon/book))
if(volume >= 5)
var/obj/item/weapon/book/affectedbook = O
affectedbook.dat = null
usr << "The solution melts away the ink on the book."
else
usr << "It wasn't enough..."
return
datum/reagent/consumable/ethanol/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)//Splashing people with ethanol isn't quite as good as fuel.
if(!istype(M, /mob/living))
return
if(method == TOUCH)
M.adjust_fire_stacks(volume / 15)
return
datum/reagent/consumable/ethanol/beer
name = "Beer"
id = "beer"
description = "An alcoholic beverage made from malted grains, hops, yeast, and water."
color = "#664300" // rgb: 102, 67, 0
nutriment_factor = 1 * REAGENTS_METABOLISM
boozepwr = 55
datum/reagent/consumable/ethanol/beer/greenbeer
name = "Green Beer"
id = "greenbeer"
description = "An alcoholic beverage made from malted grains, hops, yeast, and water. Dyed a festive green."
color = "#A8E61D"
datum/reagent/consumable/ethanol/kahlua
name = "Kahlua"
id = "kahlua"
description = "A widely known, Mexican coffee-flavoured liqueur. In production since 1936!"
color = "#664300" // rgb: 102, 67, 0
boozepwr = 45
datum/reagent/consumable/ethanol/kahlua/on_mob_life(var/mob/living/M as mob)
M.dizziness = max(0,M.dizziness-5)
M.drowsyness = max(0,M.drowsyness-3)
M.sleeping = max(0,M.sleeping-2)
M.Jitter(5)
..()
return
datum/reagent/consumable/ethanol/whiskey
name = "Whiskey"
id = "whiskey"
description = "A superb and well-aged single-malt whiskey. Damn."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 35
datum/reagent/consumable/ethanol/thirteenloko
name = "Thirteen Loko"
id = "thirteenloko"
description = "A potent mixture of caffeine and alcohol."
color = "#102000" // rgb: 16, 32, 0
nutriment_factor = 1 * REAGENTS_METABOLISM
boozepwr = 35
datum/reagent/consumable/ethanol/thirteenloko/on_mob_life(var/mob/living/M as mob)
M.drowsyness = max(0,M.drowsyness-7)
M.sleeping = max(0,M.sleeping-2)
if (M.bodytemperature > 310)
M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
M.Jitter(5)
..()
return
datum/reagent/consumable/ethanol/vodka
name = "Vodka"
id = "vodka"
description = "Number one drink AND fueling choice for Russians worldwide."
color = "#0064C8" // rgb: 0, 100, 200
boozepwr = 35
datum/reagent/consumable/ethanol/vodka/on_mob_life(var/mob/living/M as mob)
M.radiation = max(M.radiation-2,0)
..()
return
datum/reagent/consumable/ethanol/bilk
name = "Bilk"
id = "bilk"
description = "This appears to be beer mixed with milk. Disgusting."
color = "#895C4C" // rgb: 137, 92, 76
nutriment_factor = 2 * REAGENTS_METABOLISM
boozepwr = 55
datum/reagent/consumable/ethanol/bilk/on_mob_life(var/mob/living/M as mob)
if(M.getBruteLoss() && prob(10))
M.heal_organ_damage(1,0)
..()
return
datum/reagent/consumable/ethanol/threemileisland
name = "Three Mile Island Iced Tea"
id = "threemileisland"
description = "Made for a woman, strong enough for a man."
color = "#666340" // rgb: 102, 99, 64
boozepwr = 15
datum/reagent/consumable/ethanol/threemileisland/on_mob_life(var/mob/living/M as mob)
M.druggy = max(M.druggy, 50)
..()
return
datum/reagent/consumable/ethanol/gin
name = "Gin"
id = "gin"
description = "It's gin. In space. I say, good sir."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 55
datum/reagent/consumable/ethanol/rum
name = "Rum"
id = "rum"
description = "Yohoho and all that."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 45
datum/reagent/consumable/ethanol/tequilla
name = "Tequila"
id = "tequilla"
description = "A strong and mildly flavoured, mexican produced spirit. Feeling thirsty hombre?"
color = "#FFFF91" // rgb: 255, 255, 145
boozepwr = 35
datum/reagent/consumable/ethanol/vermouth
name = "Vermouth"
id = "vermouth"
description = "You suddenly feel a craving for a martini..."
color = "#91FF91" // rgb: 145, 255, 145
boozepwr = 45
datum/reagent/consumable/ethanol/wine
name = "Wine"
id = "wine"
description = "An premium alchoholic beverage made from distilled grape juice."
color = "#7E4043" // rgb: 126, 64, 67
boozepwr = 45
datum/reagent/consumable/ethanol/cognac
name = "Cognac"
id = "cognac"
description = "A sweet and strongly alchoholic drink, made after numerous distillations and years of maturing. Classy as fornication."
color = "#AB3C05" // rgb: 171, 60, 5
boozepwr = 45
datum/reagent/consumable/ethanol/hooch
name = "Hooch"
id = "hooch"
description = "Either someone's failure at cocktail making or attempt in alchohol production. In any case, do you really want to drink that?"
color = "#664300" // rgb: 102, 67, 0
boozepwr = 35
datum/reagent/consumable/ethanol/ale
name = "Ale"
id = "ale"
description = "A dark alchoholic beverage made by malted barley and yeast."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 55
datum/reagent/consumable/ethanol/goldschlager
name = "Goldschlager"
id = "goldschlager"
description = "100 proof cinnamon schnapps, made for alcoholic teen girls on spring break."
color = "#FFFF91" // rgb: 255, 255, 145
boozepwr = 25
datum/reagent/consumable/ethanol/patron
name = "Patron"
id = "patron"
description = "Tequila with silver in it, a favorite of alcoholic women in the club scene."
color = "#585840" // rgb: 88, 88, 64
boozepwr = 45
datum/reagent/consumable/ethanol/gintonic
name = "Gin and Tonic"
id = "gintonic"
description = "An all time classic, mild cocktail."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 55
datum/reagent/consumable/ethanol/cuba_libre
name = "Cuba Libre"
id = "cubalibre"
description = "Rum, mixed with cola. Viva la revolution."
color = "#3E1B00" // rgb: 62, 27, 0
boozepwr = 45
datum/reagent/consumable/ethanol/whiskey_cola
name = "Whiskey Cola"
id = "whiskeycola"
description = "Whiskey, mixed with cola. Surprisingly refreshing."
color = "#3E1B00" // rgb: 62, 27, 0
boozepwr = 35
datum/reagent/consumable/ethanol/martini
name = "Classic Martini"
id = "martini"
description = "Vermouth with Gin. Not quite how 007 enjoyed it, but still delicious."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 35
datum/reagent/consumable/ethanol/vodkamartini
name = "Vodka Martini"
id = "vodkamartini"
description = "Vodka with Gin. Not quite how 007 enjoyed it, but still delicious."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 25
datum/reagent/consumable/ethanol/white_russian
name = "White Russian"
id = "whiterussian"
description = "That's just, like, your opinion, man..."
color = "#A68340" // rgb: 166, 131, 64
boozepwr = 35
datum/reagent/consumable/ethanol/screwdrivercocktail
name = "Screwdriver"
id = "screwdrivercocktail"
description = "Vodka, mixed with plain ol' orange juice. The result is surprisingly delicious."
color = "#A68310" // rgb: 166, 131, 16
boozepwr = 35
datum/reagent/consumable/ethanol/booger
name = "Booger"
id = "booger"
description = "Ewww..."
color = "#8CFF8C" // rgb: 140, 255, 140
boozepwr = 45
datum/reagent/consumable/ethanol/bloody_mary
name = "Bloody Mary"
id = "bloodymary"
description = "A strange yet pleasurable mixture made of vodka, tomato and lime juice. Or at least you THINK the red stuff is tomato juice."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 35
datum/reagent/consumable/ethanol/brave_bull
name = "Brave Bull"
id = "bravebull"
description = "It's just as effective as Dutch-Courage!."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 35
datum/reagent/consumable/ethanol/tequilla_sunrise
name = "Tequila Sunrise"
id = "tequillasunrise"
description = "Tequila and orange juice. Much like a Screwdriver, only Mexican~"
color = "#FFE48C" // rgb: 255, 228, 140
boozepwr = 35
datum/reagent/consumable/ethanol/toxins_special
name = "Toxins Special"
id = "toxinsspecial"
description = "This thing is ON FIRE! CALL THE DAMN SHUTTLE!"
color = "#664300" // rgb: 102, 67, 0
boozepwr = 15
datum/reagent/consumable/ethanol/toxins_special/on_mob_life(var/mob/living/M as mob)
if (M.bodytemperature < 330)
M.bodytemperature = min(330, M.bodytemperature + (15 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310 is the normal bodytemp. 310.055
..()
return
datum/reagent/consumable/ethanol/beepsky_smash
name = "Beepsky Smash"
id = "beepskysmash"
description = "Deny drinking this and prepare for THE LAW."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 25
datum/reagent/consumable/ethanol/beepsky_smash/on_mob_life(var/mob/living/M as mob)
M.Stun(2)
..()
return
datum/reagent/consumable/ethanol/irish_cream
name = "Irish Cream"
id = "irishcream"
description = "Whiskey-imbued cream, what else would you expect from the Irish."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 35
datum/reagent/consumable/ethanol/manly_dorf
name = "The Manly Dorf"
id = "manlydorf"
description = "Beer and Ale, brought together in a delicious mix. Intended for true men only."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 45 //was 10, but really its only beer and ale, both weak alchoholic beverages
datum/reagent/consumable/ethanol/longislandicedtea
name = "Long Island Iced Tea"
id = "longislandicedtea"
description = "The liquor cabinet, brought together in a delicious mix. Intended for middle-aged alcoholic women only."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 25
datum/reagent/consumable/ethanol/moonshine
name = "Moonshine"
id = "moonshine"
description = "You've really hit rock bottom now... your liver packed its bags and left last night."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 25
datum/reagent/consumable/ethanol/b52
name = "B-52"
id = "b52"
description = "Coffee, Irish Cream, and cognac. You will get bombed."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 25
datum/reagent/consumable/ethanol/irishcoffee
name = "Irish Coffee"
id = "irishcoffee"
description = "Coffee, and alcohol. More fun than a Mimosa to drink in the morning."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 35
datum/reagent/consumable/ethanol/margarita
name = "Margarita"
id = "margarita"
description = "On the rocks with salt on the rim. Arriba~!"
color = "#8CFF8C" // rgb: 140, 255, 140
boozepwr = 35
datum/reagent/consumable/ethanol/black_russian
name = "Black Russian"
id = "blackrussian"
description = "For the lactose-intolerant. Still as classy as a White Russian."
color = "#360000" // rgb: 54, 0, 0
boozepwr = 35
datum/reagent/consumable/ethanol/manhattan
name = "Manhattan"
id = "manhattan"
description = "The Detective's undercover drink of choice. He never could stomach gin..."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 45
datum/reagent/consumable/ethanol/manhattan_proj
name = "Manhattan Project"
id = "manhattan_proj"
description = "A scientist's drink of choice, for pondering ways to blow up the station."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 15
datum/reagent/consumable/ethanol/manhattan_proj/on_mob_life(var/mob/living/M as mob)
M.druggy = max(M.druggy, 30)
..()
return
datum/reagent/consumable/ethanol/whiskeysoda
name = "Whiskey Soda"
id = "whiskeysoda"
description = "For the more refined griffon."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 35
datum/reagent/consumable/ethanol/antifreeze
name = "Anti-freeze"
id = "antifreeze"
description = "Ultimate refreshment."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 25
datum/reagent/consumable/ethanol/antifreeze/on_mob_life(var/mob/living/M as mob)
if (M.bodytemperature < 330)
M.bodytemperature = min(330, M.bodytemperature + (20 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310 is the normal bodytemp. 310.055
..()
return
datum/reagent/consumable/ethanol/barefoot
name = "Barefoot"
id = "barefoot"
description = "Barefoot and pregnant"
color = "#664300" // rgb: 102, 67, 0
boozepwr = 45
datum/reagent/consumable/ethanol/snowwhite
name = "Snow White"
id = "snowwhite"
description = "A cold refreshment"
color = "#FFFFFF" // rgb: 255, 255, 255
boozepwr = 45
datum/reagent/consumable/ethanol/demonsblood
name = "Demons Blood"
id = "demonsblood"
description = "AHHHH!!!!"
color = "#820000" // rgb: 130, 0, 0
boozepwr = 35
datum/reagent/consumable/ethanol/vodkatonic
name = "Vodka and Tonic"
id = "vodkatonic"
description = "For when a gin and tonic isn't russian enough."
color = "#0064C8" // rgb: 0, 100, 200
boozepwr = 35
datum/reagent/consumable/ethanol/ginfizz
name = "Gin Fizz"
id = "ginfizz"
description = "Refreshingly lemony, deliciously dry."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 45
datum/reagent/consumable/ethanol/bahama_mama
name = "Bahama mama"
id = "bahama_mama"
description = "Tropical cocktail."
color = "#FF7F3B" // rgb: 255, 127, 59
boozepwr = 35
datum/reagent/consumable/ethanol/singulo
name = "Singulo"
id = "singulo"
description = "A blue-space beverage!"
color = "#2E6671" // rgb: 46, 102, 113
boozepwr = 15
datum/reagent/consumable/ethanol/sbiten
name = "Sbiten"
id = "sbiten"
description = "A spicy Vodka! Might be a little hot for the little guys!"
color = "#664300" // rgb: 102, 67, 0
boozepwr = 35
datum/reagent/consumable/ethanol/sbiten/on_mob_life(var/mob/living/M as mob)
if (M.bodytemperature < 360)
M.bodytemperature = min(360, M.bodytemperature + (50 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310 is the normal bodytemp. 310.055
..()
return
datum/reagent/consumable/ethanol/devilskiss
name = "Devils Kiss"
id = "devilskiss"
description = "Creepy time!"
color = "#A68310" // rgb: 166, 131, 16
boozepwr = 35
datum/reagent/consumable/ethanol/red_mead
name = "Red Mead"
id = "red_mead"
description = "The true Viking drink! Even though it has a strange red color."
color = "#C73C00" // rgb: 199, 60, 0
boozepwr = 45
datum/reagent/consumable/ethanol/mead
name = "Mead"
id = "mead"
description = "A Vikings drink, though a cheap one."
color = "#664300" // rgb: 102, 67, 0
nutriment_factor = 1 * REAGENTS_METABOLISM
boozepwr = 45
datum/reagent/consumable/ethanol/iced_beer
name = "Iced Beer"
id = "iced_beer"
description = "A beer which is so cold the air around it freezes."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 55
datum/reagent/consumable/ethanol/iced_beer/on_mob_life(var/mob/living/M as mob)
if(M.bodytemperature > 270)
M.bodytemperature = max(270, M.bodytemperature - (20 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310 is the normal bodytemp. 310.055
..()
return
datum/reagent/consumable/ethanol/grog
name = "Grog"
id = "grog"
description = "Watered down rum, Nanotrasen approves!"
color = "#664300" // rgb: 102, 67, 0
boozepwr = 90
datum/reagent/consumable/ethanol/aloe
name = "Aloe"
id = "aloe"
description = "So very, very, very good."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 35
datum/reagent/consumable/ethanol/andalusia
name = "Andalusia"
id = "andalusia"
description = "A nice, strange named drink."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 35
datum/reagent/consumable/ethanol/alliescocktail
name = "Allies Cocktail"
id = "alliescocktail"
description = "A drink made from your allies, not as sweet as when made from your enemies."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 35
datum/reagent/consumable/ethanol/acid_spit
name = "Acid Spit"
id = "acidspit"
description = "A drink for the daring, can be deadly if incorrectly prepared!"
color = "#365000" // rgb: 54, 80, 0
boozepwr = 45
datum/reagent/consumable/ethanol/amasec
name = "Amasec"
id = "amasec"
description = "Official drink of the Nanotrasen Gun-Club!"
color = "#664300" // rgb: 102, 67, 0
boozepwr = 35
datum/reagent/consumable/ethanol/changelingsting
name = "Changeling Sting"
id = "changelingsting"
description = "You take a tiny sip and feel a burning sensation..."
color = "#2E6671" // rgb: 46, 102, 113
boozepwr = 15
datum/reagent/consumable/ethanol/irishcarbomb
name = "Irish Car Bomb"
id = "irishcarbomb"
description = "Mmm, tastes like chocolate cake..."
color = "#2E6671" // rgb: 46, 102, 113
boozepwr = 25
datum/reagent/consumable/ethanol/syndicatebomb
name = "Syndicate Bomb"
id = "syndicatebomb"
description = "Tastes like terrorism!"
color = "#2E6671" // rgb: 46, 102, 113
boozepwr = 15
datum/reagent/consumable/ethanol/erikasurprise
name = "Erika Surprise"
id = "erikasurprise"
description = "The surprise is, it's green!"
color = "#2E6671" // rgb: 46, 102, 113
boozepwr = 35
datum/reagent/consumable/ethanol/driestmartini
name = "Driest Martini"
id = "driestmartini"
description = "Only for the experienced. You think you see sand floating in the glass."
nutriment_factor = 1 * REAGENTS_METABOLISM
color = "#2E6671" // rgb: 46, 102, 113
boozepwr = 25
datum/reagent/consumable/ethanol/bananahonk
name = "Banana Mama"
id = "bananahonk"
description = "A drink from Clown Heaven."
nutriment_factor = 1 * REAGENTS_METABOLISM
color = "#FFFF91" // rgb: 255, 255, 140
boozepwr = 25
datum/reagent/consumable/ethanol/bananahonk/on_mob_life(var/mob/living/M as mob)
if( ( istype(M, /mob/living/carbon/human) && M.job in list("Clown") ) || istype(M, /mob/living/carbon/monkey) )
M.heal_organ_damage(1,1)
..()
return
datum/reagent/consumable/ethanol/silencer
name = "Silencer"
id = "silencer"
description = "A drink from Mime Heaven."
nutriment_factor = 1 * REAGENTS_METABOLISM
color = "#664300" // rgb: 102, 67, 0
boozepwr = 15
datum/reagent/consumable/ethanol/silencer/on_mob_life(var/mob/living/M as mob)
if(istype(M, /mob/living/carbon/human) && M.job in list("Mime"))
M.heal_organ_damage(1,1)
..()
return
@@ -0,0 +1,537 @@
#define REM REAGENTS_EFFECT_MULTIPLIER
/////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////// DRINKS BELOW, Beer is up there though, along with cola. Cap'n Pete's Cuban Spiced Rum////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////
datum/reagent/consumable/orangejuice
name = "Orange juice"
id = "orangejuice"
description = "Both delicious AND rich in Vitamin C, what more do you need?"
color = "#E78108" // rgb: 231, 129, 8
datum/reagent/consumable/orangejuice/on_mob_life(var/mob/living/M as mob)
if(M.getOxyLoss() && prob(30))
M.adjustOxyLoss(-1)
..()
return
datum/reagent/consumable/tomatojuice
name = "Tomato Juice"
id = "tomatojuice"
description = "Tomatoes made into juice. What a waste of big, juicy tomatoes, huh?"
color = "#731008" // rgb: 115, 16, 8
datum/reagent/consumable/tomatojuice/on_mob_life(var/mob/living/M as mob)
if(M.getFireLoss() && prob(20))
M.heal_organ_damage(0,1)
..()
return
datum/reagent/consumable/limejuice
name = "Lime Juice"
id = "limejuice"
description = "The sweet-sour juice of limes."
color = "#365E30" // rgb: 54, 94, 48
datum/reagent/consumable/limejuice/on_mob_life(var/mob/living/M as mob)
if(M.getToxLoss() && prob(20))
M.adjustToxLoss(-1*REM)
..()
return
datum/reagent/consumable/carrotjuice
name = "Carrot juice"
id = "carrotjuice"
description = "It is just like a carrot but without crunching."
color = "#973800" // rgb: 151, 56, 0
datum/reagent/consumable/carrotjuice/on_mob_life(var/mob/living/M as mob)
M.eye_blurry = max(M.eye_blurry-1 , 0)
M.eye_blind = max(M.eye_blind-1 , 0)
if(!data)
data = 1
switch(data)
if(1 to 20)
//nothing
if(21 to INFINITY)
if (prob(data-10))
M.disabilities &= ~NEARSIGHTED
data++
..()
return
datum/reagent/consumable/berryjuice
name = "Berry Juice"
id = "berryjuice"
description = "A delicious blend of several different kinds of berries."
color = "#863333" // rgb: 134, 51, 51
datum/reagent/consumable/poisonberryjuice
name = "Poison Berry Juice"
id = "poisonberryjuice"
description = "A tasty juice blended from various kinds of very deadly and toxic berries."
color = "#863353" // rgb: 134, 51, 83
datum/reagent/consumable/poisonberryjuice/on_mob_life(var/mob/living/M as mob)
M.adjustToxLoss(1)
..()
return
datum/reagent/consumable/watermelonjuice
name = "Watermelon Juice"
id = "watermelonjuice"
description = "Delicious juice made from watermelon."
color = "#863333" // rgb: 134, 51, 51
datum/reagent/consumable/lemonjuice
name = "Lemon Juice"
id = "lemonjuice"
description = "This juice is VERY sour."
color = "#863333" // rgb: 175, 175, 0
datum/reagent/consumable/banana
name = "Banana Juice"
id = "banana"
description = "The raw essence of a banana. HONK"
color = "#863333" // rgb: 175, 175, 0
datum/reagent/consumable/banana/on_mob_life(var/mob/living/M as mob)
if( ( istype(M, /mob/living/carbon/human) && M.job in list("Clown") ) || istype(M, /mob/living/carbon/monkey) )
M.heal_organ_damage(1,1)
..()
datum/reagent/consumable/nothing
name = "Nothing"
id = "nothing"
description = "Absolutely nothing."
datum/reagent/consumable/nothing/on_mob_life(var/mob/living/M as mob)
if(istype(M, /mob/living/carbon/human) && M.job in list("Mime"))
M.heal_organ_damage(1,1)
..()
datum/reagent/consumable/potato_juice
name = "Potato Juice"
id = "potato"
description = "Juice of the potato. Bleh."
nutriment_factor = 2 * REAGENTS_METABOLISM
color = "#302000" // rgb: 48, 32, 0
datum/reagent/consumable/milk
name = "Milk"
id = "milk"
description = "An opaque white liquid produced by the mammary glands of mammals."
color = "#DFDFDF" // rgb: 223, 223, 223
datum/reagent/consumable/milk/on_mob_life(var/mob/living/M as mob)
if(M.getBruteLoss() && prob(20))
M.heal_organ_damage(1,0)
if(holder.has_reagent("capsaicin"))
holder.remove_reagent("capsaicin", 2)
..()
return
datum/reagent/consumable/soymilk
name = "Soy Milk"
id = "soymilk"
description = "An opaque white liquid made from soybeans."
color = "#DFDFC7" // rgb: 223, 223, 199
datum/reagent/consumable/soymilk/on_mob_life(var/mob/living/M as mob)
if(M.getBruteLoss() && prob(20))
M.heal_organ_damage(1,0)
..()
return
datum/reagent/consumable/cream
name = "Cream"
id = "cream"
description = "The fatty, still liquid part of milk. Why don't you mix this with sum scotch, eh?"
color = "#DFD7AF" // rgb: 223, 215, 175
datum/reagent/consumable/cream/on_mob_life(var/mob/living/M as mob)
if(M.getBruteLoss() && prob(20))
M.heal_organ_damage(1,0)
..()
return
datum/reagent/consumable/coffee
name = "Coffee"
id = "coffee"
description = "Coffee is a brewed drink prepared from roasted seeds, commonly called coffee beans, of the coffee plant."
color = "#482000" // rgb: 72, 32, 0
nutriment_factor = 0
datum/reagent/consumable/coffee/on_mob_life(var/mob/living/M as mob)
M.dizziness = max(0,M.dizziness-5)
M.drowsyness = max(0,M.drowsyness-3)
M.sleeping = max(0,M.sleeping - 2)
if (M.bodytemperature < 310)//310 is the normal bodytemp. 310.055
M.bodytemperature = min(310, M.bodytemperature + (25 * TEMPERATURE_DAMAGE_COEFFICIENT))
M.Jitter(5)
if(holder.has_reagent("frostoil"))
holder.remove_reagent("frostoil", 5)
..()
return
datum/reagent/consumable/tea
name = "Tea"
id = "tea"
description = "Tasty black tea, it has antioxidants, it's good for you!"
color = "#101000" // rgb: 16, 16, 0
nutriment_factor = 0
datum/reagent/consumable/tea/on_mob_life(var/mob/living/M as mob)
M.dizziness = max(0,M.dizziness-2)
M.drowsyness = max(0,M.drowsyness-1)
M.jitteriness = max(0,M.jitteriness-3)
M.sleeping = max(0,M.sleeping-1)
if(M.getToxLoss() && prob(20))
M.adjustToxLoss(-1)
if (M.bodytemperature < 310) //310 is the normal bodytemp. 310.055
M.bodytemperature = min(310, M.bodytemperature + (20 * TEMPERATURE_DAMAGE_COEFFICIENT))
..()
return
datum/reagent/consumable/icecoffee
name = "Iced Coffee"
id = "icecoffee"
description = "Coffee and ice, refreshing and cool."
color = "#102838" // rgb: 16, 40, 56
nutriment_factor = 0
datum/reagent/consumable/icecoffee/on_mob_life(var/mob/living/M as mob)
M.dizziness = max(0,M.dizziness-5)
M.drowsyness = max(0,M.drowsyness-3)
M.sleeping = max(0,M.sleeping-2)
if (M.bodytemperature > 310)//310 is the normal bodytemp. 310.055
M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
M.Jitter(5)
..()
return
datum/reagent/consumable/icetea
name = "Iced Tea"
id = "icetea"
description = "No relation to a certain rap artist/ actor."
color = "#104038" // rgb: 16, 64, 56
nutriment_factor = 0
datum/reagent/consumable/icetea/on_mob_life(var/mob/living/M as mob)
M.dizziness = max(0,M.dizziness-2)
M.drowsyness = max(0,M.drowsyness-1)
M.sleeping = max(0,M.sleeping-2)
if(M.getToxLoss() && prob(20))
M.adjustToxLoss(-1)
if (M.bodytemperature > 310)//310 is the normal bodytemp. 310.055
M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
..()
return
datum/reagent/consumable/space_cola
name = "Cola"
id = "cola"
description = "A refreshing beverage."
color = "#100800" // rgb: 16, 8, 0
datum/reagent/consumable/space_cola/on_mob_life(var/mob/living/M as mob)
M.drowsyness = max(0,M.drowsyness-5)
if (M.bodytemperature > 310)//310 is the normal bodytemp. 310.055
M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
..()
return
datum/reagent/consumable/nuka_cola
name = "Nuka Cola"
id = "nuka_cola"
description = "Cola, cola never changes."
color = "#100800" // rgb: 16, 8, 0
datum/reagent/consumable/nuka_cola/on_mob_life(var/mob/living/M as mob)
M.Jitter(20)
M.druggy = max(M.druggy, 30)
M.dizziness +=5
M.drowsyness = 0
M.sleeping = max(0,M.sleeping-2)
M.status_flags |= GOTTAGOFAST
if (M.bodytemperature > 310)//310 is the normal bodytemp. 310.055
M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
..()
return
datum/reagent/consumable/spacemountainwind
name = "Space Mountain Wind"
id = "spacemountainwind"
description = "Blows right through you like a space wind."
color = "#102000" // rgb: 16, 32, 0
datum/reagent/consumable/spacemountainwind/on_mob_life(var/mob/living/M as mob)
M.drowsyness = max(0,M.drowsyness-7)
M.sleeping = max(0,M.sleeping-1)
if (M.bodytemperature > 310)
M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
M.Jitter(5)
..()
return
datum/reagent/consumable/dr_gibb
name = "Dr. Gibb"
id = "dr_gibb"
description = "A delicious blend of 42 different flavours"
color = "#102000" // rgb: 16, 32, 0
datum/reagent/consumable/dr_gibb/on_mob_life(var/mob/living/M as mob)
M.drowsyness = max(0,M.drowsyness-6)
if (M.bodytemperature > 310)
M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310 is the normal bodytemp. 310.055
..()
return
datum/reagent/consumable/space_up
name = "Space-Up"
id = "space_up"
description = "Tastes like a hull breach in your mouth."
color = "#00FF00" // rgb: 0, 255, 0
datum/reagent/consumable/space_up/on_mob_life(var/mob/living/M as mob)
if (M.bodytemperature > 310)
M.bodytemperature = max(310, M.bodytemperature - (8 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310 is the normal bodytemp. 310.055
..()
return
datum/reagent/consumable/lemon_lime
name = "Lemon Lime"
description = "A tangy substance made of 0.5% natural citrus!"
id = "lemon_lime"
color = "#8CFF00" // rgb: 135, 255, 0
datum/reagent/consumable/lemon_lime/on_mob_life(var/mob/living/M as mob)
if (M.bodytemperature > 310)
M.bodytemperature = max(310, M.bodytemperature - (8 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310 is the normal bodytemp. 310.055
..()
return
datum/reagent/consumable/sodawater
name = "Soda Water"
id = "sodawater"
description = "A can of club soda. Why not make a scotch and soda?"
color = "#619494" // rgb: 97, 148, 148
datum/reagent/consumable/sodawater/on_mob_life(var/mob/living/M as mob)
M.dizziness = max(0,M.dizziness-5)
M.drowsyness = max(0,M.drowsyness-3)
if (M.bodytemperature > 310)
M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
..()
return
datum/reagent/consumable/tonic
name = "Tonic Water"
id = "tonic"
description = "It tastes strange but at least the quinine keeps the Space Malaria at bay."
color = "#0064C8" // rgb: 0, 100, 200
datum/reagent/consumable/tonic/on_mob_life(var/mob/living/M as mob)
M.dizziness = max(0,M.dizziness-5)
M.drowsyness = max(0,M.drowsyness-3)
M.sleeping = max(0,M.sleeping-2)
if (M.bodytemperature > 310)
M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
..()
return
datum/reagent/consumable/ice
name = "Ice"
id = "ice"
description = "Frozen water, your dentist wouldn't like you chewing this."
reagent_state = SOLID
color = "#619494" // rgb: 97, 148, 148
datum/reagent/consumable/ice/on_mob_life(var/mob/living/M as mob)
M.bodytemperature -= 5 * TEMPERATURE_DAMAGE_COEFFICIENT
..()
return
datum/reagent/consumable/soy_latte
name = "Soy Latte"
id = "soy_latte"
description = "A nice and tasty beverage while you are reading your hippie books."
color = "#664300" // rgb: 102, 67, 0
datum/reagent/consumable/soy_latte/on_mob_life(var/mob/living/M as mob)
M.dizziness = max(0,M.dizziness-5)
M.drowsyness = max(0,M.drowsyness-3)
M.sleeping = 0
if (M.bodytemperature < 310)//310 is the normal bodytemp. 310.055
M.bodytemperature = min(310, M.bodytemperature + (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
M.Jitter(5)
if(M.getBruteLoss() && prob(20))
M.heal_organ_damage(1,0)
..()
return
datum/reagent/consumable/cafe_latte
name = "Cafe Latte"
id = "cafe_latte"
description = "A nice, strong and tasty beverage while you are reading."
color = "#664300" // rgb: 102, 67, 0
datum/reagent/consumable/cafe_latte/on_mob_life(var/mob/living/M as mob)
M.dizziness = max(0,M.dizziness-5)
M.drowsyness = max(0,M.drowsyness-3)
M.sleeping = 0
if (M.bodytemperature < 310)//310 is the normal bodytemp. 310.055
M.bodytemperature = min(310, M.bodytemperature + (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
M.Jitter(5)
if(M.getBruteLoss() && prob(20))
M.heal_organ_damage(1,0)
..()
return
datum/reagent/consumable/doctor_delight
name = "The Doctor's Delight"
id = "doctorsdelight"
description = "A gulp a day keeps the MediBot away. That's probably for the best."
color = "#FF8CFF" // rgb: 255, 140, 255
datum/reagent/consumable/doctor_delight/on_mob_life(var/mob/living/M as mob)
if(M.getOxyLoss() && prob(80))
M.adjustOxyLoss(-2)
if(M.getBruteLoss() && prob(80))
M.heal_organ_damage(2,0)
if(M.getFireLoss() && prob(80))
M.heal_organ_damage(0,2)
if(M.getToxLoss() && prob(80))
M.adjustToxLoss(-2)
if(M.dizziness !=0)
M.dizziness = max(0,M.dizziness-15)
if(M.confused !=0)
M.confused = max(0,M.confused - 5)
holder.remove_reagent(id, metabolization_rate/M.metabolism_efficiency)
return
//////////////////////////////////////////////The ten friggen million reagents that get you drunk//////////////////////////////////////////////
datum/reagent/consumable/atomicbomb
name = "Atomic Bomb"
id = "atomicbomb"
description = "Nuclear proliferation never tasted so good."
color = "#666300" // rgb: 102, 99, 0
datum/reagent/consumable/atomicbomb/on_mob_life(var/mob/living/M as mob)
M.druggy = max(M.druggy, 50)
M.confused = max(M.confused+2,0)
M.Dizzy(10)
if (!M.stuttering)
M.stuttering = 1
M.stuttering += 3
if(!data)
data = 1
data++
switch(data)
if(51 to 200)
M.sleeping += 1
if(201 to INFINITY)
M.sleeping += 1
M.adjustToxLoss(2)
..()
return
datum/reagent/consumable/gargle_blaster
name = "Pan-Galactic Gargle Blaster"
id = "gargleblaster"
description = "Whoah, this stuff looks volatile!"
color = "#664300" // rgb: 102, 67, 0
datum/reagent/consumable/gargle_blaster/on_mob_life(var/mob/living/M as mob)
if(!data)
data = 1
data++
M.dizziness +=6
if(data >= 15 && data <45)
if (!M.stuttering)
M.stuttering = 1
M.stuttering += 3
else if(data >= 45 && prob(50) && data <55)
M.confused = max(M.confused+3,0)
else if(data >=55)
M.druggy = max(M.druggy, 55)
else if(data >=200)
M.adjustToxLoss(2)
..()
return
datum/reagent/consumable/neurotoxin
name = "Neurotoxin"
id = "neurotoxin"
description = "A strong neurotoxin that puts the subject into a death-like state."
color = "#2E2E61" // rgb: 46, 46, 97
datum/reagent/consumable/neurotoxin/on_mob_life(var/mob/living/carbon/M as mob)
M.weakened = max(M.weakened, 3)
if(!data)
data = 1
data++
M.dizziness +=6
if(data >= 15 && data <45)
if (!M.stuttering)
M.stuttering = 1
M.stuttering += 3
else if(data >= 45 && prob(50) && data <55)
M.confused = max(M.confused+3,0)
else if(data >=55)
M.druggy = max(M.druggy, 55)
else if(data >=200)
M.adjustToxLoss(2)
..()
return
datum/reagent/consumable/hippies_delight
name = "Hippie's Delight"
id = "hippiesdelight"
description = "You just don't get it maaaan."
color = "#664300" // rgb: 102, 67, 0
nutriment_factor = 0
metabolization_rate = 0.2 * REAGENTS_METABOLISM
datum/reagent/consumable/hippies_delight/on_mob_life(var/mob/living/M as mob)
M.druggy = max(M.druggy, 50)
if(!data)
data = 1
data++
switch(data)
if(1 to 5)
if (!M.stuttering) M.stuttering = 1
M.Dizzy(10)
if(prob(10)) M.emote(pick("twitch","giggle"))
if(5 to 10)
if (!M.stuttering) M.stuttering = 1
M.Jitter(20)
M.Dizzy(20)
M.druggy = max(M.druggy, 45)
if(prob(20)) M.emote(pick("twitch","giggle"))
if (10 to 200)
if (!M.stuttering) M.stuttering = 1
M.Jitter(40)
M.Dizzy(40)
M.druggy = max(M.druggy, 60)
if(prob(30)) M.emote(pick("twitch","giggle"))
if(200 to INFINITY)
if (!M.stuttering) M.stuttering = 1
M.Jitter(60)
M.Dizzy(60)
M.druggy = max(M.druggy, 75)
if(prob(40)) M.emote(pick("twitch","giggle"))
if(prob(30)) M.adjustToxLoss(2)
..()
return
// Undefine the alias for REAGENTS_EFFECT_MULTIPLER
#undef REM
@@ -0,0 +1,388 @@
///////////////////////////////////////////////////////////////////
//Food Reagents
//////////////////////////////////////////////////////////////////
// Part of the food code. Also is where all the food
// condiments, additives, and such go.
datum/reagent/consumable
name = "Consumable"
id = "consumable"
var/nutriment_factor = 1 * REAGENTS_METABOLISM
datum/reagent/consumable/on_mob_life(var/mob/living/M as mob)
M.nutrition += nutriment_factor
holder.remove_reagent(src.id, metabolization_rate)
datum/reagent/consumable/nutriment
name = "Nutriment"
id = "nutriment"
description = "All the vitamins, minerals, and carbohydrates the body needs in pure form."
reagent_state = SOLID
nutriment_factor = 15 * REAGENTS_METABOLISM
color = "#664330" // rgb: 102, 67, 48
datum/reagent/consumable/nutriment/on_mob_life(var/mob/living/M as mob)
if(prob(50))
M.heal_organ_damage(1,0)
..()
return
datum/reagent/consumable/vitamin
name = "Vitamin"
id = "vitamin"
description = "All the best vitamins, minerals, and carbohydrates the body needs in pure form."
reagent_state = SOLID
color = "#664330" // rgb: 102, 67, 48
datum/reagent/consumable/vitamin/on_mob_life(var/mob/living/M as mob)
if(prob(50))
M.heal_organ_damage(1,1)
if(M.satiety < 600)
M.satiety += 20
..()
return
datum/reagent/consumable/sugar
name = "Sugar"
id = "sugar"
description = "The organic compound commonly known as table sugar and sometimes called saccharose. This white, odorless, crystalline powder has a pleasing, sweet taste."
reagent_state = SOLID
color = "#FFFFFF" // rgb: 255, 255, 255
nutriment_factor = 10 * REAGENTS_METABOLISM
metabolization_rate = 2 * REAGENTS_METABOLISM
datum/reagent/consumable/sugar/on_mob_life(var/mob/living/M as mob)
if(M.satiety > -200)
M.satiety -= 20 //eating sugar makes you more hungry over time by making your hunger drop faster.
M.nutrition += max(((NUTRITION_LEVEL_FED + 50) - M.nutrition )/100, 0) * nutriment_factor // sugar doesn't help your hunger if your stomach is nearly full
holder.remove_reagent(src.id, metabolization_rate)
datum/reagent/consumable/virus_food
name = "Virus Food"
id = "virusfood"
description = "A mixture of water and milk. Virus cells can use this mixture to reproduce."
nutriment_factor = 2 * REAGENTS_METABOLISM
color = "#899613" // rgb: 137, 150, 19
datum/reagent/consumable/soysauce
name = "Soysauce"
id = "soysauce"
description = "A salty sauce made from the soy plant."
nutriment_factor = 2 * REAGENTS_METABOLISM
color = "#792300" // rgb: 121, 35, 0
datum/reagent/consumable/ketchup
name = "Ketchup"
id = "ketchup"
description = "Ketchup, catsup, whatever. It's tomato paste."
nutriment_factor = 5 * REAGENTS_METABOLISM
color = "#731008" // rgb: 115, 16, 8
datum/reagent/consumable/capsaicin
name = "Capsaicin Oil"
id = "capsaicin"
description = "This is what makes chilis hot."
color = "#B31008" // rgb: 179, 16, 8
datum/reagent/consumable/capsaicin/on_mob_life(var/mob/living/M as mob)
if(!data)
data = 1
switch(data)
if(1 to 15)
M.bodytemperature += 5 * TEMPERATURE_DAMAGE_COEFFICIENT
if(holder.has_reagent("frostoil"))
holder.remove_reagent("frostoil", 5)
if(istype(M, /mob/living/carbon/slime))
M.bodytemperature += rand(5,20)
if(15 to 25)
M.bodytemperature += 10 * TEMPERATURE_DAMAGE_COEFFICIENT
if(istype(M, /mob/living/carbon/slime))
M.bodytemperature += rand(10,20)
if(25 to INFINITY)
M.bodytemperature += 15 * TEMPERATURE_DAMAGE_COEFFICIENT
if(istype(M, /mob/living/carbon/slime))
M.bodytemperature += rand(15,20)
data++
..()
return
datum/reagent/consumable/condensedcapsaicin
name = "Condensed Capsaicin"
id = "condensedcapsaicin"
description = "A chemical agent used for self-defense and in police work."
color = "#B31008" // rgb: 179, 16, 8
datum/reagent/consumable/condensedcapsaicin/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
if(!istype(M, /mob/living/carbon/human) && !istype(M, /mob/living/carbon/monkey))
return
var/mob/living/carbon/victim = M
if(method == TOUCH)
//check for protection
var/mouth_covered = 0
var/eyes_covered = 0
var/obj/item/safe_thing = null
//monkeys and humans can have masks
if( victim.wear_mask )
if ( victim.wear_mask.flags & MASKCOVERSEYES )
eyes_covered = 1
safe_thing = victim.wear_mask
if ( victim.wear_mask.flags & MASKCOVERSMOUTH )
mouth_covered = 1
safe_thing = victim.wear_mask
//only humans can have helmets and glasses
if(istype(victim, /mob/living/carbon/human))
var/mob/living/carbon/human/H = victim
if( H.head )
if ( H.head.flags & MASKCOVERSEYES )
eyes_covered = 1
safe_thing = H.head
if ( H.head.flags & MASKCOVERSMOUTH )
mouth_covered = 1
safe_thing = H.head
if(H.glasses)
eyes_covered = 1
if ( !safe_thing )
safe_thing = H.glasses
//actually handle the pepperspray effects
if ( eyes_covered && mouth_covered )
return
else if ( mouth_covered ) // Reduced effects if partially protected
if(prob(5))
victim.emote("scream")
victim.eye_blurry = max(M.eye_blurry, 3)
victim.eye_blind = max(M.eye_blind, 1)
victim.confused = max(M.confused, 3)
victim.damageoverlaytemp = 60
victim.Weaken(3)
victim.drop_item()
return
else if ( eyes_covered ) // Eye cover is better than mouth cover
victim.eye_blurry = max(M.eye_blurry, 3)
victim.damageoverlaytemp = 30
return
else // Oh dear :D
if(prob(5))
victim.emote("scream")
victim.eye_blurry = max(M.eye_blurry, 5)
victim.eye_blind = max(M.eye_blind, 2)
victim.confused = max(M.confused, 6)
victim.damageoverlaytemp = 75
victim.Weaken(5)
victim.drop_item()
datum/reagent/consumable/condensedcapsaicin/on_mob_life(var/mob/living/M as mob)
if(prob(5))
M.visible_message("<span class='warning'>[M] [pick("dry heaves!","coughs!","splutters!")]</span>")
..()
return
datum/reagent/consumable/frostoil
name = "Frost Oil"
id = "frostoil"
description = "A special oil that noticably chills the body. Extraced from Icepeppers."
color = "#B31008" // rgb: 139, 166, 233
datum/reagent/consumable/frostoil/on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
switch(data)
if(1 to 15)
M.bodytemperature -= 5 * TEMPERATURE_DAMAGE_COEFFICIENT
if(holder.has_reagent("capsaicin"))
holder.remove_reagent("capsaicin", 5)
if(istype(M, /mob/living/carbon/slime))
M.bodytemperature -= rand(5,20)
if(15 to 25)
M.bodytemperature -= 10 * TEMPERATURE_DAMAGE_COEFFICIENT
if(istype(M, /mob/living/carbon/slime))
M.bodytemperature -= rand(10,20)
if(25 to INFINITY)
M.bodytemperature -= 15 * TEMPERATURE_DAMAGE_COEFFICIENT
if(prob(1))
M.emote("shiver")
if(istype(M, /mob/living/carbon/slime))
M.bodytemperature -= rand(15,20)
data++
..()
return
datum/reagent/consumable/frostoil/reaction_turf(var/turf/simulated/T, var/volume)
if(volume >= 5)
for(var/mob/living/carbon/slime/M in T)
M.adjustToxLoss(rand(15,30))
//if(istype(T))
// T.atmos_spawn_air(SPAWN_COLD)
datum/reagent/consumable/sodiumchloride
name = "Table Salt"
id = "sodiumchloride"
description = "A salt made of sodium chloride. Commonly used to season food."
reagent_state = SOLID
color = "#FFFFFF" // rgb: 255,255,255
datum/reagent/consumable/blackpepper
name = "Black Pepper"
id = "blackpepper"
description = "A powder ground from peppercorns. *AAAACHOOO*"
reagent_state = SOLID
// no color (ie, black)
datum/reagent/consumable/coco
name = "Coco Powder"
id = "coco"
description = "A fatty, bitter paste made from coco beans."
reagent_state = SOLID
nutriment_factor = 5 * REAGENTS_METABOLISM
color = "#302000" // rgb: 48, 32, 0
datum/reagent/consumable/hot_coco
name = "Hot Chocolate"
id = "hot_coco"
description = "Made with love! And coco beans."
nutriment_factor = 3 * REAGENTS_METABOLISM
color = "#403010" // rgb: 64, 48, 16
datum/reagent/consumable/hot_coco/on_mob_life(var/mob/living/M as mob)
if (M.bodytemperature < 310)//310 is the normal bodytemp. 310.055
M.bodytemperature = min(310, M.bodytemperature + (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
..()
return
datum/reagent/mushroomhallucinogen
name = "Mushroom Hallucinogen"
id = "mushroomhallucinogen"
description = "A strong hallucinogenic drug derived from certain species of mushroom."
color = "#E700E7" // rgb: 231, 0, 231
metabolization_rate = 0.2 * REAGENTS_METABOLISM
datum/reagent/mushroomhallucinogen/on_mob_life(var/mob/living/M as mob)
M.druggy = max(M.druggy, 30)
if(!data)
data = 1
switch(data)
if(1 to 5)
if (!M.stuttering)
M.stuttering = 1
M.Dizzy(5)
if(prob(10))
M.emote(pick("twitch","giggle"))
if(5 to 10)
if (!M.stuttering)
M.stuttering = 1
M.Jitter(10)
M.Dizzy(10)
M.druggy = max(M.druggy, 35)
if(prob(20))
M.emote(pick("twitch","giggle"))
if (10 to INFINITY)
if (!M.stuttering)
M.stuttering = 1
M.Jitter(20)
M.Dizzy(20)
M.druggy = max(M.druggy, 40)
if(prob(30))
M.emote(pick("twitch","giggle"))
data++
..()
return
datum/reagent/consumable/sprinkles
name = "Sprinkles"
id = "sprinkles"
description = "Multi-colored little bits of sugar, commonly found on donuts. Loved by cops."
color = "#FF00FF" // rgb: 255, 0, 255
datum/reagent/consumable/sprinkles/on_mob_life(var/mob/living/M as mob)
if(istype(M, /mob/living/carbon/human) && M.job in list("Security Officer", "Head of Security", "Detective", "Warden"))
M.heal_organ_damage(1,1)
..()
return
..()
datum/reagent/consumable/cornoil
name = "Corn Oil"
id = "cornoil"
description = "An oil derived from various types of corn."
nutriment_factor = 20 * REAGENTS_METABOLISM
color = "#302000" // rgb: 48, 32, 0
datum/reagent/consumable/cornoil/reaction_turf(var/turf/simulated/T, var/volume)
if (!istype(T))
return
src = null
if(volume >= 3)
T.MakeSlippery()
var/hotspot = (locate(/obj/effect/hotspot) in T)
if(hotspot)
var/datum/gas_mixture/lowertemp = T.remove_air( T:air:total_moles() )
lowertemp.temperature = max( min(lowertemp.temperature-2000,lowertemp.temperature / 2) ,0)
lowertemp.react()
T.assume_air(lowertemp)
qdel(hotspot)
datum/reagent/consumable/enzyme
name = "Universal Enzyme"
id = "enzyme"
description = "A universal enzyme used in the preperation of certain chemicals and foods."
color = "#365E30" // rgb: 54, 94, 48
datum/reagent/consumable/dry_ramen
name = "Dry Ramen"
id = "dry_ramen"
description = "Space age food, since August 25, 1958. Contains dried noodles, vegetables, and chemicals that boil in contact with water."
reagent_state = SOLID
color = "#302000" // rgb: 48, 32, 0
datum/reagent/consumable/hot_ramen
name = "Hot Ramen"
id = "hot_ramen"
description = "The noodles are boiled, the flavors are artificial, just like being back in school."
nutriment_factor = 5 * REAGENTS_METABOLISM
color = "#302000" // rgb: 48, 32, 0
datum/reagent/consumable/hot_ramen/on_mob_life(var/mob/living/M as mob)
if (M.bodytemperature < 310)//310 is the normal bodytemp. 310.055
M.bodytemperature = min(310, M.bodytemperature + (10 * TEMPERATURE_DAMAGE_COEFFICIENT))
..()
return
datum/reagent/consumable/hell_ramen
name = "Hell Ramen"
id = "hell_ramen"
description = "The noodles are boiled, the flavors are artificial, just like being back in school."
nutriment_factor = 5 * REAGENTS_METABOLISM
color = "#302000" // rgb: 48, 32, 0
datum/reagent/consumable/hell_ramen/on_mob_life(var/mob/living/M as mob)
M.bodytemperature += 10 * TEMPERATURE_DAMAGE_COEFFICIENT
..()
return
datum/reagent/consumable/flour
name = "flour"
id = "flour"
description = "This is what you rub all over yourself to pretend to be a ghost."
reagent_state = SOLID
color = "#FFFFFF" // rgb: 0, 0, 0
datum/reagent/consumable/flour/reaction_turf(var/turf/T, var/volume)
src = null
if(!istype(T, /turf/space))
new /obj/effect/decal/cleanable/flour(T)
datum/reagent/consumable/cherryjelly
name = "Cherry Jelly"
id = "cherryjelly"
description = "Totally the best. Only to be spread on foods with excellent lateral symmetry."
color = "#801E28" // rgb: 128, 30, 40
@@ -0,0 +1,399 @@
#define REM REAGENTS_EFFECT_MULTIPLIER
//////////////////////////////////////////////////////////////////////////////////////////
// MEDICINE REAGENTS
//////////////////////////////////////////////////////////////////////////////////////
// where all the reagents related to medicine go.
datum/reagent/medicine
name = "Medicine"
id = "medicine"
datum/reagent/medicine/on_mob_life(var/mob/living/M as mob)
holder.remove_reagent(src.id, metabolization_rate / M.metabolism_efficiency) //medicine reagents stay longer if you have a better metabolism
datum/reagent/medicine/ethylredoxrazine // FUCK YOU, ALCOHOL
name = "Ethylredoxrazine"
id = "ethylredoxrazine"
description = "A powerful oxidizer that reacts with ethanol."
reagent_state = SOLID
color = "#605048" // rgb: 96, 80, 72
datum/reagent/medicine/ethylredoxrazine/on_mob_life(var/mob/living/M as mob)
M.dizziness = 0
M.drowsyness = 0
M.stuttering = 0
M.confused = 0
M.reagents.remove_all_type(/datum/reagent/consumable/ethanol, 1*REM, 0, 1)
..()
return
datum/reagent/medicine/lipozine
name = "Lipozine" // The anti-nutriment.
id = "lipozine"
description = "A chemical compound that causes a powerful fat-burning reaction."
color = "#BBEDA4" // rgb: 187, 237, 164
datum/reagent/medicine/lipozine/on_mob_life(var/mob/living/M as mob)
M.nutrition -= 10 * REAGENTS_METABOLISM
M.overeatduration = 0
if(M.nutrition < 0)//Prevent from going into negatives.
M.nutrition = 0
..()
return
datum/reagent/medicine/hyperzine
name = "Hyperzine"
id = "hyperzine"
description = "Hyperzine is a highly effective, long lasting, muscle stimulant."
color = "#C8A5DC" // rgb: 200, 165, 220
metabolization_rate = 0.5 * REAGENTS_METABOLISM
datum/reagent/medicine/hyperzine/on_mob_life(var/mob/living/M as mob)
if(M.stat != DEAD)
if(prob(5))
M.emote(pick("twitch","blink_r","shiver"))
M.status_flags |= GOTTAGOFAST
..()
return
datum/reagent/medicine/leporazine
name = "Leporazine"
id = "leporazine"
description = "Leporazine can be use to stabilize an individuals body temperature."
color = "#C8A5DC" // rgb: 200, 165, 220
datum/reagent/medicine/leporazine/on_mob_life(var/mob/living/M as mob)
if(M.bodytemperature > 310)
M.bodytemperature = max(310, M.bodytemperature - (40 * TEMPERATURE_DAMAGE_COEFFICIENT))
else if(M.bodytemperature < 311)
M.bodytemperature = min(310, M.bodytemperature + (40 * TEMPERATURE_DAMAGE_COEFFICIENT))
..()
datum/reagent/medicine/inaprovaline
name = "Inaprovaline"
id = "inaprovaline"
description = "Inaprovaline is a synaptic stimulant and cardiostimulant. Commonly used to stabilize patients."
color = "#C8A5DC" // rgb: 200, 165, 220
metabolization_rate = 0.5 * REAGENTS_METABOLISM
datum/reagent/medicine/inaprovaline/on_mob_life(var/mob/living/M as mob)
if(M.losebreath >= 10)
M.losebreath = max(10, M.losebreath-5)
..()
return
datum/reagent/medicine/ryetalyn
name = "Ryetalyn"
id = "ryetalyn"
description = "Ryetalyn can cure all genetic abnomalities."
reagent_state = SOLID
color = "#C8A5DC" // rgb: 200, 165, 220
datum/reagent/medicine/ryetalyn/on_mob_life(var/mob/living/M as mob)
var/needs_update = M.mutations.len > 0
M.mutations = list()
M.disabilities = 0
M.sdisabilities = 0
M.jitteriness = 0
// Might need to update appearance for hulk etc.
if(needs_update && ishuman(M))
var/mob/living/carbon/human/H = M
H.update_mutations()
..()
return
datum/reagent/medicine/kelotane
name = "Kelotane"
id = "kelotane"
description = "Kelotane is a drug used to treat burns."
color = "#C8A5DC" // rgb: 200, 165, 220
datum/reagent/medicine/kelotane/on_mob_life(var/mob/living/M as mob)
if(M.stat != DEAD)
M.heal_organ_damage(0,2*REM)
..()
return
datum/reagent/medicine/dermaline
name = "Dermaline"
id = "dermaline"
description = "Dermaline is the next step in burn medication. Works twice as good as kelotane and enables the body to restore even the direst heat-damaged tissue."
color = "#C8A5DC" // rgb: 200, 165, 220
datum/reagent/medicine/dermaline/on_mob_life(var/mob/living/M as mob)
if(M.stat != DEAD) //THE GUY IS **DEAD**! BEREFT OF ALL LIFE HE RESTS IN PEACE etc etc. He does NOT metabolise shit anymore, god DAMN
M.heal_organ_damage(0,3*REM)
..()
return
datum/reagent/medicine/dexalin
name = "Dexalin"
id = "dexalin"
description = "Dexalin is used in the treatment of oxygen deprivation."
color = "#C8A5DC" // rgb: 200, 165, 220
datum/reagent/medicine/dexalin/on_mob_life(var/mob/living/M as mob)
if(M.stat != DEAD)
M.adjustOxyLoss(-2*REM)
if(holder.has_reagent("lexorin"))
holder.remove_reagent("lexorin", 2*REM)
..()
return
datum/reagent/medicine/dexalinp
name = "Dexalin Plus"
id = "dexalinp"
description = "Dexalin Plus is used in the treatment of oxygen deprivation. Its highly effective."
color = "#C8A5DC" // rgb: 200, 165, 220
datum/reagent/medicine/dexalinp/on_mob_life(var/mob/living/M as mob)
if(M.stat != DEAD)
M.adjustOxyLoss(-M.getOxyLoss())
if(holder.has_reagent("lexorin"))
holder.remove_reagent("lexorin", 2*REM)
..()
return
datum/reagent/medicine/tricordrazine
name = "Tricordrazine"
id = "tricordrazine"
description = "Tricordrazine is a highly potent stimulant, originally derived from cordrazine. Can be used to treat a wide range of injuries."
color = "#C8A5DC" // rgb: 200, 165, 220
datum/reagent/medicine/tricordrazine/on_mob_life(var/mob/living/M as mob)
if(M.stat != DEAD)
if(M.getOxyLoss() && prob(80))
M.adjustOxyLoss(-1*REM)
if(M.getBruteLoss() && prob(80))
M.heal_organ_damage(1*REM,0)
if(M.getFireLoss() && prob(80))
M.heal_organ_damage(0,1*REM)
if(M.getToxLoss() && prob(80))
M.adjustToxLoss(-1*REM)
..()
return
datum/reagent/medicine/anti_toxin
name = "Anti-Toxin (Dylovene)"
id = "anti_toxin"
description = "Dylovene is a broad-spectrum antitoxin."
color = "#C8A5DC" // rgb: 200, 165, 220
datum/reagent/medicine/anti_toxin/on_mob_life(var/mob/living/M as mob)
if(M.stat != DEAD)
M.reagents.remove_all_type(/datum/reagent/toxin, 1*REM, 0, 1)
M.drowsyness = max(M.drowsyness-2*REM, 0)
M.hallucination = max(0, M.hallucination - 5*REM)
M.adjustToxLoss(-2*REM)
..()
return
datum/reagent/medicine/adminordrazine //An OP chemical for admins
name = "Adminordrazine"
id = "adminordrazine"
description = "It's magic. We don't have to explain it."
color = "#C8A5DC" // rgb: 200, 165, 220
datum/reagent/medicine/adminordrazine/on_mob_life(var/mob/living/carbon/M as mob)
if(!M) M = holder.my_atom ///This can even heal dead people.
M.reagents.remove_all_type(/datum/reagent/toxin, 5*REM, 0, 1)
M.setCloneLoss(0)
M.setOxyLoss(0)
M.radiation = 0
M.heal_organ_damage(5,5)
M.adjustToxLoss(-5)
M.hallucination = 0
M.setBrainLoss(0)
M.disabilities = 0
M.sdisabilities = 0
M.eye_blurry = 0
M.eye_blind = 0
M.SetWeakened(0)
M.SetStunned(0)
M.SetParalysis(0)
M.silent = 0
M.dizziness = 0
M.drowsyness = 0
M.stuttering = 0
M.confused = 0
M.sleeping = 0
M.jitteriness = 0
for(var/datum/disease/D in M.viruses)
if(D.severity == NONTHREAT)
continue
D.spread_text = "Remissive"
D.stage--
if(D.stage < 1)
D.cure()
..()
return
datum/reagent/medicine/synaptizine
name = "Synaptizine"
id = "synaptizine"
description = "Synaptizine is used to treat various diseases."
color = "#C8A5DC" // rgb: 200, 165, 220
datum/reagent/medicine/synaptizine/on_mob_life(var/mob/living/M as mob)
M.drowsyness = max(M.drowsyness-5, 0)
M.AdjustParalysis(-1)
M.AdjustStunned(-1)
M.AdjustWeakened(-1)
if(holder.has_reagent("mindbreaker"))
holder.remove_reagent("mindbreaker", 5)
M.hallucination = max(0, M.hallucination - 10)
if(prob(60))
M.adjustToxLoss(1)
..()
return
datum/reagent/medicine/hyronalin
name = "Hyronalin"
id = "hyronalin"
description = "Hyronalin is a medicinal drug used to counter the effect of radiation poisoning."
color = "#C8A5DC" // rgb: 200, 165, 220
datum/reagent/medicine/hyronalin/on_mob_life(var/mob/living/M as mob)
M.radiation = max(M.radiation-3*REM,0)
..()
return
datum/reagent/medicine/arithrazine
name = "Arithrazine"
id = "arithrazine"
description = "Arithrazine is an unstable medication used for the most extreme cases of radiation poisoning."
color = "#C8A5DC" // rgb: 200, 165, 220
datum/reagent/medicine/arithrazine/on_mob_life(var/mob/living/M as mob)
if(M.stat != DEAD)
M.radiation = max(M.radiation-7*REM,0)
M.adjustToxLoss(-1*REM)
if(prob(15))
M.take_organ_damage(1, 0)
..()
return
datum/reagent/medicine/alkysine
name = "Alkysine"
id = "alkysine"
description = "Alkysine is a drug used to lessen the damage to neurological tissue after a catastrophic injury. Can heal brain tissue."
color = "#C8A5DC" // rgb: 200, 165, 220
datum/reagent/medicine/alkysine/on_mob_life(var/mob/living/M as mob)
if(M != DEAD)
M.adjustBrainLoss(-3*REM)
..()
return
datum/reagent/medicine/imidazoline
name = "Imidazoline"
id = "imidazoline"
description = "Heals eye damage."
color = "#C8A5DC" // rgb: 200, 165, 220
datum/reagent/medicine/imidazoline/on_mob_life(var/mob/living/M as mob)
M.eye_blurry = max(M.eye_blurry-5 , 0)
M.eye_blind = max(M.eye_blind-5 , 0)
M.disabilities &= ~NEARSIGHTED
M.eye_stat = max(M.eye_stat-5, 0)
// M.sdisabilities &= ~1 Replaced by eye surgery
..()
return
datum/reagent/medicine/inacusiate
name = "Inacusiate"
id = "inacusiate"
description = "Heals ear damage."
color = "#6600FF" // rgb: 100, 165, 255
datum/reagent/medicine/inacusiate/on_mob_life(var/mob/living/M as mob)
M.ear_damage = 0
M.ear_deaf = 0
..()
return
datum/reagent/medicine/bicaridine
name = "Bicaridine"
id = "bicaridine"
description = "Bicaridine is an analgesic medication and can be used to treat blunt trauma."
color = "#C8A5DC" // rgb: 200, 165, 220
datum/reagent/medicine/bicaridine/on_mob_life(var/mob/living/M as mob)
if(M.stat != DEAD)
M.heal_organ_damage(2*REM,0)
..()
return
datum/reagent/medicine/cryoxadone
name = "Cryoxadone"
id = "cryoxadone"
description = "A chemical mixture with almost magical healing powers. Its main limitation is that the targets body temperature must be under 170K for it to metabolise correctly."
color = "#C8A5DC" // rgb: 200, 165, 220
datum/reagent/medicine/cryoxadone/on_mob_life(var/mob/living/M as mob)
if(M.stat != DEAD && M.bodytemperature < 170)
M.adjustCloneLoss(-1)
M.adjustOxyLoss(-3)
M.heal_organ_damage(3,3)
M.adjustToxLoss(-3)
..()
return
datum/reagent/medicine/clonexadone
name = "Clonexadone"
id = "clonexadone"
description = "A liquid compound similar to that used in the cloning process. Can be used to 'finish' clones that get ejected early when used in conjunction with a cryo tube."
color = "#C8A5DC" // rgb: 200, 165, 220
datum/reagent/medicine/clonexadone/on_mob_life(var/mob/living/M as mob)
if(M.stat != DEAD && M.bodytemperature < 170)
M.adjustCloneLoss(-3)
M.adjustOxyLoss(-3)
M.heal_organ_damage(3,3)
M.adjustToxLoss(-3)
M.status_flags &= ~DISFIGURED
..()
return
datum/reagent/medicine/rezadone
name = "Rezadone"
id = "rezadone"
description = "A powder derived from fish toxin, this substance can effectively treat cellular damage in humanoids, though excessive consumption has side effects."
reagent_state = SOLID
color = "#669900" // rgb: 102, 153, 0
datum/reagent/medicine/rezadone/on_mob_life(var/mob/living/M as mob)
if(!data)
data = 1
data++
switch(data)
if(1 to 15)
M.adjustCloneLoss(-1)
M.heal_organ_damage(1,1)
if(15 to 35)
M.adjustCloneLoss(-2)
M.heal_organ_damage(2,1)
M.status_flags &= ~DISFIGURED
if(35 to INFINITY)
M.adjustToxLoss(1)
M.Dizzy(5)
M.Jitter(5)
..()
return
datum/reagent/medicine/spaceacillin
name = "Spaceacillin"
id = "spaceacillin"
description = "An all-purpose antiviral agent."
color = "#C8A5DC" // rgb: 200, 165, 220
metabolization_rate = 0.5 * REAGENTS_METABOLISM
// Undefine the alias for REAGENTS_EFFECT_MULTIPLER
#undef REM
@@ -0,0 +1,411 @@
#define REM REAGENTS_EFFECT_MULTIPLIER
//////////////////////////Poison stuff (Toxins & Acids)///////////////////////
datum/reagent/toxin
name = "Toxin"
id = "toxin"
description = "A toxic chemical."
color = "#CF3600" // rgb: 207, 54, 0
var/toxpwr = 1.5
datum/reagent/toxin/on_mob_life(var/mob/living/M as mob)
if(toxpwr)
M.adjustToxLoss(toxpwr*REM)
..()
return
datum/reagent/toxin/amatoxin
name = "Amatoxin"
id = "amatoxin"
description = "A powerful poison derived from certain species of mushroom."
color = "#792300" // rgb: 121, 35, 0
toxpwr = 1
datum/reagent/toxin/mutagen
name = "Unstable mutagen"
id = "mutagen"
description = "Might cause unpredictable mutations. Keep away from children."
color = "#13BC5E" // rgb: 19, 188, 94
toxpwr = 0
datum/reagent/toxin/mutagen/reaction_mob(var/mob/living/carbon/M, var/method=TOUCH, var/volume)
if(!..())
return
if(!istype(M) || !M.dna)
return //No robots, AIs, aliens, Ians or other mobs should be affected by this.
src = null
if((method==TOUCH && prob(33)) || method==INGEST)
randmuti(M)
if(prob(98))
randmutb(M)
else
randmutg(M)
domutcheck(M, null)
updateappearance(M)
return
datum/reagent/toxin/mutagen/on_mob_life(var/mob/living/carbon/M)
if(istype(M))
M.apply_effect(5,IRRADIATE,0)
..()
return
datum/reagent/toxin/plasma
name = "Plasma"
id = "plasma"
description = "Plasma in its liquid form."
color = "#DB2D08" // rgb: 219, 45, 8
toxpwr = 3
datum/reagent/toxin/plasma/on_mob_life(var/mob/living/M as mob)
if(holder.has_reagent("inaprovaline"))
holder.remove_reagent("inaprovaline", 2*REM)
..()
return
datum/reagent/toxin/plasma/reaction_obj(var/obj/O, var/volume)
src = null
/*if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/egg/slime))
var/obj/item/weapon/reagent_containers/food/snacks/egg/slime/egg = O
if (egg.grown)
egg.Hatch()*/
if((!O) || (!volume)) return 0
O.atmos_spawn_air(SPAWN_TOXINS|SPAWN_20C, volume)
datum/reagent/toxin/plasma/reaction_turf(var/turf/simulated/T, var/volume)
src = null
if(istype(T))
T.atmos_spawn_air(SPAWN_TOXINS|SPAWN_20C, volume)
return
datum/reagent/toxin/plasma/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)//Splashing people with plasma is stronger than fuel!
if(!istype(M, /mob/living))
return
if(method == TOUCH)
M.adjust_fire_stacks(volume / 5)
return
datum/reagent/toxin/lexorin
name = "Lexorin"
id = "lexorin"
description = "Lexorin temporarily stops respiration. Causes tissue damage."
color = "#C8A5DC" // rgb: 200, 165, 220
toxpwr = 0
datum/reagent/toxin/lexorin/on_mob_life(var/mob/living/M as mob)
if(M.stat != DEAD)
if(prob(33))
M.take_organ_damage(1*REM, 0)
M.adjustOxyLoss(3)
if(prob(20))
M.emote("gasp")
..()
return
datum/reagent/toxin/slimejelly
name = "Slime Jelly"
id = "slimejelly"
description = "A gooey semi-liquid produced from one of the deadliest lifeforms in existence. SO REAL."
color = "#801E28" // rgb: 128, 30, 40
toxpwr = 0
datum/reagent/toxin/slimejelly/on_mob_life(var/mob/living/M as mob)
if(prob(10))
M << "<span class='danger'>Your insides are burning!</span>"
M.adjustToxLoss(rand(20,60)*REM)
else if(prob(40))
M.heal_organ_damage(5*REM,0)
..()
return
datum/reagent/toxin/cyanide
name = "Cyanide"
id = "cyanide"
description = "A highly toxic chemical."
color = "#CF3600" // rgb: 207, 54, 0
toxpwr = 3
datum/reagent/toxin/cyanide/on_mob_life(var/mob/living/M as mob)
M.adjustOxyLoss(3*REM)
M.sleeping += 1
..()
return
datum/reagent/toxin/minttoxin
name = "Mint Toxin"
id = "minttoxin"
description = "Useful for dealing with undesirable customers."
color = "#CF3600" // rgb: 207, 54, 0
toxpwr = 0
datum/reagent/toxin/minttoxin/on_mob_life(var/mob/living/M as mob)
if (FAT in M.mutations)
M.gib()
..()
return
datum/reagent/toxin/carpotoxin
name = "Carpotoxin"
id = "carpotoxin"
description = "A deadly neurotoxin produced by the dreaded spess carp."
color = "#003333" // rgb: 0, 51, 51
toxpwr = 2
datum/reagent/toxin/zombiepowder
name = "Zombie Powder"
id = "zombiepowder"
description = "A strong neurotoxin that puts the subject into a death-like state."
reagent_state = SOLID
color = "#669900" // rgb: 102, 153, 0
toxpwr = 0.5
datum/reagent/toxin/zombiepowder/on_mob_life(var/mob/living/carbon/M as mob)
M.status_flags |= FAKEDEATH
M.adjustOxyLoss(0.5*REM)
M.Weaken(5)
M.silent = max(M.silent, 5)
M.tod = worldtime2text()
..()
return
datum/reagent/toxin/zombiepowder/Del()
if(holder && ismob(holder.my_atom))
var/mob/M = holder.my_atom
M.status_flags &= ~FAKEDEATH
..()
datum/reagent/toxin/mindbreaker
name = "Mindbreaker Toxin"
id = "mindbreaker"
description = "A powerful hallucinogen. Not a thing to be messed with."
color = "#B31008" // rgb: 139, 166, 233
toxpwr = 0
datum/reagent/toxin/mindbreaker/on_mob_life(var/mob/living/M)
M.hallucination += 10
..()
return
datum/reagent/toxin/plantbgone
name = "Plant-B-Gone"
id = "plantbgone"
description = "A harmful toxic mixture to kill plantlife. Do not ingest!"
color = "#49002E" // rgb: 73, 0, 46
toxpwr = 1
datum/reagent/toxin/plantbgone/reaction_obj(var/obj/O, var/volume)
if(istype(O,/obj/structure/alien/weeds/))
var/obj/structure/alien/weeds/alien_weeds = O
alien_weeds.health -= rand(15,35) // Kills alien weeds pretty fast
alien_weeds.healthcheck()
else if(istype(O,/obj/effect/glowshroom)) //even a small amount is enough to kill it
qdel(O)
else if(istype(O,/obj/effect/spacevine))
var/obj/effect/spacevine/SV = O
SV.on_chem_effect(src)
datum/reagent/toxin/plantbgone/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
src = null
if(iscarbon(M))
var/mob/living/carbon/C = M
if(!C.wear_mask) // If not wearing a mask
C.adjustToxLoss(2) // 4 toxic damage per application, doubled for some reason
datum/reagent/toxin/plantbgone/weedkiller
name = "Weed Killer"
id = "weedkiller"
description = "A harmful toxic mixture to kill weeds. Do not ingest!"
color = "#4B004B" // rgb: 75, 0, 75
datum/reagent/toxin/pestkiller
name = "Pest Killer"
id = "pestkiller"
description = "A harmful toxic mixture to kill pests. Do not ingest!"
color = "#4B004B" // rgb: 75, 0, 75
toxpwr = 1
datum/reagent/toxin/pestkiller/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
src = null
if(iscarbon(M))
var/mob/living/carbon/C = M
if(!C.wear_mask) // If not wearing a mask
C.adjustToxLoss(2) // 4 toxic damage per application, doubled for some reason
datum/reagent/toxin/stoxin
name = "Sleep Toxin"
id = "stoxin"
description = "An effective hypnotic used to treat insomnia."
color = "#E895CC" // rgb: 232, 149, 204
toxpwr = 0
datum/reagent/toxin/stoxin/on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
switch(data)
if(1 to 12)
if(prob(5)) M.emote("yawn")
if(12 to 15)
M.eye_blurry = max(M.eye_blurry, 10)
if(15 to 25)
M.drowsyness = max(M.drowsyness, 20)
if(25 to INFINITY)
M.Paralyse(20)
M.drowsyness = max(M.drowsyness, 30)
data++
..()
return
datum/reagent/toxin/spore
name = "Spore Toxin"
id = "spore"
description = "A toxic spore cloud which blocks vision when ingested."
color = "#9ACD32"
toxpwr = 0.5
datum/reagent/toxin/spore/on_mob_life(var/mob/living/M as mob)
M.damageoverlaytemp = 60
M.eye_blurry = max(M.eye_blurry, 3)
..()
return
datum/reagent/toxin/spore_burning
name = "Burning Spore Toxin"
id = "spore_burning"
description = "A burning spore cloud."
color = "#9ACD32"
toxpwr = 0.5
datum/reagent/toxin/spore_burning/on_mob_life(var/mob/living/M as mob)
..()
M.adjust_fire_stacks(2)
M.IgniteMob()
datum/reagent/toxin/chloralhydrate
name = "Chloral Hydrate"
id = "chloralhydrate"
description = "A powerful sedative."
reagent_state = SOLID
color = "#000067" // rgb: 0, 0, 103
toxpwr = 0
metabolization_rate = 0.5 * REAGENTS_METABOLISM
datum/reagent/toxin/chloralhydrate/on_mob_life(var/mob/living/M as mob)
if(!data)
data = 1
data++
switch(data)
if(1 to 10)
M.confused += 2
M.drowsyness += 2
if(10 to 50)
M.sleeping += 1
if(51 to INFINITY)
M.sleeping += 1
M.adjustToxLoss((data - 50)*REM)
..()
return
datum/reagent/toxin/beer2 //disguised as normal beer for use by emagged brobots
name = "Beer"
id = "beer2"
description = "An alcoholic beverage made from malted grains, hops, yeast, and water."
color = "#664300" // rgb: 102, 67, 0
metabolization_rate = 0.5 * REAGENTS_METABOLISM
datum/reagent/toxin/beer2/on_mob_life(var/mob/living/M as mob)
if(!data)
data = 1
switch(data)
if(1 to 50)
M.sleeping += 1
if(51 to INFINITY)
M.sleeping += 1
M.adjustToxLoss((data - 50)*REM)
data++
..()
return
//ACID
datum/reagent/toxin/acid
name = "Sulphuric acid"
id = "sacid"
description = "A strong mineral acid with the molecular formula H2SO4."
color = "#DB5008" // rgb: 219, 80, 8
toxpwr = 1
var/acidpwr = 10 //the amount of protection removed from the armour
datum/reagent/toxin/acid/reaction_mob(var/mob/living/carbon/C, var/method=TOUCH, var/volume)
if(!istype(C))
return
if(method != TOUCH)
if(!C.unacidable)
C.take_organ_damage(min(6*toxpwr, volume * toxpwr))
return
C.acid_act(acidpwr, toxpwr, volume)
datum/reagent/toxin/acid/reaction_obj(var/obj/O, var/volume)
if(istype(O.loc, /mob)) //handled in human acid_act()
return
O.acid_act(acidpwr, toxpwr, volume)
datum/reagent/toxin/acid/polyacid
name = "Polytrinic acid"
id = "pacid"
description = "Polytrinic acid is a an extremely corrosive chemical substance."
color = "#8E18A9" // rgb: 142, 24, 169
toxpwr = 2
acidpwr = 20
datum/reagent/toxin/coffeepowder
name = "Coffee Grounds"
id = "coffeepowder"
description = "Finely ground coffee beans, used to make coffee."
reagent_state = SOLID
color = "#5B2E0D" // rgb: 91, 46, 13
toxpwr = 0.5
datum/reagent/toxin/teapowder
name = "Ground Tea Leaves"
id = "teapowder"
description = "Finely shredded tea leaves, used for making tea."
reagent_state = SOLID
color = "#7F8400" // rgb: 127, 132, 0
toxpwr = 0.5
datum/reagent/toxin/mutetoxin //the new zombie powder.
name = "Mute Toxin"
id = "mutetoxin"
description = "A toxin that temporarily paralyzes the vocal cords."
color = "#F0F8FF" // rgb: 240, 248, 255
toxpwr = 0
datum/reagent/toxin/mutetoxin/on_mob_life(mob/living/carbon/M)
M.silent += REM + 1 //If this var is increased by one or less, it will have no effect since silent is decreased right after reagents are handled in Life(). Hence the + 1.
..()
datum/reagent/toxin/staminatoxin
name = "Tirizene"
id = "tirizene"
description = "A toxin that affects the stamina of a person when injected into the bloodstream."
color = "#6E2828"
data = 13
toxpwr = 0
datum/reagent/toxin/staminatoxin/on_mob_life(mob/living/carbon/M)
M.adjustStaminaLoss(REM * data)
data = max(data - 1, 3)
..()
// Undefine the alias for REAGENTS_EFFECT_MULTIPLER
#undef REM
+1 -1
View File
@@ -31,7 +31,7 @@
user.visible_message("<span class='notice'>[user] extracts [target]'s fat!</span>")
target.overeatduration = 0 //patient is unfatted
var/removednutriment = target.nutrition
target.nutrition = 450
target.nutrition = NUTRITION_LEVEL_WELL_FED
removednutriment -= 450 //whatever was removed goes into the meat
var/obj/item/weapon/reagent_containers/food/snacks/meat/human/newmeat = new
newmeat.name = "fatty meat"
+1
View File
@@ -69,3 +69,4 @@ steelpoint = Game Master
phil235 = Game Master
xxnoob = Game Master
tkdrg = Game Master
thunder12345 = Game Master
+11
View File
@@ -0,0 +1,11 @@
author: Paprika
delete-after: True
changes:
- tweak: "Reverted security armor and helmets to the old (Grey) style of armor/helmets."
- tweak: "Updated security jumpsuits to be more consistent across officer/warden/HoS ranks."
- rscadd: "Added tactical armor and helmets to replace the largely unused bulletproof vest in the armory. This armor has higher bullet and explosive resistance than normal armor, and uses the previous, more military armor/helmet sprites."
@@ -0,0 +1,6 @@
author: Thunder12345
delete-after: True
changes:
- rscadd: "Added a new FRAG-12 explosive shotgun shell, built from the unloaded technological shell, using tablecrafting. Constructed using an unloaded technological tech shell, 5 units sulphuric acid, 5 units polytrinic acid, 5 units glycerol, and requires a screwdriver."
+10
View File
@@ -0,0 +1,10 @@
author: phil235
delete-after: True
changes:
- rscadd: "Change to the hunger system. Eating food with sugar temporarily worsens your nutrition drop rate. Eating too much sugar too quickly can make you temporarily unable to eat any sugary food. The nutritional effect of sugar depends on how hungry you are thus it cannot easily raise your nutrition level past well fed and is best used when hungry. Lots of sugar can make you a bit jittery at times. Eating food with vitamin (new reagent) counteracts the sugar effects and can give you temporary buffs when well fed: it lowers your chance to catch or spread viruses,it makes your body's metabolism more efficient that is it keeps healing reagents longer and evacuate toxins faster and reduces damage from radioactive reagents. Your metabolism gets less efficient if starving."
- rscadd: "New hunger hud icons: starving, hungry, fed, well fed, full, fat."
- rscadd: "Snack vending machine get a chef compartment that can be loaded with non-sugary food by hand or with a tray by anyone with kitchen access (unless you hack the machine with multitool or emag). The food can be unloaded by anyone, like regular snacks"
- rscadd: "Cargo can get a nutritious pizza crate order for 60 points."
- tweak: "Grown and cooked food gets some vitamin while junk food gets less nutriment and more sugar (only hot donkpocket and ramen don't have sugar)"
- tweak: "The number of junk food in snack vending machine is lowered from 6 to 5 of each type."
- bugfix: "Fixing not being able to load an omelette du fromage on a tray."
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 222 KiB

After

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Some files were not shown because too many files have changed in this diff Show More