Commit 79b07e1 1 parent 8f0680a commit 79b07e1 Copy full SHA for 79b07e1
File tree 9 files changed +36
-10
lines changed
9 files changed +36
-10
lines changed Original file line number Diff line number Diff line change @@ -3421,4 +3421,5 @@ The following changes to date are:
3421
3421
- Fix: repair armor spell will not randomly target the Hand of Vecna
3422
3422
- Suppress livelogging whilst in explore mode
3423
3423
- New conduct: never acquired magic resistance
3424
+ - New conduct: never acquired reflection
3424
3425
Original file line number Diff line number Diff line change @@ -131,6 +131,7 @@ struct u_conduct { /* number of times... */
131
131
long pets ; /* obtained a pet */
132
132
long forgedarti ; /* forged an artifact */
133
133
long antimagic ; /* acquired magic resistance */
134
+ long reflection ; /* acquired reflection */
134
135
/* genocides already listed at end of game */
135
136
};
136
137
Original file line number Diff line number Diff line change @@ -1022,29 +1022,33 @@ long wp_mask;
1022
1022
}
1023
1023
if (spfx & SPFX_REFLECT ) {
1024
1024
if (otmp -> oartifact == ART_MAGIC_MIRROR_OF_MERLIN ) {
1025
- if (on )
1025
+ if (on ) {
1026
1026
EReflecting |= wp_mask ;
1027
- else
1027
+ u .uconduct .reflection ++ ;
1028
+ } else
1028
1029
EReflecting &= ~wp_mask ;
1029
1030
} else if (otmp
1030
1031
&& (otmp -> oartifact == ART_LONGBOW_OF_DIANA
1031
1032
|| otmp -> oartifact == ART_CROSSBOW_OF_CARL )
1032
1033
&& (wp_mask & W_WEP )) { /* wielding various reflecting artifacts */
1033
- if (on )
1034
+ if (on ) {
1034
1035
EReflecting |= wp_mask ;
1035
- else
1036
+ u .uconduct .reflection ++ ;
1037
+ } else
1036
1038
EReflecting &= ~wp_mask ;
1037
1039
} else if (otmp && otmp -> oartifact == ART_DRAGONBANE
1038
1040
&& (wp_mask & W_ARMG )) { /* or in Dragonbane's case, wear them */
1039
- if (on )
1041
+ if (on ) {
1040
1042
EReflecting |= wp_mask ;
1041
- else
1043
+ u .uconduct .reflection ++ ;
1044
+ } else
1042
1045
EReflecting &= ~wp_mask ;
1043
1046
} else if (otmp && otmp -> oartifact == ART_GAUNTLETS_OF_PURITY
1044
1047
&& (wp_mask & W_ARMG )) { /* same */
1045
- if (on )
1048
+ if (on ) {
1046
1049
EReflecting |= wp_mask ;
1047
- else
1050
+ u .uconduct .reflection ++ ;
1051
+ } else
1048
1052
EReflecting &= ~wp_mask ;
1049
1053
}
1050
1054
}
Original file line number Diff line number Diff line change @@ -3150,6 +3150,7 @@ int final;
3150
3150
you_are ("invulnerable" , from_what (INVULNERABLE ));
3151
3151
if (Antimagic )
3152
3152
you_are ("magic-protected" , from_what (ANTIMAGIC ));
3153
+
3153
3154
/* Partial intrinsic resistances */
3154
3155
Sprintf (buf , "%d%% fire resistant" , how_resistant (FIRE_RES ));
3155
3156
if (Fire_resistance )
@@ -3874,6 +3875,10 @@ int final;
3874
3875
you_have_never ("acquired magic resistance" );
3875
3876
}
3876
3877
3878
+ if (!u .uconduct .reflection ) {
3879
+ you_have_never ("acquired reflection" );
3880
+ }
3881
+
3877
3882
show_achievements (final );
3878
3883
3879
3884
/* Pop up the window and wait for a key */
Original file line number Diff line number Diff line change @@ -848,7 +848,7 @@ Shield_on(VOID_ARGS)
848
848
{
849
849
/* no shield currently requires special handling when put on, but we
850
850
keep this uncommented in case somebody adds a new one which does
851
- [reflection is handled by setting u.uprops[REFLECTION ].extrinsic
851
+ [reflection is handled by setting u.uprops[REFLECTING ].extrinsic
852
852
in setworn() called by armor_or_accessory_on() before Shield_on()] */
853
853
switch (uarms -> otyp ) {
854
854
case SMALL_SHIELD :
Original file line number Diff line number Diff line change @@ -800,6 +800,13 @@ int mntmp;
800
800
if (resists_mgc (youmonst .data ))
801
801
u .uconduct .antimagic ++ ;
802
802
803
+ /* no reflection conduct. currently, the only monster
804
+ that has reflection that a player can polymorph
805
+ into is an adult silver dragon. should that ever
806
+ change, we'll need to revisit this bit of code */
807
+ if (youmonst .data == & mons [PM_SILVER_DRAGON ])
808
+ u .uconduct .reflection ++ ;
809
+
803
810
/*
804
811
mlvl = adj_lev(&mons[mntmp]);
805
812
* We can't do the above, since there's no such thing as an
Original file line number Diff line number Diff line change @@ -869,6 +869,7 @@ register struct monst *mdef;
869
869
? 250 : 100 );
870
870
871
871
if (youdefend ) {
872
+ u .uconduct .reflection ++ ;
872
873
if (HReflecting ) {
873
874
if (!Blind )
874
875
pline ("The shimmering globe around you becomes slightly brighter." );
Original file line number Diff line number Diff line change @@ -522,6 +522,7 @@ encode_extended_conducts()
522
522
add_achieveX (buf , "never_abused_alignment" , u .ualign .abuse == 0 );
523
523
add_achieveX (buf , "never_forged_an_artifact" , !u .uconduct .forgedarti );
524
524
add_achieveX (buf , "never_acquired_magic_resistance" , !u .uconduct .antimagic );
525
+ add_achieveX (buf , "never_acquired_reflection" , !u .uconduct .reflection );
525
526
526
527
return buf ;
527
528
}
@@ -597,6 +598,8 @@ encodeconduct()
597
598
e |= 1L << 21 ;
598
599
if (!u .uconduct .antimagic )
599
600
e |= 1L << 22 ;
601
+ if (!u .uconduct .reflection )
602
+ e |= 1L << 23 ;
600
603
601
604
return e ;
602
605
}
Original file line number Diff line number Diff line change @@ -1646,9 +1646,13 @@ struct obj *armor;
1646
1646
return objects [Dragon_armor_to_scales (armor )].oc_oprop ;
1647
1647
1648
1648
/* no magic resistance conduct */
1649
- if (prop == ANTIMAGIC )
1649
+ if (obj_has_prop ( armor , ANTIMAGIC ) )
1650
1650
u .uconduct .antimagic ++ ;
1651
1651
1652
+ /* no reflection conduct */
1653
+ if (obj_has_prop (armor , REFLECTING ))
1654
+ u .uconduct .reflection ++ ;
1655
+
1652
1656
return prop ;
1653
1657
}
1654
1658
You can’t perform that action at this time.
0 commit comments