示例#1
0
    void PickupWeapon()
    {
        ObjectPool pool = null;

        switch (weaponType)
        {
        case WeaponClass.Gun:
            pool = SpawnableObjects.Instance.GunWeaponSelectorPool;
            break;

        case WeaponClass.Melee:
            pool = SpawnableObjects.Instance.MeleeWeaponSelectorPool;
            break;
        }

        if (pool == null)
        {
            return;
        }

        WeaponFactionSelector selector = pool.create().GetComponent <WeaponFactionSelector>();

        selector.transform.position = transform.position;
        selector.transform.parent   = transform;
        _Character.PickupWeapon(selector);
    }
示例#2
0
    public void PickupWeapon(WeaponFactionSelector _weaponSelector)
    {
        if (!CanPickupWeapon)
        {
            return;
        }
        FactionWeapon weaponToInstantiate = null;

        for (int i = 0; i < _weaponSelector.weapons.Count; i++)
        {
            if (_weaponSelector.weapons[i].faction == CharacterFaction)
            {
                weaponToInstantiate = _weaponSelector.weapons[i];
                break;
            }
        }

        if (weaponToInstantiate != null)
        {
            // drop current selector and pick new
            if (CurrentWeaponSelector != null)
            {
                //force destroy
                CurrentWeaponSelector.currentInstantiatedWeapon.Ammo = 0;
                CurrentWeaponSelector.CharacterDropSelector(transform.position);
            }
            CurrentWeaponSelector = _weaponSelector;
            CurrentWeaponSelector.CharacterPickSelector(this, weaponToInstantiate);
        }
    }
示例#3
0
    void SpawnSelector()
    {
        var pool = GetPool(WeaponType);

        _SpawnedSelector                   = Spawn(pool).GetComponent <WeaponFactionSelector>();
        _SpawnedSelector.UseGravity        = false;
        _SpawnedSelector.OnWeaponPickedUp += OnWeaponPickedUp;
        _Timeout = SpawnTime;

        // play effect
        VisualEffects.Instance.PlayWeaponSpawnEffect(_SpawnedSelector.transform);
    }
示例#4
0
    public void Start()
    {
        WeaponSelector = weaponsSelectors[Random.Range(0, weaponsSelectors.Count)];

        if (WeaponSelector != null)
        {
            Instantiate(WeaponSelector, transform.position, Quaternion.identity);
            Destroy(gameObject);
            return;
        }

        Debug.LogError("Weaponbox empty");
    }
示例#5
0
    void OnTriggerEnter2D(Collider2D other)
    {
        WeaponFactionSelector box = other.GetComponentInParent <WeaponFactionSelector>();

        if (box != null)
        {
            if (CanPickupWeapon)
            {
                if (box.currentInstantiatedWeapon == null)
                {
                    PickupWeapon(box);
                }
            }
        }
    }
示例#6
0
 void OnWeaponPickedUp()
 {
     _SpawnedSelector = null;
     _Timeout         = SpawnTime;
 }