using CommonAI.Zone;
using CommonAI.Zone.Helper;
using CommonLang.Property;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CommonAI.Data
{
//同步玩家信息类型
public abstract class UnitAttrMaskType : PlayerEvent
{
public const ulong MASK_ALL = 0xFFFFFFFFFFFFFFFF;
public const ulong MASK_MAX_HP = 1 << 0;
public const ulong MASK_MOVE_SPEED = 1 << 1;
public const ulong MASK_HP_REBORN = 1 << 2;
//同步Attribute
public const ulong MASK_HP_PER = 1 << 3;
public const ulong MASK_ATTACK = 1 << 4;
public const ulong MASK_ATTACK_PER = 1 << 5;
public const ulong MASK_DEF = 1 << 6;
public const ulong MASK_DEF_PER = 1 << 7;
public const ulong MASK_IGNORE_DEFENSE_PER = 1 << 8;
public const ulong MASK_CRIT_RATE = 1 << 9;
public const ulong MASK_CRIT_DAMAGE = 1 << 10;
public const ulong MASK_INCALLDAMAGE = 1 << 11;
public const ulong MASK_ALL_DAMAGE_REDUCE = 1 << 12;
public const ulong MASK_CTRLTIME_REDUCE = 1 << 13;
public const ulong MASK_SKILL_CD = 1 << 14;
public const ulong MASK_HEALEFFECT = 1 << 15;
public const ulong MASK_HEALEDEFFECT = 1 << 16;
public const ulong MASK_SKILLDAMAGE = 1 << 17;
public const ulong MASK_ATTACK_SPEED = 1 << 18;
public const ulong MASK_CONTROL_UP = 1 << 19;
public const ulong MASK_RES_CRIT_RATE = 1 << 20; //抗暴率
//public const ulong MASK_GODMAIN_DEFENSE = 1 << 21;
//元素攻击 & 防御
public const ulong MASK_GOLD_ATTACK = 1 << 22;
public const ulong MASK_GOLD_DEFENSE = 1 << 23;
public const ulong MASK_WOOD_ATTACK = 1 << 24;
public const ulong MASK_WOOD_DEFENSE = 1 << 25;
public const ulong MASK_WATER_ATTACK = 1 << 26;
public const ulong MASK_WATER_DEFENSE = 1 << 27;
public const ulong MASK_FIRE_ATTACK = 1 << 28;
public const ulong MASK_FIRE_DEFENSE = 1 << 29;
public const ulong MASK_SOIL_ATTACK = 1 << 30;
public const ulong MASK_SOIL_DEFENSE = 1L << 31;
public const ulong MASK_TOBOSS_CRIT_RATE = 1L << 32;
public const ulong MASK_TOBOSS_CRIT_DAMAGE = 1L << 33;
public const ulong MASK_GOLD_RESTRAINT = 1L << 34;
public const ulong MASK_WOOD_RESTRAINT = 1L << 35;
public const ulong MASK_WATER_RESTRAINT = 1L << 36;
public const ulong MASK_FIRE_RESTRAINT = 1L << 37;
public const ulong MASK_SOIL_RESTRAINT = 1L << 38;
public const ulong MASK_GOLD_RESIST = 1L << 39;
public const ulong MASK_WOOD_RESIST = 1L << 40;
public const ulong MASK_WATER_RESIST = 1L << 41;
public const ulong MASK_FIRE_RESIST = 1L << 42;
public const ulong MASK_SOIL_RESIST = 1L << 43;
public const ulong MASK_PVP_KILLVALUE = 1L << 44;
public const ulong MASK_YAOQI_LEVEL = 1L << 45;
public const ulong MASK_NORMAL_ATK_LEECH = 1L << 46;
public const ulong MASK_ACTIVE_ATK_LEECH = 1L << 47;
public const ulong MASK_ARTIFACTMAIN_PER = 1L << 48;
public const ulong MASK_FIELD_BOSS_DAMAGEADD = 1L << 49;
//玩家真实最大生命值(暂时仅角色面板显示)
public const ulong MASK_MAX_HP_EXT = 1L << 50;
public const ulong MASK_DUNGEON_MONETER_DAMAGEADD = 1L << 51;
//移动速度加成
public const ulong MASK_MOVE_SPEED_ADDITION = 1L << 52;
//命格克制
public const ulong MASK_MONSTER_RESTRAINT_1 = 1L << 53;
public const ulong MASK_MONSTER_RESTRAINT_2 = 1L << 54;
public const ulong MASK_MONSTER_RESTRAINT_3 = 1L << 55;
public const ulong MASK_MONSTER_RESTRAINT_4 = 1L << 56;
public const ulong MASK_MONSTER_RESTRAINT_5 = 1L << 57;
//// 猎妖属性
public const ulong MASK_MONSTER_ATK = 1L << 58;
public const ulong MASK_MONSTER_DEF = 1L << 59;
public const ulong MASK_MONSTER_ATK_PER = 1L << 60;
public const ulong MASK_MONSTER_DEF_PER = 1L << 61;
}
//技能释放状态
public enum SkillCanLauchType : byte
{
All, // 所有技能
OnlyBaseSkill, // 只能释放普攻
None, // 不能释放技能
}
//伤害类型
public enum DamageType : byte
{
Damage, //伤害.
Heal, //治愈.
None, //无伤.
Modify, //自定义.
}
//卡牌强化叠层类型
public enum CardLayerType : byte
{
None, // 默认值
Replace, // 所有强化只有一个,其他会被替换
Layers, // 所有强化只有一个,累计叠层
}
public enum BattleStatus : byte
{
None = 0,
ReadyBattle = 1,
PVE = 10,
PVP = 11,
}
//技能数据
public class SkillLevelData
{
public XmdsSkillType skillType;
public int SkillLevel;
public int TalentSkillLevel1;
public int TalentSkillLevel2;
public int TalentSkillLevel3;
//public int skillTime;
}
// 地图类型
public enum SceneType : byte
{
Normal = 1, //野外.
Dungeon = 2, //副本.
DanTiao = 3, //单挑王.
JJC = 4, //竞技场.
CrossServer = 5, //跨服.
MengZhan = 6, //盟战.
GuildDungeon = 7, //公会副本.
WorldBoss = 8, //世界BOSS.
HUANJING = 9, //剧情场景
FiveVFive = 10, //5v5
GoblinTower = 11, //镇妖塔
SourceDungeon = 12, //资源副本
HaoYueJing = 13, //皓月镜
GuildBoss = 14, //工会Boss
SecretDungeon = 15, //秘境夺宝
FightLevelUltra = 16, //极限副本
GuildFortPve = 17, //工会据点采集地图
GuildFortPvp = 18, //工会据点战斗地图
UnderGroundPlace = 19, //boss地宫
DIALY_RECHARGE_DUNGEON = 20, //每日充值副本
PickLotus = 21, //采莲
AbyssDungeon = 22, //深渊
CrossReadyArea = 23, //跨服备战区
ROBBERY = 24, // 渡劫
DEVIL = 25, // 成魔
GuildFun=26, //公会功能地图
WeekendStart = 27, //星瀚殿
ZhanYao_YaoYu = 28, //斩妖-妖域
FishBoss = 29,
RESOURCE_DUNGEON_MINERAL = 30, // 资源副本采矿图
BACKRESURRECT_AREA = 31,
NEW_HAND_SHI_LIAN_AREA = 32, // 新手血色试炼场景
WEEKEND_UnderGroundPlace_BOSS = 33, //周末封魔地图
//有时间限制,并且地图需要消耗指定道具
CONSUME_LIMITTIME_AREA = 34, //天之涯,海之角,蓬莱岛场景
DUJIE_DAZUO = 35,
//挂机地图
WIDE_HOOK = 36,
SHI_MEN_POS = 37,
MOUNTAINKING_PRISON = 38, //山大王监狱
//100+跨服场景
CROSS_SERVER_NEW = 100, // 新跨服野外场景
NCS_MutilCross = 101, // 新跨服-多无名镇
NCS_DoubleCross = 102, // 新跨服-双服无名镇
NCS_FengShen = 103, // 新跨服-封神战
NCS_FengShenResure=104, // 封神战-复活区
CROSS_BOSS = 105, // 跨服boss场景
CROSS_WILDAREA = 106, // 跨服野外场景,灵域
CROSS_DEVIL = 107, // 跨服野外场景,成魔
}
///
/// PK模式.决定玩家攻击判定.100以内保留,100+代表Server模式的特殊服务器id
///
public enum PKMode : byte
{
Peace = 0, //和平模式(该模式下不能攻击其他任何玩家,被攻击也不能还手).
Justice = 1,//善恶模式(只能攻击PK值>0的玩家).
force = 2, //阵营模式(只能攻击和自己不同阵营的玩家).
Guild = 3, //公会模式(只能攻击不是自己公会/家族的玩家).
Team = 4, //组队模式(只能攻击对外意外的玩家).
Server = 5, //本服模式(只能攻击其他服务器的玩家。这个模式只在连服生效).
All = 6 //全体模式(攻击自己及队友以外的玩家等价于队友模式).
}
public enum JSGCustomOpType : byte
{
UpdateAutoBattleFlag = 0, //更新自动战斗模式
}
public enum XmdsUnitPro : byte
{
[DescAttribute("None为默认值", "职业")]
None = 0, //木有.
[DescAttribute("战士", "职业")]
Sword = 1, //苍狼.
//Assassin = 2, //御剑.
[DescAttribute("法师", "职业")]
Magic = 3, //逸仙.
//Hunter = 4, //神箭.
[DescAttribute("治疗", "职业")]
Priest = 5, //灵狐.
[DescAttribute("上限标记", "职业")]
Max,
}
// 天命类型: 金木土水火
public enum UnitFateType : sbyte
{
Random=-1,
None = 0,
One = 1,
Two = 2,
Three = 3,
Four = 4,
Five = 5,
}
///
/// PK值,记录玩家PK行为.
///
public enum PKLevel : byte
{
White = 0,
Black = 1,
Yellow = 2,
Red = 3,
}
public class GlobalData
{
//默认攻速值
public static readonly int DEFAULT_ATTACK_SPEED = 10000;
//bot刷新频率
public static readonly short BOT_UPDATE_INTERVAL = 5000;
//ZoneUpdate慢刷新倍数
public static readonly short ZONE_UPDATE_SLOW = 10;
public static readonly Random gRandom = new Random();
//游戏中概率基础
public static readonly int RATE_BASE = 10000;
//定力系统相关常量
public static readonly int SHIELD_RECOVER_TIME = 10; // 回满需要次数
public static readonly int SHIELD_RECOVER_INTERVAL = 500; // 恢复间隔
public static readonly int SHIELD_BREAK_BUFF = 920000; // 破定状态buff
public static readonly int SHIELD_BREAK_HOLDTIME = 6000; // 破定时间
//测试配置
public static bool GAME_BS_TEST = false;
}
public class GSCreateAreaData
{
public int value1;
public int value2;
}
//释放法术个人数据
public class JSGCreateSpellData
{
public int mMaxSpellCount;
}
public enum SummonType : byte
{
none = 0,
guard = 1, // 自卫
guardMaster = 2, // 守卫主人
attack = 3, // 上来就干
MoveToMaster = 4, // 往上冲
AwaitMaster = 5, // 原地等待或者增益master
}
//神器元素类型
public enum ArtifactType : int
{
None = -1, //无效值
Gold, //金
Wood, //木
Soil, //土
Water, //水
Fire //火
}
//位置坐标变更类型
public enum XYModifyType : byte
{
[DescAttribute("绑定施法者方向")]
Relative = 0,
[DescAttribute("绝对坐标更改")]
Absolutely = 1,
}
// 伤害来源 - 用户特殊处理显示上的逻辑
public enum DamageSource : byte
{
Def = 0, // 2021.8.8前所有旧版伤害逻辑
RemedyPoison = 1, // 特殊处理,治疗毒
}
// 卡牌类型
public enum CardType : byte
{
QingLong = 0,
ZhuQue = 1,
BaiHu = 2,
XuanWu = 3,
Max = 4, // 无(两仪)
}
//
}