228 lines
5.9 KiB
C#
Raw Normal View History

using Newtonsoft.Json;
2021-08-12 16:52:06 +01:00
using System.Collections.Generic;
namespace Common.Models.Output
2021-08-12 16:52:06 +01:00
{
public class Bot
{
public Bot(BotType botType)
2021-08-12 16:52:06 +01:00
{
this.botType = botType;
appearance = new Appearance();
experience = new Experience();
health = new Health();
skills = new Skills();
inventory = new Inventory();
firstName = new List<string>();
lastName = new List<string>();
difficulty = new Difficulty.Difficulty();
chances = new Chances();
generation = new GenerationChances();
2021-08-12 16:52:06 +01:00
}
[JsonIgnore]
public BotType botType { get; set; }
public Appearance appearance { get; set; }
public Experience experience { get; set; }
public Health health { get; set; }
public Skills skills { get; set; }
public Inventory inventory { get; set; }
public List<string> firstName { get; set; }
public List<string> lastName { get; set; }
public Difficulty.Difficulty difficulty { get; set; }
public Chances chances { get; set; }
public GenerationChances generation { get; set; }
}
public class Appearance
{
public Appearance()
2021-08-12 16:52:06 +01:00
{
body = new List<string>();
feet = new List<string>();
hands = new List<string>();
head = new List<string>();
voice = new List<string>();
2021-08-12 16:52:06 +01:00
}
public List<string> body { get; set; }
public List<string> feet { get; set; }
public List<string> hands { get; set; }
public List<string> head { get; set; }
public List<string> voice { get; set; }
}
public class Experience
{
public Experience()
2021-08-12 16:52:06 +01:00
{
level = new MinMax(0, 1);
reward = new MinMax(-1, -1);
standingForKill = -0.02;
aggressorBonus = 0.01;
2021-08-12 16:52:06 +01:00
}
public MinMax level { get; set; }
public MinMax reward { get; set; }
public double standingForKill { get; set; }
public double aggressorBonus { get; set; }
}
public class BodyParts
{
public BodyParts()
2021-08-12 16:52:06 +01:00
{
Head = new MinMax(35, 35);
Chest = new MinMax(85, 85);
Stomach = new MinMax(70, 70);
LeftArm = new MinMax(60, 60);
RightArm = new MinMax(60, 60);
LeftLeg = new MinMax(65, 65);
RightLeg = new MinMax(65, 65);
2021-08-12 16:52:06 +01:00
}
public MinMax Head { get; set; }
public MinMax Chest { get; set; }
public MinMax Stomach { get; set; }
public MinMax LeftArm { get; set; }
public MinMax RightArm { get; set; }
public MinMax LeftLeg { get; set; }
public MinMax RightLeg { get; set; }
}
public class Health
{
public Health()
2021-08-12 16:52:06 +01:00
{
Hydration = new MinMax(100, 100);
Energy = new MinMax(100, 100);
Temperature = new MinMax(36, 40);
BodyParts = new List<BodyParts>();
2021-08-12 16:52:06 +01:00
}
public MinMax Hydration { get; set; }
public MinMax Energy { get; set; }
public MinMax Temperature { get; set; }
public List<BodyParts> BodyParts { get; set; }
}
2021-08-12 16:52:06 +01:00
public class Skills
{
public Skills()
{
Common = new Dictionary<string, MinMax>();
2021-08-12 16:52:06 +01:00
}
public Dictionary<string, MinMax> Common { get; set; }
}
2021-08-17 16:19:23 +01:00
public class Chances
{
public Chances()
2021-08-12 16:52:06 +01:00
{
equipment = new EquipmentChances();
2021-08-12 16:52:06 +01:00
}
public EquipmentChances equipment { get; set; }
public Dictionary<string, int> mods { get; set; }
}
public class EquipmentChances
{
public EquipmentChances()
2021-08-12 16:52:06 +01:00
{
}
2021-08-12 16:52:06 +01:00
public EquipmentChances(int head, int ear, int faceCover,
int vest, int eyewear, int armband, int tacVest,
int backpack, int firstPrimary, int secondPrimary,
int holster, int scabbard, int pockets, int securedContainer)
{
Headwear = head;
Earpiece = ear;
FaceCover = faceCover;
ArmorVest = vest;
ArmBand = armband;
Eyewear = eyewear;
TacticalVest = tacVest;
Backpack = backpack;
FirstPrimaryWeapon = firstPrimary;
SecondPrimaryWeapon = secondPrimary;
Holster = holster;
Scabbard = scabbard;
Pockets = pockets;
SecuredContainer = securedContainer;
2021-08-12 16:52:06 +01:00
}
public int Headwear { get; set; }
public int Earpiece { get; set; }
public int FaceCover { get; set; }
public int ArmorVest { get; set; }
public int Eyewear { get; set; }
public int ArmBand { get; set; }
public int TacticalVest { get; set; }
public int Backpack { get; set; }
public int FirstPrimaryWeapon { get; set; }
public int SecondPrimaryWeapon { get; set; }
public int Holster { get; set; }
public int Scabbard { get; set; }
public int Pockets { get; set; }
public int SecuredContainer { get; set; }
}
public class GenerationChances
{
public GenerationChances(int specialMin, int SpecialMax,
int healingMin, int healingMax,
int looseLootMin, int looseLootMax,
int magazinesMin, int MagazineMax,
int grenandesMin, int grenadesMax)
2021-08-12 16:52:06 +01:00
{
items = new ItemChances
2021-08-12 16:52:06 +01:00
{
specialItems = new MinMax(specialMin, SpecialMax),
healing = new MinMax(healingMin, healingMax),
looseLoot = new MinMax(looseLootMin, looseLootMax),
magazines = new MinMax(magazinesMin, MagazineMax),
grenades = new MinMax(grenandesMin, grenadesMax)
};
2021-08-12 16:52:06 +01:00
}
public GenerationChances()
2021-08-12 16:52:06 +01:00
{
items = new ItemChances();
2021-08-12 16:52:06 +01:00
}
public ItemChances items { get; set; }
}
public class ItemChances
{
public ItemChances()
2021-08-12 16:52:06 +01:00
{
specialItems = new MinMax(0, 1);
healing = new MinMax(1, 2);
looseLoot = new MinMax(0, 3);
magazines = new MinMax(2, 4);
grenades = new MinMax(0, 5);
}
2021-08-12 16:52:06 +01:00
public MinMax specialItems { get; set; }
public MinMax healing { get; set; }
public MinMax looseLoot { get; set; }
public MinMax magazines { get; set; }
public MinMax grenades { get; set; }
}
public class MinMax
{
public MinMax(int min, int max)
{
this.min = min;
this.max = max;
2021-08-12 16:52:06 +01:00
}
public int min { get; set; }
public int max { get; set; }
}
2021-08-12 16:52:06 +01:00
}