public void EnterBloodLust()
        {
            Log.Debug("Entered blood lust", BloodLust049.Instance.Config.Debug);
            bloodLustActive = true;
            if (Instance.Config.EnableAdrenalineEffect)
            {
                Invigorated adrenaline = Scp049.ReferenceHub.playerEffectsController.GetEffect <Invigorated>();
                adrenaline.Intensity = 5;
                Scp049.ReferenceHub.playerEffectsController.EnableEffect(adrenaline);
                Log.Debug("Adrenaline effect given", BloodLust049.Instance.Config.Debug);
            }

            if (Instance.Config.EnableBleedEffect)
            {
                Bleeding bleeding = Scp049.ReferenceHub.playerEffectsController.GetEffect <Bleeding>();
                Scp049.ReferenceHub.playerEffectsController.EnableEffect(bleeding);
                Log.Debug("Adrenaline effect given", BloodLust049.Instance.Config.Debug);
            }
            Scp207 scp207 = Scp049.ReferenceHub.playerEffectsController.GetEffect <Scp207>();

            scp207.Intensity = (byte)Instance.Config.Scp207Intensity;
            Scp049.ReferenceHub.playerEffectsController.EnableEffect(scp207);
            Log.Debug("207 effect given", BloodLust049.Instance.Config.Debug);
            Scp049.Broadcast(3, Instance.Config.BloodLustMessage);
        }
 public Action <ICharacterClass, ICondition> GetConditionImplementationApply()
 {
     return((characterClass, condition) =>
     {
         Bleeding bleeding = condition as Bleeding;
         characterClass.TakeDamage(bleeding.DamagePerTick);
     });
 }
    protected override void DoCast()
    {
        GetEnemyTarget();

        //算好傷害等下丟給buff用
        CalcDamage();

        Bleeding bleeding = new Bleeding(unit)
        {
            dotDamage = damageInfo.physicDamage
        };

        TargetApplyBuff(unit, new List <Buff>()
        {
            bleeding
        });
    }
Exemple #4
0
        public void Use(SkillContext context)
        {
            if (context.Distance > MaxDistance)
            {
                return;
            }

            if (context.Target is Player player)
            {
                var ratio = 1f;
                if (_source is ISkilled skilled)
                {
                    ratio = skilled.GetSkillPower(this, context);
                }

                var debuff = new Bleeding(_source, context.Target, this, DateTime.Now + DebuffDuration, BaseDamage * ratio);
                player.AddBuff(debuff);
                _lastUseTime = DateTime.Now;
                OnSuccessUsed?.Invoke(this, context);
                return;
            }

            throw new NotImplementedException();
        }
Exemple #5
0
 public Cleave(Entity abilityOwner) : base("Cleave", $"Deals {DamageMod}% extra damage and bleeding effect.", 6, 1, abilityOwner, TargetType.Hostile, false)
 {
     _bleedingEffect = new Bleeding(abilityOwner);
 }