public bool AddSkillToCharacter(long numeroPg, long cdAbilita, long?numAcquisti, string attitudine, string specifiche) { try { AbilitaManager skillManager = new AbilitaManager(context); Personaggio character = GetCharacterByNumber(numeroPg); DataAccessLayer.Abilita skill = skillManager.GetSkill(cdAbilita); if (character.PossiedeAbilita(cdAbilita)) { if (skill.Multiacquisto == 0) { AbilitaPersonaggio newSkill = (from abilitas in character.AbilitaPersonaggios where abilitas.CdAbilita == cdAbilita select abilitas).FirstOrDefault(); newSkill.NumeroAcquisti = numAcquisti; } } else { AbilitaPersonaggio newSkill = new AbilitaPersonaggio(); newSkill.CdAbilita = cdAbilita; newSkill.CdAttitudine = attitudine; newSkill.NumeroAcquisti = numAcquisti; newSkill.NumeroPG = numeroPg; newSkill.Specifiche = specifiche; character.AbilitaPersonaggios.Add(newSkill); } return(true); } catch { return(false); } }
private void grdAbilita_SelectionChanged(object sender, EventArgs e) { txtSpecifiche.Text = null; if (grdAbilita.SelectedRows.Count > 0) { txtSpecifiche.Enabled = true; long cdAbilita = (long)grdAbilita.SelectedRows[0].Cells["CdAbilita"].Value; using (context = CreateDatabaseContext()) { AbilitaManager skillmanager = new AbilitaManager(context); PersonaggiManagerNew manager = new PersonaggiManagerNew(context); Personaggio character = manager.GetCharacterByNumber(numeroPg); DataAccessLayer.Abilita skill = skillmanager.GetSkill(cdAbilita); bool isBought = false; long minimum = 1; if (character.PossiedeAbilita(cdAbilita)) { isBought = true; AbilitaPersonaggio skillBought = (from comprate in character.AbilitaPersonaggios where comprate.CdAbilita == cdAbilita select comprate).FirstOrDefault(); if (skillBought.NumeroAcquisti.HasValue) { minimum = skillBought.NumeroAcquisti.Value; } } numVolte.Minimum = minimum; if (skill.Costo > freePoints) { btnSalva.Enabled = false; } else { if (skill.Multiacquisto == 0) { if (isBought) { btnSalva.Enabled = false; } else { btnSalva.Enabled = true; } } else { numVolte.Enabled = true; numVolte.Maximum = minimum + (skill.Costo / freePoints); btnSalva.Enabled = true; } } } } else { txtSpecifiche.Enabled = false; btnSalva.Enabled = false; } }
private void LoadSkill() { using (databaseContext = CreateDatabaseContext()) { AbilitaManager manager = new AbilitaManager(databaseContext); DataAccessLayer.Abilita skill = manager.GetSkill(cdAbilita.Value); txtNome.Text = skill.Nome; txtDescr.Text = skill.Descrizione; mstxCosto.Text = skill.Costo.ToString(); chkAvanzato.Checked = skill.BaseAvanzato == 0 ? false : true; chkMultiAcquisto.Checked = skill.Multiacquisto == 0 ? false : true; } }
public long GetFreeSkillpoints(long numeroPg) { Personaggio character = GetCharacterByNumber(numeroPg); long total = character.Punti; AbilitaManager skillManager = new AbilitaManager(context); foreach (AbilitaPersonaggio skill in character.AbilitaPersonaggios) { DataAccessLayer.Abilita possessedSkill = skillManager.GetSkill(skill.CdAbilita); long costo = possessedSkill.Costo; if (possessedSkill.Multiacquisto == 1 && skill.NumeroAcquisti.HasValue) { costo *= skill.NumeroAcquisti.Value; } total -= costo; } return(total); }