public void LoadAvatar(ConfigAvatar config) { if (objPool.ContainsKey(config.id)) { if (currentAvatarID != 0) { objPool[currentAvatarID].SetActive(false); } objPool[config.id].SetActive(true); } else { var model = GameObject.Instantiate(config.IslandModel, showNode); objPool.Add(config.id, model); if (currentAvatarID != 0) { objPool[currentAvatarID].SetActive(false); } } currentAvatarID = config.id; // save change Battle.playerBattleSave.characterId = config.id; Battle.SavePlayerBattleData(); }
private static void ReloadAvatarConfig() { foreach (AvatarMetaData data in AvatarMetaDataReader.GetItemList()) { ConfigAvatar config = _avatarRegistry.AvatarRegistry[data.avatarRegistryKey].Config; config.CommonArguments.Nature = (EntityNature)data.attribute; if (config.Skills.ContainsKey("SKL01")) { ConfigAvatarSkill skill = config.Skills["SKL01"]; skill.SkillCD = data.SKL01CD; skill.SPCost = data.SKL01SP; skill.SPNeed = data.SKL01SPNeed; skill.ChargesCount = data.SKL01Charges; } if (config.Skills.ContainsKey("SKL02")) { ConfigAvatarSkill skill2 = config.Skills["SKL02"]; skill2.SkillCD = data.SKL02CD; skill2.SPCost = data.SKL02SP; skill2.SPNeed = data.SKL02SPNeed; skill2.ChargesCount = data.SKL02Charges; } if (config.Skills.ContainsKey("SKL03")) { ConfigAvatarSkill skill3 = config.Skills["SKL03"]; skill3.SkillCD = data.SKL03CD; skill3.SPCost = data.SKL03SP; skill3.SPNeed = data.SKL03SPNeed; skill3.ChargesCount = data.SKL03Charges; } } }
public override void Init() { // 初始化 ConfigAvatar tconfig = null; int tempID = Battle.playerBattleSave.characterId; foreach (var config in AvatarConfigs) { // 构建角色列表 var item = GameObject.Instantiate(avatarListItem, ListNode); var itemClass = item.GetComponent <AvatarListItem>(); itemClass.Init(config); itemClass.action = LoadAvatar; // 取存档设置的角色 if (config.id == tempID) { tconfig = config; } } if (tconfig != null) { this.LoadAvatar(tconfig); } }
public override void Init(BaseMonoEntity entity) { this.avatar = (BaseMonoAvatar)entity; base.runtimeID = this.avatar.GetRuntimeID(); this.config = AvatarData.GetAvatarConfig(this.avatar.AvatarTypeName); base.commonConfig = this.config.CommonConfig; base.Init(entity); this.skillInfoList = new List <SKillInfo>(); this._skillInfoMap = new Dictionary <string, SKillInfo>(); this.maskedSkillButtons = new List <string>(); foreach (string str in this.config.Skills.Keys) {
private static void OnLoadOneJsonConfigFinish(ConfigAvatar configAvatar, string avatarType) { string item = string.Format("{0}/{1}{2}_Config", "Data/AvatarConfig", "Avatar_", avatarType); _configPathList.Remove(item); _avatarRegistry.AvatarRegistry[avatarType].Config = configAvatar; if (_configPathList.Count == 0) { _loadDataBackGroundWorker.StopBackGroundWork(false); ReloadAvatarConfig(); if (_loadJsonConfigCallback != null) { _loadJsonConfigCallback("AvatarData"); _loadJsonConfigCallback = null; } } }
public void Preload(BaseMonoAvatar aMonoAvatar) { ConfigAvatar config = aMonoAvatar.config; if (config.CinemaPaths.Count != 0) { foreach (KeyValuePair <AvatarCinemaType, string> pair in config.CinemaPaths) { string key = pair.Value; if (!this._loadedCinemaData.ContainsKey(key)) { ICinema component = UnityEngine.Object.Instantiate <GameObject>(Miscs.LoadResource <GameObject>(key, BundleType.RESOURCE_FILE)).GetComponent <MonoBehaviour>() as ICinema; component.GetCutscene().Optimize(); this._loadedCinemaData.Add(key, component); } } } }
private void DebugCreateStageWithFullDataSync_Impl(Packet_Level_CreateStageFullData fullData) { Singleton <LevelScoreManager> .Instance.SetDevLevelBeginIntent("Lua/Levels/Common/Level 0.lua", LevelActor.Mode.NetworkedMP, 10, 10, null); Singleton <LevelScoreManager> .Instance.memberList = new List <AvatarDataItem>(); for (int i = 0; i < fullData.AvatarsLength; i++) { MoleMole.MPProtocol.MPAvatarDataItem avatars = fullData.GetAvatars(i); AvatarDataItem item = new AvatarDataItem(avatars.AvatarID, avatars.Level, avatars.Star); ConfigAvatar avatarConfig = AvatarData.GetAvatarConfig(item.AvatarRegistryKey); WeaponDataItem dummyFirstWeaponDataByRole = Singleton <StorageModule> .Instance.GetDummyFirstWeaponDataByRole(avatarConfig.CommonArguments.RoleName, 1); item.equipsMap[1] = dummyFirstWeaponDataByRole; Singleton <LevelScoreManager> .Instance.memberList.Add(item); } Singleton <LevelManager> .Instance.levelActor.SuddenLevelStart(); Singleton <LevelManager> .Instance.levelActor.levelMode = LevelActor.Mode.NetworkedMP; Singleton <MPLevelManager> .Instance.mpMode = fullData.MpMode; if (fullData.MpMode == MPMode.Normal) { Singleton <LevelManager> .Instance.gameMode = new NetworkedMP_Default_GameMode(); } else if (fullData.MpMode == MPMode.PvP_ReceiveNoSend) { Singleton <LevelManager> .Instance.gameMode = new NetworkedMP_PvPTest_GameMode(); } else if (fullData.MpMode == MPMode.PvP_SendNoReceive) { Singleton <LevelManager> .Instance.gameMode = new NetworkedMP_PvPTest_GameMode(); } List <string> avatarSpawnNameList = new List <string> { "Born" }; Singleton <StageManager> .Instance.CreateStage(fullData.StageData.StageName, avatarSpawnNameList, null, false); }
public uint CreateAvatar(AvatarDataItem avatarDataItem, bool isLocal, Vector3 initPos, Vector3 initDir, uint runtimeID, bool isLeader, bool leaderSkillOn, bool isHelper = false, bool useLow = false) { BaseMonoAvatar component = null; string avatarRegistryKey = avatarDataItem.AvatarRegistryKey; GameObject obj2 = null; int index = -1; for (int i = 0; i < this._preloadedAvatar.Count; i++) { if (this._preloadedAvatar[i].Item1 == avatarRegistryKey) { obj2 = this._preloadedAvatar[i].Item2; index = i; break; } } if (obj2 != null) { obj2.GetComponent <BaseMonoAvatar>().Enable(); this._preloadedAvatar.RemoveAt(index); } else { useLow = useLow || (!GlobalVars.AVATAR_USE_DYNAMIC_BONE || (Singleton <LevelManager> .Instance.levelActor.levelMode == LevelActor.Mode.Multi)); obj2 = (GameObject)UnityEngine.Object.Instantiate(Miscs.LoadResource <GameObject>(AvatarData.GetPrefabResPath(avatarRegistryKey, useLow), BundleType.RESOURCE_FILE), InLevelData.CREATE_INIT_POS, Quaternion.Euler(0f, 200f, 0f)); } component = obj2.GetComponent <BaseMonoAvatar>(); if (runtimeID == 0) { runtimeID = Singleton <RuntimeIDManager> .Instance.GetNextRuntimeID(3); } component.Init(isLocal, runtimeID, avatarDataItem.AvatarRegistryKey, avatarDataItem.GetWeapon().ID, initPos, initDir, isLeader); bool isPlayerAvatar = !isHelper; this.RegisterAvatar(component, isLocal, isPlayerAvatar, isHelper); AvatarActor actor = Singleton <EventManager> .Instance.CreateActor <AvatarActor>(component); actor.InitAvatarDataItem(avatarDataItem, isLocal, isHelper, isLeader, leaderSkillOn); actor.InitGalTouchBuff(avatarDataItem); actor.PostInit(); if (Singleton <LevelScoreManager> .Instance.LevelType == 4) { EndlessAvatarHp endlessAvatarHPData = Singleton <EndlessModule> .Instance.GetEndlessAvatarHPData(avatarDataItem.avatarID); actor.HP = (actor.maxHP * endlessAvatarHPData.get_hp_percent()) / 100f; actor.SP = (actor.maxSP * endlessAvatarHPData.get_sp_percent()) / 100f; } ConfigAvatar config = component.config; for (int j = 0; j < config.CommonArguments.PreloadEffectPatternGroups.Length; j++) { Singleton <EffectManager> .Instance.PreloadEffectGroup(config.CommonArguments.PreloadEffectPatternGroups[j], false); } if (component is MonoBronya) { if (actor.HasAppliedAbilityName("Weapon_Additional_BronyaLaser")) { Singleton <EffectManager> .Instance.PreloadEffectGroup("Bronya_Laser_Effects", false); } else { Singleton <EffectManager> .Instance.PreloadEffectGroup("Bronya_Gun_Effects", false); } } for (int k = 0; k < config.CommonArguments.RequestSoundBankNames.Length; k++) { Singleton <WwiseAudioManager> .Instance.ManualPrepareBank(config.CommonArguments.RequestSoundBankNames[k]); } return(component.GetRuntimeID()); }
public void Init(ConfigAvatar config) { image.texture = config.headImage; avatarName.text = config.aName; this.config = config; }