Viewing Issue Simple Details Jump to Notes ] Wiki ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0008124 [DCSS] Patches minor N/A 2014-02-09 07:58 2015-04-11 07:27
Reporter gammafunk View Status public  
Assigned To gammafunk
Priority normal Resolution done  
Status closed   Product Branch 0.16 ancient branch
Summary 0008124: Fix various issues with spectral weapon, battlesphere, and grand_avatar
Description This patch is three commits to address 3 problems with these spells. It fixes the issue in 0008111 as well as the issue Sar reported in 0007474, in addition to other problems related to these spells.

The first commit makes spectral weapon and battlespheres set their owners as foe/target for seek purposes when not engaged with a target so that they correctly track their summoning monster. This addresses the issue Sar reported in 0007474. This commit also properly "leashes" spectral weapons to their owner, introduces a mons_is_avatar() function for the checks common to these three spells (suggestions for a name other than "avatar" welcome), and allows these avatars to always know the location of their owner. Hence they will try to seek their owner if the owner leaves their LOS, with the exception of grand avatar which circumvents normal movement in its current implementation.

The second commit introduces some methods to the monster class to allow setting avatar alignments to friendly/hostile when their owner's alignment changes. With these and the necessary calls for ENCH_CHARM events and angering a sufficiently intelligent ally, the three avatar types all turn friendly/hostile when their summoners do.

The third commit removes the monster weapon skill penalty for non-fighters, which is currently only used when monsters cast spectral weapon. For Asterion (the only monster caster of spectral weapon), it was resulting in weapons with half his HD that had quite poor to-hit. Damage isn't affected by this change, and spectral weapons still can't do a lot, but now they can get enough hits in to be relevant to the fight. We can add in a bonus to monster weapon skill for M_FIGHTER monsters if the need arises in the future.
Additional Information
Tags No tags attached.
Attached Files ? file icon avatar_fixes_gc7bb7542.patch [^] (22,198 bytes) 2014-02-09 07:58 [Show Content]
? file icon avatar_align_g6f603d6.patch [^] (7,991 bytes) 2014-02-13 07:17 [Show Content]
? file icon avatar_align2_gb78098f4.patch [^] (9,480 bytes) 2014-02-14 02:12 [Show Content]

- Relationships
related to 0008111closedgammafunk Battlesphere summoned by enslaved monster remained friendly after enslavement has ended 

-  Notes
neil (administrator)
2014-02-09 17:35

Besides enslavement, there's also discord, pacification, and possibly other things.
neil (administrator)
2014-02-09 17:48

Taking the other two commits, though (0.14-a0-2510-g5c913e8 and 0.14-a0-2511-ga0d116c), thanks! Could you take a look over the battlesphere bugs in mantis and indicate which can be closed now?
gammafunk (administrator)
2014-02-13 07:30

Reworked the alignment commit based on our discussion. There's a single monster::align_avatars() method, and I've added calls to in in mons_att_changed() and in the special-case of ENCH_CHARM (which sets attitude to hostile and doesn't call mons_att_changed(), so I call the method there directly). For monsters changing alignment to any form of neutral attitude, they lose their avatars. Added a function to terminal grand avatars, and the fix for the setting of ENCH_GRAND_AVATAR always on the caster is still there. I also make it not set that enchantment on any kind of avatar.

Tested with enslavement, needles of frenzy/discord, and elyv pacification.
gammafunk (administrator)
2014-02-13 07:36

Regarding other battlesphere bugs, there's 0006697, which I'm not able to duplicate. I tried tele port and wiz mode move, in both cases the recast recalled the battlesphere, gave it a charge, and it stayed by my side. The other battlesphere bugs don't look related to the issues in this patch.
gammafunk (administrator)
2014-02-14 02:18

Uploaded avatar_align2_gb78098f4.patch which removes avatars when a monster's soul is enslaved and makes the calls to mons_att_changed() for the instances when eldritch tentacles go neutral/hostile (the only in-game affect of this is that it makes them break constriction). This commit adds monster::remove_avatars(), which is used by ::align_avatars() as necessary and in the yred enslave case.

I've tested it with soul enslave for all three avatar types and also tested malign gateway to make sure it isn't broken.
gammafunk (administrator)
2014-02-26 19:08

The final cleaned up commit was merged in 0.14-a0-2725-g8ffe610, marking this resolved.

- Issue History
Date Modified Username Field Change
2014-02-09 07:58 gammafunk New Issue
2014-02-09 07:58 gammafunk File Added: avatar_fixes_gc7bb7542.patch
2014-02-09 17:35 neil Note Added: 0025240
2014-02-09 17:48 neil Note Added: 0025245
2014-02-09 17:49 neil Relationship added related to 0008111
2014-02-13 07:17 gammafunk File Added: avatar_align_g6f603d6.patch
2014-02-13 07:30 gammafunk Note Added: 0025298
2014-02-13 07:36 gammafunk Note Added: 0025299
2014-02-14 02:12 gammafunk File Added: avatar_align2_gb78098f4.patch
2014-02-14 02:18 gammafunk Note Added: 0025310
2014-02-26 19:08 gammafunk Note Added: 0025425
2014-02-26 19:08 gammafunk Status new => resolved
2014-02-26 19:08 gammafunk Fixed in Branch => 0.14 development branch
2014-02-26 19:08 gammafunk Resolution open => done
2014-02-26 19:08 gammafunk Assigned To => gammafunk
2015-04-11 07:27 gammafunk Status resolved => closed

Mantis 1.1.8[^]
Copyright © 2000 - 2009 Mantis Group
Powered by Mantis Bugtracker