private void adicionarHabilidadeRacial(HabilidadeRacial habilidade) { RacaModule rm = getRacaModule(); HabilidadeNode node = null; if (rm.Habilidades.ContainsKey((IdHabilidadeRacial)habilidade.Id)) { node = rm.Habilidades[(IdHabilidadeRacial)habilidade.Id]; } bool primeiraVez = true; if (node == null) { node = new HabilidadeNode((int)habilidade.Id, 1); rm.Habilidades.Add((IdHabilidadeRacial)node.Id, node); jogador.SendMessage("Você acaba de aprender o habilidade racial {0}.", habilidade.Nome); primeiraVez = true; } else { node.aumentarNivel(); jogador.SendMessage("Sua habilidade {0} acaba de aumentar de nível.", habilidade.Nome); primeiraVez = false; } //faz as modificacoes necessárias da habilidade habilidade.aplicar(jogador, node, primeiraVez); }
/* * Bonus que a habilidade da na skill. */ public override double skillBonus(HabilidadeNode node, SkillName skillName) { if (SkillName.Tactics.Equals(skillName)) { return node.Nivel * 5; } return 0; }
public override void aplicar(Jogador jogador, HabilidadeNode node, bool primeiraVez) { int ponto = primeiraVez ? node.Nivel : node.Nivel - 1; jogador.RawStr += ponto; jogador.RawDex += ponto; jogador.RawInt += ponto; }
/* * Bonus que a habilidade da no tipo de resistência. */ public override int resistenciaBonus(HabilidadeNode node, ResistanceType type) { if (ResistanceType.Cold.Equals(type)) { return(node.Nivel * 5); } return(0); }
/* * Bonus que a habilidade da na skill. */ public override double skillBonus(HabilidadeNode node, SkillName skillName) { if (SkillName.Hiding.Equals(skillName)) { return(node.Nivel * 10); } return(0); }
//Bônus de 5% para cada nível no teste de aparar com escudo. public override double apararBonus(HabilidadeNode node, Item item) { if (item is BaseShield) { return(node.Nivel * 0.05); } return(0); }
public override int danoBonus(HabilidadeNode node, Jogador atacante, Mobile defensor) { int bonus = 0; Point3D locA = atacante.Location; Point3D locD = defensor.Location; Console.WriteLine("flanquear 1"); //esta no alcance de 1 tile if (Utility.InRange(locA, locD, 1)) { Console.WriteLine("flanquear 2"); Direction dirD = defensor.Direction; int x = locD.X; int y = locD.Y; //ajusta o valor de X if (Direction.Mask.Equals(dirD) || Direction.West.Equals(dirD) || Direction.Left.Equals(dirD)) { x++; } else if (Direction.Down.Equals(dirD) || Direction.East.Equals(dirD) || Direction.Right.Equals(dirD)) { x--; } //ajusta o valor de Y if (Direction.Mask.Equals(dirD) || Direction.North.Equals(dirD) || Direction.Right.Equals(dirD)) { y++; } else if (Direction.Left.Equals(dirD) || Direction.South.Equals(dirD) || Direction.Down.Equals(dirD)) { y--; } //se o atacante estiver nas costas do adversário if (locA.X == x && locA.Y == y) { int divisor = node.Nivel == 1 ? 15 : 10; bonus = atacante.Dex / divisor; atacante.SendMessage("Bonus dano flanqueado: {0}", bonus); //mensagem para atacante e defensor atacante.PublicOverheadMessage(Server.Network.MessageType.Regular, 0, false, "Flanqueando!"); defensor.PrivateOverheadMessage(Server.Network.MessageType.Regular, 0, false, "Você foi flanqueando!", defensor.NetState); } } return(bonus); }
public override int acertarBonus(HabilidadeNode node, Jogador jogador, Mobile defensor) { BaseWeapon arma = jogador.Weapon as BaseWeapon; if (arma.DefSkill.Equals(TipoGrupo)) { return(node.Nivel * 5); } return(0); }
public override int danoAtaqueCriticoBonus(HabilidadeNode node, Jogador atacante, Mobile defensor) { BaseWeapon arma = atacante.Weapon as BaseWeapon; if (arma.DefSkill.Equals(TipoGrupo)) { return(50); } return(0); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int versao = reader.ReadInt(); //recuperas as habilidades habilidades = new Dictionary <IdHabilidadeTalento, HabilidadeNode>(); int numHabilidade = reader.ReadInt(); for (int i = 0; i < numHabilidade; i++) { HabilidadeNode hn = new HabilidadeNode(); hn.Deserialize(reader); habilidades.Add((IdHabilidadeTalento)hn.Id, hn); } }
private bool podeAumentarNivelHabilidadeRacial(IdHabilidadeRacial idHabilidadeRacial) { RacaModule rm = getRacaModule(); if (rm.Habilidades.ContainsKey(idHabilidadeRacial)) { HabilidadeRacial habilidade = HabilidadeRacial.getHabilidadeRacial(idHabilidadeRacial); HabilidadeNode node = rm.Habilidades[idHabilidadeRacial]; if (habilidade.NivelMaximo > node.Nivel) { return(true); } } return(false); }
public override int danoBonus(HabilidadeNode node, Jogador atacante, Mobile defensor) { int bonus = 0; if (isMortoVivo(defensor)) { bonus = (int)(atacante.Skills.SpiritSpeak.Value / 10); atacante.SendMessage("Bonus dano Poder da Fé: {0}", bonus); //mensagem para atacante e defensor atacante.PublicOverheadMessage(Server.Network.MessageType.Regular, 0, false, "Poder da Fé!"); defensor.PrivateOverheadMessage(Server.Network.MessageType.Regular, 0, false, "Você recebeu o Poder da Fé!", defensor.NetState); } return(bonus); }
private bool podeAumentarNivelHabilidadeTalento(IdHabilidadeTalento idHabilidadeTalento) { TalentoModule rm = getTalentoModule(); if (rm.Habilidades.ContainsKey(idHabilidadeTalento)) { HabilidadeTalento habilidade = HabilidadeTalento.getHabilidadeTalento(idHabilidadeTalento); HabilidadeNode node = rm.Habilidades[idHabilidadeTalento]; if (habilidade.NivelMaximo > node.Nivel) { return(true); } } return(false); }
public override void aplicar(Jogador jogador, HabilidadeNode node, bool primeiraVez) { jogador.Mana += node.Nivel; jogador.Hits += node.Nivel; jogador.Stam += node.Nivel; if (jogador.Mana > jogador.ManaMax) { jogador.Mana = jogador.ManaMax; } if (jogador.Hits > jogador.HitsMax) { jogador.Hits = jogador.HitsMax; } if (jogador.Stam > jogador.StamMax) { jogador.Stam = jogador.StamMax; } }
/** * Evento invocado quando uma criatura é invocada por um jogador. */ public void OnSummon(Jogador caster, BaseCreature creature, ref Point3D p, ref TimeSpan duration) { SistemaTalento st = caster.getSistemaTalento(); //Aumenta o duração if (st.possuiHabilidadeTalento(IdHabilidadeTalento.conjuracaoExtendida)) { caster.SendMessage("Duracao normal: {0}", duration); double totalDuracaoSegundos = duration.TotalSeconds * 1.5; duration = TimeSpan.FromSeconds(totalDuracaoSegundos); caster.SendMessage("Duracao alterada: {0}", duration); } //Aumenta a resistencia das conjurações if (st.possuiHabilidadeTalento(IdHabilidadeTalento.conjuracaoResistente)) { creature.AddResistanceMod(new ResistanceMod(ResistanceType.Cold, 5)); creature.AddResistanceMod(new ResistanceMod(ResistanceType.Energy, 5)); creature.AddResistanceMod(new ResistanceMod(ResistanceType.Fire, 5)); creature.AddResistanceMod(new ResistanceMod(ResistanceType.Physical, 5)); creature.AddResistanceMod(new ResistanceMod(ResistanceType.Poison, 5)); caster.SendMessage("Bonus resistencia"); } //Aumenta os atributos da conjuração if (st.possuiHabilidadeTalento(IdHabilidadeTalento.conjuracaoResistente)) { HabilidadeNode node = st.getHabilidades()[IdHabilidadeTalento.conjuracaoResistente]; StatMod statusBonus = new StatMod(StatType.All, "TalentoConjuracaoForte", node.Nivel * 10, TimeSpan.FromDays(99)); creature.AddStatMod(statusBonus); caster.SendMessage("Bonus Status"); } }
public override void aplicar(Jogador jogador, HabilidadeNode node, bool primeiraVez) { jogador.UpdateResistances(); }
/* * Bonus que a habilidade da para a mana. */ public override int manaBonus(HabilidadeNode node) { return(bonus(node.Nivel)); }
public override void aplicar(Jogador jogador, HabilidadeNode node, bool primeiraVez) { int ponto = primeiraVez ? node.Nivel : node.Nivel - 1; jogador.Mana += bonus(ponto); }
/** * Bonus que a habilidade concede ao cap de skill. Normalmente toda habilidade que da bonus em um determinada skill, deve dar o mesmo bonus do Cap. * */ public override int skillsCapBonus(HabilidadeNode node) { return node.Nivel * 5; }
public override int vidaBonus(HabilidadeNode node) { return(node.Nivel * 10); }
/* * Bonus que a habilidade da para a inteligência. */ public override int inteligenciaBonus(HabilidadeNode node) { return(node.Nivel); }
/* * Bonus que a habilidade da para a folego. */ public override int folegoBonus(HabilidadeNode node) { return(node.Nivel * 2); }
public override int forcaBonus(HabilidadeNode node) { return(node.Nivel * 5); }
public override void aplicar(Jogador jogador, HabilidadeNode node, bool primeiraVez) { int ponto = primeiraVez ? node.Nivel : node.Nivel - 1; jogador.Skills.Tactics.Base += (ponto * 5); }
/* * Bonus que a habilidade da para a destreza. */ public override int destrezaBonus(HabilidadeNode node) { return(node.Nivel * 3); }
/* * Bonus que a habilidade da para a inteligência. */ public override int cargaBonus(HabilidadeNode node) { return(getBonus(node.Nivel)); }
public override void aplicar(Jogador jogador, HabilidadeNode node, bool primeiraVez) { jogador.Hits += (node.Nivel * 10); }
public override int skillsCapTrabalhoBonus(HabilidadeNode node) { return(node.Nivel == 1 ? 200 : 500); }
public override void aplicar(Jogador jogador, HabilidadeNode node, bool primeiraVez) { }