diff --git a/DangerousD/Content/Content.mgcb b/DangerousD/Content/Content.mgcb index ea7bb60..f16b512 100644 --- a/DangerousD/Content/Content.mgcb +++ b/DangerousD/Content/Content.mgcb @@ -21,18 +21,6 @@ /processorParam:TextureFormat=Compressed /build:ButtonFont.spritefont -#begin checkboxs_off.png -/importer:TextureImporter -/processor:TextureProcessor -/processorParam:ColorKeyColor=255,0,255,255 -/processorParam:ColorKeyEnabled=True -/processorParam:GenerateMipmaps=False -/processorParam:PremultiplyAlpha=True -/processorParam:ResizeToPowerOfTwo=False -/processorParam:MakeSquare=False -/processorParam:TextureFormat=Color -/build:checkboxs_off.png - #begin checkboxs_off-on.png /importer:TextureImporter /processor:TextureProcessor @@ -45,6 +33,18 @@ /processorParam:TextureFormat=Color /build:checkboxs_off-on.png +#begin checkboxs_off.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:checkboxs_off.png + #begin checkboxs_on.png /importer:TextureImporter /processor:TextureProcessor @@ -81,14 +81,7 @@ /processorParam:TextureFormat=Color /build:deathBackground.jpg - -#begin DoomTestSong.mp3 -/importer:Mp3Importer -/processor:SoundEffectProcessor -/processorParam:Quality=Best -/build:sounds/DoomTestSong.mp3 - -#begin doors.png +#begin door.png /importer:TextureImporter /processor:TextureProcessor /processorParam:ColorKeyColor=255,0,255,255 @@ -98,7 +91,7 @@ /processorParam:ResizeToPowerOfTwo=False /processorParam:MakeSquare=False /processorParam:TextureFormat=Color -/build:doors.png +/build:door.png #begin Font_12.spritefont /importer:FontDescriptionImporter @@ -140,7 +133,7 @@ /processorParam:TextureFormat=Color /build:menuFon.jpg -#begin MenuFon2.jpg +#begin menuFon2.jpg /importer:TextureImporter /processor:TextureProcessor /processorParam:ColorKeyColor=255,0,255,255 @@ -150,7 +143,7 @@ /processorParam:ResizeToPowerOfTwo=False /processorParam:MakeSquare=False /processorParam:TextureFormat=Color -/build:MenuFon2.jpg +/build:menuFon2.jpg #begin menuFon3.jpg /importer:TextureImporter @@ -243,6 +236,19 @@ /processorParam:TextureFormat=Color /build:sliderBackground.png + +#begin smokeAnimation2.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:smokeAnimation2.png + #begin sounds/DoomTestSong.mp3 /importer:Mp3Importer /processor:SoundEffectProcessor @@ -255,18 +261,6 @@ /processorParam:Quality=Best /build:sounds/shotgun_shot.mp3 -#begin SmokeAnimation2.png -/importer:TextureImporter -/processor:TextureProcessor -/processorParam:ColorKeyColor=255,0,255,255 -/processorParam:ColorKeyEnabled=True -/processorParam:GenerateMipmaps=False -/processorParam:PremultiplyAlpha=True -/processorParam:ResizeToPowerOfTwo=False -/processorParam:MakeSquare=False -/processorParam:TextureFormat=Color -/build:SmokeAnimation2.png - #begin textboxbackground1-1.png /importer:TextureImporter /processor:TextureProcessor @@ -279,18 +273,6 @@ /processorParam:TextureFormat=Color /build:textboxbackground1-1.png -#begin textboxbackground2,5-1.png -/importer:TextureImporter -/processor:TextureProcessor -/processorParam:ColorKeyColor=255,0,255,255 -/processorParam:ColorKeyEnabled=True -/processorParam:GenerateMipmaps=False -/processorParam:PremultiplyAlpha=True -/processorParam:ResizeToPowerOfTwo=False -/processorParam:MakeSquare=False -/processorParam:TextureFormat=Color -/build:textboxbackground2,5-1.png - #begin textboxbackground2-1.png /importer:TextureImporter /processor:TextureProcessor @@ -303,6 +285,18 @@ /processorParam:TextureFormat=Color /build:textboxbackground2-1.png +#begin textboxbackground2,5-1.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:textboxbackground2,5-1.png + #begin textboxbackground6-1.png /importer:TextureImporter /processor:TextureProcessor diff --git a/DangerousD/Content/Door.tsx b/DangerousD/Content/Door.tsx index 8e5687c..a250dd5 100644 --- a/DangerousD/Content/Door.tsx +++ b/DangerousD/Content/Door.tsx @@ -1,4 +1,4 @@ - + diff --git a/DangerousD/Content/animations/DeathFromGhost b/DangerousD/Content/animations/DeathFromGhost new file mode 100644 index 0000000..b4ef48e --- /dev/null +++ b/DangerousD/Content/animations/DeathFromGhost @@ -0,0 +1 @@ +{"id":"DeathFromGhost","textureName":"deathAnimation","startSpriteRectangle":{"X":1,"Y":246,"Width":48,"Height":48},"frameSecond":[{"Item1":0,"Item2":10}],"textureFrameInterval":1,"framesCount":5,"isCycle":false,"offset":"0, 0"} diff --git a/DangerousD/Content/animations/DeathFromHunchman b/DangerousD/Content/animations/DeathFromHunchman new file mode 100644 index 0000000..a00ed27 --- /dev/null +++ b/DangerousD/Content/animations/DeathFromHunchman @@ -0,0 +1 @@ +{"id":"DeathFromHunchman","textureName":"deathAnimation","startSpriteRectangle":{"X":1,"Y":1,"Width":48,"Height":48},"frameSecond":[{"Item1":0,"Item2":10}],"textureFrameInterval":1,"framesCount":5,"isCycle":false,"offset":"0, 0"} diff --git a/DangerousD/Content/animations/DeathFromSilasMaster b/DangerousD/Content/animations/DeathFromSilasMaster new file mode 100644 index 0000000..3f9a76b --- /dev/null +++ b/DangerousD/Content/animations/DeathFromSilasMaster @@ -0,0 +1 @@ +{"id":"DeathFromSilasMaster","textureName":"deathAnimation","startSpriteRectangle":{"X":1,"Y":295,"Width":48,"Height":48},"frameSecond":[{"Item1":0,"Item2":10}],"textureFrameInterval":1,"framesCount":5,"isCycle":false,"offset":"0, 0"} diff --git a/DangerousD/Content/animations/DeathFromSlime b/DangerousD/Content/animations/DeathFromSlime new file mode 100644 index 0000000..5a692f6 --- /dev/null +++ b/DangerousD/Content/animations/DeathFromSlime @@ -0,0 +1 @@ +{"id":"DeathFromSlime","textureName":"deathAnimation","startSpriteRectangle":{"X":1,"Y":50,"Width":48,"Height":48},"frameSecond":[{"Item1":0,"Item2":10}],"textureFrameInterval":1,"framesCount":5,"isCycle":false,"offset":"0, 0"} diff --git a/DangerousD/Content/animations/DeathFromSpider b/DangerousD/Content/animations/DeathFromSpider new file mode 100644 index 0000000..98a08a5 --- /dev/null +++ b/DangerousD/Content/animations/DeathFromSpider @@ -0,0 +1 @@ +{"id":"DeathFromSpider","textureName":"deathAnimation","startSpriteRectangle":{"X":1,"Y":148,"Width":48,"Height":48},"frameSecond":[{"Item1":0,"Item2":10}],"textureFrameInterval":1,"framesCount":5,"isCycle":false,"offset":"0, 0"} diff --git a/DangerousD/Content/animations/DeathFromWerewolf b/DangerousD/Content/animations/DeathFromWerewolf new file mode 100644 index 0000000..8f0b150 --- /dev/null +++ b/DangerousD/Content/animations/DeathFromWerewolf @@ -0,0 +1 @@ +{"id":"DeathFromWerewolf","textureName":"deathAnimation","startSpriteRectangle":{"X":1,"Y":197,"Width":48,"Height":48},"frameSecond":[{"Item1":0,"Item2":10}],"textureFrameInterval":1,"framesCount":5,"isCycle":false,"offset":"0, 0"} diff --git a/DangerousD/Content/animations/playerShootBoomUpLeft b/DangerousD/Content/animations/playerShootBoomUpLeft new file mode 100644 index 0000000..093eb3c --- /dev/null +++ b/DangerousD/Content/animations/playerShootBoomUpLeft @@ -0,0 +1 @@ +{"id":"playerShootBoomUpLeft","textureName":"playerAnimation","startSpriteRectangle":{"X":267,"Y":34,"Width":24,"Height":32},"frameSecond":[{"Item1":0,"Item2":12}],"textureFrameInterval":1,"framesCount":2,"isCycle":false,"offset":"0, 0"} diff --git a/DangerousD/Content/animations/playerShootBoomUpRight b/DangerousD/Content/animations/playerShootBoomUpRight new file mode 100644 index 0000000..3f70e03 --- /dev/null +++ b/DangerousD/Content/animations/playerShootBoomUpRight @@ -0,0 +1,24 @@ +{ + "id": "playerShootBoomUpRight", + "textureName": "playerAnimation", + "startSpriteRectangle": { + "X": 267, + "Y": 1, + "Width": 24, + "Height": 32 + }, + "frameSecond": [ + { + "Item1": 0, + "Item2": 3 + }, + { + "Item1": 1, + "Item2": 20 + } + ], + "textureFrameInterval": 1, + "framesCount": 2, + "isCycle": false, + "offset": "0, 0" +} diff --git a/DangerousD/Content/doors.png b/DangerousD/Content/door.png similarity index 100% rename from DangerousD/Content/doors.png rename to DangerousD/Content/door.png diff --git a/DangerousD/Content/lvl2.tmx b/DangerousD/Content/lvl2.tmx new file mode 100644 index 0000000..d610a6f --- /dev/null +++ b/DangerousD/Content/lvl2.tmx @@ -0,0 +1,652 @@ + + + + + + + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1157, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1027, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1027, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1027 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1157,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1027,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1027,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1027,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1027, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1027, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1027, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1157, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,405, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +1027,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1027,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1027,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1157,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +156,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +156,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +156,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +156,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +156,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +156,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +405,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +156,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +156,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +156,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +156,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +156,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,405, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,405, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,405 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1239,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1265,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1278,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405, +0,0,0,0,0,1027,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,1027,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,1027,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,1027,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,1027,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,1027,0,0,0,0,0,0,0,0,0,0, +405,405,405,405,405,405,405,405,405,0,0,405,405,405,405,405, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +405,405,405,405,405,405,405,405,405,405,405,405,405,405,405,405 + + +156,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +405,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +156,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +156,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +156,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +156,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +156,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +156,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +405,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +156,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +156,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +156,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +156,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +156,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +156,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +405,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +576,577,578,579,580,581,576,577,578,579,580,581,576,577,578,579, +589,590,591,592,593,594,589,590,591,592,593,594,589,590,591,592, +602,603,604,605,606,607,602,603,604,605,606,607,602,603,1453,1454 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +580,581,576,577,578,579,580,581,576,577,578,579,580,581,576,577, +593,594,589,590,591,592,593,594,589,590,591,592,593,594,589,590, +606,607,602,603,604,605,606,607,602,603,604,605,606,607,602,603 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +578,579,580,581,576,577,578,579,580,581,576,577,578,579,580,581, +591,592,593,594,589,590,591,592,593,594,589,590,591,592,593,594, +604,605,606,607,602,603,604,1453,1454,607,602,603,604,605,606,607 + + +615,616,617,618,619,620,615,616,950,951,619,620,615,616,1466,1467, +628,629,630,631,632,633,628,629,963,964,632,633,628,629,1479,1480, +641,642,643,1378,645,646,641,642,976,977,645,646,641,642,643,644, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +576,577,578,579,580,581,576,577,578,579,580,581,576,577,578,579, +589,590,591,592,593,594,589,590,591,1333,1334,594,589,590,591,592, +602,603,604,605,606,607,602,603,604,1346,1347,607,602,603,604,605, +615,616,950,951,619,620,615,616,617,1359,1360,620,615,616,950,951, +628,629,963,964,632,633,628,629,630,631,632,633,628,629,963,964, +641,642,976,977,645,646,641,642,643,1378,645,646,641,642,976,977, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +576,577,578,579,580,581,576,577,578,579,580,581,576,577,578,579, +589,590,591,592,593,594,589,590,591,592,593,594,589,590,591,592, +602,603,604,605,606,607,602,603,604,1325,1326,607,602,603,604,605, +615,616,617,618,619,620,615,616,617,1338,1339,620,615,616,79,80, +628,629,630,631,632,633,628,629,630,631,632,633,628,629,92,93 + + +619,620,615,616,617,618,619,620,615,616,950,951,619,620,615,616, +632,633,628,629,630,631,632,633,628,629,963,964,632,633,628,629, +645,646,641,642,643,644,645,646,641,642,976,977,645,646,641,642, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +580,581,576,577,578,579,580,581,576,577,578,579,1239,581,576,577, +593,594,589,590,591,592,593,594,589,590,591,592,1252,594,589,590, +606,607,602,603,1453,1454,606,607,602,603,604,605,1265,607,602,603, +619,620,615,616,1466,1467,619,620,615,616,617,618,619,620,615,616, +632,633,628,629,1479,1480,632,633,628,629,630,631,632,633,628,629, +645,646,641,642,643,644,645,646,641,642,643,644,645,646,641,642, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +580,581,576,577,578,579,580,581,576,577,578,579,580,581,576,577, +593,594,589,590,591,592,593,594,589,590,591,592,593,594,589,590, +606,607,602,603,604,605,606,607,602,603,604,605,606,607,602,603, +619,620,615,616,617,618,619,620,615,950,951,618,619,620,615,616, +632,633,628,629,630,631,632,633,628,963,964,631,632,633,628,629 + + +617,618,619,620,615,616,617,1466,1467,620,615,616,950,951,619,620, +1397,631,632,633,628,629,630,1479,1480,633,628,629,963,964,632,633, +1410,644,645,646,641,642,643,644,645,646,641,642,976,977,645,646, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +578,579,580,581,576,577,578,579,580,581,576,577,578,579,580,581, +591,1333,1334,594,589,590,591,592,593,594,589,590,591,592,593,594, +604,1346,1347,607,602,603,604,605,606,607,602,603,604,605,606,607, +617,1359,1360,620,615,1325,1326,618,619,620,615,616,950,951,619,620, +1265,631,632,633,628,1338,1339,631,632,633,628,629,963,964,632,633, +1278,644,645,646,641,642,643,644,1378,646,641,642,976,977,645,646, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +578,579,580,581,576,577,578,579,580,581,576,577,578,579,580,581, +1453,1454,593,594,589,590,591,592,593,594,589,590,591,592,593,594, +1466,1467,606,607,602,603,604,605,606,607,602,603,604,605,606,607, +1479,1480,619,620,615,616,950,951,619,620,615,616,617,618,619,620, +630,631,632,633,628,629,963,964,632,633,628,629,630,631,632,633 + + +641,642,643,644,645,646,641,642,643,644,645,646,641,642,105,106, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +576,577,578,579,580,581,576,577,578,579,580,581,576,577,578,579, +589,590,591,592,593,594,589,590,591,592,593,594,589,590,591,592, +602,603,1453,1454,606,607,602,603,604,605,606,607,602,603,604,605, +615,616,1466,1467,619,620,615,616,950,951,619,620,615,616,617,618, +628,629,1479,1480,632,633,628,629,963,964,632,633,628,629,630,631, +641,642,643,644,645,646,641,642,976,977,645,646,641,642,643,644, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +576,577,578,579,580,581,576,577,578,579,580,581,576,577,578,579, +589,590,591,592,593,594,589,590,591,592,593,594,589,590,591,592, +602,603,604,605,606,607,602,603,604,573,574,607,602,603,604,454, +615,950,951,618,619,620,615,616,617,618,619,620,615,616,617,467, +628,963,964,631,632,633,628,629,630,631,632,633,628,629,630,631, +641,976,977,1378,645,646,641,642,643,644,645,646,641,642,643,644, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +645,646,641,642,643,1378,645,646,641,976,977,644,645,646,641,642, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +580,581,576,577,578,579,580,581,576,577,578,579,580,581,576,577, +593,594,589,590,591,592,593,594,589,590,591,592,593,594,589,590, +0,607,602,603,604,605,606,607,602,603,1325,1326,606,607,602,603, +0,620,615,616,617,618,619,620,615,616,1338,1339,619,620,615,616, +0,633,628,0,0,631,632,633,628,629,1397,631,632,633,628,629, +0,646,641,0,0,644,645,646,641,642,1410,644,645,646,641,642, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +580,581,576,577,578,579,580,581,576,577,578,579,580,581,576,577, +593,594,589,590,591,462,463,594,589,590,591,592,593,594,589,590, +455,607,602,603,604,475,476,607,602,603,604,605,606,607,602,603, +468,620,615,616,617,488,489,620,615,616,617,0,0,620,615,616, +632,633,628,629,630,631,632,633,628,629,630,0,0,633,628,629, +645,646,641,642,643,644,645,646,641,642,643,0,0,646,641,642, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +643,644,645,646,641,642,976,977,645,646,641,642,1378,644,645,646, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +578,579,580,581,576,0,578,579,580,581,576,577,578,579,580,581, +591,592,593,594,589,0,591,592,593,594,589,590,591,592,593,594, +604,605,606,607,602,0,604,605,606,607,602,603,604,605,606,607, +950,951,619,620,615,0,617,618,619,620,615,616,950,951,619,620, +963,964,632,633,628,0,630,631,632,633,628,629,963,964,632,633, +976,977,645,646,641,0,643,1378,645,646,641,642,976,977,645,646, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +578,579,580,581,576,577,578,579,580,581,576,577,578,579,580,581, +591,592,593,594,589,590,591,592,593,594,589,590,591,592,593,594, +604,605,606,607,602,603,604,605,606,0,0,603,604,605,606,607, +950,951,619,620,615,616,617,618,619,0,0,616,617,618,619,620, +963,964,632,633,628,629,630,631,0,0,0,0,630,631,632,633, +976,977,645,646,641,642,643,644,0,0,0,0,643,644,645,1378, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1567,1568,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1567,1568,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1580,1581,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,1580,1581,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,1567,1568,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,1580,1581,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,1582,1583,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,1567,1568,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,1580,1581,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,1238,1238,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,1567,1568,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,1580,1581,0,0,0,0,0, +0,0,0,0,0,0,0,0,1567,1568,1567,1568,0,0,0,0, +0,0,0,0,0,0,0,0,1580,1581,1580,1581,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DangerousD/Content/MenuFon2.jpg b/DangerousD/Content/menuFon2.jpg similarity index 100% rename from DangerousD/Content/MenuFon2.jpg rename to DangerousD/Content/menuFon2.jpg diff --git a/DangerousD/Content/SmokeAnimation2.png b/DangerousD/Content/smokeAnimation2.png similarity index 100% rename from DangerousD/Content/SmokeAnimation2.png rename to DangerousD/Content/smokeAnimation2.png diff --git a/DangerousD/GameCore/GUI/DeathGUI.cs b/DangerousD/GameCore/GUI/DeathGUI.cs index 31bff02..ce73850 100644 --- a/DangerousD/GameCore/GUI/DeathGUI.cs +++ b/DangerousD/GameCore/GUI/DeathGUI.cs @@ -23,7 +23,7 @@ internal class DeathGUI : AbstractGui Elements.Add(butMenu); butMenu.LeftButtonPressed += () => { - AppManager.Instance.ChangeGameState(GameState.Menu); + AppManager.Instance.Restart("lvl"); }; foreach (var item in Elements) { diff --git a/DangerousD/GameCore/GUI/LobbyGUI.cs b/DangerousD/GameCore/GUI/LobbyGUI.cs index 90ba3c9..1d8a2e1 100644 --- a/DangerousD/GameCore/GUI/LobbyGUI.cs +++ b/DangerousD/GameCore/GUI/LobbyGUI.cs @@ -135,6 +135,7 @@ namespace DangerousD.GameCore.GUI }; Elements.Add(joinByIpButton); joinByIpButton.LeftButtonPressed += () => { + AppManager.Instance.ChangeGameState(GameState.Game); AppManager.Instance.NetworkManager.ClientInit(searchBarTextBox.text); }; } diff --git a/DangerousD/GameCore/GameObjects/Entities/Door.cs b/DangerousD/GameCore/GameObjects/Entities/Door.cs index fe18355..0584251 100644 --- a/DangerousD/GameCore/GameObjects/Entities/Door.cs +++ b/DangerousD/GameCore/GameObjects/Entities/Door.cs @@ -21,7 +21,7 @@ namespace DangerousD.GameCore.GameObjects.Entities Height = (int)size.Y; } - protected override GraphicsComponent GraphicsComponent { get; } = new("doors"); + protected override GraphicsComponent GraphicsComponent { get; } = new("door"); public override void Update(GameTime gameTime) { diff --git a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/CoreEnemy.cs b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/CoreEnemy.cs index 62923ba..e06b177 100644 --- a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/CoreEnemy.cs +++ b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/CoreEnemy.cs @@ -36,9 +36,9 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities public abstract void Move(GameTime gameTime); - public void TakeDamage(int damage) + public virtual void TakeDamage() { - monster_health -= damage; + monster_health--; if (monster_health <= 0) { Death(); diff --git a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Zombie.cs b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Zombie.cs index 60e02d6..fee2677 100644 --- a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Zombie.cs +++ b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Zombie.cs @@ -32,6 +32,7 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters rightBorder = (int)position.X + 100; physicsManager = new PhysicsManager(); Random random = new Random(); + monster_health = 2; if(random.Next(0, 2) == 0) { isGoRight = true; @@ -183,10 +184,9 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters public override void Attack(GameTime gameTime) {} - public void TakeDamage() + public override void TakeDamage() { monster_health--; - GraphicsComponent.StartAnimation("ZombieRightAttack"); Particle particle = new Particle(Pos); if (monster_health <= 0) { diff --git a/DangerousD/GameCore/GameObjects/LivingEntities/Player/AnimationRectangle.cs b/DangerousD/GameCore/GameObjects/LivingEntities/Player/AnimationRectangle.cs index 8644b77..e199e4d 100644 --- a/DangerousD/GameCore/GameObjects/LivingEntities/Player/AnimationRectangle.cs +++ b/DangerousD/GameCore/GameObjects/LivingEntities/Player/AnimationRectangle.cs @@ -25,14 +25,15 @@ namespace DangerousD.GameCore.GameObjects.PlayerDeath private void PlayDeath(string deathName) { - if (GraphicsComponent.GetCurrentAnimation != "DeathFromZombie") - { - GraphicsComponent.StartAnimation("DeathFromZombie"); - } - if (GraphicsComponent.GetCurrentAnimation != "DeathFromSilasHand") - { - GraphicsComponent.StartAnimation("DeathFromSilasHand"); - } + //if (GraphicsComponent.GetCurrentAnimation != "DeathFromZombie") + //{ + // GraphicsComponent.StartAnimation("DeathFromZombie"); + //} + //if (GraphicsComponent.GetCurrentAnimation != "DeathFromSilasHand") + //{ + // GraphicsComponent.StartAnimation("DeathFromSilasHand"); + //} + GraphicsComponent.StartAnimation(deathName); } } diff --git a/DangerousD/GameCore/GameObjects/LivingEntities/Player/Player.cs b/DangerousD/GameCore/GameObjects/LivingEntities/Player/Player.cs index fc34e25..deb8ae4 100644 --- a/DangerousD/GameCore/GameObjects/LivingEntities/Player/Player.cs +++ b/DangerousD/GameCore/GameObjects/LivingEntities/Player/Player.cs @@ -10,6 +10,7 @@ using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Graphics; using DangerousD.GameCore.GameObjects.LivingEntities.Monsters; using DangerousD.GameCore.Network; +using DangerousD.GameCore.GameObjects.MapObjects; namespace DangerousD.GameCore.GameObjects.LivingEntities { @@ -65,6 +66,10 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities { bullets++; } + if(a == "playerShootBoomUpRight" || a == "playerShootBoomUpLeft") + { + isShooting = false; + } }; } @@ -73,7 +78,8 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities public bool IsAlive { get { return isAlive; } } protected override GraphicsComponent GraphicsComponent { get; } = new(new List { "playerMoveLeft", "playerMoveRight", "DeathFromZombie", "playerRightStay", "playerStayLeft", - "playerJumpRight" , "playerJumpLeft", "playerShootLeft", "playerShootRight", "playerReload", "smokeAfterShoot", "playerShootUpRight", "playerShootUpLeft"}, "playerReload"); + "playerJumpRight" , "playerJumpLeft", "playerShootLeft", "playerShootRight", "playerReload", "smokeAfterShoot", "playerShootUpRight", "playerShootUpLeft", "playerShootBoomUpRight", + "playerShootBoomUpLeft"}, "playerReload"); public void Attack() { @@ -89,10 +95,10 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities } public Rectangle GetShootRectangle(bool isRight) { - if (isRight) + if (isRight) return new Rectangle((int)Pos.X, (int)(Pos.Y) + 10, shootLength + Width, Height / 2); else - return new Rectangle((int)Pos.X-shootLength, (int)(Pos.Y) + 10, shootLength, Height / 2); + return new Rectangle((int)Pos.X - shootLength, (int)(Pos.Y) + 10, shootLength, Height / 2); } public override void Draw(SpriteBatch spriteBatch) { @@ -118,7 +124,7 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities return; } isAttacked = true; - if(monsterName == "Zombie") + if (monsterName == "Zombie") { AnimationRectangle deathRectangle = new AnimationRectangle(Pos, "DeathFrom" + monsterName); deathRectangle.Gr.actionOfAnimationEnd += (a) => @@ -129,7 +135,7 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities } }; } - else if(monsterName == "Spider") + else if (monsterName == "Spider") { AnimationRectangle deathRectangle = new AnimationRectangle(Pos, "DeathFrom" + monsterName); deathRectangle.Gr.actionOfAnimationEnd += (a) => @@ -184,41 +190,37 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities bullets--; if (isRight) { - StartCicycleAnimation("playerShootRight"); - var targets = AppManager.Instance.GameManager.physicsManager.CheckRectangle(new Rectangle((int)Pos.X, (int)(Pos.Y - 10f), shootLength + 24, 10), typeof(Zombie)).OrderBy(x => (x.Pos - Pos).LengthSquared()); - if (targets.Count() > 0) + if (!isUping) { - Zombie targetZombie = (Zombie)targets.First(); - targetZombie.TakeDamage(); - + StartCicycleAnimation("playerShootRight"); + Bullet bullet = new Bullet(new Vector2(Pos.X + 16, Pos.Y)); + bullet.ShootRight(); + SmokeAfterShoot smokeAfterShoot = new SmokeAfterShoot(new Vector2(Pos.X + 12, Pos.Y - 8)); } - targets = AppManager.Instance.GameManager.physicsManager.CheckRectangle(GetShootRectangle(isRight), typeof(SilasHands)).OrderBy(x => (x.Pos - Pos).LengthSquared()); - if (targets.Count() > 0) + else { - SilasHands targetHand = (SilasHands)targets.First(); - targetHand.TakeDamage(); + StartCicycleAnimation("playerShootBoomUpRight"); + Bullet bullet = new Bullet(new Vector2(Pos.X + 16, Pos.Y)); + bullet.ShootUpRight(); + SmokeAfterShoot smokeAfterShoot = new SmokeAfterShoot(new Vector2(Pos.X + 12, Pos.Y - 8)); } - SmokeAfterShoot smokeAfterShoot = new SmokeAfterShoot(new Vector2(Pos.X + 30, Pos.Y + 7)); } - else + else if(!isRight) { - StartCicycleAnimation("playerShootLeft"); - var targets = AppManager.Instance.GameManager.physicsManager.CheckRectangle(new Rectangle((int)Pos.X - shootLength, (int)(Pos.Y - 10f), shootLength, 10), typeof(Zombie)); - if (targets != null) + if (!isUping) { - foreach (var target in targets) - { - Zombie targetZombie = (Zombie)target; - targetZombie.TakeDamage(); - } + StartCicycleAnimation("playerShootBoomUpLeft"); + Bullet bullet = new Bullet(new Vector2(Pos.X, Pos.Y)); + bullet.ShootLeft(); + SmokeAfterShoot smokeAfterShoot = new SmokeAfterShoot(new Vector2(Pos.X - 6, Pos.Y - 7)); } - targets = AppManager.Instance.GameManager.physicsManager.CheckRectangle(GetShootRectangle(isRight), typeof(SilasHands)); - if (targets.Count() > 0) + else { - SilasHands targetHand = (SilasHands)targets.First(); - targetHand.TakeDamage(); + StartCicycleAnimation("playerShootBoomUpLeft"); + Bullet bullet = new Bullet(new Vector2(Pos.X, Pos.Y)); + bullet.ShootUpLeft(); + SmokeAfterShoot smokeAfterShoot = new SmokeAfterShoot(new Vector2(Pos.X - 6, Pos.Y - 7)); } - SmokeAfterShoot smokeAfterShoot = new SmokeAfterShoot(new Vector2(Pos.X - 12, Pos.Y + 7)); } } } @@ -239,7 +241,7 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities FallingThroughPlatform = false; } GraphicsComponent.SetCameraPosition(Pos); - if (!isAttacked || AppManager.Instance.InputManager.InvincibilityCheat) + if (!isAttacked || AppManager.Instance.InputManager.InvincibilityCheat) { if (!isShooting) { @@ -282,14 +284,7 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities } else if (AppManager.Instance.InputManager.VectorMovementDirection.X == 0)//стоит { - if(bullets < 5) - { - if (GraphicsComponent.GetCurrentAnimation != "playerReload") - { - GraphicsComponent.StartAnimation("playerReload"); - } - } - else if (isRight) + if (isRight) { if (isUping) { @@ -298,6 +293,13 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities GraphicsComponent.StartAnimation("playerShootUpRight"); } } + else if (bullets < 5) + { + if (GraphicsComponent.GetCurrentAnimation != "playerReload") + { + GraphicsComponent.StartAnimation("playerReload"); + } + } else { GraphicsComponent.StartAnimation("playerRightStay"); @@ -312,6 +314,13 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities GraphicsComponent.StartAnimation("playerShootUpLeft"); } } + else if (bullets < 5) + { + if (GraphicsComponent.GetCurrentAnimation != "playerReload") + { + GraphicsComponent.StartAnimation("playerReload"); + } + } else { GraphicsComponent.StartAnimation("playerStayLeft"); @@ -319,11 +328,6 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities } } } - if (AppManager.Instance.multiPlayerStatus != MultiPlayerStatus.SinglePlayer) - { - NetworkTask task = new NetworkTask(id, Pos); - AppManager.Instance.NetworkTasks.Add(task); - } } public void MoveDown() { @@ -331,13 +335,89 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities isOnGround = false; } - public class Bullet : GameObjects.LivingEntity + public class Bullet : LivingEntity { public Bullet(Vector2 position) : base(position) { + Height = 5; + Width = 5; + } + protected override GraphicsComponent GraphicsComponent { get; } = new(new List { "playerMoveLeft" }, "playerMoveLeft"); + Vector2 direction; + Vector2 maindirection; + public void ShootUpRight() + { + direction = new Vector2(1, -1); + acceleration = Vector2.Zero; + velocity = new Vector2(10, 10) * direction; + maindirection = velocity; + if (AppManager.Instance.multiPlayerStatus == MultiPlayerStatus.Client) + { + NetworkTask task = new NetworkTask(typeof(Bullet), Pos, id, velocity); + AppManager.Instance.NetworkTasks.Add(task); + AppManager.Instance.GameManager.Remove(this); + } + } + public void ShootRight() + { + direction = new Vector2(1, 0); + acceleration = Vector2.Zero; + velocity = new Vector2(10, 10) * direction; + maindirection = velocity; + if (AppManager.Instance.multiPlayerStatus == MultiPlayerStatus.Client) + { + NetworkTask task = new NetworkTask(typeof(Bullet), Pos, id, velocity); + AppManager.Instance.NetworkTasks.Add(task); + AppManager.Instance.GameManager.Remove(this); + } + } + public void ShootLeft() + { + direction = new Vector2(-1, 0); + acceleration = Vector2.Zero; + velocity = new Vector2(10, 10) * direction; + maindirection = velocity; + if (AppManager.Instance.multiPlayerStatus == MultiPlayerStatus.Client) + { + NetworkTask task = new NetworkTask(typeof(Bullet), Pos, id, velocity); + AppManager.Instance.NetworkTasks.Add(task); + AppManager.Instance.GameManager.Remove(this); + } + } + public void ShootUpLeft() + { + direction = new Vector2(-1, -1); + acceleration = Vector2.Zero; + velocity = new Vector2(10, 10) * direction; + maindirection = velocity; + if (AppManager.Instance.multiPlayerStatus == MultiPlayerStatus.Client) + { + NetworkTask task = new NetworkTask(typeof(Bullet), Pos, id, velocity); + AppManager.Instance.NetworkTasks.Add(task); + AppManager.Instance.GameManager.Remove(this); + } + } + public override void OnCollision(GameObject gameObject) + { + if (gameObject is not Player) + { + if (gameObject is CoreEnemy) + { + CoreEnemy enemy = (CoreEnemy)gameObject; + enemy.TakeDamage(); + AppManager.Instance.GameManager.Remove(this); + } + base.OnCollision(gameObject); + } + } + public override void Update(GameTime gameTime) + { + if (maindirection != velocity) + { + AppManager.Instance.GameManager.Remove(this); + } + base.Update(gameTime); } - protected override GraphicsComponent GraphicsComponent { get; } = new("ZombieMoveLeft"); - } } -} +} \ No newline at end of file diff --git a/DangerousD/GameCore/GameObjects/LivingEntity.cs b/DangerousD/GameCore/GameObjects/LivingEntity.cs index c496696..1523401 100644 --- a/DangerousD/GameCore/GameObjects/LivingEntity.cs +++ b/DangerousD/GameCore/GameObjects/LivingEntity.cs @@ -10,6 +10,8 @@ public abstract class LivingEntity : Entity public Vector2 velocity; public Vector2 acceleration; + public Vector2 Acceleration { get; private set; } + public LivingEntity(Vector2 position) : base(position) { acceleration = new Vector2(0, 30); diff --git a/DangerousD/GameCore/Managers/AppManager.cs b/DangerousD/GameCore/Managers/AppManager.cs index aedb493..62c57b8 100644 --- a/DangerousD/GameCore/Managers/AppManager.cs +++ b/DangerousD/GameCore/Managers/AppManager.cs @@ -23,7 +23,7 @@ namespace DangerousD.GameCore public class AppManager : Game { public static AppManager Instance { get; private set; } - public string IpAddress { get; private set; } = "127.0.0.1"; + public string IpAddress { get; private set; } = "0.0.0.0"; private GraphicsDeviceManager _graphics; private SpriteBatch _spriteBatch; public GameState gameState { get; private set; } @@ -208,7 +208,7 @@ namespace DangerousD.GameCore case GameState.Lobby: break; case GameState.Game: - GameManager.mapManager.LoadLevel("lvl"); + GameManager.mapManager.LoadLevel(currentMap); GameManager.FindBorders(); break; case GameState.Death: @@ -220,6 +220,7 @@ namespace DangerousD.GameCore public void NetworkSync(List networkTasks) { + DebugHUD.Log("networksync"); foreach (NetworkTask networkTask in networkTasks) { switch (networkTask.operation) @@ -235,6 +236,12 @@ namespace DangerousD.GameCore SoundManager.StartSound(networkTask.name, networkTask.position, GameManager.GetPlayer1.Pos); break; case NetworkTaskOperationEnum.CreateEntity: + if (networkTask.type == typeof(Player.Bullet)) + { + Player.Bullet bullet = new Player.Bullet(networkTask.position); + bullet.id = networkTask.objId; + bullet.velocity = networkTask.velocity; + } break; case NetworkTaskOperationEnum.SendPosition: if (networkTask.objId != GameManager.GetPlayer1.id ) @@ -326,7 +333,9 @@ namespace DangerousD.GameCore } public void Restart(string map) { - + GameManager = new(); + ChangeGameState(GameState.Menu); + currentMap = map; } } } diff --git a/DangerousD/GameCore/Managers/GameManager.cs b/DangerousD/GameCore/Managers/GameManager.cs index 8d1c7c4..f4eed81 100644 --- a/DangerousD/GameCore/Managers/GameManager.cs +++ b/DangerousD/GameCore/Managers/GameManager.cs @@ -30,6 +30,9 @@ namespace DangerousD.GameCore public List otherObjects = new(); public Vector4 CameraBorder; public Player GetPlayer1 { get; private set; } + private int _lastUpdate = 0; + private int _currTime = 0; + public GameManager() { others = new List(); @@ -130,10 +133,16 @@ namespace DangerousD.GameCore public void Update(GameTime gameTime) { + _currTime += gameTime.ElapsedGameTime.Milliseconds; if (AppManager.Instance.NetworkTasks.Count > 0) { - AppManager.Instance.NetworkManager.SendMsg(AppManager.Instance.NetworkTasks.ToList()); - AppManager.Instance.NetworkTasks.Clear(); + if (_currTime - _lastUpdate > 50) + { + AppManager.Instance.DebugHUD.Log("sending"); + AppManager.Instance.NetworkManager.SendMsg(AppManager.Instance.NetworkTasks.ToList()); + AppManager.Instance.NetworkTasks.Clear(); + _lastUpdate = _currTime; + } } foreach (var item in BackgroundObjects) item.Update(gameTime); diff --git a/DangerousD/GameCore/Managers/MapManager.cs b/DangerousD/GameCore/Managers/MapManager.cs index 9087d97..222b897 100644 --- a/DangerousD/GameCore/Managers/MapManager.cs +++ b/DangerousD/GameCore/Managers/MapManager.cs @@ -41,7 +41,7 @@ namespace DangerousD.GameCore.Managers { InstantiateTiles(layer, tileSize); } - + foreach (XmlNode layer in xml.DocumentElement.SelectNodes("objectgroup")) { InstantiateEntities(layer); @@ -91,16 +91,20 @@ namespace DangerousD.GameCore.Managers private void InstantiateEntities(XmlNode group) { - string entityGroup = group.Attributes["class"] is not null ? group.Attributes["class"].Value : ""; + string entityGroup = group.Attributes["class"] is not null ? "." + group.Attributes["class"].Value : ""; + Debug.Write(entityGroup); float offsetX = group.Attributes["offsetx"] is not null ? float.Parse(group.Attributes["offsetx"].Value) : 0; float offsetY = group.Attributes["offsety"] is not null ? float.Parse(group.Attributes["offsety"].Value) : 0; + foreach (XmlNode entity in group.ChildNodes) { string entityType = entity.Attributes["type"] is not null ? "." + entity.Attributes["type"].Value : ""; - Type type = Type.GetType($"DangerousD.GameCore.GameObjects.{entityGroup}{entityType}"); + Type type = Type.GetType($"DangerousD.GameCore.GameObjects{entityGroup}{entityType}"); + Vector2 pos = new Vector2(float.Parse(entity.Attributes["x"].Value, CultureInfo.InvariantCulture) + offsetX, float.Parse(entity.Attributes["y"].Value, CultureInfo.InvariantCulture) + offsetY) * _scale; + Entity inst; if (type.Equals(typeof(Player))) { @@ -111,6 +115,30 @@ namespace DangerousD.GameCore.Managers int gid = entity.Attributes["gid"] is not null ? int.Parse(entity.Attributes["gid"].Value) : 0; inst = (Entity)Activator.CreateInstance(type, pos, new Vector2(32, 48), new Rectangle((gid - 872)*32, 0, 32, 48)); } + else if (type.Equals(typeof(TeleportingDoor))) + { + int gid = entity.Attributes["gid"] is not null ? int.Parse(entity.Attributes["gid"].Value) : 0; + XmlNode node = entity.SelectSingleNode("properties/property[@name = 'nextLevel']"); + + bool resetLevel = node is not null ? bool.Parse(node.Attributes["value"].Value) : false; + if (resetLevel) + { + inst = (Entity)Activator.CreateInstance(type, pos, new Vector2(32, 48), new Rectangle((gid - 872) * 32, 0, 32, 48), + new Vector2(0,0), + () => { }); + } + else + { + node = entity.SelectSingleNode("properties/property[@name = 'destination']"); + string target = node is not null ? node.Attributes["value"].Value : "0"; + XmlNode dest = group.SelectSingleNode($"object[@id = '{target}']"); + + inst = (Entity)Activator.CreateInstance(type, pos, new Vector2(32, 48), new Rectangle((gid - 872) * 32, 0, 32, 48), + new Vector2(float.Parse(dest.Attributes["x"].Value, CultureInfo.InvariantCulture) + offsetX, + float.Parse(dest.Attributes["y"].Value, CultureInfo.InvariantCulture) + offsetY) * _scale, + () => { }); + } + } else { inst = (Entity)Activator.CreateInstance(type, pos); diff --git a/DangerousD/GameCore/Network/NetworkManager.cs b/DangerousD/GameCore/Network/NetworkManager.cs index 56ac3a1..41b48f1 100644 --- a/DangerousD/GameCore/Network/NetworkManager.cs +++ b/DangerousD/GameCore/Network/NetworkManager.cs @@ -21,27 +21,19 @@ namespace DangerousD.GameCore.Network private void Init(string IpAddress) { - try - { - socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); - IPAddress address = IPAddress.Parse(IpAddress); - int port = 51873; - endPoint = new IPEndPoint(address, port); - } - catch { } + socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); + IPAddress address = IPAddress.Parse(IpAddress); + int port = 51873; + endPoint = new IPEndPoint(address, port); } private void AcceptSockets() { while (true) { - try - { - Socket clientSocket = socket.Accept(); - clientSockets.Add(clientSocket); - Thread receiveThread = new Thread(BeginHostReceive); - receiveThread.Start(clientSocket); - } - catch { } + Socket clientSocket = socket.Accept(); + clientSockets.Add(clientSocket); + Thread receiveThread = new Thread(BeginHostReceive); + receiveThread.Start(clientSocket); } } @@ -50,46 +42,41 @@ namespace DangerousD.GameCore.Network Socket clientSocket = clSocket as Socket; while (clientSocket != null) { - try + byte[] bytesCount = new byte[4]; + clientSocket.Receive(bytesCount); + int length = BitConverter.ToInt32(bytesCount); + byte[] Data = new byte[length]; + StateObject so = new StateObject(clientSocket, Data); + while (so.UploadedBytesCount < length) { - byte[] bytesCount = new byte[4]; - clientSocket.Receive(bytesCount); - byte[] Data = new byte[BitConverter.ToInt32(bytesCount)]; - StateObject so = new StateObject(clientSocket, Data); - IAsyncResult count = clientSocket.BeginReceive(so.buffer, 0, so.bufferSize, SocketFlags.None, AsyncReceiveCallback, so); + int count = clientSocket.Receive(so.buffer, so.UploadedBytesCount, length - so.UploadedBytesCount, SocketFlags.None); + so.UploadedBytesCount += count; } - catch { } + List tasks = JsonConvert.DeserializeObject>(Encoding.Unicode.GetString(so.buffer, 0, length)); + GetReceivingMessages(tasks); } } public void HostInit(string IpAddress) { - try - { - Init(IpAddress); - socket.Bind(endPoint); - socket.Listen(4); - Thread acceptThread = new Thread(AcceptSockets); - acceptThread.Start(); - state = "Host"; - AppManager.Instance.SetMultiplayerState(MultiPlayerStatus.Host); - } - catch { } + Init(IpAddress); + socket.Bind(endPoint); + socket.Listen(4); + Thread acceptThread = new Thread(AcceptSockets); + acceptThread.Start(); + state = "Host"; + AppManager.Instance.SetMultiplayerState(MultiPlayerStatus.Host); } public void ClientInit(string IpAddress) { - try - { - Init(IpAddress); - socket.Connect(endPoint); - state = "Client"; - Thread.Sleep(10); - Thread ReceivingThread = new Thread(ReceiveMsgFromHost); - ReceivingThread.Start(); - NetworkTask connectionTask = new NetworkTask("Player"); - AppManager.Instance.NetworkTasks.Add(connectionTask); - AppManager.Instance.SetMultiplayerState(MultiPlayerStatus.Client); - } - catch { } + Init(IpAddress); + socket.Connect(endPoint); + state = "Client"; + Thread.Sleep(10); + Thread ReceivingThread = new Thread(ReceiveMsgFromHost); + ReceivingThread.Start(); + NetworkTask connectionTask = new NetworkTask("Player"); + AppManager.Instance.NetworkTasks.Add(connectionTask); + AppManager.Instance.SetMultiplayerState(MultiPlayerStatus.Client); } public void SendMsg(List networkTask, Socket ignoreSocket = null) { @@ -97,65 +84,38 @@ namespace DangerousD.GameCore.Network int count = Data.Length; if (state == "Host") { - try + foreach (Socket socket in clientSockets) { - foreach (Socket socket in clientSockets) + if (!(socket == ignoreSocket)) { - if (!(socket == ignoreSocket)) - { - socket.Send(BitConverter.GetBytes(count)); - socket.Send(Data); - } + socket.Send(BitConverter.GetBytes(count)); + socket.Send(Data); } } - catch { } } else { - try - { - socket.Send(BitConverter.GetBytes(count)); - socket.Send(Data); - } - catch { } + socket.Send(BitConverter.GetBytes(count)); + socket.Send(Data); } } private void ReceiveMsgFromHost() { while (true) { - try + byte[] bytesCount = new byte[4]; + socket.Receive(bytesCount); + int length = BitConverter.ToInt32(bytesCount); + byte[] Data = new byte[length]; + StateObject so = new StateObject(socket, Data); + while (so.UploadedBytesCount < length) { - byte[] bytesCount = new byte[4]; - socket.Receive(bytesCount); - byte[] Data = new byte[BitConverter.ToInt32(bytesCount)]; - StateObject so = new StateObject(socket, Data); - IAsyncResult count = socket.BeginReceive(so.buffer, 0, so.bufferSize, SocketFlags.None, AsyncReceiveCallback, so); + int count = socket.Receive(so.buffer, so.UploadedBytesCount, length-so.UploadedBytesCount, SocketFlags.None); + so.UploadedBytesCount += count; } - catch { } + List tasks = JsonConvert.DeserializeObject>(Encoding.Unicode.GetString(so.buffer, 0, length)); + GetReceivingMessages(tasks); } } - - private void AsyncReceiveCallback(IAsyncResult ar) - { - try - { - StateObject so = ar.AsyncState as StateObject; - Socket clientSocket = so.workSocket; - int readCount = clientSocket.EndReceive(ar); - so.UploadedBytesCount += readCount; - so.sb.Append(Encoding.Unicode.GetString(so.buffer, 0, readCount)); - if (so.UploadedBytesCount < so.bufferSize) - { - clientSocket.BeginReceive(so.buffer, 0, so.bufferSize, SocketFlags.None, new AsyncCallback(AsyncReceiveCallback), so); - } - else - { - List tasks = JsonConvert.DeserializeObject>(so.sb.ToString()); - GetReceivingMessages(tasks); - } - } - catch { } - } } } diff --git a/DangerousD/GameCore/Network/NetworkTask.cs b/DangerousD/GameCore/Network/NetworkTask.cs index f9b6072..17bf92b 100644 --- a/DangerousD/GameCore/Network/NetworkTask.cs +++ b/DangerousD/GameCore/Network/NetworkTask.cs @@ -38,11 +38,12 @@ namespace DangerousD.GameCore.Network /// /// /// - public NetworkTask(Type EntityType, Vector2 EntityPosition, int ParentId) + public NetworkTask(Type EntityType, Vector2 EntityPosition, int ParentId, Vector2 velocity) { operation = NetworkTaskOperationEnum.CreateEntity; type = EntityType; position = EntityPosition; + this.velocity = velocity; objId = ParentId; } diff --git a/DangerousD/GameCore/Network/StateObject.cs b/DangerousD/GameCore/Network/StateObject.cs index f98170b..3648ad1 100644 --- a/DangerousD/GameCore/Network/StateObject.cs +++ b/DangerousD/GameCore/Network/StateObject.cs @@ -12,7 +12,6 @@ namespace DangerousD.GameCore.Network public Socket workSocket; public int bufferSize; public byte[] buffer; - public StringBuilder sb = new StringBuilder(); public int UploadedBytesCount; public StateObject(Socket socket, byte[] buffer)