Esempio n. 1
0
 // Token: 0x0600A51B RID: 42267 RVA: 0x002E7640 File Offset: 0x002E5840
 private void DropDraggingActionOrderButton(Vector3 pos)
 {
     if (!BJLuaObjHelper.IsSkipLuaHotfix && this.TryInitHotFix("") && this.m_DropDraggingActionOrderButtonVector3_hotfix != null)
     {
         this.m_DropDraggingActionOrderButtonVector3_hotfix.call(new object[]
         {
             this,
             pos
         });
         return;
     }
     BJLuaObjHelper.IsSkipLuaHotfix = false;
     if (this.m_draggingActionOrderButton == null)
     {
         return;
     }
     foreach (ArenaActionOrderButton arenaActionOrderButton in this.m_actionOrderButtons)
     {
         if (arenaActionOrderButton.GetHero() != null && arenaActionOrderButton.gameObject.activeSelf)
         {
             RectTransform rect = arenaActionOrderButton.transform as RectTransform;
             if (RectTransformUtility.RectangleContainsScreenPoint(rect, pos, this.m_camera))
             {
                 BattleHero hero = arenaActionOrderButton.GetHero();
                 arenaActionOrderButton.SetHero(this.m_draggingActionOrderButton.GetHero());
                 this.m_actionOrderButtons[this.m_draggingActionOrderButtonIndex].SetHero(hero);
                 AudioUtility.PlaySound(SoundTableId.SoundTableId_DropHero);
                 break;
             }
         }
     }
     this.DestroyDragginActionOrderButton();
 }
Esempio n. 2
0
    void OnRemoveHeroFromTeamList(BattleHero hero)
    {
        //if (hero.team == BattleUnit.Team.Red)
        //    Debug.Log("Remove " + hero.heroData.baseData.id);

        //if (owner.heroData.baseData.id.Contains("Shaman") && hero.team == BattleUnit.Team.Red)
        //    Debug.Log("Remove hero from team list. " + hero.heroData.baseData.id + ", " + owner.battleGroup.redTeamList.Count + ", " + owner.battleGroup.originalMember.Count);

        foreach (SkillBase skill in hero.passiveSkillList)
        {
            //Debug.Log("add passive to red " + skill.skillData.id + " - " + hero.heroData.heroID);

            if (skill.skillData.targetFilter == SkillBase.TargetFilter.FriendlyAll)
            {
                for (int i = 0; i < buffList.Count; i++)
                {
                    Buff buff = buffList[i];
                    if (buff.owner != hero || buff.baseData.id != skill.skillData.buffID)
                    {
                        continue;
                    }

                    DetachBuff(buff);
                }
            }
        }
    }
Esempio n. 3
0
        public async Task <IActionResult> PutBattleHero([FromRoute] int id, [FromBody] BattleHero battleHero)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != battleHero.battleId)
            {
                return(BadRequest());
            }

            _context.Entry(battleHero).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!BattleHeroExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Esempio n. 4
0
        // Token: 0x06006F9F RID: 28575 RVA: 0x001F38C4 File Offset: 0x001F1AC4
        public List <BattleHero> GetBusinessCardHeroes()
        {
            if (!BJLuaObjHelper.IsSkipLuaHotfix && this.TryInitHotFix("") && this.m_GetBusinessCardHeroes_hotfix != null)
            {
                return((List <BattleHero>) this.m_GetBusinessCardHeroes_hotfix.call(new object[]
                {
                    this
                }));
            }
            BJLuaObjHelper.IsSkipLuaHotfix = false;
            List <BattleHero> list = new List <BattleHero>();

            if (this.m_friendDS.BusinessCardSetInfo != null)
            {
                List <BusinessCardHeroSet> heroes = this.m_friendDS.BusinessCardSetInfo.Heroes;
                foreach (BusinessCardHeroSet businessCardHeroSet in heroes)
                {
                    Hero       hero       = this.m_hero.FindHero(businessCardHeroSet.HeroId);
                    BattleHero battleHero = BattleHero.HeroToBattleHero(hero);
                    foreach (ulong num in hero.EquipmentIds)
                    {
                        if (num != 0UL)
                        {
                            EquipmentBagItem equipmentBagItem = this.m_bag.FindBagItemByInstanceId(num) as EquipmentBagItem;
                            battleHero.Equipments.Add(equipmentBagItem.ToBattleHeroEquipment());
                        }
                    }
                    list.Add(battleHero);
                }
            }
            return(list);
        }
Esempio n. 5
0
        public async Task <IActionResult> PostBattleHero([FromBody] BattleHero battleHero)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.battleHeroes.Add(battleHero);
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (BattleHeroExists(battleHero.battleId))
                {
                    return(new StatusCodeResult(StatusCodes.Status409Conflict));
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtAction("GetBattleHero", new { id = battleHero.battleId }, battleHero));
        }
        // Token: 0x0600997C RID: 39292 RVA: 0x002BD258 File Offset: 0x002BB458
        public void SetHero(BattleHero hero)
        {
            if (!BJLuaObjHelper.IsSkipLuaHotfix && this.TryInitHotFix("") && this.m_SetHeroBattleHero_hotfix != null)
            {
                this.m_SetHeroBattleHero_hotfix.call(new object[]
                {
                    this,
                    hero
                });
                return;
            }
            BJLuaObjHelper.IsSkipLuaHotfix = false;
            this.m_hero = hero;
            if (hero == null)
            {
                return;
            }
            ConfigDataCharImageInfo charImageInfo = hero.HeroInfo.GetCharImageInfo(hero.StarLevel);

            if (charImageInfo != null)
            {
                this.m_heroIconImage.sprite = AssetUtility.Instance.GetSprite(charImageInfo.RoundHeadImage);
            }
            ConfigDataArmyInfo armyInfo = hero.GetActiveJob().JobConnectionInfo.m_jobInfo.m_armyInfo;

            this.m_armyIconImage.sprite = AssetUtility.Instance.GetSprite(armyInfo.Icon);
        }
Esempio n. 7
0
    void OnDrawGizmosSelected()
    {
        if (!showDebug)
        {
            return;
        }

        if (gameObject != UnityEditor.Selection.activeGameObject)
        {
            return;
        }

        if (!battleGroup)
        {
            return;
        }

        GUIStyle style = new GUIStyle();


        BattleHero enemy = nearestEnemy;

        Color color = Color.white;

        style.normal.textColor = color;

        UnityEditor.Handles.color = color;
        UnityEditor.Handles.Label(enemy.transform.position, enemy.GetDistanceFrom(this).ToString(), style);
    }
Esempio n. 8
0
 void OnAddHero(BattleHero hero)
 {
     for (int i = 0; i < artifactList.Count; i++)
     {
         hero.buffController.AttachBuff(hero, artifactList[i].baseData.buffID);
     }
 }
Esempio n. 9
0
    public BattleSaveDataStage(BattleGroup battleGroup)
    {
        id        = battleGroup.battleType.ToString();
        dungeonID = battleGroup.dungeonID;
        stage     = battleGroup.stage;

        //List<string> list = new List<string>();
        for (int i = 0; i < battleGroup.originalMember.Count; i++)
        {
            BattleHero hero = battleGroup.originalMember[i];

            Dictionary <string, string> saveForm = new Dictionary <string, string>();
            saveForm.Add("invenID", hero.heroData.id);
            saveForm.Add("level", hero.heroData.level.ToString());
            saveForm.Add("exp", hero.heroData.exp.ToString());    //누적 경험치

            float time = Time.unscaledTime - hero.heroData.battleStartTime;
            //Debug.Log("저장 : " + hero.heroData.heroName + " 숙련도 시작 시간: " + hero.heroData.battleStartTime + ", 숙려 시간 : " + time);
            hero.heroData.proficiencyTime = time;

            battleHeroList.Add(saveForm);
        }

        battleTime = battleGroup.battleTime.ToString();

        totalExp = battleGroup.battleLevelUpController.totalExp.ToString();
    }
Esempio n. 10
0
    void DamageDoneOnHero(BattleHero hero, int damage)
    {
        AttackEffect attackEffect = m_AttackEffecPool.GetItem();

        attackEffect.transform.position = hero.transform.position;
        attackEffect.RegulateSize(hero.GetComponent <RectTransform>());
        attackEffect.gameObject.SetActive(true);

        StringBuilder builder = new StringBuilder(AttributeChange.HEALTH_DECREASE_TEXT);

        builder.Replace("{DECREASE}", damage.ToString());

        AttributeChange attributeChange = AttribueChangeEffectPool.GetItem();

        attributeChange.PrepareForActivation(hero.transform, false, builder.ToString());
        attributeChange.gameObject.SetActive(true);

        if (!hero.IsEnemy)
        {
            CurrentFightSettings.selectedAllyHeroIndex = FindHeroIndex(m_PlayerHeroes, hero);
        }

        EventMessenger.NotifyEvent(SaveEvents.SAVE_GAME_STATE);

        bool isDead = hero.TakeDamage(damage);
    }
Esempio n. 11
0
    /// <summary> 회군으로 인해 전투 멈춤 </summary>
    public void StopBattle()
    {
        if (onStopBattle != null)
        {
            onStopBattle(this);
        }

        battlePhase = BattlePhase.Ready;
        if (battleProcessCoroutine != null)
        {
            StopCoroutine(battleProcessCoroutine);
            battleProcessCoroutine = null;
        }

        //아군 데이타 레벨 1로 초기화.
        for (int i = 0; i < redTeamList.Count; i++)
        {
            BattleHero hero = redTeamList[i];
            hero.HeroReset();
            hero.transform.position = spawnPointsRedTeam[0].transform.position;
        }

        // 스폰되었던 보스와 몬스터 제거
        ClearBossAndMonster();

        Battle.SaveStageInfo(this);
    }
Esempio n. 12
0
    override public void CheckCastCondition()
    {
        base.CheckCastCondition();

        if (!skeletonAnimation)
        {
            return;
        }

        //canExecute = true;
        //Idle상태 무시 스킬 아니면 아이들 상태 체크한다.
        if (!skillData.ignoreIdle && owner is BattleHero)
        {
            BattleHero battleHero = owner as BattleHero;
            if (battleHero && battleHero.skeletonAnimation)
            {
                //걷거나 대기 동작 중이 아니면 Idle 아님
                if (battleHero.skeletonAnimation.AnimationName != battleHero.idleAnimation &&
                    battleHero.skeletonAnimation.AnimationName != battleHero.runAnimation)
                {
                    canCastSkill = false;
                    return;
                }
            }
        }
    }
 public ShortBattleParticipantViewModel(BattleHero hero)
 {
     Damage      = hero.DamageDealt;
     Avatar      = new ImageViewModel(hero.Citizen.Entity.ImgUrl);
     CitizenName = hero.Citizen.Entity.Name;
     CitizenID   = hero.Citizen.ID;
 }
Esempio n. 14
0
        // Token: 0x0600A517 RID: 42263 RVA: 0x002E7320 File Offset: 0x002E5520
        private ArenaActionOrderButton CreateActionOrderButton(BattleHero hero, Transform parent)
        {
            if (!BJLuaObjHelper.IsSkipLuaHotfix && this.TryInitHotFix("") && this.m_CreateActionOrderButtonBattleHeroTransform_hotfix != null)
            {
                return((ArenaActionOrderButton)this.m_CreateActionOrderButtonBattleHeroTransform_hotfix.call(new object[]
                {
                    this,
                    hero,
                    parent
                }));
            }
            BJLuaObjHelper.IsSkipLuaHotfix = false;
            GameObject             go = UnityEngine.Object.Instantiate <GameObject>(this.m_actionOrderButtonPrefab, parent, false);
            ArenaActionOrderButton arenaActionOrderButton = GameObjectUtility.AddControllerToGameObject <ArenaActionOrderButton>(go);

            if (hero != null)
            {
                arenaActionOrderButton.SetHero(hero);
            }
            arenaActionOrderButton.EventOnClick     += this.ActionOrderButton_OnClick;
            arenaActionOrderButton.EventOnBeginDrag += this.ActionOrderButton_OnBeginDrag;
            arenaActionOrderButton.EventOnEndDrag   += this.ActionOrderButton_OnEndDrag;
            arenaActionOrderButton.EventOnDrag      += this.ActionOrderButton_OnDrag;
            arenaActionOrderButton.EventOnDrop      += this.ActionOrderButton_OnDrop;
            return(arenaActionOrderButton);
        }
Esempio n. 15
0
    void OnAddHeroToTeamList(BattleHero hero)
    {
        return;

        //패시브 스킬 적용
        ExcutePassiveSkill();
    }
Esempio n. 16
0
    void OnEndBattle()
    {
        for (int i = 0; i < BattlePvP.Instance.redTeamList.Count; i++)
        {
            BattleHero hero = BattlePvP.Instance.redTeamList[i];
            hero.onChangedCumulativeDamage -= OnChangedCumulativeDamage;
        }

        winAnim.gameObject.SetActive(BattlePvP.Instance.isWin);
        lossAnim.gameObject.SetActive(BattlePvP.Instance.isWin == false);

        iconRankUp.SetActive(BattlePvPManager.userPvPRank > BattlePvPManager.userPvPResultRank);
        iconScoreUp.SetActive(BattlePvPManager.userPvPResultScore > BattlePvPManager.userPvPScore);

        iconRankDown.SetActive(BattlePvPManager.userPvPRank < BattlePvPManager.userPvPResultRank);
        iconScoreDown.SetActive(BattlePvPManager.userPvPResultScore < BattlePvPManager.userPvPScore);


        int    diffRank = BattlePvPManager.userPvPRank - BattlePvPManager.userPvPResultRank;
        string rankTaxt = diffRank == 0 ? "순위변동 없음" : diffRank.ToString();

        textDiffRank.text  = rankTaxt;
        textDiffScore.text = (BattlePvPManager.userPvPResultScore - BattlePvPManager.userPvPScore).ToString();
        textRank.text      = BattlePvPManager.userPvPResultRank.ToString();
        textScore.text     = BattlePvPManager.userPvPResultScore.ToString();


        StartCoroutine(EndBattleCoroutine());
    }
Esempio n. 17
0
    void OnEndBattle()
    {
        for (int i = 0; i < BattleDayDoungen.Instance.redTeamList.Count; i++)
        {
            BattleHero hero = BattleDayDoungen.Instance.redTeamList[i];
            hero.onChangedCumulativeDamage -= OnChangedCumulativeDamage;
        }
        //for (int i = 0; i < heroSlotPool.Count; i++)
        //{
        //    heroSlotPool[i].gameObject.SetActive(false);
        //}

        winAnim.gameObject.SetActive(BattleDayDoungen.Instance.isWin);
        lossAnim.gameObject.SetActive(BattleDayDoungen.Instance.isWin == false);

        iconRankUp.SetActive(BattlePvPManager.userPvPRank > BattlePvPManager.userPvPResultRank);
        iconScoreUp.SetActive(BattlePvPManager.userPvPResultScore > BattlePvPManager.userPvPScore);

        iconRankDown.SetActive(BattlePvPManager.userPvPRank < BattlePvPManager.userPvPResultRank);
        iconScoreDown.SetActive(BattlePvPManager.userPvPResultScore < BattlePvPManager.userPvPScore);


        int    diffRank = BattlePvPManager.userPvPRank - BattlePvPManager.userPvPResultRank;
        string rankTaxt = diffRank == 0 ? "순위변동 없음" : diffRank.ToString();

        textDiffRank.text  = rankTaxt;
        textDiffScore.text = (BattlePvPManager.userPvPResultScore - BattlePvPManager.userPvPScore).ToString();
        textRank.text      = BattlePvPManager.userPvPResultRank.ToString();
        textScore.text     = BattlePvPManager.userPvPResultScore.ToString();


        resultPanel.SetActive(true);
    }
Esempio n. 18
0
    public override BattleHero CollectTarget(SkillBase skill)
    {
        this.skill = skill;

        ////이전 대상이 살아있는데, 검색 주기 전이면 새로 검색 안 함
        //if (lastTarget && !skill.skillData.canCastToDeadUnit && lastTarget.isDie)
        //{
        //}
        //else
        //{
        //    if (Time.time < lastCollectTargetTime + refreshInterval)
        //        return lastTarget;
        //}

        base.CollectTarget(skill);

        if (!owner.battleGroup)
        {
            return(null);
        }

        if (owner.team == BattleUnit.Team.none || enemyList == null || enemyList.Count == 0)
        {
            return(null);
        }

        airEnemy = null;


        for (int i = 0; i < enemyList.Count; i++)
        {
            BattleHero enemy = enemyList[i];

            if (enemy == owner as BattleHero)
            {
                continue;
            }

            if (!skill.skillData.canCastToDeadUnit && enemy.isDie && enemy == owner)
            {
                continue;
            }

            if (enemy.airborne || owner.heroData.baseData.type == HeroData.HeroBattleType.Air)
            {
                if (!enemy.isDie)
                {
                    if (airEnemy == null)
                    {
                        airEnemy = enemy;
                    }
                }
            }
        }

        lastTarget            = airEnemy;
        lastCollectTargetTime = Time.time;
        return(lastTarget);
    }
Esempio n. 19
0
 // BattleStateReady 상태에서 클릭으로 스테이터스 볼 때 사용
 public void BattleStateReadyOnlyProfile(BattleHero heroCont)
 {
     ActiveProfile(true);
     ActiveTargetBtn(false);
     ActiveSpriteProfile(false);
     ActiveSelActionType(false, false);
     mStatus.InitStatus(heroCont);
 }
Esempio n. 20
0
    void OnRemoveHero(BattleHero hero)
    {
        double d = 200d * System.Math.Pow(1.2d, hero.heroData.level - 1) - 200d;

        totalExp           += d;
        hero.heroData.level = 1;
        hero.heroData.exp   = 0;
    }
Esempio n. 21
0
    /// <summary> 순차적으로 영웅 스폰. phase = Battle 이 된 직후 실행 </summary>
    protected IEnumerator SpawnHero(BattleUnit.Team team = BattleUnit.Team.Red, List <BattleHero> list = null)
    {
        List <BattleHero> unitList = list;

        if (unitList == null)
        {
            unitList = battleTeamList[(int)team].actorList;
        }

        if (unitList == null || unitList.Count == 0)
        {
            yield break;
        }

        //스폰될애들 리스트. 순서 무작위로 출현하기 위함
        List <BattleHero> spawnedHeroList = new List <BattleHero>();
        BattleHero        temp            = null;

        while (spawnedHeroList.Count != unitList.Count)
        {
            temp = unitList[UnityEngine.Random.Range(0, unitList.Count)];
            if (!spawnedHeroList.Find(x => x == temp))
            {
                spawnedHeroList.Add(temp);
            }

            yield return(null);
        }

        //하나씩 출현
        for (int i = 0; i < spawnedHeroList.Count; i++)
        {
            //죽은 캐릭터는 스폰하지 않음
            if (spawnedHeroList[i].isDie)
            {
                continue;
            }

            spawnedHeroList[i].gameObject.SetActive(true);

            spawnedHeroList[i].ReGen();

            if (i > 0)
            {
                float dist = spawnedHeroList[i].team == BattleUnit.Team.Red ? -5f : 5f;

                float x = spawnedHeroList[i - 1].transform.position.x + dist;
                spawnedHeroList[i].transform.position = new Vector3(x, spawnedHeroList[i].transform.position.y, spawnedHeroList[i].transform.position.z);

                OrderController oc = spawnedHeroList[i].GetComponent <OrderController>();
                if (oc)
                {
                    oc.UpdateScale();
                }
            }
        }
    }
Esempio n. 22
0
    public void SetReadyStateProfileUI(BattleHero heroCont)
    {
        var bp = GetProfile(heroCont.HeroNo);

        if (bp != null)
        {
            bp.BattleStateReadyOnlyProfile(heroCont);
        }
    }
Esempio n. 23
0
    // additional sprites defined by child classes of HeroSprites

    #endregion

    #region Methods

    // Initializes this instance of HeroSprites
    // used by BattleHero.LoadObj in BattleManager
    // also used by HeroMovement
    public void SetObj(GameObject heroObj, BattleHero hero = null)
    {
        this.hero          = hero;
        heroObject         = heroObj;
        heroSprite         = heroObj.GetComponent <Sprite>();
        heroSpriteRenderer = heroObj.GetComponent <SpriteRenderer>();

        spriteTimer = heroObj.AddComponent <EventTimer>();
        spriteTimer.AddListener_Finished(ReturnToIdleSprite);
    }
Esempio n. 24
0
    // 실제 전투 행동
    public void ExcuteAction(EHeroBattleAction heroAction, Vector3 vPos, BattleHero targetHero, bool isWinner)
    {
        this.BattleTargetHero = targetHero;

        int sortingOrder = isWinner ? Define.BATTLE_WINNER_SORTINGORDER : Define.BATTLE_LOSER_SORTINGORDER;

        SetSortingOrder(sortingOrder);
        SetPosition(vPos);
        SetScale(new Vector3(Define.ACTION_START_SCALE, Define.ACTION_START_SCALE, Define.ACTION_START_SCALE));
        ChangeState(heroAction);
    }
Esempio n. 25
0
    //몬스터 사망하면 경험치 증가
    void OnDieMonster(BattleUnit monster)
    {
        //유물에 의한 보정. (적 처치시 경험치 증가)
        float    increaseRate = 0f;
        Artifact artifactExp  = battleGroup.artifactController.artifactList.Find(x => x.baseData.type == "IncreaseExp");

        if (artifactExp != null)
        {
            float a = 0f;
            float.TryParse(artifactExp.baseData.formula, out a);
            increaseRate = a * artifactExp.stack * 0.01f;   //formula가 10 이렇게 되어 있음. (10%를 의미)
        }

        float increaseByPlace = 0f;

        for (int i = 0; i < TerritoryManager.Instance.myPlaceList.Count; i++)
        {
            PlaceData placeData = TerritoryManager.Instance.myPlaceList[i];
            if (placeData.placeBaseData.type == "Battle_IncreaseExpRatio")
            {
                float a = 0f;
                float.TryParse(placeData.placeBaseData.formula, out a);
                increaseByPlace += a * placeData.placeLevel * 0.01f;
            }
        }

        double exp = monster.power * 5 * (1 + increaseRate) * (1 + increaseByPlace);

        if (monster is BattleHero)
        {
            BattleHero m = monster as BattleHero;
            if (m.isBoss)
            {
                //보스는 8분할 해서 줌. (경험치 구슬 8개 떨굼)
                exp = m.power * 5f * 0.125f;
                for (int i = 0; i < 8; i++)
                {
                    SpawnLootObject(monster, exp);
                }
            }
            else
            {
                SpawnLootObject(monster, exp);
            }
        }


        if (showDebug)
        {
            Debug.Log("[" + battleGroup.battleType + "] " + monster.name + ". level: " + monster.heroData.level + " - die. exp : " + exp);
        }

        //totalExp += exp;
    }
Esempio n. 26
0
 void OnHeroDied(BattleHero hero)
 {
     if (hero.IsEnemy)
     {
         --m_AliveEnemyHeroCount;
     }
     else
     {
         --m_AlivePlayerHeroCount;
     }
 }
Esempio n. 27
0
    public int GetIndexOfBattleHero(BattleHero hero)
    {
        int result = FindHeroIndex(m_PlayerHeroes, hero);

        if (result != -1)
        {
            return(result);
        }

        return(FindHeroIndex(m_EnemyHeroes, hero));
    }
Esempio n. 28
0
    void CheckAndUpdateFlip()
    {
        BattleHero h = owner as BattleHero;

        if (h)
        {
            float x = h.flipX ? -1f : 1f;

            transform.localPosition = new Vector2(originalPos.x * x, transform.localPosition.y);
        }
    }
Esempio n. 29
0
    public BattleHero GetBattleHeroOnIndex(int index)
    {
        BattleHero result = FindBattleHeroOnIndex(m_PlayerHeroes, index);

        if (result != null)
        {
            return(result);
        }

        return(FindBattleHeroOnIndex(m_EnemyHeroes, index));
    }
Esempio n. 30
0
    int FindHeroIndex(BattleHero[] heroes, BattleHero hero)
    {
        for (int i = 0; i < heroes.Length; ++i)
        {
            if (heroes[i] == hero)
            {
                return(i);
            }
        }

        return(-1);
    }