public void Update()
{
var before = this.Options;
this.Clear();
if (this.Creature.IsDead)
{
var isInTirNaNog = this.Creature.IsInTirNaNog;
// Defaults
this.Add(ReviveOptions.WaitForRescue);
if (this.Creature.IsPet)
this.Add(ReviveOptions.PhoenixFeather);
// Town
if (!isInTirNaNog)
{
this.Add(ReviveOptions.Town);
}
// Tir Na Nog
else
{
// Use TNN or Barri, depending on whether the bind quest
// was done.
if (this.Creature.Keywords.Has("g1_bind"))
this.Add(ReviveOptions.TirNaNog);
else
this.Add(ReviveOptions.BarriLobby);
}
// Nao Stone option if it's enabled, and creature is not
// in Tir Na Nog.
if (AuraData.FeaturesDb.IsEnabled("NaoCoupon") && !isInTirNaNog)
this.Add(ReviveOptions.NaoStone);
// Dungeons
if (this.Creature.Region is DungeonRegion)
{
this.Add(ReviveOptions.DungeonEntrance);
// Show statue option only if there is a statue on this floor
var floorRegion = (this.Creature.Region as DungeonFloorRegion);
if (floorRegion == null || floorRegion.Floor.Statue)
this.Add(ReviveOptions.StatueOfGoddess);
}
// Fields
else
{
if (!isInTirNaNog)
this.Add(ReviveOptions.Here);
}
// Special
if (this.Creature.Titles.SelectedTitle == TitleId.devCAT)
this.Add(ReviveOptions.HereNoPenalty);
}
if (this.Options != before || this.Creature.IsDead)
Send.DeadFeather(this.Creature);
}