示例#1
0
        public StoryInfo(string line)
        {
            CommaStringParser commaParser = new CommaStringParser(line);

            this.storyName    = commaParser.Consume();
            this.dialogueName = commaParser.Consume();
        }
示例#2
0
        public SkillColumnInfo(string line)
        {
            CommaStringParser commaParser = new CommaStringParser(line);

            this.unitName    = commaParser.Consume();
            this.column1Name = commaParser.Consume();
            this.column2Name = commaParser.Consume();
            this.column3Name = commaParser.Consume();
        }
示例#3
0
    public UnitInfo(string data)
    {
        CommaStringParser commaParser = new CommaStringParser(data);

        this.name       = commaParser.Consume();
        this.nameInCode = commaParser.Consume();
        this.side       = commaParser.ConsumeEnum <Side>();
        int x = commaParser.ConsumeInt();
        int y = commaParser.ConsumeInt();

        this.initPosition   = new Vector2(x, y);
        this.initDirection  = commaParser.ConsumeEnum <Direction>();
        this.baseHealth     = commaParser.ConsumeInt();
        this.basePower      = commaParser.ConsumeInt();
        this.baseDefense    = commaParser.ConsumeInt();
        this.baseResistance = commaParser.ConsumeInt();
        this.baseDexturity  = commaParser.ConsumeInt();
        this.unitClass      = commaParser.ConsumeEnum <UnitClass>();
        this.element        = commaParser.ConsumeEnum <Element>();
        this.celestial      = commaParser.ConsumeEnum <Celestial>();
    }
示例#4
0
    public SkillInfo(string data)
    {
        CommaStringParser commaParser = new CommaStringParser(data);

        this.owner        = commaParser.Consume();
        this.requireLevel = commaParser.ConsumeInt();

        string name  = commaParser.Consume();
        int    level = 0;      // default level : 0

        this.column = commaParser.ConsumeInt();
        string originRequireAPString = commaParser.Consume();

        string[] requireAPStringArray = originRequireAPString.Split(' ');
        int[]    requireAPArray       = new int[5];

        for (int i = 0; i < 5; i++)
        {
            int parsed = 0;
            try
            {
                parsed = Int32.Parse(requireAPStringArray[i]);
            }
            catch
            {
                Debug.LogWarning("Parse error in requireAPs : " + originRequireAPString);
                parsed = -1;
            }
            requireAPArray[i] = parsed;
        }
        string originCooldownString = commaParser.Consume();

        string[] cooldownStringArray = originCooldownString.Split(' ');
        int[]    cooldownArray       = new int[5];
        for (int i = 0; i < 5; i++)
        {
            int parsed = 0;
            try
            {
                parsed = Int32.Parse(cooldownStringArray[i]);
            }
            catch
            {
                Debug.LogWarning("Parse error in requireAPs : " + originCooldownString);
                parsed = -1;
            }
            cooldownArray[i] = parsed;
        }

        // parsing coefficients for damage calculation
        string originStatTypeString = commaParser.Consume();

        string[] statTypeArray           = originStatTypeString.Split('/');
        string   originPowerFactorString = commaParser.Consume();

        string[]  powerFactorStringArray = originPowerFactorString.Split('/');
        float[][] powerFactorArrayArray  = new float[powerFactorStringArray.Length][];

        for (int i = 0; i < powerFactorStringArray.Length; i++)
        {
            powerFactorArrayArray[i] = new float[5];
            string[] powerFactorString = powerFactorStringArray[i].Split(' ');
            for (int j = 0; j < 5; j++)
            {
                float parsed = 0.0f;
                try
                {
                    parsed = Convert.ToSingle(powerFactorString[j]);
                }
                catch
                {
                    Debug.LogWarning("Parse error in powerFactors : " + originRequireAPString);
                    parsed = -1;
                }
                powerFactorArrayArray[i][j] = parsed;
            }
        }

        Dictionary <string, float[]> powerFactor = new Dictionary <string, float[]>();

        for (int i = 0; i < statTypeArray.Length; i++)
        {
            powerFactor.Add(statTypeArray[i], powerFactorArrayArray[i]);
        }

        SkillType skillType = commaParser.ConsumeEnum <SkillType>();

        RangeForm firstRangeForm = commaParser.ConsumeEnum <RangeForm>();
        int       firstMinReach  = commaParser.ConsumeInt();
        int       firstMaxReach  = commaParser.ConsumeInt();
        int       firstWidth     = commaParser.ConsumeInt();

        RangeForm secondRangeForm = commaParser.ConsumeEnum <RangeForm>();
        int       secondMinReach  = commaParser.ConsumeInt();
        int       secondMaxReach  = commaParser.ConsumeInt();
        int       secondWidth     = commaParser.ConsumeInt();

        SkillApplyType skillApplyType          = commaParser.ConsumeEnum <SkillApplyType>();
        string         originPenetrationString = commaParser.Consume();

        string[] penetrationStringArray = originPenetrationString.Split(' ');
        float[]  penetrationArray       = new float[5];
        for (int i = 0; i < 5; i++)
        {
            int parsed = 0;
            try
            {
                parsed = Int32.Parse(penetrationStringArray[i]);
            }
            catch
            {
                Debug.LogWarning("Parse error in penetrations : " + originPenetrationString);
                parsed = -1;
            }
            penetrationArray[i] = parsed;
        }

        string           effectName       = commaParser.Consume();
        EffectVisualType effectVisualType = commaParser.ConsumeEnum <EffectVisualType>();
        EffectMoveType   effectMoveType   = commaParser.ConsumeEnum <EffectMoveType>();

        this.skill = new Skill(name, level, requireAPArray, cooldownArray,
                               powerFactor,
                               skillType,
                               firstRangeForm, firstMinReach, firstMaxReach, firstWidth,
                               secondRangeForm, secondMinReach, secondMaxReach, secondWidth,
                               skillApplyType, penetrationArray,
                               effectName, effectVisualType, effectMoveType);
    }
示例#5
0
    public StatusEffectInfo(string data)
    {
        Debug.Log(data);
        CommaStringParser commaParser = new CommaStringParser(data);

        this.owner     = commaParser.Consume();
        this.skillName = commaParser.Consume();

        string           name             = commaParser.Consume();
        int              level            = 0;
        StatusEffectType statusEffectType = commaParser.ConsumeEnum <StatusEffectType>();
        bool             isBuff           = commaParser.ConsumeBool();
        bool             isInfinite       = commaParser.ConsumeBool();
        bool             isStackable      = commaParser.ConsumeBool();
        bool             isRemovable      = commaParser.ConsumeBool();

        string originDegreeString = commaParser.Consume();

        string[] degreeStringArray = originDegreeString.Split(' ');
        float[]  degreeArray       = new float[5];
        for (int i = 0; i < 5; i++)
        {
            float parsed = 0.0f;
            try
            {
                parsed = Convert.ToSingle(degreeStringArray[i]);
            }
            catch
            {
                Debug.LogWarning("Parse error in degrees : " + originDegreeString);
                parsed = -1;
            }
            degreeArray[i] = parsed;
        }
        Stat   amountStat = commaParser.ConsumeEnum <Stat>();
        string originAmountFactorString = commaParser.Consume();

        string[] amountFactorStringArray = originAmountFactorString.Split(' ');
        float[]  amountFactorArray       = new float[5];
        for (int i = 0; i < 5; i++)
        {
            float parsed = 0;
            try
            {
                parsed = Convert.ToSingle(amountFactorStringArray[i]);
            }
            catch
            {
                Debug.LogWarning("Parse error in amountFactors : " + originAmountFactorString);
                parsed = -1;
            }
            amountFactorArray[i] = parsed;
        }
        int  remainAmount = 0; // 남은 보호막 체크용
        int  remainPhase  = commaParser.ConsumeInt();
        int  remainStack  = commaParser.ConsumeInt();
        int  cooldown     = commaParser.ConsumeInt();
        bool toBeRemoved  = false;

        string           effectName       = commaParser.Consume();
        EffectVisualType effectVisualType = commaParser.ConsumeEnum <EffectVisualType>();
        EffectMoveType   effectMoveType   = commaParser.ConsumeEnum <EffectMoveType>();

        this.statusEffect = new StatusEffect(name, level, statusEffectType,
                                             isBuff, isInfinite, isStackable, isRemovable,
                                             degreeArray, amountStat, amountFactorArray, remainAmount,
                                             remainPhase, remainStack, cooldown, toBeRemoved,
                                             effectName, effectVisualType, effectMoveType);
    }
示例#6
0
    public BattleEndTrigger(string data)
    {
        CommaStringParser commaParser = new CommaStringParser(data);

        result        = commaParser.ConsumeEnum <BattleResult>();
        triggerNumber = commaParser.ConsumeInt();

        if (triggerNumber == 5 || triggerNumber == 6 || triggerNumber == 9 || triggerNumber == 10)
        {
            return;
        }

        if (triggerNumber == 1)
        {
            maxPhase = commaParser.ConsumeInt();
        }
        else if (triggerNumber == 2 || triggerNumber == 3 || triggerNumber == 4)
        {
            targetUnitNames = new List <string>();
            int numberOfName = commaParser.ConsumeInt();
            for (int i = 0; i < numberOfName; i++)
            {
                string targetUnitName = commaParser.Consume();
                targetUnitNames.Add(targetUnitName);
            }

            if (triggerNumber == 3)
            {
                minNumberOfTargetUnit = commaParser.ConsumeInt();
            }
        }
        else if (triggerNumber == 7)
        {
            minNumberOfAlly = commaParser.ConsumeInt();
        }
        else if (triggerNumber == 8)
        {
            minNumberOfEnemy = commaParser.ConsumeInt();
        }
        else if (triggerNumber > 10 && triggerNumber < 20)
        {
            targetTiles = new List <Vector2>();
            int numberOfTiles = commaParser.ConsumeInt();
            for (int i = 0; i < numberOfTiles; i++)
            {
                int     x        = commaParser.ConsumeInt();
                int     y        = commaParser.ConsumeInt();
                Vector2 position = new Vector2(x, y);
                targetTiles.Add(position);
            }

            if (triggerNumber == 11 || triggerNumber == 12 || triggerNumber == 13)
            {
                reachedTargetUnitNames = new List <string>();
                int numberOfName = commaParser.ConsumeInt();
                for (int i = 0; i < numberOfName; i++)
                {
                    string targetUnitName = commaParser.Consume();
                    reachedTargetUnitNames.Add(targetUnitName);
                }

                if (triggerNumber == 12)
                {
                    minNumberOfReachedTargetUnit = commaParser.ConsumeInt();
                }
            }
            else if (triggerNumber == 16)
            {
                minNumberOfReachedAlly = commaParser.ConsumeInt();
            }
            else if (triggerNumber == 17)
            {
                minNumberOfReachedEnemy = commaParser.ConsumeInt();
            }
        }
    }