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); }
public static ListeningEffect BuildNewListeningEffect(int holderId, ListeningEffectDefinition definition) { return(new ListeningEffect(holderId, definition.ExecutionTrigger, definition.EndTrigger, definition.Effects)); }