Esempio n. 1
0
    private static BattlerActionEffectFlags ParseListOfFlags(string[] flagsList)
    {
        const int firstTermThatsActuallyAFlag = 8;
        BattlerActionEffectFlags flags        = 0;

        for (int i = firstTermThatsActuallyAFlag; i < flagsList.Length; i++)
        {
            bool isValidFlag = false;
            for (ulong b = 1; b < (ulong)1 << 63;)
            {
                if (flagsList[i] == ((BattlerActionEffectFlags)b).ToString())
                {
                    flags      |= (BattlerActionEffectFlags)b;
                    isValidFlag = true;
                    break;
                }
                b = b << 1;
            }
            if (isValidFlag == false)
            {
                throw new System.NotSupportedException("BattlerActionData entry has a bad flag: " + flagsList[i]);
            }
        }
        return(flags);
    }
Esempio n. 2
0
 private BattlerActionData(int index, string line)
 {
     actionID = (BattlerAction)index;
     string[] terms = line.Split(',');
     name               = terms[0];
     cooldownTurns      = int.Parse(terms[1]);
     effectPower        = int.Parse(terms[2]);
     interruptType      = ParseInterruptType(terms[3]);
     anim               = ParseAnim(terms[4]);
     target             = ParseTarget(terms[5]);
     baseDamage         = int.Parse(terms[6]);
     numberOfSubtargets = int.Parse(terms[7]);
     flags              = ParseListOfFlags(terms);
     if ((flags & BattlerActionEffectFlags.Healing) == BattlerActionEffectFlags.Healing)
     {
         baseDamage = baseDamage * -1;
     }
 }
Esempio n. 3
0
 /// <summary>
 /// Checks to see if the flag is set in the action data.
 /// Pass a flag, get a bool.
 /// </summary>
 public bool HasEffectFlag(BattlerActionEffectFlags flag)
 {
     return((flags & flag) == flag);
 }