pkmn-classic-framework/library/Structures/StatValues.cs
2014-12-27 03:17:39 -05:00

88 lines
2.6 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace PkmnFoundations.Structures
{
public struct StatValues
{
public StatValues(int hp, int attack, int defense, int speed, int special_attack, int special_defense) : this()
{
Hp = hp;
Attack = attack;
Defense = defense;
Speed = speed;
SpecialAttack = special_attack;
SpecialDefense = special_defense;
}
public int Hp { get; set; }
public int Attack { get; set; }
public int Defense { get; set; }
public int Speed { get; set; }
public int SpecialAttack { get; set; }
public int SpecialDefense { get; set; }
public int this[Stats stat]
{
get
{
switch (stat)
{
case Stats.Hp:
return Hp;
case Stats.Attack:
return Attack;
case Stats.Defense:
return Defense;
case Stats.Speed:
return Speed;
case Stats.SpecialAttack:
return SpecialAttack;
case Stats.SpecialDefense:
return SpecialDefense;
default:
throw new ArgumentException();
}
}
set
{
switch (stat)
{
case Stats.Hp:
Hp = value;
break;
case Stats.Attack:
Attack = value;
break;
case Stats.Defense:
Defense = value;
break;
case Stats.Speed:
Speed = value;
break;
case Stats.SpecialAttack:
SpecialAttack = value;
break;
case Stats.SpecialDefense:
SpecialDefense = value;
break;
default:
throw new ArgumentException();
}
}
}
public int[] ToArray()
{
return new int[] { Hp, Attack, Defense, Speed, SpecialAttack, SpecialDefense };
}
public byte[] ToByteArray()
{
return new byte[] { (byte)Hp, (byte)Attack, (byte)Defense, (byte)Speed, (byte)SpecialAttack, (byte)SpecialDefense };
}
}
}