Exemple #1
0
        // Actually queues a profession task:
        private static bool ContinueTask(Interactor intr, Point continueButton, out float bonusFactor)
        {
            Mouse.Click(intr, continueButton);
            intr.Wait(100);

            // Detect currently selected asset:
            LeadershipAsset primaryAsset = new LeadershipAsset(ProfessionAssetId.None, 1.00f);

            foreach (var asset in leadershipAssets) {
                if (Screen.ImageSearch(intr, asset.LargeTileImageLabel).Found) {
                    primaryAsset = asset;
                    break;
                }
            }

            if (primaryAsset.AssetId == ProfessionAssetId.None) {
                intr.Log(LogEntryType.Error, "Primary profession asset not detected.");
                bonusFactor = 0.0f;
                return false;
            } else {
                intr.Log(LogEntryType.Debug, "Using primary profession asset: '{0}'.", primaryAsset.Label);
            }

            // Attempt to add optional assets:
            Mouse.ClickImage(intr, "ProfessionsAssetButton");
            intr.Wait(50);

            LeadershipAsset optionalAsset = new LeadershipAsset(ProfessionAssetId.None, 1.00f);

            foreach (var asset in leadershipAssets) {
                if (Mouse.ClickImage(intr, asset.SmallIconImageLabel)) {
                    optionalAsset = asset;
                    break;
                }
            }

            if (optionalAsset.AssetId == ProfessionAssetId.None) {
                intr.Log(LogEntryType.Debug, "No optional profession assets found.");
            } else {
                intr.Log(LogEntryType.Debug, "Using optional profession asset: '{0}'.", optionalAsset.Label);
            }

            intr.Wait(50);

            // Enqueue the profession task:
            Mouse.ClickImage(intr, "ProfessionsStartTaskButton");
            intr.Wait(500);

            if (primaryAsset.AssetId == ProfessionAssetId.Mercenary ||
                        primaryAsset.AssetId == ProfessionAssetId.Guard ||
                        primaryAsset.AssetId == ProfessionAssetId.Footman) {
                bonusFactor = optionalAsset.BonusFactor;
            } else {
                bonusFactor = primaryAsset.BonusFactor + optionalAsset.BonusFactor;
            }

            return true;
        }
Exemple #2
0
        // Actually queues a profession task:
        private static bool ContinueTask(Interactor intr, Point continueButton, out float bonusFactor)
        {
            Mouse.Click(intr, continueButton);
            intr.Wait(100);

            // Detect currently selected asset:
            LeadershipAsset primaryAsset = new LeadershipAsset(ProfessionAssetId.None, 1.00f);

            foreach (var asset in leadershipAssets)
            {
                if (Screen.ImageSearch(intr, asset.LargeTileImageLabel).Found)
                {
                    primaryAsset = asset;
                    break;
                }
            }

            if (primaryAsset.AssetId == ProfessionAssetId.None)
            {
                intr.Log(LogEntryType.Error, "Primary profession asset not detected.");
                bonusFactor = 0.0f;
                return(false);
            }
            else
            {
                intr.Log(LogEntryType.Debug, "Using primary profession asset: '{0}'.", primaryAsset.Label);
            }

            // Attempt to add optional assets:
            Mouse.ClickImage(intr, "ProfessionsAssetButton");
            intr.Wait(50);

            LeadershipAsset optionalAsset = new LeadershipAsset(ProfessionAssetId.None, 1.00f);

            foreach (var asset in leadershipAssets)
            {
                if (Mouse.ClickImage(intr, asset.SmallIconImageLabel))
                {
                    optionalAsset = asset;
                    break;
                }
            }

            if (optionalAsset.AssetId == ProfessionAssetId.None)
            {
                intr.Log(LogEntryType.Debug, "No optional profession assets found.");
            }
            else
            {
                intr.Log(LogEntryType.Debug, "Using optional profession asset: '{0}'.", optionalAsset.Label);
            }

            intr.Wait(50);

            // Enqueue the profession task:
            Mouse.ClickImage(intr, "ProfessionsStartTaskButton");
            intr.Wait(500);

            if (primaryAsset.AssetId == ProfessionAssetId.Mercenary ||
                primaryAsset.AssetId == ProfessionAssetId.Guard ||
                primaryAsset.AssetId == ProfessionAssetId.Footman)
            {
                bonusFactor = optionalAsset.BonusFactor;
            }
            else
            {
                bonusFactor = primaryAsset.BonusFactor + optionalAsset.BonusFactor;
            }

            return(true);
        }