/// <summary> /// キャラクターの死亡による離脱処理をおこないます /// </summary> /// <param name="character"> 死亡したキャラクター </param> public void deadCharacter(IBattleable character) { if (!isBattleing) { throw new InvalidOperationException("battle isn't started"); } if (character is Enemy) { this.expSum += ((Enemy)character).getGiveExp(); } removeBalFromJoinedCharacter(character); character.death(); if (isContinuingBattle()) { finishBattle(); } else { var keys = joinedManager.Keys; foreach (long id in keys) { IBattleTaskManager taskManager = joinedManager [id]; taskManager.deleteTaskFromTarget(character); } } }