コード例 #1
0
ファイル: GameState.cs プロジェクト: billybillyjim/Quepland_2
 public void CompleteArtisanTask()
 {
     try
     {
         Recipe r     = ItemManager.Instance.GetArtisanRecipeByOutput(CurrentArtisanTask.ItemName);
         string skill = r.ExperienceGained.Split(',')[0].Split(':')[0];
         long   xp    = long.Parse(r.ExperienceGained.Split(',')[0].Split(':')[1]);
         Player.Instance.GainExperience(skill, xp * CurrentArtisanTask.AmountRequired / 10);
         Player.Instance.ArtisanPoints += CurrentArtisanTask.PointsToEarn;
         MessageManager.AddMessage("You completed your artisan task! You've earned " + CurrentArtisanTask.PointsToEarn + " artisan points with the guild and now have a total of " + Player.Instance.ArtisanPoints + ". Speak to a guild member to get another task.");
     }
     catch (Exception e)
     {
         Console.WriteLine(e.Message);
         Console.WriteLine(e.StackTrace);
     }
     CurrentArtisanTask = null;
 }
コード例 #2
0
ファイル: GameState.cs プロジェクト: billybillyjim/Quepland_2
    public static void LoadSaveData(GameStateSaveData data)
    {
        IsOnHuntingTrip      = AreaManager.LoadedHuntingInfo;
        HideLockedItems      = data.HideLockedItems;
        CompactInventoryView = data.CompactInventory;

        CurrentArtisanTask = data.CurrentTask;
        if (data.Location == null || data.Location == "" || data.Location == "Battle")
        {
            Location    = "QueplandFields";
            CurrentLand = AreaManager.Instance.GetLandByName("Quepland");
        }
        else
        {
            Location    = data.Location;
            CurrentLand = AreaManager.Instance.GetLandByName(data.CurrentLand);
        }
    }
コード例 #3
0
ファイル: GameState.cs プロジェクト: billybillyjim/Quepland_2
    private async Task Tick()
    {
        if (IsOnHuntingTrip || CurrentAFKAction != null)
        {
            if (SaveGame)
            {
                IsSaving = true;
                await SaveManager.SaveGame();

                SaveGame = false;
            }
            else if (CurrentTick % AutoSaveInterval == 0)
            {
                await SaveManager.SaveGame();
            }
            CurrentTick++;
            StateHasChanged();
            return;
        }
        if (stopActions)
        {
            ClearActions();
        }
        else if (stopNoncombatActions)
        {
            ClearNonCombatActions();
        }
        if (TicksToNextAction <= 0 && CurrentGatherItem != null)
        {
            GatherItem();
        }
        else if (TicksToNextAction <= 0 && CurrentRecipe != null)
        {
            CraftItem();
        }
        else if (TicksToNextAction <= 0 && CurrentSmithingRecipe != null && CurrentSmeltingRecipe != null)
        {
            SmithItem();
        }
        else if (TicksToNextAction <= 0 && CurrentAlchemyFormula != null)
        {
            AlchItem();
        }
        else if (BattleManager.Instance.CurrentOpponents != null && BattleManager.Instance.CurrentOpponents.Count > 0)
        {
            if (BattleManager.Instance.WaitedAutoBattleGameTick)
            {
                if (BattleManager.Instance.SelectedOpponent != null)
                {
                    BattleManager.Instance.StartBattle(BattleManager.Instance.SelectedOpponent);
                }
                else
                {
                    BattleManager.Instance.StartBattle(BattleManager.Instance.CurrentArea);
                }
            }
            else
            {
                BattleManager.Instance.DoBattle();
            }
        }
        else if (TicksToNextAction <= 0 && CurrentBook != null)
        {
            ReadBook();
        }
        if (Player.Instance.CurrentFollower != null && Player.Instance.CurrentFollower.IsBanking)
        {
            Player.Instance.CurrentFollower.TicksToNextAction--;
            if (Player.Instance.CurrentFollower.TicksToNextAction <= 0)
            {
                Player.Instance.CurrentFollower.BankItems();
            }
        }
        if (CurrentFood != null && CurrentTick % CurrentFood.FoodInfo.HealSpeed == 0)
        {
            if (CancelEating)
            {
                CurrentFood  = null;
                CancelEating = false;
                Player.Instance.ClearBoosts();
            }
            else
            {
                HealPlayer();
            }
        }

        if (EXPTrackerComponent != null)
        {
            if (CurrentTick % 5 == 0)
            {
                foreach (ExperienceTracker t in EXPTrackerComponent.TrackedExperinceRates)
                {
                    t.TimeSinceTrackerStarted += TimeSpan.FromMilliseconds(GameSpeed * 5);
                }
            }
        }
        if (Player.Instance.JustDied)
        {
            CurrentFood  = null;
            HealingTicks = 0;
            Player.Instance.ClearBoosts();
            Player.Instance.JustDied = false;
        }
        if (cancelTask)
        {
            CurrentArtisanTask = null;
            cancelTask         = false;
        }
        Player.Instance.TickStatusEffects();
        await GetDimensions();

        TicksToNextAction--;
        CurrentTick++;
        TooltipManager.currentDelay++;
        if (SaveGame)
        {
            IsSaving = true;
            await SaveManager.SaveGame();

            SaveGame = false;
        }
        else if (CurrentTick % AutoSaveInterval == 0)
        {
            await SaveManager.SaveGame();
        }
    }