示例#1
0
    private static List <ListeningEffectDefinition> ParsePassives()
    {
        //Parsing passives
        string       csv       = "/Assets/Data/BossPassives.csv";
        string       path      = Path.GetFullPath(dir + csv);
        StreamReader strReader = new StreamReader(path);

        List <ListeningEffectDefinition> baseListeningEffects = new List <ListeningEffectDefinition>();

        string fileString = strReader.ReadToEnd();

        string[] lines = fileString.Split('\n');

        int randomPassiveId = UnityEngine.Random.Range(0, lines.Length - 2);


        string[] fields = lines[randomPassiveId + 1].Split(';');
        if (fields[0].Equals(randomPassiveId.ToString()))
        {
            ListeningEffectDefinition newPassive = new ListeningEffectDefinition();

            object newExecutionTrigger = Activator.CreateInstance(Type.GetType(fields[1]));
            if (newExecutionTrigger is Trigger execTrigger)
            {
                newPassive.ExecutionTrigger       = execTrigger;
                newPassive.ExecutionTrigger.Value = Int32.Parse(fields[2]);
            }

            object newEndTrigger = Activator.CreateInstance(Type.GetType(fields[3]));
            if (newExecutionTrigger is Trigger endTrigger)
            {
                newPassive.ExecutionTrigger       = endTrigger;
                newPassive.ExecutionTrigger.Value = Int32.Parse(fields[4]);
            }
            //Effects parsing
            List <Effect> effects = new List <Effect>();
            if (!fields[5].Equals(""))
            {
                effects.Add(ParseEffect(Int32.Parse(fields[5])));
            }
            if (!fields[6].Equals(""))
            {
                effects.Add(ParseEffect(Int32.Parse(fields[6])));
            }
            if (!fields[7].Equals(""))
            {
                effects.Add(ParseEffect(Int32.Parse(fields[7])));
            }
            newPassive.Effects = effects;
            baseListeningEffects.Add(newPassive);
        }

        return(baseListeningEffects);
    }
示例#2
0
 public static ListeningEffect BuildNewListeningEffect(int holderId, ListeningEffectDefinition definition)
 {
     return(new ListeningEffect(holderId, definition.ExecutionTrigger, definition.EndTrigger, definition.Effects));
 }