BOOL field, with the different properties all listed at once, separated by commas. E.g., "BOOL: poison, life, elec" gives resistance to posion, negative energy and lightning.
Added documentation of fields to art-data.txt
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10048 c06c8d41-db1a-0410-9941-cceddc491573
KC7HKOPRUKHHZBJMSUHPELMELYEJ3MW66ZXVZW5S5KUHPMCYEZBAC
if ($field eq "OBJ")
if ($field eq "BOOL")
{
my @parts = split(/\s*,\s*/, $value);
my $part;
foreach $part (@parts)
{
my $up = uc($part);
if ($up eq "CURSED")
{
# Start out cursed, but don't re-curse.
$artefact->{CURSED} = -1;
}
elsif (!exists($field_type{$up}))
{
error($artefact, "Unknown bool '$part'");
}
elsif ($field_type{$up} ne "bool")
{
error($artefact, "'$part' is not a boolean");
}
else
{
$artefact->{$up} = 1;
}
}
}
elsif ($field eq "OBJ")
#############################################################################
# Explanation of unusual fields:
# BOOL: Turn certain boolean properties of the artefact on, with the list
# of properties separated by commas. The list includes:
#
# * berserk: Lets wearer evoke berserking ability.
# * blink: Lets wearer evoke the blink ability.
# * cantelep: Lets wearer evoke the teleport ability.
# * cursed: Item is generated cursed.
# * elec: Grants electrical resistance.
# * inv: Lets wearer evoke invisibility ability.
# * lev: Lets wearer evoke levitation ability.
# * life: Grants negative energy resistance.
# * mapping: Lets wearer evoke magic mapping ability.
# * noises: Weapon makes noises.
# * nospell: Prevents wearer from casting spells.
# * notelep: Prevents wearer from teleporting or blinking.
# * poison: Grants poison resistance.
# * rnd_tele: Induces random teleportation.
# * seeinv: Lets wearer see invisible.
# ENUM: Forces the artefacts enumaration literal to something specific.
# For example, "ENUM: FOO" gives the enumeration "UNRAND_FOO". The
# default enumeration is determined as follows:
#
# 1) If there's a string between double quotes, use that.
# 2) If #1 doesn't apply and the name contains " of " or " of the ",
# use what's after that.
# 3) If neither #1 no #2 apply, use the full name.
# 4) Remove approstrophes, change spaces and dashes to underscores,
# uppercase the whole thing, and add "UNRAND_" to the front.
# OBJ: The enumerations of the base type and sub type of the artefact,
# separated by a dash. E.g., OBJ_WEAPONS/WPN_SWORD
# PLUS: The pluses of artefact. For an object with two pluses,
# is specified with "plus/plus2". For an object with just one plus,
# is specified with "plus".
#####
# Explanation of normal fields:
# AC: Armour class modifier (for non-armour artefacts)
# ACC: Accuracy modifier (for non-weapon artefacts)
# ANGRY Each time the wielder of the weapon strikes a victim there's
# a chance of the wielder going berserk, with the chance
# increasing with the value of ANGRY.
# APPEAR: Unidentified appearence of artifact.
# COLD: Cold resistance/vulnerability.
# COLOUR: The colour of the artifact, as listed in defines.h
# CURSED: The artefact has a one-in-num chance of becoming cursed each
# time its equipped.
# DAM: Damage modifier (for non-weapon artefacts)
# DESC: Description which replaces the database (dat/descript/items.txt)
# description of the item.
# DESC_ID: Description which replaces the database desc or DESC when the
# artefact is identified.
# DESC_END: String which goes at the end of the artefacts description, if
# the item is identified.
# DEX: Dexterity modifier.
# EV: Evasion modifier.
# FIRE: Fire reistance/vulnerability.
# INT: Intelligence modifier.
# MAGIC: Magic resistance modifier.
# METAB: Hunger modifier.
# MP: Mana capacity modifier.
# NAME: Name of artefact when identified.
# MUTATE: Gives artifact mutagenic glow.
# STEALTH: Stealth modifier.
# STR: Strenght modifier.
#################################################################3