(The doll definitions are too complicated.)
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10050 c06c8d41-db1a-0410-9941-cceddc491573
LV5VQHTUP5OPVIV6FGDX5EJTHT6UJYU7MDPNYSEWQRK3GTDIJ6MAC
22ZPAVDZLX4R66AODFVA56HH4T3XU62UUON6LYZG3GGTXCTD3YVAC
KC7HKOPRUKHHZBJMSUHPELMELYEJ3MW66ZXVZW5S5KUHPMCYEZBAC
DCZMEKDHQWSQCQYQD6ZXB3XOMWLVLPSPVSBVVMPXMSZF7GO3BVCAC
Q3B3UVMYEVC4YJUPYVSNTR4DJH4E6J4JJDHZNT5LNOCHCPPMEMXAC
3SK2OEKJBQUGGYU2PJ7BWBGMKS53K2JH6HKL65AWTFN6JVZRG2PAC
25CH7HH4LKXFIZ75YNMXS3TSXO6O27DYSOPLOD45K4OCNFWLS4LQC
ZQ55TG7UDO6QYKNZGYLETDPGZ7TEWMCCT5S4IU4XMQOLTM6DZYHQC
RXZRRWQZH7H3E66ENDI6WTSDDTC5F7MDGIMZTEDYDE4YCUQN4CSAC
BMF6Y2AW2UKQ4J2KKWZOF4MFRMIU4PJG5DT72D4H6ZUV56MXR7SQC
LDBTCT5WIPLJPZWXS2RUQ26QKISCUUTLO77M464WOE6VSYSNPKYAC
NHDY5NMP7SGSOFT6PQS2PN6YPLUEFRTD3LXNLYFHHL5G27QY65FQC
K4HCETXKKZ4PYT3EG7EIRXV2P6LJXZDMKZ2J3LRPIEAWS4F4B3EAC
6FEZL55YR24UK2S72K23U25SM5YVMMT3FEYZGI4HTKQQUCATXUYAC
LP5EK64IEM7AHNYQID4GGKOQJQNZLKY4DCCZN47SIUZ6IXAXH5UAC
SHSIZVHSB4RPTLGMFJXUDVHF3FTEZZYCRIH4CBZP4MXOBR3HC4QAC
WFG3MHLJUHQEHV65SPAIOI74NIZTGM447T4WKWKF7CMUIUNRUQOAC
OCGSM3TA4KYVM4JXHTHPA2SLY7EF6NPSIU4LJDRSQ2PJ6X7BP6CQC
U4EZJ7TIJLEYKFYGH6T4MHHDTN3JTO4KGCI3BLZKDNVKV3TVHUUQC
3XRTONH32W5DNI2V2SGAHXN3EHOZQ26ZXMVYL5TRP6HLQN7P4HNAC
DTO3EUKWHZ5RJNGNCFYXSOVTIPVXPP637F2W7WFGYKJ7JK7VNKNQC
ZIWGOQJ73QVKKG7UDUKHJ5BSCUFHWYNXUF342OO4CROUX6XPBVOAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
LY7DLLD7IKL6ZQPVROLDJ46XRM5CMAAEBRFDKJ4M53CPC5GFCGSQC
}
sub write_tiles
{
my $tilefile = "dc-unrand.txt";
print "Updating $tilefile...\n";
die "Can't write to $tilefile\n" if (-e $tilefile && !-w $tilefile);
unless (open(TILES, ">$tilefile"))
{
die "Couldn't open '$tilefile' for writing: $!\n";
}
my %art_by_type = ();
foreach my $artefact (@all_artefacts)
{
next if ($artefact->{NAME} =~ /DUMMY/);
if ($artefact->{TILE} eq "")
{
print STDERR "No tile defined for '$artefact->{NAME}'\n";
next;
}
# The path always has the form /item/$folder/artefact.
my $type = $artefact->{base_type} || "";
my $folder = "";
if ($type eq "OBJ_WEAPONS")
{
$folder = "weapon";
}
elsif ($type eq "OBJ_ARMOUR")
{
$folder = "armour";
}
elsif ($type eq "OBJ_JEWELLERY")
{
if ($artefact->{sub_type} =~ /RING_/)
{
$folder = "ring";
}
else
{
$folder = "amulet";
}
}
else
{
next;
}
my $definition = "$artefact->{TILE} UNRAND_$artefact->{_ENUM}";
my $needrim = ($artefact->{TILERIM} ? "1" : "0");
if (defined $art_by_type{$folder})
{
if (defined $art_by_type{$folder}{$needrim})
{
push @{$art_by_type{$folder}{$needrim}}, $definition;
}
else
{
$art_by_type{$folder}{$needrim} = [$definition];
}
}
else
{
$art_by_type{$folder} = {$needrim => [$definition]};
}
}
# Output the tile definitions sorted by type (and thus path).
foreach my $type (keys %art_by_type)
{
print TILES "%sdir item/$type/artefact\n";
foreach my $needrim (sort keys %{$art_by_type{$type}})
{
print TILES "%rim 1\n" if ($needrim);
foreach my $def (@{$art_by_type{$type}{$needrim}})
{
print TILES "$def\n";
}
print TILES "%rim 0\n" if ($needrim);
}
print TILES "\n";
}
close(TILES);
# Create tiledef-unrand.cc for the function unrandart_to_tile().
# Should we also create tiledef-unrand.h this way?
$tilefile = "tiledef-unrand.cc";
print "Updating $tilefile...\n";
die "Can't write to $tilefile\n" if (-e $tilefile && !-w $tilefile);
unless (open(TILES, ">$tilefile"))
{
die "Couldn't open '$tilefile' for writing: $!\n";
}
print TILES << "HEADER_END";
// This file has been automatically generated.
#include "AppHdr.h"
#include "tiledef-unrand.h"
#include "artefact.h"
#include "tiledef-main.h"
int unrandart_to_tile(int unrand)
{
switch (unrand)
{
HEADER_END
my $longest_enum = 0;
foreach my $artefact (@all_artefacts)
{
my $enum = $artefact->{_ENUM};
my $len = length($enum);
$longest_enum = $len if ($len > $longest_enum);
}
$longest_enum += length("UNRAND_");
foreach my $artefact (@all_artefacts)
{
next if ($artefact->{NAME} =~ /DUMMY/);
next if ($artefact->{TILE} eq "");
my $enum = "UNRAND_$artefact->{_ENUM}";
print TILES (" " x 4) . "case $enum:"
. " " x ($longest_enum - length($enum) + 2) . "return TILE_$enum;\n";
}
print TILES (" " x 4) . "default: return -1;\n";
print TILES (" " x 4) . "}\n";
print TILES "}\n\n";
close(TILES);
switch (idx)
{
case UNRAND_SINGING_SWORD: return TILE_SPWPN_SINGING_SWORD;
case UNRAND_TROG: return TILE_SPWPN_WRATH_OF_TROG;
case UNRAND_CURSES: return TILE_SPWPN_SCYTHE_OF_CURSES;
case UNRAND_VARIABILITY: return TILE_SPWPN_MACE_OF_VARIABILITY;
case UNRAND_PRUNE: return TILE_SPWPN_GLAIVE_OF_PRUNE;
case UNRAND_TORMENT: return TILE_SPWPN_SCEPTRE_OF_TORMENT;
case UNRAND_ZONGULDROK: return TILE_SPWPN_SWORD_OF_ZONGULDROK;
case UNRAND_CEREBOV: return TILE_SPWPN_SWORD_OF_CEREBOV;
case UNRAND_DISPATER: return TILE_SPWPN_STAFF_OF_DISPATER;
case UNRAND_ASMODEUS: return TILE_SPWPN_SCEPTRE_OF_ASMODEUS;
case UNRAND_POWER: return TILE_SPWPN_SWORD_OF_POWER;
case UNRAND_OLGREB: return TILE_SPWPN_STAFF_OF_OLGREB;
case UNRAND_VAMPIRES_TOOTH: return TILE_SPWPN_VAMPIRES_TOOTH;
case UNRAND_WUCAD_MU: return TILE_SPWPN_STAFF_OF_WUCAD_MU;
// Weapons
case UNRAND_BLOODBANE: return TILE_URAND_BLOODBANE;
case UNRAND_FLAMING_DEATH: return TILE_URAND_FLAMING_DEATH;
case UNRAND_BRILLIANCE: return TILE_URAND_BRILLIANCE;
case UNRAND_LEECH: return TILE_URAND_LEECH;
case UNRAND_CHILLY_DEATH: return TILE_URAND_CHILLY_DEATH;
case UNRAND_MORG: return TILE_URAND_MORG;
case UNRAND_FINISHER: return TILE_URAND_FINISHER;
case UNRAND_PUNK: return TILE_URAND_PUNK;
case UNRAND_KRISHNA: return TILE_URAND_KRISHNA;
case UNRAND_SKULLCRUSHER: return TILE_URAND_SKULLCRUSHER;
case UNRAND_BLOWGUN_ASSASSIN: return TILE_URAND_BLOWGUN_ASSASSIN;
case UNRAND_GUARD: return TILE_URAND_GUARD;
case UNRAND_JIHAD: return TILE_URAND_JIHAD;
case UNRAND_DOOM_KNIGHT: return TILE_URAND_DOOM_KNIGHT;
case UNRAND_EOS: return TILE_URAND_EOS;
case UNRAND_BOTONO: return TILE_URAND_BOTONO;
case UNRAND_OCTOPUS_KING: return TILE_URAND_OCTOPUS_KING;
case UNRAND_ARGA: return TILE_URAND_ARGA;
case UNRAND_ELEMENTAL_STAFF: return TILE_URAND_ELEMENTAL;
case UNRAND_SNIPER: return TILE_URAND_SNIPER;
case UNRAND_PLUTONIUM_SWORD: return TILE_URAND_PLUTONIUM;
case UNRAND_UNDEADHUNTER: return TILE_URAND_UNDEADHUNTER;
case UNRAND_WYRMBANE: return TILE_URAND_WYRMBANE;
case UNRAND_SPRIGGANS_KNIFE: return TILE_URAND_SPRIGGANS_KNIFE;
case UNRAND_SERPENT_SCOURGE: return TILE_URAND_SERPENT_SCOURGE;
case UNRAND_ACCURACY: return TILE_URAND_KNIFE_OF_ACCURACY;
case UNRAND_HELLFIRE: return TILE_URAND_FIERY_DEVIL;
case UNRAND_PIERCER: return TILE_URAND_PIERCER;
case UNRAND_CRYSTAL_SPEAR: return TILE_URAND_CRYSTAL_SPEAR;
// Armour
case UNRAND_IGNORANCE: return TILE_URAND_IGNORANCE;
case UNRAND_AUGMENTATION: return TILE_URAND_AUGMENTATION;
case UNRAND_THIEF: return TILE_URAND_THIEF;
case UNRAND_BULLSEYE: return TILE_URAND_BULLSEYE;
case UNRAND_DYROVEPREVA: return TILE_URAND_DYROVEPREVA;
case UNRAND_MISFORTUNE: return TILE_URAND_MISFORTUNE;
case UNRAND_FLASH: return TILE_URAND_FLASH;
case UNRAND_LEAR: return TILE_URAND_LEAR;
case UNRAND_ZHOR: return TILE_URAND_ZHOR;
case UNRAND_SALAMANDER: return TILE_URAND_SALAMANDER;
case UNRAND_WAR: return TILE_URAND_WAR;
case UNRAND_RESISTANCE: return TILE_URAND_RESISTANCE;
case UNRAND_FOLLY: return TILE_URAND_FOLLY;
case UNRAND_MAXWELL: return TILE_URAND_MAXWELL;
case UNRAND_DRAGONMASK: return TILE_URAND_DRAGONMASK;
case UNRAND_NIGHT: return TILE_URAND_NIGHT;
case UNRAND_DRAGON_KING: return TILE_URAND_DRAGON_KING;
case UNRAND_ALCHEMIST: return TILE_URAND_ALCHEMIST;
case UNRAND_FENCERS_GLOVES: return TILE_URAND_FENCER;
case UNRAND_BOOTS_ASSASSIN: return TILE_URAND_BOOTS_ASSASSIN;
case UNRAND_STARLIGHT: return TILE_URAND_STARLIGHT;
case UNRAND_RATSKIN_CLOAK: return TILE_URAND_RATSKIN_CLOAK;
const int tile = unrandart_to_tile(idx);
if (tile != -1)
return tile;
// Jewellery
case UNRAND_SHADOWS: return TILE_URAND_SHADOWS;
case UNRAND_AIR: return TILE_URAND_AIR;
case UNRAND_CEKUGOB: return TILE_URAND_CEKUGOB;
case UNRAND_FOUR_WINDS: return TILE_URAND_FOUR_WINDS;
case UNRAND_BLOODLUST: return TILE_URAND_BLOODLUST;
case UNRAND_SHAOLIN: return TILE_URAND_SHAOLIN;
case UNRAND_ROBUSTNESS: return TILE_URAND_ROBUSTNESS;
case UNRAND_MAGE: return TILE_URAND_MAGE;
case UNRAND_SHIELDING: return TILE_URAND_BROOCH_OF_SHIELDING;
default: return TILE_TODO;
}
return TILE_TODO;
%rim 0
%sdir item/armour/artefact
urand_ignorance URAND_IGNORANCE
urand_augmentation URAND_AUGMENTATION
urand_thief URAND_THIEF
urand_bullseye URAND_BULLSEYE
urand_dyrovepreva URAND_DYROVEPREVA
urand_misfortune URAND_MISFORTUNE
urand_flash URAND_FLASH
urand_lear URAND_LEAR
urand_zhor URAND_ZHOR
urand_salamander URAND_SALAMANDER
urand_war URAND_WAR
urand_resistance URAND_RESISTANCE
urand_folly URAND_FOLLY
urand_maxwell URAND_MAXWELL
urand_dragonmask URAND_DRAGONMASK
urand_night URAND_NIGHT
urand_dragon_king URAND_DRAGON_KING
urand_alchemist URAND_ALCHEMIST
urand_fencer URAND_FENCER
urand_starlight URAND_STARLIGHT
%sdir item/ring/artefact
urand_shadows URAND_SHADOWS
urand_shaolin URAND_SHAOLIN
urand_robustness URAND_ROBUSTNESS
urand_mage URAND_MAGE
%sdir item/amulet/artefact
urand_cekugob URAND_CEKUGOB
urand_four_winds URAND_FOUR_WINDS
urand_bloodlust URAND_BLOODLUST
urand_brooch_of_shielding URAND_BROOCH_OF_SHIELDING
urand_air URAND_AIR
urand_ratskin_cloak URAND_RATSKIN_CLOAK
urand_assassin URAND_BOOTS_ASSASSIN
%rim 1
urand_serpent_scourge URAND_SERPENT_SCOURGE
urand_wyrmbane URAND_WYRMBANE
urand_spriggans_knife URAND_SPRIGGANS_KNIFE
urand_knife_of_accuracy URAND_KNIFE_OF_ACCURACY
urand_blowgun URAND_BLOWGUN_ASSASSIN
%sdir item/weapon/artefact
urand_bloodbane URAND_BLOODBANE
urand_flaming_death URAND_FLAMING_DEATH
urand_brilliance URAND_BRILLIANCE
urand_leech URAND_LEECH
urand_chilly_death URAND_CHILLY_DEATH
urand_morg URAND_MORG
urand_finisher URAND_FINISHER
urand_punk URAND_PUNK
urand_krishna URAND_KRISHNA
urand_skullcrusher URAND_SKULLCRUSHER
urand_guard URAND_GUARD
urand_jihad URAND_JIHAD
urand_fiery_devil URAND_FIERY_DEVIL
urand_doom_knight URAND_DOOM_KNIGHT
urand_eos URAND_EOS
urand_octopus_king URAND_OCTOPUS_KING
urand_arga URAND_ARGA
urand_elemental URAND_ELEMENTAL
urand_sniper URAND_SNIPER
urand_plutonium URAND_PLUTONIUM
urand_undeadhunter URAND_UNDEADHUNTER
urand_crystal_spear URAND_CRYSTAL_SPEAR
urand_piercer URAND_PIERCER
urand_botono URAND_BOTONO
#ifndef TILEDEF_UNRAND_H
#define TILEDEF_UNRAND_H
int unrandart_to_tile(int unrand);
#endif
// This file has been automatically generated.
#include "AppHdr.h"
#include "tiledef-unrand.h"
#include "artefact.h"
#include "tiledef-main.h"
int unrandart_to_tile(int unrand)
{
switch (unrand)
{
case UNRAND_SINGING_SWORD: return TILE_UNRAND_SINGING_SWORD;
case UNRAND_TROG: return TILE_UNRAND_TROG;
case UNRAND_VARIABILITY: return TILE_UNRAND_VARIABILITY;
case UNRAND_PRUNE: return TILE_UNRAND_PRUNE;
case UNRAND_POWER: return TILE_UNRAND_POWER;
case UNRAND_OLGREB: return TILE_UNRAND_OLGREB;
case UNRAND_WUCAD_MU: return TILE_UNRAND_WUCAD_MU;
case UNRAND_VAMPIRES_TOOTH: return TILE_UNRAND_VAMPIRES_TOOTH;
case UNRAND_CURSES: return TILE_UNRAND_CURSES;
case UNRAND_TORMENT: return TILE_UNRAND_TORMENT;
case UNRAND_ZONGULDROK: return TILE_UNRAND_ZONGULDROK;
case UNRAND_CEREBOV: return TILE_UNRAND_CEREBOV;
case UNRAND_DISPATER: return TILE_UNRAND_DISPATER;
case UNRAND_ASMODEUS: return TILE_UNRAND_ASMODEUS;
case UNRAND_BLOODBANE: return TILE_UNRAND_BLOODBANE;
case UNRAND_FLAMING_DEATH: return TILE_UNRAND_FLAMING_DEATH;
case UNRAND_BRILLIANCE: return TILE_UNRAND_BRILLIANCE;
case UNRAND_LEECH: return TILE_UNRAND_LEECH;
case UNRAND_CHILLY_DEATH: return TILE_UNRAND_CHILLY_DEATH;
case UNRAND_MORG: return TILE_UNRAND_MORG;
case UNRAND_FINISHER: return TILE_UNRAND_FINISHER;
case UNRAND_PUNK: return TILE_UNRAND_PUNK;
case UNRAND_KRISHNA: return TILE_UNRAND_KRISHNA;
case UNRAND_SKULLCRUSHER: return TILE_UNRAND_SKULLCRUSHER;
case UNRAND_GUARD: return TILE_UNRAND_GUARD;
case UNRAND_JIHAD: return TILE_UNRAND_JIHAD;
case UNRAND_HELLFIRE: return TILE_UNRAND_HELLFIRE;
case UNRAND_DOOM_KNIGHT: return TILE_UNRAND_DOOM_KNIGHT;
case UNRAND_EOS: return TILE_UNRAND_EOS;
case UNRAND_BOTONO: return TILE_UNRAND_BOTONO;
case UNRAND_OCTOPUS_KING: return TILE_UNRAND_OCTOPUS_KING;
case UNRAND_ARGA: return TILE_UNRAND_ARGA;
case UNRAND_ELEMENTAL_STAFF: return TILE_UNRAND_ELEMENTAL_STAFF;
case UNRAND_SNIPER: return TILE_UNRAND_SNIPER;
case UNRAND_PIERCER: return TILE_UNRAND_PIERCER;
case UNRAND_BLOWGUN_ASSASSIN: return TILE_UNRAND_BLOWGUN_ASSASSIN;
case UNRAND_WYRMBANE: return TILE_UNRAND_WYRMBANE;
case UNRAND_SPRIGGANS_KNIFE: return TILE_UNRAND_SPRIGGANS_KNIFE;
case UNRAND_PLUTONIUM_SWORD: return TILE_UNRAND_PLUTONIUM_SWORD;
case UNRAND_UNDEADHUNTER: return TILE_UNRAND_UNDEADHUNTER;
case UNRAND_SERPENT_SCOURGE: return TILE_UNRAND_SERPENT_SCOURGE;
case UNRAND_ACCURACY: return TILE_UNRAND_ACCURACY;
case UNRAND_CRYSTAL_SPEAR: return TILE_UNRAND_CRYSTAL_SPEAR;
case UNRAND_IGNORANCE: return TILE_UNRAND_IGNORANCE;
case UNRAND_AUGMENTATION: return TILE_UNRAND_AUGMENTATION;
case UNRAND_THIEF: return TILE_UNRAND_THIEF;
case UNRAND_BULLSEYE: return TILE_UNRAND_BULLSEYE;
case UNRAND_DYROVEPREVA: return TILE_UNRAND_DYROVEPREVA;
case UNRAND_MISFORTUNE: return TILE_UNRAND_MISFORTUNE;
case UNRAND_FLASH: return TILE_UNRAND_FLASH;
case UNRAND_BOOTS_ASSASSIN: return TILE_UNRAND_BOOTS_ASSASSIN;
case UNRAND_LEAR: return TILE_UNRAND_LEAR;
case UNRAND_ZHOR: return TILE_UNRAND_ZHOR;
case UNRAND_SALAMANDER: return TILE_UNRAND_SALAMANDER;
case UNRAND_WAR: return TILE_UNRAND_WAR;
case UNRAND_RESISTANCE: return TILE_UNRAND_RESISTANCE;
case UNRAND_FOLLY: return TILE_UNRAND_FOLLY;
case UNRAND_MAXWELL: return TILE_UNRAND_MAXWELL;
case UNRAND_DRAGONMASK: return TILE_UNRAND_DRAGONMASK;
case UNRAND_NIGHT: return TILE_UNRAND_NIGHT;
case UNRAND_DRAGON_KING: return TILE_UNRAND_DRAGON_KING;
case UNRAND_ALCHEMIST: return TILE_UNRAND_ALCHEMIST;
case UNRAND_FENCERS_GLOVES: return TILE_UNRAND_FENCERS_GLOVES;
case UNRAND_STARLIGHT: return TILE_UNRAND_STARLIGHT;
case UNRAND_RATSKIN_CLOAK: return TILE_UNRAND_RATSKIN_CLOAK;
case UNRAND_AIR: return TILE_UNRAND_AIR;
case UNRAND_SHADOWS: return TILE_UNRAND_SHADOWS;
case UNRAND_CEKUGOB: return TILE_UNRAND_CEKUGOB;
case UNRAND_FOUR_WINDS: return TILE_UNRAND_FOUR_WINDS;
case UNRAND_BLOODLUST: return TILE_UNRAND_BLOODLUST;
case UNRAND_SHAOLIN: return TILE_UNRAND_SHAOLIN;
case UNRAND_ROBUSTNESS: return TILE_UNRAND_ROBUSTNESS;
case UNRAND_MAGE: return TILE_UNRAND_MAGE;
case UNRAND_SHIELDING: return TILE_UNRAND_SHIELDING;
default: return -1;
}
}
%sdir item/armour/artefact
urand_ignorance UNRAND_IGNORANCE
urand_augmentation UNRAND_AUGMENTATION
urand_thief UNRAND_THIEF
urand_bullseye UNRAND_BULLSEYE
urand_dyrovepreva UNRAND_DYROVEPREVA
urand_misfortune UNRAND_MISFORTUNE
urand_flash UNRAND_FLASH
urand_assassin UNRAND_BOOTS_ASSASSIN
urand_lear UNRAND_LEAR
urand_zhor UNRAND_ZHOR
urand_salamander UNRAND_SALAMANDER
urand_war UNRAND_WAR
urand_resistance UNRAND_RESISTANCE
urand_folly UNRAND_FOLLY
urand_maxwell UNRAND_MAXWELL
urand_dragonmask UNRAND_DRAGONMASK
urand_night UNRAND_NIGHT
urand_dragon_king UNRAND_DRAGON_KING
urand_alchemist UNRAND_ALCHEMIST
urand_fencer UNRAND_FENCERS_GLOVES
urand_starlight UNRAND_STARLIGHT
urand_ratskin_cloak UNRAND_RATSKIN_CLOAK
%sdir item/weapon/artefact
spwpn_singing_sword UNRAND_SINGING_SWORD
spwpn_wrath_of_trog UNRAND_TROG
spwpn_mace_of_variability UNRAND_VARIABILITY
spwpn_glaive_of_prune UNRAND_PRUNE
spwpn_staff_of_olgreb UNRAND_OLGREB
spwpn_wucad_mu UNRAND_WUCAD_MU
spwpn_vampires_tooth UNRAND_VAMPIRES_TOOTH
spwpn_scythe_of_curses UNRAND_CURSES
urand_bloodbane UNRAND_BLOODBANE
urand_flaming_death UNRAND_FLAMING_DEATH
urand_brilliance UNRAND_BRILLIANCE
urand_leech UNRAND_LEECH
urand_chilly_death UNRAND_CHILLY_DEATH
urand_morg UNRAND_MORG
urand_finisher UNRAND_FINISHER
urand_punk UNRAND_PUNK
urand_krishna UNRAND_KRISHNA
urand_skullcrusher UNRAND_SKULLCRUSHER
urand_guard UNRAND_GUARD
urand_jihad UNRAND_JIHAD
urand_fiery_devil UNRAND_HELLFIRE
urand_doom_knight UNRAND_DOOM_KNIGHT
urand_eos UNRAND_EOS
urand_botono UNRAND_BOTONO
urand_octopus_king UNRAND_OCTOPUS_KING
urand_arga UNRAND_ARGA
urand_elemental UNRAND_ELEMENTAL_STAFF
urand_sniper UNRAND_SNIPER
urand_piercer UNRAND_PIERCER
urand_plutonium UNRAND_PLUTONIUM_SWORD
urand_undeadhunter UNRAND_UNDEADHUNTER
urand_crystal_spear UNRAND_CRYSTAL_SPEAR
%rim 1
spwpn_sword_of_power UNRAND_POWER
spwpn_sceptre_of_torment UNRAND_TORMENT
spwpn_sword_of_zonguldrok UNRAND_ZONGULDROK
spwpn_sword_of_cerebov UNRAND_CEREBOV
spwpn_staff_of_dispater UNRAND_DISPATER
spwpn_sceptre_of_asmodeus UNRAND_ASMODEUS
urand_blowgun UNRAND_BLOWGUN_ASSASSIN
urand_wyrmbane UNRAND_WYRMBANE
urand_spriggans_knife UNRAND_SPRIGGANS_KNIFE
urand_serpent_scourge UNRAND_SERPENT_SCOURGE
urand_knife_of_accuracy UNRAND_ACCURACY
%rim 0
%sdir item/amulet/artefact
urand_air UNRAND_AIR
urand_cekugob UNRAND_CEKUGOB
urand_four_winds UNRAND_FOUR_WINDS
urand_bloodlust UNRAND_BLOODLUST
urand_brooch_of_shielding UNRAND_SHIELDING
%sdir item/ring/artefact
urand_shadows UNRAND_SHADOWS
urand_shaolin UNRAND_SHAOLIN
urand_robustness UNRAND_ROBUSTNESS
urand_mage UNRAND_MAGE
#####OBJ_WEAPONS
#####ARTIFACTS
%sdir item/weapon/artefact
spwpn_singing_sword SPWPN_SINGING_SWORD
spwpn_wrath_of_trog SPWPN_WRATH_OF_TROG
spwpn_scythe_of_curses SPWPN_SCYTHE_OF_CURSES
spwpn_mace_of_variability SPWPN_MACE_OF_VARIABILITY
spwpn_glaive_of_prune SPWPN_GLAIVE_OF_PRUNE
%rim 1
spwpn_sceptre_of_torment SPWPN_SCEPTRE_OF_TORMENT
spwpn_sword_of_zonguldrok SPWPN_SWORD_OF_ZONGULDROK
spwpn_sword_of_cerebov SPWPN_SWORD_OF_CEREBOV
spwpn_staff_of_dispater SPWPN_STAFF_OF_DISPATER
spwpn_sceptre_of_asmodeus SPWPN_SCEPTRE_OF_ASMODEUS
spwpn_sword_of_power SPWPN_SWORD_OF_POWER
%rim 0
spwpn_staff_of_olgreb SPWPN_STAFF_OF_OLGREB
spwpn_vampires_tooth SPWPN_VAMPIRES_TOOTH
spwpn_wucad_mu SPWPN_STAFF_OF_WUCAD_MU
# player doll. The former needs to be placed into rltiles/item and defined in
# dc-item.txt, the latter in the appropriate player/ subfolder and defined in
# dc-player.txt. In tilepick.cc the unrandart must then be assigned to the tile
# name defined in the dc-***.txt.
# For a start, placeholders (e.g. reference to the base type tiles) are fine,
# but they'll eventually need to be replaced with proper tiles.
# player doll. For the former, you can define the image file within this
# file using the keyword TILE. The files are assumed to be png and the syntax
# does not include the file type. The artefacts' base type decides where a
# tile needs to be placed. These are as follows:
# Weapons: rltiles/item/weapon/artefact
# Armour: rltiles/item/armour/artefact
# Rings: rltiles/item/ring/artefact
# Amulets: rltiles/item/amulet/artefact
#
# For a start, placeholders (e.g. the base type tiles) are fine, but they'll
# eventually need to be replaced with proper tiles.
# If the tile requires a black outline (because it would be hard to see
# otherwise) add "BOOL: tilerim". Otherwise the image is used without
# modification.
#
# For the equipment tile, place the tile into the appropriate subfolder of
# player/ subfolder and define it in dc-player.txt. You'll also need to assign
# these tiles to the corresponding artefacts in tilepick.cc, using the keyword
# "TILEP_" plus the equipment slot (as defined by the most recent "parts_ctg"
# in dc-player.txt) plus the actual definition, e.g. TILEP_CLOAK_RATSKIN_CLOAK.
# To find the places where you'll need to add your new tile, simply search
# tilepick.cc for another artefact of the same base type. If no special tile
# has been defined the code will fall through to tiles according to the
# base type and colour.
#
# 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".
# PLUS: The pluses of the artefact. For an object with two pluses,
# this is specified with "plus/plus2". For an object with just one plus,
# this is specified with "plus".
NAME: Sword of Cerebov
APPEAR: great serpentine sword
OBJ: OBJ_WEAPONS/WPN_GREAT_SWORD
PLUS: +6/+6
COLOUR: YELLOW
BRAND: SPWPN_FLAMING
BOOL: cursed
DESC: Eerie flames cover its twisted blade.
NAME: Sword of Cerebov
APPEAR: great serpentine sword
OBJ: OBJ_WEAPONS/WPN_GREAT_SWORD
PLUS: +6/+6
COLOUR: YELLOW
TILE: spwpn_sword_of_cerebov
BRAND: SPWPN_FLAMING
BOOL: cursed, tilerim
DESC: Eerie flames cover its twisted blade.
NAME: scimitar of Flaming Death
APPEAR: smoking scimitar
OBJ: OBJ_WEAPONS/WPN_SCIMITAR
PLUS: +7/+5
COLOUR: RED
BRAND: SPWPN_FLAMING
FIRE: 2
COLD: -1
BOOL: poison
MAGIC: 20
NAME: scimitar of Flaming Death
APPEAR: smoking scimitar
OBJ: OBJ_WEAPONS/WPN_SCIMITAR
PLUS: +7/+5
COLOUR: RED
TILE: urand_flaming_death
BRAND: SPWPN_FLAMING
FIRE: 2
COLD: -1
BOOL: poison
MAGIC: 20
NAME: demon blade "Leech"
APPEAR: runed demon blade
OBJ: OBJ_WEAPONS/WPN_DEMON_BLADE
PLUS: +13/+4
COLOUR: MAGENTA
BRAND: SPWPN_VAMPIRICISM
EV: -1
STR: -1
INT: -1
DEX: -1
BOOL: life
CURSED: 4
NAME: demon blade "Leech"
APPEAR: runed demon blade
OBJ: OBJ_WEAPONS/WPN_DEMON_BLADE
PLUS: +13/+4
COLOUR: MAGENTA
TILE: urand_leech
BRAND: SPWPN_VAMPIRICISM
EV: -1
STR: -1
INT: -1
DEX: -1
BOOL: life
CURSED: 4
NAME: dagger of Chilly Death
APPEAR: sapphire dagger
OBJ: OBJ_WEAPONS/WPN_DAGGER
PLUS: +5/+7
COLOUR: LIGHTBLUE
BRAND: SPWPN_FREEZING
FIRE: -1
COLD: 2
MAGIC: 20
BOOL: poison
DESC: A dagger made of one huge piece of sapphire.
NAME: dagger of Chilly Death
APPEAR: sapphire dagger
OBJ: OBJ_WEAPONS/WPN_DAGGER
PLUS: +5/+7
COLOUR: LIGHTBLUE
TILE: urand_chilly_death
BRAND: SPWPN_FREEZING
FIRE: -1
COLD: 2
MAGIC: 20
BOOL: poison
DESC: A dagger made of one huge piece of sapphire.
NAME: scythe "Finisher"
APPEAR: blackened scythe
OBJ: OBJ_WEAPONS/WPN_SCYTHE
PLUS: +3/+5
COLOUR: DARKGREY
BRAND: SPWPN_SPEED
STR: 3
BOOL: cursed
DESC: A long and sharp scythe, specially modified for combat purposes.
NAME: scythe "Finisher"
APPEAR: blackened scythe
OBJ: OBJ_WEAPONS/WPN_SCYTHE
PLUS: +3/+5
COLOUR: DARKGREY
TILE: urand_finisher
BRAND: SPWPN_SPEED
STR: 3
BOOL: cursed
DESC: A long and sharp scythe, specially modified for combat purposes.
NAME: sling "Punk"
APPEAR: blue sling
OBJ: OBJ_WEAPONS/WPN_SLING
PLUS: +9/+12
COLOUR: LIGHTBLUE
BRAND: SPWPN_FROST
COLD: 1
DESC: A sling made of weird blue leather.
NAME: sling "Punk"
APPEAR: blue sling
OBJ: OBJ_WEAPONS/WPN_SLING
PLUS: +9/+12
COLOUR: LIGHTBLUE
TILE: urand_punk
BRAND: SPWPN_FROST
COLD: 1
DESC: A sling made of weird blue leather.
NAME: giant club "Skullcrusher"
APPEAR: brutal giant club
OBJ: OBJ_WEAPONS/WPN_GIANT_CLUB
PLUS: +0/+5
COLOUR: BROWN
BRAND: SPWPN_SPEED
STR: 5
NAME: giant club "Skullcrusher"
APPEAR: brutal giant club
OBJ: OBJ_WEAPONS/WPN_GIANT_CLUB
PLUS: +0/+5
COLOUR: BROWN
TILE: urand_skullcrusher
BRAND: SPWPN_SPEED
STR: 5
NAME: crossbow "Hellfire"
APPEAR: flaming crossbow
OBJ: OBJ_WEAPONS/WPN_CROSSBOW
PLUS: +6/+9
COLOUR: LIGHTRED
BRAND: SPWPN_FLAME
FIRE: 2
COLD: -1
MAGIC: 40
DESC: A flaming crossbow, forged in the fires of the Hells.
NAME: crossbow "Hellfire"
APPEAR: flaming crossbow
OBJ: OBJ_WEAPONS/WPN_CROSSBOW
PLUS: +6/+9
COLOUR: LIGHTRED
TILE: urand_fiery_devil
BRAND: SPWPN_FLAME
FIRE: 2
COLD: -1
MAGIC: 40
DESC: A flaming crossbow, forged in the fires of the Hells.
NAME: hand crossbow "Sniper"
APPEAR: black crossbow
OBJ: OBJ_WEAPONS/WPN_HAND_CROSSBOW
PLUS: +10/+0
COLOUR: DARKGREY
BRAND: SPWPN_VENOM
BOOL: seeinv
DESC: A hand crossbow made of some black material.
NAME: hand crossbow "Sniper"
APPEAR: black crossbow
OBJ: OBJ_WEAPONS/WPN_HAND_CROSSBOW
PLUS: +10/+0
COLOUR: DARKGREY
TILE: urand_sniper
BRAND: SPWPN_VENOM
BOOL: seeinv
DESC: A hand crossbow made of some black material.
NAME: longbow "Piercer"
APPEAR: very long metal bow
OBJ: OBJ_WEAPONS/WPN_LONGBOW
PLUS: +2/+10
COLOUR: CYAN
BRAND: SPWPN_VORPAL
EV: -2
DESC: An exceptionally large metal longbow.
NAME: longbow "Piercer"
APPEAR: very long metal bow
OBJ: OBJ_WEAPONS/WPN_LONGBOW
PLUS: +2/+10
COLOUR: CYAN
TILE: urand_piercer
BRAND: SPWPN_VORPAL
EV: -2
DESC: An exceptionally large metal longbow.
NAME: great mace "Undeadhunter"
APPEAR: great steel mace
OBJ: OBJ_WEAPONS/WPN_GREAT_MACE
PLUS: +7/+7
COLOUR: LIGHTGREY
BRAND: SPWPN_HOLY_WRATH
BOOL: life
NAME: great mace "Undeadhunter"
APPEAR: great steel mace
OBJ: OBJ_WEAPONS/WPN_GREAT_MACE
PLUS: +7/+7
COLOUR: LIGHTGREY
TILE: urand_undeadhunter
BRAND: SPWPN_HOLY_WRATH
BOOL: life
NAME: shield of Ignorance
APPEAR: dull large shield
OBJ: OBJ_ARMOUR/ARM_LARGE_SHIELD
PLUS: +5
COLOUR: BROWN
AC: 2
EV: 2
INT: -6
BOOL: life
CURSED: 3
NAME: shield of Ignorance
APPEAR: dull large shield
OBJ: OBJ_ARMOUR/ARM_LARGE_SHIELD
PLUS: +5
COLOUR: BROWN
TILE: urand_ignorance
AC: 2
EV: 2
INT: -6
BOOL: life
CURSED: 3
NAME: robe of Augmentation
APPEAR: silk robe
OBJ: OBJ_ARMOUR/ARM_ROBE
PLUS: +4
COLOUR: LIGHTRED
STR: 2
INT: 2
DEX: 2
DESC: A robe made of the finest silk.
NAME: robe of Augmentation
APPEAR: silk robe
OBJ: OBJ_ARMOUR/ARM_ROBE
PLUS: +4
COLOUR: LIGHTRED
TILE: urand_augmentation
STR: 2
INT: 2
DEX: 2
DESC: A robe made of the finest silk.
NAME: crown of Dyrovepreva
APPEAR: jewelled bronze crown
OBJ: OBJ_ARMOUR/ARM_CAP
PLUS: +3
COLOUR: BROWN
INT: 2
METAB: 1
BOOL: elec, seeinv
DESC: A large crown of dull bronze, set with a dazzling array of gemstones.
NAME: crown of Dyrovepreva
APPEAR: jewelled bronze crown
OBJ: OBJ_ARMOUR/ARM_CAP
PLUS: +3
COLOUR: BROWN
TILE: urand_dyrovepreva
INT: 2
METAB: 1
BOOL: elec, seeinv
DESC: A large crown of dull bronze, set with a dazzling array of gemstones.
NAME: skin of Zhor
APPEAR: smelly skin
OBJ: OBJ_ARMOUR/ARM_ANIMAL_SKIN
PLUS: +4
COLOUR: BROWN
COLD: 2
DESC: The skin of some strange animal.
NAME: skin of Zhor
APPEAR: smelly skin
OBJ: OBJ_ARMOUR/ARM_ANIMAL_SKIN
PLUS: +4
COLOUR: BROWN
TILE: urand_zhor
COLD: 2
DESC: The skin of some strange animal.
ENUM: DRAGONMASK
NAME: mask of the Dragon
APPEAR: blue mask
OBJ: OBJ_ARMOUR/ARM_CAP
COLOUR: BLUE
MAGIC: 40
ACC: 2
DAM: 2
BOOL: seeinv
DESC: A blue mask.
ENUM: DRAGONMASK
NAME: mask of the Dragon
APPEAR: blue mask
OBJ: OBJ_ARMOUR/ARM_CAP
COLOUR: BLUE
TILE: urand_dragonmask
MAGIC: 40
ACC: 2
DAM: 2
BOOL: seeinv
DESC: A blue mask.
NAME: armour of the Dragon King
APPEAR: shiny dragon armour
OBJ: OBJ_ARMOUR/ARM_GOLD_DRAGON_ARMOUR
PLUS: +5
COLOUR: YELLOW
MAGIC: 50
NAME: armour of the Dragon King
APPEAR: shiny dragon armour
OBJ: OBJ_ARMOUR/ARM_GOLD_DRAGON_ARMOUR
PLUS: +5
COLOUR: YELLOW
TILE: urand_dragon_king
MAGIC: 50
NAME: hat of the Alchemist
APPEAR: dirty hat
OBJ: OBJ_ARMOUR/ARM_WIZARD_HAT
PLUS: +2
COLOUR: MAGENTA
FIRE: 1
COLD: 1
MAGIC: 30
BOOL: elec
DESC: A dirty hat.
NAME: hat of the Alchemist
APPEAR: dirty hat
OBJ: OBJ_ARMOUR/ARM_WIZARD_HAT
PLUS: +2
COLOUR: MAGENTA
TILE: urand_alchemist
FIRE: 1
COLD: 1
MAGIC: 30
BOOL: elec
DESC: A dirty hat.
NAME: Fencer's gloves
APPEAR: silk gloves
OBJ: OBJ_ARMOUR/ARM_GLOVES
PLUS: +2
COLOUR: WHITE
EV: 3
DEX: 3
ACC: 5
DESC: A pair of gloves made of white silk.
NAME: Fencer's gloves
APPEAR: silk gloves
OBJ: OBJ_ARMOUR/ARM_GLOVES
PLUS: +2
COLOUR: WHITE
TILE: urand_fencer
EV: 3
DEX: 3
ACC: 5
DESC: A pair of gloves made of white silk.
NAME: amulet of the Four Winds
APPEAR: jade amulet
OBJ: OBJ_JEWELLERY/AMU_CLARITY
COLOUR: LIGHTGREEN
BOOL: life
MAGIC: 100
NAME: amulet of the Four Winds
APPEAR: jade amulet
OBJ: OBJ_JEWELLERY/AMU_CLARITY
COLOUR: LIGHTGREEN
TILE: urand_four_winds
BOOL: life
MAGIC: 100