Attached Files:
|
0001-Add-orange-crystal-plate.patch [^] (13,647 bytes) 2014-04-27 22:31 [Show Content] [Hide Content]From f5070a7a6c944aa6dbadd0f4075b733644c87484 Mon Sep 17 00:00:00 2001
From: Nicholas Feinberg <pleasingfung@gmail.com>
Date: Sat, 19 Apr 2014 13:08:44 -0700
Subject: [PATCH] Add orange crystal plate
Adds a new unrand designed to encourage players to cast in crystal plate.
---
crawl-ref/source/art-data.txt | 13 +++++++++++++
crawl-ref/source/dat/descript/unrand.txt | 6 ++++++
crawl-ref/source/describe.cc | 4 ++++
crawl-ref/source/enum.h | 2 ++
crawl-ref/source/player.cc | 4 +++-
crawl-ref/source/rltiles/dc-player.txt | 1 +
.../item/armour/artefact/urand_orange_crystal.png | Bin 0 -> 2278 bytes
crawl-ref/source/rltiles/player/body/orange_crystal.png | Bin 0 -> 1617 bytes
crawl-ref/source/util/art-data.pl | 4 +++-
crawl-ref/source/wiz-item.cc | 8 ++++++++
10 files changed, 40 insertions(+), 2 deletions(-)
create mode 100644 crawl-ref/source/rltiles/item/armour/artefact/urand_orange_crystal.png
create mode 100644 crawl-ref/source/rltiles/player/body/orange_crystal.png
diff --git a/crawl-ref/source/art-data.txt b/crawl-ref/source/art-data.txt
index 86b2a67..ab1fc13 100644
--- a/crawl-ref/source/art-data.txt
+++ b/crawl-ref/source/art-data.txt
@@ -96,8 +96,10 @@
# * seeinv: Lets wearer see invisible.
# * special: Artefact is "special": can't be picked up by monsters,
# can't be affected by Tukima's Dance.
+# * sustab: Ability damage resistance.
# * tilerim: Adds a black outline to the tile, see above section.
# * unided: Properties start unidentified.
+# * wizardry: Reduces spell failure chance.
# ENUM: Forces the artefact's enumeration literal to something specific.
# For example, "ENUM: FOO" gives the enumeration "UNRAND_FOO". The
@@ -1155,6 +1157,17 @@ PLUS: +7/+7
BRAND: SPWPN_FLAMING
FIRE: 2
+NAME: orange crystal plate
+OBJ: OBJ_ARMOUR/ARM_CRYSTAL_PLATE_ARMOUR
+COLOUR: LIGHTRED
+TILE: urand_orange_crystal
+TILE_EQ: orange_crystal
+PLUS: 8
+INT: 6
+BOOL: clarity, sustab, wizardry
+
+
+
# This is the first of two amulets used to test suppression aura.
# Together, they confer every randart effect except for a few that are
# determined explicitly by checking whether a certain amulet is worn
diff --git a/crawl-ref/source/dat/descript/unrand.txt b/crawl-ref/source/dat/descript/unrand.txt
index b92db23..3afeca7 100644
--- a/crawl-ref/source/dat/descript/unrand.txt
+++ b/crawl-ref/source/dat/descript/unrand.txt
@@ -526,6 +526,12 @@ great mace "Firestarter"
Alongside its obvious effects, this weapon protects its owner's inventory from
fire, and fills monsters that it hits with an inner flame.
%%%%
+orange crystal plate
+
+Carved from transparent orange crystal, this armour provides remarkable
+protection for both mind and body. A skilled user can even channel psychic
+energies through the crystal itself. However, it's rather heavy...
+%%%%
milk chocolate
This item is a debugging aid, granting a vast array of mostly beneficial
diff --git a/crawl-ref/source/describe.cc b/crawl-ref/source/describe.cc
index 1e32498..de60c21 100644
--- a/crawl-ref/source/describe.cc
+++ b/crawl-ref/source/describe.cc
@@ -257,6 +257,8 @@ static vector<string> _randart_propnames(const item_def& item,
{ "Clar", ARTP_CLARITY, 2 },
{ "RMsl", ARTP_RMSL, 2 },
{ "Regen", ARTP_REGENERATION, 2 },
+ { "SustAb", ARTP_SUSTAB, 2 },
+ { "Wiz", ARTP_WIZARDRY, 2 },
};
// For randart jewellery, note the base jewellery type if it's not
@@ -468,6 +470,8 @@ static string _randart_descrip(const item_def &item)
{ ARTP_ELECTRICITY, "It insulates you from electricity.", false},
{ ARTP_POISON, "It protects you from poison.", false},
{ ARTP_NEGATIVE_ENERGY, "negative energy", true},
+ { ARTP_SUSTAB, "It sustains your attributes.", false},
+ { ARTP_WIZARDRY, "It improves your spell success rate.", false},
{ ARTP_MAGIC, "It affects your resistance to hostile enchantments.", false},
{ ARTP_HP, "It affects your health (%d).", false},
{ ARTP_MAGICAL_POWER, "It affects your magic capacity (%d).", false},
diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h
index a96062b..9dd85dd 100644
--- a/crawl-ref/source/enum.h
+++ b/crawl-ref/source/enum.h
@@ -3543,6 +3543,8 @@ enum artefact_prop_type
ARTP_FOG,
#endif
ARTP_REGENERATION,
+ ARTP_SUSTAB,
+ ARTP_WIZARDRY,
ARTP_NO_UPGRADE,
ARTP_NUM_PROPERTIES
};
diff --git a/crawl-ref/source/player.cc b/crawl-ref/source/player.cc
index 5c61b66..e32f958 100644
--- a/crawl-ref/source/player.cc
+++ b/crawl-ref/source/player.cc
@@ -2640,7 +2640,8 @@ int player_armour_shield_spell_penalty()
int player_wizardry(void)
{
return you.wearing(EQ_RINGS, RING_WIZARDRY)
- + you.wearing(EQ_STAFF, STAFF_WIZARDRY);
+ + you.wearing(EQ_STAFF, STAFF_WIZARDRY)
+ + you.scan_artefacts(ARTP_WIZARDRY);
}
int player_shield_class(void)
@@ -2714,6 +2715,7 @@ int player_sust_abil(bool calc_unid)
int sa = 0;
sa += you.wearing(EQ_RINGS, RING_SUSTAIN_ABILITIES, calc_unid);
+ sa += you.scan_artefacts(ARTP_SUSTAB);
if (sa > 2)
sa = 2;
diff --git a/crawl-ref/source/rltiles/dc-player.txt b/crawl-ref/source/rltiles/dc-player.txt
index 78b90ca..096cf92 100644
--- a/crawl-ref/source/rltiles/dc-player.txt
+++ b/crawl-ref/source/rltiles/dc-player.txt
@@ -445,6 +445,7 @@ maxwell MAXWELL
lears_hauberk LEARS_HAUBERK
faerie_dragon_armour FAERIE_DRAGON_ARMOUR
moon_troll_leather_armour MOON_TROLL_LEATHER_ARMOUR
+orange_crystal ORANGE_CRYSTAL
%end_ctg
### Arms
diff --git a/crawl-ref/source/rltiles/item/armour/artefact/urand_orange_crystal.png b/crawl-ref/source/rltiles/item/armour/artefact/urand_orange_crystal.png
new file mode 100644
index 0000000000000000000000000000000000000000..2dbbeb751eec2f3c2ee9c285c8d0dda0e50da4bb
GIT binary patch
literal 2278
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
An*aa+
literal 0
HcmV?d00001
diff --git a/crawl-ref/source/rltiles/player/body/orange_crystal.png b/crawl-ref/source/rltiles/player/body/orange_crystal.png
new file mode 100644
index 0000000000000000000000000000000000000000..ada249faa87995cdd8fe7e051119274fbfe3e095
GIT binary patch
literal 1617
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
P00000NkvXXu0mjf?AiY|
literal 0
HcmV?d00001
diff --git a/crawl-ref/source/util/art-data.pl b/crawl-ref/source/util/art-data.pl
index 933b2a2..5f794a8 100755
--- a/crawl-ref/source/util/art-data.pl
+++ b/crawl-ref/source/util/art-data.pl
@@ -64,10 +64,12 @@ my %field_type = (
SPECIAL => "bool",
STEALTH => "num",
STR => "num",
+ SUSTAB => "bool",
TYPE => "str",
UNHOLY => "bool",
UNIDED => "bool",
VALUE => "num",
+ WIZARDRY => "bool",
TILE => "str",
TILE_EQ => "str",
@@ -486,7 +488,7 @@ my @art_order = (
"NOSPELL", "RND_TELE", "NOTELEP", "ANGRY", "METAB", "\n",
"MUTATE", "ACC", "DAM", "CURSED", "STEALTH", "MP", "\n",
"BASE_DELAY", "HP", "CLARITY", "BASE_ACC", "BASE_DAM", "\n",
- "RMSL", "FOG", "REGEN", "NO_UPGRADE", "\n",
+ "RMSL", "FOG", "REGEN", "SUSTAB", "WIZARDRY", "NO_UPGRADE", "\n",
"}",
"equip_func", "unequip_func", "world_reacts_func", "melee_effects_func",
diff --git a/crawl-ref/source/wiz-item.cc b/crawl-ref/source/wiz-item.cc
index 2603ad6..2a0a2b2 100644
--- a/crawl-ref/source/wiz-item.cc
+++ b/crawl-ref/source/wiz-item.cc
@@ -285,6 +285,8 @@ static const char* _prop_name[] =
"+Fog",
#endif
"Regen",
+ "SustAb",
+ "Wiz",
"noupg",
};
@@ -336,6 +338,8 @@ static int8_t _prop_type[] =
ARTP_VAL_BOOL, //FOG
#endif
ARTP_VAL_ANY, //REGENERATION
+ ARTP_VAL_BOOL, //SUSTAB
+ ARTP_VAL_BOOL, //WIZARDRY
ARTP_VAL_BOOL, //NO_UPGRADE
};
@@ -1388,6 +1392,8 @@ static void _debug_rap_stats(FILE *ostat)
1, //ARTP_FOG
#endif
1, //ARTP_REGENERATION
+ 1, //ARTP_SUSTAB,
+ 1, //ARTP_WIZARDRY,
0, //ARTP_NO_UPGRADE
};
COMPILE_CHECK(ARRAYSZ(good_or_bad) == ARTP_NUM_PROPERTIES);
@@ -1543,6 +1549,8 @@ static void _debug_rap_stats(FILE *ostat)
"ARTP_FOG",
#endif
"ARTP_REGENERATION",
+ "ARTP_SUSTAB",
+ "ARTP_WIZARDRY",
"ARTP_NO_UPGRADE",
};
COMPILE_CHECK(ARRAYSZ(rap_names) == ARTP_NUM_PROPERTIES);
--
1.8.5.2 (Apple Git-48)
0004-Add-orange-crystal-plate.patch [^] (12,775 bytes) 2014-04-27 22:49 [Show Content] [Hide Content]From 52867f107ac1491df61fe8a5b9ed8c93ddd72a84 Mon Sep 17 00:00:00 2001
From: Nicholas Feinberg <pleasingfung@gmail.com>
Date: Sat, 19 Apr 2014 13:08:44 -0700
Subject: [PATCH] Add orange crystal plate
Adds a new unique designed to encourage players to cast in
ultra-heavy armour.
---
crawl-ref/source/art-data.txt | 13 +++++++++++++
crawl-ref/source/dat/descript/unrand.txt | 6 ++++++
crawl-ref/source/describe.cc | 2 ++
crawl-ref/source/enum.h | 1 +
crawl-ref/source/player.cc | 1 +
crawl-ref/source/rltiles/dc-player.txt | 1 +
.../item/armour/artefact/urand_orange_crystal.png | Bin 0 -> 2278 bytes
crawl-ref/source/rltiles/player/body/orange_crystal.png | Bin 0 -> 1617 bytes
crawl-ref/source/util/art-data.pl | 3 ++-
crawl-ref/source/wiz-item.cc | 4 ++++
10 files changed, 30 insertions(+), 1 deletion(-)
create mode 100644 crawl-ref/source/rltiles/item/armour/artefact/urand_orange_crystal.png
create mode 100644 crawl-ref/source/rltiles/player/body/orange_crystal.png
diff --git a/crawl-ref/source/art-data.txt b/crawl-ref/source/art-data.txt
index 86b2a67..ce7f894 100644
--- a/crawl-ref/source/art-data.txt
+++ b/crawl-ref/source/art-data.txt
@@ -96,6 +96,7 @@
# * seeinv: Lets wearer see invisible.
# * special: Artefact is "special": can't be picked up by monsters,
# can't be affected by Tukima's Dance.
+# * sustab: Ability damage resistance.
# * tilerim: Adds a black outline to the tile, see above section.
# * unided: Properties start unidentified.
@@ -1155,6 +1156,18 @@ PLUS: +7/+7
BRAND: SPWPN_FLAMING
FIRE: 2
+NAME: orange crystal plate
+OBJ: OBJ_ARMOUR/ARM_CRYSTAL_PLATE_ARMOUR
+COLOUR: LIGHTRED
+TILE: urand_orange_crystal
+TILE_EQ: orange_crystal
+PLUS: 8
+INT: 6
+BRAND: SPARM_ARCHMAGI
+BOOL: clarity, sustab
+
+
+
# This is the first of two amulets used to test suppression aura.
# Together, they confer every randart effect except for a few that are
# determined explicitly by checking whether a certain amulet is worn
diff --git a/crawl-ref/source/dat/descript/unrand.txt b/crawl-ref/source/dat/descript/unrand.txt
index b92db23..3afeca7 100644
--- a/crawl-ref/source/dat/descript/unrand.txt
+++ b/crawl-ref/source/dat/descript/unrand.txt
@@ -526,6 +526,12 @@ great mace "Firestarter"
Alongside its obvious effects, this weapon protects its owner's inventory from
fire, and fills monsters that it hits with an inner flame.
%%%%
+orange crystal plate
+
+Carved from transparent orange crystal, this armour provides remarkable
+protection for both mind and body. A skilled user can even channel psychic
+energies through the crystal itself. However, it's rather heavy...
+%%%%
milk chocolate
This item is a debugging aid, granting a vast array of mostly beneficial
diff --git a/crawl-ref/source/describe.cc b/crawl-ref/source/describe.cc
index 1e32498..6f960c2 100644
--- a/crawl-ref/source/describe.cc
+++ b/crawl-ref/source/describe.cc
@@ -257,6 +257,7 @@ static vector<string> _randart_propnames(const item_def& item,
{ "Clar", ARTP_CLARITY, 2 },
{ "RMsl", ARTP_RMSL, 2 },
{ "Regen", ARTP_REGENERATION, 2 },
+ { "SustAb", ARTP_SUSTAB, 2 },
};
// For randart jewellery, note the base jewellery type if it's not
@@ -468,6 +469,7 @@ static string _randart_descrip(const item_def &item)
{ ARTP_ELECTRICITY, "It insulates you from electricity.", false},
{ ARTP_POISON, "It protects you from poison.", false},
{ ARTP_NEGATIVE_ENERGY, "negative energy", true},
+ { ARTP_SUSTAB, "It sustains your attributes.", false},
{ ARTP_MAGIC, "It affects your resistance to hostile enchantments.", false},
{ ARTP_HP, "It affects your health (%d).", false},
{ ARTP_MAGICAL_POWER, "It affects your magic capacity (%d).", false},
diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h
index a96062b..3d894f6 100644
--- a/crawl-ref/source/enum.h
+++ b/crawl-ref/source/enum.h
@@ -3543,6 +3543,7 @@ enum artefact_prop_type
ARTP_FOG,
#endif
ARTP_REGENERATION,
+ ARTP_SUSTAB,
ARTP_NO_UPGRADE,
ARTP_NUM_PROPERTIES
};
diff --git a/crawl-ref/source/player.cc b/crawl-ref/source/player.cc
index 5c61b66..ee879d6 100644
--- a/crawl-ref/source/player.cc
+++ b/crawl-ref/source/player.cc
@@ -2714,6 +2714,7 @@ int player_sust_abil(bool calc_unid)
int sa = 0;
sa += you.wearing(EQ_RINGS, RING_SUSTAIN_ABILITIES, calc_unid);
+ sa += you.scan_artefacts(ARTP_SUSTAB);
if (sa > 2)
sa = 2;
diff --git a/crawl-ref/source/rltiles/dc-player.txt b/crawl-ref/source/rltiles/dc-player.txt
index 78b90ca..096cf92 100644
--- a/crawl-ref/source/rltiles/dc-player.txt
+++ b/crawl-ref/source/rltiles/dc-player.txt
@@ -445,6 +445,7 @@ maxwell MAXWELL
lears_hauberk LEARS_HAUBERK
faerie_dragon_armour FAERIE_DRAGON_ARMOUR
moon_troll_leather_armour MOON_TROLL_LEATHER_ARMOUR
+orange_crystal ORANGE_CRYSTAL
%end_ctg
### Arms
diff --git a/crawl-ref/source/rltiles/item/armour/artefact/urand_orange_crystal.png b/crawl-ref/source/rltiles/item/armour/artefact/urand_orange_crystal.png
new file mode 100644
index 0000000000000000000000000000000000000000..2dbbeb751eec2f3c2ee9c285c8d0dda0e50da4bb
GIT binary patch
literal 2278
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
An*aa+
literal 0
HcmV?d00001
diff --git a/crawl-ref/source/rltiles/player/body/orange_crystal.png b/crawl-ref/source/rltiles/player/body/orange_crystal.png
new file mode 100644
index 0000000000000000000000000000000000000000..ada249faa87995cdd8fe7e051119274fbfe3e095
GIT binary patch
literal 1617
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
P00000NkvXXu0mjf?AiY|
literal 0
HcmV?d00001
diff --git a/crawl-ref/source/util/art-data.pl b/crawl-ref/source/util/art-data.pl
index 933b2a2..986affc 100755
--- a/crawl-ref/source/util/art-data.pl
+++ b/crawl-ref/source/util/art-data.pl
@@ -64,6 +64,7 @@ my %field_type = (
SPECIAL => "bool",
STEALTH => "num",
STR => "num",
+ SUSTAB => "bool",
TYPE => "str",
UNHOLY => "bool",
UNIDED => "bool",
@@ -486,7 +487,7 @@ my @art_order = (
"NOSPELL", "RND_TELE", "NOTELEP", "ANGRY", "METAB", "\n",
"MUTATE", "ACC", "DAM", "CURSED", "STEALTH", "MP", "\n",
"BASE_DELAY", "HP", "CLARITY", "BASE_ACC", "BASE_DAM", "\n",
- "RMSL", "FOG", "REGEN", "NO_UPGRADE", "\n",
+ "RMSL", "FOG", "REGEN", "SUSTAB", "NO_UPGRADE", "\n",
"}",
"equip_func", "unequip_func", "world_reacts_func", "melee_effects_func",
diff --git a/crawl-ref/source/wiz-item.cc b/crawl-ref/source/wiz-item.cc
index 2603ad6..4bb6c65 100644
--- a/crawl-ref/source/wiz-item.cc
+++ b/crawl-ref/source/wiz-item.cc
@@ -285,6 +285,7 @@ static const char* _prop_name[] =
"+Fog",
#endif
"Regen",
+ "SustAb",
"noupg",
};
@@ -336,6 +337,7 @@ static int8_t _prop_type[] =
ARTP_VAL_BOOL, //FOG
#endif
ARTP_VAL_ANY, //REGENERATION
+ ARTP_VAL_BOOL, //SUSTAB
ARTP_VAL_BOOL, //NO_UPGRADE
};
@@ -1388,6 +1390,7 @@ static void _debug_rap_stats(FILE *ostat)
1, //ARTP_FOG
#endif
1, //ARTP_REGENERATION
+ 1, //ARTP_SUSTAB,
0, //ARTP_NO_UPGRADE
};
COMPILE_CHECK(ARRAYSZ(good_or_bad) == ARTP_NUM_PROPERTIES);
@@ -1543,6 +1546,7 @@ static void _debug_rap_stats(FILE *ostat)
"ARTP_FOG",
#endif
"ARTP_REGENERATION",
+ "ARTP_SUSTAB",
"ARTP_NO_UPGRADE",
};
COMPILE_CHECK(ARRAYSZ(rap_names) == ARTP_NUM_PROPERTIES);
--
1.8.5.2 (Apple Git-48)
0005-Add-orange-crystal-plate.patch [^] (12,967 bytes) 2014-05-08 16:55 [Show Content] [Hide Content]From fb62822d46327dd54c2f38113ba6b663a48c8b71 Mon Sep 17 00:00:00 2001
From: Nicholas Feinberg <pleasingfung@gmail.com>
Date: Sat, 19 Apr 2014 13:08:44 -0700
Subject: [PATCH] Add orange crystal plate
Adds a new artefact designed to encourage players to cast in
ultra-heavy armour.
---
crawl-ref/source/art-data.txt | 13 +++++++++++++
crawl-ref/source/dat/descript/unrand.txt | 6 ++++++
crawl-ref/source/describe.cc | 2 ++
crawl-ref/source/enum.h | 1 +
crawl-ref/source/player.cc | 1 +
crawl-ref/source/rltiles/dc-player.txt | 1 +
.../item/armour/artefact/urand_orange_crystal.png | Bin 0 -> 2264 bytes
crawl-ref/source/rltiles/player/body/orange_crystal.png | Bin 0 -> 1779 bytes
crawl-ref/source/util/art-data.pl | 3 ++-
crawl-ref/source/wiz-item.cc | 4 ++++
10 files changed, 30 insertions(+), 1 deletion(-)
create mode 100644 crawl-ref/source/rltiles/item/armour/artefact/urand_orange_crystal.png
create mode 100644 crawl-ref/source/rltiles/player/body/orange_crystal.png
diff --git a/crawl-ref/source/art-data.txt b/crawl-ref/source/art-data.txt
index b63831a..422cb3c 100644
--- a/crawl-ref/source/art-data.txt
+++ b/crawl-ref/source/art-data.txt
@@ -96,6 +96,7 @@
# * seeinv: Lets wearer see invisible.
# * special: Artefact is "special": can't be picked up by monsters,
# can't be affected by Tukima's Dance.
+# * sustab: Ability damage resistance.
# * tilerim: Adds a black outline to the tile, see above section.
# * unided: Properties start unidentified.
@@ -1149,6 +1150,18 @@ PLUS: +7/+7
BRAND: SPWPN_FLAMING
FIRE: 2
+NAME: orange crystal plate
+OBJ: OBJ_ARMOUR/ARM_CRYSTAL_PLATE_ARMOUR
+COLOUR: LIGHTRED
+TILE: urand_orange_crystal
+TILE_EQ: orange_crystal
+PLUS: 8
+INT: 6
+BRAND: SPARM_ARCHMAGI
+BOOL: clarity, sustab
+
+
+
# This is the first of two amulets used to test suppression aura.
# Together, they confer every randart effect except for a few that are
# determined explicitly by checking whether a certain amulet is worn
diff --git a/crawl-ref/source/dat/descript/unrand.txt b/crawl-ref/source/dat/descript/unrand.txt
index a986c9f..f6b03ea 100644
--- a/crawl-ref/source/dat/descript/unrand.txt
+++ b/crawl-ref/source/dat/descript/unrand.txt
@@ -563,6 +563,12 @@ great mace "Firestarter"
Alongside its obvious effects, this weapon protects its owner's inventory from
fire, and fills monsters that it hits with an inner flame.
%%%%
+orange crystal plate
+
+Carved from transparent orange crystal, this armour provides remarkable
+protection for both mind and body. A skilled user can even channel psychic
+energies through the crystal itself. However, it's rather heavy...
+%%%%
milk chocolate
This item is a debugging aid, granting a vast array of mostly beneficial
diff --git a/crawl-ref/source/describe.cc b/crawl-ref/source/describe.cc
index f23b4fa..a0dc4da 100644
--- a/crawl-ref/source/describe.cc
+++ b/crawl-ref/source/describe.cc
@@ -256,6 +256,7 @@ static vector<string> _randart_propnames(const item_def& item,
{ "Clar", ARTP_CLARITY, 2 },
{ "RMsl", ARTP_RMSL, 2 },
{ "Regen", ARTP_REGENERATION, 2 },
+ { "SustAb", ARTP_SUSTAB, 2 },
};
// For randart jewellery, note the base jewellery type if it's not
@@ -450,6 +451,7 @@ static string _randart_descrip(const item_def &item)
{ ARTP_ELECTRICITY, "It insulates you from electricity.", false},
{ ARTP_POISON, "It protects you from poison.", false},
{ ARTP_NEGATIVE_ENERGY, "negative energy", true},
+ { ARTP_SUSTAB, "It sustains your attributes.", false},
{ ARTP_MAGIC, "It affects your resistance to hostile enchantments.", false},
{ ARTP_HP, "It affects your health (%d).", false},
{ ARTP_MAGICAL_POWER, "It affects your magic capacity (%d).", false},
diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h
index 4fc747f..a894b19 100644
--- a/crawl-ref/source/enum.h
+++ b/crawl-ref/source/enum.h
@@ -3594,6 +3594,7 @@ enum artefact_prop_type
ARTP_FOG,
#endif
ARTP_REGENERATION,
+ ARTP_SUSTAB,
ARTP_NO_UPGRADE,
ARTP_NUM_PROPERTIES
};
diff --git a/crawl-ref/source/player.cc b/crawl-ref/source/player.cc
index 8ecd791..9456ab8 100644
--- a/crawl-ref/source/player.cc
+++ b/crawl-ref/source/player.cc
@@ -2713,6 +2713,7 @@ int player_sust_abil(bool calc_unid)
int sa = 0;
sa += you.wearing(EQ_RINGS, RING_SUSTAIN_ABILITIES, calc_unid);
+ sa += you.scan_artefacts(ARTP_SUSTAB);
if (sa > 2)
sa = 2;
diff --git a/crawl-ref/source/rltiles/dc-player.txt b/crawl-ref/source/rltiles/dc-player.txt
index ea9d8b9..7324e70 100644
--- a/crawl-ref/source/rltiles/dc-player.txt
+++ b/crawl-ref/source/rltiles/dc-player.txt
@@ -445,6 +445,7 @@ maxwell MAXWELL
lears_hauberk LEARS_HAUBERK
faerie_dragon_armour FAERIE_DRAGON_ARMOUR
moon_troll_leather_armour MOON_TROLL_LEATHER_ARMOUR
+orange_crystal ORANGE_CRYSTAL
%end_ctg
### Arms
diff --git a/crawl-ref/source/rltiles/item/armour/artefact/urand_orange_crystal.png b/crawl-ref/source/rltiles/item/armour/artefact/urand_orange_crystal.png
new file mode 100644
index 0000000000000000000000000000000000000000..fc53815a78e9186cfe5493d5da8185549f5b0cac
GIT binary patch
literal 2264
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
literal 0
HcmV?d00001
diff --git a/crawl-ref/source/rltiles/player/body/orange_crystal.png b/crawl-ref/source/rltiles/player/body/orange_crystal.png
new file mode 100644
index 0000000000000000000000000000000000000000..3aac68bb9bc7de595de8dd52b3608f00fc466e1f
GIT binary patch
literal 1779
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
VZoCvMX5s(<002ovPDHLkV1nT{Vov}7
literal 0
HcmV?d00001
diff --git a/crawl-ref/source/util/art-data.pl b/crawl-ref/source/util/art-data.pl
index 76532af..384e87e 100755
--- a/crawl-ref/source/util/art-data.pl
+++ b/crawl-ref/source/util/art-data.pl
@@ -63,6 +63,7 @@ my %field_type = (
SPECIAL => "bool",
STEALTH => "num",
STR => "num",
+ SUSTAB => "bool",
TYPE => "str",
UNHOLY => "bool",
UNIDED => "bool",
@@ -487,7 +488,7 @@ my @art_order = (
"NOSPELL", "RND_TELE", "NOTELEP", "ANGRY", "unused", "\n",
"MUTATE", "ACC", "DAM", "CURSED", "STEALTH", "MP", "\n",
"BASE_DELAY", "HP", "CLARITY", "BASE_ACC", "BASE_DAM", "\n",
- "RMSL", "FOG", "REGEN", "NO_UPGRADE", "\n",
+ "RMSL", "FOG", "REGEN", "SUSTAB", "NO_UPGRADE", "\n",
"}",
"equip_func", "unequip_func", "world_reacts_func", "melee_effects_func",
diff --git a/crawl-ref/source/wiz-item.cc b/crawl-ref/source/wiz-item.cc
index 6648d65..fdeb14e 100644
--- a/crawl-ref/source/wiz-item.cc
+++ b/crawl-ref/source/wiz-item.cc
@@ -285,6 +285,7 @@ static const char* _prop_name[] =
"+Fog",
#endif
"Regen",
+ "SustAb",
"noupg",
};
@@ -336,6 +337,7 @@ static int8_t _prop_type[] =
ARTP_VAL_BOOL, //FOG
#endif
ARTP_VAL_ANY, //REGENERATION
+ ARTP_VAL_BOOL, //SUSTAB
ARTP_VAL_BOOL, //NO_UPGRADE
};
@@ -1390,6 +1392,7 @@ static void _debug_rap_stats(FILE *ostat)
1, //ARTP_FOG
#endif
1, //ARTP_REGENERATION
+ 1, //ARTP_SUSTAB,
0, //ARTP_NO_UPGRADE
};
COMPILE_CHECK(ARRAYSZ(good_or_bad) == ARTP_NUM_PROPERTIES);
@@ -1547,6 +1550,7 @@ static void _debug_rap_stats(FILE *ostat)
"ARTP_FOG",
#endif
"ARTP_REGENERATION",
+ "ARTP_SUSTAB",
"ARTP_NO_UPGRADE",
};
COMPILE_CHECK(ARRAYSZ(rap_names) == ARTP_NUM_PROPERTIES);
--
1.8.5.2 (Apple Git-48)
|