public EscortObjective(Game1 game, Mission mission, String description,
            EscortDataCapsule escortDataCapsule, EventTextCapsule eventTextCapsule) :
            base(game, mission, description)
        {
            Setup(escortDataCapsule);

            objectiveCompletedEventText = eventTextCapsule.CompletedText;
            eventTextCanvas = eventTextCapsule.EventTextCanvas;
            objectiveFailedEventText = eventTextCapsule.FailedText;
        }
        public EscortObjective(Game1 game, Mission mission, List<String> descriptions,
            EscortDataCapsule escortDataCapsule, bool autofollow = false) :
            base(game, mission, descriptions[0])
        {
            descriptions.RemoveAt(0);
            this.descriptions = descriptions;
            this.autofollow = autofollow;

            Setup(escortDataCapsule);
        }
        private void Setup(EscortDataCapsule escortDataCapsule)
        {
            this.escortDataCapsule = escortDataCapsule;
            startingNumberOfEnemyShips = escortDataCapsule.EnemyShips.Count;
            numberOfEnemyShips = escortDataCapsule.EnemyShips.Count;
            enemyShipSpawnDelay = escortDataCapsule.EnemyAttackFrequency;
            levels = escortDataCapsule.Levels;
            shipToDefendMaxHP = escortDataCapsule.ShipToDefendHP;
            shipToDefendHP = escortDataCapsule.ShipToDefendHP;
            enemies = new List<OverworldShip>();
            timedMessageCount = -1;
            timedMessageTimes = new List<float>();

            for (int i = 0; i < escortDataCapsule.EnemyShips.Count; i++)
            {
                enemies.Add(escortDataCapsule.EnemyShips[i]);
            }
        }