protected override OptionResult Perform(IActor actor, GameObject target, GameObjectHit hit) { Lot lot = GetLot(target, hit); if (lot == null) { return(OptionResult.Failure); } uint type = (uint)lot.CommercialLotSubType; Common.Notify("Current Type: " + lot.mMetaAutonomyType.ToString()); List <Item> allOptions = new List <Item>(); foreach (Lot.MetaAutonomyType metaAutoType in Enum.GetValues(typeof(Lot.MetaAutonomyType))) { allOptions.Add(new Item(metaAutoType)); } Item selection = new CommonSelection <Item>(lot.GetLocalizedName(), allOptions).SelectSingle(); if (selection == null) { return(OptionResult.Failure); } if (!Tagger.Settings.TypeHasCustomSettings(type)) { TagSettingKey key = new TagSettingKey(); key.MetaAutonomyType = (uint)selection.Value; Tagger.Settings.mCustomTagSettings.Add(type, key); } else { Tagger.Settings.mCustomTagSettings[type].MetaAutonomyType = (uint)selection.Value; } Tagger.SetMetaAutonomyType(lot, selection.Value); Common.Notify(GetInteractionName() + ": " + selection.Value); return(OptionResult.SuccessClose); }