Skip to content

Commit 06da26d

Browse files
committed
New conduct: never forged an artifact.
This conduct only tracks forging any kind of artifact object. Forging regular items is not tracked or affected by this conduct.
1 parent af4a24d commit 06da26d

File tree

5 files changed

+13
-2
lines changed

5 files changed

+13
-2
lines changed

doc/evilhack-changelog.md

+1
Original file line numberDiff line numberDiff line change
@@ -3389,4 +3389,5 @@ The following changes to date are:
33893389
- 'Deslog' the first wizard's tower level
33903390
- Fix: Lava gremlin exploding a forge
33913391
- Fix: ID_MANIFEST target (windows build)
3392+
- New conduct: never forged an artifact
33923393

include/you.h

+1
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ struct u_conduct { /* number of times... */
129129
long elbereth; /* engraved Elbereth */
130130
long artitouch; /* touched an artifact */
131131
long pets; /* obtained a pet */
132+
long forgedarti; /* forged an artifact */
132133
/* genocides already listed at end of game */
133134
};
134135

src/cmd.c

+7-2
Original file line numberDiff line numberDiff line change
@@ -3857,8 +3857,13 @@ int final;
38573857
" for any artifacts", "");
38583858
}
38593859

3860-
if (!u.uconduct.pets)
3861-
you_have_never("owned a pet");
3860+
if (!u.uconduct.pets) {
3861+
you_have_never("owned a pet");
3862+
}
3863+
3864+
if (!u.uconduct.forgedarti) {
3865+
you_have_never("forged an artifact");
3866+
}
38623867

38633868
show_achievements(final);
38643869

src/fountain.c

+1
Original file line numberDiff line numberDiff line change
@@ -669,6 +669,7 @@ doforging(void)
669669
output = addinv(output);
670670
output->owt = weight(output);
671671
You("have successfully forged %s.", doname(output));
672+
u.uconduct.forgedarti++;
672673
livelog_printf(LL_ARTIFACT, "used a forge to create %s%s",
673674
(output->oartifact == ART_GAUNTLETS_OF_PURITY
674675
|| output->oartifact == ART_HAMMER_OF_THE_GODS

src/topten.c

+3
Original file line numberDiff line numberDiff line change
@@ -520,6 +520,7 @@ encode_extended_conducts()
520520
add_achieveX(buf, "bonesless", !u.uroleplay.numbones);
521521
add_achieveX(buf, "never_died", u.umortality == 0);
522522
add_achieveX(buf, "never_abused_alignment", u.ualign.abuse == 0);
523+
add_achieveX(buf, "never_forged_an_artifact", !u.uconduct.forgedarti);
523524

524525
return buf;
525526
}
@@ -591,6 +592,8 @@ encodeconduct()
591592
e |= 1L << 19;
592593
if (u.ualign.abuse == 0)
593594
e |= 1L << 20;
595+
if (!u.uconduct.forgedarti)
596+
e |= 1L << 21;
594597

595598
return e;
596599
}

0 commit comments

Comments
 (0)