protected override bool CanReRollWithWeaponClass() { if (Combat.ChosenWeapon is GenericSpecialWeapon) { GenericSpecialWeapon upgradeWeapon = Combat.ChosenWeapon as GenericSpecialWeapon; return(upgradeWeapon.HasType(UpgradeType.Missile) || upgradeWeapon.HasType(UpgradeType.Torpedo)); } return(false); }
private void AllowLaunchesByTargetLock(ref bool result) { GenericSpecialWeapon secondaryWeapon = Combat.ChosenWeapon as GenericSpecialWeapon; if (secondaryWeapon != null) { if ((secondaryWeapon.HasType(UpgradeType.Torpedo) || secondaryWeapon.HasType(UpgradeType.Missile)) && ActionsHolder.HasTargetLockOn(Selection.ThisShip, Selection.AnotherShip)) { result = false; } } }
private bool IsMissilesOrTorpedoesAttack() { bool result = false; GenericSpecialWeapon secondaryWeapon = Combat.ChosenWeapon as GenericSpecialWeapon; if (secondaryWeapon != null) { if (secondaryWeapon.HasType(UpgradeType.Torpedo) || secondaryWeapon.HasType(UpgradeType.Missile)) { result = true; } } return(result); }
private void RegisterSaturationSalvoAbility(GenericShip host) { GenericSpecialWeapon weapon = Combat.ChosenWeapon as GenericSpecialWeapon; if (weapon != null) { if (weapon.HasType(UpgradeType.Torpedo) || weapon.HasType(UpgradeType.Missile)) { ActionsList.GenericAction newAction = new ActionsList.SaturationSalvoActionEffect() { ImageUrl = HostUpgrade.ImageUrl, HostShip = host }; host.AddAvailableDiceModification(newAction); } } }
public override bool IsDiceModificationAvailable() { bool result = false; if (Combat.AttackStep == CombatStep.Attack && !(Source.UpgradeAbilities[0] as Abilities.FirstEdition.GuidanceChipsAbility).IsGuidanceChipsAbilityUsed()) { GenericSpecialWeapon secondaryWeapon = (Combat.ChosenWeapon as GenericSpecialWeapon); if (secondaryWeapon != null) { if (secondaryWeapon.HasType(UpgradeType.Torpedo) || secondaryWeapon.HasType(UpgradeType.Missile)) { result = true; } } } return(result); }
private void RegisterSaturationSalvoAbility() { GenericSpecialWeapon weapon = Combat.ChosenWeapon as GenericSpecialWeapon; if (weapon != null) { if (weapon.HasType(UpgradeType.Torpedo) || weapon.HasType(UpgradeType.Missile)) { Triggers.RegisterTrigger( new Trigger() { Name = "Saturation Salvo", TriggerType = TriggerTypes.OnAttackMissed, TriggerOwner = HostShip.Owner.PlayerNo, EventHandler = SaturationSalvoDamage }); } } }
private void RestoreSpecialWeaponsRestrictions() { foreach (GenericUpgrade upgrade in HostShip.UpgradeBar.GetSpecialWeaponsAll()) { GenericSpecialWeapon weapon = upgrade as GenericSpecialWeapon; if (weapon.HasType(UpgradeType.Cannon)) { weapon.WeaponInfo.ArcRestrictions.Remove(ArcType.FullFront); } } }
public void ShowAttackAnimationAndSound() { GenericSpecialWeapon chosenSecondaryWeapon = Combat.ChosenWeapon as GenericSpecialWeapon; if (chosenSecondaryWeapon == null || chosenSecondaryWeapon.HasType(UpgradeType.Cannon) || chosenSecondaryWeapon.HasType(UpgradeType.Illicit)) { // Primary Weapons, Cannons, and Illicits (HotShotBlaster) Sounds.PlayShots(SoundInfo.ShotsName, SoundInfo.ShotsCount); AnimatePrimaryWeapon(); } else if (chosenSecondaryWeapon.HasType(UpgradeType.Torpedo) || chosenSecondaryWeapon.HasType(UpgradeType.Missile)) { // Torpedos and Missiles Sounds.PlayShots("Proton-Torpedoes", 1); AnimateMunitionsShot(); } else if (chosenSecondaryWeapon.HasType(UpgradeType.Turret)) { // Turrets Sounds.PlayShots(SoundInfo.ShotsName, SoundInfo.ShotsCount); AnimateTurretWeapon(); } }
private void AllowLowCostCannons(ref bool result) { GenericSpecialWeapon secondaryWeapon = Combat.ChosenWeapon as GenericSpecialWeapon; if (secondaryWeapon != null) { if (secondaryWeapon.HasType(UpgradeType.Cannon) && secondaryWeapon.UpgradeInfo.Cost <= 2) { result = false; } } }
private bool IsAttackWithCannonUpgradeCost3OrFewer() { bool result = false; GenericSpecialWeapon secondaryWeapon = Combat.ChosenWeapon as GenericSpecialWeapon; if (secondaryWeapon != null && secondaryWeapon.HasType(UpgradeType.Cannon) && secondaryWeapon.UpgradeInfo.Cost <= 3) { result = true; } return(result); }
private void ChangeSpecialWeaponsRestrictions() { HostShip.OnGameStart -= ChangeSpecialWeaponsRestrictions; foreach (GenericUpgrade upgrade in HostShip.UpgradeBar.GetSpecialWeaponsAll()) { GenericSpecialWeapon weapon = upgrade as GenericSpecialWeapon; if (weapon.HasType(UpgradeType.Cannon)) { weapon.WeaponInfo.ArcRestrictions.Add(ArcType.FullFront); } } }
private bool IsCannonAttack() { bool result = false; GenericSpecialWeapon secondaryWeapon = Combat.ChosenWeapon as GenericSpecialWeapon; if (secondaryWeapon != null) { if (secondaryWeapon.HasType(UpgradeType.Cannon)) { result = true; } } return(result); }
private bool IsCannonShot(GenericShip defender, IShipWeapon weapon, bool isSilent) { bool result = false; GenericSpecialWeapon upgradeWeapon = weapon as GenericSpecialWeapon; if (upgradeWeapon != null && upgradeWeapon.HasType(UpgradeType.Cannon)) { result = true; } else { if (!isSilent) { Messages.ShowError("Attack must be performed from Cannon"); } } return(result); }