private void SpawnRandomEnemy(EnemyComponents spawnPrefab, PlayerComponents player, EnemyComponents[] allEnemies, AISensor[] allSensors)
    {
        EnemyComponents choosePartner;
        Vector2         randomCircle;
        NavMeshHit      hit;

        do
        {
            choosePartner = allEnemies[Random.Range(0, allEnemies.Length - 1)];
            randomCircle  = Random.insideUnitCircle.normalized * Random.Range(randomEnemyRange.x, randomEnemyRange.y);
        }while (NavMesh.SamplePosition(
                    choosePartner.transform.position + new Vector3(randomCircle.x, 0, randomCircle.y),
                    out hit, 20f, NavMesh.AllAreas) == false
                ||
                Vector3.Distance(hit.position, player.transform.position) < minDistanceFromPlayer);

        EnemyComponents newEnemy = Instantiate(spawnPrefab, hit.position, Quaternion.Euler(0, Random.Range(0, 360), 0));

        UpgradeEnemy(newEnemy);

        //hook up sensors
        for (int i = 0; i < allSensors.Length; i++)
        {
            if (allSensors[i].affectedEnemies.Contains(choosePartner.enemyControl))
            {
                allSensors[i].affectedEnemies.Add(newEnemy.enemyControl);
            }
        }
    }
    public override void Awake()
    {
        base.Awake();

        stringBuilder = new StringBuilder();

        player      = PlayerController.Current.character;
        playerSheet = player.characterSheet;
    }
 void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
     else
     {
         Destroy(this);
     }
 }
Esempio n. 4
0
 public void JumpAnimation(PlayerStatements _pStatements, PlayerComponents _pComponents)
 {
     if (_pStatements.isCroutch)
     {
         return;
     }
     if (_pStatements.isGrounded)
     {
         _pComponents.animatorCharacter.SetTrigger("jump");
     }
 }
        private void Start()
        {
            PlayerComponents = FindObjectsOfType <PlayerComponent>();
            EnemyComponents  = FindObjectsOfType <EnemyComponent>();

            Components = PlayerComponents.Cast <SomeoneComponent>()
                         .Concat(EnemyComponents.Cast <SomeoneComponent>())
                         .ToList();

            Step();
        }
 private void Awake()
 {
     m_PlayerGameObject = FindObjectOfType <PlayerController>().transform.gameObject;
     AddAllRestartableObjects();
     m_PlayerComponents = new PlayerComponents();
     m_PlayerComponents.m_PlayerController = m_PlayerGameObject.GetComponent <PlayerController>();
     m_PlayerComponents.m_PlayerHPMan      = m_PlayerGameObject.GetComponent <HealthManager>();
     foreach (Transform T in m_PortalCheckerPoint.GetComponentsInChildren <Transform>())
     {
         m_PortalCheckersList.Add(T);
     }
 }
    private void OnSceneLoaded(Scene arg0, LoadSceneMode arg1)
    {
        if (newGameCount == 0)
        {
            return;
        }

        SetTextSigns();

        //alter player
        PlayerComponents player = FindObjectOfType <PlayerComponents>();
        //reduce health, same as increasing enemy damage
        int playerHealth = player.characterSheet.GetResourceMax(CharacterSheet.Resource.health);

        playerHealth = ReduceInt(playerHealth, newGameCount * playerHealthReduction);
        if (playerHealth < minPlayerHealth)
        {
            playerHealth = minPlayerHealth;
        }
        player.characterSheet.SetResourceMax(CharacterSheet.Resource.health, playerHealth);

        //alter health pickups
        HealthPickup[] healthPickups = FindObjectsOfType <HealthPickup>();
        for (int i = 0; i < healthPickups.Length; i++)
        {
            healthPickups[i].healAmount = ReduceInt(healthPickups[i].healAmount, newGameCount * healthPickupReduction);
            if (healthPickups[i].healAmount < minHealthPickupHeal)
            {
                healthPickups[i].healAmount = minHealthPickupHeal;
            }
        }

        //alter enemies
        EnemyComponents[] allEnemies = FindObjectsOfType <EnemyComponents>();

        for (int i = 0; i < allEnemies.Length; i++)
        {
            UpgradeEnemy(allEnemies[i]);
        }

        if (enemyPrefabs.Length == 0)
        {
            Debug.LogWarning("No enemy prefabs loaded!", this);
            return;
        }

        AISensor[] allSensors = FindObjectsOfType <AISensor>();
        for (int i = 0; i < newGameCount; i++)
        {
            SpawnRandomEnemy(enemyPrefabs[i % enemyPrefabs.Length], player, allEnemies, allSensors);
        }
    }
 public void Attack(PlayerStatements _pStatements, PlayerStats _pStats, PlayerComponents _pComponents)
 {
     _pStatements.isAttack = true;
     _pStats.countattack  += 1;
     if (_pStats.countattack == 1 || _pStats.countattack == 2 || _pStats.countattack == 3)
     {
         _pStats.attackComboCD = 1.5f;
         var attackCombo = string.Format("AttackCombo{0}", _pStats.countattack);
         _pComponents.animatorCharacter.SetTrigger(attackCombo);
         PrepareAttack(_pStats);
         AttackUse(_pStats, _pComponents);
     }
 }
Esempio n. 9
0
 public void Crouch(bool isCrouch, PlayerStatements _pStatements, PlayerComponents _pComponents)
 {
     _pStatements.isCroutch = isCrouch;
     if (isCrouch)
     {
         _pComponents.stayCharacter.enabled    = false;
         _pComponents.croutchCharacter.enabled = true;
     }
     else
     {
         _pComponents.stayCharacter.enabled    = true;
         _pComponents.croutchCharacter.enabled = false;
     }
 }
Esempio n. 10
0
    void Awake()
    {
        if (instance == null)
        {
            instance = this;
        }
        else if (instance != this)
        {
            Destroy(gameObject);
        }

        ply      = gameObject;
        cc       = GetComponent <CharacterController>();
        movement = GetComponent <PlayerMovement>();
    }
Esempio n. 11
0
    private void LinkPlayer()
    {
        PlayerComponents player = FindObjectOfType <PlayerComponents>();

        if (player == null)
        {
            Debug.LogWarning("Player could not be found, not linked", gameObject);
        }
        else
        {
            //link player to HUD
            player.playerControl.hudObjects = hudObjects;

            //link HUD to player
            EventSystemModifier.Current.playerInput = player.playerInput;
            inventoryPanel.playerEquipment          = player.equipment;

            Debug.Log("Player linked", gameObject);
        }
    }
    public void AttackUse(PlayerStats _pStats, PlayerComponents _pComponents)
    {
        Collider2D[] hitEnemies = Physics2D.OverlapCircleAll(_pComponents.attackPoint.position, _pStats.attackRange, _pComponents.enemyLayers);

        foreach (Collider2D enemy in hitEnemies)
        {
            enemy.GetComponent <PlayerStats>().currentHealth -= _pStats.attackDamage;
            if (enemy.GetComponent <PlayerStatements>().isDead == false)
            {
                enemy.GetComponent <PlayerComponents>().animatorCharacter.SetTrigger("Hurt");
            }

            if (enemy.GetComponent <PlayerStats>().currentHealth <= 0)
            {
                GameController.Instance.score += 1;
                enemy.GetComponent <PlayerStatements>().isDead = true;
                enemy.GetComponent <PlayerComponents>().animatorCharacter.SetBool("isDead", true);
                StartCoroutine(Timer(enemy));
            }
        }
    }
Esempio n. 13
0
 public void MoveEnemy(PlayerComponents _pComponents, Collider2D[] _touchMovePointA, Collider2D[] _touchMovePointB)
 {
     if (goLeft == -1)
     {
         UnitMovementSystem.Instance.RunAnimation(true, playerComponents);
         UnitMovementSystem.Instance.Move(playerComponents.characterRB, goLeft, playerStats.speed);
         _touchMovePointA = Physics2D.OverlapCircleAll(wasPositionA, 0.5f, _pComponents.whoIam);
         foreach (Collider2D enemy in _touchMovePointA)
         {
             goLeft = 1;
         }
     }
     else if (goLeft == 1)
     {
         UnitMovementSystem.Instance.RunAnimation(true, playerComponents);
         UnitMovementSystem.Instance.Move(playerComponents.characterRB, goLeft, playerStats.speed);
         _touchMovePointB = Physics2D.OverlapCircleAll(wasPositionB, 0.5f, _pComponents.whoIam);
         foreach (Collider2D enemy in _touchMovePointB)
         {
             goLeft = -1;
         }
     }
 }
Esempio n. 14
0
 public PlayerModel(PlayerStruct playerStruct, PlayerComponents playerComponents, PlayerSettingsData playerSettingsData)
 {
     PlayerStruct       = playerStruct;
     PlayerComponents   = playerComponents;
     PlayerSettingsData = playerSettingsData;
 }
 private void OnDrawGizmosSelected(PlayerStatements _pStatements, PlayerStats _pStats, PlayerComponents _pComponents)
 {
     if (_pComponents.attackPoint == null)
     {
         return;
     }
     Gizmos.DrawWireSphere(_pComponents.attackPoint.position, _pStats.attackRange);
 }
 public PlayerModel(PlayerDataRelevant playerDataIndividual, PlayerComponents playerComponents)
 {
     this.playerDataRelevant = playerDataIndividual;
     this.playerComponents   = playerComponents;
 }
Esempio n. 17
0
        public void Clean(Game game)
        {
            foreach (var component in LevelComponents.Where(b => b.GameId == game.Id))
            {
                LevelComponents.Remove(component);
            }

            foreach (var branch in Branches.Where(b => b.GameId == game.Id))
            {
                Branches.Remove(branch);
            }

            foreach (var logEntry in LogEntries.Where(e => e.GameId == game.Id))
            {
                LogEntries.Remove(logEntry);
            }

            foreach (var playerCommand in PlayerCommands.Where(b => b.GameId == game.Id))
            {
                PlayerCommands.Remove(playerCommand);
            }

            foreach (var abilityComponent in AbilityComponents.Where(b => b.GameId == game.Id))
            {
                AbilityComponents.Remove(abilityComponent);
            }

            foreach (var aiComponent in AIComponents.Where(b => b.GameId == game.Id))
            {
                AIComponents.Remove(aiComponent);
            }

            foreach (var playerComponent in PlayerComponents.Where(b => b.GameId == game.Id))
            {
                PlayerComponents.Remove(playerComponent);
            }

            foreach (var beingComponent in BeingComponents.Where(b => b.GameId == game.Id))
            {
                BeingComponents.Remove(beingComponent);
            }

            foreach (var physicalComponent in PhysicalComponents.Where(b => b.GameId == game.Id))
            {
                PhysicalComponents.Remove(physicalComponent);
            }

            foreach (var raceComponent in RaceComponents.Where(b => b.GameId == game.Id))
            {
                RaceComponents.Remove(raceComponent);
            }

            foreach (var effectComponent in EffectComponents.Where(b => b.GameId == game.Id))
            {
                EffectComponents.Remove(effectComponent);
            }

            foreach (var itemComponent in ItemComponents.Where(b => b.GameId == game.Id))
            {
                ItemComponents.Remove(itemComponent);
            }

            foreach (var knowledgeComponent in KnowledgeComponents.Where(b => b.GameId == game.Id))
            {
                KnowledgeComponents.Remove(knowledgeComponent);
            }

            foreach (var connectionComponent in ConnectionComponents.Where(b => b.GameId == game.Id))
            {
                ConnectionComponents.Remove(connectionComponent);
            }

            foreach (var positionComponent in PositionComponents.Where(b => b.GameId == game.Id))
            {
                PositionComponents.Remove(positionComponent);
            }

            foreach (var sensorComponent in SensorComponents.Where(b => b.GameId == game.Id))
            {
                SensorComponents.Remove(sensorComponent);
            }

            game.ActingPlayerId = null;

            SaveChanges();

            Games.Remove(game);

            SaveChanges();
        }
Esempio n. 18
0
 private void CheckGround(PlayerStatements _pStatements, PlayerStats _pStats, PlayerComponents _pComponents)
 {
     _pStatements.isGrounded = Physics2D.OverlapCircle(_pComponents.groundCheck.position,
                                                       _pStats.checkRadius, _pComponents.whatIsGround);
 }
Esempio n. 19
0
 public void Jump(Rigidbody2D targetRB, PlayerStatements _pStatements, PlayerStats _pStats, PlayerComponents _pComponents)
 {
     CheckGround(_pStatements, _pStats, _pComponents);
     if (_pStatements.isCroutch)
     {
         return;
     }
     if (_pStatements.isGrounded)
     {
         targetRB.velocity   = Vector2.up * _pStats.jumpForce;
         _pStats.extraJump   = _pStats.extraJumpsValue - 1;
         _pStatements.isJump = false;
     }
     else
     {
         if (_pStats.extraJump > 1)
         {
             _pStatements.isJump = true;
             targetRB.velocity   = Vector2.up * _pStats.jumpForce;
             _pStats.extraJump--;
         }
     }
 }
Esempio n. 20
0
 public void RegisterPlayer(PlayerComponents player) =>
 this.player = player;
Esempio n. 21
0
 public void RunAnimation(bool isRinning, PlayerComponents _pComponents)
 {
     _pComponents.animatorCharacter.SetBool("isRunning", isRinning);
 }
Esempio n. 22
0
 public void ISeeYou(PlayerComponents _pComponents, PlayerStats _pStats)
 {
     beginSeePoint = new Vector2(_pComponents.groundCheck.position.x, _pComponents.groundCheck.position.y + 1.5f);
     endSeePoint   = new Vector2(beginSeePoint.x - _pStats.visionDistance, beginSeePoint.y);
 }
Esempio n. 23
0
 public void CalculateDistance(PlayerStats _pStats, PlayerComponents _pComponents, GameObject _gameObject)
 {
     directionA   = _pStats.enemyMoveDistance / 2;
     wasPositionA = new Vector2(_gameObject.transform.position.x - directionA, _pComponents.groundCheck.transform.localPosition.y);
     wasPositionB = new Vector2(_gameObject.transform.position.x + directionA, _pComponents.groundCheck.transform.localPosition.y);
 }