[Searchable]
public List<Perk> Perks = new List<Perk>()
{
new Perk()
{
Name = "Old Sage",
Effects = new List<Effect>()
{
new Effect() { Skill = Skill.Wisdom, Value = 2, },
new Effect() { Skill = Skill.Intelligence, Value = 1, },
new Effect() { Skill = Skill.Strength, Value = -2 },
},
},
new Perk()
{
Name = "Hardened Criminal",
Effects = new List<Effect>()
{
new Effect() { Skill = Skill.Dexterity, Value = 2, },
new Effect() { Skill = Skill.Strength, Value = 1, },
new Effect() { Skill = Skill.Charisma, Value = -2 },
},
},
new Perk()
{
Name = "Born Leader",
Effects = new List<Effect>()
{
new Effect() { Skill = Skill.Charisma, Value = 2, },
new Effect() { Skill = Skill.Intelligence, Value = -3 },
},
},
new Perk()
{
Name = "Village Idiot",
Effects = new List<Effect>()
{
new Effect() { Skill = Skill.Charisma, Value = 4, },
new Effect() { Skill = Skill.Constitution, Value = 2, },
new Effect() { Skill = Skill.Intelligence, Value = -3 },
new Effect() { Skill = Skill.Wisdom, Value = -3 },
},
},
};
[Serializable]
public class Perk
{
public string Name;
[TableList]
public List<Effect> Effects;
}
[Serializable]
public class Effect
{
public Skill Skill;
public float Value;
}
public enum Skill
{
Strength,
Dexterity,
Constitution,
Intelligence,
Wisdom,
Charisma,
}
public List<string> strings = new List<string>(Enumerable.Range(1, 10).Select(i => "Str Element " + i));
public List<ExampleStruct> searchableList = new List<ExampleStruct>(Enumerable.Range(1, 10).Select(i => new ExampleStruct(i)));
[Serializable]
public struct ExampleStruct
{
public string Name;
public int Number;
public ExampleEnum Enum;
public ExampleStruct(int nr) : this()
{
this.Name = "Element " + nr;
this.Number = nr;
this.Enum = (ExampleEnum)ExampleHelper.RandomInt(0, 5);
}
}
public enum ExampleEnum
{
One, Two, Three, Four, Five
}
[Searchable]
public ExampleClass searchableClass = new ExampleClass();
[Searchable]
public List<ExampleStruct> searchableList = new List<ExampleStruct>(Enumerable.Range(1, 10).Select(i => new ExampleStruct(i)));
[Searchable(FilterOptions = SearchFilterOptions.ISearchFilterableInterface)]
public List<FilterableBySquareStruct> customFiltering = new List<FilterableBySquareStruct>(Enumerable.Range(1, 10).Select(i => new FilterableBySquareStruct(i)));
[Serializable]
public class ExampleClass
{
public string SomeString = "Saehrimnir is a tasty delicacy";
public int SomeInt = 13579;
public DataContainer DataContainerOne = new DataContainer() { Name = "Example Data Set One" };
public DataContainer DataContainerTwo = new DataContainer() { Name = "Example Data Set Two" };
}
[Serializable, Searchable] // You can also apply it on a type like this, and it will become searchable wherever it appears
public class DataContainer
{
public string Name;
public List<ExampleStruct> Data = new List<ExampleStruct>(Enumerable.Range(1, 10).Select(i => new ExampleStruct(i)));
}
[Serializable]
public struct FilterableBySquareStruct : ISearchFilterable
{
public int Number;
[ShowInInspector, DisplayAsString, EnableGUI]
public int Square { get { return this.Number * this.Number; } }
public FilterableBySquareStruct(int nr)
{
this.Number = nr;
}
public bool IsMatch(string searchString)
{
return searchString.Contains(Square.ToString());
}
}
[Serializable]
public struct ExampleStruct
{
public string Name;
public int Number;
public ExampleEnum Enum;
public ExampleStruct(int nr) : this()
{
this.Name = "Element " + nr;
this.Number = nr;
this.Enum = (ExampleEnum)ExampleHelper.RandomInt(0, 5);
}
}
public enum ExampleEnum
{
One, Two, Three, Four, Five
}