/*
 *  Arcanum Editor - ROM area editor
 *  Copyright (C) 1999  Lucas Wall <kthulhu@usa.net>
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 *
 *  If you make changes to the source and want to make the public you can
 *  mail the diferences to me <kthulhu@usa.net> and I'll add them to the
 *  main distribution. Of course your name will be added to the program with
 *  information about the changes you made.
 *
 *
 *  Packed on Thu Aug 19 03:01:59 1999
 *
 */


/*
 * File: MobData.h
 *
 * Changes:
 *
 * 19/08/99 Lucas Wall <kthulhu@usa.net>
 *          First source release. Its quite messy and has no
 *          comments. I never planed to release the source code... :-)
 *
 */


// MobData.h: interface for the CMobData class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_MOBDATA_H__F73DD363_073D_11D3_803D_00002168229C__INCLUDED_)
#define AFX_MOBDATA_H__F73DD363_073D_11D3_803D_00002168229C__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

#include "ShopData.h"

class CSkillData  
{
public:
	int m_percent;
	CString m_skill;

	CSkillData();
	virtual ~CSkillData();

	const CSkillData& operator= ( const CSkillData& skill );
};

class CMobProg  
{
public:
	CString m_type;
	int m_vnum;
	CString m_trigphrase;

	CMobProg();
	virtual ~CMobProg();

	const CMobProg& operator= ( const CMobProg& mobprog );
};

class CSkillPrac
{
public:
	CString m_skill;
	int m_gold, m_mult, m_maxlevel, m_teach;

	CSkillPrac();
	virtual ~CSkillPrac();

	const CSkillPrac& operator= ( const CSkillPrac& skillp );
};

class CMobData  
{
public:
	int m_vnum;
	CString m_name, m_short_descr, m_long_descr, m_description;
	CString m_race;
	int m_act_flags, m_affect_flags;
	int m_alignment, m_group, m_level, m_hitroll;
	int m_hit_dice_number, m_hit_dice_type, m_hit_dice_bonus;
	int m_mana_dice_number, m_mana_dice_type, m_mana_dice_bonus;
	int m_damage_dice_number, m_damage_dice_type, m_damage_dice_bonus;
	CString m_dam_type;
	int m_ac_pierce, m_ac_bash, m_ac_slash, m_ac_exotic;
	int m_off_flags, m_imm_flags, m_res_flags, m_vuln_flags;
	CString m_start_pos, m_default_pos, m_sex;
	int m_wealth, m_form, m_parts;
	CString m_size, m_material;
	CString m_clan;
	int m_rank;
	CArray< CString, CString& > m_mercmsg;
	CArray< CSkillData*, CSkillData* > m_skills;
	CArray< CMobProg *, CMobProg * > m_mobprog;
	CString m_specfun;
	CShopData *m_shopdata;
	CString m_class;
	CArray< CSkillPrac *, CSkillPrac *> m_trskill;

	CMobData();
	virtual ~CMobData();

};

extern void AFXAPI DestructElements <CSkillData*> ( CSkillData** pElements, int nCount );
extern void AFXAPI DestructElements <CMobProg*> ( CMobProg** pElements, int nCount );
extern void AFXAPI DestructElements <CMobData*> ( CMobData** pElements, int nCount );
extern void AFXAPI DestructElements <CSkillPrac*> ( CSkillPrac** pElements, int nCount );

#endif // !defined(AFX_MOBDATA_H__F73DD363_073D_11D3_803D_00002168229C__INCLUDED_)