Пример #1
0
 private void _tvView_OnDeleteWeapon(WeaponSchema obj)
 {
     if (currentlySelectedShip == null)
     {
         return;
     }
     OnDelete(currentlySelectedShip.Weapons, obj);
 }
Пример #2
0
        public static IWeapon Construct(WeaponSchema weaponSchema)
        {
            switch (weaponSchema.WeaponType)
            {
            case WeaponType.PHASER:
                return(new Phaser(
                           weaponSchema.Name,
                           weaponSchema.MaxHealth,
                           weaponSchema.Mass,
                           weaponSchema.UpkeepCost,
                           weaponSchema.Power,
                           weaponSchema.Range
                           ));

            case WeaponType.FIREBREATH:
                return(new FireBreath(
                           weaponSchema.Name,
                           weaponSchema.MaxHealth,
                           weaponSchema.Mass,
                           weaponSchema.UpkeepCost,
                           weaponSchema.Power,
                           weaponSchema.Range
                           ));

            case WeaponType.LANCE:
                return(new Lance(
                           weaponSchema.Name,
                           weaponSchema.MaxHealth,
                           weaponSchema.Mass,
                           weaponSchema.UpkeepCost,
                           weaponSchema.Power,
                           weaponSchema.Range
                           ));

            case WeaponType.MASSDRIVER:
                return(new MassDriver(
                           weaponSchema.Name,
                           weaponSchema.MaxHealth,
                           weaponSchema.Mass,
                           weaponSchema.UpkeepCost,
                           weaponSchema.Power,
                           weaponSchema.Ammo,
                           weaponSchema.Range
                           ));

            case WeaponType.PLASMABOLT:
                return(new PlasmaBolt(
                           weaponSchema.Name,
                           weaponSchema.MaxHealth,
                           weaponSchema.Mass,
                           weaponSchema.UpkeepCost,
                           weaponSchema.Power,
                           weaponSchema.Range
                           ));

            case WeaponType.TORPEDOTUBE:
                return(new TorpedoTube(
                           weaponSchema.Name,
                           weaponSchema.MaxHealth,
                           weaponSchema.Mass,
                           weaponSchema.UpkeepCost,
                           GetTorpedoFunc(weaponSchema.TorpedoType)

                           ));

            default:
                throw new ArgumentOutOfRangeException(nameof(weaponSchema.WeaponType));
            }
        }