From 428efe745d1e221cfb5b4fa3f0fe8abbdc81903c Mon Sep 17 00:00:00 2001
From: K-mixam <72609950+K-mixam@users.noreply.github.com>
Date: Thu, 3 Jun 2021 19:27:00 +0500
Subject: [PATCH 1/3] Add files via upload
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Джигиль Максим, АТ-10
---
Final game/App.config | 6 +
Final game/Entity.cs | 209 +++++++++++++
Final game/Environment.cs | 43 +++
Final game/Final game.csproj | 114 +++++++
Final game/Final game.sln | 25 ++
Final game/Form1.Designer.cs | 58 ++++
Final game/Form1.cs | 293 ++++++++++++++++++
Final game/Form1.resx | 123 ++++++++
Final game/Images.Designer.cs | 123 ++++++++
Final game/Images.resx | 139 +++++++++
Final game/Map.cs | 137 ++++++++
Final game/Program.cs | 25 ++
Final game/Properties/AssemblyInfo.cs | 36 +++
Final game/Properties/Resources.Designer.cs | 71 +++++
Final game/Properties/Resources.resx | 117 +++++++
Final game/Properties/Settings.Designer.cs | 30 ++
Final game/Properties/Settings.settings | 7 +
Final game/Resources/background.png | Bin 0 -> 154548 bytes
Final game/Resources/background.psd | Bin 0 -> 1107773 bytes
Final game/Resources/door .png | Bin 0 -> 30456 bytes
Final game/Resources/hero.png | Bin 0 -> 34790 bytes
Final game/Resources/wall.png | Bin 0 -> 2086 bytes
...1\202\320\260\320\262\320\272\320\260.png" | Bin 0 -> 2176 bytes
...0\272\320\265\320\273\320\265\321\202.png" | Bin 0 -> 5712 bytes
Final game/bin/Debug/Final game.exe | Bin 0 -> 235008 bytes
Final game/bin/Debug/Final game.exe.config | 6 +
Final game/bin/Debug/Final game.pdb | Bin 0 -> 62976 bytes
.../DesignTimeResolveAssemblyReferences.cache | Bin 0 -> 823 bytes
...gnTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 7745 bytes
.../Final game.csproj.CoreCompileInputs.cache | 1 +
.../Final game.csproj.FileListAbsolute.txt | 11 +
.../Final game.csproj.GenerateResource.cache | Bin 0 -> 1244 bytes
.../Final game.csprojAssemblyReference.cache | Bin 0 -> 424 bytes
Final game/obj/Debug/Final game.exe | Bin 0 -> 235008 bytes
Final game/obj/Debug/Final game.pdb | Bin 0 -> 62976 bytes
.../obj/Debug/Final_game.Form1.resources | Bin 0 -> 180 bytes
.../obj/Debug/Final_game.Images.resources | Bin 0 -> 215884 bytes
.../Final_game.Properties.Resources.resources | Bin 0 -> 180 bytes
.../obj/Debug/TempPE/Images.Designer.cs.dll | Bin 0 -> 4096 bytes
39 files changed, 1574 insertions(+)
create mode 100644 Final game/App.config
create mode 100644 Final game/Entity.cs
create mode 100644 Final game/Environment.cs
create mode 100644 Final game/Final game.csproj
create mode 100644 Final game/Final game.sln
create mode 100644 Final game/Form1.Designer.cs
create mode 100644 Final game/Form1.cs
create mode 100644 Final game/Form1.resx
create mode 100644 Final game/Images.Designer.cs
create mode 100644 Final game/Images.resx
create mode 100644 Final game/Map.cs
create mode 100644 Final game/Program.cs
create mode 100644 Final game/Properties/AssemblyInfo.cs
create mode 100644 Final game/Properties/Resources.Designer.cs
create mode 100644 Final game/Properties/Resources.resx
create mode 100644 Final game/Properties/Settings.Designer.cs
create mode 100644 Final game/Properties/Settings.settings
create mode 100644 Final game/Resources/background.png
create mode 100644 Final game/Resources/background.psd
create mode 100644 Final game/Resources/door .png
create mode 100644 Final game/Resources/hero.png
create mode 100644 Final game/Resources/wall.png
create mode 100644 "Final game/Resources/\320\277\320\276\320\264\321\201\321\202\320\260\320\262\320\272\320\260.png"
create mode 100644 "Final game/Resources/\321\201\320\272\320\265\320\273\320\265\321\202.png"
create mode 100644 Final game/bin/Debug/Final game.exe
create mode 100644 Final game/bin/Debug/Final game.exe.config
create mode 100644 Final game/bin/Debug/Final game.pdb
create mode 100644 Final game/obj/Debug/DesignTimeResolveAssemblyReferences.cache
create mode 100644 Final game/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
create mode 100644 Final game/obj/Debug/Final game.csproj.CoreCompileInputs.cache
create mode 100644 Final game/obj/Debug/Final game.csproj.FileListAbsolute.txt
create mode 100644 Final game/obj/Debug/Final game.csproj.GenerateResource.cache
create mode 100644 Final game/obj/Debug/Final game.csprojAssemblyReference.cache
create mode 100644 Final game/obj/Debug/Final game.exe
create mode 100644 Final game/obj/Debug/Final game.pdb
create mode 100644 Final game/obj/Debug/Final_game.Form1.resources
create mode 100644 Final game/obj/Debug/Final_game.Images.resources
create mode 100644 Final game/obj/Debug/Final_game.Properties.Resources.resources
create mode 100644 Final game/obj/Debug/TempPE/Images.Designer.cs.dll
diff --git a/Final game/App.config b/Final game/App.config
new file mode 100644
index 0000000..5754728
--- /dev/null
+++ b/Final game/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Final game/Entity.cs b/Final game/Entity.cs
new file mode 100644
index 0000000..abcffbf
--- /dev/null
+++ b/Final game/Entity.cs
@@ -0,0 +1,209 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Drawing;
+
+namespace Final_game
+{
+ public class Entity
+ {
+ #region Fields
+ public int posX, posY, centreX, centreY;
+
+ public int sizeX, sizeY;
+
+ public int a;
+ public int speedX, speedY;
+
+ public int dx, dy;
+
+ public int idleFrames, runFrames, attackFrames, deathFrames;
+ public int currentAnimation, currentFrame, frameLimit;
+
+ public bool goUp, goDown, goLeft, goRight;
+
+ public bool Attack, getDamage, isOnEarth;
+
+ public bool flip;
+
+ public int health;
+
+ private Random r = new Random();
+
+ public Image spriteSheet;
+
+ #endregion
+ public Entity(int posX, int posY, int sizeX, int sizeY, int health, Image spriteSheet, int idleFrames = 1, int runFrames = 1, int attackFrames = 1, int deathFrames = 1)
+ {
+ this.posX = posX;
+ this.posY = posY;
+ this.sizeX = sizeX;
+ this.sizeY = sizeY;
+ this.idleFrames = idleFrames;
+ this.runFrames = runFrames;
+ this.attackFrames = attackFrames;
+ this.deathFrames = deathFrames;
+ this.health = health;
+ this.spriteSheet = spriteSheet;
+
+ currentAnimation = 0;
+ currentFrame = 0;
+ frameLimit = idleFrames;
+ flip = true;
+ a = 1;
+ speedX = 3;
+ }
+
+ public void PlayAnimation(Graphics g)
+ {
+ currentFrame %= frameLimit;
+
+ g.DrawImage(spriteSheet, new Rectangle(new Point(posX, posY), new Size(sizeX, sizeY)),
+ sizeX * currentFrame, sizeY * currentAnimation, sizeX, sizeY, GraphicsUnit.Pixel);
+
+ currentFrame++;
+ }
+
+ public void SetAniConf(int curAni)
+ {
+ if (curAni == 0 || curAni == 5)
+ frameLimit = idleFrames;
+ if (curAni == 1 || curAni == 6)
+ frameLimit = runFrames;
+ if (curAni == 2 || curAni == 7)
+ frameLimit = attackFrames;
+ if (curAni == 3 || curAni == 8)
+ frameLimit = 1;
+ if (curAni == 4 || curAni == 9)
+ frameLimit = deathFrames;
+
+ currentAnimation = flip ? curAni % 5 : curAni % 5 + 5;
+ }
+
+ public void Stop()
+ {
+ dx = 0;
+ dy = 0;
+ goUp = false;
+ goDown = false;
+ goLeft = false;
+ goRight = false;
+ Attack = false;
+ speedX = 0;
+ speedY = 0;
+ }
+
+ public bool NearDoor(List doors)
+ {
+ foreach (var e in doors)
+ {
+ if (posX + 2 * sizeX / 3 > e.posX && posX < e.posX + e.sizeX && posY + 4 > e.posY && posY < e.posY + e.sizeY)
+ return true;
+ }
+ return false;
+ }
+
+ public bool ContactEnemy(Entity enemy)
+ {
+ return Math.Abs(posX + sizeX/2 - enemy.posX - enemy.sizeX/2) < 25 && Math.Abs(posY + sizeY/2 - enemy.posY - enemy.sizeY/2) < 10;
+ }
+
+ public void GoTo(Environment door)
+ {
+ posX = door.posX;
+ posY = door.posY;
+ }
+
+ public void Phisics(List Boundaries)
+ {
+ GoingDown(Boundaries);
+
+ if (goUp)
+ {
+ isOnEarth = false;
+ speedY += a;
+ GoingUp(Boundaries);
+ posY += speedY;
+ }
+
+ if (goRight)
+ {
+ dx = 4;
+ GoingRight(Boundaries);
+ posX += dx;
+ }
+ if (goLeft)
+ {
+ dx = -4;
+ GoingLeft(Boundaries);
+ posX += dx;
+ }
+
+ posY += dy;
+ }
+
+ public void Moving(List boundaries)
+ {
+
+
+ var jump = r.Next(0, 10);
+ goUp = jump > 7 ? true : false;
+ speedY = jump > 7 ? -10 : 0;
+ }
+
+ public void GoingUp(List boundaries)
+ {
+ if (!isOnEarth)
+ {
+ foreach (var el in boundaries)
+ {
+ if (posY + 4 > el.posY + el.sizeY && posY + speedY + 4 <= el.posY + el.sizeY && posX + 4 * sizeX / 5 > el.posX && posX + 2 * sizeX / 5 < el.posX + el.sizeX)
+ {
+ speedY = el.posY + el.sizeY - (posY + 3);
+
+ }
+ }
+ }
+ if (speedY > 0) speedY = 0;
+ }
+
+ public void GoingDown(List boundaries)
+ {
+ dy += a;
+ foreach (var el in boundaries)
+ {
+ if (posY + sizeY < el.posY && posY + sizeY + dy >= el.posY && posX + 4 * sizeX / 5 > el.posX && posX + 2 * sizeX / 5 < el.posX + el.sizeX)
+ {
+ dy = el.posY - (posY + sizeY ) - 1;
+ isOnEarth = true;
+ }
+ }
+ if (dy > 21)
+ dy = 21;
+ }
+
+ public void GoingRight(List boundaries)
+ {
+ foreach (var el in boundaries)
+ {
+ if (posX + 4 * sizeX / 5 < el.posX && posX + 4 * sizeX / 5 + dx >= el.posX && posY + sizeY - 3 > el.posY && posY + 8 < el.posY + el.sizeY)
+ {
+ dx = el.posX - (posX + 4 * sizeX / 5) - 1;
+ }
+ }
+ }
+
+ public void GoingLeft(List boundaries)
+ {
+ foreach (var el in boundaries)
+ {
+ if (posX + 2 * sizeX / 5 > el.posX + el.sizeX && posX + 2 * sizeX / 5 + dx <= el.posX + el.sizeX && posY + sizeY - 3 > el.posY && posY + 8 < el.posY + el.sizeY)
+ {
+ dx = el.posX + el.sizeX - (posX + 2 * sizeX / 5) + 1;
+ }
+ }
+ }
+ }
+}
diff --git a/Final game/Environment.cs b/Final game/Environment.cs
new file mode 100644
index 0000000..dad8461
--- /dev/null
+++ b/Final game/Environment.cs
@@ -0,0 +1,43 @@
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Final_game
+{
+ public class Environment
+ {
+ #region Fields
+ public int posX, posY;
+
+ public int sizeX, sizeY;
+
+ public int centreX, centreY;
+
+ public int currentFrames, currentAnimation;
+
+ public Image spriteSheet;
+ #endregion
+
+ public Environment(int posX, int posY, int sizeX, int sizeY, Image spriteSheet)
+ {
+ this.posX = posX;
+ this.posY = posY;
+ this.sizeX = sizeX;
+ this.sizeY = sizeY;
+ this.spriteSheet = spriteSheet;
+
+ centreX = posX + sizeX / 2;
+ centreY = posY + sizeY / 2;
+
+ }
+
+ public void PlayAnimation(Graphics g)
+ {
+ g.DrawImage(spriteSheet, new Rectangle(new Point(posX, posY), new Size(sizeX, sizeY)),
+ 0, 0, sizeX, sizeY, GraphicsUnit.Pixel);
+ }
+ }
+}
diff --git a/Final game/Final game.csproj b/Final game/Final game.csproj
new file mode 100644
index 0000000..95ed41c
--- /dev/null
+++ b/Final game/Final game.csproj
@@ -0,0 +1,114 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {0723FDC2-A104-42FC-BB85-870846F3BBDB}
+ WinExe
+ Final_game
+ Final game
+ v4.7.2
+ 512
+ true
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ Form1.cs
+
+
+ True
+ True
+ Images.resx
+
+
+
+
+
+ Form1.cs
+
+
+ ResXFileCodeGenerator
+ Images.Designer.cs
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Final game/Final game.sln b/Final game/Final game.sln
new file mode 100644
index 0000000..64a1950
--- /dev/null
+++ b/Final game/Final game.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.30413.136
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Final game", "Final game.csproj", "{0723FDC2-A104-42FC-BB85-870846F3BBDB}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {0723FDC2-A104-42FC-BB85-870846F3BBDB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0723FDC2-A104-42FC-BB85-870846F3BBDB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0723FDC2-A104-42FC-BB85-870846F3BBDB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0723FDC2-A104-42FC-BB85-870846F3BBDB}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {99C3F118-03D5-41D2-B19B-9584DB52B82E}
+ EndGlobalSection
+EndGlobal
diff --git a/Final game/Form1.Designer.cs b/Final game/Form1.Designer.cs
new file mode 100644
index 0000000..8264d73
--- /dev/null
+++ b/Final game/Form1.Designer.cs
@@ -0,0 +1,58 @@
+namespace Final_game
+{
+ partial class Form1
+ {
+ ///
+ /// Обязательная переменная конструктора.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Освободить все используемые ресурсы.
+ ///
+ /// истинно, если управляемый ресурс должен быть удален; иначе ложно.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Код, автоматически созданный конструктором форм Windows
+
+ ///
+ /// Требуемый метод для поддержки конструктора — не изменяйте
+ /// содержимое этого метода с помощью редактора кода.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.timer = new System.Windows.Forms.Timer(this.components);
+ this.SuspendLayout();
+ //
+ // timer
+ //
+ this.timer.Enabled = true;
+ this.timer.Interval = 50;
+ this.timer.Tick += new System.EventHandler(this.timer_Tick);
+ //
+ // Form1
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(800, 450);
+ this.DoubleBuffered = true;
+ this.Name = "Form1";
+ this.Text = "Form1";
+ this.ResumeLayout(false);
+ this.Paint += new System.Windows.Forms.PaintEventHandler(this.OnPaint);
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Timer timer;
+ }
+}
+
diff --git a/Final game/Form1.cs b/Final game/Form1.cs
new file mode 100644
index 0000000..078026a
--- /dev/null
+++ b/Final game/Form1.cs
@@ -0,0 +1,293 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using System.Windows;
+
+namespace Final_game
+{
+ public partial class Form1 : Form
+ {
+ #region Fields
+ private Image Hero = Images.hero,
+ Enemy = Images.скелет;
+
+ private Image Block = Images.block,
+ Door = Images.door,
+ Wall = Images.wall;
+
+
+ private Map map;
+
+ private Entity player, enemy1, enemy2, enemy3, enemy4, enemy5;
+
+ private List Boundaries_1, Boundaries_2, Boundaries_3, Boundaries_4,
+
+ Doors;
+
+ private List Enemies_1, Enemies_2, Enemies_3, Enemies_4;
+
+ private int currentRoom;
+
+ private bool openDoor;
+ #endregion
+
+ public Form1()
+ {
+ double width = SystemParameters.PrimaryScreenWidth;
+ double height = SystemParameters.PrimaryScreenHeight;
+
+ currentRoom = 1;
+
+ InitializeComponent();
+ Init();
+
+ BackgroundImage = Images.background;
+
+ KeyUp += new KeyEventHandler(OnKeyUp);
+ KeyDown += new KeyEventHandler(OnKeyDown);
+
+ }
+
+ public void Init()
+ {
+ player = new Entity(20, 16, 50, 37, 100, Hero, 4, 6, 6, 7);
+
+ map = new Map();
+ Doors = map.Doors;
+ CreateBoundaries(map);
+ CreateEnemies();
+
+ timer.Start();
+ }
+
+ public void CreateBoundaries(Map map)
+ {
+ Boundaries_1 = map.Boundaries_1;
+ Boundaries_2 = map.Boundaries_2;
+ Boundaries_3 = map.Boundaries_3;
+ Boundaries_4 = map.Boundaries_4;
+ }
+ public void CreateEnemies()
+ {
+ Enemies_1 = new List();
+ Enemies_2 = new List();
+ Enemies_3 = new List();
+ Enemies_4 = new List();
+
+ enemy1 = new Entity(90, 65, 50, 37, 15, Enemy);
+ enemy2 = new Entity(50, 125, 50, 37, 15, Enemy);
+ Enemies_1.Add(enemy1);
+ Enemies_1.Add(enemy2);
+
+ enemy1 = new Entity(100, 210, 50, 37, 30, Enemy);
+ enemy2 = new Entity(70, 180, 50, 37, 30, Enemy);
+ Enemies_2.Add(enemy1);
+ Enemies_2.Add(enemy2);
+
+ enemy1 = new Entity(410, 270, 50, 37, 60, Enemy);
+ enemy2 = new Entity(480, 250, 50, 37, 60, Enemy);
+ enemy3 = new Entity(260, 290, 50, 37, 60, Enemy);
+ Enemies_3.Add(enemy1);
+ Enemies_3.Add(enemy2);
+ Enemies_3.Add(enemy3);
+
+ enemy1 = new Entity(690, 190, 50, 37, 120, Enemy);
+ enemy2 = new Entity(900, 150, 50, 37, 120, Enemy);
+ enemy3 = new Entity(870, 17, 50, 37, 120, Enemy);
+ enemy4 = new Entity(785, 70, 50, 37, 120, Enemy);
+ enemy5 = new Entity(690, 140, 50, 37, 120, Enemy);
+ Enemies_4.Add(enemy1);
+ Enemies_4.Add(enemy2);
+ Enemies_4.Add(enemy3);
+ Enemies_4.Add(enemy4);
+ Enemies_4.Add(enemy5);
+
+ }
+
+ private void timer_Tick(object sender, EventArgs e)
+ {
+ SetStyle(ControlStyles.OptimizedDoubleBuffer |
+ ControlStyles.AllPaintingInWmPaint |
+ ControlStyles.UserPaint, true);
+ UpdateStyles();
+
+ if (currentRoom == 1)
+ {
+ openDoor = Enemies_1.Count == 0;
+ player.Phisics(Boundaries_1);
+ for (int i = 0; i < Enemies_1.Count; i++)
+ {
+ var enemy = Enemies_1[i];
+ enemy.Moving(Boundaries_1);
+ enemy.Phisics(Boundaries_1);
+ if (player.Attack && player.ContactEnemy(enemy))
+ enemy.health -= 1;
+ if (enemy.health < 1) Enemies_1.RemoveAt(i);
+ }
+ }
+
+ if (currentRoom == 2)
+ {
+ openDoor = Enemies_2.Count == 0;
+ player.Phisics(Boundaries_2);
+ for (int i = 0; i < Enemies_2.Count; i++)
+ {
+ var enemy = Enemies_2[i];
+ enemy.Moving(Boundaries_2);
+ enemy.Phisics(Boundaries_2);
+ if (player.Attack && player.ContactEnemy(enemy))
+ enemy.health -= 1;
+ if (enemy.health < 1) Enemies_2.RemoveAt(i);
+ }
+ }
+
+ if (currentRoom == 3)
+ {
+ openDoor = Enemies_3.Count == 0;
+ player.Phisics(Boundaries_3);
+ for (int i = 0; i < Enemies_3.Count; i++)
+ {
+ var enemy = Enemies_3[i];
+ enemy.Moving(Boundaries_3);
+ enemy.Phisics(Boundaries_3);
+ if (player.Attack && player.ContactEnemy(enemy))
+ enemy.health -= 1;
+ if (enemy.health < 1) Enemies_3.RemoveAt(i);
+ }
+ }
+
+ if (currentRoom == 4)
+ {
+ openDoor = Enemies_4.Count == 0;
+ player.Phisics(Boundaries_4);
+ for (int i = 0; i < Enemies_4.Count; i++)
+ {
+ var enemy = Enemies_4[i];
+ enemy.Moving(Boundaries_4);
+ enemy.Phisics(Boundaries_4);
+ if (player.Attack && player.ContactEnemy(enemy))
+ enemy.health -= 1;
+ if (enemy.health < 1) Enemies_4.RemoveAt(i);
+ }
+ }
+
+ Invalidate();
+ }
+
+ public void OnKeyDown(object sender, KeyEventArgs e)
+ {
+
+ if (e.KeyCode == Keys.A || e.KeyCode == Keys.Left)
+ {
+ player.dx = -3;
+ player.goLeft = true;
+ player.flip = false;
+ player.SetAniConf(1);
+ }
+
+ if (e.KeyCode == Keys.D || e.KeyCode == Keys.Right)
+ {
+ player.dx = 3;
+ player.goRight = true;
+ player.flip = true;
+ player.SetAniConf(1);
+ }
+
+ if (e.KeyCode == Keys.W || e.KeyCode == Keys.Up)
+ {
+ if (player.isOnEarth)
+ {
+ player.goUp = true;
+ player.speedY = -15;
+ player.SetAniConf(3);
+ }
+ }
+
+ if (e.KeyCode == Keys.F12)
+ {
+ if (player.isOnEarth)
+ {
+ player.goUp = true;
+ player.speedY = -30;
+ player.SetAniConf(3);
+ }
+ }
+
+ if (e.KeyCode == Keys.Space)
+ {
+ player.Attack = true;
+ player.SetAniConf(2);
+ }
+
+ if (e.KeyCode == Keys.N)
+ {
+ if (player.NearDoor(Doors) && openDoor)
+ {
+ switch (currentRoom)
+ {
+ case 1:
+ player.GoTo(Doors[2]);
+ currentRoom = 2;
+ break;
+ case 2:
+ player.GoTo(Doors[4]);
+
+ currentRoom = 3;
+ break;
+ case 3:
+ player.GoTo(Doors[6]);
+ currentRoom = 4;
+ break;
+ case 4:
+ Finish();
+ break;
+
+ }
+ }
+ }
+
+ }
+
+ public void OnKeyUp(object sender, KeyEventArgs e)
+ {
+ player.Stop();
+ player.SetAniConf(0);
+ }
+
+ public void OnPaint(object sender, PaintEventArgs e)
+ {
+ Graphics g = e.Graphics;
+
+ if (currentRoom == 1)
+ foreach (var r in Enemies_1)
+ r.PlayAnimation(g);
+ if (currentRoom == 2)
+ foreach (var r in Enemies_2)
+ r.PlayAnimation(g);
+ if (currentRoom == 3)
+ foreach (var r in Enemies_3)
+ r.PlayAnimation(g);
+ if (currentRoom == 4)
+ foreach (var r in Enemies_4)
+ r.PlayAnimation(g);
+
+ player.PlayAnimation(g);
+
+ }
+
+ public void Finish()
+ {
+ Form gameOver = new Form();
+ gameOver.ShowDialog();
+
+ timer.Stop();
+ Close();
+ }
+ }
+}
diff --git a/Final game/Form1.resx b/Final game/Form1.resx
new file mode 100644
index 0000000..b351ef9
--- /dev/null
+++ b/Final game/Form1.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/Final game/Images.Designer.cs b/Final game/Images.Designer.cs
new file mode 100644
index 0000000..0b7400f
--- /dev/null
+++ b/Final game/Images.Designer.cs
@@ -0,0 +1,123 @@
+//------------------------------------------------------------------------------
+//
+// Этот код создан программой.
+// Исполняемая версия:4.0.30319.42000
+//
+// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
+// повторной генерации кода.
+//
+//------------------------------------------------------------------------------
+
+namespace Final_game {
+ using System;
+
+
+ ///
+ /// Класс ресурса со строгой типизацией для поиска локализованных строк и т.д.
+ ///
+ // Этот класс создан автоматически классом StronglyTypedResourceBuilder
+ // с помощью такого средства, как ResGen или Visual Studio.
+ // Чтобы добавить или удалить член, измените файл .ResX и снова запустите ResGen
+ // с параметром /str или перестройте свой проект VS.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Images {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Images() {
+ }
+
+ ///
+ /// Возвращает кэшированный экземпляр ResourceManager, использованный этим классом.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Final_game.Images", typeof(Images).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Перезаписывает свойство CurrentUICulture текущего потока для всех
+ /// обращений к ресурсу с помощью этого класса ресурса со строгой типизацией.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ ///
+ /// Поиск локализованного ресурса типа System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap background {
+ get {
+ object obj = ResourceManager.GetObject("background", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Поиск локализованного ресурса типа System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap block {
+ get {
+ object obj = ResourceManager.GetObject("block", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Поиск локализованного ресурса типа System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap door {
+ get {
+ object obj = ResourceManager.GetObject("door", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Поиск локализованного ресурса типа System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap hero {
+ get {
+ object obj = ResourceManager.GetObject("hero", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Поиск локализованного ресурса типа System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap wall {
+ get {
+ object obj = ResourceManager.GetObject("wall", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Поиск локализованного ресурса типа System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap скелет {
+ get {
+ object obj = ResourceManager.GetObject("скелет", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+ }
+}
diff --git a/Final game/Images.resx b/Final game/Images.resx
new file mode 100644
index 0000000..ca4e059
--- /dev/null
+++ b/Final game/Images.resx
@@ -0,0 +1,139 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ Resources\background.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ Resources\подставка.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ Resources\door .png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ Resources\hero.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ Resources\wall.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ Resources\скелет.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
\ No newline at end of file
diff --git a/Final game/Map.cs b/Final game/Map.cs
new file mode 100644
index 0000000..53d0052
--- /dev/null
+++ b/Final game/Map.cs
@@ -0,0 +1,137 @@
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Final_game
+{
+ public class Map
+ {
+ public List Boundaries_1,
+ Boundaries_2,
+ Boundaries_3,
+ Boundaries_4,
+ Doors;
+
+ private Image Block = Images.block,
+ Door = Images.door,
+ Wall = Images.wall;
+
+ public Map()
+ {
+ Boundaries_1 = new List();
+ Boundaries_2 = new List();
+ Boundaries_3 = new List();
+ Boundaries_4 = new List();
+ Doors = new List();
+ MakeMap();
+ }
+
+ public void MakeMap()
+ {
+ var door1_1 = new Environment(20, 17, 37, 42, Door);
+ var door1_2 = new Environment(128, 125, 37, 42, Door);
+ var door2_1 = new Environment(130, 181, 37, 42, Door);
+ var door2_2 = new Environment(136, 322, 37, 42, Door);
+ var door3_1 = new Environment(180, 281, 37, 42, Door);
+ var door3_2 = new Environment(596, 256, 37, 42, Door);
+ var door4_1 = new Environment(668, 190, 37, 42, Door);
+ var door4_2 = new Environment(913, 17, 37, 42, Door);
+
+ Doors.Add(door1_1);
+ Doors.Add(door1_2);
+ Doors.Add(door2_1);
+ Doors.Add(door2_2);
+ Doors.Add(door3_1);
+ Doors.Add(door3_2);
+ Doors.Add(door4_1);
+ Doors.Add(door4_2);
+
+
+
+ var wallN = new Environment(0, 0, 985, 15, Wall);
+ var wallW = new Environment(0, 0, 25, 425, Wall);
+ var wallE = new Environment(947, 0, 25, 425, Wall);
+ var wallS = new Environment(0, 368, 985, 15, Wall);
+ var wall1_1 = new Environment(196, 0, 10, 150, Wall);
+ var wall1_2 = new Environment(162, 130, 10, 50, Wall);
+ var wall2_1 = new Environment(171, 146, 15, 250, Wall);
+ var wall2_2 = new Environment(27, 335, 61, 70, Wall);
+ var wall2_3 = new Environment(112, 366, 85, 15, Wall);
+ var wall3_1 = new Environment(175, 235, 245, 41, Wall);
+ var wall3_2 = new Environment(304, 330, 39, 60, Wall);
+ var wall3_3 = new Environment(415, 235, 280, 13, Wall);
+ var wall3_4 = new Environment(530, 245, 69, 37, Wall);
+ var wall3_5 = new Environment(640, 250, 100, 13, Wall);
+ var wall3_6 = new Environment(730, 249, 15, 120, Wall);
+ var wall4_1 = new Environment(650, 234, 290, 7, Wall);
+ var wall4_2 = new Environment(660, 0, 12, 370, Wall);
+ var wall4_3 = new Environment(910, 203, 90, 50, Wall);
+ var wall4_4 = new Environment(803, 170, 28, 70, Wall);
+
+ var block1_1 = new Environment(25, 62, 100, 10, Wall);
+ var block1_2 = new Environment(72, 113, 136, 10, Wall);
+ var block1_3 = new Environment(20, 171, 159, 6, Wall);
+ var block2_1 = new Environment(86, 227, 100, 10, Wall);
+ var block2_2 = new Environment(113, 298, 70, 1, Wall);
+ var block3_1 = new Environment(180, 325, 65, 1, Wall);
+ var block3_2 = new Environment(385, 322, 76, 1, Wall);
+ var block3_3 = new Environment(482, 296, 116, 1, Wall);
+ var block3_4 = new Environment(590, 303, 80, 1, Wall);
+ var block3_5 = new Environment(706, 329, 50, 1, Wall);
+ var block4_1 = new Environment(670, 185, 75, 1, Wall);
+ var block4_2 = new Environment(860, 186, 25, 1, Wall);
+ var block4_3 = new Environment(670, 128, 32, 1, Wall);
+ var block4_4 = new Environment(743, 145, 29, 1, Wall);
+ var block4_5 = new Environment(800, 123, 29, 1, Wall);
+ var block4_6 = new Environment(812, 81, 25, 1, Wall);
+ var block4_7 = new Environment(857, 62, 100, 7, Wall);
+
+ Boundaries_1.Add(wallN);
+ Boundaries_1.Add(wallW);
+ Boundaries_1.Add(wall1_1);
+ Boundaries_1.Add(wall1_2);
+ Boundaries_2.Add(wallW);
+ Boundaries_2.Add(wallS);
+ Boundaries_2.Add(block1_3);
+ Boundaries_2.Add(wall2_1);
+ Boundaries_2.Add(wall2_2);
+ Boundaries_2.Add(wall2_3);
+ Boundaries_3.Add(wallS);
+ Boundaries_3.Add(wall2_1);
+ Boundaries_3.Add(wall3_1);
+ Boundaries_3.Add(wall3_2);
+ Boundaries_3.Add(wall3_3);
+ Boundaries_3.Add(wall3_4);
+ Boundaries_3.Add(wall3_5);
+ Boundaries_3.Add(wall3_6);
+ Boundaries_4.Add(wallN);
+ Boundaries_4.Add(wallE);
+ Boundaries_4.Add(wall4_1);
+ Boundaries_4.Add(wall4_2);
+ Boundaries_4.Add(wall4_3);
+ Boundaries_4.Add(wall4_4);
+
+ Boundaries_1.Add(block1_1);
+ Boundaries_1.Add(block1_2);
+ Boundaries_1.Add(block1_3);
+ Boundaries_2.Add(block2_1);
+ Boundaries_2.Add(block2_2);
+ Boundaries_3.Add(block3_1);
+ Boundaries_3.Add(block3_2);
+ Boundaries_3.Add(block3_3);
+ Boundaries_3.Add(block3_4);
+ Boundaries_3.Add(block3_5);
+ Boundaries_4.Add(block4_1);
+ Boundaries_4.Add(block4_2);
+ Boundaries_4.Add(block4_3);
+ Boundaries_4.Add(block4_4);
+ Boundaries_4.Add(block4_5);
+ Boundaries_4.Add(block4_6);
+ Boundaries_4.Add(block4_7);
+
+ }
+ }
+}
diff --git a/Final game/Program.cs b/Final game/Program.cs
new file mode 100644
index 0000000..53f3261
--- /dev/null
+++ b/Final game/Program.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace Final_game
+{
+ static class Program
+ {
+ ///
+ /// Главная точка входа для приложения.
+ ///
+ [STAThread]
+ static void Main()
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Form Form1 = new Form1();
+ Form1.Width = 980;
+ Form1.Height = 425;
+ Application.Run(Form1);
+ }
+ }
+}
diff --git a/Final game/Properties/AssemblyInfo.cs b/Final game/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..d829b98
--- /dev/null
+++ b/Final game/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// Общие сведения об этой сборке предоставляются следующим набором
+// набора атрибутов. Измените значения этих атрибутов для изменения сведений,
+// связанных со сборкой.
+[assembly: AssemblyTitle("Final game")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("Final game")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2021")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми
+// для компонентов COM. Если необходимо обратиться к типу в этой сборке через
+// COM, следует установить атрибут ComVisible в TRUE для этого типа.
+[assembly: ComVisible(false)]
+
+// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM
+[assembly: Guid("0723fdc2-a104-42fc-bb85-870846f3bbdb")]
+
+// Сведения о версии сборки состоят из указанных ниже четырех значений:
+//
+// Основной номер версии
+// Дополнительный номер версии
+// Номер сборки
+// Редакция
+//
+// Можно задать все значения или принять номера сборки и редакции по умолчанию
+// используя "*", как показано ниже:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/Final game/Properties/Resources.Designer.cs b/Final game/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..6ed2484
--- /dev/null
+++ b/Final game/Properties/Resources.Designer.cs
@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------
+//
+// Этот код создан программным средством.
+// Версия среды выполнения: 4.0.30319.42000
+//
+// Изменения в этом файле могут привести к неправильному поведению и будут утрачены, если
+// код создан повторно.
+//
+//------------------------------------------------------------------------------
+
+namespace Final_game.Properties
+{
+
+
+ ///
+ /// Класс ресурсов со строгим типом для поиска локализованных строк и пр.
+ ///
+ // Этот класс был автоматически создан при помощи StronglyTypedResourceBuilder
+ // класс с помощью таких средств, как ResGen или Visual Studio.
+ // Для добавления или удаления члена измените файл .ResX, а затем перезапустите ResGen
+ // с параметром /str или заново постройте свой VS-проект.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources
+ {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources()
+ {
+ }
+
+ ///
+ /// Возврат кэшированного экземпляра ResourceManager, используемого этим классом.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager
+ {
+ get
+ {
+ if ((resourceMan == null))
+ {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Final_game.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Переопределяет свойство CurrentUICulture текущего потока для всех
+ /// подстановки ресурсов с помощью этого класса ресурсов со строгим типом.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture
+ {
+ get
+ {
+ return resourceCulture;
+ }
+ set
+ {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/Final game/Properties/Resources.resx b/Final game/Properties/Resources.resx
new file mode 100644
index 0000000..ffecec8
--- /dev/null
+++ b/Final game/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Final game/Properties/Settings.Designer.cs b/Final game/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..01cad27
--- /dev/null
+++ b/Final game/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace Final_game.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/Final game/Properties/Settings.settings b/Final game/Properties/Settings.settings
new file mode 100644
index 0000000..abf36c5
--- /dev/null
+++ b/Final game/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/Final game/Resources/background.png b/Final game/Resources/background.png
new file mode 100644
index 0000000000000000000000000000000000000000..9e83ce3bddfcccc03f8797158ed403741be821a9
GIT binary patch
literal 154548
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
z
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
XOph>IbDwU|BGL;-Vaa{IXy#wR-br(73>M;
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