@johnmorrisdotca/kyogijo-stadiums 0.20.0 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/NOTICE.md +1 -1
- package/README.md +21 -13
- package/dist/budo/describe.js +11 -0
- package/dist/budo/looks.d.ts +2 -0
- package/dist/budo/looks.js +6 -0
- package/dist/budo/plan.d.ts +3 -1
- package/dist/budo/plan.js +12 -4
- package/dist/budo/ring.d.ts +47 -0
- package/dist/budo/ring.js +80 -0
- package/dist/budo/types.d.ts +6 -4
- package/dist/budo.style.js +11 -4
- package/dist/crowd.js +2 -0
- package/dist/draw.js +4 -3
- package/dist/features.js +8 -0
- package/dist/fields.types.d.ts +2 -2
- package/dist/heat.zones.js +1 -1
- package/dist/homeside.js +2 -0
- package/dist/leagues/combat.d.ts +50 -2
- package/dist/leagues/combat.js +38 -1
- package/dist/leagues/sources.js +4 -0
- package/dist/leagues/types.d.ts +1 -1
- package/dist/leagues.d.ts +1 -1
- package/dist/leagues.js +22 -3
- package/dist/outline.js +1 -0
- package/dist/ranges.names.js +1 -0
- package/dist/score.js +3 -0
- package/dist/strings.d.ts +7 -1
- package/dist/strings.js +22 -10
- package/dist/turn.kit.d.ts +1 -1
- package/dist/turn.style.js +5 -0
- package/dist/types.d.ts +2 -2
- package/dist/units.js +2 -0
- package/dist/uprights.budo.js +4 -1
- package/dist/uprights.ring.d.ts +12 -0
- package/dist/uprights.ring.js +76 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/dist/leagues/combat.d.ts
CHANGED
|
@@ -46,9 +46,57 @@ export declare const NRUC_CAGE: MmaFigures;
|
|
|
46
46
|
export declare const IMMAF_CAGE: MmaFigures;
|
|
47
47
|
/** The leagues of each combat sport: for each the rulebook's own first. */
|
|
48
48
|
export declare const MMA_LEAGUES: readonly MmaLeague[];
|
|
49
|
+
/**
|
|
50
|
+
* The figures of a ring, in metres: the boxing ring and, with its own figures, the professional wrestling ring. A ring is a raised square platform whose canvas is bounded by ropes held by a post at each corner, with the apron
|
|
51
|
+
* beyond the ropes and steps up to it.
|
|
52
|
+
*/
|
|
53
|
+
export interface RingFigures {
|
|
54
|
+
/** The ring, a square, measured inside the ropes. */
|
|
55
|
+
size: Span;
|
|
56
|
+
/** The platform: the most it may stand over the floor of the building, and the least it is drawn (0 puts the ring on the floor). */
|
|
57
|
+
platform: {
|
|
58
|
+
height: Span;
|
|
59
|
+
steps: {
|
|
60
|
+
sets: number;
|
|
61
|
+
treads: number;
|
|
62
|
+
tread: number;
|
|
63
|
+
width: number;
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
/** The apron, the canvas beyond the ropes: the least the rules ask (the drawn width is the least unless said), and the thickness of the padding under the canvas. */
|
|
67
|
+
apron: Span;
|
|
68
|
+
foam: Span;
|
|
69
|
+
/** The ropes: how many, their heights over the ring floor, and their thickness. */
|
|
70
|
+
ropes: {
|
|
71
|
+
count: number;
|
|
72
|
+
heights: readonly number[];
|
|
73
|
+
diameter: Span;
|
|
74
|
+
};
|
|
75
|
+
/** The corner posts: their height over the ring floor, their thickness, and how far each stands from the ropes (the ropes reach it by an extension). */
|
|
76
|
+
post: {
|
|
77
|
+
height: number;
|
|
78
|
+
diameter: number;
|
|
79
|
+
fromRopes: number;
|
|
80
|
+
pad: number;
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
/** The figures of a boxing ring, in metres. */
|
|
84
|
+
export interface BoxingFigures extends RingFigures {
|
|
85
|
+
kind: "boxing";
|
|
86
|
+
}
|
|
87
|
+
/** A boxing league: a regulation's ring. */
|
|
88
|
+
export type BoxingLeague = LeagueBase<"boxing", BoxingFigures>;
|
|
89
|
+
/** The ring of the Nevada Rules of Unarmed Combat (NRUC 2.050): 20 feet within the ropes, a floor 18 inches beyond them, a platform of at most 5 feet, posts of 58 inches over the ring floor at least 18 inches from the ropes, at least four ropes of at least 1 inch, the lowest 18 inches up. */
|
|
90
|
+
export declare const NRUC_RING: BoxingFigures;
|
|
91
|
+
/** The ring of Wisconsin's rule (SPS 192.38): 16 to 20 feet within the ropes, an apron of at least 18 inches, a platform of at most 4 feet with three sets of steps, ropes at 18, 30, 42 and 54 inches, posts at least 3 inches across and 58 inches high. */
|
|
92
|
+
export declare const WISCONSIN_RING: BoxingFigures;
|
|
93
|
+
/** The amateur ring of the WBC Amateur rules (Rule 1, 2026): 4.50 to 6.10 m within the ropes, a platform of 0.90 to 1.20 m, an apron of at least 0.50 m, ropes of 3 to 5 cm at 41, 71, 102 and 132 cm, three sets of steps. Ontario's amateur rules agree (4.9 to 6.1 m, ropes at 40, 70, 100 and 130 cm, an apron of at least 45 cm, a platform of at most 1.2 m). */
|
|
94
|
+
export declare const WBC_AMATEUR_RING: BoxingFigures;
|
|
95
|
+
/** The boxing leagues: the Nevada commission's first. */
|
|
96
|
+
export declare const BOXING_LEAGUES: readonly BoxingLeague[];
|
|
49
97
|
/** The figures of a combat league. */
|
|
50
|
-
export type CombatFigures = MmaFigures;
|
|
98
|
+
export type CombatFigures = MmaFigures | BoxingFigures;
|
|
51
99
|
/** A league with a combat surface of its own. */
|
|
52
|
-
export type CombatLeague = MmaLeague;
|
|
100
|
+
export type CombatLeague = MmaLeague | BoxingLeague;
|
|
53
101
|
/** Every combat league, once each. */
|
|
54
102
|
export declare const COMBAT_LEAGUES: readonly CombatLeague[];
|
package/dist/leagues/combat.js
CHANGED
|
@@ -23,5 +23,42 @@ export const MMA_LEAGUES = [
|
|
|
23
23
|
{ id: "nruc", family: "mma", name: { en: "MMA cage, Nevada Rules of Unarmed Combat", ja: "総合格闘技のケージ(ネバダ州の規則)" }, unit: "ft", figuresUnit: "m", dimensions: NRUC_CAGE, sources: ["nruc", "oar-230-070-0025", "wp-mma-cage"], builtIn: true },
|
|
24
24
|
{ id: "immaf", family: "mma", name: { en: "MMA cage, IMMAF amateur rules", ja: "総合格闘技のケージ(IMMAFのアマチュア規則)" }, unit: "ft", figuresUnit: "m", dimensions: IMMAF_CAGE, sources: ["immaf-amateur", "nruc"] },
|
|
25
25
|
];
|
|
26
|
+
const STEPS = { sets: 3, treads: 3, tread: 0.3, width: 1.2 };
|
|
27
|
+
/** The ring of the Nevada Rules of Unarmed Combat (NRUC 2.050): 20 feet within the ropes, a floor 18 inches beyond them, a platform of at most 5 feet, posts of 58 inches over the ring floor at least 18 inches from the ropes, at least four ropes of at least 1 inch, the lowest 18 inches up. */
|
|
28
|
+
export const NRUC_RING = {
|
|
29
|
+
kind: "boxing",
|
|
30
|
+
size: span(20 * FT, 20 * FT, 20 * FT),
|
|
31
|
+
platform: { height: span(0, 5 * FT, 4 * FT), steps: STEPS },
|
|
32
|
+
apron: span(18 * IN, 4 * FT, 2 * FT),
|
|
33
|
+
foam: span(1 * IN, 1.5 * IN, 1 * IN),
|
|
34
|
+
ropes: { count: 4, heights: [18 * IN, 30 * IN, 42 * IN, 54 * IN], diameter: span(1 * IN, 2 * IN, 1 * IN) },
|
|
35
|
+
post: { height: 58 * IN, diameter: 3 * IN, fromRopes: 18 * IN, pad: 0.3 },
|
|
36
|
+
};
|
|
37
|
+
/** The ring of Wisconsin's rule (SPS 192.38): 16 to 20 feet within the ropes, an apron of at least 18 inches, a platform of at most 4 feet with three sets of steps, ropes at 18, 30, 42 and 54 inches, posts at least 3 inches across and 58 inches high. */
|
|
38
|
+
export const WISCONSIN_RING = {
|
|
39
|
+
kind: "boxing",
|
|
40
|
+
size: span(16 * FT, 20 * FT, 20 * FT),
|
|
41
|
+
platform: { height: span(0, 4 * FT, 4 * FT), steps: STEPS },
|
|
42
|
+
apron: span(18 * IN, 4 * FT, 2 * FT),
|
|
43
|
+
foam: span(1 * IN, 1 * IN, 1 * IN),
|
|
44
|
+
ropes: { count: 4, heights: [18 * IN, 30 * IN, 42 * IN, 54 * IN], diameter: span(1 * IN, 2 * IN, 1 * IN) },
|
|
45
|
+
post: { height: 58 * IN, diameter: 3 * IN, fromRopes: 18 * IN, pad: 0.3 },
|
|
46
|
+
};
|
|
47
|
+
/** The amateur ring of the WBC Amateur rules (Rule 1, 2026): 4.50 to 6.10 m within the ropes, a platform of 0.90 to 1.20 m, an apron of at least 0.50 m, ropes of 3 to 5 cm at 41, 71, 102 and 132 cm, three sets of steps. Ontario's amateur rules agree (4.9 to 6.1 m, ropes at 40, 70, 100 and 130 cm, an apron of at least 45 cm, a platform of at most 1.2 m). */
|
|
48
|
+
export const WBC_AMATEUR_RING = {
|
|
49
|
+
kind: "boxing",
|
|
50
|
+
size: span(4.5, 6.1, 6.1),
|
|
51
|
+
platform: { height: span(0.9, 1.2, 1.2), steps: STEPS },
|
|
52
|
+
apron: span(0.5, 1.5, 0.5),
|
|
53
|
+
foam: span(0.01, 0.025, 0.02),
|
|
54
|
+
ropes: { count: 4, heights: [0.41, 0.71, 1.02, 1.32], diameter: span(0.03, 0.05, 0.04) },
|
|
55
|
+
post: { height: 1.5, diameter: 0.076, fromRopes: 0.45, pad: 0.3 },
|
|
56
|
+
};
|
|
57
|
+
/** The boxing leagues: the Nevada commission's first. */
|
|
58
|
+
export const BOXING_LEAGUES = [
|
|
59
|
+
{ id: "nruc-ring", family: "boxing", name: { en: "Boxing ring, Nevada Rules of Unarmed Combat", ja: "ボクシングのリング(ネバダ州の規則)" }, unit: "ft", figuresUnit: "m", dimensions: NRUC_RING, sources: ["nruc", "wp-boxing-ring"], builtIn: true },
|
|
60
|
+
{ id: "wisconsin", family: "boxing", name: { en: "Boxing ring, Wisconsin", ja: "ボクシングのリング(ウィスコンシン州の規則)" }, unit: "ft", figuresUnit: "m", dimensions: WISCONSIN_RING, sources: ["wi-sps-192", "wp-boxing-ring"] },
|
|
61
|
+
{ id: "wbc-amateur", family: "boxing", name: { en: "Boxing ring, WBC Amateur rules", ja: "ボクシングのリング(WBCアマチュア規則)" }, unit: "m", dimensions: WBC_AMATEUR_RING, sources: ["wbc-amateur", "ontario-amateur-boxing"] },
|
|
62
|
+
];
|
|
26
63
|
/** Every combat league, once each. */
|
|
27
|
-
export const COMBAT_LEAGUES = Object.freeze([...MMA_LEAGUES]);
|
|
64
|
+
export const COMBAT_LEAGUES = Object.freeze([...MMA_LEAGUES, ...BOXING_LEAGUES]);
|
package/dist/leagues/sources.js
CHANGED
|
@@ -130,6 +130,10 @@ export const LEAGUE_SOURCES = Object.freeze(Object.fromEntries([
|
|
|
130
130
|
source({ id: "oar-230-070-0025", title: "Oregon Administrative Rule 230-070-0025, Mixed Martial Arts Fenced Area or Ring", by: "Oregon Department of Consumer and Business Services", edition: "the rule as read on the date given", url: "https://oregon.public.law/rules/oar_230-070-0025", read: COMBAT_READ, note: "the fenced area is round or has at least six equal sides, 18 to 32 feet wide, a platform of at most 4 feet, at least six posts of 6 to 7 feet, at least two entrances; a second commission's rule beside Nevada's, which is the one drawn" }),
|
|
131
131
|
source({ id: "immaf-amateur", title: "IMMAF Mixed Martial Arts Unified Rules for amateur, junior and senior competition: the fighting area and the fence", by: "International Mixed Martial Arts Federation", edition: "January 2021", url: "https://immaf.org/wp-content/uploads/2025/11/MMA-UNIFIED-RULES-FOR-AMATEUR-JUNIOR-SENIOR-January-2021.pdf", read: COMBAT_READ, note: "a fighting area circular or with equal sides, 20 by 20 to 32 by 32 feet, at least 40 mm of high-density foam under a vinyl cover, two gated entrances that open outward, on opposite sides if possible" }),
|
|
132
132
|
source({ id: "wp-mma-cage", title: "Mixed martial arts cage (English Wikipedia), and Mixed martial arts, Fighting area: the cage called a cage or an eight-sided cage; the larger cage of 30 feet across with a 6 foot fence on a 4 foot platform, the smaller of 25 feet, foam padding along the top of the fence and between its eight sections, two gates opposite each other", by: "Wikipedia contributors (CC BY-SA 4.0), read for facts only", edition: "revision 1377260922 (Mixed martial arts cage) and revision 1381048799 (Mixed martial arts)", url: "https://en.wikipedia.org/w/index.php?title=Mixed_martial_arts_cage&oldid=1377260922", read: COMBAT_READ, note: "what is typical and not a rule: 30 feet and 25 feet across, a 6 foot fence, a 4 foot platform, eight sides, two gates opposite each other; the article says the name of one promotion's cage is a trademark, so the package names the cage for what it is" }),
|
|
133
|
+
source({ id: "wi-sps-192", title: "Wisconsin Administrative Code SPS 192.38, Ring (a square of 16 to 20 feet within the ropes, an apron of at least 18 inches, a platform of at most 4 feet with three sets of steps, ropes at 18, 30, 42 and 54 inches held by two spacer ties a side, posts at least 3 inches across and 58 inches over the ring floor, the ropes reaching them by an extension of at least 18 inches, a floor of 1 inch of padding under canvas)", by: "Wisconsin Department of Safety and Professional Services", edition: "SPS 192 as in force (history CR 17-016, Register No. 743, effective 1 December 2017)", url: "https://docs.legis.wisconsin.gov/document/administrativecode/SPS%20192.38", read: COMBAT_READ, note: "the ring's size range, the apron, the platform, the steps, the ropes' heights, the posts" }),
|
|
134
|
+
source({ id: "wbc-amateur", title: "WBC Amateur competition rules, Rule 1, The Ring (4.50 to 6.10 m inside the ropes, a platform of 0.90 to 1.20 m, an apron of at least 0.50 m, ropes of 3 to 5 cm at 41, 71, 102 and 132 cm, three sets of steps, corner colours)", by: "World Boxing Council Amateur", edition: "updated 2026 (the file of October 2025)", url: "https://wbcboxing.com/amateur/esp/wp-content/uploads/2025/10/WBC-AMATEUR-RULES-UPDATED-2026.pdf", read: COMBAT_READ, note: "the amateur ring's figures; the corner colours (red and blue for the boxers, white neutral) are its alternative colours" }),
|
|
135
|
+
source({ id: "ontario-amateur-boxing", title: "Amateur combative sport rules: Boxing, Part II: Competitive field of play, 1.1 to 1.1.6 (4.9 to 6.1 m inside the ropes, a platform of at most 1.2 m, an apron of at least 45 cm, ropes of 2 to 5 cm at 40, 70, 100 and 130 cm, padding of 2.5 to 3.75 cm under a canvas, the red corner on the left nearest the jury table)", by: "Ontario Ministry of Sport", edition: "published 17 December 2024, updated 22 May 2025", url: "https://www.ontario.ca/document/amateur-combative-sport-rules-boxing/part-ii-competitive-field-play", read: COMBAT_READ, note: "a second amateur rule beside the WBC's; the red corner at the left" }),
|
|
136
|
+
source({ id: "wp-boxing-ring", title: "Boxing ring (English Wikipedia): a square raised platform with a post at each corner, four ropes, a red corner and a blue corner; a standard ring 16 to 24 feet a side between the ropes with 2 feet outside, a platform 3 to 4 feet from the ground, ropes at 18, 30, 42 and 54 inches", by: "Wikipedia contributors (CC BY-SA 4.0), read for facts only", edition: "revision 1370389178", url: "https://en.wikipedia.org/w/index.php?title=Boxing_ring&oldid=1370389178", read: COMBAT_READ, note: "what is typical and not a rule: the 2 foot apron, the 4 foot platform, the heights of the ropes, the red and blue corners" }),
|
|
133
137
|
// Baseball and softball.
|
|
134
138
|
source({ id: "obr-2026", title: "Official Baseball Rules, 2.01, 2.03 and 2.04 (the rules Minor League Baseball plays under)", by: "Major League Baseball", edition: "2026", url: "https://mktg.mlbstatic.com/mlb/official-information/2026-official-baseball-rules.pdf", read: READ, note: "bases 18 inches (2.03), the fence at least 325 and 400 feet (2.01 note); Minor League Baseball's own facility standards are not public" }),
|
|
135
139
|
source({ id: "ncaa-baseball", title: "NCAA Baseball Rules, Rule 1, and the field diagram", by: "NCAA", edition: "2027 and 2028 rules book (printed October 2026)", url: "https://ncaaorg.s3.amazonaws.com/championships/sports/baseball/rules/PRMBA_RulesBook.pdf", read: READ, note: "90-foot square (1-2-a), recommended fence 330, 375 and 400 feet (1-2-b), boxes 4 by 6 feet (1-3-a), backstop 45 feet (1-5-b); diagram: PRMBA_Re-imagedFieldDiagrams.pdf" }),
|
package/dist/leagues/types.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export interface Named {
|
|
|
5
5
|
ja: string;
|
|
6
6
|
}
|
|
7
7
|
/** The families of surface a league is a variant of. */
|
|
8
|
-
export type Family = "basketball" | "hockey" | "football" | "baseball" | "curling" | "tennis" | "volleyball" | "badminton" | "pickleball" | "tabletennis" | "padel" | "squash" | "racquetball" | "sepaktakraw" | "teqball" | "roundnet" | "netball" | "lacrosse" | "rugby" | "afl" | "gaelic" | "cricket" | "fieldhockey" | "handball" | "athletics" | "skating" | "judo" | "karate" | "kendo" | "sumo" | "kyudo" | "dojo" | "mma";
|
|
8
|
+
export type Family = "basketball" | "hockey" | "football" | "baseball" | "curling" | "tennis" | "volleyball" | "badminton" | "pickleball" | "tabletennis" | "padel" | "squash" | "racquetball" | "sepaktakraw" | "teqball" | "roundnet" | "netball" | "lacrosse" | "rugby" | "afl" | "gaelic" | "cricket" | "fieldhockey" | "handball" | "athletics" | "skating" | "judo" | "karate" | "kendo" | "sumo" | "kyudo" | "dojo" | "mma" | "boxing";
|
|
9
9
|
/** The state of one marking from a season on, in a league's own history: the season it began, what it was, and its sources. */
|
|
10
10
|
export interface LeagueSpan<T> {
|
|
11
11
|
/** The first season it was in force, or `null` for the state before the first change that is cited. */
|
package/dist/leagues.d.ts
CHANGED
|
@@ -36,7 +36,7 @@ export { WA_STANDARD_TRACK, WA_SHORT_TRACK, WA_STAGGER_TABLE, WA_SHORT_STAGGER_T
|
|
|
36
36
|
export type { SkatingFigures, SkatingLeague, LongTrackFigures, ShortTrackFigures, FigureRinkFigures } from "./leagues/skating.ts";
|
|
37
37
|
export { ISU_LONG_TRACK, ISU_SHORT_TRACK, ISU_FIGURE_RINK, ISU_LONG_TRACK_TABLE } from "./leagues/skating.ts";
|
|
38
38
|
export type { BudoFigures, BudoLeague, DojoFigures, DojoLeague, JudoFigures, JudoLeague, KarateFigures, KarateLeague, KendoFigures, KendoLeague, KyudoFigures, KyudoLeague, Mat, SumoFigures, SumoLeague } from "./leagues/budo.ts";
|
|
39
|
-
export { IMMAF_CAGE, MMA_LEAGUES, NRUC_CAGE } from "./leagues/combat.ts";
|
|
39
|
+
export { BOXING_LEAGUES, IMMAF_CAGE, MMA_LEAGUES, NRUC_CAGE, NRUC_RING, WBC_AMATEUR_RING, WISCONSIN_RING } from "./leagues/combat.ts";
|
|
40
40
|
export { AJJF_CONTEST, BUDO_LEAGUES, ENTEKI, FIK_SHIAI_JO, IJF_CONTEST, IJF_KATA, JSA_DOHYO, KINTEKI, WKF_KATA, WKF_KUMITE } from "./leagues/budo.ts";
|
|
41
41
|
export type { BadmintonFigures, BadmintonLeague, FreeZone, FreeZones, NetFigures, NetLeague, NetSport, NetballFigures, NetballLeague, PadelFigures, PadelLeague, PickleballFigures, PickleballLeague, RacquetballFigures, RacquetballLeague, RoundnetFigures, RoundnetLeague, SepakTakrawFigures, SepakTakrawLeague, SquashFigures, SquashLeague, TableTennisFigures, TableTennisLeague, TennisFigures, TennisLeague, TeqballFigures, TeqballLeague, VolleyballFigures, VolleyballLeague } from "./leagues/courts.ts";
|
|
42
42
|
export type { CourtFigures, CourtMarks } from "./leagues/basketball.ts";
|
package/dist/leagues.js
CHANGED
|
@@ -15,7 +15,7 @@ import { FIELD_HOCKEY_LEAGUES, fieldHockeyInFeet } from "./leagues/fieldhockey.j
|
|
|
15
15
|
import { ATHLETICS_LEAGUES, athleticsInFeet } from "./leagues/athletics.js";
|
|
16
16
|
import { longOval, outerEdge } from "./skating/track.js";
|
|
17
17
|
import { SKATING_LEAGUES, skatingInFeet } from "./leagues/skating.js";
|
|
18
|
-
import { MMA_LEAGUES } from "./leagues/combat.js";
|
|
18
|
+
import { BOXING_LEAGUES, MMA_LEAGUES } from "./leagues/combat.js";
|
|
19
19
|
import { BUDO_LEAGUES, DOJO_LEAGUES, JUDO_LEAGUES, KARATE_LEAGUES, KENDO_LEAGUES, KYUDO_LEAGUES, SUMO_LEAGUES } from "./leagues/budo.js";
|
|
20
20
|
import { GAELIC_LEAGUES, gaelicInFeet } from "./leagues/gaelic.js";
|
|
21
21
|
import { HANDBALL_LEAGUES, handballInFeet } from "./leagues/handball.js";
|
|
@@ -28,10 +28,10 @@ export { LEAGUE_SOURCES };
|
|
|
28
28
|
export { AFL_GROUNDS } from "./leagues/aussie.js";
|
|
29
29
|
export { WA_STANDARD_TRACK, WA_SHORT_TRACK, WA_STAGGER_TABLE, WA_SHORT_STAGGER_TABLE } from "./leagues/athletics.js";
|
|
30
30
|
export { ISU_LONG_TRACK, ISU_SHORT_TRACK, ISU_FIGURE_RINK, ISU_LONG_TRACK_TABLE } from "./leagues/skating.js";
|
|
31
|
-
export { IMMAF_CAGE, MMA_LEAGUES, NRUC_CAGE } from "./leagues/combat.js";
|
|
31
|
+
export { BOXING_LEAGUES, IMMAF_CAGE, MMA_LEAGUES, NRUC_CAGE, NRUC_RING, WBC_AMATEUR_RING, WISCONSIN_RING } from "./leagues/combat.js";
|
|
32
32
|
export { AJJF_CONTEST, BUDO_LEAGUES, ENTEKI, FIK_SHIAI_JO, IJF_CONTEST, IJF_KATA, JSA_DOHYO, KINTEKI, WKF_KATA, WKF_KUMITE } from "./leagues/budo.js";
|
|
33
33
|
/** The family of surface each sport draws; soccer's variants are its pitches (`pitch`), not leagues. */
|
|
34
|
-
export const FAMILY_OF = Object.freeze({ nfl: "football", cfl: "football", ifaf: "football", nhl: "hockey", nba: "basketball", mlb: "baseball", soccer: undefined, curling: "curling", tennis: "tennis", volleyball: "volleyball", badminton: "badminton", pickleball: "pickleball", tabletennis: "tabletennis", padel: "padel", squash: "squash", racquetball: "racquetball", sepaktakraw: "sepaktakraw", teqball: "teqball", roundnet: "roundnet", netball: "netball", lacrosse: "lacrosse", rugby: "rugby", afl: "afl", gaelic: "gaelic", cricket: "cricket", fieldhockey: "fieldhockey", handball: "handball", swimming: undefined, waterpolo: undefined, diving: undefined, artisticswimming: undefined, athletics: "athletics", skating: "skating", judo: "judo", karate: "karate", kendo: "kendo", sumo: "sumo", kyudo: "kyudo", dojo: "dojo", mma: "mma" });
|
|
34
|
+
export const FAMILY_OF = Object.freeze({ nfl: "football", cfl: "football", ifaf: "football", nhl: "hockey", nba: "basketball", mlb: "baseball", soccer: undefined, curling: "curling", tennis: "tennis", volleyball: "volleyball", badminton: "badminton", pickleball: "pickleball", tabletennis: "tabletennis", padel: "padel", squash: "squash", racquetball: "racquetball", sepaktakraw: "sepaktakraw", teqball: "teqball", roundnet: "roundnet", netball: "netball", lacrosse: "lacrosse", rugby: "rugby", afl: "afl", gaelic: "gaelic", cricket: "cricket", fieldhockey: "fieldhockey", handball: "handball", swimming: undefined, waterpolo: undefined, diving: undefined, artisticswimming: undefined, athletics: "athletics", skating: "skating", judo: "judo", karate: "karate", kendo: "kendo", sumo: "sumo", kyudo: "kyudo", dojo: "dojo", mma: "mma", boxing: "boxing" });
|
|
35
35
|
/**
|
|
36
36
|
* The leagues each sport can draw, in the order a menu lists them, the sport's own first (the three football sports share their
|
|
37
37
|
* list, the football leagues). Soccer and the pools have none.
|
|
@@ -78,6 +78,7 @@ export const LEAGUES = Object.freeze({
|
|
|
78
78
|
kyudo: KYUDO_LEAGUES,
|
|
79
79
|
dojo: DOJO_LEAGUES,
|
|
80
80
|
mma: MMA_LEAGUES,
|
|
81
|
+
boxing: BOXING_LEAGUES,
|
|
81
82
|
});
|
|
82
83
|
/** Every league of every family, once each. */
|
|
83
84
|
export const VARIANTS = Object.freeze([...BASKETBALL_LEAGUES, ...HOCKEY_LEAGUES, ...FOOTBALL_LEAGUES, ...BASEBALL_LEAGUES, ...CURLING_LEAGUES, ...TENNIS_LEAGUES, ...VOLLEYBALL_LEAGUES, ...BADMINTON_LEAGUES, ...PICKLEBALL_LEAGUES, ...TABLE_TENNIS_LEAGUES, ...PADEL_LEAGUES, ...SQUASH_LEAGUES, ...RACQUETBALL_LEAGUES, ...SEPAK_TAKRAW_LEAGUES, ...TEQBALL_LEAGUES, ...ROUNDNET_LEAGUES, ...NETBALL_LEAGUES, ...LACROSSE_LEAGUES, ...RUGBY_LEAGUES, ...AFL_LEAGUES, ...GAELIC_LEAGUES, ...CRICKET_LEAGUES, ...FIELD_HOCKEY_LEAGUES, ...HANDBALL_LEAGUES, ...ATHLETICS_LEAGUES, ...BUDO_LEAGUES]);
|
|
@@ -333,6 +334,13 @@ export function leagueSize(sport, id, unit) {
|
|
|
333
334
|
feet = { length: convertLength(length, "m", "ft"), width: convertLength(frontage, "m", "ft") };
|
|
334
335
|
break;
|
|
335
336
|
}
|
|
337
|
+
case "boxing": {
|
|
338
|
+
// The platform: the ring at the size drawn, with its apron.
|
|
339
|
+
const d = league.dimensions;
|
|
340
|
+
const m = d.size.drawn + 2 * Math.max(d.apron.drawn, d.post.fromRopes + d.post.pad / 2 + 0.02);
|
|
341
|
+
feet = { length: convertLength(m, "m", "ft"), width: convertLength(m, "m", "ft") };
|
|
342
|
+
break;
|
|
343
|
+
}
|
|
336
344
|
case "mma": {
|
|
337
345
|
// The platform: the cage at the size drawn, with its apron.
|
|
338
346
|
const d = league.dimensions;
|
|
@@ -694,6 +702,17 @@ export function leagueFigures(league) {
|
|
|
694
702
|
["shajō", `${f.hall.depth} m deep, ${f.hall.side} m from the end shooters to the walls, ceiling ${f.ceiling} m`],
|
|
695
703
|
];
|
|
696
704
|
}
|
|
705
|
+
case "boxing": {
|
|
706
|
+
const f = league.dimensions;
|
|
707
|
+
const ft = (m) => `${Math.round((m / 0.3048) * 100) / 100} ft`;
|
|
708
|
+
const sized = f.size.min === f.size.max ? `${ft(f.size.min)} square` : `${ft(f.size.min)} to ${ft(f.size.max)} square`;
|
|
709
|
+
return [
|
|
710
|
+
["ring", `${sized} within the ropes`],
|
|
711
|
+
["platform", `at most ${ft(f.platform.height.max)} high, with ${f.platform.steps.sets} sets of steps`],
|
|
712
|
+
["ropes", `${f.ropes.count} at ${f.ropes.heights.map((h) => `${Math.round((h / 0.0254) * 10) / 10} in`).join(", ")}`],
|
|
713
|
+
["posts", `${Math.round((f.post.height / 0.0254) * 10) / 10} in over the ring floor, ${Math.round((f.post.fromRopes / 0.0254) * 10) / 10} in from the ropes`],
|
|
714
|
+
];
|
|
715
|
+
}
|
|
697
716
|
case "mma": {
|
|
698
717
|
const f = league.dimensions;
|
|
699
718
|
const ft = (m) => `${Math.round((m / 0.3048) * 100) / 100} ft`;
|
package/dist/outline.js
CHANGED
package/dist/ranges.names.js
CHANGED
|
@@ -79,6 +79,7 @@ export const RANGES = Object.freeze({
|
|
|
79
79
|
kyudo: Object.freeze([range("shajo"), range("yamichi"), range("azuchi")]),
|
|
80
80
|
dojo: Object.freeze([range("kamiza"), range("half", "left")]),
|
|
81
81
|
mma: Object.freeze([range("cage"), range("gate"), range("half", "left")]),
|
|
82
|
+
boxing: Object.freeze([range("ropes"), range("corner"), range("half", "left")]),
|
|
82
83
|
});
|
|
83
84
|
const isNumber = (value) => typeof value === "number" && Number.isFinite(value);
|
|
84
85
|
/**
|
package/dist/score.js
CHANGED
|
@@ -218,6 +218,9 @@ export function glyph(sport) {
|
|
|
218
218
|
case "dojo":
|
|
219
219
|
// A dojo: a floor of mats laid so that no four corners meet.
|
|
220
220
|
return "M-14 -10H14V10H-14ZM-14 0H14M-5 -10V0M5 0V10";
|
|
221
|
+
case "boxing":
|
|
222
|
+
// A ring: the platform's square, the ropes and the four posts.
|
|
223
|
+
return "M-10 -10H10V10H-10ZM-6 -6H6V6H-6ZM-8 -8L-6 -6M8 -8L6 -6M-8 8L-6 6M8 8L6 6";
|
|
221
224
|
case "mma":
|
|
222
225
|
// An eight-sided cage on its platform: the platform's square, the octagon of the fence and the two gates.
|
|
223
226
|
return "M-10 -10H10V10H-10ZM-3 -7L3 -7L7 -3L7 3L3 7L-3 7L-7 3L-7 -3ZM-2 -7V-10M2 -7V-10M-2 7V10M2 7V10";
|
package/dist/strings.d.ts
CHANGED
|
@@ -446,6 +446,12 @@ export interface KyogijoWords {
|
|
|
446
446
|
mmaFloor: string;
|
|
447
447
|
mmaGates: string;
|
|
448
448
|
mmaSteps: string;
|
|
449
|
+
/** A boxing ring: the sentence ({size}, {feet}, {apron}, {platform}), the platform it stands on ({height}) or the floor, and the sentences about its corners and its steps. */
|
|
450
|
+
boxing: string;
|
|
451
|
+
boxingPlatform: string;
|
|
452
|
+
boxingFloor: string;
|
|
453
|
+
boxingCorners: string;
|
|
454
|
+
boxingSteps: string;
|
|
449
455
|
/** The scoreboards: the heads and the sentences that say what each side scored. */
|
|
450
456
|
board: {
|
|
451
457
|
ippon: string;
|
|
@@ -999,7 +1005,7 @@ export interface KyogijoWords {
|
|
|
999
1005
|
item: string;
|
|
1000
1006
|
itemSag: string;
|
|
1001
1007
|
/** The names of what stands on the surface, by kind. */
|
|
1002
|
-
parts: Record<"scoreboard" | "net" | "antennae" | "goalposts" | "netposts" | "hoop" | "goal" | "boards" | "stumps" | "pylons" | "flags" | "fence" | "backstop" | "foul-poles" | "table-legs" | "walls" | "starting-blocks" | "backstroke-flags" | "false-start-rope" | "springboards" | "platforms" | "judges-stand" | "hurdles" | "steeplechase" | "high-jump" | "pole-vault" | "cage" | "padding" | "rink-boards" | "mound" | "azuchi" | "targets" | "stands" | "wall-seats" | "roof" | "gallery" | "dais" | "banner" | "shrine" | "mat-edge" | "surrounds" | "officials" | "judges" | "deck" | "cage-fence" | "cage-posts", string>;
|
|
1008
|
+
parts: Record<"scoreboard" | "net" | "antennae" | "goalposts" | "netposts" | "hoop" | "goal" | "boards" | "stumps" | "pylons" | "flags" | "fence" | "backstop" | "foul-poles" | "table-legs" | "walls" | "starting-blocks" | "backstroke-flags" | "false-start-rope" | "springboards" | "platforms" | "judges-stand" | "hurdles" | "steeplechase" | "high-jump" | "pole-vault" | "cage" | "padding" | "rink-boards" | "mound" | "azuchi" | "targets" | "stands" | "wall-seats" | "roof" | "gallery" | "dais" | "banner" | "shrine" | "mat-edge" | "surrounds" | "officials" | "judges" | "deck" | "cage-fence" | "cage-posts" | "ring-ropes" | "ring-posts", string>;
|
|
1003
1009
|
};
|
|
1004
1010
|
/** The names of the zones that `zoneAt` answers with (rules.ts), by id. */
|
|
1005
1011
|
rules: Record<RuleId, string>;
|
package/dist/strings.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** The words of the package, by language. */
|
|
2
2
|
export const KYOGIJO_STRINGS = {
|
|
3
3
|
en: {
|
|
4
|
-
surface: { skating: "Skating rink", nfl: "NFL football field", cfl: "CFL football field", ifaf: "IFAF football field", nhl: "NHL hockey rink", nba: "NBA basketball court", mlb: "Baseball field", soccer: "Soccer pitch", curling: "Curling sheet", tennis: "Tennis court", volleyball: "Volleyball court", badminton: "Badminton court", pickleball: "Pickleball court", tabletennis: "Table tennis table", padel: "Padel court", squash: "Squash court", racquetball: "Racquetball court", sepaktakraw: "Sepak takraw court", teqball: "Teqball court", roundnet: "Roundnet court", netball: "Netball court", lacrosse: "Lacrosse field", rugby: "Rugby union field", afl: "Australian football ground", gaelic: "Gaelic football field", cricket: "Cricket ground", fieldhockey: "Field hockey pitch", handball: "Handball court", swimming: "Swimming pool", waterpolo: "Water polo field", diving: "Diving well", artisticswimming: "Artistic swimming pool", athletics: "Athletics track", judo: "Judo contest area", karate: "Karate competition area", kendo: "Kendo shiai-jo", sumo: "Sumo dohyō", kyudo: "Kyūdō range", dojo: "Dojo", mma: "MMA cage" },
|
|
4
|
+
surface: { skating: "Skating rink", nfl: "NFL football field", cfl: "CFL football field", ifaf: "IFAF football field", nhl: "NHL hockey rink", nba: "NBA basketball court", mlb: "Baseball field", soccer: "Soccer pitch", curling: "Curling sheet", tennis: "Tennis court", volleyball: "Volleyball court", badminton: "Badminton court", pickleball: "Pickleball court", tabletennis: "Table tennis table", padel: "Padel court", squash: "Squash court", racquetball: "Racquetball court", sepaktakraw: "Sepak takraw court", teqball: "Teqball court", roundnet: "Roundnet court", netball: "Netball court", lacrosse: "Lacrosse field", rugby: "Rugby union field", afl: "Australian football ground", gaelic: "Gaelic football field", cricket: "Cricket ground", fieldhockey: "Field hockey pitch", handball: "Handball court", swimming: "Swimming pool", waterpolo: "Water polo field", diving: "Diving well", artisticswimming: "Artistic swimming pool", athletics: "Athletics track", judo: "Judo contest area", karate: "Karate competition area", kendo: "Kendo shiai-jo", sumo: "Sumo dohyō", kyudo: "Kyūdō range", dojo: "Dojo", mma: "MMA cage", boxing: "Boxing ring" },
|
|
5
5
|
about: {
|
|
6
6
|
nfl: "an American football field, 120 by 53 and a third yards with its end zones, with a yard line every 5 yards, hash marks, numbers and goal posts",
|
|
7
7
|
cfl: "a Canadian football field, 150 by 65 yards with its 20-yard end zones, with a yard line every 5 yards, hash marks, numbers and goal posts on the goal lines",
|
|
@@ -43,6 +43,7 @@ export const KYOGIJO_STRINGS = {
|
|
|
43
43
|
kyudo: "a kyūdōjō for kinteki: a shajō with five shooting positions, 28 metres from the targets at the azuchi",
|
|
44
44
|
dojo: "a dojo of 20 jō of tatami",
|
|
45
45
|
mma: "an MMA cage: an eight-sided fenced area 9.14 metres (30 feet) across, on a platform 122 centimetres high",
|
|
46
|
+
boxing: "a boxing ring: a square of 6.1 metres (20 feet) inside the ropes, on a platform 122 centimetres high",
|
|
46
47
|
},
|
|
47
48
|
status: { final: "Final", "final-ot": "Final/OT", "final-so": "Final/SO", "final-aet": "Final/AET", "final-pens": "Final/Pens", live: "Live", half: "Halftime", "extra-time": "Extra time", "extra-end": "Extra end", penalties: "Penalties", postponed: "Postponed", tiebreak: "Tiebreak", "match-tiebreak": "Match tiebreak", retired: "Retired", walkover: "Walkover" },
|
|
48
49
|
endStatus: "End {n}",
|
|
@@ -232,6 +233,11 @@ export const KYOGIJO_STRINGS = {
|
|
|
232
233
|
mmaFloor: "at floor level",
|
|
233
234
|
mmaGates: "It has two gates, opposite each other.",
|
|
234
235
|
mmaSteps: "Steps lead up to the platform at each gate.",
|
|
236
|
+
boxing: "a boxing ring: a square of {size} metres ({feet} feet) inside four ropes, on a canvas with an apron {apron} centimetres wide beyond them and a padded post in each corner, {platform}",
|
|
237
|
+
boxingPlatform: "on a platform {height} centimetres high",
|
|
238
|
+
boxingFloor: "at floor level",
|
|
239
|
+
boxingCorners: "The corners are red and blue for the two boxers and white for the neutral ones.",
|
|
240
|
+
boxingSteps: "Three sets of steps lead up to the platform: one in each boxer's corner and one in a neutral corner.",
|
|
235
241
|
board: {
|
|
236
242
|
ippon: "Ippon", wazaari: "Waza-ari", yuko: "Yuko", shido: "Shido", senshu: "Senshu", chui: "Chui", points: "Points", kimarite: "Kimarite",
|
|
237
243
|
techniques: { men: "Men", kote: "Kote", do: "Dō", tsuki: "Tsuki", hansoku: "Hansoku" },
|
|
@@ -293,7 +299,7 @@ export const KYOGIJO_STRINGS = {
|
|
|
293
299
|
results: { touchdown: "touchdown", "field-goal": "field goal", "missed-field-goal": "missed field goal", punt: "punt", turnover: "turnover", interception: "interception", fumble: "fumble", downs: "turnover on downs", safety: "safety", "end-of-half": "end of the half" },
|
|
294
300
|
},
|
|
295
301
|
special: {
|
|
296
|
-
guest: { skating: "rink", nfl: "football field", cfl: "football field", ifaf: "football field", nhl: "rink", nba: "court", mlb: "baseball field", soccer: "pitch", curling: "sheet", tennis: "court", volleyball: "court", badminton: "court", pickleball: "court", tabletennis: "table", padel: "court", squash: "court", racquetball: "court", sepaktakraw: "court", teqball: "court", roundnet: "court", netball: "court", lacrosse: "field", rugby: "field", afl: "ground", gaelic: "field", cricket: "ground", fieldhockey: "pitch", handball: "court", swimming: "pool", waterpolo: "pool", diving: "well", artisticswimming: "pool", athletics: "track", judo: "contest area", karate: "competition area", kendo: "shiai-jo", sumo: "dohyō", kyudo: "range", dojo: "dojo", mma: "cage" },
|
|
302
|
+
guest: { skating: "rink", nfl: "football field", cfl: "football field", ifaf: "football field", nhl: "rink", nba: "court", mlb: "baseball field", soccer: "pitch", curling: "sheet", tennis: "court", volleyball: "court", badminton: "court", pickleball: "court", tabletennis: "table", padel: "court", squash: "court", racquetball: "court", sepaktakraw: "court", teqball: "court", roundnet: "court", netball: "court", lacrosse: "field", rugby: "field", afl: "ground", gaelic: "field", cricket: "ground", fieldhockey: "pitch", handball: "court", swimming: "pool", waterpolo: "pool", diving: "well", artisticswimming: "pool", athletics: "track", judo: "contest area", karate: "competition area", kendo: "shiai-jo", sumo: "dohyō", kyudo: "range", dojo: "dojo", mma: "cage", boxing: "ring" },
|
|
297
303
|
title: "{guest} in {host}",
|
|
298
304
|
game: "{event}, {date}.",
|
|
299
305
|
inside: "The {guest} lies wholly inside the outline of {host}.",
|
|
@@ -388,7 +394,7 @@ export const KYOGIJO_STRINGS = {
|
|
|
388
394
|
boundary: "Boundary", pitch: "Pitch", "bowling-crease": "Bowling crease", "popping-crease": "Popping crease", "return-crease": "Return crease", wicket: "Wicket", "thirty-yard-circle": "30-yard circle",
|
|
389
395
|
"twenty-three-line": "23-metre line", "shooting-circle": "Shooting circle", "penalty-spot": "Penalty spot", "broken-circle-line": "Broken line round the circle", "goal-area-line": "Goal-area line",
|
|
390
396
|
"finish-line": "Finish line", kerb: "Kerb", "lane-lines": "Lane lines", bend: "Bend", straight: "Straight", "infield-pitch": "Soccer pitch", "start-line": "Start line", breakline: "Breakline", "water-jump": "Water jump", "exchange-zone": "Takeover zone",
|
|
391
|
-
"referee-position": "Referee's place", "shiai-jo": "Shiai-jo", floorboard: "Floorboard", heri: "Heri, the mat's edge", "contest-area": "Contest area", "safety-area": "Safety area", "danger-zone": "Danger zone", "start-mark": "Start mark", "common-safe-zone": "Common safe zone", "free-zone": "Free zone", platform: "Platform", "technical-table": "Technical table", "centre-tape": "Centre tape", "kata-judges": "Judges, shomen side", "coach-chair": "Coach's chair", "kata-entry": "Entry and exit, opposite shomen", arena: "Arena floor", "competition-area": "Competition area", "boundary-band": "Boundary band", "start-mat": "Start mat", judge: "Judge", "between-areas": "Between the areas", "centre-cross": "Centre cross", "kaishi-sen": "Kaishi-sen", "outer-boundary": "Outer boundary", dohyo: "Dohyō", ring: "Ring", tawara: "Tawara", tokudawara: "Tokudawara", "shikiri-sen": "Shikiri-sen", "jano-me": "Jano-me", shajo: "Shajō", "shooting-position": "Shooting position", honza: "Honza", yamichi: "Yamichi", "yatori-michi": "Path for the arrows", azuchi: "Azuchi", mato: "Target", kamiza: "Kamiza", "cage-canvas": "Canvas", "cage-fence": "Fence", "cage-post": "Padded post", "cage-gate": "Gate", "cage-steps": "Steps", "cage-platform": "Platform", shimoza: "Shimoza", shinzen: "Shinzen", dais: "Dais, the seat of honour", banner: "Banner", entrance: "Entrance", window: "Window", tatami: "Tatami", wall: "Wall", "inner-lane": "Inner lane", "outer-lane": "Outer lane", "crossing-straight": "Crossing straight", "warm-up-lane": "Warm-up lane", padding: "Padding", infield: "Infield", "coaches-area": "Coaches' area", blocks: "Blocks", "track-line": "Line of the track", "start-lines": "Starting lines", ice: "Ice", "technical-panel": "Technical panel", referee: "Referee", "kiss-and-cry": "Kiss and cry", judges: "Judges", runway: "Runway", "take-off-board": "Take-off board", "landing-area": "Landing area", "throwing-circle": "Throwing circle", sector: "Landing sector", "stop-board": "Stop board", cage: "Cage", "throwing-arc": "Throwing arc", crossbar: "Crossbar", "landing-mat": "Landing mat", "run-up": "Run-up", "zero-line": "Zero line", box: "Box",
|
|
397
|
+
"referee-position": "Referee's place", "shiai-jo": "Shiai-jo", floorboard: "Floorboard", heri: "Heri, the mat's edge", "contest-area": "Contest area", "safety-area": "Safety area", "danger-zone": "Danger zone", "start-mark": "Start mark", "common-safe-zone": "Common safe zone", "free-zone": "Free zone", platform: "Platform", "technical-table": "Technical table", "centre-tape": "Centre tape", "kata-judges": "Judges, shomen side", "coach-chair": "Coach's chair", "kata-entry": "Entry and exit, opposite shomen", arena: "Arena floor", "competition-area": "Competition area", "boundary-band": "Boundary band", "start-mat": "Start mat", judge: "Judge", "between-areas": "Between the areas", "centre-cross": "Centre cross", "kaishi-sen": "Kaishi-sen", "outer-boundary": "Outer boundary", dohyo: "Dohyō", ring: "Ring", tawara: "Tawara", tokudawara: "Tokudawara", "shikiri-sen": "Shikiri-sen", "jano-me": "Jano-me", shajo: "Shajō", "shooting-position": "Shooting position", honza: "Honza", yamichi: "Yamichi", "yatori-michi": "Path for the arrows", azuchi: "Azuchi", mato: "Target", kamiza: "Kamiza", "cage-canvas": "Canvas", "cage-fence": "Fence", "cage-post": "Padded post", "cage-gate": "Gate", "cage-steps": "Steps", "cage-platform": "Platform", "ring-canvas": "Canvas", "ring-ropes": "Ropes", "ring-post": "Corner post", "ring-red-corner": "Red corner", "ring-blue-corner": "Blue corner", "ring-apron": "Apron", "ring-steps": "Steps", shimoza: "Shimoza", shinzen: "Shinzen", dais: "Dais, the seat of honour", banner: "Banner", entrance: "Entrance", window: "Window", tatami: "Tatami", wall: "Wall", "inner-lane": "Inner lane", "outer-lane": "Outer lane", "crossing-straight": "Crossing straight", "warm-up-lane": "Warm-up lane", padding: "Padding", infield: "Infield", "coaches-area": "Coaches' area", blocks: "Blocks", "track-line": "Line of the track", "start-lines": "Starting lines", ice: "Ice", "technical-panel": "Technical panel", referee: "Referee", "kiss-and-cry": "Kiss and cry", judges: "Judges", runway: "Runway", "take-off-board": "Take-off board", "landing-area": "Landing area", "throwing-circle": "Throwing circle", sector: "Landing sector", "stop-board": "Stop board", cage: "Cage", "throwing-arc": "Throwing arc", crossbar: "Crossbar", "landing-mat": "Landing mat", "run-up": "Run-up", "zero-line": "Zero line", box: "Box",
|
|
392
398
|
"seven-metre-line": "7-metre line", "four-metre-line": "4-metre line", "throw-off-area": "Throw-off area", "restraining-line": "Restraining line", "wing-line": "Wing line", "marking-area": "Marking area", "two-point-arc": "Two-point arc",
|
|
393
399
|
"lane-rope": "Lane rope", "lane-line": "Lane marking on the floor", "lane-end-cross": "Cross line at the end of the lane marking", "fifteen-metre-mark": "15 m mark", "touch-pad": "Touch panel", "starting-block": "Starting block", "backstroke-flags": "Backstroke flags", "false-start-rope": "False start rope", gutter: "Gutter",
|
|
394
400
|
"two-metre-line": "2 m line", "five-metre-mark": "5 m mark", "six-metre-line": "6 m line", "half-distance-line": "Half distance line", "re-entry-area": "Re-entry area", "referee-platform": "Referee platform", "official-table": "Official table", "substitution-area": "Substitution area",
|
|
@@ -408,7 +414,7 @@ export const KYOGIJO_STRINGS = {
|
|
|
408
414
|
"in-goal": "in-goal area", "twenty-two": "area between the try line and the 22-metre line", twenty: "area between the goal line and the 20-metre line", crease: "crease", "forward-fifty": "area inside the fifty metre arc", "centre-square": "centre square",
|
|
409
415
|
"large-rectangle": "large rectangle", pitch: "pitch", circle: "circle", "twenty-three": "23-metre area", "goal-area": "goal area",
|
|
410
416
|
"pool-end": "end of the pool, up to the 15 m mark", springboards: "springboards", platforms: "platforms", "centre-stage": "centre of the pool, the middle third",
|
|
411
|
-
"contest-area": "contest area", ring: "ring", shajo: "shajō", yamichi: "yamichi", azuchi: "azuchi", kamiza: "kamiza", cage: "cage", gate: "gate", "crossing-straight": "crossing straight", "first-bend": "first bend", "second-bend": "second bend", judges: "judges", "kiss-and-cry": "kiss and cry", bend: "bend", "home-straight": "finish straight", "back-straight": "back straight", finish: "finish line", start: "start", "high-jump": "high jump", "pole-vault": "pole vault", "long-jump": "long jump", "triple-jump": "triple jump", "shot-put": "shot put", "discus-throw": "discus throw", "hammer-throw": "hammer throw", "javelin-throw": "javelin throw", "water-jump": "water jump",
|
|
417
|
+
"contest-area": "contest area", ring: "ring", shajo: "shajō", yamichi: "yamichi", azuchi: "azuchi", kamiza: "kamiza", cage: "cage", gate: "gate", ropes: "ring inside the ropes", corner: "corner", "crossing-straight": "crossing straight", "first-bend": "first bend", "second-bend": "second bend", judges: "judges", "kiss-and-cry": "kiss and cry", bend: "bend", "home-straight": "finish straight", "back-straight": "back straight", finish: "finish line", start: "start", "high-jump": "high jump", "pole-vault": "pole vault", "long-jump": "long jump", "triple-jump": "triple jump", "shot-put": "shot put", "discus-throw": "discus throw", "hammer-throw": "hammer throw", "javelin-throw": "javelin throw", "water-jump": "water jump",
|
|
412
418
|
},
|
|
413
419
|
folded: {
|
|
414
420
|
top: "Top house", bottom: "Bottom house", left: "Left house", right: "Right house",
|
|
@@ -438,7 +444,7 @@ export const KYOGIJO_STRINGS = {
|
|
|
438
444
|
announce: "{name} view", announceAngle: "Turned to {yaw} degrees, seen from {pitch} degrees above the floor.",
|
|
439
445
|
flat: "This browser cannot draw the 3D view, so the flat drawing is shown.",
|
|
440
446
|
standing: "Standing on it, in the 3D view: {list}.", item: "{name} {h}", itemSag: "{name} {h} at the posts, {low} at the middle",
|
|
441
|
-
parts: { scoreboard: "scoreboard (lower edge)", net: "net", antennae: "antennae", goalposts: "goal posts", netposts: "net posts", hoop: "baskets", goal: "goals", boards: "boards and glass", stumps: "stumps", pylons: "pylons", flags: "corner flags", fence: "fence", backstop: "backstop", "foul-poles": "foul poles", "table-legs": "table top", walls: "walls", "starting-blocks": "starting blocks", "backstroke-flags": "backstroke flags", "false-start-rope": "false start rope", springboards: "springboards", platforms: "platforms", "judges-stand": "judges' stand", hurdles: "hurdles", steeplechase: "steeplechase barriers", "high-jump": "high jump uprights and bar", "pole-vault": "pole vault uprights and bar", cage: "discus and hammer cage", padding: "padding", "rink-boards": "boards", mound: "clay mound", azuchi: "azuchi", targets: "targets", stands: "stands", "wall-seats": "seats on top of the wall", roof: "roof", gallery: "gallery", dais: "dais", banner: "banner", shrine: "shrine", "mat-edge": "mat thickness", surrounds: "surrounds", officials: "umpires' chairs and score tables", judges: "name cards on the judges' table", deck: "platform", "cage-fence": "fence", "cage-posts": "padded posts" },
|
|
447
|
+
parts: { scoreboard: "scoreboard (lower edge)", net: "net", antennae: "antennae", goalposts: "goal posts", netposts: "net posts", hoop: "baskets", goal: "goals", boards: "boards and glass", stumps: "stumps", pylons: "pylons", flags: "corner flags", fence: "fence", backstop: "backstop", "foul-poles": "foul poles", "table-legs": "table top", walls: "walls", "starting-blocks": "starting blocks", "backstroke-flags": "backstroke flags", "false-start-rope": "false start rope", springboards: "springboards", platforms: "platforms", "judges-stand": "judges' stand", hurdles: "hurdles", steeplechase: "steeplechase barriers", "high-jump": "high jump uprights and bar", "pole-vault": "pole vault uprights and bar", cage: "discus and hammer cage", padding: "padding", "rink-boards": "boards", mound: "clay mound", azuchi: "azuchi", targets: "targets", stands: "stands", "wall-seats": "seats on top of the wall", roof: "roof", gallery: "gallery", dais: "dais", banner: "banner", shrine: "shrine", "mat-edge": "mat thickness", surrounds: "surrounds", officials: "umpires' chairs and score tables", judges: "name cards on the judges' table", deck: "platform", "cage-fence": "fence", "cage-posts": "padded posts", "ring-ropes": "ropes", "ring-posts": "corner posts" },
|
|
442
448
|
},
|
|
443
449
|
rules: {
|
|
444
450
|
"defensive-zone": "Defensive zone",
|
|
@@ -533,7 +539,7 @@ export const KYOGIJO_STRINGS = {
|
|
|
533
539
|
// (ISU Rule 281.1a; the JOC's usage). Television's インコース, アウトコース, バックストレート and ホームストレート are aliases in docs/skating.md. No rule book words were found for the figure skating
|
|
534
540
|
// furniture (ジャッジ席, テクニカルパネル, レフェリー, キス・アンド・クライ): they are the usual words.
|
|
535
541
|
ja: {
|
|
536
|
-
surface: { skating: "スケートリンク", nfl: "NFLのフィールド", cfl: "CFLのフィールド", ifaf: "IFAFのフィールド", nhl: "NHLのアイスホッケーリンク", nba: "NBAのバスケットボールコート", mlb: "野球場", soccer: "サッカーのピッチ", curling: "カーリングのシート", tennis: "テニスコート", volleyball: "バレーボールコート", badminton: "バドミントンコート", pickleball: "ピックルボールコート", tabletennis: "卓球台", padel: "パデルコート", squash: "スカッシュコート", racquetball: "ラケットボールコート", sepaktakraw: "セパタクローコート", teqball: "テックボールコート", roundnet: "ラウンドネットコート", netball: "ネットボールコート", lacrosse: "ラクロスのフィールド", rugby: "ラグビーユニオンのグラウンド", afl: "オーストラリアンフットボールのグラウンド", gaelic: "ゲーリック・フットボールのフィールド", cricket: "クリケットのグラウンド", fieldhockey: "フィールドホッケーのピッチ", handball: "ハンドボールのコート", swimming: "競泳プール", waterpolo: "水球のフィールド", diving: "飛込プール", artisticswimming: "アーティスティックスイミングのプール", athletics: "陸上競技のトラック", judo: "柔道の試合場", karate: "空手道の試合場", kendo: "剣道の試合場", sumo: "相撲の土俵", kyudo: "弓道場", dojo: "道場", mma: "総合格闘技のケージ" },
|
|
542
|
+
surface: { skating: "スケートリンク", nfl: "NFLのフィールド", cfl: "CFLのフィールド", ifaf: "IFAFのフィールド", nhl: "NHLのアイスホッケーリンク", nba: "NBAのバスケットボールコート", mlb: "野球場", soccer: "サッカーのピッチ", curling: "カーリングのシート", tennis: "テニスコート", volleyball: "バレーボールコート", badminton: "バドミントンコート", pickleball: "ピックルボールコート", tabletennis: "卓球台", padel: "パデルコート", squash: "スカッシュコート", racquetball: "ラケットボールコート", sepaktakraw: "セパタクローコート", teqball: "テックボールコート", roundnet: "ラウンドネットコート", netball: "ネットボールコート", lacrosse: "ラクロスのフィールド", rugby: "ラグビーユニオンのグラウンド", afl: "オーストラリアンフットボールのグラウンド", gaelic: "ゲーリック・フットボールのフィールド", cricket: "クリケットのグラウンド", fieldhockey: "フィールドホッケーのピッチ", handball: "ハンドボールのコート", swimming: "競泳プール", waterpolo: "水球のフィールド", diving: "飛込プール", artisticswimming: "アーティスティックスイミングのプール", athletics: "陸上競技のトラック", judo: "柔道の試合場", karate: "空手道の試合場", kendo: "剣道の試合場", sumo: "相撲の土俵", kyudo: "弓道場", dojo: "道場", mma: "総合格闘技のケージ", boxing: "ボクシングのリング" },
|
|
537
543
|
about: {
|
|
538
544
|
nfl: "アメリカンフットボールのフィールド。エンドゾーンを含めて120×53⅓ヤードで、5ヤードごとのヤードライン、ハッシュマーク、ヤードナンバー、ゴールポストがあります",
|
|
539
545
|
cfl: "カナディアンフットボールのフィールド。20ヤードのエンドゾーンを含めて150×65ヤードで、5ヤードごとのヤードライン、ハッシュマーク、ヤードナンバー、ゴールライン上のゴールポストがあります",
|
|
@@ -575,6 +581,7 @@ export const KYOGIJO_STRINGS = {
|
|
|
575
581
|
kyudo: "近的の弓道場。射位が5か所ある射場から、安土の的まで28mあります",
|
|
576
582
|
dojo: "20畳の道場",
|
|
577
583
|
mma: "総合格闘技のケージ。金網で囲まれた、対辺間の距離が30フィート(約9.1m)の八角形で、高さ122cmの台の上にあります",
|
|
584
|
+
boxing: "ボクシングのリング。ロープの内側は一辺20フィート(約6.1m)の正方形で、リングは高さ122cmの台の上にあります",
|
|
578
585
|
},
|
|
579
586
|
status: { final: "試合終了", "final-ot": "試合終了(延長)", "final-so": "試合終了(SO)", "final-aet": "試合終了(延長戦)", "final-pens": "試合終了(PK戦)", live: "試合中", half: "ハーフタイム", "extra-time": "延長戦", "extra-end": "エキストラエンド", penalties: "PK戦", postponed: "延期", tiebreak: "タイブレーク", "match-tiebreak": "マッチタイブレーク", retired: "途中棄権", walkover: "不戦勝" },
|
|
580
587
|
endStatus: "第{n}エンド",
|
|
@@ -774,6 +781,11 @@ export const KYOGIJO_STRINGS = {
|
|
|
774
781
|
mmaFloor: "ケージは床と同じ高さにあります",
|
|
775
782
|
mmaGates: "出入口は向かい合う2か所にあります。",
|
|
776
783
|
mmaSteps: "各出入口に、台へ上がる階段があります。",
|
|
784
|
+
boxing: "ボクシングのリング。キャンバスを張った床は、ロープの内側が一辺{feet}フィート(約{size}m)の正方形で、4本のロープで囲まれています。ロープの外側には幅{apron}cmのエプロンが続き、四隅にパッド付きのコーナーポストがあります。{platform}",
|
|
785
|
+
boxingPlatform: "リングは高さ{height}cmの台の上にあります",
|
|
786
|
+
boxingFloor: "リングは床と同じ高さにあります",
|
|
787
|
+
boxingCorners: "コーナーの色は、ボクサー用が赤と青、中立コーナーが白です。",
|
|
788
|
+
boxingSteps: "台へ上がる階段は3か所で、各ボクサーのコーナーに1か所ずつと、中立コーナーに1か所あります。",
|
|
777
789
|
board: {
|
|
778
790
|
ippon: "一本", wazaari: "技あり", yuko: "有効", shido: "指導", senshu: "先取", chui: "注意", points: "ポイント", kimarite: "決まり手",
|
|
779
791
|
techniques: { men: "面", kote: "小手", do: "胴", tsuki: "突き", hansoku: "反則" },
|
|
@@ -835,7 +847,7 @@ export const KYOGIJO_STRINGS = {
|
|
|
835
847
|
results: { touchdown: "タッチダウン", "field-goal": "フィールドゴール", "missed-field-goal": "フィールドゴール失敗", punt: "パント", turnover: "ターンオーバー", interception: "インターセプト", fumble: "ファンブル", downs: "ダウン更新失敗によるターンオーバー", safety: "セーフティ", "end-of-half": "ハーフ終了" },
|
|
836
848
|
},
|
|
837
849
|
special: {
|
|
838
|
-
guest: { skating: "リンク", nfl: "アメリカンフットボールのフィールド", cfl: "カナディアンフットボールのフィールド", ifaf: "アメリカンフットボールのフィールド", nhl: "リンク", nba: "コート", mlb: "野球のグラウンド", soccer: "ピッチ", curling: "シート", tennis: "コート", volleyball: "コート", badminton: "コート", pickleball: "コート", tabletennis: "卓球台", padel: "コート", squash: "コート", racquetball: "コート", sepaktakraw: "コート", teqball: "コート", roundnet: "コート", netball: "コート", lacrosse: "フィールド", rugby: "グラウンド", afl: "グラウンド", gaelic: "フィールド", cricket: "グラウンド", fieldhockey: "ピッチ", handball: "コート", swimming: "プール", waterpolo: "プール", diving: "プール", artisticswimming: "プール", athletics: "トラック", judo: "試合場", karate: "試合場", kendo: "試合場", sumo: "土俵", kyudo: "弓道場", dojo: "道場", mma: "ケージ" },
|
|
850
|
+
guest: { skating: "リンク", nfl: "アメリカンフットボールのフィールド", cfl: "カナディアンフットボールのフィールド", ifaf: "アメリカンフットボールのフィールド", nhl: "リンク", nba: "コート", mlb: "野球のグラウンド", soccer: "ピッチ", curling: "シート", tennis: "コート", volleyball: "コート", badminton: "コート", pickleball: "コート", tabletennis: "卓球台", padel: "コート", squash: "コート", racquetball: "コート", sepaktakraw: "コート", teqball: "コート", roundnet: "コート", netball: "コート", lacrosse: "フィールド", rugby: "グラウンド", afl: "グラウンド", gaelic: "フィールド", cricket: "グラウンド", fieldhockey: "ピッチ", handball: "コート", swimming: "プール", waterpolo: "プール", diving: "プール", artisticswimming: "プール", athletics: "トラック", judo: "試合場", karate: "試合場", kendo: "試合場", sumo: "土俵", kyudo: "弓道場", dojo: "道場", mma: "ケージ", boxing: "リング" },
|
|
839
851
|
title: "{host}の中の{guest}",
|
|
840
852
|
game: "{event}、{date}。",
|
|
841
853
|
inside: "{guest}全体が{host}の輪郭の内側に収まっています。",
|
|
@@ -929,7 +941,7 @@ export const KYOGIJO_STRINGS = {
|
|
|
929
941
|
"distance-line": "距離を示すライン", "large-rectangle": "大きい長方形", "small-rectangle": "小さい長方形", "thirteen-metre-arc": "13メートルアーク", "forty-metre-arc": "40メートルアーク", "penalty-point": "ペナルティーマーク",
|
|
930
942
|
boundary: "バウンダリー", pitch: "ピッチ", "bowling-crease": "ボウリングクリース", "popping-crease": "ポッピングクリース", "return-crease": "リターンクリース", wicket: "ウィケット", "thirty-yard-circle": "30ヤードサークル",
|
|
931
943
|
"twenty-three-line": "23メートルライン", "shooting-circle": "シューティングサークル", "penalty-spot": "ペナルティースポット", "broken-circle-line": "サークルを囲む破線", "goal-area-line": "ゴールエリアライン",
|
|
932
|
-
"referee-position": "主審の位置", "shiai-jo": "試合場", floorboard: "床板", heri: "畳縁", "contest-area": "試合場内", "safety-area": "安全地帯", "danger-zone": "危険地帯", "start-mark": "開始線", "common-safe-zone": "共通の安全地帯", "free-zone": "フリーゾーン", platform: "畳の台", "technical-table": "係員席", "centre-tape": "中央のテープ", "kata-judges": "審判員席(正面側)", "coach-chair": "コーチ席", "kata-entry": "入退場口(正面の反対側)", arena: "アリーナの床", "competition-area": "試合場", "boundary-band": "境界の帯", "start-mat": "開始位置のマット", judge: "副審", "between-areas": "試合場の間", "centre-cross": "中央の×印", "kaishi-sen": "開始線", "outer-boundary": "場外の余地", dohyo: "土俵", ring: "土俵の円", tawara: "俵", tokudawara: "徳俵", "shikiri-sen": "仕切り線", "jano-me": "蛇の目", shajo: "射場", "shooting-position": "射位", honza: "本座", yamichi: "矢道", "yatori-michi": "矢取道", azuchi: "安土", mato: "的", kamiza: "上座", "cage-canvas": "キャンバス", "cage-fence": "金網", "cage-post": "パッド付き支柱", "cage-gate": "出入口", "cage-steps": "階段", "cage-platform": "台", shimoza: "下座", shinzen: "神棚", dais: "上座の台", banner: "垂れ幕", entrance: "入口", window: "窓", tatami: "畳", wall: "壁", "inner-lane": "インレーン", "outer-lane": "アウトレーン", "crossing-straight": "交差ストレート", "warm-up-lane": "ウォームアップレーン", padding: "防護マット", infield: "インフィールド", "coaches-area": "コーチエリア", blocks: "ブロック", "track-line": "トラックのライン", "start-lines": "スタートライン", ice: "氷面", "technical-panel": "テクニカルパネル", referee: "レフェリー", "kiss-and-cry": "キス・アンド・クライ", judges: "ジャッジ席", runway: "助走路", "take-off-board": "踏切板", "landing-area": "砂場", "throwing-circle": "投てきサークル", sector: "着地場所", "stop-board": "足留材", cage: "囲い", "throwing-arc": "スターティング・ライン", crossbar: "バー", "landing-mat": "着地マット", "run-up": "助走路", "zero-line": "ゼロライン", box: "ボックス",
|
|
944
|
+
"referee-position": "主審の位置", "shiai-jo": "試合場", floorboard: "床板", heri: "畳縁", "contest-area": "試合場内", "safety-area": "安全地帯", "danger-zone": "危険地帯", "start-mark": "開始線", "common-safe-zone": "共通の安全地帯", "free-zone": "フリーゾーン", platform: "畳の台", "technical-table": "係員席", "centre-tape": "中央のテープ", "kata-judges": "審判員席(正面側)", "coach-chair": "コーチ席", "kata-entry": "入退場口(正面の反対側)", arena: "アリーナの床", "competition-area": "試合場", "boundary-band": "境界の帯", "start-mat": "開始位置のマット", judge: "副審", "between-areas": "試合場の間", "centre-cross": "中央の×印", "kaishi-sen": "開始線", "outer-boundary": "場外の余地", dohyo: "土俵", ring: "土俵の円", tawara: "俵", tokudawara: "徳俵", "shikiri-sen": "仕切り線", "jano-me": "蛇の目", shajo: "射場", "shooting-position": "射位", honza: "本座", yamichi: "矢道", "yatori-michi": "矢取道", azuchi: "安土", mato: "的", kamiza: "上座", "cage-canvas": "キャンバス", "cage-fence": "金網", "cage-post": "パッド付き支柱", "cage-gate": "出入口", "cage-steps": "階段", "cage-platform": "台", "ring-canvas": "キャンバス", "ring-ropes": "ロープ", "ring-post": "コーナーポスト", "ring-red-corner": "赤コーナー", "ring-blue-corner": "青コーナー", "ring-apron": "エプロン", "ring-steps": "階段", shimoza: "下座", shinzen: "神棚", dais: "上座の台", banner: "垂れ幕", entrance: "入口", window: "窓", tatami: "畳", wall: "壁", "inner-lane": "インレーン", "outer-lane": "アウトレーン", "crossing-straight": "交差ストレート", "warm-up-lane": "ウォームアップレーン", padding: "防護マット", infield: "インフィールド", "coaches-area": "コーチエリア", blocks: "ブロック", "track-line": "トラックのライン", "start-lines": "スタートライン", ice: "氷面", "technical-panel": "テクニカルパネル", referee: "レフェリー", "kiss-and-cry": "キス・アンド・クライ", judges: "ジャッジ席", runway: "助走路", "take-off-board": "踏切板", "landing-area": "砂場", "throwing-circle": "投てきサークル", sector: "着地場所", "stop-board": "足留材", cage: "囲い", "throwing-arc": "スターティング・ライン", crossbar: "バー", "landing-mat": "着地マット", "run-up": "助走路", "zero-line": "ゼロライン", box: "ボックス",
|
|
933
945
|
"finish-line": "フィニッシュライン", kerb: "縁石", "lane-lines": "レーンライン", bend: "曲走路", straight: "直走路", "infield-pitch": "サッカーのピッチ", "start-line": "スタートライン", breakline: "ブレイクライン", "water-jump": "水濠", "exchange-zone": "テークオーバーゾーン",
|
|
934
946
|
"seven-metre-line": "7mスローライン", "four-metre-line": "4mライン", "throw-off-area": "スローオフエリア", "restraining-line": "リストレイニングライン", "wing-line": "ウイングライン", "marking-area": "マーキングエリア", "two-point-arc": "2ポイントアーク",
|
|
935
947
|
"lane-rope": "レーンロープ", "lane-line": "床面のレーンライン", "lane-end-cross": "クロスライン", "fifteen-metre-mark": "15mマーク", "touch-pad": "タッチ板", "starting-block": "スタート台", "backstroke-flags": "背泳ぎ用フラッグ", "false-start-rope": "フォルススタートロープ", gutter: "ガター",
|
|
@@ -950,7 +962,7 @@ export const KYOGIJO_STRINGS = {
|
|
|
950
962
|
"in-goal": "インゴール", "twenty-two": "トライラインから22メートルラインまでのエリア", twenty: "ゴールラインから20メートルラインまでのエリア", crease: "クリース", "forward-fifty": "50メートルアークの内側", "centre-square": "センタースクエア",
|
|
951
963
|
"large-rectangle": "大きい長方形", pitch: "ピッチ", circle: "サークル", "twenty-three": "23メートルエリア", "goal-area": "ゴールエリア",
|
|
952
964
|
"pool-end": "プールの端(15mの目印まで)", springboards: "飛板", platforms: "固定台", "centre-stage": "プールの中央(真ん中の3分の1)",
|
|
953
|
-
"contest-area": "試合場内", ring: "土俵の円", shajo: "射場", yamichi: "矢道", azuchi: "安土", kamiza: "上座", cage: "ケージ", gate: "出入口", "crossing-straight": "交差ストレート", "first-bend": "第1カーブ", "second-bend": "第2カーブ", judges: "ジャッジ席", "kiss-and-cry": "キス・アンド・クライ", bend: "曲走路", "home-straight": "メイン側直走路", "back-straight": "バック・ストレート", finish: "フィニッシュライン", start: "スタート", "high-jump": "走高跳", "pole-vault": "棒高跳", "long-jump": "走幅跳", "triple-jump": "三段跳", "shot-put": "砲丸投", "discus-throw": "円盤投", "hammer-throw": "ハンマー投", "javelin-throw": "やり投", "water-jump": "水濠",
|
|
965
|
+
"contest-area": "試合場内", ring: "土俵の円", shajo: "射場", yamichi: "矢道", azuchi: "安土", kamiza: "上座", cage: "ケージ", gate: "出入口", ropes: "ロープの内側", corner: "コーナー", "crossing-straight": "交差ストレート", "first-bend": "第1カーブ", "second-bend": "第2カーブ", judges: "ジャッジ席", "kiss-and-cry": "キス・アンド・クライ", bend: "曲走路", "home-straight": "メイン側直走路", "back-straight": "バック・ストレート", finish: "フィニッシュライン", start: "スタート", "high-jump": "走高跳", "pole-vault": "棒高跳", "long-jump": "走幅跳", "triple-jump": "三段跳", "shot-put": "砲丸投", "discus-throw": "円盤投", "hammer-throw": "ハンマー投", "javelin-throw": "やり投", "water-jump": "水濠",
|
|
954
966
|
},
|
|
955
967
|
folded: {
|
|
956
968
|
top: "上のハウス", bottom: "下のハウス", left: "左のハウス", right: "右のハウス",
|
|
@@ -980,7 +992,7 @@ export const KYOGIJO_STRINGS = {
|
|
|
980
992
|
announce: "{name}の視点", announceAngle: "向きは{yaw}度、見下ろす角度は{pitch}度です。",
|
|
981
993
|
flat: "このブラウザーでは3D表示ができないため、平面の図を表示しています。",
|
|
982
994
|
standing: "3D表示で立って見えるもの:{list}。", item: "{name} {h}", itemSag: "{name} 支柱の位置で{h}(中央は{low})",
|
|
983
|
-
parts: { scoreboard: "スコアボードの下端", net: "ネット", antennae: "アンテナ", goalposts: "ゴールポスト", netposts: "支柱", hoop: "バスケットゴール", goal: "ゴール", boards: "ボードとガラス", stumps: "ウィケットのスタンプ", pylons: "パイロン", flags: "コーナーフラッグ", fence: "外野フェンス", backstop: "バックネット", "foul-poles": "ファウルポール", "table-legs": "天板", walls: "壁", "starting-blocks": "スタート台", "backstroke-flags": "背泳ぎ用フラッグ", "false-start-rope": "フォルススタートロープ", springboards: "飛板", platforms: "固定台", "judges-stand": "ジャッジ台", hurdles: "ハードル", steeplechase: "障害物", "high-jump": "走高跳の支柱とバー", "pole-vault": "棒高跳の支柱とバー", cage: "円盤投・ハンマー投の囲い", padding: "防護マット", "rink-boards": "フェンス", mound: "土の台", azuchi: "安土", targets: "的", stands: "スタンド", "wall-seats": "壁の上の観客席", roof: "屋根", gallery: "見学席", dais: "上座の台", banner: "垂れ幕", shrine: "神棚", "mat-edge": "畳の厚み", surrounds: "競技エリアのフェンス", officials: "審判席と記録台", judges: "審判員席の名札", deck: "台", "cage-fence": "金網", "cage-posts": "パッド付き支柱" },
|
|
995
|
+
parts: { scoreboard: "スコアボードの下端", net: "ネット", antennae: "アンテナ", goalposts: "ゴールポスト", netposts: "支柱", hoop: "バスケットゴール", goal: "ゴール", boards: "ボードとガラス", stumps: "ウィケットのスタンプ", pylons: "パイロン", flags: "コーナーフラッグ", fence: "外野フェンス", backstop: "バックネット", "foul-poles": "ファウルポール", "table-legs": "天板", walls: "壁", "starting-blocks": "スタート台", "backstroke-flags": "背泳ぎ用フラッグ", "false-start-rope": "フォルススタートロープ", springboards: "飛板", platforms: "固定台", "judges-stand": "ジャッジ台", hurdles: "ハードル", steeplechase: "障害物", "high-jump": "走高跳の支柱とバー", "pole-vault": "棒高跳の支柱とバー", cage: "円盤投・ハンマー投の囲い", padding: "防護マット", "rink-boards": "フェンス", mound: "土の台", azuchi: "安土", targets: "的", stands: "スタンド", "wall-seats": "壁の上の観客席", roof: "屋根", gallery: "見学席", dais: "上座の台", banner: "垂れ幕", shrine: "神棚", "mat-edge": "畳の厚み", surrounds: "競技エリアのフェンス", officials: "審判席と記録台", judges: "審判員席の名札", deck: "台", "cage-fence": "金網", "cage-posts": "パッド付き支柱", "ring-ropes": "ロープ", "ring-posts": "コーナーポスト" },
|
|
984
996
|
},
|
|
985
997
|
rules: {
|
|
986
998
|
"defensive-zone": "ディフェンディングゾーン",
|
package/dist/turn.kit.d.ts
CHANGED
|
@@ -37,7 +37,7 @@ export interface Plane {
|
|
|
37
37
|
fadeAt?: number;
|
|
38
38
|
}
|
|
39
39
|
/** What stands on the surface as a thing a reader would name: a net, a basket, a goal, a pair of posts. */
|
|
40
|
-
export type UprightKind = "scoreboard" | "net" | "antennae" | "goalposts" | "netposts" | "hoop" | "goal" | "boards" | "stumps" | "pylons" | "flags" | "fence" | "backstop" | "foul-poles" | "table-legs" | "walls" | "starting-blocks" | "backstroke-flags" | "false-start-rope" | "springboards" | "platforms" | "judges-stand" | "hurdles" | "steeplechase" | "high-jump" | "pole-vault" | "cage" | "padding" | "rink-boards" | "mound" | "azuchi" | "targets" | "stands" | "wall-seats" | "roof" | "gallery" | "dais" | "banner" | "shrine" | "mat-edge" | "surrounds" | "officials" | "judges" | "deck" | "cage-fence" | "cage-posts";
|
|
40
|
+
export type UprightKind = "scoreboard" | "net" | "antennae" | "goalposts" | "netposts" | "hoop" | "goal" | "boards" | "stumps" | "pylons" | "flags" | "fence" | "backstop" | "foul-poles" | "table-legs" | "walls" | "starting-blocks" | "backstroke-flags" | "false-start-rope" | "springboards" | "platforms" | "judges-stand" | "hurdles" | "steeplechase" | "high-jump" | "pole-vault" | "cage" | "padding" | "rink-boards" | "mound" | "azuchi" | "targets" | "stands" | "wall-seats" | "roof" | "gallery" | "dais" | "banner" | "shrine" | "mat-edge" | "surrounds" | "officials" | "judges" | "deck" | "cage-fence" | "cage-posts" | "ring-ropes" | "ring-posts";
|
|
41
41
|
/** A thing that stands on the surface: where, how high, and the planes it is made of. */
|
|
42
42
|
export interface Upright {
|
|
43
43
|
id: string;
|
package/dist/turn.style.js
CHANGED
|
@@ -36,6 +36,11 @@ export const KYOGIJO_TURN_STYLE = `
|
|
|
36
36
|
.ky-turn .u-clay{fill:var(--ky-up-clay)}
|
|
37
37
|
.ky-turn .u-cagepad{fill:var(--ky-up-cagepad)}
|
|
38
38
|
.ky-turn .u-gateframe{stroke:var(--ky-up-cagepad)}
|
|
39
|
+
.ky-turn .u-corner-red{fill:var(--ky-red,#b32a2f)}
|
|
40
|
+
.ky-turn .u-corner-blue{fill:var(--ky-blue,#2a5db0)}
|
|
41
|
+
.ky-turn .u-corner-white{fill:#f4f1e8}
|
|
42
|
+
.ky-turn .u-rope{fill:var(--ky-bud-rope,#f4f1e8)}
|
|
43
|
+
.ky-turn .u-rope-tie{fill:color-mix(in srgb,var(--ky-bud-rope,#f4f1e8) 60%,#808080)}
|
|
39
44
|
.ky-turn .u-deck-side{fill:color-mix(in srgb,var(--ky-bud-floor,#43484e) 70%,#000)}
|
|
40
45
|
.ky-turn .u-step{fill:color-mix(in srgb,var(--ky-bud-floor,#43484e) 76%,#fff)}
|
|
41
46
|
.ky-turn .u-step-side{fill:color-mix(in srgb,var(--ky-bud-floor,#43484e) 58%,#000)}
|
package/dist/types.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export type { PoolSport, PoolStyle };
|
|
|
17
17
|
/** The budō: the contest areas of judo and karate, the kendo shiai-jo, the sumo dohyō, the kyūdōjō, and a dojo of tatami. */
|
|
18
18
|
export type BudoSport = "judo" | "karate" | "kendo" | "sumo" | "kyudo" | "dojo";
|
|
19
19
|
/** The combat sports' rings, cages and mats, drawn by the same engine as the budō: the MMA cage (eight-sided, as a generic cage), and as they are added the boxing ring, the wrestling mats and the professional wrestling ring. */
|
|
20
|
-
export type CombatSport = "mma";
|
|
20
|
+
export type CombatSport = "mma" | "boxing";
|
|
21
21
|
export type { BudoStyle, DojoSpec, BudoScore };
|
|
22
22
|
/** The surfaces: three football fields, a rink, a court, a ballpark, a soccer pitch, a curling sheet, twelve net, racket and court sports (tennis, volleyball, badminton, pickleball, table tennis, padel, squash, racquetball, sepak takraw, teqball, roundnet and netball), four pools (swimming, water polo, diving and artistic swimming), seven field sports (lacrosse, rugby, Australian football, Gaelic football and hurling, cricket, field hockey and handball) and the athletics stadium (the 400 m track with its infield, and the covered 200 m track). */
|
|
23
23
|
export type Sport = "nfl" | "cfl" | "ifaf" | "nhl" | "nba" | "mlb" | "soccer" | "curling" | "tennis" | "volleyball" | "badminton" | "pickleball" | "tabletennis" | "padel" | "squash" | "racquetball" | "sepaktakraw" | "teqball" | "roundnet" | "netball" | PoolSport | FieldSport | "athletics" | "skating" | BudoSport | CombatSport;
|
|
@@ -321,7 +321,7 @@ export interface CrowdOptions {
|
|
|
321
321
|
* `penalty-area`. Baseball: `infield`, `outfield`. The net sports: `half-court`. Curling: `sheet`, `half`, `house`, `folded`. Rugby: `half`, `twenty-two` (union) or `twenty` (league), `in-goal`. Lacrosse: `half`, `crease`. Australian football: `half`, `forward-fifty`, `centre-square`.
|
|
322
322
|
* Gaelic games: `half`, `large-rectangle`. Cricket: `pitch`, `circle`. Field hockey: `half`, `circle`, `twenty-three`. Handball: `half`, `goal-area`. Swimming: `half`, `pool-end`. Water polo: `half`, `goal-area`. Diving: `springboards`, `platforms`. Artistic swimming: `half`, `centre-stage`. Judo and karate: `contest-area`, `start`. Sumo: `ring`. Kyudo: `shajo`, `yamichi`, `azuchi`. Dojo: `kamiza`, `half`. Athletics: `bend`, `home-straight`, `back-straight`, `finish`, `start`, `infield`, a field event (`high-jump`, `pole-vault`, `long-jump`, `triple-jump`, `shot-put`, `discus-throw`, `hammer-throw`, `javelin-throw`) and `water-jump`. `RANGES` lists them for each sport.
|
|
323
323
|
*/
|
|
324
|
-
export type RangeName = "red-zone" | "between-the-20s" | "end-zone" | "field-of-play" | "own-half" | "opponent-half" | "offensive-zone" | "defensive-zone" | "neutral-zone" | "half" | "half-court" | "paint" | "final-third" | "defensive-third" | "middle-third" | "penalty-area" | "infield" | "outfield" | "sheet" | "house" | "folded" | "in-goal" | "twenty-two" | "twenty" | "crease" | "forward-fifty" | "centre-square" | "large-rectangle" | "pitch" | "circle" | "twenty-three" | "goal-area" | "pool-end" | "springboards" | "platforms" | "centre-stage" | "bend" | "home-straight" | "back-straight" | "finish" | "start" | "infield" | "high-jump" | "pole-vault" | "long-jump" | "triple-jump" | "shot-put" | "discus-throw" | "hammer-throw" | "javelin-throw" | "water-jump" | "crossing-straight" | "first-bend" | "second-bend" | "judges" | "kiss-and-cry" | "contest-area" | "ring" | "shajo" | "yamichi" | "azuchi" | "kamiza" | "cage" | "gate";
|
|
324
|
+
export type RangeName = "red-zone" | "between-the-20s" | "end-zone" | "field-of-play" | "own-half" | "opponent-half" | "offensive-zone" | "defensive-zone" | "neutral-zone" | "half" | "half-court" | "paint" | "final-third" | "defensive-third" | "middle-third" | "penalty-area" | "infield" | "outfield" | "sheet" | "house" | "folded" | "in-goal" | "twenty-two" | "twenty" | "crease" | "forward-fifty" | "centre-square" | "large-rectangle" | "pitch" | "circle" | "twenty-three" | "goal-area" | "pool-end" | "springboards" | "platforms" | "centre-stage" | "bend" | "home-straight" | "back-straight" | "finish" | "start" | "infield" | "high-jump" | "pole-vault" | "long-jump" | "triple-jump" | "shot-put" | "discus-throw" | "hammer-throw" | "javelin-throw" | "water-jump" | "crossing-straight" | "first-bend" | "second-bend" | "judges" | "kiss-and-cry" | "contest-area" | "ring" | "shajo" | "yamichi" | "azuchi" | "kamiza" | "cage" | "gate" | "ropes" | "corner";
|
|
325
325
|
/** A named range at the end of your choice: `{ name: "offensive-zone", end: "left" }` is the offensive zone of a team that attacks the left. */
|
|
326
326
|
export interface RangeNamed {
|
|
327
327
|
name: RangeName;
|
package/dist/units.js
CHANGED
|
@@ -58,6 +58,8 @@ export const SURFACE_UNITS = Object.freeze({
|
|
|
58
58
|
dojo: "m",
|
|
59
59
|
// The cage: the commissions' rules are written in feet and inches.
|
|
60
60
|
mma: "ft",
|
|
61
|
+
// The ring: the commissions' rules are written in feet and inches (the amateurs' in metres, in their own league).
|
|
62
|
+
boxing: "ft",
|
|
61
63
|
});
|
|
62
64
|
/** True when `unit` is one of the six. */
|
|
63
65
|
export const isUnit = (unit) => typeof unit === "string" && Object.prototype.hasOwnProperty.call(FEET_PER, unit);
|
package/dist/uprights.budo.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import { budoPlan } from "./budo/plan.js";
|
|
6
6
|
import { flat, n, plane, shy, wall } from "./turn.kit.js";
|
|
7
7
|
import { cageUprights } from "./uprights.cage.js";
|
|
8
|
+
import { ringUprights } from "./uprights.ring.js";
|
|
8
9
|
const K = 1 / 0.3048;
|
|
9
10
|
/** The walls of a dojo, 3 m high (ours). */
|
|
10
11
|
export const DOJO_WALL = 3;
|
|
@@ -69,6 +70,8 @@ export function budoUprights(o, thin) {
|
|
|
69
70
|
}
|
|
70
71
|
if (plan.mma !== undefined)
|
|
71
72
|
items.push(...cageUprights(plan, at, thin));
|
|
73
|
+
if (plan.boxing !== undefined)
|
|
74
|
+
items.push(...ringUprights(plan, plan.boxing, at));
|
|
72
75
|
if (plan.kyudo !== undefined) {
|
|
73
76
|
const built = azuchiPlanes(plan, at);
|
|
74
77
|
items.push({ id: "azuchi", kind: "azuchi", at: at(plan.kyudo.target, plan.kyudo.lanes[0]), height: built.height, planes: built.mound });
|
|
@@ -92,5 +95,5 @@ export function budoUprights(o, thin) {
|
|
|
92
95
|
});
|
|
93
96
|
items.push({ id: "walls", kind: "walls", at: centre, height: h, planes });
|
|
94
97
|
}
|
|
95
|
-
return { items, lift, area, whole: plan.sumo !== undefined || plan.mma !== undefined };
|
|
98
|
+
return { items, lift, area, whole: plan.sumo !== undefined || plan.mma !== undefined || plan.boxing !== undefined };
|
|
96
99
|
}
|