public GurpsCharacter(GurpsDatabase database)
{
foreach (GurpsProperty property in database.nameToThing.Values)
nameToPurchasedAttribute[property.name] = new PurchasedProperty(property, this);
foreach (PurchasedProperty purchasedProperty in nameToPurchasedAttribute.Values)
{
purchasedProperty.changed += raiseChanged;
foreach (string name in purchasedProperty.property.usedNames())
{
if (DataLoader.reservedWords.Contains(name))
continue;
nameToPurchasedAttribute[name].changed += purchasedProperty.handleChange;
}
foreach (Effect effect in purchasedProperty.property.effectedBy)
{
nameToPurchasedAttribute[effect.owner.name].changed += purchasedProperty.handleChange;
}
}
}