have already become almost identical to randarts, change "randart" to "artefact" everywhere except for things that deal exclusively with randarts.
Artefact related files will be renamed later.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9921 c06c8d41-db1a-0410-9941-cceddc491573
FAVME2A2U4OUKN2BTISAG5PCI5Y4BN6YVFKCSQQHHZLEVVVF4LKAC OWNA3PAPP5YH4HBNSBSDAG5A7XFMAMPNJ5AJKYYWUOIQEWR5XSQAC BA34JRSHMCRMFKNMNNK46TX7ERXHS5H36TIRTTHJNVCR55J46EEAC TUTFUS6U22EH5ZXTK5GSGL334V3YF6VBH64FMV4T3JX23LNBJOOAC MGJRFND6ON2UWFGG3P7PBHBTR6MEBXVELWY6BY4WYRT6IXRRCH7AC RDZRRV2H4QIV2X3F2FT5NOEWIX56LS3CYS3APOLXUHY6TYNT52LQC Q7OI6GQEBHXWS57TEHHSWA27C7ONAMWDMXJLSRA46K5JUZWJZW5AC VEPVDWCFXJD4PEIKPUW7PWVA7VC2IT65GXLUF4ZYRPLPY4EMWQPQC IXJ2ZADFXOTEOQQQZSGBOIJGTJKDZZZ2AIBFBY4JU7OZUFLH675AC QE7QCIIFVJFS5TC2APT2TQBMXE5H5IZSVQL2FK5GJNUCJYONFEXAC 26NQ45NPCJXWCCVZYUK6AT3DCHWRT2DZV4UH3ULAXIVBV74556QQC USMI3T6OZLBVTEIBO22Q4WGZ6FWXL7TD5YDICN26D5OJ7NJ76MOAC LU56733MPKSGXIYBH4DUPLMRBHL4ZPWTVQMJ4PM4ILWRTSZWIFKAC H2BZTZTPBSGZLGEUBT5IZHQSLEKD75FJSFJWUFG6OZQY2FPF2CBQC YBWBS2W5H36C46SVIDCHYCUDONUUSBBZLJHCQY2ESO3ZBFNBWWEQC 3XCAUQHISGMK5SBFEVCMFQTCXN3ECJZVMKHO7SCZ2YKAWG2OK3DAC E4KOX6TZNYUWGNK4SMNHCUQMRXZ53Q7LI5POQ4REU3PUN5OX4UDAC S6ZETU2X3HBTKBDL2KTAMCNPMPGHEZO2JGMILIWETWC7XXRS5RYQC BMXIXQKM2247TENYZSOULFAT6VSZJNGGFBQ3SN7IOM4ROQRVTHZAC M73AQ575IGVZOOV3ON6EQYEERF3D67H4QAF7SWIX4RLEQROM6ZUAC N6SBZYHPKCHUZ5UQJLYYIEK62TTEV7YWZXHPTPNVHWPHR6XZRF4AC JYEEOUYQ7ZPKOGWUV7VCORBVSOLF2UCBFBH3TR75RGOSS6PNKYUAC KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC HBZDLHYIRJ3QEU4R6GJEINPVASM7YMVZBFR4QSGECNHVC7D6IVGAC H5BVKRORNXTCJKFXQPTFWDURKSUFW24CGSJXBGZCJUP4DHMSVDBQC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC SA3XGRMUEO3K6T4TJJWMWV2SG3JCEGLBM7SAN4IQ5A4VVMHFBCKQC QO5ZJWQ3JK3PEGBPTQSAYIPEJEHG2M2KTD74227G5VG7DVXUL3BQC AUXVWXWIFSTWFA6VZXN2FMG7FQEKRZVV6MD32VQQ7J2RKCXHAVGAC JZTWTPXIUEVACX5B6FYQRVRJD3KQN653C4G4GXT2VSMX4EP7WS3AC YFIVTYI7PMVAXV23DUPXPAQNEY3YSFIXQGSN32I3WVHMMD5XS5DQC OQ4KB7QCJSK7GSW3DYBARH4DCB75HFKLUSOSOZZZ4IUFKNGFRUDQC N5FAAVHNKQZJV2G3JFRW7WKTXB3A4YY6GTVIMBCG5RSA65TKVBGQC SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC 2LJ3PLU4DNUUCK7SYPTK4G4BTDMJ6UEKOKWML6WOIPJKWLFCD5FQC R22TTMI6WXWULC7ODKFF3QCB7MOTETQQ6IR4BUCUPOCQKQNCTT5AC 3ZWALZFSTSIVYXY4BAY6ANGINTDACZC6RSSJTEMQSTSUIE66YOBQC PNFDSBFCGH5IZR7QNF4DQTEV4QXIIO4DWYTSFEOUWLZJVSWNDKAAC QVVC7AYGVA6U64PTNA7L27422NLMO327P22BQKXEVIMPZHIHO7MQC 2KTJHQUX2LTU2BCLS5YXVRRKMOYKKIZAPF2LBKORFGSHEN5IO3IAC EZ3ZUOFAHXI73BSCXNYS36TTK4OGCQBSFEIRVNXUAE64ZVKDW5PAC K4HCETXKKZ4PYT3EG7EIRXV2P6LJXZDMKZ2J3LRPIEAWS4F4B3EAC F42F3QNVICCXWPMNYL2QQJZNOVBVF4MXZUXNUC7KKYIRZ7R5HGPAC 6FEZL55YR24UK2S72K23U25SM5YVMMT3FEYZGI4HTKQQUCATXUYAC WFG3MHLJUHQEHV65SPAIOI74NIZTGM447T4WKWKF7CMUIUNRUQOAC WCJ3KKMEOPOZWA5WQJAWRWFKKYUNY7IKS5ULUIBZ7DXT7F6MVAEQC SN3VSV7G6NF6NLX5E47QJQQFDIPC2LQUUYGZMH6AWBF3FOUHXCBQC SRQJVKQVUY7QGCEBA2VQTWEJ7ADIUSY7L46HJQSQNM5DXYRRH5KAC KPU2SA6G7UECM5N6PNXOT5CCQAYFBN47K5JYBQMFBD25HL2A5GIAC IKKMJHAWBTZFUVGXCLQZ46PV5RRAMNJGUWKPJTVXVMMWW5QGWPLAC P3BAFR6LTI7HANQCRLZWJ7LRJYFPFYIG7OVZV4RZM5EAMODRJKZAC 7AWYHENXBDI4OLKU7JD56YAKT5RO6UZ67HEBNPOILXCIFW6BONRAC YBXZWBUWXXLLYKP5IHXU46AHJ4YO55NM5QE34I3DFB25NLPQXZPAC LTFWXACXWTSFJNSVDFCMC4IJBHUERV6DNCKIECIMRXG2M2U3TYJAC KU5FY6KSLTGH44KEZT4SFANRKCTWCQC7VABCMNYJRZNJSYSOXAKQC XI7X6SNTHG67D4NQWM75HWB6TVRXVFDPGNSQLTXN6JAZBZIVZXIQC FWNNTOEERPUKXPE4OC52UABFZLKIU3O5GRNNLDK4QI4HR2IOU36QC SQEDRNEA7TOPFLWDDPQ65BJDOZAARVFHNMCWQG2SWDXP4W5Z3CLAC EJKHYV2Z6UPRVYUAL4WRW33GBNHYBFPMPA57HMBX2LQKXHIUO5VQC FFNPHXN2TA7MW6LNTLMU5FRPD4RZDYYTFGUV64RNPEUYEUPCFAVAC S2FTVAH7NLTLI5CEINIAMJIW3PTZUE22APSK633Y4PLDZ4L6UK4QC 2JPE6F4MSUTKIAQBSTNK2ZYCXNALCOEAVE6IVGTBJIY4P7DA3I2QC 4PQNMLJKDNIU52JSP6QAC6FK23RZPRHNGLFBCPLMWX4TPTR2YN7AC YXWZYOBUFR4EHBSKXCFGZNK7NIM7IPE2GMZYIXEJTUPDDC3BIEDAC LDBTCT5WIPLJPZWXS2RUQ26QKISCUUTLO77M464WOE6VSYSNPKYAC 46MRRHVYJ3BS74R2BEVUWEWJCI4FCRBSLZ3NWMQCE6FUCNE5P73QC P4PEPGY7ATSFJK44EEU5GXRNYTE3T67FYIBR6S2CJRKFQYQWZGGQC FEKRY3DYIDLWVBLAZN7W2WFNEKZPCAHABXOSM6K5RLTH5WY2NODQC 5YMFMYMV3MRQOJQ6YTJRJL3WS7C4AFB74ZIFOFOEBU5B7YBMS2TAC X3ZYEJMCHJC27L6YT2NRYB6EN2T3XFRJNUENVHGRPBUKMTVHAGVQC TYRQMDB4PCK6K4WOC6XSMAGRR2FIEUIQSM7RQO7ZZ44MY37HEA3QC NUFZ56NQQERFB3YMCXT3LBWTXIIITVGRZ3LCI6T4AT5LDNUG3GRAC H7BW6SEIQ57X6V4BM2RX54W42W6BH5XJBAS6FYCYKLQQG43ZMU4QC V53DXVC5T3N6J47H2CNG4MMPRR4PHW4AIS66QNVTKJNNYTTTQL4AC JOI7WFNNDLVFF37WWV2OK5434U6O3ZHNJXIS5XIRPQFCY45JHGQAC BTO5WE4OEK64DZQVNYLOESM74KKQNE7KSNMQVF5UDB26OBKP7ORQC 4SI4UGBUACYU6VN6QCDV4UQJDN3WJ4IDD3B2GEVI4DGRBENQJMPQC ZMYKMHWEU26FOUTD26Q4GTAZMI6RNO3K6NHQ2VGTESE3E73GQVCQC LY7DLLD7IKL6ZQPVROLDJ46XRM5CMAAEBRFDKJ4M53CPC5GFCGSQC S34LKQDIQJLIWVIPASOJBBZ6ZCXDHP5KPS7TRBZJSCDRVNCLK6UAC 3P6R443Q7BHDL2CB34CW5XNWWJ5RXQZUAL7RKVZCNRZPZRLTJS6QC 36DYXIWAQTBOCZBCUPYWDKAXVWDU3TRMSM3OCQZGGMWE2KPERJMAC X7PDT4KIPYJXXLGCQZKIPDQPYO636QL7LZ5KI2Q65RDNWTHYAT3QC 4HNVBCODEZSNIAVXS2ATJVABR2VGFAW55EOEIUOMYCYFA3TB27OQC 4GYZYBY7FFORRNPIEFTV4ZM2C7Z6D2KTQOM537ZCC2YBXT2TNSHAC 6ARBZEUSCIPVJUQJST5HG6TKQYQZPOHWYIIJO4OD2SUECPYMLVIQC NCPEO4I5DFISIAOOERCB5BN3VQMBGKTYUSASWRFZAH6N3TVRWI4AC V3GWLMX6JL3YOYB427VLHPOTGHGWZK64HI6LLUU4X6CFMD2MEQMQC ILO5P5FRDUY4SEQEXMTUDKOPXAUBJRSORHHUVTLLCYOYSXBXOVRAC VXSORUQOM2VZA4CAZDC6KPAY373NQIN3UT7CXQXTRCYXO2WM62DAC XSXDKKFQKXP5V7N3QJRH2KMFJ7E6NRDMWAPK2TGUWRJUXSCZ4YKQC LCCGXSFIDQFIRXHGRJWOELNPQOHHCXCWXS366GOULDFPQVOKAIJAC HFCPPPYI366EDKNBDGVNSAW76OGQA2NYTKLSP4LC3VYKHPLWFJ6QC XEC3L6W6TGIRWHINULNLKCIP4UBMHFYE33WJL7272I2GRRCFZBWAC SIP35YIR6H5EBKAT4QN3LTE4XOUN6Z6DDMPK33TTGMM5PZM4QB5AC WXZQJUZXMYS7R6ORNB7DWE5KEUXT262GXWMRPOJYYB4I3BFGYLLAC LLD2VAMFNPATQNT6AVYSJHPZG3WRHYZAYSVYYK6NACSKHFL35ZMQC SHFSQYLN7WPQC35V3XYYEIZ4CQMREASUNR474CIKFG3C2FYI4SHQC 7NDXS36TE7QVXTXJWMYSVG5UHCCLPIO4VL6NXFGTDK3ZNKE3A2IAC QSRRV725GCNDOMIDS36NYAA65MOLDMAZSENVSZ3PNOLBFSGHH7BQC UWI3ZNJDRQRL7CXFNFEG46TA6SAK24XUFY5YOKVOTJA3VG3OBNFAC TJ72NVTRNJKF55RTH5MRLTHHVPOJ2M5OOYEWF4UFLTO2PPPTU6PQC V2CC2HOQANCIVTQE6FHOZXFKAW4NXEVUA7DPAFFEQJ66IYPECSXQC HH3HFWVXABJ4IRMN22PPJCREMULZSN6DA7VYKOGECGMNUQTZ5QNQC WVKP2MFDE56ZO3OI7FCEKE5LI3MAUIL6IDTUW6MEBCV5OWF4OKEAC HGBHRHXFVTEWYYV2D5HKTKL4Z6OSNR2ZOIHFQX55CVRCXQUQ7MQAC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC Z6XF4AIERIW4U4AR3HU2ILYFZ54IK4K4ORQ6JKCEWRO5LZODWDDAC Q4YYTFXYZUDBYWT37U354CJOAQMAAIWM5W72TAEGMEUKZIUZBMGAC IP4A3VRYFYIVLRUAU4DF4KDNP6E4UISWJX3LI2F4EGSSMIJYRJXAC ASLW3Z5PAVZSWJEMMMVZT226P44EKSAD47QS72JIFJESAI3RPN3AC SHSIZVHSB4RPTLGMFJXUDVHF3FTEZZYCRIH4CBZP4MXOBR3HC4QAC FE4NKR5J4P53PSRDZPEW6MNHUJNCFSWCE6RWBMXIMQBV3EGCDOWQC YJ4Q65CCPG2R3O2CFICU6WS27ISYEHQGWIHNOOYPN2TIPKNXVX7QC HQ5FYPDFIQNNDMKDSGWAAXYIVIRK42B4OBA2LESP2OA5SPKSTLVQC CKY7MRFWMNHXIPJD5ZUAJN5T2YHUIEAYBNYYV5GN74LBZJRDJMEQC 4FQAKUKUO6PCAZ3N4HUR5XL6E4VA5UQUZ3AEDGRBLVY7W2LMWI7QC CLIEHAE2PP7ZIGLLIMYCWM4FC54KBOAN5AILOLAZJ5S26GTJM4RQC 4HLF6Q3OBOOHCCJ76L2BXVIYI6EMJ2G7O4XXZPFTLFP6BQGSUZNAC OFH2B2UZBK43QLFQBZ54FOCFLFNE54BZVDNCEUGDTBCUGNVZULIQC 5FBOE2QNRLKUNOP54CZD6LFAMM7LX6NNLHJRJHRDDIUTQ7J723DQC SEXTAB43OKE5D5NNPNNPJXWR3CLJVRL7VSLMKDATDRLNX4FI3AFQC MIC2SDBOCS63ZDNBQ2VRZMTFOYJL5DUQVR67I7Z3KBJGDBNZJIGAC KXHG3CHEUCZX6UZXAQG6QXPS6IRTIJWGGZWYVAMHWYYTCM4KBUSQC 6CWMT6I76TMTHT7BVOVZJ7ATDMZ3VBKKICIRRZBOSGLHJMDS2DWQC NZBX4WLFXYQYYA5WEAXANO4QOUJQ6CUIACWZ7FPRNA2ABJ4UBWKQC 74LQ7JXVLAFSHLI7LCBKFX47CNTYSKGUQSXNX5FCIUIGCC2JTR3QC PKHOZG6TIUP2NZZIP6CW5OIPZ3O6PCGWXXW5MH4I6P2WVM24HZEQC BSI5DB3LVY42ZHOS46X2CAPPVOSOTTQWFGLTMAKRFTROI5BQWFDQC P722Q43MJLCJ5NHF6FA27YM7IYP2ZTP6WP373BAVZPODZW4JLJPQC T7PHMSG47WP4MTKIGVBP4EAQRGXHMZPYSI3GT3DAEWKHUDFCH3QQC 2DORUQ4B574MDOOMRYWGU5I72AKHMCSTZ6B3VSHQBUQOZYHRC7FAC DUOVSVYLZG2W4KHAPD57Z2OTWZUYHY46TLGJLI5R7YALOKZCTGFAC ENOQQ6DEA6ECRNTBGYYNK7G3DFEILMKQBNKP4SUQIZW2L6HWVR7QC HIRKGUMNJPWKSVTR6TVBPD3MWNA63CEHCLCIPWEMGDFHVB3NPLDQC 75M6AVUSS3G5EJECJJRB67V5UYDOIV26FZNB2FFCMBZ33EK7FVIQC 7K5P2GRF6QUXTMERG2R3BB6DZFQYJQ6V2KNPMBPFDLOP36NQILPAC GL7TJGUGV4JPLZCDWH6QVST4RYW7UJV6IP7UAEWEKNBWJO2H2ZHAC 5YYQEHOEBH6H4FXW3H6RAQ7U6VZ33BVP3S3I3BE3GM5IUL5DAKYQC 4SWYX4Y3QSG5EUFHUNAW56WVK4FU3CZPQNHGGYKEV2LQ3P3GQTMQC LCVUTR5N23C2AE3EXJUDTYQVURXN6XXGGOYR4ALIVRIUBTVLN5PAC IXLNOTBJGHKESBCTME6QAR6XVWFNCHYGMS62V62ZJEA7VLQHXO2QC U3LUN66XOUGBCEA3E4BFKXBFTPGV5ZQRUTXUYRA73LF6YOHOQHEQC 6UPCB64Z2W243QR3JQD7WPQMPVNVBPYRG7GTGZK6LTKKBBSKBHZQC 4JHALUQLYAZQSH6MHLCS4EIIRHIT3Y4IYT2CE66NHSSWZFZY3SZQC XXPLTLK26AM2J2QBEJS7UVZV2C6T4J2D7VCIO4L5S4NBNR57X4FAC VF3Y6IKB5WKEMZRPG6KMWXGST6GU5HDKZ26BFYGKAQBDUZ5JE2TQC 2WWSPLCXLSMBGTXUC33EQ5YBOA5IBFSMJSTZ2TU6HZIMZZWZJWGAC DWWOM6V2Z4RQVT6AKW6OYLSFOUE4W5PTP2SH4AAZE2E4EIH4RLUAC UBSBPVWL77W566RKX6H4MCASJJN3D2QKUHIAGZJFK46MCGJZ2NFAC L2JKKTBQ2U5FMUMCQHVPLTVRR23RHKM67I7FXGCIGYGF7NTGBIEAC 7YUGK5Q64KG5O7GJGTUBRRLHAHBCJ5YOE23YUPT6UBKUSB67CYAQC 2VOD7XONHR3G2JGZGXOPHNR2AN7WUQZFR5KJH5ZY4P4G67H3RCSQC P2ZCF3BBG523ZEOD6XQA4X5YEHBTWH3IM33YVHXP2SQ5POXZIH4QC UEI5JAVCMN7Y2SACTEZPZSNFJWOJTC55G24Q6LKQCT4XNDH5ZQIAC OQ76R2BGEXU64TGDEQF46WVKM3LW5JO67CVITYQSIKE36LQZ725AC YL67KHG3TAZXJCWGRZPVASD6RS2SQ3V5KMIUK4E6PV43V2NBOLEAC EOMCPVNQLX3IMLC46EAO67DPBH5KEG2FQTPBLGU62HIRWA3UQ7XQC RVST2QHYJ757ZHK4AUJ5NGPDZ44AD6RVFVXYPKQIBJXZBDNUCHXQC 2ZFV5PKZU3HDHMLJWVWPPFV43NUNUON6YSAITHB26D7L4XIVWUHQC BRCSZ3GW5VFJW2OGZSUVYJTOOS4NGEX63DNFBJYEILHSCLAA4C4QC OHOFJZ6S5AJUO5EFVGG7HJHRPSXJSTJD2DDXAERT4LNVWDK23K6AC prop_str += randart_known_wpn_property(item, RAP_STRENGTH);prop_int += randart_known_wpn_property(item, RAP_INTELLIGENCE);prop_dex += randart_known_wpn_property(item, RAP_DEXTERITY);
prop_str += artefact_known_wpn_property(item, ARTP_STRENGTH);prop_int += artefact_known_wpn_property(item, ARTP_INTELLIGENCE);prop_dex += artefact_known_wpn_property(item, ARTP_DEXTERITY);
if (Options.autoinscribe_randarts && is_random_artefact(item))add_autoinscription( item, randart_auto_inscription(item));
if (Options.autoinscribe_artefacts && is_random_artefact(item))add_autoinscription( item, artefact_auto_inscription(item));
ret += 3 * prop[ RAP_AC ] + 3 * prop[ RAP_EVASION ]+ 3 * prop[ RAP_ACCURACY ] + 3 * prop[ RAP_DAMAGE ]+ 6 * prop[ RAP_STRENGTH ] + 6 * prop[ RAP_INTELLIGENCE ]+ 6 * prop[ RAP_DEXTERITY ];
ret += 3 * prop[ ARTP_AC ] + 3 * prop[ ARTP_EVASION ]+ 3 * prop[ ARTP_ACCURACY ] + 3 * prop[ ARTP_DAMAGE ]+ 6 * prop[ ARTP_STRENGTH ] + 6 * prop[ ARTP_INTELLIGENCE ]+ 6 * prop[ ARTP_DEXTERITY ];
void set_randart_name( item_def &item, const std::string &name );void set_randart_appearance( item_def &item, const std::string &appear );
void set_artefact_name( item_def &item, const std::string &name );void set_artefact_appearance( item_def &item, const std::string &appear );
typedef FixedVector< int, RA_PROPERTIES > randart_properties_t;typedef FixedVector< bool, RA_PROPERTIES > randart_known_props_t;
typedef FixedVector< int, RA_PROPERTIES > artefact_properties_t;typedef FixedVector< bool, RA_PROPERTIES > artefact_known_props_t;
void randart_desc_properties( const item_def &item,randart_properties_t &proprt,randart_known_props_t &known,bool force_fake_props = false);
void artefact_desc_properties( const item_def &item,artefact_properties_t &proprt,artefact_known_props_t &known,bool force_fake_props = false);
void randart_wpn_properties( const item_def &item,randart_properties_t &proprt,randart_known_props_t &known );
void artefact_wpn_properties( const item_def &item,artefact_properties_t &proprt,artefact_known_props_t &known );
void randart_wpn_learn_prop( item_def &item, randart_prop_type prop );bool randart_wpn_known_prop( const item_def &item, randart_prop_type prop );
void artefact_wpn_learn_prop( item_def &item, artefact_prop_type prop );bool artefact_wpn_known_prop( const item_def &item, artefact_prop_type prop );
void randart_set_properties( item_def &item,randart_properties_t &proprt );void randart_set_property( item_def &item,randart_prop_type prop,int val );
void artefact_set_properties( item_def &item,artefact_properties_t &proprt );void artefact_set_property( item_def &item,artefact_prop_type prop,int val );
#define KNOWN_PROPS_KEY "randart_known_props"#define RANDART_PROPS_KEY "randart_props"#define RANDART_NAME_KEY "randart_name"#define RANDART_APPEAR_KEY "randart_appearance"
#define KNOWN_PROPS_KEY "artefact_known_props"#define ARTEFACT_PROPS_KEY "artefact_props"#define ARTEFACT_NAME_KEY "artefact_name"#define ARTEFACT_APPEAR_KEY "artefact_appearance"
void randart_desc_properties( const item_def &item,randart_properties_t &proprt,randart_known_props_t &known,
void artefact_desc_properties( const item_def &item,artefact_properties_t &proprt,artefact_known_props_t &known,
if (proprt[RAP_BRAND] == SPWPN_SPEED && atype == WPN_QUICK_BLADE)proprt[RAP_BRAND] = SPWPN_NORMAL;
if (proprt[ARTP_BRAND] == SPWPN_SPEED && atype == WPN_QUICK_BLADE)proprt[ARTP_BRAND] = SPWPN_NORMAL;
&& proprt[RAP_BRAND] != SPWPN_DRAINING&& proprt[RAP_BRAND] != SPWPN_VAMPIRICISM&& proprt[RAP_BRAND] != SPWPN_PAIN)
&& proprt[ARTP_BRAND] != SPWPN_DRAINING&& proprt[ARTP_BRAND] != SPWPN_VAMPIRICISM&& proprt[ARTP_BRAND] != SPWPN_PAIN)
void randart_wpn_properties( const item_def &item,randart_properties_t &proprt )
void artefact_wpn_properties( const item_def &item,artefact_properties_t &proprt )
ASSERT(!item.props.exists( RANDART_PROPS_KEY ));item.props[RANDART_PROPS_KEY].new_vector(SV_SHORT).resize(RA_PROPERTIES);CrawlVector &rap = item.props[RANDART_PROPS_KEY];
ASSERT(!item.props.exists( ARTEFACT_PROPS_KEY ));item.props[ARTEFACT_PROPS_KEY].new_vector(SV_SHORT).resize(RA_PROPERTIES);CrawlVector &rap = item.props[ARTEFACT_PROPS_KEY];
bool items_give_ability(const int slot, randart_prop_type abil);int scan_randarts(randart_prop_type which_property, bool calc_unid = true);
bool items_give_ability(const int slot, artefact_prop_type abil);int scan_artefacts(artefact_prop_type which_property, bool calc_unid = true);
for (int rap = RAP_INVISIBLE; rap <= RAP_MAPPING; rap++)if (randart_wpn_property( item, static_cast<randart_prop_type>(rap) ))
for (int rap = ARTP_INVISIBLE; rap <= ARTP_MAPPING; rap++)if (artefact_wpn_property( item,static_cast<artefact_prop_type>(rap) )){
void use_randart( unsigned char item_wield_2 );void use_randart(item_def &item, bool unmeld = false);
void use_artefact( unsigned char item_wield_2 );void use_artefact(item_def &item, bool unmeld = false);
special = randart_wpn_property(item, RAP_BRAND);use_randart(item_wield_2);
special = artefact_wpn_property(item, ARTP_BRAND);use_artefact(item_wield_2);
if (Options.autoinscribe_randarts)add_autoinscription(item, randart_auto_inscription(item));
if (Options.autoinscribe_artefacts)add_autoinscription(item, artefact_auto_inscription(item));
prop_str += randart_known_wpn_property(item, RAP_STRENGTH);prop_int += randart_known_wpn_property(item, RAP_INTELLIGENCE);prop_dex += randart_known_wpn_property(item, RAP_DEXTERITY);
prop_str += artefact_known_wpn_property(item, ARTP_STRENGTH);prop_int += artefact_known_wpn_property(item, ARTP_INTELLIGENCE);prop_dex += artefact_known_wpn_property(item, ARTP_DEXTERITY);
proprt[RAP_MAGICAL_POWER] > 0? "increase" : "decrease");randart_wpn_learn_prop(item, RAP_MAGICAL_POWER);
proprt[ARTP_MAGICAL_POWER] > 0? "increase" : "decrease");artefact_wpn_learn_prop(item, ARTP_MAGICAL_POWER);
modify_stat( STAT_STRENGTH, proprt[RAP_STRENGTH], false, item );modify_stat( STAT_INTELLIGENCE, proprt[RAP_INTELLIGENCE], false, item );modify_stat( STAT_DEXTERITY, proprt[RAP_DEXTERITY], false, item );
modify_stat( STAT_STRENGTH, proprt[ARTP_STRENGTH], false, item );modify_stat( STAT_INTELLIGENCE, proprt[ARTP_INTELLIGENCE], false, item );modify_stat( STAT_DEXTERITY, proprt[ARTP_DEXTERITY], false, item );
if (!unmeld && !item_cursed(item) && proprt[RAP_CURSED] > 0&& one_chance_in(proprt[RAP_CURSED]))
if (!unmeld && !item_cursed(item) && proprt[ARTP_CURSED] > 0&& one_chance_in(proprt[ARTP_CURSED]))
randart_properties_t proprt;randart_known_props_t known;randart_wpn_properties( item, proprt, known );
artefact_properties_t proprt;artefact_known_props_t known;artefact_wpn_properties( item, proprt, known );
RAP_BRAND, // 0RAP_AC,RAP_EVASION,RAP_STRENGTH,RAP_INTELLIGENCE,RAP_DEXTERITY, // 5RAP_FIRE,RAP_COLD,RAP_ELECTRICITY,RAP_POISON,RAP_NEGATIVE_ENERGY, // 10RAP_MAGIC,RAP_EYESIGHT,RAP_INVISIBLE,RAP_LEVITATE,RAP_BLINK, // 15RAP_CAN_TELEPORT,RAP_BERSERK,RAP_MAPPING,RAP_NOISES,RAP_PREVENT_SPELLCASTING, // 20RAP_CAUSE_TELEPORTATION,RAP_PREVENT_TELEPORTATION,RAP_ANGRY,RAP_METABOLISM,RAP_MUTAGENIC, // 25RAP_ACCURACY,RAP_DAMAGE,RAP_CURSED,RAP_STEALTH,RAP_MAGICAL_POWER, // 30RAP_NUM_PROPERTIES
ARTP_BRAND, // 0ARTP_AC,ARTP_EVASION,ARTP_STRENGTH,ARTP_INTELLIGENCE,ARTP_DEXTERITY, // 5ARTP_FIRE,ARTP_COLD,ARTP_ELECTRICITY,ARTP_POISON,ARTP_NEGATIVE_ENERGY, // 10ARTP_MAGIC,ARTP_EYESIGHT,ARTP_INVISIBLE,ARTP_LEVITATE,ARTP_BLINK, // 15ARTP_CAN_TELEPORT,ARTP_BERSERK,ARTP_MAPPING,ARTP_NOISES,ARTP_PREVENT_SPELLCASTING, // 20ARTP_CAUSE_TELEPORTATION,ARTP_PREVENT_TELEPORTATION,ARTP_ANGRY,ARTP_METABOLISM,ARTP_MUTAGENIC, // 25ARTP_ACCURACY,ARTP_DAMAGE,ARTP_CURSED,ARTP_STEALTH,ARTP_MAGICAL_POWER, // 30ARTP_NUM_PROPERTIES
if (-proprt[RAP_STRENGTH] >= you.strength|| -proprt[RAP_INTELLIGENCE] >= you.intel|| -proprt[RAP_DEXTERITY] >= you.dex)
if (-proprt[ARTP_STRENGTH] >= you.strength|| -proprt[ARTP_INTELLIGENCE] >= you.intel|| -proprt[ARTP_DEXTERITY] >= you.dex)
randart_properties_t proprt;randart_known_props_t known;randart_desc_properties( item, proprt, known, true );
artefact_properties_t proprt;artefact_known_props_t known;artefact_desc_properties( item, proprt, known, true );
{ "-CAST", RAP_PREVENT_SPELLCASTING, 2 },{ "-TELE", RAP_PREVENT_TELEPORTATION, 2 },{ "MUT", RAP_MUTAGENIC, 2 }, // handled specially{ "*Rage", RAP_ANGRY, 2 },{ "*TELE", RAP_CAUSE_TELEPORTATION, 2 },{ "Hunger", RAP_METABOLISM, 2 }, // handled specially{ "Noisy", RAP_NOISES, 2 },
{ "-CAST", ARTP_PREVENT_SPELLCASTING, 2 },{ "-TELE", ARTP_PREVENT_TELEPORTATION, 2 },{ "MUT", ARTP_MUTAGENIC, 2 }, // handled specially{ "*Rage", ARTP_ANGRY, 2 },{ "*TELE", ARTP_CAUSE_TELEPORTATION, 2 },{ "Hunger", ARTP_METABOLISM, 2 }, // handled specially{ "Noisy", ARTP_NOISES, 2 },
{ "+Blink", RAP_BLINK, 2 },{ "+Tele", RAP_CAN_TELEPORT, 2 },{ "+Rage", RAP_BERSERK, 2 },{ "+Inv", RAP_INVISIBLE, 2 },{ "+Lev", RAP_LEVITATE, 2 },{ "+Map", RAP_MAPPING, 2 },
{ "+Blink", ARTP_BLINK, 2 },{ "+Tele", ARTP_CAN_TELEPORT, 2 },{ "+Rage", ARTP_BERSERK, 2 },{ "+Inv", ARTP_INVISIBLE, 2 },{ "+Lev", ARTP_LEVITATE, 2 },{ "+Map", ARTP_MAPPING, 2 },
{ "rElec", RAP_ELECTRICITY, 2 },{ "rPois", RAP_POISON, 2 },{ "rF", RAP_FIRE, 1 },{ "rC", RAP_COLD, 1 },{ "rN", RAP_NEGATIVE_ENERGY, 1 },{ "MR", RAP_MAGIC, 2 },
{ "rElec", ARTP_ELECTRICITY, 2 },{ "rPois", ARTP_POISON, 2 },{ "rF", ARTP_FIRE, 1 },{ "rC", ARTP_COLD, 1 },{ "rN", ARTP_NEGATIVE_ENERGY, 1 },{ "MR", ARTP_MAGIC, 2 },
{ "AC", RAP_AC, 0 },{ "EV", RAP_EVASION, 0 },{ "Str", RAP_STRENGTH, 0 },{ "Dex", RAP_DEXTERITY, 0 },{ "Int", RAP_INTELLIGENCE, 0 },{ "Acc", RAP_ACCURACY, 0 },{ "Dam", RAP_DAMAGE, 0 },
{ "AC", ARTP_AC, 0 },{ "EV", ARTP_EVASION, 0 },{ "Str", ARTP_STRENGTH, 0 },{ "Dex", ARTP_DEXTERITY, 0 },{ "Int", ARTP_INTELLIGENCE, 0 },{ "Acc", ARTP_ACCURACY, 0 },{ "Dam", ARTP_DAMAGE, 0 },
{ "MP", RAP_MAGICAL_POWER, 0 },{ "SInv", RAP_EYESIGHT, 2 },{ "Stlth", RAP_STEALTH, 2 }, // handled specially{ "Curse", RAP_CURSED, 2 },
{ "MP", ARTP_MAGICAL_POWER, 0 },{ "SInv", ARTP_EYESIGHT, 2 },{ "Stlth", ARTP_STEALTH, 2 }, // handled specially{ "Curse", ARTP_CURSED, 2 },
if (propanns[i].prop == RAP_METABOLISM && val > 2|| propanns[i].prop == RAP_MUTAGENIC && val > 3|| propanns[i].prop == RAP_STEALTH && val > 20)
if (propanns[i].prop == ARTP_METABOLISM && val > 2|| propanns[i].prop == ARTP_MUTAGENIC && val > 3|| propanns[i].prop == ARTP_STEALTH && val > 20)
randart_properties_t proprt;randart_known_props_t known;randart_desc_properties( item, proprt, known );
artefact_properties_t proprt;artefact_known_props_t known;artefact_desc_properties( item, proprt, known );
{ RAP_AC, "It affects your AC (%d).", false },{ RAP_EVASION, "It affects your evasion (%d).", false},{ RAP_STRENGTH, "It affects your strength (%d).", false},{ RAP_INTELLIGENCE, "It affects your intelligence (%d).", false},{ RAP_DEXTERITY, "It affects your dexterity (%d).", false},{ RAP_ACCURACY, "It affects your accuracy (%d).", false},{ RAP_DAMAGE, "It affects your damage-dealing abilities (%d).", false},{ RAP_FIRE, "fire", true},{ RAP_COLD, "cold", true},{ RAP_ELECTRICITY, "It insulates you from electricity.", false},{ RAP_POISON, "It protects you from poison.", false},{ RAP_NEGATIVE_ENERGY, "negative energy", true},{ RAP_MAGIC, "It increases your resistance to enchantments.", false},{ RAP_MAGICAL_POWER, "It affects your mana capacity (%d).", false},{ RAP_EYESIGHT, "It enhances your eyesight.", false},{ RAP_INVISIBLE, "It lets you turn invisible.", false},{ RAP_LEVITATE, "It lets you levitate.", false},{ RAP_BLINK, "It lets you blink.", false},{ RAP_CAN_TELEPORT, "It lets you teleport.", false},{ RAP_BERSERK, "It lets you go berserk.", false},{ RAP_MAPPING, "It lets you sense your surroundings.", false},{ RAP_NOISES, "It makes noises.", false},{ RAP_PREVENT_SPELLCASTING, "It prevents spellcasting.", false},{ RAP_CAUSE_TELEPORTATION, "It causes teleportation.", false},{ RAP_PREVENT_TELEPORTATION, "It prevents most forms of teleportation.",
{ ARTP_AC, "It affects your AC (%d).", false },{ ARTP_EVASION, "It affects your evasion (%d).", false},{ ARTP_STRENGTH, "It affects your strength (%d).", false},{ ARTP_INTELLIGENCE, "It affects your intelligence (%d).", false},{ ARTP_DEXTERITY, "It affects your dexterity (%d).", false},{ ARTP_ACCURACY, "It affects your accuracy (%d).", false},{ ARTP_DAMAGE, "It affects your damage-dealing abilities (%d).", false},{ ARTP_FIRE, "fire", true},{ ARTP_COLD, "cold", true},{ ARTP_ELECTRICITY, "It insulates you from electricity.", false},{ ARTP_POISON, "It protects you from poison.", false},{ ARTP_NEGATIVE_ENERGY, "negative energy", true},{ ARTP_MAGIC, "It increases your resistance to enchantments.", false},{ ARTP_MAGICAL_POWER, "It affects your mana capacity (%d).", false},{ ARTP_EYESIGHT, "It enhances your eyesight.", false},{ ARTP_INVISIBLE, "It lets you turn invisible.", false},{ ARTP_LEVITATE, "It lets you levitate.", false},{ ARTP_BLINK, "It lets you blink.", false},{ ARTP_CAN_TELEPORT, "It lets you teleport.", false},{ ARTP_BERSERK, "It lets you go berserk.", false},{ ARTP_MAPPING, "It lets you sense your surroundings.", false},{ ARTP_NOISES, "It makes noises.", false},{ ARTP_PREVENT_SPELLCASTING, "It prevents spellcasting.", false},{ ARTP_CAUSE_TELEPORTATION, "It causes teleportation.", false},{ ARTP_PREVENT_TELEPORTATION, "It prevents most forms of teleportation.",
if (Options.autoinscribe_randarts && is_random_artefact(arm))add_autoinscription( arm, randart_auto_inscription(arm));
if (Options.autoinscribe_artefacts && is_random_artefact(arm))add_autoinscription( arm, artefact_auto_inscription(arm));
char _prop_type[RAP_NUM_PROPERTIES] = {RAP_VAL_POS, //BRANDRAP_VAL_ANY, //ACRAP_VAL_ANY, //EVASIONRAP_VAL_ANY, //STRENGTHRAP_VAL_ANY, //INTELLIGENCERAP_VAL_ANY, //DEXTERITYRAP_VAL_ANY, //FIRERAP_VAL_ANY, //COLDRAP_VAL_BOOL, //ELECTRICITYRAP_VAL_BOOL, //POISONRAP_VAL_BOOL, //NEGATIVE_ENERGYRAP_VAL_POS, //MAGICRAP_VAL_BOOL, //EYESIGHTRAP_VAL_BOOL, //INVISIBLERAP_VAL_BOOL, //LEVITATERAP_VAL_BOOL, //BLINKRAP_VAL_BOOL, //CAN_TELEPORTRAP_VAL_BOOL, //BERSERKRAP_VAL_BOOL, //MAPPINGRAP_VAL_POS, //NOISESRAP_VAL_BOOL, //PREVENT_SPELLCASTINGRAP_VAL_BOOL, //CAUSE_TELEPORTATIONRAP_VAL_BOOL, //PREVENT_TELEPORTATIONRAP_VAL_POS, //ANGRYRAP_VAL_POS, //METABOLISMRAP_VAL_POS, //MUTAGENICRAP_VAL_ANY, //ACCURACYRAP_VAL_ANY, //DAMAGERAP_VAL_POS, //CURSEDRAP_VAL_ANY, //STEALTHRAP_VAL_ANY //MAGICAL_POWER
char _prop_type[ARTP_NUM_PROPERTIES] = {ARTP_VAL_POS, //BRANDARTP_VAL_ANY, //ACARTP_VAL_ANY, //EVASIONARTP_VAL_ANY, //STRENGTHARTP_VAL_ANY, //INTELLIGENCEARTP_VAL_ANY, //DEXTERITYARTP_VAL_ANY, //FIREARTP_VAL_ANY, //COLDARTP_VAL_BOOL, //ELECTRICITYARTP_VAL_BOOL, //POISONARTP_VAL_BOOL, //NEGATIVE_ENERGYARTP_VAL_POS, //MAGICARTP_VAL_BOOL, //EYESIGHTARTP_VAL_BOOL, //INVISIBLEARTP_VAL_BOOL, //LEVITATEARTP_VAL_BOOL, //BLINKARTP_VAL_BOOL, //CAN_TELEPORTARTP_VAL_BOOL, //BERSERKARTP_VAL_BOOL, //MAPPINGARTP_VAL_POS, //NOISESARTP_VAL_BOOL, //PREVENT_SPELLCASTINGARTP_VAL_BOOL, //CAUSE_TELEPORTATIONARTP_VAL_BOOL, //PREVENT_TELEPORTATIONARTP_VAL_POS, //ANGRYARTP_VAL_POS, //METABOLISMARTP_VAL_POS, //MUTAGENICARTP_VAL_ANY, //ACCURACYARTP_VAL_ANY, //DAMAGEARTP_VAL_POS, //CURSEDARTP_VAL_ANY, //STEALTHARTP_VAL_ANY //MAGICAL_POWER
1, //RAP_BRAND0, //RAP_AC0, //RAP_EVASION0, //RAP_STRENGTH0, //RAP_INTELLIGENCE0, //RAP_DEXTERITY0, //RAP_FIRE0, //RAP_COLD1, //RAP_ELECTRICITY1, //RAP_POISON1, //RAP_NEGATIVE_ENERGY1, //RAP_MAGIC1, //RAP_EYESIGHT1, //RAP_INVISIBLE1, //RAP_LEVITATE1, //RAP_BLINK1, //RAP_CAN_TELEPORT1, //RAP_BERSERK1, //RAP_MAPPING-1, //RAP_NOISES-1, //RAP_PREVENT_SPELLCASTING-1, //RAP_CAUSE_TELEPORTATION-1, //RAP_PREVENT_TELEPORTATION-1, //RAP_ANGRY-1, //RAP_METABOLISM-1, //RAP_MUTAGENIC0, //RAP_ACCURACY0, //RAP_DAMAGE-1, //RAP_CURSED0, //RAP_STEALTH0 //RAP_MAGICAL_POWER
1, //ARTP_BRAND0, //ARTP_AC0, //ARTP_EVASION0, //ARTP_STRENGTH0, //ARTP_INTELLIGENCE0, //ARTP_DEXTERITY0, //ARTP_FIRE0, //ARTP_COLD1, //ARTP_ELECTRICITY1, //ARTP_POISON1, //ARTP_NEGATIVE_ENERGY1, //ARTP_MAGIC1, //ARTP_EYESIGHT1, //ARTP_INVISIBLE1, //ARTP_LEVITATE1, //ARTP_BLINK1, //ARTP_CAN_TELEPORT1, //ARTP_BERSERK1, //ARTP_MAPPING-1, //ARTP_NOISES-1, //ARTP_PREVENT_SPELLCASTING-1, //ARTP_CAUSE_TELEPORTATION-1, //ARTP_PREVENT_TELEPORTATION-1, //ARTP_ANGRY-1, //ARTP_METABOLISM-1, //ARTP_MUTAGENIC0, //ARTP_ACCURACY0, //ARTP_DAMAGE-1, //ARTP_CURSED0, //ARTP_STEALTH0 //ARTP_MAGICAL_POWER
int all_props[RAP_NUM_PROPERTIES];int good_props[RAP_NUM_PROPERTIES];int bad_props[RAP_NUM_PROPERTIES];for (i = 0; i < RAP_NUM_PROPERTIES; ++i)
int all_props[ARTP_NUM_PROPERTIES];int good_props[ARTP_NUM_PROPERTIES];int bad_props[ARTP_NUM_PROPERTIES];for (i = 0; i < ARTP_NUM_PROPERTIES; ++i)
"RAP_BRAND","RAP_AC","RAP_EVASION","RAP_STRENGTH","RAP_INTELLIGENCE","RAP_DEXTERITY","RAP_FIRE","RAP_COLD","RAP_ELECTRICITY","RAP_POISON","RAP_NEGATIVE_ENERGY","RAP_MAGIC","RAP_EYESIGHT","RAP_INVISIBLE","RAP_LEVITATE","RAP_BLINK","RAP_CAN_TELEPORT","RAP_BERSERK","RAP_MAPPING","RAP_NOISES","RAP_PREVENT_SPELLCASTING","RAP_CAUSE_TELEPORTATION","RAP_PREVENT_TELEPORTATION","RAP_ANGRY","RAP_METABOLISM","RAP_MUTAGENIC","RAP_ACCURACY","RAP_DAMAGE","RAP_CURSED","RAP_STEALTH","RAP_MAGICAL_POWER"
"ARTP_BRAND","ARTP_AC","ARTP_EVASION","ARTP_STRENGTH","ARTP_INTELLIGENCE","ARTP_DEXTERITY","ARTP_FIRE","ARTP_COLD","ARTP_ELECTRICITY","ARTP_POISON","ARTP_NEGATIVE_ENERGY","ARTP_MAGIC","ARTP_EYESIGHT","ARTP_INVISIBLE","ARTP_LEVITATE","ARTP_BLINK","ARTP_CAN_TELEPORT","ARTP_BERSERK","ARTP_MAPPING","ARTP_NOISES","ARTP_PREVENT_SPELLCASTING","ARTP_CAUSE_TELEPORTATION","ARTP_PREVENT_TELEPORTATION","ARTP_ANGRY","ARTP_METABOLISM","ARTP_MUTAGENIC","ARTP_ACCURACY","ARTP_DAMAGE","ARTP_CURSED","ARTP_STEALTH","ARTP_MAGICAL_POWER"
Many players use inscriptions for properties of random artefacts. Thismakes browsing the inventory or stashes easier. Crawl provides a schemefor automatic inscription (you can switch this off using the optionautoinscribe_randarts=false).
Many players use inscriptions for properties of artefacts. This makesbrowsing the inventory or stashes easier. Crawl provides a scheme forautomatic inscription (you can switch this off using the optionautoinscribe_artefacts=false).