public override void MagicRound() { base.MagicRound(); // Get peered entity gameobject DaggerfallEntityBehaviour entityBehaviour = GetPeeredEntityBehaviour(manager); if (!entityBehaviour) { return; } // Implement effect int magnitude = GetMagnitude(caster); entityBehaviour.DamageHealthFromSource(this, magnitude, false, Vector3.zero); //Debug.LogFormat("{0} decremented {1}'s health by {2} points", Key, entityBehaviour.EntityType.ToString(), magnitude); }
public override void MagicRound() { base.MagicRound(); // Get peered entity gameobject DaggerfallEntityBehaviour entityBehaviour = GetPeeredEntityBehaviour(manager); if (!entityBehaviour || !caster) { return; } // Damage health on target and heal health of caster int magnitude = GetMagnitude(caster); entityBehaviour.DamageHealthFromSource(this, magnitude, false, Vector3.zero); caster.Entity.IncreaseHealth(magnitude); PlayerAggro(); }
// Handle charging into enemies. private void HandleCharge(GameObject hitGO, DaggerfallEntityBehaviour hitEntityBehaviour, Vector3 direction) { if (hitEntityBehaviour.Entity is EnemyEntity) { EnemyEntity hitEnemyEntity = (EnemyEntity)hitEntityBehaviour.Entity; if (!hitEnemyEntity.PickpocketByPlayerAttempted) { // Play heavy hit sound. EnemySounds enemySounds = hitGO.GetComponent <EnemySounds>(); DaggerfallMobileUnit entityMobileUnit = hitGO.GetComponentInChildren <DaggerfallMobileUnit>(); Genders gender; if (entityMobileUnit.Summary.Enemy.Gender == MobileGender.Male || hitEnemyEntity.MobileEnemy.ID == (int)MobileTypes.Knight_CityWatch) { gender = Genders.Male; } else { gender = Genders.Female; } enemySounds.PlayCombatVoice(gender, false, true); // Knockback the enemy. EnemyMotor enemyMotor = hitGO.GetComponent <EnemyMotor>(); enemyMotor.KnockbackSpeed = 100; enemyMotor.KnockbackDirection = direction; // Handle charge hit damage and fatigue loss. PlayerEntity playerEntity = GameManager.Instance.PlayerEntity; hitEnemyEntity.PickpocketByPlayerAttempted = true; playerEntity.DecreaseFatigue(PlayerEntity.DefaultFatigueLoss * 15); int minBaseDamage = FormulaHelper.CalculateHandToHandMinDamage(playerEntity.Skills.GetLiveSkillValue(DFCareer.Skills.HandToHand)); int maxBaseDamage = FormulaHelper.CalculateHandToHandMaxDamage(playerEntity.Skills.GetLiveSkillValue(DFCareer.Skills.HandToHand)); int damage = UnityEngine.Random.Range(minBaseDamage, maxBaseDamage + 1); damage += playerEntity.Stats.GetLiveStatValue(DFCareer.Stats.Agility) / 10; damage += playerEntity.Stats.GetLiveStatValue(DFCareer.Stats.Willpower) / 10; DaggerfallEntityBehaviour playerEntityBehaviour = playerEntity.EntityBehaviour; hitEntityBehaviour.DamageHealthFromSource(playerEntityBehaviour, damage, true, BloodPos()); Debug.LogFormat("Charged down a {0} for {1} damage!", hitEntityBehaviour.name, damage); } } }
public override void MagicRound() { base.MagicRound(); // Get peered entity gameobject DaggerfallEntityBehaviour entityBehaviour = GetPeeredEntityBehaviour(manager); if (!entityBehaviour) { return; } // Implement effect int magnitude = GetMagnitude(caster); entityBehaviour.DamageHealthFromSource(this, magnitude, false, Vector3.zero); //Debug.LogFormat("Effect {0} damaged {1} by {2} health points and has {3} magic rounds remaining.", Key, entityBehaviour.name, magnitude, RoundsRemaining); }