Beispiel #1
0
    private void DealYinKeyDown(string yinName, Yin yin, GameEntity e, GameEntity yinListUi)
    {
        if (!e.isMakingYin)
        {
            e.isMakingYin = true;
            foreach (var ui in _context.GetGroup(GameMatcher.UiRootId))
            {
                if (!ui.hasName)
                {
                    continue;
                }
                if (ui.name.text != "NinjutsuQTE")
                {
                    continue;
                }

                ui.ReplaceActive(true);
                break;
            }
        }

        e.yinList.list.Add(yin);
//        e.ReplaceChaKuRaExpend(1.0f);
        var newChaKuRaExpend = new MatchDataChaKuRaExpendControl
        {
            matchId       = _context.currentMatchData.value.customMatchId,
            userId        = _context.currentPlayerId.value,
            chaKuRaExpend = 1.0f
        };

        _context.CreateEntity().ReplaceSendMatchData(1007, Utilities.ToJson(newChaKuRaExpend));


        var uiName = "NinjutsuYin_" + yinName + "_" + _context.currentInNumber.value;
        var yinUI  = _context.CreateEntity();

        yinUI.ReplaceName(uiName);
        yinUI.ReplaceParentEntity(yinListUi);
        yinUI.ReplaceUiOpen("NinjutsuYin" + yinName);
        yinUI.ReplaceUiMoveAction(uiName, false, new Vector2(_context.currentInNumber.value * 100, 0), 0.5f * (9 - _context.currentInNumber.value) / 9);
        yinUI.ReplaceUiFadeAction(uiName, 1.0f, 0.2f);

        _context.ReplaceCurrentInNumber(_context.currentInNumber.value + 1);
    }
    protected override void Execute(List <GameEntity> entities)
    {
        if (_context.hasBattleOver)
        {
            return;
        }

        foreach (var e in entities)
        {
            var jutsuConfig   = _context.ninjutsuAttributes.dic[e.name.text];
            var originator    = e.originator.value;
            var chaKuRaCoast  = jutsuConfig.chaKuRaCoast;
            var taiRyuKuCoast = jutsuConfig.taiRyuKuCoast;

            if (originator.isDead)
            {
                continue;
            }
            if (!originator.hasId)
            {
                e.isDestroy = true;
                continue;
            }

            if (originator.chaKuRaCurrent.value >= chaKuRaCoast)
            {
//                originator.ReplaceChaKuRaExpend(chaKuRaCoast);
                var newChaKuRaExpend = new MatchDataChaKuRaExpendControl
                {
                    matchId       = _context.currentMatchData.value.customMatchId,
                    userId        = originator.id.value,
                    chaKuRaExpend = chaKuRaCoast
                };
                _context.CreateEntity().ReplaceSendMatchData(1007, Utilities.ToJson(newChaKuRaExpend));
            }
            else
            {
//                originator.ReplaceChaKuRaExpend(originator.chaKuRaCurrent.value);
                var newChaKuRaExpend = new MatchDataChaKuRaExpendControl
                {
                    matchId       = _context.currentMatchData.value.customMatchId,
                    userId        = originator.id.value,
                    chaKuRaExpend = originator.chaKuRaCurrent.value
                };
                _context.CreateEntity().ReplaceSendMatchData(1007, Utilities.ToJson(newChaKuRaExpend));

                taiRyuKuCoast += 1.1f * (jutsuConfig.chaKuRaCoast - originator.chaKuRaCurrent.value) / originator.chaKuRaSlewRate.value;
            }

            if (originator.taiRyoKuCurrent.value >= taiRyuKuCoast)
            {
//                originator.ReplaceTaiRyoKuExpend(taiRyuKuCoast);
                var newTaiRyoKuExpend = new MatchDataTaiRyuKuExpendControl
                {
                    matchId        = _context.currentMatchData.value.customMatchId,
                    userId         = originator.id.value,
                    taiRyuKuExpend = taiRyuKuCoast
                };
                _context.CreateEntity().ReplaceSendMatchData(1008, Utilities.ToJson(newTaiRyoKuExpend));
            }
            else
            {
//                originator.ReplaceTaiRyoKuExpend(originator.taiRyoKuCurrent.value);
                var newTaiRyoKuExpend = new MatchDataTaiRyuKuExpendControl
                {
                    matchId        = _context.currentMatchData.value.customMatchId,
                    userId         = originator.id.value,
                    taiRyuKuExpend = originator.taiRyoKuCurrent.value
                };
                _context.CreateEntity().ReplaceSendMatchData(1008, Utilities.ToJson(newTaiRyoKuExpend));

                e.isDestroy = true;
            }

            foreach (var beforeJutsu in _context.GetGroup(GameMatcher.BeforeJutsuTarget))
            {
                if (beforeJutsu.name.text == e.name.text)
                {
                    e.ReplaceJutsuTarget(beforeJutsu.jutsuTarget.value);
                }

                beforeJutsu.isDestroy = true;
            }

            if (!jutsuConfig.needSelectTarget || jutsuConfig.needSelectTarget && e.hasJutsuTarget)
            {
                e.isStartConditionConfirm = true;
                var newJutsuControl = new MatchDataJutsuControl
                {
                    matchId      = _context.currentMatchData.value.customMatchId,
                    originatorId = e.originator.value.id.value,
                    jutsuName    = e.name.text,
                    needTarget   = jutsuConfig.needSelectTarget
                };
                if (jutsuConfig.needSelectTarget)
                {
                    newJutsuControl.targetId = e.jutsuTarget.value.id.value;
                }
                _context.CreateEntity().ReplaceSendMatchData(1011, Utilities.ToJson(newJutsuControl));
                e.isDestroy = true;
            }
        }
    }