329 lines
11 KiB
C#

using Common.Models;
using Newtonsoft.Json;
using System.Collections.Generic;
namespace Generator.Models.Output
{
public class Bot
{
public Bot(BotType botType)
{
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();
}
[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()
{
body = new List<string>();
feet = new List<string>();
hands = new List<string>();
head = new List<string>();
voice = new List<string>();
}
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()
{
level = new MinMax(0, 1);
reward = new MinMax(-1, -1);
standingForKill = -0.02;
aggressorBonus = 0.01;
}
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()
{
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);
}
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()
{
Hydration = new MinMax(100, 100);
Energy = new MinMax(100, 100);
Temperature = new MinMax(36, 40);
BodyParts = new BodyParts();
}
public MinMax Hydration { get; set; }
public MinMax Energy { get; set; }
public MinMax Temperature { get; set; }
public BodyParts BodyParts { get; set; }
}
public class Skills
{
public Skills()
{
Common = new Dictionary<string, MinMax>();
}
public Dictionary<string, MinMax> Common { get; set; }
}
public class Chances
{
public Chances()
{
equipment = new EquipmentChances();
}
public EquipmentChances equipment { get; set; }
public Mods mods { get; set; }
}
public class EquipmentChances
{
public EquipmentChances()
{
}
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;
}
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 Mods
{
public Mods(int muzzle, int barrel, int handguard, int stock,
int magazine, int mount, int flashlight, int tactical_001,
int tactical_002, int tactical_003, int mount_000, int pistol_grip,
int tactical, int scope, int reciever, int sight_rear,
int charge, int mount_001, int equipment, int gas_block,
int launcher, int sight_front, int stock_000, int foregrip,
int tactical_000, int nvg, int pistol_grip_akms, int stock_akms,
int equipment_000, int equipment_001, int equipment_002, int bipod,
int mount_002, int mount_004, int trigger, int hammer, int _catch,
int stock_001, int muzzle_000, int mount_003)
{
mod_muzzle = muzzle;
mod_barrel = barrel;
mod_handguard = handguard;
mod_stock = stock;
mod_magazine = magazine;
mod_mount = mount;
mod_flashlight = flashlight;
mod_tactical_001 = tactical_001;
mod_tactical_002 = tactical_002;
mod_tactical_003 = tactical_003;
mod_mount_000 = mount_000;
mod_pistol_grip = pistol_grip;
mod_tactical = tactical;
mod_scope = scope;
mod_reciever = reciever;
mod_sight_rear = sight_rear;
mod_charge = charge;
mod_mount_001 = mount_001;
mod_equipment = equipment;
mod_gas_block = gas_block;
mod_launcher = launcher;
mod_sight_front = sight_front;
mod_stock_000 = stock_000;
mod_foregrip = foregrip;
mod_tactical_000 = tactical_000;
mod_nvg = nvg;
mod_pistol_grip_akms = pistol_grip_akms;
mod_stock_akms = stock_akms;
mod_equipment_000 = equipment_000;
mod_equipment_001 = equipment_001;
mod_equipment_002 = equipment_002;
mod_bipod = bipod;
mod_mount_002 = mount_002;
mod_mount_004 = mount_004;
mod_trigger = trigger;
mod_hammer = hammer;
mod_catch = _catch;
mod_stock_001 = stock_001;
mod_muzzle_000 = muzzle_000;
mod_mount_003 = mount_003;
}
public int mod_muzzle { get; set; }
public int mod_mount { get; set; }
public int mod_barrel { get; set; }
public int mod_handguard { get; set; }
public int mod_stock { get; set; }
public int mod_flashlight { get; set; }
public int mod_tactical_001 { get; set; }
public int mod_tactical_002 { get; set; }
public int mod_tactical_003 { get; set; }
public int mod_mount_000 { get; set; }
public int mod_magazine { get; set; }
public int mod_pistol_grip { get; set; }
public int mod_gas_block { get; set; }
public int mod_reciever { get; set; }
public int mod_charge { get; set; }
public int mod_sight_rear { get; set; }
public int mod_launcher { get; set; }
public int mod_equipment { get; set; }
public int mod_scope { get; set; }
public int mod_mount_001 { get; set; }
public int mod_mount_002 { get; set; }
public int mod_mount_004 { get; set; }
public int mod_tactical { get; set; }
public int mod_stock_000 { get; set; }
public int mod_sight_front { get; set; }
public int mod_pistol_grip_akms { get; set; }
public int mod_stock_akms { get; set; }
public int mod_foregrip { get; set; }
public int mod_tactical_000 { get; set; }
public int mod_nvg { get; set; }
public int mod_equipment_000 { get; set; }
public int mod_equipment_001 { get; set; }
public int mod_equipment_002 { get; set; }
public int mod_bipod { get; set; }
public int mod_trigger { get; set; }
public int mod_hammer { get; set; }
public int mod_catch { get; set; }
public int mod_stock_001 { get; set; }
public int mod_muzzle_000 { get; set; }
public int mod_mount_003 { 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)
{
items = new ItemChances
{
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)
};
}
public GenerationChances()
{
items = new ItemChances();
}
public ItemChances items { get; set; }
}
public class ItemChances
{
public ItemChances()
{
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);
}
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;
}
public int min { get; set; }
public int max { get; set; }
}
}