public void BreakWeapon(bool isExplosion) { IPlayer pl = User.GetPlayer(); if (pl != null && !pl.IsDead) { if (pl.CurrentWeaponDrawn == WeaponItemType.Rifle) { if (GlobalRandom.Next(0, 100) < (int)(WeaponBreakingChance * Armor.BreakWeaponFactor)) { Vector2 pos = pl.GetWorldPosition(); RifleWeaponItem weapon = pl.CurrentPrimaryWeapon; if ((weapon.WeaponItem == WeaponItem.BAZOOKA || weapon.WeaponItem == WeaponItem.GRENADE_LAUNCHER || weapon.WeaponItem == WeaponItem.FLAMETHROWER) && weapon.CurrentAmmo > 0 && (GlobalRandom.Next(0, 100) < WeaponExplosionChance || isExplosion)) { GlobalGame.TriggerExplosion(pos); } pl.RemoveWeaponItemType(WeaponItemType.Rifle); GlobalGame.PlayEffect("CFTXT", pl.GetWorldPosition(), "WEAPON BROKEN"); GlobalGame.CreateObject("MetalDebris00A", pos, (float)rnd.NextDouble()); pos.X += 5; GlobalGame.CreateObject("MetalDebris00B", pos, (float)rnd.NextDouble()); pos.X -= 10; GlobalGame.CreateObject("MetalDebris00C", pos, (float)rnd.NextDouble()); } } } }
public void OnDead() { AddTeamExp(5, 0, GetEnemyTeam(Team), true); IPlayer pl = User.GetPlayer(); if (pl != null) { if (Armor.SuicideMine) { GlobalGame.TriggerExplosion(Position); } } }
public void Destroy() { StopMovement(); GlobalGame.TriggerExplosion(MainMotor.GetWorldPosition()); for (int i = 0; i < DamagedObjects.Count; i++) { DamagedObjects[i].Destroy(); } for (int i = 0; i < OtherObjects.Count; i++) { OtherObjects[i].Destroy(); } DamagedObjects.Clear(); OtherObjects.Clear(); }
public void OnFire(TPlayer player, WeaponItemType type) { if (CanOverheat) { Overheating += ShotHeat; if (Overheating >= 100) { player.User.GetPlayer().RemoveWeaponItemType(type); GlobalGame.PlayEffect("CFTXT", player.Position, "OVERHEATED"); GlobalGame.PlayEffect("EXP", player.Position); player.Hp -= 50; player.Bleeding = true; Vector2 pos = player.Position; GlobalGame.CreateObject("MetalDebris00A", pos, (float)rnd.NextDouble()); pos.X += 5; GlobalGame.CreateObject("MetalDebris00B", pos, (float)rnd.NextDouble()); pos.X -= 10; GlobalGame.CreateObject("MetalDebris00C", pos, (float)rnd.NextDouble()); } else { GlobalGame.PlayEffect("CFTXT", player.Position, "OVERHEATING " + ((int)Overheating).ToString() + "%"); } } if (DNAProtection && player.Team != TeamDNA) { player.User.GetPlayer().RemoveWeaponItemType(type); GlobalGame.PlayEffect("CFTXT", player.Position, "DNA SCAN ERROR"); GlobalGame.TriggerExplosion(player.Position); DNAProtection = false; } if (type == WeaponItemType.Thrown) { CreateThrownWeapon(Weapon, CustomId, player.Position); } }