public EnumsEnemy.Movimiento CheckSpecialAttack(EnumsEnemy.Movimiento _movimiento) { float specialMovement = Random.Range(MinRangeRandom, MaxRangeRandom); EnumsEnemy.Movimiento movimiento = _movimiento; if (specialMovement < AttackSpecialPorcentage) { if (_movimiento == EnumsEnemy.Movimiento.Agacharse || _movimiento == EnumsEnemy.Movimiento.AgacharseAtaque || _movimiento == EnumsEnemy.Movimiento.AgacheDefensa) { movimiento = EnumsEnemy.Movimiento.AtaqueEspecialAgachado; } else if (_movimiento == EnumsEnemy.Movimiento.Saltar || _movimiento == EnumsEnemy.Movimiento.SaltoAtaque || _movimiento == EnumsEnemy.Movimiento.SaltoDefensa) { movimiento = EnumsEnemy.Movimiento.AtaqueEspecialSalto; } else if (_movimiento == EnumsEnemy.Movimiento.AtacarEnElLugar || _movimiento == EnumsEnemy.Movimiento.DefensaEnElLugar) { movimiento = EnumsEnemy.Movimiento.AtaqueEspecial; } } return(movimiento); }
// VA A FALTAR CREAR UNA BARRA DE ATAQUE ESPECIAL Y QUE CUANDO LA BARRA ESTE LLENA LLAME A LA FUNCION DE CHECK ATAQUE ESPECIAL public void CheckComportamiento() { EnumsEnemy.Movimiento movimiento = EnumsEnemy.Movimiento.Nulo; if (enumsEnemy.GetMovement() != EnumsEnemy.Movimiento.MoveToPointCombat && enumsEnemy.GetMovement() != EnumsEnemy.Movimiento.MoveToPointDeath) { if (activateComportamiento) { float opcionMovement = Random.Range(MinRangeRandom, MaxRangeRandom); if (opcionMovement < MovePorcentage) { //MOVIMIENTO if (structsEnemys.dataEnemy.columnaActual >= gridEnemy.GetCuadrilla_columnas() - 1) { movimiento = EnumsEnemy.Movimiento.MoverAdelante; } else if (structsEnemys.dataEnemy.columnaActual <= 0) { movimiento = EnumsEnemy.Movimiento.MoverAtras; } else { opcionMovement = Random.Range(MinRangeRandom, MaxRangeRandom); if (opcionMovement < MoveBackPorcentage) { movimiento = EnumsEnemy.Movimiento.MoverAtras; } else { movimiento = EnumsEnemy.Movimiento.MoverAdelante; } } } else if (opcionMovement >= MovePorcentage && opcionMovement < (MovePorcentage + JumpPorcentage)) { //SALTO opcionMovement = Random.Range(MinRangeRandom, MaxRangeRandom); if (opcionMovement < AttackJumpPorcentage) { movimiento = EnumsEnemy.Movimiento.SaltoAtaque; } else if (opcionMovement >= AttackJumpPorcentage && opcionMovement < (AttackJumpPorcentage + DefenceJumpPorcentage)) { movimiento = EnumsEnemy.Movimiento.SaltoDefensa; } else if (opcionMovement >= (AttackJumpPorcentage + DefenceJumpPorcentage)) { movimiento = EnumsEnemy.Movimiento.Saltar; } } else if (opcionMovement >= (MovePorcentage + JumpPorcentage) && opcionMovement < (MovePorcentage + JumpPorcentage + DuckPorcentage)) { //AGACHARSE opcionMovement = Random.Range(MinRangeRandom, MaxRangeRandom); if (opcionMovement < AttackDuckPorcentage) { movimiento = EnumsEnemy.Movimiento.AgacharseAtaque; } else if (opcionMovement >= AttackDuckPorcentage && opcionMovement < (AttackDuckPorcentage + DefenceDuckPorcentage)) { movimiento = EnumsEnemy.Movimiento.AgacheDefensa; } else if (opcionMovement >= (AttackDuckPorcentage + DefenceDuckPorcentage)) { movimiento = EnumsEnemy.Movimiento.Agacharse; } } else if (opcionMovement >= (MovePorcentage + JumpPorcentage + DuckPorcentage)) { //QUIETO EN EL LUGAR opcionMovement = Random.Range(MinRangeRandom, MaxRangeRandom); if (opcionMovement < AttackPorcentage) { movimiento = EnumsEnemy.Movimiento.AtacarEnElLugar; } else if (opcionMovement >= AttackPorcentage && opcionMovement < (AttackPorcentage + DeffensePorcentage)) { movimiento = EnumsEnemy.Movimiento.DefensaEnElLugar; } } } } else { movimiento = enumsEnemy.GetMovement(); } delaySelectMovement = Random.Range(minRandomDelayMovement, maxRandomDelayMovement); enumsEnemy.SetMovement(movimiento); //Debug.Log(movimiento.ToString()); if (enumsEnemy.GetMovement() == EnumsEnemy.Movimiento.SaltoAtaque || enumsEnemy.GetMovement() == EnumsEnemy.Movimiento.AtaqueEspecialSalto) { delayAttack = delayAttackJumping; } if (enumsEnemy.GetMovement() != EnumsEnemy.Movimiento.SaltoDefensa || enumsEnemy.GetMovement() != EnumsEnemy.Movimiento.DefensaEnElLugar) { isDeffended = false; } //SACAR LA CONDICION QUE SEA IGUAL AL JEFE CUANDO ESTE TENGA UN COMPORTAMIENTO if (enumsEnemy.typeEnemy == EnumsEnemy.TiposDeEnemigo.Jefe || !activateComportamiento) { DefaultBehavior(); } }