public BattleStatus(UserCharacterStateData data, bool isMyParty) { Status.Add(EFFECT_ID.HP, data.maxHP); Status.Add(EFFECT_ID.SPEED, data.speed); Status.Add(EFFECT_ID.AVOID, data.avoid); NowHp = data.nowHp; if (isMyParty) { if (data.charType == CHAR_TYPE.SERVANT) { UserStageStateData statgData = UserDataManager.Inst.GetStageState(); UserServantData servant = UserDataManager.Inst.GetServantInfo(data.index); Status.Add(EFFECT_ID.STR, servant.status.basicStr); Status.Add(EFFECT_ID.DEX, servant.status.basicDex); Status.Add(EFFECT_ID.INT, servant.status.basicInt); Equipment(servant.equipmentDic, true); for (int i = 0; i < statgData.mySynergyList.Count; i++) { Buff(statgData.mySynergyList[i].id, true, 0); } for (int i = 0; i < servant.passiveSkillList.Count; i++) { Buff(servant.passiveSkillList[i].id, true); } StatusReCalculation(servant.level); Equipment(servant.equipmentDic, false); for (int i = 0; i < statgData.mySynergyList.Count; i++) { Buff(statgData.mySynergyList[i].id, false, 0); } for (int i = 0; i < servant.passiveSkillList.Count; i++) { Buff(servant.passiveSkillList[i].id, false); } } else if (data.charType == CHAR_TYPE.MONSTER) { if (data.position < 10) { UserStageStateData statgData = UserDataManager.Inst.GetStageState(); UserMonsterData monster = UserDataManager.Inst.GetMonsterInfo(data.index); Status.Add(EFFECT_ID.STR, monster.status.basicStr); Status.Add(EFFECT_ID.DEX, monster.status.basicDex); Status.Add(EFFECT_ID.INT, monster.status.basicInt); StatusReCalculation(monster.level); for (int i = 0; i < statgData.mySynergyList.Count; i++) { Buff(statgData.mySynergyList[i].id, true, (int)monster.tribeType); } for (int i = 0; i < monster.passiveSkillList.Count; i++) { Buff(monster.passiveSkillList[i].id, true); } StatusReCalculation(monster.level); for (int i = 0; i < statgData.mySynergyList.Count; i++) { Buff(statgData.mySynergyList[i].id, false, (int)monster.tribeType); } for (int i = 0; i < monster.passiveSkillList.Count; i++) { Buff(monster.passiveSkillList[i].id, false); } } } } else { Status.Add(EFFECT_ID.STR, data.status.basicStr); Status.Add(EFFECT_ID.DEX, data.status.basicDex); Status.Add(EFFECT_ID.INT, data.status.basicInt); } }
private void Update() { ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Input.GetMouseButtonDown(0)) { if (Physics.Raycast(ray, out hit)) { if (hit.transform.CompareTag("Character")) { if (!EventSystem.current.IsPointerOverGameObject()) { characterInfo.SetActive(true); selectIndex = hit.transform.GetComponent <CharacterIndex>().index; selectCharJob.sprite = blankImage; selectCharElement.sprite = blankImage; SelectGridReset(); BattleManager.Inst.grid[selectIndex].SetActive(true); UserCharacterStateData selectStateInfo = BattleManager.Inst.GetCharState(selectIndex); if (selectStateInfo.charType == CHAR_TYPE.SERVANT) { selectCharJob.sprite = CSVData.Inst.GetSpriteServantJob((SERVANT_JOB)selectStateInfo.job); selectCharImg.sprite = CSVData.Inst.DBServantDataDic[selectStateInfo.id].servantIcon; switch (selectStateInfo.job) { case 0: nemeText.text = "WhiteHand"; break; case 1: nemeText.text = "Warrior"; break; case 2: nemeText.text = "Thief"; break; case 3: nemeText.text = "Cleric"; break; case 4: nemeText.text = "Archer"; break; case 5: nemeText.text = "Magician"; break; } } else if (selectStateInfo.charType == CHAR_TYPE.MONSTER) { selectCharElement.sprite = CSVData.Inst.GetSpriteElementType((ELEMENT_TYPE)selectStateInfo.elementType); selectCharImg.sprite = CSVData.Inst.DBMonsterDataDic[selectStateInfo.id].monsterIcon; nemeText.text = CSVData.Inst.GetMonsterName(selectStateInfo.id); } for (int i = 0; i < BuffParent.childCount; i++) { Destroy(BuffParent.GetChild(i).gameObject); } if (selectIndex < 5) { levelText.text = UserDataManager.Inst.GetServantInfo(selectStateInfo.index).level.ToString(); foreach (int skill in BattleManager.Inst.status[selectIndex].buff) { Instantiate(BuffImage, BuffParent).GetComponent <Image>().sprite = CSVData.Inst.GetSkillPassiveData(skill).passiveIcon; } } else if (selectIndex < 10) { levelText.text = UserDataManager.Inst.GetMonsterInfo(selectStateInfo.index).level.ToString(); foreach (int skill in BattleManager.Inst.status[selectIndex].buff) { Instantiate(BuffImage, BuffParent).GetComponent <Image>().sprite = CSVData.Inst.GetSkillPassiveData(skill).passiveIcon; } } else { levelText.text = "?"; } if (selectIndex < 10) { BattleStatus status = BattleManager.Inst.status[selectIndex]; _Str.text = status.Status[EFFECT_ID.STR].ToString(); _Dex.text = status.Status[EFFECT_ID.DEX].ToString(); _Int.text = status.Status[EFFECT_ID.INT].ToString(); Atk.text = status.Status[EFFECT_ID.ATK].ToString(); mAtk.text = status.Status[EFFECT_ID.MATK].ToString(); Def.text = status.Status[EFFECT_ID.DEF].ToString(); mDef.text = status.Status[EFFECT_ID.MDEF].ToString(); Speed.text = status.Status[EFFECT_ID.AVOID].ToString(); CriPer.text = status.Status[EFFECT_ID.CRI_PER].ToString(); CriDmg.text = status.Status[EFFECT_ID.CRI_DMG].ToString(); } else if (BattleManager.Inst.adminMode) { BattleStatus status = BattleManager.Inst.status[selectIndex]; _Str.text = status.Status[EFFECT_ID.STR].ToString(); _Dex.text = status.Status[EFFECT_ID.DEX].ToString(); _Int.text = status.Status[EFFECT_ID.INT].ToString(); Atk.text = "?"; mAtk.text = "?"; Def.text = "?"; mDef.text = "?"; Speed.text = status.Status[EFFECT_ID.SPEED].ToString(); CriPer.text = "?"; CriDmg.text = "?"; } else { _Str.text = "?"; _Dex.text = "?"; _Int.text = "?"; Atk.text = "?"; mAtk.text = "?"; Def.text = "?"; mDef.text = "?"; Speed.text = "?"; CriPer.text = "?"; CriDmg.text = "?"; } } } else { if (!EventSystem.current.IsPointerOverGameObject()) { if (selectIndex >= 0) { BattleManager.Inst.grid[selectIndex].SetActive(false); } characterInfo.SetActive(false); } } } else { if (!EventSystem.current.IsPointerOverGameObject()) { if (selectIndex >= 0) { BattleManager.Inst.grid[selectIndex].SetActive(false); } characterInfo.SetActive(false); } } } if (selectIndex != -1) { if (BattleManager.Inst.status[selectIndex].Status[EFFECT_ID.HP] != 0) { selectHpBar.fillAmount = (float)BattleManager.Inst.status[selectIndex].NowHp / BattleManager.Inst.status[selectIndex].Status[EFFECT_ID.HP]; } selectHpText.text = BattleManager.Inst.status[selectIndex].NowHp.ToString(); } }