예제 #1
0
        // Token: 0x0600378A RID: 14218 RVA: 0x000F9D90 File Offset: 0x000F7F90
        private void SetupTeam(int teamNumber, BattleActor battleActor, ConfigDataSkillInfo heroSkillInfo)
        {
            if (!BJLuaObjHelper.IsSkipLuaHotfix && this.TryInitHotFix("") && this.m_SetupTeamInt32BattleActorConfigDataSkillInfo_hotfix != null)
            {
                this.m_SetupTeamInt32BattleActorConfigDataSkillInfo_hotfix.call(new object[]
                {
                    this,
                    teamNumber,
                    battleActor,
                    heroSkillInfo
                });
                return;
            }
            BJLuaObjHelper.IsSkipLuaHotfix = false;
            if (battleActor == null)
            {
                return;
            }
            CombatTeam combatTeam = this.m_teams[teamNumber];

            combatTeam.Initialize(this, teamNumber, battleActor, heroSkillInfo);
            int num  = this.ConfigDataLoader.Const_CombatHeroDistance / -2;
            int num2 = -20;
            int num3 = 1;

            if (this.GetCombatGridDistance() > 1)
            {
                num -= this.ConfigDataLoader.Const_CombatSplitScreenDistance / 2;
            }
            if (teamNumber != 0)
            {
                num  = -num;
                num3 = -1;
            }
            if (battleActor.HeroInfo != null)
            {
                CombatActor combatActor = combatTeam.CreateActor(true);
                combatActor.SetPosition(num, num2);
                combatActor.SetDirection(num3);
                combatActor.SetFormationLine(9);
            }
            if (battleActor.SoldierInfo != null)
            {
                int soldierCount = battleActor.GetSoldierCount();
                for (int i = 0; i < soldierCount; i++)
                {
                    CombatActor combatActor2      = combatTeam.CreateActor(false);
                    Position2i  formationPosition = combatTeam.GetFormationPosition(i);
                    combatActor2.SetPosition(num + formationPosition.x * num3, num2 + formationPosition.y);
                    combatActor2.SetDirection(num3);
                    combatActor2.SetFormationLine(combatTeam.GetFormationLine(i));
                    if (i == soldierCount - 1)
                    {
                        combatActor2.SetHealthPoint(battleActor.SoldierTotalHealthPoint - combatActor2.HealthPointMax * (soldierCount - 1));
                    }
                }
            }
        }