// STATIC INTERNALS private static UserStat CreateUserStat(UserStatDescriptor i_Descriptor) { UserStat userStat = null; string id = i_Descriptor.id; if (id != "") { switch (i_Descriptor.type) { case UserStatType.Bool: bool defaultBoolValue = i_Descriptor.defaultBoolValue; BooleanCombineFunction booleanCombineFunction = i_Descriptor.booleanCombineFunction; userStat = new UserStatBool(id, defaultBoolValue, booleanCombineFunction); break; case UserStatType.Float: float defaultFloatValue = i_Descriptor.defaultFloatValue; bool usingFloatLowLimit = i_Descriptor.usingLowLimit; bool usingFloatHighLimit = i_Descriptor.usingHighLimit; float minFloatValue = i_Descriptor.minFloatValue; float maxFloatValue = i_Descriptor.maxFloatValue; NumericCombineFunction floatCombineFunction = i_Descriptor.numericCombineFunction; userStat = new UserStatFloat(id, defaultFloatValue, usingFloatLowLimit, usingFloatHighLimit, minFloatValue, maxFloatValue, floatCombineFunction); break; case UserStatType.Int: int defaultIntValue = i_Descriptor.defaultIntValue; bool usingIntLowLimit = i_Descriptor.usingLowLimit; bool usingIntHighLimit = i_Descriptor.usingHighLimit; int minIntValue = i_Descriptor.minIntValue; int maxIntValue = i_Descriptor.maxIntValue; NumericCombineFunction intCombineFunction = i_Descriptor.numericCombineFunction; userStat = new UserStatInt(id, defaultIntValue, usingIntLowLimit, usingIntHighLimit, minIntValue, maxIntValue, intCombineFunction); break; case UserStatType.String: string defaultStringValue = i_Descriptor.defaultStringValue; StringCombineFunction stringCombineFunction = i_Descriptor.stringCombineFunction; userStat = new UserStatString(id, defaultStringValue, stringCombineFunction); break; } } return(userStat); }
// CTOR public UserStatString(string i_Id, string i_DefaultValue, StringCombineFunction i_CombineFunction) : base(i_Id) { m_Value = i_DefaultValue; m_StringCombineFunction = i_CombineFunction; }