コード例 #1
0
        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);
        }
コード例 #2
0
 public void Perform(int skill, UserChar target, QuickPlaySession session)
 {
     switch (skill)
     {
     case 1:
         Skill_1(target, session);
         break;
     }
 }
コード例 #3
0
 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]);
     }
 }
コード例 #4
0
        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);
        }
コード例 #5
0
        // 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);
            }
        }
コード例 #6
0
        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);
        }
コード例 #7
0
 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]
         });
     }
 }
コード例 #8
0
 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]);
     }
 }
コード例 #9
0
        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);
            }
        }
コード例 #10
0
 public virtual void Skill_3(UserChar target, QuickPlaySession session)
 {
 }
コード例 #11
0
 public virtual void Skill_1(UserChar target, QuickPlaySession session)
 {
     session.moveLogs.Add(target.GetPhysicalDamage(this));
 }