public MoveLog GetPhysicalDamage(UserChar enemy) { MoveLog moveLog = new MoveLog { type = "Damage", current = id, target = enemy.id }; if (GetRandomFloat(1.0F, 100.0F) > evadeChance) { moveLog.damage = (int)(enemy.physicalDamage * (0.9F * enemy.strength + (0.002F * enemy.strength * GetRandomFloat(0.0F, 100.0F)))); Console.WriteLine(GetRandomFloat(1.0F, 100.0F) + "|" + enemy.criticalChance); if (GetRandomFloat(1.0F, 100.0F) < enemy.criticalChance) { Console.WriteLine(moveLog.damage); moveLog.damage = (int)((moveLog.damage * enemy.criticalDamage)); Console.WriteLine(moveLog.damage); moveLog.isCritical = true; } float totalArmor = armor - enemy.armorPenetration; if (totalArmor < 0) { totalArmor = 0; } moveLog.damage = (int)(moveLog.damage * (100 - totalArmor) / 100); health -= moveLog.damage; moveLog.heal = (int)(moveLog.damage * enemy.healthSteal / 100); enemy.health += moveLog.heal; if (moveLog.isCritical) { Console.WriteLine(id + ": critical damage " + moveLog.damage); } else { Console.WriteLine(id + ": damage " + moveLog.damage); } if (moveLog.heal > 0) { Console.WriteLine(enemy.id + ": health steal " + moveLog.heal); } return(moveLog); } else { moveLog.isEvaded = true; Console.WriteLine(id + " evaded."); } return(moveLog); }
public void Perform(int skill, UserChar target, QuickPlaySession session) { switch (skill) { case 1: Skill_1(target, session); break; } }
public UserChar PickRandomEnemy(UserChar current) { if (current.id.Substring(0, 7) == player_1.id) { return(PlayerChars[player_2.mainTeam[random.Next(0, 3)].id]); } else { return(PlayerChars[player_1.mainTeam[random.Next(0, 3)].id]); } }
public MoveLog GetMagicalDamage(UserChar enemy) { MoveLog moveLog = new MoveLog { type = "MagicalDamage", current = enemy.id, target = id }; Console.WriteLine(GetRandomFloat(1.0F, 100.0F)); if (GetRandomFloat(1.0F, 100.0F) > evadeChance) { moveLog.damage = (int)(enemy.magicalDamage * (0.9F * enemy.intelligence + (0.002F * enemy.intelligence * GetRandomFloat(0.0F, 100.0F)))); if (GetRandomFloat(1.0F, 100.0F) < enemy.criticalChance) { moveLog.damage = (int)(moveLog.damage * (float)enemy.criticalDamage); moveLog.isCritical = true; } moveLog.damage = (int)(moveLog.damage * (100 - magicResistance) / 100); health -= moveLog.damage; moveLog.heal = (int)(moveLog.damage * enemy.healthSteal / 100); enemy.health += moveLog.heal; if (moveLog.isCritical) { Console.WriteLine(id + ": critical damage " + moveLog.damage); } else { Console.WriteLine(id + ": damage " + moveLog.damage); } if (moveLog.heal > 0) { Console.WriteLine(enemy.id + ": health steal " + moveLog.heal); } return(moveLog); } else { moveLog.isEvaded = true; Console.WriteLine(id + " evaded."); } return(moveLog); }
// json public static void AddUserChar(string name, UserChar userChar) { string query = string.Format(new CultureInfo("en-US"), "INSERT INTO userchardata(id, name, lvl, power, health, agility, strength, intelligence, potency, tenacity, criticalChance, healthSteal, armor, magicResistance, armorPenetration, evadeChance, speed, healForce, criticalDamage, physicalDamage, magicalDamage) VALUES('{0}','{1}',{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15},{16},{17},{18},{19},{20})", userChar.id, userChar.name, userChar.lvl, userChar.power, userChar.Health, userChar.Agility, userChar.Strength, userChar.Intelligence, userChar.Potency, userChar.Tenacity, userChar.CriticalChance, userChar.HealthSteal, userChar.Armor, userChar.MagicResistance, userChar.ArmorPenetration, userChar.EvadeChance, userChar.Speed, userChar.HealForce, userChar.CriticalDamage, userChar.PhysicalDamage, userChar.MagicalDamage); Console.WriteLine(query); try { MySqlCommand cmd = new MySqlCommand(query, sqlConnection); sqlConnection.Open(); cmd.ExecuteNonQuery(); sqlConnection.Close(); } catch (System.Exception ex) { Console.WriteLine(ex); } }
public virtual MoveLog PureHeal(UserChar teamMate, int heal) { MoveLog moveLog = new MoveLog { type = "PureHeal", current = id, target = teamMate.id }; moveLog.heal = (int)(0.9F * heal + (0.002F * heal * GetRandomFloat(0.0F, 100.0F))); teamMate.health += moveLog.heal; Console.WriteLine(teamMate.id + ": Pure heal " + moveLog.heal); return(moveLog); }
public List <UserChar> PickAllEnemies(UserChar current) { if (current.id.Substring(0, 7) == player_2.id) { return(new List <UserChar> { PlayerChars[player_1.mainTeam[0].id], PlayerChars[player_1.mainTeam[1].id], PlayerChars[player_1.mainTeam[2].id] }); } else { return(new List <UserChar> { PlayerChars[player_2.mainTeam[0].id], PlayerChars[player_2.mainTeam[1].id], PlayerChars[player_2.mainTeam[2].id] }); } }
public UserChar PickRandomTeamMate(UserChar current) { if (current.id.Substring(0, 7) == player_1.id) { UserChar randomTeamMate = PlayerChars[player_1.mainTeam[random.Next(0, 3)].id]; while (randomTeamMate.health == 0) { } return(randomTeamMate); } else { return(PlayerChars[player_2.mainTeam[random.Next(0, 3)].id]); } }
public static UserChar InitializeUserChar(string name, string newUserId) { string query = String.Format("SELECT * FROM basechardata WHERE name = '{0}'", name); Console.WriteLine(query); try { MySqlCommand cmd = new MySqlCommand(query, sqlConnection); sqlConnection.Open(); MySqlDataReader reader = cmd.ExecuteReader(); UserChar uChar = new UserChar(); while (reader.Read()) { uChar.name = (string)reader["name"]; uChar.id = newUserId + "-" + (string)reader["id"]; uChar.lvl = (int)reader["lvl"]; uChar.power = (int)reader["power"]; uChar.Health = (int)reader["health"]; uChar.Agility = (int)reader["agility"]; uChar.Strength = (int)reader["strength"]; uChar.Intelligence = (int)reader["intelligence"]; uChar.Potency = (float)reader["potency"]; uChar.Tenacity = (float)reader["tenacity"]; uChar.CriticalChance = (float)reader["criticalChance"]; uChar.HealthSteal = (float)reader["healthSteal"]; uChar.Armor = (float)reader["armor"]; uChar.MagicResistance = (float)reader["magicResistance"]; uChar.ArmorPenetration = (float)reader["armorPenetration"]; uChar.EvadeChance = (float)reader["evadeChance"]; uChar.Speed = (int)reader["speed"]; uChar.HealForce = (float)reader["healForce"]; uChar.CriticalDamage = (float)reader["criticalDamage"]; uChar.PhysicalDamage = (float)reader["physicalDamage"]; uChar.MagicalDamage = (float)reader["magicalDamage"]; break; } sqlConnection.Close(); AddUserChar(name, uChar); return(uChar); } catch (System.Exception ex) { Console.WriteLine(ex); return(null); } }
public virtual void Skill_3(UserChar target, QuickPlaySession session) { }
public virtual void Skill_1(UserChar target, QuickPlaySession session) { session.moveLogs.Add(target.GetPhysicalDamage(this)); }