private void OnTriggerEnter(Collider other)
    {
        InteractItem_Base item = other.GetComponentInParent <InteractItem_Base>();

        if (item)
        {
            ItemsInSight.Add(item);
            if (NewItemEnterEvent != null)
            {
                NewItemEnterEvent(item);
            }
        }
        else
        {
            Character_Base ch = other.GetComponent <Character_Base>();
            if (ch && ch.CState.isAlive)
            {
                CharactersInSight.Add(ch);
                if (NewCharacterEnterEvent != null)
                {
                    NewCharacterEnterEvent(ch);
                }
            }
        }
    }
    private void OnEndInteract(Character_Base character, bool success)
    {
        CharacterState_Base CState = character.GetComponent <CharacterState_Base>();

        if (success)
        {
            foreach (ChangeStateValueInfo info in SuccessChangeValues)
            {
                switch (info.valueType)
                {
                case StateValueType.Stamina:
                    CState.AIStamina += info.amount;
                    break;
                }
            }
        }
        else
        {
            foreach (ChangeStateValueInfo info in FailChangeValues)
            {
                switch (info.valueType)
                {
                case StateValueType.Stamina:
                    CState.AIStamina += info.amount;
                    break;
                }
            }
        }
    }
    public override void ActionUpdate(AI_Base brain, Character_Base character)
    {
        base.ActionUpdate(brain, character);
        ResetPathTimer += Time.deltaTime;
        if (ResetPathTimer >= ResetTimerDuration)
        {
            ResetPathTimer = 0;
            agent.CalculatePath(TargetPosition, path);
        }
        foreach (Vector3 p in path.corners)
        {
            Debug.DrawLine(p, p + Vector3.up * 5, Color.red, 0.2f);
        }

        if (path.corners.Length >= 2)
        {
            character.Move(path.corners[1] - character.transform.position);
            if (Vector3.Distance(character.transform.position, path.corners[1]) <= 0.1f)
            {
                agent.CalculatePath(TargetPosition, path);
            }
        }
        else
        {
            ActionFinish();            
        }

        if (Vector3.Distance(character.transform.position, TargetPosition) <= Distance)
        {
            ActionFinish(); 
        }
    }
 private void Awake()
 {
     characterBase             = GetComponent <Character_Base>();
     selectionCircleGameObject = transform.Find("SelectionCircle").gameObject;
     HideSelectionCircle();
     state = State.Idle;
 }
    //---------------------
    // 銃以外と衝突したら
    //---------------------
    private void OnTriggerEnter(Collider col)
    {
        if (col.gameObject.name.Contains("Parts_Gun"))
        {
            return;
        }

        if (col.gameObject.tag == "Enemy" || col.gameObject.tag == "Player")
        {
            Character_Base tmp = col.gameObject.GetComponent <Character_Base>();

            if (tmp)
            {
                // ダメージを与える
                tmp.HP_Sub(Get_Damage());
            }
        }
        if (col.gameObject.tag == "Destruction_Object")
        {
            Destruction_Object tmp = col.gameObject.GetComponent <Destruction_Object>();

            // Playerが触れた時のみダメージを与える
            tmp.Life_Sub(Get_Damage(), transform.root.tag);
        }

        if (gameObject.layer != col.gameObject.layer)
        {
            // 消滅
            Destroy(gameObject);
        }
    }
 public virtual void MissionStart(AI_Base brain, Character_Base character)
 {
     ownerBrain     = brain;
     ownerCharacter = character;
     SetUpActions();
     ActionStart();
 }
Exemple #7
0
    public override void Dodge()
    {
        if (onGround)
        {
            TurnBody();

            bool           hasTarget = false;
            RaycastHit2D[] hits      = Physics2D.RaycastAll(transform.position + Vector3.up * 0.5f, GetForward(), 4f);
            foreach (RaycastHit2D hit in hits)
            {
                Character_Base c = hit.collider.GetComponent <Character_Base>();
                if (c && c.isStabing && !c.isDead && c.camp != camp)
                {
                    hasTarget = true;
                    break;
                }
            }
            if (hasTarget)
            {
                StartAction(CounterStabPrefab);
            }
            else
            {
                StartAction(dodgeActionPrefab);
            }
        }
    }
Exemple #8
0
 // Start is called before the first frame update
 void Start()
 {
     rb2d = GetComponent <Rigidbody2D>();
     bC2d = GetComponent <BoxCollider2D>();
     cB   = GetComponent <Character_Base>();
     SaveFrezze();
 }
Exemple #9
0
 private void Awake()
 {
     enemyList.Add(this);
     characterBase = gameObject.GetComponent <Character_Base>();
     healthSystem  = new HealthSystem(100);
     SetStateNormal();
 }
    public override void ActionStart(AI_Mission_Base mission, AI_Base brain, Character_Base character)
    {
        base.ActionStart(mission, brain, character);
        agent = character.GetComponent<NavMeshAgent>();

        agent.CalculatePath(TargetPosition, path);
    }
    private void OnTriggerExit(Collider other)
    {
        InteractItem_Base item = other.GetComponentInParent <InteractItem_Base>();

        if (item)
        {
            ItemsInSight.Remove(item);
            if (ItemExitEvent != null)
            {
                ItemExitEvent(item);
            }
        }
        else
        {
            Character_Base ch = other.GetComponent <Character_Base>();
            if (ch)
            {
                CharactersInSight.Remove(ch);
                if (CharacterExitEvent != null)
                {
                    CharacterExitEvent(ch);
                }
            }
        }
    }
 private void Awake()
 {
     instance          = this;
     playerMain        = GetComponent <PlayerMain>();
     characterBase     = gameObject.GetComponent <Character_Base>();
     material          = transform.Find("Body").GetComponent <MeshRenderer>().material;
     materialTintColor = new Color(1, 0, 0, 0);
 }
 private void Awake()
 {
     instance      = this;
     playerBase    = gameObject.GetComponent <Character_Base>();
     rigidbody2d   = transform.GetComponent <Rigidbody2D>();
     boxCollider2d = transform.GetComponent <BoxCollider2D>();
     isDead        = false;
 }
Exemple #14
0
 public void ReleaseSlot(Character_Base character)
 {
     if (SlotUser == character)
     {
         SlotState = true;
         SlotUser  = null;
     }
 }
Exemple #15
0
 public void OccupySlot(Character_Base character)
 {
     if (CanInteract())
     {
         SlotState = false;
         SlotUser  = character;
     }
 }
 public override void MissionAbort(AI_Base brain, Character_Base character, AI_Mission_Base newMission)
 {
     base.MissionAbort(brain, character, newMission);
     if (TargetItem)
     {
         TargetItem.ReleaseSlot(ownerCharacter);
     }
 }
 private void Awake()
 {
     characterBase      = GetComponent <Character_Base>();
     selectedGameObject = transform.Find("Selected").gameObject;
     movePosition       = GetComponent <IMovePosition>();
     SetSelectedVisible(false);
     state = State.Normal;
 }
 public virtual void OnCreated(Character_Base owner, Weapon_Shooter weapon)
 {
     Owner    = owner;
     Weapon   = weapon;
     Damage   = weapon.GetDamage();
     LifeTime = weapon.Range / Speed;
     LifeSpan = LifeTime;
 }
Exemple #19
0
 private void Awake()
 {
     instance          = this;
     playerBase        = gameObject.GetComponent <Character_Base>();
     playerRigidbody2D = gameObject.GetComponent <Rigidbody2D>();
     SetStateNormal();
     health = 4;
 }
Exemple #20
0
 public void Check(Character_Base character)
 {
     if (Item.CanInteract())
     {
         Item.OccupySlot(character);
         ActionFinish();
     }
 }
Exemple #21
0
 public override void ActionUpdate(AI_Base brain, Character_Base character)
 {
     base.ActionUpdate(brain, character);
     if (character.canAttack())
     {
         character.AttackCommand(TargetTransform.position - Character.transform.position);
         ActionFinish();
     }
 }
Exemple #22
0
 public override void OnActionStart(Character_Base character)
 {
     base.OnActionStart(character);
     Caster.isDefending = true;
     if (parryDuration > 0)
     {
         Caster.isParrying = true;
     }
 }
Exemple #23
0
    public virtual bool InteractStart(Character_Base character)
    {
        if (InteractStartEvent != null)
        {
            InteractStartEvent(character);
        }

        return(true);
    }
Exemple #24
0
    private void Start()
    {
        SaveFrezze();
        rb2d = GetComponent <Rigidbody2D>();
        cB   = GetComponent <Character_Base>();

        cB.Flip += Flip;
        Invoke("moveArms", 0.05f);
    }
Exemple #25
0
 public override void ActionStart(AI_Mission_Base mission, AI_Base brain, Character_Base character)
 {
     base.ActionStart(mission, brain, character);
     if (character.canAttack())
     {
         character.AttackCommand(TargetTransform.position - Character.transform.position);
         ActionFinish();
     }
 }
Exemple #26
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        Character_Base character = collision.GetComponent <Character_Base>();

        if (character)
        {
            character.isInBush = true;
        }
    }
    public virtual void StartBehaviour(Character_Base character)
    {
        if (AnimationName.Length != 0)
        {
            character.PlayAnimation(AnimationName);
        }

        Character = character;
    }
Exemple #28
0
 public override void ActionUpdate(AI_Base brain, Character_Base character)
 {
     base.ActionUpdate(brain, character);
     character.Move(TargetPosition - character.transform.position);
     if (Vector3.Distance(character.transform.position, TargetPosition) <= Distance)
     {
         ActionFinish();
     }
 }
Exemple #29
0
 public virtual void OnActionStart(Character_Base character)
 {
     Caster    = character;
     direction = character.InputDirectionRight ? 1 : -1;
     if (isStab || isBottomAttack)
     {
         PlayerInput.instance.GetComponent <Character_Player>().ShowDangerSign();
     }
     Caster.isStabing = isStab;
 }
Exemple #30
0
    private void Awake()
    {
        enemyMain     = GetComponent <EnemyMain>();
        characterBase = GetComponent <Character_Base>();

        aimTransform = transform.Find("Aim");

        SetStateNormal();
        HideAim();
    }
 void Awake()
 {
     body = GetComponentInParent<Rigidbody2D>();
     charStats = GetComponentInParent<Character_Base>();
     anim = GetComponent<Animator>();
 }