示例#1
0
    void LoadAvatar(int avatarResourceId)
    {
        if (role != null)
        {
            MonoBehaviour.Destroy(role.gameObject);
        }

        AvatarConfig.Avatar avatarCfg = ConfigDatabase.DefaultCfg.AvatarConfig.GetAvatarById(avatarResourceId);
        if (avatarCfg == null)
        {
            Debug.LogError(string.Format("Miss Avatar Setting : Id({0:X})", avatarResourceId));
        }

        Avatar avatar = Avatar.CreateAvatar(0x00000000);

        role = avatar.gameObject.AddComponent <BattleRole>();
        WeihuaGames.ClientClass.CombatAvatarData avatarData = new WeihuaGames.ClientClass.CombatAvatarData();
        avatarData.ResourceId = avatarResourceId;

        role.AvatarData = avatarData;
        role.Awake();
        role.AvatarAssetId = avatarCfg.breakThroughs[0].assetId;
        role.Avatar.Load(avatarCfg.breakThroughs[0].assetId, true, false);

        role.UseDefaultWeapons();
    }
示例#2
0
    public static BattleRole Create(WeihuaGames.ClientClass.CombatAvatarData avatarData, int teamIndex, int avatarIndex)
    {
        Avatar     avatar = Avatar.CreateAvatar((teamIndex << 24 | avatarData.BattlePosition));
        BattleRole role   = avatar.GetComponent <BattleRole>();

        if (role == null)
        {
            role = avatar.gameObject.AddComponent <BattleRole>();
        }
        AvatarConfig.Avatar avatarCfg = ConfigDatabase.DefaultCfg.AvatarConfig.GetAvatarById(avatarData.ResourceId);
        int avatarAssetId             = avatarCfg.GetAvatarAssetId(avatarData.BreakThrough);

        role.AvatarAssetId = avatarAssetId;
        role.avatarData    = new WeihuaGames.ClientClass.CombatAvatarData();
        role.AvatarData.Copy(avatarData);

        role.teamIndex      = teamIndex;
        role.avatarIndex    = avatarIndex;
        role.battlePosition = avatarData.BattlePosition;
        role.AvatarHP       = avatarData.GetAttributeByType(_AvatarAttributeType.HP).Value;

        role.Awake();

        return(role);
    }
示例#3
0
    public static BattleRole Create(int avatarResourceId, float maxHP, float hp, float sp, string name, int weaponResourceId)
    {
        Avatar     avatar = Avatar.CreateAvatar(avatarResourceId);
        BattleRole role   = avatar.GetComponent <BattleRole>();

        if (role == null)
        {
            role = avatar.gameObject.AddComponent <BattleRole>();
        }
        AvatarConfig.Avatar avatarCfg = ConfigDatabase.DefaultCfg.AvatarConfig.GetAvatarById(avatarResourceId);
        int avatarAssetId             = avatarCfg.breakThroughs[0].assetId;

        role.AvatarAssetId = avatarAssetId;
        // Generate a CombatAvatarData
        WeihuaGames.ClientClass.CombatAvatarData bossAvatarData = new WeihuaGames.ClientClass.CombatAvatarData();
        bossAvatarData.ResourceId  = avatarResourceId;
        bossAvatarData.DisplayName = name;
        bossAvatarData.Attributes  = new List <WeihuaGames.ClientClass.Attribute>();
        WeihuaGames.ClientClass.Attribute maxHPAttr = new WeihuaGames.ClientClass.Attribute();
        maxHPAttr.Type  = _AvatarAttributeType.MaxHP;
        maxHPAttr.Value = maxHP;
        bossAvatarData.Attributes.Add(maxHPAttr);
        WeihuaGames.ClientClass.Attribute spAttr = new WeihuaGames.ClientClass.Attribute();
        spAttr.Type  = _AvatarAttributeType.SP;
        spAttr.Value = sp;
        bossAvatarData.Attributes.Add(spAttr);

        if (weaponResourceId != IDSeg.InvalidId)
        {
            WeihuaGames.ClientClass.EquipmentData edata = new WeihuaGames.ClientClass.EquipmentData();
            edata.BreakThrough = 0;
            edata.Id           = weaponResourceId;
            bossAvatarData.Equipments.Add(edata);
        }

        role.avatarData = bossAvatarData;
        role.AvatarHP   = hp;

        role.Awake();

        return(role);
    }
示例#4
0
    private void InitializeAvatarNameStrs()
    {
        //ConfigDatabase.DelayLoadFileDelegate delayLoadFileDel = ConfigDelayLoader.DelayLoadConfig;
        //string str = "";
        //int fileFormat = 0;
        //IFileLoader fileLoader = delayLoadFileDel(typeof(AvatarConfig), out str, out fileFormat);
        //AvatarConfig config1 = ConfigDatabase.LoadConfig<AvatarConfig>(ConfigDatabase.DefaultCfg, fileLoader, fileFormat, str);
        //config1.GetType();


        AvatarConfig aconfig = ConfigDatabase.DefaultCfg.AvatarConfig;

        avatarNameStrs = new string[ConfigDatabase.DefaultCfg.AvatarConfig.avatars.Count];
        avatarIds      = new int[ConfigDatabase.DefaultCfg.AvatarConfig.avatars.Count];
        for (int i = 0; i < ConfigDatabase.DefaultCfg.AvatarConfig.avatars.Count; i++)
        {
            AvatarConfig.Avatar avatarCfg = ConfigDatabase.DefaultCfg.AvatarConfig.avatars[i];

            string name = ItemInfoUtility.GetAssetName(avatarCfg.id);
            avatarIds[i]      = avatarCfg.id;
            avatarNameStrs[i] = name;
        }
    }
示例#5
0
 public static int CompareAvatar(int avatarAssetId1, int avatarAssetId2)
 {
     AvatarConfig.Avatar avatar1 = ConfigDatabase.DefaultCfg.AvatarConfig.GetAvatarById(avatarAssetId1);
     AvatarConfig.Avatar avatar2 = ConfigDatabase.DefaultCfg.AvatarConfig.GetAvatarById(avatarAssetId2);
     return(CompareAvatar(avatar1, avatar2));
 }
示例#6
0
    /// <summary>
    /// 1、	已上阵的角色靠上
    /// 2、	品质越高越靠上
    /// 3、	同品质时,按国家标识进行排序,使用角色优先级控制(策划用)
    /// 4、	同品质、同国家时,根据角色表中角色的优先级显示,优先级越高越靠上
    /// 5、	同一角色有多个时,根据突破等级排序,突破等级越高越靠上
    /// 6、	同一角色同突破等级时,根据升级等级排序,等级越高越靠上
    /// 7、	同角色同突破同升级等级时,随机排序。

    /// </summary>
    //public static int CompareAvatar(WeihuaGames.ClientClass.Avatar a1, WeihuaGames.ClientClass.Avatar a2)
    //{
    //	int lineuped1 = (PlayerDataUtility.IsLineUpInPosition(SysLocalDataBase.Inst.LocalPlayer, a1) || PlayerDataUtility.IsLineUpInParter(SysLocalDataBase.Inst.LocalPlayer, a1)) ? 1 : 0;
    //	int lineuped2 = (PlayerDataUtility.IsLineUpInPosition(SysLocalDataBase.Inst.LocalPlayer, a2) || PlayerDataUtility.IsLineUpInParter(SysLocalDataBase.Inst.LocalPlayer, a2)) ? 1 : 0;

    //	if (lineuped1 != lineuped2)
    //		return lineuped2 - lineuped1;

    //	AvatarConfig.Avatar a1Cfg = ConfigDatabase.DefaultCfg.AvatarConfig.GetAvatarById(a1.ResourceId);
    //	AvatarConfig.Avatar a2Cfg = ConfigDatabase.DefaultCfg.AvatarConfig.GetAvatarById(a2.ResourceId);

    //	if (a1Cfg.qualityLevel != a2Cfg.qualityLevel)
    //		return a2Cfg.qualityLevel - a1Cfg.qualityLevel;
    //	else
    //	{
    //		if (a1Cfg.sortIndex != a2Cfg.sortIndex)
    //			return a2Cfg.sortIndex - a1Cfg.sortIndex;
    //		else if (a1.BreakthoughtLevel != a2.BreakthoughtLevel)
    //			return a2.BreakthoughtLevel - a1.BreakthoughtLevel;
    //		else if (a1.LevelAttrib.Level != a2.LevelAttrib.Level)
    //			return a2.LevelAttrib.Level - a1.LevelAttrib.Level;
    //	}

    //	return 0;
    //}

    /// <summary>
    /// 1、	品质越低越靠上
    /// 2、	同品质时,按国家标识进行排序,使用角色优先级控制(策划用)
    /// 3、	同品质、同国家时,根据角色表中角色的优先级显示,优先级越低越靠上
    /// 4、	同一角色有多个时,根据突破等级排序,突破等级越低越靠上
    /// 5、	同一角色同突破等级时,根据升级等级排序,等级越低越靠上
    /// 6、	同角色同突破同升级等级时,随机排序。
    /// </summary>
    //public static int CompareAvatarReverse(WeihuaGames.ClientClass.Avatar a1, WeihuaGames.ClientClass.Avatar a2)
    //{
    //	int lineuped1 = (PlayerDataUtility.IsLineUpInPosition(SysLocalDataBase.Inst.LocalPlayer, a1) || PlayerDataUtility.IsLineUpInParter(SysLocalDataBase.Inst.LocalPlayer, a1)) ? 1 : 0;
    //	int lineuped2 = (PlayerDataUtility.IsLineUpInPosition(SysLocalDataBase.Inst.LocalPlayer, a2) || PlayerDataUtility.IsLineUpInParter(SysLocalDataBase.Inst.LocalPlayer, a2)) ? 1 : 0;

    //	if (lineuped1 != lineuped2)
    //		return lineuped1 - lineuped2;

    //	AvatarConfig.Avatar a1Cfg = ConfigDatabase.DefaultCfg.AvatarConfig.GetAvatarById(a1.ResourceId);
    //	AvatarConfig.Avatar a2Cfg = ConfigDatabase.DefaultCfg.AvatarConfig.GetAvatarById(a2.ResourceId);

    //	if (a1Cfg.qualityLevel != a2Cfg.qualityLevel)
    //		return a1Cfg.qualityLevel - a2Cfg.qualityLevel;
    //	else
    //	{
    //		if (a1Cfg.sortIndex != a2Cfg.sortIndex)
    //			return a1Cfg.sortIndex - a2Cfg.sortIndex;
    //		else if (a1.BreakthoughtLevel != a2.BreakthoughtLevel)
    //			return a1.BreakthoughtLevel - a2.BreakthoughtLevel;
    //		else if (a1.LevelAttrib.Level != a2.LevelAttrib.Level)
    //			return a1.LevelAttrib.Level - a2.LevelAttrib.Level;
    //	}
    //	return 0;
    //}

    // 图鉴等使用配置信息的列表中直接使用排序id,正序,无反序
    public static int CompareAvatar(AvatarConfig.Avatar a1, AvatarConfig.Avatar a2)
    {
        return(a2.sortIndex - a1.sortIndex);
    }