コード例 #1
0
    private void Awake()
    {
        manualInput       = GetComponent <ManualInput>();
        animationProgress = GetComponent <AnimationProgress>();
        aiProgress        = GetComponentInChildren <AIProgress>();
        damageDetector    = GetComponentInChildren <DamageDetector>();
        boxCollider       = GetComponent <BoxCollider>();
        animator          = GetComponentInChildren <Animator>();
        obstacle          = GetComponent <NavMeshObstacle>();

        collisionSpheres       = GetComponentInChildren <CollisionSpheres>();
        collisionSpheres.owner = this;
        CollisionSpheres.SetupColliders(boxCollider, out float bottom, out float top, out float front, out float back, out float right, out float left);
        collisionSpheres.PlaceEdgeSphere(bottom, top, front, back, left, right);
        collisionSpheres.FindEveryChild(gameObject.transform);

        aiController = GetComponentInChildren <AIController>();
        if (aiController == null)
        {
            if (obstacle != null)
            {
                obstacle.carving = true;
            }
        }

        RegisterCharacter();
    }
コード例 #2
0
ファイル: Patrol.cs プロジェクト: 81887821/Project-Juliet
 protected override void Awake()
 {
     base.Awake();
     playerDetector = GetComponentInChildren<TargetDetector>();
     damageDetector = GetComponentInChildren<DamageDetector>();
     animator = GetComponent<Animator>();
 }
コード例 #3
0
    private void OnTriggerStay2D(Collider2D collision)
    {
        DamageDetector target = collision.GetComponent <DamageDetector>();

        if (target != null && TargetMask.Contains(target.gameObject.layer))
        {
            interactable.OnAttack(target.Interactable);
        }
    }
コード例 #4
0
 private void OnTriggerEnter(Collider other)
 {
     if (other.tag == "Player")
     {
         DamageDetector damage = other.gameObject.transform.root.GetComponent <DamageDetector>();
         AttackInfo     attack = new AttackInfo();
         damage.TakeDamage(attack);
     }
 }
コード例 #5
0
    private void OnTriggerEnter(Collider other)
    {
        if (other.tag == "Enemy")
        {
            DamageDetector damage = other.gameObject.transform.root.GetComponent <DamageDetector>();
            AttackInfo     attack = new AttackInfo();


            if (CharacterSwitch.characterSwitch == 1)
            {
                damage.TakeDamage(attack);
                damage.TakeDamage(attack);
            }

            if (CharacterSwitch.characterSwitch == 2)
            {
                damage.TakeDamage(attack);
                damage.TakeDamage(attack);
                damage.TakeDamage(attack);
            }

            if (CharacterSwitch.characterSwitch == 3)
            {
                damage.TakeDamage(attack);
            }

            poolObj.TurnOff();
        }

        if (other.tag == "Player")
        {
            DamageDetector damage = other.gameObject.transform.root.GetComponent <DamageDetector>();
            AttackInfo     attack = new AttackInfo();

            damage.TakeDamage(attack);

            poolObj.TurnOff();
        }

        if (other.tag == "Geometry")
        {
            poolObj.TurnOff();
        }

        if (other.tag == "Destroyable")
        {
            if (height > 0)
            {
                Destroy(other.gameObject);
            }

            poolObj.TurnOff();
        }
    }
コード例 #6
0
 public static bool DamageResponse_Prefix(EntityAlive __instance, ref DamageResponse _dmResponse)
 {
     try
     {
         return(DamageDetector.ProcessPlayerDamage(__instance, _dmResponse));
     }
     catch (Exception e)
     {
         Log.Out(string.Format("[SERVERTOOLS] Error in Injections.DamageResponse_Prefix: {0}.", e.Message));
     }
     return(true);
 }
コード例 #7
0
 public static bool ChangeBlocks_Prefix(GameManager __instance, string persistentPlayerId, ref List <BlockChangeInfo> _blocksToChange)
 {
     try
     {
         Log.Out(string.Format("[SERVERTOOLS] ChangeBlocks_Prefix executed."));
         return(DamageDetector.ProcessBlockDamage(__instance, persistentPlayerId, _blocksToChange));
     }
     catch (Exception e)
     {
         Log.Out(string.Format("[SERVERTOOLS] Error in Injections.ChangeBlocks_Prefix: {0}.", e.Message));
     }
     return(true);
 }
コード例 #8
0
ファイル: HUD.cs プロジェクト: Trineas/Karakuri-Festival
    void Update()
    {
        DamageDetector  dd = player.gameObject.transform.root.GetComponent <DamageDetector>();
        CharacterSwitch cw = player.gameObject.transform.root.GetComponent <CharacterSwitch>();

        health.text = "Health: " + hpHud;
        lives.text  = "Lives: 1";

        if (dd.DamageTaken == 0)
        {
            hpHud = 3;
        }

        if (dd.DamageTaken == 1)
        {
            hpHud = 2;
        }

        if (dd.DamageTaken == 2)
        {
            hpHud = 1;
        }

        if (dd.DamageTaken == 3)
        {
            hpHud      = 0;
            lives.text = "Lives: 0";
        }

        if (CharacterSwitch.characterSwitch == 1)
        {
            char1.gameObject.SetActive(true);
            char2.gameObject.SetActive(false);
            char3.gameObject.SetActive(false);
        }

        if (CharacterSwitch.characterSwitch == 2)
        {
            char1.gameObject.SetActive(false);
            char2.gameObject.SetActive(true);
            char3.gameObject.SetActive(false);
        }

        if (CharacterSwitch.characterSwitch == 3)
        {
            char1.gameObject.SetActive(false);
            char2.gameObject.SetActive(false);
            char3.gameObject.SetActive(true);
        }
    }
コード例 #9
0
    private void Update()
    {
        foreach (Collider2D collision in Physics2D.OverlapBoxAll(boxCollider.bounds.center, boxCollider.bounds.size, 0f, TargetMask))
        {
            DamageDetector target = collision.GetComponent <DamageDetector>();

            if (target != null && TargetMask.Contains(target.gameObject.layer))
            {
                if (!hitList.Contains(target))
                {
                    hitList.Add(target);
                    interactable.OnAttack(target.Interactable);
                }
            }
        }
    }
コード例 #10
0
    private void Awake()
    {
        bool SwitchBack = false;

        if (!IsFacingForward())
        {
            SwitchBack = true;
        }

        FaceForward(true);

        SetColliderSpheres();

        if (SwitchBack)
        {
            FaceForward(false);
        }

        animationProgress = GetComponent <AnimationProgress>();
        damageDetector    = GetComponentInChildren <DamageDetector>();
    }
コード例 #11
0
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Return) || Input.GetKeyDown(KeyCode.Joystick1Button7))
        {
            if (titleActive)
            {
                titleActive = false;
                title.gameObject.SetActive(false);
                Time.timeScale = 1;
            }

            else if (!titleActive && !gameoverActive)
            {
                if (!pauseActive)
                {
                    pauseActive = true;
                    pauseScreen.gameObject.SetActive(true);
                    Time.timeScale = 0;
                }

                else if (pauseActive)
                {
                    pauseActive = false;
                    pauseScreen.gameObject.SetActive(false);
                    Time.timeScale = 1;
                }
            }
        }

        // game over screen on x damage taken
        DamageDetector dd = player.gameObject.transform.root.GetComponent <DamageDetector>();

        if (dd.DamageTaken >= 3)
        {
            gameoverActive = true;
            gameOver.gameObject.SetActive(true);
        }
    }