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); }
private void OnUpgradeWeaponEnter() { int level = VirusPlayerDataAdapter.GetCurWeaponLevel(); _virusPlayer.InitiViceWeapon(level); VirusSoundMrg.Instance.PlaySound(VirusSoundType.UpgradeGun); }
private void UpgradeMainFire() { int needCoin = VirusTool.GetUpgradeCoin(VirusPlayerDataAdapter.GetShootLevel()); VirusGameDataAdapter.MinusTotalCoin(needCoin); VirusPlayerDataAdapter.AddShootPower(1); }
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); }
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); } }
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); }
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); }
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); } }
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); } }
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); }
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); }
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); }); }