コード例 #1
0
ファイル: Encounter.cs プロジェクト: srakowski/LD45
        public Encounter TakeMitigatedDamage(int points)
        {
            var modifier        = Constants.DmgMod / (Constants.DmgMod + ActiveEnemy.Select(e => e.AttackDefense).ValueOr(() => 0));
            var effectivePoints = (int)(points * modifier);

            return(TakeDamage(effectivePoints));
        }
コード例 #2
0
    void OnTriggerEnter(Collider other)
    {
        ActiveEnemy enemy = other.GetComponent <ActiveEnemy>();

        if (enemy != null)
        {
            enemy.health -= damage;
            Debug.Log(enemy.health);
        }
        else
        {
            Debug.Log(false);
        }
        Destroy(gameObject);
    }
コード例 #3
0
 // Update is called once per frame
 void Update()
 {
     if (Input.GetMouseButtonDown(0))
     {
         Vector3    point = new Vector3(playerCamera.pixelWidth / 2, playerCamera.pixelHeight / 2);
         Ray        ray   = playerCamera.ScreenPointToRay(point);
         RaycastHit hit;
         if (Physics.Raycast(ray, out hit))
         {
             ActiveEnemy enemy = hit.transform.gameObject.GetComponent <ActiveEnemy>();
             if (enemy != null)
             {
                 enemy.health -= damage;
             }
         }
     }
 }
コード例 #4
0
ファイル: BonusBullet.cs プロジェクト: jomagmag/Snake-box
        public void Move()
        {
            _timeService      = Services.Instance.TimeService;
            _bullet.position += _speed * _bullet.forward * _timeService.DeltaTime();
            Collider[] _collidedObjects = new Collider[30];
            var        tagCollider      = Physics.OverlapSphereNonAlloc(_bullet.transform.position, 3, _collidedObjects);

            for (int i = 0; i < tagCollider; i++)
            {
                if (_collidedObjects[i].CompareTag(TagManager.GetTag(TagType.Enemy)))
                {
                    for (int b = 0; b < Services.Instance.LevelService.ActiveEnemies.Count; b++)
                    {
                        if (Services.Instance.LevelService.ActiveEnemies[b].GetTransform() == _collidedObjects[i].transform)
                        {
                            if (Services.Instance.LevelService.ActiveEnemies[b] is IDamageAddressee ActiveEnemy)
                            {
                                ActiveEnemy.RegisterDamage(_damage, ArmorTypes.None);
                            }
                        }
                    }
                }
            }
        }