예제 #1
0
        /// <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);
                }
            }
        }