isaacscript 2.9.4 → 2.9.7

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.
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,40 @@
1
+ <!-- cspell:ignore lowp mediump -->
2
+ <shaders>
3
+ <shader name="IsaacScriptEmptyShader">
4
+ <parameters />
5
+ <vertex><![CDATA[
6
+ attribute vec3 Position;
7
+ attribute vec4 Color;
8
+ attribute vec2 TexCoord;
9
+ attribute vec4 RenderData;
10
+ attribute float Scale;
11
+ varying vec4 Color0;
12
+ varying vec2 TexCoord0;
13
+ varying vec4 RenderDataOut;
14
+ varying float ScaleOut;
15
+ uniform mat4 Transform;
16
+ void main(void)
17
+ {
18
+ RenderDataOut = RenderData;
19
+ ScaleOut = Scale; // Passing data to fragment shader
20
+ Color0 = Color;
21
+ TexCoord0 = TexCoord;
22
+ gl_Position = Transform * vec4(Position.xyz, 1.0);
23
+ }
24
+ ]]></vertex>
25
+ <fragment><![CDATA[
26
+ varying lowp vec4 Color0;
27
+ varying mediump vec2 TexCoord0;
28
+ varying lowp vec4 RenderDataOut;
29
+ varying lowp float ScaleOut;
30
+
31
+ uniform sampler2D Texture0;
32
+
33
+ void main(void)
34
+ {
35
+ vec4 Color = Color0 * texture2D(Texture0, TexCoord0);
36
+ gl_FragColor = Color;
37
+ }
38
+ ]]></fragment>
39
+ </shader>
40
+ </shaders>
@@ -0,0 +1,63 @@
1
+ <AnimatedActor>
2
+ <Info CreatedBy="Unknown" CreatedOn="9/27/2018 11:47:46 AM" Version="4" Fps="30"/>
3
+ <Content>
4
+ <Spritesheets>
5
+ <Spritesheet Path="none.png" Id="0"/>
6
+ </Spritesheets>
7
+ <Layers>
8
+ <Layer Name="Body" Id="0" SpritesheetId="0"/>
9
+ </Layers>
10
+ <Nulls/>
11
+ <Events/>
12
+ </Content>
13
+ <Animations DefaultAnimation="1x1">
14
+ <Animation Name="1x1" FrameNum="1" Loop="false">
15
+ <RootAnimation>
16
+ <Frame XPosition="0" YPosition="0" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
17
+ </RootAnimation>
18
+ <LayerAnimations>
19
+ <LayerAnimation LayerId="0" Visible="true">
20
+ <Frame XPosition="0" YPosition="0" XPivot="331" YPivot="214" XCrop="0" YCrop="0" Width="663" Height="429" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
21
+ </LayerAnimation>
22
+ </LayerAnimations>
23
+ <NullAnimations/>
24
+ <Triggers/>
25
+ </Animation>
26
+ <Animation Name="1x2" FrameNum="1" Loop="false">
27
+ <RootAnimation>
28
+ <Frame XPosition="0" YPosition="0" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
29
+ </RootAnimation>
30
+ <LayerAnimations>
31
+ <LayerAnimation LayerId="0" Visible="true">
32
+ <Frame XPosition="0" YPosition="0" XPivot="331" YPivot="351" XCrop="0" YCrop="0" Width="663" Height="702" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
33
+ </LayerAnimation>
34
+ </LayerAnimations>
35
+ <NullAnimations/>
36
+ <Triggers/>
37
+ </Animation>
38
+ <Animation Name="2x1" FrameNum="1" Loop="false">
39
+ <RootAnimation>
40
+ <Frame XPosition="0" YPosition="0" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
41
+ </RootAnimation>
42
+ <LayerAnimations>
43
+ <LayerAnimation LayerId="0" Visible="true">
44
+ <Frame XPosition="0" YPosition="0" XPivot="585" YPivot="214" XCrop="0" YCrop="0" Width="1170" Height="429" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
45
+ </LayerAnimation>
46
+ </LayerAnimations>
47
+ <NullAnimations/>
48
+ <Triggers/>
49
+ </Animation>
50
+ <Animation Name="2x2" FrameNum="1" Loop="false">
51
+ <RootAnimation>
52
+ <Frame XPosition="0" YPosition="0" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
53
+ </RootAnimation>
54
+ <LayerAnimations>
55
+ <LayerAnimation LayerId="0" Visible="true">
56
+ <Frame XPosition="0" YPosition="0" XPivot="488" YPivot="289" XCrop="0" YCrop="0" Width="976" Height="578" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
57
+ </LayerAnimation>
58
+ </LayerAnimations>
59
+ <NullAnimations/>
60
+ <Triggers/>
61
+ </Animation>
62
+ </Animations>
63
+ </AnimatedActor>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "isaacscript",
3
- "version": "2.9.4",
3
+ "version": "2.9.7",
4
4
  "description": "A command line tool for managing Isaac mods written in TypeScript.",
5
5
  "keywords": [
6
6
  "isaac",
@@ -36,7 +36,7 @@
36
36
  "isaacscript-tsconfig": "^2.0.0",
37
37
  "jsonc-parser": "^3.1.0",
38
38
  "moment": "^2.29.4",
39
- "npm-check-updates": "^15.3.3",
39
+ "npm-check-updates": "^15.3.4",
40
40
  "prompt": "^1.3.0",
41
41
  "source-map-support": "^0.5.21",
42
42
  "sync-directory": "^5.1.7",
@@ -6,109 +6,199 @@
6
6
  "additionalProperties": false,
7
7
  "description": "This is the format of a custom stage in the \"isaacscript\" section of the \"tsconfig.json\" file.\n\nThe contents of this interface are used to create a \"tsconfig-isaacscript-section-schema.json\" schema with the \"ts-json-schema-generator\" library.\n\nThe contents of this interface are validated at run-time against the schema using the Ajv library.\n\nThe `CustomStageLua` interface extends this, adding room metadata.",
8
8
  "properties": {
9
- "backdrop": {
9
+ "backdropPNGPaths": {
10
10
  "additionalProperties": false,
11
- "description": "An object containing the paths to the backdrop for the stage. (A backdrop is the graphics for the walls and floor.) Mandatory.",
11
+ "description": "Optional. An object containing the paths to the backdrop graphics for the stage. (A backdrop is the graphics for the walls and floor.) If not specified, the graphics for Basement will be used.",
12
12
  "properties": {
13
13
  "corners": {
14
- "description": "An array of strings that represent the graphic files for the stage's corners. You must have at least one string in this array, but you can specify more than one to randomly add extra variety (like the vanilla stages do).\n\nFor an example of this, see the vanilla file \"resources/gfx/backdrop/01_basement.png\". (In the vanilla file, they concatenate both variations together into one PNG file and put it in the top right hand corner. The corners are shown in the top right hand corner of the file, with two different variations concatenated together. However, for the custom stages feature, you must separate each corner variation into a separate file (and put it in a different file from the walls).",
14
+ "description": "An array that contains the full paths to the graphic files for the stage's corners.\n\nYou must have at least one path in this array, but you can specify more than one to randomly add extra variety (like the vanilla stages do).\n\nFor an example of this, see the vanilla file \"resources/gfx/backdrop/01_basement.png\". (In the vanilla file, they concatenate both variations together into one PNG file and put it in the top right hand corner. The corners are shown in the top right hand corner of the file, with two different variations concatenated together. However, for the custom stages feature, you must separate each corner variation into a separate file (and put it in a different file from the walls).",
15
15
  "items": {
16
16
  "type": "string"
17
17
  },
18
18
  "type": "array"
19
19
  },
20
20
  "lFloors": {
21
- "description": "An array of strings that represent the graphic files that are used for the floors in L rooms.\n\nYou must have at least one string in this array, but you can specify more than one to randomly add extra variety (like the vanilla stages do).\n\nFor an example of this, see the vanilla file \"resources/gfx/backdrop/01_lbasementfloor.png\".",
21
+ "description": "An array that contains the full paths to the graphic files that are used for the floor in L rooms.\n\nYou must have at least one path in this array, but you can specify more than one to randomly add extra variety (like the vanilla stages do).\n\nFor an example of this, see the vanilla file \"resources/gfx/backdrop/01_lbasementfloor.png\".",
22
22
  "items": {
23
23
  "type": "string"
24
24
  },
25
25
  "type": "array"
26
26
  },
27
27
  "nFloors": {
28
- "description": "An array of strings that represent the graphic files that are used for the floors in narrow rooms. (The \"n\" stands for \"narrow\").\n\nYou must have at least one string in this array, but you can specify more than one to randomly add extra variety (like the vanilla stages do).\n\nFor an example of this, see the vanilla file \"resources/gfx/backdrop/01_basement_nfloor.png\".",
28
+ "description": "An array that contains the full paths to the graphic files that are used for the floor in narrow rooms. (The \"n\" stands for \"narrow\").\n\nYou must have at least one path in this array, but you can specify more than one to randomly add extra variety (like the vanilla stages do).\n\nFor an example of this, see the vanilla file \"resources/gfx/backdrop/01_basement_nfloor.png\".",
29
29
  "items": {
30
30
  "type": "string"
31
31
  },
32
32
  "type": "array"
33
33
  },
34
- "prefix": {
35
- "description": "The beginning of the path that leads to the backdrop graphics. For example:\n\n```sh gfx/backdrop/revelations/revelations_ ```",
36
- "type": "string"
37
- },
38
- "suffix": {
39
- "description": "The end of the path that leads to the backdrop graphics. In most cases, this will be \".png\".",
40
- "type": "string"
41
- },
42
34
  "walls": {
43
- "description": "An array of strings that represent the graphic files for the stage's walls.\n\nYou must have at least one string in this array, but you can specify more than one to randomly add extra variety (like the vanilla stages do).\n\nFor an example of this, see the vanilla file \"resources/gfx/backdrop/01_basement.png\". (In the vanilla file, they concatenate all four variations together into one PNG file. However, for the custom stages feature, you must separate each wall variation into a separate file.)",
35
+ "description": "An array that contains the full paths to the graphic files that are used for the walls of the floor.\n\nYou must have at least one path in this array, but you can specify more than one to randomly add extra variety (like the vanilla stages do).\n\nFor an example of this, see the vanilla file \"resources/gfx/backdrop/01_basement.png\". (In the vanilla file, they concatenate all four variations together into one PNG file. However, for the custom stages feature, you must separate each wall variation into a separate file.)",
44
36
  "items": {
45
37
  "type": "string"
46
38
  },
47
39
  "type": "array"
48
40
  }
49
41
  },
50
- "required": [
51
- "prefix",
52
- "suffix",
53
- "nFloors",
54
- "lFloors",
55
- "walls",
56
- "corners"
57
- ],
42
+ "required": ["nFloors", "lFloors", "walls", "corners"],
58
43
  "type": "object"
59
44
  },
60
45
  "baseStage": {
61
- "description": "An integer between 2 and 13, corresponding to the `LevelStage` enum. This is the number of the stage that will be warped to and used as a basis for the stage by the level generation algorithm. Mandatory.\n\n(It is not possible to use Basement 1 as a base due to conflicts with the `Game.SetStage` method.)",
46
+ "description": "An integer between 2 and 13, corresponding to the `LevelStage` enum. This is the number of the stage that will be warped to and used as a basis for the stage by the level generation algorithm. Mandatory.\n\n(It is not possible to use Basement 1 as a base stage due to conflicts with the `Game.SetStage` method.)",
62
47
  "type": "number"
63
48
  },
64
49
  "baseStageType": {
65
50
  "description": "An integer between 0 and 5, corresponding to the `StageType` enum. This is the number of the stage type that will be warped to and used as a basis for the stage by the level generation algorithm. Mandatory.",
66
51
  "type": "number"
67
52
  },
53
+ "decorationsPNGPath": {
54
+ "description": "Optional. The full path to the spritesheet that contains the graphics of the decorations for the floor.\n\nIf not specified, the vanilla Basement decorations spritesheet will be used. For reference, this is located at: `C:\\Program Files (x86)\\Steam\\steamapps\\common\\The Binding of Isaac Rebirth\\resources\\gfx\\grid\\props_01_basement.png`",
55
+ "type": "string"
56
+ },
57
+ "doorPNGPaths": {
58
+ "additionalProperties": false,
59
+ "description": "Optional. A collection of paths that contain graphics for the doors of the floor. If not specified, the doors for Basement will be used.",
60
+ "properties": {
61
+ "angelRoom": {
62
+ "description": "Optional. The full path to the spritesheet that contains the graphics of the Angel Room doors for the floor.\n\nIf not specified, the vanilla Basement door spritesheet will be used. For reference, this is located at: `C:\\Program Files (x86)\\Steam\\steamapps\\common\\The Binding of Isaac Rebirth\\resources\\gfx\\grid\\door_07_holyroomdoor.png`",
63
+ "type": "string"
64
+ },
65
+ "arcade": {
66
+ "description": "Optional. The full path to the spritesheet that contains the graphics of the arcade doors for the floor.\n\nIf not specified, the vanilla Basement door spritesheet will be used. For reference, this is located at: `C:\\Program Files (x86)\\Steam\\steamapps\\common\\The Binding of Isaac Rebirth\\resources\\gfx\\grid\\door_05_arcaderoomdoor.png`",
67
+ "type": "string"
68
+ },
69
+ "bossChallengeRoom": {
70
+ "description": "Optional. The full path to the spritesheet that contains the graphics of the Boss Challenge Room doors for the floor.\n\nIf not specified, the vanilla Basement door spritesheet will be used. For reference, this is located at: `C:\\Program Files (x86)\\Steam\\steamapps\\common\\The Binding of Isaac Rebirth\\resources\\gfx\\grid\\door_09_bossambushroomdoor.png`",
71
+ "type": "string"
72
+ },
73
+ "bossRoom": {
74
+ "description": "Optional. The full path to the spritesheet that contains the graphics of the Boss Room doors for the floor.\n\nIf not specified, the vanilla Basement door spritesheet will be used. For reference, this is located at: `C:\\Program Files (x86)\\Steam\\steamapps\\common\\The Binding of Isaac Rebirth\\resources\\gfx\\grid\\door_10_bossroomdoor.png`",
75
+ "type": "string"
76
+ },
77
+ "bossRush": {
78
+ "description": "Optional. The full path to the spritesheet that contains the graphics of the Boss Rush doors for the floor.\n\nIf not specified, the vanilla Basement door spritesheet will be used. For reference, this is located at: `C:\\Program Files (x86)\\Steam\\steamapps\\common\\The Binding of Isaac Rebirth\\resources\\gfx\\grid\\door_15_bossrushdoor.png`",
79
+ "type": "string"
80
+ },
81
+ "chestRoom": {
82
+ "description": "Optional. The full path to the spritesheet that contains the graphics of the Chest Room doors for the floor.\n\nIf not specified, the vanilla Basement door spritesheet will be used. For reference, this is located at: `C:\\Program Files (x86)\\Steam\\steamapps\\common\\The Binding of Isaac Rebirth\\resources\\gfx\\grid\\door_02b_chestroomdoor.png`",
83
+ "type": "string"
84
+ },
85
+ "curseRoom": {
86
+ "description": "Optional. The full path to the spritesheet that contains the graphics of the Curse Room doors for the floor.\n\nIf not specified, the vanilla Basement door spritesheet will be used. For reference, this is located at: `C:\\Program Files (x86)\\Steam\\steamapps\\common\\The Binding of Isaac Rebirth\\resources\\gfx\\grid\\door_04_selfsacrificeroomdoor.png`",
87
+ "type": "string"
88
+ },
89
+ "devilRoom": {
90
+ "description": "Optional. The full path to the spritesheet that contains the graphics of the Devil Room doors for the floor.\n\nIf not specified, the vanilla Basement door spritesheet will be used. For reference, this is located at: `C:\\Program Files (x86)\\Steam\\steamapps\\common\\The Binding of Isaac Rebirth\\resources\\gfx\\grid\\door_07_devilroomdoor.png`",
91
+ "type": "string"
92
+ },
93
+ "normal": {
94
+ "description": "Optional. The full path to the spritesheet that contains the graphics of the normal doors for the floor.\n\nIf not specified, the vanilla Basement door spritesheet will be used. For reference, this is located at: `C:\\Program Files (x86)\\Steam\\steamapps\\common\\The Binding of Isaac Rebirth\\resources\\gfx\\grid\\door_01_normaldoor.png`",
95
+ "type": "string"
96
+ },
97
+ "normalChallengeRoom": {
98
+ "description": "Optional. The full path to the spritesheet that contains the graphics of the normal Challenge Room doors for the floor.\n\nIf not specified, the vanilla Basement door spritesheet will be used. For reference, this is located at: `C:\\Program Files (x86)\\Steam\\steamapps\\common\\The Binding of Isaac Rebirth\\resources\\gfx\\grid\\door_03_ambushroomdoor.png`",
99
+ "type": "string"
100
+ },
101
+ "secretRoom": {
102
+ "description": "Optional. The full path to the spritesheet that contains the graphics of the Secret Room and Super Secret Room doors for the floor.\n\nIf not specified, the vanilla Basement door spritesheet will be used. For reference, this is located at: `C:\\Program Files (x86)\\Steam\\steamapps\\common\\The Binding of Isaac Rebirth\\resources\\gfx\\grid\\door_08_holeinwall.png`",
103
+ "type": "string"
104
+ },
105
+ "treasureRoom": {
106
+ "description": "Optional. The full path to the spritesheet that contains the graphics of the Treasure Room doors for the floor.\n\nIf not specified, the vanilla Basement door spritesheet will be used. For reference, this is located at: `C:\\Program Files (x86)\\Steam\\steamapps\\common\\The Binding of Isaac Rebirth\\resources\\gfx\\grid\\door_02_treasureroomdoor.png`",
107
+ "type": "string"
108
+ }
109
+ },
110
+ "type": "object"
111
+ },
68
112
  "name": {
69
113
  "description": "The name of the custom stage. Mandatory.",
70
114
  "type": "string"
71
115
  },
116
+ "pitsPNGPath": {
117
+ "description": "Optional. The full path to the spritesheet that contains the graphics of the pits for the floor.\n\nIf not specified, the vanilla Basement pits spritesheet will be used. For reference, this is located at: `C:\\Program Files (x86)\\Steam\\steamapps\\common\\The Binding of Isaac Rebirth\\resources\\gfx\\grid\\grid_pit.png`",
118
+ "type": "string"
119
+ },
72
120
  "rocksPNGPath": {
73
- "description": "Optional. The path to the spritesheet that will style the rocks/blocks/urns/etc. for the floor.\n\nIf specified, it is assumed that you have your own custom rock alt type, and all vanilla rewards/enemies that spawn from urns will be automatically removed. Use the `POST_GRID_ENTITY_BROKEN` callback to make your own custom rewards. Or, if you want to emulate a vanilla urn/mushroom/skull/polyp/bucket, use the `spawnRockAltReward` helper function.\n\nIf not specified, the vanilla Basement rocks spritesheet will be used. For reference, this is located at: `C:\\Program Files (x86)\\Steam\\steamapps\\common\\The Binding of Isaac Rebirth\\resources\\gfx\\grid\\rocks_basement.png`",
121
+ "description": "Optional. The full path to the spritesheet that contains the graphics of the rocks/blocks/urns for the floor.\n\nIf specified, it is assumed that you have your own custom rock alt type, and all vanilla rewards/enemies that spawn from urns will be automatically removed. Use the `POST_GRID_ENTITY_BROKEN` callback to make your own custom rewards. Or, if you want to emulate a vanilla urn/mushroom/skull/polyp/bucket, use the `spawnRockAltReward` helper function.\n\nIf not specified, the vanilla Basement rocks spritesheet will be used. For reference, this is located at: `C:\\Program Files (x86)\\Steam\\steamapps\\common\\The Binding of Isaac Rebirth\\resources-dlc3\\gfx\\grid\\rocks_basement.png`",
74
122
  "type": "string"
75
123
  },
76
124
  "roomVariantPrefix": {
77
125
  "description": "An arbitrarily chosen prefix in the range of 101-999. Mandatory.",
78
126
  "type": "number"
79
127
  },
80
- "versusScreenBackgroundColor": {
128
+ "shadowPNGPaths": {
81
129
  "additionalProperties": false,
82
- "description": "Optional. An object representing the color to use for the background of the boss \"versus\" screen. If not specified, the color for Basement 1 will be used.\n\nFor a list of the colors that correspond to the vanilla stages, see `versusScreenBackgroundColors.ts`.",
130
+ "description": "Optional. A collection of paths that contain graphics for the custom shadows of the floor. (In this context, \"shadows\" are the outlines from things on the roof. For example, in Basement, a shadow of a sideways V is used.) If not specified, no extra shadows will be drawn.",
83
131
  "properties": {
84
- "b": {
85
- "type": "number"
132
+ "1x1": {
133
+ "description": "An array containing the full paths to the shadows that are used in rooms of shape `RoomShape.SHAPE_1x1` (1), `RoomShape.IH` (2), and `RoomShape.IV` (3).\n\nIf more than one shadow is specified, one will be randomly chosen for each room.\n\nIf not specified, no extra shadows will be drawn in these room shapes.",
134
+ "items": {
135
+ "type": "string"
136
+ },
137
+ "type": "array"
138
+ },
139
+ "1x2": {
140
+ "description": "An array containing the full paths to the shadows that are used in rooms of shape `RoomShape.SHAPE_1x2` (4) and `RoomShape.IIV` (5).\n\nIf more than one shadow is specified, one will be randomly chosen for each room.\n\nIf not specified, no extra shadows will be drawn in these room shapes.",
141
+ "items": {
142
+ "type": "string"
143
+ },
144
+ "type": "array"
86
145
  },
87
- "g": {
88
- "type": "number"
146
+ "2x1": {
147
+ "description": "An array containing the full paths to the shadows that are used in rooms of shape `RoomShape.SHAPE_2x1` (6) and `RoomShape.IIH` (7).\n\nIf more than one shadow is specified, one will be randomly chosen for each room.\n\nIf not specified, no extra shadows will be drawn in these room shapes.",
148
+ "items": {
149
+ "type": "string"
150
+ },
151
+ "type": "array"
89
152
  },
90
- "r": {
91
- "type": "number"
153
+ "2x2": {
154
+ "description": "An array containing the full paths to the shadows that are used in rooms of shape `RoomShape.SHAPE_2x2` (8), `RoomShape.LTL` (9), `RoomShape.LTR` (10), `RoomShape.LBL` (11), and `RoomShape.LBR` (12).\n\nIf more than one shadow is specified, one will be randomly chosen for each room.\n\nIf not specified, no extra shadows will be drawn in these room shapes.",
155
+ "items": {
156
+ "type": "string"
157
+ },
158
+ "type": "array"
92
159
  }
93
160
  },
94
- "required": ["r", "g", "b"],
95
161
  "type": "object"
96
162
  },
97
- "versusScreenDirtSpotColor": {
163
+ "versusScreen": {
98
164
  "additionalProperties": false,
99
- "description": "Optional. An object representing the color to use for the dirt spots in the boss \"versus\" screen. (There are two dirt spots; one for the player and one for the boss.) If not specified, the color for Basement 1 will be used.\n\nFor a list of the colors that correspond to the vanilla stages, see `versusScreenDirtSpotColors.ts`.",
165
+ "description": "Optional. A collection of colors used in the boss \"versus\" screen.",
100
166
  "properties": {
101
- "b": {
102
- "type": "number"
103
- },
104
- "g": {
105
- "type": "number"
167
+ "backgroundColor": {
168
+ "additionalProperties": false,
169
+ "description": "Optional. An object representing the color to use for the background of the boss \"versus\" screen. If not specified, the color for Basement 1 will be used.\n\nFor a list of the colors that correspond to the vanilla stages, see `versusScreenBackgroundColors.ts`.",
170
+ "properties": {
171
+ "b": {
172
+ "type": "number"
173
+ },
174
+ "g": {
175
+ "type": "number"
176
+ },
177
+ "r": {
178
+ "type": "number"
179
+ }
180
+ },
181
+ "required": ["r", "g", "b"],
182
+ "type": "object"
106
183
  },
107
- "r": {
108
- "type": "number"
184
+ "dirtSpotColor": {
185
+ "additionalProperties": false,
186
+ "description": "Optional. An object representing the color to use for the dirt spots in the boss \"versus\" screen. (There are two dirt spots; one for the player and one for the boss.) If not specified, the color for Basement 1 will be used.\n\nFor a list of the colors that correspond to the vanilla stages, see `versusScreenDirtSpotColors.ts`.",
187
+ "properties": {
188
+ "b": {
189
+ "type": "number"
190
+ },
191
+ "g": {
192
+ "type": "number"
193
+ },
194
+ "r": {
195
+ "type": "number"
196
+ }
197
+ },
198
+ "required": ["r", "g", "b"],
199
+ "type": "object"
109
200
  }
110
201
  },
111
- "required": ["r", "g", "b"],
112
202
  "type": "object"
113
203
  },
114
204
  "xmlPath": {
@@ -121,9 +211,7 @@
121
211
  "xmlPath",
122
212
  "roomVariantPrefix",
123
213
  "baseStage",
124
- "baseStageType",
125
- "backdrop",
126
- "rocksPNGPath"
214
+ "baseStageType"
127
215
  ],
128
216
  "type": "object"
129
217
  },
@@ -102,9 +102,10 @@ function spawnModDirectorySyncer(config) {
102
102
  // If the "main.lua" file was successfully copied over, we also have to tell isaacscript-watcher
103
103
  // to reload the mod. Look for something like: "File synced: \main.lua"
104
104
  if (msg === `${constants_1.FILE_SYNCED_MESSAGE} ${path_1.default.sep}${constants_1.MAIN_LUA}`) {
105
- notifyGame.command(`luamod ${modTargetName}`);
106
- // Needed to prevent crashes with mods that have custom shaders.
105
+ // Needed to prevent crashes with mods that have custom shaders. This has to be before the
106
+ // "luamod" command.
107
107
  notifyGame.command("reloadshaders");
108
+ notifyGame.command(`luamod ${modTargetName}`);
108
109
  notifyGame.command("restart");
109
110
  notifyGame.msg("Reloaded the mod.");
110
111
  }
@@ -1 +1 @@
1
- {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../../../../../packages/isaacscript-cli/src/commands/monitor/monitor.ts"],"names":[],"mappings":";;;;AAAA,0DAA0B;AAC1B,iDAA4C;AAC5C,wDAAwB;AAExB,+CAOyB;AACzB,mDAAwD;AACxD,yDAAmC;AACnC,qCAAsC;AACtC,yDAG8B;AAE9B,6CAA6D;AAC7D,uCAAyE;AACzE,2CAAqD;AACrD,qDAAkD;AAClD,iEAA2C;AAC3C,6DAA0D;AAC1D,yEAAsE;AAEtE,MAAM,kCAAkC,GAAG;IACzC,aAAa;IACb,8BAA8B;IAC9B,aAAa;IACb,0CAA0C;IAC1C,wCAAwC;IACxC,yCAAyC;IACzC,SAAS;IACT,YAAY;IACZ,mBAAmB;CACpB,CAAC;AAEF,IAAI,oBAAoB,GAAG,IAAI,IAAI,EAAE,CAAC;AAE/B,KAAK,UAAU,OAAO,CAAC,IAAU,EAAE,MAAc;IACtD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC;IACtC,MAAM,cAAc,GAAG,IAAA,wDAAuC,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE9E,2FAA2F;IAC3F,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;QACpC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,wCAAwC;KACpF;IACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;QAC/B,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,wCAAwC;KAC1E;IAED,oBAAoB;IACpB,+BAA+B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE/C,iCAAiC;IACjC,MAAM,eAAe,GAAG,IAAA,sCAA2B,EAAC,OAAO,CAAC,CAAC;IAC7D,MAAM,mBAAmB,GAAG,cAAI,CAAC,OAAO,CAAC,eAAG,EAAE,eAAe,CAAC,CAAC;IAC/D,MAAM,sBAAsB,GAAG,IAAA,iCAAyB,EAAC,MAAM,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC;IAE9E,uCAAuC;IACvC,IAAA,+BAAc,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,IAAA,mDAAwB,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE1C,mDAAmD;IACnD,MAAM,IAAA,iCAAmB,EAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAEnD,+FAA+F;IAC/F,kBAAkB;IAClB,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,EAAE;QACvC,IAAI,CAAC,qBAAqB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;KACpD;IAED,+CAA+C;IAC/C,IAAA,uCAAkB,EAAC,MAAM,CAAC,CAAC;IAE3B,4CAA4C;IAC5C,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAEhC,6EAA6E;IAC7E,gBAAgB,EAAE,CAAC;IAEnB,kDAAkD;IAClD,WAAW,CAAC,GAAG,EAAE;QACf,UAAU,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,eAAe;IAEzB,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CACT,gCAAgC,eAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,CACnE,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,gCAAgC,eAAK,CAAC,KAAK,CAAC,2BAAe,CAAC,EAAE,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,gCAAgC,eAAK,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,sFAAsF;AACxF,CAAC;AAzDD,0BAyDC;AAED,SAAS,+BAA+B,CAAC,IAAU,EAAE,OAAgB;IACnE,MAAM,WAAW,GAAG,IAAA,eAAQ,EAAC,6BAAiB,EAAE,OAAO,CAAC,CAAC;IAEzD,MAAM,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC;IACrC,IAAI,CAAC,IAAA,gBAAQ,EAAC,YAAY,CAAC,EAAE;QAC3B,IAAA,aAAK,EACH,wCAAwC,eAAK,CAAC,KAAK,CAAC,6BAAiB,CAAC,EAAE,CACzE,CAAC;KACH;IAED,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAEpD,KAAK,MAAM,UAAU,IAAI,kCAAkC,EAAE;QAC3D,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;YAC3C,MAAM,cAAc,GAAG,IAAA,wDAAuC,EAC5D,IAAI,EACJ,OAAO,CACR,CAAC;YACF,MAAM,UAAU,GAAG,IAAA,4CAA2B,EAC5C,cAAc,EACd,UAAU,CACX,CAAC;YACF,IAAA,aAAK,EACH,GAAG,eAAK,CAAC,GAAG,CACV,iDAAiD,UAAU,0EAA0E,CACtI,IAAI,eAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAC/B,CAAC;SACH;KACF;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAc;IAC7C,MAAM,WAAW,GAAG,oBAAoB,CAAC;IACzC,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;IAC9C,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IACnE,MAAM,aAAa,GAAG,IAAA,iCAAyB,EAAC,MAAM,CAAC,CAAC;IACxD,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IACrE,MAAM,eAAe,GAAG,IAAA,oBAAI,EAAC,WAAW,EAAE,CAAC,2BAAe,EAAE,aAAa,CAAC,CAAC,CAAC;IAE5E,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAW,EAAE,EAAE;QAC5C,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEpB,gGAAgG;QAChG,uEAAuE;QACvE,IAAI,GAAG,KAAK,GAAG,+BAAmB,IAAI,cAAI,CAAC,GAAG,GAAG,oBAAQ,EAAE,EAAE;YAC3D,UAAU,CAAC,OAAO,CAAC,UAAU,aAAa,EAAE,CAAC,CAAC;YAE9C,gEAAgE;YAChE,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAEpC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC9B,UAAU,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;SACrC;IACH,CAAC,CAAC,CAAC;IAEH,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAmB,EAAE,EAAE;QAClD,IAAA,aAAK,EAAC,UAAU,kBAAkB,iCAAiC,IAAI,EAAE,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAmB,EAAE,EAAE;QACjD,IAAA,aAAK,EAAC,UAAU,kBAAkB,iCAAiC,IAAI,EAAE,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,kBAAkB,GAAG,MAAM,CAAC;IAClC,MAAM,IAAI,GAAG,IAAA,qBAAK,EAAC,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,uBAAuB,CAAC,EAAE;QACtE,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAc,EAAE,EAAE;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,GAAG,CAAC,QAAQ,CAAC,uCAAuC,CAAC,EAAE;YACzD,MAAM,OAAO,GAAG,GAAG,wBAAY,sCAAsC,CAAC;YACtE,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACxB,MAAM,OAAO,GAAG,yCAAyC,CAAC;YAC1D,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SACzB;aAAM,IACL,GAAG,CAAC,QAAQ,CAAC,2DAA2D,CAAC,EACzE;YACA,oBAAoB,GAAG,IAAI,IAAI,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,0CAA0C,CAAC;YAC1D,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;SACxB;aAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,4CAA4C,CAAC,EAAE;YACrE,MAAM,qBAAqB,GAAG,IAAI,IAAI,EAAE,CAAC;YACzC,MAAM,uBAAuB,GAC3B,qBAAqB,CAAC,OAAO,EAAE,GAAG,oBAAoB,CAAC,OAAO,EAAE,CAAC;YACnE,MAAM,kBAAkB,GAAG,uBAAuB,GAAG,IAAI,CAAC;YAC1D,MAAM,MAAM,GAAG,GAAG,kCAAsB,QAAQ,kBAAkB,WAAW,CAAC;YAC9E,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;SACxB;aAAM;YACL,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SACrB;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAc,EAAE,EAAE;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,GAAG,KAAK,IAAI,EAAE;YAChB,0EAA0E;YAC1E,OAAO;SACR;QACD,UAAU,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;QACxB,IAAA,aAAK,EAAC,UAAU,kBAAkB,iCAAiC,IAAI,EAAE,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QACvB,IAAA,aAAK,EAAC,UAAU,kBAAkB,iCAAiC,IAAI,EAAE,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../../../../../packages/isaacscript-cli/src/commands/monitor/monitor.ts"],"names":[],"mappings":"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"}