public void UpdateTxtValueProperties() { CharacterPlayer _tempPlayer = new CharacterPlayer(); CharacterPlayer.LoadCharacterPlayer(_tempPlayer); NewCharacterStatus _tempNewCharacter = new NewCharacterStatus(_tempPlayer); _tempNewCharacter.loadDynamicIndexToMid(); _nameCharacterText.text = CharacterInfo._instance._baseProperties.name.ToString(); _fightingPowerTxt.text = CharacterInfo._instance._baseProperties.AttributePoint.ToString(); _expText.text = CharacterInfo._instance._baseProperties.Level.ToString(); _vitalityTxt.text = "" + (float)_tempNewCharacter.getMidIndex(Indexes.vit_na); _strengthTxt.text = "" + (float)_tempNewCharacter.getMidIndex(Indexes.str_na); _intellText.text = "" + (float)_tempNewCharacter.getMidIndex(Indexes.int_na); _heathText.text = "" + (float)_tempNewCharacter.getMidIndex(Indexes.max_hp_na); _physicDmgText.text = "" + Mathf.RoundToInt(((float)_tempNewCharacter.getMidIndex(Indexes.min_pda_na) + (float)_tempNewCharacter.getMidIndex(Indexes.max_pda_na)) * 0.5f); //Debug.Log( _tempNewCharacter.getMidIndex(Indexes.min_pda_na) + " - " + _tempNewCharacter.getMidIndex(Indexes.max_pda_na)); _physicDefText.text = "" + Mathf.RoundToInt(((float)_tempNewCharacter.getMidIndex(Indexes.min_pde_na) + (float)_tempNewCharacter.getMidIndex(Indexes.max_pde_na)) * 0.5f); //_tempNewCharacter.getMidIndex(Indexes.min_pde_na) + " - " + _tempNewCharacter.getMidIndex(Indexes.max_pde_na); _magicDmgText.text = "" + Mathf.RoundToInt(((float)_tempNewCharacter.getMidIndex(Indexes.min_mda_na) + (float)_tempNewCharacter.getMidIndex(Indexes.max_mda_na)) * 0.5f); // _tempNewCharacter.getMidIndex(Indexes.min_mda_na) + " - " + _tempNewCharacter.getMidIndex(Indexes.max_mda_na); _magicDefText.text = "" + Mathf.RoundToInt(((float)_tempNewCharacter.getMidIndex(Indexes.min_mde_na) + (float)_tempNewCharacter.getMidIndex(Indexes.max_mde_na)) * 0.5f); //_tempNewCharacter.getMidIndex(Indexes.min_mde_na) + " - " + _tempNewCharacter.getMidIndex(Indexes.max_mde_na); }
private object getOperand(string e) {// loai bo cac truong hop la bieu thuc ( NewCharacterStatus vs = logic.getStatusByPlayerID(3 - owner.playerID); try {// co the la so float digit = Convert.ToSingle(e); return(digit); } catch (Exception ex) { try {// co the la boolean bool digit = Convert.ToBoolean(e); return(digit); } catch (Exception ex1) { // la bieu thuc hoac menh de string[] parts = e.Split(new string[] { "_" }, StringSplitOptions.RemoveEmptyEntries); if (parts[0] == "e") // chi so cua enemy { bool isClause = (parts[1] == "when"); if (isClause) { return(null);// truong hop nay khong bao gio xay ra } else { String index = ""; for (int i = 1; i < parts.Length; i++) { index += i == 1 ? parts[i] : "_" + parts[i]; } float digit = (float)vs.getMidIndex(index); return(digit); } } else { bool isClause = (parts[0] == "when"); if (isClause) { return(valueOfCondition(e)); } else { float digit = (float)owner.getMidIndex(e); return(digit); } } } } }
public void parseAtomics(NewCharacterStatus me, NewCharacterStatus you) { for (int i = 0; i < atomicEffects.Count; i++) { ArrayList atomics = parseAtomic((AtomicEffect)atomicEffects[i], me, you); if (atomics != null) // parse ra { AtomicEffect removeA = (AtomicEffect)atomicEffects[i]; atomicEffects.RemoveAt(i); i--; // remove Atomics // remove condition NewCharacterStatus target = removeA.enemy ? you : me; target.atomics[removeA.index].Remove(removeA); if (removeA.condition != "") { target.enableAtomics[removeA.condition].Remove(removeA); } // add Atomics // Add condition foreach (AtomicEffect atomic in atomics) { target = atomic.enemy ? you : me; ArrayList list = target.atomics.ContainsKey(atomic.index) ? target.atomics[atomic.index] : new ArrayList(); list.Add(atomic); target.atomics.Add(atomic.index, list); if (atomic.condition != "") { list = target.enableAtomics.ContainsKey(atomic.condition) ? target.enableAtomics[atomic.condition] : new ArrayList(); list.Add(atomic); target.enableAtomics.Add(atomic.condition, list); } } atomicEffects.AddRange(atomics); //foreach (AtomicEffect atomic in atomics) { // Console.WriteLine("parse to Atomic Skill "+atomic.index+" "+atomic.delta+" "+atomic.condition); //} } } //foreach (string key in me.enableAtomics.Keys) { // Console.WriteLine("me "+key); //} //foreach (string key in you.enableAtomics.Keys) //{ // Console.WriteLine("you "+key); //} }
public int getActionPoints(NewLogic logic) { int id = getID(); NewCharacterStatus player1 = logic.getStatusByPlayerID(1); NewCharacterStatus player2 = logic.getStatusByPlayerID(2); NewCharacterStatus target = player1.character.newSkillDic.ContainsKey("Skill" + id) && player1.character.newSkillDic["Skill" + id] == this ? player1 : null; if (target == null) { target = player2.character.newSkillDic.ContainsKey("Skill" + id) && player2.character.newSkillDic["Skill" + id] == this ? player2 : null; } if (target == null) { return(getActionPoints()); } else { return(Mathf.RoundToInt((float)target.getCurrentIndex("Skill" + id + "_aps"))); } }
public bool canCastSkill(NewLogic logic) { int id = getID(); NewCharacterStatus player1 = logic.getStatusByPlayerID(1); NewCharacterStatus player2 = logic.getStatusByPlayerID(2); NewCharacterStatus target = player1.character.newSkillDic.ContainsKey("Skill" + id) && player1.character.newSkillDic["Skill" + id] == this ? player1 : null; if (target == null) { target = player2.character.newSkillDic.ContainsKey("Skill" + id) && player2.character.newSkillDic["Skill" + id] == this ? player2 : null; } if (target == null) { return(true); } bool canAttack = target.canAttack(); return((getType() == SkillType.Buff && target.checkCondition(getCondition())) || (getType() == SkillType.Active && target.checkCondition(getCondition()) && canAttack)); }
private ArrayList parseAtomic(AtomicEffect atomic, NewCharacterStatus me, NewCharacterStatus you) { switch (atomic.index) { case "allaps": MyDictionary <string, NewSkill> skills = me.character.newSkillDic; ArrayList list = new ArrayList(); foreach (string skill in skills.Keys) { string index = atomic.index; string delta = atomic.delta; index = index.Replace("allaps", skill + "_aps"); delta = delta.Replace("allaps", skill + "_aps"); Debug.Log(atomic.index + " " + atomic.index + " " + atomic.delta + " " + index + " " + delta); AtomicEffect newAtomic = new AtomicEffect((NewEffect)atomic.parent, delta, index, atomic.enemy, atomic.condition, atomic.duration); list.Add(newAtomic); } return(list); default: return(null); } }
public ArrayList affect(NewCharacterStatus attStatus, NewCharacterStatus defStatus) { bool me = false; bool you = false; string name = data["name"].Value; string nick = data["nick"].Value; int level = Convert.ToInt32(data["level"].Value); int duration = data["duration"] == null? -1 : Convert.ToInt32(data["duration"].Value); string condition = data["condition"] == null ? "" : data["condition"].Value; NewEffect effect = new NewEffect(attStatus.playerID, name, nick, level, 2 * duration, condition); // vi tinh theo turn if (condition != "") { ArrayList enableSkills = attStatus.enableSkills.ContainsKey(condition) ? attStatus.enableSkills[condition] : new ArrayList(); enableSkills.Add(effect); attStatus.enableSkills.Add(condition, enableSkills); } JSONArray lines = (JSONArray)data["lines"]; foreach (JSONObject line in lines) { string delta = line["delta"].Value; string index = line["index"].Value; string con = line["condition"] == null ? "" : line["condition"].Value; bool enemy = line["enemy"] == null ? false : Convert.ToBoolean(line["enemy"].Value); duration = line["duration"] == null ? -1 : Convert.ToInt32(line["duration"].Value); AtomicEffect atomic = new AtomicEffect(effect, delta, index, enemy, con, duration); NewCharacterStatus targetStatus = null; if (enemy) { targetStatus = defStatus; // them effect vao danh sach effect // them danh sach atmoic // them danh sach fomula you = true; } else { targetStatus = attStatus; me = true; } //targetStatus.replaceEffect(name, effect); ArrayList atomics = targetStatus.atomics.ContainsKey(index) ? targetStatus.atomics[index] : new ArrayList(); atomics.Add(atomic); targetStatus.atomics.Add(index, atomics); effect.atomicEffects.Add(atomic); // tinh lai cong thuc //ArrayList formulas = defStatus.formulas.ContainsKey(index) ? defStatus.formulas[index] : new ArrayList(); //string formulas = !targetStatus.deltaFormulas.ContainsKey(index) ? "" : targetStatus.deltaFormulas[index] + " + "; //formulas += delta; //targetStatus.deltaFormulas.Add(index, formulas); if (con != "") { // them vao danh sach dieu kien ArrayList enableAtomics = targetStatus.enableAtomics.ContainsKey(con) ? targetStatus.enableAtomics[con] : new ArrayList(); enableAtomics.Add(atomic); targetStatus.enableAtomics.Add(con, enableAtomics); } } int playerID = 0; if (me && you) { playerID = attStatus.playerID + defStatus.playerID; } else if (me) { playerID = attStatus.playerID; } else if (you) { playerID = defStatus.playerID; } //NewEffect clone = effect.clone(); effect.playerID = playerID; if (me) { attStatus.replaceEffect(name, effect); } if (you) { defStatus.replaceEffect(name, effect); } // parse Special Atomics effect.parseAtomics(attStatus, defStatus); ArrayList result = new ArrayList(); result.Add(effect); return(result); }
public void setHP(NewCharacterStatus one, NewCharacterStatus two) { healthPlayer1 = one.playerID == 1 ? (float)one.getMidIndex(Indexes.hp_na) : (float)two.getMidIndex(Indexes.hp_na); healthPlayer2 = one.playerID == 2 ? (float)one.getMidIndex(Indexes.hp_na) : (float)two.getMidIndex(Indexes.hp_na); }
// public NewAdapter(Socket socket, Character me, Character you, int firstID = 1, bool isMaster = true, bool isOffline = false) : base(me, you, firstID, isMaster, isOffline) // { // this.socket = socket; // beginTurnRenderUpdate = () => { // if (this.isMaster) { // Log("BeginRender Master", "Finish"); // if (isMyTurn(attStatus)) // { // status = Status.ROLL_DICE; // if (beginResult.continued) // eventsTimeouter = createTimeouterForSendingData(Status.ROLL_DICE, Status.END_TURN, () => { }, 30 * 1000, 1, false); // else status = Status.END_TURN; // neu khong tiep tuc thi ket thuc luon // } // else // { // status = Status.ROLL_DICE; // if (!isOffline && beginResult.continued) // { // eventsTimeouter = createTimeouterForSendingData(Status.ROLL_DICE, Status.END_TURN, () => { }, 30 * 1000, 1, false); // } else if (!beginResult.continued) { // status = Status.END_TURN; // neu khong tiep tuc thi ket thuc luon // } // } // } else { // Log("BeginRender Slave", "Finish"); // if (isMyTurn(attStatus)) // { // status = Status.ROLL_DICE; // if (beginResult.continued) // den lan minh thi neu tieo tuc thi se tiep tuc // eventsTimeouter = createTimeouterForSendingData(Status.ROLL_DICE, Status.ROLL_DICE_WAITING, () => { }, 30 * 1000, 1,false); // else status = Status.END_TURN_WAITING; // khong tiep tuc thi chuyen toi status truoc EndTurn do slave khong hoat dong o EndTurn ngay // } // else { // status = Status.ROLL_DICE; // if (beginResult.continued) // den lan minh thi neu tieo tuc thi se tiep tuc // eventsTimeouter = createTimeouterForSendingData(Status.ROLL_DICE, Status.ROLL_DICE_WAITING, () => { }, 30 * 1000, 1, false); // else status = Status.END_TURN_WAITING; // khong tiep tuc thi chuyen toi status truoc EndTurn do slave khong hoat dong o EndTurn ngay // } // UnityMainThreadDispatcher.Instance().Enqueue(() => { // this.isReadyToNewPac = true; // processNewPacInSlave(); // }); // } // diceResult = null;//reset ket qua truoc // inResult = null;// reset ket qua truoc // }; // rollDiceRenderUpdate = () => // { // if (this.isMaster) // { // Log("RollDice Master", "Finish"); // if (isMyTurn(attStatus)) // { // status = Status.IN_TURN; // if (beginResult.continued) // eventsTimeouter = createTimeouterForSendingData(Status.IN_TURN, Status.END_TURN, () => { }, 30 * 1000, 1, false); // else status = Status.END_TURN; // neu khong tiep tuc thi ket thuc luon // } // else // { // status = Status.IN_TURN; // if (!isOffline && beginResult.continued) // { // eventsTimeouter = createTimeouterForSendingData(Status.IN_TURN, Status.END_TURN, () => { }, 30 * 1000, 1, false); // } else if (!beginResult.continued) { // status = Status.END_TURN; // neu khong tiep tuc thi ket thuc luon // } // } // } // else // { // Log("RollDice Slave", "Finish"); // if (isMyTurn(attStatus)) // { // status = Status.IN_TURN; // if (beginResult.continued) // den lan minh thi neu tieo tuc thi se tiep tuc // eventsTimeouter = createTimeouterForSendingData(Status.IN_TURN, Status.IN_TURN_WAITING, () => { }, 30 * 1000, 1, false); // else status = Status.END_TURN_WAITING;// khong tiep tuc thi chuyen toi status truoc EndTurn do slave khong hoat dong o EndTurn ngay // } // else { // status = Status.IN_TURN; // if (beginResult.continued) // den lan minh thi neu tieo tuc thi se tiep tuc // eventsTimeouter = createTimeouterForSendingData(Status.IN_TURN, Status.IN_TURN_WAITING, () => { }, 30 * 1000, 1, false); // else status = Status.END_TURN_WAITING;// khong tiep tuc thi chuyen toi status truoc EndTurn do slave khong hoat dong o EndTurn ngay // } // UnityMainThreadDispatcher.Instance().Enqueue(() => { // this.isReadyToNewPac = true; // processNewPacInSlave(); // }); // } // inResult = null; // }; // inTurnRenderUpdate = () => { //if (this.isMaster) //{ // Log("InturnRender Master","Finish"); // if (isMyTurn(attStatus)) // { // status = Status.END_TURN; // } // else status = Status.END_TURN; //} //else //{ // Log("InturnRender Slave", "Finish"); // if (isMyTurn(attStatus)) status = Status.END_TURN_WAITING; // else status = Status.END_TURN_WAITING; // UnityMainThreadDispatcher.Instance().Enqueue(() => { // this.isReadyToNewPac = true; // processNewPacInSlave(); // }); //} // endResult = null; // }; // endTurnRenderUpdate = () => { //NewCharacterStatus temp = attStatus; //attStatus = defStatus; //defStatus = temp; // NewCharacterStatus one = logic.getStatusByPlayerID(me.playerId); // NewCharacterStatus two = logic.getStatusByPlayerID(you.playerId); // foreach (string key in one.character.newSkillDic.Keys) { // one.character.newSkillDic[key].decreaseCoolDown(); // } // foreach (string key in two.character.newSkillDic.Keys) // { // two.character.newSkillDic[key].decreaseCoolDown(); // } // // phai cap nhat coolDown khi doi phuong va minh chon skill // if (this.isMaster) { // Log("EndturnRender Mater", "Finish"); // status = Status.BEGIN_TURN; // } else { // Log("EndturnRender Slave", "Finish"); // status = Status.BEGIN_TURN_WAITING; // UnityMainThreadDispatcher.Instance().Enqueue(() => { // this.isReadyToNewPac = true; // processNewPacInSlave(); // }); // } //if (endResult.combatResult > 0) //{ // Log("Ket qua", " Player " + endResult.combatResult + " win "); // status = Status.FINISHED; // //RunScriptGameKimCuong._instance.exportResult(endResult.combatResult == me.playerId); //} // beginResult = null; // }; // prefab = Resources.Load("Text") as GameObject; //} public NewAdapter(Socket socket, CharacterPlayer me, CharacterPlayer you, int firstID = 1, bool isMaster = true, bool isOffline = false) : base(me, you, firstID, isMaster, isOffline) { this.socket = socket; beginTurnRenderUpdate = () => { // get beginTurn result and display BattleSceneController.Instance.BeginTurnRender(); if (this.isMaster) { Log("BeginRender Master", "Finish"); if (isMyTurn(attStatus)) { status = Status.ROLL_DICE; if (beginResult.continued) { eventsTimeouter = createTimeouterForSendingData(Status.ROLL_DICE, Status.END_TURN, () => { }, 30 * 1000, 1, false); } else { status = Status.END_TURN; // neu khong tiep tuc thi ket thuc luon } } else { status = Status.ROLL_DICE; if (!isOffline && beginResult.continued) { eventsTimeouter = createTimeouterForSendingData(Status.ROLL_DICE, Status.END_TURN, () => { }, 30 * 1000, 1, false); } else if (!beginResult.continued) { status = Status.END_TURN; // neu khong tiep tuc thi ket thuc luon } } } else { Log("BeginRender Slave", "Finish"); if (isMyTurn(attStatus)) { status = Status.ROLL_DICE; if (beginResult.continued) // den lan minh thi neu tieo tuc thi se tiep tuc { eventsTimeouter = createTimeouterForSendingData(Status.ROLL_DICE, Status.ROLL_DICE_WAITING, () => { }, 30 * 1000, 1, false); } else { status = Status.END_TURN_WAITING; // khong tiep tuc thi chuyen toi status truoc EndTurn do slave khong hoat dong o EndTurn ngay } } else { status = Status.ROLL_DICE; if (beginResult.continued) // den lan minh thi neu tieo tuc thi se tiep tuc { eventsTimeouter = createTimeouterForSendingData(Status.ROLL_DICE, Status.ROLL_DICE_WAITING, () => { }, 30 * 1000, 1, false); } else { status = Status.END_TURN_WAITING; // khong tiep tuc thi chuyen toi status truoc EndTurn do slave khong hoat dong o EndTurn ngay } } processNewPacInSlave(); } diceResult = null; //reset ket qua truoc inResult = null; // reset ket qua truoc }; rollDiceRenderUpdate = () => { BattleSceneController.Instance.DisplayDicePoint(BattleSceneController.Instance.adapter.getDiceResult().dice1, BattleSceneController.Instance.adapter.getDiceResult().dice2, BattleSceneController.Instance.adapter.getDiceResult().dice3); }; inTurnRenderUpdate = () => { BattleSceneController.Instance.RenderDataBattleState(); //if (this.isMaster) //{ // Log("InturnRender Master", "Finish"); // if (isMyTurn(attStatus)) // { // status = Status.END_TURN; // } // else status = Status.END_TURN; //} //else //{ // Log("InturnRender Slave", "Finish"); // if (isMyTurn(attStatus)) status = Status.END_TURN_WAITING; // else status = Status.END_TURN_WAITING; //} //endResult = null; }; endTurnRenderUpdate = () => { NewCharacterStatus temp = attStatus; attStatus = defStatus; defStatus = temp; NewCharacterStatus one = logic.getStatusByPlayerID(me.playerId); NewCharacterStatus two = logic.getStatusByPlayerID(you.playerId); foreach (string key in one.character.newSkillDic.Keys) { one.character.newSkillDic[key].decreaseCoolDown(); } foreach (string key in two.character.newSkillDic.Keys) { two.character.newSkillDic[key].decreaseCoolDown(); } // phai cap nhat coolDown khi doi phuong va minh chon skill BattleSceneController.Instance.UpdateSkillCooldownOnCharacter(); if (endResult != null) { BattleSceneController.Instance.ReleaseEffectExpire(endResult.releasedState); } if (this.isMaster) { Log("EndturnRender Mater", "Finish"); status = Status.BEGIN_TURN; } else { Log("EndturnRender Slave", "Finish"); status = Status.BEGIN_TURN_WAITING; processNewPacInSlave(); } if (endResult.combatResult > 0) { Log("Ket qua", " Player " + endResult.combatResult + " win "); status = Status.FINISHED; // not finish when someone leave battle if (sendingQueue.Count == 0) { BattleSceneController.Instance.ShowGameOverPanel(endResult.combatResult); } else { UnityMainThreadDispatcher.Instance().Enqueue(() => { BattleSceneController.Instance.ShowGameOverPanel(endResult.combatResult); }); } //RunScriptGameKimCuong._instance.exportResult(endResult.combatResult == me.playerId); } beginResult = null; }; prefab = Resources.Load("Text") as GameObject; }
public ConditionManager(NewCharacterStatus char_Status, NewLogic logic) { this.owner = char_Status; this.logic = logic; }
public bool valueOfCondition(string condition) { NewCharacterStatus op_status = logic.getStatusByPlayerID(3 - owner.playerID); switch (condition) { case "": return(true); case Critical: return(false); case Melee: return(owner.character.characteristic.Type == Characteristic.CharacterType.MELE); case Ranger: return(owner.character.characteristic.Type == Characteristic.CharacterType.RANGER); case Be_Hit: case Hit: return(false); // khong the tinh toan chi co tat bat nen de mac dinh la false case Abnormal: return(valueOfCondition(Impotent) || valueOfCondition(Hypnotic) || valueOfCondition(Rot) || valueOfCondition(Pain) || valueOfCondition(Bleed) || valueOfCondition(Crazy) || valueOfCondition(Dull) || valueOfCondition(Stun) || valueOfCondition(Frostbite) || valueOfCondition(Burn) || valueOfCondition(Shock) || valueOfCondition(Poisoning) || valueOfCondition(Knockback) || valueOfCondition(Immobilization) || valueOfCondition(Blind) || valueOfCondition(Freezing) || valueOfCondition(Glamour) || valueOfCondition(Fear) || valueOfCondition(Disease) || valueOfCondition(Sleep) ); case Impotent: return(owner.op_effects.ContainsKey(NewEffect.Impotent)); case Hypnotic: return(owner.op_effects.ContainsKey(NewEffect.Hypnotic)); case Rot: return(owner.op_effects.ContainsKey(NewEffect.Rot)); case Pain: return(owner.op_effects.ContainsKey(NewEffect.Pain)); case Bleed: return(owner.op_effects.ContainsKey(NewEffect.Bleed)); case Crazy: return(owner.op_effects.ContainsKey(NewEffect.Crazy)); case Dull: return(owner.op_effects.ContainsKey(NewEffect.Dull)); case Stun: return(owner.op_effects.ContainsKey(NewEffect.Stun)); case Frostbite: return(owner.op_effects.ContainsKey(NewEffect.Frostbite)); case Burn: return(owner.op_effects.ContainsKey(NewEffect.Burn)); case Shock: return(owner.op_effects.ContainsKey(NewEffect.Shock)); case Poisoning: return(owner.op_effects.ContainsKey(NewEffect.Poisoning)); case Knockback: return(owner.op_effects.ContainsKey(NewEffect.Knockback)); case Immobilization: return(owner.op_effects.ContainsKey(NewEffect.Immobilization)); case Blind: return(owner.op_effects.ContainsKey(NewEffect.Blind)); case Freezing: return(owner.op_effects.ContainsKey(NewEffect.Freezing)); case Glamour: return(owner.op_effects.ContainsKey(NewEffect.Glamour)); case Fear: return(owner.op_effects.ContainsKey(NewEffect.Fear)); case Disease: return(owner.op_effects.ContainsKey(NewEffect.Disease)); case Sleep: return(owner.op_effects.ContainsKey(NewEffect.Sleep)); case E_Abnormal: return(valueOfCondition(E_Impotent) || valueOfCondition(E_Hypnotic) || valueOfCondition(E_Rot) || valueOfCondition(E_Pain) || valueOfCondition(E_Bleed) || valueOfCondition(E_Crazy) || valueOfCondition(E_Dull) || valueOfCondition(E_Stun) || valueOfCondition(E_Frostbite) || valueOfCondition(E_Burn) || valueOfCondition(E_Shock) || valueOfCondition(E_Poisoning) || valueOfCondition(E_Knockback) || valueOfCondition(E_Immobilization) || valueOfCondition(E_Blind) || valueOfCondition(E_Freezing) || valueOfCondition(E_Glamour) || valueOfCondition(E_Fear) || valueOfCondition(E_Disease) || valueOfCondition(E_Sleep) ); case E_Impotent: return(op_status.op_effects.ContainsKey(NewEffect.Impotent)); case E_Hypnotic: return(op_status.op_effects.ContainsKey(NewEffect.Hypnotic)); case E_Rot: return(op_status.op_effects.ContainsKey(NewEffect.Rot)); case E_Pain: return(op_status.op_effects.ContainsKey(NewEffect.Pain)); case E_Bleed: return(op_status.op_effects.ContainsKey(NewEffect.Bleed)); case E_Crazy: return(op_status.op_effects.ContainsKey(NewEffect.Crazy)); case E_Dull: return(op_status.op_effects.ContainsKey(NewEffect.Dull)); case E_Stun: return(op_status.op_effects.ContainsKey(NewEffect.Stun)); case E_Frostbite: return(op_status.op_effects.ContainsKey(NewEffect.Frostbite)); case E_Burn: return(op_status.op_effects.ContainsKey(NewEffect.Burn)); case E_Shock: return(op_status.op_effects.ContainsKey(NewEffect.Shock)); case E_Poisoning: return(op_status.op_effects.ContainsKey(NewEffect.Poisoning)); case E_Knockback: return(op_status.op_effects.ContainsKey(NewEffect.Knockback)); case E_Immobilization: return(op_status.op_effects.ContainsKey(NewEffect.Immobilization)); case E_Blind: return(op_status.op_effects.ContainsKey(NewEffect.Blind)); case E_Freezing: return(op_status.op_effects.ContainsKey(NewEffect.Freezing)); case E_Glamour: return(op_status.op_effects.ContainsKey(NewEffect.Glamour)); case E_Fear: return(op_status.op_effects.ContainsKey(NewEffect.Fear)); case E_Disease: return(op_status.op_effects.ContainsKey(NewEffect.Disease)); case E_Sleep: return(op_status.op_effects.ContainsKey(NewEffect.Sleep)); //case Hp_greater_10percent_maxhp: // return (float)owner.getCurrentIndex(Indexes.hp_na) > 0.1f * (float)owner.getCurrentIndex(Indexes.maX_hp_na); //case Hp_less_21percent_maxhp: //return (float)owner.getCurrentIndex(Indexes.hp_na) < 0.21f * (float)owner.getCurrentIndex(Indexes.maX_hp_na); case Shield_block_1_round: return(false); } return(calcuateLogicExpression(condition)); // dieu kien rong thi bao gio cung dung }