public override void ApplyStateEffect <T>(T character) { if (character.GetType() == typeof(PlayerManager)) { PlayerManager player = character as PlayerManager; player.pacifier = 0; } else if (character.GetType() == typeof(EnemyNPC)) { EnemyNPC enemy = character as EnemyNPC; enemy.pacifier = 0; } }
public override void ApplyStateEffect <T>(T character) { if (character.GetType() == typeof(PlayerManager)) { PlayerManager player = character as PlayerManager; player.characteristics.other.currentTurnRegenPerSecond = 0; } else if (character.GetType() == typeof(EnemyNPC)) { EnemyNPC enemy = character as EnemyNPC; enemy.currentTurnRegenPerSecond = 0; } }
public override void ApplyStateEffect <T>(T character) { if (character.GetType() == typeof(PlayerManager)) { PlayerManager player = character as PlayerManager; player.characteristics.currentStrength += (int)(player.characteristics.defaultStrength * 0.25f); player.characteristics.currentDexterity += (int)(player.characteristics.defaultDexterity * 0.25f); } else if (character.GetType() == typeof(EnemyNPC)) { EnemyNPC enemy = character as EnemyNPC; enemy.currentStrength += (int)(enemy.myTemplate.defaultStrength * 0.25f); enemy.currentDexterity += (int)(enemy.myTemplate.defaultDexterity * 0.25f); } }
public override void DissableStateEffect <T>(T character) { if (character.GetType() == typeof(PlayerManager)) { PlayerManager player = character as PlayerManager; player.currentVisibility = player.defaultVisibility; player.ReturnToNormalState(); } else if (character.GetType() == typeof(EnemyNPC)) { EnemyNPC enemy = character as EnemyNPC; enemy.ReturnToNormalState(); } }
public override void DissableStateEffect <T>(T character) { if (character.GetType() == typeof(PlayerManager)) { PlayerManager player = character as PlayerManager; player.characteristics.other.currentTurnRegenPerSecond = player.characteristics.other.DefaultTurnRegenPerSecond; player.ReturnToNormalState(); } else if (character.GetType() == typeof(EnemyNPC)) { EnemyNPC enemy = character as EnemyNPC; enemy.currentTurnRegenPerSecond = enemy.myTemplate.DefaultTurnRegenPerSecond; enemy.ReturnToNormalState(); } }
public override void DissableStateEffect <T>(T character) { if (character.GetType() == typeof(PlayerManager)) { PlayerManager player = character as PlayerManager; player.pacifier = 1; player.ReturnToNormalState(); } else if (character.GetType() == typeof(EnemyNPC)) { EnemyNPC enemy = character as EnemyNPC; enemy.pacifier = 1; enemy.ReturnToNormalState(); } }
public override void ApplyStateEffect <T>(T character) { if (character.GetType() == typeof(PlayerManager)) { PlayerManager player = character as PlayerManager; player.currentVisibility = 4 + (player.playerLevel / 2); player.characteristics.other.currentEvasion = 50; player.characteristics.other.InvokeRepeating("ReduceEvasionBySecond", 1, 1); } else if (character.GetType() == typeof(EnemyNPC)) { EnemyNPC enemy = character as EnemyNPC; enemy.currentEvasion = 50; enemy.InvokeRepeating("ReduceEvasionBySecond", 1, 1); } }
public void GiveUp(EnemyNPC enemy) { WasteTurn(1); float r = Random.Range(0f, 1f); r *= 100; if (r < characteristics.other.EscapeProbability(this, enemy)) { controller.combatController.UpdatePlayerLog("Te has rendido."); controller.combatController.StopCoroutine(controller.combatController.EndCombatByGivingUp(this)); controller.combatController.StartCoroutine(controller.combatController.EndCombatByGivingUp(this)); } else { controller.combatController.UpdatePlayerLog("No has podido rendirte."); } }
public override void ApplyStateEffect <T>(T character) { if (character.GetType() == typeof(PlayerManager)) { PlayerManager player = character as PlayerManager; for (int i = 0; i < player.characteristics.playerJob.jobHabilities.Count; i++) { player.characteristics.playerJob.jobHabilities[i].MakeAvailable(false); } } else if (character.GetType() == typeof(EnemyNPC)) { EnemyNPC enemy = character as EnemyNPC; for (int i = 0; i < enemy.myTemplate.habilities.Length; i++) { enemy.myTemplate.habilities[i].MakeAvailable(false); } } }
public override void DissableStateEffect <T>(T character) { if (character.GetType() == typeof(PlayerManager)) { PlayerManager player = character as PlayerManager; player.characteristics.currentStrength = (player.characteristics.defaultStrength); player.characteristics.currentDexterity = (player.characteristics.defaultDexterity); player.ReturnToNormalState(); } else if (character.GetType() == typeof(EnemyNPC)) { EnemyNPC enemy = character as EnemyNPC; enemy.currentStrength = (enemy.myTemplate.defaultStrength); enemy.currentDexterity = (enemy.myTemplate.defaultDexterity); enemy.ReturnToNormalState(); } }
public void AttackInCombat(EnemyNPC enemy) { WasteTurn(0.8f); controller.combatController.UpdatePlayerLog("Has atacado."); float damage = characteristics.currentStrength + Random.Range(1, 5) + Random.Range(0, 3); float r = Random.Range(0f, 1f); if (r <= characteristics.other.CriticalHitProbability(this)) { controller.combatController.UpdatePlayerLog("¡CRÍTICO!"); damage *= 2; } damage *= pacifier; enemy.ReceiveDamage(damage); }
public override void ImplementHability(PlayerManager player, EnemyNPC enemy) { if (!isAvailable) { if (GameState.Instance.CurrentState == GameState.GameStates.combat) { player.controller.combatController.UpdatePlayerLog("Analizar no disponible."); return; } } base.ImplementHability(player, enemy); isAvailable = false; string characteristicsEnemy; characteristicsEnemy = "Fuerza: " + enemy.currentStrength + "\n" + "Destreza: " + enemy.currentDexterity + "\n" + "Inteligencia: " + enemy.currentIntelligence + "\n" + "Resistencia: " + enemy.currentResistance; if (GameState.Instance.CurrentState == GameState.GameStates.combat) { player.currentTurn -= turnConsuption; player.controller.combatController.UpdatePlayerLog("¡Has usado Analizar!"); player.controller.combatController.enemyUI.descriptionText.text = characteristicsEnemy; WaitForCooldown(player); } else if (GameState.Instance.CurrentState == GameState.GameStates.exploration) { player.controller.LogStringWithReturn(TextConverter.MakeFirstLetterUpper(enemy.myTemplate.npcName) + ":\n" + characteristicsEnemy); } WaitForCooldown(); }
public override void ImplementHability(PlayerManager player, EnemyNPC enemy) { if (!isAvailable) { if (GameState.Instance.CurrentState == GameState.GameStates.combat) { player.controller.combatController.UpdatePlayerLog("Reiniciar no disponible."); return; } } base.ImplementHability(player, enemy); isAvailable = false; if (GameState.Instance.CurrentState == GameState.GameStates.combat) { player.currentTurn -= turnConsuption; player.controller.combatController.UpdatePlayerLog("¡Has usado Reiniciar!"); enemy.ChangeState(stateToChange); } WaitForCooldown(); }
public override void DissableStateEffect <T>(T character) { if (character.GetType() == typeof(PlayerManager)) { PlayerManager player = character as PlayerManager; player.currentVisibility = player.defaultVisibility; player.characteristics.other.currentEvasion = player.characteristics.other.DefaultEvasion; player.characteristics.other.CancelInvoke(); player.ReturnToNormalState(); } else if (character.GetType() == typeof(EnemyNPC)) { EnemyNPC enemy = character as EnemyNPC; enemy.currentEvasion = enemy.myTemplate.DefaultEvasion; enemy.CancelInvoke(); enemy.ReturnToNormalState(); } }
public virtual void ActivatePassiveHability(EnemyNPC player) { }
/// <summary> /// Activar la habilidad, que puede ser en combate o fuera de él. /// Requiere que se le envíe el manager del jugador. /// </summary> /// <param name="player"></param> public virtual void ImplementHability(PlayerManager player, EnemyNPC npc) { AddExperience(); }
static void Main(string[] args) { Console.WriteLine(PRISON01); System.Threading.Thread.Sleep(MillisecondsTimeout); Console.WriteLine(PRISON02); System.Threading.Thread.Sleep(MillisecondsTimeout); Console.WriteLine(PRISON03); string PlayerChoice01 = Console.ReadLine(); bool HavePrisonKey = false; switch (PlayerChoice01) { case "y": Console.WriteLine(CHOICE01Y); HavePrisonKey = true; InventorySpace--; System.Threading.Thread.Sleep(MillisecondsTimeout); break; case "n": Console.WriteLine(CHOICE01N); System.Threading.Thread.Sleep(MillisecondsTimeout); break; default: Console.WriteLine(CHOICE01I); System.Threading.Thread.Sleep(MillisecondsTimeout); break; } Console.WriteLine(PRISON04); System.Threading.Thread.Sleep(MillisecondsTimeout); Console.WriteLine(PRISON05); System.Threading.Thread.Sleep(MillisecondsTimeout); Console.WriteLine(PRISON06); System.Threading.Thread.Sleep(MillisecondsTimeout); Console.WriteLine(PRISON07); EnemyNPC goblin1 = new EnemyNPC { NPCID = 001, NPCName = "Goblin Thug", NPCHealth = 10, NPCAttack = 10, NPCSpeed = 2 }; string PlayerChoice02 = Console.ReadLine(); switch (PlayerChoice02) { case "y": Console.WriteLine(CHOICE02Y); System.Threading.Thread.Sleep(MillisecondsTimeout); Random RollDice = new Random(); int dice = RollDice.Next(PlayerSneak, 8); if (dice <= 4) { Console.WriteLine(STATCHKF); System.Threading.Thread.Sleep(MillisecondsTimeout); Console.WriteLine(goblin1.Encounter()); BattleSim(goblin1.NPCName, goblin1.NPCSpeed, goblin1.NPCHealth, goblin1.NPCAttack); } else { Console.WriteLine(STATCHKS); PlayerSneak++; System.Threading.Thread.Sleep(MillisecondsTimeout); } break; case "n": Console.WriteLine(CHOICE02N); System.Threading.Thread.Sleep(MillisecondsTimeout); break; default: Console.WriteLine(CHOICE02I); System.Threading.Thread.Sleep(MillisecondsTimeout); Console.WriteLine(goblin1.Encounter()); BattleSim(goblin1.NPCName, goblin1.NPCSpeed, goblin1.NPCHealth, goblin1.NPCAttack); break; } Console.WriteLine(PRISON08); System.Threading.Thread.Sleep(MillisecondsTimeout); Console.WriteLine(PRISON09); System.Threading.Thread.Sleep(MillisecondsTimeout); if (HavePrisonKey == true) { Console.WriteLine(PRISON10); System.Threading.Thread.Sleep(MillisecondsTimeout); } else { Console.WriteLine(PRISON11); System.Threading.Thread.Sleep(MillisecondsTimeout); Console.WriteLine(FIELD01); } }
public virtual void OnEnterState(EnemyNPC eNpc) { }
public IEnumerator RepositionTime(float time, EnemyNPC enemy) { yield return(new WaitForSecondsRealtime(time)); enemy.currentEvasion = enemy.myTemplate.DefaultEvasion; }
public override void ActivatePassiveHability(EnemyNPC npc) { }
public abstract override void ActivatePassiveHability(EnemyNPC npc);
public override void ImplementHability <T>(PlayerManager player, T thing, string[] separatedInputs) { if (!isAvailable) { if (GameState.Instance.CurrentState == GameState.GameStates.combat) { player.controller.combatController.UpdatePlayerLog("Reiniciar no disponible."); return; } } base.ImplementHability(player, thing, separatedInputs); isAvailable = false; if (GameState.Instance.CurrentState == GameState.GameStates.combat) { if (thing.GetType() == typeof(PlayerInstance)) { player.currentTurn -= turnConsuption; PlayerInstance enemy = thing as PlayerInstance; player.controller.combatController.UpdatePlayerLog("¡Has usado Modificar!"); NetworkManager.Instance.UpdateEnemyLog(player.playerName + " ha modificado algo."); if (separatedInputs.Length < 2) { player.controller.combatController.UpdatePlayerLog("Parámetros insuficientes."); ImplementHability(player, enemy); return; } string statOne = separatedInputs[0]; string statTwo = separatedInputs[1]; float temp; switch (statOne) { case "fuerza": temp = enemy.strength; switch (statTwo) { case "fuerza": NetworkManager.Instance.ChangeStrength(1, enemy); break; case "destreza": NetworkManager.Instance.ChangeStrength(enemy.dexterity, enemy); NetworkManager.Instance.ChangeDexterity(temp, enemy); break; case "inteligencia": NetworkManager.Instance.ChangeStrength(enemy.intelligence, enemy); NetworkManager.Instance.ChangeIntelligence(temp, enemy); break; case "resistencia": NetworkManager.Instance.ChangeStrength(enemy.resistance, enemy); NetworkManager.Instance.ChangeResistance(temp, enemy); break; } break; case "destreza": temp = enemy.dexterity; switch (statTwo) { case "fuerza": NetworkManager.Instance.ChangeDexterity(enemy.strength, enemy); NetworkManager.Instance.ChangeStrength(temp, enemy); break; case "destreza": NetworkManager.Instance.ChangeDexterity(1, enemy); break; case "inteligencia": NetworkManager.Instance.ChangeDexterity(enemy.intelligence, enemy); NetworkManager.Instance.ChangeIntelligence(temp, enemy); break; case "resistencia": NetworkManager.Instance.ChangeDexterity(enemy.resistance, enemy); NetworkManager.Instance.ChangeResistance(temp, enemy); break; } break; case "inteligencia": temp = enemy.intelligence; switch (statTwo) { case "fuerza": NetworkManager.Instance.ChangeIntelligence(enemy.strength, enemy); NetworkManager.Instance.ChangeStrength(temp, enemy); break; case "destreza": NetworkManager.Instance.ChangeIntelligence(enemy.dexterity, enemy); NetworkManager.Instance.ChangeDexterity(temp, enemy); break; case "inteligencia": NetworkManager.Instance.ChangeIntelligence(1, enemy); break; case "resistencia": NetworkManager.Instance.ChangeIntelligence(enemy.resistance, enemy); NetworkManager.Instance.ChangeResistance(temp, enemy); break; } break; case "resistencia": temp = enemy.resistance; switch (statTwo) { case "fuerza": NetworkManager.Instance.ChangeResistance(enemy.strength, enemy); NetworkManager.Instance.ChangeStrength(temp, enemy); break; case "destreza": NetworkManager.Instance.ChangeResistance(enemy.dexterity, enemy); NetworkManager.Instance.ChangeDexterity(temp, enemy); break; case "inteligencia": NetworkManager.Instance.ChangeResistance(enemy.intelligence, enemy); NetworkManager.Instance.ChangeIntelligence(temp, enemy); break; case "resistencia": NetworkManager.Instance.ChangeResistance(1, enemy); break; } break; } } if (thing.GetType() == typeof(EnemyNPC)) { player.currentTurn -= turnConsuption; EnemyNPC enemy = thing as EnemyNPC; player.controller.combatController.UpdatePlayerLog("¡Has usado Modificar!"); if (separatedInputs.Length < 2) { player.controller.combatController.UpdatePlayerLog("Parámetros insuficientes."); ImplementHability(player, enemy); return; } string statOne = separatedInputs[0]; string statTwo = separatedInputs[1]; float temp; switch (statOne) { default: player.controller.combatController.UpdatePlayerLog("Parámetro 1 no aceptado."); ImplementHability(player, enemy); return; case "fuerza": temp = enemy.currentStrength; switch (statTwo) { default: player.controller.combatController.UpdatePlayerLog("Parámetro 2 no aceptado."); ImplementHability(player, enemy); return; case "fuerza": enemy.currentStrength = 1; break; case "destreza": enemy.currentStrength = enemy.currentDexterity; enemy.currentDexterity = temp; break; case "inteligencia": enemy.currentStrength = enemy.currentIntelligence; enemy.currentIntelligence = temp; break; case "resistencia": enemy.currentStrength = enemy.currentResistance; enemy.currentResistance = temp; break; } break; case "destreza": temp = enemy.currentDexterity; switch (statTwo) { default: player.controller.combatController.UpdatePlayerLog("Parámetro 2 no aceptado."); ImplementHability(player, enemy); return; case "fuerza": enemy.currentDexterity = enemy.currentStrength; enemy.currentStrength = temp; break; case "destreza": enemy.currentDexterity = 1; break; case "inteligencia": enemy.currentDexterity = enemy.currentIntelligence; enemy.currentIntelligence = temp; break; case "resistencia": enemy.currentDexterity = enemy.currentResistance; enemy.currentResistance = temp; break; } break; case "inteligencia": temp = enemy.currentIntelligence; switch (statTwo) { default: player.controller.combatController.UpdatePlayerLog("Parámetro 2 no aceptado."); ImplementHability(player, enemy); return; case "fuerza": enemy.currentIntelligence = enemy.currentStrength; enemy.currentStrength = temp; break; case "destreza": enemy.currentIntelligence = enemy.currentDexterity; enemy.currentDexterity = temp; break; case "inteligencia": enemy.currentIntelligence = 1; break; case "resistencia": enemy.currentIntelligence = enemy.currentResistance; enemy.currentResistance = temp; break; } break; case "resistencia": temp = enemy.currentResistance; switch (statTwo) { default: player.controller.combatController.UpdatePlayerLog("Parámetro 2 no aceptado."); ImplementHability(player, enemy); return; case "fuerza": enemy.currentResistance = enemy.currentStrength; enemy.currentStrength = temp; break; case "destreza": enemy.currentResistance = enemy.currentDexterity; enemy.currentDexterity = temp; break; case "inteligencia": enemy.currentResistance = enemy.currentIntelligence; enemy.currentIntelligence = temp; break; case "resistencia": enemy.currentResistance = 1; break; } break; } } } WaitForCooldown(); }
public void CheckHabilitiesInputDuringCombat(string[] separatedInputWords, GameController controller, EnemyNPC enemy) { Job playerJob = controller.playerManager.characteristics.playerJob; char[] habilitiesChars = separatedInputWords[0].ToCharArray(); if (habilitiesChars.Length == 3) { string[] tempSeparatedInputWords = new string[separatedInputWords.Length + 3]; for (int i = 0; i < habilitiesChars.Length; i++) { tempSeparatedInputWords[i] = habilitiesChars[i].ToString(); } for (int i = 1; i < separatedInputWords.Length; i++) { tempSeparatedInputWords[i + 2] = separatedInputWords[i]; } separatedInputWords = tempSeparatedInputWords; } if (separatedInputWords.Length < 3) { TryToSendResponse(controller, "Parametros Insuficientes."); return; } if (separatedInputWords[0] != "0") { TryToSendResponse(controller, "Valores invalidos recibidos."); return; } if (separatedInputWords[1] != playerJob.identifier.ToString()) { TryToSendResponse(controller, "No se detectó habilidad de " + TextConverter.MakeFirstLetterUpper(playerJob.jobName) + "."); return; } for (int i = 0; i < playerJob.unlockedHabilities.Count; i++) { if (separatedInputWords[2] == playerJob.unlockedHabilities[i].habilityID.ToString()) { if (separatedInputWords.Length == 3) { playerJob.unlockedHabilities[i].ImplementHability(controller.playerManager, enemy); } else if (separatedInputWords.Length == 4) { string[] separatedString = { separatedInputWords[3] }; playerJob.unlockedHabilities[i].ImplementHability(controller.playerManager, enemy, separatedString); } else if (separatedInputWords.Length == 5) { string[] separatedString = { separatedInputWords[3], separatedInputWords[4] }; playerJob.unlockedHabilities[i].ImplementHability(controller.playerManager, enemy, separatedString); } return; } } TryToSendResponse(controller, "Habilidad no detectada."); }
public override void OnEnterState(EnemyNPC eNpc) { _eNpc = eNpc; EnemyPathSetter.OnTargetSpawnedForEnemy += HandleTargetSpawnedForEnemy; OnEnemySpawned?.Invoke(GetInstanceID()); }
public override void ImplementHability(PlayerManager player, EnemyNPC enemy) { if (!isAvailable) { if (GameState.Instance.CurrentState == GameState.GameStates.combat) { player.controller.combatController.UpdatePlayerLog("Reiniciar no disponible."); return; } } base.ImplementHability(player, enemy); isAvailable = false; if (GameState.Instance.CurrentState == GameState.GameStates.combat) { player.currentTurn -= turnConsuption; player.controller.combatController.UpdatePlayerLog("¡Has usado Modificar!"); int pickOne = Random.Range(1, 5); int pickTwo = pickOne; while (pickTwo == pickOne) { pickTwo = Random.Range(1, 5); } float temp; switch (pickOne) { case 1: temp = enemy.currentStrength; switch (pickTwo) { case 1: enemy.currentStrength = 1; break; case 2: enemy.currentStrength = enemy.currentDexterity; enemy.currentDexterity = temp; break; case 3: enemy.currentStrength = enemy.currentIntelligence; enemy.currentIntelligence = temp; break; case 4: enemy.currentStrength = enemy.currentResistance; enemy.currentResistance = temp; break; } break; case 2: temp = enemy.currentDexterity; switch (pickTwo) { case 1: enemy.currentDexterity = enemy.currentStrength; enemy.currentStrength = temp; break; case 2: enemy.currentDexterity = 1; break; case 3: enemy.currentDexterity = enemy.currentIntelligence; enemy.currentIntelligence = temp; break; case 4: enemy.currentDexterity = enemy.currentResistance; enemy.currentResistance = temp; break; } break; case 3: temp = enemy.currentIntelligence; switch (pickTwo) { case 1: enemy.currentIntelligence = enemy.currentStrength; enemy.currentStrength = temp; break; case 2: enemy.currentIntelligence = enemy.currentDexterity; enemy.currentDexterity = temp; break; case 3: enemy.currentIntelligence = 1; break; case 4: enemy.currentIntelligence = enemy.currentResistance; enemy.currentResistance = temp; break; } break; case 4: temp = enemy.currentIntelligence; switch (pickTwo) { case 1: enemy.currentResistance = enemy.currentStrength; enemy.currentStrength = temp; break; case 2: enemy.currentResistance = enemy.currentDexterity; enemy.currentDexterity = temp; break; case 3: enemy.currentResistance = enemy.currentIntelligence; enemy.currentIntelligence = temp; break; case 4: enemy.currentResistance = 1; break; } break; } } WaitForCooldown(); }
public override void ActivatePassiveHability(EnemyNPC npc) { //This will do nothing }