]> Dogcows Code - chaz/carfire/blob - CarFire/CarFire/CarFire/Melee.cs
38be3038a5ae2e231affcf3ac3b9a29890173a65
[chaz/carfire] / CarFire / CarFire / CarFire / Melee.cs
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using Microsoft.Xna.Framework;
6 using Microsoft.Xna.Framework.Content;
7 using Microsoft.Xna.Framework.Graphics;
8 using Microsoft.Xna.Framework.Input;
9
10 namespace CarFire
11 {
12 public class Melee : Player
13 {
14 #region Member Variables
15 const int hitCoolDown = 18;
16 const int baseHealth = 200;
17 const int baseDamage = 30;
18 int coolDown;
19 Texture2D charModel;
20 Texture2D projectileModel;
21 int velocityX;
22 int velocityY;
23 #endregion
24
25 #region Public Methods
26 public Melee(Game theGame, String Name, Point position, int playerIndex)
27 : base(theGame, Name, position, playerIndex, baseHealth, baseDamage)
28 {
29 coolDown = hitCoolDown;
30 }
31 #endregion
32
33 #region Overridden Methods From Player
34 public override void LoadContent(ContentManager contentManager)
35 {
36 charModel = contentManager.Load<Texture2D>("cs"); //change to charModel when designed
37 projectileModel = contentManager.Load<Texture2D>("projectile"); //change to a projectile model later
38
39 }
40 /// <summary>
41 /// This method will draw a character to the screen.
42 /// </summary>
43 /// <param name="spriteBatch"></param>
44 public override void Draw(SpriteBatch spriteBatch)
45 {
46 Rectangle position = Game.State.Map.GetRectangleFromCoordinates(Motion.Position);
47 spriteBatch.Draw(charModel, position, Color.White);
48 }
49
50 public override void Attack(List<Keys> keysPressed)
51 {
52 if (coolDown > 0)
53 coolDown--;
54 else if (coolDown == 0)
55 {
56 if (keysPressed.Contains<Keys>(Keys.Space))
57 {
58 int startX = Coordinates.X;
59 int startY = Coordinates.Y;
60 if (Motion.Direction == Direction.Down || Motion.Direction == Direction.LowerLeft || Motion.Direction == Direction.LowerRight)
61 {
62 startY = Coordinates.Y + 1;
63 }
64 else if (Motion.Direction == Direction.Up || Motion.Direction == Direction.UpperLeft || Motion.Direction == Direction.UpperRight)
65 {
66 startY = Coordinates.Y - 1;
67 }
68 if (Motion.Direction == Direction.Right || Motion.Direction == Direction.LowerRight || Motion.Direction == Direction.UpperRight)
69 {
70 startX = Coordinates.X + 1;
71 }
72 else if (Motion.Direction == Direction.Left || Motion.Direction == Direction.LowerLeft || Motion.Direction == Direction.UpperLeft)
73 {
74 startX = Coordinates.X - 1;
75 }
76 //Attack a monster
77 if (!Game.IsCellOpen(new Point(startX, startY)))
78 {
79 IEntity toKill = Game.GetEntityAtCoordinates(new Point(startX, startY));
80 //See if it is a monster
81 if (toKill is IMonster)
82 {
83 IMonster hitMonster = (IMonster)toKill;
84 hitMonster.causeDamageTo(this.Damage);
85 if (hitMonster.Health > 0)
86 {
87 this.Score += Game.State.HitMonsterScore;
88 Console.WriteLine(this.Score);
89 }
90 else
91 {
92 this.Score += Game.State.KillMonsterScore;
93 Console.WriteLine(this.Score);
94 //Remove dead monsters
95 Game.State.Entities.Remove(toKill);
96 }
97 }
98 }
99 }
100 }
101
102
103 }
104 public override void PlayAttackSound()
105 {
106
107 }
108 public override void PlayDieSound()
109 {
110
111 }
112 #endregion
113 }
114 }
This page took 0.036424 seconds and 4 git commands to generate.