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; }
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); } }
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(); } }