Exemplo n.º 1
0
        public TimeSpan current_time;         // rappresenta l'update del timer corrente


        // costruttore della classe elicottero
        public Elicottero(ClockTimer timerCon, int numEli, string Id, int Cat, float Fuel, int Troops, int Cargo, int MaxToLoad, int OffLoadWG, bool Running, bool BladeSprd, bool IsEff, bool InitialPos, bool IsFly, float FuelC)
        {
            // passo le variabili inizializzate all'oggetto elicottero

            this.NumEli             = numEli;
            this.IdEli              = Id;
            this.CatEli             = Cat;
            this.Fuel               = Fuel;
            this.WTroopsLeftOnBoard = Troops;
            this.WCargoLeftOnBoard  = Cargo;
            this.MaxTOLoad          = MaxToLoad;
            this.OffLoadWeight      = OffLoadWG;
            this.IsRunning          = Running;
            this.IsRefueling        = false;    // l'elicottero non parte mai in fase di refueling
            this.IsBladeSpread      = BladeSprd;
            this.IsEfficient        = IsEff;
            this.IsFlying           = IsFly;
            this.PosEli             = InitialPos;            // posizione iniziale Hangar o Ponte
            this.FuelC              = FuelC;                 // consumo di carburante all'ora
            this.SpotAssigned       = null;                  // assegnazione spot inizializzata a null
            this.LowFuel            = false;                 // setto il lowfuel state a falso, alla messa in moto viene ricontrollato.
            this.EliCrash           = false;                 // setta la flagh di crash a falso
            this.IsBlocked          = false;                 // l'elicottero non parte bloccato
            this.isREADYstatus      = false;                 // l'elicottero inizializzato non pronto
            this.IsHolding          = false;                 // l'elicottero è inizializzato non in holding
            this.isLZ               = false;                 // elicottero sulla LZ
            this.hasSpotReserved    = false;
            this.rotation           = 0;                     // rotazione iniziale
            this.quota              = 0.6f;                  // quota iniziale
            this.isRequiredForOP    = true;                  // elicottero richiesto per l'operazione di default
            this.IstroopsOnBoard    = false;                 // truppe a bordo
            this.IsCargoOnBoard     = false;                 // l'elicottero parte senza cargo
            this.Go_goback          = true;                  // setto l'andata
            this.IsFull             = false;                 // elicottero parte vuoto
            this.IsCargoFull        = false;                 // cargo full
            this.isTroopsFull       = false;                 // truppe full
            this.isApproaching      = false;                 // approach to destinaiton
            this.isHotRef           = false;                 // flas hot ref su falso
            this.IsBoardingCargo    = false;                 // sett iniziale imbarco cargo falso
            this.EliSoldierList     = new List <Soldier>(0); // ogni elicottero detiene la sua lista di soldati
            this.EliCargoList       = new List <Cargo>(0);   // ogni elicottero detiene la lista del proprio cargo
            this.DirToGo            = Direction.ship;        // inizalizzato per direzione holding point
            this.IsBoarding         = false;                 // l'elcittero è iizializzato a caricamento truppe falso


            // il peso totale è dato dal peso dell'elicottero scarico + il peso del carburante + il peso delle truppe + il peso del cargo
            this.TotalWeightCalculated = this.ToTWGCalculus();

            //timer attachment: ogni elicottero e' dotato di un timer
            // serve per sincronizzare le operazioni
            this.timer = timerCon;             // definizione del timer
            this.timer.Attach(this);           // attachment del timer secondo il pattern Observer
            // l'elicottero entra a far parte della lista di observers
            // il notify() del timer provvederà all'update dei clock di tutti gli observer


            this.elivector2d = new Vector2(0f, 0f);         // creazione del vettore di movimento verrà usato dal framework grafico monogame
            // indica la posizione attuale del velivolo sullo schermo
            this.destination = new Point(0, 0);             // destinazione dell'elicottero espressa con una struttura point X e Y


            this.EliSpeed = 0f;             // viene settato il parametro velocita' iniziale dell'eli
        }