Exemplo n.º 1
0
    public override void ApplyEffect(Collider2D collider)
    {
        if (collider.CompareTag("Player"))
        {
            ok = true;
            shield.Stop();
            shield.volume = 0;
            GetComponent <CircleCollider2D>().radius = 30;
            if (PlayerPrefs.GetString("Dagon") == "Dagon")
            {
                random = Random.Range(0, getD.Length);
                AudioSource.PlayClipAtPoint(getD[random], transform.position, 1f);
                iTween.MoveTo(gameObject, iTween.Hash("position", new Vector3(0f, 0f, 0f), "islocal", true));
            }
            else
            {
                random = Random.Range(0, getC.Length);
                AudioSource.PlayClipAtPoint(getC[random], transform.position, 1f);
                iTween.MoveTo(gameObject, iTween.Hash("position", new Vector3(1f, 1f, 0f), "islocal", true));
            }

            StartCoroutine("Go");
            AudioSource.PlayClipAtPoint(clip, transform.position, 0.5f);
            StartCoroutine("UsingMagnetic", tempo);
        }
        if (collider.CompareTag("Coin") && isInCharacter)
        {
            ChasePlayer followPlayer = collider.gameObject.AddComponent(typeof(ChasePlayer)) as ChasePlayer;
        }
    }
Exemplo n.º 2
0
    /*GameObject FireEffect()
     * {
     *  GameObject novoexplosionEffect = (GameObject)Instantiate(explosionEffect, transform.position, transform.rotation);
     *  Collider2D[] col = Physics2D.OverlapCircleAll(transform.position, radius, 9 << LayerMask.NameToLayer("Enemy"));
     *
     *  foreach (Collider2D nearbyObject in col)
     *  {
     *
     *      if (nearbyObject.transform.tag == "Enemy")
     *      {
     *
     *          enemyHealth = nearbyObject.GetComponent<EnemyHealth>();
     *          move = nearbyObject.GetComponent<EnemyMovement>();
     *          move.ColorChangeToRed();
     *          enemyHealth.StartCoroutine("FireDamage");
     *          print("ColorChangeToRed");
     *
     *      }
     *
     *      if (nearbyObject.transform.tag == "EnemyChase")
     *      {
     *          slimeHealth = nearbyObject.GetComponent<EnemySlimeHealth>();
     *          chase = nearbyObject.GetComponent<ChasePlayer>();
     *
     *          chase.ColorChangeToRed();
     *
     *          slimeHealth.StartCoroutine("FireDamage");
     *
     *          print("ColorChangeToBlue");
     *      }
     *
     *  }
     *
     *  return novoexplosionEffect;
     * }
     */
    GameObject IceEffect()
    {
        GameObject novoexplosionEffect = (GameObject)Instantiate(explosionEffect, transform.position, transform.rotation);

        Collider2D[] col = Physics2D.OverlapCircleAll(transform.position, radius, 9 << LayerMask.NameToLayer("Enemy"));

        foreach (Collider2D nearbyObject in col)
        {
            if (nearbyObject.transform.tag == "Enemy")
            {
                move = nearbyObject.GetComponent <EnemyMovement>();

                print("ColorChangeToBlue");
                move.ColorChangeToBlue();
                //move.ColorChangeToBlue();
                move.SlowEffect(speedSlow);
                //move.SlowEffect(speedSlow);
            }

            if (nearbyObject.transform.tag == "EnemyChase")
            {
                chase = nearbyObject.GetComponent <ChasePlayer>();
                print("ColorChangeToBlue");
                chase.ColorChangeToBlue();
                //move.ColorChangeToBlue();
                chase.SlowEffect(speedSlow);
                //move.SlowEffect(speedSlow);
            }
        }

        return(novoexplosionEffect);
    }
Exemplo n.º 3
0
    /// <summary>
    /// Drops the item
    /// </summary>
    public void DropItem()
    {
        /*
         * Choose a random loot table
         */
        LootTableWithSpawnrate candidate;

        if (LootTables == null || !LootTables.Any(i => i.Spawnrate > 0f))
        {
            throw new System.InvalidOperationException("DropItemOnDeath has no accessible loot tables");
        }

        do
        {
            candidate = LootTables[Random.Range(0, LootTables.Count)];
        } while (Random.value > candidate.Spawnrate);


        /*
         * Spawn items of selected loot table
         */

        foreach (var i in candidate.Table.GetLootItems())
        {
            ChasePlayer newObject = Commons.InstantiateInCurrentLevel(i, transform.Position2D() + Random.insideUnitCircle * SpawningRadius).GetComponent <ChasePlayer>();

            if (newObject)
            {
                newObject.BeginChase();
            }
        }
    }
Exemplo n.º 4
0
 // Start is called before the first frame update
 void Start()
 {
     chaseBrother  = gameObject.GetComponent <ChaseBrother>();
     chasePlayer   = gameObject.GetComponent <ChasePlayer>();
     imDead        = false;
     agentCollider = GetComponent <Collider>();
 }
Exemplo n.º 5
0
 private void Awake()
 {
     myTransform       = transform;
     sr                = GetComponent <SpriteRenderer>();
     chasePlayer       = GetComponent <ChasePlayer>();
     lookTowardsPlayer = GetComponent <LookTowardsPlayer>();
     animator          = GetComponent <Animator>();
 }
Exemplo n.º 6
0
 /// <summary>
 /// Awake this instance.
 /// </summary>
 void Awake( )
 {
     _Anchor               = GameObject.Find("Anchor");
     _playerController     = PlayerObj.GetComponent <PlayRunningGame.Player.PlayerController>();
     _chasePlayer          = ChaserCamera.GetComponent <ChasePlayer>();
     _playerPosition       = PlayerObj.transform.position;
     _uiLabelDistanceScore = DistanceScore.GetComponent <UILabel>();
 }
Exemplo n.º 7
0
 void Start()
 {
     _path          = gameObject.GetComponentInParent <AIPath>();
     _setter        = gameObject.GetComponentInParent <AIDestinationSetter>();
     _chasePlayer   = gameObject.GetComponentInParent <ChasePlayer>();
     _setter.target = _chasePlayer.empty.transform;
     CDTime         = dashRate * 0.8f;
     _target        = GameObject.FindWithTag("Player").transform;
 }
Exemplo n.º 8
0
    private void Start()
    {
        GameObject tempObj = GameObject.Find("Hapineko(All)");

        chase_player = tempObj.GetComponent <ChasePlayer>();

        CanvasMenu.SetActive(false);
        CanvasCamera.SetActive(false);
        PlayerCamera.SetActive(true);
    }
Exemplo n.º 9
0
    // Use this for initialization
    void Start()
    {
        slimeAudio = GetComponent <AudioSource>();
        player     = GameObject.FindGameObjectWithTag("Player");

        move         = GetComponent <ChasePlayer>();
        playerHealth = player.GetComponent <PlayerHealth>();
        anim         = GetComponent <Animator>();
        enemyHealth  = GetComponent <EnemySlimeHealth>();
    }
Exemplo n.º 10
0
 // Use this for initialization
 void Start()
 {
     if (chasing)
     {
         chase_player = GetComponentInParent <ChasePlayer>();
     }
     else
     {
         shoot_player = GetComponentInParent <ShootPlayer>();
     }
 }
Exemplo n.º 11
0
    private void MakeFSM()
    {
        fsm = new SimpleAIFSMSystem();

        Idle idle =  new Idle(fsm, gameObject, pc);
        idle.AddTransition(SimpleAITransition.FoundPlayer, SimpleAIStateID.ChasePlayer);

        ChasePlayer chasePlayer = new ChasePlayer(fsm, gameObject, pc);
        chasePlayer.AddTransition(SimpleAITransition.LostPlayer, SimpleAIStateID.Idle);

        fsm.AddState(idle);
        fsm.AddState(chasePlayer);
    }
Exemplo n.º 12
0
    private void Awake()
    {
        var idle        = new Idle();
        var attack      = new Attack();
        var chasePlayer = new ChasePlayer(GetComponent <NavMeshAgent>());

        _stateMachine = new StateMachine();
        _stateMachine.AddState(idle);
        _stateMachine.AddState(attack);
        _stateMachine.AddState(chasePlayer);

        _stateMachine.SetState(idle);
    }
Exemplo n.º 13
0
 void Start()
 {
     isDash       = false;
     spawnTimer   = 4;
     enemyAudio   = GetComponent <AudioSource>();
     player       = GameObject.FindGameObjectWithTag("Player");
     playerHealth = player.GetComponent <PlayerHealth>();
     enemyHealth  = GetComponent <EnemyHealth>();
     anim         = GetComponent <Animator>();
     trans        = GetComponent <Transform>();
     enemy        = this.gameObject;
     move         = enemy.GetComponent <ChasePlayer>();
 }
Exemplo n.º 14
0
    // Start is called before the first frame update
    void Start()
    {
        if (this.gameObject.tag == "Blue")
        {
            chaseBrother = gameObject.GetComponent <ChaseBrother>();
        }

        else if (this.gameObject.tag == "Orange")
        {
            chasePlayer = gameObject.GetComponent <ChasePlayer>();
        }
        imDead        = false;
        agentCollider = GetComponent <Collider>();
    }
Exemplo n.º 15
0
    void Update()
    {
        if (health <= 0)
        {
            Instantiate(DeadExplosion, transform.position, Quaternion.identity);
            gOver.GameOver();
            this.gameObject.GetComponent <SpriteRenderer>().enabled = false;
        }

        if (gOver.GameOverCheck)
        {
            this.gameObject.GetComponent <Boss>().enabled = false;
        }


        if (finiteStateMachine != null && finiteStateMachine.currentlyRunningState == null)
        {
            int r = Random.Range(0, 3);

            myState = (StateType)r;

            State nextState = null;

            switch (myState)
            {
            case StateType.Chase1:
                nextState = new ChasePlayer(this, player, speed, projectile[0]);
                break;

            case StateType.Chase2:
                nextState = new ChasePlayer2(this, player, speed, projectile[1]);
                break;

            case StateType.Idle:
                nextState = new IdleState(idleTime);
                break;

            default:
                break;
            }
            finiteStateMachine.ReciveState(nextState);
        }

        finiteStateMachine.ExecuteState();



        healthBar.value = health;
    }
Exemplo n.º 16
0
    public void CatchTrap(TrapList.Param trap, GameObject obj)
    {
        if (trap == null)
        {
            return;
        }

        switch (trap.ID)
        {
        case "Sw":
            catchTrap = true;
            Observable.Timer(System.TimeSpan.FromSeconds(trap.Time))
            .Take(1)
            .Subscribe(_ => {
                catchTrap = false;
                Destroy(obj);
            })
            .AddTo(this);
            break;

        case "J":
            CmdHitBullet((int)trap.Power);
            Observable.Timer(System.TimeSpan.FromSeconds(0.5))
            .Take(1)
            .Subscribe(_ => {
                Destroy(obj);
                catchTrap = false;
            })
            .AddTo(this);

            break;

        case "N":
            catchTrap = true;
            Observable.Timer(System.TimeSpan.FromSeconds(trap.Time))
            .Take(1)
            .Subscribe(_ => {
                if (type == PlayerMode.Chase)
                {
                    ChasePlayer cahser = gameObject.GetComponent <ChasePlayer>();
                    cahser.Change_Mode("0");
                }
                Destroy(obj);
                catchTrap = false;
            })
            .AddTo(this);
            break;
        }
    }
    private void Awake()
    {
        Player player = FindObjectOfType <Player>();

        _navMeshAgent = GetComponent <NavMeshAgent>();
        _entity       = GetComponent <Entity>();
        _stateMachine = new StateMachine();

        // Just want to explain this line further b/c there's a lot going on here.
        // I believe what this is doing is registering a lambda function with StateMachine.OnStateChanged.
        // This lamdba function receives "state", and simply called EntityStateMachine.OnStateChanged(state).
        _stateMachine.OnStateChanged += state => OnEntityStateChanged?.Invoke(state);

        Idle        idle        = new Idle();
        ChasePlayer chasePlayer = new ChasePlayer(_navMeshAgent, player);
        Attack      attack      = new Attack();
        Dead        dead        = new Dead(_entity);

        // Idle -> Chase
        _stateMachine.AddTransition(
            idle,
            chasePlayer,
            () => DistanceFlat(_navMeshAgent.transform.position, player.transform.position) < 5f
            );

        // Chase -> Attack
        _stateMachine.AddTransition(
            chasePlayer,
            attack,
            () => DistanceFlat(_navMeshAgent.transform.position, player.transform.position) <= 2f
            );

        /*
         * // Attack -> Chase
         * _stateMachine.AddTransition(
         *  attack,
         *  chasePlayer,
         *  () => DistanceFlat(_navMeshAgent.transform.position, player.transform.position) > 2f
         * );
         */

        // Any -> Dead
        _stateMachine.AddAnyTransition(dead, () => _entity.Health <= 0);

        _stateMachine.SetState(idle);
    }
Exemplo n.º 18
0
 /// <summary>
 /// Awake this instance.
 /// </summary>
 private void Awake( )
 {
     Anchor                     = GameObject.Find("Anchor");
     AnchorTransform            = Anchor.transform;
     playerController           = PlayerObj.GetComponent <PlayerController>();
     playerTransform            = PlayerObj.transform;
     chasePlayer                = ChaserCamera.GetComponent <ChasePlayer>();
     chasePlayerCameraTransform = ChaserCamera.transform;
     uiLabelDistanceScore       = DistanceScore.GetComponent <UILabel>();
     floorMapManager            = this.GetComponent <FloorMapManager>();
     bgFever                    = chasePlayerCameraTransform.FindChild("BgFever").gameObject;
     objConversation            = AnchorTransform.FindChild("Conversation").gameObject;
     conversationManager        = objConversation.GetComponent <ConversationManager>();
     bgWave                     = chasePlayerCameraTransform.FindChild("BgWave").gameObject;
     waterPlane                 = chasePlayerCameraTransform.FindChild("WaterPlane").gameObject;
     waveXL                     = chasePlayerCameraTransform.FindChild("WaveXL").gameObject;
 }
Exemplo n.º 19
0
    void Awake()
    {
        slimeExplode = GetComponent <SlimeExplode>();
        player       = GameObject.FindGameObjectWithTag("Player");
        anim         = GetComponent <Animator>();
        enemyAudio   = GetComponent <AudioSource>();
        experience   = player.GetComponent <Experience>();
        //hitParticles = GetComponentInChildren <ParticleSystem> ();
        //capsuleCollider = GetComponent <CapsuleCollider> ();
        //bullet = GetComponent<BulletMoveFoward>();

        //col.GetComponent<Collider2D>();
        playerHealth = player.GetComponent <PlayerHealth>();
        sprite       = GetComponent <SpriteRenderer>();
        move         = GetComponent <ChasePlayer>();
        isDead       = false;
        tiro         = player.GetComponent <Tiro>();
    }
Exemplo n.º 20
0
        private IEnumerator Start()
        {
            currentChanse = Random.Range(minChanse, maxChanse);

            IMover        _mover     = new Mover(this, moveSpeed);
            IMyAnimations _animation = new CharacterAnimation(GetComponent <Animator>());
            IFlip         _flip      = new FlipWithTranform(this);
            IHealth       _health    = GetComponent <IHealth>();
            IAttacker     _attacker  = GetComponent <IAttacker>();

            Idle        idle        = new Idle(_mover, _animation);
            Walk        walk        = new Walk(this, _mover, _animation, _flip, patrols);
            ChasePlayer chasePlayer = new ChasePlayer(_mover, _flip, _animation, IsPlayerRightSide);
            Attack      attack      = new Attack(_player.transform.GetComponent <IHealth>(), _flip, _animation, _attacker, maxAttackTime, IsPlayerRightSide);
            TakeHit     takeHit     = new TakeHit(_health, _animation);
            Dead        dead        = new Dead(this, _animation, () =>
            {
                if (currentChanse > Random.Range(0, 100))
                {
                    Instantiate(scorePrefab, transform.position, Quaternion.identity);
                }
            });



            _stateMachine.AddTransision(idle, walk, () => idle.IsIdle == false);                               //Idle'dan Walk'a IsIdle == false ise geç.
            _stateMachine.AddTransision(idle, chasePlayer, () => DistanceFromMeToPlayer() < chaseDistance);    //Idle'dan ChasePlayer'a methoddan dönen değer chaseDistance'dan küçük ise geç.
            _stateMachine.AddTransision(walk, chasePlayer, () => DistanceFromMeToPlayer() < chaseDistance);    //Walk'dan ChasePlayer'a methoddan dönen değer chaseDistance'dan küçük ise geç.
            _stateMachine.AddTransision(chasePlayer, attack, () => DistanceFromMeToPlayer() < attackDistance); //ChasePlayer'dan Attack'a methoddan dönen değer attackDistance'dan küçük ise geç.
            //Ters İşlemler
            _stateMachine.AddTransision(walk, idle, () => !walk.IsWalking);
            _stateMachine.AddTransision(chasePlayer, idle, () => DistanceFromMeToPlayer() > chaseDistance);
            _stateMachine.AddTransision(attack, chasePlayer, () => DistanceFromMeToPlayer() > attackDistance);

            _stateMachine.AddAnyState(dead, () => _health.IsDead);       //Kalan can 1'den küçük ise dead state çalıştır.
            _stateMachine.AddAnyState(takeHit, () => takeHit.IsTakeHit); //isTakeHit true dönerse takeHit çalıştır.

            _stateMachine.AddTransision(takeHit, chasePlayer, () => takeHit.IsTakeHit == false);
            _stateMachine.SetState(idle);

            yield return(null);
        }
Exemplo n.º 21
0
    private void OnCollisionEnter(Collision collision)
    {
        if (collision.gameObject.tag == "Player")
        {
            Player colPlayer = collision.gameObject.GetComponent <Player>();

            if (player.Type == Player.PlayerMode.Chase && colPlayer.team == player.team)
            {
                ChasePlayer chaser = collision.gameObject.GetComponent <ChasePlayer>();
                foreach (Transform n in this.gameObject.transform)
                {
                    if (n.gameObject.tag == "Weapon")
                    {
                        chaser.Change_Mode(n.GetComponent <WeaponType>().getModeID);
                        DestroyObject(n.gameObject);
                    }
                }
            }
        }
    }
Exemplo n.º 22
0
        private IEnumerator Start()
        {
            currentchance = Random.Range(minChance, maxChance);
            IMover       mover     = new MoverWithTranslate(this, moveSpeed);
            IMyAnimation animation = new CharacterAnimation(GetComponent <Animator>());
            IFlip        flip      = new FlipWithTransform(this);
            IHealth      health    = GetComponent <IHealth>();
            IAttacker    attacker  = GetComponent <IAttacker>();
            IStopEdge    stopEdge  = GetComponent <IStopEdge>();

            Idle        idle        = new Idle(mover, animation);
            Walk        walk        = new Walk(this, mover, animation, flip, patrols);
            ChasePlayer chasePlayer = new ChasePlayer(mover, flip, animation, stopEdge, IsPlayerRightSide);
            Attack      attack      = new Attack(_player.transform.GetComponent <IHealth>(), flip, animation, attacker, maxAttackTime, IsPlayerRightSide);
            TakeHit     takeHit     = new TakeHit(health, animation);
            Dead        dead        = new Dead(this, animation, () =>
            {
                if (currentchance > Random.Range(0, 100))
                {
                    Instantiate(scorePrefab, transform.position, Quaternion.identity);
                }
            });

            _stateMachine.AddTransition(idle, walk, () => idle.IsIdle == false);
            _stateMachine.AddTransition(idle, chasePlayer, () => DistanceFromMeToPlayer() < chaseDistance);
            _stateMachine.AddTransition(walk, chasePlayer, () => DistanceFromMeToPlayer() < chaseDistance);
            _stateMachine.AddTransition(chasePlayer, attack, () => DistanceFromMeToPlayer() < attackDistance);

            _stateMachine.AddTransition(walk, idle, () => !walk.IsWalking);
            _stateMachine.AddTransition(chasePlayer, idle, () => DistanceFromMeToPlayer() > chaseDistance);
            _stateMachine.AddTransition(attack, chasePlayer, () => DistanceFromMeToPlayer() > attackDistance);

            _stateMachine.AddAnyState(dead, () => health.IsDead);
            _stateMachine.AddAnyState(takeHit, () => takeHit.IsTakeHit);

            _stateMachine.AddTransition(takeHit, chasePlayer, () => takeHit.IsTakeHit == false);

            _stateMachine.SetState(idle);

            yield return(null);
        }
Exemplo n.º 23
0
    // Start is called before the first frame update
    void Start()
    {
        bulletLayer = LayerMask.NameToLayer("PlayerBullet");

        anim = GetComponent <Animator>();
        rb   = GetComponent <Rigidbody>();

        mainSel     = new Selector();
        runStateSel = new Selector();

        deathSeq     = new Sequence();
        chaseSeq     = new Sequence();
        surrenderSeq = new Sequence();

        deathHealthCheck = new DeathHealthCheckNode();
        surrenderCheck   = new SurrenderCheckNode();
        death            = new DeathNode();
        surrender        = new SurrenderNode();
        attack           = new AttackNode();
        injured          = new InjuredRunNode();
        normal           = new NormalRunNode();
        chase            = new ChasePlayer();
        node             = mainSel;

        mainSel.nList.Add(deathSeq);
        mainSel.nList.Add(surrenderSeq);
        mainSel.nList.Add(chaseSeq);

        deathSeq.nList.Add(deathHealthCheck);
        deathSeq.nList.Add(death);

        surrenderSeq.nList.Add(surrenderCheck);
        surrenderSeq.nList.Add(surrender);

        chaseSeq.nList.Add(runStateSel);
        chaseSeq.nList.Add(chase);
        chaseSeq.nList.Add(attack);

        runStateSel.nList.Add(injured);
        runStateSel.nList.Add(normal);
    }
Exemplo n.º 24
0
    public void Restart()
    {
        // Creating and setting some basic values for the blackboard
        m_Blackboard = new Blackboard();
        m_Blackboard.Trans = transform;
        m_Blackboard.StartPoint = transform.position;
        GameObject player = GameObject.FindGameObjectWithTag("Player");
        if (player) {
            m_Blackboard.Player = player.transform;
        }
        m_Blackboard.Destination = transform.position + new Vector3(10, 0, 5);
        m_Blackboard.LookAtObject = GetComponent<Looker>();

        //-------------------------------------------------------------------------
        // Higher level sequence/selectors which we'll add leaf behaviors to later
        //-------------------------------------------------------------------------
        Sequence randomMove = new Sequence();
        Sequence moveToBeacon = new Sequence();

        //----------------------------------------------------------------------------------
        // Create leaf behaviors. Should only need one of each.
        // Some of these get used often (MoveToPoint), others are specific (CheckForBeacon)
        //----------------------------------------------------------------------------------
        MoveToPoint moveToPoint = new MoveToPoint();
        PickRandomTarget pickRandomTarget = new PickRandomTarget();
        CheckForBeacon checkForBeacon = new CheckForBeacon();
        ChasePlayer chasePlayer = new ChasePlayer();
        Stunned stunned = new Stunned();

        //---------------------------------------------------------------------------------------
        // Building the subtrees.
        // Add children to subtrees in left to right order, since each AddChild is doing a push_back
        //----------------------------------------------------------------------------------------
        moveToBeacon.AddChild(checkForBeacon);
        moveToBeacon.AddChild(moveToPoint);

        randomMove.AddChild(pickRandomTarget);
        randomMove.AddChild(moveToPoint);

        //--------------------------------------------------
        // Add subtrees to the root.
        // Like before, add behaviors in left to right order
        //--------------------------------------------------
        m_Root.AddChild(stunned);
        m_Root.AddChild(moveToBeacon);
        m_Root.AddChild(chasePlayer);
        m_Root.AddChild(randomMove);

        //m_Blackboard.MovementPath = NavGraphConstructor.Instance.FindPathToLocation(m_Blackboard.Trans.position, m_Blackboard.Destination);
        //m_Blackboard.PathCurrentIdx = 0;

        //		repeat.m_Child = randomMove;
        //
        //		// Try out Chase behavior
        //		m_Chase = new Chase(moveBehavior, m_Bt);
        //		m_Flee = new Flee(moveBehavior, m_Bt);
        //
        //		List<Behavior> tree = new List<Behavior>();
        //		tree.Add(repeat);
        //		tree.Add(m_Chase);
        //
        //		root.m_Children = tree;
        //
        //		m_Bt.Start(root, this.SequenceComplete);
    }
Exemplo n.º 25
0
 /// <summary>
 /// Awake this instance.
 /// </summary>
 private void Awake( )
 {
     Anchor						= GameObject.Find ( "Anchor" );
     AnchorTransform				= Anchor.transform;
     playerController			= PlayerObj.GetComponent<PlayerController>();
     playerTransform				= PlayerObj.transform;
     chasePlayer					= ChaserCamera.GetComponent<ChasePlayer>();
     chasePlayerCameraTransform	= ChaserCamera.transform;
     uiLabelDistanceScore		= DistanceScore.GetComponent<UILabel>();
     floorMapManager				= this.GetComponent<FloorMapManager>();
     bgFever						= chasePlayerCameraTransform.FindChild( "BgFever" ).gameObject;
     objConversation				= AnchorTransform.FindChild( "Conversation" ).gameObject;
     conversationManager			= objConversation.GetComponent<ConversationManager>();
     bgWave						= chasePlayerCameraTransform.FindChild( "BgWave" ).gameObject;
     waterPlane					= chasePlayerCameraTransform.FindChild( "WaterPlane" ).gameObject;
     waveXL						= chasePlayerCameraTransform.FindChild( "WaveXL" ).gameObject;
 }
Exemplo n.º 26
0
 // Use this for initialization
 void Start()
 {
     chase_player = GetComponentInParent <ChasePlayer>();
 }
Exemplo n.º 27
0
 private void Awake()
 {
     _rigidBody   = GetComponent <Rigidbody2D>();
     _chasePlayer = GetComponent <ChasePlayer>();
     _faceTarget  = GetComponent <FaceTarget>();
 }
 protected override void Start()
 {
     base.Start();
     chasePlayer = GetComponent <ChasePlayer>();
     player      = MainController.Player.transform;
 }
Exemplo n.º 29
0
 void Awake()
 {
     m_chasePlayer = transform.parent.GetComponent <ChasePlayer> ();
 }
Exemplo n.º 30
0
    private void Awake()
    {
        GetComponentInChildren <MonsterAnimatorEvents>().ParentbasicEnemy = this;
        var rbs = GetComponentsInChildren <Rigidbody>();

        foreach (var rb in rbs)
        {
            rb.isKinematic = true;
        }

        navMeshAgent                = GetComponent <NavMeshAgent>();
        animator                    = GetComponentInChildren <Animator>();
        playerMovementCollider      = GetComponentInChildren <Collider>();
        eyesPosition                = GetComponentInChildren <EyesLocation>().transform;
        wanderArea                  = GetComponentInChildren <BoxCollider>();
        wanderArea.transform.parent = null;
        SetBoxBounds(wanderArea, out wanderAreaBoundsMin, out wanderAreaBoundsMax);

        stateMachine = new StateMachine();

        //STATES
        var idle            = new Idle(this);
        var chasePlayer     = new ChasePlayer(this);
        var dead            = new Dead(this, playerMovementCollider);
        var attack          = new Attack(this);
        var wander          = new Wander(this);
        var wanderInArea    = new WanderInArea(this);
        var searchForPlayer = new SearchForPlayer(this);
        var searchForSound  = new SearchForSound(this);
        var lookForSound    = new LookForSound(this);

        //TRANSITIONS
        AT(idle, chasePlayer, SeePlayer());
        AT(wander, chasePlayer, SeePlayer());
        AT(wanderInArea, chasePlayer, SeePlayer());
        AT(searchForPlayer, chasePlayer, SeePlayer());
        AT(searchForSound, chasePlayer, SeePlayer());

        AT(idle, lookForSound, HearsPlayer());
        AT(wander, lookForSound, HearsPlayer());
        AT(wanderInArea, lookForSound, HearsPlayer());
        AT(lookForSound, searchForSound, TimeToGoToSound());

        AT(chasePlayer, attack, InAttackRange());
        AT(attack, wanderInArea, AttackDone());
        AT(chasePlayer, searchForPlayer, CantFindPlayer());
        AT(searchForPlayer, wanderInArea, SearchOver());
        AT(chasePlayer, wanderInArea, LoseAgro());



        //ANY TRANSITIONS
        stateMachine.AddAnyTransition(dead, Dead());
        //stateMachine.AddAnyTransition(idle, PlayerMissing());

        //BEGINNING STATE
        stateMachine.SetState(wanderInArea);

        void AT(State to, State from, Func <bool> condition) => stateMachine.AddTransition(to, from, condition);
        Func <bool> Dead() => () => currentHealth <= 0;
        Func <bool> PlayerMissing() => () => Player.instance == null;
        Func <bool> PlayerIsClose() => () => Vector3.Distance(transform.position, Player.instance.transform.position) < 7;
        Func <bool> LoseAgro() => () => Vector3.Distance(transform.position, Player.instance.transform.position) > 50;
        Func <bool> AttackDone() => () => attack.time >= attackTime;
        Func <bool> InAttackRange() => () => Vector3.Distance(transform.position, Player.instance.transform.position) < attackAttemptRange;
        Func <bool> SeePlayer() => () => RayHitsPlayer() && Vector3.Angle(eyesPosition.forward, Player.instance.mainCamera.transform.position - eyesPosition.position) < sightFOV;
        Func <bool> CantFindPlayer() => () => !RayHitsPlayer();
        Func <bool> SearchOver() => () => searchForPlayer.searchTime >= maxSearchTime;
        Func <bool> HearsPlayer() => () => Hearing();

        Func <bool> TimeToGoToSound() => () =>
        {
            return(timeSinceHeard >= reactionTime);
        };
    }