123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381 |
- using System;
- namespace YLBattle
- {
- /// <summary>
- /// 敌方适配器
- /// </summary>
- public class MonsterAdapter : IFighterAdapter
- {
- /// <summary>
- /// 英雄实例数据
- /// </summary>
- private sm_hero mTemplete = null;
- /// <summary>
- /// 英雄实例数据
- /// </summary>
- private GameHeroVo mIns = null;
- /// <summary>
- /// 是否可以修改玩家数据
- /// </summary>
- private bool canModify = false;
- /// <summary>
- /// 等级
- /// </summary>
- private int mLevel = 0;
- /// <summary>
- ///
- /// </summary>
- private int mSeat = 0;
- /// <summary>
- ///
- /// </summary>
- private bool isBoss = false;
- /// <summary>
- /// 构造(pve)
- /// </summary>
- /// <param name="_strTid">模板</param>
- public MonsterAdapter(string _strIid, string lv, string _Boss, string _seat)
- {
- this.mTemplete = sm_hero.GetMoByID(_strIid);
- this.canModify = false;
- this.mLevel = System.Convert.ToInt32(lv);
- this.isBoss = System.Convert.ToInt32(_Boss) == 0 ? false : true;
- this.mSeat = System.Convert.ToInt32(_seat);
- mIns = new GameHeroVo();
- mIns.level = System.Convert.ToInt32(lv);
- mIns.typeId = _strIid;
- var vo = sm_heroextra_dengjie.QueryMeetsConditionStrengthInfoByLevel(mIns.level);
- if (vo != null)
- {
- mIns.strengthLevel = vo.typeId;
- }
- }
- /// <summary>
- /// Boss
- /// </summary>
- /// <returns></returns>
- public bool IsLeader()
- {
- return this.isBoss;
- }
- /// <summary>
- /// 关联对象实例
- /// </summary>
- /// <returns>对象实例</returns>
- public object Inst()
- {
- return this.mTemplete;
- }
- /// <summary>
- /// 角色类型 0=小怪 1=英雄 (战斗中英雄使用公共技能槽)
- /// </summary>
- /// <returns></returns>
- public int RoleType()
- {
- return this.mTemplete.roletype;
- }
- /// <summary>
- ///
- /// </summary>
- /// <returns></returns>
- public string FName()
- {
- return this.mTemplete.name;
- }
- /// <summary>
- /// 英雄实例ID, 敌方没有
- /// </summary>
- /// <returns></returns>
- public string IID()
- {
- return string.Empty;
- }
- /// <summary>
- /// 玩家ID (友情帮助时才有此数据)
- /// </summary>
- /// <returns></returns>
- public string PlayerUID()
- {
- return string.Empty;
- }
- /// <summary>
- ///
- /// </summary>
- /// <returns></returns>
- public string TID()
- {
- return this.mTemplete.heroId.ToString();
- }
- /// <summary>
- /// 技能列表
- /// </summary>
- /// <returns></returns>
- //public int CriticalPowerRate()
- //{
- // return SkillProxy.Instance.GetSkillCondiValue(this.mTemplete.manuSkill2);
- //}
- /// <summary>
- ///
- /// </summary>
- /// <returns></returns>
- public int Seat
- {
- set { this.mSeat = value; }
- get
- {
- return this.mSeat;
- }
- }
- /// <summary>
- /// 等级
- /// </summary>
- /// <returns></returns>
- public int Level()
- {
- return this.mLevel;
- }
- /// <summary>
- /// 等阶
- /// </summary>
- /// <returns></returns>
- public int StrengthLevel()
- {
- return this.mIns.strengthLevel;
- }
- /// <summary>
- ///
- /// </summary>
- /// <returns></returns>
- public string NormalSound()
- {
- return this.mTemplete.normalSound;
- }
- /// <summary>
- ///
- /// </summary>
- /// <returns></returns>
- public string SkillSound()
- {
- return this.mTemplete.skillSound;
- }
- /// <summary>
- ///
- /// </summary>
- /// <returns></returns>
- public string BeattackSound()
- {
- return this.mTemplete.beattackSound;
- }
- /// <summary>
- ///
- /// </summary>
- /// <returns></returns>
- public string DragonboneName()
- {
- return this.mTemplete.dragonBoneMod;
- }
- /// <summary>
- ///
- /// </summary>
- /// <returns></returns>
- //public int Attack()
- //{
- // return this.mTemplete.wuligongji;
- //}
- /// <summary>
- ///
- /// </summary>
- /// <returns></returns>
- public int Agile()
- {
- return (int)((1 / this.mTemplete.gongjisudu) * 1000.0f);
- }
- #region 战斗技能
- /// <summary>
- /// 手动攻击技能
- /// </summary>
- /// <returns>技能模板id</returns>
- public string NormalSkill()
- {
- return this.mTemplete.normalSkill;
- }
- /// <summary>
- /// 主动技能1
- /// </summary>
- /// <returns>技能模板id</returns>
- public string ManuSkill1()
- {
- return this.mTemplete.manuSkill1;
- }
- /// <summary>
- /// 主动技能2
- /// </summary>
- /// <returns>技能模板id</returns>
- public string ManuSkill2()
- {
- return this.mTemplete.manuSkill2;
- }
- /// <summary>
- /// 队长技能
- /// </summary>
- /// <returns>技能模板id</returns>
- public string PassiveSkill()
- {
- return this.mTemplete.passiveSkill;
- }
- /// <summary>
- /// (敌方无)队长技能
- /// </summary>
- /// <returns>技能模板id</returns>
- public string LeaderSkill()
- {
- return string.Empty;
- }
- /// <summary>
- /// 获取英雄技能列表
- /// </summary>
- /// <returns>技能列表</returns>
- public string[] Skills()
- {
- return new string[] { this.mTemplete.normalSkill,
- this.mTemplete.manuSkill1,
- this.mTemplete.manuSkill2,
- this.mTemplete.passiveSkill
- };
- }
- /// <summary>
- /// 获取英雄技能列表
- /// </summary>
- /// <returns>技能列表</returns>
- [Obsolete("过时,2020.4.21")]
- public int SkillLevel(string tid)
- {
- string parm = string.Empty;
- if (tid == this.mTemplete.normalSkill)
- {
- parm = "normalSkill";
- }
- if (tid == this.mTemplete.manuSkill1)
- {
- parm = "manuSkill1";
- }
- if (tid == this.mTemplete.manuSkill2)
- {
- parm = "manuSkill2";
- }
- if (tid == this.mTemplete.passiveSkill)
- {
- parm = "passiveSkill";
- }
- return this.mIns.GetSkillLevel(parm);
- }
- /// <summary>
- /// 获取技能冷冻回合数
- /// </summary>
- /// <returns></returns>
- //public int GetSkillBeLockedRound(string skillId)
- //{
- // return SkillProxy.Instance.GetSkillCondiValue(skillId);
- //}
- #endregion
- /// <summary>
- ///
- /// </summary>
- /// <param name="ep"></param>
- /// <returns></returns>
- public double GetProperty(EBattleProperty ep)
- {
- ///属性值=初始值+成长*(等级-1)
- double pvalue = 0;
- switch (ep)
- {
- case EBattleProperty.HP:
- pvalue = this.mIns.getHpForBattle();
- break;
- case EBattleProperty.HPMAX:
- pvalue = this.mIns.getHpForBattle();
- break;
- case EBattleProperty.ATTACK:
- pvalue = this.mIns.getWuLiGongJiForBattle();
- break;
- case EBattleProperty.ATTACKSPEED:
- pvalue = this.mIns.getGongJiSuDuForBattle();
- break;
- case EBattleProperty.CRITICALPROB:
- //pvalue = this.mIns.getCriticalForBattle(); // 2020.6.3 根据策划指导修正暴击率
- pvalue = this.mIns.getCriticalRatioInBattle();
- break;
- case EBattleProperty.DEFENSE:
- pvalue = this.mIns.getFangYuHuJiaForBattle();
- break;
- case EBattleProperty.MAGICFORCE:
- pvalue = this.mIns.getMoFaKangXingForBattle();
- break;
- case EBattleProperty.MAGICSTRENGTH:
- pvalue = this.mIns.getFaShuQiangDuForBattle();
- break;
- case EBattleProperty.LEVEL:
- pvalue = this.mLevel;
- break;
- case EBattleProperty.NMAXPOWER:
- pvalue = this.mTemplete.npower;
- break;
- case EBattleProperty.NPOWER:
- pvalue = 0;
- break;
- case EBattleProperty.HEIGHT:
- pvalue = this.mTemplete.height;
- break;
- default:
- pvalue = 0;
- break;
- }
- return pvalue;
- }
- /// <summary>
- ///
- /// </summary>
- /// <param name="ep"></param>
- /// <param name="val"></param>
- public void ModifyProperty(EBattleProperty ep, float val)
- {
- if (this.canModify == false)
- {
- return;
- }
- }
- }
- }
|