Therefore, this week, I decided to come up with a system that would overcome this problem. Initially, I tried to overcome the problem by directly implementing a new cursor system as proposed by 0100010 (Edward Beck), but this turned out to be rather unwieldy for my own purposes and so I decided to go about the problem a different way and came up with the following system. As usual, all your comments, questions and suggestions for improvements are welcome!
Before I go into more detail, however, I would still like to receive feedback from last week's blog and the for the current poll: Will You Be Crafting? Even if you have nothing more to say about the topic, I would be interested to see what the general consensus is regarding crafting. Please find more detail in this post about Increased Spell Power.
Know Thy Enemy
In the end, I decided that simply targeting a neutral with a hostile spell was against the spirit of the game anyway. After all, why would someone simply cast a magic missile at a neutral? OK, all chaotic evil players need not answer that. Even so, there is normally a little more reason to attack a neutral than just as something to do. In most circumstances, the player will have a little idea of who the NPC is before they attack them. At the very least they will examine them to read a bit about them (if available). With this in mind, I determined that it could be via the examine window that the player could decide whether they wanted to attack the NPC in question or not.
Goodie Or Baddie?
To this end, I added a new button to the examine GUI that allows a player to switch the hostile/neutral status of the NPC they are examining. Switching the NPC's status this way does not affect the hostile settings to other creatures in the area, as the NPC simply turns hostile to the party by using an Anti-Party faction setting. At the same time, the player's party AI is switched off to prevent any party members automatically starting to attack the new hostile NPC. Once turned hostile, the player can target the NPC with their PC's hostile spells without any further problems. If the player changes their mind about attacking this NPC, then the same toggle switch can be used to turn the NPC back to a neutral. Note, however, hostile creatures or those factions already Anti-Party by default cannot be turned to a neutral faction.
Attacking a neutral in an area of other neutrals comes with consequences. After all, people are not going to stand around and allow one of their own to be attacked, physically or with spells, if they are close enough to witness the event and can help. Therefore, a player must use this facility with due consideration for the consequences of their actions. Using it to attack a villager in a village of people may not be such a good idea, whereas suddenly attacking an evil NPC in their home to avoid greater bloodshed later on may be a wise move.
The new examine window has been modified to give "live" distance to target as well, updating the GUI four times every second. This can be useful if you are preparing to use a spell that is restricted to a range and you only want to release the spell when the target is within range (and to avoid your PC from running forward to cast the spell). Furthermore, the range has the category of spell range within parenthesis after it (Touch, Short, Medium, Long) to help easily work out what spell range the target is within.
Now follows some composite screenshots giving an idea of what the system will look like in action:
2) Note how the villager has moved closer and the range has dropped to 7 feet, now at Touch spell range (for the campaign).
3) When choosing to turn this villager hostile to the party, all party AI is disabled to prevent unplanned assaults. Chat window gives feedback. If "Pause On Hostile Sighted" is enabled, auto-pause will also start.
4) Faction settings prevent "hostile" villagers reacting to any other creatures until actually attacked.
5) Re-examining the villager shows it now as hostile (has a red ring) and updated range.
6) Player has chosen to revert this NPC back to a neutral. The chat window is updated.