public ProjectileTracker() { for (int x = 0; x < Projectiles.Length; x++) { Projectiles[x] = new PvPProjectile(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] }; }
/// <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); }
/// <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); }