Exemplo n.º 1
0
 public void SetShellingData(HougekiModel model)
 {
     _iList       = getAnimation(model.AttackType);
     _clsAttacker = model.Attacker;
     setShipsTexture(model.Attacker);
     setSlotItems(model.GetSlotitems());
 }
        public void SetObservedShelling(HougekiModel model)
        {
            this._clsAttacker = model.Attacker;
            Texture2D shipTexture = KCV.Battle.Utils.ShipUtils.LoadTexture(model.Attacker);
            Vector3   offs        = KCV.Battle.Utils.ShipUtils.GetShipOffsPos(model.Attacker, model.Attacker.DamagedFlg, MstShipGraphColumn.CutIn);

            this._listShipTextures.ForEach(delegate(UITexture x)
            {
                x.mainTexture = shipTexture;
                x.MakePixelPerfect();
                x.get_transform().set_localPosition(offs);
            });
            List <SlotitemModel_Battle> list = new List <SlotitemModel_Battle>(model.GetSlotitems());

            this._listSlotLabels.get_Item(0).text = list.get_Item(1).Name;
            this._listSlotLabels.get_Item(1).text = list.get_Item(2).Name;
            this._uiAircraft.mainTexture          = KCV.Battle.Utils.SlotItemUtils.LoadUniDirTexture(list.get_Item(0));
            this._uiAircraft.localSize            = ResourceManager.SLOTITEM_TEXTURE_SIZE.get_Item(6);
            this._listHexBtns.get_Item(0).SetSlotItem(list.get_Item(1));
            this._listHexBtns.get_Item(1).SetSlotItem(list.get_Item(2));
            Color col = (!this._clsAttacker.IsFriend()) ? new Color(1f, 0f, 0f, 0.50196f) : new Color(0f, 0.31875f, 1f, 0.50196f);

            this._uiTelopOverlay.color = col;
            this._listOverlays.ForEach(delegate(UITexture x)
            {
                x.color = col;
            });
        }
Exemplo n.º 3
0
        public void SetObservedShelling(HougekiModel model)
        {
            _clsAttacker = model.Attacker;
            Texture2D shipTexture = KCV.Battle.Utils.ShipUtils.LoadTexture(model.Attacker);
            Vector3   offs        = KCV.Battle.Utils.ShipUtils.GetShipOffsPos(model.Attacker, model.Attacker.DamagedFlg, MstShipGraphColumn.CutIn);

            _listShipTextures.ForEach(delegate(UITexture x)
            {
                x.mainTexture = shipTexture;
                x.MakePixelPerfect();
                x.transform.localPosition = offs;
            });
            List <SlotitemModel_Battle> list = new List <SlotitemModel_Battle>(model.GetSlotitems());

            _listSlotLabels[0].text = list[1].Name;
            _listSlotLabels[1].text = list[2].Name;
            _uiAircraft.mainTexture = KCV.Battle.Utils.SlotItemUtils.LoadUniDirTexture(list[0]);
            _uiAircraft.localSize   = ResourceManager.SLOTITEM_TEXTURE_SIZE[6];
            _listHexBtns[0].SetSlotItem(list[1]);
            _listHexBtns[1].SetSlotItem(list[2]);
            Color col = (!_clsAttacker.IsFriend()) ? new Color(1f, 0f, 0f, 0.50196f) : new Color(0f, 51f / 160f, 1f, 0.50196f);

            _uiTelopOverlay.color = col;
            _listOverlays.ForEach(delegate(UITexture x)
            {
                x.color = col;
            });
        }
Exemplo n.º 4
0
        public virtual void PlayAttack(HougekiModel model, int nCurrentShellingCnt, bool isNextAttack, bool isSkipAttack, Action callback)
        {
            if (model == null)
            {
                Dlg.Call(ref callback);
            }
            BattleTaskManager.GetTorpedoHpGauges().Hide();
            ObserverActionQueue observerAction = BattleTaskManager.GetObserverAction();

            observerAction.Executions();
            this.hougekiModel   = model;
            this._actOnFinished = callback;
            this._isNextAttack  = isNextAttack;
            this._isSkipAttack  = isSkipAttack;
            this.SetDirectionSubjects(this.hougekiModel);
            this._nCurrentAttackCnt = nCurrentShellingCnt;
            BattleShips battleShips = BattleTaskManager.GetBattleShips();

            battleShips.SetStandingPosition(StandingPositionType.OneRow);
            battleShips.SetLayer(Generics.Layers.ShipGirl);
            BattleField battleField = BattleTaskManager.GetBattleField();

            battleField.ResetFleetAnchorPosition();
            this.CorFleetAnchorDifPosition();
            BattleCameras battleCameras = BattleTaskManager.GetBattleCameras();

            battleCameras.SetVerticalSplitCameras(false);
            BattleShips battleShips2 = BattleTaskManager.GetBattleShips();

            battleShips2.SetBollboardTarget(true, battleCameras.fieldCameras.get_Item(0).get_transform());
            battleShips2.SetBollboardTarget(false, battleCameras.fieldCameras.get_Item(1).get_transform());
            battleShips2.SetTorpedoSalvoWakeAngle(false);
            BattleCutInEffectCamera cutInEffectCamera = BattleTaskManager.GetBattleCameras().cutInEffectCamera;
            UITexture component = cutInEffectCamera.get_transform().FindChild("TorpedoLine/OverlayLine").GetComponent <UITexture>();

            if (component != null)
            {
                component.alpha = 0f;
            }
            BattleFieldCamera battleFieldCamera = battleCameras.fieldCameras.get_Item(0);

            battleFieldCamera.clearFlags  = 1;
            battleFieldCamera.cullingMask = BattleTaskManager.GetBattleCameras().GetDefaultLayers();
            battleFieldCamera.eyePosition = this.CalcAttackerCamStartPos;
            battleCameras.SwitchMainCamera(FleetType.Friend);
            BattleFieldCamera battleFieldCamera2 = battleCameras.fieldCameras.get_Item(1);

            battleFieldCamera2.eyePosition = new Vector3(0f, 4f, 0f);
            battleFieldCamera2.eyeRotation = Quaternion.get_identity();
            battleFieldCamera2.fieldOfView = 30f;
            this.SetFieldCamera(true, this.CalcCamPos(true, false), this._listBattleShips.get_Item(0).spPointOfGaze);
            this.SetDimCamera(true, battleFieldCamera.get_transform());
            this.subjectShipLayerFmAnD   = Generics.Layers.FocusDim;
            this.subjectStandingPosFmAnD = StandingPositionType.Advance;
            BattleTaskManager.GetPrefabFile().circleHPGauge.get_transform().localScaleZero();
            this._clsState.AddState(new StatementMachine.StatementMachineInitialize(this.InitAttackerFocus), new StatementMachine.StatementMachineUpdate(this.UpdateAttackerFocus));
        }
        public virtual void PlayAttack(HougekiModel model, int nCurrentShellingCnt, bool isNextAttack, bool isSkipAttack, Action callback)
        {
            if (model == null)
            {
                Dlg.Call(ref callback);
            }
            BattleTaskManager.GetTorpedoHpGauges().Hide();
            ObserverActionQueue observerAction = BattleTaskManager.GetObserverAction();

            observerAction.Executions();
            hougekiModel   = model;
            _actOnFinished = callback;
            _isNextAttack  = isNextAttack;
            _isSkipAttack  = isSkipAttack;
            SetDirectionSubjects(hougekiModel);
            _nCurrentAttackCnt = nCurrentShellingCnt;
            BattleShips battleShips = BattleTaskManager.GetBattleShips();

            battleShips.SetStandingPosition(StandingPositionType.OneRow);
            battleShips.SetLayer(Generics.Layers.ShipGirl);
            BattleField battleField = BattleTaskManager.GetBattleField();

            battleField.ResetFleetAnchorPosition();
            CorFleetAnchorDifPosition();
            BattleCameras battleCameras = BattleTaskManager.GetBattleCameras();

            battleCameras.SetVerticalSplitCameras(isSplit: false);
            BattleShips battleShips2 = BattleTaskManager.GetBattleShips();

            battleShips2.SetBollboardTarget(isFriend: true, battleCameras.fieldCameras[0].transform);
            battleShips2.SetBollboardTarget(isFriend: false, battleCameras.fieldCameras[1].transform);
            battleShips2.SetTorpedoSalvoWakeAngle(isSet: false);
            BattleCutInEffectCamera cutInEffectCamera = BattleTaskManager.GetBattleCameras().cutInEffectCamera;
            UITexture component = ((Component)cutInEffectCamera.transform.FindChild("TorpedoLine/OverlayLine")).GetComponent <UITexture>();

            if (component != null)
            {
                component.alpha = 0f;
            }
            BattleFieldCamera battleFieldCamera = battleCameras.fieldCameras[0];

            battleFieldCamera.clearFlags  = CameraClearFlags.Skybox;
            battleFieldCamera.cullingMask = BattleTaskManager.GetBattleCameras().GetDefaultLayers();
            battleFieldCamera.eyePosition = CalcAttackerCamStartPos;
            battleCameras.SwitchMainCamera(FleetType.Friend);
            BattleFieldCamera battleFieldCamera2 = battleCameras.fieldCameras[1];

            battleFieldCamera2.eyePosition = new Vector3(0f, 4f, 0f);
            battleFieldCamera2.eyeRotation = Quaternion.identity;
            battleFieldCamera2.fieldOfView = 30f;
            SetFieldCamera(isAttacker: true, CalcCamPos(isAttacker: true, isPointOfGaze: false), _listBattleShips[0].spPointOfGaze);
            SetDimCamera(isAttacker: true, battleFieldCamera.transform);
            subjectShipLayerFmAnD   = Generics.Layers.FocusDim;
            subjectStandingPosFmAnD = StandingPositionType.Advance;
            BattleTaskManager.GetPrefabFile().circleHPGauge.transform.localScaleZero();
            _clsState.AddState(InitAttackerFocus, UpdateAttackerFocus);
        }
Exemplo n.º 6
0
 public virtual void Clear()
 {
     this._clsHougekiModel = null;
     this._actOnFinished   = null;
     if (this._listBattleShips != null)
     {
         this._listBattleShips.Clear();
     }
     if (this._clsState != null)
     {
         this._clsState.Clear();
     }
 }
Exemplo n.º 7
0
 public BaseProdAttackShelling()
 {
     this._nCurrentAttackCnt = 0;
     this._isFinished        = false;
     this._isPlaying         = false;
     this._clsHougekiModel   = null;
     this._listBattleShips   = new List <UIBattleShip>();
     this._dicAttackFleet    = new Dictionary <FleetType, bool>();
     this._dicAttackFleet.Add(FleetType.Friend, false);
     this._dicAttackFleet.Add(FleetType.Enemy, false);
     this._clsState      = new StatementMachine();
     this._actOnFinished = null;
 }
Exemplo n.º 8
0
        protected bool InitShelling(object data)
        {
            HougekiModel nextData = _clsNowHougekiList.GetNextData();

            if (nextData == null)
            {
                Dlg.Call(ref _actOnFleetAction);
            }
            else
            {
                _prodShellingAttack.Play(nextData, _nCurrentShellingCnt, isNextAttack, null);
                BattleTaskManager.GetPrefabFile().DisposeProdCommandBuffer();
            }
            return(false);
        }
Exemplo n.º 9
0
        protected virtual void SetDirectionSubjects(HougekiModel model)
        {
            BattleShips battleShips = BattleTaskManager.GetBattleShips();

            this._listBattleShips.Add((!model.Attacker.IsFriend()) ? battleShips.dicEnemyBattleShips.get_Item(model.Attacker.Index) : battleShips.dicFriendBattleShips.get_Item(model.Attacker.Index));
            if (this.isProtect)
            {
                this._listBattleShips.Add((!model.Defender.IsFriend()) ? battleShips.flagShipEnemy : battleShips.flagShipFriend);
                this._listBattleShips.Add((!model.Defender.IsFriend()) ? battleShips.dicEnemyBattleShips.get_Item(model.Defender.Index) : battleShips.dicFriendBattleShips.get_Item(model.Defender.Index));
            }
            else
            {
                this._listBattleShips.Add((!model.Defender.IsFriend()) ? battleShips.dicEnemyBattleShips.get_Item(model.Defender.Index) : battleShips.dicFriendBattleShips.get_Item(model.Defender.Index));
            }
            this.subjectStandingPosFmAnD = StandingPositionType.Advance;
        }
Exemplo n.º 10
0
        private bool InitNightShelling(object data)
        {
            HougekiModel nextData = _clsHougekiList.GetNextData();

            if (nextData == null)
            {
                OnNightShellingFinished();
            }
            else
            {
                _prodShellingAttack.Play(nextData, _nCurrentShellingCnt, isNextAttack, null);
                if (_prodNightRadarDeployment != null)
                {
                    _prodNightRadarDeployment.RadarObjectConvergence();
                }
                Mem.DelComponentSafe(ref _prodNightRadarDeployment);
            }
            return(false);
        }
Exemplo n.º 11
0
 public override void PlayAttack(HougekiModel model, int nCurrentShellingCnt, bool isNextAttack, bool isSkipAttack, Action callback)
 {
     base.PlayAttack(model, nCurrentShellingCnt, isNextAttack, isSkipAttack, callback);
     OnFinished();
 }
        public void Play(HougekiModel hougeki, int nCurrentShellingCnt, bool isNextAttack, Action onFinished)
        {
            if (hougeki == null)
            {
                this.OnShellingFinished();
            }
            this._clsHougekiModel = hougeki;
            this._isFinished      = false;
            this._isPlaying       = true;
            this._actCallback     = onFinished;
            switch (hougeki.AttackType)
            {
            case BattleAttackKind.Normal:
                if (this._clsHougekiModel.GetRocketEffenct())
                {
                    if (this._prodAntiGroundAttack == null)
                    {
                        this._prodAntiGroundAttack = new ProdAntiGroundAttack();
                    }
                    this._clsStatement.AddState(new DelProdShellingAttack(this._prodAntiGroundAttack.PlayAttack), new DelProdShellingUpdate(this._prodAntiGroundAttack.Update), new DelProdShellingClear(this._prodAntiGroundAttack.Clear));
                }
                else
                {
                    if (this._prodNormalAttack == null)
                    {
                        this._prodNormalAttack = new ProdNormalAttack();
                    }
                    this._clsStatement.AddState(new DelProdShellingAttack(this._prodNormalAttack.PlayAttack), new DelProdShellingUpdate(this._prodNormalAttack.Update), new DelProdShellingClear(this._prodNormalAttack.Clear));
                }
                break;

            case BattleAttackKind.Bakurai:
                if (this._prodDepthChargeAttack == null)
                {
                    this._prodDepthChargeAttack = new ProdDepthChargeAttack();
                }
                this._clsStatement.AddState(new DelProdShellingAttack(this._prodDepthChargeAttack.PlayAttack), new DelProdShellingUpdate(this._prodDepthChargeAttack.Update), new DelProdShellingClear(this._prodDepthChargeAttack.Clear));
                break;

            case BattleAttackKind.Gyorai:
                if (this._prodTorpedoAttack == null)
                {
                    this._prodTorpedoAttack = new ProdTorpedoAttack();
                }
                this._clsStatement.AddState(new DelProdShellingAttack(this._prodTorpedoAttack.PlayAttack), new DelProdShellingUpdate(this._prodTorpedoAttack.Update), new DelProdShellingClear(this._prodTorpedoAttack.Clear));
                break;

            case BattleAttackKind.AirAttack:
                if (this._prodAircraftAttack == null)
                {
                    this._prodAircraftAttack = new ProdAircraftAttack();
                }
                this._clsStatement.AddState(new DelProdShellingAttack(this._prodAircraftAttack.PlayAttack), new DelProdShellingUpdate(this._prodAircraftAttack.Update), new DelProdShellingClear(this._prodAircraftAttack.Clear));
                break;

            case BattleAttackKind.Laser:
                if (this._prodLaserAttack == null)
                {
                    this._prodLaserAttack = new ProdLaserAttack();
                }
                this._clsStatement.AddState(new DelProdShellingAttack(this._prodLaserAttack.PlayAttack), new DelProdShellingUpdate(this._prodLaserAttack.Update), new DelProdShellingClear(this._prodLaserAttack.Clear));
                break;

            case BattleAttackKind.Renzoku:
                if (this._prodSuccessiveAttack == null)
                {
                    this._prodSuccessiveAttack = new ProdSuccessiveAttack();
                }
                this._clsStatement.AddState(new DelProdShellingAttack(this._prodSuccessiveAttack.PlayAttack), new DelProdShellingUpdate(this._prodSuccessiveAttack.Update), new DelProdShellingClear(this._prodSuccessiveAttack.Clear));
                break;

            case BattleAttackKind.Sp1:
            case BattleAttackKind.Sp2:
            case BattleAttackKind.Sp3:
            case BattleAttackKind.Sp4:
                if (this._prodObservedShellingAttack == null)
                {
                    this._prodObservedShellingAttack = new ProdObservedShellingAttack();
                }
                this._clsStatement.AddState(new DelProdShellingAttack(this._prodObservedShellingAttack.PlayAttack), new DelProdShellingUpdate(this._prodObservedShellingAttack.Update), new DelProdShellingClear(this._prodObservedShellingAttack.Clear));
                break;

            case BattleAttackKind.Syu_Rai:
            case BattleAttackKind.Rai_Rai:
            case BattleAttackKind.Syu_Syu_Fuku:
            case BattleAttackKind.Syu_Syu_Syu:
                if (this._prodTranscendenceAttack == null)
                {
                    this._prodTranscendenceAttack = new ProdTranscendenceAttack();
                }
                this._clsStatement.AddState(new DelProdShellingAttack(this._prodTranscendenceAttack.PlayAttack), new DelProdShellingUpdate(this._prodTranscendenceAttack.Update), new DelProdShellingClear(this._prodTranscendenceAttack.Clear));
                break;
            }
            this._clsStatement.Init(this._clsHougekiModel, nCurrentShellingCnt, isNextAttack, this._dicAttackFleet.get_Item((!this.hougekiModel.Attacker.IsFriend()) ? FleetType.Enemy : FleetType.Friend), new Action(this.OnShellingFinished));
        }
Exemplo n.º 13
0
        public void Play(HougekiModel hougeki, int nCurrentShellingCnt, bool isNextAttack, Action onFinished)
        {
            if (hougeki == null)
            {
                OnShellingFinished();
            }
            _clsHougekiModel = hougeki;
            _isFinished      = false;
            _isPlaying       = true;
            _actCallback     = onFinished;
            switch (hougeki.AttackType)
            {
            case BattleAttackKind.Normal:
                if (_clsHougekiModel.GetRocketEffenct())
                {
                    if (_prodAntiGroundAttack == null)
                    {
                        _prodAntiGroundAttack = new ProdAntiGroundAttack();
                    }
                    Statement             clsStatement5         = _clsStatement;
                    ProdAntiGroundAttack  prodAntiGroundAttack  = _prodAntiGroundAttack;
                    DelProdShellingAttack initdelegate5         = prodAntiGroundAttack.PlayAttack;
                    ProdAntiGroundAttack  prodAntiGroundAttack2 = _prodAntiGroundAttack;
                    DelProdShellingUpdate updatedelegate5       = prodAntiGroundAttack2.Update;
                    ProdAntiGroundAttack  prodAntiGroundAttack3 = _prodAntiGroundAttack;
                    clsStatement5.AddState(initdelegate5, updatedelegate5, prodAntiGroundAttack3.Clear);
                }
                else
                {
                    if (_prodNormalAttack == null)
                    {
                        _prodNormalAttack = new ProdNormalAttack();
                    }
                    Statement             clsStatement6     = _clsStatement;
                    ProdNormalAttack      prodNormalAttack  = _prodNormalAttack;
                    DelProdShellingAttack initdelegate6     = prodNormalAttack.PlayAttack;
                    ProdNormalAttack      prodNormalAttack2 = _prodNormalAttack;
                    DelProdShellingUpdate updatedelegate6   = prodNormalAttack2.Update;
                    ProdNormalAttack      prodNormalAttack3 = _prodNormalAttack;
                    clsStatement6.AddState(initdelegate6, updatedelegate6, prodNormalAttack3.Clear);
                }
                break;

            case BattleAttackKind.Bakurai:
            {
                if (_prodDepthChargeAttack == null)
                {
                    _prodDepthChargeAttack = new ProdDepthChargeAttack();
                }
                Statement             clsStatement9          = _clsStatement;
                ProdDepthChargeAttack prodDepthChargeAttack  = _prodDepthChargeAttack;
                DelProdShellingAttack initdelegate9          = prodDepthChargeAttack.PlayAttack;
                ProdDepthChargeAttack prodDepthChargeAttack2 = _prodDepthChargeAttack;
                DelProdShellingUpdate updatedelegate9        = prodDepthChargeAttack2.Update;
                ProdDepthChargeAttack prodDepthChargeAttack3 = _prodDepthChargeAttack;
                clsStatement9.AddState(initdelegate9, updatedelegate9, prodDepthChargeAttack3.Clear);
                break;
            }

            case BattleAttackKind.Gyorai:
            {
                if (_prodTorpedoAttack == null)
                {
                    _prodTorpedoAttack = new ProdTorpedoAttack();
                }
                Statement             clsStatement7      = _clsStatement;
                ProdTorpedoAttack     prodTorpedoAttack  = _prodTorpedoAttack;
                DelProdShellingAttack initdelegate7      = prodTorpedoAttack.PlayAttack;
                ProdTorpedoAttack     prodTorpedoAttack2 = _prodTorpedoAttack;
                DelProdShellingUpdate updatedelegate7    = prodTorpedoAttack2.Update;
                ProdTorpedoAttack     prodTorpedoAttack3 = _prodTorpedoAttack;
                clsStatement7.AddState(initdelegate7, updatedelegate7, prodTorpedoAttack3.Clear);
                break;
            }

            case BattleAttackKind.AirAttack:
            {
                if (_prodAircraftAttack == null)
                {
                    _prodAircraftAttack = new ProdAircraftAttack();
                }
                Statement             clsStatement3       = _clsStatement;
                ProdAircraftAttack    prodAircraftAttack  = _prodAircraftAttack;
                DelProdShellingAttack initdelegate3       = prodAircraftAttack.PlayAttack;
                ProdAircraftAttack    prodAircraftAttack2 = _prodAircraftAttack;
                DelProdShellingUpdate updatedelegate3     = prodAircraftAttack2.Update;
                ProdAircraftAttack    prodAircraftAttack3 = _prodAircraftAttack;
                clsStatement3.AddState(initdelegate3, updatedelegate3, prodAircraftAttack3.Clear);
                break;
            }

            case BattleAttackKind.Laser:
            {
                if (_prodLaserAttack == null)
                {
                    _prodLaserAttack = new ProdLaserAttack();
                }
                Statement             clsStatement2    = _clsStatement;
                ProdLaserAttack       prodLaserAttack  = _prodLaserAttack;
                DelProdShellingAttack initdelegate2    = ((BaseProdAttackShelling)prodLaserAttack).PlayAttack;
                ProdLaserAttack       prodLaserAttack2 = _prodLaserAttack;
                DelProdShellingUpdate updatedelegate2  = prodLaserAttack2.Update;
                ProdLaserAttack       prodLaserAttack3 = _prodLaserAttack;
                clsStatement2.AddState(initdelegate2, updatedelegate2, prodLaserAttack3.Clear);
                break;
            }

            case BattleAttackKind.Renzoku:
            {
                if (_prodSuccessiveAttack == null)
                {
                    _prodSuccessiveAttack = new ProdSuccessiveAttack();
                }
                Statement             clsStatement8         = _clsStatement;
                ProdSuccessiveAttack  prodSuccessiveAttack  = _prodSuccessiveAttack;
                DelProdShellingAttack initdelegate8         = prodSuccessiveAttack.PlayAttack;
                ProdSuccessiveAttack  prodSuccessiveAttack2 = _prodSuccessiveAttack;
                DelProdShellingUpdate updatedelegate8       = prodSuccessiveAttack2.Update;
                ProdSuccessiveAttack  prodSuccessiveAttack3 = _prodSuccessiveAttack;
                clsStatement8.AddState(initdelegate8, updatedelegate8, prodSuccessiveAttack3.Clear);
                break;
            }

            case BattleAttackKind.Sp1:
            case BattleAttackKind.Sp2:
            case BattleAttackKind.Sp3:
            case BattleAttackKind.Sp4:
            {
                if (_prodObservedShellingAttack == null)
                {
                    _prodObservedShellingAttack = new ProdObservedShellingAttack();
                }
                Statement clsStatement4 = _clsStatement;
                ProdObservedShellingAttack prodObservedShellingAttack = _prodObservedShellingAttack;
                DelProdShellingAttack      initdelegate4 = prodObservedShellingAttack.PlayAttack;
                ProdObservedShellingAttack prodObservedShellingAttack2 = _prodObservedShellingAttack;
                DelProdShellingUpdate      updatedelegate4             = prodObservedShellingAttack2.Update;
                ProdObservedShellingAttack prodObservedShellingAttack3 = _prodObservedShellingAttack;
                clsStatement4.AddState(initdelegate4, updatedelegate4, prodObservedShellingAttack3.Clear);
                break;
            }

            case BattleAttackKind.Syu_Rai:
            case BattleAttackKind.Rai_Rai:
            case BattleAttackKind.Syu_Syu_Fuku:
            case BattleAttackKind.Syu_Syu_Syu:
            {
                if (_prodTranscendenceAttack == null)
                {
                    _prodTranscendenceAttack = new ProdTranscendenceAttack();
                }
                Statement clsStatement = _clsStatement;
                ProdTranscendenceAttack prodTranscendenceAttack  = _prodTranscendenceAttack;
                DelProdShellingAttack   initdelegate             = prodTranscendenceAttack.PlayAttack;
                ProdTranscendenceAttack prodTranscendenceAttack2 = _prodTranscendenceAttack;
                DelProdShellingUpdate   updatedelegate           = prodTranscendenceAttack2.Update;
                ProdTranscendenceAttack prodTranscendenceAttack3 = _prodTranscendenceAttack;
                clsStatement.AddState(initdelegate, updatedelegate, prodTranscendenceAttack3.Clear);
                break;
            }
            }
            _clsStatement.Init(_clsHougekiModel, nCurrentShellingCnt, isNextAttack, _dicAttackFleet[(!hougekiModel.Attacker.IsFriend()) ? FleetType.Enemy : FleetType.Friend], OnShellingFinished);
        }