Esempio n. 1
0
        private void _setExplotion()
        {
            FleetType fleetType = (_attackState != AttackState.FriendExplosion) ? FleetType.Enemy : FleetType.Friend;
            int       num       = (fleetType != 0) ? _fBattleship.Count : _eBattleship.Count;

            Vector3[] array = _setHpPosition(fleetType, num);
            for (int i = 0; i < num; i++)
            {
                _battleHpGauges.Show(i, array[i], new Vector3(0.35f, 0.35f, 0.35f), isScale: false);
                BattleHPGauges battleHpGauges = _battleHpGauges;
                int            num2           = i;
                Vector3        damagePosition = _battleHpGauges.GetDamagePosition(i);
                battleHpGauges.SetDamagePosition(num2, new Vector3(damagePosition.x, -525f, 0f));
                _battleHpGauges.PlayHp(i, null);
            }
            _setShinking(fleetType);
            _createExplotion((fleetType == FleetType.Friend) ? true : false);
            if (_listExplosion != null)
            {
                KCV.Utils.SoundUtils.PlaySE((_listExplosion.Count <= 1) ? SEFIleInfos.SE_930 : SEFIleInfos.SE_931);
                Observable.FromCoroutine(_explosionPlay).Subscribe(delegate
                {
                });
            }
            foreach (ParticleSystem item in _listMiss)
            {
                item.Play();
            }
            _playSE(fleetType);
        }
        private void _hitExplosion()
        {
            BattleTaskManager.GetBattleField().AlterWaveDirection(FleetType.Friend);
            BattleTaskManager.GetBattleCameras().cutInCamera.enabled = true;
            if (_isAttack)
            {
                _fieldCam.cameraShake.ShakeRot(null);
            }
            for (int i = 0; i < _defenders.Count; i++)
            {
                DamageModel attackDamage = _clsShelling.GetAttackDamage(_defenders[i].TmpId);
                _battleHpGauges.Show(i, _eHpPos[i], new Vector3(0.35f, 0.35f, 0.35f), isScale: false);
                BattleHPGauges battleHpGauges = _battleHpGauges;
                int            num            = i;
                Vector3        damagePosition = _battleHpGauges.GetDamagePosition(i);
                battleHpGauges.SetDamagePosition(num, new Vector3(damagePosition.x, -525f, 0f));
                _battleHpGauges.PlayHp(i, null);
                if (attackDamage.GetHitState() == BattleHitStatus.Miss)
                {
                    _battleHpGauges.PlayMiss(i);
                }
                else if (attackDamage.GetHitState() == BattleHitStatus.Clitical)
                {
                    _battleHpGauges.PlayCritical(i);
                }
            }
            _setShinking();
            int eCnt = (_listExplosion != null) ? _listExplosion.Count : 0;
            int mCnt = (_listMiss != null) ? _listMiss.Count : 0;

            Observable.FromCoroutine(_playExplosion).Subscribe(delegate
            {
                if (eCnt >= mCnt)
                {
                    _isEx = true;
                }
            });
            Observable.FromCoroutine(_playMissSplash).Subscribe(delegate
            {
                if (mCnt >= eCnt)
                {
                    _isEx = true;
                }
            });
            if (_listExplosion == null && _listMiss == null)
            {
                _isEx = true;
            }
            if ((_listExplosion != null) & (_listExplosion.Count > 0))
            {
                KCV.Utils.SoundUtils.PlaySE(SEFIleInfos.Explode);
            }
            if ((_listMiss != null) & (_listMiss.Count > 0))
            {
                KCV.Utils.SoundUtils.PlaySE(SEFIleInfos.BattleTorpedo);
            }
        }
 private void _createExplotion()
 {
     _listBombCritical = new List <bool>();
     _listExplosion    = new List <ParticleSystem>();
     if (_attackState == AttackState.FriendExplosion)
     {
         for (int i = 0; i < _eBattleship.Count; i++)
         {
             _battleHpGauges.Show(i, _eHpPos[i], new Vector3(0.35f, 0.35f, 0.35f), isScale: false);
             BattleHPGauges battleHpGauges = _battleHpGauges;
             int            num            = i;
             Vector3        damagePosition = _battleHpGauges.GetDamagePosition(i);
             battleHpGauges.SetDamagePosition(num, new Vector3(damagePosition.x, -525f, 0f));
             _battleHpGauges.PlayHp(i, null);
         }
         _setShinking(FleetType.Friend);
         Vector3 position3 = default(Vector3);
         for (int j = 0; j < _fBakuraiModel.Length; j++)
         {
             if (_fBakuraiModel[j] == null || !_fBakuraiModel[j].IsBakugeki())
             {
                 continue;
             }
             ShipModel_Battle defender = _fBakuraiModel[j].Defender;
             int       num2            = (!_fBakuraiModel[j].GetProtectEffect()) ? defender.Index : defender.Index;
             bool      flag            = (_fBakuraiModel[j].GetHitState() == BattleHitStatus.Miss) ? true : false;
             FleetType fleetType       = FleetType.Enemy;
             _dicHitType[num2] = setHitType(fleetType, num2, flag, HitType.Bomb);
             HitType hitType = _dicHitType[num2];
             if (!flag)
             {
                 if (hitType == HitType.Bomb)
                 {
                     Vector3 position  = _eBattleship[num2].transform.position;
                     float   x         = position.x;
                     Vector3 position2 = _eBattleship[num2].transform.position;
                     position3 = new Vector3(x, 3f, position2.z);
                     ParticleSystem val = (!((UnityEngine.Object)BattleTaskManager.GetParticleFile().explosionAerial == null)) ? UnityEngine.Object.Instantiate <ParticleSystem>(BattleTaskManager.GetParticleFile().explosionAerial) : BattleTaskManager.GetParticleFile().explosionAerial;
                     ((Component)val).SetActive(isActive: true);
                     ((Component)val).transform.parent   = BattleTaskManager.GetBattleField().transform;
                     ((Component)val).transform.position = position3;
                     _listExplosion.Add(val);
                     _listBombCritical.Add((_fBakuraiModel[j].GetHitState() == BattleHitStatus.Clitical) ? true : false);
                 }
             }
             else if (hitType == HitType.Miss)
             {
                 Vector3 position4 = _eBattleship[num2].transform.position;
                 float   fMin      = position4.x - 0.5f;
                 Vector3 position5 = _eBattleship[num2].transform.position;
                 float   fLim      = XorRandom.GetFLim(fMin, position5.x + 0.5f);
                 Vector3 position6 = _eBattleship[num2].transform.position;
                 float   fMin2     = position6.z - 1f;
                 Vector3 position7 = _eBattleship[num2].transform.position;
                 float   fLim2     = XorRandom.GetFLim(fMin2, position7.z + 1f);
                 float   num3      = fLim;
                 Vector3 position8 = _eBattleship[num2].transform.position;
                 fLim = ((!(num3 >= position8.x)) ? (fLim - 0.5f) : (fLim + 0.5f));
                 float   num4      = fLim2;
                 Vector3 position9 = _eBattleship[num2].transform.position;
                 fLim2 = ((!(num4 >= position9.z)) ? (fLim2 - 0.5f) : (fLim2 + 0.5f));
                 ParticleSystem val2 = (!((UnityEngine.Object)BattleTaskManager.GetParticleFile().splashMiss == null)) ? UnityEngine.Object.Instantiate <ParticleSystem>(BattleTaskManager.GetParticleFile().splashMiss) : BattleTaskManager.GetParticleFile().splashMiss;
                 ((Component)val2).SetActive(isActive: true);
                 ((Component)val2).transform.parent   = BattleTaskManager.GetBattleField().transform;
                 ((Component)val2).transform.position = new Vector3(fLim, 0f, fLim2);
                 _listMiss.Add(val2);
             }
         }
     }
     if (_listExplosion != null)
     {
         int count = _listExplosion.Count;
     }
     if (_listMiss != null)
     {
         int count2 = _listMiss.Count;
     }
     _isEx = true;
     if (_listExplosion != null)
     {
         KCV.Utils.SoundUtils.PlaySE((_listExplosion.Count <= 1) ? SEFIleInfos.SE_930 : SEFIleInfos.SE_931);
     }
     Observable.FromCoroutine(_explosionPlay).Subscribe(delegate
     {
         _isEx = true;
     });
     Observable.FromCoroutine(_missSplashPlay).Subscribe(delegate
     {
         _isMiss = true;
     });
     _playSE(FleetType.Friend);
 }