Esempio n. 1
0
        //===============================================================================================[]
        public IDraftScenario WriteScenario(IEnumerable <IStoryAction> storyActions)
        {
            var draftScenario = new DraftScenario();

            storyActions.ForEach(WriteScenarioLine, draftScenario);
            return(draftScenario);
        }
Esempio n. 2
0
 //-------------------------------------------------------------------------------------[]
 private void SetBothRoleAccord(
     DraftScenario draftScenario,
     IStoryAction action)
 {
     SetActiveRoleAccord(draftScenario, action.ActiveActor);
     SetPassiveRoleAccord(draftScenario, action.PassiveActor);
 }
Esempio n. 3
0
        //-------------------------------------------------------------------------------------[]
        private void WriteActiveFighterScenarioLine(
            IStoryAction action,
            DraftScenario draftScenario)
        {
            if (!action.ActiveActor.HasValue())
            {
                return;
            }
            SetActiveRoleAccord(draftScenario, action.ActiveActor);
            SetLastCodeAsBase(draftScenario);
            var piece = string.Empty;

            if (action.ActiveColor == _blueAuraColor)
            {
                piece = GetChooseCharBlueScenario();
            }
            if (action.ActiveColor == _redAuraColor)
            {
                piece = GetChooseCharRedScenario();
            }
            if (!string.IsNullOrEmpty(piece))
            {
                AddPiece(draftScenario, piece);
            }
        }
Esempio n. 4
0
 //-------------------------------------------------------------------------------------[]
 private void AddAttackPiece(
     DraftScenario draftScenario,
     IStoryAction action,
     string piece)
 {
     AddPiece(draftScenario, ConvertAttackScenario(action, piece));
 }
Esempio n. 5
0
 //-------------------------------------------------------------------------------------[]
 private void AddAttackChargePieceForBlue(
     DraftScenario draftScenario,
     IStoryAction action,
     string piece)
 {
     AddPiece(draftScenario, ConvertAttackChargeScenarioForBlue(action, piece));
 }
Esempio n. 6
0
        //-------------------------------------------------------------------------------------[]
        private void WritePowerUpCastingScenarioLine(
            IStoryAction action,
            DraftScenario draftScenario)
        {
            SetBothRoleAccord(draftScenario, action);
            SetLastCodeAsBase(draftScenario);
            var attackView = GetAttackView(action);

            if (action.EquipmentType ==
                Constants.Spells.Lightning)
            {
                AddAttackPiece(draftScenario, action, GetAttackRedPowerUpPiece(action));
                AddAttackBluePiece(draftScenario, action, attackView);
            }
            else
            {
                switch (attackView)
                {
                case AttackView.Death:
                case AttackView.Fatality:
                    AddAttackPiece(draftScenario, action, GetAttackBlueDeathScenario(action));
                    break;

                default:
                    AddAttackPiece(draftScenario, action, GetAttackBlueLiveScenario(action));
                    break;
                }
            }
        }
Esempio n. 7
0
        //===============================================================================================[]
        #endregion



        #region ScenarioLines
        //===============================================================================================[]
        private void WriteAttackScenarioLine(
            IStoryAction action,
            DraftScenario draftScenario)
        {
            SetBothRoleAccord(draftScenario, action);
            SetLastCodeAsBase(draftScenario);
            var attackView = GetAttackView(action);

            switch (attackView)
            {
            case AttackView.Self: {
                AddAttackPiece(draftScenario, action, GetAttackSelfScenario(action));
                break;
            }

            case AttackView.Fatality: {
                AddAttackFatalityRedPiece(draftScenario, action);
                AddAttackBluePiece(draftScenario, action, attackView);
                break;
            }

            default: {
                AddAttackRedPiece(draftScenario, action);
                AddAttackBluePiece(draftScenario, action, attackView);
                break;
            }
            }
        }
Esempio n. 8
0
        //-------------------------------------------------------------------------------------[]
        private void AddPiece(
            DraftScenario draft,
            string piece)
        {
            ResetOldNewCodesDict();
            var textlines = SplitLines(piece);

            textlines.ForEach(AddScenarioLineToDraft, draft);
        }
Esempio n. 9
0
        //-------------------------------------------------------------------------------------[]
        private void AddAttackRedPiece(
            DraftScenario draftScenario,
            IStoryAction action)
        {
            var scenario = GetAttackRedScenario(action);
            var piece    = ConvertHexesToFly(action, scenario);

            AddAttackPiece(draftScenario, action, piece);
        }
Esempio n. 10
0
        //-------------------------------------------------------------------------------------[]
        private void WriteNewActorScenarioLine(
            IStoryAction action,
            DraftScenario draftScenario)
        {
            SetActiveRoleAccord(draftScenario, action.ActiveActor);
            SetLastCodeAsBase(draftScenario);
            var piece = GetNewActorScenario();

            AddPiece(draftScenario, piece);
        }
Esempio n. 11
0
        //-------------------------------------------------------------------------------------[]
        private void WriteTurningScenarioLine(
            IStoryAction action,
            DraftScenario draftScenario)
        {
            SetActiveRoleAccord(draftScenario, action.ActiveActor);
            SetLastCodeAsBase(draftScenario);
            var piece = ConvertTurningScenario(action, GetTurnScenario());

            AddPiece(draftScenario, piece);
        }
Esempio n. 12
0
        //===============================================================================================[]
        #endregion

        //-------------------------------------------------------------------------------------[]
        private void WriteScenarioLine(
            DraftScenario draftScenario,
            IStoryAction action)
        {
            if (!IsValidStoryAction(action))
            {
                return;
            }
            _writeActions[action.Type](action, draftScenario);
        }
Esempio n. 13
0
        //-------------------------------------------------------------------------------------[]
        private void SetLastCodeAsBase(DraftScenario draft)
        {
            var lastCode = draft.GetLastCode();

            if (lastCode != Constants.BaseRecordCode)
            {
                lastCode += ".end";
            }
            _baseCodeAlias = lastCode;
        }
Esempio n. 14
0
        //-------------------------------------------------------------------------------------[]
        private void WriteAttackChargeScenarioLine(
            IStoryAction action,
            DraftScenario draftScenario)
        {
            SetBothRoleAccord(draftScenario, action);
            SetLastCodeAsBase(draftScenario);
            var attackView = GetAttackView(action);

            AddAttackChargePieceForRed(draftScenario, action, GetAttackChargeRedScenario(action));
            AddAttackChargeBluePiece(draftScenario, action, attackView);
        }
Esempio n. 15
0
        //-------------------------------------------------------------------------------------[]
        private string GetNewCode(
            DraftScenario draft,
            string line)
        {
            var oldCode = ParseCode(line);

            if (oldCode == Constants.BaseRecordCode)
            {
                return(Constants.ParsingError);
            }
            var newCode = GenerateNewCode(draft);

            _oldNewCodesAccord[oldCode] = newCode;
            return(newCode);
        }
Esempio n. 16
0
        //-------------------------------------------------------------------------------------[]
        private void AddScenarioLineToDraft(
            DraftScenario draft,
            string line)
        {
            var code        = GetNewCode(draft, line);
            var role        = GetRoleWithAction(line);
            var newBaseCode = GetNewBaseCode(line);

            if (IsParsingFailed(code, role, newBaseCode))
            {
                return;
            }

            draft.AddPreparedScenarioLine(code, newBaseCode, role);
        }
Esempio n. 17
0
        //-------------------------------------------------------------------------------------[]
        private void AddAttackChargeBluePiece(
            DraftScenario draftScenario,
            IStoryAction action,
            AttackView attackView)
        {
            switch (attackView)
            {
            case AttackView.Live:
                AddAttackChargePieceForBlue(draftScenario, action, GetAttackChargeBlueLiveScenario(action));
                break;

            case AttackView.Death:
                AddAttackChargePieceForBlue(draftScenario, action, GetAttackChargeBlueDeathScenario(action));
                break;

            case AttackView.Fatality:
                AddAttackChargePieceForBlue(draftScenario, action, GetAttackChargeBlueDeathScenario(action));
                break;

            case AttackView.Block:
                AddAttackChargePieceForBlue(draftScenario, action, GetAttackChargeBlueMissScenario(action));
                break;
            }
        }
Esempio n. 18
0
        //-------------------------------------------------------------------------------------[]
        private void AddAttackBluePiece(
            DraftScenario draftScenario,
            IStoryAction action,
            AttackView attackView)
        {
            switch (attackView)
            {
            case AttackView.Live: {
                var scenario = GetAttackBlueLiveScenario(action);
                var piece    = ConvertHexesToFly(action, scenario);
                AddAttackPiece(draftScenario, action, piece);
            }
            break;

            case AttackView.Death: {
                var scenario = GetAttackBlueDeathScenario(action);
                var piece    = ConvertHexesToFly(action, scenario);
                AddAttackPiece(draftScenario, action, piece);
            }
            break;

            case AttackView.Block: {
                var scenario = GetAttackBlueMissScenario(action);
                var piece    = ConvertHexesToFly(action, scenario);
                AddAttackPiece(draftScenario, action, piece);
            }
            break;

            case AttackView.Fatality: {
                var scenario = GetAttackBlueFatalityScenario(action);
                var piece    = ConvertHexesToFly(action, scenario);
                AddAttackPiece(draftScenario, action, piece);
            }
            break;
            }
        }
Esempio n. 19
0
 //-------------------------------------------------------------------------------------[]
 private static string GenerateNewCode(DraftScenario draft)
 {
     return("C" + draft.ScenarioLinesCount);
 }
Esempio n. 20
0
 //-------------------------------------------------------------------------------------[]
 private void SetPassiveRoleAccord(
     DraftScenario draftScenario,
     ActorId actor)
 {
     _rolesAccord[Roles.Passive] = draftScenario.GetActorRole(actor);
 }