//todo IDR

        private BlastAttack.Result BlastAttack_Fire(On.RoR2.BlastAttack.orig_Fire orig, BlastAttack self)
        {
            var attackerTeamIndex = self.teamIndex;

            var enemyTeamIndex = TeamIndex.None;

            switch (attackerTeamIndex)
            {
            case TeamIndex.Player:
                enemyTeamIndex = TeamIndex.Monster;
                break;

            case TeamIndex.Monster:
            case TeamIndex.Neutral:
                enemyTeamIndex = TeamIndex.Player;
                break;
            }

            var enemyItemCount = Util.GetItemCountForTeam(enemyTeamIndex, catalogIndex, true);

            if (enemyItemCount > 0)
            {
                float radiusCoefficient = Mathf.Max(100 - enemyItemCount, 1f) / 100f;
                self.radius *= radiusCoefficient;
                _logger.LogMessage("BlastHelmet: Adjusted blast radius by coefficient of " + radiusCoefficient);
            }
            return(orig(self));
        }
        private BlastAttack.Result BlastAttack_Fire(On.RoR2.BlastAttack.orig_Fire orig, BlastAttack self)
        {
            BlastAttack.Result result = orig(self);

            HitboxRevealer box = Instantiate(_hitboxNotBoxPrefab).initBlastBox(self.position, self.radius);

            Utils.LogReadout($"making blast hitbox at {self.position}, {self.radius}: {box != null}");

            return(result);
        }
Exemplo n.º 3
0
        ////// Hooks //////

        private BlastAttack.Result BlastAttack_Fire(On.RoR2.BlastAttack.orig_Fire orig, BlastAttack self)
        {
            var origDamage = self.baseDamage;
            var origRadius = self.radius;

            if (self.attacker && self.attacker.TryGetComponent <CharacterBody>(out var attackerBody))
            {
                if (Vector3.Distance(attackerBody.corePosition, self.position) < pbaoeRange)
                {
                    var count = GetCount(attackerBody);
                    self.baseDamage *= 1f + count * damageAmount;
                    self.radius     *= 1f + count * resizeAmount;
                }
            }
            var retv = orig(self);

            self.baseDamage = origDamage;
            self.radius     = origRadius;
            return(retv);
        }
 private BlastAttack.Result BlastAttack_Fire(On.RoR2.BlastAttack.orig_Fire orig, BlastAttack self)
 {
     self.damageType = ShockRoll(self.attacker, self.damageType, self.procCoefficient);
     return(orig(self));
 }
Exemplo n.º 5
0
 private BlastAttack.Result BlastAttack_Fire(On.RoR2.BlastAttack.orig_Fire orig, BlastAttack self)
 {
     self.damageType = ProcDamageType(self.attacker, itemDef, self.damageType, damageType, self.procCoefficient, BatteryBullets_ProcCoefficient, BatteryBullets_ProcCoefficientStack);
     return(orig(self));
 }