using Microsoft.Xna.Framework;
using System;
using System.Collections.Generic;
using V3.AI;
using V3.Objects;
namespace V3.Data
{
///
/// Stores the current state of the game (the data that must be stored in
/// a save game). All members should be public and serializable.
///
[Serializable]
public sealed class GameState
{
public List mCreatures = new List();
public List mFog = new List();
public Vector2 mCameraPosition;
public AiState mAiState = AiState.Idle;
}
public enum CreatureType
{
FemalePeasant,
King,
KingsGuard,
Knight,
MalePeasant,
Meatball,
Necromancer,
Prince,
Skeleton,
SkeletonHorse,
Zombie
}
public sealed class CreatureData
{
public CreatureType Type { get; set; }
public int Id { get; set; }
public int Life { get; set; }
public int MaxLife { get; set; }
public int Attack { get; set; }
public TimeSpan Recovery { get; set; }
public bool IsUpgraded { get; set; }
public float PositionX { get; set; }
public float PositionY { get; set; }
public MovementDirection MovementDirection { get; set; }
public MovementState MovementState { get; set; }
public MovementData MovementData { get; set; }
public int IsAttackingId { get; set; }
public bool Mounted { get; set; }
public int SkeletonId { get; set; }
// IsAttackingBuilding
}
public sealed class MovementData
{
public List Path { get; set; }
public int Step { get; set; }
public Vector2 LastMovement { get; set; }
public bool IsMoving { get; set; }
}
}