Example #1
0
        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);
        }
Example #2
0
 /*
  * 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;
 }
Example #3
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;
        }
Example #4
0
 /*
  * 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);
 }
Example #5
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);
 }
Example #6
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);
        }
Example #7
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);
        }
Example #8
0
        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);
        }
Example #9
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);
        }
Example #10
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);
            }
        }
Example #11
0
        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);
        }
Example #12
0
        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);
        }
Example #13
0
        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);
        }
Example #14
0
        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;
            }
        }
Example #15
0
        /**
         * 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");
            }
        }
Example #16
0
 public override void aplicar(Jogador jogador, HabilidadeNode node, bool primeiraVez)
 {
     jogador.UpdateResistances();
 }
Example #17
0
 /*
  * Bonus que a habilidade da para a mana.
  */
 public override int manaBonus(HabilidadeNode node)
 {
     return(bonus(node.Nivel));
 }
Example #18
0
        public override void aplicar(Jogador jogador, HabilidadeNode node, bool primeiraVez)
        {
            int ponto = primeiraVez ? node.Nivel : node.Nivel - 1;

            jogador.Mana += bonus(ponto);
        }
Example #19
0
 /**
  * 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;
 }
Example #20
0
 public override int vidaBonus(HabilidadeNode node)
 {
     return(node.Nivel * 10);
 }
Example #21
0
 /*
  * Bonus que a habilidade da para a inteligência.
  */
 public override int inteligenciaBonus(HabilidadeNode node)
 {
     return(node.Nivel);
 }
Example #22
0
 /*
  * Bonus que a habilidade da para a folego.
  */
 public override int folegoBonus(HabilidadeNode node)
 {
     return(node.Nivel * 2);
 }
Example #23
0
 public override int forcaBonus(HabilidadeNode node)
 {
     return(node.Nivel * 5);
 }
Example #24
0
        public override void aplicar(Jogador jogador, HabilidadeNode node, bool primeiraVez)
        {
            int ponto = primeiraVez ? node.Nivel : node.Nivel - 1;

            jogador.Skills.Tactics.Base += (ponto * 5);
        }
Example #25
0
 /*
  * Bonus que a habilidade da para a destreza.
  */
 public override int destrezaBonus(HabilidadeNode node)
 {
     return(node.Nivel * 3);
 }
Example #26
0
 /*
  * Bonus que a habilidade da para a inteligência.
  */
 public override int cargaBonus(HabilidadeNode node)
 {
     return(getBonus(node.Nivel));
 }
Example #27
0
 public override void aplicar(Jogador jogador, HabilidadeNode node, bool primeiraVez)
 {
     jogador.Hits += (node.Nivel * 10);
 }
Example #28
0
 public override int skillsCapTrabalhoBonus(HabilidadeNode node)
 {
     return(node.Nivel == 1 ? 200 : 500);
 }
Example #29
0
 public override void aplicar(Jogador jogador, HabilidadeNode node, bool primeiraVez)
 {
 }