private Item LootHammer(int currentItemLevel) { Item testItem = new Weapon_Melee(); int rarity = Rarity(); int nIL = NewItemLevel(rarity, currentItemLevel); int degreesSecun = Degrees(); int degreesPri = Degrees(); int amountSecun = 1; int amountPrim = 1; if (degreesSecun != 0) { amountSecun = AmountSecun(); } if (degreesPri != 0) { amountPrim = AmountPrimary(); } bool rOL = false; if (rarity >= 2) { rOL = true; } string secun = Database.hostInstance.GetMeleeSecundary(rOL); //Item Creation XD testItem.StartUp(Database.hostInstance.GetHammerName(), rarity, Database.hostInstance.GetHammerSprite(), NewStats(nIL), Database.hostInstance.GetHammerObject(), nIL); testItem.StartWeapon(BaseDamage(nIL), FireRate(), secun, SecundaryFR(), ChargeTime(), Force(), 1, 0, Buff(secun), Single(secun)); testItem.StartMelee(Range(), Knockback()); //end item creation return(testItem); }
void OnTriggerEnter(Collider otherCollider) { GameObject other = otherCollider.gameObject; //print("Collectible --> OnTriggerEnter: " + other.name); if (CommonObjects.IsPlayer(other)) { if (!MustBePurchased || Inventory.Instance.TrySpendRupees(price)) { Collect(); } } else { if (!MustBePurchased) { Weapon_Melee w = other.GetComponent <Weapon_Melee>(); if (w != null) { w.OnHitCollectible(this); } } } }
private Item LootOtherWeapon(int currentItemLevel) { Item otherWeapon = new Weapon_Melee(); int rarity = Rarity(); int nIL = NewItemLevel(rarity, currentItemLevel); int myItem = Database.hostInstance.OW(); bool rOL = false; if (rarity >= 2) { rOL = true; } string secun = Database.hostInstance.GetMeleeSecundary(rOL); otherWeapon.StartUp(Database.hostInstance.GetOWName(myItem), rarity, Database.hostInstance.GetOWSprite(myItem), NewStats(nIL), Database.hostInstance.GetOWObject(myItem), nIL); otherWeapon.StartWeapon(BaseDamage(nIL), FireRate(), secun, SecundaryFR(), ChargeTime(), Force(), 1, 0, Buff(secun), Single(secun)); otherWeapon.StartMelee(Range(), 0); return(otherWeapon); }
private Item LootAxe(int currentItemLevel) { Item testItem = new Weapon_Melee(); int rarity = Rarity(); int nIL = NewItemLevel(rarity, currentItemLevel); bool rOL = false; if (rarity >= 2) { rOL = true; } string secun = Database.hostInstance.GetMeleeSecundary(rOL); //Item Creation XD testItem.StartUp(Database.hostInstance.GetAxeName(), rarity, Database.hostInstance.GetAxeSprite(), NewStats(nIL), Database.hostInstance.GetAxeObject(), nIL); testItem.StartWeapon(BaseDamage(nIL), FireRate(), secun, SecundaryFR(), ChargeTime(), Force(), 1, 0, Buff(secun), Single(secun)); testItem.StartMelee(Range(), 0); //end item creation return(testItem); }
private void WeaponSlot_OnUsePrimary() { if (isDropped || isDecoy) { return; } // Ranged Attack. if (WeaponSlot.currentWeapon is Weapon_Ranged) { Weapon_Ranged weapon = WeaponSlot.currentWeapon as Weapon_Ranged; ProjectileManager.ProjectileData data = new ProjectileManager.ProjectileData { spawnPosition = ProjectileManager.instance.GetProjectileSpawn(this, weapon.primaryProjectile), spawnRotation = projectileSpawn.rotation, projectilePool = weapon.primaryProjectile, speed = ProjectileManager.instance.GetProjectileSpeed(weapon.force, weapon.primaryProjectile), damage = weapon.baseDamage + Player.localPlayer.entity.CalculateDamage(Stats.DamageType.Ranged), amount = weapon.amountOfProjectiles, coneOfFireInDegrees = weapon.coneOfFireInDegrees, mousePos = PlayerController.mouseInWorldPos, projectileOwnerID = Player.localPlayer.photonView.ViewID }; ProjectileManager.instance.FireProjectile(data); } // Melee Attack. else { Weapon_Melee weapon = WeaponSlot.currentWeapon as Weapon_Melee; int collidersFound = Physics.OverlapSphereNonAlloc(transform.position, weapon.attackRange, meleeHits, hitLayerMask); bool pvp = false; for (int i = 0; i < collidersFound; i++) { if (meleeHits[i].transform.tag == "PvPZone") { pvp = true; } } for (int i = 0; i < collidersFound; i++) { Vector3 toHit = meleeHits[i].transform.position - Player.localPlayer.playerController.body.position; if (Vector3.Dot(Player.localPlayer.playerController.body.forward, toHit) > 0) { Entity entity = meleeHits[i].GetComponent <Entity>(); if (entity) { if (pvp ? meleeHits[i].transform.tag == "Player" : meleeHits[i].transform.tag != "Player") { entity.Hit(-(weapon.baseDamage + Player.localPlayer.entity.CalculateDamage(Stats.DamageType.Melee)), Stats.DamageType.Melee, WeaponSlot.weaponBuffs); // TODO: Change this to an event or a parameter in Entity.Hit() UIManager.instance.playerStatusCanvas.Hit(); if (weapon.knockBack > 0 && !pvp) { entity.KnockBack(toHit, weapon.knockBack); } } } if (!string.IsNullOrEmpty(prefabToSpawnOnHit)) { GameObject newSpawn = ObjectPooler.instance.GrabFromPool(prefabToSpawnOnHit, meleeHits[i].ClosestPoint(transform.position), Quaternion.identity); } } } } }