Beispiel #1
0
    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();
    }
Beispiel #2
0
 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;
         }
     }
 }
Beispiel #3
0
    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);
        }
    }
Beispiel #4
0
 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)
     {
Beispiel #5
0
        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;
                }
            }
        }
Beispiel #6
0
        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);
                    }
                }
            }
        }
Beispiel #7
0
        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);
        }
Beispiel #8
0
        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;
 }