Esempio n. 1
0
        private void listarHabilidades(Jogador jogador)
        {
            List <HabilidadeNode> habilidades = getHabilidades(jogador);
            int y = 181;                //posicao do primeito HabilidadeRacial

            if (habilidades.Count == 0)
            {
                this.AddLabel(65, y, 0, @"Você não possui habilidade.");
            }

            for (int i = 0; i < habilidades.Count; i++)
            {
                HabilidadeNode habilidadeNode = habilidades[i];
                Habilidade     habilidade     = getHabilidade(habilidadeNode.Id);

                if (habilidade != null)
                {
                    this.AddLabel(65, y + (i * 20), 0, habilidade.Nome);
                    this.AddLabel(347, y + (i * 20), 0, habilidadeNode.Nivel + "");
                    this.AddLabel(416, y + (i * 20), 0, habilidade.NivelMaximo + "");
                    this.AddButton(45, y + (i * 20), 1210, 1209, (habilidade.Id + 1), GumpButtonType.Reply, 1);
                }
                else
                {
                    this.AddLabel(65, y + (i * 20), 0, "Não foi encontrado habilidade com id: " + habilidades[i]);
                }
            }
        }
        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;
        }
Esempio n. 3
0
 /*
  * Bonus que a habilidade da no tipo de resistência.
  */
 public override int resistenciaBonus(HabilidadeNode node, ResistanceType type)
 {
     if (ResistanceType.Poison.Equals(type))
     {
         return node.Nivel * 3;
     }
     return 0;
 }
Esempio n. 4
0
 /*
  * Bonus que a habilidade da no tipo de resistência.
  */
 public override int resistenciaBonus(HabilidadeNode node, ResistanceType type)
 {
     if (ResistanceType.Fire.Equals(type) || ResistanceType.Cold.Equals(type) || ResistanceType.Energy.Equals(type))
     {
         return node.Nivel * 3;
     }
     return 0;
 }
Esempio n. 5
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;
 }
Esempio n. 6
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;
        }
Esempio n. 7
0
        public override int chanceAtaqueCriticoBonus(HabilidadeNode node, Jogador atacante, Mobile defensor)
        {
            BaseWeapon arma = atacante.Weapon as BaseWeapon;
            if (arma.DefSkill.Equals(TipoGrupo))
            {
                return 5;
            }

            return 0;
        }
Esempio n. 8
0
        public override int danoBonus(HabilidadeNode node, Jogador atacante, Mobile defensor)
        {
            BaseWeapon arma = atacante.Weapon as BaseWeapon;
            if (arma.DefSkill.Equals(TipoGrupo))
            {
                return node.Nivel * 5;
            }

            return 0;
        }
Esempio n. 9
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;
        }
Esempio n. 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);
            }
        }
Esempio n. 11
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;
        }
Esempio n. 12
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;
            }
        }
Esempio n. 13
0
 /*
  * Bonus que a habilidade da para a destreza.
  */
 public virtual int destrezaBonus(HabilidadeNode node)
 {
     return(0);
 }
Esempio n. 14
0
 /*
  * Bonus que a habilidade da para a inteligência.
  */
 public virtual int inteligenciaBonus(HabilidadeNode node)
 {
     return(0);
 }
Esempio n. 15
0
 /*
  * Bonus que a habilidade da para a vida.
  */
 public virtual int vidaBonus(HabilidadeNode node)
 {
     return 0;
 }
Esempio n. 16
0
 /*
  * Bonus que a habilidade da na skill.
  */
 public virtual double skillBonus(HabilidadeNode node, SkillName skillName)
 {
     return(0);
 }
Esempio n. 17
0
 /**
  * Bonus no dano com o tipo de arma usada
  *
  */
 public virtual int danoBonus(HabilidadeNode node, Jogador atacante, Mobile defensor)
 {
     return 0;
 }
Esempio n. 18
0
 /*
  * Bonus que a habilidade da para acertar com o tipo de arma.
  * Bonus em % exemplo: 5 = 5%.
  */
 public virtual int acertarBonus(HabilidadeNode node, Jogador jogador, Mobile defensor)
 {
     return(0);
 }
Esempio n. 19
0
 /*
  * Bonus que a habilidade da para a vida.
  */
 public virtual int vidaBonus(HabilidadeNode node)
 {
     return(0);
 }
Esempio n. 20
0
 /**
  * Invocado quando uma habilidade e aprendia ou tem seu valor aumentado.
  */
 public virtual void aplicar(Jogador jogador, HabilidadeNode node, bool primeiraVez)
 {
 }
Esempio n. 21
0
 /**
  * Bonus no dano do ataqueCritico. Valor em %. exemplo 10 para 10% no dano crítico, que já é de 25% a mais no dano.
  */
 public virtual int danoAtaqueCriticoBonus(HabilidadeNode node, Jogador atacante, Mobile defensor)
 {
     return(0);
 }
Esempio n. 22
0
 /**
  * Invocado quando uma habilidade e aprendia ou tem seu valor aumentado.
  */
 public virtual void aplicar(Jogador jogador, HabilidadeNode node, bool primeiraVez)
 {
 }
Esempio n. 23
0
 /**
  * Bonus que a habilidade concede ao cap de skill de trabalho. Normalmente toda habilidade que da bonus em um determinada skill, deve dar o mesmo bonus do Cap.
  *
  */
 public virtual int skillsCapTrabalhoBonus(HabilidadeNode node)
 {
     return(0);
 }
Esempio n. 24
0
 /*
  * Bonus que a habilidade da para aparar os ataques.
  * O item pode ser um escudo ou arma. Nao esta aparando com as maos.
  * O bonus deve ser muito pouco, como no scrito BaseWeapon linha 1153
  *
  * Exemplo 0.05 = 5%
  */
 public virtual double apararBonus(HabilidadeNode node, Item item)
 {
     return(0);
 }
Esempio n. 25
0
 /*
  * Bonus que a habilidade da para defender com a arma e escudo.
  * O escudo, pode nao ser um escudo, pode ser outro item que esta na mão do defensor.
  */
 public virtual int defenderBonus(HabilidadeNode node, BaseWeapon arma, Item escudo)
 {
     return(0);
 }
Esempio n. 26
0
 /*
  * Bonus que a habilidade da para acertar com o tipo de arma.
  * Bonus em % exemplo: 5 = 5%.
  */
 public virtual int acertarBonus(HabilidadeNode node, Jogador jogador, Mobile defensor)
 {
     return 0;
 }
Esempio n. 27
0
 /*
  * Bonus que a habilidade da para a destreza.
  */
 public virtual int destrezaBonus(HabilidadeNode node)
 {
     return 0;
 }
Esempio n. 28
0
 /*
  * Bonus que a habilidade da para aparar os ataques.
  * O item pode ser um escudo ou arma. Nao esta aparando com as maos.
  * O bonus deve ser muito pouco, como no scrito BaseWeapon linha 1153
  *
  * Exemplo 0.05 = 5%
  */
 public virtual double apararBonus(HabilidadeNode node, Item item)
 {
     return 0;
 }
Esempio n. 29
0
 /*
  * Bonus que a habilidade da para a inteligência.
  */
 public virtual int inteligenciaBonus(HabilidadeNode node)
 {
     return 0;
 }
Esempio n. 30
0
 /**
  * Bonus na chance do ataque crítico. Valor em %. exemplo 10 para 10% a mais na chance, que já é de 5%.
  */
 public virtual int chanceAtaqueCriticoBonus(HabilidadeNode node, Jogador atacante, Mobile defensor)
 {
     return 0;
 }
Esempio n. 31
0
 /*
  * Bonus que a habilidade da na skill.
  */
 public virtual double skillBonus(HabilidadeNode node, SkillName skillName)
 {
     return 0;
 }
Esempio n. 32
0
 /*
  * Bonus que a habilidade da para defender com a arma e escudo.
  * O escudo, pode nao ser um escudo, pode ser outro item que esta na mão do defensor.
  */
 public virtual int defenderBonus(HabilidadeNode node, BaseWeapon arma, Item escudo)
 {
     return 0;
 }
Esempio n. 33
0
 /*
  * Bonus que a habilidade da no tipo de resistência.
  */
 public virtual int resistenciaBonus(HabilidadeNode node, ResistanceType type)
 {
     return(0);
 }
Esempio n. 34
0
 /*
  * Bonus que a habilidade da para a folego.
  */
 public virtual int folegoBonus(HabilidadeNode node)
 {
     return 0;
 }
Esempio n. 35
0
        public override void aplicar(Jogador jogador, HabilidadeNode node, bool primeiraVez)
        {
            int ponto = primeiraVez ? node.Nivel : node.Nivel - 1;

            jogador.Stam += bonus(ponto);
        }
Esempio n. 36
0
 /*
  * Bonus que a habilidade da no tipo de resistência.
  */
 public virtual int resistenciaBonus(HabilidadeNode node, ResistanceType type)
 {
     return 0;
 }
Esempio n. 37
0
 /*
  * Bonus que a habilidade da para a mana.
  */
 public override int folegoBonus(HabilidadeNode node)
 {
     return bonus(node.Nivel);
 }
Esempio n. 38
0
 /**
  * Bonus que a habilidade concede ao cap de skill de trabalho. Normalmente toda habilidade que da bonus em um determinada skill, deve dar o mesmo bonus do Cap.
  *
  */
 public virtual int skillsCapTrabalhoBonus(HabilidadeNode node)
 {
     return 0;
 }
Esempio n. 39
0
 /*
  * Bonus que a habilidade da para a destreza.
  */
 public override int inteligenciaBonus(HabilidadeNode node)
 {
     return node.Nivel * 3;
 }
Esempio n. 40
0
 public override int forcaBonus(HabilidadeNode node)
 {
     return node.Nivel * 5;
 }
Esempio n. 41
0
 public override void aplicar(Jogador jogador, HabilidadeNode node, bool primeiraVez)
 {
     jogador.UpdateResistances();
 }
Esempio n. 42
0
 /*
  * Bonus que a habilidade da para a vida.
  */
 public override int vidaBonus(HabilidadeNode node)
 {
     return node.Nivel * 2;
 }
Esempio n. 43
0
 /*
  * Bonus que a habilidade da para a folego.
  */
 public virtual int folegoBonus(HabilidadeNode node)
 {
     return(0);
 }