diff options
| author | chai <215380520@qq.com> | 2024-05-19 16:46:27 +0800 |
|---|---|---|
| committer | chai <215380520@qq.com> | 2024-05-19 16:46:27 +0800 |
| commit | 8b1fc7063b387542803c6bc214ccf8acb32870bd (patch) | |
| tree | d310eb99872c8215f1c1f67731ec21f0915cd778 /Thronefall_1_0/GameCode/Weapon.cs | |
| parent | 8e13e7e2874adc8982e16d1d2ed2e28d7480b45f (diff) | |
* rename
Diffstat (limited to 'Thronefall_1_0/GameCode/Weapon.cs')
| -rw-r--r-- | Thronefall_1_0/GameCode/Weapon.cs | 225 |
1 files changed, 0 insertions, 225 deletions
diff --git a/Thronefall_1_0/GameCode/Weapon.cs b/Thronefall_1_0/GameCode/Weapon.cs deleted file mode 100644 index bde057a..0000000 --- a/Thronefall_1_0/GameCode/Weapon.cs +++ /dev/null @@ -1,225 +0,0 @@ -using System.Collections.Generic; -using UnityEngine; - -[CreateAssetMenu(fileName = "Weapon", menuName = "SimpleSiege/Weapon")] -public class Weapon : ScriptableObject -{ - public enum EFacingDirection - { - Uniform, - FaceVictim, - FaceAttacker, - Random - } - - public enum EDamageAffectedByBlacksmithUpgrade - { - Null, - MultiplyBy_MeleeDamage, - MultiplyBy_RangedDamage, - DivideBy_MeleeResistance, - DivideBy_RangedResistance - } - - [Header("Blacksmith Upgrades")] - public EDamageAffectedByBlacksmithUpgrade blacksmithEffect; - - [Header("Aimbot Projectile Settings")] - public EFacingDirection projectileFacingDirection; - - public float projectileSpeed; - - public float projectileParabulaFactor; - - public float projectileParabulaOffset; - - public GameObject projectileVisuals; - - public GameObject projectileImpactVisuals; - - public bool performRaycastWhenHittingEmptyPosition; - - public LayerMask emptyPositionRaycastLayerMask; - - public float raycastLength = 1f; - - public bool performRaycastBeforeShooting; - - public LayerMask raycastBeforeShootingLayerMask; - - public float maximumChaseRange = 10000f; - - public float shootWithoutTargetRange = 20f; - - public GameObject spawnOnGroundWhenTargetingGround; - - [Header("Melee Attack Setting")] - public GameObject fxSpawnOnAttacker; - - public bool parentFxToAttacker; - - public GameObject fxSpawnOnVictim; - - [Header("Damage")] - public bool isPlayerWeapon; - - public List<DamageModifyer> directDamage; - - public List<DamageModifyer> splashDamage; - - public float slowsFastEnemiesFor; - - private PlayerUpgradeManager playerUpgradeManager; - - private BlacksmithUpgrades blacksmithUpgrades; - - public void Attack(Vector3 _attackOrigin, Hp _target, Vector3 _attackDirection, TaggedObject _attacker, float _finalDamageMultiplyer = 1f) - { - playerUpgradeManager = PlayerUpgradeManager.instance; - Vector3 vector = _attackOrigin + _attackDirection; - if ((bool)_target) - { - vector = ((!(_target.TaggedObj.colliderForBigOjectsToMeasureDistance != null)) ? (_target.transform.position + _target.hitFeedbackHeight * Vector3.up) : _target.TaggedObj.colliderForBigOjectsToMeasureDistance.ClosestPoint(_attackOrigin)); - } - if (performRaycastBeforeShooting) - { - Physics.Raycast(_attackOrigin, vector - _attackOrigin, out var hitInfo, (vector - _attackOrigin).magnitude, raycastBeforeShootingLayerMask); - if (hitInfo.collider != null) - { - Hp componentInParent = hitInfo.collider.GetComponentInParent<Hp>(); - if (!(componentInParent != null)) - { - return; - } - _target = componentInParent; - vector = ((!(_target.TaggedObj.colliderForBigOjectsToMeasureDistance != null)) ? (_target.transform.position + _target.hitFeedbackHeight * Vector3.up) : _target.TaggedObj.colliderForBigOjectsToMeasureDistance.ClosestPoint(_attackOrigin)); - } - } - if (projectileSpeed > 0f && projectileVisuals != null) - { - AimbotProjectile component = Object.Instantiate(projectileVisuals, _attackOrigin, Quaternion.identity).GetComponent<AimbotProjectile>(); - Vector3 backupTarget = Vector3.zero; - if (_target == null) - { - backupTarget = _attackOrigin + _attackDirection.normalized * shootWithoutTargetRange; - } - component.Fire(this, _target, maximumChaseRange, backupTarget, _attacker, _finalDamageMultiplyer); - return; - } - if (fxSpawnOnAttacker != null) - { - SpawnAttackFx(fxSpawnOnAttacker, _attackOrigin, _attackOrigin, _target, vector, _attacker, _finalDamageMultiplyer, parentFxToAttacker); - } - if (fxSpawnOnVictim != null && _target != null) - { - SpawnAttackFx(fxSpawnOnVictim, vector, _attackOrigin, _target, vector, _attacker, _finalDamageMultiplyer); - } - DealDamage(_target, _finalDamageMultiplyer, _attacker); - } - - private void SpawnAttackFx(GameObject _fxPrefab, Vector3 _spawnPosition, Vector3 _attackOrigin, Hp _target, Vector3 _attackPosition, TaggedObject _attacker, float _finalDamageMultiplyer = 1f, bool parentToAttacker = false) - { - Vector3 vector = _attackPosition - _attackOrigin; - vector = new Vector3(vector.x, 0f, vector.z); - Quaternion rotation = Quaternion.LookRotation(vector, Vector3.up); - Transform parent = null; - if (parentToAttacker) - { - parent = _attacker.transform; - } - GameObject fxWithSplashDamageAreas = Object.Instantiate(_fxPrefab, _spawnPosition, rotation, parent); - DealSplashDamage(fxWithSplashDamageAreas, _attacker, _finalDamageMultiplyer); - } - - public void DealSplashDamage(GameObject _fxWithSplashDamageAreas, TaggedObject _attacker, float _finalDamageMultiplyer) - { - if (splashDamage.Count <= 0) - { - return; - } - SplashDamageArea[] componentsInChildren = _fxWithSplashDamageAreas.GetComponentsInChildren<SplashDamageArea>(); - if (componentsInChildren.Length != 0) - { - List<Hp> list = new List<Hp>(); - for (int i = 0; i < componentsInChildren.Length; i++) - { - componentsInChildren[i].AddReiveDamageHpScriptsInAreaToList(list); - } - for (int j = 0; j < list.Count; j++) - { - DealDamage(list[j], _finalDamageMultiplyer, _attacker, splashDamage: true); - } - } - } - - public void DealDamage(Hp _target, float _finalDamageMultiplyer, TaggedObject _attacker, bool splashDamage = false) - { - if (!_target || !_target.TaggedObj) - { - return; - } - float num = _finalDamageMultiplyer; - if (blacksmithUpgrades == null) - { - blacksmithUpgrades = BlacksmithUpgrades.instance; - } - switch (blacksmithEffect) - { - case EDamageAffectedByBlacksmithUpgrade.MultiplyBy_MeleeDamage: - num *= blacksmithUpgrades.meleeDamage; - break; - case EDamageAffectedByBlacksmithUpgrade.MultiplyBy_RangedDamage: - num *= blacksmithUpgrades.rangedDamage; - break; - case EDamageAffectedByBlacksmithUpgrade.DivideBy_MeleeResistance: - num /= blacksmithUpgrades.meleeResistance; - break; - case EDamageAffectedByBlacksmithUpgrade.DivideBy_RangedResistance: - num /= blacksmithUpgrades.rangedResistance; - break; - } - float hpValue = _target.HpValue; - if (splashDamage) - { - _target.TakeDamage(CalculateSplashDamageOnTarget(_target.TaggedObj, num), _attacker, isPlayerWeapon); - } - else - { - _target.TakeDamage(CalculateDirectDamageOnTarget(_target.TaggedObj, num), _attacker, isPlayerWeapon); - } - if (_target.TaggedObj.Tags.Contains(TagManager.ETag.Player) && playerUpgradeManager.magicArmor) - { - float num2 = hpValue - _target.HpValue; - if (num2 > 0f && (bool)_attacker) - { - _attacker.Hp.TakeDamage(num2 * UpgradeMagicArmor.instance.damageMultiplyer, _target.TaggedObj, causedByPlayer: true); - } - } - if (slowsFastEnemiesFor >= 0f && _target.TaggedObj.Tags.Contains(TagManager.ETag.FastMoving) && (bool)_target.PathfindMovement) - { - if (PerkManager.instance.IceMagicActive) - { - _target.PathfindMovement.Slow(slowsFastEnemiesFor * PerkManager.instance.iceMagic_SlowDurationMulti); - } - else - { - _target.PathfindMovement.Slow(slowsFastEnemiesFor); - } - } - } - - public float CalculateDirectDamageOnTarget(TaggedObject _taggedObject, float _finalDamageMultiplyer = 1f) - { - return DamageModifyer.CalculateDamageOnTarget(_taggedObject, directDamage, _finalDamageMultiplyer); - } - - public float CalculateSplashDamageOnTarget(TaggedObject _taggedObject, float _finalDamageMultiplyer = 1f) - { - return DamageModifyer.CalculateDamageOnTarget(_taggedObject, splashDamage, _finalDamageMultiplyer); - } - - public static float CalculateDamageGeneral(TaggedObject _taggedObject, List<DamageModifyer> directDamage, float _finalDamageMultiplyer = 1f) - { - return DamageModifyer.CalculateDamageOnTarget(_taggedObject, directDamage, _finalDamageMultiplyer); - } -} |
