예제 #1
0
    private void Awake()
    {
        Health = GetComponent <HealthController>();

        if (Health != null)
        {
            Health.SetMaxHealth(_data.MaxHealth);
            Health.OnDead += Dead;
        }

        _detectionComponent = GetComponent <DetectionComponent>();

        _aimingComponent = GetComponent <AimingComponent>();

        _firingComponent = GetComponent <FiringComponent>();

        _weapon = GetComponent <Weapon>();

        GameEventsManager.OnPlayerDead += DeactivateComponents;
    }
예제 #2
0
        public override void Start()
        {
            engineComponent = FindObjectOfType <EngineComponent>();
            aimingComponent = FindObjectOfType <AimingComponent>();
            damageComponent = FindObjectOfType <DamageComponent>();

            aimingComponent.PropertyChanged += (sender, args) =>
                                               playerGun.ShootingAbility.shootingPeriodCoefficient = aimingComponent.Value;

            damageComponent.PropertyChanged += (sender, args) =>
                                               playerGun.ShootingAbility.bullet.damageCoefficient = damageComponent.Value;

            rb             = GetComponent <Rigidbody2D>();
            playerCollider = GetComponent <Collider2D>();
            playerGun      = GetComponentInChildren <GunController>();

            damagePart   = Vars.GetCarPart(PartType.Damage);
            shootingPart = Vars.GetCarPart(PartType.Shooting);
            armorPart    = Vars.GetCarPart(PartType.Armor);
            enginePart   = Vars.GetCarPart(PartType.Engine);
            base.Start();
            StartCoroutine(ApplyParts());
        }