public List <Monster> castMove(Monster attackMonster, Move attackMove, Monster defendingMonster) { List <Monster> attackDefenderList = new List <Monster>(); int staminaRequired = attackMove.getStamina(); int staminaPossessed = attackMonster.getStamina(); if (staminaRequired > staminaPossessed) { attackDefenderList.Add(attackMonster); attackDefenderList.Add(defendingMonster); Console.Write("Error Not enough Stamina" + "\n"); return(attackDefenderList); } float damage = 0; float netAttack; float netDefense; Console.Write("Move Name: " + attackMove.getName() + ", Stamina required: " + attackMove.getStamina() + "\n"); Console.Write("Attacker: " + attackMonster.getName() + ", Level: " + attackMonster.getLevel() + " Health: " + attackMonster.getHealth() + ", Stamina: " + attackMonster.getStamina() + "\n"); Console.Write("Defender: " + defendingMonster.getName() + ", Level: " + defendingMonster.getLevel() + " Health: " + defendingMonster.getHealth() + ", Stamina: " + defendingMonster.getStamina() + "\n"); netAttack = principalAttackValue(attackMonster, attackMove); netDefense = principalDefenseValue(defendingMonster, attackMove); damage = netAttack - netDefense; if (attackMove.getType() != "normal") { damage = specialAttack(defendingMonster, attackMove, damage); } else { } // Before damage is rendered the random varible must be applied // the random effectiveness variable, it will be modeled as RE = (2 / 3 + E) + R where 2 / 3 represents 66 % //effective all the time, then E = Level / 300, such that at level 100 a creature will be completely effective while // a creature at 1 will be .661.Then another variable R will be created. R will be a number that is a random // number between the range of 0:X where x = 1 - (.2 / 3 + E), int level = attackMonster.getLevel(); float tempLevel = (float)level; tempLevel = tempLevel / 100; damage = damage * tempLevel; int roundedDamage = (int)damage; defendingMonster.renderDamage(roundedDamage, attackMonster, defendingMonster, attackMove); attackDefenderList.Add(attackMonster); attackDefenderList.Add(defendingMonster); return(attackDefenderList); }
public List<Monster> castMove(Monster attackMonster, Move attackMove, Monster defendingMonster) { List<Monster> attackDefenderList = new List<Monster>(); int staminaRequired = attackMove.getStamina(); int staminaPossessed = attackMonster.getStamina(); if (staminaRequired > staminaPossessed) { attackDefenderList.Add(attackMonster); attackDefenderList.Add(defendingMonster); Console.Write("Error Not enough Stamina"+"\n"); return attackDefenderList; } float damage = 0; float netAttack; float netDefense; Console.Write("Move Name: " + attackMove.getName() +", Stamina required: "+attackMove.getStamina()+"\n"); Console.Write("Attacker: " + attackMonster.getName() + ", Level: " + attackMonster.getLevel()+" Health: "+attackMonster.getHealth()+", Stamina: " + attackMonster.getStamina() + "\n"); Console.Write("Defender: " + defendingMonster.getName() + ", Level: " + defendingMonster.getLevel()+" Health: "+defendingMonster.getHealth() + ", Stamina: "+defendingMonster.getStamina() +"\n"); netAttack = principalAttackValue(attackMonster, attackMove); netDefense = principalDefenseValue(defendingMonster, attackMove); damage = netAttack - netDefense; if (attackMove.getType() != "normal") { damage = specialAttack(defendingMonster, attackMove, damage); } else { } // Before damage is rendered the random varible must be applied // the random effectiveness variable, it will be modeled as RE = (2 / 3 + E) + R where 2 / 3 represents 66 % //effective all the time, then E = Level / 300, such that at level 100 a creature will be completely effective while // a creature at 1 will be .661.Then another variable R will be created. R will be a number that is a random // number between the range of 0:X where x = 1 - (.2 / 3 + E), int level=attackMonster.getLevel(); float tempLevel = (float)level; tempLevel = tempLevel / 100; damage = damage * tempLevel; int roundedDamage = (int)damage; defendingMonster.renderDamage(roundedDamage,attackMonster, defendingMonster,attackMove); attackDefenderList.Add(attackMonster); attackDefenderList.Add(defendingMonster); return attackDefenderList; }
public void fightTwo(Monster attackMonster, Monster defendingMonster) { Console.Write("\n"); Console.Write("Attacker: " + attackMonster.getName() + ", Level: " + attackMonster.getLevel() + " Health: " + attackMonster.getHealth() + ", Stamina: " + attackMonster.getStamina() + ", Type: " + attackMonster.getType() + "\n"); Console.Write("Defender: " + defendingMonster.getName() + ", Level: " + defendingMonster.getLevel() + " Health: " + defendingMonster.getHealth() + ", Stamina: " + defendingMonster.getStamina() + ", Type: " + defendingMonster.getType() + "\n"); Move toBecastMove = getMoveFromConsole(attackMonster.getMoveList(), attackMonster); castMove(attackMonster, toBecastMove, defendingMonster); if (defendingMonster.currentlyLiving() == true) { fightTwo(defendingMonster, attackMonster); } else { Console.Write("Monster has died" + "\n"); } }
public float principalDefenseValue(Monster defenseMonster, Move attackMove) { float pDV = attackMove.getMaxDefense(); // Console.Write(" max d =" + pDV + "\n"); float dSpeed = attackMove.getDSpeed(); float dSize = attackMove.getDSize(); float dstrength = attackMove.getDStrength(); // Console.Write("dmove size after " + dSize + "\n"); // Console.Write("dmove speed after " + dSpeed + "\n"); // Console.Write("dmove strength after " + dstrength + "\n"); // Console.Write(" " + "\n"); dSpeed = dSpeed / 100; dSize = dSize / 100; dstrength = dstrength / 100; int defenderSpeed = defenseMonster.getSpeed(); int defenderSize = defenseMonster.getSize(); int defenderStrengh = defenseMonster.getStrength(); dSpeed = dSpeed * defenderSpeed; dSize = dSize * defenderSize; dstrength = dstrength * defenderStrengh; float total = dSpeed + dSize + dstrength; total = total / 100; float levelMod = defenseMonster.getLevel(); levelMod = levelMod / 100; total = total * levelMod; pDV = pDV * total; return(pDV); }
public float principalAttackValue(Monster attackMonster, Move attackMove) { float pAV = attackMove.getMaxDamage(); float moveSize = attackMove.getSizeAttacker(); float moveSpeed = attackMove.getSpeed(); float moveStrength = attackMove.getStrength(); moveSize = moveSize / 100; moveSpeed = moveSpeed / 100; moveStrength = moveStrength / 100; int creatureSpeed = attackMonster.getSpeed(); int creatureStrength = attackMonster.getStrength(); int creatureSize = attackMonster.getSize(); moveSize = moveSize * creatureSize; moveSpeed = moveSpeed * creatureSpeed; moveStrength = moveStrength * creatureStrength; //Console.Write("move size " + moveSize + "\n"); //Console.Write("move speed " + moveSpeed + "\n"); //Console.Write("move Strength " + moveStrength + "\n"); float total = moveSize + moveSpeed + moveStrength; float effectivnessDecimal = total / 100; //Console.Write("move max damage @ 100% effecency " + pAV + "\n"); // Console.Write("effectivness deceimal= " + effectivnessDecimal + "\n"); pAV = pAV * effectivnessDecimal; // Console.Write("max damage after applied (defense still to be calculated) " + pAV + "\n"); float levelMod = attackMonster.getLevel(); levelMod = levelMod / 100; // Console.Write(" level mod attacker " + levelMod + "\n"); pAV = pAV * levelMod; // Console.Write(" final pAV w/ level consider " + pAV + "\n"); // Console.Write("\n"); return(pAV); }
public Move getMoveFromConsole(List <Move> moveList, Monster attackMonster) { for (int b = 0; b < moveList.Count; b++) { Move moveChoice = new Move(); moveChoice = moveList.ElementAt(b); float pAv = principalAttackValue(attackMonster, moveChoice); pAv = pAv / attackMonster.getLevel(); int a = b; a += 1; Console.Write("Name: " + moveList.ElementAt(b).getName() + ", Choice: " + a + ", Type: " + moveList.ElementAt(b).getType() + ", Perfect Hit: " + pAv + "\n"); } string tempMove = Console.ReadLine(); int tempMoveInt = Convert.ToInt32(tempMove); tempMoveInt = tempMoveInt - 1; Console.Write("Move chosen is: " + moveList.ElementAt(tempMoveInt).getName() + "\n"); Console.Write("\n"); return(moveList.ElementAt(tempMoveInt)); }
public void fightTwo(Monster attackMonster, Monster defendingMonster) { Console.Write("\n"); Console.Write("Attacker: " + attackMonster.getName() + ", Level: " + attackMonster.getLevel() + " Health: " + attackMonster.getHealth() + ", Stamina: " + attackMonster.getStamina()+", Type: "+attackMonster.getType() + "\n"); Console.Write("Defender: " + defendingMonster.getName() + ", Level: " + defendingMonster.getLevel() + " Health: " + defendingMonster.getHealth() + ", Stamina: " + defendingMonster.getStamina()+ ", Type: "+defendingMonster.getType() + "\n"); Move toBecastMove = getMoveFromConsole(attackMonster.getMoveList(),attackMonster); castMove(attackMonster, toBecastMove, defendingMonster); if (defendingMonster.currentlyLiving() == true) { fightTwo(defendingMonster, attackMonster); } else { Console.Write("Monster has died" + "\n"); } }
public float principalDefenseValue(Monster defenseMonster, Move attackMove) { float pDV = attackMove.getMaxDefense(); // Console.Write(" max d =" + pDV + "\n"); float dSpeed = attackMove.getDSpeed(); float dSize = attackMove.getDSize(); float dstrength = attackMove.getDStrength(); // Console.Write("dmove size after " + dSize + "\n"); // Console.Write("dmove speed after " + dSpeed + "\n"); // Console.Write("dmove strength after " + dstrength + "\n"); // Console.Write(" " + "\n"); dSpeed = dSpeed / 100; dSize = dSize / 100; dstrength = dstrength / 100; int defenderSpeed = defenseMonster.getSpeed(); int defenderSize = defenseMonster.getSize(); int defenderStrengh = defenseMonster.getStrength(); dSpeed = dSpeed * defenderSpeed; dSize = dSize * defenderSize; dstrength = dstrength * defenderStrengh; float total = dSpeed + dSize + dstrength; total = total / 100; float levelMod = defenseMonster.getLevel(); levelMod = levelMod / 100; total = total * levelMod; pDV = pDV * total; return pDV; }
public float principalAttackValue(Monster attackMonster, Move attackMove) { float pAV = attackMove.getMaxDamage(); float moveSize = attackMove.getSizeAttacker(); float moveSpeed = attackMove.getSpeed(); float moveStrength = attackMove.getStrength(); moveSize = moveSize / 100; moveSpeed = moveSpeed / 100; moveStrength = moveStrength / 100; int creatureSpeed = attackMonster.getSpeed(); int creatureStrength = attackMonster.getStrength(); int creatureSize = attackMonster.getSize(); moveSize = moveSize * creatureSize; moveSpeed = moveSpeed * creatureSpeed; moveStrength = moveStrength * creatureStrength; //Console.Write("move size " + moveSize + "\n"); //Console.Write("move speed " + moveSpeed + "\n"); //Console.Write("move Strength " + moveStrength + "\n"); float total = moveSize + moveSpeed + moveStrength; float effectivnessDecimal = total / 100; //Console.Write("move max damage @ 100% effecency " + pAV + "\n"); // Console.Write("effectivness deceimal= " + effectivnessDecimal + "\n"); pAV = pAV * effectivnessDecimal; // Console.Write("max damage after applied (defense still to be calculated) " + pAV + "\n"); float levelMod = attackMonster.getLevel(); levelMod = levelMod / 100; // Console.Write(" level mod attacker " + levelMod + "\n"); pAV = pAV * levelMod; // Console.Write(" final pAV w/ level consider " + pAV + "\n"); // Console.Write("\n"); return pAV; }
public Move getMoveFromConsole(List<Move> moveList,Monster attackMonster) { for (int b = 0; b < moveList.Count; b++) { Move moveChoice = new Move(); moveChoice = moveList.ElementAt(b); float pAv= principalAttackValue(attackMonster, moveChoice); pAv = pAv / attackMonster.getLevel(); int a = b; a += 1; Console.Write("Name: " + moveList.ElementAt(b).getName() + ", Choice: " + a + ", Type: " + moveList.ElementAt(b).getType() +", Perfect Hit: "+pAv + "\n"); } string tempMove = Console.ReadLine(); int tempMoveInt = Convert.ToInt32(tempMove); tempMoveInt = tempMoveInt - 1; Console.Write("Move chosen is: " + moveList.ElementAt(tempMoveInt).getName() + "\n"); Console.Write("\n"); return moveList.ElementAt(tempMoveInt); }