Files

806 lines
28 KiB
Erlang
Raw Permalink Normal View History

2026-05-23 22:10:14 +08:00
%%----------------------------------------------------
%% 键值对应表
%% @author whjing2011@gmail.com
%%----------------------------------------------------
-module(kv).
-export([get/1, get/2]).
get(career) ->
[
{"无职业", 0}
,{"", 1}
,{"", 2}
,{"", 3}
,{"", 4}
,{"", 5}
];
get(partner_career_type) ->
[
{"无职业", 0}
,{"", 1}
,{"", 2}
,{"", 3}
,{"", 4}
,{"", 5}
];
get(partner_pos_type) ->
[
{"", 0}
,{"前排", 1}
,{"中排", 2}
,{"后排", 3}
];
get(partner_camp_type) ->
[
{"", 0}
,{"", 1}
,{"", 2}
,{"", 3}
,{"", 4}
,{"", 5}
];
get(sex) ->
[
{"无限制", 2}
,{"", 1}
,{"", 0}
];
get(quality) ->
[
{"", 0}
,{"绿", 1}
,{"", 2}
,{"", 3}
,{"", 4}
,{"", 5}
];
get(bool) ->
[
{"", 0}
,{"", 1}
];
get(nature) ->
[
{"中立", 0}
,{"敌对", 1}
,{"友善", 2}
];
get(weekday) ->
[
{"星期一", 1}
,{"星期二", 2}
,{"星期三", 3}
,{"星期四", 4}
,{"星期五", 5}
,{"星期六", 6}
,{"星期日", 7}
];
get(unit_type) ->
[
{"普通怪物", 200}
,{"BOSS怪物", 201}
,{"传送阵", 202}
,{"神界事件",203}
];
get(unit_type_cli) ->
[
{"普通怪物", 0}
,{"BOSS怪物",1}
,{"传送阵", 2}
,{"特效单位",3}
,{"场景NPC",4}
,{"神界事件",5}
];
get(world_unit_type_cli) ->
[
{"装饰", 0}
,{"矿山", 1}
,{"营地", 2}
,{"要塞", 3}
,{"城池", 4}
,{"普通怪物", 5}
,{"限时BOSS", 6}
,{"装饰独占", 7}
,{"个人城池", 8}
];
get(item_type) ->
[
{"普通", 0}
,{"武器", 1}
,{"鞋子", 2}
,{"衣服", 3}
,{"头盔", 4}
,{"资产", 7}
,{"材料", 9}
,{"神器", 10}
,{"星命1", 11}
,{"星命2", 12}
,{"星命3", 13}
,{"星命4", 14}
,{"宝石1", 15}
,{"宝石2", 16}
,{"宝石3", 17}
,{"宝石4", 18}
,{"魂灵", 19}
,{"魄灵", 20}
,{"意灵", 21}
,{"念灵", 22}
,{"神装_耳环", 23}
,{"神装_戒指", 24}
,{"神装_项链", 25}
,{"神装_手镯", 26}
,{"周卡", 27}
,{"皮肤", 28}
,{"英魂", 29}
,{"家具", 30}
,{"萌宠道具", 31}
,{"萌宠食物", 32}
,{"萌宠特产", 33}
,{"萌宠明信片", 34}
,{"萌宠日记", 35}
,{"精灵", 36}
,{"精灵蛋", 37}
,{"孵化道具", 38}
,{"亲密度", 40}
,{"专属武器", 41}
,{"礼包", 100}
,{"自选礼包", 101}
,{"英雄碎片", 102}
,{"皮肤碎片", 110}
,{"活动道具", 500}
];
get(star_type) ->
[
{"白羊座", 1}
,{"金牛座", 2}
,{"双子座", 3}
,{"巨蟹座", 4}
,{"狮子座", 5}
,{"处女座", 6}
,{"天秤座", 7}
,{"天蝎座", 8}
,{"射手座", 9}
,{"摩羯座", 10}
,{"水瓶座", 11}
,{"双鱼座", 12}
];
get(item_use_type) ->
[
{"不能直接使用", 0}
,{"消耗", 1}
,{"不消耗", 2}
,{"穿戴", 3}
,{"批量使用", 4}
];
get(item_gain_type) ->
[
{"道具背包", 1}
,{"伙伴装备背包", 2}
,{"伙伴碎片背包", 1} % 横版时,英雄碎片进入的是道具背包,客户端也有相应处理,为了不做太多改动,所以不单独设立新类型
,{"数值", 4}
,{"直接使用", 5}
,{"家具仓库", 6}
,{"萌宠背包", 7}
,{"特殊背包", 9}
,{"活动背包", 10}
];
get(item_expire) ->
[
{"永久", 0}
,{"过期-分钟", 1}
,{"过期-日期", 2}
,{"开启-分钟", 3}
,{"开启-日期", 4}
,{"穿戴-过期-分钟", 5}
,{"穿戴-过期-日期", 6}
,{"过期-当周", 7}
];
get(item_effect_type) ->
[
{"钻石", 1}
, {"金币", 2}
, {"经验", 3}
, {"英雄经验", 4}
, {"英雄碎片", 5}
, {"加buff", 6}
, {"获取英雄", 7}
, {"商城特惠礼包时效", 8}
, {"体力", 9}
, {"神格", 10}
, {"充值", 11}
, {"激活头像框", 12}
, {"激活聊天气泡", 13}
, {"VIP经验", 14}
, {"进入召唤", 15}
, {"直接升星", 16}
, {"营地保护", 17}
, {"迁城令", 18}
, {"城防值", 19}
, {"竞技券", 20}
, {"获取时装", 21}
, {"获得神器", 22}
, {"红包", 23}
, {"神器碎片", 24}
, {"激活称号", 25}
, {"联盟副本Buff", 26}
, {"特定等级英雄", 27}
, {"激活圣器", 28}
, {"伙伴升星", 29}
, {"符文星级", 30}
, {"激活特权", 31}
, {"激活头像", 32}
, {"激活周卡", 33}
, {"激活伙伴皮肤", 34}
, {"激活徽章", 35}
, {"增加事件概率", 36}
, {"增加城市权重", 37}
, {"出行城市列表", 38}
, {"激活明信片", 39}
, {"激活日记", 40}
, {"发送回归红包", 41}
, {"家园形象", 42}
, {"位面英雄恢复", 43}
, {"皮肤碎片", 44}
];
get(cond_label) ->
[
{"等级", lev}
,{"职业", career}
,{"通关剧情副本", dungeon_pass}
];
get(cond_op) ->
[
{"不等于", ue}
,{"等于", eq}
,{"小于", lt}
,{"大于", gt}
,{"小于等于", le}
,{"大于等于", ge}
,{"包含", include}
,{"不包含", not_in}
,{"范围", range}
,{"=/=", ue}
,{"==", eq}
,{"<", lt}
,{">", gt}
,{"<=", le}
,{">=", ge}
];
get(quest_type) ->
[
{"覺醒歷程", 1}
,{"夥伴好感", 2}
,{"日常任务", 3}
,{"战令每日任务", 4}
,{"战令每周任务", 5}
,{"战令周期任务", 6}
,{"新战令每日任务", 7}
,{"新战令每周任务", 8}
,{"ios评分任务", 9}
,{"劇情戰鬥", 10}
,{"成長引導", 11}
,{"伙伴战令任务", 12}
,{"夺宝日签任务", 13}
,{"成长任务", 14}
];
get(quest_sec_type) ->
[
{"覺醒歷程", 1}
,{"支线任务", 2}
,{"劇情戰鬥", 10}
,{"成長引導", 11}
,{"成长任务", 14}
];
get(gain_type) ->
[
{"获得", gain}
,{"扣除", loss}
];
get(gain_label) ->
[
{"金币", coin}
,{"银币",silver_coin}
,{"钻石", gold}
,{"红钻", red_gold}
,{"银币或钻石", coin_or_gold}
,{"金币或钻石", gold_bind_or_gold}
,{"红钻或蓝钻", red_gold_or_gold}
,{"角色经验", exp}
,{"英雄经验", hero_exp}
,{"物品", item_base_id}
,{"竞技积分", arena_cent}
,{"活跃度", activity}
,{"联盟贡献", guild}
,{"远征积分", expedition}
,{"段位积分", rank_match_point}
,{"英雄经验池", partner_exp_all}
,{"体力", energy}
,{"神格", hero_soul}
,{"荣誉", pk_point}
,{"人民币", rmb}
,{"世界贡献", world}
,{"时装碎片", clothes_piece}
,{"成就点",feat_point}
,{"神器之灵", shenqi_point}
,{"友情点", friend_point}
,{"BOSS积分", boss_point}
,{"探宝积分", star_point}
,{"竞猜积分", arena_guesscent}
,{"天梯积分", sky_coin}
,{"先知结晶", recruithigh_hero}
,{"远征勋章", expedition_medal}
,{"符文精华", 10450}
,{"精英之徽", elite_coin}
,{"神装碎片", holy_eqm_coin}
,{"皮肤碎片", skin_debris}
,{"竞技声望", cluster_coin}
,{"家园币", home_coin}
,{"冠军币", cluster_guess_cent}
,{"圣羽", feather_exchange}
,{"巅峰币", peak_guess_cent}
,{"STEP-UP召唤积分", step_up_recruit_point}
,{"精英召唤积分", elite_recruit_point}
,{"限定召唤积分", recruit_3075_point}
,{"限时祈愿积分", recruit_3076_point}
,{"乱斗积分", camp_arena_point}
,{"卡牌碎片", star_card_point}
,{"英魂之心", 10005}
,{"万圣糖果", 80244}
,{"觉醒石", 10460}
];
get(event) ->
[
{"登录", evt_cli_loaded}
,{"升级", evt_levup}
,{"创角", evt_create}
,{"获得物品", evt_get_item}
,{"使用物品", evt_use_item}
,{"使用物品类型", evt_use_item_type}
,{"删除物品", evt_del_item}
,{"获得金币", evt_gain_coin}
,{"失去金币", evt_loss_coin}
,{"获得钻石", evt_gain_gold}
,{"失去钻石", evt_loss_gold}
,{"战斗引导", evt_combat_round}
,{"杀死单位", evt_kill_npc}
,{"挑战单位", evt_fight_unit}
,{"操作单位", evt_unit_click}
,{"接受任务", evt_accept_quest}
,{"提交任务", evt_commit_quest}
,{"战斗剧情", evt_combat_drama}
,{"进入副本", evt_dungeon_enter}
,{"通关副本", evt_dungeon_pass}
,{"完成剧情", evt_broadcast_drama}
,{"完成引导", evt_finish_guide}
,{"副本快速战斗", evt_dungeon_fast_combat}
];
get(battle_type) ->
[
{"默认", 1}
,{"竞技场", 2}
,{"剧情副本", 3}
,{"试练塔", 4}
,{"港口", 5}
,{"装备副本", 6}
,{"材料副本", 7}
,{"英灵副本", 8}
,{"联盟战", 9}
,{"剧情", 10}
,{"远征", 11}
,{"训练所", 12}
,{"段位赛", 13}
,{"泰坦副本", 14}
,{"巨龙", 15}
,{"众神战场", 16}
,{"联盟副本", 17}
,{"切磋", 18}
,{"实时切磋", 19}
,{"大世界的战斗类型", 20}
,{"首席争霸", 21}
,{"大世界的战斗不进战斗",22}
,{"英雄试炼",23}
,{"大世界战斗类型防守阵",100}
];
get(partner_rare_type) ->
[
{"SSSR", 4}
,{"传说", 3}
,{"稀有", 2}
,{"精良", 1}
];
get(partner_quality) -> % 英雄品质
partner_data:partner_quality();
get(chapter_difficulty) ->
[
{"普通", 1}
,{"困难", 2}
,{"噩梦", 3}
,{"地狱", 4}
];
get(dun_eqm_type) ->
[
{"装备副本", 1}
,{"觉醒材料副本", 2}
];
get(exchange_pay_type) ->
[
{"铜钱", coin}
,{"钻石", gold}
];
get(summon_type) ->
[
{"物品", 1}
,{"英雄", 2}
];
get(artifact_summon_type) ->
[
{"物品", 2}
,{"神器", 1}
];
get(exchange_item_type) ->
[
{"装备", 1}
,{"英雄", 2}
,{"道具", 3}
,{"神器", 4}
,{"家具", 41}
,{"出行道具", 42}
];
get(rank_type) ->
[
{"七天剧情", 9}
,{"七天星命塔", 10}
,{"七天竞技场", 11}
,{"七天战力", 12}
,{"七天命格", 19}
,{"七天英雄", 14}
,{"七天神界", 15}
,{"七天消费", 23}
,{"七天宝石", 31}
,{"七天圣器", 27}
,{"七天寻宝", 28}
,{"七天无尽试炼", 29}
,{"跨服宝石", 1021}
,{"跨服圣器", 26}
,{"跨服观星", 1024}
,{"跨服无尽试炼", 1018}
,{"跨服召唤", 1022}
,{"跨服战力", 25}
,{"跨服消费", 1023}
];
get(combat_target_type) ->
[
{"敌方", enemy_and_random, 1} %% 一个或多个敌方
,{"友方", ally_and_random, 2} %% 一个或多个友方
,{"继承目标", last_target, 3} %% 上个效果的目标
,{"自己", self, 4} %% 打自己
,{"死亡切换", enemy_to_die, 5} %% 这个技能是一个一个的打死,目标数量为1
,{"全单位随机", all_random, 6} %% 所有单位随机
,{"友方血最少", ally_minimal_hp, 7} %% 友方血量最少的
,{"敌方血最少", enemy_minimal_hp, 8} %% 敌方血量最少的
,{"切换敌方目标", switch_enemy, 9}
,{"选中的敌方目标", enemy_of_skill_target, 10}
,{"被暴击目标", targets_be_crit, 11}
,{"友方死亡", dead_ally, 12}
,{"全场除自己", alive_except_self, 13}
,{"友方血上限最多", ally_maximum_hp_max, 14}
,{"除了自己的友方", ally_except_self, 15}
,{"非己最少血量受击目标",min_hp_except_self_in_last, 16}
,{"非选中的敌方目标", enemy_except_skill_target, 17}
,{"非选中的敌方目标", enemy_except_skill_target, 18}
,{"灼烧敌方目标", enemy_firing_target, 19}
,{"不重复敌方目标", enemy_norepeat_target, 20}
,{"友方血最大", max_hp_per_ally, 21}
,{"敌方血最大", max_hp_per_enemy, 22}
,{"优先前排", enemy_front_row, 23}
,{"优先中排", enemy_middle_row, 24}
,{"优先后排", enemy_back_row, 25}
,{"对面一行", enemy_face_col, 26}
,{"优先前中排", enemy_1_2_row, 27}
,{"优先前排补足", enemy_front_row_acc, 28}
,{"优先中排补足", enemy_middle_row_acc, 29}
,{"优先后排补足", enemy_back_row_acc, 30}
,{"对面一行补足", enemy_face_col_acc, 31}
,{"优先前中排补足", enemy_1_2_row_acc, 32}
,{"己方优先前排", ally_front_row, 33}
,{"己方优先中排", ally_middle_row, 34}
,{"己方优先后排", ally_back_row, 35}
,{"己方对面一行", ally_face_col, 36}
,{"己方优先前中排", ally_1_2_row, 37}
,{"己方优先前排补足", ally_front_row_acc, 38}
,{"己方优先中排补足", ally_middle_row_acc, 39}
,{"己方优先后排补足", ally_back_row_acc, 40}
,{"己方对面一行补足", ally_face_col_acc, 41}
,{"己方优先前中排补足", ally_1_2_row_acc, 42}
,{"默认攻击", enemy_default, 43}
,{"攻击方", attack, 44}
,{"技能选目标", skill, 45}
,{"优先中后排补足", enemy_2_3_row_acc, 46}
,{"己方有减益BUFF", ally_negative_buff_target, 47}
,{"对面人数最多的一行", enemy_face_col_max_num, 48}
,{"优先未选中", not_selected, 49}
,{"优先可盗取", buff_can_fetch, 50}
,{"友方攻击最高", max_atk_ally, 51}
,{"优先中后排攻击顺序补足", enemy_2_3_row_acc_with_atk, 52}
,{"优先后排攻击顺序补足", enemy_back_row_acc_with_atk, 53}
,{"优先后排血量顺序补足", enemy_back_row_acc_with_hp_per, 54}
,{"除了自己优先后排血量顺序补足", enemy_back_row_acc_with_hp_per_exit_self, 55}
,{"优先无免疫后排补足", enemy_back_row_acc_with_no_immune, 56} %% @todo 这里条件判断无免疫时 写死了无免疫类型是2 后续复用要留意 lfl-2019-12-23
,{"活着的敌方优先复仇目标", enemy_and_random_by_revanche_buff, 57}
,{"默认敌方优先复仇目标", enemy_default_by_revanche_buff, 58}
,{"血量最低优先复仇目标", enemy_minimal_hp_by_revanche_buff, 59}
,{"非前效果目标", enemy_except_ago_effect_target, 60}
,{"中后排补足优先复仇目标", enemy_2_3_row_acc_by_revanche_buff, 61}
,{"继承伤害目标", last_hurt_target, 62} %% 上个伤害效果的目标
,{"累计伤害目标", acc_hurt_target, 63} %% 累计技能伤害效果的目标
,{"继承目标_可选数量", last_target_select_num, 64} %% 上个效果的目标
,{"优先控制和负面状态友方", ally_buff_target, 65}
,{"友方随机", ally_random, 66} %% 一个或多个友方
,{"累计前次伤害目标", acc_once_hurt_target, 67} %% 累计前次伤害目标的目标
,{"7星及以下", star_7_hurt_target, 68} %% 7星及以下的目标
];
get(skill_trigger_condition) ->
[
{"回合开始", when_round_begin}
,{"回合结束", when_round_end}
,{"战斗开始", when_combat_begin}
,{"战斗计算出手前", when_combat_begin_before_order}
,{"队友伤害_单次", after_ally_create_hurt_once} %% 队友造成伤害
,{"造成暴击", when_crit}
,{"造成暴击后", after_crit} %% 技能暴击后触发
,{"造成暴击后2", after_crit_before_dead} %% 技能暴击后在敌方触发复活前 触发
,{"受到暴击后", after_be_crit} %% 受到暴击时候触发
,{"自己伤害_多次", after_create_hurt} %% 造成伤害时触发
,{"队友杀死敌方", after_ally_kill_enemy} %%
,{"己方杀死敌方", after_all_ally_kill_enemy} %%
,{"队友受控制", when_ally_be_control} %%
,{"自己受控制", when_self_be_control} %%
,{"队友伤害后敌方血量", after_hp_less_than_by_ally_hurt} %%
,{"使用技能前", before_use_skill}
,{"治疗时", when_cure} %% 每次计算治疗量时触发
,{"治疗后", when_after_cure} %% 每次计算治疗量后触发
,{"伤害时", when_hurt} %% 每次计算伤害时触发
,{"首次伤害时", when_hurt_hurt_once} %% 伤害时计算(todo 主要是处理多段攻击时,对同一个目标触发多次)
,{"伤害后", when_after_hurt} %% 每次计算伤害后触发
,{"首次伤害后", when_after_hurt_once} %% 在第一次计算伤害后触发(todo 主要是处理多段攻击时,对同一个目标触发多次)
,{"将受伤害时", will_be_hurt}
,{"作为目标时", when_is_target} %%
,{"队友回合开始", when_ally_round_begin} %%
,{"死亡触发", when_dead} %%
,{"队友死亡触发", when_ally_dead} %%
,{"单位死亡触发", when_other_dead} %%
,{"单位死亡触发_回合单次", when_other_dead_once} %%
,{"受到伤害触发_单次", after_be_hurt_once} %%
,{"受到物理伤害触发_单次", after_be_physical_hurt_once} %%
,{"受到法术伤害触发_单次", after_be_spells_hurt_once} %%
,{"伤害技能", after_use_hurt_skill} %%
,{"治疗技能", after_use_cure_skill} %%
,{"受到伤害触发_多次", when_be_hurt} %%
,{"抵抗时", when_against_effect} %%
,{"杀死目标时", when_kill_enemy} %%
,{"杀死目标", after_kill_enemy} %%
,{"队友被攻击前触发", before_ally_be_hurt} %%
,{"队友被攻击时触发", when_ally_be_hurt} %%
,{"队友濒临死亡时触发", when_ally_to_be_dead} %%
,{"每波开始", when_wave_begin}
,{"敌方使用有CD技能后触发", after_enemy_use_cd_skill} %%
,{"敌方出手后触发", after_enemy_use_skill} %%
,{"其他人使用拉条技能时触发", when_other_use_change_distance_skill} %%
,{"受到伤害前触发", before_be_hurt} %%
,{"敌方回合结束", when_enemy_round_end} %%
,{"受到暴击时", when_be_crit} %% 受到暴击时候
,{"复活时", when_revive}
,{"队伍造成暴击后", after_ally_crit} %% 队伍造成暴击后触发
,{"复活治疗技能", after_use_revive_or_cure_skill} %% 使用复活或治疗技能时
,{"队友伤害时", when_ally_hurt} %% 每次队友计算伤害时触发
,{"伤害值产生时", temp_be_hurt} %% 伤害值已经产生但还没有扣血
,{"受到伤害后", after_be_hurt} %% 受到伤害后触发
,{"播报后全体", after_play_all} %% 技能播报后所有单位
,{"使用主动技能后", after_use_active_skill} %% 自身使用主动技能后触发
,{"指定位置阵亡", limit_pos_all_dead} %% 指定位置阵亡
,{"将受伤害时指定位置有存活", limit_pos_any_alive} %% 将受伤害时指定位置有存活
,{"本回合无法行动时", when_can_not_action}
,{"特殊触发", by_time}
,{"队友死亡时", when_ally_be_dead} %%
,{"受到伤害或被治疗时", when_be_hurt_or_be_cure} %%
,{"伤害效果后", after_hurt_effect}
,{"我方单位死亡_系统", when_dead_sys}
,{"队友获得加速时_单次", when_ally_get_speed}
,{"敌方持续伤害暴发时", when_rand_begin_buff_dps}
];
get(buff_result_type) ->
[
{"加属性", change_attr, "1"}
,{"眩晕", dizzy, "2"} %% 眩晕
,{"沉默", silence, "3"} %% 沉默
,{"护盾", add_shield, "4"} %% 加护盾
,{"持续伤害", continue_hurt, "5"}
,{"反伤", anti_hurt, "6"}
,{"混乱", confusion, "7"}
,{"免疫", immune, "8"}
,{"嘲讽护盾", taunt_shield, "9"}
,{"嘲讽", taunt, "10"}
,{"无敌", invincible, "11"}
,{"保命", no_dead, "12"}
,{"无敌次数盾", count_invincible, "13"}
,{"忘却", forgotten, "14"} %% 禁被动,暴击
,{"致盲", blinding, "15"}
,{"反击", anti_attack, "16"}
,{"禁疗", forbidden_add_hp, "17"}
,{"禁止复活", forbidden_revive, "18"}
,{"睡眠", sleep, "19"}
,{"诅咒", curse, "20"}
,{"拉条", change_distance, "21"}
,{"隐身", hidden, "22"}
,{"洞察", insight, "23"}
,{"暗伤", dark_hurt, "24"}
,{"援护", aid, "25"} %%
,{"普攻", normal_skill, "26"} %%
,{"加被动", passive_skill, "27"} %%
,{"额外一次伤害", other_atk, "28"} %% 受到伤害时额外受到一次伤害
,{"忘却被动暴击", forgotten1, "29"} %% 禁被动,暴击
,{"忘却被动", forgotten2, "30"} %% 禁被动
,{"忘却暴击", forgotten3, "31"} %% 禁暴击
,{"法术反噬", iron_maiden_spells, "32"} %% 法术反噬
,{"物理反噬", iron_maiden_physical, "33"} %% 物理反噬
,{"圣光结界", enchantment, "34"} %% 圣光结界
,{"均衡护盾", anti_and_reduction, "35"}
,{"鬼魂", ghost, "36"}
,{"变身", change_look, "37"}
,{"伤害印记", damage_mark, "38"}
,{"反伤自身", anti_hurt_self, "39"} %% buff期间每次伤害都会对自身造成伤害
,{"暴击印记", crit_stamp, "40"} %% 暴击时额外伤害
,{"周围单位伤害", range_hurt, "41"}
,{"格挡控制盾", count_def_control, "42"}
,{"反噬", iron_maiden_all, "43"} %% 伤害反噬(不论伤害类型)
];
get(passive_effect_condition) ->
[
{"杀死目标触发", after_kill_enemy} %%
,{"杀死目标复活后触发", after_kill_enemy_back} %% 杀死目标,并且在对方计算触发保命后再触发
,{"造成暴击", when_crit}
,{"杀死目标时触发", when_kill_enemy} %%
,{"伤害超过体力上限", when_hurt_more_than}
,{"伤害时", when_hurt} %% 每次计算伤害时触发
,{"被伤害超过体力上限", when_be_hurt_more_than} %% 每次计算伤害时触发
,{"治疗前", when_before_cure} %% @todo 每次计算治疗效果时触发,持续整个治疗效果计算(用于群体治疗时,效果计算一次,全体治疗量都生效)
,{"嫁祸触发", when_before_impute} %% @todo 嫁祸移除buff计算成功后,触发
];
get(effect_condition) ->
[
{"属性比较", compare_attr}
,{"目标状态", target_state}
,{"技能结果", skill_result}
,{"自身状态", self_state}
,{"伤害超过体力上限", when_hurt_more_than}
,{"被伤害超过体力上限", when_be_hurt_more_than} %% 每次计算伤害时触发
,{"已方", ally}
,{"敌方", enemy}
,{"前置条件", pre_cond}
,{"临时伤害值超过体力上限", when_temp_be_hurt_more_than}
];
get(effect_type) ->
[
{"伤害", hurt,1}
,{"加buff", add_buff,2}
,{"动态加属性", dynamic_add_attr,3} %% 加属性,处理 血量少于多少,加属性多少
,{"技能cd", change_skill_cd,4} %% 改变技能cd
,{"使用技能", use_skill,5} %% 使用一个技能
,{"吸血", absort_hp,6} %% 吸血
,{"随机效果", change_effect_id,7} %% 换效果id
,{"改变行动条", change_distance,8} %%
,{"加血", add_hp,9} %%
,{"驱散buff", reduce_buff,10} %%
,{"播动作", action_play,11} %%
,{"临时加属性", temporary_add_attr,12} %%
,{"扣血", reduce_hp,13} %%
,{"复活", revive,14} %%
,{"魅惑", charm,15} %%
,{"连击", continue_attack,16} %%
,{"夺取", fetch_buff,17} %%
,{"平衡", balance_hp_and_distance,18} %%
,{"破咒", effect_curse,19} %%
,{"援护", aid_ally,20} %%
,{"庇佑", bless_ally,21} %%
,{"召唤", summon,22} %%
,{"耐性", patience, 23} %%
,{"暗伤", dark_hurt, 24} %%
,{"疗愈", clear_dark_hurt, 25} %%
,{"条件效果", cond_effect_id,26} %% 条件换效果id
,{"临时加命中", temporary_add_hit,27} %%
,{"转换buff", convert_buff,28} %% 将对方buff转换为指定buff
,{"嫁祸", add_impute_buff,29} %% 将缓存的嫁祸移除的buff 增加给目标方
];
get(skill_best_target) ->
[
{"血量比例最小", min_hp_per}
,{"血量比例最大", max_hp_per}
,{"速度最低", min_speed}
,{"速度最高", max_speed}
,{"攻击最低", min_atk}
,{"攻击最高", max_atk}
,{"物防最低", min_def_p}
,{"物防最高", max_def_p}
,{"法防最低", min_def_s}
,{"法防最高", max_def_s}
,{"防御最低", min_def}
,{"防御最高", max_def}
,{"优先BOSS", boss}
,{"攻击条最低", min_distance}
,{"攻击条最高", max_distance}
,{"破甲", has_reduce_def}
,{"优先坦克目标", career_type1}
,{"优先物攻目标", career_type2}
,{"优先法师目标", career_type3}
,{"优先辅助目标", career_type4}
];
get(skill_target) ->
[
{"敌方存活单位", alive_enemy, 1}
,{"友方存活单位", alive_ally, 2}
,{"友方死亡单位", dead_ally, 3}
,{"敌方死亡单位", dead_enemy, 4}
,{"自己", self, 5}
,{"全场除自己", alive_except_self, 6}
,{"友方存活单位除了自己", alive_ally_except_self, 7}
];
get(_Key) ->
false.
%% @doc 指定选取kv类型的子集
-spec get(Type :: atom(), Keys :: list()) -> false | [tuple()].
get(Type, []) ->
kv:get(Type);
get(Type, Keys) ->
case kv:get(Type) of
KVs when is_list(KVs) ->
F = fun(Key, Rtn = {Acc, L}) ->
case lists:keytake(Key, 1, L) of
{value, KV, RestKVs} ->
{[KV | Acc], RestKVs};
false ->
Rtn
end
end,
{NewKVs, _} = lists:foldl(F, {[], KVs}, Keys),
lists:reverse(NewKVs);
_ ->
false
end.