コード例 #1
0
ファイル: Game.cs プロジェクト: NullandKale/7DRL
        private void InintializePrincessAndDragon(bool reset)
        {
            if (!reset)
            {
                princess         = new Drawable();
                princess.texture = 'P';
                princess.color   = ConsoleColor.Magenta;
                princess.tag     = "Princess";
                onUpdate.Add(princess.Update);

                dragon         = new Drawable();
                dragon.color   = ConsoleColor.Red;
                dragon.texture = 'D';
                dragon.tag     = "Enemy";
                dragon.active  = true;
                var enemyAI = new cEnemyAI(player, pcStats, new Point(-1, -1), "Dragon",
                                           215 + (pcStats.level * 5), 35 + (pcStats.level * 2), 10, 8 + (pcStats.level / 10), 1.5, 0.25);
                dragon.AddComponent(enemyAI);
                onUpdate.Add(dragon.Update);
            }
            int flr = Math.Abs(this.floor);

            if (flr % 10 == 0 && flr != 0)
            {
                Point p = Point.GetRandomPointInWorld();
                princess.pos.xPos = p.X;
                princess.pos.yPos = p.Y;

                p = Point.GetRandomPointInWorld();
                dragon.GetComponent <cEnemyAI>().StartingPosition = p;
                dragon.pos.xPos = p.X;
                dragon.pos.yPos = p.Y;
                dragon.active   = true;
            }
            else
            {
                princess.pos.xPos = -1;
                princess.pos.yPos = -1;
                dragon.pos.xPos   = -1;
                dragon.pos.yPos   = -1;
                dragon.active     = false;
            }

            princess.active = true;
        }
コード例 #2
0
ファイル: Game.cs プロジェクト: NullandKale/7DRL
        private void InitializeEnemies(bool reset)
        {
            if (reset)
            {
                for (int i = 0; i < enemyCount - 1; i++)
                {
                    if (onUpdate.Contains(enemy[i].Update))
                    {
                        onUpdate.Remove(enemy[i].Update);
                    }
                }
            }
            enemy   = new Drawable[enemyCount];
            enemyAI = new cEnemyAI[enemyCount];

            for (int i = 0; i < enemyCount; i++)
            {
                enemy[i]       = new Drawable();
                enemy[i].color = ConsoleColor.Red;
                Utils.Point enemyPos = Utils.Point.GetRandomPointInWorldAwayFromPlayer();
                enemy[i].pos.xPos = enemyPos.X;
                enemy[i].pos.yPos = enemyPos.Y;

                var r = rng.NextDouble();
                if (r < 0.25)
                {
                    r = rng.NextDouble();

                    if (r < 0.6 - Math.Max(-0.6, pcStats.level * -0.01))
                    {
                        enemy[i].texture = 'e';
                        enemy[i].tag     = "Enemy";
                        enemy[i].active  = true;
                        enemyAI[i]       = new cEnemyAI(player, pcStats, enemyPos, "Rats",
                                                        40 + (pcStats.level * 2), 10 + pcStats.level, 5, 6 + (pcStats.level / 10), 1.5, 0.10);
                        enemy[i].AddComponent(enemyAI[i]);
                        onUpdate.Add(enemy[i].Update);
                    }
                    else
                    {
                        enemy[i].texture = 'E';
                        enemy[i].tag     = "Enemy";
                        enemy[i].active  = true;
                        enemyAI[i]       = new cEnemyAI(player, pcStats, enemyPos, "Skeleton",
                                                        75 + (pcStats.level * 5), 20 + (pcStats.level * 2), 10, 4 + (pcStats.level / 10), 1.5, 0.25);
                        enemy[i].AddComponent(enemyAI[i]);
                        onUpdate.Add(enemy[i].Update);
                    }
                }
                else
                {
                    r = rng.NextDouble();

                    if (r < 0.6 - Math.Max(-0.6, pcStats.level * -0.01))
                    {
                        enemy[i].texture = 's';
                        enemy[i].tag     = "Enemy";
                        enemy[i].active  = true;
                        enemyAI[i]       = new cEnemyAI(player, pcStats, enemyPos, "Hornet",
                                                        20 + (pcStats.level * 1), 4 + pcStats.level, 1, 6 + (pcStats.level / 10), 3, 0.10);
                        enemy[i].AddComponent(enemyAI[i]);
                        onUpdate.Add(enemy[i].Update);
                    }
                    else
                    {
                        enemy[i].texture = 'S';
                        enemy[i].tag     = "Enemy";
                        enemy[i].active  = true;
                        enemyAI[i]       = new cEnemyAI(player, pcStats, enemyPos, "Archer",
                                                        40 + (pcStats.level * 5), 8 + (pcStats.level * 2), 1, 4 + (pcStats.level / 10), 4.5, 0.25);
                        enemy[i].AddComponent(enemyAI[i]);
                        onUpdate.Add(enemy[i].Update);
                    }
                }
            }
        }