// Конструктор для создания нового объекта. public UniversalVirus(Coordinate coordinate, string nameVirus, string infectionTypeVirus, int mortalityVirus, VitalFunctions whoever = null) : base(coordinate) { universalvirusCoord = coordinate; name = nameVirus; infectionType = infectionTypeVirus; mortality = mortalityVirus; who = whoever; }
// Конструктор для создания нового объекта. public AnimalVirus(Coordinate coordinate, string nameVirus, string infectionTypeVirus, int mortalityVirus, VitalFunctions anim = null) : base(coordinate) { animalvirusCoord = coordinate; name = nameVirus; infectionType = infectionTypeVirus; mortality = mortalityVirus; animal = anim; }
// Конструктор для создания нового объекта. public HumanVirus(Coordinate coordinate, string nameVirus, string infectionTypeVirus, int mortalityVirus, VitalFunctions huma = null) : base(coordinate) { humanvirusCoord = coordinate; name = nameVirus; infectionType = infectionTypeVirus; mortality = mortalityVirus; hum = huma; }
// Генерация вируса поменял на void public int generate(VitalFunctions whoever) { if (whoever.immunity < 50 && whoever.infected == false) { whoever.infected = true; whoever.infectionName = name; whoever.health = whoever.health - mortality; whoever.speed = whoever.speed * 0.1 * mortality; whoever.immunity = whoever.immunity - (0.2 * mortality); return(-1); } return(1); }
public int generate(VitalFunctions animal) { if (animal.objectType == "Animal" && animal.immunity < 50 && animal.infected == false) { animal.infected = true; animal.infectionName = name; animal.health = animal.health - mortality; animal.speed = animal.speed * 0.1 * mortality; animal.immunity = animal.immunity - (0.2 * mortality); return(-1); } return(1); }
public int generate(VitalFunctions human) { if (human.objectType == "Human" && human.immunity < 50 && human.infected == false) { human.infected = true; human.infectionName = name; human.health = human.health - mortality; human.speed = human.speed * 0.01 * mortality; human.immunity = human.immunity - (0.2 * mortality); hum = human; return(-1); } return(1); }
// Заражает человека в зависимости от типа заражения public int infect(VitalFunctions human) { if (human.objectType == "Human" && human.infected == false) { switch (infectionType) { case "Airborne": if ((Math.Sqrt(Math.Pow(human.Coord.X - humanvirusCoord.X, 2) + Math.Pow(human.Coord.Y - humanvirusCoord.Y, 2))) < 50) { human.infected = true; human.infectionName = name; human.health = human.health - mortality; human.speed = human.speed * 0.01 * mortality; human.immunity = human.immunity - (0.2 * mortality); hum = human; Console.WriteLine(name + " заразил по воздуху"); return(2); } else { Console.WriteLine("Зараженный с " + name + " слишком далеко и не заразил окружающих в 50 метрах."); return(1); } case "Contact": if ((Math.Sqrt(Math.Pow(human.Coord.X - humanvirusCoord.X, 2) + Math.Pow(human.Coord.Y - humanvirusCoord.Y, 2))) < 10) { human.infected = true; human.infectionName = name; human.health = human.health - mortality; human.speed = human.speed * 0.1 * mortality; human.immunity = human.immunity - (0.2 * mortality); hum = human; Console.WriteLine(name + " заразил контактно"); return(2); } else { Console.WriteLine("Зараженный с " + name + " слишком далеко и не заразил контактно никого."); return(1); } } } return(1); }
// Заражает любого в зависимости от типа заражения public int infect(VitalFunctions whoever) { if (whoever.infected == false) { switch (infectionType) { case "Airborne": if ((Math.Sqrt(Math.Pow(whoever.Coord.X - universalvirusCoord.X, 2) + Math.Pow(whoever.Coord.Y - universalvirusCoord.Y, 2))) < 50) { whoever.infected = true; whoever.infectionName = name; whoever.health = whoever.health - mortality; whoever.speed = whoever.speed * 0.1 * mortality; whoever.immunity = whoever.immunity - (0.2 * mortality); Console.WriteLine(name + " заразил по воздуху"); return(2); } else { Console.WriteLine("Зараженный с " + name + " слишком далеко и не заразил окружающих в 50 метрах."); return(1); } case "Contact": if ((Math.Sqrt(Math.Pow(whoever.Coord.X - universalvirusCoord.X, 2) + Math.Pow(whoever.Coord.Y - universalvirusCoord.Y, 2))) < 30) { whoever.infected = true; whoever.infectionName = name; whoever.health = whoever.health - mortality; whoever.speed = whoever.speed * 0.1 * mortality; whoever.immunity = whoever.immunity - (0.2 * mortality); Console.WriteLine(name + " заразил контактно"); return(2); } else { Console.WriteLine("Зараженный с " + name + " слишком далеко и не заразил контактно никого."); return(1); } } } return(1); }