コード例 #1
0
 public ProjectileTracker()
 {
     for (int x = 0; x < Projectiles.Length; x++)
     {
         Projectiles[x] = new PvPProjectile(0);
     }
 }
コード例 #2
0
 public void InsertProjectile(int index, int projectileType, int ownerIndex, PvPItem item)
 {
     Projectiles[projectileType] = new PvPProjectile(projectileType)
     {
         identity        = index,
         ItemOriginated  = item,
         owner           = ownerIndex,
         OwnerProjectile = PvPController.PvPers[ownerIndex]
     };
 }
コード例 #3
0
        /// <summary>
        /// Gets the damage dealt to a person with server side calculations.
        /// </summary>
        public int GetDamageDealt(PvPPlayer attacker, PvPItem weapon, PvPProjectile projectile = null)
        {
            int damage = (projectile == null || projectile.GetConfigDamage() < 1)
                ? weapon.GetPvPDamage(attacker)
                : projectile.GetConfigDamage();

            damage += PvPUtils.GetAmmoDamage(attacker, weapon);
            damage += PvPUtils.GenerateDamageVariance();
            damage += PvPUtils.GetVortexDamage(attacker, weapon, damage);

            damage -= (int)(GetDefenseDifferenceFromModded() * 0.5);

            return(damage);
        }
コード例 #4
0
 /// <summary>
 /// Applies effects that normally won't work in vanilla pvp.
 /// Effects include nebula/frost armor, yoyo-bag projectiles, and thorns/turtle damage.
 /// </summary>
 public void ApplyPvPEffects(PvPPlayer attacker, PvPItem weapon, PvPProjectile projectile, int damage)
 {
     this.ApplyReflectDamage(attacker, damage, weapon);
     this.ApplyArmorEffects(attacker, weapon);
     TerrariaUtils.ActivateYoyo(attacker, this, damage, weapon.knockBack);
 }