Weapon properties.
Наследование: Props
    // Use this for initialization
    void Start()
    {
        gameController = GameObject.FindGameObjectWithTag("GameController").GetComponent <GameController>();

        weaponProps = gameObject.GetComponent <WeaponProps>();

        string nome = weaponProps._name;
    }
Пример #2
0
    //public string MoveSetType;

    public Weapon(string name, EquipmentTypes type, int id, WeaponProps _props, string meshName, string hitboxType, string movesetType) : base(name, type, id, meshName)
    {
        Hitbox = ((GameObject)Resources.Load($"Equipment/Hitboxes/{hitboxType}")).GetComponent <Hitbox>();
        //Mesh = ((GameObject)Resources.Load($"Equipment/Weapons/Meshes/{meshName}")).GetComponent<SkinnedMeshRenderer>();
        MoveSet = new MoveSet();
        //MoveSet.AnimatorOverride = (AnimatorOverrideController)Resources.Load($"Equipment/MoveSets/Female/{movesetType}");
        MoveSet.MovesetType = movesetType;
        props = _props;
    }
Пример #3
0
 void Start()
 {
     weaponProps                    = weaponHolder.GetComponentInChildren <WeaponProps>(false);
     weaponManager                  = weaponHolder.GetComponentInChildren <WeaponManager>();
     playerAnimationController      = GetComponent <PlayerAnimationController>();
     rigidbodyFirstPersonController = GetComponent <RigidbodyFirstPersonController>();
     mouseLook      = rigidbodyFirstPersonController.mouseLook;
     gameController = GameObject.FindGameObjectWithTag("GameController").GetComponent <GameController>();
 }
Пример #4
0
    /*
     * Questo script gestisce la descrizione degli oggetti nella finestra nella parte in alto a sinistra dello schermo
     * Vengono gestite anche le interazioni con gli oggetti integibili e le armi.
     * Quando si interagisce con le armi la logica di tale operazione viene gestita in parte qui e in parte nello script WeaponHolderManager
     * Quando si interagisce con gli oggetti essi vengono gestiti tramite un'interfaccia che comunichera' l'evento agli script che sono in ascolto
     */
    void WriteDescription()
    {
        // quando un oggetto nella scena ha questo tag, il sistema lo vede come un'arma equipaggiabile
        // le informazioni dell'arma che vengono scritte nella finestra delle informazioni vengono prese direttamente dallo script che presente nell'oggetto
        if (objectToDescribe.CompareTag("DetailedWeapon") || objectToDescribe.GetComponent <WeaponProps>() != null ||
            objectToDescribe.transform.GetComponent <WeaponProps>() != null)
        {
            WeaponProps weapon = objectToDescribe.GetComponent <WeaponProps>();

            // impostazione delle informazioni dell'oggetto sulla finestra
            // l'oggetto deve avere per forza un componente WeaponProps per essere descritto
            if (objectToDescribe.GetComponent <WeaponProps>() != null)
            {
                weapon               = objectToDescribe.GetComponent <WeaponProps>();
                titleText.text       = weapon._name;
                descriptionText.text = weapon._description
                                       + "\n\nAmmo: " + weapon._currentAmmo + "/" + weapon._maxAmmo
                                       + "\nDamage: " + weapon._damage;
            }
            else
            {
                // in caso non ci siano informazioni sull'arma
                SetDefaultDescriptionInformations();
            }

            // gestione dell'interazione con l'arma

            ManageWeaponInteraction(weapon);
        }
        else if (objectToDescribe.CompareTag("DetailedObject") || objectToDescribe.GetComponent <ObjectProps>() != null)
        {
            ObjectProps obj = objectToDescribe.GetComponent <ObjectProps>();

            // impostazione delle informazioni dell'oggetto sulla finestra
            // l'oggetto deve avere per forza un componente ObjectProps per essere descritto
            if (objectToDescribe.GetComponent <ObjectProps>() != null)
            {
                obj                  = objectToDescribe.GetComponent <ObjectProps>();
                titleText.text       = obj._name;
                descriptionText.text = obj._description;
            }
            else
            {
                // in caso non ci siano informazioni sull'oggetto
                SetDefaultDescriptionInformations();
            }

            // gestione dell'interazione con gli oggetti interagibili
            ManageObjectInteraction(obj);
        }
    }
Пример #5
0
    // gestione dell'interazione con l'arma
    private void ManageWeaponInteraction(WeaponProps weapon)
    {
        if (weapon._name == "Granade")
        {
            if (!granadeHolderManager.IsWeaponFull(weapon._name))
            {
                textWindow.alpha       = 1;
                buttonToPressText.text = "Press \"E\" button to pick ammo";

                if (Input.GetButtonDown("Interact"))
                {
                    granadeHolderManager.RefillAmmoToWeapon(weapon._name, weapon._currentChargerAmmo);
                    Destroy(objectToDescribe);
                    DisableWindow();
                    //Debug.Log("Premuto il tasto e 1");
                }
            }
        }
        else
        {
            if (weaponHolderManager.IsUnlocked(weapon._name) && !weaponHolderManager.IsWeaponFull(weapon._name))
            {
                textWindow.alpha       = 1;
                buttonToPressText.text = "Press \"E\" button to pick ammo";

                if (Input.GetButtonDown("Interact"))
                {
                    weaponHolderManager.RefillAmmoToWeapon(weapon._name, weapon._currentChargerAmmo);
                    Destroy(objectToDescribe);
                    DisableWindow();
                    //Debug.Log("Premuto il tasto e 1");
                }
            }
            else if (!weaponHolderManager.IsUnlocked(weapon._name))
            {
                textWindow.alpha       = 1;
                buttonToPressText.text = "Press \"E\" button to grab the weapon";

                if (Input.GetButtonDown("Interact"))
                {
                    weaponHolderManager.UnlockWeapon(weapon._name);
                    Destroy(objectToDescribe);
                    DisableWindow();
                    //Debug.Log("Premuto il tasto e 2");
                }
            }
        }
    }
Пример #6
0
    private void OnCollisionEnter(Collision other)
    {
        // se si collide con il player
        if (other.transform.CompareTag("Player"))
        {
            // se e' presente un componente di tipo FPSController
            if (other.transform.GetComponent <FPSController>() != null)
            {
                // assegno la variabile
                fpsController = other.transform.GetComponent <FPSController>();

                // se il gameobject a cui e' attaccato lo script contiene un componente di tipo WeaponProps
                if (GetComponent <WeaponProps>() != null)
                {
                    // assegno la variabile
                    weapon = GetComponent <WeaponProps>();

                    // se l'arma e' la granata utilizzo il suo metodo per ricaricare
                    if (weapon._name == "Granade")
                    {
                        ExplosiveLauncher granadeHolderManager = other.transform.GetComponent <FPSController>().granadeHolder.GetComponent <ExplosiveLauncher>();

                        if (!granadeHolderManager.IsWeaponFull(weapon._name))
                        {
                            // ricarica la granata
                            granadeHolderManager.RefillAmmoToWeapon(weapon._name, weapon._currentChargerAmmo);
                            // distruggi l'oggetto
                            Destroy(gameObject);
                        }
                    }
                    // se l'arma e' un'arma generica utilizzo il metodo generico per la ricarica
                    else
                    {
                        WeaponHolderManager weaponHolderManager = other.transform.GetComponent <FPSController>().weaponHolder.GetComponent <WeaponHolderManager>();

                        if (weaponHolderManager.IsUnlocked(weapon._name) && !weaponHolderManager.IsWeaponFull(weapon._name))
                        {
                            // ricarica l'arma
                            weaponHolderManager.RefillAmmoToWeapon(weapon._name, weapon._currentChargerAmmo);
                            // distruggi l'oggetto
                            Destroy(gameObject);
                        }
                    }
                }
            }
        }
    }
    void Update()
    {
        //Debug.Log ("WeaponHolder childs: " + weaponHolder.transform.childCount);

        //if (weaponHolder.transform.childCount > 1) {
        //	Debug.Log ("[WeaponBarManager.class] - WARNING: More than one weapon equipped.");
        //}

        weaponProps = weaponHolder.GetComponentInChildren <WeaponProps> ();

        if (weaponProps != null)
        {
            ActivateWindow();
            UpdateAmmoText();
        }
        else
        {
            DisableWindow();
        }
    }
Пример #8
0
    // Use this for initialization
    void Start()
    {
        weaponHolder = GetComponentInParent <WeaponHolderManager>();
        cam          = weaponHolder.playerCamera;
        weaponProps  = GetComponent <WeaponProps>();

        MeshRenderer[] materialsTemp = transform.GetComponentsInChildren <MeshRenderer>();

        foreach (MeshRenderer mat in materialsTemp)
        {
            materials.Add(mat.material);
        }

        explosiveLauncher.currentWeapon = this;

        gameController = GameObject.FindGameObjectWithTag("GameController").GetComponent <GameController>();

        if (flashLight != null)
        {
            flashLight.gameObject.SetActive(false);
        }
    }
 // Use this for initialization
 void Start()
 {
     weaponProps = GetComponent <WeaponProps>();
     countdown   = weaponProps._granadeDelay;
 }
Пример #10
0
    void Update()
    {
        // solo se il gioco non e' in pausa
        if (!gameController.isGamePaused)
        {
            // aggiornato ad ogni frame per maggiore precisione
            weaponProps = weaponHolder.GetComponentInChildren <WeaponProps>(false);

            // per bloccare la seconda animazione nel caso qualsiasi tasto venga premuto
            if (Input.anyKey)
            {
                if (longStandingIdleTimer >= longStandingAnimationDelay)
                {
                    playerAnimationController.StopLongStandingIdle();
                }

                longStandingIdleTimer = 0;
                canPlayIdleAnimation  = true;
            }
            else
            {
                longStandingIdleTimer += Time.deltaTime;

                if (longStandingIdleTimer >= longStandingAnimationDelay && canPlayIdleAnimation)
                {
                    playerAnimationController.SetIsLongStanding();
                    canPlayIdleAnimation = false;
                }
            }

            // input del movimento del personaggio per la gestione delle animazioni
            float horizontalSpeed = Input.GetAxis("Horizontal");
            float verticalSpeed   = Input.GetAxis("Vertical");

            // zoom
            if (Input.GetButton("Fire2"))
            {
                if (weaponProps._id == 2)
                {
                    weaponHolder.GetComponent <WeaponHolderManager>().weaponManager.DisableMeshRenderer();
                    cam.fieldOfView    = Mathf.Lerp(cam.fieldOfView, SniperZoomedFov, interpolationZoomTime);
                    sniperCanvas.alpha = Mathf.Lerp(sniperCanvas.alpha, 1, interpolationSniperCanvasTime);
                }
                else
                {
                    cam.fieldOfView = Mathf.Lerp(cam.fieldOfView, zoomedFov, interpolationZoomTime);
                }

                mouseLook.XSensitivity = mouseSensitivityMultiplierZoom.x;
                mouseLook.YSensitivity = mouseSensitivityMultiplierZoom.y;
                rigidbodyFirstPersonController.x_velocityMultiplier = walkSpeedMultiplierZoom.x;
                rigidbodyFirstPersonController.y_velocityMultiplier = walkSpeedMultiplierZoom.y;
                horizontalSpeed = 0;
                verticalSpeed   = 0;
                wasZooming      = true;
            }
            else
            {
                if (weaponProps._id == 2 && wasZooming)
                {
                    weaponHolder.GetComponent <WeaponHolderManager>().weaponManager.EnableMeshRenderer();
                }

                sniperCanvas.alpha = Mathf.Lerp(sniperCanvas.alpha, 0, interpolationSniperCanvasTime);
                cam.fieldOfView    = Mathf.Lerp(cam.fieldOfView, normalFov, interpolationZoomTime);

                mouseLook.XSensitivity = mouseSensitivityMultiplierNormal.x;
                mouseLook.YSensitivity = mouseSensitivityMultiplierNormal.y;
                rigidbodyFirstPersonController.x_velocityMultiplier = walkSpeedMultiplierNormal.x;
                rigidbodyFirstPersonController.y_velocityMultiplier = walkSpeedMultiplierNormal.y;
                wasZooming = false;
            }

            //if (Input.GetButtonDown("LaunchGranade")) {
            //    playerAnimationController.SetIsLaunchingGranade();
            //    // lancia la granata
            //}

            if (Input.GetButtonDown("NearAttack"))
            {
                playerAnimationController.SetIsNearAttacking();

                RaycastHit hit;
                if (Physics.Raycast(cam.transform.position, cam.transform.forward, out hit, nearAttackMaxDistance))
                {
                    GameObject go = hit.transform.gameObject;

                    if (go.CompareTag("Enemy"))
                    {
                        StartCoroutine(NearAttack(go));
                        PlaySound(nearAttackSound);
                    }
                }
            }

            // se viene premuto il tasto per correre viene innescata l'animazione di corsa altrimenti si riproducono le animazioni normali
            if (Input.GetButton("Fire3") && (Mathf.Abs(horizontalSpeed) < 0.2 && verticalSpeed > 0) && rigidbodyFirstPersonController.Grounded)
            {
                lastVerticalSpeed = Mathf.Lerp(lastVerticalSpeed, 2, walkToRunTime);
            }
            else
            {
                lastVerticalSpeed = Mathf.Lerp(lastVerticalSpeed, 1, runToWalkTime);
            }

            // passaggio dei valori corretti al BlendTree dell'animator
            playerAnimationController.SetHorizontalSpeed(horizontalSpeed);
            playerAnimationController.SetVerticalSpeed(verticalSpeed * lastVerticalSpeed);

            // animazione di salto
            if (Input.GetButtonDown("Jump") && rigidbodyFirstPersonController.Grounded)
            {
                playerAnimationController.SetIsJumping();
                PlaySound(jumpSound);
                canPlayLandSound = true;
                isJumping        = true;
            }

            if (!rigidbodyFirstPersonController.Grounded)
            {
                isFalling = true;
                playerAnimationController.SetIsFalling();
                rigidbodyFirstPersonController.x_velocityMultiplier = walkSpeedMultiplierNormal.x;
                rigidbodyFirstPersonController.y_velocityMultiplier = walkSpeedMultiplierNormal.y;
            }

            // animazione di atterraggio
            if (rigidbodyFirstPersonController.Grounded && isFalling)
            {
                playerAnimationController.SetIsLanding();
                isJumping = false;
                isFalling = false;
            }
        }
    }
 void Awake()
 {
     //if(LevelSerializer.IsDeserializing)	return;
     instance=this;
     UWEBase._RES = game;
     objectMaster=new ObjectMasters();
     objectMaster.Load(Application.dataPath + "//..//" + UWEBase._RES + "_object_config.txt");
     critter = new Critters();
     critter.Load(Application.dataPath + "//..//" + UWEBase._RES + "_critters.txt");
     commobj=new CommonObjProps();
     commobj.Load(Application.dataPath + "//..//" + UWEBase._RES + "_comobj.txt");
     weaponprops =new WeaponProps();
     weaponprops.Load(Application.dataPath + "//..//" + UWEBase._RES + "_weapons.txt");
 }