コード例 #1
0
        public void BattlePlayerWin(Transform[] monsterTransArray)
        {
            (battlePlayerCtr.agent as Player).DestroyEquipmentInBagAttachedSkills();

            battlePlayerCtr.enemy = null;

            battleMonsterCtr.enemy = null;

//			battlePlayerCtr.RemoveTriggeredSkillEffect ();
//			battleMonsterCtr.RemoveTriggeredSkillEffect ();

            FightEndCallBacks();

            battlePlayerCtr.agent.ResetBattleAgentProperties(false);

            mapGenerator.AddAllEffectAnimToPool();

            if (monsterTransArray.Length <= 0)
            {
                return;
            }

            Transform trans = monsterTransArray [0];

            Vector3 monsterPos = trans.GetComponent <BattleMonsterController> ().originalPos;

            // 位置偏差修正
            int X = Mathf.RoundToInt(monsterPos.x);
            int Y = Mathf.RoundToInt(monsterPos.y);

            mapGenerator.mapWalkableInfoArray [X, Y] = 1;

            Player player = battlePlayerCtr.agent as Player;

            player.experience += trans.GetComponent <Monster> ().rewardExperience; //更新玩家经验值

            bool isLevelUp = player.LevelUpIfExperienceEnough();                   //判断是否升级

            if (isLevelUp)
            {
                PlayLevelUpAnim();
            }


            Item award = null;

            // 怪物是普通怪
            if (monsterTransArray [0].GetComponent <Monster> ().monsterId < 50)
            {
                int characterIndex = Random.Range(0, 26);

                char character = (char)(characterIndex + CommonData.aInASCII);

                award = new CharacterFragment(character, 1);
            }
            else
            {
                int randomCraftingRecipesId = Random.Range(450, 460);

                award = Item.NewItemWith(randomCraftingRecipesId, 1);
            }


            mapGenerator.SetUpAwardInMap(award, monsterPos);

            ResetCamareAndContinueMove(battleMonsterCtr.originalPos);
        }