coh-content-db-homecoming 1.3.31 → 1.4.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/README.md +404 -1
- package/dist/badge/event/best-man.d.ts +2 -0
- package/dist/badge/event/chaos-spiel.d.ts +2 -0
- package/dist/badge/event/down-in-front.d.ts +2 -0
- package/dist/badge/event/officiator.d.ts +2 -0
- package/dist/badge/event/wedding-crasher.d.ts +2 -0
- package/dist/coh-content-db-homecoming.js +2 -2
- package/dist/coh-content-db-homecoming.nomin.js +300 -149
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,13 +1,24 @@
|
|
|
1
1
|
# coh-content-db-homecoming
|
|
2
|
+
|
|
3
|
+

|
|
4
|
+

|
|
5
|
+

|
|
6
|
+
|
|
2
7
|
CoH Content DB - Homecoming data
|
|
3
8
|
|
|
4
9
|
### Build
|
|
10
|
+
|
|
5
11
|
`npm run build`
|
|
6
12
|
|
|
7
13
|
### Publish
|
|
8
|
-
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
npm version 1.4.x
|
|
17
|
+
git push && git push --tags
|
|
18
|
+
```
|
|
9
19
|
|
|
10
20
|
Initialize the database, then load the homecoming data pack:
|
|
21
|
+
|
|
11
22
|
```
|
|
12
23
|
import {CohContentDb} from "coh-content-db";
|
|
13
24
|
import {Homecoming, HomecomingBadges} from "coh-content-db-homecoming";
|
|
@@ -16,3 +27,395 @@ const contentDb = new CohContentDb();
|
|
|
16
27
|
contentDb.load(new Homecoming());
|
|
17
28
|
contentDb.load(new HomecomingBadges());
|
|
18
29
|
```
|
|
30
|
+
|
|
31
|
+
# Updating the Database
|
|
32
|
+
|
|
33
|
+
Instructions graciously provided by [kwsapphire](https://github.com/kwsapphire).
|
|
34
|
+
|
|
35
|
+
### Needed Tools:
|
|
36
|
+
|
|
37
|
+
* GitHub account
|
|
38
|
+
* Badger Database on GitHub: [https://github.com/n15g/coh-content-db-homecoming](https://github.com/n15g/coh-content-db-homecoming)
|
|
39
|
+
* Badger Website Data on Github: [https://github.com/n15g/badger](https://github.com/n15g/badger)
|
|
40
|
+
* City of Heroes account (Any server, but these instructions assume [Homecoming](https://forums.homecomingservers.com/).)
|
|
41
|
+
* Pigg Viewer to convert PIGGs to Textures (Piglet linked in [this forum post](https://forums.homecomingservers.com/topic/5405-piggviewer/#comment-562266).)
|
|
42
|
+
* DeTexturizer to convert Textures to DDS (Philotic Knight’s is on [GitHub](https://github.com/WestBennett/Old-CoH-Code/).)
|
|
43
|
+
* DDS Converter to convert DDS to PNG (many available online)
|
|
44
|
+
* Text editor ([Notepad++](https://notepad-plus-plus.org/) recommended)
|
|
45
|
+
* Image editing software
|
|
46
|
+
* Download [badge-grant-all.txt](docs/badge-grant-all.txt)
|
|
47
|
+
* Download [SetTitle file](https://n15g.github.io/badger/assets/settitle.txt)
|
|
48
|
+
|
|
49
|
+
### Working with GitHub:
|
|
50
|
+
|
|
51
|
+
1. While logged in to GitHub, visit the Database link above (and optionally the Website Data link). Click the “Fork” button at the top of the page, and select “Create New Fork.” Adjust the options if desired, then click Create Fork. This is your version to work with.
|
|
52
|
+
2. When you want to make updates, go to your Fork and click the “Master” drop down menu on the top left. Enter the name of a new Branch where you will make changes (e.g. Issue28Page2). Then click the button that says “Create new branch (name) from master.” You will make changes in this branch,
|
|
53
|
+
leaving your master version untouched.
|
|
54
|
+
3. Once done with all updates, you’ll submit your changes to be merged into the main Database. This must be approved by Nick/KeyboardKitsune, which he usually does within a couple of days. **Ensure all of your changes are 100% correct before asking to merge, to prevent multiple requests.**
|
|
55
|
+
4. Each badge is represented by a .ts file located in the src/badge/(category) directories. Each badge category (Accolade, Exploration, etc.) also has a .ts file (e.g. \_accolade-badges.ts) which determines proper sequential display order and must be updated when new badges are added. Badge icon
|
|
56
|
+
images must be uploaded to the appropriate folder in docs/images/badges.
|
|
57
|
+
5. Always coordinate with other people who are updating the database so you don’t overwrite each other's efforts!
|
|
58
|
+
|
|
59
|
+
### Info Needed to Add or Update Badges
|
|
60
|
+
|
|
61
|
+
(retain screenshots of everything obtained in-game!)
|
|
62
|
+
|
|
63
|
+
* Badge Icon Image \[ATC\]
|
|
64
|
+
* In-Game Sequential Order \[ATC\]
|
|
65
|
+
* Set-Title ID \[ATC\] (from live or open beta only, NOT CLOSED BETA)
|
|
66
|
+
* Badge Name (including gender and alignment variants) \[ATC\]
|
|
67
|
+
* Badge Text (including gender and alignment variants) \[ATC\]
|
|
68
|
+
* Location Coordinates (for Exploration badges and History plaques) \[ATC\]
|
|
69
|
+
* ViditotMap Keys (for Exploration badges and History plaques) \[ATC\]
|
|
70
|
+
* Badge Category \[ATC\]
|
|
71
|
+
* Alignment (based on acquisition, not possession)
|
|
72
|
+
* Badge Dependencies (other badges needed for this one, may be in Patch Notes)
|
|
73
|
+
* Acquisition Instructions (keep spoilers light & add more detail to notes)
|
|
74
|
+
* Notes (from Forums, Wiki, Patch Notes, etc.)
|
|
75
|
+
* History Plaque inscription and type (wall or monument)
|
|
76
|
+
* Key Name (hero, male, lowercase, no special characters, replace space with dash (snake-case or kebab-case))
|
|
77
|
+
* Export Name (hero, male, CamelCase (ProperCase), no special characters or spaces)
|
|
78
|
+
|
|
79
|
+
Items marked with \[ATC\] will be performed by AboveTheChemist for other CoH related tools (VidiotMaps, Badge Popmenu, etc.), and so can be provided to whomever is updating the Badger site.
|
|
80
|
+
Some of this information can be gleaned from the Patch Notes, but ALWAYS VERIFY in-game. Patch Notes can be (and often have been) wrong. Example: Patch Notes said new badge was “Hidden in Fog” but actual in-game badge name is “Hidden in the Fog.”
|
|
81
|
+
|
|
82
|
+
### Obtaining Badge Icon Images:
|
|
83
|
+
|
|
84
|
+
ATC can provide. _Only needed if adding a new badge. Skip this section if you’re merely updating an existing badge._
|
|
85
|
+
You can easily obtain the image icons for new badges via the patch notes. Right click each image and save to your hard drive. **This method is least-preferred**, as the resulting images may not be the highest possible quality. **Use below method if possible.**
|
|
86
|
+
|
|
87
|
+
1. Navigate to your City of Heroes installation directory. If the new badges are still in beta, go to the assets\\beta folder. If the changes are live, you can use the assets\\live folder.
|
|
88
|
+
2. Copy all the .pigg files to a new location (your Sandbox) to prevent any possible corruption of your game files.
|
|
89
|
+
3. Use a PIGG viewer to convert the needed PIGG files to textures
|
|
90
|
+
1. Open your Sandbox directory with Piglet
|
|
91
|
+
2. In the left panel, navigate to texture\_library > gui > icons > badges
|
|
92
|
+
3. Reference patch notes to determine what new badges are coming, and therefore what texture files you’re looking for. Select the needed textures in the window on the right and export them to a new folder (Repository)
|
|
93
|
+
|
|
94
|
+
4. Use a DeTexturizer to convert the texture files to DDS. (This is straight-forward.)
|
|
95
|
+
5. Use a DDS converter to convert the DDS files to PNG files. (Ditto)
|
|
96
|
+
6. Crop images as needed
|
|
97
|
+
|
|
98
|
+
1. Open each image in an image editing program and look closely for extra “tags” that need to be cropped. Typical round badges are 48x48 pixels and often need to be trimmed. See [example-needs-cropping](docs/example-needs-cropping.png) in the badger docs
|
|
99
|
+
directory for examples.
|
|
100
|
+
2. Crop the top/left 48x48 pixels and save the file, ensuring to retain the transparent background and .png extension.
|
|
101
|
+
3. Other common badge sizes are 64x64, 128x48, and 128x64. Not all icons will need to be cropped, but it will generally be obvious which ones need cropping as seen in the examples, as they will either have excessive whitespace or extra 'tags'. When cropping, always crop to one of the above
|
|
102
|
+
listed sizes.
|
|
103
|
+
4. Naming convention for badge image files (Key Name):
|
|
104
|
+
|
|
105
|
+
1. All lower case, replace spaces with dash (snake-case or kebab-case)
|
|
106
|
+
2. Use the Male version of the badge name, if there are gendered versions.
|
|
107
|
+
(the-once-and-future-king.png)
|
|
108
|
+
3. Use the Hero version of the badge name, even if the badge is earned as a Villain.
|
|
109
|
+
(grounded.png, NOT pilot.png)
|
|
110
|
+
4. Append with -h and -v if there are different images for the Hero and Villain versions.
|
|
111
|
+
(tested-the-water-h.png and tested-the-water-v.png)
|
|
112
|
+
5. Remove special characters (the-doctors-ally.png)
|
|
113
|
+
6. Note: Images that are used by multiple badges may have a more generic name. Review existing badges and follow naming conventions as best as possible if you need to add a new image that’s used by multiple new badges. For example, there were four exploration badge imagess: hazard.png,
|
|
114
|
+
hero.png, villain.png, and praetorian.png. Adding the Labyrinth of Fog exploration badge, one might use labyrinth.png.
|
|
115
|
+
|
|
116
|
+
7. Upload the new badge image files to your working Branch on GitHub.
|
|
117
|
+
docs/images/badges/(appropriate category directory, e.g. accolade, exploration, etc.)
|
|
118
|
+
|
|
119
|
+
### Updating Category Files
|
|
120
|
+
|
|
121
|
+
ATC can provide sequential order. _Only needed if adding a new badge. Skip this section if you’re merely updating an existing badge._
|
|
122
|
+
|
|
123
|
+
1. Open the file that starts with an underscore that is in the appropriate category directory. For example: if you’re adding a new Accolade, open the src/badge/accolade/\_accolade-badges.ts file. This step is necessary to get the badge to appear on the Badger site.
|
|
124
|
+
2. Add an import command for the new badge to the bottom of the first list. This list uses “Export Name” and “Key Name” in the same line. “Export Name” is the Hero Male variant, CamelCase (ProperCase), no spaces or special characters.
|
|
125
|
+
Example: `import {HistoryInTheMaking} from "./history-in-the-making";`
|
|
126
|
+
3. Insert the Export Name into the second list in this file, in the same spot the badge appears in-game. Open the appropriate badge category in the in-game list (NOT “Most Recent” – go to the actual category) and see what other badges the new badge falls between. Add the export name for the new
|
|
127
|
+
badge in the appropriate place in the list.
|
|
128
|
+
|
|
129
|
+
### Adding New Badge .ts File
|
|
130
|
+
|
|
131
|
+
_Only add new .ts file if adding a whole new badge. If updating existing badge, find the appropriate .ts file and edit the required fields. For new badges, you can create a new .ts file from scratch, but it’s strongly recommended that you copy one from the most-similar badge instead._
|
|
132
|
+
Each code snippet below is an example of what you should include or modify in badge .ts files (each on separate lines). A full example file without notes is included at the end. The individual sections below use different badges as examples so don’t expect consistency until the mock .ts file at the
|
|
133
|
+
end.
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
import {ALIGNMENT_ANY, Alternate, BadgePartialType, BadgeType, IBadgeData} from "coh-content-db";
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
All badge files start with this line. Change the `ALIGNMENT\_ANY` tag as appropriate. Possible values: `ALIGNMENT_HERO`, `ALIGNMENT_VILLAIN`, `ALIGNMENT_ANY` – use whichever is required to **OBTAIN** the badge.
|
|
140
|
+
One accolade uses `ALIGNMENT_PRAETORIAN`: https://n15g.github.io/badger/homecoming/badge/praetorias-son
|
|
141
|
+
One badge uses `ALIGNMENT_PRIMAL`: https://n15g.github.io/badger/homecoming/badge/vip
|
|
142
|
+
Hopefully these are rare exceptions that never happen again.
|
|
143
|
+
|
|
144
|
+
`Alternate` is only required for badges that have alternate names or descriptions based on gender or alignment.
|
|
145
|
+
`BadgePartialType` is only included for badges that have other badges or prerequisites as requirements (Accolades, History)
|
|
146
|
+
List all flags in alphabetical order.
|
|
147
|
+
|
|
148
|
+
```
|
|
149
|
+
import {ReclusesVictory} from "../../map/recluses-victory";
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
All zone-related badges include one or more map import lines. Accolades awarded for all exploration badges in a zone should import that zone map. History badges should import maps for every zone that has an associated history plaque. Exploration badges should import the map they’re found on. List
|
|
153
|
+
all maps in alphabetical order. In theory, this allows users to click on links to open VidiotMaps of each zone. This isn’t actually implemented yet, but we’re keeping up with it anyway.
|
|
154
|
+
|
|
155
|
+
```
|
|
156
|
+
import {AstoriasLastStand} from "../exploration/astorias-last-stand";
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Next, add lines to import each of the badges that are required in order to earn the badge you’re working on (if any). List all badges in alphabetical order.
|
|
160
|
+
|
|
161
|
+
**Leave an empty line between the above imports section and the below export section.**
|
|
162
|
+
|
|
163
|
+
```
|
|
164
|
+
export const ProtectorOfInnocents: IBadgeData = {
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Use the Export Name for the new badge you’re adding. Reminder, Export Name is Hero Male variant in CamelCase (ProperCase), no spaces or special characters.
|
|
168
|
+
|
|
169
|
+
```
|
|
170
|
+
type: BadgeType.ACHIEVEMENT,
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
Use the appropriate badge category here. (ACCOLADE, ACCOMPLISHMENT, ACHIEVEMENT, AE, CONSIGNMENT, DAY\_JOB, DEFEAT, EVENT, EXPLORATION, GLADIATOR, HISTORY, INVENTION, OUROBOROS, PVP, VETERAN)
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
key: "protector-of-innocents",
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Enter the Key Name here. Hero Male variant, lower case, no special characters, replace space with dash (snake-case or kebab-case).
|
|
180
|
+
|
|
181
|
+
```
|
|
182
|
+
SetTitleId: 21,
|
|
183
|
+
SetTitleIdPraetorian: 1669,
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Run the SetTitle file and see where the new badge shows up in the list. Reference the badges before and after to get the Set Title ID for each. Reminder, get this from the release candidate on beta or from live. SetTitleID will almost certainly change between closed beta and release. Note that some
|
|
187
|
+
badges have a second ID for the Praetorian version. (Hopefully rare for any new badges.)
|
|
188
|
+
|
|
189
|
+
```
|
|
190
|
+
names: [
|
|
191
|
+
{type: Alternate.H, value: "Sensation"},
|
|
192
|
+
{type: Alternate.MV, value: "Mr. Big"},
|
|
193
|
+
{type: Alternate.FV, value: "Ms. Big"},
|
|
194
|
+
{type: Alternate.P, value: "Acclaimed"}
|
|
195
|
+
],
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
(or)
|
|
199
|
+
|
|
200
|
+
```
|
|
201
|
+
names: [
|
|
202
|
+
{value: "A Light in Dark Astoria"}
|
|
203
|
+
],
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Add the name of the badge, including any alternate forms.
|
|
207
|
+
|
|
208
|
+
```
|
|
209
|
+
alignment: ALIGNMENT_ANY,
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
Use the appropriate Alignment value. As mentioned previously, possible values include: ALIGNMENT\_HERO, ALIGNMENT\_VILLAIN, and ALIGNMENT\_ANY – use whichever is required to OBTAIN the badge. The two badges that use ALIGNMENT\_PRIMAL and ALIGNMENT\_PRAETORIAN are outliers and hopefully such cases
|
|
213
|
+
won’t pop up again. Alignments in general are a little messy. We are empowered to make changes based on reasonable player feedback.
|
|
214
|
+
|
|
215
|
+
```
|
|
216
|
+
mapKey: NightWard.key,
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
Include the related map for Exploration badges.
|
|
220
|
+
|
|
221
|
+
```
|
|
222
|
+
location: [-411.0, 48.0, -2623.0],
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
Include the location coordinates for Exploration badges.
|
|
226
|
+
|
|
227
|
+
```
|
|
228
|
+
badgeText: [
|
|
229
|
+
{type: Alternate.H, value: "Positron has awarded you this badge for achieving Security Level 10."},
|
|
230
|
+
{type: Alternate.V, value: "Arachnos has awarded you the Soldier Badge for reaching Level 10."},
|
|
231
|
+
{
|
|
232
|
+
type: Alternate.P, value: "Working your way through the ins-and-outs of Praetoria's political landscape has become second " +
|
|
233
|
+
"nature to you."
|
|
234
|
+
}
|
|
235
|
+
],
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
(or)
|
|
239
|
+
|
|
240
|
+
```
|
|
241
|
+
badgeText: [
|
|
242
|
+
{type: Alternate.H, value: `Positron has awarded you this badge for achieving Security Level 10.`},
|
|
243
|
+
{type: Alternate.V, value: `Arachnos has awarded you the Soldier Badge for reaching Level 10.`},
|
|
244
|
+
{type: Alternate.P, value: `Working your way through the ins-and-outs of Praetoria's political landscape has become second nature to you.`}
|
|
245
|
+
],
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
Note the above has two types of quotes. Quotation marks are used for shorter lines, but longer lines are required to be broken into multiple lines. OR you can use back-ticks instead of quotation marks and not have to break longer lines up. **So it’s always better to use back-ticks instead of
|
|
249
|
+
quotation marks.** Feel free to fix any quotes that still use quotation marks to use back-ticks instead. (This is the key to the left of the number 1 on US keyboard layouts, shared with Tilde.)
|
|
250
|
+
|
|
251
|
+
```
|
|
252
|
+
acquisition: "Reach level 10",
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
Short text that explains how to get the badge. Be concise and avoid spoilers.
|
|
256
|
+
|
|
257
|
+
```
|
|
258
|
+
notes: `This includes anything craftable on Invention Worktables, Base Worktables, and Empowerment Stations (including Empowerment Buffs), as well as special crafting such as the Vanguard Crafting Table and Candy Keeper.`,
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
Include additional notes and spoilers here.
|
|
262
|
+
|
|
263
|
+
```
|
|
264
|
+
links: [
|
|
265
|
+
{title: "Protector of Innocents Badge", href: "https://homecoming.wiki/wiki/Protector_of_Innocents_Badge"},
|
|
266
|
+
{title: "Soldier Badge", href: "https://homecoming.wiki/wiki/Soldier_Badge"},
|
|
267
|
+
{title: "Praetorian Professional Badge", href: "https://homecoming.wiki/wiki/Praetorian_Professional_Badge"}
|
|
268
|
+
],
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
Add links to the badge’s wiki page, including alternate titles. If there are alternates, list the hero male variant first.
|
|
272
|
+
|
|
273
|
+
Be careful of special character code in the URL itself. For instance, the badge Dead Man's Tree has a URL that reads https:/homecoming.wiki/wiki/Dead_Man%27s_Tree_Badge. Note that the apostrophe is replaced with %27. Another example is Land, Sea & Air which has a comma and an ampersand, and
|
|
274
|
+
its URL looks like https://homecoming.wiki/wiki/Land%2C_Sea_%26_Air_Badge with %2C for the comma and %26 for the ampersand. Reference [online sources](https://www.freecodecamp.org/news/url-encoded-characters-reference/) for other special characters.
|
|
275
|
+
|
|
276
|
+
```
|
|
277
|
+
icons: [
|
|
278
|
+
{type: Alternate.H, value: "https://n15g.github.io/coh-content-db-homecoming/images/badges/achievement/protector-of-innocents-h.png"},
|
|
279
|
+
{type: Alternate.V, value: "https://n15g.github.io/coh-content-db-homecoming/images/badges/achievement/protector-of-innocents-v.png"}
|
|
280
|
+
],
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
Link to the badge image file(s) located in the `docs` folder. Yes, it’s the same file, even though the above URLs don’t contain “docs” in the link. GitHub Magic™!
|
|
284
|
+
|
|
285
|
+
```
|
|
286
|
+
partials: [
|
|
287
|
+
{key: AstoriasLastStand.key, type: BadgePartialType.BADGE, badgeKey: AstoriasLastStand.key},
|
|
288
|
+
{key: CairnWarder.key, type: BadgePartialType.BADGE, badgeKey: CairnWarder.key},
|
|
289
|
+
{key: DarkMystic.key, type: BadgePartialType.BADGE, badgeKey: DarkMystic.key},
|
|
290
|
+
{key: PhantomRadio.key, type: BadgePartialType.BADGE, badgeKey: PhantomRadio.key},
|
|
291
|
+
|
|
292
|
+
{
|
|
293
|
+
key: "bicn-0",
|
|
294
|
+
type: BadgePartialType.PLAQUE,
|
|
295
|
+
mapKey: AtlasPark.key,
|
|
296
|
+
plaqueType: PlaqueType.MONUMENT,
|
|
297
|
+
location: [330.45, 3.93, 397.33],
|
|
298
|
+
inscription: `On February 3, 1931, Rudolph Augustus Seifert arrived at Central Station near City Park - now Atlas Park. A Swiss foreigner, the architect found himself in Paragon City by chance, and by some miracle our city had found one of its most gifted artists in turn. Rudolph loved Paragon dearly and dedicated his life's work to uplifting the city in its darkest days.
|
|
299
|
+
|
|
300
|
+
Rudolph collaborated with architectural firm Ashburn and Cross to build a new vision of Paragon under the Paragon City Architectural Commision. This partnership was most notably responsible for such incredible sights as Independence Port's Valor Bridge and, most famously, the iconic statue of Atlas dominating the Atlas Park skyline ever since its completion and inauguration in April 1946. This plaque lies outside Hotel Geneva, Seifert's very first project within the city and the beginning of a quiet but deeply impactful legacy. Rudolph Augustus Seifert passed away in 1981, aged 83, survived only by the city he loved so very dearly.`,
|
|
301
|
+
notes: `This plaque is in [map:${AtlasPark.key}], roughly 258 yards south-southwest of the Atlas Plaza neighborhood marker.`,
|
|
302
|
+
vidiotMapKey: "8"
|
|
303
|
+
},
|
|
304
|
+
]
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
Accolades: list all badges required to earn this accolade in the Partials section in alphabetical order.
|
|
308
|
+
|
|
309
|
+
History Badges: List all required plaques, including Map Key, Plaque Type (WALL\_PLAQUE or MONUMENT), location, inscription, notes, and VidiotMaps key if there is one.
|
|
310
|
+
|
|
311
|
+
```
|
|
312
|
+
};
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
Close bracket for the whole page.
|
|
316
|
+
|
|
317
|
+
### Merging Updates
|
|
318
|
+
|
|
319
|
+
Once you’re certain you’ve correctly captured all updates, go to the main page of your edited branch. There will be a box at the top of the page that says “This branch is X commits ahead of the master.” This will include a link you can click that takes you to a summary page, comparing your changes
|
|
320
|
+
to the master version. Take this opportunity to thoroughly review your changes for correctness and completeness. Near the top of that page is a green button titled “Create Pull Request.” Click that, then you’ll have an opportunity to add notes describing your changes. Then click the green Submit
|
|
321
|
+
button, and a merge request will be sent to Nick/KeyboardKitsune/N15g.
|
|
322
|
+
|
|
323
|
+
Below is an example .ts file for a badge called Fake Badge, which includes code for several different badge types. Use only whichever portions and variables are required for the badge you're creating or updating.
|
|
324
|
+
|
|
325
|
+
```
|
|
326
|
+
import {ALIGNMENT_ANY, Alternate, BadgePartialType, BadgeType, IBadgeData} from "coh-content-db";
|
|
327
|
+
import {ZoneName} from "../../map/zone-name";
|
|
328
|
+
import {ZoneNameTwo} from "../../map/zone-name-two";
|
|
329
|
+
import {RequiredBadge} from "../exploration/required-badge";
|
|
330
|
+
import {SecondRequiredBadge} from "../exploration/second-required-badge";
|
|
331
|
+
|
|
332
|
+
export const FakeBadge: IBadgeData = {
|
|
333
|
+
type: BadgeType.ACHIEVEMENT,
|
|
334
|
+
key: "fake-badge",
|
|
335
|
+
setTitleId: 9999,
|
|
336
|
+
names: [
|
|
337
|
+
{value: "Fake Badge With No Alternate Names"},
|
|
338
|
+
{type: Alternate.H, value: "Fake Badge Good Boy"},
|
|
339
|
+
{type: Alternate.F, value: "Fake Badge Good Girl"},
|
|
340
|
+
{type: Alternate.V, value: "Fake Badge Bad Any"},
|
|
341
|
+
{type: Alternate.MV, value: "Fake Badge Bad Boy"},
|
|
342
|
+
{type: Alternate.FV, value: "Fake Badge Bad Girl"},
|
|
343
|
+
{type: Alternate.P, value: "Fake Badge Gold Any"},
|
|
344
|
+
{type: Alternate.MP, value: "Fake Badge Gold Boy"},
|
|
345
|
+
{type: Alternate.FP, value: "Fake Badge Gold Girl"}
|
|
346
|
+
],
|
|
347
|
+
alignment: ALIGNMENT_ANY,
|
|
348
|
+
badgeText: [
|
|
349
|
+
{value: `This version is for when the Badge Fairy doesn’t care what your alignment is.`},
|
|
350
|
+
{type: Alternate.H, value: `The Badge Fairy awarded you this badge because you are wholesome.`},
|
|
351
|
+
{type: Alternate.V, value: `You stole this badge from the Badge Fairy because you are evil!`},
|
|
352
|
+
{type: Alternate.P, value: `You dragged the Badge Fairy through a portal and demanded this badge.`}
|
|
353
|
+
],
|
|
354
|
+
acquisition: `Do the Hokey Pokey with a full team of people in [map:${ZoneName.key}] or [map:zone-name]`,
|
|
355
|
+
notes: `The Hokey Pokey can be performed in an alternate reality where this emote exists. Spoiler text goes here. Remember to use back-ticks instead of quotation marks.`
|
|
356
|
+
links: [
|
|
357
|
+
{title: "Fake Badge Badge", href: "https://homecoming.wiki/wiki/There_Is_No_Real_URL_For_This"},
|
|
358
|
+
{title: "Alternate Name Badge", href: "https://homecoming.wiki/wiki/Remember_Special_Characters"}
|
|
359
|
+
],
|
|
360
|
+
icons: [
|
|
361
|
+
{value: "https://n15g.github.io/coh-content-db-homecoming/images/badges/achievement/fake-badge.png"}
|
|
362
|
+
],
|
|
363
|
+
partials: [
|
|
364
|
+
{key: RequiredBadge.key, type: BadgePartialType.BADGE, badgeKey: RequiredBadge.key},
|
|
365
|
+
{key: SecondRequiredBadge.key, type: BadgePartialType.BADGE, badgeKey: SecondRequiredBadge.key}
|
|
366
|
+
{
|
|
367
|
+
key: "fake-0",
|
|
368
|
+
type: BadgePartialType.PLAQUE,
|
|
369
|
+
mapKey: ZoneName.key,
|
|
370
|
+
plaqueType: PlaqueType.MONUMENT,
|
|
371
|
+
location: [330.45, 3.93, 397.33],
|
|
372
|
+
inscription: `The Badge Fairy first appears on this spot in 2005`,
|
|
373
|
+
notes: `This plaque is in [map:${ZoneName.key}] or [map:zone-name], 50 yards north of the Boopfield neighborhood marker.`,
|
|
374
|
+
vidiotMapKey: "8"
|
|
375
|
+
},
|
|
376
|
+
]
|
|
377
|
+
};
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
### To Obtain & View Badges In-Game
|
|
381
|
+
|
|
382
|
+
Create one Primal character with a Male costume in one slot and a Female costume in another slot. Create one Praetorian character who also has one Male and one Female costume. You’ll be able to swap costumes to see if the badge name or text changes by gender. Swap the Primal character’s alignment at
|
|
383
|
+
Null the Gull to see if there are variants by alignment. **Take screenshots of everything.**
|
|
384
|
+
|
|
385
|
+
Award all badges on the Beta server:
|
|
386
|
+
|
|
387
|
+
1. Save the badge-grant-all.txt file (in the docs directory) to your settings\beta folder in your Homecoming installation directory. You may have to create the beta folder. This file will need to be updated when new badges are added.
|
|
388
|
+
2. While logged into a character on the beta server, type /bindloadfile badge-grant-all.txt and hit enter.
|
|
389
|
+
3. Wait a few minutes while all the badges finish granting themselves to you.
|
|
390
|
+
|
|
391
|
+
Grant yourself new badges not yet included in the badge grant file:
|
|
392
|
+
|
|
393
|
+
1. To determine the internal name of new badges: Open your sandbox directory in Piglet.
|
|
394
|
+
2. Click on the bin folder on the left side, then select the badges.bin file.
|
|
395
|
+
3. Export this file to your Repository folder and then open it with a text editor.
|
|
396
|
+
4. Look up the badge texture filenames from the piggs (located in texture_library/gui/icons/badges) for all new badges
|
|
397
|
+
5. Search badges.bin for each texture filename (just the filename, ignore the .texture extension) Example: The texture filename for the labyrinth history badge Greek Philosopher is badge\_i28\_history\_labyrinth. Search for this filename in badges.bin and you’ll find text as below:
|
|
398
|
+
|
|
399
|
+
`LabyrinthHistory P2392203697 P344445814 P3379288051 badge\_i28\_history\_labyrinth`
|
|
400
|
+
6. Starting at the texture filename, look to the left, ignoring the long numbers preceded by a P (which are called P-strings), to the first text string that is not a P-string. In this case, that text string is `LabyrinthHistory`, which is the internal name of the new history badge. In game, use
|
|
401
|
+
`/badgegrant LabyrinthHistory` to grant yourself this badge.
|
|
402
|
+
7. Repeat for any new badges not yet included in the badge granting file.
|
|
403
|
+
|
|
404
|
+
Now you can swap alignments and genders to check badge name and text.
|
|
405
|
+
|
|
406
|
+
Run the SetTitle file to log all badges:
|
|
407
|
+
|
|
408
|
+
1. (Optional, see #5) Ensure logging is enabled under Windows – Chat Log – Enabled. If you had to enable this setting, log your character out and back in before continuing.
|
|
409
|
+
2. Save the [SetTitle file](https://n15g.github.io/badger/assets/settitle.txt) to your Homecoming directory.
|
|
410
|
+
3. In game, type /bindloadfile "C:\<CoHDirectory>\settitle.txt". Replace <CoHDirectory> with the name of your City of Heroes install directory. Hit enter.
|
|
411
|
+
4. Look at the output in the Global tab. Feel free to copy and paste this into a text document for your reference. Badges are output in sequential order according to SetTitleID.
|
|
412
|
+
Example, this is part of the output for my character:
|
|
413
|
+
|
|
414
|
+
> \[14:33\] Zeta Reticulan has been selected as new title.
|
|
415
|
+
> \[14:33\] Your badge title has been cleared
|
|
416
|
+
> \[14:33\] Your badge title has been cleared
|
|
417
|
+
> \[14:33\] Hidden In The Fog has been selected as new title.
|
|
418
|
+
|
|
419
|
+
Zeta Reticulan is an existing badge, so I can look up its SetTitle ID: 2527. This is followed by two empty badges (2528 & 2529) before the Hidden in the Fog badge is awarded. This means Hidden in the Fog’s SetTitle ID is 2530.
|
|
420
|
+
|
|
421
|
+
5. The SetTitle file will produce more output than will fit in the chat window. This isn’t a problem with adding new badges as they’re always at the bottom, but you can check your log files for the full output if needed.
|