Esempio n. 1
0
    public void LevelUp()
    {
        CurrentLevelNumber++;

        CurrentStageNumber = 1;

        GameLevelModel level = GetLevelModel(CurrentLevelNumber);

        level.m_LevelNumber = CurrentLevelNumber;
        CurrentLevelModel   = level;
    }
    private void Awake()
    {
        controllers  = GetComponents <BaseGameController>();
        dependencies = new DependencyContainer();
        view         = FindObjectOfType <GameLevelView>();
        model        = GameLevelModel.Create(view.Read());
        dependencies.Register(model);
        dependencies.Register(view);
        dependencies.Register(Camera.main);
        dependencies.RegisterMultiple(controllers);
        dependencies.InjectDependencies();

        foreach (var controller in controllers)
        {
            controller.Subscribe();
        }
    }
Esempio n. 3
0
    //参加战斗的2方队列
    void InitFightList(RoleBase[] player, RoleBase[] ai)
    {
        for (int i = 0; i < playerRoles.Length; i++)
        {
            playerRoles[i] = player[i];
            var role = playerRoles[i];
            if (role != null)
            {
                /*role.SetGo(playerGos[i]);*/
                role.BeginFight();
                role.CopyAllValue();
                role.SetFightIndex(EnumType.FightListType.Player, i);
            }
        }
        GameLevelModel gameLevel = ModelManager.Get <GameLevelModel>("GameLevelModel");
        //如果进入随机关卡了 每一关敌人的全属性就+value%
        int curDis = gameLevel.GetLevel() - GameLevelModel.MaxLevel;

        float value = 10f;

        for (int i = 0; i < aiRoles.Length; i++)
        {
            aiRoles[i] = null;

            aiRoles[i] = ai[i];

            var role = aiRoles[i];

            if (role != null)
            {
                if (curDis > 0)
                {
                    for (int j = 0; j < 9; j++)
                    {
                        role.attributes[j] *= (1 + curDis * value / 100);
                    }
                }

                role.BeginFight();
                role.SetFightIndex(EnumType.FightListType.Ai, i);
            }
        }
    }
Esempio n. 4
0
    public static BaseGameModelManager GetGameMode(GameLevelModel model)
    {
        BaseGameModelManager ret = null;

        switch (model)
        {
        case GameLevelModel.endless:
            ret = new GameModelEndless();
            break;

        case GameLevelModel.level:
            ret = new GameModelLevel();
            break;

        default:
            ret = new BaseGameModelManager();
            break;
        }

        ret.Init();
        return(ret);
    }
Esempio n. 5
0
    //获得关卡奖励(不包括金币,金币奖励在 playerData类中处理)
    void GetReward(dynamic dy)
    {
        GameLevelModel gameLevel  = ModelManager.Get <GameLevelModel>("GameLevelModel");
        EquipModel     equipModel = ModelManager.Get <EquipModel>("EquipModel");
        int            curLevel   = gameLevel.GetLevel();

        if (curLevel % ConstConfig.equipRewardLevel == 0)
        {
            //获得装备奖励
            //第一个装备的id为1,随机直接int里随机

            //获得随机3件装备
            List <Equip> equipIds = new List <Equip>(MaxEquipReward);

            //概率 30 30 20 10 10
            int gailv1 = 30;  //1-30
            int gailv2 = 60;  //31-60
            int gailv3 = 80;  //61-80
            int gailv4 = 90;  //81-90
            int gailv5 = 100; //91-100

            for (int i = 0; i < MaxEquipReward; i++)
            {
                int randomRes = Random.Range(1, 101);

                int resLevel = 0;

                if (randomRes >= 1 && randomRes <= gailv1)
                {
                    resLevel = 1;
                }
                else if (randomRes >= gailv1 + 1 && randomRes <= gailv2)
                {
                    resLevel = 2;
                }
                else if (randomRes >= gailv2 + 1 && randomRes <= gailv3)
                {
                    resLevel = 3;
                }
                else if (randomRes >= gailv3 + 1 && randomRes <= gailv4)
                {
                    resLevel = 4;
                }
                else if (randomRes >= gailv4 + 1 && randomRes <= gailv5)
                {
                    resLevel = 5;
                }
                var targetIds = EquipModel.equipIds[resLevel];

                int id = targetIds[Random.Range(0, targetIds.Count)];

                Equip e = new Equip(id);
                equipIds.Add(e);
                equipModel.AddEquip(e);
            }

            ViewManager.Get <WndFightOver>("WndFightOver").ShowEquipReward(equipIds);
        }
        if (curLevel % ConstConfig.talentRewardLevel == 0)
        {
            if (ModelManager.Get <TalentModel>("TalentModel").canUseTalent.Count > 0)
            {
                ViewManager.Get("WndTalent").SetVisible(true);
            }
        }
    }