>> Holidays = new();
+}
diff --git a/Content.Shared/Holiday/HolidayVisuals.cs b/Content.Shared/Holiday/HolidayVisuals.cs
new file mode 100644
index 0000000000..4af1efae68
--- /dev/null
+++ b/Content.Shared/Holiday/HolidayVisuals.cs
@@ -0,0 +1,9 @@
+using Robust.Shared.Serialization;
+
+namespace Content.Shared.Holiday;
+
+[Serializable, NetSerializable]
+public enum HolidayVisuals : byte
+{
+ Holiday
+}
diff --git a/Resources/Prototypes/Entities/Objects/Devices/nuke.yml b/Resources/Prototypes/Entities/Objects/Devices/nuke.yml
index 63e28648c3..b61787b574 100644
--- a/Resources/Prototypes/Entities/Objects/Devices/nuke.yml
+++ b/Resources/Prototypes/Entities/Objects/Devices/nuke.yml
@@ -9,7 +9,21 @@
- type: Sprite
sprite: Objects/Devices/nuke.rsi
noRot: true
- state: nuclearbomb_base
+ layers:
+ - state: nuclearbomb_base
+ - state: nukefestive
+ map: ["christmas"]
+ visible: false
+ - type: Appearance
+ - type: HolidayVisuals
+ holidays:
+ festive:
+ - FestiveSeason
+ - type: GenericVisualizer
+ visuals:
+ enum.HolidayVisuals.Holiday:
+ christmas:
+ festive: { visible: true }
- type: Physics
bodyType: Static
- type: Fixtures
@@ -90,7 +104,21 @@
- type: NukeLabel
- type: Sprite
sprite: Objects/Devices/nuke.rsi
- state: nuclearbomb_base
+ layers:
+ - state: nuclearbomb_base
+ - state: nukefestive
+ map: ["christmas"]
+ visible: false
+ - type: Appearance
+ - type: HolidayVisuals
+ holidays:
+ festive:
+ - FestiveSeason
+ - type: GenericVisualizer
+ visuals:
+ enum.HolidayVisuals.Holiday:
+ christmas:
+ festive: { visible: true }
- type: Physics
bodyType: Dynamic
- type: Fixtures
diff --git a/Resources/Prototypes/Entities/Objects/Misc/fluff_lights.yml b/Resources/Prototypes/Entities/Objects/Misc/fluff_lights.yml
index 83701249d0..ec9a94de86 100644
--- a/Resources/Prototypes/Entities/Objects/Misc/fluff_lights.yml
+++ b/Resources/Prototypes/Entities/Objects/Misc/fluff_lights.yml
@@ -62,12 +62,24 @@
sprite: Objects/Misc/Lights/lamp.rsi
layers:
- state: lamp
+ map: [ "base" ]
- state: lamp-on
shader: unshaded
visible: false
map: [ "light" ]
- type: Item
sprite: Objects/Misc/Lights/lamp.rsi
+ - type: HolidayVisuals
+ holidays:
+ festive:
+ - FestiveSeason
+ - type: GenericVisualizer
+ visuals:
+ enum.HolidayVisuals.Holiday:
+ base:
+ festive: { state: christmaslamp }
+ light:
+ festive: { state: christmaslamp-on }
- type: entity
name: banana lamp
@@ -93,12 +105,28 @@
sprite: Objects/Misc/Lights/lampgreen.rsi
layers:
- state: lampgreen
+ map: [ "base" ]
- state: lampgreen-on
shader: unshaded
visible: false
map: [ "light" ]
- type: Item
sprite: Objects/Misc/Lights/lampgreen.rsi
+ - type: HolidayVisuals
+ holidays:
+ festive:
+ - FestiveSeason
+ - type: GenericVisualizer
+ visuals:
+ enum.HolidayVisuals.Holiday:
+ base:
+ festive:
+ sprite: Objects/Misc/Lights/lamp.rsi
+ state: christmaslamp
+ light:
+ festive:
+ sprite: Objects/Misc/Lights/lamp.rsi
+ state: christmaslamp-on
- type: entity
name: interrogator lamp
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Bombs/plastic.yml b/Resources/Prototypes/Entities/Objects/Weapons/Bombs/plastic.yml
index e3581370f0..ac675f6cd2 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Bombs/plastic.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Bombs/plastic.yml
@@ -11,7 +11,6 @@
- state: icon
map: ["base"]
- type: Item
- sprite: Objects/Weapons/Bombs/c4.rsi
size: Small
- type: OnUseTimerTrigger
delay: 10
@@ -54,6 +53,13 @@
- !type:ExplodeBehavior
- type: StickyVisualizer
- type: Appearance
+ - type: HolidayVisuals
+ holidays:
+ festive:
+ - FestiveSeason
+ - type: HolidayRsiSwap
+ sprite:
+ festive: Objects/Weapons/Bombs/c4gift.rsi
- type: GenericVisualizer
visuals:
enum.Trigger.TriggerVisuals.VisualState:
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/throwing_stars.yml b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/throwing_stars.yml
index b0fa94d440..48138452b2 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/throwing_stars.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/throwing_stars.yml
@@ -6,7 +6,19 @@
components:
- type: Sprite
sprite: Objects/Weapons/Throwable/throwing_star.rsi
- state: icon
+ layers:
+ - state: icon
+ map: ["base"]
+ - type: Appearance
+ - type: HolidayVisuals
+ holidays:
+ festive:
+ - FestiveSeason
+ - type: GenericVisualizer
+ visuals:
+ enum.HolidayVisuals.Holiday:
+ base:
+ festive: { state: festive }
- type: Fixtures
fixtures:
fix1:
diff --git a/Resources/Prototypes/Entities/Structures/Decoration/fireplace.yml b/Resources/Prototypes/Entities/Structures/Decoration/fireplace.yml
index 03851318e1..f5bbafa40c 100644
--- a/Resources/Prototypes/Entities/Structures/Decoration/fireplace.yml
+++ b/Resources/Prototypes/Entities/Structures/Decoration/fireplace.yml
@@ -8,10 +8,23 @@
sprite: Structures/Decoration/fireplace.rsi
layers:
- state: fireplace
+ - state: fireplacefestive
+ map: ["christmas"]
+ visible: false
- state: fireplace_fire4
shader: unshaded
- state: fireplace_glow
shader: unshaded
+ - type: Appearance
+ - type: HolidayVisuals
+ holidays:
+ festive:
+ - FestiveSeason
+ - type: GenericVisualizer
+ visuals:
+ enum.HolidayVisuals.Holiday:
+ christmas:
+ festive: { visible: true }
- type: AmbientSound
volume: -6
range: 5
diff --git a/Resources/Textures/Objects/Devices/nuke.rsi/meta.json b/Resources/Textures/Objects/Devices/nuke.rsi/meta.json
index 6e44a5417f..2828b13ddb 100644
--- a/Resources/Textures/Objects/Devices/nuke.rsi/meta.json
+++ b/Resources/Textures/Objects/Devices/nuke.rsi/meta.json
@@ -1,7 +1,7 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
- "copyright": "Taken from https://github.com/vgstation-coders/vgstation13/blob/835fd60545178a19064f5df9981dac6e1b220775/icons/obj/stationobjs.dmi",
+ "copyright": "Taken from https://github.com/vgstation-coders/vgstation13/blob/835fd60545178a19064f5df9981dac6e1b220775/icons/obj/stationobjs.dmi, nukefestive by Alekshhh (Github)",
"size": {
"x": 32,
"y": 32
@@ -10,6 +10,15 @@
{
"name": "nuclearbomb_deployed"
},
+ {
+ "name": "nukefestive",
+ "delays": [
+ [
+ 0.25,
+ 0.25
+ ]
+ ]
+ },
{
"name": "nuclearbomb_timing",
"delays": [
diff --git a/Resources/Textures/Objects/Devices/nuke.rsi/nukefestive.png b/Resources/Textures/Objects/Devices/nuke.rsi/nukefestive.png
new file mode 100644
index 0000000000000000000000000000000000000000..f9c58ac8e64a4a199565a133bec97269caea63fe
GIT binary patch
literal 1429
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
JB{VTG002pp^h^K%
literal 0
HcmV?d00001
diff --git a/Resources/Textures/Objects/Weapons/Bombs/c4gift.rsi/inhand-right.png b/Resources/Textures/Objects/Weapons/Bombs/c4gift.rsi/inhand-right.png
new file mode 100644
index 0000000000000000000000000000000000000000..6ceb49c89d6098ad189c125affb9a6c1aaa8c15a
GIT binary patch
literal 603
zcmV-h0;K(kP)6|IE$hY$;GtZlR~ApQlc6s;9(Ed)zJn?n#|
zW3UP+qE>P;2LTbiyGeF%hn>`ynK$3Qxhvj!;P}sTe11>>>Hx7xp1ys$E0EUYF!RbL$=zx*QcQ`5BLW}=qwF{`4
zBZpZ}r-Ru{29`HFpmX>Fmda)CHQOB641ubd&DdY=--9`|wqL6wP9W;)1UL
zxX4PWs}7KIQd~OK0bFFI)Kv#aIVmok>HsdXQtGM$q?{C&PIUkmSt)hZ0a8wiOQ$-3
zi>#Eo>HsMx#idgnz(rO{-I^Rg$=^+a;OI*RK+WGx0pRLO20+cvlWJ30B^dxUe>Vl-
zx4!k(#{ZK6Q1f>aBGCoAFKvLgRVG$E7?`^MUk6a~cM|}x1~vCj+L!DAEKJGYlL|@l
p97o@p03;DBg01yBG
literal 0
HcmV?d00001
diff --git a/Resources/Textures/Objects/Weapons/Bombs/c4gift.rsi/meta.json b/Resources/Textures/Objects/Weapons/Bombs/c4gift.rsi/meta.json
new file mode 100644
index 0000000000..a24d3bae5f
--- /dev/null
+++ b/Resources/Textures/Objects/Weapons/Bombs/c4gift.rsi/meta.json
@@ -0,0 +1,31 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Created by Alekshhh (Github) for SS14",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "primed",
+ "delays": [
+ [
+ 0.1,
+ 0.1
+ ]
+ ]
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/Objects/Weapons/Bombs/c4gift.rsi/primed.png b/Resources/Textures/Objects/Weapons/Bombs/c4gift.rsi/primed.png
new file mode 100644
index 0000000000000000000000000000000000000000..84c96e034028fae4d4c7e21ddc6af6ef3f642440
GIT binary patch
literal 687
zcmV;g0#N;lP)P)QYw5;=i$dDy1sCV2-5@7*c)y_fs{_dEYR*MZN6_4$ZGF)!85nyK#k0p{4BmIp5sPDMyJ+Ui
zBb!)QXu;3IItzzjh1*L%ntBTLIt%P^Ab0!Qep&AOPdzFpD>=U-S~mosh{X~
z9Hi5~F+6+(48Y42*yyjk-^2Odqjl+91K^!gLz=kz)qrpVSowThN$&sWzn`(%Fjdgc=W}X^ZE*;g((4=`c?qk6(9%%gU5@V9Xt(%Jiq>UeLey_
z_gdc?z`w#gCjeu`qPUJt!#n63cMoub_ex(h&JkpDd=z+o_2ITU06GF%`c?q=7SO1G
zl#KtL0B%IpjB3W;-3PSv#RNzdYWDX5fM%~?qyB>gG)l19{~siv*(=znf8QtIFQXu~
VFsSaUt^fc407*qoM6N<$f&h>QLdO6A
literal 0
HcmV?d00001
diff --git a/Resources/Textures/Objects/Weapons/Throwable/throwing_star.rsi/festive.png b/Resources/Textures/Objects/Weapons/Throwable/throwing_star.rsi/festive.png
new file mode 100644
index 0000000000000000000000000000000000000000..cd62feb095a4d9ca97c4cabfe36a38485676446b
GIT binary patch
literal 621
zcmV-z0+RiSP)voPXEn9X?fW2UM^B@BO)2ms5@jzL4;UY1t)VnTGgk$x^%}+-YX@
zW#L2Ns4W8uUn$-2_*rqr<9EgOY+?fZs;8EzW227EteqF`7mnm}WwSbu`jWO(VQxlh
zx9lDq5=;_9!=TIxIZ6yjEl6g6`v!k}QxwHx%G+WMTO1j(;*E-0maZwOY0*>i?!A)`#F2c_4GkEsK{5yddp^>1K
z{KiCypQG;pK@bE%0~Fz{0;)=PZ<2Vl9A1V2W`-7tXN$lp@$UQ9YmVdYWUZtK-JPn+
z%d)T*oJ*mqGUv>kGu@qYDckxPp~D%V2+a)3FaQ8jO52{90RUd(h?Ek#Y3dGl^(_?P
zIt3IVYi*v0a{{$)&wg3aJ^MV|BCwaZO#t|T?>Gp8;P3eWm1BSEx(1^W00000NkvXX
Hu0mjfyLu#H
literal 0
HcmV?d00001
diff --git a/Resources/Textures/Objects/Weapons/Throwable/throwing_star.rsi/meta.json b/Resources/Textures/Objects/Weapons/Throwable/throwing_star.rsi/meta.json
index 44d65d9d5e..c716710532 100644
--- a/Resources/Textures/Objects/Weapons/Throwable/throwing_star.rsi/meta.json
+++ b/Resources/Textures/Objects/Weapons/Throwable/throwing_star.rsi/meta.json
@@ -1,7 +1,7 @@
{
"version": 1,
"license": "CC0-1.0",
- "copyright": "Created for SS14 by deltanedas (github)",
+ "copyright": "Created for SS14 by deltanedas (github), festive by Alekshhh (Github)",
"size": {
"x": 32,
"y": 32
@@ -9,6 +9,9 @@
"states": [
{
"name": "icon"
+ },
+ {
+ "name": "festive"
}
]
}
diff --git a/Resources/Textures/Structures/Decoration/fireplace.rsi/fireplacefestive.png b/Resources/Textures/Structures/Decoration/fireplace.rsi/fireplacefestive.png
new file mode 100644
index 0000000000000000000000000000000000000000..bea2ae81cf5da33c8f496d198cd12e5678b25b3a
GIT binary patch
literal 1455
zcmV;g1yK5lP)AMc95!Df8E&V9kc3=(MxJgsje$Hrnc(O{>y5cjP(QiRY$idhgA-z3F=IpPZa~
z&U@bHd7t+^Z=%s6f3!u8pIic51uSv~+!R>k0$5l@kiApJwCDd+s#>MS=0i;^R>rh|
zIueu;Fn#t>1`BS(O@Vu
zgac0=2rz%BE<->(9HoY~nC^`B_I5T>Hb|w*uH?XXb|-1uBOXeQPf~P$LThbpWxc(<
zx;;YrAmG%{AN0hNUCR7cW@ymoW4_}Jw50rTIzROh4*-;q9SN+H0ptDpEe#BW?EPet
zRwojA@RH;|{GgNFa`QFCsQ>`0tE^1p{k)UtzAir0jvmzk0@$khWwi3AwKOp?K|MV^
zT4!e`8@=%x`uY2Fbcbgnb#?t8VOjP?Pk@N_#W$~@lAZtZuh|g|ZNHsOpS!?Qp#H)J
z4i@CSuwf~k{pWAGe|d|J02wsKuvxSzAQW)Ex005$j^$JUCIw)SfJYD#-hE<5%E)-Jf1J#JDIZ{*#TOvOUjC%h%8hf6c8O7n~?%Wuc!H1r<4FQPCxc`
zkiE6lOV7PLYPb(DW8di7c_#qCe;=9T{^9P&Q(fWVpGF%Zqu`9JQ$_%C8jVc8Lx)%k
z>v-l2_3c_k!5wEZd5?K00mTsSw2H%d?HD=B2zY)?8(lcpIyi+$qLQ;UYuIEYLSC;o
zV_)3=h`#9hWSe3?RDgb9wxS5K9`1QocPb|dNT0zINm_B$(pd>I0@}7)KyGplz4`@h+22B<
z&>eYcC9U3`jvV>`G)MwCx*5&p?OcbKtd7d8DIl*x%vgOz{PrH3J?YXU~qSU
zC^SsLMn;G{0HDj0WedQv({jfsNWfk}Ae57B!zyUo6d(+zQYjrcxfaNWLjn1E1*DPA
z*-I&<0=R7ofZ=#Nu5;Y)_s>w83?Ad`A5E~+Us0j6(>Ok^T(Qax8g*O-Eq+O6lVF6%
zLe*dk0Z0K)Qxj!hg=U?VQ)#v|GHWw?y)6Vlx>rXcbnB)~{7SUyr06F=W+8U+op0H>
zd`3aQomEx3B~}2)N)pCYE5SAbWb{^x*MhA9RweJmK3fz}D3G@P>oV8hfyQ5TKIVI8
z0`U_))})Q_X&3q>?}Y}CPr_SLXYJ4Q5ome);_AOYZWjg8vPwayj-`nr9rI&eKd
zFB$uVFa{ZB90ho>9wgwIik6ZXXDh>uZC!V1bz`1=j19HXB?V9-+{BlfB_OtIBlFj!
zXmjo94ER0C03Tysd#c|Qp|km`#7LHLCP0gMv*59hef=y~z~+k|^T;2re=uz>`YnaO
zE1~AS$Cdc5#E48lBHX0w->pO+dyZ_oi`{T-xsKc6-=;F(i