Librarian gameplay (DND, but in SS14) (#17041)
* D&D character sheets * Tabletop improvements * Grass battlemap * You can now put shit inside of the board * change variable name * make the grass tabletop better, again * update the damn thing AGAIN * update the shit AGAIN * You can now take stuff out of tabletops * Make it use parenting to avoid zany bugs * MORE battlemaps! Battlemaps for everyone! * You can now dump out pieces + cleanup * All (most) non-game pieces should fall to the ground * make the verb a bit more responsive * Librarian content officially done * fix tests i think * i forgot the sheet * Smidgen of refactoring * You can no longer put high risk items inside of boards * no boardgame defusal * minor refactoring * hoplogrma * doc * fix rt
This commit is contained in:
@@ -140,8 +140,13 @@
|
||||
- id: BackgammonBoard
|
||||
- id: ParchisBoard
|
||||
- id: CheckerBoard
|
||||
- id: d6Dice
|
||||
amount: 4
|
||||
- id: ShipBattlemap
|
||||
- id: SnowBattlemap
|
||||
- id: SandBattlemap
|
||||
- id: MoonBattlemap
|
||||
- id: GrassBattlemap
|
||||
- id: DiceBag
|
||||
amount: 6
|
||||
|
||||
- type: entity
|
||||
id: CrateFunATV
|
||||
|
||||
@@ -1,12 +1,18 @@
|
||||
- type: vendingMachineInventory
|
||||
id: GoodCleanFunInventory
|
||||
startingInventory:
|
||||
DiceBag: 4
|
||||
DiceBag: 6
|
||||
Paper: 8
|
||||
d6Dice: 8
|
||||
ChessBoard: 1
|
||||
BackgammonBoard: 1
|
||||
ParchisBoard: 1
|
||||
CheckerBoard: 1
|
||||
ShipBattlemap: 1
|
||||
SnowBattlemap: 1
|
||||
SandBattlemap: 1
|
||||
MoonBattlemap: 1
|
||||
GrassBattlemap: 1
|
||||
PaperCNCSheet: 6
|
||||
MysteryFigureBox: 2
|
||||
BooksBag: 3
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
- type: entity
|
||||
parent: BaseItem
|
||||
parent: BaseBoardEntity
|
||||
id: BackgammonBoard
|
||||
name: backgammon board
|
||||
description: Old fashioned game of dice and pieces.
|
||||
@@ -12,14 +12,14 @@
|
||||
size: 550, 410
|
||||
setup:
|
||||
!type:TabletopBackgammonSetup
|
||||
boardPrototype: BackgammonBoardTabletop
|
||||
|
||||
- type: entity
|
||||
id: BackgammonBoardTabletop
|
||||
name: backgammon
|
||||
parent: BaseBoardTabletop
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/backgammon_tabletop.rsi
|
||||
state: backgammonBoard
|
||||
noRot: false
|
||||
drawdepth: FloorTiles
|
||||
|
||||
39
Resources/Prototypes/Entities/Objects/Fun/Tabletop/base.yml
Normal file
39
Resources/Prototypes/Entities/Objects/Fun/Tabletop/base.yml
Normal file
@@ -0,0 +1,39 @@
|
||||
- type: entity
|
||||
parent: BaseItem
|
||||
id: BaseBoardEntity # Board item
|
||||
name: board
|
||||
abstract: true
|
||||
description: A blank board.
|
||||
components:
|
||||
- type: TabletopGame
|
||||
size: 256, 256
|
||||
setup:
|
||||
!type:TabletopEmptySetup
|
||||
boardPrototype: Crowbar
|
||||
|
||||
- type: entity
|
||||
id: BaseTabletopPiece # Board piece
|
||||
parent: BaseItem
|
||||
abstract: true
|
||||
components:
|
||||
- type: TabletopDraggable
|
||||
- type: Sprite
|
||||
netsync: false
|
||||
noRot: true
|
||||
- type: Appearance
|
||||
- type: Tag
|
||||
tags:
|
||||
- TabletopPiece
|
||||
|
||||
- type: entity
|
||||
id: BaseBoardTabletop
|
||||
name: baseboard
|
||||
abstract: true
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: Tag
|
||||
tags:
|
||||
- TabletopBoard
|
||||
- type: Sprite
|
||||
noRot: false
|
||||
drawdepth: FloorTiles
|
||||
@@ -1,6 +1,6 @@
|
||||
# Uses the chessboard and generic pieces
|
||||
- type: entity
|
||||
parent: BaseItem
|
||||
parent: BaseBoardEntity
|
||||
id: CheckerBoard
|
||||
name: checkerboard
|
||||
description: A checkerboard. Pieces included!
|
||||
@@ -11,35 +11,26 @@
|
||||
- type: TabletopGame
|
||||
boardName: tabletop-checkers-board-name
|
||||
size: 338, 274
|
||||
setup: !type:TabletopCheckerSetup
|
||||
setup:
|
||||
!type:TabletopCheckerSetup
|
||||
boardPrototype: CheckerBoardTabletop
|
||||
|
||||
# Checkerboard tabletop item (item only visible in tabletop game)
|
||||
- type: entity
|
||||
id: CheckerBoardTabletop
|
||||
name: checkerboard
|
||||
parent: BaseBoardTabletop
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/chessboard_tabletop.rsi
|
||||
state: chessboard_tabletop
|
||||
noRot: false
|
||||
drawdepth: FloorTiles
|
||||
|
||||
- type: entity
|
||||
id: BaseCheckerPiece
|
||||
parent: BaseItem
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: TabletopDraggable
|
||||
- type: Sprite
|
||||
noRot: true
|
||||
- type: Appearance
|
||||
|
||||
# The pieces
|
||||
- type: entity
|
||||
id: WhiteCheckerPiece
|
||||
name: white piece
|
||||
parent: BaseCheckerPiece
|
||||
parent: BaseTabletopPiece
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/checker_pieces.rsi
|
||||
@@ -48,7 +39,7 @@
|
||||
- type: entity
|
||||
id: WhiteCheckerQueen
|
||||
name: white queen
|
||||
parent: BaseCheckerPiece
|
||||
parent: BaseTabletopPiece
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/checker_pieces.rsi
|
||||
@@ -57,7 +48,7 @@
|
||||
- type: entity
|
||||
id: BlackCheckerPiece
|
||||
name: black piece
|
||||
parent: BaseCheckerPiece
|
||||
parent: BaseTabletopPiece
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/checker_pieces.rsi
|
||||
@@ -66,7 +57,7 @@
|
||||
- type: entity
|
||||
id: BlackCheckerQueen
|
||||
name: black queen
|
||||
parent: BaseCheckerPiece
|
||||
parent: BaseTabletopPiece
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/checker_pieces.rsi
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Chessboard item (normal in game item you can hold in your hand)
|
||||
- type: entity
|
||||
parent: BaseItem
|
||||
parent: BaseBoardEntity
|
||||
id: ChessBoard
|
||||
name: chessboard
|
||||
description: A chessboard. Pieces included!
|
||||
@@ -11,36 +11,26 @@
|
||||
- type: TabletopGame
|
||||
boardName: tabletop-chess-board-name
|
||||
size: 338, 274
|
||||
setup: !type:TabletopChessSetup
|
||||
setup:
|
||||
!type:TabletopChessSetup
|
||||
boardPrototype: ChessBoardTabletop
|
||||
|
||||
# Chessboard tabletop item (item only visible in tabletop game)
|
||||
- type: entity
|
||||
id: ChessBoardTabletop
|
||||
name: chessboard
|
||||
parent: BaseBoardTabletop
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/chessboard_tabletop.rsi
|
||||
state: chessboard_tabletop
|
||||
noRot: false
|
||||
drawdepth: FloorTiles
|
||||
|
||||
## Chess pieces
|
||||
- type: entity
|
||||
id: BaseChessPiece
|
||||
parent: BaseItem
|
||||
abstract: true
|
||||
components:
|
||||
- type: TabletopDraggable
|
||||
- type: Sprite
|
||||
noRot: true
|
||||
- type: Appearance
|
||||
|
||||
# White pieces
|
||||
- type: entity
|
||||
id: WhiteKing
|
||||
name: white king
|
||||
parent: BaseChessPiece
|
||||
parent: BaseTabletopPiece
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/chess_pieces.rsi
|
||||
@@ -49,7 +39,7 @@
|
||||
- type: entity
|
||||
id: WhiteQueen
|
||||
name: white queen
|
||||
parent: BaseChessPiece
|
||||
parent: BaseTabletopPiece
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/chess_pieces.rsi
|
||||
@@ -58,7 +48,7 @@
|
||||
- type: entity
|
||||
id: WhiteRook
|
||||
name: white rook
|
||||
parent: BaseChessPiece
|
||||
parent: BaseTabletopPiece
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/chess_pieces.rsi
|
||||
@@ -67,7 +57,7 @@
|
||||
- type: entity
|
||||
id: WhiteBishop
|
||||
name: white bishop
|
||||
parent: BaseChessPiece
|
||||
parent: BaseTabletopPiece
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/chess_pieces.rsi
|
||||
@@ -76,7 +66,7 @@
|
||||
- type: entity
|
||||
id: WhiteKnight
|
||||
name: white knight
|
||||
parent: BaseChessPiece
|
||||
parent: BaseTabletopPiece
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/chess_pieces.rsi
|
||||
@@ -85,7 +75,7 @@
|
||||
- type: entity
|
||||
id: WhitePawn
|
||||
name: white pawn
|
||||
parent: BaseChessPiece
|
||||
parent: BaseTabletopPiece
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/chess_pieces.rsi
|
||||
@@ -95,7 +85,7 @@
|
||||
- type: entity
|
||||
id: BlackKing
|
||||
name: black king
|
||||
parent: BaseChessPiece
|
||||
parent: BaseTabletopPiece
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/chess_pieces.rsi
|
||||
@@ -104,7 +94,7 @@
|
||||
- type: entity
|
||||
id: BlackQueen
|
||||
name: black queen
|
||||
parent: BaseChessPiece
|
||||
parent: BaseTabletopPiece
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/chess_pieces.rsi
|
||||
@@ -113,7 +103,7 @@
|
||||
- type: entity
|
||||
id: BlackRook
|
||||
name: black rook
|
||||
parent: BaseChessPiece
|
||||
parent: BaseTabletopPiece
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/chess_pieces.rsi
|
||||
@@ -122,7 +112,7 @@
|
||||
- type: entity
|
||||
id: BlackBishop
|
||||
name: black bishop
|
||||
parent: BaseChessPiece
|
||||
parent: BaseTabletopPiece
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/chess_pieces.rsi
|
||||
@@ -131,7 +121,7 @@
|
||||
- type: entity
|
||||
id: BlackKnight
|
||||
name: black knight
|
||||
parent: BaseChessPiece
|
||||
parent: BaseTabletopPiece
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/chess_pieces.rsi
|
||||
@@ -140,7 +130,7 @@
|
||||
- type: entity
|
||||
id: BlackPawn
|
||||
name: black pawn
|
||||
parent: BaseChessPiece
|
||||
parent: BaseTabletopPiece
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/chess_pieces.rsi
|
||||
|
||||
135
Resources/Prototypes/Entities/Objects/Fun/Tabletop/dnd.yml
Normal file
135
Resources/Prototypes/Entities/Objects/Fun/Tabletop/dnd.yml
Normal file
@@ -0,0 +1,135 @@
|
||||
# Board item (given to players)
|
||||
- type: entity
|
||||
parent: BaseBoardEntity
|
||||
id: BaseBattlemap
|
||||
name: battlemap
|
||||
abstract: true
|
||||
description: A battlemap for your epic dungeon exploring to begin, pieces not included!
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/grassbm.rsi
|
||||
state: icon
|
||||
- type: TabletopGame
|
||||
boardName: tabletop-battlemap-board-name
|
||||
setup:
|
||||
!type:TabletopEmptySetup
|
||||
boardPrototype: GrassBoardTabletop
|
||||
|
||||
- type: entity
|
||||
parent: BaseBattlemap
|
||||
id: GrassBattlemap
|
||||
name: grass battlemap
|
||||
description: A battlemap for your epic dungeon exploring to begin, pieces not included!
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/Battlemaps/grassbm.rsi
|
||||
- type: TabletopGame
|
||||
setup:
|
||||
!type:TabletopEmptySetup
|
||||
boardPrototype: GrassBoardTabletop
|
||||
|
||||
- type: entity
|
||||
parent: BaseBattlemap
|
||||
id: MoonBattlemap
|
||||
name: moon battlemap
|
||||
description: A battlemap for your epic moon exploring to begin, pieces not included!
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/Battlemaps/moonbm.rsi
|
||||
- type: TabletopGame
|
||||
setup:
|
||||
!type:TabletopEmptySetup
|
||||
boardPrototype: MoonBoardTabletop
|
||||
|
||||
- type: entity
|
||||
parent: BaseBattlemap
|
||||
id: SandBattlemap
|
||||
name: sand battlemap
|
||||
description: A battlemap for your epic beach episodes to begin, pieces not included!
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/Battlemaps/sandbm.rsi
|
||||
- type: TabletopGame
|
||||
setup:
|
||||
!type:TabletopEmptySetup
|
||||
boardPrototype: SandBoardTabletop
|
||||
|
||||
- type: entity
|
||||
parent: BaseBattlemap
|
||||
id: SnowBattlemap
|
||||
name: snow battlemap
|
||||
description: A battlemap for your frigid exploring to begin, pieces not included! # if this isn't funny enough i can remove it
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/Battlemaps/snowbm.rsi
|
||||
- type: TabletopGame
|
||||
setup:
|
||||
!type:TabletopEmptySetup
|
||||
boardPrototype: SnowBoardTabletop
|
||||
|
||||
- type: entity
|
||||
parent: BaseBattlemap
|
||||
id: ShipBattlemap
|
||||
name: ship battlemap
|
||||
description: A battlemap for your epic space exploring to begin, pieces not included!
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/Battlemaps/shipbm.rsi
|
||||
- type: TabletopGame
|
||||
size: 543, 543
|
||||
setup:
|
||||
!type:TabletopEmptySetup
|
||||
boardPrototype: ShipBoardTabletop
|
||||
|
||||
# Background entity (actually shown in the board)
|
||||
- type: entity
|
||||
parent: BaseBoardTabletop
|
||||
id: GrassBoardTabletop
|
||||
name: grass battlemap
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/Battlemaps/grassbm_tabletop.rsi
|
||||
state: tabletop
|
||||
noRot: false
|
||||
drawdepth: FloorTiles
|
||||
|
||||
- type: entity
|
||||
parent: BaseBoardTabletop
|
||||
id: MoonBoardTabletop
|
||||
name: grass battlemap
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/Battlemaps/moonbm_tabletop.rsi
|
||||
state: tabletop
|
||||
|
||||
- type: entity
|
||||
parent: BaseBoardTabletop
|
||||
id: SandBoardTabletop
|
||||
name: sand battlemap
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/Battlemaps/sandbm_tabletop.rsi
|
||||
state: tabletop
|
||||
|
||||
- type: entity
|
||||
parent: BaseBoardTabletop
|
||||
id: SnowBoardTabletop
|
||||
name: snow battlemap
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/Battlemaps/snowbm_tabletop.rsi
|
||||
state: tabletop
|
||||
|
||||
- type: entity
|
||||
parent: BaseBoardTabletop
|
||||
id: ShipBoardTabletop
|
||||
name: ship battlemap
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/Battlemaps/shipbm_tabletop.rsi
|
||||
state: tabletop
|
||||
@@ -1,6 +1,6 @@
|
||||
# Parchís board item (normal in game item you can hold in your hand)
|
||||
- type: entity
|
||||
parent: BaseItem
|
||||
parent: BaseBoardEntity
|
||||
id: ParchisBoard
|
||||
name: parchís board
|
||||
description: Cross and circle board game famous for destroying countless friendships.
|
||||
@@ -13,16 +13,16 @@
|
||||
size: 574, 574
|
||||
setup:
|
||||
!type:TabletopParchisSetup
|
||||
boardPrototype: ParchisBoardTabletop
|
||||
|
||||
# Parchís tabletop item (item only visible in tabletop game)
|
||||
- type: entity
|
||||
id: ParchisBoardTabletop
|
||||
name: parchís
|
||||
parent: BaseBoardTabletop
|
||||
noSpawn: true
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: Objects/Fun/Tabletop/parchis_tabletop.rsi
|
||||
state: board
|
||||
noRot: false
|
||||
drawdepth: FloorTiles
|
||||
|
||||
|
||||
@@ -1,18 +1,16 @@
|
||||
- type: entity
|
||||
id: BaseTabletopPiece
|
||||
parent: BaseItem
|
||||
id: BaseGenericTabletopPiece
|
||||
parent: BaseTabletopPiece
|
||||
abstract: true
|
||||
components:
|
||||
- type: TabletopDraggable
|
||||
- type: Sprite
|
||||
noRot: true
|
||||
sprite: Objects/Fun/Tabletop/generic_pieces.rsi
|
||||
- type: Appearance
|
||||
|
||||
- type: entity
|
||||
id: RedTabletopPiece
|
||||
name: red piece
|
||||
parent: BaseTabletopPiece
|
||||
parent: BaseGenericTabletopPiece
|
||||
components:
|
||||
- type: Sprite
|
||||
state: red
|
||||
@@ -20,7 +18,7 @@
|
||||
- type: entity
|
||||
id: GreenTabletopPiece
|
||||
name: green piece
|
||||
parent: BaseTabletopPiece
|
||||
parent: BaseGenericTabletopPiece
|
||||
components:
|
||||
- type: Sprite
|
||||
state: green
|
||||
@@ -28,7 +26,7 @@
|
||||
- type: entity
|
||||
id: YellowTabletopPiece
|
||||
name: yellow piece
|
||||
parent: BaseTabletopPiece
|
||||
parent: BaseGenericTabletopPiece
|
||||
components:
|
||||
- type: Sprite
|
||||
state: yellow
|
||||
@@ -36,7 +34,7 @@
|
||||
- type: entity
|
||||
id: BlueTabletopPiece
|
||||
name: blue piece
|
||||
parent: BaseTabletopPiece
|
||||
parent: BaseGenericTabletopPiece
|
||||
components:
|
||||
- type: Sprite
|
||||
state: blue
|
||||
@@ -44,7 +42,7 @@
|
||||
- type: entity
|
||||
id: WhiteTabletopPiece
|
||||
name: white piece
|
||||
parent: BaseTabletopPiece
|
||||
parent: BaseGenericTabletopPiece
|
||||
components:
|
||||
- type: Sprite
|
||||
state: white
|
||||
@@ -52,7 +50,7 @@
|
||||
- type: entity
|
||||
id: BlackTabletopPiece
|
||||
name: black piece
|
||||
parent: BaseTabletopPiece
|
||||
parent: BaseGenericTabletopPiece
|
||||
components:
|
||||
- type: Sprite
|
||||
state: black
|
||||
|
||||
@@ -140,6 +140,37 @@
|
||||
guides:
|
||||
- CargoBounties
|
||||
|
||||
- type: entity
|
||||
name: character sheet
|
||||
parent: Paper
|
||||
id: PaperCNCSheet # legally gray zone of using "D&D" and "DND"
|
||||
description: 'A sheet for your Carps and Crypts characters.'
|
||||
components:
|
||||
- type: Paper
|
||||
contentSize: 10000
|
||||
escapeFormatting: false
|
||||
content: book-cnc-sheet
|
||||
- type: Sprite
|
||||
sprite: Objects/Misc/bureaucracy.rsi
|
||||
netsync: false
|
||||
layers:
|
||||
- state: paper
|
||||
color: "#cccccc"
|
||||
- state: paper_words
|
||||
map: ["enum.PaperVisualLayers.Writing"]
|
||||
color: "#cccccc" #aaaaaaaaaaaaaaaaaaaaaaa
|
||||
visible: false
|
||||
- state: paper_stamp-generic
|
||||
map: ["enum.PaperVisualLayers.Stamp"]
|
||||
visible: false
|
||||
- type: PaperVisuals
|
||||
backgroundImagePath: "/Textures/Interface/Paper/paper_background_default.svg.96dpi.png"
|
||||
contentImagePath: "/Textures/Interface/Paper/paper_content_lined.svg.96dpi.png"
|
||||
backgroundModulate: "#cccccc"
|
||||
contentImageModulate: "#cccccc"
|
||||
backgroundPatchMargin: 16.0, 16.0, 16.0, 16.0
|
||||
contentMargin: 16.0, 16.0, 16.0, 16.0
|
||||
|
||||
- type: entity
|
||||
parent: Paper
|
||||
id: PaperWritten
|
||||
|
||||
@@ -801,6 +801,12 @@
|
||||
- type: Tag
|
||||
id: Taser
|
||||
|
||||
- type: Tag
|
||||
id: TabletopBoard
|
||||
|
||||
- type: Tag
|
||||
id: TabletopPiece
|
||||
|
||||
- type: Tag
|
||||
id: TimerBrigElectronics
|
||||
|
||||
|
||||
Reference in New Issue
Block a user