private void Shoot(Entity entity, AudioSource audio, FirstUpgrade firstUpgrade) { var mainCamera = Camera.main; if (mainCamera == null) { return; } var mousePos = Input.mousePosition; var camRayLen = HeraldsBootstrap.Settings.CamRayLen; var floor = LayerMask.GetMask("Ground"); var camRay = mainCamera.ScreenPointToRay(mousePos); if (Physics.Raycast(camRay, out var shootHit, camRayLen, floor)) { var damageObject = Object.Instantiate( HeraldsBootstrap.Settings.DamagePrefab, shootHit.point, Quaternion.identity ); damageObject.GetComponent <Attacker>().SetSource(entity); damageObject.GetComponent <Attacker>().SetDamage(CalculateDamage(firstUpgrade)); } }
public void OnUpgradeSwap(FirstUpgrade firstUpgrade, SecondUpgrade secondUpgrade) { Debug.Log("Upgrade Swapped"); if (firstUpgrade != Enums.FirstUpgrade.None) { if (FirstUpgradeImages != null && FirstUpgradeNames != null && BorderImages != null) { var index = (int)firstUpgrade; FirstUpgrade.sprite = FirstUpgradeImages[index > 3 ? 2 : index > 0 ? 1 : 0]; FirstUpgradeBorder.sprite = BorderImages[index % 3 == 0 ? 2 : index % 2 == 0 ? 1 : 0]; FirstUpgradeName.text = FirstUpgradeNames[index]; } } else { if (SecondUpgradeImages != null && SecondUpgradeNames != null && BorderImages != null) { var index = (int)secondUpgrade; SecondUpgrade.sprite = SecondUpgradeImages[index > 3 ? 2 : index > 0 ? 1 : 0]; SecondUpgradeBorder.sprite = BorderImages[index % 3 == 0 ? 2 : index % 2 == 0 ? 1 : 0]; SecondUpgradeName.text = SecondUpgradeNames[index]; } } AddScore(HeraldsBootstrap.Settings.ScorePerUpgrade); }
private int CalculateDamage(FirstUpgrade firstUpgrade) { var baseDamage = HeraldsBootstrap.Settings.AttackDamage; switch (firstUpgrade) { case FirstUpgrade.DamageMin: baseDamage += 10; break; case FirstUpgrade.DamageMed: baseDamage += 20; break; case FirstUpgrade.DamageMax: baseDamage += 40; break; } return(baseDamage); }
private float CalculateTimeBetweenShoots(FirstUpgrade firstUpgrade) { var baseTime = HeraldsBootstrap.Settings.TimeBetweenBullets; baseTime *= 3; switch (firstUpgrade) { case FirstUpgrade.AttackSpeedMin: baseTime *= 3f / 4f; break; case FirstUpgrade.AttackSpeedMed: baseTime *= 2f / 4f; break; case FirstUpgrade.AttackSpeedMax: baseTime *= 1f / 4f; break; } return(baseTime); }