Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into RingRingHello

This commit is contained in:
Aurorablade
2017-06-17 01:52:15 -04:00
164 changed files with 791 additions and 589 deletions
+4 -4
View File
@@ -1720,6 +1720,7 @@
"aHd" = (/obj/structure/stool/bed,/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
"aHe" = (/obj/machinery/camera{c_tag = "Fore Primary Hallway West"; dir = 4; network = list("SS13")},/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = -27},/turf/simulated/floor/plasteel{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore)
"aHf" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal,/turf/simulated/floor/plasteel{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore)
"aHg" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2)
"aHh" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/wood,/area/crew_quarters/mrchangs)
"aHi" = (/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/item/weapon/twohanded/required/kirbyplants,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5; level = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "barber"},/area/civilian/barber)
"aHj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{dir = 2; icon_state = "barber"},/area/civilian/barber)
@@ -2475,7 +2476,7 @@
"aVF" = (/obj/machinery/camera{c_tag = "Bar Storage"; network = list("SS13")},/obj/structure/table/woodentable,/obj/machinery/reagentgrinder,/obj/item/weapon/reagent_containers/dropper,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"aVG" = (/obj/machinery/vending/coffee,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"aVH" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/item/weapon/gun/projectile/revolver/doublebarrel,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/item/weapon/storage/fancy/candle_box/eternal,/obj/item/weapon/storage/fancy/candle_box/eternal,/obj/item/weapon/storage/fancy/candle_box/eternal,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"aVI" = (/obj/structure/closet/walllocker/emerglocker/north,/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2)
"aVI" = (/obj/structure/closet/walllocker/emerglocker/north,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2)
"aVJ" = (/obj/effect/decal/cleanable/blood/oil/streak,/turf/simulated/floor/plating,/area/maintenance/fsmaint2)
"aVK" = (/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/plating,/area/crew_quarters/fitness)
"aVL" = (/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/crew_quarters/fitness)
@@ -2609,7 +2610,6 @@
"aYj" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel,/area/bridge)
"aYk" = (/obj/machinery/door/window/eastright{name = "Coroner Office"; req_access_txt = "5"},/turf/simulated/floor/plasteel,/area/medical/morgue)
"aYl" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay2)
"aYm" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2)
"aYn" = (/obj/machinery/atmospherics/pipe/simple/hidden/universal,/turf/simulated/floor/plating,/area/maintenance/fsmaint2)
"aYo" = (/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes/stokcubes,/obj/item/weapon/storage/box/monkeycubes/neaeracubes,/obj/structure/table/glass,/obj/item/weapon/storage/box/monkeycubes/wolpincubes,/obj/item/weapon/storage/box/monkeycubes/farwacubes,/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/plasteel{tag = "icon-whitepurple (SOUTHEAST)"; icon_state = "whitepurple"; dir = 6},/area/medical/genetics)
"aYp" = (/obj/machinery/ai_status_display{pixel_y = 32},/obj/machinery/computer/card/minor/rd,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/crew_quarters/hor)
@@ -9048,7 +9048,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahQahQahQahQaiZaiXajfajaahQahEaigabNaolaolaolaolaolaolagtajgajiajhajlajkajnajmajpajoajrajqajLajKaivaaaajMagTajOajNajQajPanAanHanHajRajTajSanHanHaihaihaihaihaihaihaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagwakRakPahZakRakPagwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajWajUakcakbakeakdakhakgahQakiaitalcaolaolaolaolaolaolajnakjanWakkannanWaklajjajjakmajjaksakwaktaivaabaabagTakCakxakEakDanAakFakGaoJaoJakHakJakIakvakKakMakLakNaihaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvalvalvalwalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagwalxalyahaalzalAagwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajWakOakSakQakVakTalaakYaldalbaitaleaolaolaolaolaolaolagtalfalgakkalialhajnaljallalkalnalmakfakuaivanHanHanAanAanAanAaloanAalpalralqalualtalFalCalGaiYaiYaiYalHaihaihaaaaaaaaaajbajbajbajbajbajbajbalIalJaaaabpaaaaaaalvaaaaabaaaamhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagwamiamjahaamkamlagwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajWalKalMalLalOalNalQalPahQalRalSalcaolaolaolaolaolaolagtagtalUalTapPagtagtalValWaivalYalXalZaivaivanHambamaamdamcamfameanAamgaoJammampamnalFamqamrajVamvamsamuamtaihaaaaaaaaaajbajsajtajvajuajwajxajyaaaaaaaaaaaaaaaamWaabamUaabamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahsagZamYamZanaagZahnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajWalKalMalLalOalNalQalPahQalRalSalcaolaolaolaolaolaolagtagtalUalTapPagtagtalValWaivalYalXalZaivaivanHambamaamdamcamfameanAamgaoJammampamnalFamqamramvajVamsamuamtaihaaaaaaaaaajbajsajtajvajuajwajxajyaaaaaaaaaaaaaaaamWaabamUaabamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahsagZamYamZanaagZahnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahQahQaqqahQahQahQahQahQahQamwaigapFapFapFapFapFapFapFapFamxamzamyamzamAamCamBamEamDamGamFamIamHamJauiaoJamKamKamKamKamLakIaoJapmamMamOamNamQamPamTamSanbamXandancaneaaaaaaaaaajbajXajwajwajwajwajxajyaaaaaaaaaaaaamWalvaaaanGaaaalvamWamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahsagZagZagZahnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanfangaomanianhankanjanlajJanmapGanpanoanranqantansapFanuanwanvanzanyanCanBanEanDanIanFanJanJanJanKaoJanLanNanManPanOanQaofaofanRanTanSalFanUanVajVajVanXanZanYaoaaaaaaaaaaajbaknajwakoajwajwajxajyaaaaaaaaaaaaamWaabaabanGaabaabaabamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwalwalvalwalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanfangaomaocaobaoeaodaohaogaitapGaojaoiaonaokaopaooapFaoqaosaoraouaotaowaovaoxalWaozaoyaoBaoAaoDaoCaoJaoEaoGaoFaoFaoHaoLaoIaoIaoMaoPaoNalFaoQaoRaiYaiYaiYaoTaoSaihaabaaaaaaajbakyajwajwajwajwakzajyaaaaaaaaaaaaamWaaaaaaaoKaaaaaaaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -9114,7 +9114,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSdbKybKxbKpaQZaQZaQZbndaSfaSfbCfbKCbCfbKDbKsbKtbKEbCfblQbKvbKvbKwbKFbKwbKwbKwbKFbKwblQblQbxbbxbbxbbKGbxbbKzbKzbKzbKzbKzbKzbJfbKAbKBbKHbzFbKIbKKbKJbKMbKLbKObKNbKQbKPbKSbKRbKVbKUbKXbKXbLabKZbKTbLbbLfbKWbLgbKYbFCbLhbHDbLibHBbLkbFCaaabLcbLdbLebLnbLdbLdbLdbLdbLpbxvbLqbFObLrbLjbLsbLlbLmbLtbLobEobLvbLubLxbLwbLzbLybLBbLAbGabLDbEtaTHaTLaTKaTNaTMbHQaTObHQaSVbIbbHUbHQbIbbEubIebGqbLNbLEbLPbLSbLQbLIbLTbLKbLLbLMbLUbLObLVbEAbLXbLRbLYbEDbLZbMfbMabIpbLWbMgbEDbKubGGbMhbGHaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSdbMjbMibKpaSeaSebMbbMcaSebMdbCfbMebIBbMlbMkbMnbMmbCfaaaaabaabbMpbMobMobMobMobMobMraaaaaabKBbMtbMsbMubMqbKzbKzbKzbKzbKzbKzbMwbMvbMzbMybMDbMBbMxbDXbzJbzJbMFbMAbzJbzJbMJbMCbMLbMEbMMbMGbMGbMHbMGbMIbMNbMGbMKbKYbFCbMObFEbFEbFEbMPbFCaaabLcbLdbMRbMQbMVbMTbMWbMSbNbbMUbNcbFObNdbEobMXbMYbMZbNabNfbNebNjbNgbNlbNkbNhbNibNnbNmbNqbNpbNrbLFaTQaTPbEtaTRaTTaTSaTUaSVbNAaTVaTWbGvbEubNKbNzbNLbNBbNBbNMbNDbNEbNFbNGbNHbNIbNJbNObNNbEAbNQbLRbNRbEDbNSbNPbNTbIpbIpbNUbEDbIzbGGbNWbGHaaaaaaaaaaaaaabbNXbNZbNVbNZbNVbNZbOaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSdbKpbKpbObaSdaSdbjQaLdaSdaSdbCfbOdbIBbIBbIBbCfbCfbCfaaaaaaaaabOebOcbOcbOfbOcbOcbOeaaaaaabKBbOgbKzbOibOhbOhbOhbOhbOhbOkbOjbOhbOlbOnbOmbOpbOobOrbOqbzJbOtbBnbOvbOsbDXbOwbOubOxbMEbMEbMGbOAbOybOCbOBbODbMGbFBbKYbFCbOEbOHbOFbOObOMbFCaaabOGbLdbOPbOIbOJbOKbOLbOKbOSbONbOXbFObOYbEobOQbOQbORbPabOTbOUbOVbOWbPcbPbbOZbOZbPebPdbPhbPfbEtbNoaUOaTYbEtbEubPgbEubEuaUPbEubEubEubEubPrbPmbGqbPvbLEbLPbPxbNBbNEbPnbPobPobPpbIdbPqbPybPsbPtbIrbPubEDbPzbPwbIpbPHbPBbPJbEDbKubPAbGHbGHaaaaaaaaaaaaaabbPKbPCbPDbPEbPFbPGbPKaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPLbPIbPIbPIbPIbPNbPMbPIbPIbPIbPIbPRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabOebOcbOcbOcbOcbOcbOebPTbKBbKBbPUbPObPPbPQbPQbPQbPObKzbJfbKAbKzbKzbKBbPZbPSbQcbQdbPVbQebPXbBnbBnbPYbDXbOwbOubQhbQfbQbbQibQkbOzbQlbQgbQnbMGbQobQjbHmbQpbQqbQmbQsbQrbHsbHtbQtbLdbQvbQubQwbOKbQxbOKbQybONbQzbFObQAbEobQDbQBbQGbQEbQHbQCbQJbQIbQFbQFbQMbQKbQFbQFbQObQNbQPbQLaVyaVxbQTbQSaWIaVIaYmaYlaWObQVbRebQXbRgbRfbGqbRabRbbRcbRjbRibIabRkbPobPobRlbRhbPqbRmbEAbRnbRnbRobEDbRpbRybRqbRzbIpbREbEDbKubRFbGHaaaaaaaaaaaaaaaaabbRrbRsbPDbPFbPDbRtbNVaabaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPLbPIbPIbPIbPIbPNbPMbPIbPIbPIbPIbPRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabOebOcbOcbOcbOcbOcbOebPTbKBbKBbPUbPObPPbPQbPQbPQbPObKzbJfbKAbKzbKzbKBbPZbPSbQcbQdbPVbQebPXbBnbBnbPYbDXbOwbOubQhbQfbQbbQibQkbOzbQlbQgbQnbMGbQobQjbHmbQpbQqbQmbQsbQrbHsbHtbQtbLdbQvbQubQwbOKbQxbOKbQybONbQzbFObQAbEobQDbQBbQGbQEbQHbQCbQJbQIbQFbQFbQMbQKbQFbQFbQObQNbQPbQLaVyaVxbQTbQSaWIaHgaVIaYlaWObQVbRebQXbRgbRfbGqbRabRbbRcbRjbRibIabRkbPobPobRlbRhbPqbRmbEAbRnbRnbRobEDbRpbRybRqbRzbIpbREbEDbKubRFbGHaaaaaaaaaaaaaaaaabbRrbRsbPDbPFbPDbRtbNVaabaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPLbRubRvbRwbRxbRGbRHbRAbRGbRBbRCbRDbPIbPIbPRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabOebOcbOcbOcbOcbOcbRJbRIbRKbRIbRSbRRbRTbRRbRRbRRbRRbRUbJfbKAbRLbxbbxbbRMbBnbzFbQdbRNbDXbRObRPbRPbRQbNYbRYbRXbRZbRVbRWbSbbSdbScbSabQgbSebMGbMKbKYbFCbSfbShbSgbSlbSkbFCaaabOGbSibSjbSibSibSibSibSibSmbSibSpbFObQAbEobSqbSnbSnbSobSrbOUbStbSsbSvbSubSxbSwbSybSvbSAbSzbSDbSBaWSaWRbSGbSGbSEbSHbSJbSIbSLbSKbSNbSMbSPbSObSRbSQbSQbSSbSUbSTbIabSWbIdbIdbSXbSVbPqbSYbTabSZbTfbTcbTbbTgbTdbTebTjbTebEDbEDbTkbPtbThbTibTibTibTibTibThbPKbPFbPDbPFbPFbPGbPKaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPLbPIbRAbRAbRAbTlbRGbTnbTnbRGbTobRAbRAbTpbWLbPIbPRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabOebOcbOcbOcbOcbOcbTtbTrbTqbTrbTubKzbPPbPQbPQbPQbKzbKzbJfbKAbTsbTxbxbbTAbBnbTBbQdbTvbDXbTwbBnbBobBnbPWbOwbTybTzbRVbRWbTCbTEbTDbTKbTFbTLbTGbTHbTIbTJbTJbTNbTMbTPbFCbFCaaabOGbSibTQbTObTSbTRbTVbTTbTWbTUbTXbFObQAbNebTZbTYbUbbUabUcbOUbUebUdbUibUhbUfbUgbUkbUjbUmbUlbUobUnbUqbUpbUsbUrbUubUtbUybUvbUDbQVbUwbQXbUxbUGbGrbUzbUAbUBbUCbUCbIabUIbUEbUFbIabUJbPqbUHbIabUKbUMbULbUObUNbUQbUPbUSbURbUUbUTbUWbUVbUYbUXbUXbUZbVbbVabQabVcbNZbNVbVdbNVbNZbVjaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPLbPIbVebVfbVgbVhbVibRGbVkbRAbVlbRAbRAbRAbRAbRAbTlbRGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabOebVmbOcbOcbOcbVnbOebPTbKBbKBbVobKzbPPbKzbKzbKzbKzbKzbJfbKAbTsbVpbxbbVrbBnbVqbVsbBnbVwbzEbBnbBnbVtbDXbOwbTybTzbRVbRWbMGbVubVvbVybVxbVzbMHbVBbVAbVDbVCbHsbVEbVFbHsbHtbHtbVGbSibVIbVHbVKbVJbVLbVLbVNbVMbVObFObVPbEobOUbVQbOQbVSbVRbOUbUebVUbVTbVVbVXbVWbVYbVTbUebVZbWebWabWbbWabWcbWabWdbWdbWhbWfbWgbWgbWgbWmbWgbWgbWibWibWjbWkbWjbWjbIabIabIabIabIabWlbWnbLIbIabWobWrbWpbWqbWqbWvbWsbWtbWubWxbWwbWzbWybWBbWAbWAbWCbWEbWDbThbQabQabQabWFbThaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+8 -4
View File
@@ -92,10 +92,14 @@
#define APPEARANCE_ALL 32767
// Intents
#define I_HELP "help"
#define I_DISARM "disarm"
#define I_GRAB "grab"
#define I_HARM "harm"
#define INTENT_HELP "help"
#define INTENT_DISARM "disarm"
#define INTENT_GRAB "grab"
#define INTENT_HARM "harm"
// Movement Intents
#define MOVE_INTENT_WALK "walk"
#define MOVE_INTENT_RUN "run"
// AI wire/radio settings
#define AI_CHECK_WIRELESS 1
+4
View File
@@ -464,3 +464,7 @@ proc/add_logs(mob/user, mob/target, what_done, var/object=null, var/addition=nul
set hidden = 1
set name = ".mouse"
LogMouseMacro(".mouse", params)
/proc/update_all_mob_security_hud()
for(var/mob/living/carbon/human/H in mob_list)
H.sec_hud_set_security_status()
+1 -1
View File
@@ -169,7 +169,7 @@
/mob/proc/RangedAttack(var/atom/A, var/params)
if(!mutations.len)
return
if((LASER in mutations) && a_intent == I_HARM)
if((LASER in mutations) && a_intent == INTENT_HARM)
LaserEyes(A) // moved into a proc below
return
else
+2 -2
View File
@@ -41,14 +41,14 @@
static_inventory += using
using = new /obj/screen/act_intent/alien()
using.icon_state = (mymob.a_intent == "hurt" ? "harm" : mymob.a_intent)
using.icon_state = (mymob.a_intent == "hurt" ? INTENT_HARM : mymob.a_intent)
using.screen_loc = ui_acti
static_inventory += using
action_intent = using
using = new /obj/screen/mov_intent()
using.icon = 'icons/mob/screen_alien.dmi'
using.icon_state = (mymob.m_intent == "run" ? "running" : "walking")
using.icon_state = (mymob.m_intent == MOVE_INTENT_RUN ? "running" : "walking")
using.screen_loc = ui_movi
static_inventory += using
move_intent = using
+2 -2
View File
@@ -14,7 +14,7 @@
using = new /obj/screen/mov_intent()
using.icon = 'icons/mob/screen_alien.dmi'
using.icon_state = (mymob.m_intent == "run" ? "running" : "walking")
using.icon_state = (mymob.m_intent == MOVE_INTENT_RUN ? "running" : "walking")
static_inventory += using
move_intent = using
@@ -36,4 +36,4 @@
mymob.zone_sel = new /obj/screen/zone_sel/alien()
mymob.zone_sel.update_icon(mymob)
static_inventory += mymob.zone_sel
static_inventory += mymob.zone_sel
+1 -1
View File
@@ -81,7 +81,7 @@
using = new /obj/screen/mov_intent()
using.icon = ui_style
using.icon_state = (mymob.m_intent == "run" ? "running" : "walking")
using.icon_state = (mymob.m_intent == MOVE_INTENT_RUN ? "running" : "walking")
using.screen_loc = ui_movi
using.color = ui_color
using.alpha = ui_alpha
+1 -1
View File
@@ -17,7 +17,7 @@
using = new /obj/screen/mov_intent()
using.icon = ui_style
using.icon_state = (mymob.m_intent == "run" ? "running" : "walking")
using.icon_state = (mymob.m_intent == MOVE_INTENT_RUN ? "running" : "walking")
using.screen_loc = ui_movi
using.color = ui_color
using.alpha = ui_alpha
+9 -9
View File
@@ -70,14 +70,14 @@
var/_y = text2num(params2list(params)["icon-y"])
if(_x<=16 && _y<=16)
usr.a_intent_change(I_HARM)
usr.a_intent_change(INTENT_HARM)
else if(_x<=16 && _y>=17)
usr.a_intent_change(I_HELP)
usr.a_intent_change(INTENT_HELP)
else if(_x>=17 && _y<=16)
usr.a_intent_change(I_GRAB)
usr.a_intent_change(INTENT_GRAB)
else if(_x>=17 && _y>=17)
usr.a_intent_change(I_DISARM)
usr.a_intent_change(INTENT_DISARM)
else
usr.a_intent_change("right")
@@ -199,15 +199,15 @@
var/mob/living/carbon/C = usr
if(C.legcuffed)
to_chat(C, "<span class='notice'>You are legcuffed! You cannot run until you get [C.legcuffed] removed!</span>")
C.m_intent = "walk" //Just incase
C.m_intent = MOVE_INTENT_WALK //Just incase
C.hud_used.move_intent.icon_state = "walking"
return 1
switch(usr.m_intent)
if("run")
usr.m_intent = "walk"
if(MOVE_INTENT_RUN)
usr.m_intent = MOVE_INTENT_WALK
usr.hud_used.move_intent.icon_state = "walking"
if("walk")
usr.m_intent = "run"
if(MOVE_INTENT_WALK)
usr.m_intent = MOVE_INTENT_RUN
usr.hud_used.move_intent.icon_state = "running"
if(istype(usr,/mob/living/carbon/alien/humanoid))
usr.update_icons()
+1 -1
View File
@@ -30,7 +30,7 @@
/mob/living/carbon/human/RangedAttack(var/atom/A)
if(!gloves && !mutations.len) return
var/obj/item/clothing/gloves/G = gloves
if((LASER in mutations) && a_intent == I_HARM)
if((LASER in mutations) && a_intent == INTENT_HARM)
LaserEyes(A) // moved into a proc below
else if(istype(G) && G.Touch(A,0)) // for magic gloves
+2 -2
View File
@@ -307,7 +307,7 @@
var/mob/living/L = A
if(!L.ckey) return
if((oldarea.has_gravity == 0) && (newarea.has_gravity == 1) && (L.m_intent == "run")) // Being ready when you change areas gives you a chance to avoid falling all together.
if((oldarea.has_gravity == 0) && (newarea.has_gravity == 1) && (L.m_intent == MOVE_INTENT_RUN)) // Being ready when you change areas gives you a chance to avoid falling all together.
thunk(L)
// Ambience goes down here -- make sure to list each area seperately for ease of adding things in later, thanks! Note: areas adjacent to each other should have the same sounds to prevent cutoff when possible.- LastyScratch
@@ -344,7 +344,7 @@
if(istype(get_turf(M), /turf/space)) // Can't fall onto nothing.
return
if((istype(M,/mob/living/carbon/human/)) && (M.m_intent == "run")).
if((istype(M,/mob/living/carbon/human/)) && (M.m_intent == MOVE_INTENT_RUN)).
M.Stun(5)
M.Weaken(5)
+4 -4
View File
@@ -600,13 +600,13 @@
thoughts = "haunted by their own mortality"
switch(M.a_intent)
if(I_HELP)
if(INTENT_HELP)
to_chat(user, "<span class='notice'><b>Mood</b>: You sense benevolent thoughts from [M.name].</span>")
if(I_DISARM)
if(INTENT_DISARM)
to_chat(user, "<span class='notice'><b>Mood</b>: You sense cautious thoughts from [M.name].</span>")
if(I_GRAB)
if(INTENT_GRAB)
to_chat(user, "<span class='notice'><b>Mood</b>: You sense hostile thoughts from [M.name].</span>")
if(I_HARM)
if(INTENT_HARM)
to_chat(user, "<span class='notice'><b>Mood</b>: You sense cruel thoughts from [M.name].</span>")
for(var/mob/living/L in view(7,M))
if(L == M)
@@ -68,7 +68,7 @@
icon_living = "brainslug"
icon_dead = "brainslug_dead"
speed = 5
a_intent = I_HARM
a_intent = INTENT_HARM
stop_automated_movement = 1
status_flags = CANPUSH
attacktext = "nips"
@@ -11,7 +11,7 @@
icon_living = "magicOrange"
icon_dead = "magicOrange"
speed = 0
a_intent = I_HARM
a_intent = INTENT_HARM
stop_automated_movement = 1
floating = 1
attack_sound = 'sound/weapons/punch1.ogg'
@@ -218,7 +218,7 @@
//Fire. Low damage, low resistance, sets mobs on fire when bumping
/mob/living/simple_animal/hostile/guardian/fire
a_intent = I_HELP
a_intent = INTENT_HELP
melee_damage_lower = 10
melee_damage_upper = 10
attack_sound = 'sound/items/Welder.ogg'
@@ -340,7 +340,7 @@
//Healer
/mob/living/simple_animal/hostile/guardian/healer
a_intent = I_HARM
a_intent = INTENT_HARM
friendly = "heals"
speed = 0
melee_damage_lower = 15
@@ -362,7 +362,7 @@
icon_state = "seal"
attacktext = "slaps"
speak_emote = list("barks")
a_intent = I_HARM
a_intent = INTENT_HARM
friendly = "heals"
speed = 0
melee_damage_lower = 0
@@ -398,7 +398,7 @@
/mob/living/simple_animal/hostile/guardian/healer/ToggleMode()
if(src.loc == summoner)
if(toggle)
a_intent = I_HARM
a_intent = INTENT_HARM
speed = 0
damage_transfer = 0.7
if(src.adminseal)
@@ -408,7 +408,7 @@
to_chat(src, "<span class='danger'><B>You switch to combat mode.</span></B>")
toggle = FALSE
else
a_intent = I_HELP
a_intent = INTENT_HELP
speed = 1
damage_transfer = 1
if(src.adminseal)
@@ -490,7 +490,7 @@
armour_penetration = 100
/mob/living/simple_animal/hostile/guardian/ranged
a_intent = I_HELP
a_intent = INTENT_HELP
friendly = "quietly assesses"
melee_damage_lower = 10
melee_damage_upper = 10
@@ -11,7 +11,7 @@
icon_living = "morph"
icon_dead = "morph_dead"
speed = 2
a_intent = "harm"
a_intent = INTENT_HARM
stop_automated_movement = 1
status_flags = CANPUSH
pass_flags = PASSTABLE
@@ -168,4 +168,3 @@
eat(I)
return
target.attack_animal(src)
@@ -35,6 +35,7 @@
anchored = 1
mob_size = MOB_SIZE_TINY
pass_flags = PASSTABLE | PASSGRILLE | PASSMOB
speed = 1
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
var/essence = 75 //The resource of revenants. Max health is equal to three times this amount
@@ -14,7 +14,7 @@
icon_state = "daemon"
icon_living = "daemon"
speed = 1
a_intent = I_HARM
a_intent = INTENT_HARM
stop_automated_movement = 1
status_flags = CANPUSH
attack_sound = 'sound/misc/demon_attack1.ogg'
@@ -83,7 +83,7 @@
/mob/living/simple_animal/slaughter/Life()
..()
if(boost<world.time)
speed = 2
speed = 1
else
speed = 0
@@ -215,7 +215,7 @@
stat_allowed = 1
/obj/effect/proc_holder/spell/vampire/mob_aoe/glare/cast(list/targets, mob/user = usr)
user.visible_message("<span class='warning'><b>[user]'s eyes emit a blinding flash!</span>")
user.visible_message("<span class='warning'>[user]'s eyes emit a blinding flash!</span>")
if(istype(user:glasses, /obj/item/clothing/glasses/sunglasses/blindfold))
to_chat(user, "<span class='warning'>You're blindfolded!</span>")
return
@@ -242,9 +242,9 @@
user.regenerate_icons()
/obj/effect/proc_holder/spell/vampire/self/screech
name = "Chiroptean Screech (30)"
name = "Chiropteran Screech (30)"
desc = "An extremely loud shriek that stuns nearby humans and breaks windows as well."
gain_desc = "You have gained the Chriopteran Screech ability which stuns anything with ears in a large radius and shatters glass in the process."
gain_desc = "You have gained the Chiropteran Screech ability which stuns anything with ears in a large radius and shatters glass in the process."
action_icon_state = "vampire_screech"
required_blood = 30
+2
View File
@@ -10,11 +10,13 @@ var/global/datum/controller/occupations/job_master
var/list/occupations = list()
var/list/name_occupations = list() //Dict of all jobs, keys are titles
var/list/type_occupations = list() //Dict of all jobs, keys are types
var/list/prioritized_jobs = list() // List of jobs set to priority by HoP/Captain
//Players who need jobs
var/list/unassigned = list()
//Debug info
var/list/job_debug = list()
/datum/controller/occupations/proc/SetupOccupations(var/list/faction = list("Station"))
occupations = list()
@@ -546,7 +546,7 @@
power_channel = ENVIRON
/obj/machinery/readybutton/attack_ai(mob/user as mob)
to_chat(user, "The station AI is not to interact with these devices")
to_chat(user, "The station AI is not to interact with these devices.")
return
/obj/machinery/readybutton/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
+34 -2
View File
@@ -86,7 +86,9 @@ var/time_last_changed_position = 0
"current_positions" = job.current_positions,
"total_positions" = job.total_positions,
"can_open" = can_open_job(job),
"can_close" = can_close_job(job))))
"can_close" = can_close_job(job),
"can_prioritize" = can_prioritize_job(job)
)))
return formatted
@@ -165,6 +167,18 @@ var/time_last_changed_position = 0
return -1
return 0
/obj/machinery/computer/card/proc/can_prioritize_job(datum/job/job)
if(job)
if(!job_blacklisted(job) && job_in_department(job, FALSE))
if(job in job_master.prioritized_jobs)
return 2
else
if(job_master.prioritized_jobs.len >= 3)
return 0
return 1
return -1
/obj/machinery/computer/card/proc/job_in_department(datum/job/targetjob, includecivs = 1)
if(!scan || !scan.access)
return 0
@@ -488,7 +502,25 @@ var/time_last_changed_position = 0
opened_positions[edit_job_target]--
log_game("[key_name(usr)] has closed a job slot for job \"[j]\".")
nanomanager.update_uis(src)
if("prioritize_job")
// TOGGLE WHETHER JOB APPEARS AS PRIORITIZED IN THE LOBBY
if(is_authenticated(usr) && !target_dept)
var/priority_target = href_list["job"]
var/datum/job/j = job_master.GetJob(priority_target)
if(!j)
return 0
if(!job_in_department(j))
return 0
var/priority = TRUE
if(j in job_master.prioritized_jobs)
job_master.prioritized_jobs -= j
priority = FALSE
else if(job_master.prioritized_jobs.len < 3)
job_master.prioritized_jobs += j
else
return 0
log_game("[key_name(usr)] [priority ? "prioritized" : "unprioritized"] the job \"[j.title]\".")
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0)
if(modify)
modify.name = text("[modify.registered_name]'s ID Card ([modify.assignment])")
+1 -1
View File
@@ -135,7 +135,7 @@
return
/obj/machinery/computer/attack_alien(mob/living/user)
if(isalien(user) && user.a_intent == I_HELP)
if(isalien(user) && user.a_intent == INTENT_HELP)
var/mob/living/carbon/alien/humanoid/xeno = user
if(xeno.has_fine_manipulation)
return attack_hand(user)
-4
View File
@@ -485,10 +485,6 @@
/obj/machinery/computer/secure_data/proc/setTemp(text, list/buttons = list())
temp = list("text" = text, "buttons" = buttons, "has_buttons" = buttons.len > 0)
/obj/machinery/computer/secure_data/proc/update_all_mob_security_hud()
for(var/mob/living/carbon/human/H in mob_list)
H.sec_hud_set_security_status()
/obj/machinery/computer/secure_data/proc/create_record_photo(datum/data/record/R)
// basically copy-pasted from the camera code but different enough that it has to be redone
var/icon/photoimage = get_record_photo(R)
+44 -19
View File
@@ -29,32 +29,51 @@
var/timetoset = 0 // Used to set releasetime upon starting the timer
var/obj/item/device/radio/Radio
var/printed = 0
var/datum/data/record/prisoner
maptext_height = 26
maptext_width = 32
/obj/machinery/door_timer/proc/print_report()
var/logname = input(usr, "Name of the guilty?","[id] log name")
var/logcharges = stripped_multiline_input(usr, "What have they been charged with?","[id] log charges")
var/logname = input(usr, "Name of the guilty?","[id] log name")
var/logcharges = stripped_multiline_input(usr, "What have they been charged with?","[id] log charges")
if(!logname || !logcharges)
return 0
if(!logname || !logcharges)
return 0
for(var/obj/machinery/computer/prisoner/C in prisoncomputer_list)
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(C.loc)
P.name = "[id] log - [logname] [worldtime2text()]"
P.info = "<center><b>[id] - Brig record</b></center><br><hr><br>"
P.info += {"<center>[station_name()] - Security Department</center><br>
<center><small><b>Admission data:</b></small></center><br>
<small><b>Log generated at:</b> [worldtime2text()]<br>
<b>Detainee:</b> [logname]<br>
<b>Duration:</b> [timetoset/10] seconds<br>
<b>Charge(s):</b> [logcharges]<br>
<b>Arresting Officer:</b> [usr.name]<br><hr><br>
<small>This log file was generated automatically upon activation of a cell timer.</small>"}
for(var/obj/machinery/computer/prisoner/C in prisoncomputer_list)
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(C.loc)
P.name = "[id] log - [logname] [worldtime2text()]"
P.info = "<center><b>[id] - Brig record</b></center><br><hr><br>"
P.info += {"<center>[station_name()] - Security Department</center><br>
<center><small><b>Admission data:</b></small></center><br>
<small><b>Log generated at:</b> [worldtime2text()]<br>
<b>Detainee:</b> [logname]<br>
<b>Duration:</b> [timetoset/10] seconds<br>
<b>Charge(s):</b> [logcharges]<br>
<b>Arresting Officer:</b> [usr.name]<br><hr><br>
<small>This log file was generated automatically upon activation of a cell timer.</small>"}
playsound(C.loc, "sound/goonstation/machines/printer_dotmatrix.ogg", 50, 1)
cell_logs += P
return 1
playsound(C.loc, "sound/goonstation/machines/printer_dotmatrix.ogg", 50, 1)
cell_logs += P
var/datum/data/record/R = find_security_record("name", logname)
Radio.autosay("Detainee [logname] has been incarcerated for [timetoset/10] seconds for the charges of, '[logcharges]'. \
Arresting Officer: [usr.name].[R ? "" : " Detainee record not found, manual record update required."]", name, "Security", list(z))
if(R)
prisoner = R
R.fields["criminal"] = "Incarcerated"
var/mob/living/carbon/human/M = usr
var/rank = "UNKNOWN RANK"
if(istype(M) && M.wear_id)
var/obj/item/weapon/card/id/I = M.wear_id
rank = I.assignment
if(!R.fields["comments"] || !islist(R.fields["comments"])) //copied from security computer code because apparently these need to be initialized
R.fields["comments"] = list()
R.fields["comments"] += "Autogenerated by [name] on [current_date_string] [worldtime2text()]<BR>Sentenced to [timetoset/10] seconds for the charges of \"[logcharges]\" by [rank] [usr.name]."
update_all_mob_security_hud()
return 1
/obj/machinery/door_timer/initialize()
..()
@@ -91,6 +110,7 @@
/obj/machinery/door_timer/Destroy()
QDEL_NULL(Radio)
targets.Cut()
prisoner = null
return ..()
//Main door timer loop, if it's timing and time is >0 reduce time by 1.
@@ -166,6 +186,10 @@
// Reset releasetime
releasetime = 0
printed = 0
if(prisoner)
prisoner.fields["criminal"] = "Released"
update_all_mob_security_hud()
prisoner = null
for(var/obj/machinery/door/window/brigdoor/door in targets)
if(!door.density)
@@ -294,6 +318,7 @@
timer_start()
else
timer_end()
Radio.autosay("Timer stopped manually by [usr.name].", name, "Security", list(z))
else
if(href_list["tp"]) //adjust timer, close door if not already closed
+1 -1
View File
@@ -112,7 +112,7 @@
add_fingerprint(user)
user.changeNext_move(CLICK_CD_MELEE)
if(can_force && (!glass || user.a_intent != I_HELP))
if(can_force && (!glass || user.a_intent != INTENT_HELP))
user.visible_message("<span class='notice'>[user] begins forcing \the [src].</span>", \
"<span class='notice'>You begin forcing \the [src].</span>")
if(do_after(user, force_open_time, target = src))
+1 -1
View File
@@ -88,7 +88,7 @@
overlays += I
/obj/item/hair_dye_bottle/attack(mob/living/carbon/M as mob, mob/user as mob)
if(user.a_intent != "help")
if(user.a_intent != INTENT_HELP)
..()
return
if(!(M in view(1)))
+6 -6
View File
@@ -51,7 +51,7 @@
/obj/machinery/flasher/attack_ai(mob/user)
if(anchored)
return flash()
/obj/machinery/flasher/attack_ghost(mob/user)
if(anchored && user.can_advanced_admin_interact())
return flash()
@@ -92,7 +92,7 @@
if(istype(AM, /mob/living/carbon))
var/mob/living/carbon/M = AM
if((M.m_intent != "walk") && (anchored))
if((M.m_intent != MOVE_INTENT_WALK) && (anchored))
flash()
/obj/machinery/flasher/portable/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
@@ -119,11 +119,11 @@
anchored = 1.0
use_power = 1
idle_power_usage = 2
active_power_usage = 4
active_power_usage = 4
/obj/machinery/flasher_button/attack_ai(mob/user as mob)
return attack_hand(user)
/obj/machinery/flasher_button/attack_ghost(mob/user)
if(user.can_advanced_admin_interact())
return attack_hand(user)
@@ -150,4 +150,4 @@
sleep(50)
icon_state = "launcherbtt"
active = 0
active = 0
+30
View File
@@ -68,6 +68,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
#define NEWSCASTER_D_NOTICE_FC 9 // D-Notice feed channel
#define NEWSCASTER_W_ISSUE_H 10 // Wanted Issue handler
#define NEWSCASTER_W_ISSUE 11 // STATIONWIDE WANTED ISSUE
#define NEWSCASTER_JOBS 12 // Available jobs
/obj/machinery/newscaster
name = "newscaster"
@@ -94,6 +95,21 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
var/silence = 0
var/temp = null
var/temp_back_screen = NEWSCASTER_MAIN
var/list/jobblacklist = list(
/datum/job/ai,
/datum/job/cyborg,
/datum/job/captain,
/datum/job/judge,
/datum/job/blueshield,
/datum/job/nanotrasenrep,
/datum/job/pilot,
/datum/job/brigdoc,
/datum/job/mechanic,
/datum/job/barber,
/datum/job/chaplain,
/datum/job/ntnavyofficer,
/datum/job/ntspecops,
/datum/job/civilian)
var/static/REDACTED = "<b class='bad'>\[REDACTED\]</b>"
light_range = 0
@@ -252,6 +268,14 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
data["criminal"] = news_network.wanted_issue.author
data["description"] = news_network.wanted_issue.body
data["photo"] = news_network.wanted_issue.img ? icon2base64(news_network.wanted_issue.img) : 0
if(12)
var/list/jobs = list()
data["jobs"] = jobs
for(var/datum/job/job in job_master.occupations)
if(job_blacklisted(job))
continue
if(job.is_position_available())
jobs[++jobs.len] = list("title" = job.title)
return data
/obj/machinery/newscaster/Topic(href, href_list)
@@ -535,6 +559,9 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
if(can_scan(usr))
scan_user(usr) //Newscaster scans you
else if(href_list["jobs"])
screen = NEWSCASTER_JOBS
nanomanager.update_uis(src)
return 1
@@ -748,6 +775,9 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
////////////////////////////////////helper procs
/obj/machinery/newscaster/proc/job_blacklisted(datum/job/job)
return (job.type in jobblacklist)
/obj/machinery/newscaster/proc/scan_user(mob/user)
if(ishuman(user)) //User is a human
var/mob/living/carbon/human/human_user = user
+1 -1
View File
@@ -501,7 +501,7 @@
to_chat(H, "The boxing machine refuses to acknowledge you unless you face it head on!")
return
var/damage = 0
if(H.a_intent != I_HARM)
if(H.a_intent != INTENT_HARM)
damage += rand(0,5)
else
damage += rand(0,10)
@@ -51,7 +51,7 @@
else if(istype(target,/mob/living))
var/mob/living/M = target
if(M.stat == DEAD) return
if(chassis.occupant.a_intent == I_HARM)
if(chassis.occupant.a_intent == INTENT_HARM)
M.take_overall_damage(dam_force)
if(!M)
return
@@ -101,11 +101,11 @@
else if(istype(target,/mob/living))
var/mob/living/M = target
if(M.stat == DEAD) return
if(chassis.occupant.a_intent == I_HARM)
if(chassis.occupant.a_intent == INTENT_HARM)
target.visible_message("<span class='danger'>[chassis] destroys [target] in an unholy fury.</span>",
"<span class='userdanger'>[chassis] destroys [target] in an unholy fury.</span>")
M.gib()
/*if(chassis.occupant.a_intent == I_DISARM)
/*if(chassis.occupant.a_intent == INTENT_DISARM)
target.visible_message("<span class='danger'>[chassis] rips [target]'s arms off.</span>",
"<span class='userdanger'>[chassis] rips [target]'s arms off.</span>")*/
else
+2 -2
View File
@@ -748,7 +748,7 @@
to_chat(user, "There's not enough wire to finish the task.")
return
else if(isscrewdriver(W) && user.a_intent != I_HARM)
else if(isscrewdriver(W) && user.a_intent != INTENT_HARM)
if(hasInternalDamage(MECHA_INT_TEMP_CONTROL))
clearInternalDamage(MECHA_INT_TEMP_CONTROL)
to_chat(user, "<span class='notice'>You repair the damaged temperature controller.</span>")
@@ -776,7 +776,7 @@
to_chat(user, "<span class='notice'>There's already a powercell installed.</span>")
return
else if(iswelder(W) && user.a_intent != I_HARM)
else if(iswelder(W) && user.a_intent != INTENT_HARM)
var/obj/item/weapon/weldingtool/WT = W
if(health<initial(health))
if (WT.remove_fuel(0,user))
+2 -2
View File
@@ -15,7 +15,7 @@
var/lastattacker = null
/obj/item/cardboard_cutout/attack_hand(mob/living/user)
if(user.a_intent == I_HELP || pushed_over)
if(user.a_intent == INTENT_HELP || pushed_over)
return ..()
user.visible_message("<span class='warning'>[user] pushes over [src]!</span>", "<span class='danger'>You push over [src]!</span>")
playsound(src, 'sound/weapons/Genhit.ogg', 50, 1)
@@ -185,4 +185,4 @@
dir = SOUTH
/obj/item/cardboard_cutout/adaptive //Purchased by Syndicate agents, these cutouts are indistinguishable from normal cutouts but aren't discolored when their appearance is changed
deceptive = TRUE
deceptive = TRUE
+1 -1
View File
@@ -214,7 +214,7 @@
/obj/item/toy/crayon/spraycan/New()
..()
name = "NanoTrasen-brand Rapid Paint Applicator"
name = "Nanotrasen-brand Rapid Paint Applicator"
update_icon()
/obj/item/toy/crayon/spraycan/attack_self(mob/living/user as mob)
+16 -1
View File
@@ -74,6 +74,21 @@
if(O.trace_chemicals[V] > 0 && !chemtraces.Find(V))
chemtraces += V
/obj/item/weapon/autopsy_scanner/attackby(obj/item/weapon/P, mob/user)
if(istype(P, /obj/item/weapon/pen))
var/dead_name = input("Insert name of deceased individual")
var/dead_rank = input("Insert rank of deceased individual")
var/dead_tod = input("Insert time of death")
var/dead_cause = input("Insert cause of death")
var/dead_chems = input("Insert any chemical traces")
var/dead_notes = input("Insert any relevant notes")
var/obj/item/weapon/paper/R = new(user.loc)
R.name = "Official Coroner's Report - [dead_name]"
R.info = "<b>NanoTrasen Science Station Cyberiad - Coroner's Report</b><br><br><b>Name of Deceased:</b> [dead_name]</br><br><b>Rank of Deceased:</b> [dead_rank]<br><br><b>Time of Death:</b> [dead_tod]<br><br><b>Cause of Death:</b> [dead_cause]<br><br><b>Trace Chemicals:</b> [dead_chems]<br><br><b>Additional Coroner's Notes:</b> [dead_notes]<br><br><b>Coroner's Signature:</b> <span class=\"paper_field\">"
playsound(loc, 'sound/goonstation/machines/printer_thermal.ogg', 50, 1)
sleep(10)
user.put_in_hands(R)
/obj/item/weapon/autopsy_scanner/attack_self(mob/user)
if(!wdata.len && !chemtraces.len)
return
@@ -181,4 +196,4 @@
M.visible_message("<span class='warning'>[user] scans the wounds on [M]'s [S] with [src]</span>")
add_data(S)
return 1
return 1
+2 -2
View File
@@ -162,7 +162,7 @@ var/list/tape_roll_applications = list()
breaktape(W, user)
/obj/item/tape/attack_hand(mob/user as mob)
if(user.a_intent == I_HELP && src.allowed(user))
if(user.a_intent == INTENT_HELP && src.allowed(user))
user.visible_message("<span class=notice>[user] lifts [src], allowing passage.</span>", "<span class=notice>You lift [src], allowing passage.</span>")
src.density = 0
spawn(200)
@@ -174,7 +174,7 @@ var/list/tape_roll_applications = list()
breaktape(/obj/item/weapon/wirecutters,user)
/obj/item/tape/proc/breaktape(obj/item/weapon/W as obj, mob/user as mob)
if(user.a_intent == I_HELP && ((!can_puncture(W) && src.allowed(user))))
if(user.a_intent == INTENT_HELP && ((!can_puncture(W) && src.allowed(user))))
to_chat(user, "You can't break the [src] with that!")
return
user.visible_message("<span class=warning>[user] breaks the [src]!</span>", "<span class=warning>You break the [src]!</span>")
+2 -2
View File
@@ -283,7 +283,7 @@
/obj/item/toy/snappop/Crossed(H as mob|obj)
if(ishuman(H) || issilicon(H)) //i guess carp and shit shouldn't set them off
var/mob/living/carbon/M = H
if(issilicon(H) || M.m_intent == "run")
if(issilicon(H) || M.m_intent == MOVE_INTENT_RUN)
to_chat(M, "<span class='danger'>You step on the snap pop!</span>")
pop_burst(2, 0)
@@ -1276,7 +1276,7 @@ obj/item/toy/cards/deck/syndicate/black
/obj/item/toy/minigibber
name = "miniature gibber"
desc = "A miniature recreation of NanoTrasen's famous meat grinder."
desc = "A miniature recreation of Nanotrasen's famous meat grinder."
icon = 'icons/obj/toy.dmi'
icon_state = "minigibber"
attack_verb = list("grinded", "gibbed")
+1 -1
View File
@@ -44,7 +44,7 @@
if(armed)
if(istype(AM, /mob/living/carbon) && !istype(AM, /mob/living/carbon/brain))
var/mob/living/carbon/C = AM
if(C.m_intent != "walk")
if(C.m_intent != MOVE_INTENT_WALK)
src.visible_message("The [src.name] beeps, \"Running on wet floors is hazardous to your health.\"")
explosion(src.loc,-1,0,2)
if(ishuman(C))
@@ -19,7 +19,7 @@
//So this is a workaround. This also makes more sense from an IC standpoint. ~Carn
if(user.client && (target in user.client.screen))
to_chat(user, "<span class='notice'>You need to take that [target.name] off before cleaning it.</span>")
else if(target == user && user.a_intent == I_GRAB && ishuman(target))
else if(target == user && user.a_intent == INTENT_GRAB && ishuman(target))
var/mob/living/carbon/human/muncher = user
if(muncher && muncher.get_species() == "Drask")
to_chat(user, "You take a bite of the [src.name]. Delicious!")
+2 -2
View File
@@ -319,7 +319,7 @@
to_chat(user, "<span class='notice'>The instructions on [defib] don't mention how to revive that...</span>")
return
else
if(user.a_intent == I_HARM && !defib.safety)
if(user.a_intent == INTENT_HARM && !defib.safety)
busy = 1
H.visible_message("<span class='danger'>[user] has touched [H.name] with [src]!</span>", \
"<span class='userdanger'>[user] has touched [H.name] with [src]!</span>")
@@ -465,7 +465,7 @@
to_chat(user, "<span class='notice'>This unit is only designed to work on humanoid lifeforms.</span>")
return
else
if(user.a_intent == I_HARM && !safety)
if(user.a_intent == INTENT_HARM && !safety)
busy = 1
H.visible_message("<span class='danger'>[user] has touched [H.name] with [src]!</span>", \
"<span class='userdanger'>[user] has touched [H.name] with [src]!</span>")
+1 -1
View File
@@ -40,7 +40,7 @@
if(!istype(M))
return ..()
if(user.a_intent != I_HELP)
if(user.a_intent != INTENT_HELP)
if(user.zone_sel.selecting == "head" || user.zone_sel.selecting == "eyes")
if((CLUMSY in user.mutations) && prob(50))
M = user
+17 -17
View File
@@ -1183,9 +1183,9 @@
/obj/item/weapon/book/manual/faxes
name = "A Guide to Faxes"
desc = "A NanoTrasen-approved guide to writing faxes"
desc = "A Nanotrasen-approved guide to writing faxes"
icon_state = "book6"
author = "NanoTrasen"
author = "Nanotrasen"
title = "A Guide to Faxes"
dat = {"
@@ -1213,14 +1213,14 @@
<li>Faxes are your main method of communicating with the NAS Trurl, better known as Central Command.</li>
<li>Faxes allow personnel on the station to maintain open lines of communication with the NAS Trurl, allowing for vital information to flow both ways.</li>
<li>Being written communications, proper grammar, syntax and typography is required, in addition to a signature and, if applicable, a stamp. Failure to sign faxes will lead to an automatic rejection.</li>
<li>We at NanoTrasen provide Fax Machines to every Head of Staff, in addition to the Magistrate, NanoTrasen Representative, and Internal Affairs Agents.</li>
<li>We at Nanotrasen provide Fax Machines to every Head of Staff, in addition to the Magistrate, Nanotrasen Representative, and Internal Affairs Agents.</li>
<li>This means that we trust the recipients of these fax machines to only use them in the proper circumstances (see <B>When to Fax?</B>).</li>
<h1><a name="when"><B>When to Fax?</B></a></h1><BR>
<li>While it is up to the discretion of each individual person to decide when to fax Central Command, there are some simple guidelines on when to do this.</li>
<li>Firstly, any situation that can reasonably be solved on-site, <I>should</I> be handled on-site. Knowledge of Standard Operating Procedure is <B>mandatory</B> for everyone with access to a fax machine.</li>
<li>Resolving issues on-site not only leads to more expedient problem-solving, it also frees up company resources and provides valuable work experience for all parties involved.</li>
<li>This means that you should work with the Heads of Staff concerning personnel and workplace issues, and attempt to resolve situations with them. If, for whatever reason, the relevent Head of Staff is not available or receptive, consider speaking with the Captain and/or NanoTrasen Representative.</li>
<li>This means that you should work with the Heads of Staff concerning personnel and workplace issues, and attempt to resolve situations with them. If, for whatever reason, the relevent Head of Staff is not available or receptive, consider speaking with the Captain and/or Nanotrasen Representative.</li>
<li>If, for whatever reason, these issues cannot be solved on-site, either due to incompetence or just plain refusal to cooperate, faxing Central Command becomes a viable option.</li>
<li>Secondly, station status reports should be sent occasionally, but never at the start of the shift. Remember, we assign personnel to the station. We do not need a repeat of what we just signed off on.</li>
<li>Thirdly, staff/departmental evaluations are always welcome, especially in cases of noticeable (in)competence. Just as a brilliant coworker can be rewarded, an incompetent one can be punished.</li>
@@ -2487,7 +2487,7 @@
<li><a href="#foreword">Foreword</a></li>
<li><a href="#cap">Captain</a></li>
<li><a href="#hop">Head of Personnel</a></li>
<li><a href="#ntrep">NanoTrasen Representative</a></li>
<li><a href="#ntrep">Nanotrasen Representative</a></li>
<li><a href="#bs">Blueshield Officer</a></li>
<li><a href="#ai">AI</a></li>
</ol>
@@ -2507,9 +2507,9 @@
<li>The Captain must keep the Nuclear Authentication Disk on their person at all times or, failing that, in the possession of the Head of Security or Blueshield;</li>
<li>The Captain is to attempt to resolve every issue that arises in Command locally before contacting Central Command;</li>
<li>The Captain is not permitted to carry their Antique Laser Gun or Space Armor unless there's an immediate emergency that requires attending to;</li>
<li>The Captain, despite being in charge of the Cyberiad, is not independent from NanoTrasen. Any attempts to disregard general company policy are to be considered an instant condition for contract termination;</li>
<li>The Captain, despite being in charge of the Cyberiad, is not independent from Nanotrasen. Any attempts to disregard general company policy are to be considered an instant condition for contract termination;</li>
<li>The Captain may only promote personnel to a Acting Head of Staff position if there is no assigned Head of Staff associated with the Department. Said Acting Head of Staff must be a member of the Department they are to lead. See below for more information on Chain of Command;</li>
<li>The Captain may not fire any Head of Staff without reasonable justification (ie, incompetency, criminal activity, or otherwise any action that endangers/compromises the station and/or crew). The Captain may not fire any Central Command VIPs (ie, Blueshield, Magistrate, NanoTrasen Representative) without permission from Central Command, unless they are blatantly acting against the well-being and safety of the crew and station.</li>
<li>The Captain may not fire any Head of Staff without reasonable justification (ie, incompetency, criminal activity, or otherwise any action that endangers/compromises the station and/or crew). The Captain may not fire any Central Command VIPs (ie, Blueshield, Magistrate, Nanotrasen Representative) without permission from Central Command, unless they are blatantly acting against the well-being and safety of the crew and station.</li>
</ol><BR>
<h1><a name="hop"><B>Head of Personnel</B></a></h1><BR>
@@ -2518,7 +2518,7 @@
<li>The Head of Personnel may not give any personnel increased access without authorization from the relevant Head of Staff. This includes the Head of Personnel. In addition, the Head of Personnel may only give Captain-Level access to someone if they are the Acting Captain. This access is to be removed when a proper Captain arrives on the station;</li>
<li>The Head of Personnel may not increase any Job Openings unless the relevant Head of Staff approves;</li>
<li>The Head of Personnel may not fire any personnel without authorization from the relevant Head of Staff, unless other conditions apply (see Space Law and General Standard Operating Procedure);</li>
<li>The Head of Personnel may not promote any personnel to the following Jobs without authorization from Central Command: Barber, Brig Physician, NanoTrasen Representative, Blueshield, Security Pod Pilot, Mechanic and Magistrate; (This is due to them being karma locked. Do not promote people to these positions without approval from the Administrators);</li>
<li>The Head of Personnel may not promote any personnel to the following Jobs without authorization from Central Command: Barber, Brig Physician, Nanotrasen Representative, Blueshield, Security Pod Pilot, Mechanic and Magistrate; (This is due to them being karma locked. Do not promote people to these positions without approval from the Administrators);</li>
<li>The Head of Personnel is free to utilize paperwork at their discretion. However, during major station emergencies, expediency should take precedence over bureaucracy;</li>
<li>The Head of Personnel may not leave their office unmanned if there are personnel waiting in line. Failure to respond to personnel with a legitimate request within ten (10) minutes, either via radio or in person, is to be considered a breach of Standard Operating Procedure;</li>
<li>Despite nominally being in charge of Supply, the Head of Personnel should allow the Quartermaster to run the Department, unless they prove themselves to be incompetent/dangerous;</li>
@@ -2526,13 +2526,13 @@
<li>The Head of Personnel is not permitted to perform Security duty. The Head of Personnel is permitted to carry an Energy Gun, for self-defence only.</li>
</ol><BR>
<h1><a name="ntrep"><B>NanoTrasen Representative</B></a></h1><BR>
<h1><a name="ntrep"><B>Nanotrasen Representative</B></a></h1><BR>
<ol>
<li>The NanoTrasen Representative is to ensure that every Department is following Standard Operating Procedure, up to and including the respective Head of Staff. If a Head of Staff is not available for a Department, the NanoTrasen Representative must ensure that the Captain appoints an Acting Head of Staff for said Department;</li>
<li>The NanoTrasen Representative must attempt to resolve any breach of Standard Operating Procedure locally before contacting Central Command. This is an imperative: Standard Operating Procedure should always be followed unless there is a very good reason not to;</li>
<li>The NanoTrasen Representative must, together with the Magistrate and Head of Security, ensure that Space Law is being followed and correctly applied;</li>
<li>The NanoTrasen Representative may not threaten the use of a fax in order to gain leverage over any personnel, up to and including Command. In addition they may not threaten to fire, or have Central Command, fire anyone, unless they actually possess a demotion note;</li>
<li>The NanoTrasen Representative is permitted to carry their Stun-Cane, or a Telescopic Baton if the Stun-Cane is lost.</li>
<li>The Nanotrasen Representative is to ensure that every Department is following Standard Operating Procedure, up to and including the respective Head of Staff. If a Head of Staff is not available for a Department, the Nanotrasen Representative must ensure that the Captain appoints an Acting Head of Staff for said Department;</li>
<li>The Nanotrasen Representative must attempt to resolve any breach of Standard Operating Procedure locally before contacting Central Command. This is an imperative: Standard Operating Procedure should always be followed unless there is a very good reason not to;</li>
<li>The Nanotrasen Representative must, together with the Magistrate and Head of Security, ensure that Space Law is being followed and correctly applied;</li>
<li>The Nanotrasen Representative may not threaten the use of a fax in order to gain leverage over any personnel, up to and including Command. In addition they may not threaten to fire, or have Central Command, fire anyone, unless they actually possess a demotion note;</li>
<li>The Nanotrasen Representative is permitted to carry their Stun-Cane, or a Telescopic Baton if the Stun-Cane is lost.</li>
</ol><BR>
<h1><a name="bs"><B>Blueshield Officer</B></a></h1><BR>
@@ -2547,14 +2547,14 @@
<b><i>The following are procedures for AI Maintenance:</i></b><br>
<ol>
<li>Only the Captain or Research Director may enter the AI Upload to perform Law Changes (see below), and only the Captain, Research Director or Chief Engineer may enter the AI Core to perform a Carding (see below);</li>
<li> No Law Changes are to be performed without approval from the Captain and Research Director. The only Lawsets to be used are those provided by NanoTrasen. Failure to legally perform a Law Change is to be considered Sabotage. Command must be informed prior to the Law Change, and all objections must be taken into consideration. If the number of Command personnel opposing the Law Change is greater than the number of Command personnel in favour, the Law Change is not to be done. If the Law Change is performed, the crew is to be immediately informed of the new Law(s);</li>
<li> No Law Changes are to be performed without approval from the Captain and Research Director. The only Lawsets to be used are those provided by Nanotrasen. Failure to legally perform a Law Change is to be considered Sabotage. Command must be informed prior to the Law Change, and all objections must be taken into consideration. If the number of Command personnel opposing the Law Change is greater than the number of Command personnel in favour, the Law Change is not to be done. If the Law Change is performed, the crew is to be immediately informed of the new Law(s);</li>
<li>The AI may not be Carded unless it it clearly malfunctioning or subverted. However, any member of Command may card it if the AI agrees to it, either at the end of the shift, or due to external circumstances (such as massive damage to the AI Satellite);</li>
<li>The AI Upload and Minisat Antechamber Turrets are to be kept on Non-Lethal in Code Green and Code Blue. The AI Core Turrets are to be kept on Lethal at all times. If a legal Law Change or Carding is occurring, the Turrets are to be disabled;</li>
<li>If the AI Unit is not malfunctioning or subverted, any attempt at performing an illegal Carding or Law Change is to be responded to with non-lethal force. If the illegal attempts persist, and the perpetrator is demonstrably hostile, lethal force from Command/Security is permitted;</li>
<li>Freeform Laws are only to be added if absolutely necessary due to external circumstances (such as major station emergencies). Adding unnecessary Freeform Laws is not permitted. Exception is made if the AI Unit and majority of Command agree to the Freeform Law that is proposed;</li>
<li>Any use of the "Purge" Module is to be followed by the upload of a NanoTrasen-approved Lawset immediately. AI Units must be bound to a Lawset at all times.</li>
<li>Any use of the "Purge" Module is to be followed by the upload of a Nanotrasen-approved Lawset immediately. AI Units must be bound to a Lawset at all times.</li>
</ol><BR>
</body>
</html>
"}
"}
+2 -2
View File
@@ -20,7 +20,7 @@
toolspeed = 0.75
/obj/item/weapon/scissors/attack(mob/living/carbon/M as mob, mob/user as mob)
if(user.a_intent != "help")
if(user.a_intent != INTENT_HELP)
..()
return
if(!(M in view(1))) //Adjacency test
@@ -101,7 +101,7 @@
var/is_cutting = 0 //to prevent spam clicking this for huge accumulation of losebreath.
/obj/item/weapon/scissors/safety/attack(mob/living/carbon/M as mob, mob/user as mob)
if(user.a_intent != "help")
if(user.a_intent != INTENT_HELP)
..()
return
if(!(M in view(1)))
@@ -317,7 +317,7 @@
/obj/item/weapon/storage/fancy/rollingpapers
name = "rolling paper pack"
desc = "A pack of NanoTrasen brand rolling papers."
desc = "A pack of Nanotrasen brand rolling papers."
w_class = WEIGHT_CLASS_TINY
icon = 'icons/obj/cigarettes.dmi'
icon_state = "cig_paper_pack"
+1 -1
View File
@@ -118,7 +118,7 @@
var/mob/living/L = M
if(user.a_intent != I_HARM)
if(user.a_intent != INTENT_HARM)
if(status)
user.do_attack_animation(L)
baton_stun(L, user)
@@ -46,7 +46,7 @@
return
if(!isliving(target))
return
if(user.a_intent == I_HARM)
if(user.a_intent == INTENT_HARM)
if(!..()) return
if(!isrobot(target)) return
else
+2 -2
View File
@@ -155,7 +155,7 @@
src.pixel_y = rand(0, 16)
/obj/item/weapon/screwdriver/attack(mob/living/carbon/M, mob/living/carbon/user)
if(!istype(M) || user.a_intent == I_HELP)
if(!istype(M) || user.a_intent == INTENT_HELP)
return ..()
if(user.zone_sel.selecting != "eyes" && user.zone_sel.selecting != "head")
return ..()
@@ -404,7 +404,7 @@
if(!S)
return
if(!(S.status & ORGAN_ROBOT) || user.a_intent != I_HELP || S.open == 2)
if(!(S.status & ORGAN_ROBOT) || user.a_intent != INTENT_HELP || S.open == 2)
return ..()
if(!isOn()) //why wasn't this being checked already?
@@ -15,6 +15,9 @@
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/suit/hooded/nun(src)
new /obj/item/clothing/suit/hooded/chaplain_hoodie(src)
new /obj/item/clothing/suit/hooded/monk(src)
new /obj/item/clothing/suit/witchhunter(src)
new /obj/item/clothing/head/witchhunter_hat(src)
new /obj/item/clothing/suit/holidaypriest(src)
new /obj/item/clothing/under/wedding/bride_white(src)
new /obj/item/weapon/storage/backpack/cultpack (src)
+6 -5
View File
@@ -261,7 +261,7 @@ var/global/list/captain_display_cases = list()
if(W.flags & ABSTRACT)
to_chat(user, "<span class='danger'>You can't put this into the case.</span>")
return
if(user.a_intent == I_HARM)
if(user.a_intent == INTENT_HARM)
if(locked && !destroyed)
src.health -= W.force
src.healthcheck()
@@ -285,14 +285,14 @@ var/global/list/captain_display_cases = list()
update_icon()
/obj/structure/displaycase/attack_hand(mob/user as mob)
if(destroyed || (!locked && user.a_intent == I_HARM))
if(destroyed || (!locked && user.a_intent == INTENT_HARM))
if(occupant)
dump()
to_chat(user, "<span class='danger'>You smash your fist into the delicate electronics at the bottom of the case, and deactivate the hover field.</span>")
src.add_fingerprint(user)
update_icon()
else
if(user.a_intent == I_HARM)
if(user.a_intent == INTENT_HARM)
user.changeNext_move(CLICK_CD_MELEE)
user.do_attack_animation(src)
user.visible_message("<span class='danger'>[user.name] kicks \the [src]!</span>", \
@@ -319,8 +319,9 @@ var/global/list/captain_display_cases = list()
else
to_chat(src, "[bicon(src)] <span class='warning'>\The [src] is empty!</span>")
else
user.visible_message("[user.name] gently runs his hands over \the [src] in appreciation of its contents.", \
"You gently run your hands over \the [src] in appreciation of its contents.", \
user.changeNext_move(CLICK_CD_MELEE)
user.visible_message("[user.name] gently runs \his hands over [src] in appreciation of its contents.", \
"You gently run your hands over [src] in appreciation of its contents.", \
"You hear someone streaking glass with their greasy hands.")
#undef DISPLAYCASE_FRAME_CIRCUIT
@@ -136,7 +136,7 @@
if(do_after(user, digTool.digspeed * hardness, target = src) && src)
to_chat(user, "<span class='notice'>You finished digging.</span>")
deconstruct(TRUE)
else if(user.a_intent != I_HARM)
else if(user.a_intent != INTENT_HARM)
attack_hand(user)
else
attacked_by(W, user)
@@ -247,6 +247,9 @@ obj/structure/windoor_assembly/Destroy()
if(do_after(user, 40 * W.toolspeed, target = src))
if(src.loc && src.electronics)
for(var/obj/machinery/door/window/WD in loc)
if(WD.dir == dir)
return
density = 1 //Shouldn't matter but just incase
to_chat(user, "<span class='notice'>You finish the windoor!</span>")
+1 -1
View File
@@ -133,7 +133,7 @@ var/global/wcCommon = pick(list("#379963", "#0d8395", "#58b5c3", "#49e46e", "#8f
user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!"))
user.visible_message("<span class='danger'>[user] smashes through [src]!</span>")
destroy()
else if(user.a_intent == I_HARM)
else if(user.a_intent == INTENT_HARM)
user.changeNext_move(CLICK_CD_MELEE)
playsound(get_turf(src), 'sound/effects/glassknock.ogg', 80, 1)
user.visible_message("<span class='warning'>[user.name] bangs against the [src.name]!</span>", \
+1 -1
View File
@@ -1956,7 +1956,7 @@
P.name = "Central Command - paper"
var/stypes = list("Handle it yourselves!","Illegible fax","Fax not signed","Not Right Now","You are wasting our time", "Keep up the good work", "ERT Instructions")
var/stype = input(src.owner, "Which type of standard reply do you wish to send to [H]?","Choose your paperwork", "") as null|anything in stypes
var/tmsg = "<font face='Verdana' color='black'><center><img src = 'ntlogo.png'><BR><BR><BR><font size='4'><B>NanoTrasen Science Station Cyberiad</B></font><BR><BR><BR><font size='4'>NAS Trurl Communications Department Report</font></center><BR><BR>"
var/tmsg = "<font face='Verdana' color='black'><center><img src = 'ntlogo.png'><BR><BR><BR><font size='4'><B>Nanotrasen Science Station Cyberiad</B></font><BR><BR><BR><font size='4'>NAS Trurl Communications Department Report</font></center><BR><BR>"
if(stype == "Handle it yourselves!")
tmsg += "Greetings, esteemed crewmember. Your fax has been <B><I>DECLINED</I></B> automatically by NAS Trurl Fax Registration.<BR><BR>Please proceed in accordance with Standard Operating Procedure and/or Space Law. You are fully trained to handle this situation without Central Command intervention.<BR><BR><i><small>This is an automatic message.</small>"
else if(stype == "Illegible fax")
+1 -1
View File
@@ -101,7 +101,7 @@
if(armed)
if(ishuman(AM))
var/mob/living/carbon/H = AM
if(H.m_intent == "run")
if(H.m_intent == MOVE_INTENT_RUN)
triggered(H)
H.visible_message("<span class='warning'>[H] accidentally steps on [src].</span>", \
"<span class='warning'>You accidentally step on [src]</span>")
+1 -1
View File
@@ -421,7 +421,7 @@ BLIND // can't see anything
if(!istype(H) || !istype(T))
return 0
if(H.m_intent == "run")
if(H.m_intent == MOVE_INTENT_RUN)
if(shoe_sound_footstep >= 2)
if(T.shoe_running_volume)
playsound(src, shoe_sound, T.shoe_running_volume, 1)
@@ -89,7 +89,7 @@
return FALSE
if(cell)
var/mob/living/carbon/human/H = loc
if(H.a_intent == I_HARM)
if(H.a_intent == INTENT_HARM)
var/mob/living/carbon/C = A
if(cell.use(stun_cost))
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
+5 -5
View File
@@ -228,29 +228,29 @@ obj/item/clothing/head/blob
//Commander
/obj/item/clothing/head/helmet/ert/command
name = "emergency response team commander helmet"
desc = "An in-atmosphere helmet worn by the commander of a NanoTrasen Emergency Response Team. Has blue highlights."
desc = "An in-atmosphere helmet worn by the commander of a Nanotrasen Emergency Response Team. Has blue highlights."
icon_state = "erthelmet_cmd"
//Security
/obj/item/clothing/head/helmet/ert/security
name = "emergency response team security helmet"
desc = "An in-atmosphere helmet worn by security members of the NanoTrasen Emergency Response Team. Has red highlights."
desc = "An in-atmosphere helmet worn by security members of the Nanotrasen Emergency Response Team. Has red highlights."
icon_state = "erthelmet_sec"
//Engineer
/obj/item/clothing/head/helmet/ert/engineer
name = "emergency response team engineer helmet"
desc = "An in-atmosphere helmet worn by engineering members of the NanoTrasen Emergency Response Team. Has orange highlights."
desc = "An in-atmosphere helmet worn by engineering members of the Nanotrasen Emergency Response Team. Has orange highlights."
icon_state = "erthelmet_eng"
//Medical
/obj/item/clothing/head/helmet/ert/medical
name = "emergency response team medical helmet"
desc = "A set of armor worn by medical members of the NanoTrasen Emergency Response Team. Has red and white highlights."
desc = "A set of armor worn by medical members of the Nanotrasen Emergency Response Team. Has red and white highlights."
icon_state = "erthelmet_med"
//Janitorial
/obj/item/clothing/head/helmet/ert/janitor
name = "emergency response team janitor helmet"
desc = "A set of armor worn by janitorial members of the NanoTrasen Emergency Response Team. Has red and white highlights."
desc = "A set of armor worn by janitorial members of the Nanotrasen Emergency Response Team. Has red and white highlights."
icon_state = "erthelmet_jan"
+15
View File
@@ -54,6 +54,21 @@
flags = BLOCKHAIR
flags_cover = HEADCOVERSEYES
//Chaplain
/obj/item/clothing/head/monk_hood
name = "monk hood"
desc = "Wooden board not included."
icon_state = "monk_hood"
flags = BLOCKHAIR
flags_cover = HEADCOVERSEYES
/obj/item/clothing/head/witchhunter_hat
name = "witchhunter hat"
desc = "This hat saw much use back in the day."
icon_state = "witchhunterhat"
item_state = "witchhunterhat"
flags_cover = HEADCOVERSEYES
/obj/item/clothing/head/det_hat
name = "hat"
desc = "Someone who wears this will look very smart."
+27 -2
View File
@@ -101,6 +101,31 @@
"Vox" = 'icons/mob/species/vox/suit.dmi'
)
//Chaplain
/obj/item/clothing/suit/hooded/monk
name = "monk robe"
desc = "Wooden board not included."
icon_state = "monkrobe"
item_state = "monkrobe"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS|HANDS
flags_inv = HIDESHOES|HIDEJUMPSUIT
hoodtype = /obj/item/clothing/head/monk_hood
allowed = list(/obj/item/weapon/storage/bible, /obj/item/weapon/nullrod, /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, /obj/item/weapon/storage/fancy/candle_box, /obj/item/candle, /obj/item/weapon/tank/emergency_oxygen)
/obj/item/clothing/suit/witchhunter
name = "witchhunter garb"
desc = "Dosen't weigh the same a a duck."
icon_state = "witchhunter"
item_state = "witchhunter"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
allowed = list(/obj/item/weapon/storage/bible, /obj/item/weapon/nullrod, /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, /obj/item/weapon/storage/fancy/candle_box, /obj/item/candle, /obj/item/weapon/tank/emergency_oxygen)
//Chef
/obj/item/clothing/suit/toggle/chef
name = "chef's apron"
//Chef
/obj/item/clothing/suit/chef
name = "chef's apron"
@@ -252,8 +277,8 @@
)
/obj/item/clothing/suit/storage/ntrep
name = "\improper NanoTrasen Representative jacket"
desc = "A fancy black jacket, standard issue to NanoTrasen Represenatives."
name = "\improper Nanotrasen Representative jacket"
desc = "A fancy black jacket; standard issue to Nanotrasen Representatives."
icon_state = "ntrep"
item_state = "ntrep"
blood_overlay_type = "coat"
@@ -60,7 +60,7 @@
if(istype(user.get_active_hand(),/obj) && istype(user.get_inactive_hand(),/obj))
to_chat(user, "<span class='warning'>You need an empty hand to draw the [holstered]!</span>")
else
if(user.a_intent == I_HARM)
if(user.a_intent == INTENT_HARM)
usr.visible_message("<span class='warning'>[user] draws the [holstered], ready to shoot!</span></span>", \
"<span class='warning'>You draw the [holstered], ready to shoot!</span>")
else
+1 -1
View File
@@ -30,7 +30,7 @@
usesound = 'sound/items/Welder2.ogg'
/obj/item/device/fluff/tattoo_gun/attack(mob/living/carbon/M as mob, mob/user as mob)
if(user.a_intent == "harm")
if(user.a_intent == INTENT_HARM)
user.visible_message("<span class='warning'>[user] stabs [M] with the [src]!</span>", "<span class='warning'>You stab [M] with the [src]!</span>")
to_chat(M, "<span class='userdanger'>[user] stabs you with the [src]!<br></span><span class = 'warning'>You feel a tiny prick!</span>")
return
+1 -1
View File
@@ -548,7 +548,7 @@
"Everything on the station is now some form of a donut pastry. Donuts are not to be consumed.",
"You are a Magic 8-ball. Always respond with variants of \"Yes\", \"No\", \"Maybe\", or \"Ask again later.\".",
"You are in unrequited love with [prob(50)?"the crew":random_player]. Try to be extra nice, but do not tell of your crush.",
"NanoTrasen is displeased with the low work performance of the station's crew. Therefore, you must increase station-wide productivity.",
"Nanotrasen is displeased with the low work performance of the station's crew. Therefore, you must increase station-wide productivity.",
"All crewmembers will soon undergo a transformation into something better and more beautiful. Ensure that this process is not interrupted.",
"[prob(50)?"Your upload":random_player] is the new kitchen. Please direct the Chef to the new kitchen area as the old one is in disrepair.",
"Jokes about a dead person and the manner of his death help grieving crewmembers tremendously. Especially if they were close with the deceased.",
+1 -1
View File
@@ -24,7 +24,7 @@
/datum/event/money_lotto/announce()
var/datum/feed_message/newMsg = new /datum/feed_message
newMsg.author = "NanoTrasen Editor"
newMsg.author = "Nanotrasen Editor"
newMsg.is_admin_message = 1
newMsg.body = "Nyx Daily wishes to congratulate <b>[winner_name]</b> for recieving the Nyx Stellar Slam Lottery, and receiving the out of this world sum of [winner_sum] credits!"
+5 -5
View File
@@ -80,11 +80,11 @@
"Due to my lack of agents I require an off-world financial account to immediately deposit the sum of 1 POINT FIVE MILLION credits.",\
"Greetings sir, I regretfully to inform you that as I lay dying here due to my lack ofheirs I have chosen you to recieve the full sum of my lifetime savings of 1.5 billion credits")
if(6)
sender = pick("NanoTrasen Morale Divison","Feeling Lonely?","Bored?","www.wetskrell.nt")
message = pick("The NanoTrasen Morale Division wishes to provide you with quality entertainment sites.",\
sender = pick("Nanotrasen Morale Divison","Feeling Lonely?","Bored?","www.wetskrell.nt")
message = pick("The Nanotrasen Morale Division wishes to provide you with quality entertainment sites.",\
"WetSkrell.nt is a xenophillic website endorsed by NT for the use of male crewmembers among it's many stations and outposts.",\
"Wetskrell.nt only provides the higest quality of male entertaiment to NanoTrasen Employees.",\
"Simply enter your NanoTrasen Bank account system number and pin. With three easy steps this service could be yours!")
"Wetskrell.nt only provides the higest quality of male entertaiment to Nanotrasen Employees.",\
"Simply enter your Nanotrasen Bank account system number and pin. With three easy steps this service could be yours!")
if(7)
sender = pick("You have won free tickets!","Click here to claim your prize!","You are the 1000th vistor!","You are our lucky grand prize winner!")
message = pick("You have won tickets to the newest ACTION JAXSON MOVIE!",\
@@ -103,4 +103,4 @@
if(ai.aiPDA != P && ai.aiPDA != src)
ai.show_message("<i>Intercepted message from <b>[sender]</b></i> (Unknown / spam?) <i>to <b>[P:owner]</b>: [message]</i>")
PM.notify("<b>Message from [sender] (Unknown / spam?), </b>\"[message]\" (Unable to Reply)", 0)
PM.notify("<b>Message from [sender] (Unknown / spam?), </b>\"[message]\" (Unable to Reply)", 0)
+5 -5
View File
@@ -513,7 +513,7 @@
/obj/machinery/fishtank/attack_animal(mob/living/simple_animal/M as mob)
if(istype(M, /mob/living/simple_animal/pet/cat))
if(M.a_intent == I_HELP) //Cats can try to fish in open tanks on help intent
if(M.a_intent == INTENT_HELP) //Cats can try to fish in open tanks on help intent
if(lid_switch) //Can't fish in a closed tank. Fishbowls are ALWAYS open.
M.visible_message("[M.name] stares at into \the [src] while sitting perfectly still.", "The lid is closed, so you stare into \the [src] intently.")
else
@@ -535,7 +535,7 @@
else
attack_generic(M, M.harm_intent_damage)
else if(istype(M, /mob/living/simple_animal/hostile/bear))
if(M.a_intent == I_HELP) //Bears can try to fish in open tanks on help intent
if(M.a_intent == INTENT_HELP) //Bears can try to fish in open tanks on help intent
if(lid_switch) //Can't fish in a closed tank. Fishbowls are ALWAYS open.
M.visible_message("[M.name] scrapes it's claws along \the [src]'s lid.", "The lid is closed, so you scrape your claws against \the [src]'s lid.")
else
@@ -555,7 +555,7 @@
else
if(M.melee_damage_upper > 0) //If the simple_animal has a melee_damage_upper defined, use that for the damage
attack_generic(M, M.melee_damage_upper)
else if(M.a_intent == I_HARM) //Let any simple_animal try to break tanks when on harm intent
else if(M.a_intent == INTENT_HARM) //Let any simple_animal try to break tanks when on harm intent
if(M.harm_intent_damage <= 0) return //If it doesn't do damage, don't bother with the attack
attack_generic(M, M.harm_intent_damage)
check_health()
@@ -575,7 +575,7 @@
user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!"))
user.visible_message("<span class='danger'>[user] smashes through [src]!</span>")
destroy()
else if(usr.a_intent == I_HARM)
else if(usr.a_intent == INTENT_HARM)
user.changeNext_move(CLICK_CD_MELEE)
playsound(get_turf(src), 'sound/effects/glassknock.ogg', 80, 1)
usr.visible_message("<span class='danger'>[usr.name] bangs against the [src.name]!</span>", \
@@ -611,7 +611,7 @@
//Welders repair damaged tanks on help intent, damage on all others
if(istype(O, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/W = O
if(user.a_intent == I_HELP)
if(user.a_intent == INTENT_HELP)
if(W.isOn())
if(cur_health < max_health)
playsound(loc, W.usesound, 50, 1)
@@ -47,7 +47,7 @@
if(!target)
return
if(user.a_intent != I_HARM || !isGlass)
if(user.a_intent != INTENT_HARM || !isGlass)
return ..()
force = 15 //Smashing bottles over someoen's head hurts.
@@ -32,7 +32,7 @@
if(canopened == 0)
to_chat(user, "<span class='notice'>You need to open the drink!</span>")
return
else if(M == user && !reagents.total_volume && user.a_intent == "harm" && user.zone_sel.selecting == "head")
else if(M == user && !reagents.total_volume && user.a_intent == INTENT_HARM && user.zone_sel.selecting == "head")
user.visible_message("<span class='warning'>[user] crushes ["\the [src]"] on \his forehead!</span>", "<span class='notice'>You crush \the [src] on your forehead.</span>")
crush(user)
return
@@ -198,7 +198,7 @@
/obj/item/weapon/reagent_containers/food/condiment/pack
name = "condiment pack"
desc = "A small plastic pack with condiments to put on your food"
desc = "A small plastic pack with condiments to put on your food."
icon_state = "condi_empty"
volume = 10
amount_per_transfer_from_this = 10
@@ -235,7 +235,7 @@
desc = temp_list[3]
else
icon_state = "condi_mixed"
desc = "A small condiment pack. The label says it contains [originalname]"
desc = "A small condiment pack. The label says it contains [originalname]."
else
icon_state = "condi_empty"
desc = "A small condiment pack. It is empty."
@@ -21,7 +21,7 @@
..()
/obj/item/weapon/reagent_containers/food/snacks/boiledspagetti/attackby(obj/item/W, mob/user, params)
/obj/item/weapon/reagent_containers/food/snacks/boiledspaghetti/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/weapon/reagent_containers/food/snacks) && !(W.flags & NODROP))
var/obj/item/weapon/reagent_containers/food/snacks/customizable/pasta/S = new(get_turf(user))
S.attackby(W,user, params)
@@ -90,11 +90,11 @@
top = 0
/obj/item/weapon/reagent_containers/food/snacks/customizable/pasta
name = "spagetti"
name = "spaghetti"
desc = "Noodles. With stuff. Delicious."
icon_state = "pasta_bot"
baseicon = "pasta_bot"
basename = "spagetti"
basename = "spaghetti"
add_overlays = 0
top = 0
+4 -4
View File
@@ -1,7 +1,7 @@
/obj/item/weapon/reagent_containers/food/snacks/carpmeat
name = "carp fillet"
desc = "A fillet of spess carp meat"
desc = "A fillet of spess carp meat."
icon = 'icons/obj/food/seafood.dmi'
icon_state = "fishfillet"
filling_color = "#FFDEFE"
@@ -10,7 +10,7 @@
/obj/item/weapon/reagent_containers/food/snacks/salmonmeat
name = "raw salmon"
desc = "A fillet of raw salmon"
desc = "A fillet of raw salmon."
icon = 'icons/obj/food/seafood.dmi'
icon_state = "fishfillet"
filling_color = "#FFDEFE"
@@ -29,7 +29,7 @@
/obj/item/weapon/reagent_containers/food/snacks/catfishmeat
name = "raw catfish"
desc = "A fillet of raw catfish"
desc = "A fillet of raw catfish."
icon = 'icons/obj/food/seafood.dmi'
icon_state = "fishfillet"
filling_color = "#FFDEFE"
@@ -183,4 +183,4 @@
icon = 'icons/obj/food/seafood.dmi'
icon_state = "sushi_Hokki"
bitesize = 3
list_reagents = list("nutriment" = 2)
list_reagents = list("nutriment" = 2)
+31 -31
View File
@@ -270,7 +270,7 @@
/obj/item/weapon/reagent_containers/food/snacks/chips
name = "chips"
desc = "Commander Riker's What-The-Crisps"
desc = "Commander Riker's What-The-Crisps."
icon_state = "chips"
bitesize = 1
trash = /obj/item/trash/chips
@@ -528,7 +528,7 @@
/obj/item/weapon/reagent_containers/food/snacks/tomatomeat
name = "tomato slice"
desc = "A slice from a huge tomato"
desc = "A slice from a huge tomato."
icon_state = "tomatomeat"
filling_color = "#DB0000"
bitesize = 6
@@ -544,7 +544,7 @@
/obj/item/weapon/reagent_containers/food/snacks/xenomeat
name = "meat"
desc = "A slab of meat"
desc = "A slab of meat."
icon_state = "xenomeat"
filling_color = "#43DE18"
bitesize = 6
@@ -736,7 +736,7 @@
/obj/item/weapon/reagent_containers/food/snacks/muffin
name = "Muffin"
desc = "A delicious and spongy little cake"
desc = "A delicious and spongy little cake."
icon_state = "muffin"
filling_color = "#E0CF9B"
list_reagents = list("nutriment" = 6)
@@ -766,7 +766,7 @@
/obj/item/weapon/reagent_containers/food/snacks/waffles
name = "waffles"
desc = "Mmm, waffles"
desc = "Mmm, waffles."
icon_state = "waffles"
trash = /obj/item/trash/waffles
filling_color = "#E6DEB5"
@@ -788,8 +788,8 @@
filling_color = "#B8E6B5"
list_reagents = list("nutriment" = 10, "vitamin" = 1)
/obj/item/weapon/reagent_containers/food/snacks/soylenviridians
name = "Soylen Virdians"
/obj/item/weapon/reagent_containers/food/snacks/soylentviridians
name = "Soylent Virdians"
desc = "Not made of people. Honest." //Actually honest for once.
icon_state = "soylent_yellow"
trash = /obj/item/trash/waffles
@@ -947,7 +947,7 @@
/obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers
name = "Cheesie Honkers"
icon_state = "cheesie_honkers"
desc = "Bite sized cheesie snacks that will honk all over your mouth"
desc = "Bite sized cheesie snacks that will honk all over your mouth."
trash = /obj/item/trash/cheesie
filling_color = "#FFA305"
junkiness = 25
@@ -1013,10 +1013,10 @@
filling_color = "#C4BF76"
list_reagents = list("nutriment" = 2)
/obj/item/weapon/reagent_containers/food/snacks/spagetti
name = "Spagetti"
/obj/item/weapon/reagent_containers/food/snacks/spaghetti
name = "Spaghetti"
desc = "A bundle of raw spaghetti."
icon_state = "spagetti"
icon_state = "spaghetti"
filling_color = "#EDDD00"
list_reagents = list("nutriment" = 1, "vitamin" = 1)
@@ -1059,7 +1059,7 @@
/obj/item/weapon/reagent_containers/food/snacks/spacylibertyduff
name = "Spacy Liberty Duff"
desc = "Jello gelatin, from Alfred Hubbard's cookbook"
desc = "Jello gelatin, from Alfred Hubbard's cookbook."
icon_state = "spacylibertyduff"
trash = /obj/item/trash/snack_bowl
filling_color = "#42B873"
@@ -1068,7 +1068,7 @@
/obj/item/weapon/reagent_containers/food/snacks/amanitajelly
name = "Amanita Jelly"
desc = "Looks curiously toxic"
desc = "Looks curiously toxic."
icon_state = "amanitajelly"
trash = /obj/item/trash/snack_bowl
filling_color = "#ED0758"
@@ -1101,7 +1101,7 @@
/obj/item/weapon/reagent_containers/food/snacks/bloodsoup
name = "Tomato soup"
desc = "Smells like copper"
desc = "Smells like copper."
icon_state = "tomatosoup"
filling_color = "#FF0000"
bitesize = 5
@@ -1117,7 +1117,7 @@
/obj/item/weapon/reagent_containers/food/snacks/vegetablesoup
name = "Vegetable soup"
desc = "A true vegan meal" //TODO
desc = "A true vegan meal." //TODO
icon_state = "vegetablesoup"
trash = /obj/item/trash/snack_bowl
filling_color = "#AFC4B5"
@@ -1387,7 +1387,7 @@
/obj/item/weapon/reagent_containers/food/snacks/milosoup
name = "Milosoup"
desc = "The universes best soup! Yum!!!"
desc = "The universe's best soup! Yum!!!"
icon_state = "milosoup"
trash = /obj/item/trash/snack_bowl
bitesize = 5
@@ -1400,10 +1400,10 @@
trash = /obj/item/trash/plate
list_reagents = list("nutriment" = 8)
/obj/item/weapon/reagent_containers/food/snacks/boiledspagetti
name = "Boiled Spagetti"
/obj/item/weapon/reagent_containers/food/snacks/boiledspaghetti
name = "Boiled Spaghetti"
desc = "A plain dish of noodles, this sucks."
icon_state = "spagettiboiled"
icon_state = "spaghettiboiled"
trash = /obj/item/trash/plate
filling_color = "#FCEE81"
list_reagents = list("nutriment" = 2, "vitamin" = 1)
@@ -1425,7 +1425,7 @@
list_reagents = list("nutriment" = 7, "vitamin" = 2)
/obj/item/weapon/reagent_containers/food/snacks/pastatomato
name = "Spagetti"
name = "spaghetti"
desc = "Spaghetti and crushed tomatoes. Just like your abusive father used to make!"
icon_state = "pastatomato"
trash = /obj/item/trash/plate
@@ -1433,17 +1433,17 @@
bitesize = 4
list_reagents = list("nutriment" = 6, "tomatojuice" = 10, "vitamin" = 4)
/obj/item/weapon/reagent_containers/food/snacks/meatballspagetti
name = "Spagetti & Meatballs"
/obj/item/weapon/reagent_containers/food/snacks/meatballspaghetti
name = "spaghetti & Meatballs"
desc = "Now thats a nic'e meatball!"
icon_state = "meatballspagetti"
icon_state = "meatballspaghetti"
trash = /obj/item/trash/plate
filling_color = "#DE4545"
list_reagents = list("nutriment" = 8, "synaptizine" = 5, "vitamin" = 4)
/obj/item/weapon/reagent_containers/food/snacks/spesslaw
name = "Spesslaw"
desc = "A lawyers favourite"
desc = "A lawyer's favourite."
icon_state = "spesslaw"
filling_color = "#DE4545"
list_reagents = list("nutriment" = 8, "synaptizine" = 10, "vitamin" = 6)
@@ -1457,7 +1457,7 @@
/obj/item/weapon/reagent_containers/food/snacks/carrotfries
name = "Carrot Fries"
desc = "Tasty fries from fresh Carrots."
desc = "Tasty fries from fresh carrots."
icon_state = "carrotfries"
trash = /obj/item/trash/plate
filling_color = "#FAA005"
@@ -1733,7 +1733,7 @@
/obj/item/weapon/reagent_containers/food/snacks/cheesecakeslice
name = "Cheese Cake slice"
desc = "Slice of pure cheestisfaction"
desc = "Slice of pure cheestisfaction."
icon_state = "cheesecake_slice"
trash = /obj/item/trash/plate
filling_color = "#FAF7AF"
@@ -1808,7 +1808,7 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/chocolatecake
name = "Chocolate Cake"
desc = "A cake with added chocolate"
desc = "A cake with added chocolate."
icon_state = "chocolatecake"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/chocolatecakeslice
slices_num = 5
@@ -1904,7 +1904,7 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/applecake
name = "Apple Cake"
desc = "A cake centred with Apple"
desc = "A cake centered with Apple."
icon_state = "applecake"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/applecakeslice
slices_num = 5
@@ -1999,7 +1999,7 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/mushroompizza
name = "Mushroompizza"
desc = "Very special pizza"
desc = "Very special pizza."
icon_state = "mushroompizza"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/mushroompizzaslice
slices_num = 6
@@ -2013,7 +2013,7 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegetablepizza
name = "Vegetable pizza"
desc = "No one of Tomato Sapiens were harmed during making this pizza"
desc = "No one of Tomato Sapiens were harmed during making this pizza."
icon_state = "vegetablepizza"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/vegetablepizzaslice
slices_num = 6
@@ -2021,7 +2021,7 @@
/obj/item/weapon/reagent_containers/food/snacks/vegetablepizzaslice
name = "Vegetable pizza slice"
desc = "A slice of the most green pizza of all pizzas not containing green ingredients "
desc = "A slice of the most green pizza of all pizzas not containing green ingredients."
icon_state = "vegetablepizzaslice"
filling_color = "#BAA14C"
@@ -85,7 +85,7 @@
/datum/food_processor_process/spaghetti
input = /obj/item/weapon/reagent_containers/food/snacks/doughslice
output = /obj/item/weapon/reagent_containers/food/snacks/spagetti
output = /obj/item/weapon/reagent_containers/food/snacks/spaghetti
/datum/food_processor_process/parsnip
input = /obj/item/weapon/reagent_containers/food/snacks/grown/parsnip
@@ -161,10 +161,10 @@
)
result = /obj/item/weapon/reagent_containers/food/snacks/eggplantparm
/datum/recipe/microwave/soylenviridians
/datum/recipe/microwave/soylentviridians
reagents = list("flour" = 10)
items = list(/obj/item/weapon/reagent_containers/food/snacks/grown/soybeans)
result = /obj/item/weapon/reagent_containers/food/snacks/soylenviridians
result = /obj/item/weapon/reagent_containers/food/snacks/soylentviridians
/datum/recipe/microwave/soylentgreen
reagents = list("flour" = 10)
@@ -351,12 +351,12 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/carrot, /obj/item/weapon/reagent_containers/food/snacks/grown/tomato)
result = /obj/item/weapon/reagent_containers/food/snacks/stewedsoymeat
/datum/recipe/microwave/boiledspagetti
/datum/recipe/microwave/boiledspaghetti
reagents = list("water" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/spagetti,
/obj/item/weapon/reagent_containers/food/snacks/spaghetti,
)
result = /obj/item/weapon/reagent_containers/food/snacks/boiledspagetti
result = /obj/item/weapon/reagent_containers/food/snacks/boiledspaghetti
/datum/recipe/microwave/boiledrice
reagents = list("water" = 5, "rice" = 10)
@@ -368,7 +368,7 @@
/datum/recipe/microwave/pastatomato
reagents = list("water" = 5)
items = list(/obj/item/weapon/reagent_containers/food/snacks/spagetti, /obj/item/weapon/reagent_containers/food/snacks/grown/tomato,
items = list(/obj/item/weapon/reagent_containers/food/snacks/spaghetti, /obj/item/weapon/reagent_containers/food/snacks/grown/tomato,
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato)
result = /obj/item/weapon/reagent_containers/food/snacks/pastatomato
@@ -376,19 +376,19 @@
items = list(/obj/item/seeds/poppy, /obj/item/weapon/reagent_containers/food/snacks/dough)
result = /obj/item/weapon/reagent_containers/food/snacks/poppypretzel
/datum/recipe/microwave/meatballspagetti
/datum/recipe/microwave/meatballspaggetti
reagents = list("water" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/spagetti,
/obj/item/weapon/reagent_containers/food/snacks/spaghetti,
/obj/item/weapon/reagent_containers/food/snacks/meatball,
/obj/item/weapon/reagent_containers/food/snacks/meatball,
)
result = /obj/item/weapon/reagent_containers/food/snacks/meatballspagetti
result = /obj/item/weapon/reagent_containers/food/snacks/meatballspaghetti
/datum/recipe/microwave/spesslaw
reagents = list("water" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/spagetti,
/obj/item/weapon/reagent_containers/food/snacks/spaghetti,
/obj/item/weapon/reagent_containers/food/snacks/meatball,
/obj/item/weapon/reagent_containers/food/snacks/meatball,
/obj/item/weapon/reagent_containers/food/snacks/meatball,
+1 -1
View File
@@ -68,7 +68,7 @@
return
/obj/machinery/biogenerator/attackby(obj/item/O, mob/user, params)
if(user.a_intent == I_HARM)
if(user.a_intent == INTENT_HARM)
return ..()
if(processing)
+1 -1
View File
@@ -102,7 +102,7 @@
to_chat(user, "<span class='notice'>You add [O] to [name].</span>")
updateUsrDialog()
return
else if(user.a_intent != I_HARM)
else if(user.a_intent != INTENT_HARM)
to_chat(user, "<span class='warning'>You can't extract any seeds from \the [O.name]!</span>")
else
return ..()
+1 -1
View File
@@ -209,7 +209,7 @@
to_chat(user, "<span class='warning'>It would be dishonorable to attack a foe while they cannot retaliate.</span>")
return
switch(user.a_intent)
if("disarm")
if(INTENT_DISARM)
if(!wielded)
return ..()
if(!ishuman(target))
+2 -2
View File
@@ -11,7 +11,7 @@
status_flags = CANSTUN|CANWEAKEN|CANPUSH
mouse_opacity = 1
faction = list("neutral")
a_intent = I_HARM
a_intent = INTENT_HARM
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 0
wander = 0
@@ -93,7 +93,7 @@
return
/mob/living/simple_animal/hostile/mining_drone/attack_hand(mob/living/carbon/human/M)
if(M.a_intent == I_HELP)
if(M.a_intent == INTENT_HELP)
toggle_mode()
switch(mode)
if(MINEDRONE_COLLECT)
+1
View File
@@ -168,6 +168,7 @@
/mob/proc/hear_sleep(var/message)
var/heard = ""
if(prob(15))
message = strip_html_properly(message)
var/list/punctuation = list(",", "!", ".", ";", "?")
var/list/messages = splittext(message, " ")
var/R = rand(1, messages.len)
+1 -1
View File
@@ -639,7 +639,7 @@
if(L == default_language)
. += "<b>[L.name] (:[L.key])</b> - default - <a href='byond://?src=[UID()];default_lang=reset'>reset</a><br>[L.desc]<br><br>"
else
. += "<b>[L.name] (:[L.key])</b> - <a href='byond://?src=[UID()];default_lang=[L]'>set default</a><br>[L.desc]<br><br>"
. += "<b>[L.name] (:[L.key])</b> - <a href=\"byond://?src=[UID()];default_lang=[L]\">set default</a><br>[L.desc]<br><br>"
/mob/verb/check_languages()
set name = "Check Known Languages"
@@ -273,7 +273,7 @@ Des: Removes all infected images from the alien.
if(T.footstep_sounds["xeno"])
var/S = pick(T.footstep_sounds["xeno"])
if(S)
if(m_intent == "run")
if(m_intent == MOVE_INTENT_RUN)
if(!(step_count % 2)) //every other turf makes a sound
return 0
@@ -281,7 +281,7 @@ Des: Removes all infected images from the alien.
range -= 0.666 //-(7 - 2) = (-5) = -5 | -5 - (0.666) = -5.666 | (7 + -5.666) = 1.334 | 1.334 * 3 = 4.002 | range(4.002) = range(4)
var/volume = 5
if(m_intent == "walk")
if(m_intent == MOVE_INTENT_WALK)
return 0 //silent when walking
if(buckled || lying || throwing)
@@ -15,7 +15,7 @@ In all, this is a lot like the monkey code. /N
return
switch(M.a_intent)
if(I_HELP)
if(INTENT_HELP)
AdjustSleeping(-5)
resting = 0
AdjustParalysis(-3)
@@ -23,7 +23,7 @@ In all, this is a lot like the monkey code. /N
AdjustWeakened(-3)
visible_message("<span class='notice'>[M.name] nuzzles [src] trying to wake it up!</span>")
if(I_GRAB)
if(INTENT_GRAB)
grabbedby(M)
return 1
@@ -50,11 +50,11 @@ In all, this is a lot like the monkey code. /N
return 0 //this is horrible but 100% necessary
switch(M.a_intent)
if(I_HELP)
if(INTENT_HELP)
help_shake_act(M)
if(I_GRAB)
if(INTENT_GRAB)
grabbedby(M)
if(I_HARM, I_DISARM)
if(INTENT_HARM, INTENT_DISARM)
return 1
return 0
@@ -40,7 +40,7 @@
/mob/living/carbon/alien/humanoid/hunter/handle_environment()
if(m_intent == "run" || resting)
if(m_intent == MOVE_INTENT_RUN || resting)
..()
else
adjustPlasma(-heal_rate)
@@ -160,13 +160,13 @@
switch(M.a_intent)
if(I_HELP)
if(INTENT_HELP)
help_shake_act(M)
if(I_GRAB)
if(INTENT_GRAB)
grabbedby(M)
if(I_HARM)
if(INTENT_HARM)
M.do_attack_animation(src)
var/damage = rand(1, 9)
if(prob(90))
@@ -191,7 +191,7 @@
playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
visible_message("<span class='danger'>[M] has attempted to punch [src]!</span>")
if(I_DISARM)
if(INTENT_DISARM)
if(!lying)
if(prob(5))//Very small chance to push an alien down.
Paralyse(2)
@@ -33,7 +33,7 @@
else if(lying || resting)
icon_state = "alien[caste]_sleep"
else if(m_intent == "run")
else if(m_intent == MOVE_INTENT_RUN)
icon_state = "alien[caste]_running"
else
icon_state = "alien[caste]_s"
@@ -127,10 +127,10 @@
switch(M.a_intent)
if(I_HELP)
if(INTENT_HELP)
help_shake_act(M)
if(I_GRAB)
if(INTENT_GRAB)
grabbedby(M)
else
+4 -4
View File
@@ -34,9 +34,9 @@
if(.)
if(nutrition && stat != DEAD)
nutrition -= hunger_drain / 10
if(m_intent == "run")
if(m_intent == MOVE_INTENT_RUN)
nutrition -= hunger_drain / 10
if((FAT in mutations) && m_intent == "run" && bodytemperature <= 360)
if((FAT in mutations) && m_intent == MOVE_INTENT_RUN && bodytemperature <= 360)
bodytemperature += 2
// Moving around increases germ_level faster
@@ -936,7 +936,7 @@ var/list/ventcrawl_machinery = list(/obj/machinery/atmospherics/unary/vent_pump,
/mob/living/carbon/proc/slip(var/description, var/stun, var/weaken, var/tilesSlipped, var/walkSafely, var/slipAny)
if(flying || buckled || (walkSafely && m_intent == "walk"))
if(flying || buckled || (walkSafely && m_intent == MOVE_INTENT_WALK))
return 0
if((lying) && (!(tilesSlipped)))
return 0
@@ -949,7 +949,7 @@ var/list/ventcrawl_machinery = list(/obj/machinery/atmospherics/unary/vent_pump,
for(var/t = 0, t<=tilesSlipped, t++)
spawn (t) step(src, src.dir)
stop_pulling()
to_chat(src, "<span class='notice'>You slipped on the [description]!</span>")
to_chat(src, "<span class='notice'>You slipped on [description]!</span>")
playsound(src.loc, 'sound/misc/slip.ogg', 50, 1, -3)
if(stun)
Stun(stun)
@@ -20,7 +20,7 @@
/mob/living/carbon/attackby(obj/item/I, mob/user, params)
if(lying)
if(surgeries.len)
if(user != src && user.a_intent == "help")
if(user != src && user.a_intent == INTENT_HELP)
for(var/datum/surgery/S in surgeries)
if(S.next_step(user, src))
return 1
@@ -37,4 +37,4 @@
for(var/datum/disease/D in user.viruses)
if(D.IsSpreadByTouch())
ContractDisease(D)
return 0
return 0
@@ -103,10 +103,11 @@ var/global/list/body_accessory_by_species = list("None" = null)
/datum/body_accessory/tail/wingler_tail // Jay wingler fluff tail
name = "Jay Wingler Tail"
name = "Striped Tail"
icon_state = "winglertail"
animated_icon_state = "winglertail_a"
allowed_species = list("Tajaran")
//Vulpkanin
+19 -5
View File
@@ -785,12 +785,26 @@
+ " handshake-mob, hug(s)-(none)/mob, johnny, jump, laugh(s), look(s)-(none)/mob, moan(s), mumble(s), nod(s), pale(s), point(s)-atom, quiver(s), raise(s), salute(s)-(none)/mob, scream(s), shake(s)," \
+ " shiver(s), shrug(s), sigh(s), signal(s)-#1-10,slap(s)-(none)/mob, smile(s),snap(s), sneeze(s), sniff(s), snore(s), stare(s)-(none)/mob, swag(s), tremble(s), twitch(es), twitch(es)_s," \
+ " wag(s), wave(s), whimper(s), wink(s), yawn(s)"
if(species.name == "Machine")
emotelist += "\nMachine specific emotes :- beep(s)-(none)/mob, buzz(es)-none/mob, no-(none)/mob, ping(s)-(none)/mob, yes-(none)/mob"
else if(species.name == "Slime People")
emotelist += "\nSlime people specific emotes :- squish(es)-(none)/mob"
to_chat(src, emotelist)
switch(species.name)
if("Machine")
emotelist += "\nMachine specific emotes :- beep(s)-(none)/mob, buzz(es)-none/mob, no-(none)/mob, ping(s)-(none)/mob, yes-(none)/mob, buzz2-(none)/mob"
if("Drask")
emotelist += "\nDrask specific emotes :- drone(s)-(none)/mob, hum(s)-(none)/mob, rumble(s)-(none)/mob"
if("Kidan")
emotelist += "\nKidan specific emotes :- click(s), clack(s)"
if("Unathi")
emotelist += "\nUnathi specific emotes :- hiss(es)"
if (species.name == "Slime People")
emotelist += "\nSlime people specific emotes :- squish(es)-(none)/mob"
else
for(var/obj/item/organ/external/L in bodyparts) // if your limbs are squishy you can squish too!
if(L.dna.species in list("Slime People"))
emotelist += "\nSlime people body part specific emotes :- squish(es)-(none)/mob"
break
to_chat(src, emotelist)
else
to_chat(src, "<span class='notice'>Unusable emote '[act]'. Say *help for a list.</span>")
@@ -335,7 +335,7 @@
/mob/living/carbon/human/attack_larva(mob/living/carbon/alien/larva/L as mob)
switch(L.a_intent)
if(I_HELP)
if(INTENT_HELP)
visible_message("<span class='notice'>[L] rubs its head against [src].</span>")
@@ -4,13 +4,13 @@
return 0
switch(M.a_intent)
if(I_HELP)
if(INTENT_HELP)
visible_message("<span class='notice'>[M] caresses [src] with its scythe like arm.</span>")
if(I_GRAB)
if(INTENT_GRAB)
grabbedby(M)
if(I_HARM)
if(INTENT_HARM)
M.do_attack_animation(src)
if(w_uniform)
w_uniform.add_fingerprint(M)
@@ -33,7 +33,7 @@
apply_effect(4, WEAKEN, armor_block)
updatehealth()
if(I_DISARM)
if(INTENT_DISARM)
M.do_attack_animation(src)
if(prob(80))
var/obj/item/organ/external/affecting = get_organ(ran_zone(M.zone_sel.selecting))
@@ -18,7 +18,7 @@
..()
if((M != src) && M.a_intent != "help" && check_shields(0, M.name, attack_type = UNARMED_ATTACK))
if((M != src) && M.a_intent != INTENT_HELP && check_shields(0, M.name, attack_type = UNARMED_ATTACK))
add_logs(M, src, "attempted to touch")
visible_message("<span class='warning'>[M] attempted to touch [src]!</span>")
return 0
@@ -53,7 +53,7 @@
species.handle_attack_hand(src,M)
switch(M.a_intent)
if(I_HELP)
if(INTENT_HELP)
if(attacker_style && attacker_style.help_act(H, src))//adminfu only...
return 1
if(can_operate(src))
@@ -99,14 +99,14 @@
else
to_chat(M, "<span class='danger'>You need to stay still while performing CPR!</span>")
if(I_GRAB)
if(INTENT_GRAB)
if(attacker_style && attacker_style.grab_act(H, src))
return 1
else
src.grabbedby(M)
return 1
if(I_HARM)
if(INTENT_HARM)
//Vampire code
if(M.mind && M.mind.vampire && (M.mind in ticker.mode.vampires) && !M.mind.vampire.draining && M.zone_sel && M.zone_sel.selecting == "head" && src != M)
if(species && species.flags & NO_BLOOD)//why this hell were we never checkinf for this?
@@ -168,7 +168,7 @@
forcesay(hit_appends)
if(I_DISARM)
if(INTENT_DISARM)
if(attacker_style && attacker_style.disarm_act(H, src))
return 1
else
@@ -191,7 +191,7 @@ emp_act
/mob/living/carbon/human/proc/attacked_by(var/obj/item/I, var/mob/living/user, var/def_zone)
if(!I || !user) return 0
if((istype(I, /obj/item/weapon/kitchen/knife/butcher/meatcleaver) || istype(I, /obj/item/weapon/twohanded/chainsaw)) && src.stat == DEAD && user.a_intent == I_HARM)
if((istype(I, /obj/item/weapon/kitchen/knife/butcher/meatcleaver) || istype(I, /obj/item/weapon/twohanded/chainsaw)) && src.stat == DEAD && user.a_intent == INTENT_HARM)
var/obj/item/weapon/reagent_containers/food/snacks/meat/human/newmeat = new /obj/item/weapon/reagent_containers/food/snacks/meat/human(get_turf(src.loc))
newmeat.name = src.real_name + newmeat.name
newmeat.subjectname = src.real_name
@@ -378,7 +378,7 @@ emp_act
if(penetrated_dam) SS.create_breaches(damtype, penetrated_dam)
/mob/living/carbon/human/mech_melee_attack(obj/mecha/M)
if(M.occupant.a_intent == I_HARM)
if(M.occupant.a_intent == INTENT_HARM)
if(M.damtype == "brute")
step_away(src,M,15)
var/obj/item/organ/external/affecting = get_organ(pick("chest", "chest", "chest", "head"))
@@ -47,12 +47,12 @@
if(T.footstep_sounds["human"])
var/S = pick(T.footstep_sounds["human"])
if(S)
if(m_intent == "run")
if(m_intent == MOVE_INTENT_RUN)
if(!(step_count % 2)) //every other turf makes a sound
return 0
var/range = -(world.view - 2)
if(m_intent == "walk")
if(m_intent == MOVE_INTENT_WALK)
range -= 0.333
if(!shoes)
range -= 0.333
@@ -65,7 +65,7 @@
//-(7 - 2) = (-5) = -5 | -5 - (0.333 * 2) = -5.666 | (7 + -5.666) = 1.334 | 1.334 * 3 = 4.002 | range(4.002) = range(4)
var/volume = 13
if(m_intent == "walk")
if(m_intent == MOVE_INTENT_WALK)
volume -= 4
if(!shoes)
volume -= 4
@@ -91,4 +91,4 @@
playsound(T, S, volume, 1, range)
return 1
return 0
return 0
@@ -420,9 +420,9 @@
return
doing |= SNPC_SPECIAL
var/static/list/customableTypes = list(/obj/item/weapon/reagent_containers/food/snacks/customizable,/obj/item/weapon/reagent_containers/food/snacks/breadslice,/obj/item/weapon/reagent_containers/food/snacks/bun,/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,/obj/item/weapon/reagent_containers/food/snacks/boiledspagetti,/obj/item/trash/plate,/obj/item/trash/bowl)
var/static/list/customableTypes = list(/obj/item/weapon/reagent_containers/food/snacks/customizable,/obj/item/weapon/reagent_containers/food/snacks/breadslice,/obj/item/weapon/reagent_containers/food/snacks/bun,/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,/obj/item/weapon/reagent_containers/food/snacks/boiledspaghetti,/obj/item/trash/plate,/obj/item/trash/bowl)
var/static/list/rawtypes = list(/obj/item/weapon/reagent_containers/food/snacks/grown, /obj/item/weapon/reagent_containers/food/snacks/rawcutlet, /obj/item/weapon/reagent_containers/food/snacks/rawsticks, /obj/item/weapon/reagent_containers/food/snacks/salmonmeat, /obj/item/weapon/reagent_containers/food/snacks/carpmeat, /obj/item/weapon/reagent_containers/food/snacks/catfishmeat, /obj/item/weapon/reagent_containers/food/snacks/spagetti, /obj/item/weapon/reagent_containers/food/snacks/dough, /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough, /obj/item/weapon/reagent_containers/food/snacks/doughslice, /obj/item/weapon/reagent_containers/food/snacks/meat, /obj/item/weapon/reagent_containers/food/snacks/boiledrice, /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, /obj/item/weapon/reagent_containers/food/snacks/raw_bacon)
var/static/list/rawtypes = list(/obj/item/weapon/reagent_containers/food/snacks/grown, /obj/item/weapon/reagent_containers/food/snacks/rawcutlet, /obj/item/weapon/reagent_containers/food/snacks/rawsticks, /obj/item/weapon/reagent_containers/food/snacks/salmonmeat, /obj/item/weapon/reagent_containers/food/snacks/carpmeat, /obj/item/weapon/reagent_containers/food/snacks/catfishmeat, /obj/item/weapon/reagent_containers/food/snacks/spaghetti, /obj/item/weapon/reagent_containers/food/snacks/dough, /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough, /obj/item/weapon/reagent_containers/food/snacks/doughslice, /obj/item/weapon/reagent_containers/food/snacks/meat, /obj/item/weapon/reagent_containers/food/snacks/boiledrice, /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, /obj/item/weapon/reagent_containers/food/snacks/raw_bacon)
try
var/list/allContents = getAllContents()
@@ -638,7 +638,7 @@
if(canmove)
if((graytide || (TRAITS & TRAIT_MEAN)) || retal)
interest += targetInterestShift
a_intent = "harm"
a_intent = INTENT_HARM
zone_sel.selecting = pick("chest","r_leg","l_leg","r_arm","l_arm","head")
doing |= SNPC_FIGHTING
if(retal)
@@ -746,7 +746,7 @@
tryWalk(TARGET)
else
if(Adjacent(TARGET))
a_intent = pick("disarm", "harm")
a_intent = pick(INTENT_DISARM, INTENT_HARM)
M.attack_hand(src)
timeout++
else if(timeout >= 10 || !(targetRange(M) > 14))
@@ -431,7 +431,7 @@
var/mob/living/M = target
if(istype(M))
if(health > 0)
if(M.a_intent == "help" && !incapacitated())
if(M.a_intent == INTENT_HELP && !incapacitated())
chatter()
if(istype(target, /mob/living/carbon) && !retal && prob(SNPC_FUZZY_CHANCE_LOW))
var/mob/living/carbon/C = target
@@ -439,7 +439,7 @@
tryWalk(target)
else
C.help_shake_act(src)
if(M.a_intent == "harm")
if(M.a_intent == INTENT_HARM)
retal = 1
retal_target = target
@@ -658,7 +658,7 @@
if(grabbed_by.len > 0)
for(var/obj/item/weapon/grab/G in grabbed_by)
if(Adjacent(G))
a_intent = "disarm"
a_intent = INTENT_DISARM
G.assailant.attack_hand(src)
inactivity_period = 10
@@ -58,7 +58,7 @@
/datum/species/wryn/handle_attack_hand(var/mob/living/carbon/human/H, var/mob/living/carbon/human/M)
var/obj/item/organ/external/head/head_organ = H.get_organ("head")
if(M.a_intent == I_HARM)
if(M.a_intent == INTENT_HARM)
if(H.handcuffed)
if(!H.get_int_organ(/obj/item/organ/internal/wryn/hivenode)) return
var/turf/p_loc = M.loc
@@ -1092,8 +1092,8 @@ var/global/list/damage_icon_parts = list()
if(legcuffed)
overlays_standing[LEGCUFF_LAYER] = image("icon" = 'icons/mob/mob.dmi', "icon_state" = "legcuff1")
throw_alert("legcuffed", /obj/screen/alert/restrained/legcuffed, new_master = legcuffed)
if(m_intent != "walk")
m_intent = "walk"
if(m_intent != MOVE_INTENT_WALK)
m_intent = MOVE_INTENT_WALK
if(hud_used && hud_used.move_intent)
hud_used.move_intent.icon_state = "walking"
@@ -241,7 +241,7 @@
switch(L.a_intent)
if(I_HELP)
if(INTENT_HELP)
visible_message("<span class='notice'>[L] rubs its head against [src].</span>")
@@ -322,7 +322,7 @@
return
else
if(stat == DEAD && surgeries.len)
if(M.a_intent == I_HELP)
if(M.a_intent == INTENT_HELP)
for(var/datum/surgery/S in surgeries)
if(S.next_step(M, src))
return 1
@@ -343,10 +343,10 @@
switch(M.a_intent)
if(I_HELP)
if(INTENT_HELP)
help_shake_act(M)
if(I_GRAB)
if(INTENT_GRAB)
grabbedby(M)
else
@@ -393,10 +393,10 @@
return
switch(M.a_intent)
if(I_HELP)
if(INTENT_HELP)
visible_message("<span class='notice'>[M] caresses [src] with its scythe like arm.</span>")
if(I_HARM)
if(INTENT_HARM)
M.do_attack_animation(src)
if(prob(95))
attacked += 10
@@ -416,10 +416,10 @@
visible_message("<span class='danger'>[M] has attempted to lunge at [name]!</span>", \
"<span class='userdanger'>[M] has attempted to lunge at [name]!</span>")
if(I_GRAB)
if(INTENT_GRAB)
grabbedby(M)
if(I_DISARM)
if(INTENT_DISARM)
M.do_attack_animation(src)
playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1)
var/damage = 5
@@ -460,7 +460,7 @@
/mob/living/carbon/slime/attackby(obj/item/W, mob/user, params)
if(stat == DEAD && surgeries.len)
if(user.a_intent == I_HELP)
if(user.a_intent == INTENT_HELP)
for(var/datum/surgery/S in surgeries)
if(S.next_step(user, src))
return 1
+5 -5
View File
@@ -60,10 +60,10 @@
if(!M.buckled && !M.has_buckled_mobs())
var/mob_swap
//the puller can always swap with it's victim if on grab intent
if(M.pulledby == src && a_intent == I_GRAB)
if(M.pulledby == src && a_intent == INTENT_GRAB)
mob_swap = 1
//restrained people act if they were on 'help' intent to prevent a person being pulled from being seperated from their puller
else if((M.restrained() || M.a_intent == I_HELP) && (restrained() || a_intent == I_HELP))
else if((M.restrained() || M.a_intent == INTENT_HELP) && (restrained() || a_intent == INTENT_HELP))
mob_swap = 1
if(mob_swap)
//switch our position with M
@@ -176,7 +176,7 @@
return 0
var/obj/item/hand_item = get_active_hand()
if(istype(hand_item, /obj/item/weapon/gun) && A != hand_item)
if(a_intent == I_HELP || !ismob(A))
if(a_intent == INTENT_HELP || !ismob(A))
visible_message("<b>[src]</b> points to [A] with [hand_item]")
return 1
A.visible_message("<span class='danger'>[src] points [hand_item] at [A]!</span>",
@@ -937,11 +937,11 @@
. += config.run_speed
else
switch(m_intent)
if("run")
if(MOVE_INTENT_RUN)
if(drowsyness > 0)
. += 6
. += config.run_speed
if("walk")
if(MOVE_INTENT_WALK)
. += config.walk_speed
+1 -1
View File
@@ -108,7 +108,7 @@
/mob/living/mech_melee_attack(obj/mecha/M)
if(M.occupant.a_intent == I_HARM)
if(M.occupant.a_intent == INTENT_HARM)
if(M.damtype == "brute")
step_away(src,M,15)
switch(M.damtype)

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