All Projects → gruppler → PTN-Ninja

gruppler / PTN-Ninja

Licence: AGPL-3.0 License
An editor and viewer for Portable Tak Notation

Programming Languages

Vue
7211 projects
javascript
184084 projects - #8 most used programming language
SCSS
7915 projects
HTML
75241 projects

Labels

Projects that are alternatives of or similar to PTN-Ninja

taklib
A scala library for the Tak board game
Stars: ✭ 16 (-38.46%)
Mutual labels:  tak
seamless face replacement
Implemented a pipeline for automatic face replacement in videos (without deep learning). Image morphing, triangulation, TPS, Poisson blending, etc.
Stars: ✭ 30 (+15.38%)
Mutual labels:  tps
AsyncKeepAlive
AsyncKeepAlive is a plugin that keep the players' connections alive
Stars: ✭ 13 (-50%)
Mutual labels:  tps
TakServer
Server to handle online TAK games
Stars: ✭ 33 (+26.92%)
Mutual labels:  tak
Probe
Probe is a web GUI application with for Hyperledger Fabric maintainer, user, research to find the best block config logic for specific chain-code.
Stars: ✭ 29 (+11.54%)
Mutual labels:  tps
TPS-SLG-GAME
Unity制作的多人在线的第三人称策略类射击游戏 ,服务端实现怪物寻路,服务端由python 实现。 (服务端没有用任何python第三方库)
Stars: ✭ 150 (+476.92%)
Mutual labels:  tps
FreeTAKUAS
DJI drone flying app with integrations for FreeTAKServer
Stars: ✭ 41 (+57.69%)
Mutual labels:  tak
Flex-AntiCheat
Flex AntiCheat - Optimized Configs For Multiple AntiCheats
Stars: ✭ 37 (+42.31%)
Mutual labels:  tps
TabTPS
Minecraft server mod/plugin to monitor TPS, MSPT, and other information in the tab menu, boss bar, and action bar.
Stars: ✭ 151 (+480.77%)
Mutual labels:  tps
Epicsurvivalgameseries
Third-person Survival Game for Unreal Engine 4 (Sample Project)
Stars: ✭ 2,389 (+9088.46%)
Mutual labels:  tps
Openjk
Community effort to maintain and improve Jedi Academy (SP & MP) + Jedi Outcast (SP only) released by Raven Software
Stars: ✭ 1,641 (+6211.54%)
Mutual labels:  tps

PTN Ninja

This is an editor and viewer for Portable Tak Notation (PTN). It aims to be...

  • Useful for transcription of live games, even on a phone.
  • Intuitive, with a minimal UI that is enjoyable to use.
  • Responsive, with a fluid design that works as well on a phone as it does in full-screen on a desktop.

Installation

Prerequisites

Install the client-side dependencies

yarn

Install the server-side dependencies (optional)

pushd functions && npm install && popd

Sync the TPS-Ninja submodule

git submodule init && git submodule sync && git submodule update

Start the app in development mode (hot-code reloading, error reporting, etc.)

yarn dev

Start the server emulators (optional)

yarn emulate

Lint the files

yarn lint

Build the app for production

yarn build

API

PTN Ninja can send and receive messages with its opening or parent window using Window.postMessage(). These messages are objects containing an action, as well as a value where applicable.

For example:

{
  action: "SET_UI",
  value: {
    showRoads: true
  }
}

Actions

SET_NAME (value: <String>)

  • Set the game title

SET_UI (value: <Object>)

  • Set one or more UI parameters

TOGGLE_UI (value: <String>)

  • Toggle the specified UI parameter

SET_CURRENT_PTN (value: <String>)

  • Replace the current game with the provided PTN

DELETE_PLY (value: <Number>)

  • Delete the ply specified by ID

DELETE_BRANCH (value: <String>)

  • Delete the specified branch

GO_TO_PLY (value: <Object>: { plyID, isDone })

  • Navigate to the specified ply

PREV

  • Navigate backward

NEXT

  • Navigate forward

FIRST

  • Navigate to the beginning

LAST

  • Navigate to the end

UNDO

  • Undo

REDO

  • Redo

RENAME_BRANCH (value: <Object>: { oldName, newName })

  • Rename a branch

TOGGLE_EVALUATION (value: <Object>: { type, double })

  • Toggle evaluation notation on the current ply

EDIT_NOTE (value: <Object>: { plyID, index, message })

  • Replace the specified comment

ADD_NOTE (value: <String>)

  • Add a comment to the current ply

REMOVE_NOTE (value: <Object>: { plyID, index })

  • Remove the specified comment

TRIM_BRANCHES

  • Remove non-active branches

TRIM_TO_BOARD

  • Remove plies, preserving the board state

TRIM_TO_PLY

  • Remove all plies preceding the current ply

CANCEL_MOVE

  • Abort any in-progress piece movement interaction

NOTIFY (value: <Object>)

  • Issue a notification

NOTIFY_ERROR (value: <Object>)

  • Issue an error notification

NOTIFY_SUCCESS (value: <Object>)

  • Issue a success notification

NOTIFY_WARNING (value: <Object>)

  • Issue a warning notification

NOTIFY_HINT (value: <Object>)

  • Issue a hint notification

ROTATE_180

  • Rotate the board 180 degrees

ROTATE_LEFT

  • Rotate the board left 90 degrees

ROTATE_RIGHT

  • Rotate the board right 90 degrees

FLIP_HORIZONTAL

  • Flip the board horizontally

FLIP_VERTICAL

  • Flip the board vertically

RESET_TRANSFORM

  • Reset any board transformation

URLs

PTN Ninja uses lz-string to encode PTN and some other parameters for use in the URL. However, it will also do its best to read these parameters when passed as plaintext.

The structure of the URL is as follows:

https://ptn.ninja/<PTN>&<param1>=<value1>&<param2>=<value2>[...]

URL Parameters

name

  • Title of the game

ply

  • ID of the current ply
  • Ending with ! means plyIsDone == true

targetBranch

  • Name of the current branch

theme

  • ID or JSON of the theme to be used

axisLabels (default: true)

  • Show axis labels

flatCounts (default: true)

  • Show flat counts

turnIndicator (default: true)

  • Show turn indicator

highlightSquares (default: true)

  • Show square highlights

pieceShadows (default: true)

  • Show piece shadows

playSpeed (default: 60)

  • Steps per minute to be used for playback

showAllBranches (default: false)

  • Show all branches

showControls (default: true)

  • Show playback controls

showMove (default: true)

  • Show the current move

showPTN (default: true)

  • Show the PTN panel

showRoads (default: true)

  • Show road connections

showScrubber (default: true)

  • Show the playback scrubber

showText (default: true)

  • Show the Notes panel

unplayedPieces (default: true)

  • Show unplayed pieces

Legal

© 2022 Craig Laparo

This work is licensed under a GNU AGPLv3 License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].