public void ReduceEnemyNum() { if (spawnEnemyNum == 0) { return; } --spawnEnemyNum; EnemyInitState[] newSpawnEnemys = new EnemyInitState[spawnEnemyNum]; bool[] newSpawnDirLeft = new bool[spawnEnemyNum]; float[] newSpawnDelay = new float[spawnEnemyNum]; EnemyValue[] newEnemeyValue = new EnemyValue[spawnEnemyNum]; //Debug.Log(spawnEnemyNum); //Debug.Log(spawnEnemy.Length); for (int i = 0; i < spawnEnemyNum; ++i) { newSpawnEnemys[i] = spawnEnemy[i]; newSpawnDirLeft[i] = spawnDirLeft[i]; newSpawnDelay[i] = spawnDelay[i]; newEnemeyValue[i] = spawnEnemyValue[i]; } spawnEnemy = newSpawnEnemys; spawnDirLeft = newSpawnDirLeft; spawnDelay = newSpawnDelay; spawnEnemyValue = newEnemeyValue; }
//Almost the same thing as 'calculatePassiveEnemy', with some differences in the parameters public EnemyValue calculateAlteredEnemy(Enemy enemy, List <Enemy> listOfAlteredEnemies, List <Enemy> listOfPassiveEnemies, float life, float strength) { Enemy targetedEnemy = null; float targetedEnemyValue = Mathf.NegativeInfinity; for (int e = 0; e < listOfPassiveEnemies.Count; e++) { float distance = Vector2.Distance(listOfPassiveEnemies[e].transform.position, enemy.transform.position); float currentEnemyValue = calculateAlteredTarget(enemy, distance, listOfPassiveEnemies[e].getAimedBy(), listOfAlteredEnemies.Count, life, listOfPassiveEnemies[e].getLife(), strength, listOfPassiveEnemies[e].getStrength()); if (currentEnemyValue > targetedEnemyValue) { targetedEnemy = listOfPassiveEnemies[e]; targetedEnemyValue = currentEnemyValue; } } EnemyValue newEnemyValue = new EnemyValue(); newEnemyValue.enemy = targetedEnemy; newEnemyValue.action = calculateAlteredAction(enemy, targetedEnemy.getAimedBy(), life, targetedEnemy.getLife(), strength, targetedEnemy.getStrength()); return(newEnemyValue); }
//적 한 마리씩 공격 protected void AttackEnemy(GameObject _enemy) { //어택 사운드 sePlayer.PlaySE(1); //카메라 흔들림 cam.ShakeCam(0.12f); EnemyValue _eValue = _enemy.GetComponent <Enemy>().eValue; Vector2 _pos = _enemy.transform.position; if (comboNum > 2) { if (_enemy.GetComponent <Enemy>().EnemyDeathCheck(true)) //피니쉬로 애를 때렸더니 죽었어 { IncreaseHp(); SpawnScore(CalcScore(_eValue, true), _pos); //스코어 2 IncreaseEnemyCombo(); threeComCompleteNum += 1; //피버 조건 올려주기 //atkBox.enemyInBox.Remove(_enemy.gameObject); } } else { if (_enemy.GetComponent <Enemy>().EnemyDeathCheck(false)) //그냥 애를 때렸더니 죽었어 { IncreaseHp(); SpawnScore(CalcScore(_eValue, false), _pos); IncreaseEnemyCombo(); //atkBox.enemyInBox.Remove(_enemy.gameObject); } } }
//------------------------ //-----INITIALIZATION----- //------------------------ private void Start() { //-----CHANGE GAME STATUS gameStatus = GameStatus.Initializing; //-----RESET TIMESCALE Time.timeScale = 1; /* UI */ // Init UIManager FindObjectOfType <UIManager>().GetComponents(); // Deactivate start UI //startScreen.SetActive(false); // Activate game UI */ startScreen.SetActive(true); UIManager.PlayStartScreenIn(); //-----RESET PROGRESS FROM PREVIOUS ROUND progressTracker = GetComponent <ProgressTracker>(); progressTracker.ResetProgress(); //-----RESET ENEMY CHARGE EnemyValue.ResetCharge(); //-----RESET ENEMY COUNTER EnemyCounter.ResetCounter(); //-----INITIALIZE ENEMY SPAWNER & COORDINATOR enemyCoordinator.InitializeSpawner(); //-----INITIALIZE PLAYER playerSwordInitializer.InitializeSword(); }
int CalcScore(EnemyValue _eValue, int _speedLv) { int _score = 0; int _baseScore = CalcScore(_eValue); int _totalScore = 0; switch (_speedLv) { case 0: _score += 1000; break; case 1: _score += 2000; break; case 2: _score += 3000; break; } _totalScore = _score + _baseScore; score += _score; return(_totalScore); }
// Start is called before the first frame update void Start() { enemyValue = GetComponent <EnemyValue>(); enemySlotRequester = GetComponent <EnemySlotRequester>(); enemyMovement = GetComponent <EnemyMovement>(); maxStopCount = 3;//Random.Range(0, 5); enemyValue.RandomizeValue(); enemySlotRequester.RequestSlot(currentTrack); }
int CalcScore(EnemyValue _eValue, bool _isFinish) { int _score = 0; int _baseScore = CalcScore(_eValue); int _totalScore = 0; if (_isFinish) { _score += 500; } _totalScore = _score + _baseScore; score += _score; return(_totalScore); }
public void Swap(IEnemyValue enemyValue) { EnemyValue <T> eVal = enemyValue as EnemyValue <T>; if (enemyValue == null) { Debug.LogWarning("Value mismatch"); return; } T temp = Value; Value = eVal.Value; eVal.Value = temp; }
int CalcScore(EnemyValue _eValue) { int _score = 500; switch (_eValue) { case EnemyValue.Normal: score += _score; return(_score); } _score = 1000; score += 1000; return(_score); }
//로프 공격(박스안의 모든 적 공격) protected void RopeAttackEnemy() { for (int i = 0; i < atkBox.enemyInBox.Count; ++i) { sePlayer.PlaySE(1); if (atkBox.enemyInBox[i].GetComponent <Enemy>().EnemyDeathCheck(true)) { IncreaseHp(); EnemyValue _eValue = atkBox.enemyInBox[i].GetComponent <Enemy>().eValue; Vector2 _pos = atkBox.enemyInBox[i].transform.position; SpawnScore(CalcScore(_eValue, preSpdLv), _pos); IncreaseEnemyCombo(); ropeAtkCompleteNum += 1; } } atkBox.enemyInBox.Clear(); }
void Start() { GetComponent <BoxCollider>().isTrigger = true; _EV = GameDataContainer.Instance.GDC.EnemyValues.Find(o => o.Name == UnitName); if (_EV != null) { _DS = new DamageScript(_EV.Health, OnDeath); Debug.Log(_EV.Personality); if (_EV.Personality) { PickPersonality(); } } else { Debug.LogWarning("NO DATA FOUND"); Destroy(this.gameObject); } }
public void DeathSequence() { //-----GET VALUE FROM STORAGE COMPONENT EnemyValue enemyValue = GetComponent <EnemyValue>(); //-----INCREMENT SCORE ProgressTracker.IncrementScore(enemyValue.scoreValue); //-----ADD COINS if (enemyValue.coinValue > 0) { ProgressTracker.IncrementCoins(enemyValue.coinValue); } //-----STOP ALLIGNING WITH SLOT GetComponent <EnemyMovement>().StopAllignment(); //-----GET & FREE PREVIOUS SLOT Utils.Directions occupiedSlotDirection = transform.parent.transform.GetComponent <TrackSlotFinal>().GetDirection(); transform.parent.transform.GetComponent <TrackSlot>().FreeSlot(); //-----DECREMENT ENEMY COUNT EnemyCounter.DecrementCounter(); //-----INCREMENT CHARGING SPEED EnemyValue.IncrementCharge(); //-----DECREMENT SPAWN COOLDOWN EnemySpawnCoordinator.DecrementSpawnCooldown(); //-----INCREMENT ATTACK MUSIC PITCH FindObjectOfType <MusicController>().IncrementPitch(); //-----PLAY ANIMATION GetComponent <EnemyDeathAnimator>().PlayDeathAnimation(occupiedSlotDirection); //-----PLAY DEATH SFX GetComponent <EnemyAudioController>().PlayEnemyDeathSFX(); //-----SHAKE CAMERA Camera.main.GetComponent <CameraShaker>().ShakeCam(cameraShakeDuration, cameraShakeMagnitude); }
public override void OnInspectorGUI() { enemyAttribute = serializedObject.targetObject as EnemyAttribute; if (enemyAttribute.values.Count > 0) { foreach (IEnemyValue iev in enemyAttribute.values) { EnemyValue <int> intval = iev as EnemyValue <int>; if (intval != null) { EditorGUILayout.SelectableLabel("" + intval.Value); EditorGUILayout.IntField(intval.Value); continue; } EnemyValue <float> floatval = iev as EnemyValue <float>; if (floatval != null) { EditorGUILayout.SelectableLabel("" + floatval.Value); EditorGUILayout.FloatField(floatval.Value); continue; } EnemyValue <string> stringval = iev as EnemyValue <string>; if (stringval != null) { EditorGUILayout.SelectableLabel("" + stringval.Value); EditorGUILayout.TextField(stringval.Value); continue; } } } DrawDefaultInspector(); if (GUILayout.Button("Swap all attributes")) { enemyAttribute.SwapAllAttributes(enemyAttribute.swapWith); } serializedObject.ApplyModifiedProperties(); }
public void ChangeEnemyNum(int _num) { if (_num < 0) { _num = 0; } //spawnEnemyNum = _num; EnemyInitState[] newSpawnEnemys = new EnemyInitState[_num]; bool[] newSpawnDirLeft = new bool[_num]; float[] newSpawnDelay = new float[_num]; EnemyValue[] newEnemyValue = new EnemyValue[_num]; if (_num > spawnEnemyNum) { for (int i = 0; i < spawnEnemyNum; ++i) { newSpawnEnemys[i] = spawnEnemy[i]; newSpawnDirLeft[i] = spawnDirLeft[i]; newSpawnDelay[i] = spawnDelay[i]; newEnemyValue[i] = spawnEnemyValue[i]; } } else { for (int i = 0; i < _num; ++i) { newSpawnEnemys[i] = spawnEnemy[i]; newSpawnDirLeft[i] = spawnDirLeft[i]; newSpawnDelay[i] = spawnDelay[i]; newEnemyValue[i] = spawnEnemyValue[i]; } } spawnEnemyNum = _num; spawnEnemy = newSpawnEnemys; spawnDirLeft = newSpawnDirLeft; spawnDelay = newSpawnDelay; spawnEnemyValue = newEnemyValue; }
public EnemyValue calculatePassiveEnemy(Enemy enemy, List <Enemy> listOfAlteredEnemies, List <Enemy> listOfPassiveEnemies, float life, float strength, float nearAllies) { Enemy targetedEnemy = null; //This will be the target of the current enemy float targetedEnemyValue = Mathf.NegativeInfinity; //This float will be used to check what enemy will be targeted; the enemy with bigger value will be targeted for (int e = 0; e < listOfAlteredEnemies.Count; e++) //Iterates over the list of altered enemies to check the target { float distance = Vector2.Distance(listOfAlteredEnemies[e].transform.position, enemy.transform.position); //The distance from the enemy to the possible target //The lines below will call the function calculatePassiveTarget, which is //responsible for getting a numeric value to decide the target. You can see //more info about what is happening on the function itself float currentEnemyValue = calculatePassiveTarget(distance, enemy.getAimedBy().Count, listOfPassiveEnemies.Count, listOfAlteredEnemies.Count, nearAllies, life, listOfAlteredEnemies[e].getLife(), strength, listOfAlteredEnemies[e].getStrength()); if (currentEnemyValue > targetedEnemyValue) { //If the enemy that is being analyzed now has a bigger value than the current //target, it will become the target targetedEnemy = listOfAlteredEnemies[e]; targetedEnemyValue = currentEnemyValue; } } EnemyValue newEnemyValue = new EnemyValue(); newEnemyValue.enemy = targetedEnemy; //After checking all of the enemies, we can decide our target //The lines below will call the function calculatePassiveAction, which is //responsible for getting a numeric value to decide what will be the action of //this enemy. You can see more info about what is happening on the function itself newEnemyValue.action = calculatePassiveAction(enemy.getAimedBy().Count, listOfPassiveEnemies.Count, listOfAlteredEnemies.Count, nearAllies, life, targetedEnemy.getLife(), strength, targetedEnemy.getStrength()); return(newEnemyValue); //Returns the target and the action to the enemy }
public void AddEnemyNum() { ++spawnEnemyNum; EnemyInitState[] newSpawnEnemys = new EnemyInitState[spawnEnemyNum]; bool[] newSpawnDirLeft = new bool[spawnEnemyNum]; float[] newSpawnDelay = new float[spawnEnemyNum]; EnemyValue[] newEnemeyValue = new EnemyValue[spawnEnemyNum]; for (int i = 0; i < spawnEnemyNum - 1; ++i) { newSpawnEnemys[i] = spawnEnemy[i]; newSpawnDirLeft[i] = spawnDirLeft[i]; newSpawnDelay[i] = spawnDelay[i]; newEnemeyValue[i] = spawnEnemyValue[i]; } spawnEnemy = newSpawnEnemys; spawnDirLeft = newSpawnDirLeft; spawnDelay = newSpawnDelay; spawnEnemyValue = newEnemeyValue; }
void SpawnEnnemy(EnemyValue enemy) { Instantiate(enemy.enemyPrefab, spawnPoint.position, spawnPoint.rotation, container); valueCurrentWave -= enemy.value; EnemiesAlives++; }
public void SyncVariableLength() { if (spawnEnemyNum == 0) { return; } //Debug.Log("spawnNum : " + spawnEnemyNum + "Asd : " + spawnEnemy.Length); if (spawnEnemyNum != spawnEnemy.Length) { EnemyInitState[] newSpawnEnemys = new EnemyInitState[spawnEnemyNum]; for (int i = 0; i < newSpawnEnemys.Length; ++i) { if (i >= spawnEnemy.Length) { break; } newSpawnEnemys[i] = spawnEnemy[i]; } spawnEnemy = newSpawnEnemys; } if (spawnEnemyNum != spawnDirLeft.Length) { bool[] newSpawnDirLeft = new bool[spawnEnemyNum]; for (int i = 0; i < newSpawnDirLeft.Length; ++i) { if (i >= spawnDirLeft.Length) { break; } newSpawnDirLeft[i] = spawnDirLeft[i]; } newSpawnDirLeft = spawnDirLeft; } if (spawnEnemyNum != spawnDelay.Length) { float[] newDelayEnemys = new float[spawnEnemyNum]; for (int i = 0; i < newDelayEnemys.Length; ++i) { if (i >= spawnDelay.Length) { break; } newDelayEnemys[i] = spawnDelay[i]; } spawnDelay = newDelayEnemys; } if (spawnEnemyNum != spawnEnemyValue.Length) { EnemyValue[] newSpawnEnemyValue = new EnemyValue[spawnEnemyNum]; for (int i = 0; i < newSpawnEnemyValue.Length; ++i) { if (i >= spawnEnemyValue.Length) { break; } newSpawnEnemyValue[i] = spawnEnemyValue[i]; } spawnEnemyValue = newSpawnEnemyValue; } }