[x] Bug: It's possible to push Asta across the floor with a dagger attacking over and over
[x] Bug: When you display a flame atronach, Asta will try to attack it. It will blip red on the compass as an enemy.
[x] Bug: When both Asta and a flame Atronach are on display, Asta will say combat lines
[x] Bug: Asta might walk a little bit if the player attacks her up close. I'm going to need to do find another, more reliable way of making sure the NPC never walks as opposed to simply package overrides.
[x] What should I show for filled soul gems that the player picks up in the world since they won't have a specific soul attached to them? Should I simply display a default soul? Should I choose a soul, rename the gem, and add it to the database when it's added to the player's inventory?
Use a player add item story event. Check that it's a soul gem and it isn't already in the database. Write an SKSE function to decide which form to attach to the soul gem. Have a list of creatures within certain level ranges to randomly choose from.
[x] Fix the capitalization of the soul's name. The first letter of each word should be capitalized. Write an SKSE function.
Look at JContainers' source code to see how it manipulates BSFixedString objects. Construct and set the soul gem's display name in an SKSE plugin method to avoid the caching problem, make it faster, and unify the two places that do it in Papyrus currently.
[x] Set the name of the soul contained in Azura's Star and the Black Star.
Have a script on an event activated quest where it can look-up its stored soul in the database by base form and then set it on the ObjectReference that's filled on the Quest Alias. The event is a Player Add Item Story Event with a check that it's type Soul Gem. Is it possible to check that it's a certain base form?
[x] Get Azura's Star and the Black Star working: Use a 3rd NPC who has nothing in his inventory. If the SKSE function decides that Azura's star or the Black Star is the one to fill, then move the player's Star to the 3rd actor and call the built-in Actor.SoulTrap() function on that 3rd actor and then remove his Star and place it in the player.
[x] Handle black soul gems. Check if the enemy is in the creature faction or daedra faction.
[x] The +1 method doesn't work for soul gems other than petty and lesser. Make the others work using their exact form IDs. Create a returnValues array in Papyrus, pass it in as a parameter, and set its value.
[x] Add your soul trap FX script to all the other soul trap Magic Effects
[x] Prevent the soul from attacking the player even if the player attacks it
[x] Prevent the soul from dying
[x] Prevent the soul from speaking
[x] Make the NPC disappear when its soul is removed from the container
[x] Prevent the NPC from moving
[x] Why does the NPC lose its Alias association on game load?
[x] Prevent combat music from happening. Will this help as an example?
[x] Prevent the NPC from turning into a red dot when it's hit
[x] Tracking all the displayed NPCs: Have a set number of Quest Aliases on the SkaarSoulDisplayQuest and have an Int property on each of the soul display containers. Set the property in the Creation Kit and then force assign the NPC to the alias on SkaarSoulDisplayQuest at that position.
[x] Rename soul gems in inventory to show which soul it contains
The player adds a soul to a pedestal and the creature held in the soul stone is displayed.
Existing trophy creatures.
Done
BSFixedString
objects. Construct and set the soul gem's display name in an SKSE plugin method to avoid the caching problem, make it faster, and unify the two places that do it in Papyrus currently.