public RoleBarChart ExpandByRBCPercent(RoleBarChart percentArray) { HP = (int)(HP * AllRandomSetClass.SimplePercentToDecimal(percentArray.HP)); MP = (int)(MP * AllRandomSetClass.SimplePercentToDecimal(percentArray.MP)); TP = (int)(TP * AllRandomSetClass.SimplePercentToDecimal(percentArray.TP)); return(this); }
public virtual RoleBarChart bcCaused(BattleRoleData source, BattleRoleData target) { RoleBarChart bc = RoleBarChart.zero; int hp = ChangeInBarChart.HP.DATA; if (ChangeInBarChart.HP.dataTag == NumberData.DataType.percent) { hp = (int)(target.HpController.MaxHp * ChangeInBarChart.HP.DECIMAL); } bc.HP = hp; int mp = ChangeInBarChart.MP.DATA; if (ChangeInBarChart.MP.dataTag == NumberData.DataType.percent) { mp = (int)(target.MpController.maxMp * ChangeInBarChart.MP.DECIMAL); } bc.MP = mp; int tp = ChangeInBarChart.TP.DATA; if (ChangeInBarChart.TP.dataTag == NumberData.DataType.percent) { tp = (int)(target.TpController.maxTp * ChangeInBarChart.TP.DECIMAL); } bc.TP = tp; return(bc); }
public void getBCOA(RoleBarChart BC) { if (BC.HP > 0) { HpController.addHp(BC.HP); } else if (BC.HP < 0) { HpController.getExtraDamage(BC.HP); } if (BC.MP > 0) { MpController.addMp(BC.MP); } else if (BC.MP < 0) { MpController.consumeMp(BC.MP); } if (BC.TP > 0) { TpController.addTp(BC.TP); } else if (BC.TP < 0) { TpController.consumeTp(BC.TP); } }
public void CheckStates() { ThisBasicRoleProperty()._role.AllARevision.Clear(); stateExtraDamage = 0; AllRegend = ThisBasicRoleProperty().BarChartRegendPerTurn; checkAllStandardStates(); //八大直接显示类状态 for (int i = 0; i < (int)StateTag.End; i++) { if (checkPerState((StateTag)i)) { ThisBasicRoleProperty()._role.AllARevision += OneState((StateTag)i).UniqueEffectInRA; stateExtraDamage += OneState((StateTag)i).ExtraDmg; PerStateUnit((StateTag)i).gameObject.SetActive(true); } else { PerStateUnit((StateTag)i).gameObject.SetActive(false); } } HpController.getExtraDamage(stateExtraDamage); #region otherBuff if (_Tag == SDConstants.CharacterType.Hero) { Race _race = HeroProperty._hero._heroRace; RoleAttributeList basic = ThisBasicRoleProperty()._role.ThisRoleAttributes.Clone; ThisBasicRoleProperty()._role.AllARevision .Add(SDDataManager.Instance.BuffFromDaynight(basic)); ThisBasicRoleProperty()._role.AllARevision .Add(SDDataManager.Instance.BuffFromRace(basic, _race)); } #endregion #region GoddessState if (BM.GM.haveGoddess) { ThisBasicRoleProperty()._role.AllARevision.Add(BM.GM.GetRALUpByGoddess (ThisBasicRoleProperty()._role.ThisRoleAttributes.Clone)); } #endregion #region extraState RoleExtraState.checkExtraStates(); #endregion #region fatigueStateCheck if (SDDataManager.Instance.checkHeroFatigueTooHigh(unitHashcode)) { Debug.Log("英雄 " + name + " 过度劳累"); HpController.getExtraDamage(HpController.CurrentHp); } #endregion writeData(); }
public override void initData(int level , RoleAttributeList dataRA , int criDmg, int dmgReduction, int dmgReflection, int RewardRate , RoleBarChart bcRegendPerTurn, string id, string name , int wakeNum) { base.initData(level , dataRA, criDmg, dmgReduction, dmgReflection, RewardRate , bcRegendPerTurn, id, name, wakeNum); }
public void initArmor(int level, RoleAttributeList dataRA , int criDmg, int dmgReduction, int dmgReflection , int RewardRate, RoleBarChart bcRegendPerTurn, string id, string name , int wakeNum, int grade) { initData(level , dataRA, criDmg, dmgReduction, dmgReflection, RewardRate , bcRegendPerTurn, id, name, wakeNum); AddMultiplier(grade); }
public override void initData_Hero(Job heroJob, Race heroRace, int grade, int quality, int Level , RoleAttributeList ra, int criDmg , int dmgReduction, int dmgReflection, int RewardRate , RoleBarChart bcRegendPerTurn, string id, string name, int wakeNum) { base.initData_Hero(heroJob, heroRace, grade, quality, Level , ra, criDmg, dmgReduction, dmgReflection, RewardRate , bcRegendPerTurn, id, name, wakeNum); Debug.Log(name + " " + heroJob + " & " + heroRace); this._heroJob = heroJob; this._heroRace = heroRace; }
/// <summary> /// 构建英雄数据 /// </summary> /// <param name="heroJob"></param> /// <param name="grade">英雄当前等级</param> /// <param name="quality"></param> /// <param name="Level"></param> /// <param name="ra"></param> /// <param name="raRate"></param> /// <param name="speed"></param> /// <param name="cri"></param> /// <param name="criDmg"></param> /// <param name="dmgReduction"></param> /// <param name="dmgReflection"></param> /// <param name="RewardRate"></param> /// <param name="bcRegendPerTurn"></param> /// <param name="id"></param> /// <param name="name"></param> /// <param name="wakeNum"></param> public virtual void initData_Hero(Job heroJob, Race heroRace, int grade , int quality, int Level , RoleAttributeList ra , int criDmg, int dmgReduction, int dmgReflection, int RewardRate , RoleBarChart bcRegendPerTurn, string id, string name, int wakeNum) { LEVEL = Level; Quality = quality; RoleBasicRA = ra.Clone; CRIDmg = criDmg; DmgReduction = dmgReduction; DmgReflection = dmgReflection; this.RewardRate = RewardRate; BarChartRegendPerTurn = bcRegendPerTurn; ID = id; Name = name; AddMultiplier(grade); AddWakeMultiplier(wakeNum); //补充设置(职业影响) switch (heroJob) { case Job.Fighter: initData_supplement_H_Fighter(RoleBasicRA, grade); break; case Job.Ranger: initData_supplement_H_Ranger(RoleBasicRA, grade); break; case Job.Priest: initData_supplement_H_Priest(RoleBasicRA, grade); break; case Job.Caster: initData_supplement_H_Caster(RoleBasicRA, grade); break; } switch (heroRace) { case Race.Human: initData_supplement_H_human(); break; case Race.Elf: initData_supplement_H_elf(); break; case Race.Dragonborn: initData_supplement_H_dragonborn(); break; } AddLEVELNumMultiplier(LEVEL); Name = SDGameManager.T(name); }
public virtual void initData(int level, RoleAttributeList dataRA , int criDmg, int dmgReduction, int dmgReflection, int RewardRate , RoleBarChart bcRegendPerTurn, string id, string name, int wakeNum) { LEVEL = level; RoleBasicRA = dataRA.Clone; CRIDmg = criDmg; DmgReduction = dmgReduction; DmgReflection = dmgReflection; this.RewardRate = RewardRate; BarChartRegendPerTurn = bcRegendPerTurn; ID = id; Name = SDGameManager.T(name); }
public IEnumerator IEStartSkill(BattleRoleData source, BattleRoleData target, NDBarChart _val) { source.unit_character_model.CurrentCharacterModel.ChangeModelAnim (source.unit_character_model.CurrentCharacterModel.anim_cast, false); SLEffectManager.Instance.playCommonEffectCast(source.transform.position); yield return(new WaitForSeconds(castLastTime)); SLEffectManager.Instance.playCommonEffectRevive(target.transform.position); yield return(new WaitForSeconds(effectLastTime)); source.unit_character_model.CurrentCharacterModel.ChangeModelAnim (source.unit_character_model.CurrentCharacterModel.anim_idle, true); RoleBarChart val = RoleBarChart.zero; if (_val.HP.dataTag == NumberData.DataType.integer) { val.HP = _val.HP.DATA; } else if (_val.HP.dataTag == NumberData.DataType.percent) { val.HP = (int)(target.HpController.MaxHp * _val.HP.DECIMAL); } if (_val.MP.dataTag == NumberData.DataType.integer) { val.MP = _val.MP.DATA; } else if (_val.MP.dataTag == NumberData.DataType.percent) { val.MP = (int)(target.MpController.maxMp * _val.MP.DECIMAL); } if (_val.TP.dataTag == NumberData.DataType.integer) { val.TP = _val.TP.DATA; } else if (_val.TP.dataTag == NumberData.DataType.percent) { val.TP = (int)(target.TpController.maxTp * _val.TP.DECIMAL); } Debug.Log(source.name + "revive BCAdd " + " hp+" + val.HP + " mp+" + val.MP + " tp+" + val.TP + " to " + target.name); target.revive(val); yield return(new WaitForSeconds(skillLastTime)); StartCoroutine(IEWaitForShortEnd(source)); }
public void refreshBtnState() { Debug.Log("Refresh This SKill:" + this.name + " State"); bool btnEnable = true; #region 该技能存在使用次数限制 if (SkillFiniteTimes > 0) { if (SFT_CurrentTimes >= SkillFiniteTimes) { btnEnable = false; } //显示当前剩余次数 } #endregion BattleRoleData Unit = BM._currentBattleUnit; OneRoleClassData R = Unit.ThisBasicRoleProperty()._role; RoleBarChart CurrentBC = R.ReadAllMaxSSD; #region 该技能消耗超过角色现有量 bool flag = CheckIfCanConsume(Unit); if (!flag) { btnEnable = false; } #endregion #region 角色状态影响技能 if (Unit.checkPerState(StateTag.Hush)) { if (this is NormalAttack) { btnEnable = true; } else { btnEnable = false; } } #endregion SkillDisable = !btnEnable; if (!btnEnable)//显示技能是否可以继续使用 { _btn.interactable = false; } else { _btn.interactable = true; } }
public void checkAllStandardStates() { RoleAttributeList RAL = new RoleAttributeList(); for (int i = 0; i < CurrentStateList.Count; i++) { if (CurrentStateList[i].LastTime <= 0) { CurrentStateList.RemoveAt(i); } else { if (CurrentStateList[i].StateEndType == StandardState.StateEndType.time) { CurrentStateList[i].LastTime--; } // RAL.Add(CurrentStateList[i].RAL); stateExtraDamage += CurrentStateList[i].ExtraDmg; AllRegend += CurrentStateList[i].BarChart; CurrentStateList[i].ExtraFunction(this); } } Debug.Log("StandardState_IfHaveData: " + RAL.HaveData); ThisBasicRoleProperty()._role.AllARevision.Add(RAL); Debug.Log("AllARevision_IfHaveData: " + ThisBasicRoleProperty()._role.AllARevision.HaveData); // if (RAL.AllAttributeData.ToList().Exists(x => x > 0) || RAL.AllResistData.ToList().Exists(x => x > 0)) { Unit_Buff.gameObject.SetActive(true); } else { Unit_Buff.gameObject.SetActive(false); } if (RAL.AllAttributeData.ToList().Exists(x => x < 0) || RAL.AllResistData.ToList().Exists(x => x < 0)) { Unit_Debuff.gameObject.SetActive(true); } else { Unit_Debuff.gameObject.SetActive(false); } }
public void StateFunctionWork(BattleRoleData source, BattleRoleData target , RoleAttributeList ral, RoleBarChart bc , int dmg, int lastTime) { OneStateController state = new OneStateController() { ID = NAME + "#" + stateTag.ToString().ToUpper(), NAME = NAME, LastTime = stateEndType == StateEndType.time ? lastTime : 1, RAL = ral, BarChart = bc, ExtraDmg = dmg, StateTag = stateTag, }; if (target.AddStandardState(state)) { Debug.Log("对 " + target.name + "添加 状态(sstate)" + state.NAME + " 成功"); } }
public void revive(RoleBarChart recoverVal) { hideDead(); IsDead = false; HpController.addHp(recoverVal.HP); MpController.addMp(recoverVal.MP); TpController.addTp(recoverVal.TP); HpController.BarChartStatus.gameObject.SetActive(true); if (!IsEnemy) { BM.Remaining_SRL.Add(this); } else { BM.Remaining_ORL.Add(this); } unit_character_model.CurrentCharacterModel._isDead = false; unit_character_model.CurrentCharacterModel.SetReplaceImgState(true); unit_character_model.CurrentCharacterModel.ChangeModelAnim (unit_character_model.CurrentCharacterModel.anim_idle, true); }
public NDBarChart(RoleBarChart bc) { HP = new NumberData(bc.HP); MP = new NumberData(bc.MP); TP = new NumberData(bc.TP); }