pkmn-classic-framework/library/Structures/PokemonPartyBase.cs
2015-03-31 00:48:37 -04:00

63 lines
2.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using PkmnFoundations.Pokedex;
using PkmnFoundations.Support;
namespace PkmnFoundations.Structures
{
public abstract class PokemonPartyBase : PokemonBase
{
public PokemonPartyBase(Pokedex.Pokedex pokedex)
: base(pokedex)
{
Initialize();
}
private void Initialize()
{
}
// todo: link experience with level
public int Experience { get; set; }
public Markings Markings { get; set; }
public ConditionValues ContestStats { get; set; }
public bool IsEgg { get; set; }
public bool HasNickname { get; set; } // this field decides whether or not its name gets reverted when it evolves.
public bool FatefulEncounter { get; set; } // aka. obedience flag. A few pokemon, eg. Mew, are disobedient unless this is set.
public Versions Version { get; set; }
// todo: create database-driven TrainerMemo class
// Should expose route, region, encounter type, level, date
//public abstract TrainerMemo TrainerMemo { get; }
public abstract String TrainerName { get; set; }
public abstract TrainerGenders TrainerGender { get; set; }
// todo: Add pokerus status (None, Infected, Cured) and pokerus days remaining
//public abstract PokerusStatus PokerusStatus { get; set; }
//public abstract int PokerusDaysLeft { get; set; }
public abstract Item Pokeball { get; set; }
// todo: implement ribbons store (see Pokemon4.Load comment)
//public HashSet<Ribbon> Ribbons { get; }
public abstract IntStatValues Stats { get; }
public abstract byte PokerusDaysLeft { get; set; }
public abstract byte PokerusStrain { get; set; }
public Pokerus Pokerus
{
get
{
if (PokerusDaysLeft > 0) return Pokerus.Infected;
if (PokerusStrain > 0) return Pokerus.Cured;
return Pokerus.None;
}
}
}
}