📄 character.cs
字号:
using System;
namespace CO_Full_Server
{
/// <summary>
/// Summary description for Character.
/// </summary>
public enum ClassType : int
{
InternTrojan = 0x0a,
Trojan,
VeteranTrojan,
TigerTrojan,
DragonTrojan,
TrojanMaster,
InternArcher = 0x28,
Archer,
EagleArcher,
TigerArcher,
ArcherMaster,
InternWarrior = 0x14,
Warrior,
BrassWarrior,
SilverWarrior,
GoldWarrior,
WarriorMaster,
InternTaoist = 0x64,
Taoist,
WaterTaoist = 0x84,
WaterWizard,
WaterMaster,
WaterSaint,
FireTaoist = 0x8e,
FireWizard,
FireMaster,
FireSaint
}
public enum InventoryLoc : int
{
Character = 0,
TwinCity,
PhoenixCastle,
ApeCity,
DesertCity,
BirdIsland,
StoneCity,
Market
}
public struct Location
{
public int X;
public int Y;
public Location(int x, int y)
{
X = x;
Y = y;
}
}
//public delegate void DefenseChanged(object sender, EventArgs e);
public class Character : object, IEntity
{
private string m_Name = "";
private uint m_CharID = 0;
private string m_Guild;
private int m_GuildPosition;
private ClassType m_Class;
private int m_Level;
private int m_CurrentExp;
private int m_Strength;
private int m_Vitality;
private int m_Dexterity;
private int m_Mana;
private int m_MaxHP;
private int m_MiscHPBonus;
private int m_CurrentHP;
private int m_MaxMP;
private int m_CurrentMP;
private int m_PKPoints;
private int m_StatPoints;
private long m_Money;
private int m_Defense;
private int m_MDefense;
private World.Maps m_Map;
private int m_MinAttack;
private int m_MaxAttack;
//TODO: Skills must be specified as per the Visio diagram
private Equipment m_Equipment;
private Inventory m_Inventory;
private Inventory m_TCWarehouse;
private Inventory m_PCWarehouse;
private Inventory m_ACWarehouse;
private Inventory m_DCWarehouse;
private Inventory m_BIWarehouse;
private Inventory m_SCWarehouse;
private Inventory m_MarketWarehouse;
private Location m_CurrentLoc;
private int m_Model;
private string m_Spouse = "None";
//public event EventHandler DefenseChanged;
//public event EventHandler MaxHPChanged;
public Character()
{
m_Guild = "";
m_GuildPosition = -1;
m_Class = (ClassType)(-1);
m_Name = "";
m_Level = 0;
m_CurrentExp = 0;
m_Strength = 0;
m_Vitality = 0;
m_Dexterity = 0;
m_Mana = 0;
m_MaxHP = 0;
m_CurrentHP = 0;
m_MaxMP = 0;
m_CurrentMP = 0;
m_Money = 0;
m_Defense = 0;
m_MDefense = 0;
m_MaxHP = 0;
m_MiscHPBonus = 0;
CalcMaxHP();
CalcAttack();
m_Equipment = null;
m_Inventory = null;
m_TCWarehouse = null;
m_PCWarehouse = null;
m_ACWarehouse = null;
m_DCWarehouse = null;
m_BIWarehouse = null;
m_SCWarehouse = null;
m_MarketWarehouse = null;
m_CurrentLoc.X = 0;
m_CurrentLoc.Y = 0;
}
#region Accessors
public string Name
{
get
{
return m_Name;
}
set
{
m_Name = value;
}
}
public int Defense
{
get
{
return m_Defense;
}
set
{
m_Defense = value;
}
}
public int MDefense
{
get
{
return m_MDefense;
}
set
{
m_MDefense = value;
}
}
public Location CurrentLoc
{
get
{
return m_CurrentLoc;
}
set
{
m_CurrentLoc.X = ((Location)(value)).X;
m_CurrentLoc.Y = ((Location)(value)).Y;
}
}
public World.Maps Map
{
set
{
m_Map = value;
}
get
{
return m_Map;
}
}
public string Spouse
{
set
{
m_Spouse = value;
}
get
{
return m_Spouse;
}
}
public int StatPoints
{
set
{
m_StatPoints = value;
}
get
{
return m_StatPoints;
}
}
public int Level
{
set
{
m_Level = value;
}
get
{
return m_Level;
}
}
public uint CharID
{
set
{
m_CharID = value;
}
get
{
return m_CharID;
}
}
public int Model
{
set
{
m_Model = value;
}
get
{
return m_Model;
}
}
public int MaxAttack
{
get
{
return m_MaxAttack;
}
}
public int MinAttack
{
get
{
return m_MinAttack;
}
}
public long Money
{
set
{
m_Money = value;
}
get
{
return m_Money;
}
}
public int Exp
{
set
{
m_CurrentExp = value;
}
get
{
return m_CurrentExp;
}
}
public int Strength
{
set
{
m_Strength = value;
CalcAttack();
}
get
{
return m_Strength;
}
}
public int Vitality
{
set
{
m_Vitality = value;
CalcMaxHP();
}
get
{
return m_Vitality;
}
}
public int Dexterity
{
set
{
m_Dexterity = value;
CalcMaxHP();
}
get
{
return m_Dexterity;
}
}
public int Mana
{
set
{
m_Mana = value;
}
get
{
return m_Mana;
}
}
public int HP
{
set
{
m_CurrentHP = value;
}
get
{
return m_CurrentHP;
}
}
public int MP
{
set
{
m_CurrentMP = value;
}
get
{
return m_CurrentMP;
}
}
public int PKPoints
{
set
{
m_PKPoints = value;
}
get
{
return m_PKPoints;
}
}
public int MaxHP
{
get
{
return m_MaxHP;
}
set
{
m_MaxHP = value;
}
}
public ClassType Class
{
set
{
m_Class = value;
}
get
{
return m_Class;
}
}
#endregion
private void CalcMaxHP()
{
m_MaxHP = 24 * m_Vitality + 3 * m_Mana + m_Dexterity * 3 + m_Strength * 3;
switch (m_Class)
{
case ClassType.Trojan:
m_MaxHP = Convert.ToInt32(m_MaxHP * 1.05f);
break;
case ClassType.VeteranTrojan:
m_MaxHP = Convert.ToInt32(m_MaxHP * 1.08f);
break;
case ClassType.TigerTrojan:
m_MaxHP = Convert.ToInt32(m_MaxHP * 1.10f);
break;
case ClassType.DragonTrojan:
m_MaxHP = Convert.ToInt32(m_MaxHP * 1.12f);
break;
case ClassType.TrojanMaster:
m_MaxHP = Convert.ToInt32(m_MaxHP * 1.15f);
break;
}
m_MaxHP += m_MiscHPBonus;
}
private void CalcAttack()
{
int BaseAttack = 0;
BaseAttack = m_Strength;
m_MaxAttack = BaseAttack;
m_MinAttack = BaseAttack;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -