//cambia el estado del boss public void ChangeBossState(string bossName, string state) { //tomamos el nombre del boss y lo pasamos a minúsculas asi no debemos preocuparnos de si pusimos la mayúscula o no switch (bossName.ToLower()) { //en caso de que sea el lobo //tomamos el nombre del ataque y lo pasamos a minúsculas asi no debemos preocuparnos de si pusimos la mayúscula o no case "wolf": switch (state.ToLower()) { case "jump": if (wolfState == WolfEnums.idle) { wolfState = WolfEnums.jumping; boss.GetComponent <JumpToPlayer>().DoJump(); } break; case "charge": if (wolfState == WolfEnums.idle) { //La carga funciona diferente, necesitamos saber el enfriamiento de la carga antes de usarla (se entiendo viendo el script Charge). if (!boss.GetComponent <Charge>().ChargeCD()) { wolfState = WolfEnums.charging; //Se inicia el enfriamiento de la carga. boss.GetComponent <Charge>().StartChargeCD(); } } break; case "idle": wolfState = WolfEnums.idle; break; } break; //en caso de que sea el mago case "wizard": switch (state.ToLower()) { case "storm": if (wizardState == WizardEnums.idle) { boss.GetComponent <MultipleLightings>().StartStorm(); boss.GetComponent <BossFireball>().StartCreate(); wizardState = WizardEnums.storm; } else { boss.GetComponent <MultipleLightings>().StopStorm(); boss.GetComponent <BossFireball>().StopCreate(); wizardState = WizardEnums.idle; } break; case "flying": if (wizardState == WizardEnums.idle) { boss.GetComponent <EnemyLighting>().LightingOn(); wizardState = WizardEnums.flying; } else { boss.GetComponent <EnemyLighting>().LightingOff(); wizardState = WizardEnums.idle; } break; case "fireball": if (wizardState == WizardEnums.idle) { boss.GetComponent <BossFireball>().StartCreate(); wizardState = WizardEnums.fireball; } else { boss.GetComponent <BossFireball>().StopCreate(); wizardState = WizardEnums.idle; } break; case "idle": wizardState = WizardEnums.idle; break; } break; default: break; } }
void WolfIdleWait() { wolfState = WolfEnums.idle; }