文本冒险,敌人的统计数据未存储/更新从一种方法到另一种方法



我在这里有一个系统,该系统随机生成一个敌人角色,其随机特征涉及他们的种族,性别等。当字符串数组阵列选择时,Enemyrace选择了其中一个选项,我有一个if-的块为了修改选择的任何种族的健康,防御和金钱而发表的陈述。

完成后,应该在eneystats((方法的底部显示该信息,但并非所有统计数据显示为0。我在MAIN方法中初始化了开始类中的两个方法。p>你们可以帮助正确显示其统计数据吗?是由于这些方法是无效的事实吗?我还是C#的新手,因此将不胜感激。

类Start (包含MAIM方法(

        // Loading in objects 
        Enemy enemy = new Enemy();
        // Loading in the game
        Console.WriteLine("Press enter to create a new character . . . ");
        string input = Console.ReadLine();
        Console.Clear();
        // Game Loop
        enemy.EnemySpawn();
        enemy.EnemyStats();
        Console.ReadLine();

类敌人

    Random random = new Random();
    // Enemy Base Stats
    public static int enemyHP;
    public static int enemyEP;
    public static int enemyCoins;
    // Enemy Attack
    public static int enemyMelee = 0;
    public static int enemyMagic = 0;
    public static int enemyRange = 0;
    // Enemy Defense
    public static int enemyMeleeDefense = 0;
    public static int enemyMagicDefense = 0;
    public static int enemyRangeDefense = 0;
    public void EnemySpawn()
    {
        string[] enemyGender = { "Male ", "Female " };
        string[] enemyRace = { "Human ", "Elf ", "Dwarf ", "Gnome ", "Halfling ", "Half-Elf ", "Half-Orc " };
        string[] enemyClass = { "Ranger", "Paladin", "Thief", "Mage", "Shaman", "Warlock", "Cleric", "Druid", "Monk", "Bard", "Mercenary", "Merchant" };
        // Determines if class is Melee, Magic, Healer, or Clerk
        int enemyClassChance = random.Next(1, 4);
        if (enemyRace.ToString() == "Human ")
        {
            enemyHP += 100;
            enemyEP += 80;
            enemyCoins += 10;
            enemyMelee += 5;
            enemyMagic += 5;
            enemyRange += 5;
            enemyMeleeDefense += 6;
            enemyMagicDefense += 5;
            enemyRangeDefense += 6;
        }
        else if (enemyRace.ToString() == "Elf ")
        {
            enemyHP += 90;
            enemyEP += 90;
            enemyCoins += 10;
            enemyMelee += 5;
            enemyMagic += 9;
            enemyRange += 8;
            enemyMeleeDefense += 4;
            enemyMagicDefense += 8;
            enemyRangeDefense += 4;
        }
        else if (enemyRace.ToString() == "Dwarf ")
        {
            enemyHP += 125;
            enemyEP += 100;
            enemyCoins += 10;
            enemyMelee += 8;
            enemyMagic += 5;
            enemyRange += 5;
            enemyMeleeDefense += 8;
            enemyMagicDefense += 3;
            enemyRangeDefense += 4;
        }
        else if (enemyRace.ToString() == "Gnome ")
        {
            enemyHP += 95;
            enemyEP += 80;
            enemyCoins += 10;
            enemyMelee += 4;
            enemyMagic += 8;
            enemyRange += 4;
            enemyMeleeDefense += 2;
            enemyMagicDefense += 6;
            enemyRangeDefense += 5;
        }
        else if (enemyRace.ToString() == "Halfling ")
        {
            enemyHP += 80;
            enemyEP += 75;
            enemyCoins += 10;
            enemyMelee += 3;
            enemyMagic += 10;
            enemyRange += 7;
            enemyMeleeDefense += 1;
            enemyMagicDefense += 9;
            enemyRangeDefense += 4;
        }
        else if (enemyRace.ToString() == "Half-Elf ")
        {
            enemyHP += 95;
            enemyEP += 80;
            enemyCoins += 10;
            enemyMelee += 2;
            enemyMagic += 8;
            enemyRange += 8;
            enemyMeleeDefense += 5;
            enemyMagicDefense += 8;
            enemyRangeDefense += 2;
        }
        else if (enemyRace.ToString() == "Half-Orc ")
        {
            enemyHP += 150;
            enemyEP += 125;
            enemyCoins += 10;
            enemyMelee += 10;
            enemyMagic += 1;
            enemyRange += 4;
            enemyMeleeDefense += 10;
            enemyMagicDefense += 1;
            enemyRangeDefense += 5;
        }
        switch (enemyClassChance)
        {
            case 1:
                Console.WriteLine(enemySpawnText[random.Next(0, enemySpawnText.Length)] + enemyGender[random.Next(0, enemyGender.Length)] +
                                  enemyRace[random.Next(0, enemyRace.Length)] + enemyClassMelee[random.Next(0, enemyClassMelee.Length)] + ".");
                break;
            case 2:
                Console.WriteLine(enemySpawnText[random.Next(0, enemySpawnText.Length)] + enemyGender[random.Next(0, enemyGender.Length)] +
                                  enemyRace[random.Next(0, enemyRace.Length)] + enemyClassMagic[random.Next(0, enemyClassMagic.Length)] + ".");
                break;
            case 3:
                Console.WriteLine(enemySpawnText[random.Next(0, enemySpawnText.Length)] + enemyGender[random.Next(0, enemyGender.Length)] +
                                  enemyRace[random.Next(0, enemyRace.Length)] + enemyClassHealer[random.Next(0, enemyClassHealer.Length)] + ".");
                break;
            case 4:
                Console.WriteLine(enemySpawnText[random.Next(0, enemySpawnText.Length)] + enemyGender[random.Next(0, enemyGender.Length)] +
                                  enemyRace[random.Next(0, enemyRace.Length)] + enemyClassClerk[random.Next(0, enemyClassClerk.Length)] + ".");
                break;
        }
    }
    public void EnemyStats()
    {
        Console.WriteLine("##################### ");
        Console.WriteLine("Enemy Statistics: ");
        Console.WriteLine(" ");
        Console.WriteLine("Melee:       {0}", enemyMelee);
        Console.WriteLine("Magic:       {0}", enemyMagic);
        Console.WriteLine("Range:       {0}", enemyRange);
        Console.WriteLine(" ");
        Console.WriteLine("Melee Defense:       {0}", enemyMeleeDefense);
        Console.WriteLine("Magic Defense:       {0}", enemyMagicDefense);
        Console.WriteLine("Range Defense:       {0}", enemyRangeDefense);
        Console.WriteLine("##################### ");
        Console.ReadLine();
    }
}

}

在您的EnemySpawn()方法中而不是:

 if (enemyRace.ToString() == "Human ")

在每个条件下替换(即在if中使用enemyClassChance作为索引如下(

if (enemyRace[enemyClassChance].ToString() == "Human ")

另外,我相信而不是

 int enemyClassChance = random.Next(1, 4);

应该是:

int enemyClassChance = random.Next(1, enemyRace.Length);

相关内容

最新更新