Esempio n. 1
0
        private void SetOrderAux(SiegeWeaponOrderType order, SiegeWeapon weapon)
        {
            switch (order)
            {
            case SiegeWeaponOrderType.Stop:
            case SiegeWeaponOrderType.AIControlOff:
                weapon.ForcedUse = false;
                break;

            case SiegeWeaponOrderType.Attack:
            case SiegeWeaponOrderType.AIControlOn:
                weapon.ForcedUse = true;
                break;

            case SiegeWeaponOrderType.FireAtWalls:
                weapon.ForcedUse = true;
                if (!(weapon is RangedSiegeWeapon rangedSiegeWeapon5))
                {
                    break;
                }
                rangedSiegeWeapon5.Focus = RangedSiegeWeapon.FiringFocus.Walls;
                break;

            case SiegeWeaponOrderType.FireAtTroops:
                weapon.ForcedUse = true;
                if (!(weapon is RangedSiegeWeapon rangedSiegeWeapon6))
                {
                    break;
                }
                rangedSiegeWeapon6.Focus = RangedSiegeWeapon.FiringFocus.Troops;
                break;

            case SiegeWeaponOrderType.FireAtRangedSiegeWeapons:
                weapon.ForcedUse = true;
                if (!(weapon is RangedSiegeWeapon rangedSiegeWeapon7))
                {
                    break;
                }
                rangedSiegeWeapon7.Focus = RangedSiegeWeapon.FiringFocus.RangedSiegeWeapons;
                break;

            case SiegeWeaponOrderType.FireAtPrimarySiegeWeapons:
                weapon.ForcedUse = true;
                if (!(weapon is RangedSiegeWeapon rangedSiegeWeapon8))
                {
                    break;
                }
                rangedSiegeWeapon8.Focus = RangedSiegeWeapon.FiringFocus.PrimarySiegeWeapons;
                break;
            }
        }
Esempio n. 2
0
        public void SetOrder(SiegeWeaponOrderType order)
        {
            if (GameNetwork.IsClient)
            {
                GameNetwork.BeginModuleEventAsClient();
                GameNetwork.WriteMessage((GameNetworkMessage) new ApplySiegeWeaponOrder(order));
                GameNetwork.EndModuleEventAsClient();
            }
            foreach (SiegeWeapon selectedWeapon in this.SelectedWeapons)
            {
                this.SetOrderAux(order, selectedWeapon);
            }
            Action <SiegeWeaponOrderType, IEnumerable <SiegeWeapon> > onOrderIssued = this.OnOrderIssued;

            if (onOrderIssued == null)
            {
                return;
            }
            onOrderIssued(order, (IEnumerable <SiegeWeapon>) this.SelectedWeapons);
        }
 public ApplySiegeWeaponOrder(SiegeWeaponOrderType orderType) => this.OrderType = orderType;