-
Notifications
You must be signed in to change notification settings - Fork 422
/
ItemTag.java
478 lines (412 loc) · 20.7 KB
/
ItemTag.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
package com.lilithsthrone.game.inventory;
import java.util.ArrayList;
import java.util.List;
import com.lilithsthrone.main.Main;
import com.lilithsthrone.utils.Util;
/**
* @since 0.2.1
* @version 0.4.5.5
* @author Innoxia
*/
public enum ItemTag {
CHEAT_ITEM, // Cheat items are hidden in the debug spawner, and are also not added to the Encyclopedia.
SILLY_MODE, // Silly mode items only appear in shopkeepers inventories when silly mode is on.
REMOVE_FROM_DEBUG_SPAWNER,
NOT_FOR_SALE,
REINDEER_GIFT, // Can be found in the presents that the reindeer sell (who appear in Dominion during winter months).
SOLD_BY_RALPH, // Will also be used for any future consumable and miscellaneous item vendors.
SOLD_BY_NYAN, // Clothing (is added to all clothing vendors)
SOLD_BY_MONICA, // Clothing (is added to Elis only)
SOLD_BY_KATE, // Jewellery
SOLD_BY_FINCH, // BDSM and sex-related stuff
SOLD_BY_VICKY, // Weapons
SOLD_BY_EISEK, // Produce
// Items with these tags can randomly spawn in encounters in the commented area
// Please note that due to legacy issues, clothing and weapons only use the 'DOMINION_ALLEYWAY_SPAWN' tag to determine whether or not it can randomly spawn in any area.
// This will liekly be changed at a later date, so please use the appropriate area spawn tag for your clothing/weapon, even though it does nothing for now
ALL_AREAS_SPAWN, // Every area in the game
DOMINION_ALLEYWAY_SPAWN, // Dominion
SUBMISSION_TUNNEL_SPAWN, // Submission (excluding Bat Caverns)
BAT_CAVERNS_SPAWN, // Bat Caverns
ELIS_ALLEYWAY_SPAWN, // Foloi Fields
SPELL_BOOK,
SPELL_SCROLL,
ESSENCE,
ATTRIBUTE_TF_ITEM,
RACIAL_TF_ITEM,
MISC_TF_ITEM, // Fetish or non-racial body part transformations
BOOK,
GIFT,
// These three all remove 'thirst quenched', 'thirst quenched (junk food)', and 'thirst quenched (quality food)' and then apply their related status effect
DRINK, // Drink items apply the 'thirst quenched' status effect upon use
DRINK_POOR, // Basic drink items apply the 'thirst quenched (basic)' status effect upon use
DRINK_QUALITY, // Quality drink items apply the 'thirst quenched (quality)' status effect upon use
// These three all remove 'recently eaten', 'recently eaten (junk food)', and 'recently eaten (quality food)' and then apply their related status effect
FOOD, // Food items apply the 'recently eaten' status effect upon use
FOOD_POOR, // Junk food items apply the 'recently eaten (junk)' status effect upon use
FOOD_QUALITY, // Quality food items apply the 'recently eaten (quality)' status effect upon use
ALCOHOLIC, // For easy detection of alcoholic items in some scenes
// To mark consumables as containing caffeine, with the number representing the equivalent alcoholic level to be applied to spider-morphs
// Only one of these should be applied to an item
CAFFEINATED_005(Util.newArrayListOfValues("[style.boldMinorBad(Adds)] 5% to [style.boldAlcohol(intoxication level)] for [style.boldSpider(spider-morphs)]"), false),
CAFFEINATED_010(Util.newArrayListOfValues("[style.boldMinorBad(Adds)] 10% to [style.boldAlcohol(intoxication level)] for [style.boldSpider(spider-morphs)]"), false),
CAFFEINATED_015(Util.newArrayListOfValues("[style.boldMinorBad(Adds)] 15% to [style.boldAlcohol(intoxication level)] for [style.boldSpider(spider-morphs)]"), false),
CAFFEINATED_020(Util.newArrayListOfValues("[style.boldMinorBad(Adds)] 20% to [style.boldAlcohol(intoxication level)] for [style.boldSpider(spider-morphs)]"), false),
CAFFEINATED_025(Util.newArrayListOfValues("[style.boldMinorBad(Adds)] 25% to [style.boldAlcohol(intoxication level)] for [style.boldSpider(spider-morphs)]"), false),
CAFFEINATED_030(Util.newArrayListOfValues("[style.boldMinorBad(Adds)] 30% to [style.boldAlcohol(intoxication level)] for [style.boldSpider(spider-morphs)]"), false),
CAFFEINATED_040(Util.newArrayListOfValues("[style.boldMinorBad(Adds)] 40% to [style.boldAlcohol(intoxication level)] for [style.boldSpider(spider-morphs)]"), false),
CAFFEINATED_050(Util.newArrayListOfValues("[style.boldMinorBad(Adds)] 50% to [style.boldAlcohol(intoxication level)] for [style.boldSpider(spider-morphs)]"), false),
CAFFEINATED_075(Util.newArrayListOfValues("[style.boldMinorBad(Adds)] 75% to [style.boldAlcohol(intoxication level)] for [style.boldSpider(spider-morphs)]"), false),
CAFFEINATED_100(Util.newArrayListOfValues("[style.boldMinorBad(Adds)] 100% to [style.boldAlcohol(intoxication level)] for [style.boldSpider(spider-morphs)]"), false),
CONTRABAND_LIGHT(// 'Restricted' items will not be bought by honest shopkeepers
Util.newArrayListOfValues(
"[style.colourDarkBlue(Restricted)]",
"[style.colourMinorBad(Honest traders will not buy this)]"),
false),
CONTRABAND_MEDIUM(// 'Illegal' items will not be bought by honest shopkeepers and will be confiscated by Enforcers
Util.newArrayListOfValues(
"[style.colourDarkBlue(Illegal)]",
"[style.colourMinorBad(Honest traders will not buy this)]",
"[style.colourBad(Enforcers will confiscate this)]"),
false),
CONTRABAND_HEAVY(// 'Highly Illegal' items will not be bought by honest shopkeepers and Enforcers will arrest anyone possessing them
Util.newArrayListOfValues(
"[style.colourDarkBlue(Highly Illegal)]",
"[style.colourMinorBad(Honest traders will not buy this)]",
"[style.colourTerrible(Enforcers will arrest people possessing this)]"),
false),
//-------------- WEAPONS & CLOTHING --------------//
// ----- Weapon-specific tags: ----- //
WEAPON_FERAL_EQUIPPABLE( // Allows ferals to equip this weapon (as they cannot equip weapons by default)
Util.newArrayListOfValues(
"[style.colourFeral(Can be equipped by ferals)]"),
false),
WEAPON_BLADE, // Should be added to all weapons that use an arcane blade
WEAPON_FIREARM, // Should be added to all weapons that should be considered to be a firearm
WEAPON_UNARMED, // Should be added to all weapons that should use unarmed damage calculations instead of melee
// ------------------------------ //
/** Excludes this clothing from being randomly chosen to equip on an NPC in automatic outfit generation.
* Also excludes the clothing from randomly spawning as tile-exploration loot.
* This only really affects common-rarity clothing, as all clothing of a rarity higher than common are typically only able to be added to characters directly. */
NO_RANDOM_SPAWN,
UNIQUE_NO_NPC_EQUIP, // Prevents the clothing/weapon from being equipped onto an NPC. Only works on items with a 'UNIQUE' rarity level
UNLOCKS_ENCOUNTER( // Special tag which has no effect other than displaying text for clothing stickers. Used for the 'rental mommy' tshirt, so look there for an example.
Util.newArrayListOfValues(
"[style.colourBlueLight(Can cause an encounter)]"),
false),
NIGHT_VISION_SELF( // Makes this clothing or weapon provide immunity to the darkness debuff for just the wearer while equipped
Util.newArrayListOfValues(
"[style.colourGood(Negates 'Darkness' effect)]"),
false),
NIGHT_VISION_AREA( // Makes this clothing or weapon provide immunity to the darkness debuff for all characters in the area in which the wearer is located while equipped
Util.newArrayListOfValues(
"[style.colourExcellent(Negates 'Darkness' effect for all nearby characters)]"),
false),
REVEALS_CONCEALABLE_SLOT, // If a piece of clothing has this tag, it will always be visible, even if another item of clothing is concealing its slot. (Used for spreader bar.)
TRANSPARENT( // This item of clothing does not conceal any areas. Used for chastity cages & condoms (so penis is still visible). Could also be used for sheer clothing material.
Util.newArrayListOfValues(
"[style.colourSex(Cannot conceal any body parts)]"),
false),
IGNORE_HAIR_RESTRICTION, // If a piece of clothing has this tag, it can always be equipped into the HAIR slot, even if the equipping character has no hair.
DRESS, // For helping to generate clothing in CharacterUtils
SWIMWEAR, // For helping to generate clothing in CharacterUtils
PROVIDES_KEY( // The person who equips this clothing will get an unlock key, making the unsealing cost 0
Util.newArrayListOfValues(
"[style.colourGood(Provides equipper with key)]"),
false),
UNENCHANTABLE( // Prevents the player from enchanting this in the inventory menu.
Util.newArrayListOfValues(
"[style.colourBad(Unenchantable)]"),
false),
SPREADS_FEET( // Prevents double foot actions, like wrap-around footjobs
Util.newArrayListOfValues(
"[style.colourBad(Restricts sex actions)]"),
false),
MUFFLES_SPEECH( // Causes the wearer to not be able to talk. E.g. Ball gags
Util.newArrayListOfValues(
"[style.colourBad(Muffles speech)]"),
false),
BLOCKS_SIGHT( // Causes the wearer to suffer from 'blinded' status effect
Util.newArrayListOfValues(
"[style.colourBad(Blocks sight)]"),
false),
HINDERS_ARM_MOVEMENT( // Hinders the ability of the wearer to use their arms. E.g. Hand cuffs
Util.newArrayListOfValues(
"[style.colourBad(Hinders arm movement)]",
"[style.colourTerrible(Blocks arm-wing flight)]"),
false),
HINDERS_LEG_MOVEMENT( // Hinders the ability of the wearer to run or use their legs properly. E.g. Spreader bar
Util.newArrayListOfValues(
"[style.colourBad(Hinders leg movement)]",
"[style.colourTerrible(Blocks non-flight combat escape)]"),
false),
PREVENTS_COMBAT_ESCAPE( // Prevents the character from escaping from combat
Util.newArrayListOfValues(
"[style.colourTerrible(Prevents combat escape)]"),
false),
DISCARDED_WHEN_UNEQUIPPED( // Makes the clothing be thrown away when unequipped. E.g. Condoms
Util.newArrayListOfValues(
"[style.colourMinorBad(Discarded when unequipped)]"),
false),
ENABLE_SEX_EQUIP( // Allows this clothing to be equipped during sex. E.g. Condoms or strapons
Util.newArrayListOfValues(
"[style.colourSex(Sex-equip enabled)]"),
false),
// Self-explanatory requirements in order to equip this clothing:
REQUIRES_PENIS(
Util.newArrayListOfValues(
"[style.colourSex(Requires penis)]"),
false),
REQUIRES_NO_PENIS(
Util.newArrayListOfValues(
"[style.colourSex(Requires no penis)]"),
false),
REQUIRES_VAGINA(
Util.newArrayListOfValues(
"[style.colourSex(Requires vagina)]"),
false),
REQUIRES_NO_VAGINA(
Util.newArrayListOfValues(
"[style.colourSex(Requires no vagina)]"),
false),
REQUIRES_FUCKABLE_NIPPLES(
Util.newArrayListOfValues(
"[style.colourSex(Requires fuckable nipples)]"),
false),
// These 'FITS' tags are used to check for whether clothing is suitable for certain body parts. They should be pretty self-explanatory.
// Mouths (mouth clothing fits all mouth types by default, which is why there's no need for 'FITS_MUZZLES' or 'FITS_BEAKS'):
FITS_MUZZLES_EXCLUSIVE(
Util.newArrayListOfValues(
"[style.colourFeral(Only fits muzzles)]"),
false),
FITS_BEAKS_EXCLUSIVE(
Util.newArrayListOfValues(
"[style.colourFeral(Only fits beaks)]"),
false),
// legs:
FITS_HOOFS_EXCLUSIVE(
Util.newArrayListOfValues(
"[style.colourFeral(Only fits hoofs)]"),
false),
FITS_HOOFS(
Util.newArrayListOfValues(
"[style.colourFeral(Fits hoofs)]"),
false),
FITS_TALONS_EXCLUSIVE(
Util.newArrayListOfValues(
"[style.colourFeral(Only fits talons)]"),
false),
FITS_TALONS(
Util.newArrayListOfValues(
"[style.colourFeral(Fits talons)]"),
false),
// Arms:
FITS_FEATHERED_ARM_WINGS_EXCLUSIVE(
Util.newArrayListOfValues(
"[style.colourTfGeneric(Only fits feathered arm-wings)]"),
false),
FITS_FEATHERED_ARM_WINGS(
Util.newArrayListOfValues(
"[style.colourTfGeneric(Fits feathered arm-wings)]"),
false),
FITS_LEATHERY_ARM_WINGS_EXCLUSIVE(
Util.newArrayListOfValues(
"[style.colourTfGeneric(Only fits leathery arm-wings)]"),
false),
FITS_LEATHERY_ARM_WINGS(
Util.newArrayListOfValues(
"[style.colourTfGeneric(Fits leathery arm-wings)]"),
false),
FITS_ARM_WINGS_EXCLUSIVE(
Util.newArrayListOfValues(
"[style.colourTfGeneric(Only fits arm-wings)]"),
false),
FITS_ARM_WINGS(
Util.newArrayListOfValues(
"[style.colourTfGeneric(Fits arm-wings)]"),
false),
// Bodies:
FITS_NON_BIPED_BODY_HUMANOID(
Util.newArrayListOfValues(
"[style.colourHuman(Fits humanoid parts of non-biped bodies)]"),
false),
FITS_TAUR_BODY(
Util.newArrayListOfValues(
"[style.colourTfGeneric(Only fits quadrupedal bodies)]"),
false),
FITS_LONG_TAIL_BODY(
Util.newArrayListOfValues(
"[style.colourTfGeneric(Only fits long-tailed bodies)]"),false), //lamia, eels
FITS_TAIL_BODY(
Util.newArrayListOfValues(
"[style.colourTfGeneric(Only fits tailed bodies)]"),false), //mermaids
FITS_ARACHNID_BODY(
Util.newArrayListOfValues(
"[style.colourTfGeneric(Only fits arachnid bodies)]"),false), //spiders and scorpions
FITS_CEPHALOPOD_BODY(
Util.newArrayListOfValues(
"[style.colourTfGeneric(Only fits cephalopod bodies)]"),false), //octopuses and squids
FITS_AVIAN_BODY(
Util.newArrayListOfValues(
"[style.colourTfGeneric(Only fits avian bodies)]"),false), //bird-taurs
// Feral status:
// These tags are non-exclusive, so clothing with them can additionally be equipped by non-ferals:
FITS_FERAL_ALL_BODY(
Util.newArrayListOfValues(
"[style.colourFeral(Fits all feral bodies)]"),false), //All feral bodies can equip clothing marked with this tag.
FITS_FERAL_QUADRUPED_BODY(
Util.newArrayListOfValues(
"[style.colourFeral(Fits quadrupedal feral bodies)]"),false), //Quadrupedal feral bodies can equip clothing marked with this tag
FITS_FERAL_LONG_TAIL_BODY(
Util.newArrayListOfValues(
"[style.colourFeral(Fits long-tailed feral bodies)]"),false), //Long-tailed feral bodies can equip clothing marked with this tag
FITS_FERAL_TAIL_BODY(
Util.newArrayListOfValues(
"[style.colourFeral(Fits tailed feral bodies)]"),false), //Tailed feral bodies can equip clothing marked with this tag
FITS_FERAL_ARACHNID_BODY(
Util.newArrayListOfValues(
"[style.colourFeral(Fits arachnid feral bodies)]"),false), //Arachnid feral bodies can equip clothing marked with this tag
FITS_FERAL_CEPHALOPOD_BODY(
Util.newArrayListOfValues(
"[style.colourFeral(Fits cephalopod feral bodies)]"),false), //Cephalopod feral bodies can equip clothing marked with this tag
FITS_FERAL_AVIAN_BODY(
Util.newArrayListOfValues(
"[style.colourFeral(Fits avian feral bodies)]"),false), //Avian feral bodies can equip clothing marked with this tag
// These tags are exclusive, so clothing with them can ONLY be equipped by the corresponding body type (unless the clothing additionally has other permissive tags):
ONLY_FITS_FERAL_ALL_BODY(
Util.newArrayListOfValues(
"[style.colourFeral(Only fits feral bodies)]"),false),
ONLY_FITS_FERAL_QUADRUPED_BODY(
Util.newArrayListOfValues(
"[style.colourFeral(Only fits quadrupedal feral bodies)]"),false),
ONLY_FITS_FERAL_LONG_TAIL_BODY(
Util.newArrayListOfValues(
"[style.colourFeral(Only fits long-tailed feral bodies)]"),false),
ONLY_FITS_FERAL_TAIL_BODY(
Util.newArrayListOfValues(
"[style.colourFeral(Only fits tailed feral bodies)]"),false),
ONLY_FITS_FERAL_ARACHNID_BODY(
Util.newArrayListOfValues(
"[style.colourFeral(Only fits arachnid feral bodies)]"),false),
ONLY_FITS_FERAL_CEPHALOPOD_BODY(
Util.newArrayListOfValues(
"[style.colourFeral(Only fits cephalopod feral bodies)]"),false),
ONLY_FITS_FERAL_AVIAN_BODY(
Util.newArrayListOfValues(
"[style.colourFeral(Only fits avian feral bodies)]"),false),
RIGID_MATERIAL( // The clothing is made out of a rigid material, and as such, groping actions cannot be performed on it. Used for chastity cages/belts.
Util.newArrayListOfValues(
"[style.colourTerrible(Blocks groping actions)]"),
false),
PREVENTS_ERECTION_PHYSICAL( // Prevents the wearer from getting an erection during sex, by means of physically limiting the space into which the erection could take shape (i.e. chastity cages). As of 0.3.1, only affects descriptors.
Util.newArrayListOfValues(
"[style.colourTerrible(Prevents erection)]"),
false),
PREVENTS_ERECTION_OTHER( // Prevents the wearer from getting an erection during sex, by means other than physical limitations. As of 0.3.1, only affects descriptors.
Util.newArrayListOfValues(
"[style.colourTerrible(Prevents erection)]"),
false),
// Sex-related clothing:
/**<b>IMPORTANT</b> This tag should only ever be given to clothing going into the PENIS InventorySlot, as otherwise it will throw errors.*/
CONDOM(true), // Gives this clothing condom behaviour
CHOKER_SNAP( // Snaps (into wearer's inventory) if throat stretches.
Util.newArrayListOfValues(
"[style.colourSex(Snaps if throat bulges too much during sex)]"),
true),
CHASTITY( // Tags the clothing as being some form of chastity device, meaning that it will apply the 'CHASTITY_1' status effect when equipped
Util.newArrayListOfValues(
"[style.colourTerrible(Chastity device)]"),
true),
// To detect whether creampies should leak out or not:
PLUGS_ANUS( // Counts as being inserted into the wearer's anus. E.g. butt plugs or anal beads
Util.newArrayListOfValues(
"[style.colourSex(Plugs asshole (does not get dirty from creampies))]"),
true),
SEALS_ANUS( // Counts as sealing, but not inserted into, the wearer's anus. E.g. Tape
Util.newArrayListOfValues(
"[style.colourSex(Seals asshole (does not get dirty from creampies))]"),
true),
PLUGS_VAGINA( // Counts as being inserted into the wearer's vagina. E.g. insertable dildo
Util.newArrayListOfValues(
"[style.colourSex(Plugs pussy (does not get dirty from creampies))]"),
true),
SEALS_VAGINA( // Counts as sealing, but not inserted into, the wearer's vagina. E.g. Tape
Util.newArrayListOfValues(
"[style.colourSex(Seals pussy (does not get dirty from creampies))]"),
true) {
@Override
public List<String> getClothingTooltipAdditions() {
if(Main.game.isUrethraEnabled()) {
return Util.newArrayListOfValues("[style.colourSex(Seals pussy (including urethra))]");
} else {
return Util.newArrayListOfValues("[style.colourSex(Seals pussy)]");
}
}
},
PLUGS_NIPPLES( // Counts as being inserted into the wearer's nipples. E.g. insertable nipple-dildos
Util.newArrayListOfValues(
"[style.colourSex(Plugs nipples (does not get dirty from creampies))]"),
true),
SEALS_NIPPLES( // Counts as sealing, but not inserted into, the wearer's nipples. E.g. Pasties
Util.newArrayListOfValues(
"[style.colourSex(Seals nipples (does not get dirty from creampies))]"),
true),
MILKING_EQUIPMENT(
Util.newArrayListOfValues(
"[style.colourMilk(Milking equipment (drains creampies))]"),
true),
/** <b>This is automatically assigned to items, and should not be manually added to ItemTags!</b> */
DILDO_SELF(
Util.newArrayListOfValues(
"[style.colourSub(Insertable)] [style.colourSex(dildo)]"),
true),
/** <b>This is automatically assigned to items, and should not be manually added to ItemTags!</b> */
DILDO_OTHER(
Util.newArrayListOfValues(
"[style.colourDom(Wearable)] [style.colourSex(dildo)]"),
true),
/** <b>This is automatically assigned to items, and should not be manually added to ItemTags!</b> */
ONAHOLE_SELF(
Util.newArrayListOfValues(
"[style.colourSex(Fuckable onahole)]"),
true),
/** <b>This is automatically assigned to items, and should not be manually added to ItemTags!</b> */
ONAHOLE_OTHER(
Util.newArrayListOfValues(
"[style.colourSex(Wearable onahole)]"),
true),
;
private List<String> clothingTooltipAdditions;
private boolean sexToy;
/**
* @param clothingTooltipAdditions The descriptions that should be appended to clothing tooltips for when this ItemTag is present on clothing.
* @param sexToy If true, then this item tag marks the associating clothing as a sex toy, which, if worn by a dom, is unable to be removed by subs in sex.
*/
private ItemTag(List<String> clothingTooltipAdditions, boolean sexToy) {
this.clothingTooltipAdditions = clothingTooltipAdditions;
this.sexToy = sexToy;
}
/**
* @param sexToy If true, then this item tag marks the associating clothing as a sex toy, which, if worn by a dom, is unable to be removed by subs in sex.
*/
private ItemTag(boolean sexToy) {
this.clothingTooltipAdditions = null;
this.sexToy = sexToy;
}
private ItemTag() {
this.clothingTooltipAdditions = null;
this.sexToy = false;
}
public List<String> getClothingTooltipAdditions() {
if(clothingTooltipAdditions==null) {
return new ArrayList<>();
}
return clothingTooltipAdditions;
}
/**
* @return true if this tag makes the clothing to which it is applied a sex toy, meaning that NPCs will not remove it during sex unless it is blocking the part they wish to access.
*/
public boolean isSexToy() {
return sexToy;
}
}