コード例 #1
0
            public bool EarnExp(uint ap, out Kernel.Abilities ability)
            {
                var ret = false;

                ability = Kernel.Abilities.None;

                if (!IsGameOver)
                {
                    if (EXPtoNextLevel <= ap && Level < 100)
                    {
                        ret = true;
                    }
                    Experience += ap;
                    if (!Learning.Equals(Kernel.Abilities.None) && Memory.KernelBin.AllAbilities.ContainsKey(Learning))
                    {
                        var ap_tolearn = Memory.KernelBin.AllAbilities[Learning].AP;
                        if (JunctionableGFsData.Ability.TryGetIndexByKey(Learning, out var ind) && TestGFCanLearn(Learning, false))
                        {
                            if (ap_tolearn < APs[ind] + ap)
                            {
                                APs[ind] = ap_tolearn;
                                ability  = Learning;
                                Learn(Learning);
                            }
                            else
                            {
                                APs[ind] += (byte)ap;
                            }
                        }
                    }
                }
                return(ret);
            }
コード例 #2
0
 public bool UnlockerTest(Kernel.Abilities a)
 {
     if (JunctionableGFsData.Ability.TryGetByKey(a, out var u))
     {
         return(UnlockerTest(u));
     }
     //return true if there is no prereq.
     return(true);
 }
コード例 #3
0
 /// <summary>
 /// Learn this ability
 /// </summary>
 /// <param name="ability"></param>
 /// <returns></returns>
 public bool Learn(Kernel.Abilities ability)
 {
     if (!MaxGFAbilities)
     {
         if (!Complete[(int)ability])
         {
             Complete[(int)ability] = true;
             if (Learning.Equals(ability))
             {
                 SetLearning();
             }
             return(true);
         }
     }
     return(false);
 }
コード例 #4
0
 /// <summary>
 /// False if gf knows ability, True if can learn it.
 /// </summary>
 /// <param name="ability">Ability you want to learn.</param>
 /// <param name="item">
 /// If using an Item you don't need the prereq, set to false if need prereq
 /// </param>
 public bool TestGFCanLearn(Kernel.Abilities ability, bool item = true) => !Complete[(int)ability] && ((item) || UnlockerTest(ability));