protected override void Update() { base.Update(); if (Toolbox.Player) { if (navMeshAgent.enabled) { navMeshAgent.Resume(); navMeshAgent.SetDestination(Toolbox.Player.transform.position); } if (EquippedWeapon) { if (EquippedWeapon.AIShouldAttack(Toolbox.Player.transform.position)) { EquippedWeapon.StartAttack(); } else { EquippedWeapon.EndAttack(); } } } desiredVelocity = Vector3.MoveTowards(desiredVelocity, navMeshAgent.desiredVelocity, navMeshAgent.acceleration * Time.deltaTime); var input = transform.InverseTransformDirection(desiredVelocity); Animator.SetFloat("Horizontal", input.x); Animator.SetFloat("Vertical", input.z); Animator.speed = navMeshAgent.speed; }
public void EquipWeapon(Item itemToEquip) { if (EquippedWeapon != null) { InventoryController.Instance.GiveItem(currentlyEquippedItem.ObjectSlug); charactersStats.RemoveBonusStats(EquippedWeapon.GetComponent <IWeapon>().Stats); //Remove current weapon's stats from player Destroy(playerHand.transform.GetChild(0).gameObject); //Destroy the current weapon on player's hand } EquippedWeapon = (GameObject)Instantiate(Resources.Load <GameObject>("Weapons/" + itemToEquip.ObjectSlug), playerHand.transform.position, playerHand.transform.rotation); //Get the prefab named "Sword" from the "Resources" folder and set the weapon to the player's hand //The item is named "Sword" in InventoryController and this line will get the exact prefab for it equippedWeapon = EquippedWeapon.GetComponent <IWeapon>(); if (EquippedWeapon.GetComponent <IProjectileWeapon>() != null) //Sword can't cast fireball { EquippedWeapon.GetComponent <IProjectileWeapon>().ProjectileSpawn = spawnProjectile; } EquippedWeapon.transform.SetParent(playerHand.transform); //Parent to the player's hand equippedWeapon.Stats = itemToEquip.Stats; //EquippedWeapon.GetComponent<IWeapon>().Stats; //Get stats from the weapon currentlyEquippedItem = itemToEquip; charactersStats.AddBonusStats(itemToEquip.Stats); UIEventHandler.ItemEquipped(itemToEquip); UIEventHandler.StatsChanged(); }
public void equipWeapon() { GameObject equippedWeaponObject = GameObject.Find("EquippedWeapon"); EquippedWeapon equipped = equippedWeaponObject.GetComponent <EquippedWeapon>(); if (equipped.equippedWeapon != null && (equipped.equippedWeapon.getWeaponName() == weapon.getWeaponName())) { freezeRigidbody(); return; } else { if (equipped.equippedWeapon != null) { dropWeapon(); } } //remove components Destroy(GetComponent <Rigidbody>()); Destroy(GetComponent <MeshCollider>()); //set weapon position to parents Transform equippedWeaponTransform = equippedWeaponObject.GetComponent <Transform>(); Transform groundWeaponTransform = GetComponent <Transform>(); groundWeaponTransform.SetPositionAndRotation(equippedWeaponTransform.position, equippedWeaponTransform.rotation); groundWeaponTransform.parent = equippedWeaponTransform; //assign the equipped weapon equipped.equippedWeapon = weapon; equipped.playPickUpSound(); }
public void dropWeapon() { GameObject equippedWeaponObject = GameObject.Find("EquippedWeapon"); GameObject playerObject = GameObject.Find("PlayerCharacter"); //should only ever have 1 child so fetching 0 is fine Transform child = equippedWeaponObject.transform.GetChild(0); GameObject childObject = child.gameObject; //add mesh collider childObject.AddComponent <MeshCollider>(); childObject.GetComponent <MeshCollider>().convex = true; //set drop position child.SetPositionAndRotation(child.transform.position + (-playerObject.transform.forward * 5), child.transform.rotation); //assign new parent GameObject objects = GameObject.Find("Objects"); childObject.transform.parent = objects.transform; //remove the equpped weapon EquippedWeapon equipped = equippedWeaponObject.GetComponent <EquippedWeapon>(); if (equipped.equippedWeapon.getDurability() <= 0) { Destroy(childObject); } equipped.equippedWeapon = null; // Debug.Log(equippedWeaponObject.transform.GetChild(0)); //Destroy(childObject); }
void FireWeapon() { if (EquippedWeapon.Fire()) { _animator.SetTrigger("Fired"); } }
protected virtual void OnWeaponsChanged(string value) { selectWeapons = value; // Changes weapon list, equip first weapon equipped position if (isServer) { var splitedData = selectWeapons.Split('|'); var minEquipPos = int.MaxValue; for (var i = 0; i < splitedData.Length; ++i) { var singleData = splitedData[i]; var weaponData = GameInstance.GetWeapon(singleData); if (weaponData == null) { continue; } var equipPos = weaponData.equipPosition; if (minEquipPos > equipPos) { defaultWeaponIndex = equipPos; minEquipPos = equipPos; } var equippedWeapon = new EquippedWeapon(); equippedWeapon.defaultId = weaponData.GetId(); equippedWeapon.weaponId = weaponData.GetId(); equippedWeapon.SetMaxAmmo(); equippedWeapons[equipPos] = equippedWeapon; equippedWeapons.Dirty(equipPos); } selectWeaponIndex = defaultWeaponIndex; } }
private float damage = 0; // Damage to deal on the next hit /// <summary> /// Initialize this <c>Sword</c>'s values. /// </summary> /// <param name="wep">The <c>EquippedWeapon</c> that represents this <c>CQC</c>.</param> /// <param name="source">The Source character.</param> /// <param name="layer">The layer to use for collision detection.</param> public override void Initialize(EquippedWeapon wep, MovementController source, int layer) { mom = wep; this.source = source; hitter.enabled = false; gameObject.layer = layer; }
public override IEnumerator Shoot(EquippedWeapon equipped) { while (!equipped.RequestStopFire && equipped.HasBulletsLeft) { equipped.Weapon.BulletSpawnModel.Shoot(equipped); yield return(new WaitForSeconds(timeBetweenShots)); } }
void Start() { childrenWeapon = Instantiate(weaponPrefab, transform.position, Quaternion.identity); childrenWeapon.transform.parent = transform; equippedWeapon = EquippedWeapon.ak47; GetComponent <BoxCollider2D>().size = childrenWeapon.transform.GetChild(0).GetComponent <SpriteRenderer>().size; GetComponent <BoxCollider2D>().offset = new Vector2(0.5f, -0.1f); }
private void OnTriggerEnter2D(Collider2D collision) { if (collision.tag == "WeaponItem") { EquippedWeapon equippedWeaponValue = collision.GetComponent <WeaponItem>().equippedWeapon; CmdPickUpWeapon(equippedWeaponValue); } }
protected Character copyWeapon(Character copy) { if (EquippedWeapon != null) { copy.EquipWeapon(EquippedWeapon.Copy()); } return(copy); }
// Start is called before the first frame update // Update is called once per frame void OnTriggerEnter(Collider col) { if (col.gameObject.tag == "PlayerChar") { EquippedWeapon EW = col.gameObject.GetComponent <EquippedWeapon>(); EW.pickUp = WD; EW.Equip(); } }
private void ObserveCoolTime(EquippedWeapon equippedWeapon) { equippedWeapon.CoolTimeSeconds .SubscribeWithState2(this, equippedWeapon, (_, _this, e) => { _this.UpdateCoolTimeSlider(e.CoolTimeRate); }) .AddTo(this); }
private void Start() { EquippedWeapon = EquippedWeapon.Hands; Ammo = 0; PlayerTrans = GameObject.FindGameObjectWithTag("Player").transform; SliceRot = 0; IsSlicing = false; IsPunching = false; PunchTimer = 0; }
protected override void AI() { if (!HasControl || Interacting) { return; } Vector3 Vel = Vector3.zero; Vector3 Forward = CamTr.forward; Forward.y = 0.0f; Forward.Normalize(); Vector3 Right = Vector3.Cross(Forward, Vector3.up); Vel -= Right * Motor.movement.maxSidewaysSpeed * Input.GetAxis("Horizontal"); Vel += Forward * Motor.movement.maxForwardSpeed * Input.GetAxis("Vertical"); if (Interactables.Count > 0 && Input.GetKey(KeyInteract)) { Interacting = true; foreach (GameObject GI in Interactables) { foreach (Interactable I in GI.GetComponents <Interactable>()) { I.OnInteract(this); } } } if (Input.GetKey(KeyDodge) && PlayAnim("Dodge")) { float Length = Vel.magnitude; if (Length <= 0.0f) { Vel = Forward * Motor.movement.maxForwardSpeed; } else { Vel = Vel / Length * Motor.movement.maxForwardSpeed; } } if (Input.GetMouseButton(MouseAttack) && PlayAnim("Attack")) { EquippedWeapon.ResetHits(); } Motor.movement.velocity = Vel; Interactables.Clear(); }
// Update is called once per frame protected override void Update() { base.Update(); if (Toolbox.GameManager.Paused) { return; } /// <summary> /// Deals with the player input and gives it to the animator /// </summary> var input = new Vector3(Input.GetAxis("Horizontal"), 0.0f, Input.GetAxis("Vertical")); input = transform.InverseTransformDirection(input); Animator.SetFloat("Horizontal", input.x); Animator.SetFloat("Vertical", input.z); // Rotation var plane = new Plane(Vector3.up, transform.position); var ray = Camera.main.ScreenPointToRay(Input.mousePosition); float distance; if (plane.Raycast(ray, out distance)) { transform.LookAt(ray.GetPoint(distance), Vector3.up); } // Actions if (Input.GetKeyDown(KeyCode.Space)) { Animator.SetTrigger("Jump"); } if (Input.GetKey(KeyCode.C)) { Animator.SetBool("Crouch", true); } else { Animator.SetBool("Crouch", false); } if (EquippedWeapon) { if (Input.GetButtonDown("Attack")) { EquippedWeapon.StartAttack(); } if (Input.GetButtonUp("Attack")) { EquippedWeapon.EndAttack(); } } }
public void ResetToDefault() { EquippedWeapon.Swap(null, false); for (int i = Inventory.Items.Count - 1; i >= 0; i--) { Inventory.CmdDropItem(Inventory.Items[i], false); } Inventory.money = 0; Health.Init(Health.Max); StatusEffectList.Clear(); }
private void finishEquipment() { if (EquippedShield != null) { EquippedShield.Finish(); } if (EquippedWeapon != null) { EquippedWeapon.Finish(); } }
public void Update(Delta delta) { if (EquippedWeapon != null) { EquippedWeapon.Update(delta); } else if (EquippedShield != null) { EquippedShield.Update(delta); } }
public WeaponСharacteristics(GameObject BulletPrefab, float Weight, float FireRate, float FiringSpread, float BulletSpeed, int Magazine, float ReloadTime, EquippedWeapon equippedWeapon) { this.bulletPrefab = BulletPrefab; this.weight = Weight; this.fireRate = FireRate; this.firingSpread = FiringSpread; this.bulletSpeed = BulletSpeed; this.magazine = Magazine; this.reloadTime = ReloadTime; this.equippedWeapon = equippedWeapon; }
protected override void InnerShoot(EquippedWeapon weapon) { float currPelletArc = sprayArc * -0.5f; for (int i = 0; i < pelletAmount; i++) { Vector2 vec = Quaternion.AngleAxis(currPelletArc + GetAccuracyAngle(weapon.Weapon.Accuracy), Vector3.forward) * weapon.LocalDirection; weapon.SpawnNew(vec); currPelletArc += sprayArc / pelletAmount; } }
private void zdjecie_Click(object sender, EventArgs e) { if (EquippedArmor.Items.Count > 0 && EquippedArmor.Items[0].Selected == true) { Przedmiot P = postac.getZalozonaZbroja() as Przedmiot; if (P != null) { EquippedArmor.Items[0].Selected = false; if (EquippedWeapon.Items.Count > 0 && EquippedWeapon.Items[0].Selected == true) { EquippedWeapon.Items[0].Selected = false; } listBox1.Items.Add(postac.getZalozonaZbroja().getNazwa().ToString() + " - " + postac.getZalozonaZbroja().getIlosc().ToString()); postac.Ekwipunek.Add(postac.getZalozonaZbroja()); EquippedArmor.Clear(); imageList1.Images.RemoveAt(0); postac.ZalozZbroje(null); Sound.PlaySound(Sound.Sound_weararmor); } P = null; } else if (EquippedWeapon.Items.Count > 0 && EquippedWeapon.Items[0].Selected == true) { Przedmiot P = postac.getZalozonaBron() as Przedmiot; if (P != null) { EquippedWeapon.SelectedItems[0].Selected = false; if (EquippedArmor.Items.Count > 0 && EquippedArmor.Items[0].Selected == true) { EquippedArmor.Items[0].Selected = false; } listBox1.Items.Add(postac.getZalozonaBron().getNazwa().ToString() + " - " + postac.getZalozonaBron().getIlosc().ToString()); postac.Ekwipunek.Add(postac.getZalozonaBron()); postac.addStrenght(-1 * postac.getZalozonaBron().getItemStrength()); EquippedWeapon.Clear(); imageList2.Images.RemoveAt(0); postac.ZalozBron(null); Sound.PlaySound(Sound.Sound_wearweapon); } P = null; } UpdateEquipment(postac); }
public void Collect(Item item) { switch (item.ItemType) { case Item.EItemType.Health: Heal(item.value); break; case Item.EItemType.Ammo: EquippedWeapon.GiveAmmo(item.value); break; } }
//Display information about this character public void DisplayStatus() { Console.WriteLine("Name: " + Gender); Console.WriteLine("Gender: " + Name); Console.WriteLine("Health: " + Health); Console.WriteLine("Base Attack: " + BaseAttack); Console.WriteLine("Accuracy: " + Accuracy); Console.WriteLine("Status Effect: " + StatusEffect); if (equippedWeapon != null) { EquippedWeapon.DisplayStatus(); } }
void Start() { OnGround = true; rb = GetComponent <Rigidbody> (); coll = GetComponent <CapsuleCollider> (); iniHeight = coll.height; eqWep = transform.Find("WeaponSlot").GetComponent <EquippedWeapon> (); /*if(rb == null) * { * rb = gameObject.AddComponent<Rigidbody> (); * }*/ }
public void CheckContinueAttack() { if (_state == CharacterStates.Attack) { if (EquippedWeapon.AttackFinished) { SetStateToPreAttack(); EquippedWeapon.FinishAttack(); return; } EquippedWeapon.ContinueAttack(); } }
public void ServerPickup(GameObject pickup) { if (!pickup.TryGetComponent(out PickableInWorld piw) || piw.Available == false) { return; } piw.PickedUp(); Pickable pickable = piw.Pickable; if (piw.IsBuyable) { if (Inventory.money < pickable.Costs) { return; } Inventory.money -= (int)pickable.Costs; if (CurrentRoom is ShopRoom sr) { sr.RemovePriceTag(piw.transform.position); } } switch (pickable.PickableType) { case PickableType.Consumable: ((Consumable)pickable).Affect(this); break; case PickableType.Item: Inventory.PickUp((Item)pickable); break; case PickableType.Weapon: EquippedWeapon.Swap((Weapon)pickable); break; case PickableType.StatusEffect: Debug.LogError("Status Effect should not be on the ground... " + pickable.Id); break; default: Debug.LogError("Type " + pickable.PickableType + " not implemented!"); break; } RpcItemPickedUp(pickable); }
public static void NextPlayer() { // TODO Skip bunny's turn if they're dead currentPlayer = currentPlayer + 1; currentPlayer = currentPlayer % numberOfPlayers; while (!players[currentPlayer].IsAlive) { currentPlayer = ++currentPlayer % numberOfPlayers; } players[currentPlayer].WeaponFuse = 5.0f; players[currentPlayer].Angle = 0; players[currentPlayer].Power = 0; equippedWeapon = EquippedWeapon.NoWeapon; canShoot = false; }
private void CreateGimmick(EquippedWeapon equippedWeapon) { var weaponRecord = equippedWeapon.InstanceWeapon.WeaponRecord; var gimmick = weaponRecord.Gimmick.Rent(); var parent = this.owner.TransformHolder.GetWeaponOrigin(this.owner.StatusController.Direction); gimmick.transform.position = parent.position; gimmick.transform.rotation = parent.rotation; gimmick.Activate(this.owner); foreach (var giveDamage in gimmick.GetComponentsInChildren <IGiveDamage>()) { giveDamage.InstanceWeapon = equippedWeapon.InstanceWeapon; } equippedWeapon.ResetCoolTime(); }
public void SetSpellUI(EquippedWeapon weapon) { int i = 0; int j; switch (weapon) { case EquippedWeapon.Melee: j = 0; for (; i < SkillButtonsImages.Length; i++) { if (skills[j].Unlocked) { SkillButtonsImages[i].sprite = SkillsImgs[j]; } else { SkillButtonsImages[i].sprite = UnavaliableSkill; } j++; } break; case EquippedWeapon.Bow: j = 4; for (; i < SkillButtonsImages.Length; i++) { if (skills[j].Unlocked) { SkillButtonsImages[i].sprite = SkillsImgs[j]; } else { SkillButtonsImages[i].sprite = UnavaliableSkill; } j++; } break; case EquippedWeapon.None: for (; i < SkillButtonsImages.Length; i++) { SkillButtonsImages[i].sprite = UnavaliableSkill; } break; } SpellUIState(); }