예제 #1
0
 void OnMouseEnter()
 {
     player.GetComponent <EffectsPlayer>().showName(player.name, player.GetComponent <Transform>().position);
 }
예제 #2
0
        private IEnumerator attack(string abilityName, GameObject target, int order)
        {
            yield return(new WaitUntil(() => order == actionOrder.ActualOrder));

            if (Main.status.acao > 0 && Main.status.pontosAcao >= 5)
            {
                if (MainIsDead)
                {
                    ConsoleReport.Log("PERSONAGEM ATACANTE ESTÁ MORTO!", ConsoleType.BATTLE);
                    actionOrder.ActualOrder++;
                    yield break;
                }
                this.Target             = target.GetComponent <Player>();
                this.ModificadorEsquiva = Target.atributos.CA;
                if (TargetIsDead)
                {
                    ConsoleReport.Log("O ALVO SELECIONADO ESTÁ MORTO!", ConsoleType.BATTLE);
                    actionOrder.ActualOrder++;
                    yield break;
                }
                int        maxDistancia    = Main.atributos.DistAtqMax;
                int        minDistancia    = Main.atributos.DistAtqMin;
                int        bonusAcerto     = 0;
                int        custoPontosAcao = Main.atributos.CustoAtaqueBasico;
                Habilidade habilidade      = getHabilidade(abilityName);
                if (habilidade != null)
                {
                    ConsoleReport.LogBattle(habilidade.nome);
                    maxDistancia    = habilidade.maxDistancia;
                    minDistancia    = habilidade.minDistancia;
                    bonusAcerto     = habilidade.bonusAcerto;
                    custoPontosAcao = habilidade.custoPontoAcao;
                }
                else if (abilityName != null && abilityName.Length > 0)
                {
                    yield break;
                }
                if (verificaDistancia(maxDistancia, minDistancia))
                {
                    yield break;
                }
                if (habilidade != null && !Main.status.UseSp(habilidade.custoSp))
                {
                    ConsoleReport.Log("VOCÊ NÃO TEM SP SUFICIENTE PARA UTILIZAR ESTÁ HABILIDADE! SEU SP: " + Main.status.mana + " | SP NECESSÁRIA: " + habilidade.custoSp, ConsoleType.BATTLE);
                    actionOrder.ActualOrder++;
                    yield break;
                }
                this.Main.status.acao--;
                this.Main.status.pontosAcao -= custoPontosAcao;
                int  damage     = 0;
                bool isOfensiva = true;
                if (habilidade != null)
                {
                    isOfensiva = habilidade.IsOfensiva;
                    if (habilidade.tipoHabilidade.Equals(TipoHabilidades.HP))
                    {
                        this.Target.status.Heal(habilidade.Cura);
                    }
                    else if (habilidade.tipoHabilidade.Equals(TipoHabilidades.SP))
                    {
                        this.Target.status.Rejuvenate(habilidade.Rejuvenescer);
                    }
                    else if (habilidade.tipoHabilidade.Equals(TipoHabilidades.HPSP))
                    {
                        this.Target.status.Heal(habilidade.Cura);
                        this.Target.status.Rejuvenate(habilidade.Rejuvenescer);
                    }
                    else if (habilidade.tipoHabilidade.Equals(TipoHabilidades.OFENSIVA))
                    {
                        damage = habilidade.Dano;
                    }
                }
                if (isOfensiva)
                {
                    this.ModificadorAcerto = Main.atributos.AcertoBase + bonusAcerto;
                    if (hit)
                    {
                        if (damage.Equals(0))
                        {
                            damage = Main.atributos.Dano;
                        }
                        if (damage < 0)
                        {
                            damage = 0;
                        }
                        ConsoleReport.Log("ModificadorAcerto: " + ModificadorAcerto + "| ModificadorEsquiva: " + ModificadorEsquiva + "| DANO: " + damage, ConsoleType.BATTLE);
                        Main.status.attBarras();
                        this.Target.status.Damage(damage);
                    }
                    else
                    {
                        SoundManager.instance.Sfx("Miss");
                        ConsoleReport.Log("Errou", ConsoleType.BATTLE);
                        ConsoleReport.Log("ModificadorAcerto: " + ModificadorAcerto + "| ModificadorEsquiva: " + ModificadorEsquiva, ConsoleType.BATTLE);
                        Target.GetComponent <EffectsPlayer>().show(tipoEffect.DANO, "Errou", Target.GetComponent <Transform>().position);
                    }
                    Main.status.attBarras();
                }
            }
            actionOrder.ActualOrder++;
            yield break;
        }