public void AddCharacterDatas(string key, CharacterDatas value) { if (!string.IsNullOrEmpty(key) && value != null && !this.characterDatasDictionary.ContainsKey(key)) { this.characterDatasDictionary.Add(key, value); } }
public CharacterDatas GetCharacterDatas(string key) { CharacterDatas result = null; this.characterDatasDictionary.TryGetValue(key, out result); return(result); }
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; } }
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; } }
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(); }
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); } }
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); } }
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(); }
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); }
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; }
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; }
public void Init(CharacterDatas datas) { Datas = datas; Type = datas.m_Type; m_Renderer.Color = datas.m_Color; }