public GameObject SpawnVirus(string virusName, VirusData data, Vector3 pos, bool isAdd) { //Debug.Log("***************virusName == " + virusName); var obj = Pools.Spawn(virusName); var virus = obj.transform.GetComponent <BaseVirus>(); if (!virusName.Equals("AdsorptionVirus")) { obj.transform.GetComponent <VirusSpriteSetter>().Set(_minOrderIndex); obj.GetComponent <BubbleEffectMrg>().Initi(_minOrderIndex, data.SplitLevel, data.VirusColorLevel); _minOrderIndex++; } else { obj.transform.GetComponent <VirusSpriteSetter>().Set(_maxOrderIndex); obj.GetComponent <BubbleEffectMrg>().Initi(_minOrderIndex, data.SplitLevel, data.VirusColorLevel); _maxOrderIndex--; } virus.Born(data); obj.transform.position = pos; if (isAdd) { var n = (VirusName)Enum.Parse(typeof(VirusName), virusName); _originCount += VirusTool.GetChildSplit(data.SplitLevel, n); } _virusObjects.Add(obj); return(obj); }
private void SpawnVirus(string virusName, VirusData data) { //Debug.Log("+++++++++++++++++++++++++virusName == " + virusName); var obj = Pools.Spawn(virusName); obj.transform.localScale = Vector3.one; var virus = obj.transform.GetComponent <BaseVirus>(); var virusMove = obj.transform.GetComponent <VirusMove>(); if (!virusName.Equals("AdsorptionVirus")) { obj.transform.GetComponent <VirusSpriteSetter>().Set(_minOrderIndex); obj.GetComponent <BubbleEffectMrg>().Initi(_minOrderIndex, data.SplitLevel, data.VirusColorLevel); _minOrderIndex++; } else { obj.transform.GetComponent <VirusSpriteSetter>().Set(_maxOrderIndex); obj.GetComponent <BubbleEffectMrg>().Initi(_minOrderIndex, data.SplitLevel, data.VirusColorLevel); _maxOrderIndex--; } virus.Born(data); float minX = VirusTool.LeftX + virusMove.Radius / 2; float maxX = VirusTool.RightX - virusMove.Radius / 2; float x = Random.Range(minX, maxX); float y = VirusTool.TopY + virusMove.Radius / 2; obj.transform.position = new Vector3(x, y, 0); _virusObjects.Add(obj); }
public override void Born(VirusData virusData) { base.Born(virusData); _isRotate = false; _totalTime = 0; _rotateDuration = 3; _totalAngle = 60; }
public override void Born(VirusData virusData) { base.Born(virusData); _duration = Random.Range(6f, 10f); _rotateSpeed = 300f; _isSpeed = false; _speedMul = 1; }
public override void Born(VirusData virusData) { base.Born(virusData); _totalTime = 0; _runAwayDuration = 3; _scale = 1; }
public override void Born(VirusData virusData) { base.Born(virusData); _top.Initi(new Vector3(0, -0.4f, 0), Vector3.zero, 0.5f); _bottom.Initi(new Vector3(0, 0.32f, 0), Vector3.zero, 0.5f); _duration = 0.1f; _invincible = false; }
public override void Born(VirusData virusData) { base.Born(virusData); _totalTime = 0; _runAwayDuration = 3f; _vampireDuration = 5f; _targetVirus = null; }
public override void Born(VirusData virusData) { base.Born(virusData); _isTracking = false; _totalTime = 0; _wanderDuration = Random.Range(3f, 4f); foreach (VirusFadeAction t in _fadeTransform) { t.Initi(); } }
public override void Born(VirusData virusData) { base.Born(virusData); _rotateSpeed = 100; _totalTime = 0; _isRunAway = false; _duration = Random.Range(4f, 10f); _runAwayDuration = Random.Range(1f, 3f); _rotateTransform.localScale = Vector3.one; }
public override void Born(VirusData virusData) { base.Born(virusData); _invincible = true; _isFaded = false; _invincibleDuration = Random.Range(2f, 4f); _noinvincibleDuration = Random.Range(5f, 10f); _totalTime = 0; _virusHealthBar.gameObject.SetActive(false); foreach (VirusFadeAction t in _fadeViruss) { t.Initi(); } }
public void GetTested(VirusData virus) { if (!Alive) { return; } foreach (var genome in virus.Genomes) { if (!Immunity.Contains(genome.Genome)) { Alive = false; Console.WriteLine($"Pig {ID} is dead"); return; } } }
public override void Born(VirusData virusData) { base.Born(virusData); _totalTime = 0; _duration = 0.1f; _cornerCache = new Dictionary <int, bool>(); _cornerCache.Add(0, false); _cornerCache.Add(1, false); _cornerCache.Add(2, false); _cornerCache.Add(3, false); _cornerCache.Add(4, false); _virusList = new List <VirusMove>(); _transformCache = new Dictionary <VirusMove, int>(); }
protected override void RunAway() { var move = transform.GetComponent <VirusMove>(); for (int i = 0; i < 3; i++) { int level = (int)(SplitLevel - 1); SplitLevel splitLevel = level < 0 ? SplitLevel.Level1 : (SplitLevel)level; float angle = Random.Range(i * 120, (i + 1) * 120); VirusData data = new VirusData(); data.VirusColorLevel = VirusTool.GetColorLevel(CurColorLevel); data.SplitLevel = splitLevel; data.MoveSpeed = move.OriginSpeed; data.MoveDirection = Quaternion.Euler(0, 0, angle) * Vector3.right; int t = VirusGameDataAdapter.GetLevel(); data.HealthValue = VirusTool.GetVirusHealthByColorLevel("DartVirus", t, data.VirusColorLevel); VirusMrg.Instance.SpawnVirus("DartVirus", data, transform.position, true); } }
private void Produce() { VirusData data = new VirusData(); data.SplitLevel = SplitLevel; data.VirusColorLevel = CurColorLevel; data.HealthValue = VirusTool.GetVirusHealthByColorLevel("SwallowVirus", VirusGameDataAdapter.GetLevel(), CurColorLevel); data.MoveSpeed = 4; data.MoveDirection = Quaternion.Euler(0, 0, Random.Range(0f, 360f)) * Vector3.up; float scale = VirusTool.GetScaleByLevel(data.SplitLevel); var newVirus = VirusMrg.Instance.SpawnVirus("SwallowVirus", data, transform.position, true); newVirus.transform.localScale = Vector3.zero; newVirus.transform.DOScale(new Vector3(scale, scale, 1), 0.5f).OnComplete(() => { _isRunAway = false; }); }
protected void Divide(string virusName, ColorLevel colorLevel, int count) { if (SplitLevel > SplitLevel.Level1) { Vector3 pos = transform.position; var level = SplitLevel - 1; var move = transform.GetComponent <VirusMove>(); for (int i = 0; i < count; i++) { VirusData data1 = new VirusData(); data1.VirusColorLevel = VirusTool.GetColorLevel(colorLevel); data1.SplitLevel = level; data1.MoveSpeed = move.OriginSpeed; data1.MoveDirection = Quaternion.Euler(0, 0, Random.Range(-45f, 45f)) * Vector3.up; data1.HealthValue = VirusTool.GetVirusHealthByColorLevel(virusName, VirusGameDataAdapter.GetLevel(), data1.VirusColorLevel); VirusMrg.Instance.SpawnVirus(virusName, data1, pos, false); } } }
public virtual void Born(VirusData virusData) { VirusSprite = transform.GetComponent <BaseVirusSprite>(); VirusSprite.Initi(virusData.VirusColorLevel); VirusHealth = new RectiveProperty <float>(); VirusHealth.Value = virusData.HealthValue; HealthBar.Initi(VirusTool.GetStrByIntger(virusData.HealthValue)); VirusHealth.Subscibe(HealthBar.SetValue); SplitLevel = virusData.SplitLevel; CurColorLevel = virusData.VirusColorLevel; OriginColorLevel = virusData.VirusColorLevel; TotalHealth = virusData.HealthValue; ScaleX = VirusTool.GetScaleByLevel(virusData.SplitLevel); transform.localScale = new Vector3(ScaleX, ScaleX, 1); VirusMove.Initi(virusData.MoveSpeed, virusData.MoveDirection); transform.GetComponent <VirusBuffMrg>().Initi(); IsDeath = false; }
private IEnumerator Spawn() { List <WaveVirusItem> items = WaveVirusDataAdapter.GetWaveVirus(); int count = items.Count; int cc = 0; _isSpawned = false; while (true) { yield return(new WaitForSeconds(Random.Range(0.3f, 0.8f))); VirusData data = new VirusData(); Vector3 dir = Quaternion.Euler(0, 0, Random.Range(-20f, 20f)) * Vector3.down; SplitLevel splitLevel = items[cc].SplitLevel; string virusName = items[cc].VirusName.ToString(); int level = VirusGameDataAdapter.GetLevel(); data.VirusColorLevel = items[cc].ColorLevel; data.HealthValue = VirusTool.GetVirusHealthByColorLevel(virusName, level, data.VirusColorLevel); data.MoveSpeed = 3; data.MoveDirection = dir; data.SplitLevel = splitLevel; SpawnVirus(virusName, data); cc++; if (cc >= count) { _isSpawned = true; WaveVirusDataAdapter.WaveIndex++; if (WaveVirusDataAdapter.WaveIndex >= WaveVirusDataAdapter.MaxWave) { WaveVirusDataAdapter.IsNextWave = false; } yield break; } } }
public override void Born(VirusData virusData) { base.Born(virusData); _totalTime = 0; _lanuchDuration = 5; }