public Mission(GarrisonMission mission, bool completed=false) { refGarrisonMission = mission; Id = mission.Id; Name = mission.Name; Followers = mission.MaxFollowers; if (completed) return; foreach (var reward in mission.RewardRecords) { if (reward.CurrencyQuantity > 0) { if ((int) reward.CurrencyType == 0) RewardTypes |= RewardTypes.Gold; else if (reward.CurrencyType == WoWCurrencyType.GarrisonResources) RewardTypes |= RewardTypes.Garrison; else if (reward.CurrencyType == WoWCurrencyType.ApexisCrystal) RewardTypes |= RewardTypes.ApexisCrystal; else if (reward.CurrencyType == WoWCurrencyType.HonorPoints) RewardTypes |= RewardTypes.HonorPoints; else if (reward.CurrencyType == WoWCurrencyType.SealOfTemperedFate) RewardTypes |= RewardTypes.SealOfTemperedFate; } if (reward.FollowerXP>0) RewardTypes |= RewardTypes.XP; if (reward.ItemId <= 0) continue; if (ItemIdReward == 0) ItemIdReward = reward.ItemId; else ItemIdReward2 = reward.ItemId; if (DictItemRewards_CharacterTokens.ContainsKey(reward.ItemId)) RewardTypes |= RewardTypes.CharacterToken; else if (ItemRewards_FollowerTokens.Contains(reward.ItemId)) RewardTypes |= RewardTypes.FollowerToken; else if (ItemRewards_FollowerRetraining.Contains(reward.ItemId)) RewardTypes |= RewardTypes.RetrainingCertificate; else if (ItemRewards_Contracts.Contains(reward.ItemId)) RewardTypes |= RewardTypes.FollowerContract; else if (ItemRewards_FollowerTraits.Contains(reward.ItemId)) RewardTypes |= RewardTypes.FollowerTrait; else if (ItemRewards_RushOrders.Contains(reward.ItemId)) RewardTypes |= RewardTypes.RushOrder; else if (ItemReward_AbrogatorStone==reward.ItemId) RewardTypes |= RewardTypes.AbrogatorStone; else if (ItemReward_ElementalRune == reward.ItemId) RewardTypes |= RewardTypes.ElementalRune; else if (ItemReward_SavageBlood == reward.ItemId) RewardTypes |= RewardTypes.SavageBlood; else if (ItemReward_PrimalSpirit == reward.ItemId) RewardTypes |= RewardTypes.PrimalSpirit; else RewardTypes |= RewardTypes.Items; } var newMission = LuaCommands.GetMissionInfo(Id); Cost = newMission.Cost; Description = newMission.Description; Duration = newMission.Duration; ItemLevel = newMission.ItemLevel; Rare = newMission.Rare; Level = newMission.Level; Location = newMission.Location; Rewards = newMission.Rewards; State = newMission.State; Type = newMission.Type; Xp = newMission.Xp; Material = newMission.Material; }