コード例 #1
0
        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);
        }
コード例 #2
0
        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();
        }
コード例 #3
0
        // 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);
                }
            }
        }
コード例 #4
0
        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);
        }