using System.Text.Json.Serialization; using System.Collections.Generic; namespace Config; public static partial class ExcelConfig { public partial class EnemyBase { /// <summary> /// 表Id /// </summary> [JsonInclude] public string Id; /// <summary> /// 绑定的ActivityBase表数据 /// </summary> public ActivityBase Activity; /// <summary> /// 备注 /// </summary> [JsonInclude] public string Remark; /// <summary> /// 血量 /// </summary> [JsonInclude] public int Hp; /// <summary> /// 移动速度 /// </summary> [JsonInclude] public float MoveSpeed; /// <summary> /// 移动加速度 /// </summary> [JsonInclude] public float Acceleration; /// <summary> /// 移动摩擦力, 仅用于人物基础移动 /// </summary> [JsonInclude] public float Friction; /// <summary> /// 单次攻击间隔时间, 秒 <br/> /// 注意, 敌人攻击后计算间隔时间会使用当前字段值与武器上的TriggerInterval叠加 /// </summary> [JsonInclude] public float AttackInterval; /// <summary> /// 是否可以拾起武器 /// </summary> [JsonInclude] public bool CanPickUpWeapon; /// <summary> /// 视野半径, 单位像素, 发现玩家后改视野范围可以穿墙 /// </summary> [JsonInclude] public float ViewRange; /// <summary> /// 发现玩家后跟随玩家的视野半径 /// </summary> [JsonInclude] public float TailAfterViewRange; /// <summary> /// 视野角度范围, 角度制 /// </summary> [JsonInclude] public float ViewAngleRange; /// <summary> /// 掉落金币数量区间, 如果为负数或者0则不会掉落金币 <br/> /// 格式为[value]或者[min,max] /// </summary> [JsonInclude] public int[] Gold; /// <summary> /// 敌人死亡爆浆血液颜色, 填十六进制字符串(小写), <br/> /// 例如: ff0000 <br/> /// 不填默认白色 /// </summary> [JsonInclude] public string BloodColor; /// <summary> /// 死亡时的尸体碎片 /// </summary> public ActivityBase BodyFragment; /// <summary> /// 返回浅拷贝出的新对象 /// </summary> public EnemyBase Clone() { var inst = new EnemyBase(); inst.Id = Id; inst.Activity = Activity; inst.Remark = Remark; inst.Hp = Hp; inst.MoveSpeed = MoveSpeed; inst.Acceleration = Acceleration; inst.Friction = Friction; inst.AttackInterval = AttackInterval; inst.CanPickUpWeapon = CanPickUpWeapon; inst.ViewRange = ViewRange; inst.TailAfterViewRange = TailAfterViewRange; inst.ViewAngleRange = ViewAngleRange; inst.Gold = Gold; inst.BloodColor = BloodColor; inst.BodyFragment = BodyFragment; return inst; } } private class Ref_EnemyBase : EnemyBase { [JsonInclude] public string __Activity; [JsonInclude] public string __BodyFragment; } }