예제 #1
0
 public AbilityFeatChoiceModel(PlayerModel model, AbilityScoreFeatFeature asff) : base(model, asff.UniqueID, 2, asff, true)
 {
     Name     = "Ability Score Improvement";
     OnSelect = new Command((par) =>
     {
         if (par is ChoiceOption co)
         {
             AbilityFeatChoice afc = Model.Context.Player.GetAbilityFeatChoice(Feature as AbilityScoreFeatFeature);
             Model.MakeHistory();
             if (co.Value is AbilityChoice ac)
             {
                 afc.Feat = null;
                 if (co.Selected)
                 {
                     if (afc.Ability2 == ac.Ability)
                     {
                         afc.Ability2 = Ability.None;
                     }
                     else if (afc.Ability1 == ac.Ability)
                     {
                         afc.Ability1 = Ability.None;
                     }
                 }
                 else
                 {
                     if (afc.Ability1 == Ability.None)
                     {
                         afc.Ability1 = ac.Ability;
                     }
                     else
                     {
                         afc.Ability2 = ac.Ability;
                     }
                 }
             }
             else
             {
                 afc.Ability1 = Ability.None;
                 afc.Ability2 = Ability.None;
                 if (co.Selected)
                 {
                     afc.Feat = null;
                 }
                 else
                 {
                     afc.Feat = co.NameWithSource;
                 }
             }
             Model.Save();
             Model.FirePlayerChanged();
         }
     });
 }
예제 #2
0
        public override List <string> GetAllTakenChoices()
        {
            List <String>     res = new List <string>();
            AbilityFeatChoice afc = Model.Context.Player.GetAbilityFeatChoice(Feature as AbilityScoreFeatFeature);

            if (afc.Ability1 != Ability.None)
            {
                res.Add("+1 " + afc.Ability1.ToString());
            }
            if (afc.Ability2 != Ability.None)
            {
                res.Add("+1 " + afc.Ability2.ToString());
            }
            if (afc.Feat != null && afc.Feat != "")
            {
                res.Add(afc.Feat);
            }
            return(res);
        }