Example #1
0
    // Make a function call (static class) or create a new Battle object?
    // How to know which enemies to spawn in each area?
    public void StartBattle(Player player, CharacterBase[] playerParty,
                            OverworldEnemy oe)
    {
        // NOTE: probably temporary
        foreach (EnemyBase enmy in oe.enemyParty)
        {
            enmy.gameObject.SetActive(true);
        }
        foreach (CharacterBase chr in playerParty)
        {
            chr.gameObject.SetActive(true);
        }

        // TODO make this AsyncLoad [1]
        SceneManager.LoadScene("Assets/Scenes/Battle.unity");

        this.enemyWhoStartedBattle = oe;
        this.playerParty           = playerParty;
        this.enemies = oe.enemyParty;
        this.p       = player;

        this.p.pc = new MenuController(mm);
        // NOTE: cant deactivate player cause the controller script needs to run
        this.p.GetComponent <SpriteRenderer>().enabled = false;

        currentState = BattleState.START;

        // TODO: make a smooth scene transition
        // StartCoroutine(LoadBattleScene()); // FIXME: do we need async load? see [1]
    }
	// Use this for initialization
	void Start () 
	{
		self = gameObject.GetComponent<OverworldEnemy>();

		shootTimer = shootMaxTimer;

		alertFader.animateFade = true;
	}
Example #3
0
    public void EndBattle()
    {
        Debug.Log("[MSG]: Ending battle.");

        // NOTE: probably temporary
        foreach (CharacterBase chr in playerParty)
        {
            chr.gameObject.SetActive(false);
        }

        enemyWhoStartedBattle.gameObject.SetActive(false);
        GameObject.Destroy(enemyWhoStartedBattle);
        enemyWhoStartedBattle = null;

        p.pc = new OverworldController(p);

        this.p.GetComponent <SpriteRenderer>().enabled = true;
        GameObject.Destroy(this.currentPortrait);
        this.currentPortrait = null;

        SceneManager.LoadScene("Assets/Scenes/Prototype.unity");
    }
Example #4
0
    void OnCollisionEnter2D(Collision2D other)
    {
        Debug.Log("[MSG]: " + this + " collided with " + other.gameObject);
        if (other.gameObject.tag.Equals("OverworldEnemy"))
        {
            OverworldEnemy enemy = other.gameObject
                                   .GetComponent <OverworldEnemy>();

            // If enemy has already been battled before just return
            if (enemy.battled)
            {
                return;
            }
            enemy.battled = true;
            other.gameObject.GetComponent <SpriteRenderer>().enabled = false;

            // Should transition scene here or in battle script?
            // TODO: Create a scene manager to transition scenes
            // sceneManager.transition(SceneManager.BATTLE_SCENE)
            Debug.Log("[MSG]: Touched an enemy! Starting battle...");
            bm.StartBattle(this, party, enemy);
        }
    }