Skip to content

Character

角色实体,位于 Milimoe.FunGame.Core.Entity

  • 编码定义:继承 Character 类,在构造函数中设置属性
  • 工厂创建:通过 Factory.GetCharacter()Factory.OpenFactory.GetInstance<Character>(id, name, args)

编码定义(推荐)

csharp
public class MyCharacter : Character
{
    public MyCharacter() : base()
    {
        Id = 1;
        Name = "Oshima";
        FirstName = "Shiya";
        NickName = "大島シヤ";
        PrimaryAttribute = PrimaryAttribute.STR;
        FirstRoleType = RoleType.Core;

        InitialHP = 85;
        InitialMP = 10;
        InitialATK = 25;
        InitialDEF = 8;
        InitialSPD = 300;
        InitialHR = 4;
        InitialMR = 2;

        InitialSTR = 30;  STRGrowth = 3;
        InitialAGI = 0;   AGIGrowth = 0;
        InitialINT = 0;   INTGrowth = 0;
    }
}

工厂创建

csharp
Character c = Factory.GetCharacter();
c.Name = "临时角色";
c.InitialHP = 60;
c.InitialATK = 15;

// 或通过注册的工厂
Character c2 = Factory.OpenFactory.GetInstance<Character>(1, "", []);

属性体系(三层)

层级示例说明
初始值InitialHP, InitialATK, InitialDEF, InitialSTR你在构造函数中设置
基础值BaseHP, BaseATK, BaseDEF框架根据初始值 + 等级 + 核心属性自动计算(只读)
最终值HP, MaxHP, ATK, DEF, SPDBase + 各种 Ex 加成(只读)

核心属性

属性设置方式说明
Id构造函数唯一标识符
Name / FirstName / NickName构造函数角色姓名
PrimaryAttribute构造函数核心属性(STR/AGI/INT)
FirstRoleType构造函数角色定位
MagicType构造函数魔法属性
Level可读写当前等级
HP / MP / EP可读写当前生命/魔法/能量

初始值([InitRequired]

属性说明
InitialHP初始生命值
InitialMP初始魔法值
InitialATK初始攻击力
InitialDEF初始物理护甲
InitialSPD初始行动速度
InitialHR初始生命回复
InitialMR初始魔法回复
InitialSTR初始力量
InitialAGI初始敏捷
InitialINT初始智力

属性成长

属性说明
STRGrowth每级力量成长
AGIGrowth每级敏捷成长
INTGrowth每级智力成长

额外属性(技能/物品修改)

属性说明
ExHP / ExHP2 / ExHPPercentage额外生命值
ExATK2 / ExATKPercentage额外攻击力
ExMP / ExMP2额外魔法值
ExDEF2额外物理护甲
ExSTR / ExAGI / ExINT额外核心属性
ExSPD额外行动速度
ExEvadeRate额外闪避率
PhysicalPenetration物理穿透

装备与技能

属性类型说明
EquipSlotEquipSlot装备栏
SkillsList<Skill>技能列表
EffectsList<Effect>状态栏特效
NormalAttackNormalAttack普通攻击

关系属性

属性类型说明
UserUser所属玩家
TeamTeam所属队伍
IsAlivebool是否存活
IsDeadbool是否死亡

复制

csharp
Character copy = source.Copy();  // 独立副本

基于 LGPL-3.0 许可证发布