public int CalculateRandomWeaponDamageValue(WeaponDataSO weaponData) { Debug.Log("WeaponLogic.CalculateRandomWeaponDamageValue() called..."); int randomAttackDamage = Random.Range(weaponData.weaponMinDamage, weaponData.weaponMaxDamage + 1); Debug.Log("Random damage from " + weaponData.weaponName + " between min/max damage values " + weaponData.weaponMinDamage + "/" + weaponData.weaponMaxDamage + " is " + randomAttackDamage.ToString()); return(randomAttackDamage); }
// Initialization / Setup public void SetWeapon(WeaponDataSO data) { Debug.Log("SetWeapon() called...."); myWeaponData = data; nameText.text = data.weaponName; rangeText.text = data.weaponRange.ToString(); minDamageText.text = data.weaponMinDamage.ToString(); maxDamageText.text = data.weaponMaxDamage.ToString(); myImage.sprite = data.weaponImage; }
public WeaponDataSO GetWeaponByName(string name) { WeaponDataSO weaponReturned = null; foreach (WeaponDataSO weapon in allWeapons) { if (name == weapon.weaponName) { weaponReturned = weapon; } } if (weaponReturned == null) { Debug.Log("WeaponLibrary.GetWeaponByName() failed to find a weapon with the name: " + name + ", returning null...."); } return(weaponReturned); }
public void AssignWeaponToEntity(LivingEntity entity, WeaponDataSO weaponData) { Debug.Log("Assigning weapon '" + weaponData.weaponName + "' to " + entity.name); if (weaponData.weaponType == WeaponDataSO.WeaponType.Ranged) { entity.myRangedWeapon = weaponData; if (entity.GetComponent <Defender>()) { if (entity.GetComponent <Defender>().myRangedWeaponSlot != null) { entity.GetComponent <Defender>().myRangedWeaponSlot.SetWeapon(weaponData); } } else if (entity.GetComponent <Enemy>()) { entity.GetComponent <Enemy>().myInfoPanel.SetWeaponTab(entity.GetComponent <Enemy>().myInfoPanel.rangedWeaponTab, weaponData); } } if (weaponData.weaponType == WeaponDataSO.WeaponType.Melee) { entity.myMeleeWeapon = weaponData; if (entity.GetComponent <Defender>()) { if (entity.GetComponent <Defender>().myMeleeWeaponSlot != null) { entity.GetComponent <Defender>().myMeleeWeaponSlot.SetWeapon(weaponData); } } else if (entity.GetComponent <Enemy>()) { entity.GetComponent <Enemy>().myInfoPanel.SetWeaponTab(entity.GetComponent <Enemy>().myInfoPanel.meleeWeaponTab, weaponData); } } }
public void Setup(WeaponDataSO data) { sphereCollider.radius = data.Range * 2f; }
public void SetWeaponTab(WeaponSlot slot, WeaponDataSO weapon) { slot.gameObject.SetActive(true); slot.SetWeapon(weapon); }
public void Setup(WeaponAimController weaponAimController, WeaponDataSO weaponData) { WeaponAimController = weaponAimController; WeaponData = weaponData; }
// Logic + Events #region public void StartNewShowHitChanceEvent(LivingEntity target, LivingEntity attacker = null, Ability abilityUsed = null, WeaponDataSO weaponUsed = null) { // Disable modifiers from previous target DisableAllModifierObjects(); // Enable panel view SetVisibility(true); // Move panel to the right of the target MoveToEntityPosition(target); // Calculate and set hit chance text hitChanceText.text = CombatLogic.Instance.CalculateHitChance(attacker, target).ToString(); // Get target data and set modifier views EnableAndSetTargetDefenseModifier(target); if (PositionLogic.Instance.IsTargetInFullCover(attacker, target)) { EnableTargetFullCoverModifier(); } else if (PositionLogic.Instance.IsTargetInHalfCover(attacker, target)) { EnableTargetHalfCoverModifier(); } // Get attacker data and set modifier views EnableAndSetAttackerAimModifier(attacker); EnableAndSetAttackerEntrenchedModifier(attacker); EnableAndSetAttackerDeadEyeModifier(attacker); }