示例#1
0
        //public static PlayerItem CreateActorItemWithLevel(ICharacter itemData, int level)
        //{
        //    if (level <= 0)
        //        level = 1;
        //    //var itemTier = itemData.itemTier;
        //    var sumExp = 0;
        //    var result = new PlayerItem(PlayerItem.ItemType.character);
        //    result.itemType = PlayerItem.ItemType.character;
        //    for (var i = 1; i < level; ++i)
        //    {
        //        //sumExp += itemTier.expTable.Calculate(i + 1, itemTier.maxLevel);
        //        sumExp += Const.NextEXP;
        //    }
        //    result.ItemID = itemData.guid;
        //    //if(!isplayer)
        //    //result.GUID = itemData.;
        //    result.Exp = sumExp;
        //    result.ExtrAttributesData = GetExtraAttributes(type);
        //    return result;
        //}
        static CalculationAttributes GetExtraAttributes(Const.StageType type)
        {
            switch (type)
            {
            case Const.StageType.Normal:
                return(null);

                break;

            case Const.StageType.Tower:
                return(FormulaUtils.GetTowerExtraAttributes(false));

                break;
            }
            return(null);
        }
示例#2
0
 public BattleItem(IPlayerHasCharacters ihascharacter, Const.StageType type)
 {
     this.ihascharacter = ihascharacter;
     skills             = ihascharacter.Character.GetCloneCustomSkills();
     isEnemy            = false;
 }
示例#3
0
 public BattleItem(ICharacter icharacter, int level, Const.StageType type)
 {
     this.icharacter = icharacter;
     skills          = icharacter.GetCloneCustomSkills();
     isEnemy         = true;
 }
示例#4
0
 /// <summary>
 /// StageMasterを検索
 /// </summary>
 public StageMaster FindByStageType(Const.StageType stageType) =>
 Entities.Find(stageMaster => stageMaster.StageType == stageType);
示例#5
0
    public void DoFinishStage(Const.StageType stagetype, string session, ushort battleResult, int deadCharacters, UnityAction <FinishStageResult> onFinish)
    {
        //var cplayer = IPlayer.CurrentPlayer;
        //var playerId = cplayer.guid;
        //var loginToken = cplayer.loginToken;

        //var result = new FinishStageResult();
        //var gameDb = GameInstance.GameDatabase;
        //var player = GameInstance.dbLogin.GetPlayerByLoginToken(playerId, loginToken);
        //var battle = GetPlayerBattleBySession(playerId, session);
        //if (player == null)
        //    result.error = GameServiceErrorCode.INVALID_LOGIN_TOKEN;
        //else if (battle == null)
        //    result.error = GameServiceErrorCode.INVALID_BATTLE_SESSION;
        //else
        //{
        //    var rating = 0;
        //    battle.BattleResult = battleResult;
        //    if (battleResult == BATTLE_RESULT_WIN)
        //    {
        //        rating = 3 - deadCharacters;
        //        if (rating <= 0)
        //            rating = 1;
        //    }
        //    battle.Rating = rating;
        //    result.rating = rating;
        //    GameInstance.dbDataUtils.ExecuteNonQuery(@"UPDATE playerBattle SET battleResult=@battleResult, rating=@rating WHERE id=@id",
        //        new SqliteParameter("@battleResult", battle.BattleResult),
        //        new SqliteParameter("@rating", battle.Rating),
        //        new SqliteParameter("@id", battle.Id));
        //    if (battleResult == BATTLE_RESULT_WIN)
        //    {
        //        BaseStage stage = null;
        //        switch (stagetype)
        //        {
        //            case Const.StageType.Normal:
        //                stage = gameDb.Stages[battle.DataId];
        //                break;
        //            case Const.StageType.Tower:
        //                stage = gameDb.towerStages[0];
        //                break;
        //        }
        //        //var stage = gameDb.Stages[battle.GUID];
        //        var rewardPlayerExp = stage.rewardPlayerExp;
        //        result.rewardPlayerExp = rewardPlayerExp;
        //        // Player exp
        //        player.exp += rewardPlayerExp;
        //        GameInstance.dbDataUtils.ExecuteNonQuery(@"UPDATE player SET exp=@exp WHERE id=@playerId",
        //            new SqliteParameter("@exp", player.exp),
        //            new SqliteParameter("@playerId", playerId));
        //        result.player = player;
        //        // Character exp
        //        var countFormation = GameInstance.dbDataUtils.ExecuteScalar(@"SELECT COUNT(*) FROM playerFormation WHERE playerId=@playerId AND Guid=@Guid",
        //            new SqliteParameter("@playerId", playerId),
        //            new SqliteParameter("@Guid", player.selectedFormation));
        //        if (countFormation != null && (long)countFormation > 0)
        //        {
        //            var devivedExp = (int)(stage.rewardCharacterExp / (long)countFormation);
        //            result.rewardCharacterExp = devivedExp;

        //            var formations = GameInstance.dbDataUtils.ExecuteReader(@"SELECT itemId FROM playerFormation WHERE playerId=@playerId AND Guid=@Guid",
        //                new SqliteParameter("@playerId", playerId),
        //                new SqliteParameter("@Guid", player.selectedFormation));
        //            while (formations.Read())
        //            {
        //                var itemId = formations.GetString(0);
        //                var character = GameInstance.dbPlayerData.GetPlayerCharacterItemById(itemId);
        //                if (character != null)
        //                {
        //                    character.Exp += devivedExp;
        //                    GameInstance.dbDataUtils.ExecuteNonQuery(@"UPDATE playerHasCharacters SET exp=@exp WHERE Guid=@Guid",
        //                        new SqliteParameter("@exp", character.Exp),
        //                        new SqliteParameter("@Guid", character.GUID));
        //                    result.updateItems.Add(character);
        //                }
        //            }
        //        }
        //        // Soft currency
        //        var softCurrency = GameInstance.dbPlayerData.GetCurrency(playerId, gameDb.softCurrency.id);
        //        var rewardSoftCurrency = Random.Range(stage.randomSoftCurrencyMinAmount, stage.randomSoftCurrencyMaxAmount);
        //        result.rewardSoftCurrency = rewardSoftCurrency;
        //        softCurrency.amount += rewardSoftCurrency;
        //        GameInstance.dbDataUtils.ExecuteNonQuery(@"UPDATE playerCurrency SET amount=@amount WHERE id=@id",
        //            new SqliteParameter("@amount", softCurrency.amount),
        //            new SqliteParameter("@id", softCurrency.id));
        //        result.updateCurrencies.Add(softCurrency);
        //        // Items
        //        for (var i = 0; i < stage.rewardItems.Length; ++i)
        //        {
        //            var rewardItem = stage.rewardItems[i];
        //            if (rewardItem == null || rewardItem.item == null || Random.value > rewardItem.randomRate)
        //                continue;
        //            var createItems = new List<PlayerItem>();
        //            var updateItems = new List<PlayerItem>();
        //todo 战斗胜利后的结算
        //if (AddItems(player.characterGuid, rewardItem.characterGuid, rewardItem.amount, out createItems, out updateItems))
        //{
        //    foreach (var createEntry in createItems)
        //    {
        //        createEntry.characterGuid = System.Guid.NewGuid().ToString();
        //        ExecuteNonQuery(@"INSERT INTO playerItem (id, playerId, Guid, amount, exp, equipItemGuid, equipPosition) VALUES (@id, @playerId, @Guid, @amount, @exp, @equipItemId, @equipPosition)",
        //            new SqliteParameter("@id", createEntry.characterGuid),
        //            new SqliteParameter("@playerId", createEntry.PlayerId),
        //            new SqliteParameter("@Guid", createEntry.GUID),
        //            new SqliteParameter("@amount", createEntry.Amount),
        //            new SqliteParameter("@exp", createEntry.Exp),
        //            new SqliteParameter("@equipItemGuid", createEntry.equipItemId),
        //            new SqliteParameter("@equipPosition", createEntry.EquipPosition));
        //        result.rewardItems.Add(createEntry);
        //        result.createItems.Add(createEntry);
        //        HelperUnlockItem(player.characterGuid, rewardItem.characterGuid);
        //    }
        //    foreach (var updateEntry in updateItems)
        //    {
        //        ExecuteNonQuery(@"UPDATE playerItem SET playerId=@playerId, Guid=@Guid, amount=@amount, exp=@exp, equipItemGuid=@equipItemGuid, equipPosition=@equipPosition WHERE id=@id",
        //            new SqliteParameter("@playerId", updateEntry.PlayerId),
        //            new SqliteParameter("@Guid", updateEntry.GUID),
        //            new SqliteParameter("@amount", updateEntry.Amount),
        //            new SqliteParameter("@exp", updateEntry.Exp),
        //            new SqliteParameter("@equipItemGuid", updateEntry.equipItemGuid),
        //            new SqliteParameter("@equipPosition", updateEntry.EquipPosition),
        //            new SqliteParameter("@id", updateEntry.characterGuid));
        //        result.rewardItems.Add(updateEntry);
        //        result.updateItems.Add(updateEntry);
        //    }
        //}
        // End add item condition
        //    }
        //    // End reward items loop
        //    var clearedStage = HelperClearStage(playerId, stage.Id, rating);
        //    result.clearStage = clearedStage;
        //}
        //}
        //onFinish(result);
    }
示例#6
0
    public static PlayerItemTemp CreateActorItemWithLevel(ICharacter itemData, int level, Const.StageType type, bool isplayer)
    {
        if (level <= 0)
        {
            level = 1;
        }
        //var itemTier = itemData.itemTier;
        var sumExp = 0;
        var result = new PlayerItemTemp(ItemType.character);

        result.itemType = ItemType.character;
        for (var i = 1; i < level; ++i)
        {
            //sumExp += itemTier.expTable.Calculate(i + 1, itemTier.maxLevel);
            sumExp += Const.NextEXP;
        }
        result.ItemID = itemData.guid;
        //if(!isplayer)
        //result.GUID = itemData.;
        result.Exp = sumExp;
        result.ExtrAttributesData = GetExtraAttributes(type);
        return(result);
    }