You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
253 lines
8.1 KiB
253 lines
8.1 KiB
using System;
|
|
using System.Text;
|
|
using Newtonsoft.Json;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
using System.ComponentModel.DataAnnotations;
|
|
|
|
namespace Kehyeedra3.Services.Models
|
|
{
|
|
public class Farming
|
|
{
|
|
[Key]
|
|
public ulong Id { get; set; } = 0;
|
|
public int Tier { get; set; } = 0;
|
|
public int EmployeeCount { get; set; } = 0;
|
|
public ulong Lvl { get; set; } = 0;
|
|
public ulong Xp { get; set; } = 50;
|
|
public ulong FXp { get; set; } = 0;
|
|
public ulong TXp { get; set; } = 0;
|
|
|
|
[Column(TypeName = "LONGTEXT")]
|
|
public string CropInventory { get; set; } = "{}";
|
|
[Column(TypeName = "LONGTEXT")]
|
|
public string PlotInventory { get; set; } = "{}";
|
|
|
|
public Dictionary<FarmCrop, int[]> GetCropInventory()
|
|
{
|
|
return JsonConvert.DeserializeObject<Dictionary<FarmCrop, int[]>>(CropInventory);
|
|
}
|
|
public Dictionary<FarmLand, int[]> GetPlotInventory()
|
|
{
|
|
return JsonConvert.DeserializeObject<Dictionary<FarmLand, int[]>>(PlotInventory);
|
|
}
|
|
public void SetCropInventory(Dictionary<FarmCrop, int[]> inv)
|
|
{
|
|
Dictionary<int, int[]> temp = new Dictionary<int, int[]>();
|
|
foreach (var entry in inv)
|
|
{
|
|
temp.Add((int)entry.Key, entry.Value);
|
|
}
|
|
CropInventory = JsonConvert.SerializeObject(temp);
|
|
}
|
|
public void SetPlotInventory(Dictionary<FarmLand, int[]> inv)
|
|
{
|
|
Dictionary<int, int[]> temp = new Dictionary<int, int[]>();
|
|
foreach (var entry in inv)
|
|
{
|
|
temp.Add((int)entry.Key, entry.Value);
|
|
}
|
|
PlotInventory = JsonConvert.SerializeObject(temp);
|
|
}
|
|
public static List<FCrop> ListCrops()
|
|
{
|
|
return new List<FCrop>
|
|
{
|
|
new FCrop()
|
|
{
|
|
Id = FarmCrop.Wheat,
|
|
Name = "Wheat",
|
|
Description = "Common wheat, 'Triticum aestivum' is the most widely grown cereal grain, you should get in on it before we reach peak wheat.",
|
|
Type = FarmType.Plant,
|
|
Tier = FarmTier.T0,
|
|
GrowTime = 10,
|
|
Price = 100,
|
|
},
|
|
new FCrop()
|
|
{
|
|
Id = FarmCrop.Rye,
|
|
Name = "Rye",
|
|
Description = "Rye, 'Secale cereale' is a hardy cereal grain, grows slower than wheat, but also tastes better.",
|
|
Type = FarmType.Plant,
|
|
Tier = FarmTier.T1,
|
|
GrowTime = 15,
|
|
Price = 150,
|
|
},
|
|
new FCrop()
|
|
{
|
|
Id = FarmCrop.Lettuce,
|
|
Name = "Lettuce",
|
|
Description = "Lettuce, 'Lactuca sativa' is an annual daisy plant first cultivated in ancient Egypt, worshipped as ancient viagra. Incidentally, it can be harvested very often.",
|
|
Type = FarmType.Plant,
|
|
Tier = FarmTier.T2,
|
|
GrowTime = 5,
|
|
Price = 200,
|
|
},
|
|
new FCrop()
|
|
{
|
|
Id = FarmCrop.Leek,
|
|
Name = "Leek",
|
|
Description = "Leek, 'Allium ampeloprasum' is an onion, the word leek is derived from the old english word 'leac', it has a medium growth time. I know what you're thinking about doing and I want you to stop right now.",
|
|
Type = FarmType.Plant,
|
|
Tier = FarmTier.T3,
|
|
GrowTime = 13,
|
|
Price = 250,
|
|
},
|
|
new FCrop()
|
|
{
|
|
Id = FarmCrop.Bookweed,
|
|
Name = "Bookweed",
|
|
Description = "Bookweed, 'Lactuca liber' is an enchanted variant of lettuce used for special crafting. Eating it by itself is said to give you diarrhea.",
|
|
Type = FarmType.Plant,
|
|
Tier = FarmTier.T4,
|
|
GrowTime = 50,
|
|
Price = 0,
|
|
},
|
|
new FCrop()
|
|
{
|
|
Id = FarmCrop.LuckyLeek,
|
|
Name = "Polkka",
|
|
Description = "Polkka, 'Allium dexter' is an enchanted variant of leek used for special crafting. It contains a natural power to spin, and can be used as a green energy source. If you're a huge faggot.",
|
|
Type = FarmType.Plant,
|
|
Tier = FarmTier.T5,
|
|
GrowTime = 50,
|
|
Price = 0,
|
|
},
|
|
};
|
|
}
|
|
public static List<FLand> ListFarmLand()
|
|
{
|
|
return new List<FLand>
|
|
{
|
|
new FLand()
|
|
{
|
|
Id = FarmLand.Backyard,
|
|
Name = "Backyard",
|
|
Type = FarmType.Plant,
|
|
Tier = FarmTier.T0,
|
|
WorkerMax = 1,
|
|
Price = 0
|
|
},
|
|
new FLand()
|
|
{
|
|
Id = FarmLand.Bathtub,
|
|
Name = "Bathtub",
|
|
Type = FarmType.Fish,
|
|
Tier = FarmTier.T0,
|
|
WorkerMax = 1,
|
|
Price = 0,
|
|
},
|
|
new FLand()
|
|
{
|
|
Id = FarmLand.SPlot,
|
|
Name = "Small Plot",
|
|
Type = FarmType.Plant,
|
|
Tier = FarmTier.T1,
|
|
WorkerMax = 2,
|
|
Price = 600
|
|
},
|
|
new FLand()
|
|
{
|
|
Id = FarmLand.MPlot,
|
|
Name = "Medium Plot",
|
|
Type = FarmType.Plant,
|
|
Tier = FarmTier.T2,
|
|
WorkerMax = 4,
|
|
Price = 1000
|
|
},
|
|
new FLand()
|
|
{
|
|
Id = FarmLand.LPlot,
|
|
Name = "Large Plot",
|
|
Type = FarmType.Plant,
|
|
Tier = FarmTier.T3,
|
|
WorkerMax = 6,
|
|
Price = 1400
|
|
},
|
|
};
|
|
}
|
|
}
|
|
public enum FarmLand
|
|
{
|
|
Backyard = 0,
|
|
Bathtub = 1,
|
|
SPlot = 2,
|
|
MPlot = 3,
|
|
LPlot = 4,
|
|
}
|
|
public enum FarmType
|
|
{
|
|
Any = 0,
|
|
Plant = 1,
|
|
Mushroom = 2,
|
|
Fish = 3,
|
|
}
|
|
public enum FarmCrop
|
|
{
|
|
Wheat = 0,
|
|
Rye = 1,
|
|
Lettuce = 2,
|
|
Leek = 3,
|
|
|
|
LuckyLeek = 100,
|
|
Bookweed = 101,
|
|
|
|
|
|
}
|
|
public enum FarmTier
|
|
{
|
|
T0 = 0,
|
|
T1 = 1,
|
|
T2 = 2,
|
|
T3 = 3,
|
|
T4 = 4,
|
|
T5 = 5,
|
|
}
|
|
public class FLand
|
|
{
|
|
public FarmLand Id { get; set; }
|
|
public string Name { get; set; }
|
|
public string Description { get; set; }
|
|
public FarmType Type { get; set; }
|
|
public FarmTier Tier { get; set; }
|
|
public int WorkerMax { get; set; }
|
|
public int Price { get; set; }
|
|
|
|
}
|
|
|
|
public class FCrop
|
|
{
|
|
public FarmCrop Id { get; set; }
|
|
public string Name { get; set; }
|
|
public string Description { get; set; }
|
|
public FarmType Type { get; set; }
|
|
public FarmTier Tier { get; set; }
|
|
public int GrowTime { get; set; }
|
|
public int Price { get; set; }
|
|
}
|
|
|
|
public class PlotObject
|
|
{
|
|
[Key]
|
|
public ulong PlotId { get; set; } = 0;
|
|
[Required]
|
|
public ulong UserId { get; set; } = 0;
|
|
public ulong Planted { get; set; } = 0;
|
|
public ulong Grown { get; set; } = 0;
|
|
public int FarmType { get; set; } = 0;
|
|
public int WorkerAmount { get; set; } = 0;
|
|
|
|
}
|
|
public class FCropSlot
|
|
{
|
|
public int Id;
|
|
public int Seeds;
|
|
public int Produce;
|
|
}
|
|
public class FPlotSlot
|
|
{
|
|
public int Id;
|
|
public int Amount;
|
|
}
|
|
|
|
}
|
|
|