From 3308b297cf9c133ee10be01a7c124a9b795ec651 Mon Sep 17 00:00:00 2001 From: Aylong <69762909+Aylong220@users.noreply.github.com> Date: Thu, 4 Jan 2024 14:07:44 +0200 Subject: [PATCH] Feat: New Year (#873) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ненавижу Новый год ## Что этот PR делает Новогодняя ёлка, спавнится только по праздникам, есть 2 варианта: С подарками и без Первый только на НГ и 1 подарок на рыло Второе чисто декорация Так же меняет освещение на более тёплое, возможно ещё чёт добавлю ## Почему это хорошо для игры Праздничный дух, хуё-моё... ## Изображения изменений ![image](https://github.com/ss220club/Paradise-SS220/assets/69762909/bc7a8dc8-9f90-425b-bd10-8cc66db94b9a) ## Тестирование Больно ## Changelog :cl: add: Новогодняя ёлка, встречайте, любите и жалуйте. Сезонная декорация с подарками на НГ. В подарке может быть что угодно, абсолютно что угодно, хоть бесконечный гиб спелл мага который нельзя выбросить, увы. Лудомания на 5 дней (31 декабря - 4 января) и 1 подарок на рыло в раунд /:cl: --------- Co-authored-by: Furior <68264134+Furrior@users.noreply.github.com> --- .../map_files220/MetaStation/MetaStation.dmm | 7 +- _maps/map_files220/cyberiad/cyberiad.dmm | 13 +- _maps/map_files220/delta/delta.dmm | 2 + modular_ss220/events/_events.dme | 1 + modular_ss220/events/code/christmas.dm | 181 ++++++++++++++++++ modular_ss220/events/icons/nuclearbomb.dmi | Bin 0 -> 1598 bytes modular_ss220/events/icons/xmas.dmi | Bin 0 -> 12596 bytes modular_ss220/events/icons/xmaslights.dmi | Bin 0 -> 13978 bytes modular_ss220/events/icons/xmastree.dmi | Bin 0 -> 3126 bytes 9 files changed, 201 insertions(+), 3 deletions(-) create mode 100644 modular_ss220/events/code/christmas.dm create mode 100644 modular_ss220/events/icons/nuclearbomb.dmi create mode 100644 modular_ss220/events/icons/xmas.dmi create mode 100644 modular_ss220/events/icons/xmaslights.dmi create mode 100644 modular_ss220/events/icons/xmastree.dmi diff --git a/_maps/map_files220/MetaStation/MetaStation.dmm b/_maps/map_files220/MetaStation/MetaStation.dmm index 24e736f4f45c..7e29e3e7b655 100644 --- a/_maps/map_files220/MetaStation/MetaStation.dmm +++ b/_maps/map_files220/MetaStation/MetaStation.dmm @@ -51925,6 +51925,7 @@ d2 = 2; icon_state = "1-2" }, +/obj/effect/spawner/xmastree, /turf/simulated/floor/plasteel/goonplaque/commission, /area/station/hallway/secondary/bridge) "gHm" = ( @@ -68808,6 +68809,10 @@ }, /turf/simulated/floor/plasteel, /area/station/science/toxins/mixing) +"ojT" = ( +/obj/effect/spawner/xmastree, +/turf/simulated/floor/wood, +/area/station/service/bar) "olg" = ( /obj/structure/cable/yellow{ d1 = 4; @@ -124183,7 +124188,7 @@ bwz aPF bGv uwy -bEv +ojT bGi bEv bGi diff --git a/_maps/map_files220/cyberiad/cyberiad.dmm b/_maps/map_files220/cyberiad/cyberiad.dmm index d6975990869c..6f770705876b 100644 --- a/_maps/map_files220/cyberiad/cyberiad.dmm +++ b/_maps/map_files220/cyberiad/cyberiad.dmm @@ -19878,7 +19878,7 @@ /obj/structure/flora/tree/jungle{ pixel_y = -14 }, -/turf/simulated/floor/plasteel/goonplaque/memorial, +/turf/simulated/floor/grass, /area/station/hallway/secondary/exit) "bzf" = ( /obj/effect/spawner/window/reinforced/polarized/grilled{ @@ -24557,6 +24557,7 @@ "bTZ" = ( /obj/structure/flora/ausbushes/ywflowers, /obj/structure/flora/ausbushes/sparsegrass, +/obj/effect/spawner/xmastree, /turf/simulated/floor/grass, /area/station/medical/sleeper) "bUa" = ( @@ -49115,6 +49116,13 @@ icon_state = "yellowcorner" }, /area/station/maintenance/fsmaint) +"eVw" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/xmastree, +/turf/simulated/floor/carpet, +/area/station/service/chapel) "eVD" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 6 @@ -91498,6 +91506,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/effect/spawner/xmastree, /turf/simulated/floor/wood/fancy/cherry, /area/station/service/bar/atrium) "uuH" = ( @@ -149713,7 +149722,7 @@ sRx sRx bxB sRx -sRx +eVw xZg oRu uyO diff --git a/_maps/map_files220/delta/delta.dmm b/_maps/map_files220/delta/delta.dmm index 21d65f570e46..4902ee333c87 100644 --- a/_maps/map_files220/delta/delta.dmm +++ b/_maps/map_files220/delta/delta.dmm @@ -45212,6 +45212,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/spawner/xmastree, /turf/simulated/floor/plasteel/grimy, /area/station/service/chapel) "dLy" = ( @@ -63646,6 +63647,7 @@ /area/station/security/interrogation/observation) "iOx" = ( /obj/machinery/hologram/holopad, +/obj/effect/spawner/xmastree, /turf/simulated/floor/wood/fancy, /area/station/service/theatre) "iOy" = ( diff --git a/modular_ss220/events/_events.dme b/modular_ss220/events/_events.dme index 85d3a02f16e5..f2d0c0781a56 100644 --- a/modular_ss220/events/_events.dme +++ b/modular_ss220/events/_events.dme @@ -3,3 +3,4 @@ #include "code/new_space_laws.dm" #include "code/headcrabs.dm" #include "code/infestation_extended.dm" +#include "code/christmas.dm" diff --git a/modular_ss220/events/code/christmas.dm b/modular_ss220/events/code/christmas.dm new file mode 100644 index 000000000000..12eac5a26135 --- /dev/null +++ b/modular_ss220/events/code/christmas.dm @@ -0,0 +1,181 @@ +#define COMSIG_SUBSYSTEM_POST_INITIALIZE "post_initialize" + +GLOBAL_LIST_EMPTY(possible_gifts) + +/datum/controller/subsystem/holiday/Initialize() + . = ..() + SEND_SIGNAL(src, COMSIG_SUBSYSTEM_POST_INITIALIZE) + +// Landmark for tree +/obj/effect/spawner/xmastree + name = "christmas tree spawner" + icon = 'icons/mob/screen_gen.dmi' + icon_state = "x2" + layer = LOW_LANDMARK_LAYER + /// Christmas tree, no presents included. + var/christmas_tree = /obj/structure/flora/tree/pine/xmas + /// Christmas tree, presents included. + var/presents_tree = /obj/structure/flora/tree/pine/xmas/presents + +/obj/effect/spawner/xmastree/Initialize(mapload) + . = ..() + if(!SSholiday.initialized) + RegisterSignal(SSholiday, COMSIG_SUBSYSTEM_POST_INITIALIZE, PROC_REF(place_tree)) + else + place_tree() + +/obj/effect/spawner/xmastree/proc/place_tree() + if(NEW_YEAR in SSholiday.holidays) + new presents_tree(get_turf(src)) + else if(CHRISTMAS in SSholiday.holidays) + new christmas_tree(get_turf(src)) + return qdel(src) + +// Gift +/obj/item/gift + icon = 'modular_ss220/events/icons/xmas.dmi' + +/obj/item/a_gift + icon = 'modular_ss220/events/icons/xmas.dmi' + +/obj/item/a_gift/anything + name = "\improper новогодний подарок" + desc = "Подарок! Что же тут..." + +/obj/item/a_gift/anything/attack_self(mob/M) + if(!GLOB.possible_gifts.len) + var/list/gift_types_list = subtypesof(/obj/item) + for(var/thing in gift_types_list) + var/obj/item/item = thing + if((!initial(item.icon_state)) || (!initial(item.item_state)) || (initial(item.flags) & (ABSTRACT | NODROP)) || (initial(item.w_class) > 6)) + gift_types_list -= thing + GLOB.possible_gifts = gift_types_list + + var/something = pick(GLOB.possible_gifts) + var/obj/item/gift = new something(M) + M.unEquip(src, TRUE) + M.put_in_hands(gift) + gift.add_fingerprint(M) + playsound(loc, 'sound/items/poster_ripped.ogg', 100, TRUE) + qdel(src) + return + +// Xmas Tree +/obj/structure/flora/tree/pine/xmas + name = "\improper новогодняя ёлка" + desc = "Превосходная новогодняя ёлка." + icon = 'modular_ss220/events/icons/xmastree.dmi' + icon_state = "xmas_tree" + resistance_flags = INDESTRUCTIBLE // Protected by the christmas spirit + +/obj/structure/flora/tree/pine/xmas/Initialize(mapload) + . = ..() + icon_state = initial(icon_state) + +/obj/structure/flora/tree/pine/xmas/presents + icon_state = "xmas_tree_presents" + desc = "Превосходная новогодняя ёлка. Под ней подарки!" + var/gift_type = /obj/item/a_gift + var/unlimited = FALSE + var/static/list/took_presents // Shared between all xmas trees + +/obj/structure/flora/tree/pine/xmas/presents/anything + gift_type = /obj/item/a_gift/anything + +/obj/structure/flora/tree/pine/xmas/presents/Initialize(mapload) + . = ..() + if(!took_presents) + took_presents = list() + +/obj/structure/flora/tree/pine/xmas/presents/attack_hand(mob/living/user, list/modifiers) + . = ..() + if(.) + return + if(!user.ckey) + return + + if(took_presents[user.ckey] && !unlimited) + to_chat(user, span_warning("Ты не видишь подарка со своим именем.")) + return + + to_chat(user, span_notice("Немного покопавшись, ты нашёл подарок со своим именем.")) + + if(!unlimited) + took_presents[user.ckey] = TRUE + + var/obj/item/G = new gift_type(src) + user.put_in_hands(G) + +/obj/structure/flora/tree/pine/xmas/presents/unlimited + desc = "Превосходная новогодняя ёлка. Кажется под ней нескончаемый запас подарков!" + unlimited = TRUE + +/obj/structure/flora/tree/pine/xmas/presents/anything/unlimited + desc = "Превосходная новогодняя ёлка. Кажется под ней нескончаемый запас полностью случайных подарков!" + unlimited = TRUE + +// Рождество +/datum/holiday/xmas/celebrate() + // Новогоднее освещение + for(var/obj/machinery/light/lights in GLOB.machines) + lights.brightness_color = "#FFE6D9" + lights.nightshift_light_color = "#FFC399" + // Гурлянды + for(var/obj/structure/window/full/reinforced/rwindows in world) + rwindows.edge_overlay_file = 'modular_ss220/events/icons/xmaslights.dmi' + for(var/obj/structure/window/full/plasmareinforced/rplasma in world) + rplasma.edge_overlay_file = 'modular_ss220/events/icons/xmaslights.dmi' + for(var/turf/simulated/wall/indestructible/fakeglass/fakeglass in world) + fakeglass.edge_overlay_file = 'modular_ss220/events/icons/xmaslights.dmi' + // Новогодний цвет окон + for(var/obj/structure/window/windows in world) + windows.color = "#6CA66C" + for(var/obj/machinery/door/window/windoor in world) + windoor.color = "#6CA66C" + for(var/turf/simulated/wall/indestructible/fakeglass/fakeglass in world) + fakeglass.color = "#6CA66C" + // Их не красить + for(var/obj/structure/window/full/plasmabasic/plasma in world) + plasma.color = null + for(var/obj/structure/window/full/plasmareinforced/rplasma in world) + rplasma.color = null + for(var/obj/structure/window/full/shuttle/shuttle in world) + shuttle.color = null + for(var/obj/structure/window/full/plastitanium/syndie in world) + syndie.color = null + // Лучший подарок для лучшего экипажа + for(var/obj/structure/reagent_dispensers/beerkeg/nuke/beernuke in world) + beernuke.icon = 'modular_ss220/events/icons/nuclearbomb.dmi' + for(var/obj/machinery/nuclearbomb/nuke in world) + nuke.icon = 'modular_ss220/events/icons/nuclearbomb.dmi' + // Новогодние цветочки (И снеговик) + for(var/obj/item/kirbyplants/plants in world) + plants.icon = 'modular_ss220/events/icons/xmas.dmi' + plants.icon_state = "plant-[rand(1,9)]" + // Шляпа Иану + for(var/mob/living/simple_animal/pet/dog/corgi/Ian/Ian in GLOB.mob_list) + Ian.place_on_head(new /obj/item/clothing/head/helmet/space/santahat) + // Снеговик в крафт + for(var/datum/crafting_recipe/snowman/S in GLOB.crafting_recipes) + S.always_available = TRUE + break + //The following spawn is necessary as both the timer and the shuttle systems initialise after the events system does, so we can't add stuff to the shuttle system as it doesn't exist yet and we can't use a timer + spawn(60 SECONDS) + var/datum/supply_packs/misc/snow_machine/xmas = SSeconomy.supply_packs["[/datum/supply_packs/misc/snow_machine]"] + xmas.special = FALSE + +// Световые маски на гурлянды, красивое в темноте +/obj/structure/window/full/reinforced/update_overlays() + . = ..() + if(CHRISTMAS in SSholiday.holidays) + underlays += emissive_appearance(edge_overlay_file, "[smoothing_junction]_lightmask") + +/obj/structure/window/full/plasmareinforced/update_overlays() + . = ..() + if(CHRISTMAS in SSholiday.holidays) + underlays += emissive_appearance(edge_overlay_file, "[smoothing_junction]_lightmask") + +/turf/simulated/wall/indestructible/fakeglass/update_overlays() + . = ..() + if(CHRISTMAS in SSholiday.holidays) + underlays += emissive_appearance(edge_overlay_file, "[smoothing_junction]_lightmask") diff --git a/modular_ss220/events/icons/nuclearbomb.dmi b/modular_ss220/events/icons/nuclearbomb.dmi new file mode 100644 index 0000000000000000000000000000000000000000..87f9e234200d58562b85dddeef07949c7666c7c2 GIT binary patch literal 1598 zcmbtUdoPf#x#>iEytoKd1Ox(!+gRfq zdHEhMl7#qp+|-hz#Y;o6BPYgF= zEM>fguyFzFCp7I0@`mM@@a2(KWO-?MW%$v`i;SMoq<)tHh1q>eFIYu2&VA?Nq=zVM z)N}23s1YU4a7DUG?!%kyD*_Xwa|PVTDofFn@d@H^Rs_iH#-U#!N)be1<~wALuy9av z(W_Jv`lH2-BYJMimvSI;>u4Hrvu%h9HZtMe2M%|{TY#9ousL4SLL`t*u~;md)1=Vo zBoc`f6cmKkR|(B@p%zC?X9CgEI*1~Yfn^^U@(L_@6H@s?l zjGiJ&qw)2l=?8XB?xu4ix6?ggt}3$0P?SM<--%M|`xz&YFgT;`Dd7l8%aNk#gAcUT zdfDCMY6SgB4%R_CY4yi{1vufJw|UN4=wNXL~iCT?3$)a8>6QM$wv_M!(dvZlEf68-N|j^`L*h9n4}|5b+c*(u0+{Pd(!>?NbRtS` zsxirh9-`=^T^8`OfnL3a0;aF+Kr1CJi9raod*hhzh8X;WU_?)jbn-nb8YhfI^R;OE z@yps@SYp*tEAwfr(wr`wdmnpHv9@?}L4A)y#y&6sYsuswUq7U^B>=DVvatte*wGSs z!~RP0BgqHS9lP78NTw)DO|*WCRJ*Gqg(15TynxmqtngBdlA27{+TOgFh!7_KxoE=-%?t{6Eu;i~mqj=6y5E zMZe~_%bjiPUAah&>Dnrj;p&CuVmM&R{17aG^ruo4@s`_UR*dl7+yxcDv@%BPh^RyF z7=E8Z@@*i;UbyYc>1w0WreY21HnS7iYD$-f4OW*-RQV&RdmM8bI&eR2XK1fxynHs% zkaia+j<1zv$0ZnNNqVh~ZF}gpZmq^c6<^HOubA^DSN}=8Mah|z|4zG!J?9ce7E-)t z;_|5PYIYD!Gf_W!_PKn zK83yW8FLMHfnk9B%-;D5)n@Gk^?VIT%A^}D9)$au@h;?ljV5J%O zO!pX1vbc%bZ#NG07RBD!bcJ%wStG%9HV{qb zM;&epGfP(3nPdV>m$2a=4*z<|E11Pd+#-dUS&O+NDv<8W-?IP&E*{d+;L z_^i;s1$ctzIDpkDPkG8Up22HN2fu-$hTg!h`qsA%u(i&O?^n6jl%~dfL=h9>TeEjY z&$>hr(N(3sf`N5zA=-fd1vxlPQc`FKc^ca=9{j|VIyqNPZn{%5p1|$kZpWMdz~Zhb Xxe!{_ve&`ny%vzoDSI5#!Xx=_WiK=J literal 0 HcmV?d00001 diff --git a/modular_ss220/events/icons/xmas.dmi b/modular_ss220/events/icons/xmas.dmi new file mode 100644 index 0000000000000000000000000000000000000000..cf30a5d2990cf913000c6fcf2f25d843659f58e7 GIT binary patch literal 12596 zcmW+-WmsEH6UALxq!f2|DHQht#oZl>yE_G1io3f*ahFoGxVsc5xQ8NvK)(BaKazd! zCE3i*%$YfR_7bJ0B8QDZf&m8yhpiwlqXCSCz$+9D1$d9Ov>*kBMt?0mPZ?_uOLse0 zPdgW9I5^+jxS1J@Fo`!KH@DN8(AjF)*Q&Nb6Df4uCmhVWF0*%C1iynKMF~fzolwLO zZ{yr*oxNh3s!puam&Cp>5j-PCwO?$YeG{SOCJ~OE=B!?rmY^nayqf*pWuB60REB{k2^P6acQv5C^{u&k|9f8M<)mlw z35Oxar=@hJoa~=8A&bQ+>1QFKuznekzV+&dHQeZ90W{h8ddV& z;KG>FW$BA?MtKHW_XlV=V!0-{nD$)dhO9XdqiL$cDwzmn^~b4xN$F?Xzhx=X!${?5 zN%kyaJ=hRe*-k05%PD1^_zejXgU|^I9*G=@9%a}B6x@<6ZT${#8;m>qrnB-4xA6#z z#OQY zn^0qlgRO=(-dOuN`l4xWGksZJSUN6nm>NhBadIwD*H?GR$_aJ;h$P7Y%=YPp5N@&2 z2~PE0Fo-#25xyfxLg4(ndWbA_rg{jnmm?|gM*^B@|1JZFBj*OmHN#-wO96c-r17eX z#Bdo;FQ_j=A(hu|mJoBV%JMH)l>6+&*+&Ecco)}9ROIRc2kgGmvewCvi796PTVkKh z8m?(o_qu~-j|km;T_~QqrGN{9?a9E+9C&90p-}VyMtR`o;Yd$~#$^8M%sh1UK?}IS zaGp17L5K8LOwR*aPYQf=9o-y*k-gUX=H|3_Kd1LOB6< zFkrLjj#k7w4VFqCyuZ`UBAYPOt4VSlsViP=kou-Da(V+uZcJ}&;X1j9vJJ{7{ctxkH z{7QHC=DTtqbCJAIR-_QKN~opK5LUY$v5g%A=8B|IIo2hm0;un;&pOEN;Tg~KsIr82 z&1kk^UX0yJqO&g$9Op=M;=woZvmE}Sq#)yEatA=IgJS^8THY@Uk?z$ap+S}bjaeXF>)I%niizgnyx8h zk#~L6BM%#!T=E&n^Xex5dJ>lTQ_>(g@Qfh>?l3>@&PVT~Qd6TyL==Y*irj}H+A|^R zu!ZTCa5S|M9eh#>sViRX(!85PUXp}}Y)lVcTPFm=dFa;30HrnHGDWXcqRGM|58 z*Y0DT;+qr}9q@p}B{k2M#RYIEJE`D98y(R6G4wr|X680OB11qDgCuYnCV?J$rl541 z&=2S6H6%ui{ce8u@k0jX%}0H^wMujiziZ0S;L^jpb&wk9>&Le7j2H#ng3Ludyl?ho zV?4HIh1dxbJMnN#1#kN?T7?}la$g-zBn4y;Vh+#&M+R=hy)7)8`8w9iqYtlpc#*4Y zz4qHU>_E3dD{^cbqw#60N#2OlW=q)f*lgEha=na)TpAO0W|$3kKURmUOCHYdWUts$ zHe*v2LGpL&>FJ|VUsS*YOEYrafeJcPCVq3l=J5SALqi4I-CKLkZOz)&kye>&Wvy6TjyD@y%` zV?BIReGW0Y+2VzSDej~D#98CS)9=bg)x{_R@SBy9=`8jQ$nEIfgACdCtn7?*xp&gq zmzR3ZMyegk4WuiCQ#3o(1>IZ4gtN{Nfwn;1LVYo_jl#czI({0b2SE-o+n9UlE{4I% zJD==)AIKH@ri0`%>TQ|zQ*3NW>7IWMjj^10{b?%S;e$7Q0eLYqb(0gL1{c{3s8ng& z{Du5X4>RmxD{#(&+dqBxD>u~RP&o-M?1dH`ja4%}1N6*XfP4d7p0PVb|4>1uj_EOF zfsc^$L8994D* zl{gO`6thN7oivlLs6z9>Ewz|`wQ{|0zFgwMp+;3XvV zh~dqxk)GxF?R&@>cEn--qQ?_`q6)9QLDt4<={97KL%aQgi0#nyjDl+jo85Fbvxe&o z8Z@k%aK0?}OlrK71M566{do_wgR=*&mujK5lCrM8SosRQ=Cubizkd@xo32Qc-BMbG`m+cYkYt!qUtjqyj7@=91Htn_sg&%%pJe-RWBuqcJdY%Nwb8LnvAH>|W z$Kh&#C`Sd6Xag&|%I>o#aD|&=GJn!(4SbB6yCkR$C~`mFFv?}?$&@Q-T3e-CwsrktnOo0k)v zmTQlZNL(Jfj#czv&H7+)mzJ@6XhHl-q>cuOrk7CNr?-Fo@`7b!eU5G&bb?vC%h(?;?9_JE(@dH+^$@?(UfyVP$+p z;#3R!Ihga%;#FbmLUX9z=?OfRWD1{UrS`|Nzdzc$#^^gTb9IbLBQ2BED;^Tb-t38l z=+9QGf3@0Q^N?~oUE3B}+S9Aw)}kj|R>~L&{tcmx+&+HTFiX!Po-P8Xf#kdk{b&2! zDCz{Uy~l8gdvaASo(jcNKHYEJXm$E}7fV7Y{6I2B#b?FBkM<)a8-C`Dek&S1OAwzl zX!N|jiRlZQ8#%^kS!y*Q4!CjIC3glylWDibv4bQmaFd@;6G95}_ba?Lz1`Zs1%?XCVbcI$c#Om<^QlLbxR*6%*$#xx*I@_+QOZ;d zs9{3bxnBoI))NE!!egQL{4>3Y+lF4rFo*;DO%$#WJ?qXd_*nJlhJ68u*NF=`6R(!W zmr77ykq$xrm7b&lM!s}4)Fy&(b-swmV`gMBz<^_#})%xWO3Iqf%W&#*8Fq_ zMno#Uqj3mdd>-~(*ZiylOgGI@?lYrYeqkWYxKVBcbW-_u=kk~n(RG-3ztqZOA_}KddS$QT?c(1 z29z3oBh8_m+!(+niHkp;fK7Eu$mlTXLcw4)X)usRd;J3Z4NjN7mpK0p9A5SxQBQAf z){fjEKh4ElBN>1GPHX7w&W93N3K*r_z^HqYg`bz)nHIteus8j#D64c>hcM z2cJJ3GOr+FgOh*FQR5Hr1()z_6$^jPhjUa5G}EX2M`V;5*j89rrl?oNlchxw;8um* zirkgr>?Pc;4`|2J^ig4naNfGc<~Gj~IR5@zAy=+@D4RH$D6q)eGPaL~e`u{U$ccY# zf@jDl4x1|?Ek}R-IZP4!v)#HB7Fg@5jg=EoTBmdPnH_>`IRNQgc*PaDY)zJWuu+{6e6iO_aAcRWUP1>x@NT zmBFm=dvaiHYg}jDw+PUg5{xZAh!Nw*(w%sZQ#u~ScBm3xRb^RgGpFm||XHz#>221AuL?D_>cr{Ya8Eo~1E&o)2=%Tci zFL}UUH`JejXcNR=Vter-&>*C3i#*REB6{7&jxlkjTFpPeKWmgqq#6bb0;MEO1yMV^ zf)zwHS$k0L6A;M*HT6H=bCO;Zpua^mHP8zS`B5V_Bmr~nNqyZ~BD=pi6z**s7qV8> zbvspKES)54u|Al2>}g%M6R+Wh&~RhUjt9^kXusTmpT0F!i0>|Md`y>ZarP#W8Li*a zo~sOWi_LFG9?Z*s{Qlgiw6bjtR>V}47bENY&fXdua?InR#CbIOsuP%VIYs-R<6%?J zN+zZ=l^<(1o?qua_81d?#BVUv&e7A!Z3;kBcP-j}Lo}Z1(C!$~vCaLBt{M~nZy%HXvoE&2Z ze5{75QgU&}Ds2-5@)9<*U$jhN*%a`F;i9iE?=OO)=NO?;U7Jnzztpi;f$&EWb&X=j&^=T}Ob!1YB%Y+HWKHG+8Ef!;@-Vv`X^F!vmPn}| z6#yCU0hx`Dl*=@Fa5}UJfYDGXIOpxFQD^f93d#KLUuzn#(5{>Iv~|gKLM*?bsq_$+ zUYl}`%#H7Za)!-s+AKL z8^!pQPiqkma&5ilnE4Odd22nW5piMi2#H4_`+;RNk5p#sR$o+)fc4A!N{?^)AK7f9Kf?#WU&sfI9VrME2=^GU2Qdw<~AIVrfCg2Rt z9-_L_aK@X`M* z2`?p#5_F}IM?KbKOxpAJXl)Pt-|XSKhei6-DU~7e#2Mfjx2}-fs*b|TP3Uu|>A_CP z(bC^l5OvX9ADD1LUj!_RV=Q07py~K$*fCdF0dtP_AVA}=ljaBm2 z5{kJIWDxCncv5}}LiQQ?caUZ|F$-4`pu9gasbvi_rT^RGv{YnR_4#u(df{b3dYTi& z(vyI`jQzPm0@yL7iL<> zd|5J7nNe{O-!9aD_M5C)&hxlu$1TCWY*eycGkDMQ_ja98=Vt|d?HK6uCb&KUTH}OT zdX+4;o8ui!_q5y~s@)@5b+}bT;Ik#W(`gPD0jkh*WJF`0O}s~Byo_cQcgtqgty>Og zwexU#BI`Ub6^6{=;%LCf_Gk?k%_}W7f}sr~J)54XEstK{KbG6hF-~OElpoi!2me-o zfPXd7(lIXTF1DsjI!zA=0xFSjr+p2-B+a(F-%`cjw3+2neB0>2okA3)Cn0^WF}?mY zgQ)SJtXjG`V5^K+LU#M$4RCz{v_ARa=Q(u>uj@~N$qu=*6|dHRV?GnTZXnFqB?djR zNM1T8oyf(1DGO{kW@Amw-t7nO`-dZ8xD4|8S;Jq9J$?oDAyX<4Ku2c z(5J?1dR`}H>V5FRFs^ddvjL!$jpat{J^huQX82$>aMWD-jNNJLd`rVNx%lJDS)GMR zaPV*Yfryb(L6};z)tY{>8(f6a_I3$mu$iT?Z?$)8vfmwm9DBN3p8-oR zbsD4fQ?6^uA4PNuxv~rlctTWb;Uq5Uk)k%&3cMY^tyMQp=lB-Mfzr1U@QST4@ZYa? zs272bbiv?aO@Z2b!~bSw6y7R+SugQego{9_)@wRvvoiz}fZMcLHag6@)0)^4Io90hX|RD*E1ik0Mk z|7vc!7nbB^-=y%(0X2{}>X zR>;B716*f4Qy_0E5-RI5p^2K*`16ZhPsEIk!qq*uK5mh|4!epD`=eP{Y3EdoSGD~Q zQeW+x{|KP3%2$0~CE=pI2qGNM z-;>bo{0BJNNMtRB943MKnx{d6gCrVN}1nJjv41_iW2v z^yot_ur69eAbGMV-xb6?VF1RY73o7FHkXpxxF6h0UAuo4)jHj9vF`H>bK~@#tpY*S4Z`mEPHo2L}PBiEd4fX z(R4A^R1RC;j9CfxjHfr`Ui&d)x73#kp(x>r+?K=gZRI*h`ytEebFeg?9$yF*RmxQv zZa`BYvb>P~Rjr|aPo1|T%O-}8An&VxCa+60AD{`I><4_#1QQ7+aBNX(1(>~ZI^p~m zXL=_VwVtCR-E||Ec}j8JveNfIuGtyZ~~7EO|_|)b?nt-=228GyLr0E>6jmZy1?{V73=A2!iw9E za8lvg(boTARJs`qIqzM63vm7IQz0<6{(Q$$Llyi;EHN#7<#>p0x?Mr6nwVj=Z)pBd z-idgzC?|Q9#lJG1;K>XZ`**FDG5Lz9uAdQ4@xLf&e*OB8dcBAXk5pT03J<>0KA?M< z-?BEC-6+79ahxQGxw~3%mhjO?I9%5AWW3823yd8ZPVjv4ZE6ll%0Ct~Mn{nQR=K*U ze>kuBwl}4vDl~24VJW5acIR1Uq!JxlXHGyYRGCx+GE#jd7)UnYsZy{kJ7)WXN}Bv^ zP~aiJZ2}*^GnYA~$7%96wC&#G(^aL$@-vH{OE^PEe^tl#(G>xc9#lygIfN13nSO6y z51D{qqY}&U?UK{rF^iKT^U&MF2gz1cL5X?J3k7|{{*|W&|1+qyyV$Fp3f6TvlSLus;%1g@l;E-VsCI+s4=s63}C0Xj-mrD)}xk4Lxh*FG8DQ zd3M-)qD=V?n=XSn&rqozXgJY(9&@|jL44_$Eed^cqyj&O?eXcZ?#XX(dP>=dK$`BM zUy%4tSwB()#P2g79p9>T487))CJvDzUhPzae#a#&W9)IOs}dvns$EEyHhw>5T<40Q z;g4_j9PceBN*pp}ct)6Yxn_vJq&#rNke50Cue|^PND6991coBz_gI-qH}{|m77uno zDPbvu)v@P3%<)$WQt|mZv@U92RAUCWQ>q=Lkz3WmAf7Nx-LM0yYh6J!M{;o95Wigg zc{!81^jr5gdg07WEkxD5xlB=KFHT(%j73}oPFN?=c1ZTOPl#(7#c->S1D?O)rH!6L#NU)ADoZ3zZ%l?Ui@jM*A+Hal zz)N$!C0W%@G-xn;KT~OHeMb4bgrA;fCqsTF?HOx8y$y76yM+J*aX)OcgTHIQsz^hN zWt4w=N?E=EA+ADeDF4QOkXg3g;|+-)tgKfXZMUD0)p6<^-I%Lj%Rc<~Bjt+1!T$5; zyXD|#_H4rgIk%ur9q0Cpl8o7n!!poD4~!ukD3X)VfJ~nK8(_8CdsdiJOu7C6py(J* zD>O9gH$+E~M;4qWkNq)<5cf!yGpbq6`50Ol1b}DBbl}14>VK64s7#~czF)VOgKWi+ z`Xlq*AH1>01xWoxhMX|VU=7?tpC#(8NvE0dzcC8ySF?T%eTOzLJA*tFS^=e~u-c$39sm<*0v$7>t9(5)e)s#uhW^A+xy7wS%8$xC zPMSn5Qyd-$zf}mRwnZ8tla49kPo1JU~%Q!N!^+a<`#OxfC%584V zL=_;0z=wd-89Mr*!c+%+aqbGmViZpEOx z5jS--w;FhmWkou2&{XUE8LhBEYVh>xR|Ay-NBWxxUYBgz!EU^9V`YyuT2#ZxKefx`2MG4(6m3&kjF7p9PZ$pH)iCGhk+NfqK zQj#);xOI)z@FeW=*w{La&f&PWr#_PesA=W(JFQuaY2mA1Y9uY`J2YuGlSsnL_yx5e zL=40Q;S_je53_}&zPysjskEUMBvnEA104twj2o`jT9@CzBV`s_c>LIl0q>U)Tqu5N zx|EH!kWoTx;|p+$ajgn>k*X23yI3kG#e7++_sQO2 z1s}*8u&{H6N6o)-vCS5bN<6}7cxhT(0T@9_O5sE>18tL;4&!RgdC?m4;h7CYv>{N9 zEgW|Y5NY9%xTI1)TDQ8n#X2tu8Wy^h{E0f;C((PW-#7|!=JEQUWj)tL^0F1$d$`A+ zHN_WQ{@fO>hdT{t`y;kzM9{dtFCwRo`k@O=FUh#RtgO`yygA<&hcE9o_rSnKf=nKe z+!4}Uh!)p8&tOMxxFq1$*%P=pkGk0SFQ0k+uk+v%ekqJM)VlI`{#C}8YAY=g;` zCrG2AUShSzB^TCXsQy34XwHRR=Kq(w$4-ccv;Tvn1)CW^}5CeF?WYMEj_#=DGt2PBj znwZ3cH%OpUq%3}=lX zfG|AebkT}Z98MKsJ|7GF(^b_oa1*X}K`|@FP`P~mF^@-o=kej|{(7-Dofq>e4LJNx zo*B(SRbzb_nFR21+-!Ve%}b}5IAlvNE7d&u(7_p!1@Yr~=Jt%sW#A6m{wi=5sH$uc;0+odQ=aQ_kQfmQ%r=esgvhJYJ&~b#lw1&! zSU9vVXnFPHj0<3K3Jgg`^NX}~5fpBgAE9H6p-RKl;iOv*_qh7+=#-wyM3aU|+&@hv z1^@l0Q$p0YjJ%%TZTtafp5t?hnKQWIj`6@TN_4FD4X}Uw_v5Un)N~S)i0qpeb!hGA zMmLEp73+e$dhz$S^lPPf$Rw3ajcgVTsF-4zRNqjl*<6105u{!|PDPTF2BPslD<`@D zOa>?jeE=1D%P*ddk3HJ(BTTNWx7_m+9;6Jp_G~=Jvw>$dA2?)OS`E9jjP^vBvoqv8zxj-Lf z29#qU$Cf#n_UbXCA6GOWf6ll>H5Mt*Y6XDxoz9oV5D-_>@aUAiQOUI6N>ZK7rMucR zbrHwG-oiS(ofgLJN$|6JT^fNkQRS<(KI>kxXZ2t(MIxv@$@b^?kWo6 z3K3iyCq)WC+d-!KA`t*Kgh@#zl|os`xceU%CX?My5zq%m9WVVx7ZV_n?5&P0+*5-X znlHe1Ht@zHH@O)8M@{wChx#3-aV&I?oRW+mxsUlLsGBjNHFuL^Xo=lEA)+v)9IjOh zQMuM4u7g7&mz};sf1F;S<;cEQx8u-0kFNwo?^t_$UftQX3!LT1&-PPYSS;YoKR=5Q zOvmryvi73RG;AV3SMJ)G3uG12YkwYpTHqocnRvhHWeR{?nv7FaPX1L;B@(;D_mtzw zy9UOVO3ACKKJs+EFEo<9m}v!)ZSPTjP9FKWNt^50Mn_=J4;T31D)|;tK)SKK zE{>SRrSPPP?Yxf$?36Je(Rj*P-#Ib^uP&aw@qMqN@)6+b6xs$Elj(q_sveiCBIlvkeIZZfWSGJVaDtj+a3^zG!T%@RcOC(I;dF92|kS zPGHqdlNQ3&i?Q!xMH$Wh(^1+B_Sp`DhhEVB1I}rB%nb6EC_D2nvSZ6DPh8(Z???Fs zGLrDOOMu7NlFwLSFLGfoZHBgDUl|LsRoaCEn73t#)8+TkYERML{u#`3(#}AwPs!LK zUuZY6nZNjjtLAZ~22^=QZ;HpTpQ`P`8~lSh-0lUD17qWSEC%nDAmUy%xXic8!R>zf z>DQJ{alh5EZQb4&vW48Pwj1W7udTRdC9tEenIP5v9%y3(rPRS!(q;cF85{AQg% zlVTwE_vPa+SafauDBmMv}9&3NuOr_-14kiLM^Y=T5nGB>T>Gs5sNSJ%qdPFHp z8mn=n)YtJ=eHmk%%;iIm`*i<%;*vZXknJ32M5Ze<^ShfYvSjnO0rf6F`}XH)-(JwX zjmkeqZq?A3vr49{F2QZkhfXW_fbwc~dxTqD6SIHN1j3Zf)mp6o&YrfXmTLT7dff*c z6Ke&7BP*TZxkSvL3T!2~>vIb3N{&0ovWe0T^+w(hb z)gnq&yb0MTecU=Rjki#BL@H2;)(yN`pdMuNzeV3B1*w$9m5H5y_4^PHi9lRTv-$e1 zitx>AKBU$5{NuU33ZLJ19UjU=h>u4Iyb|LUbbEp9NVhLtp`EDCmYpGaVL4k>;?0ba zbeM+>!8+$_o?q!qFt%mo2G0Yo%Znz@m6Ad06;<%)Lb$arYeAmq(eishFn$L7{8dpj2t8?r)x zgpLeBdc9s2r|(tCe}_$z=2Ua3=0S)q$=_@??@!ZV>xtz}7Cv~f20;9-`L(VGebb-~ z;#2f>DnYJhK?9qxc8qZrkIoV8@JQ0g%3;Wr9mKB{dpas;s}s@(!<3ho@7RjGhLNn4 zH@A^G^TAbQr<$rR`pWR1V)`$FS~}1@2faF~(De4-GRykdL#YGxk7(%y&|N4t_>gLD zex!zlb>HAR=7vgIFTKZd#@k|Zt-|ft2}kD-=kr#BM* zzRBk4y|3FJjtl>U-tjaMrD1U$iAd*<4rSRCwzckjB z90A8E3hOYQ*yy;KV}b|hb8@nUT6QW7T(UtUW&80aUsFx_Uw)%VNpRY+s3q}7uF>KT z?>}x)OzNk;6ZWC)B3(g^!<*fD^(+n;h~Eb3_9OT;i2zD0AWhli{VMz9e(%jk(#h|%C`bq>QTn>1 z(|{HkJ=S`eZ?>rWpU6r-)b})FUsdT=mpnxFy=jPy&X;-Lz#JY9}@`^IpXW=1Lxc*-e!ZfUb<=~aVZDZDsagvxNi=|+@RK|CIW zz9IIHKW6)%r1l?@?jJSJfk%CFP%~Mv&|?+&OS>-8H*wx0P3_{w0B6CjMABgh}Oj?zVA%KyT%}NOcmGSr zn2%)%1-#Q;Me}!CHRmnkyP;5U@-6zOWmq+y7pxWoI|l1+J4x(pEwM;%u}? zy91nP=%Rz8tc$S+RZS4tNK`rXw%7bUhWIeg(W1>hXGvy}dbbIEvcFi`agjnCCINZT zBp5lm8VfkHtzt=$oT=Ju`mQf4pAK;HU8!cg-}jAV2q?t;875RKXKd&I>w|l!8C4GZ zWFsX*7(JG`)LEck7W{qrK%VlNsx*(LS`ngw=~sqO3K@KiWM#opwzKlCgft86LD z*QDm|cadxqNtyU&erPb=uodr9M6V_)W7u0bZKt#;FAkgh5pk}*J>!})95LrWK0!j8 z&4SAjo7>a73f|?`aKe|9Kj)ErJW-;820!Q9ZkI@>x4GECzVN|!A(+>V?9UoH8UmFUZPPi9Oc~a!?Nhg?HJ> zXb_*a@fC}T4{EwH0%h6q)%vgt|c8HWgc1!!2--?N!Vvw11@ zIXbyFXU~WgPGUie%H27*{5kl73k5g^<)WE_czAeEtIb=$)A$Qys}&0)`=4&-%zW77 zo))5*f2BL)GR(etOHQ4?){`A1;`|Y}V!e6oR27x|Z(&o}4#Upf5DWqFiMjNTw!1Iz QZxC<_vMMrlQf6WQ1D3}TSO5S3 literal 0 HcmV?d00001 diff --git a/modular_ss220/events/icons/xmaslights.dmi b/modular_ss220/events/icons/xmaslights.dmi new file mode 100644 index 0000000000000000000000000000000000000000..be779fe2dcabd64276f616c5905ee83243317e0d GIT binary patch literal 13978 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