@massif/lancer-data 3.1.4 → 3.1.6
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/README.md +34 -12
- package/lib/tables.json +3 -3
- package/package.json +1 -1
- package/scripts/test.js +1 -1
package/README.md
CHANGED
|
@@ -33,28 +33,50 @@ Your content package is contained in a single-level folder that, at minimum, con
|
|
|
33
33
|
}
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
+
A working, but content-less, folder structure would look like this:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
my homebrew folder
|
|
40
|
+
│ lcp_manifest.json
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
additional data will be included in the folder on the same level as the `info.json` file. _Content folders should not have any depth_.
|
|
44
|
+
|
|
36
45
|
Optionally, you can include the following fields in your manifest:
|
|
37
46
|
|
|
38
47
|
```json
|
|
39
48
|
"item_prefix": "example_prefix_",
|
|
40
49
|
"image_url": "URL to a thumbnail image",
|
|
41
50
|
"website": "Website URL to my LCP's source"
|
|
51
|
+
"dependencies": LcpDependency[] // see below
|
|
42
52
|
```
|
|
43
53
|
|
|
44
|
-
|
|
54
|
+
#### LCP Dependencies
|
|
45
55
|
|
|
46
|
-
|
|
56
|
+
LCPs can declare dependencies: other LCPs required for it to function. These dependencies are declared in the `dependencies` field of the LCP manifest, and are an array of `LcpDependency` objects:
|
|
47
57
|
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
|
|
58
|
+
```ts
|
|
59
|
+
{
|
|
60
|
+
"name": string, // name of the dependency
|
|
61
|
+
"version": string, // version of the dependency
|
|
62
|
+
"link"?: string // link to the dependency's website
|
|
63
|
+
}
|
|
51
64
|
```
|
|
52
65
|
|
|
53
|
-
|
|
66
|
+
The `name` field must **exactly match** the `name` field of the dependency's manifest.
|
|
67
|
+
|
|
68
|
+
The `version` field must be a [semver](https://semver.org/) version string, and must match the dependency's version. COMP/CON defaults to "this version or later", for example, if the user has already installed dependency version `2.0.0` and the dependency required is `1.0.1`, COMP/CON will accept it. COMP/CON will not accept a dependency of `0.5.0` or `1.0.0`. However, there are two special characters that can modify this behavior:
|
|
69
|
+
|
|
70
|
+
- `*` will accept any version of the dependency, as long as the name matches.
|
|
71
|
+
- `=X.X.X` will only accept the exact version of the dependency (X.X.X), and will not accept any other version. For example, if the version string is `=1.0.0`, COMP/CON will only accept version `1.0.0` of the dependency, not `1.0.1`, or `2.0.0`.
|
|
72
|
+
|
|
73
|
+
The `link` field is optional, and if provided will be displayed in the Content Pack Manager to help users find and download the required content packs. While this is not a required field, it's strongly recommended to include it.
|
|
74
|
+
|
|
75
|
+
COMP/CON will automatically sort and load LCPs in order based on required dependencies, and will not load an LCP if it has an unsatisfied dependency. The user will be notified of any missing dependencies in the Content Pack Manager.
|
|
54
76
|
|
|
55
77
|
### Troubleshooting
|
|
56
78
|
|
|
57
|
-
Most of the time, issues related to LCPs come from malformed LCP data.
|
|
79
|
+
Most of the time, issues related to LCPs come from malformed LCP data.
|
|
58
80
|
|
|
59
81
|
Further questions can be answered in the #comp-con-homebrew channel in the LANCER Discord.
|
|
60
82
|
|
|
@@ -65,7 +87,7 @@ If you'd like to submit your content pack for inclusion within COMP/CON, there a
|
|
|
65
87
|
- Compatible with the new item regime, as described by this document.
|
|
66
88
|
- Downloadable through an itch.io page (free or paid)
|
|
67
89
|
- Nominated by the community as a good asset, even for people that aren't on the Discord or otherwise tied in to the greater Lancer community (ie: has been playtested, doesn't require other assets, only references already-published material, etc)
|
|
68
|
-
- Does not contain any questionable or illegal content,
|
|
90
|
+
- Does not contain any questionable or illegal content, nor any content not owned by the author.
|
|
69
91
|
- Passes a final content and code pass
|
|
70
92
|
|
|
71
93
|
If these standards are acceptable, please contact me at @Beeftime#0558 in [the official LANCER Discord](https://discord.gg/Qu3C4te), ideally within the #comp-con-homebrew channel.
|
|
@@ -387,7 +409,7 @@ Weapon mods are handled separately in C/C than in Lancer (where they're just tag
|
|
|
387
409
|
"allowed_sizes"?: WeaponSize[], // weapon sizes the mod CAN be applied to
|
|
388
410
|
"restricted_types"?: WeaponType[], // weapon types the mod CAN NOT be applied to
|
|
389
411
|
"restricted_sizes"?: WeaponSize[], // weapon sizes the mod CAN NOT be applied to
|
|
390
|
-
"added_tags"?: ITagData[] // tags
|
|
412
|
+
"added_tags"?: ITagData[] // tags propagated to the weapon the mod is installed on
|
|
391
413
|
"added_damage"?: IDamageData[] // damage added to the weapon the mod is installed on, see note
|
|
392
414
|
"added_range"?: IRangeData[] // damage added to the weapon the mod is installed on, see note
|
|
393
415
|
"actions"?: IActionData[],
|
|
@@ -421,7 +443,7 @@ This is currently unsupported in the LANCER Core Book (or any Massif material at
|
|
|
421
443
|
"license_level": number, // set to 0 to be available to all Pilots
|
|
422
444
|
"effect": string, // v-html
|
|
423
445
|
"tags": ITagData[], // tags related to the mod itself
|
|
424
|
-
"added_tags": ITagData[] // tags
|
|
446
|
+
"added_tags": ITagData[] // tags propagated to the system the mod is installed on
|
|
425
447
|
"actions"?: IActionData[],
|
|
426
448
|
"bonuses"?: IBonusData[], // these bonuses are applied to the pilot, not parent system
|
|
427
449
|
"synergies"?: ISynergyData[],
|
|
@@ -758,7 +780,7 @@ Weapons are essentially mounted systems that furnish the "Skirmish" and "Barrage
|
|
|
758
780
|
|
|
759
781
|
## Weapon Effects
|
|
760
782
|
|
|
761
|
-
Effects are
|
|
783
|
+
Effects are equipment abilities that **do not** grant the player a new Action but **do** add or modify gameplay mechanics. The field should be used for "usage notes" (for lack of a better term) that have game-mechanical properties that cannot be modeled with Actions or Deployables, or may include representation elsewhere but involve player notes/choices that can't be modeled there (like the Hydra's Ghast Nexus), or any other sort of mechanically important detail that is unsuited for inclusion (like the rules for the Pegasus' Mimic Gun). An item takes only one effect.
|
|
762
784
|
|
|
763
785
|
On Attack/Hit/Crit effects (like the Blackbeard's Chain Axe), are modeled in separate fields. A weapon may be given any combination of `on_attack`, `on_hit`, `on_crit`, and `effect` fields.
|
|
764
786
|
|
|
@@ -1031,7 +1053,7 @@ Synergies are used to convey hint text regarding talent rank or equipment intera
|
|
|
1031
1053
|
```
|
|
1032
1054
|
|
|
1033
1055
|
The `ISynergyData` object contains two mandatory and three optional fields. Location and detail - are mandatory and contain the display location for the synergy hint (see below) and the text (`detail`) of the synergy hint. `weapon_types` and `weapon_sizes` are optional filters for displaying synergies on weapons, and take `WeaponType` and `WeaponSize` enum values, respectively. Omitting these fields on weapons will cause them to be set to `any` -- useful if you are looking for a synergy hint on eg. a Melee weapon of any size, or a Superheavy weapon of any type.
|
|
1034
|
-
Similarly `system_types` will filter system synergy hints to a specific type (eg. `Drone`) and will appear on all Systems if
|
|
1056
|
+
Similarly `system_types` will filter system synergy hints to a specific type (eg. `Drone`) and will appear on all Systems if omitted (set to `any`).
|
|
1035
1057
|
|
|
1036
1058
|
```ts
|
|
1037
1059
|
{
|
package/lib/tables.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"pilot_names": [],
|
|
3
3
|
"callsigns": [],
|
|
4
|
-
"mech_names":
|
|
5
|
-
"team_names":
|
|
4
|
+
"mech_names": [],
|
|
5
|
+
"team_names": [],
|
|
6
6
|
"quirks": [
|
|
7
7
|
"Part (or all) of your body was too damaged to be cloned perfectly and a significant percentage of your clone body has been replaced with cybernetics. These high-quality prostheses aren’t obviously synthetic to casual observers. You don’t know the extent of the damage.",
|
|
8
8
|
"Your clone has been fitted with a necessary but visible cybernetic augmentation – an arm, leg, eyes, or similar. It is a conspicuous prosthetic.",
|
|
@@ -25,4 +25,4 @@
|
|
|
25
25
|
"Knowingly or unknowingly, your clone body has been implanted with a mental trigger that places you in a receptive state when heard or activated, causing you to either follow a pre-programmed course of action or to follow instructions given by the person who activated you. These commands must be simple (e.g., kill, lie, etc.), and the GM determines who (PC or NPC) gave them. You might be able to overcome this effect in time.",
|
|
26
26
|
"You come back with total amnesia regarding the time before your death, meaning you must be retrained and prepared from scratch. You lose all previous triggers and assign new ones up to your current level. Additionally, you may rewrite some incidental facts of your backstory."
|
|
27
27
|
]
|
|
28
|
-
}
|
|
28
|
+
}
|
package/package.json
CHANGED
package/scripts/test.js
CHANGED