private void SpawnEnemy() { Vector3 spawnPosition = characterAimHandler.GetPosition() + UtilsClass.GetRandomDir() * 100f; EnemyHandler enemyHandler = EnemyHandler.Create(spawnPosition); enemyHandler.SetGetTarget(() => characterAimHandler); }
public void RandomizeData() { int randomTruck = Random.Range(0, System.Enum.GetNames(typeof(GameEnums.Truck)).Length); truck.TruckData.truckType = (GameEnums.Truck)randomTruck; int randomFirePoint = EnemyHandler.RandomFirePointTypeFromComplexity(); if (randomFirePoint < (int)GameEnums.FirePointType.D_FPType) { randomFirePoint = (int)GameEnums.FirePointType.D_FPType; } if (randomFirePoint > (int)GameEnums.FirePointType.DCMP_FPType) { randomFirePoint = (int)GameEnums.FirePointType.DCMP_FPType; } truck.TruckData.firePointType = (GameEnums.FirePointType)randomFirePoint; int[] gunDataTypes = EnemyHandler.PossibleGunDataTypesFromComplexity(); for (int i = 0; i < truck.TruckData.firePointData.gunsConfigurations.Length; i++) { int randomGun = Random.Range(1, System.Enum.GetNames(typeof(GameEnums.Gun)).Length); int randomGunData = Random.Range(0, gunDataTypes.Length); truck.TruckData.firePointData.gunsConfigurations[i].gunType = (GameEnums.Gun)randomGun; truck.TruckData.firePointData.gunsConfigurations[i].gunDataType = (GameEnums.GunDataType)gunDataTypes[randomGunData]; } }
private void CharacterAimBase_OnShoot(object sender, CharacterAim_Base.OnShootEventArgs e) { Shoot_Flash.AddFlash(e.gunEndPointPosition); WeaponTracer.Create(e.gunEndPointPosition, e.shootPosition); UtilsClass.ShakeCamera(.6f, .05f); SpawnBulletShellCasing(e.gunEndPointPosition, e.shootPosition); if (weaponType == WeaponType.Shotgun) { // Shotgun spread int shotgunShells = 4; for (int i = 0; i < shotgunShells; i++) { WeaponTracer.Create(e.gunEndPointPosition, e.shootPosition + UtilsClass.GetRandomDir() * Random.Range(-20f, 20f)); if (i % 2 == 0) { SpawnBulletShellCasing(e.gunEndPointPosition, e.shootPosition); } } } // Any enemy hit? RaycastHit2D raycastHit = Physics2D.Raycast(e.gunEndPointPosition, (e.shootPosition - e.gunEndPointPosition).normalized, Vector3.Distance(e.gunEndPointPosition, e.shootPosition)); if (raycastHit.collider != null) { EnemyHandler enemyHandler = raycastHit.collider.gameObject.GetComponent <EnemyHandler>(); if (enemyHandler != null) { Debug.Log("Cannot Damage!"); //enemyHandler.Damage(characterAimBase); } } }
protected virtual void OnAttackApproach() { Girl girl = EnemyHandler.GetInstance().GetGirl(); bool exit = true; if (state == State.ATTACKING) { if (girl != null) { if (!girl.IsTaken()) { girl.SetCaptor(this); exit = false; Vector3 exitPos = GetNearExitPath(); exitPos = NormalizeVector(exitPos); StartMoving(exitPos); SetState(State.KIDNAPPING); SetFinishedListener(OnEscaped); } } } if (exit) { OnStartExit(); } }
private void SpawnEnemy() { Vector3 spawnPosition = player.GetPosition() + UtilsClass.GetRandomDir() * 60f;// 100f; EnemyHandler enemyHandler = EnemyHandler.Create(spawnPosition); enemyHandler.SetGetTarget(() => player); }
void OnTriggerEnter2D(Collider2D hitInfo) { if (hitInfo.CompareTag("Enemy")) { EnemyHandler enemy = hitInfo.GetComponent <EnemyHandler>(); enemy.GetHealthSystem().Damage(dmg); enemy.KnockBack(400000); CreateText(hitInfo.transform.position); } else if (hitInfo.CompareTag("EnemyRanged")) { EnemyRangedHandler enemy = hitInfo.GetComponent <EnemyRangedHandler>(); enemy.GetHealthSystem().Damage(dmg); enemy.KnockBack(400000); CreateText(hitInfo.transform.position); } else if (hitInfo.CompareTag("EnemySlower")) { EnemySlowerHandler enemy = hitInfo.GetComponent <EnemySlowerHandler>(); enemy.GetHealthSystem().Damage(dmg); enemy.KnockBack(400000); CreateText(hitInfo.transform.position); } else if (hitInfo.CompareTag("Boss")) { BossHandler boss = hitInfo.GetComponent <BossHandler>(); boss.GetHealthSystem().Damage(dmg); CreateText(hitInfo.transform.position); } }
private void HandleAttack() { Vector3 attackDir = animatedWalker.GetLastMoveVector(); if (Input.GetMouseButtonDown(0)) { attackDir = (UtilsClass.GetMouseWorldPosition() - GetPosition()).normalized; } if (Input.GetKeyDown(KeyCode.Space) || Input.GetMouseButtonDown(0)) { // Attack SetStateBusy(); EnemyHandler enemyHandler = EnemyHandler.GetClosestEnemy(GetPosition() + attackDir * 4f, 20f); if (enemyHandler != null) { enemyHandler.Damage(this); attackDir = (enemyHandler.GetPosition() - GetPosition()).normalized; transform.position = enemyHandler.GetPosition() + attackDir * -12f; } else { transform.position = transform.position + attackDir * 4f; } /* * unitAnimation.PlayAnimForced(UnitAnimType.GetUnitAnimType("dBareHands_PunchStartup"), attackDir, 2f, (UnitAnim unitAnim) => { * unitAnimation.PlayAnimForced(UnitAnimType.GetUnitAnimType("dBareHands_PunchQuickAttack"), attackDir, 1f, (UnitAnim unitAnim2) => SetStateNormal(), null, null); * }, null, null); */ UnitAnimType activeAnimType = unitAnimation.GetActiveAnimType(); switch (activeAnimType.GetName()) { default: unitAnimation.PlayAnimForced(UnitAnimType.GetUnitAnimType("dBareHands_PunchQuick"), attackDir, 1f, (UnitAnim unitAnim2) => SetStateNormal(), null, null); break; case "dBareHands_PunchQuick": unitAnimation.PlayAnimForced(UnitAnimType.GetUnitAnimType("dBareHands_KickQuick"), attackDir, 1f, (UnitAnim unitAnim2) => SetStateNormal(), null, null); break; } //unitAnimation.PlayAnimForced(UnitAnimType.GetUnitAnimType("dBareHands_PunchQuickAttack"), attackDir, 1f, (UnitAnim unitAnim2) => SetStateNormal(), null, null); /* * Transform swordSlashTransform = Instantiate(GameAssets.i.pfSwordSlash, GetPosition() + attackDir * 13f, Quaternion.Euler(0, 0, UtilsClass.GetAngleFromVector(attackDir))); * swordSlashTransform.GetComponent<SpriteAnimator>().onLoop = () => Destroy(swordSlashTransform.gameObject); * * UnitAnimType activeAnimType = unitAnimation.GetActiveAnimType(); * if (activeAnimType == GameAssets.UnitAnimTypeEnum.dSwordTwoHandedBack_Sword) { * swordSlashTransform.localScale = new Vector3(swordSlashTransform.localScale.x, swordSlashTransform.localScale.y * -1, swordSlashTransform.localScale.z); * unitAnimation.PlayAnimForced(GameAssets.UnitAnimTypeEnum.dSwordTwoHandedBack_Sword2, attackDir, 1f, (UnitAnim unitAnim) => SetStateNormal(), null, null); * } else { * unitAnimation.PlayAnimForced(GameAssets.UnitAnimTypeEnum.dSwordTwoHandedBack_Sword, attackDir, 1f, (UnitAnim unitAnim) => SetStateNormal(), null, null); * } */ } }
float distToPlayer; //set by the enemy handler // Start is called before the first frame update void Start() { if (states.Count == 0) { Debug.Log("No states configured!"); } myHandler = GetComponent <EnemyHandler>(); isAwake = false; timePassed = 0; curStateName = StateNames.Sleeping; curStateIndex = -1; //ezzel jelezzuk hogy még nincs beállítva a state/alszunk //disabling every state behaviour so we can enable stuff when we need to for (int i = 0; i < states.Count; i++) { for (int j = 0; j < states[i].behaviours.Count; j++) { states[i].behaviours[j].enabled = false; } } //disabling these until we are awake too for (int i = 0; i < behavioursWhileAwake.Count; i++) { behavioursWhileAwake[i].enabled = false; } }
public override IEnumerator Use() { effectPositions.Clear(); float timer = 0; PlayerVisuals playerVisuals = GameData.playerManager.GetComponentInChildren <PlayerVisuals>(); while (GameData.playerMovement.IsOnGround() == false) { GameData.playerMovement.Propel(Vector2.down * frappevelocity, true, true); GameData.playerMovement.inControl = false; playerVisuals.isSlaming = true; if (timer <= 0) { effectPositions.Add(GameData.playerMovement.transform.position); bullets.Add(Instantiate(bulletPrefab, GameData.playerMovement.transform.position, Quaternion.identity)); timer = timePosInstantiate; } yield return(new WaitForFixedUpdate()); timer -= Time.fixedDeltaTime; } playerVisuals.isSlaming = false; Instantiate(impactPrefab, (Vector2)GameData.playerMovement.transform.position + impactFxOffset, Quaternion.identity); for (int i = 0; i < effectPositions.Count; i++) { explosion = Instantiate(prefabexplosion, effectPositions[i], Quaternion.identity); explosion.transform.localScale = new Vector2(size, size); Destroy(bullets[i]); } bullets.Clear(); ContactFilter2D filter = new ContactFilter2D(); filter.SetLayerMask(LayerMask.GetMask("Enemy")); List <Collider2D> enemycolliders = new List <Collider2D>(); for (int i = 0; i < effectPositions.Count; i++) { Physics2D.OverlapCircle(effectPositions[i], explosionRange, filter, enemycolliders); if (enemycolliders.Count > 0) { foreach (Collider2D collider in enemycolliders) { EnemyHandler closeEnemy = collider.GetComponent <EnemyHandler>(); closeEnemy.SetEffect(Effect.Magnetism, duration, false); } } } GameData.playerMovement.inControl = true; yield return(new WaitForFixedUpdate()); yield return(new WaitForSeconds(0.2f)); }
public static EnemyHandler GetClosestEnemy(Vector3 position, float maxRange) { EnemyHandler closest = null; foreach (EnemyHandler enemyHandler in enemyHandlerList) { if (enemyHandler.IsDead()) { continue; } if (Vector3.Distance(position, enemyHandler.GetPosition()) <= maxRange) { if (closest == null) { closest = enemyHandler; } else { if (Vector3.Distance(position, enemyHandler.GetPosition()) < Vector3.Distance(position, closest.GetPosition())) { closest = enemyHandler; } } } } return(closest); }
void OnDestroy() { instance = null; levelController = null; currentLevel = null; }
private void Awake() { player = GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerControllerWithDashAndSprint>(); cam = GameObject.FindGameObjectWithTag("MainCamera").GetComponent <CameraController>(); enemies = GameObject.FindGameObjectWithTag("Enemies").GetComponent <EnemyHandler>(); col = GetComponent <BoxCollider2D>(); }
private void Awake() { if (enemyHandler == null) { enemyHandler = GetComponent <EnemyHandler>(); } }
private void CharacterAimHandler_OnShoot(object sender, CharacterAimHandler.OnShootEventArgs e) { // Player shot weapon Shoot_Flash.AddFlash(e.gunEndPointPosition); WeaponTracer.Create(e.gunEndPointPosition, e.shootPosition); UtilsClass.ShakeCamera(.6f, .05f); // Any enemy hit? RaycastHit2D raycastHit = Physics2D.Raycast(e.gunEndPointPosition, (e.shootPosition - e.gunEndPointPosition).normalized, Vector3.Distance(e.gunEndPointPosition, e.shootPosition)); if (raycastHit.collider != null) { EnemyHandler enemyHandler = raycastHit.collider.gameObject.GetComponent <EnemyHandler>(); if (enemyHandler != null) { // Hit enemy int damageAmount = UnityEngine.Random.Range(100, 200); bool isCritical = UnityEngine.Random.Range(0, 100) < 30; if (isCritical) { damageAmount *= 2; } // Deal damage enemyHandler.Damage(this, damageAmount); DamagePopup.Create(enemyHandler.GetPosition(), damageAmount, isCritical); } } }
void FixedUpdate() { if (attackRadius.enabled) { frameCounter++; if (frameCounter > 3) { attackRadius.enabled = false; frameCounter = 0; } } if (player.IsHoming()) { if (Vector3.Distance(player.transform.position, destination) <= 1.0f) { player.SetHoming(false, false); characterModel.LookAt(new Vector3(destination.x + direction.x, characterModel.position.y, destination.z + direction.z)); player.GetComponent <Rigidbody>().velocity = new Vector3(player.GetComponent <Rigidbody>().velocity.x / 3.0f, player.groundJumpPower * 1.1f, player.GetComponent <Rigidbody>().velocity.z / 3.0f); enemy.GetComponent <Rigidbody>().velocity = new Vector3(player.GetComponent <Rigidbody>().velocity.x, -player.groundJumpPower * 4.0f, player.GetComponent <Rigidbody>().velocity.z); if (enemy) { enemy.Kill(); enemy = null; } } else { player.GetComponent <Rigidbody>().velocity = direction; } } }
public override void Attack() { Girl girl = EnemyHandler.GetInstance().GetGirl(); if (girl == null) { return; } if (girl.IsTaken()) { return; } Stop(); SetState(State.ATTACKING); target = girl.transform; Vector3 targetPos = target.position - ray.transform.position; SetRayAngle(targetPos); girl.SetCaptor(this); takingGirl = true; girlStartPos = target.position; girlMovementTimer = 0f; girlMovementDuration = Vector3.Distance(ray.transform.position, girlStartPos) / girlMovementSpeed; }
void OnTriggerEnter(Collider other) { if (!enemy) { if (other.gameObject.CompareTag("Enemy")) { //Non-obvious check: isTrigger is false when enemy is dead if (other.GetComponent <Collider>().isTrigger) { other.transform.Rotate(new Vector3(0.0f, 90.0f, 0.0f)); if (Vector3.Dot((other.transform.forward).normalized, characterModel.forward.normalized) <= 0.0f) { enemy = other.GetComponent <EnemyHandler>(); destination = other.transform.position; direction = (other.transform.position - player.transform.position).normalized; direction *= player.moveSpeedMultiplier * 2.0f; player.SetHoming(true, false); characterModel.transform.LookAt(other.transform.position); attackRadius.enabled = false; frameCounter = 0; return; //just want the first valid enemy we get } else { enemy = null; } } } } }
// Use this for initialization void Start() { //denna ordningen är ganska viktig teamHandler = GameObject.FindGameObjectWithTag("TeamHandler").GetComponent <TeamHandler>(); selector = GameObject.FindGameObjectWithTag("PlayerHandler").GetComponent <Selector>(); builder = GameObject.FindGameObjectWithTag("PlayerHandler").GetComponent <Builder>(); enemyHandler = GameObject.FindGameObjectWithTag("EnemyHandler").GetComponent <EnemyHandler>(); abilityManager = GameObject.FindGameObjectWithTag("AbilityManager").GetComponent <AbilityManager>(); teamHandler.Init(); selector.Init(); builder.Init(); enemyHandler.Init(); abilityManager.Init(); Health[] healths = (Health[])FindObjectsOfType(typeof(Health)); for (int i = 0; i < healths.Length; i++) { healths[i].Init(); } AIBase[] aiBases = (AIBase[])FindObjectsOfType(typeof(AIBase)); for (int i = 0; i < aiBases.Length; i++) { aiBases[i].Init(); } UnitSpellHandler[] unitSH = (UnitSpellHandler[])FindObjectsOfType(typeof(UnitSpellHandler)); for (int i = 0; i < unitSH.Length; i++) { unitSH[i].Init(); } }
private EnemyHandler GetClosestEnemyHandler(Vector3 playerPosition) { const float maxDistance = 50f; EnemyHandler closest = null; foreach (EnemyHandler enemyMeleeHandler in enemyMeleeHandlerList) { if (Vector3.Distance(playerPosition, enemyMeleeHandler.GetPosition()) > maxDistance) { continue; } if (closest == null) { closest = enemyMeleeHandler; } else { if (Vector3.Distance(playerPosition, enemyMeleeHandler.GetPosition()) < Vector3.Distance(playerPosition, closest.GetPosition())) { closest = enemyMeleeHandler; } } } return(closest); }
public override void DealDamageToEnemy(EnemyHandler enemy) { Vector2 kickDirection = new Vector2(enemy.transform.position.x - GameData.playerMovement.transform.position.x, enemy.transform.position.y - GameData.playerMovement.transform.position.y).normalized; GameData.playerMovement.DisableControl(0.3f, false); enemy.TakeDamage(1, kickDirection * enemyKnockBackForce + addedEnemyKnockBack); GameData.playerGrapplingHandler.ReleaseHook(); }
public static EnemyHandler Create(Vector3 position) { Transform enemyTransform = Instantiate(GameAssets.i.pfEnemy, position, Quaternion.identity); EnemyHandler enemyHandler = enemyTransform.GetComponent <EnemyHandler>(); return(enemyHandler); }
Vector3 dirToTarget; //the normalized direction // Start is called before the first frame update void Start() { myHandler = GetComponent <EnemyHandler>(); myTrans = GetComponent <Transform>(); myRigidbody = GetComponent <Rigidbody2D>(); myTrans.position = new Vector3(myTrans.position.x, myTrans.position.y, 0); //setting z position to be 0 }
void Awake() { GMobj = GameObject.Find("GM"); GM = GMobj.GetComponent <GameMaster>(); EH = GMobj.GetComponent <EnemyHandler>(); rageTracker = GM.GetComponent <RageTracker>(); Player = GameObject.FindGameObjectWithTag("Player").transform; FireTimer = EH.gruntFireRate; }
void Start() { GMobj = GameObject.Find("GM"); GM = GMobj.GetComponent <GameMaster>(); EH = GMobj.GetComponent <EnemyHandler>(); rb = GetComponent <Rigidbody2D>(); rb.velocity = transform.right * EH.gruntBulletSpeed; BulletTimer = EH.gruntBulletLife; }
private void Start() { cameraFollow.Setup(GetCameraPosition, () => 90f, true, true); FunctionPeriodic.Create(SpawnEnemy, 2f); EnemyHandler.Create(new Vector3(20, 0)); characterAimHandler.OnShoot += CharacterAimHandler_OnShoot; }
private void EnemyHandler_OnDead(object sender, System.EventArgs e) { EnemyHandler enemyMeleeHandler = sender as EnemyHandler; FindObjectOfType <AudioManager>().Play("SlashEnemyKill"); enemyMeleeHandlerList.Remove(enemyMeleeHandler); playerHandler.GetRewards(20 + lvl, 10 + lvl); Instantiate(GameAssets.i.psMelee, enemyMeleeHandler.transform.position, Quaternion.identity); }
private void SpawnEnemy() { Vector3 spawnPosition = Vector3.zero + UtilsClass.GetRandomDir() * 40f; if (characterAimHandler != null) { spawnPosition = characterAimHandler.GetPosition() + UtilsClass.GetRandomDir() * 40f; } EnemyHandler.Create(spawnPosition); }
// Start is called before the first frame update void Start() { myHandler = GetComponent <EnemyHandler>(); myTrans = GetComponent <Transform>(); myRigidbody = GetComponent <Rigidbody2D>(); targetTrans = GameManagerScript.Instance.playerTransform; //automatically set it as the player thru the gameManager myTrans.position = new Vector3(myTrans.position.x, myTrans.position.y, 0); //setting z position to be 0 }
// Update is called once per frame void FixedUpdate() { if (trigger) { trigger = false; var newEnemy = (GameObject)Instantiate(enemyPrefab, spawnPoint.position, Quaternion.identity); enemy = newEnemy.GetComponent <EnemyHandler>(); enemy.points = patrolPoints; } }
void Awake() { GMobj = GameObject.Find("GM"); GM = GMobj.GetComponent <GameMaster>(); EH = GMobj.GetComponent <EnemyHandler>(); EB.GetComponent <AstarEnemyBehaviour>(); rageTracker = GM.GetComponent <RageTracker>(); EnemyBody = GetComponent <Rigidbody2D>(); ThisGruntHealth = EH.gruntHealth; }
void SweepDestructedEnemies() { //Copied to prevent issues when removing elements from List EnemyHandler[] CopyOfEnemiesAsArray = new EnemyHandler[Master.Enemies.Count]; Master.Enemies.CopyTo(CopyOfEnemiesAsArray); foreach(EnemyHandler Enemy in CopyOfEnemiesAsArray){ if(Enemy.IsQueuedForDestruct){ Master.Enemies.Remove(Enemy); Destroy(Enemy.gameObject); } } }
public void LoadMap(string mapName) { mapTiles.Clear(); StreamReader reader = new StreamReader(@"..\..\Resources\Maps\ShadowMountains\" + mapName + ".txt"); this.enemyHandler = new EnemyHandler(); int y = 0; while (!reader.EndOfStream) { string line = reader.ReadLine(); for (int x = 0; x < line.Length; x++) { Tile t = new Tile(); t.TileLocation = new Point(x * 40, y * 40); if (line[x].ToString() == "1") { t.TileImg = Properties.Resources.GrassTile; t.Walkable = true; } if (line[x].ToString() == "0") { t.TileImg = Properties.Resources.WaterTile; t.Walkable = false; } mapTiles.Add(t); } y++; } this.enemyHandler.LoadEnemies(mapName); this.enemyList = this.enemyHandler.EnemyList; this.LoadEnemies(); reader.Close(); }