Пример #1
0
    public void AddMedal(string strDef, MedalCombatAbility combatAbility, MedalAbility ability)
    {
        var medalCombatAbilities = new List <MedalCombatAbility>();

        if (combatAbility.Attribute == "PSM")
        {
            foreach (var s in "PSM")
            {
                medalCombatAbilities.Add(new MedalCombatAbility
                {
                    Attribute        = s.ToString(),
                    Direction        = combatAbility.Direction,
                    Duration         = combatAbility.Duration,
                    Tier             = combatAbility.Tier,
                    IsPlayerAffected = combatAbility.IsPlayerAffected,
                    IsEnemyAffected  = combatAbility.IsEnemyAffected,
                });
            }
        }
        else if (combatAbility.Attribute == "UR")
        {
            foreach (var s in "UR")
            {
                medalCombatAbilities.Add(new MedalCombatAbility
                {
                    Attribute        = s.ToString(),
                    Direction        = combatAbility.Direction,
                    Duration         = combatAbility.Duration,
                    Tier             = combatAbility.Tier,
                    IsPlayerAffected = combatAbility.IsPlayerAffected,
                    IsEnemyAffected  = combatAbility.IsEnemyAffected,
                });
            }
        }
        else
        {
            medalCombatAbilities.Add(combatAbility);
        }

        switch (strDef)
        {
        case "strength":
        case "STR":
            foreach (var combat in medalCombatAbilities)
            {
                ability.STR.Add(combat);
            }
            break;

        case "defense":
        case "DEF":
            foreach (var combat in medalCombatAbilities)
            {
                ability.DEF.Add(combat);
            }
            break;

        default:
            Debug.Log("Something went wrong... " + strDef);
            break;
        }
    }
Пример #2
0
    public bool AddToRaiseLowerMedal(string duration, string section, MedalAbility ability, string selfTarget = "")
    {
        var addResults = AddToRaiseLowerRegex.Matches(section);

        if (addResults.Count > 0)
        {
            foreach (Match addResult in addResults)
            {
                var direction  = addResult.Groups[1].Value;
                var targetBool = string.IsNullOrEmpty(selfTarget) || selfTarget.Equals("self") ? true : false;

                var index = 3;
                for (int i = 0; i < 4; ++i)
                {
                    var attribute = addResult.Groups[index].Value;
                    var strDef    = addResult.Groups[index + 1].Value;

                    if (attribute != "" || strDef != "")
                    {
                        var amount = !string.IsNullOrEmpty(addResult.Groups[index + 2].Value)
                                         ? addResult.Groups[index + 2].Value :
                                     (index + 2) + 3 < addResult.Groups.Count && !string.IsNullOrEmpty(addResult.Groups[(index + 2) + 3].Value)
                                         ? addResult.Groups[(index + 2) + 3].Value :
                                     (index + 2) + 6 < addResult.Groups.Count && !string.IsNullOrEmpty(addResult.Groups[(index + 2) + 6].Value)
                                         ? addResult.Groups[(index + 2) + 6].Value :
                                     (index + 2) + 9 < addResult.Groups.Count && !string.IsNullOrEmpty(addResult.Groups[(index + 2) + 9].Value)
                                         ? addResult.Groups[(index + 2) + 9].Value :
                                     "";

                        if (attribute == "")
                        {
                            attribute = "Normal";
                        }

                        if (strDef == "" && (index + 1) + 3 < addResult.Groups.Count)
                        {
                            strDef = addResult.Groups[(index + 1) + 3].Value;
                        }
                        if (strDef == "" && (index + 1) + 6 < addResult.Groups.Count)
                        {
                            strDef = addResult.Groups[(index + 1) + 6].Value;
                        }
                        if (strDef == "" && (index + 1) + 9 < addResult.Groups.Count)
                        {
                            strDef = addResult.Groups[(index + 1) + 9].Value;
                        }

                        var medalCombatAbility = new MedalCombatAbility()
                        {
                            Direction        = direction,
                            Attribute        = attribute.Replace("-", ""),
                            Tier             = amount,
                            Duration         = duration,
                            IsPlayerAffected = targetBool,
                            IsEnemyAffected  = !targetBool,
                        };

                        // !! Medal Add Here !!
                        this.AddMedal(strDef, medalCombatAbility, ability);
                    }

                    index += 3;
                }
            }

            return(true);
        }

        return(false);
    }
Пример #3
0
    public bool SetRaiseLowerMedal(string duration, string section, MedalAbility ability, string selfTarget = "")
    {
        var setResults = SetRaiseLowerRegex.Matches(section);

        if (setResults.Count > 0)
        {
            foreach (Match setResult in setResults)
            {
                var targetBool = string.IsNullOrEmpty(selfTarget) || selfTarget.Equals("self") ? true : false;
                int.TryParse(setResult.Groups[2].Value, out var amount);
                var direction = amount > 0 ? "Raises" : "Lowers";

                var index = 2;
                for (int i = 0; i < 4; ++i)
                {
                    if (index > 2 && !string.IsNullOrEmpty(setResult.Groups[index].Value))
                    {
                        int.TryParse(setResult.Groups[index].Value, out amount);
                        direction = amount > 0 ? "Raises" : "Lowers";
                    }

                    var attribute = setResult.Groups[index + 1].Value;
                    var strDef    = setResult.Groups[index + 2].Value;

                    if (attribute != "" || strDef != "")
                    {
                        if (attribute == "")
                        {
                            attribute = "Normal";
                        }

                        if (strDef == "" && (index + 2) + 3 < setResult.Groups.Count)
                        {
                            strDef = setResult.Groups[(index + 2) + 3].Value;
                        }
                        if (strDef == "" && (index + 2) + 6 < setResult.Groups.Count)
                        {
                            strDef = setResult.Groups[(index + 2) + 6].Value;
                        }
                        if (strDef == "" && (index + 2) + 9 < setResult.Groups.Count)
                        {
                            strDef = setResult.Groups[(index + 2) + 9].Value;
                        }

                        var medalCombatAbility = new MedalCombatAbility()
                        {
                            Direction        = direction,
                            Attribute        = attribute.Replace("-", ""),
                            Tier             = amount.ToString().Replace("-", ""),
                            Duration         = duration,
                            IsPlayerAffected = targetBool,
                            IsEnemyAffected  = !targetBool,
                        };

                        // !! Medal Add Here !!
                        this.AddMedal(strDef, medalCombatAbility, ability);
                    }

                    index += 3;
                }
            }

            ability.SetStrDef = "SetStrDef";

            return(true);
        }

        return(false);
    }
Пример #4
0
    private void OlderParseRaiseLowerBased(GroupCollection resultGroups, MedalAbility ability)
    {
        #region Vars

        var direction = resultGroups[1].Value;
        var target    = !string.IsNullOrEmpty(resultGroups[1].Value) ? resultGroups[1].Value :
                        !string.IsNullOrEmpty(resultGroups[5].Value) && resultGroups[5].Value.Contains("target") ? resultGroups[5].Value :
                        !string.IsNullOrEmpty(resultGroups[9].Value) && resultGroups[9].Value.Contains("target") ? resultGroups[9].Value :
                        "";

        //var attribute1 = resultGroups[3].Value;
        //var strDef1 = resultGroups[4].Value;

        //var attribute2 = resultGroups[7].Value;
        //var strDef2 = resultGroups[8].Value;

        var allAttributes = !string.IsNullOrEmpty(resultGroups[5].Value) && resultGroups[5].Value.Contains("attribute") ? resultGroups[5].Value :
                            !string.IsNullOrEmpty(resultGroups[9].Value) && resultGroups[9].Value.Contains("attribute") ? resultGroups[9].Value :
                            "";

        var duration = resultGroups[11].Value;

        #endregion

        var index = 3;
        for (int i = 0; i < 2; ++i)
        {
            var attribute = resultGroups[index].Value;
            var strDef    = resultGroups[index + 1].Value;

            if (attribute != "" || strDef != "")
            {
                var amount = !string.IsNullOrEmpty(resultGroups[index + 3].Value) ? resultGroups[index + 3].Value :
                             (index + 3) + 4 < resultGroups.Count && !string.IsNullOrEmpty(resultGroups[(index + 3) + 4].Value) ? resultGroups[(index + 3) + 4].Value :
                             "";

                if (attribute == "")
                {
                    attribute = "Normal";
                }
                if (strDef == "" && (index + 1) + 4 < resultGroups.Count)
                {
                    strDef = resultGroups[(index + 1) + 4].Value;
                }

                var medalCombatAbility = new MedalCombatAbility()
                {
                    Direction        = direction,
                    Attribute        = attribute.Replace("-", ""),
                    Tier             = amount,
                    Duration         = duration,
                    IsPlayerAffected = string.IsNullOrEmpty(target),
                    IsEnemyAffected  = !string.IsNullOrEmpty(target),
                };

                // !! Medal Add Here !!
                AddMedal(strDef, medalCombatAbility, ability);
            }

            index += 4;
        }
    }