コード例 #1
0
 public void AddCharacterDatas(string key, CharacterDatas value)
 {
     if (!string.IsNullOrEmpty(key) && value != null && !this.characterDatasDictionary.ContainsKey(key))
     {
         this.characterDatasDictionary.Add(key, value);
     }
 }
コード例 #2
0
        public CharacterDatas GetCharacterDatas(string key)
        {
            CharacterDatas result = null;

            this.characterDatasDictionary.TryGetValue(key, out result);
            return(result);
        }
コード例 #3
0
 public void ChangeLeaderSkill(LeaderSkillStatus leaderSkillStatus, CharacterDatas characterDatas)
 {
     this._leaderSkillResult = new LeaderSkillResult(this, leaderSkillStatus, characterDatas);
     this.InitializeExtraStatus();
     if (this._currentHp > this.extraMaxHp)
     {
         this._currentHp = this.extraMaxHp;
     }
 }
コード例 #4
0
 public LeaderSkillResult(CharacterStateControl characterStateControl, LeaderSkillStatus leaderSkillStatus = null, CharacterDatas leaderCharacterData = null)
 {
     this._characterStateControl = characterStateControl;
     this._leaderSkillStatus     = leaderSkillStatus;
     this._leaderCharacterData   = leaderCharacterData;
     if (this._leaderSkillStatus != null && !this._leaderSkillStatus.isHaving)
     {
         this._leaderSkillStatus = null;
     }
 }
コード例 #5
0
ファイル: TileManager.cs プロジェクト: Bombix34/Explofun
 public void AddCharacterOnTile(CharacterDatas characterDatas)
 {
     if (CharacterOnTile != null)
         return;
     GameObject character = Instantiate(Resources.Load("Character_Prefab"), transform) as GameObject;
     CharacterOnTile = character.GetComponent<CharacterManager>();
     CharacterOnTile.Init(characterDatas);
     CharacterOnTile.Tile = this;
     character.transform.DOMoveY(transform.position.y + 0.4f, 0f);
     CharacterOnTile.Renderer.AppearEffect();
 }
コード例 #6
0
        public void ChangeEnemyLeader(int index)
        {
            this.leaderEnemyCharacter = this.enemies[index];
            LeaderSkillStatus leaderSkillStatus = this.enemies[index].leaderSkillStatus;
            CharacterDatas    characterDatas    = this.enemies[index].characterDatas;

            for (int i = 0; i < this.enemies.Length; i++)
            {
                bool isLeader = i == index;
                this.enemies[i].isLeader = isLeader;
                this.enemies[i].ChangeLeaderSkill(leaderSkillStatus, characterDatas);
            }
        }
コード例 #7
0
        public void ChangePlayerLeader(int index)
        {
            BattleStateManager current = BattleStateManager.current;

            current.hierarchyData.leaderCharacter = index;
            this.leaderCharacter      = this.playerCharacters[index];
            this.leaderCharacterIndex = index;
            LeaderSkillStatus leaderSkillStatus = this.playerCharacters[index].leaderSkillStatus;
            CharacterDatas    characterDatas    = this.playerCharacters[index].characterDatas;

            for (int i = 0; i < this.playerCharacters.Length; i++)
            {
                bool isLeader = i == index;
                current.uiControl.ApplyLeaderIcon(i, isLeader);
                this.playerCharacters[i].isLeader = isLeader;
                this.playerCharacters[i].ChangeLeaderSkill(leaderSkillStatus, characterDatas);
            }
        }
コード例 #8
0
 public CharacterStateControl(CharacterStatus status, Tolerance tolerance, CharacterDatas datas, SkillStatus[] skillStatuses, LeaderSkillStatus leaderCharacterLeaderSkill, CharacterDatas leaderCharacterData, LeaderSkillStatus myLeaderSkill = null, bool isEnemy = false)
 {
     this._sharedStatus    = SharedStatus.GetEmptyStatus();
     this._characterStatus = status;
     this._characterDatas  = datas;
     this._tolerance       = tolerance;
     this._skillStatus     = skillStatuses;
     this._isEnemy         = isEnemy;
     if (myLeaderSkill == null)
     {
         this._leaderSkillStatus = LeaderSkillStatus.GetUnHavingLeaderSkill();
     }
     else
     {
         this._leaderSkillStatus = myLeaderSkill;
     }
     this._leaderSkillResult = new LeaderSkillResult(this, leaderCharacterLeaderSkill, leaderCharacterData);
     this.StatusInitialize();
     if (status.GetType() == typeof(EnemyStatus))
     {
         this.enemyAi = this.enemyStatus.enemyAiPattern;
     }
     this.CheckEffectiveBonus();
 }
コード例 #9
0
    public CharacterStateControl LoadCharacterStateControl(CharacterStatus status, Tolerance tolerance, CharacterDatas datas, SkillStatus[] skillStatuses, LeaderSkillStatus leaderCharacterLeaderSkill, CharacterDatas leaderCharacterData, LeaderSkillStatus myLeaderSkill = null, bool isEnemy = false)
    {
        CharacterStateControl characterStateControl = new CharacterStateControl(status, tolerance, datas, skillStatuses, leaderCharacterLeaderSkill, leaderCharacterData, myLeaderSkill, isEnemy);

        characterStateControl.InitializeAp();
        return(characterStateControl);
    }
コード例 #10
0
    protected virtual IEnumerator LoadEnemy()
    {
        int maxEnemiesLength = 0;
        int maxBossLength    = 0;

        for (int i = 0; i < base.hierarchyData.batteWaves.Length; i++)
        {
            maxEnemiesLength = Mathf.Max(maxEnemiesLength, base.hierarchyData.batteWaves[i].useEnemiesId.Length);
            int num = 0;
            foreach (bool flag in base.hierarchyData.batteWaves[i].enemiesBossFlag)
            {
                if (flag)
                {
                    num++;
                }
            }
            maxBossLength = Mathf.Max(maxBossLength, num);
        }
        List <IEnumerator> list = new List <IEnumerator>();
        LeaderSkillStatus  leaderCharacterLeaderSkill = null;
        CharacterStatus    getStatusEnemyLeader       = base.hierarchyData.batteWaves[0].enemyStatuses[base.hierarchyData.leaderCharacter];

        if (getStatusEnemyLeader.isHavingLeaderSkill)
        {
            leaderCharacterLeaderSkill = base.hierarchyData.GetLeaderSkillStatus(getStatusEnemyLeader.leaderSkillId);
        }
        CharacterDatas           enemyLeaderCharacterData        = base.hierarchyData.GetCharacterDatas(getStatusEnemyLeader.groupId);
        Dictionary <string, int> characterParamsIdListBattleWave = new Dictionary <string, int>();

        base.battleStateData.preloadEnemies = new CharacterStateControl[base.hierarchyData.batteWaves.Length][];
        for (int k = 0; k < base.battleStateData.preloadEnemies.Length; k++)
        {
            base.battleStateData.preloadEnemies[k] = new CharacterStateControl[base.hierarchyData.batteWaves[k].useEnemiesId.Length];
            Dictionary <string, int> dictionary = new Dictionary <string, int>();
            for (int l = 0; l < base.battleStateData.preloadEnemies[k].Length; l++)
            {
                CharacterStatus   characterStatus   = base.hierarchyData.batteWaves[k].enemyStatuses[l];
                Tolerance         tolerance         = characterStatus.tolerance;
                CharacterDatas    characterDatas    = base.hierarchyData.GetCharacterDatas(characterStatus.groupId);
                SkillStatus[]     skillStatuses     = characterStatus.skillIds.Select((string item) => base.hierarchyData.GetSkillStatus(item)).ToArray <SkillStatus>();
                LeaderSkillStatus leaderSkillStatus = base.hierarchyData.GetLeaderSkillStatus(characterStatus.leaderSkillId);
                bool isEnemy = true;
                base.battleStateData.preloadEnemies[k][l]         = base.stateManager.initialize.LoadCharacterStateControl(characterStatus, tolerance, characterDatas, skillStatuses, leaderCharacterLeaderSkill, enemyLeaderCharacterData, leaderSkillStatus, isEnemy);
                base.battleStateData.preloadEnemies[k][l].myIndex = l;
                if (l == base.hierarchyData.leaderCharacter)
                {
                    base.battleStateData.preloadEnemies[k][l].isLeader = true;
                }
                string prefabId = characterStatus.prefabId;
                if (!dictionary.ContainsKey(prefabId))
                {
                    dictionary.Add(prefabId, 1);
                }
                else
                {
                    Dictionary <string, int> dictionary2;
                    string key;
                    dictionary[prefabId] = ((dictionary2 = dictionary)[key = prefabId] = dictionary2[key] + 1);
                }
            }
            foreach (KeyValuePair <string, int> keyValuePair in dictionary)
            {
                if (characterParamsIdListBattleWave.ContainsKey(keyValuePair.Key))
                {
                    if (characterParamsIdListBattleWave[keyValuePair.Key] < keyValuePair.Value)
                    {
                        characterParamsIdListBattleWave[keyValuePair.Key] = keyValuePair.Value;
                    }
                }
                else
                {
                    characterParamsIdListBattleWave.Add(keyValuePair.Key, keyValuePair.Value);
                }
            }
        }
        foreach (KeyValuePair <string, int> keyValuePair2 in characterParamsIdListBattleWave)
        {
            for (int m = 0; m < keyValuePair2.Value; m++)
            {
                IEnumerator item6 = base.stateManager.initialize.LoadCharacterParam(keyValuePair2.Key, m, delegate(CharacterParams c, int index, string id)
                {
                    base.battleStateData.preloadEnemiesParams.Add(id, index.ToString(), c);
                });
                list.Add(item6);
            }
        }
        base.battleStateData.droppingItemNormalEffect = new AlwaysEffectParams[base.battleStateData.maxDropNum];
        base.battleStateData.droppingItemRareEffect   = new AlwaysEffectParams[base.battleStateData.maxDropNum];
        for (int n = 0; n < maxEnemiesLength; n++)
        {
            base.stateManager.initialize.SetHitEffectPool("EFF_COM_DEATH");
            base.stateManager.initialize.SetHitEffectPool("EFF_COM_BOSSDEATH");
        }
        for (int num2 = 0; num2 < base.battleStateData.maxDropNum; num2++)
        {
            string effectId = "droppingItemEffectNormal";
            Action <AlwaysEffectParams, int> result = delegate(AlwaysEffectParams a, int index)
            {
                base.battleStateData.droppingItemNormalEffect[index] = a;
            };
            IEnumerator item2 = base.stateManager.initialize.LoadAlwaysEffect(effectId, num2, result);
            list.Add(item2);
            string effectId2 = "droppingItemEffectRare";
            Action <AlwaysEffectParams, int> result2 = delegate(AlwaysEffectParams a, int index)
            {
                base.battleStateData.droppingItemRareEffect[index] = a;
            };
            IEnumerator item3 = base.stateManager.initialize.LoadAlwaysEffect(effectId2, num2, result2);
            list.Add(item3);
        }
        base.battleStateData.leaderEnemyCharacter = base.battleStateData.enemies[base.hierarchyData.leaderCharacter];
        base.battleStateData.insertEnemyEffect    = new AlwaysEffectParams[maxEnemiesLength];
        for (int num3 = 0; num3 < maxEnemiesLength; num3++)
        {
            string insertEnemyPath = this.insertEnemyPath;
            Action <AlwaysEffectParams, int> result3 = delegate(AlwaysEffectParams res, int index)
            {
                base.battleStateData.insertEnemyEffect[index] = res;
            };
            IEnumerator item4 = base.stateManager.initialize.LoadAlwaysEffect(insertEnemyPath, num3, result3);
            list.Add(item4);
        }
        base.battleStateData.insertBossCharacterEffect = new AlwaysEffectParams[maxBossLength];
        for (int num4 = 0; num4 < maxBossLength; num4++)
        {
            string effectId3 = "insertBossCharacterEffect";
            Action <AlwaysEffectParams, int> result4 = delegate(AlwaysEffectParams res, int index)
            {
                base.battleStateData.insertBossCharacterEffect[index] = res;
            };
            IEnumerator item5 = base.stateManager.initialize.LoadAlwaysEffect(effectId3, num4, result4);
            list.Add(item5);
        }
        BattleDebug.Log("敵キャラクタ / 関連エフェクトのロード: 開始");
        IEnumerator LoadDataStore = base.stateManager.initialize.LoadCoroutine(list.ToArray());

        while (LoadDataStore.MoveNext())
        {
            yield return(null);
        }
        base.stateManager.system.IfFullMemoryCallGC();
        BattleDebug.Log("敵キャラクタ / 関連エフェクトのロード: 完了");
        yield break;
    }
コード例 #11
0
    protected virtual IEnumerator LoadPlayer()
    {
        int playerLength        = base.hierarchyData.usePlayerCharacters.Length;
        List <IEnumerator> list = new List <IEnumerator>();

        base.battleStateData.playerCharacters           = new CharacterStateControl[playerLength];
        base.battleStateData.revivalReservedEffect      = new AlwaysEffectParams[playerLength];
        base.battleStateData.isRevivalReservedCharacter = new bool[playerLength];
        base.battleStateData.isRoundStartHpRevival      = new bool[playerLength];
        LeaderSkillStatus leaderCharacterSkillStatus = null;
        PlayerStatus      getStatusLeader            = base.hierarchyData.usePlayerCharacters[base.hierarchyData.leaderCharacter];

        if (getStatusLeader.isHavingLeaderSkill)
        {
            leaderCharacterSkillStatus = base.hierarchyData.GetLeaderSkillStatus(getStatusLeader.leaderSkillId);
        }
        CharacterDatas leaderCharacterData = base.hierarchyData.GetCharacterDatas(getStatusLeader.groupId);

        for (int i = 0; i < playerLength; i++)
        {
            CharacterStatus   characterStatus   = base.hierarchyData.usePlayerCharacters[i];
            Tolerance         tolerance         = characterStatus.tolerance;
            CharacterDatas    characterDatas    = base.hierarchyData.GetCharacterDatas(characterStatus.groupId);
            SkillStatus[]     skillStatuses     = characterStatus.skillIds.Select((string item) => base.hierarchyData.GetSkillStatus(item)).ToArray <SkillStatus>();
            LeaderSkillStatus leaderSkillStatus = base.hierarchyData.GetLeaderSkillStatus(characterStatus.leaderSkillId);
            bool isEnemy = false;
            base.battleStateData.playerCharacters[i]           = base.stateManager.initialize.LoadCharacterStateControl(characterStatus, tolerance, characterDatas, skillStatuses, leaderCharacterSkillStatus, leaderCharacterData, leaderSkillStatus, isEnemy);
            base.battleStateData.playerCharacters[i].myIndex   = i;
            base.battleStateData.isRevivalReservedCharacter[i] = false;
            Action <CharacterParams, int, string> result = delegate(CharacterParams c, int index, string id)
            {
                base.battleStateData.playerCharacters[index].CharacterParams = c;
            };
            IEnumerator item4 = base.stateManager.initialize.LoadCharacterParam(characterStatus.prefabId, i, result);
            list.Add(item4);
            string effectId = "revivalReservationEffect";
            Action <AlwaysEffectParams, int> result2 = delegate(AlwaysEffectParams a, int id)
            {
                base.battleStateData.revivalReservedEffect[id] = a;
            };
            IEnumerator item2 = base.stateManager.initialize.LoadAlwaysEffect(effectId, i, result2);
            list.Add(item2);
            base.stateManager.initialize.SetHitEffectPool("EFF_COM_DEATH");
            base.stateManager.initialize.SetHitEffectPool("EFF_COM_L_HEAL");
        }
        base.battleStateData.leaderCharacter          = base.battleStateData.playerCharacters[base.hierarchyData.leaderCharacter];
        base.battleStateData.leaderCharacter.isLeader = true;
        base.battleStateData.insertCharacterEffect    = new AlwaysEffectParams[playerLength];
        for (int j = 0; j < playerLength; j++)
        {
            string insertPlayerPath = this.insertPlayerPath;
            Action <AlwaysEffectParams, int> result3 = delegate(AlwaysEffectParams res, int index)
            {
                base.battleStateData.insertCharacterEffect[index] = res;
            };
            IEnumerator item3 = base.stateManager.initialize.LoadAlwaysEffect(insertPlayerPath, j, result3);
            list.Add(item3);
        }
        BattleDebug.Log("プレイヤーキャラクタ / 関連エフェクトのロード: 開始");
        IEnumerator LoadDataStore = base.stateManager.initialize.LoadCoroutine(list.ToArray());

        while (LoadDataStore.MoveNext())
        {
            yield return(null);
        }
        base.stateManager.system.IfFullMemoryCallGC();
        BattleDebug.Log("プレイヤーキャラクタ / 関連エフェクトのロード: 完了");
        yield break;
    }
コード例 #12
0
ファイル: CharacterManager.cs プロジェクト: Bombix34/Explofun
 public void Init(CharacterDatas datas)
 {
     Datas            = datas;
     Type             = datas.m_Type;
     m_Renderer.Color = datas.m_Color;
 }