public void BeginBattle(EncounterSet encounter, Sprite backgroundSprite = null, bool playAnimation = false) { _encounterSet = encounter; PlayerController.Instance.PauseGame(); if (backgroundSprite == null) { backgroundSprite = GetPlayerGroundSprite(); } battleCanvas = Instantiate(BattleCanvasPrefab).GetComponent <BattleCanvas>(); battleCanvas.SetupBattleground(backgroundSprite); Party = battleCanvas.SetupParty(PlayerController.Instance.Party); Enemies = battleCanvas.SetupMonsters(encounter); Party.ForEach((partyMember) => { partyMember.UpdateAnimator(); }); var bgm = encounter.bgmOverride != null ? encounter.bgmOverride : MapSettings.Instance.BattleBgm; MapSettings.Instance.PauseBgm(); battleCanvas.StartBattleMusic(bgm); Battle = Task.Run(BattleLoop, CancelBattle.Token); }