diff --git a/Content.Server/Holiday/HolidaySystem.cs b/Content.Server/Holiday/HolidaySystem.cs index c9356d8af03..1f8bfd72487 100644 --- a/Content.Server/Holiday/HolidaySystem.cs +++ b/Content.Server/Holiday/HolidaySystem.cs @@ -118,6 +118,7 @@ private void OnVisualsInit(Entity ent, ref ComponentIni } } + // Frontier: holiday-themed entity replacement private void OnBeforeRead(BeforeEntityReadEvent ev) { foreach (var holiday in _currentHolidays) @@ -131,6 +132,7 @@ private void OnBeforeRead(BeforeEntityReadEvent ev) } } } + // End Frontier } /// diff --git a/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/paintings.yml b/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/paintings.yml new file mode 100644 index 00000000000..ec4eb76f09d --- /dev/null +++ b/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/paintings.yml @@ -0,0 +1,34 @@ +- type: entity + parent: RandomPainting + id: RandomPaintingHalloween + suffix: Halloween + components: + - type: RandomSpawner + offset: 0 + prototypes: + - PaintingPersistenceOfMemory + - PaintingTheSonOfMan + - PaintingTheKiss + - PaintingTheScream + - PaintingTheGreatWave + - PaintingCafeTerraceAtNight + - PaintingNightHawks + - PaintingSkeletonCigarette + - PaintingPrayerHands + - PaintingOldGuitarist + - PaintingOlympia + - PaintingSaturn + - PaintingSleepingGypsy + - PaintingRedBlueYellow + - PaintingHelloWorld + - PaintingNightOfThePostGoblin + # Special halloween posters + - PaintingSpookyIan + - PaintingSpookyLady + chance: 1 + rarePrototypes: + - PaintingSkeletonBoof + - PaintingEmpty + - PaintingMoony + - PaintingAmogusTriptych + rareChance: 0.01 diff --git a/Resources/Prototypes/_NF/Entities/Structures/Wallmounts/Signs/paintings.yml b/Resources/Prototypes/_NF/Entities/Structures/Wallmounts/Signs/paintings.yml index 648ab10f9b2..0e42a96231e 100644 --- a/Resources/Prototypes/_NF/Entities/Structures/Wallmounts/Signs/paintings.yml +++ b/Resources/Prototypes/_NF/Entities/Structures/Wallmounts/Signs/paintings.yml @@ -7,3 +7,23 @@ - type: Sprite sprite: _NF/Structures/Wallmounts/paintings.rsi state: painting0 + +- type: entity + parent: PaintingBase + id: PaintingSpookyIan + name: Duty Without End + description: Their vigil is eternal. + components: + - type: Sprite + sprite: _NF/Structures/Wallmounts/paintings.rsi + state: painting1 + +- type: entity + parent: PaintingBase + id: PaintingSpookyLady + name: The Lady and the Banners + description: A woman stands invitingly before a castle of ominous portent. How the windows beckon! How your gaze is arrested! + components: + - type: Sprite + sprite: _NF/Structures/Wallmounts/paintings.rsi + state: painting2 diff --git a/Resources/Prototypes/_NF/Entities/Structures/Wallmounts/Signs/paintings_directional.yml b/Resources/Prototypes/_NF/Entities/Structures/Wallmounts/Signs/paintings_directional.yml index 213de41cf6a..8cd022d60ab 100644 --- a/Resources/Prototypes/_NF/Entities/Structures/Wallmounts/Signs/paintings_directional.yml +++ b/Resources/Prototypes/_NF/Entities/Structures/Wallmounts/Signs/paintings_directional.yml @@ -10,7 +10,46 @@ parent: PaintingDirectionalBase id: PaintingFireaxeCabinet name: The Fireaxe Cabinet - description: "Painting is a masterfully designed image of a fireaxe cabinet. The artwork relates to the loss of the masterwork ☼fireaxe☼ in the early winter of 2523. Oil. Canvas. Tears." + description: "This painting is a masterfully designed image of a fireaxe cabinet. The artwork relates to the loss of the masterwork ☼fireaxe☼ in the early winter of 2523. Oil. Canvas. Tears." components: - type: Sprite - state: painting_fireaxe \ No newline at end of file + state: painting_fireaxe + +- type: entity + parent: PaintingDirectionalBase + id: PaintingGhostHanging + name: festive ghost streamers + description: "Decorative wall streamers! They look like the people you've lost to the void!" + components: + - type: Sprite + drawdepth: Overdoors + state: painting_ghost + - type: Construction + graph: PaintingGhostHangingGraph + node: PaintingGhostHangingNode + +- type: entity + parent: PaintingDirectionalBase + id: PaintingBatHanging + name: festive bat streamers + description: "Decorative wall streamers! Bats are scary and also important pollinators!" + components: + - type: Sprite + drawdepth: Overdoors + state: painting_bat + - type: Construction + graph: PaintingBatHangingGraph + node: PaintingBatHangingNode + +- type: entity + parent: PaintingDirectionalBase + id: PaintingPumpkinHanging + name: festive pumpkin streamers + description: "Decorative wall streamers! It's decorative gourd season!" + components: + - type: Sprite + drawdepth: Overdoors + state: painting_pumpkin + - type: Construction + graph: PaintingPumpkinHangingGraph + node: PaintingPumpkinHangingNode diff --git a/Resources/Prototypes/_NF/Recipes/Construction/Graphs/furniture/wallmount_decorations_graphs.yml b/Resources/Prototypes/_NF/Recipes/Construction/Graphs/furniture/wallmount_decorations_graphs.yml new file mode 100644 index 00000000000..744e8f406df --- /dev/null +++ b/Resources/Prototypes/_NF/Recipes/Construction/Graphs/furniture/wallmount_decorations_graphs.yml @@ -0,0 +1,71 @@ +- type: constructionGraph + id: PaintingGhostHangingGraph + start: start + graph: + - node: start + actions: + - !type:DestroyEntity { } + edges: + - to: PaintingGhostHangingNode + completed: + - !type:SnapToGrid { } + steps: + - material: Paper + amount: 1 + doAfter: 2 + + - node: PaintingGhostHangingNode + entity: PaintingGhostHanging + edges: + - to: start + steps: + - tool: Cutting + doAfter: 2 + +- type: constructionGraph + id: PaintingBatHangingGraph + start: start + graph: + - node: start + actions: + - !type:DestroyEntity { } + edges: + - to: PaintingBatHangingNode + completed: + - !type:SnapToGrid { } + steps: + - material: Paper + amount: 1 + doAfter: 2 + + - node: PaintingBatHangingNode + entity: PaintingBatHanging + edges: + - to: start + steps: + - tool: Cutting + doAfter: 2 + +- type: constructionGraph + id: PaintingPumpkinHangingGraph + start: start + graph: + - node: start + actions: + - !type:DestroyEntity { } + edges: + - to: PaintingPumpkinHangingNode + completed: + - !type:SnapToGrid { } + steps: + - material: Paper + amount: 1 + doAfter: 2 + + - node: PaintingPumpkinHangingNode + entity: PaintingPumpkinHanging + edges: + - to: start + steps: + - tool: Cutting + doAfter: 2 diff --git a/Resources/Prototypes/_NF/Recipes/Construction/wallmount_decorations.yml b/Resources/Prototypes/_NF/Recipes/Construction/wallmount_decorations.yml new file mode 100644 index 00000000000..b9af2a1b090 --- /dev/null +++ b/Resources/Prototypes/_NF/Recipes/Construction/wallmount_decorations.yml @@ -0,0 +1,45 @@ +- type: construction + name: festive ghost streamers + id: PaintingGhostHangingConstruction + graph: PaintingGhostHangingGraph + startNode: start + targetNode: PaintingGhostHangingNode + category: construction-category-misc + description: Decorative wall streamers! They look like the people you've lost to the void! + objectType: Structure + placementMode: SnapgridCenter + canBuildInImpassable: true + icon: + sprite: _NF/Structures/Wallmounts/paintings_directional.rsi + state: painting_ghost + +- type: construction + name: festive bat streamers + id: PaintingBatHangingConstruction + graph: PaintingBatHangingGraph + startNode: start + targetNode: PaintingBatHangingNode + category: construction-category-misc + description: Decorative wall streamers! Bats are scary and also important pollinators! + objectType: Structure + placementMode: SnapgridCenter + canBuildInImpassable: true + icon: + sprite: _NF/Structures/Wallmounts/paintings_directional.rsi + state: painting_bat + +- type: construction + name: festive pumpkin streamers + id: PaintingPumpkinHangingConstruction + graph: PaintingPumpkinHangingGraph + startNode: start + targetNode: PaintingPumpkinHangingNode + category: construction-category-misc + description: Decorative wall streamers! It's decorative gourd season! + objectType: Structure + placementMode: SnapgridCenter + canBuildInImpassable: true + icon: + sprite: _NF/Structures/Wallmounts/paintings_directional.rsi + state: painting_pumpkin + diff --git a/Resources/Prototypes/holidays.yml b/Resources/Prototypes/holidays.yml index dbe404e1967..a7a01536bc5 100644 --- a/Resources/Prototypes/holidays.yml +++ b/Resources/Prototypes/holidays.yml @@ -332,6 +332,7 @@ entityReplacements: # Frontier KitchenDeepFryer: KitchenDeepFryerCauldron # Frontier KitchenDeepFryerPOI: KitchenDeepFryerCauldronPOI # Frontier + RandomPainting: RandomPaintingHalloween # Frontier - type: holiday id: VeganDay diff --git a/Resources/Textures/_NF/Structures/Wallmounts/paintings.rsi/meta.json b/Resources/Textures/_NF/Structures/Wallmounts/paintings.rsi/meta.json index 7133af24636..c76a5af5577 100644 --- a/Resources/Textures/_NF/Structures/Wallmounts/paintings.rsi/meta.json +++ b/Resources/Textures/_NF/Structures/Wallmounts/paintings.rsi/meta.json @@ -1,12 +1,59 @@ { "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Created by erhardsteinhauer, gentlebutter & ghostprince", + "license": "CC-BY-NC-SA-4.0", + "copyright": "Created by erhardsteinhauer, gentlebutter & ghostprince, painting1 by gentlebutter, painting2 by ghostprince", "size": { "x": 32, "y": 32 }, "states": [ - { "name": "painting0" } + { "name": "painting0" }, + { + "name": "painting1", + "delays": [ + [ + 300.0, + 0.1, + 0.1, + 0.1, + 0.15, + 0.35, + 0.1, + 0.1 + ] + ] + }, + { + "name": "painting2", + "delays": [ + [ + 0.25, + 0.25, + 0.25, + 0.25, + 0.25, + 1.00, + 0.25, + 0.25, + 0.25, + 0.25, + 0.25, + 0.25, + 0.25, + 0.25, + 0.25, + 0.25, + 0.25, + 0.25, + 0.25, + 1.00, + 0.25, + 0.25, + 0.25, + 0.25, + 0.25 + ] + ] + } ] } diff --git a/Resources/Textures/_NF/Structures/Wallmounts/paintings.rsi/painting1.png b/Resources/Textures/_NF/Structures/Wallmounts/paintings.rsi/painting1.png new file mode 100644 index 00000000000..a080ec08b17 Binary files /dev/null and b/Resources/Textures/_NF/Structures/Wallmounts/paintings.rsi/painting1.png differ diff --git a/Resources/Textures/_NF/Structures/Wallmounts/paintings.rsi/painting2.png b/Resources/Textures/_NF/Structures/Wallmounts/paintings.rsi/painting2.png new file mode 100644 index 00000000000..ec7fb14acdc Binary files /dev/null and b/Resources/Textures/_NF/Structures/Wallmounts/paintings.rsi/painting2.png differ diff --git a/Resources/Textures/_NF/Structures/Wallmounts/paintings_directional.rsi/meta.json b/Resources/Textures/_NF/Structures/Wallmounts/paintings_directional.rsi/meta.json index 62935ecab49..96f9158f39e 100644 --- a/Resources/Textures/_NF/Structures/Wallmounts/paintings_directional.rsi/meta.json +++ b/Resources/Textures/_NF/Structures/Wallmounts/paintings_directional.rsi/meta.json @@ -1,29 +1,28 @@ { - "version": 1, - "size": { - "x": 32, - "y": 32 - }, - "license": "CC-BY-SA-3.0", - "copyright": "Created by erhardsteinhauer (discord) for NF in commemoration of removal fireaxe cabinet [filled] from NT Liquidator class service ship", + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-NC-SA-4.0", + "copyright": "Created by erhardsteinhauer (discord) for NF in commemoration of removal fireaxe cabinet [filled] from NT Liquidator class service ship, ghost, bat and pumpkin decorations by ghostprince", "states": [ { "name": "painting_fireaxe", - "directions": 4, - "delays": [ - [ - 1 - ], - [ - 1 - ], - [ - 1 - ], - [ - 1 - ] - ] + "directions": 4 + }, + { + "name": "painting_ghost", + "directions": 4 + }, + { + "name": "painting_bat", + "directions": 4 + }, + { + "name": "painting_pumpkin", + "directions": 4 } ] } + diff --git a/Resources/Textures/_NF/Structures/Wallmounts/paintings_directional.rsi/painting_bat.png b/Resources/Textures/_NF/Structures/Wallmounts/paintings_directional.rsi/painting_bat.png new file mode 100644 index 00000000000..e8725e24088 Binary files /dev/null and b/Resources/Textures/_NF/Structures/Wallmounts/paintings_directional.rsi/painting_bat.png differ diff --git a/Resources/Textures/_NF/Structures/Wallmounts/paintings_directional.rsi/painting_ghost.png b/Resources/Textures/_NF/Structures/Wallmounts/paintings_directional.rsi/painting_ghost.png new file mode 100644 index 00000000000..4b178b6e194 Binary files /dev/null and b/Resources/Textures/_NF/Structures/Wallmounts/paintings_directional.rsi/painting_ghost.png differ diff --git a/Resources/Textures/_NF/Structures/Wallmounts/paintings_directional.rsi/painting_pumpkin.png b/Resources/Textures/_NF/Structures/Wallmounts/paintings_directional.rsi/painting_pumpkin.png new file mode 100644 index 00000000000..eba45843a58 Binary files /dev/null and b/Resources/Textures/_NF/Structures/Wallmounts/paintings_directional.rsi/painting_pumpkin.png differ