public override void ParameterizeAttributes()
 {
     SQLDB.ParameterizeAttribute("@BaseObjectID", Base.ClassTemplateId);
     SQLDB.ParameterizeAttribute("@PassiveEffectID", PassiveEffectAttributes.ClassTemplateId);
     SQLDB.ParameterizeAttribute("@StatModifiers", StatMods.ClassTemplateId);
     SQLDB.ParameterizeAttribute("@HPMin", HPMinInput.Text);
     SQLDB.ParameterizeAttribute("@HPMax", HPMaxInput.Text);
     SQLDB.ParameterizeAttribute("@SPMin", SPMinInput.Text);
     SQLDB.ParameterizeAttribute("@SPMax", SPMaxInput.Text);
     SQLDB.ParameterizeAttribute("@AnyState", (bool)AnyStateInput.IsChecked ? 1 : 0);
     SQLDB.ParameterizeAttribute("@NoState", (bool)NoStateInput.IsChecked ? 1 : 0);
     SQLDB.ParameterizeAttribute("@StateActive1", StateActive1Data.SelectedInput(StateActive1Input));
     SQLDB.ParameterizeAttribute("@StateActive2", StateActive2Data.SelectedInput(StateActive2Input));
     SQLDB.ParameterizeAttribute("@StateInactive1", StateInactive1Data.SelectedInput(StateInactive1Input));
     SQLDB.ParameterizeAttribute("@StateInactive2", StateInactive2Data.SelectedInput(StateInactive2Input));
     SQLDB.ParameterizeAttribute("@ExpGainRate", ExpGainRateInput.Text);
     SQLDB.ParameterizeAttribute("@GoldGainRate", GoldGainRateInput.Text);
     SQLDB.ParameterizeAttribute("@AllyCondition", AllyConditionInput.SelectedIndex.ToString());
     SQLDB.ParameterizeAttribute("@FoeCondition", FoeConditionInput.SelectedIndex.ToString());
     SQLDB.ParameterizeAttribute("@UserCondition", UserConditionInput.SelectedIndex.ToString());
 }
 protected override void OnRead(SQLiteDataReader reader)
 {
     Base.Read(reader);
     PassiveEffectAttributes.Read(reader);
     PassiveEffectRates.Read(reader);
     StatMods.Read(reader);
     HPMinInput.Text                   = reader["HPMin"].ToString();
     HPMaxInput.Text                   = reader["HPMax"].ToString();
     SPMinInput.Text                   = reader["SPMin"].ToString();
     SPMaxInput.Text                   = reader["SPMax"].ToString();
     AnyStateInput.IsChecked           = reader["AnyState"].ToString() == "True" ? true : false;
     NoStateInput.IsChecked            = reader["NoState"].ToString() == "True" ? true : false;
     StateActive1Input.SelectedIndex   = StateActive1Data.FindIndex(reader["StateActive1"]);
     StateActive2Input.SelectedIndex   = StateActive2Data.FindIndex(reader["StateActive2"]);
     StateInactive1Input.SelectedIndex = StateInactive1Data.FindIndex(reader["StateInactive1"]);
     StateInactive2Input.SelectedIndex = StateInactive2Data.FindIndex(reader["StateInactive2"]);
     ExpGainRateInput.Text             = reader["ExpGainRate"].ToString();
     GoldGainRateInput.Text            = reader["GoldGainRate"].ToString();
     AllyConditionInput.SelectedIndex  = int.Parse(reader["AllyCondition"].ToString());
     FoeConditionInput.SelectedIndex   = int.Parse(reader["FoeCondition"].ToString());
     UserConditionInput.SelectedIndex  = int.Parse(reader["UserCondition"].ToString());
 }