Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge branch 'master' of https://github.com/mcgrue/demon_door

Conflicts:
	DemonDoor/DemonDoor/Game1.cs
  • Loading branch information...
commit a204710f02bd7ab383f82214672b6f35a8b0ca7d 2 parents 30f00d6 + bad2e9c
@zumpiez zumpiez authored
View
5 DemonDoor/DemonDoor/CivvieController.cs
@@ -130,6 +130,11 @@ public void Collided(ICollidable other)
this.behaviorState = BehaviorState.Dead;
myCorpse.SetAnimationState(CivvieSprite.AnimationState.Dead);
}
+
+ if (this.behaviorState == BehaviorState.Dead)
+ {
+ _world.StopPhysicsing(_fsBody);
+ }
}
if (other is CivvieController)
View
17 DemonDoor/DemonDoor/CivvieSpawner.cs
@@ -14,16 +14,16 @@ class CivvieSpawner : IDrawableThing, IBrainyThing
private McgLayer layer;
private World world;
private Vector2 location;
- private SpriteBasis civvieSpriteBasis;
+ private SpriteBasis[] civvieSpriteBasisList;
private int spawnRateFuzzMillis;
- public CivvieSpawner(World world, McgLayer layer, Vector2 location, TimeSpan spawnRate, SpriteBasis civvieSpriteBasis, int spawnRateFuzzMillis = 0)
+ public CivvieSpawner(World world, McgLayer layer, Vector2 location, TimeSpan spawnRate, SpriteBasis[] civvieSpriteBasis, int spawnRateFuzzMillis = 0)
{
this.layer = layer;
this.world = world;
this.spawnRate = spawnRate;
this.location = location;
- this.civvieSpriteBasis = civvieSpriteBasis;
+ this.civvieSpriteBasisList = civvieSpriteBasis;
this.spawnRateFuzzMillis = spawnRateFuzzMillis;
}
@@ -42,12 +42,21 @@ public RenderDelegate GetDrawDelegate()
return (x, y) => { };
}
+ private static int nextIdx = 0;
+ public int getnextCivvieIdx() {
+ nextIdx++;
+ if( nextIdx >= civvieSpriteBasisList.Length ) {
+ nextIdx = 0;
+ }
+ return nextIdx;
+ }
+
public void ProcessBehavior(Microsoft.Xna.Framework.GameTime time)
{
spawnTimeAccumulator += time.ElapsedGameTime;
if (spawnTimeAccumulator > spawnRate)
{
- layer.AddNode(new McgNode(new CivvieController(world, new Vector2(location.X, location.Y), new CivvieSprite(civvieSpriteBasis)), layer,
+ layer.AddNode(new McgNode(new CivvieController(world, new Vector2(location.X, location.Y), new CivvieSprite(civvieSpriteBasisList[getnextCivvieIdx()])), layer,
(int)location.X, (int)location.Y));
spawnTimeAccumulator = TimeSpan.FromMilliseconds(VERGEGame.rand.Next(-spawnRateFuzzMillis, 0));
}
View
182 DemonDoor/DemonDoor/CopController.cs
@@ -0,0 +1,182 @@
+
+using FarseerPhysics.Collision.Shapes;
+using FarseerPhysics.Dynamics;
+using FarseerPhysics.Dynamics.Contacts;
+using Microsoft.Xna.Framework;
+
+using XNAVERGE;
+using System;
+
+namespace DemonDoor
+{
+
+ class CopController : IDrawableThing, ICollidable, IBrainyThing
+ {
+ CopSprite copSprite = null;
+ Vector2 screen;
+
+ private Body _fsBody;
+ private Shape _fsShape;
+ private Fixture _fsFixture;
+ private World _world;
+
+ private enum BehaviorState
+ {
+ Flying, Walking, Dead, Aiming, Shooting
+ }
+ private BehaviorState behaviorState = BehaviorState.Flying;
+
+ public CopController( World w, Vector2 r0, CopSprite sprite )
+ {
+ _world = w;
+
+ _fsBody = w.NewBody();
+ _fsBody.BodyType = BodyType.Dynamic;
+ _fsBody.Position = r0;
+
+ copSprite = sprite;
+
+ MakeLivingFixture();
+ }
+
+ private void MakeLivingFixture()
+ {
+ if (_fsFixture != null)
+ {
+ _fsBody.DestroyFixture(_fsFixture);
+ }
+
+ _fsShape = new CircleShape(1f, 1.0f);
+ _fsFixture = _fsBody.CreateFixture(_fsShape, this);
+ _fsFixture.Restitution = 0.2f;
+ _fsFixture.OnCollision += BehaviorCollided;
+ }
+
+ private void MakeDeadFixture()
+ {
+ if (_fsFixture != null)
+ {
+ _fsBody.DestroyFixture(_fsFixture);
+ }
+
+ PolygonShape shape = new PolygonShape(1.0f);
+ shape.SetAsBox(1.0f, 1.0f);
+ _fsFixture = _fsBody.CreateFixture(_fsShape, this);
+ _fsFixture.Restitution = 0.2f;
+ _fsFixture.OnCollision += BehaviorCollided;
+ }
+
+ public int GetX() {
+ return (int)_fsBody.Position.X;
+ }
+ public int GetY() {
+ return (int)_fsBody.Position.Y;
+ }
+
+ RenderDelegate _myDrawDelegate;
+
+ public RenderDelegate GetDrawDelegate() {
+ if( _myDrawDelegate != null ) return _myDrawDelegate;
+
+ _myDrawDelegate = ( int x, int y ) => {
+
+ this.screen = Coords.Physics2Screen( new Vector2 { X = Position.X, Y = Position.Y } );
+
+ // maybe update the screen here?
+
+ copSprite.Sprite.x = (int)screen.X - 8;
+ copSprite.Sprite.y = (int)screen.Y - 8;
+ copSprite.Sprite.Draw();
+ };
+
+ return _myDrawDelegate;
+ }
+
+ private bool BehaviorCollided(Fixture f1, Fixture f2, Contact contact)
+ {
+ Fixture self = null, other = null;
+
+ if (f1 == _fsFixture)
+ {
+ self = f1;
+ other = f2;
+ }
+ else if (f2 == _fsFixture)
+ {
+ self = f2;
+ other = f1;
+ }
+
+ if (other.UserData is ICollidable)
+ {
+ this.Collided(other.UserData as ICollidable);
+ (other.UserData as ICollidable).Collided(this);
+ }
+
+ return true;
+ }
+
+ public void Collided(ICollidable other)
+ {
+ if (other == _world)
+ {
+ //Console.WriteLine("Velocity " + _fsBody.LinearVelocity.Y);
+ if (Math.Abs(_fsBody.LinearVelocity.Y) < 1 && behaviorState == BehaviorState.Flying)
+ {
+ this.behaviorState = BehaviorState.Walking;
+ }
+ else if (_fsBody.LinearVelocity.Y < -20 && behaviorState == BehaviorState.Flying)
+ {
+ this.behaviorState = BehaviorState.Dead;
+ copSprite.SetAnimationState(CopSprite.AnimationState.Dead);
+ }
+ }
+
+ if (other is CivvieController)
+ {
+ var otherCivvie = other as CivvieController;
+ if (otherCivvie._fsBody.LinearVelocity.Length() > 50)
+ {
+ otherCivvie.Die();
+ this.Die();
+ }
+ }
+ }
+
+ public Vector2 Position
+ {
+ get
+ {
+ return _fsBody.Position;
+ }
+ }
+
+ public float Theta
+ {
+ get
+ {
+ return _fsBody.Rotation;
+ }
+ }
+
+ public void ProcessBehavior(GameTime time)
+ {
+ if (Math.Abs(_fsBody.LinearVelocity.Y) > 1 && behaviorState != BehaviorState.Dead) {
+ behaviorState = BehaviorState.Flying;
+ copSprite.SetAnimationState(CopSprite.AnimationState.Flying);
+ }
+ if (behaviorState == BehaviorState.Walking)
+ {
+ copSprite.SetAnimationState(CopSprite.AnimationState.WalkingLeft);
+ _fsBody.LinearVelocity = new Vector2(-20, _fsBody.LinearVelocity.Y);
+ _fsBody.Rotation = 0;
+ }
+ }
+
+ private void Die()
+ {
+ this.behaviorState = BehaviorState.Dead;
+ copSprite.SetAnimationState(CopSprite.AnimationState.Dead);
+ }
+ }
+}
View
56 DemonDoor/DemonDoor/CopSpawner.cs
@@ -0,0 +1,56 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using XNAVERGE;
+using Microsoft.Xna.Framework;
+
+namespace DemonDoor
+{
+ class CopSpawner : IDrawableThing, IBrainyThing
+ {
+ TimeSpan spawnRate;
+ private TimeSpan spawnTimeAccumulator;
+ private McgLayer layer;
+ private World world;
+ private Vector2 location;
+ private SpriteBasis copSpriteBasis;
+ private int spawnRateFuzzMillis;
+
+ public CopSpawner(World world, McgLayer layer, Vector2 location, TimeSpan spawnRate, SpriteBasis copSpriteBasis, int spawnRateFuzzMillis = 0)
+ {
+ this.layer = layer;
+ this.world = world;
+ this.spawnRate = spawnRate;
+ this.location = location;
+ this.copSpriteBasis = copSpriteBasis;
+ this.spawnRateFuzzMillis = spawnRateFuzzMillis;
+ }
+
+ public int GetX()
+ {
+ return (int)location.X;
+ }
+
+ public int GetY()
+ {
+ return (int)location.Y;
+ }
+
+ public RenderDelegate GetDrawDelegate()
+ {
+ return (x, y) => { };
+ }
+
+ public void ProcessBehavior(Microsoft.Xna.Framework.GameTime time)
+ {
+ spawnTimeAccumulator += time.ElapsedGameTime;
+ if (spawnTimeAccumulator > spawnRate)
+ {
+ layer.AddNode(new McgNode(new CopController(world, new Vector2(location.X, location.Y), new CopSprite(copSpriteBasis)), layer,
+ (int)location.X, (int)location.Y));
+ spawnTimeAccumulator = TimeSpan.FromMilliseconds(VERGEGame.rand.Next(-spawnRateFuzzMillis, 0));
+ }
+ }
+ }
+}
View
7 DemonDoor/DemonDoor/DemonController.cs
@@ -54,7 +54,12 @@ class DemonController : IDrawableThing, ICollidable {
public void Collided(ICollidable other) {
if( other is CivvieController ) {
- (Game1.game as Game1).LoadLevel("gameover");
+
+ if( ( sprite.CurrentState == DemonSprite.AnimationState.Idle || sprite.CurrentState == DemonSprite.AnimationState.Pressing ) ) {
+ ( Game1.game as Game1 ).LoadLevel( "gameover" );
+ } else {
+ /// do something if a "miss" happens? disintegrate the corpse?
+ }
}
}
View
6 DemonDoor/DemonDoor/DemonDoor.csproj.Debug.cachefile
@@ -19,6 +19,12 @@ Content\art\cloud_08.xnb
Content\art\cloud_09.xnb
Content\art\demon.xnb
Content\art\gameover.xnb
+Content\art\civilian_02.xnb
+Content\art\civilian_03.xnb
+Content\art\civilian_04.xnb
+Content\art\civilian_05.xnb
+Content\art\civilian_06.xnb
+Content\art\civilian_07.xnb
Content\music.xgs
Content\Wave Bank.xwb
Content\Sound Bank.xsb
View
15 DemonDoor/DemonDoor/DoorController.cs
@@ -50,9 +50,12 @@ private bool PhysicsCollided(Fixture f1, Fixture f2, Contact contact)
if ((other.UserData is CivvieController || other.UserData is CopController) && !_alreadyShot.Contains(other)) {
//Console.WriteLine("collided with corpse {0}, kickin' it", c);
- other.Body.ApplyLinearImpulse(Impulse);
- Game1.game.PlayCue("door_hit");
- _alreadyShot.Add(other);
+ if (Impulse.Length() > 0)
+ {
+ other.Body.ApplyLinearImpulse(Impulse);
+ Game1.game.PlayCue("door_hit");
+ _alreadyShot.Add(other);
+ }
}
return false;
@@ -173,7 +176,7 @@ public void UpdateGunImpulse(GameTime gameTime)
sprite.SetAnimationState(DoorSprite.AnimationState.Fast);
} else if (GunImpulse / MaxGunImpulse > 0.5) {
sprite.SetAnimationState(DoorSprite.AnimationState.Medium);
- } else if (GunImpulse / MaxGunImpulse > 0.1) {
+ } else if (GunImpulse / MaxGunImpulse > 0) {
sprite.SetAnimationState(DoorSprite.AnimationState.Slow);
} else {
sprite.SetAnimationState(DoorSprite.AnimationState.Stopped);
@@ -185,6 +188,10 @@ public string DoorSpeedDescription
{
get
{
+ if (GunImpulse == 0)
+ {
+ return "stopped";
+ }
if (GunImpulse < 0.1 * MaxGunImpulse)
{
return "mild";
View
17 DemonDoor/DemonDoor/Game1.cs
@@ -21,6 +21,8 @@ public class Game1 : VERGEGame {
public McGrenderStack mcg;
public Texture2D im_civvie, im_title, im_door, im_stage, im_skybox, im_demon, im_gameover, im_cop;
+ public Texture2D[] im_civvies;
+
public Texture2D[] im_clouds;
public SpriteFont ft_hud24;
@@ -40,15 +42,13 @@ internal void LoadLevel(string level)
{
Screen s = null;
- switch (level)
- {
+ switch (level) {
case "title": s = new TitleScreen(); break;
case "level1": s = new Level1Screen(); break;
case "gameover": s = new GameOverScreen(); break;
}
- foreach (Cue q in _activeCues)
- {
+ foreach (Cue q in _activeCues) {
q.Stop(AudioStopOptions.AsAuthored);
}
@@ -74,8 +74,7 @@ internal void LoadLevel(string level)
game = this;
_activeCues = new List<Cue>();
- // TODO: Add your initialization logic here
- im_civvie = Content.Load<Texture2D>( "art/civilian_01" );
+ // TODO: Add your initialization logic here
im_title = Content.Load<Texture2D>( "art/title" );
im_door = Content.Load<Texture2D>( "art/door" );
im_stage = Content.Load<Texture2D>( "art/stage" );
@@ -94,6 +93,12 @@ internal void LoadLevel(string level)
}
im_clouds = tmpLst.ToArray();
+ tmpLst = new List<Texture2D>();
+ for( int i = 1; i < 8; i++ ) {
+ tmpLst.Add( Content.Load<Texture2D>( "art/civilian_0" + i ) );
+ }
+ im_civvies = tmpLst.ToArray();
+
ft_hud24 = Content.Load<SpriteFont>( "HUD24" );
LoadLevel("title");
View
4 DemonDoor/DemonDoor/GameOverScreen.cs
@@ -12,8 +12,8 @@ namespace DemonDoor
class GameOverScreen : Screen
{
public McGrenderStack mcg;
- internal override void Load()
- {
+ internal override void Load() {
+
Game1 game1 = (Game1)Game1.game;
//Vector2[] verts = new [] {
// new Vector2 { X = -100, Y = 0 },
View
11 DemonDoor/DemonDoor/Level1Screen.cs
@@ -51,8 +51,13 @@ internal override void Load()
Wall _wall1 = new Wall(_world, verts);
//Wall _wall1 = new Wall(_world, _666pos.X, -1);
- SpriteBasis civSpriteBasis = new SpriteBasis(16, 16, 7, 7);
- civSpriteBasis.image = game1.im_civvie;
+ List<SpriteBasis> civilianList = new List<SpriteBasis>();
+
+ for( int i = 0; i < game1.im_civvies.Length; i++ ) {
+ SpriteBasis civSpriteBasis = new SpriteBasis( 16, 16, 7, 7 );
+ civSpriteBasis.image = game1.im_civvies[i];
+ civilianList.Add( civSpriteBasis );
+ }
SpriteBasis copSpriteBasis = new SpriteBasis(16, 16, 10, 10);
copSpriteBasis.image = game1.im_cop;
@@ -120,7 +125,7 @@ internal override void Load()
//spawn guys
Vector2 spawnerR = Coords.Screen2Physics(new Vector2 { X = 325, Y = 218 });
- var civvieSpawner = new CivvieSpawner(_world, l, spawnerR, TimeSpan.FromSeconds(1), civSpriteBasis, 1000);
+ var civvieSpawner = new CivvieSpawner( _world, l, spawnerR, TimeSpan.FromSeconds( 1 ), civilianList.ToArray(), 1000 );
l.AddNode(new McgNode(civvieSpawner, l, 80, 20));
//spawn cops
View
15 DemonDoor/DemonDoor/World.cs
@@ -1,4 +1,5 @@
using System;
+using System.Collections.Generic;
using FarseerPhysics.Collision.Shapes;
using FarseerPhysics.Dynamics;
using FarseerPhysics.Dynamics.Contacts;
@@ -34,9 +35,23 @@ public void Simulate(GameTime now)
_fsWorld.Step((float)step.TotalSeconds);
+ foreach (Body b in _pendingStopBodies)
+ {
+ b.BodyType = BodyType.Static;
+ b.CollidesWith = Category.None;
+ b.IsSensor = true;
+ }
+
_last = now.TotalGameTime;
}
+ private IList<Body> _pendingStopBodies = new List<Body>();
+
+ internal void StopPhysicsing(Body b)
+ {
+ _pendingStopBodies.Add(b);
+ }
+
internal Body NewBody()
{
return new Body(_fsWorld);
View
32 DemonDoor/DemonDoorContent/DemonDoorContent.contentproj
@@ -176,6 +176,38 @@
<Processor>TextureProcessor</Processor>
</Compile>
</ItemGroup>
+ <ItemGroup>
+ <Compile Include="art\civilian_02.png">
+ <Name>civilian_02</Name>
+ <Importer>TextureImporter</Importer>
+ <Processor>TextureProcessor</Processor>
+ </Compile>
+ <Compile Include="art\civilian_03.png">
+ <Name>civilian_03</Name>
+ <Importer>TextureImporter</Importer>
+ <Processor>TextureProcessor</Processor>
+ </Compile>
+ <Compile Include="art\civilian_04.png">
+ <Name>civilian_04</Name>
+ <Importer>TextureImporter</Importer>
+ <Processor>TextureProcessor</Processor>
+ </Compile>
+ <Compile Include="art\civilian_05.png">
+ <Name>civilian_05</Name>
+ <Importer>TextureImporter</Importer>
+ <Processor>TextureProcessor</Processor>
+ </Compile>
+ <Compile Include="art\civilian_06.png">
+ <Name>civilian_06</Name>
+ <Importer>TextureImporter</Importer>
+ <Processor>TextureProcessor</Processor>
+ </Compile>
+ <Compile Include="art\civilian_07.png">
+ <Name>civilian_07</Name>
+ <Importer>TextureImporter</Importer>
+ <Processor>TextureProcessor</Processor>
+ </Compile>
+ </ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
View
BIN  DemonDoor/DemonDoorContent/art/arrow.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  DemonDoor/DemonDoorContent/art/stage.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  DemonDoor/DemonDoorContent/art/window_break.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
19 DemonDoor/DemonDoorContent/music.xap
@@ -13,7 +13,7 @@ Global Settings
{
Xbox File = Xbox\music.xgs;
Windows File = Win\music.xgs;
- Header File = music.h;
+ Header File = C:\Users\Colin Bayer\Documents\demon_door\DemonDoor\DemonDoorContent\music.h;
Exclude Category Names = 0;
Exclude Variable Names = 0;
Last Modified Low = 2998207351;
@@ -214,6 +214,19 @@ Global Settings
Min = 0.000000;
Max = 1000000.000000;
}
+
+ Compression Preset
+ {
+ Name = Compression Preset;
+ Xbox Format Tag = 357;
+ Target Sample Rate = 48000;
+ XMA Quality = 60;
+ Find Best Quality = 0;
+ High Freq Cut = 0;
+ Loop = 0;
+ PC Format Tag = 353;
+ WMA Quality = 100;
+ }
}
Wave Bank
@@ -424,7 +437,7 @@ Sound Bank
Sound
{
Name = demon_door;
- Volume = -1200;
+ Volume = -1610;
Pitch = 0;
Priority = 0;
@@ -880,7 +893,7 @@ Sound Bank
Instance Limit
{
- Max Instances = 20;
+ Max Instances = 2;
Behavior = 0;
Crossfade
View
56 DemonDoor/DemonDoorContent/obj/x86/Debug/ContentPipeline.xml
@@ -35,7 +35,7 @@
<Processor>TextureProcessor</Processor>
<Options>None</Options>
<Output>C:\grue\demon_door\DemonDoor\DemonDoor\bin\x86\Debug\Content\art\stage.xnb</Output>
- <Time>2012-04-01T12:52:06.312-07:00</Time>
+ <Time>2012-04-01T15:31:05.972-07:00</Time>
</Item>
<Item>
<Source>art\title.png</Source>
@@ -190,6 +190,60 @@
<Output>C:\grue\demon_door\DemonDoor\DemonDoor\bin\x86\Debug\Content\art\gameover.xnb</Output>
<Time>2012-04-01T14:03:32.347-07:00</Time>
</Item>
+ <Item>
+ <Source>art\civilian_02.png</Source>
+ <Name>art\civilian_02</Name>
+ <Importer>TextureImporter</Importer>
+ <Processor>TextureProcessor</Processor>
+ <Options>None</Options>
+ <Output>C:\grue\demon_door\DemonDoor\DemonDoor\bin\x86\Debug\Content\art\civilian_02.xnb</Output>
+ <Time>2012-04-01T14:37:10.054-07:00</Time>
+ </Item>
+ <Item>
+ <Source>art\civilian_03.png</Source>
+ <Name>art\civilian_03</Name>
+ <Importer>TextureImporter</Importer>
+ <Processor>TextureProcessor</Processor>
+ <Options>None</Options>
+ <Output>C:\grue\demon_door\DemonDoor\DemonDoor\bin\x86\Debug\Content\art\civilian_03.xnb</Output>
+ <Time>2012-04-01T14:37:51.097-07:00</Time>
+ </Item>
+ <Item>
+ <Source>art\civilian_04.png</Source>
+ <Name>art\civilian_04</Name>
+ <Importer>TextureImporter</Importer>
+ <Processor>TextureProcessor</Processor>
+ <Options>None</Options>
+ <Output>C:\grue\demon_door\DemonDoor\DemonDoor\bin\x86\Debug\Content\art\civilian_04.xnb</Output>
+ <Time>2012-04-01T14:41:54.036-07:00</Time>
+ </Item>
+ <Item>
+ <Source>art\civilian_05.png</Source>
+ <Name>art\civilian_05</Name>
+ <Importer>TextureImporter</Importer>
+ <Processor>TextureProcessor</Processor>
+ <Options>None</Options>
+ <Output>C:\grue\demon_door\DemonDoor\DemonDoor\bin\x86\Debug\Content\art\civilian_05.xnb</Output>
+ <Time>2012-04-01T14:44:41.666-07:00</Time>
+ </Item>
+ <Item>
+ <Source>art\civilian_06.png</Source>
+ <Name>art\civilian_06</Name>
+ <Importer>TextureImporter</Importer>
+ <Processor>TextureProcessor</Processor>
+ <Options>None</Options>
+ <Output>C:\grue\demon_door\DemonDoor\DemonDoor\bin\x86\Debug\Content\art\civilian_06.xnb</Output>
+ <Time>2012-04-01T14:45:03.87-07:00</Time>
+ </Item>
+ <Item>
+ <Source>art\civilian_07.png</Source>
+ <Name>art\civilian_07</Name>
+ <Importer>TextureImporter</Importer>
+ <Processor>TextureProcessor</Processor>
+ <Options>None</Options>
+ <Output>C:\grue\demon_door\DemonDoor\DemonDoor\bin\x86\Debug\Content\art\civilian_07.xnb</Output>
+ <Time>2012-04-01T14:45:40.096-07:00</Time>
+ </Item>
<BuildSuccessful>true</BuildSuccessful>
<Settings>
<TargetPlatform>Windows</TargetPlatform>
View
BIN  DemonDoor/DemonDoorContent/sound/door_fast.wav
Binary file not shown
View
BIN  DemonDoor/DemonDoorContent/sound/door_med.wav
Binary file not shown
View
BIN  DemonDoor/DemonDoorContent/sound/door_slow.wav
Binary file not shown
View
BIN  DemonDoor/DemonDoorContent/sound/door_stop.wav
Binary file not shown
Please sign in to comment.
Something went wrong with that request. Please try again.