Exemplo n.º 1
0
    protected override void OnDeath()
    {
        deathCount++;

        foreach (EnemyProtoEx3 proto in protos)
        {
            proto.IsInBattle = false;
        }

        if (deathCount <= 4)
        {
            for (int i = 0; i < 2; i++)
            {
                EmilGhost ghost       = Instantiate(ghostPrefab, transform.position, Quaternion.identity);
                bool      newPosition = true;
                Vector3   position    = Vector3.zero;
                while (newPosition)
                {
                    newPosition = false;
                    position    = new Vector3(Random.Range(-11f, 11f), 0f, Random.Range(-8f, 8f));
                    foreach (EnemyProtoEx3 proto in protos)
                    {
                        if ((position - proto.transform.position).magnitude <= MapEx3.GRID_SIZE)
                        {
                            newPosition = true;
                        }
                    }
                }
                ghost.rebirthPosition = position;
                ghost.rebirthTime     = 3f + 0.5f * i;
            }
        }
    }
Exemplo n.º 2
0
    void Start()
    {
        IsSceneOver           = false;
        GameManager.gameScene = GameScene.Ex3;
        HUDManager.instance.SetCamera(Camera.main);
        PauseMenu.instance.SetCamera(GameCamera.UI);

        Player.IsArmed   = true;
        Player.IsMovable = true;

        Curtain.instance.ChangeColor(2f, Curtain.black, Curtain.black_clear);

        emils = new List <EnemyBossEx3>();

        if (isFinalEntered)
        {
            StartCoroutine(FinalPhase());
        }
        else if (isMainLoppEntered)
        {
            for (int i = 0; i < 9; i++)
            {
                bool    newPosition = true;
                Vector3 position    = Vector3.zero;
                while (newPosition)
                {
                    newPosition = false;
                    position    = new Vector3(Random.Range(-11f, 11f), 0f, Random.Range(-8f, 8f));
                    if ((position - Player.instance.transform.position).magnitude <= MapEx3.GRID_SIZE)
                    {
                        newPosition = true;
                    }
                    for (int j = 0; j < i; j++)
                    {
                        if ((position - emils[j].transform.position).magnitude <= MapEx3.GRID_SIZE)
                        {
                            newPosition = true;
                        }
                    }
                }
                EnemyBossEx3 emil = EnemyManager.instance.SetEnemy(emilPrefab, position);
                emils.Add(emil);
                emil.id          = i;
                emil.healthPoint = (int)BOSS_HP;
                HUDManager.instance.AddHPBar(BOSS_ID + emil.id, "????", 0f, 0.06f, 0.06f, emil.transform);
                HUDManager.instance.AutoFadeHPBar(BOSS_ID + emil.id, true);
                HUDManager.instance.ShowHPBar(BOSS_ID + emil.id);
            }
            PlatformDown();
            mainLoopCoroutine = StartCoroutine(MainLoop());
            StartCoroutine(CheckBossStates());
        }
        else
        {
            EmilGhost ghost = Instantiate(ghostPrefab, new Vector3(0f, 0f, 3f), Quaternion.identity);
            ghost.rebirthPosition = new Vector3(0f, 0f, 3f);
            ghost.rebirthTime     = 3f;
            StartCoroutine(PrePhase());
        }
    }