//-------------------------WEAPON ON HAND------------------------------------ public void PutWeaponInHand(WeaponConfig weapon) { GameObject weaponPrefab = weapon.GetWeaponPrefab(); GameObject powerAttackParticlePrefab = weapon.GetWeaponPowerAttackGlowPrefab(); currentWeaponInUse = weapon; Destroy(instantiatedWeapon); Transform weaponHandT = RequestDominantHand(); instantiatedWeapon = Instantiate(weaponPrefab, weaponHandT); instantiatedWeapon.transform.localPosition = currentWeaponInUse.weaponGrip.localPosition; instantiatedWeapon.transform.localRotation = currentWeaponInUse.weaponGrip.localRotation; if (powerAttackParticlePrefab != null) { GameObject powerAttackParticleObj = Instantiate(powerAttackParticlePrefab, instantiatedWeapon.transform); powerAttackParticleObj.transform.localRotation = currentWeaponInUse.particleGrip.localRotation; powerAttackParticleObj.transform.localPosition = currentWeaponInUse.particleGrip.localPosition; particleEffectToUse = powerAttackParticleObj.GetComponent <ParticleSystem>(); } //print("Put the " + weapon + " in " + gameObject + "'s hand"); WeaponDependantAnimation(); }
public void PutWeaponInHand(WeaponConfig weaponToUse) { currentWeaponConfig = weaponToUse; var weaponPrefab = weaponToUse.GetWeaponPrefab(); Destroy(weaponObject); // empty hands weaponObject = Instantiate(weaponPrefab, weaponSocket.transform); weaponObject.transform.localPosition = currentWeaponConfig.gripTransform.localPosition; weaponObject.transform.localRotation = currentWeaponConfig.gripTransform.localRotation; }
public void PutWeaponInHand(WeaponConfig weaponToUse) { currentWeaponConfig = weaponToUse; var weaponPrefab = weaponToUse.GetWeaponPrefab(); GameObject dominantHand = RequestDominantHand(); Destroy(weaponObject); weaponObject = Instantiate(weaponPrefab, dominantHand.transform); weaponObject.transform.localPosition = currentWeaponConfig.grip.localPosition; weaponObject.transform.localRotation = currentWeaponConfig.grip.localRotation; }
public void EquipWeapon(WeaponConfig weaponConfig) { Assert.IsNotNull(weaponConfig, "Please assign a weapon to the player"); currentWeaponConfig = weaponConfig; var weaponPrefab = weaponConfig.GetWeaponPrefab(); GameObject dominantHand = RequestDominantHand(); Destroy(weaponObject); // empty hands weaponObject = Instantiate(weaponPrefab); weaponObject.transform.SetParent(dominantHand.transform, true); weaponObject.transform.localPosition = currentWeaponConfig.weaponGrip.transform.position; weaponObject.transform.localRotation = currentWeaponConfig.weaponGrip.transform.rotation; }
public void PutWeaponInHand(WeaponConfig weaponToUse) { currentWeaponConfig = weaponToUse; // get default weapon var weaponPrefab = weaponToUse.GetWeaponPrefab(); GameObject dominantHand = RequestDominantHand(); Destroy(weaponObject); // emprty hands // set the weapon postion based on weaponGrip weaponObject = Instantiate(weaponPrefab, dominantHand.transform); weaponObject.transform.localPosition = currentWeaponConfig.gripTransform.localPosition; weaponObject.transform.localRotation = currentWeaponConfig.gripTransform.localRotation; }
public void PutWeaponInHand(WeaponConfig weaponConfig) { currentWeaponConfig = weaponConfig; var weaponPrefab = weaponConfig.GetWeaponPrefab(); GameObject weaponSocket = RequestDominantHand(); if (weaponGameObject != null) { Destroy(weaponGameObject); } weaponGameObject = Instantiate(weaponPrefab, weaponSocket.transform); weaponGameObject.transform.localPosition = currentWeaponConfig.weaponTransform.localPosition; weaponGameObject.transform.localRotation = currentWeaponConfig.weaponTransform.localRotation; }
public void PutWeaponInHands(WeaponConfig weaponToUse) { Transform dominantHand = GetDominantHand(); currWeaponConfig = weaponToUse; Destroy(weaponObject); if (weaponToUse != null && weaponToUse.WeaponPrefab != null) { weaponObject = Instantiate(weaponToUse.WeaponPrefab, dominantHand); weaponObject.transform.localPosition = weaponToUse.weaponGrip.position; weaponObject.transform.localRotation = weaponToUse.weaponGrip.rotation; weaponObject.transform.localScale = weaponToUse.weaponGrip.localScale; } }
/* IMPORTANT: CameraRaycaster hits both WeaponPickupPoint, as well as its parented weapon prefab model. * Data collected here is from the prefab, so need to use GetComponentInParent to get WeaponConfig needed by PutWeaponInHand method*/ void OnMouseOverPickable(GameObject pickable) // reads LMB from CameraRaycaster if pickable layer hit { if (Input.GetMouseButtonUp(0)) // TODO no pickup range - implement { transform.LookAt(pickable.gameObject.transform); WeaponConfig weaponToPick = pickable.GetComponentInParent <WeaponPickupPoint>().GetWeaponConfig(); // TODO split logic for different pickable types weaponSystem.PutWeaponInHand(weaponToPick); Destroy(pickable.gameObject); // TODO implement dropping used weapons } else if (Input.GetMouseButtonDown(1)) // TODO relies on weapon range - change this { transform.LookAt(pickable.gameObject.transform); } }
public void PutWeaponInHand(WeaponConfig weaponToUse) { //TODO: refactor weapon and equipment. Make a manager component. GameObject weaponSocket = RequestDominantHand(); currentWeaponConfig = weaponToUse; // check if a weapon is already in hand RemoveEquippedWeapon(weaponObject); var weaponPrefab = currentWeaponConfig.GetWeaponPrefab(); weaponObject = Instantiate(weaponPrefab, weaponSocket.transform); weaponObject.transform.localPosition = currentWeaponConfig.gripTransform.localPosition; weaponObject.transform.localRotation = currentWeaponConfig.gripTransform.localRotation; }
private void Update() { currentWeaponConfig = weaponSystem.getCurrentWeapon; currentWeaponRange = currentWeaponConfig.GetMaxAttackRange(); distanceToPlayer = Vector3.Distance(player.transform.position, transform.position); // initial state //Debug.Log(gameObject.name + " State: " + state); // switch(state) // { // case States.attacking: // //Debug.Log(gameObject.name + " State: " + state); // if( distanceToPlayer > currentWeaponRange && distanceToPlayer > chaseRadius) // { // state = States.patrolling; // } // if(distanceToPlayer > currentWeaponRange && distanceToPlayer <= chaseRadius) // { // state = States.chasing; // } // if(state == States.attacking) // { // //Debug.Log("Attacking State"); // StopAllCoroutines(); // //weaponSystem.AttackTarget(player.gameObject); // } // break; // case States.patrolling: // if(patrolPath == null) // { // state = States.idle; // } // if(distanceToPlayer <= currentWeaponRange) // { // state = States.attacking; // } // if(distanceToPlayer <= chaseRadius && distanceToPlayer > currentWeaponRange) // { // state = States.chasing; // } // if(state == States.patrolling) // { // //Debug.Log("Patrolling State"); // StopAllCoroutines(); // weaponSystem.StopAttacking(); // //StartCoroutine (Patrol() ); // } // break; // case States.chasing: // if(distanceToPlayer <= currentWeaponRange) // { // state = States.attacking; // } // if(distanceToPlayer > chaseRadius) // { // state = States.patrolling; // } // if(state == States.chasing) // { // //Debug.Log("Chasing State"); // StopAllCoroutines(); // weaponSystem.StopAttacking(); // //StartCoroutine( ChasePlayer() ); // } // break; // case States.idle: // if(distanceToPlayer <= currentWeaponRange) // { // state = States.attacking; // } // if(distanceToPlayer <= chaseRadius) // { // state = States.chasing; // } // if(patrolPath != null) // { // state = States.patrolling; // } // //Debug.Log("Idle State"); // break; // default: // Debug.Log("No State!!"); // break; // } // new pluggable state AI if (currentState != null) { currentState.UpdateState(this); } }
public void SetWeaponInUse(WeaponConfig weaponConfig) { currentWeaponConfig = weaponConfig; }