コード例 #1
0
ファイル: BossScript1.cs プロジェクト: AyItsLX/InOpulent
    void LookAForNextState(BossBehaviour currentState)
    {
        state = currentState;
        switch (currentState)
        {
        case BossBehaviour.IDLE:
            StartCoroutine(Idle());
            break;

        case BossBehaviour.TAUNT:
            StartCoroutine(TauntWait());
            break;

        case BossBehaviour.FALLINGROCKS:
            if (!runOnce)
            {
                runOnce = true;
                StartCoroutine(SummonFallingRock());
            }
            break;

        case BossBehaviour.ATTACK01:
            StartCoroutine(Attack1());
            break;

        case BossBehaviour.ATTACK02:
            StartCoroutine(Attack2());
            break;
        }
    }
コード例 #2
0
    private void executeBehavior(BossBehaviour behaviour)
    {
        var defaultColor = GetComponent <SpriteRenderer>().color;

        //GetComponent<Animator>().speed = 0;
        switch (behaviour)
        {
        case BossBehaviour.Generate:
            GetComponent <SpriteRenderer>().color = Color.blue;
            StartCoroutine(spawnDummy(10, 4, 4f, defaultColor));
            break;

        case BossBehaviour.BulletHell:
            GetComponent <SpriteRenderer>().color = Color.cyan;
            StartCoroutine(untargetedFire(4f, speed, defaultColor));

            break;

        case BossBehaviour.Shake:
            rb2d.AddForce(250 * transform.up);
            enemy_anim.SetBool("Attack", true);
            FMOD.Studio.EventInstance shakeSound = FMODUnity.RuntimeManager.CreateInstance("event:/Combat/BossHitGround");
            shakeSound.start();
            break;
        }
    }
コード例 #3
0
 void Start()
 {
     fireEleAI     = GetComponentInParent <FireElementalAI>();
     skeletonAI    = GetComponentInParent <SkeletonAI>();
     enemyMage     = GetComponentInParent <EnemyMage>();
     bossBehaviour = GetComponentInParent <BossBehaviour>();
 }
コード例 #4
0
    public void StartGame()
    {
        if (bossBehaviour == null)
        {
            bossBehaviour = FindObjectOfType <BossBehaviour>();
        }
        RuntimeTimer = Timer;
        bossBehaviour.Revieve();
        bTimerActive = true;

        PlayerShootProjectile player = FindObjectOfType <PlayerShootProjectile>();

        player.Reset();
        cameraBehaviour.ResetCamera();
        if (princeGO)
        {
            Destroy(princeGO);
        }

        foreach (StatueBehaviour statue in AllStatues)
        {
            Destroy(statue.gameObject);
        }
        AllStatues.Clear();
    }
コード例 #5
0
 // Use this for initialization
 void Start()
 {
     if (!transform.parent.name.Contains("Boss"))
     {
         _behaviour = GetComponentInParent <EnemyBehaviour>();
         if (_behaviour._topdown)
         {
             _cooldownComparator = 1f;
         }
         else
         {
             _cooldownComparator = 4f;
         }
         _gunAudio = GetComponent <AudioSource>();
     }
     else
     {
         _bossBehaviour = GetComponentInParent <BossBehaviour>();
         _player        = GameObject.Find("Pleiades");
         if (_bossBehaviour._topdown)
         {
             _cooldownComparator = 1f;
         }
         else
         {
             _cooldownComparator = 4f;
         }
     }
 }
コード例 #6
0
        private string GetNodePath(BossBehaviour behaviour, BehaviourNode node)
        {
            var arrayName  = node is ActionBehaviourNode ? "_actionBehaviours" : "_compoundBehaviours";
            var arrayField = behaviour.GetType().GetField(arrayName, BindingFlags.NonPublic | BindingFlags.Instance);

            if (arrayField == null)
            {
                throw new ApplicationException(string.Format("Cannot find field {0} in class {1}", arrayName,
                                                             behaviour.GetType()));
            }

            var dict      = arrayField.GetValue(behaviour);
            var keysField = FindFieldInHierarchy(dict.GetType(), "_keys");

            if (keysField == null)
            {
                throw new ApplicationException(string.Format("Cannot find field {0} in class {1}", "_keys",
                                                             dict.GetType()));
            }

            var list = (IList)keysField.GetValue(dict);

            var index = list.IndexOf(node.Guid);

            if (index < 0)
            {
                throw new ArgumentException(string.Format("Cannot find node {0}", node));
            }

            var path = string.Format("{0}._values.Array.data[{1}]", arrayName, index);

            return(path);
        }
コード例 #7
0
    public void Resetter()
    {
        BossBehaviour bossBehaviour = boss.GetComponent <BossBehaviour>();

        ResetScreen.SetActive(false);
        //resetting boss battle
        BossTrigger.bossMusicPlaying = false;
        if (bossDefeated == false)
        {
            bossBehaviour.bossHP = 3;
            bossBehaviour.BossRespawn();
            FindObjectOfType <AudioManager>().Play("MainTheme");
        }
        else
        {
            FindObjectOfType <AudioManager>().Play("EndingTheme");
        }
        //Checkpoint respawn
        Player.transform.position = respawnPoint;
        //Enemies respawnen
        foreach (GameObject enms in allEnemies)
        {
            enms.SetActive(true);
        }
        scriptedEvent = false;
    }
コード例 #8
0
    //protected BossAttackAnimator bossAttackAnimator;

    // Start is called before the first frame update
    void Start()
    {
        bossBehaviour               = GetComponent <BossBehaviour>();
        stunAnimator                = GetComponent <StunAnimator>();
        damageableAnimator          = GetComponent <DamageableAnimator>();
        projectileSummonerBehaviour = gameObject.GetComponent <ProjectileSummonerBehaviour>();
        GoToNextState();
    }
コード例 #9
0
    // OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        player = GameObject.FindGameObjectWithTag("Player").transform;
        rb     = animator.GetComponent <Rigidbody2D>();
        boss   = animator.GetComponent <BossBehaviour>();

        rb.constraints = RigidbodyConstraints2D.FreezeRotation;
    }
コード例 #10
0
ファイル: BossHealth.cs プロジェクト: polikas/BloodLust
 void Start()
 {
     currentScene = SceneManager.GetActiveScene();
     sceneName    = currentScene.name;
     if (sceneName == "BossScene")
     {
         inst = GameObject.FindGameObjectWithTag("Boss").GetComponent <BossBehaviour>();
     }
 }
コード例 #11
0
    // OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        rb           = animator.GetComponent <Rigidbody2D>();
        boss         = animator.GetComponent <BossBehaviour>();
        wallTarget   = boss.nearestWall();
        boss.backing = false;

        rb.constraints = RigidbodyConstraints2D.FreezeRotation;
    }
コード例 #12
0
    /// <summary>
    /// Creates fight in the given position with the given Hero Data (DNA) and Boss Data (BossHevaviour)
    /// </summary>
    private Fight CreateFight(Vector3 position, DNA dna, BossBehaviour bossBehaviour)
    {
        Fight newFight = Instantiate(FightPrefab, position, FightPrefab.transform.rotation).GetComponent <Fight>();

        newFight.StartFight(dna, bossBehaviour);
        newFight.name             = newFight.nameGo = "Fight " + (fightList.Count + 1);
        newFight.transform.parent = fightContainer;
        return(newFight);
    }
コード例 #13
0
        public static InspectorPopup ShowInspectorPopup(BossBehaviour behaviour, BehaviourNode node)
        {
            var window = GetWindow <InspectorPopup>();

            window.titleContent = new GUIContent("Node Editor");
            window._editor      =
                BehaviourNodeEditor.CreateEditorForProperty(behaviour, window.GetNodePath(behaviour, node));
            return(window);
        }
コード例 #14
0
    void Start()
    {
        bossBehaviour    = GetComponent <BossBehaviour>();
        weaponController = FindObjectOfType <WeaponController>();
        playerStats      = FindObjectOfType <PlayerStats>();
        anim             = GetComponent <Animator>();

        currentHealth = maxHealth;
    }
コード例 #15
0
    public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        BossBehaviour bossBehaviour = animator.transform.root.GetComponent <BossBehaviour>();

        if (bossBehaviour)
        {
            bossBehaviour.SetAllowMovement(true);
        }
    }
コード例 #16
0
    IEnumerator ChangeBehaviour()
    {
        isReadyToChangeState = false;
        float wait = Random.Range(5, 8);

        bossBehaviour = BossBehaviour.Break;
        yield return(new WaitForSeconds(wait));

        bossBehaviour = (BossBehaviour)Random.Range(0, 3);
    }
コード例 #17
0
    public override void Act(DayFSM FSM)
    {
        BossBehaviour BossB = FSM.bossB;

        if (BossB != null)
        {
            BossB.navMeshAgent.destination = BossB.target.transform.position;
            BossB.navMeshAgent.isStopped   = false;
        }
    }
コード例 #18
0
ファイル: Fight.cs プロジェクト: Juxus96/GeneticRPG
 /// <summary>
 /// Sets the Fight Data
 /// </summary>
 public void StartFight(DNA dna, BossBehaviour newBehaviour)
 {
     hero = Instantiate(hero, heroSpawn);
     boss = Instantiate(boss, bossSpawn);
     hero.InitHero(dna);
     if (newBehaviour)
     {
         boss.currentBehaviour = newBehaviour;
     }
 }
コード例 #19
0
ファイル: Boss.cs プロジェクト: PsvitaNeedsCat/earth-bender
    private void GoToNextBehaviour()
    {
        currentBehaviour.Reset();
        currentBehaviourIndex = (currentBehaviourIndex + 1) % totalbehaviours;
        currentBehaviour      = behaviourLoop[currentBehaviourIndex];

        CheckBehaviourSkips();

        currentBehaviour.StartBehaviour();
    }
コード例 #20
0
    public void OnDeath()
    {
        if (!!bossGO)
        {
            BossBehaviour bb = bossGO.GetComponent <BossBehaviour>();
            bb.crystals_left -= 1;
        }

        Destroy(gameObject);
    }
コード例 #21
0
ファイル: PivotPoint.cs プロジェクト: nova666/I-HERO
 void Start()
 {
     if (gameObject.tag == "Boss")
     {
         boss = FindObjectOfType <BossBehaviour>();
     }
     else
     {
         waypointSystem = FindObjectOfType <WayPointSystem>();
     }
 }
コード例 #22
0
    void OnTriggerStay2D(Collider2D coll)
    {
        if (coll.gameObject.tag == "Player" && !_applyForce && _impaledEnemy != null)
        {
            EnemyBehaviour enemyBehaviour = _impaledEnemy.gameObject.GetComponent <EnemyBehaviour>();
            if (enemyBehaviour != null)
            {
                if (enemyBehaviour._health <= 400)
                {
                    if (coll.gameObject.GetComponent <PlatformControls>() != null)
                    {
                        coll.gameObject.GetComponent <PlatformControls>()._health += _impaledEnemy.gameObject.GetComponent <EnemyBehaviour>()._health;
                    }
                    else if (coll.gameObject.GetComponent <TopDownControls>() != null)
                    {
                        coll.gameObject.GetComponent <TopDownControls>()._health += _impaledEnemy.gameObject.GetComponent <EnemyBehaviour>()._health;
                    }
                    _impaledEnemy.gameObject.GetComponent <EnemyBehaviour>()._health += 10000;
                    if (coll.transform.Find("RangedCombatHandler") != null)
                    {
                        coll.transform.Find("RangedCombatHandler").GetComponent <HandleRangedDamage>()._currentAmount -= 1;
                    }
                    _impaledEnemy.gameObject.GetComponent <EnemyBehaviour>()._shouldDestroy = true;
                    Destroy(gameObject);
                }
            }
            else
            {
                BossBehaviour bossBehaviour = _impaledEnemy.gameObject.GetComponent <BossBehaviour>();
                if (bossBehaviour._health <= 400)
                {
//                    coll.gameObject.GetComponent<PlatformControls>()._health += bossBehaviour._health;
//                    bossBehaviour._health += 10000;
                    if (coll.GetComponent <PlatformControls> () != null)
                    {
                        coll.transform.Find("RangedCombatHandler").GetComponent <HandleRangedDamage> ()._currentAmount -= 1;
                    }
                    Destroy(gameObject);
                }
            }
        }
        else if (coll.gameObject.tag == "Player" && !_applyForce && _impaledGround != null)
        {
            if (coll.GetComponent <PlatformControls> () != null)
            {
                coll.transform.Find("RangedCombatHandler").GetComponent <HandleRangedDamage> ()._currentAmount -= 1;
            }
            Destroy(gameObject);
        }
        else if (coll.gameObject.tag == "Player" && _impaledGround == null && _impaledEnemy == null && !_applyForce)
        {
            Destroy(gameObject);
        }
    }
コード例 #23
0
    // OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        rb   = animator.GetComponent <Rigidbody2D>();
        boss = animator.GetComponent <BossBehaviour>();

        rb.constraints = RigidbodyConstraints2D.FreezeAll;
        rb.simulated   = false;

        boss.inHeal = true;
        boss.SpawnAntennas();
        protectionOrb = Instantiate(boss.protectionOrbPrefab, boss.transform.position + new Vector3(0, 1.5f, 0), boss.transform.rotation);
    }
コード例 #24
0
ファイル: BossTeaBag.cs プロジェクト: ButterKane/Robot-emUp
 public void Init(BossBehaviour _linkedBoss, float _previewDuration, float _pushForce, float _damages, float _pushRange, float _damageRange)
 {
     transform.localScale = Vector3.one * _damageRange * 2f;
     previewDuration      = _previewDuration;
     pushForce            = _pushForce;
     damages     = _damages;
     pushRange   = _pushRange;
     damageRange = _damageRange;
     linkedBoss  = _linkedBoss;
     StartCoroutine(TeaBag_C());
     Destroy(this.gameObject, previewDuration + 0.1f);
 }
コード例 #25
0
 override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
 {
     if (!DeactivateEventSend)
     {
         DeactivateEventSend = true;
         BossBehaviour bossBehaviour = animator.transform.root.GetComponent <BossBehaviour>();
         if (bossBehaviour)
         {
             bossBehaviour.WeakPointState(false);
         }
     }
 }
コード例 #26
0
 public override void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
 {
     base.OnStateUpdate(animator, stateInfo, layerIndex);
     if (AttackTimes.Length > AttackIndex && stateInfo.normalizedTime > AttackTimes[AttackIndex])
     {
         AttackIndex++;
         BossBehaviour bossBehaviour = animator.transform.root.GetComponent <BossBehaviour>();
         if (bossBehaviour)
         {
             bossBehaviour.Attack();
         }
     }
 }
コード例 #27
0
ファイル: HealthManager.cs プロジェクト: polikas/BloodLust
    /// </summary>

    void Start()
    {
        playerDamage = GetComponent <AudioSource>();
        currentScene = SceneManager.GetActiveScene();
        sceneName    = currentScene.name;
        isDead       = false;
        bossDead     = false;
        instance     = GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerManager>();
        if (sceneName == "BossScene")
        {
            inst = GameObject.FindGameObjectWithTag("Boss").GetComponent <BossBehaviour>();
        }
    }
コード例 #28
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        PlayerController pc = collision.GetComponent <PlayerController>();

        if (!!pc && !!bossGO)
        {
            BossBehaviour bb = bossGO.GetComponent <BossBehaviour>();
            if (!!bb)
            {
                bb.bossPulled = true;
            }
        }
    }
コード例 #29
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.CompareTag("Obstacle"))
        {
            Destroy(gameObject);
        }

        if (shooter == Shooter.player)
        {
            EnemyAIController enemy   = collision.GetComponent <EnemyAIController>();
            BossBehaviour     boss    = collision.GetComponent <BossBehaviour>();
            ProtectionAntenna antenna = collision.GetComponent <ProtectionAntenna>();

            if (enemy != null)
            {
                Vector2 knockbackDirection = (enemy.transform.position - transform.position).normalized * shootKnockback;
                enemy.TakeDamage(shootDamage, knockbackDirection);
                Destroy(gameObject);
            }

            if (boss != null)
            {
                boss.TakeDamage(shootDamage);
                Destroy(gameObject);
            }

            if (antenna != null)
            {
                antenna.TakeDamage(shootDamage);
                Destroy(gameObject);
            }

            /*    if (!collision.CompareTag("Player"))
             *      Destroy(gameObject);*/
        }
        else
        {
            PlayerCombat enemy = collision.GetComponent <PlayerCombat>();
            if (enemy != null)
            {
                Vector2 knockbackDirection = (enemy.transform.position - transform.position).normalized * shootKnockback;
                enemy.TakeDamage(shootDamage, knockbackDirection);
                Destroy(gameObject);
            }

            /*     if (!collision.CompareTag("Enemy"))
             *       Destroy(gameObject);*/
        }
    }
コード例 #30
0
ファイル: BossBT.cs プロジェクト: Ckandzy/Fragmentation
    private void OnEnable()
    {
        m_BossBehaviour = GetComponent <BossBehaviour>();
        m_Animator      = GetComponent <Animator>();

        m_Ai.OpenBranch(
            BT.RandomSequence().OpenBranch(
                BT.Root().OpenBranch(
                    BT.Trigger(m_Animator, "Walk 1"),
                    BT.Wait(0.2f),
                    BT.WaitForAnimatorState(m_Animator, "Idle 1")
                    )
                )
            );
    }