Exemple #1
0
        public void SetUpWeapon(bool active, UnitWeapon.WeaponClasses weaponClass = UnitWeapon.WeaponClasses.Melee)
        {
            //CurrentWeapon.gameObject.name = "Desired " + active + " " + weaponClass; //DEBUG
            CurrentWeapon.gameObject.SetActive(active);

            if (active)
            {
                if (weaponClass == CurrentWeapon.WeaponClass) //if nothing is changing...
                {
                    return;
                }
                else // need a different weapon...
                {
                    //swap to new desired weapon
                    CurrentWeapon.MeshComponent.sharedMesh = WeaponMgr.PickAWeapon(Team, weaponClass, Profession);
                    CurrentWeapon.Profession  = Profession;
                    CurrentWeapon.Team        = Team;
                    CurrentWeapon.WeaponClass = weaponClass;

                    //reset position in respect to hand slot
                    CurrentWeapon.transform.localPosition = Vector3.zero;
                    CurrentWeapon.transform.localRotation = Quaternion.identity;
                }
            }
        }
Exemple #2
0
        public static Mesh PickAWeapon(Teams team, UnitWeapon.WeaponClasses reach, Professions profession)
        {
            foreach (var w in _weapons)
            {
                if (w.Team == team && w.WeaponClass == reach && w.Profession == profession)
                {
                    return(w.MeshComponent.sharedMesh);
                }
            }

            //if no matching weapon found...
            //Debug.Log("WeaponMgr.PickAWeapon() | Default sharedMesh returned for " + team + "/" + reach + "/" + profession);
            return((reach == UnitWeapon.WeaponClasses.Melee ? _defaultMelee : _defaultRanged).MeshComponent.sharedMesh);
        }