Panic works. Variable brightness. Brighter lights. Updated tileset.

This commit is contained in:
2012-10-23 16:40:19 +02:00
parent 5007e0b50e
commit 723215294b
13 changed files with 93 additions and 25 deletions
@@ -23,9 +23,9 @@ namespace DepthsBelow.Component
public Flashlight(Entity parent)
: base(parent)
{
Texture = GameServices.GetService<ContentManager>().Load<Texture2D>("images/lights/spot");
Texture = GameServices.GetService<ContentManager>().Load<Texture2D>("images/lights/spot_wide");
Color = Color.White;
Origin = new Vector2(50, 60);
Origin = new Vector2(50, Texture.Height / 2f);
}
public override void Update(GameTime gameTime)
+3 -1
View File
@@ -24,7 +24,9 @@ namespace DepthsBelow.Component
if (HP == 0)
HP = value;
}
}
}
public int MaxPanic = 100;
protected int hp = 0;
protected int defence = 0;
+5 -3
View File
@@ -44,7 +44,9 @@ namespace DepthsBelow
public static Map Map;
public SmallEnemy TestMonster;
public SmallEnemy TestMonster;
public int Brightness = 30;
public Core()
{
@@ -167,7 +169,7 @@ namespace DepthsBelow
// Draw to the lighting render target
GraphicsDevice.SetRenderTarget(lightRenderTarget);
GraphicsDevice.Clear(new Color(10, 10, 10));
GraphicsDevice.Clear(new Color(Brightness, Brightness, Brightness));
spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.Additive, SamplerState.PointClamp, null, null, null,
Camera.Transform);
@@ -203,7 +205,7 @@ namespace DepthsBelow
{
var lightData = new Color[1];
lightRenderTarget.GetData<Color>(0, sourceRect, lightData, 0, 1);
if (lightData[0] != new Color(10, 10, 10))
if (lightData[0] != new Color(Brightness, Brightness, Brightness))
spriteRenderer.Draw(spriteBatch);
}
}
+24 -4
View File
@@ -12,6 +12,20 @@ namespace DepthsBelow
{
public List<Entity> Entities;
public float Panic;
public float MaxPanic
{
get
{
float maxPanic = 0;
foreach (var entity in Entities)
{
var stats = entity.GetComponent<Component.Stat>();
if (stats != null)
maxPanic += stats.MaxPanic;
}
return maxPanic;
}
}
}
private List<Entity> entities;
@@ -37,21 +51,27 @@ namespace DepthsBelow
foreach (var newGroup in newGroups)
{
foreach (var entity in newGroup.Entities)
for (int index = 0; index < newGroup.Entities.Count; index++)
{
var entity = newGroup.Entities[index];
Group oldGroup = null;
// Find the group the entity belonged to before
foreach (var group in Groups)
{
if (group.Entities.Contains(entity))
if (@group.Entities.Contains(entity))
{
oldGroup = group;
oldGroup = @group;
break;
}
}
if (oldGroup != null)
newGroup.Panic += oldGroup.Panic / oldGroup.Entities.Count;
{
newGroup.Panic += (oldGroup.Panic / oldGroup.MaxPanic) * (float)entity.GetComponent<Component.Stat>().MaxPanic;
oldGroup.Panic -= (oldGroup.Panic / oldGroup.MaxPanic) * (float)entity.GetComponent<Component.Stat>().MaxPanic;
oldGroup.Entities.Remove(entity);
}
else
newGroup.Panic = 10;
}
+4
View File
@@ -103,7 +103,11 @@ namespace DepthsBelow
public static void Draw(SpriteBatch spriteBatch)
{
foreach (var frame in Frames.OrderBy(f => f, new FrameSort()))
{
frame.Draw(spriteBatch);
}
}
/// <summary>
+25 -4
View File
@@ -7,6 +7,7 @@ using Microsoft.Xna.Framework;
using System.Diagnostics;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Content;
namespace DepthsBelow
{
@@ -140,9 +141,12 @@ namespace DepthsBelow
}
};
var leftEdge = new Frame(UIParent);
leftEdge.Width = 20;
leftEdge.Height = GameServices.GetService<GraphicsDevice>().Viewport.Height;
var button = new GUI.Button(UIParent);
button.SetTexture("images/Enter");
button.X = 100;
button.Y = 100;
button.Width = 55;
button.Height = 40;
// Test GUI frames
/*var frame = new GUI.Frame()
@@ -228,6 +232,13 @@ namespace DepthsBelow
frame.Width = 164;
frame.Height = 19;
frame.OnClick += delegate(Frame frame1, GUIManager.MouseEventArgs args)
{
DynamicGroupManager.Group group = (DynamicGroupManager.Group)frame1["group"];
if (group != null)
group.Panic += 5;
};
var panicBarBg = new GUI.Frame(frame);
panicBarBg.SetTexture("images/GUI/health_background");
panicBarBg.Width = 136;
@@ -245,6 +256,13 @@ namespace DepthsBelow
panicBar.Y = 1;
frame["panicBar"] = panicBar;
var text = new GUI.Text(frame);
text.SetFont("fonts/UnitName");
text.Value = "0%";
text.X = 4;
text.Y = 1;
frame["text"] = text;
return frame;
}
@@ -374,9 +392,12 @@ namespace DepthsBelow
var group = groups[index];
var pFrame = PanicFrames[index];
pFrame["group"] = group;
var pFrameBarBg = (GUI.Frame)pFrame["panicBarBg"];
var pFrameBar = (GUI.Frame)pFrame["panicBar"];
pFrameBar.Width = (int)(pFrameBarBg.Width * (group.Panic / 100f));
var pFrameText = (GUI.Text)pFrame["text"];
pFrameBar.Width = (int)(pFrameBarBg.Width * (group.Panic / group.MaxPanic));
pFrameText.Value = group.Panic.ToString() + " (" + (group.Panic / group.MaxPanic * 100f).ToString() + "%)";
pFrame.Visible = true;
if (lastFrame != null)
+5 -5
View File
@@ -105,11 +105,11 @@ namespace DepthsBelow
{
KeyboardState ks = Keyboard.GetState();
// Lua reload scripts
if (ks.IsKeyUp(Keys.R) && lastKeyboardState.IsKeyDown(Keys.R))
{
core.Lua.Reload();
}
// Brightness
if (ks.IsKeyUp(Keys.Up) && lastKeyboardState.IsKeyDown(Keys.Up))
core.Brightness = (int)MathHelper.Clamp(core.Brightness + 5, 0, 254);
if (ks.IsKeyUp(Keys.Down) && lastKeyboardState.IsKeyDown(Keys.Down))
core.Brightness = (int)MathHelper.Clamp(core.Brightness - 5, 0, 254);
// Debug test: grouping
if (ks.IsKeyUp(Keys.K) && lastKeyboardState.IsKeyDown(Keys.K))
+6 -2
View File
@@ -65,12 +65,16 @@ namespace DepthsBelow
var pfc = new PathFinder(this);
AddComponent(pfc);
var flashlight = new Flashlight(this);
var flashlight = new Flashlight(this)
{
Intensity = 0.8f
};
AddComponent(flashlight);
var stat = new Component.Stat(this)
{
MaxHP = 100,
MaxPanic = 100,
//Life = 10,
Defence = 10,
Strength = 10,
@@ -92,7 +96,7 @@ namespace DepthsBelow
public static void LoadContent()
{
Texture = GameServices.GetService<ContentManager>().Load<Texture2D>("images/soldier3");
Texture = GameServices.GetService<ContentManager>().Load<Texture2D>("images/soldier5");
}
public override void Update(GameTime gameTime)
@@ -210,6 +210,20 @@
<Processor>TextureProcessor</Processor>
</Compile>
</ItemGroup>
<ItemGroup>
<Compile Include="images\soldier5.png">
<Name>soldier5</Name>
<Importer>TextureImporter</Importer>
<Processor>TextureProcessor</Processor>
</Compile>
</ItemGroup>
<ItemGroup>
<Compile Include="images\lights\spot_wide.png">
<Name>spot_wide</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.
Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

@@ -111,11 +111,12 @@
</data>
</layer>
<objectgroup name="Object Layer 1" width="100" height="100">
<object name="Start1" type="SquadStart" gid="2" x="384" y="352"/>
<object name="Start1" type="SquadStart" gid="2" x="416" y="352"/>
<object name="Start1" type="SquadStart" gid="2" x="384" y="384"/>
<object name="Start1" type="SquadStart" gid="2" x="416" y="384"/>
<object name="Start1" type="SquadStart" gid="2" x="480" y="320"/>
<object name="Start1" type="SquadStart" gid="2" x="544" y="320"/>
<object name="Start1" type="SquadStart" gid="2" x="480" y="384"/>
<object name="Start1" type="SquadStart" gid="2" x="544" y="384"/>
<object name="Monster1" type="MonsterSpawn" x="544" y="480"/>
<object name="Start1" type="SquadStart" gid="2" x="608" y="352"/>
</objectgroup>
<layer name="Collision" width="100" height="100">
<data encoding="csv">
Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 40 KiB