Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions Dungeons/EclipseAscent/0GreatbladeoftheEntwinedEclipse.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
//cs_include Scripts/CoreBots.cs
//cs_include Scripts/CoreAdvanced.cs
//cs_include Scripts/Ultras/CoreEngine.cs
//cs_include Scripts/Ultras/CoreUltra.cs
//cs_include Scripts/Dungeons/EclipseAscent/CoreEclipse.cs
//cs_include Scripts/Dungeons/EclipseAscent/CelestialTempleForgeMerge.cs
//cs_include Scripts/Army/CoreArmyLite.cs

using Skua.Core.Interfaces;
using Skua.Core.Models;
using Skua.Core.Options;

public class GreatbladeoftheEntwinedEclipse
{
private IScriptInterface Bot => IScriptInterface.Instance;
public CoreBots C => CoreBots.Instance;
private static CoreAdvanced Adv = new();
public CoreUltra Ultra = new();
private static CoreArmyLite sArmy = new();
public static CoreEclipse coreEclipse
{
get => _coreEclipse;
set => _coreEclipse = value;
}
public static CoreEclipse _coreEclipse = new();
public CelestialTempleForgeMerge templeMerge = new();

public bool DontPreconfigure = true;
public string OptionsStorage = "EclipseAscent";
public List<IOption> Options = GetOptions();

public void ScriptMain(IScriptInterface Bot)
{
coreEclipse.BotStart();

templeMerge.BuyAllMerge("Greatblade of the Entwined Eclipse");

coreEclipse.BotStop();
}

private static List<IOption> GetOptions()
{
var list = new List<IOption>
{
CoreBots.Instance.SkipOptions,
};
list.AddRange(coreEclipse.Options);
return list;
}
}
125 changes: 125 additions & 0 deletions Dungeons/EclipseAscent/CelestialTempleForgeMerge.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
/*
name: Celestial Temple Forge Merge
description: This bot will farm the items belonging to the selected mode for the Celestial Temple Forge Merge [2303] in /templeshrine
tags: celestial, temple, forge, merge, templeshrine, rite, ascension, solarbrand, lunarbrand, umbrabrand, burning, sun, glowing, moon, bound, eclipse, greatblade, midnight, solstice, entwined
*/
//cs_include Scripts/CoreBots.cs
//cs_include Scripts/CoreFarms.cs
//cs_include Scripts/CoreAdvanced.cs
//cs_include Scripts/Dungeons/EclipseAscent/CoreEclipse.cs
//cs_include Scripts/Army/CoreArmyLite.cs
//cs_include Scripts/Story/VictorMatsuri.cs
using Skua.Core.Interfaces;
using Skua.Core.Models.Items;
using Skua.Core.Options;

public class CelestialTempleForgeMerge
{
private IScriptInterface Bot => IScriptInterface.Instance;
private CoreBots Core => CoreBots.Instance;
private static CoreFarms Farm { get => _Farm ??= new CoreFarms(); set => _Farm = value; }
private static CoreFarms _Farm;
private static CoreAdvanced Adv { get => _Adv ??= new CoreAdvanced(); set => _Adv = value; }
private static CoreAdvanced _Adv;
private static CoreAdvanced sAdv { get => _sAdv ??= new CoreAdvanced(); set => _sAdv = value; }
private static CoreAdvanced _sAdv;
public static CoreEclipse coreEclipse
{
get => _coreEclipse;
set => _coreEclipse = value;
}
public static CoreEclipse _coreEclipse = new();
private static CoreArmyLite sArmy = new();
private static VictorMatsuri VictorMatsuri = new();


public bool DontPreconfigure = true;
public List<IOption> Generic = sAdv.MergeOptions;
public string[] MultiOptions = { "Generic", "Select" };
public string OptionsStorage = sAdv.OptionsStorage;
// [Can Change] This should only be changed by the author.
// If true, it will not stop the script if the default case triggers and the user chose to only get mats
private bool dontStopMissingIng = false;
public List<IOption> Options = coreEclipse.Options;

public void ScriptMain(IScriptInterface Bot)
{
coreEclipse.BotStart();

BuyAllMerge();

coreEclipse.BotStop();
}

public void BuyAllMerge(string? buyOnlyThis = null, mergeOptionsEnum? buyMode = null)
{
//Only edit the map and shopID here
Adv.StartBuyAllMerge("templeshrine", 2303, findIngredients, buyOnlyThis, buyMode: buyMode);

#region Dont edit this part
void findIngredients()
{
ItemBase req = Adv.externalItem;
int quant = Adv.externalQuant;
int currentQuant = req.Temp ? Bot.TempInv.GetQuantity(req.Name) : Bot.Inventory.GetQuantity(req.Name);
var sliverQuant = quant + (!Core.CheckInventory("Rite of Ascension") ? 1 : 0);
if (req == null)
{
Core.Logger("req is NULL");
return;
}

switch (req.Name)
{
default:
bool shouldStop = !Adv.matsOnly || !dontStopMissingIng;
Core.Logger($"The bot hasn't been taught how to get {req.Name}." + (shouldStop ? " Please report the issue." : " Skipping"), messageBox: shouldStop, stopBot: shouldStop);
break;
#endregion

case "Sliver of Moonlight":
Core.FarmingLogger(req.Name, sliverQuant);
coreEclipse.GetSliverOfMoonlight(sliverQuant);
break;


case "Sliver of Sunlight":
Core.FarmingLogger(req.Name, sliverQuant);
coreEclipse.GetSliverOfSunlight(sliverQuant);
break;


case "Victor of the Festival":
VictorMatsuri.Storyline();
if (!Core.CheckInventory("Victor of the Festival"))
{
Core.Logger("Victor Matsuri questline didn't finish, exiting...");
Bot.StopSync(true);
}
break;


case "Ecliptic Offering":
if (!Core.CheckInventory("Rite of Ascension"))
BuyAllMerge("Rite of Ascension");
Core.FarmingLogger("Ecliptic Offering", quant);
coreEclipse.GetEclipticOffering(quant);
break;
}
}
}

public List<IOption> Select = new()
{
new Option<bool>("78809", "Rite of Ascension", "Mode: [select] only\nShould the bot buy \"Rite of Ascension\" ?", false),
new Option<bool>("78465", "Solarbrand", "Mode: [select] only\nShould the bot buy \"Solarbrand\" ?", false),
new Option<bool>("78460", "Lunarbrand", "Mode: [select] only\nShould the bot buy \"Lunarbrand\" ?", false),
new Option<bool>("78455", "Umbrabrand", "Mode: [select] only\nShould the bot buy \"Umbrabrand\" ?", false),
new Option<bool>("78466", "Blade of the Burning Sun", "Mode: [select] only\nShould the bot buy \"Blade of the Burning Sun\" ?", false),
new Option<bool>("78461", "Blade of the Glowing Moon", "Mode: [select] only\nShould the bot buy \"Blade of the Glowing Moon\" ?", false),
new Option<bool>("78456", "Blade of the Bound Eclipse", "Mode: [select] only\nShould the bot buy \"Blade of the Bound Eclipse\" ?", false),
new Option<bool>("78467", "Greatblade of the Midnight Sun", "Mode: [select] only\nShould the bot buy \"Greatblade of the Midnight Sun\" ?", false),
new Option<bool>("78462", "Greatblade of the Solstice Moon", "Mode: [select] only\nShould the bot buy \"Greatblade of the Solstice Moon\" ?", false),
new Option<bool>("78457", "Greatblade of the Entwined Eclipse", "Mode: [select] only\nShould the bot buy \"Greatblade of the Entwined Eclipse\" ?", false),
};
}
Loading