Exemplo n.º 1
0
        private void UpgradeMainSpeed()
        {
            int needCoin = VirusTool.GetUpgradeCoin(VirusPlayerDataAdapter.GetShootSpeed());

            VirusGameDataAdapter.MinusTotalCoin(needCoin);
            VirusPlayerDataAdapter.AddShootSpeed();
        }
    private void SpawnBullet(Vector3 pos, Vector3 euler, float boderX, bool isSector)
    {
        string bulletName = "BulletBlue";
        bool   coin       = VirusPlayerDataAdapter.GetShootCoin();
        bool   power      = VirusPlayerDataAdapter.GetPower();

        if (coin && power)
        {
            bulletName = "BulletCoinPower";
        }
        if (coin && !power)
        {
            bulletName = "BulletCoin";
        }
        if (!coin && power)
        {
            bulletName = "BulletPower";
        }

        int damage = VirusPlayerDataAdapter.GetShootPower();
        var obj    = BulletPools.Instance.Spawn(bulletName);

        obj.transform.position    = pos;
        obj.transform.eulerAngles = euler;
        obj.GetComponent <VirusPlayerBulletMove>().InitiDir(boderX, isSector);
        obj.GetComponent <VirusBulletDamage>().Initi(damage);
    }
Exemplo n.º 3
0
    private void OnUpgradeWeaponEnter()
    {
        int level = VirusPlayerDataAdapter.GetCurWeaponLevel();

        _virusPlayer.InitiViceWeapon(level);
        VirusSoundMrg.Instance.PlaySound(VirusSoundType.UpgradeGun);
    }
Exemplo n.º 4
0
        private void UpgradeMainFire()
        {
            int needCoin = VirusTool.GetUpgradeCoin(VirusPlayerDataAdapter.GetShootLevel());

            VirusGameDataAdapter.MinusTotalCoin(needCoin);
            VirusPlayerDataAdapter.AddShootPower(1);
        }
Exemplo n.º 5
0
    private void AddShootCoinProp(float duration)
    {
        string         str          = VirusPropEnum.ShootCoin.ToString();
        Action <float> updateAction = t =>
        {
            _player.UpdatePropItem(VirusPropEnum.ShootCoin, t, duration);
        };
        Action callAction = () =>
        {
            _shootEffect.InitiShootEffect(ShootEffectEnum.Normal);
            VirusPlayerDataAdapter.SetIsShootCoin(false);
            _player.RemovePropItem(VirusPropEnum.ShootCoin);
            TimerManager.Instance.RemoveTimer(str);
        };
        Action initiAction = () =>
        {
            VirusPlayerDataAdapter.SetIsShootCoin(true);
        };

        Timer timer = new Timer(duration, updateAction, callAction, initiAction, () =>
        {
            _shootEffect.InitiShootEffect(ShootEffectEnum.Coin);
            _player.AddPropItem(VirusPropEnum.ShootCoin);
        });

        TimerManager.Instance.AddTimer(str, timer);
    }
Exemplo n.º 6
0
    private void SpawnBullet(Vector3 pos, Vector3 euler, float boderX, bool isSector)
    {
        int value = VirusPlayerDataAdapter.GetShootPower();
        var obj   = BulletPools.Instance.Spawn("BulletBlue");

        obj.transform.position    = pos;
        obj.transform.eulerAngles = euler;
        obj.GetComponent <VirusPlayerBulletMove>().InitiDir(boderX, isSector);
        obj.GetComponent <VirusBulletDamage>().Initi(value);
    }
 private void Start()
 {
     Invincible = true;
     VirusPlayerDataAdapter.Load();
     _shootAudioSource.Stop();
     _shootEffect.InitiShootEffect(ShootEffectEnum.Normal);
     foreach (GameObject t in _weaponList)
     {
         t.SetActive(false);
     }
     InitiViceWeapon(0);
     _forceViruses = new List <BaseVirus>();
 }
    private void Shoot()
    {
        int   shootNum = VirusPlayerDataAdapter.GetShootNum();
        float originX  = 0;
        int   v        = shootNum % 2;
        int   vv       = shootNum / 2;

        originX = v == 1 ? -vv * _interval : -(vv - 0.5f) * _interval;
        for (int i = 0; i < shootNum; i++)
        {
            float x = originX + i * _interval + _shootPos.position.x;
            SpawnBullet(_shootPos.position, Vector3.zero, x, true);
        }
    }
Exemplo n.º 9
0
        private void RefreshMainPanelUIInfo()
        {
            int fireNeedCoin  = VirusTool.GetUpgradeCoin(VirusPlayerDataAdapter.GetShootLevel());
            int speedNeedCoin = VirusTool.GetUpgradeCoin(VirusPlayerDataAdapter.GetShootSpeed());

            textMainFireLv.text    = $"[Lv{VirusPlayerDataAdapter.GetShootLevel()}]";
            textMainFireValue.text = $"{VirusPlayerDataAdapter.GetShootLevel()*10}";
            textMainFireCoin.text  = $"x{fireNeedCoin}";

            textMainSpeedLv.text    = $"[Lv{VirusPlayerDataAdapter.GetShootSpeed()}]";
            textMainSpeedValue.text = $"{VirusPlayerDataAdapter.GetShootSpeed()*10}";
            textMainSpeedCoin.text  = $"x{speedNeedCoin}";

            btnMainFire.interactable  = CheckCoin(fireNeedCoin);
            btnMainSpeed.interactable = CheckCoin(speedNeedCoin);
        }
Exemplo n.º 10
0
        private void RefreshWeaponPanelUIInfo()
        {
            var lv     = VirusPlayerDataAdapter.GetCurWeaponLevel();
            var weapon = VirusPlayerDataAdapter.GetWeaponData(lv);

            int fireNeedCoin  = VirusTool.GetUpgradeCoin(weapon.fire);
            int speedNeedCoin = VirusTool.GetUpgradeCoin(weapon.speed);

            textWeaponFireLv.text    = $"[Lv{weapon.fire}]";
            textWeaponFireValue.text = $"{weapon.fire*10}";
            textWeaponFireCoin.text  = $"x{fireNeedCoin}";

            textWeaponSpeedLv.text    = $"[Lv{weapon.speed}]";
            textWeaponSpeedValue.text = $"{weapon.speed*10}";
            textWeaponSpeedCoin.text  = $"x{speedNeedCoin}";

            btnWeaponFire.interactable  = CheckCoin(fireNeedCoin);
            btnWeaponSpeed.interactable = CheckCoin(speedNeedCoin);
        }
Exemplo n.º 11
0
    public void InitiViceWeapon(int index)
    {
        if (index >= _weaponList.Count)
        {
            return;
        }

        if (index >= 0)
        {
            var preIndex = VirusPlayerDataAdapter.GetCurWeaponLevel();
            var weapon   = _weaponList[index];
            if (weapon != null)
            {
                weapon.SetActive(true);
                _curViceWeapon = weapon.GetComponent <BaseVirusViceWeapon>();
                if (_curViceWeapon != null)
                {
                    _curViceWeapon.Initi();
                }
            }
            if (index > 0)
            {
                _weaponList[index].GetComponent <ViceWeaponEffect>().Ready();
                Sequence sq = DOTween.Sequence();
                sq.AppendCallback(() =>
                {
                    _weaponList[preIndex].GetComponent <ViceWeaponEffect>().FadeIn();
                });
                sq.AppendInterval(1.0f);
                sq.AppendCallback(() =>
                {
                    _weaponList[index].GetComponent <ViceWeaponEffect>().FadeOut();
                    VirusSoundMrg.Instance.PlaySound(VirusSoundType.Unlock);
                });
                sq.AppendInterval(1.0f);
                sq.AppendCallback(() => { _weaponList[preIndex].SetActive(false); });
            }

            VirusPlayerDataAdapter.SetCurWeaponLevel(index);
        }
    }
Exemplo n.º 12
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.CompareTag("Virus"))
        {
            if (VirusPlayerDataAdapter.GetShootCoin())
            {
                EventManager.TriggerEvent(new UIVirusAddLevelCoinEvent(transform.position));
                VirusGameDataAdapter.AddLevelCoin(1);
            }

            var baseVirus = collision.transform.GetComponent <BaseVirus>();
            if (!baseVirus.IsDeath)
            {
                baseVirus.Injured(_damageValue, true);
            }
            var obj = EffectPools.Instance.Spawn("HitEffect");
            obj.transform.position   = transform.position;
            obj.transform.localScale = Vector3.one * 1.5f;
            BulletPools.Instance.DeSpawn(gameObject);
        }
    }
Exemplo n.º 13
0
    private void AddShootRepulseProp(float duration)
    {
        string         str          = VirusPropEnum.ShootRepulse.ToString();
        Action <float> updateAction = t =>
        {
            _player.UpdatePropItem(VirusPropEnum.ShootRepulse, t, duration);
        };
        Action callAction = () =>
        {
            VirusPlayerDataAdapter.SetIsRepulse(false);
            _player.RemovePropItem(VirusPropEnum.ShootRepulse);
            TimerManager.Instance.RemoveTimer(str);
        };
        Action initiAction = () =>
        {
            VirusPlayerDataAdapter.SetIsRepulse(true);
        };

        Timer timer = new Timer(duration, updateAction, callAction, initiAction, () => { _player.AddPropItem(VirusPropEnum.ShootRepulse); });

        TimerManager.Instance.AddTimer(str, timer);
    }
Exemplo n.º 14
0
    private void AddShootPowerProp(float duration)
    {
        string         str          = VirusPropEnum.ReinforceShootPower.ToString();
        Action <float> updateAction = t =>
        {
            _player.UpdatePropItem(VirusPropEnum.ReinforceShootPower, t, duration);
        };
        Action callAction = () =>
        {
            VirusPlayerDataAdapter.MulHalfShootPower();
            _player.RemovePropItem(VirusPropEnum.ReinforceShootPower);
            TimerManager.Instance.RemoveTimer(str);
        };
        Action initiAction = () =>
        {
            VirusPlayerDataAdapter.MulShootPower(2);
        };

        Timer timer = new Timer(duration, updateAction, callAction, initiAction, () => { _player.AddPropItem(VirusPropEnum.ReinforceShootPower); });

        TimerManager.Instance.AddTimer(str, timer);
    }
Exemplo n.º 15
0
    private void OnUpgradeEnter()
    {
        //这里是对玩家武器进行升级
        bool   isUpdgrade = false;
        string tipStr     = "";

        if (IGamerProfile.Instance == null)
        {
            int coin     = VirusGameDataAdapter.GetTotalCoin();
            int needCoin = VirusTool.GetUpgradeCoin(VirusPlayerDataAdapter.GetWeaponLevel());
            //coin = 50 * needCoin; //testSyq
            while (true)
            {
                if (coin >= needCoin)
                {
                    isUpdgrade = true;
                    int value = VirusPlayerDataAdapter.GetUpgradeValue();
                    //扣除玩家金币
                    VirusGameDataAdapter.MinusTotalCoin(needCoin);
                    //增加武器等级
                    VirusPlayerDataAdapter.AddWeaponLevel();
                    //增加武器伤害
                    VirusPlayerDataAdapter.AddShootPower(value);
                    //增加子弹射速,暂时无用
                    VirusPlayerDataAdapter.AddShootSpeed();

                    bool b1 = VirusPlayerDataAdapter.GetShootNum() <= VirusPlayerDataAdapter.GetMaxShootNum();
                    bool b2 = VirusPlayerDataAdapter.UpgradeShoot();
                    if (b1 && b2)
                    {
                        //增加武器发射的子弹数量
                        VirusPlayerDataAdapter.AddShootNum(1);
                    }

                    coin = VirusGameDataAdapter.GetTotalCoin();
                    //升级需要的金币数
                    needCoin = VirusTool.GetUpgradeCoin(VirusPlayerDataAdapter.GetWeaponLevel());
                }
                else
                {
                    break;
                }
            }

            if (isUpdgrade)
            {
                _uiMrg.CoinPanel.SetCoinText();
                _virusPlayer.Upgrade();
                VirusSoundMrg.Instance.PlaySound(VirusSoundType.UpgradeGun);
                tipStr = "火力升级";
            }
        }
        else
        {
            //对于玩家的武器属性进行配置
            int indexWeapon = (int)UiSceneSelectGameCharacter.CharacterId.MainWeapon;
            //int levelA = IGamerProfile.Instance.playerdata.characterData[indexWeapon].levelA;
            int levelB = IGamerProfile.Instance.playerdata.characterData[indexWeapon].levelB;
        }

        float delayTime = 0.1f;
        //int level = VirusTool.UnlockViceWeapon(VirusGameDataAdapter.GetLevel());
        int level = 0;

        //获取玩家选择的副武器
        if (IGamerProfile.Instance != null)
        {
            level = IGamerProfile.Instance.gameEviroment.characterIndex;
        }
        //level = 8; //testSyq
        if (level > 0)
        {
            if (_virusPlayer.WeaponLevel != level)
            {
                _virusPlayer.WeaponLevel = level;
                //这里是升级副武器的
                delayTime = 0.1f;
                _virusPlayer.InitiViceWeapon(level);
                tipStr = "装备升级";
            }
        }

        if (!string.IsNullOrEmpty(tipStr))
        {
            var tip = EffectPools.Instance.Spawn("FloatTip");
            tip.transform.position   = _virusPlayer.transform.position;
            tip.transform.localScale = new Vector3(1.5f, 1.5f, 1);
            tip.GetComponent <FastlaneFloatTip>().Float(tipStr, () => { EffectPools.Instance.DeSpawn(tip); });
        }

        DOVirtual.DelayedCall(delayTime, _uiMrg.FadeOut).OnComplete(() =>
        {
            _fsm.ChangeState(VirusGameState.GamePlay);
        });
    }