private void SetReaderToObject(ref TalentPrereqORCondition objTalentPrereqORCondition, ref SqlDataReader result) { if (result.HasRows) { objTalentPrereqORCondition.TalentPrereqORConditionID = (int)result.GetValue(result.GetOrdinal("TalentPrereqORConditionID")); objTalentPrereqORCondition.TalentID = (int)result.GetValue(result.GetOrdinal("TalentID")); objTalentPrereqORCondition.TalentRequirementID = (int)result.GetValue(result.GetOrdinal("TalentRequirementID")); objTalentPrereqORCondition.FeatID = (int)result.GetValue(result.GetOrdinal("FeatID")); objTalentPrereqORCondition.RaceID = (int)result.GetValue(result.GetOrdinal("RaceID")); objTalentPrereqORCondition.TalentTreeID = (int)result.GetValue(result.GetOrdinal("TalentTreeID")); objTalentPrereqORCondition.TalentTreeTalentQuantity = (int)result.GetValue(result.GetOrdinal("TalentTreeTalentQuantity")); objTalentPrereqORCondition.AbilityID = (int)result.GetValue(result.GetOrdinal("AbilityID")); objTalentPrereqORCondition.AbilityMinimum = (int)result.GetValue(result.GetOrdinal("AbilityMinimum")); objTalentPrereqORCondition.SkillID = (int)result.GetValue(result.GetOrdinal("SkillID")); if (objTalentPrereqORCondition.TalentID != 0) { Talent objTalent = new Talent(); objTalentPrereqORCondition.objTalent = objTalent.GetTalent(objTalentPrereqORCondition.TalentID); } if (objTalentPrereqORCondition.TalentRequirementID != 0) { Talent objTalentRequirement = new Talent(); objTalentPrereqORCondition.objTalentRequirement = objTalent.GetTalent(objTalentPrereqORCondition.TalentID); } if (objTalentPrereqORCondition.FeatID != 0) { Feat objFeat = new Feat(); objTalentPrereqORCondition.objFeat = objFeat.GetFeat(objTalentPrereqORCondition.FeatID); } if (objTalentPrereqORCondition.RaceID != 0) { Race objRace = new Race(); objTalentPrereqORCondition.objRace = objRace.GetRace(objTalentPrereqORCondition.FeatID); } if (objTalentPrereqORCondition.TalentTreeID != 0) { TalentTree objTalentTree = new TalentTree(); objTalentPrereqORCondition.objTalentTree = objTalentTree.GetTalentTree(objTalentPrereqORCondition.TalentTreeID); } if (objTalentPrereqORCondition.AbilityID != 0) { TalentPrerequisteAbility objTalentPrerequisteAbility = new TalentPrerequisteAbility(); objTalentPrereqORCondition.objTalentPrerequisteAbility = objTalentPrerequisteAbility.GetTalentPrerequisteAbility(this.TalentID, this.AbilityID); } if (objTalentPrereqORCondition.SkillID != 0) { Skill objSkill = new Skill(); objTalentPrereqORCondition.objSkill = objSkill.GetSkill(objTalentPrereqORCondition.SkillID); } } }
/// <summary> /// Clones the specified LST TalentPrereqORCondition. /// </summary> /// <param name="lstTalentPrereqORCondition">The LST TalentPrereqORCondition.</param> /// <returns>List<TalentPrereqORCondition></returns> static public List <TalentPrereqORCondition> Clone(List <TalentPrereqORCondition> lstTalentPrereqORCondition) { List <TalentPrereqORCondition> lstCTalentPrereqORCondition = new List <TalentPrereqORCondition>(); foreach (TalentPrereqORCondition objTalentPrereqORCondition in lstTalentPrereqORCondition) { lstCTalentPrereqORCondition.Add(TalentPrereqORCondition.Clone(objTalentPrereqORCondition)); } return(lstCTalentPrereqORCondition); }
private List <TalentPrereqORCondition> GetTalentPrereqORConditionList(string strSprocName, string strWhere, string strOrderBy) { List <TalentPrereqORCondition> otmTalentPrereqORConditions = new List <TalentPrereqORCondition>(); SqlDataReader result; DatabaseConnection dbconn = new DatabaseConnection(); SqlCommand command = new SqlCommand(); SqlConnection connection = new SqlConnection(dbconn.SQLSEVERConnString); try { connection.Open(); command.Connection = connection; command.CommandType = CommandType.StoredProcedure; command.CommandText = strSprocName; command.Parameters.Add(dbconn.GenerateParameterObj("@strWhere", SqlDbType.VarChar, strWhere, 1000)); command.Parameters.Add(dbconn.GenerateParameterObj("@strOrderBy", SqlDbType.VarChar, strOrderBy, 1000)); result = command.ExecuteReader(); while (result.Read()) { TalentPrereqORCondition objotmTalentPrereqORCondition = new TalentPrereqORCondition(); SetReaderToObject(ref objotmTalentPrereqORCondition, ref result); otmTalentPrereqORConditions.Add(objotmTalentPrereqORCondition); } } catch { Exception e = new Exception(); throw e; } finally { command.Dispose(); connection.Close(); } return(otmTalentPrereqORConditions); }
static public bool TalentOrConditionsMeet(Character objChar, Talent objTalent) { bool returnVal = false; List <TalentPrereqORCondition> lstTPORCond = new List <TalentPrereqORCondition>(); TalentPrereqORCondition objTPORCond = new TalentPrereqORCondition(); List <Talent> lstORTalentReqs = new List <Talent> (); List <Feat> lstORFeats = new List <Feat>(); List <Race> lstORRaces = new List <Race>(); List <TalentTalentTreeRequirement> lstORTalentTrees = new List <TalentTalentTreeRequirement>(); List <TalentAbilityRequirement> lstORAbility = new List <TalentAbilityRequirement>(); List <Skill> lstORSkill = new List <Skill>(); lstTPORCond = objTPORCond.GetTalentPrereqORConditions(objTalent.TalentID); // public int TalentPrereqOR { get; set; } --ID for Record Row //public int TalentID { get; set; } -- ID of talent we are dealing with //public int TalentRequirementID { get; set; } --Talent as prereq for TalentID //public int FeatID { get; set; } //public int RaceID { get; set; } //public int TalentTreeID { get; set; } //public int TalentTreeTalentQuantity { get; set; } //public int AbilityID { get; set; } //public int AbilityMinimum { get; set; } //public int SkillID { get; set; } if (lstTPORCond.Count == 0) { returnVal = true; } else { foreach (TalentPrereqORCondition objOrCond in lstTPORCond) { if (objOrCond.TalentRequirementID != 0) { Talent objTR = new Talent(); objTR.GetTalent(objOrCond.TalentRequirementID); lstORTalentReqs.Add(objTR); } if (objOrCond.FeatID != 0) { Feat objFeat = new Feat(); objFeat.GetFeat(objOrCond.FeatID); lstORFeats.Add(objFeat); } if (objOrCond.RaceID != 0) { Race objRace = new Race(); objRace.GetRace(objOrCond.RaceID); lstORRaces.Add(objRace); } if (objOrCond.TalentTreeID != 0) { TalentTalentTreeRequirement objTTTR = new TalentTalentTreeRequirement(); objTTTR.TalentTreeID = objOrCond.TalentTreeID; objTTTR.TalentTreeTalentQuantity = objOrCond.TalentTreeTalentQuantity; lstORTalentTrees.Add(objTTTR); } if (objOrCond.AbilityID != 0) { TalentAbilityRequirement objTAR = new TalentAbilityRequirement(); objTAR.AbilityID = objOrCond.AbilityID; objTAR.AbilityMinium = objOrCond.AbilityMinimum; lstORAbility.Add(objTAR); } if (objOrCond.SkillID != 0) { Skill objSkill = new Skill(); objSkill.GetSkill(objOrCond.SkillID); lstORSkill.Add(objSkill); } } //Got all the lists full, have to check to see if the character has ANY of these, if they do then we jump out and are done //Talent bool blnTalentFound = false; foreach (Talent objSearchTalent in lstORTalentReqs) { if (Talent.IsTalentInList(objSearchTalent, objChar.lstTalents)) { blnTalentFound = true; } } if (blnTalentFound) { return(blnTalentFound); } //Feat bool blnFeatFound = false; foreach (Feat objSearchFeat in lstORFeats) { if (Feat.IsFeatInList(objSearchFeat, objChar.lstFeats)) { blnFeatFound = true; } } if (blnFeatFound) { return(blnFeatFound); } //Race bool blnRaceFound = false; foreach (Race objSearchRace in lstORRaces) { if (objSearchRace.RaceID == objChar.RaceID) { blnRaceFound = true; } } if (blnRaceFound) { return(blnRaceFound); } //TalentTree talents (Has x number of talents in a particular tree bool blnTalentTreeQuantityFound = false; foreach (Talent objSearchTalent in lstORTalentReqs) { if (Talent.IsTalentInList(objSearchTalent, objChar.lstTalents)) { blnTalentTreeQuantityFound = true; } } if (blnTalentTreeQuantityFound) { return(blnTalentTreeQuantityFound); } //Ability bool blnAbilityFound = false; foreach (TalentAbilityRequirement objSearchAbility in lstORAbility) { if (Ability.AblityRequirementMet(objSearchAbility.AbilityID, objSearchAbility.AbilityMinium, objChar)) { blnAbilityFound = true; } } if (blnTalentTreeQuantityFound) { return(blnAbilityFound); } //public int SkillID { get; set; } //Race bool blnSkillFound = false; foreach (Skill objSearchSkill in lstORSkill) { if (CharacterSkill.IsSkillInList(objSearchSkill, objChar.lstCharacterSkills)) { blnSkillFound = true; } } if (blnSkillFound) { return(blnSkillFound); } } //went thru everything, nothing found return false; return(returnVal); }
/// <summary> /// Clones the specified object TalentPrereqORCondition. /// </summary> /// <param name="objTalentPrereqORCondition">The object TalentPrereqORCondition.</param> /// <returns>TalentPrereqORCondition</returns> static public TalentPrereqORCondition Clone(TalentPrereqORCondition objTalentPrereqORCondition) { TalentPrereqORCondition objCTalentPrereqORCondition = new TalentPrereqORCondition(objTalentPrereqORCondition.TalentID); return(objCTalentPrereqORCondition); }