============= Items Weapons ============= :Author: innoxia, bicobus coreAttributes -------------- authorTag ~~~~~~~~~ How attribution to the mod author (*you*) should be displayed in the item’s tooltip. If left blank or not included, a default attribution based on folder name will be used. This tag is optionnal. .. code:: xml value ~~~~~ How much this weapon is worth. .. code:: xml 3000 melee ~~~~~ Use “true” if this is a melee weapon, and “false” if it’s ranged. (Without quotation marks.) .. code:: xml true twoHanded ~~~~~~~~~ Use “true” if this weapon is two-handed, and thus cannot be simultaneously wielded with an offhand weapon, and “false” if it’s one-handed. (Without quotation marks.) .. code:: xml false determiner ~~~~~~~~~~ What’s appended before the weapon’s name in an instance of “Innoxia was holding X Demon’s Dagger”, where X is the determiner. This will usually be either “a” or “an”, but for other weapons may be different. An example might be: “Innoxia was holding X scissors”, where X (the determiner) would now need to be “a pair of”. .. code:: xml name ~~~~ The name of this weapon. ``appendDamageName`` defaults to true and can be left out. If you ever want this weapon to not be described by its damage type, then set it as false. That is this dagger would always be called “Demon’s Dagger” instead of, for example, “Forceful Demon’s Dagger”. .. code:: xml namePlural ~~~~~~~~~~ The plural name of this weapon. ``pluralByDefault`` If set to ``true``, then the game will always use the plural name when referring to this weapon. .. code:: xml description ~~~~~~~~~~~ The description/lore of this weapon. .. code:: xml attackDescriptor ~~~~~~~~~~~~~~~~ How the weapon is used. This should be a single verb, and is used as the title of attacking actions in combat. .. code:: xml stab attackTooltipDescription ~~~~~~~~~~~~~~~~~~~~~~~~ The description that’s displayed when hovering over the attack action in combat. Follow the same guidelines as equipText (a couple of entries further down this page). As this tooltip is only ever seen from the player’s perspective, you can always write in the first-person narrative. (Still use npc2 for the target, though.) .. code:: xml rarity ~~~~~~ The rarity of this weapon. Values can be found here: :ltgithub:`src/com/lilithsthrone/game/inventory/Rarity.java` .. code:: xml EPIC weaponSet ~~~~~~~~~ Which set this weapon is a part of. Values can be found here: :ltgithub:`/res/setBonuses/` .. seealso:: :doc:`/setBonuses` .. code:: xml 1.13 equipText ~~~~~~~~~~~~~~ The description that’s used when equipping this weapon. The description should be generic, able to be used by both the player and NPCs. Just make sure to use the tag ``[npc.verb()]`` whenever using a verb, which will then, for example, parse like this: - ``[npc.verb(run)]`` if npc is player = “run” - ``[npc.verb(run)]`` if npc is not the player = “runs” Always use the first-person singular verb. The target ``npc`` OR ``npc1`` should be used for the character using the weapon. e.g. If the player is the one attacking (and is called Innoxia), then ``[npc.Name]`` will return “Innoxia”. The target ``npc2`` should be used for the character being attacked. e.g. If Brax is the one being attacked, then ``[npc2.Name]`` will return “Brax”. .. code:: xml 1.14 unequipText ~~~~~~~~~~~~~~~~ The description that’s used when equipping this weapon. Follow the same guidelines as equipText. .. code:: xml 1.15 imageName ~~~~~~~~~~~~~~ The file name of this weapon’s image when in the character’s inventory. The only supported file type is .svg. I use the free program “Inkscape” to make .svg images for the game. .. code:: xml dagger_sheathed.svg 1.16 imageEquippedname ~~~~~~~~~~~~~~~~~~~~~~ The file name of this weapon’s image when equipped. Can be (and usually is) the same as the imageName (which in this example would be ``dagger_sheathed.svg``). .. code:: xml dagger.svg 1.17 physicalResistance ~~~~~~~~~~~~~~~~~~~~~~~ How much natural physical resistance this weapon provides when equipped. Should only really be above 0 for shields or other such protective weapons. .. code:: xml 0 1.18 damage ~~~~~~~~~~~ The base damage that this weapon deals. .. code:: xml 20 If you want to define additional AoE damages, add ``aoe`` elements. A working example of AoE damages can be found in ``res/weapons/innoxia/lightningGlobe/lightning_globe.xml``. .. code:: xml 10 50% chance of hitting an additional enemy (who has not been hit yet) for 10 damage 5 25% chance of hitting an additional enemy (who has not been hit yet) for 5 damage 1.19 arcaneCost ~~~~~~~~~~~~~~~ How many arcane essences are required, and drained, by firing this weapon. Ranged weapons should usually use the value 1, while melee weapons should usually be 0. .. code:: xml 0 1.20 damageVariance ~~~~~~~~~~~~~~~~~~~ The variance in base damage when this weapon is actually used to attack. Values can be found here: `https://github.com/Innoxia/liliths-throne-public/blob/master/src/com/lilithsthrone/game/combat/DamageVariance.java `_ .. code:: xml MEDIUM 1.21 availableDamageTypes ~~~~~~~~~~~~~~~~~~~~~~~~~ The available damage types that this weapon can spawn in with. Values can be found here (MISC should not be used): `src/com/lilithsthrone/game/combat/DamageType.java `_ .. code:: xml PHYSICAL ICE FIRE POISON .. _spells: 1.22 spells ~~~~~~~~~~~ The spells that are unlocked when equipping this weapon. IF you want to add any, use the format: .. code:: xml FIREBALL ICE_SHARD ARCANE_AROUSAL SLAM POISON_VAPOURS The changeOnReforge variable determines whether this weapon should regenerate spells whenever the player changes the damage type. (i.e. If they reforge a ``FIRE`` dagger to an ``ICE`` dagger, if changeOnReforge is true, then the granted spell ``FIREBALL`` will automatically switch to ``ICE_SHARD``). The damageType variable corresponds to the damageType which causes the spell to be unlocked when this weapon is spawned in. You can have multiple entries of the same damageType, like so: .. code:: xml FIREBALL FLASH ICE_SHARD STEAL Note that the ``damageType`` does not have to correspond to the spell’s school (so ``FIRE`` can unlock ``ICE_SHARD``, etc.). Values for spells can be found here: `https://github.com/Innoxia/liliths-throne-public/blob/master/src/com/lilithsthrone/game/combat/Spell.java `_ For an empty spell list, use an empty element: .. code:: xml .. _combat-moves: 1.23 combatMoves ~~~~~~~~~~~~~~~~ The combat moves that are unlocked when equipping this weapon. The ``combatMoves`` element is similar to the `spells`_ element. .. code:: xml ASSAULT_RIFLE_MAG_DUMP The changeOnReforge variable determines whether this weapon should regenerate combat moves whenever the player changes the damage type. Using the example above, if they reforge a ``PHYSICAL`` dagger to an ``ICE`` dagger and changeOnReforge is true, then the granted combat move ``ASSAULT_RIFLE_MAG_DUMP`` will be lost. The damageType variable corresponds to the damageType which causes the move to be unlocked when this weapon is spawned in. You can have multiple entries of the same damageType, like so: .. code:: xml EXAMPLE_MOVE_1 EXAMPLE_MOVE_2 EXAMPLE_MOVE_3 EXAMPLE_MOVE_4 Values for combat moves can be found here: `https://github.com/Innoxia/liliths-throne-public/blob/master/src/com/lilithsthrone/game/combat/CMWeaponSpecials.java `_ **Note:** combat moves are not yet moddable. There will be a way to add modded combat moves soon! For an item with no combat move, simply write an empty element: .. code:: xml 1.24 enchantmentLimit ~~~~~~~~~~~~~~~~~~~~~ How many effects this weapon can be enchanted with. Weapons standard is 5, for balance purpose. .. code:: xml 5 1.25 effects ~~~~~~~~~~~~ The effects that this weapon spawns in with. Remember that the player can remove, change or add effects. To know what to put in here, it would probably be easiest to enchant clothing in your game, save the game, then copy over that clothing’s ’effects’ in your save file. There are two special values for secondaryModifier, which are: ``RESISTANCE_WEAPON`` applies the related resistance of this weapon’s damage type. ``DAMAGE_WEAPON`` applies the related damage type. For example, if this dagger spawned in as type ``POISON``, and I’d replaced both instances of ``CRITICAL_CHANCE`` with ``DAMAGE_WEAPON``, then this dagger would spawn with two +5 Poison Damage effects. .. code:: xml 1.26 extraEffects ~~~~~~~~~~~~~~~~~ You can use this section to describe any extra features of this weapon. These effects are shown in the tooltip when the player hovers over the weapon icon, so try and keep them short (as they should fit on one line). It should probably only be used to describe what happens in the `1.27 onHitEffect`_ element. No characters are passed in as parsing arguments, so you should **not** use any character-specific parsing elements (such as ``[npc.name]``). For this weapon, no extra effects need to be described, but if you need to use this section, use the following format: .. code:: xml Empty extra effect: .. code:: xml .. _on-hit-effect: 1.27 onHitEffect ~~~~~~~~~~~~~~~~ This is applied every time this weapon hits a target. It does **not** apply when the weapon critically hits. The returned text is appended to the hit description. ``npc`` corresponds to the attacker, and ``npc2`` to the target, for use in effects/parsing. For this weapon, no hit effects need to be added, but if you need to use this section, use the following format: .. code:: xml An empty effect .. code:: xml 1.28 onCriticalHitEffect ~~~~~~~~~~~~~~~~~~~~~~~~ This is applied every time this weapon critically hits a target. It does **not** apply when the weapon does a non-critical hit. The returned text is appended to the hit description. ``npc`` corresponds to the attacker, and ``npc2`` to the target, for use in effects/parsing. Use the same format as `on-hit-effect`_. .. code:: xml 1.29 colours ~~~~~~~~~~~~ Please consult the relevant `documentation `_ about colours. Your clothing can be coloured any way you like, but if you’d like the player to be able to dye your clothing, you can specify available colours here. ``primaryColours`` and ``secondaryColours`` all spawn in as a default colour, while their ``Dye`` counterparts are only available if the player chooses to dye the clothing in that colour. The game detects specific colour values, and recolours them to the value chosen by the player. These values are as follows: - Red is used as base colour for changing the ``DAMAGE TYPE``’s colour of the graphic in-game, and the game will only recognise and change the following colours: - #ff2a2a - #ff5555 - #ff8080 - #ffaaaa - #ffd5d5 - Orange is used as base colour for changing the ``PRIMARY`` colour of the graphic in-game, and the game will only recognise and change the following colours: - #ff7f2a - #ff9955 - #ffb380 - #ffccaa - #ffe6d5 - Yellow is used as base colour for changing the ``SECONDARY`` colour of the graphic in-game, and the game will only recognise and change the following colours: - #ffd42a - #ffdd55 - #ffe680 - #ffeeaa - #fff6d5 - Green is used as base colour for changing the ``TERTIARY`` colour of the graphic in-game, and the game will only recognise and change the following colours: - #abc837 - #bcd35f - #cdde87 - #dde9af - #eef4d7 As you can see above, weapons differ from clothing in that their ``Red`` colour is recoloured based on the weapon’s damage type! The ``primaryColours``, ``secondaryColours``, and ``tertiaryColours`` defined below are for recolouring the ``Orange``, ``Yellow``, and ``Green`` values, respectively. **Any gradients that you use should be called:** ``innoGrad1``, ``innoGrad2``, etc. You can see a visual representation of these colours (as used in clothing) here: `https://www.lilithsthrone.com/wiki/doku.php?id=modding_wiki:modding:creating_clothes `_ Colour lists to be used can be found here: `https://github.com/Innoxia/liliths-throne-public/blob/master/src/com/lilithsthrone/utils/ColourListPresets.java `_ .. code:: xml 1.30 customColours ~~~~~~~~~~~~~~~~~~ You can define any number of custom colours to replace the shades you’ve coloured your svg with. If you have used the primary/secondary/tertiary elements up above, then do not use their associated colour hexes. (i.e. If you’ve defined a primaryColours element, do not use #ff7f2a, #ff9955, #ffb380, #ffccaa, or #ffe6d5 in the customColour attributes.) You should NEVER use the primary recolouring shades, as they are always reserved for the damage type’s colour: #ff2a2a, #ff5555, #ff8080, #ffaaaa, or #ffd5d5 .. code:: xml CLOTHING_STEEL CLOTHING_BLACK 1.31 itemTags ~~~~~~~~~~~~~ Special item tags that apply to this weapon. Values can be found here: `https://github.com/Innoxia/liliths-throne-public/blob/master/src/com/lilithsthrone/game/inventory/ItemTag.java `_ .. code:: xml SOLD_BY_VICKY WEAPON_BLADE 2 hitDescription ---------------- Descriptions that are used when hitting an enemy. One of the ``hitText`` values will be randomly selected each time the attacker hits their target. Follow the same guidelines as ``equipText``. You can add hit descriptions which will only be shown on a critical hit by using the ``criticalHitText`` element. This is optional, and you don’t need to define any critical hit descriptions. If none are define and a critical hit occurs, a regular ``hitText`` will be used instead. .. code:: xml 3 missDescription ----------------- Descriptions that are used when missing an enemy. One of the missText values will be randomly selected each time the attacker misses their target. Follow the same guidelines as equipText. .. code:: xml