Added files via upload
This commit is contained in:
parent
c0ecccf93c
commit
2c6ce07222
|
@ -0,0 +1,117 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using StardewModdingAPI;
|
||||
using StardewValley;
|
||||
using StardewModdingAPI.Events;
|
||||
using Microsoft.Xna.Framework;
|
||||
using System.IO;
|
||||
|
||||
namespace CustomShopMod
|
||||
{
|
||||
class myclass : Mod
|
||||
{
|
||||
public override void Entry(params object[] objects)
|
||||
{
|
||||
Command.RegisterCommand("shop_mod", "Allows purchasing from custom shops. | shopmod <value> <shop_list_num> <quantity>", new[] { "(String)<value> (Int32)<shop_list_num> (Int32)<quantity>" }).CommandFired += player_addItem;
|
||||
}
|
||||
public void player_addItem(object sender, EventArgsCommand e)
|
||||
{
|
||||
if (e.Command.CalledArgs.Length > 0)
|
||||
{
|
||||
if (e.Command.CalledArgs.Length <= 3)
|
||||
{
|
||||
int quantity = Convert.ToInt32(e.Command.CalledArgs[2]);
|
||||
int list_num = Convert.ToInt32(e.Command.CalledArgs[1]);
|
||||
string newstring = e.Command.CalledArgs[0];
|
||||
DataLoader(newstring, list_num, quantity);
|
||||
}
|
||||
else Log.Error("Invalid number of parameters! The paramaters are as follows: shop_mod (shop_name.txt) (Shop_List_Number) (quantity)");
|
||||
}
|
||||
else Log.Error("Invalid Parameters. Try Shop_Name.txt Shop_List_Id Quantity");
|
||||
}
|
||||
|
||||
public void DataLoader(string funnystring, int list_num, int quantity)
|
||||
{
|
||||
int object_id = 0;
|
||||
int count = 0;
|
||||
int price = 0;
|
||||
|
||||
//loads the data to the variables upon loading the game.
|
||||
//string myname = StardewValley.Game1.player.name;
|
||||
string mylocation = Path.Combine(PathOnDisk, funnystring);
|
||||
string mylocation3 = mylocation + ".txt";
|
||||
if (!File.Exists(mylocation3)) //if not data.json exists, initialize the data variables to the ModConfig data. I.E. starting out.
|
||||
{
|
||||
Log.Error("Invalid shop.Please make sure that " + mylocation3 + " exists!");
|
||||
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
string[] separators = { "/", " " };
|
||||
var lineCount = File.ReadLines(mylocation3).Count();
|
||||
|
||||
if (lineCount > 12 + ((list_num - 1) * 11))
|
||||
{ //my logic seems reversed here?
|
||||
string[] readtext = File.ReadAllLines(mylocation3);
|
||||
string obj_name = readtext[6 + ((list_num - 1) * 11)];
|
||||
|
||||
string string_obj_id = readtext[8 + ((list_num - 1) * 11)];
|
||||
string string_count_id = readtext[10 + ((list_num - 1) * 11)];
|
||||
string string_price_id = readtext[12 + ((list_num - 1) * 11)];
|
||||
|
||||
string[] string_obj_id_arr = string_obj_id.Split(separators, StringSplitOptions.RemoveEmptyEntries);
|
||||
string[] string_count_id_arr = string_count_id.Split(separators, StringSplitOptions.RemoveEmptyEntries);
|
||||
// string[] string_price_id_arr = string_price_id.Split(separators, StringSplitOptions.RemoveEmptyEntries);
|
||||
|
||||
object_id = Convert.ToInt32(string_obj_id);
|
||||
count = Convert.ToInt32(string_count_id);
|
||||
price = Convert.ToInt32(string_price_id);
|
||||
|
||||
int array_size = string_obj_id_arr.Length;
|
||||
int array_size2 = string_count_id_arr.Length;
|
||||
Log.Info(array_size2);
|
||||
Log.Info(array_size);
|
||||
|
||||
int i = 0;
|
||||
// string[] object_id_array = object_id.Split(separators, StringSplitOptions.RemoveEmptyEntries);
|
||||
|
||||
//Log.Info(quantity);
|
||||
//Log.Info(price);
|
||||
if (array_size == array_size2)
|
||||
{
|
||||
while (i < array_size && i < array_size2)
|
||||
{
|
||||
object_id = Convert.ToInt32(string_obj_id_arr[i]);
|
||||
count = Convert.ToInt32(string_count_id_arr[i]);
|
||||
price = Convert.ToInt32(string_price_id);
|
||||
i++;
|
||||
if (quantity * price <= 999)
|
||||
{
|
||||
if (StardewModdingAPI.Entities.SPlayer.Player.money >= quantity * price)
|
||||
{
|
||||
StardewModdingAPI.Entities.SPlayer.Player.money -= quantity * price;
|
||||
var o = new StardewValley.Object(object_id, count * quantity);
|
||||
Game1.player.addItemByMenuIfNecessary(o);
|
||||
Log.Success("Successfully purchased " + obj_name + " from " + funnystring);
|
||||
}
|
||||
else Log.Error("Not enough Money!");
|
||||
|
||||
}
|
||||
else Log.Error("Warning. Attempting to obtain more than 999 of an item. This loss was prevented.");
|
||||
}
|
||||
}
|
||||
else Log.Error("Item Object Id's and Object count values are of different lengths. Please make sure that they are the same length! i.e each has the same amount of elements.");
|
||||
}
|
||||
|
||||
|
||||
else Log.Error("You tried to call something not in the text file. Please stick to the original format!");
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue