185 lines
5.2 KiB
Plaintext
185 lines
5.2 KiB
Plaintext
|
message level_data
|
|||
|
{
|
|||
|
optional battle_data data = 4;
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
message battle_data
|
|||
|
{
|
|||
|
//角色列表(我方和敌方所有角色)
|
|||
|
repeated hero_info heros = 1;
|
|||
|
|
|||
|
//回合信息
|
|||
|
repeated round_info rounds = 2;
|
|||
|
|
|||
|
//战斗数据
|
|||
|
optional _info data = 3;
|
|||
|
|
|||
|
//战斗胜利或者失败
|
|||
|
optional bool result = 4;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//角色信息
|
|||
|
message hero_info
|
|||
|
{
|
|||
|
optional int32 uid=1;//角色id
|
|||
|
optional int32 position=2;//角色位置
|
|||
|
optional int32 level=3//角色等级
|
|||
|
}
|
|||
|
|
|||
|
//战斗顶部 回合信息
|
|||
|
message round_info
|
|||
|
{
|
|||
|
optional int32 tempId=1;
|
|||
|
opti onal int32 frequency=2;//角色出手次数
|
|||
|
optional int32 position=3//角色位置
|
|||
|
}
|
|||
|
|
|||
|
//战斗信息
|
|||
|
message battle_info
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 战斗结果数据
|
|||
|
/// </summary>
|
|||
|
message BattleResultData
|
|||
|
{
|
|||
|
public BattleResultType ResultType { get; set; } // 结果类型
|
|||
|
public Dictionary<long, float> DamageDealt { get; set; } // 造成的伤害
|
|||
|
public Dictionary<long, float> DamageTaken { get; set; } // 受到的伤害
|
|||
|
public Dictionary<long, float> HealingDone { get; set; } // 治疗量
|
|||
|
public List<long> DeadUnits { get; set; } // 死亡单位列表
|
|||
|
public Dictionary<int, int> ItemRewards { get; set; } // 道具奖励
|
|||
|
public int ExpReward { get; set; } // 经验奖励
|
|||
|
public int GoldReward { get; set; } // 金币奖励
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 战斗结果类型
|
|||
|
/// </summary>
|
|||
|
message BattleResultType
|
|||
|
{
|
|||
|
None = 0,
|
|||
|
Victory = 1, // 胜利
|
|||
|
Defeat = 2, // 失败
|
|||
|
Escape = 3, // 逃跑
|
|||
|
Draw = 4, // 平局
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 战斗单位类型
|
|||
|
/// </summary>
|
|||
|
message BattleUnitType
|
|||
|
{
|
|||
|
None = 0,
|
|||
|
Player = 1, // 玩家
|
|||
|
Monster = 2, // 怪物
|
|||
|
NPC = 3, // NPC
|
|||
|
Pet = 4, // 宠物
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 战斗单位状态
|
|||
|
/// </summary>
|
|||
|
message BattleUnitState
|
|||
|
{
|
|||
|
None = 0,
|
|||
|
Alive = 1, // 存活
|
|||
|
Dead = 2, // 死亡
|
|||
|
Stunned = 3, // 眩晕
|
|||
|
Frozen = 4, // 冰冻
|
|||
|
Invincible = 5 // 无敌
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 战斗阶段
|
|||
|
/// </summary>
|
|||
|
message BattlePhase
|
|||
|
{
|
|||
|
None = 0,
|
|||
|
Prepare = 1, // 准备阶段
|
|||
|
PlayerTurn = 2,// 玩家回合
|
|||
|
EnemyTurn = 3, // 敌人回合
|
|||
|
End = 4 // 结束阶段
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 战斗单位数据
|
|||
|
/// </summary>
|
|||
|
message BattleUnitData
|
|||
|
{
|
|||
|
public long UnitId { get; set; } // 单位ID
|
|||
|
public BattleUnitType UnitType { get; set; } // 单位类型
|
|||
|
public string Name { get; set; } // 单位名称
|
|||
|
public int Level { get; set; } // 等级
|
|||
|
public float MaxHp { get; set; } // 最大生命值
|
|||
|
public float CurrentHp { get; set; } // 当前生命值
|
|||
|
public float Attack { get; set; } // 攻击力
|
|||
|
public float Defense { get; set; } // 防御力
|
|||
|
public float Speed { get; set; } // 速度
|
|||
|
public BattleUnitState State { get; set; } // 当前状态
|
|||
|
public Vector3 Position { get; set; } // 位置
|
|||
|
public Vector3 Rotation { get; set; } // 旋转
|
|||
|
public bool HasActed { get; set; } // 本回合是否已行动
|
|||
|
public int TurnOrder { get; set; } // 行动顺序
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 技能效果类型
|
|||
|
/// </summary>
|
|||
|
message SkillEffectType
|
|||
|
{
|
|||
|
None = 0,
|
|||
|
Damage = 1, // 伤害
|
|||
|
Heal = 2, // 治疗
|
|||
|
Buff = 3, // 增益
|
|||
|
Debuff = 4, // 减益
|
|||
|
Control = 5, // 控制
|
|||
|
Summon = 6, // 召唤
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 技能数据
|
|||
|
/// </summary>
|
|||
|
message SkillData
|
|||
|
{
|
|||
|
public int SkillId { get; set; } // 技能ID
|
|||
|
public string Name { get; set; } // 技能名称
|
|||
|
public float Cooldown { get; set; } // 冷却时间
|
|||
|
public float CastTime { get; set; } // 施法时间
|
|||
|
public float Range { get; set; } // 施法范围
|
|||
|
public SkillEffectType EffectType { get; set; } // 效果类型
|
|||
|
public float Value { get; set; } // 效果值
|
|||
|
public float Duration { get; set; } // 持续时间
|
|||
|
public int ActionCost { get; set; } // 行动点消耗
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 战斗动作类型
|
|||
|
/// </summary>
|
|||
|
message BattleActionType
|
|||
|
{
|
|||
|
None = 0,
|
|||
|
Move = 1, // 移动
|
|||
|
Attack = 2, // 普通攻击
|
|||
|
Skill = 3, // 技能
|
|||
|
Item = 4, // 使用道具
|
|||
|
Escape = 5, // 逃跑
|
|||
|
EndTurn = 6, // 结束回合
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 战斗动作数据
|
|||
|
/// </summary>
|
|||
|
message BattleActionData
|
|||
|
{
|
|||
|
public long SourceUnitId { get; set; } // 发起者ID
|
|||
|
public long TargetUnitId { get; set; } // 目标ID
|
|||
|
public BattleActionType ActionType { get; set; } // 动作类型
|
|||
|
public int SkillId { get; set; } // 技能ID(如果是技能动作)
|
|||
|
public Vector3 TargetPosition { get; set; } // 目标位置
|
|||
|
}
|