コード例 #1
0
    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);
    }
コード例 #2
0
        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);
                        }
                    }
                }
            }
        }
コード例 #3
0
ファイル: NewEffect.cs プロジェクト: vinhpsviguys/sample
        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);
            //}
        }
コード例 #4
0
        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")));
            }
        }
コード例 #5
0
        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));
        }
コード例 #6
0
ファイル: NewEffect.cs プロジェクト: vinhpsviguys/sample
        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);
            }
        }
コード例 #7
0
        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);
        }
コード例 #8
0
 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);
 }
コード例 #9
0
ファイル: NewAdapter.cs プロジェクト: vinhpsviguys/sample
    // 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;
    }
コード例 #10
0
 public ConditionManager(NewCharacterStatus char_Status, NewLogic logic)
 {
     this.owner = char_Status;
     this.logic = logic;
 }
コード例 #11
0
        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
        }