2 Achegas af8676d033 ... 4b3d781ce0

Autor SHA1 Mensaxe Data
  wujia 4b3d781ce0 Merge branch 'master' of http://118.178.135.110:3000/fish/tower_client hai 6 meses
  wujia a21b21d8fb 英雄属性 hai 6 meses

+ 66 - 20
assets/script/game/common/InterfaceAddEnum.ts

@@ -62,25 +62,71 @@ export enum AttrAddTypeEnum {
     percent = 2,     //百分比加成
 }
 
+
+export enum AttrEnum {
+    attack = 'attack',
+    defence = 'defence',
+    hp = 'hp',
+    speed = 'speed',
+    broken = 'broken',
+    power = 'power',
+    hp_p = 'hp_p',
+    attack_p = 'attack_p',
+    defence_p = 'defence_p',
+    hit = 'hit',
+    miss = 'miss',
+    crite = 'crite',
+    decrite = 'decrite',
+    critedamage = 'critedamage',
+    adddamage = 'adddamage',
+    dedamage = 'dedamage',
+    suck = 'suck',
+    thorns = 'thorns',
+    block = 'block',
+}
+
+export interface AttrBaseData{
+    [AttrEnum.attack]:number;
+    [AttrEnum.defence]:number;
+    [AttrEnum.hp]:number;
+    [AttrEnum.speed]:number;
+    [AttrEnum.broken]:number;
+    [AttrEnum.power]:number;
+    [AttrEnum.hp_p]:number;
+    [AttrEnum.attack_p]:number;
+    [AttrEnum.defence_p]:number;
+    [AttrEnum.hit]:number;
+    [AttrEnum.miss]:number;
+    [AttrEnum.crite]:number;
+    [AttrEnum.decrite]:number;
+    [AttrEnum.critedamage]:number;
+    [AttrEnum.adddamage]:number;
+    [AttrEnum.dedamage]:number;
+    [AttrEnum.suck]:number;
+    [AttrEnum.thorns]:number;
+    [AttrEnum.block]:number;
+    
+}
+
 /** 属性 */
-export const AttrEnum = {
-    attack: { type: AttrAddTypeEnum.reality, name: "攻击", desc: "攻击", url: "attack_ico" },
-    defence: { type: AttrAddTypeEnum.reality, name: "防御", desc: "防御", url: "defence_ico" },
-    hp: { type: AttrAddTypeEnum.reality, name: "生命", desc: "生命", url: "hp_ico" },
-    speed: { type: AttrAddTypeEnum.reality, name: "速度", desc: "速度", url: "speed_ico" },
-    broken: { type: AttrAddTypeEnum.reality, name: "破甲", desc: "破甲", url: "broken_ico" },
-    power: { type: AttrAddTypeEnum.reality, name: "士气", desc: "士气", url: "power_ico" },
-    hp_p: { type: AttrAddTypeEnum.percent, name: "生命加成", desc: "生命加成", url: "hp_p_ico" },
-    attack_p: { type: AttrAddTypeEnum.percent, name: "攻击加成", desc: "攻击加成", url: "attack_p_ico" },
-    defence_p: { type: AttrAddTypeEnum.percent, name: "防御加成", desc: "防御加成", url: "defence_p_ico" },
-    hit: { type: AttrAddTypeEnum.percent, name: "命中率", desc: "命中率", url: "hit_ico" },
-    miss: { type: AttrAddTypeEnum.percent, name: "闪避率", desc: "闪避率", url: "miss_ico" },
-    crite: { type: AttrAddTypeEnum.percent, name: "暴击率", desc: "暴击率", url: "crite_ico" },
-    decrite: { type: AttrAddTypeEnum.percent, name: "抗暴率", desc: "抗暴率", url: "decrite_ico" },
-    critedamage: { type: AttrAddTypeEnum.percent, name: "暴击伤害", desc: "暴击伤害", url: "critedamage_ico" },
-    adddamage: { type: AttrAddTypeEnum.percent, name: "伤害加成", desc: "攻击伤害加成", url: "adddamage_ico" },
-    dedamage: { type: AttrAddTypeEnum.percent, name: "伤害减免", desc: "伤害减免", url: "dedamage_ico" },
-    suck: { type: AttrAddTypeEnum.percent, name: "吸血", desc: "吸血", url: "suck_ico" },
-    thorns: { type: AttrAddTypeEnum.percent, name: "反伤", desc: "反伤", url: "thorns_ico" },
-    block: { type: AttrAddTypeEnum.percent, name: "反伤", desc: "反伤", url: "thorns_ico" },
+export const AttrConf = {
+    [AttrEnum.attack]: { type: AttrAddTypeEnum.reality, name: "攻击", desc: "攻击", url: "attack_ico" },
+    [AttrEnum.defence]: { type: AttrAddTypeEnum.reality, name: "防御", desc: "防御", url: "defence_ico" },
+    [AttrEnum.hp]: { type: AttrAddTypeEnum.reality, name: "生命", desc: "生命", url: "hp_ico" },
+    [AttrEnum.speed]: { type: AttrAddTypeEnum.reality, name: "速度", desc: "速度", url: "speed_ico" },
+    [AttrEnum.broken]: { type: AttrAddTypeEnum.reality, name: "破甲", desc: "破甲", url: "broken_ico" },
+    [AttrEnum.power]: { type: AttrAddTypeEnum.reality, name: "士气", desc: "士气", url: "power_ico" },
+    [AttrEnum.hp_p]: { type: AttrAddTypeEnum.percent, name: "生命加成", desc: "生命加成", url: "hp_p_ico" },
+    [AttrEnum.attack_p]: { type: AttrAddTypeEnum.percent, name: "攻击加成", desc: "攻击加成", url: "attack_p_ico" },
+    [AttrEnum.defence_p]: { type: AttrAddTypeEnum.percent, name: "防御加成", desc: "防御加成", url: "defence_p_ico" },
+    [AttrEnum.hit]: { type: AttrAddTypeEnum.percent, name: "命中率", desc: "命中率", url: "hit_ico" },
+    [AttrEnum.miss]: { type: AttrAddTypeEnum.percent, name: "闪避率", desc: "闪避率", url: "miss_ico" },
+    [AttrEnum.crite]: { type: AttrAddTypeEnum.percent, name: "暴击率", desc: "暴击率", url: "crite_ico" },
+    [AttrEnum.decrite]: { type: AttrAddTypeEnum.percent, name: "抗暴率", desc: "抗暴率", url: "decrite_ico" },
+    [AttrEnum.critedamage]: { type: AttrAddTypeEnum.percent, name: "暴击伤害", desc: "暴击伤害", url: "critedamage_ico" },
+    [AttrEnum.adddamage]: { type: AttrAddTypeEnum.percent, name: "伤害加成", desc: "攻击伤害加成", url: "adddamage_ico" },
+    [AttrEnum.dedamage]: { type: AttrAddTypeEnum.percent, name: "伤害减免", desc: "伤害减免", url: "dedamage_ico" },
+    [AttrEnum.suck]: { type: AttrAddTypeEnum.percent, name: "吸血", desc: "吸血", url: "suck_ico" },
+    [AttrEnum.thorns]: { type: AttrAddTypeEnum.percent, name: "反伤", desc: "反伤", url: "thorns_ico" },
+    [AttrEnum.block]: { type: AttrAddTypeEnum.percent, name: "反伤", desc: "反伤", url: "thorns_ico" },
 }

+ 5 - 5
assets/script/game/config/UserConf.ts

@@ -4,7 +4,7 @@ export namespace UserConf {
                 "Id": "gold",
                 "Name": 4100501,
                 "GmName": "金币",
-                "Quantity": 4,
+                "Quality": 4,
                 "Desc": 4200501,
                 "Road": "11;2;6;7;19"
         },
@@ -12,7 +12,7 @@ export namespace UserConf {
                 "Id": "cash",
                 "Name": 4100502,
                 "GmName": "钻石",
-                "Quantity": 4,
+                "Quality": 4,
                 "Desc": 4200502,
                 "Road": "5;6;11;3;4;22;21;27"
         },
@@ -20,7 +20,7 @@ export namespace UserConf {
                 "Id": "xp",
                 "Name": 4100508,
                 "GmName": "账号经验",
-                "Quantity": 4,
+                "Quality": 4,
                 "Desc": 4200508,
                 "Road": "5;11;22"
         },
@@ -28,7 +28,7 @@ export namespace UserConf {
                 "Id": "vip_xp",
                 "Name": 4100509,
                 "GmName": "Vip经验",
-                "Quantity": 4,
+                "Quality": 4,
                 "Desc": 4200509,
                 "Road": 0
         },
@@ -36,7 +36,7 @@ export namespace UserConf {
                 "Id": "diamond",
                 "Name": 4100511,
                 "GmName": "交易币",
-                "Quantity": 6,
+                "Quality": 6,
                 "Desc": 4200511,
                 "Road": "26;27"
         }

+ 1 - 37
assets/script/game/data/EquipData.ts

@@ -1,4 +1,5 @@
 import { ItemEnum } from "../common/InterfaceAddEnum";
+import { EquipManager } from "../manager/EquipManager";
 
 export interface Equip {
     id: string;
@@ -12,16 +13,7 @@ export interface Equip {
 }
 
 class Data {
-    private _equipData: { [id: string]: Equip } = {};
     private _bagData: { [id: string]: Equip } = {};
-
-
-    set equipData(data: { [id: string]: Equip }) {
-        this._equipData = data;
-    }
-    get equipData(): { [id: string]: Equip } {
-        return this._equipData;
-    }
     set bagData(data: { [id: string]: Equip }) {
         this._bagData = data;
     }
@@ -33,7 +25,6 @@ class Data {
     }
 
     reset(): void {
-        this._equipData = {};
         this._bagData = {};
     }
 
@@ -41,10 +32,6 @@ class Data {
         this.reset();
     }   
 
-    getData() {
-        return this._bagData;
-    }
-
     addDataByKey(key,data) {
         this._bagData[key] = data;
     }
@@ -53,29 +40,6 @@ class Data {
             delete this._bagData[key];
         }
     }
-
-    parseDataByServer(data) {
-        for (const key in data) {
-            if (Object.prototype.hasOwnProperty.call(data, key)) {
-                const element = data[key];
-                if(this._bagData[key]){
-                    if(element > 0){
-                        let equip = EquipManager.getEquipById(key, element, false);
-                        if (equip) {
-                            this._bagData[key] = equip;
-                        }
-                    }else{
-                        delete this._bagData[key];
-                    }
-                }else{
-                    let equip = EquipManager.getEquipById(key, element, false);
-                    if (equip) {
-                        this._bagData[key] = equip;
-                    }
-                }
-            }
-        }
-    }
 }
 
 export let EquipData = new Data;

+ 10 - 5
assets/script/game/data/RoleData.ts

@@ -2,7 +2,7 @@ import { ItemEnum } from "../common/InterfaceAddEnum";
 import { RoleConf } from "../ui/tower/conf/RoleConf";
 
 //服务器端返回的英雄数据
-interface RoleServer {
+export interface RoleServer {
     id: string; //英雄id 动物形象id
     grade: number;  //星级
     dna_lv: string;   //基因等级
@@ -10,20 +10,25 @@ interface RoleServer {
     equip: [];//读取状态
     skin: [];//皮肤
     fight_force: number;//战力
+}
+
+export interface Role extends RoleServer {
     conf: {};//配置
+    attr: {};//属性
     type:ItemEnum
 }
+
 //出战英雄数据[种族1 typeID,种族2 typeID,种族3 typeID,种族4 typeID]
 export type FightRole = [number, number, number, number]
 
 class Data {
 
-    private _roles: { [id: string]: RoleServer } = {};
+    private _roles: { [id: string]: Role } = {};
     //上阵英雄
     private _fightRole: FightRole = [0, 0, 0, 0];
     //羁绊
     private _fate: { [id: string]: {} } = {};
-    setData(data: { [id: string]: RoleServer }): void {
+    setData(data: { [id: string]: Role }): void {
         let rConf = RoleConf.data;
         if (data) {
             for (const id in data) {
@@ -44,14 +49,14 @@ class Data {
         return this._roles;
     }
 
-    getRoleDataByID(id: string | number): RoleServer {
+    getRoleDataByID(id: string | number): Role {
         if (typeof id === 'number') {
             id = id.toString();
         }
         return this._roles[id];
     }
 
-    setRoleDataByID(id: string | number, data: RoleServer) {
+    setRoleDataByID(id: string | number, data: Role) {
         if (typeof id === 'number') {
             id = id.toString();
         }

+ 30 - 8
assets/script/game/manager/EquipManager.ts

@@ -95,7 +95,7 @@ export class EquipManager {
                 equips[x][y] = 0;
             }
         }
-        let data = EquipData.getData();
+        let data = EquipData.bagData;
         for (const key in data) {
             if (Object.prototype.hasOwnProperty.call(data, key)) {
                 const element = data[key];
@@ -110,7 +110,7 @@ export class EquipManager {
     //获取阵营装备(分类)
     static getEquipRaceSlotGroup(race) {
         let equips = { 1: [], 2: [], 3: [], 4: [] };
-        let data = EquipData.getData();
+        let data = EquipData.bagData;
         for (const key in data) {
             if (Object.prototype.hasOwnProperty.call(data, key)) {
                 const element = data[key];
@@ -125,7 +125,7 @@ export class EquipManager {
     //获取阵营装备(全)
     static getEquipRaceSlotAllGroup(race) {
         let equips = []
-        let data = EquipData.getData();
+        let data = EquipData.bagData;
         for (const key in data) {
             if (Object.prototype.hasOwnProperty.call(data, key)) {
                 const element = data[key];
@@ -165,7 +165,7 @@ export class EquipManager {
                 }
             }
             if (data.equip) {
-                EquipData.parseDataByServer(data.equip);
+                this.parseDataByServer(data.equip);
             }
             Framework.event.fireEvent(GameEvent.EquipWearChange, args.race);
             callback();
@@ -196,7 +196,7 @@ export class EquipManager {
                 }
             }
             if (data.equip) {
-                EquipData.parseDataByServer(data.equip);
+                this.parseDataByServer(data.equip);
             }
             Framework.event.fireEvent(GameEvent.EquipWearChange, args.race);
             callback();
@@ -205,10 +205,7 @@ export class EquipManager {
 
 
     static setData(bagData, equipData) {
-        EquipData.equipData = {};
         EquipData.bagData = {};
-
-
         for (const key in bagData) {
             if (Object.prototype.hasOwnProperty.call(bagData, key)) {
                 const element = bagData[key];
@@ -238,4 +235,29 @@ export class EquipManager {
         }
     }
 
+    static parseDataByServer(serverData) {
+        let data = EquipData.bagData;
+        for (const key in serverData) {
+            if (Object.prototype.hasOwnProperty.call(serverData, key)) {
+                const element = serverData[key];
+                if(data[key]){
+                    if(element > 0){
+                        let equip = EquipManager.getEquipById(key, element, false);
+                        if (equip) {
+                            data[key] = equip;
+                        }
+                    }else{
+                        delete data[key];
+                    }
+                }else{
+                    let equip = EquipManager.getEquipById(key, element, false);
+                    if (equip) {
+                        data[key] = equip;
+                    }
+                }
+            }
+        }
+        EquipData.bagData = data;
+    }
+
 }

+ 82 - 26
assets/script/game/manager/RoleManager.ts

@@ -1,13 +1,12 @@
 import { Framework } from "../../framework/Framework";
-import { ItemEnum } from "../common/InterfaceAddEnum";
+import { AttrBaseData, AttrConf, AttrEnum, ItemEnum } from "../common/InterfaceAddEnum";
 import { LoginMgr } from "../common/LoginManager";
 import { FateattridConf } from "../config/FateattridConf";
 import { FateConf } from "../config/FateConf";
-import { RoleData } from "../data/RoleData";
+import { RolegradeConf } from "../config/RolegradeConf";
+import { Role, RoleData, RoleServer } from "../data/RoleData";
 import { RoleConf } from "../ui/tower/conf/RoleConf";
-import { ObjectValueType } from "../ui/tower/data/BattleEnum";
-import { GoodsManager } from "./GoodsManager";
-
+import { EquipManager } from "./EquipManager";
 
 //角色管理器
 export class RoleManager {
@@ -19,6 +18,74 @@ export class RoleManager {
         return false;
     }
 
+    static setData(data: { [id: string]: RoleServer }): void {
+        let roles = {}
+        let rConf = RoleConf.data;
+        if (data) {
+            for (const id in data) {
+                if (data.hasOwnProperty(id)) {
+                    if (rConf[id]) {
+                        let role: Role = <Role>data[id];
+                        role.conf = rConf[id];
+                        role.type = ItemEnum.role;
+                        role.attr = this.getRoleAttr(data[id]);
+                        roles[data[id].id] = role;
+                        // console.log(`ID: ${id}, Name: ${role.name}, Level: ${role.level}`);
+                    }
+                }
+            }
+        }
+        RoleData.setData(roles);
+    }
+
+    static getRoleAttr(role) {
+        let attrs:AttrBaseData = {
+            [AttrEnum.attack]: 0,
+            [AttrEnum.defence]: 0,
+            [AttrEnum.hp]: 0,
+            [AttrEnum.speed]: 0,
+            [AttrEnum.broken]: 0,
+            [AttrEnum.power]: 0,
+            [AttrEnum.hp_p]: 0,
+            [AttrEnum.attack_p]: 0,
+            [AttrEnum.defence_p]: 0,
+            [AttrEnum.hit]: 0,
+            [AttrEnum.miss]: 0,
+            [AttrEnum.crite]: 0,
+            [AttrEnum.decrite]: 0,
+            [AttrEnum.critedamage]: 0,
+            [AttrEnum.adddamage]: 0,
+            [AttrEnum.dedamage]: 0,
+            [AttrEnum.suck]: 0,
+            [AttrEnum.thorns]: 0,
+            [AttrEnum.block]: 0
+        };
+        //星级
+		let gradeConf = RolegradeConf.data[String(role['grade'])];
+        let roleConf = RoleConf.data[String(role['id'])]
+        let atkNum = roleConf['Damage'];
+		atkNum = atkNum * gradeConf[`LvAttrMod${roleConf['Quality']}`];
+        attrs[AttrEnum.attack] += Number(atkNum);
+        //装备
+        let equipData = EquipManager.getEquipWearRaceGroup()[roleConf['Race']];
+        for (const key in equipData) {
+            if (Object.prototype.hasOwnProperty.call(equipData, key)) {
+                const element = equipData[key];
+                if (element) {
+                    for (let index = 1; index <= 2; index++) {
+                        let Stat = element.conf['Stat' + index];
+                        if (Stat != 0) {
+                            let str = Stat.split(':');
+                            attrs[str[0]] += Number(str[1]);
+                        }
+                    }
+                }
+            }
+        }
+        //羁绊
+        return attrs;
+    }
+
     //英雄升星
     static sendRoleAdvance(args: { hid: number }, callback) {
         LoginMgr.sendPost('role', 'grade_up', (data) => {
@@ -26,18 +93,18 @@ export class RoleManager {
             let rData = RoleData.getRoleDataByID(args.hid);
             rData.grade = data.grade;
             RoleData.setRoleDataByID(args.hid, rData)
-            if(data.awards){
+            if (data.awards) {
                 Framework.unionManager.parseServerAwards(data.awards);
             }
             callback();
         }, args)
     }
 
-    static sendFateLevelUp(args: { id: number }, callback){
+    static sendFateLevelUp(args: { id: number }, callback) {
         LoginMgr.sendPost('role', 'fate_level_up', (data) => {
             console.log(data);
             this.setFateData(data.fate);
-            if(data.awards){
+            if (data.awards) {
                 Framework.unionManager.parseServerAwards(data.awards);
             }
             callback();
@@ -80,17 +147,17 @@ export class RoleManager {
 
     static getRoleById(rId: number) {
         let roleConf = RoleConf.data[rId]
-        if (roleConf){
-           let rData = RoleData.getRoleDataByID(rId);
+        if (roleConf) {
+            let rData = RoleData.getRoleDataByID(rId);
             if (rData) {
                 return rData;
             } else {
-                return { conf: roleConf, type: ItemEnum.role};
+                return { conf: roleConf, type: ItemEnum.role };
             }
         }
         return null;
     }
-    
+
 
     static setFateData(data: { [key: string]: number }) {
         let fateData = {};
@@ -100,9 +167,9 @@ export class RoleManager {
             if (Object.prototype.hasOwnProperty.call(conf, key)) {
                 const element = conf[key];
                 fateData[key] = {
-                    id:key,
-                    conf:element,
-                    level:0
+                    id: key,
+                    conf: element,
+                    level: 0
                 };
                 if (data[key]) {
                     fateData[key].level = data[key];
@@ -111,15 +178,4 @@ export class RoleManager {
         }
         RoleData.fate = fateData;
     }
-
-    /**
-     * 获取单个英雄全属性
-     * @param typeID 英雄ID
-     * return {[key:ObjectValueType]:number}
-     */
-    static getRoleAttackAdd(typeID): {[key:number]:number} {
-        let valueList:{[key:number]:number}  = {}
-        return valueList;
-    }
-
 }

+ 4 - 3
assets/script/game/manager/UnionManager.ts

@@ -86,9 +86,6 @@ export class UnionManager {
         if (data.get_mails) {
             MailData.setData(data.get_mails)
         }
-        if (data.role_bag && data.role_bag.roles) {
-            RoleData.setData(data.role_bag.roles)
-        }
 
         if (data.equip && data.race_equip) {
             EquipManager.setData(data.equip, data.race_equip)
@@ -101,6 +98,10 @@ export class UnionManager {
         if (data.fate) {
             RoleManager.setFateData(data.fate);
         }
+
+        if (data.role_bag && data.role_bag.roles) {
+            RoleManager.setData(data.role_bag.roles)
+        }
         
         BattleData.setLoginData(data)
 

+ 2 - 2
assets/script/game/ui/hero/EquipChoose.ts

@@ -7,7 +7,7 @@ import { EquipManager } from '../../manager/EquipManager';
 import { Framework } from '../../../framework/Framework';
 import { Equip } from '../../data/EquipData';
 import { CommonItem } from '../common/CommonItem';
-import { AttrAddTypeEnum, AttrEnum } from '../../common/InterfaceAddEnum';
+import { AttrAddTypeEnum, AttrConf } from '../../common/InterfaceAddEnum';
 import { GameEvent } from '../../data/GameEvent';
 const { ccclass, property } = _decorator;
 
@@ -135,7 +135,7 @@ export class EquipChoose extends BaseView {
 			let Stat = this._curEquip.conf['Stat' + index];
 			if (Stat != 0) {
 				let attr = Stat.split(':');
-				let attrConf = AttrEnum[attr[0]]
+				let attrConf = AttrConf[attr[0]]
 				let value = attrConf.type == AttrAddTypeEnum.reality ? Number(attr[1]) :
 					100 * Number(attr[1])
 				attrStr = attrStr + value;

+ 2 - 2
assets/script/game/ui/hero/EquipChooseItem.ts

@@ -3,7 +3,7 @@ import { ResKeeper } from '../../../framework/res/ResKeeper';
 import { StringUtil } from '../../../framework/util/StringUtil';
 import { EquipManager } from '../../manager/EquipManager';
 import { Framework } from '../../../framework/Framework';
-import { AttrAddTypeEnum, AttrEnum } from '../../common/InterfaceAddEnum';
+import { AttrAddTypeEnum, AttrConf } from '../../common/InterfaceAddEnum';
 import { CommonItem } from '../common/CommonItem';
 const { ccclass, property } = _decorator;
 
@@ -75,7 +75,7 @@ export class EquipChooseItem extends ResKeeper {
 			let Stat = data.conf['Stat' + index];
 			if (Stat != 0) {
 				let attr = Stat.split(':');
-				let attrConf = AttrEnum[attr[0]]
+				let attrConf = AttrConf[attr[0]]
 				let value = attrConf.type == AttrAddTypeEnum.reality ? Number(attr[1]) :
 					100 * Number(attr[1])
 				attrStr = attrStr + value;

+ 2 - 2
assets/script/game/ui/hero/EquipOpreate.ts

@@ -4,7 +4,7 @@ import { StringUtil } from '../../../framework/util/StringUtil';
 import { Equip } from '../../data/EquipData';
 import { EquipConf } from '../../config/EquipConf';
 import { CommonItem } from '../common/CommonItem';
-import { AttrAddTypeEnum, AttrEnum } from '../../common/InterfaceAddEnum';
+import { AttrAddTypeEnum, AttrConf } from '../../common/InterfaceAddEnum';
 import { Framework } from '../../../framework/Framework';
 import { ViewID } from '../../../framework/config/LayerConf';
 import { GameEvent } from '../../data/GameEvent';
@@ -147,7 +147,7 @@ export class EquipOpreate extends BaseView {
 			let Stat = this._curEquip.conf['Stat' + index];
 			if (Stat != 0) {
 				let attr = Stat.split(':');
-				let attrConf = AttrEnum[attr[0]]
+				let attrConf = AttrConf[attr[0]]
 				let value = attrConf.type == AttrAddTypeEnum.reality ? ("+" + attr[1]) :
 					("+" + (100 * Number(attr[1])) + "%")
 				attrStr = attrStr + StringUtil.getLanguageData(attrConf.name) + ' ' + value + "\n";

+ 5 - 5
assets/script/game/ui/hero/EquipUpdate.ts

@@ -5,7 +5,7 @@ import { CommonItem } from '../common/CommonItem';
 import List from '../../../framework/list/List';
 import { Equip } from '../../data/EquipData';
 import { EquipManager } from '../../manager/EquipManager';
-import { AttrAddTypeEnum, AttrEnum } from '../../common/InterfaceAddEnum';
+import { AttrAddTypeEnum, AttrConf } from '../../common/InterfaceAddEnum';
 import { Framework } from '../../../framework/Framework';
 const { ccclass, property } = _decorator;
 
@@ -184,7 +184,7 @@ export class EquipUpdate extends BaseView {
 		let curLvConf = EquipManager.getEquipLevelByExp(this._curExp);
 		this.equipNowLevel.string = 'Lv.' + curLvConf.Id;
 		let attr = this._curEquip.conf['Stat1'].split(':');
-		let attrConf = AttrEnum[attr[0]]
+		let attrConf = AttrConf[attr[0]]
 		let attrStr = StringUtil.getLanguageData(attrConf.name);
 		let nowAdd = null;
 		let value = null;
@@ -200,7 +200,7 @@ export class EquipUpdate extends BaseView {
 
 		let nextLvConf = EquipManager.getEquipNextLevel(this._curExp);
 		this.equipNextLevel.string = 'Lv.' + nextLvConf.Id;
-		let attrNextConf = AttrEnum[attr[0]]
+		let attrNextConf = AttrConf[attr[0]]
 		let attrNextStr = StringUtil.getLanguageData(attrNextConf.name);
 		let nextAdd = null;
 		let valueNext = null;
@@ -227,7 +227,7 @@ export class EquipUpdate extends BaseView {
 		} else {
 			let curLvConf = EquipManager.getEquipLevelByExp(this._curExp);
 			let attr = this._curEquip.conf['Stat1'].split(':');
-			let attrConf = AttrEnum[attr[0]]
+			let attrConf = AttrConf[attr[0]]
 			let nowAdd = null;
 			if (attrConf.type == AttrAddTypeEnum.reality) {
 				nowAdd = attr[1] * (1 + curLvConf.AttackMod);
@@ -239,7 +239,7 @@ export class EquipUpdate extends BaseView {
 				nextLvConf = EquipManager.getEquipNextLevel(this._curExp + this._otherExp);
 			}
 			this.equipNextLevel.string = 'Lv.' + nextLvConf.Id;
-			let attrNextConf = AttrEnum[attr[0]]
+			let attrNextConf = AttrConf[attr[0]]
 			let attrNextStr = StringUtil.getLanguageData(attrNextConf.name);
 			let nextAdd = null;
 			let valueNext = null;

+ 2 - 2
assets/script/game/ui/hero/HeroAttr.ts

@@ -168,7 +168,7 @@ export class HeroAttr extends BaseView {
 		}
 
 		let atkNum = this.data['conf']['Damage'];
-		atkNum = atkNum * beforeGConf[`LvAttrMod${this.data['conf']['Quantity']}`]
+		atkNum = atkNum * beforeGConf[`LvAttrMod${this.data['conf']['Quality']}`]
 		attackNumTx.getComponent(Label).string = atkNum;
 		speedNumTx.getComponent(Label).string = this.data['conf']['Speed'];
 		scopeTx.getComponent(Label).string = this.data['conf']['Radius'];
@@ -203,7 +203,7 @@ export class HeroAttr extends BaseView {
 			}
 
 			let afterAddAtkNum = this.data['conf']['Damage'];
-			afterAddAtkNum = afterAddAtkNum * afterGConf[`LvAttrMod${this.data['conf']['Quantity']}`]
+			afterAddAtkNum = afterAddAtkNum * afterGConf[`LvAttrMod${this.data['conf']['Quality']}`]
 			afterAddAttr.getComponent(Label).string = afterAddAtkNum;
 
 			costBg.active = true;

+ 2 - 2
assets/script/game/ui/hero/HeroFateItem.ts

@@ -3,7 +3,7 @@ import { ResKeeper } from '../../../framework/res/ResKeeper';
 import { StringUtil } from '../../../framework/util/StringUtil';
 import List from '../../../framework/list/List';
 import { FateattridConf } from '../../config/FateattridConf';
-import { AttrAddTypeEnum, AttrEnum, ItemEnum } from '../../common/InterfaceAddEnum';
+import { AttrAddTypeEnum, AttrConf, ItemEnum } from '../../common/InterfaceAddEnum';
 import { RoleManager } from '../../manager/RoleManager';
 import { CommonItem } from '../common/CommonItem';
 import { Framework } from '../../../framework/Framework';
@@ -140,7 +140,7 @@ export class HeroFateItem extends ResKeeper {
 			for (let index = 0; index < data.conf.AttrIdArray.length; index++) {
 				const element = atteConf[data.conf.AttrIdArray[index]];
 				let attr = element['AttrLevel' + lv].split(':');
-				let attrConf = AttrEnum[attr[0]]
+				let attrConf = AttrConf[attr[0]]
 				let value = attrConf.type == AttrAddTypeEnum.reality ? attr[1] + '' :
 					parseFloat((100 * Number(attr[1])).toFixed(2)) + '%'
 				arr[1] = StringUtil.getLanguageData(attrConf.name);

+ 9 - 0
assets/script/game/ui/hero/HeroListItem.ts

@@ -93,6 +93,7 @@ export class HeroListItem extends ResKeeper {
 				let ico = equipNode.getChildByName('ico').getComponent(Sprite);
 				let starNode = equipNode.getChildByName('star_node');
 				let starTx = starNode.getChildByName('num').getComponent(Label);
+				let levelTx = equipNode.getChildByName('level_tx').getComponent(Label);
 				let eData = this.data['equips'][Number(slot) + 1];
 				if (eData) {
 					noneNode.active = false;
@@ -103,6 +104,14 @@ export class HeroListItem extends ResKeeper {
 					this.load('common', `texture/icon/equips/equip1_${eData.conf.Slot}1/spriteFrame`, SpriteFrame, (res: SpriteFrame) => {
 						ico.spriteFrame = res;
 					})
+					if (eData.conf['Quality'] < 5) {
+						starNode.active = false;
+					} else {
+						starNode.active = true;
+						starTx.string = String(eData.star);
+					}
+					let lvConf = EquipManager.getEquipLevelByExp(eData.exp);
+					levelTx.string = 'Lv.' + lvConf.Id;
 				} else {
 					noneNode.active = true;
 					equipNode.active = false;

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 447 - 117
assets/sub_bundle/hero/prefab/HeroList.prefab


+ 2 - 2
settings/v2/packages/information.json

@@ -7,7 +7,7 @@
       "enable": true,
       "customSplash": {
         "complete": true,
-        "form": "https://creator-api.cocos.com/api/form/show?sid=64af0cc22a249fc920fe3d48b9bcb783"
+        "form": "https://creator-api.cocos.com/api/form/show?sid=61fc1e00c14e22fd278f2d1609e9096d"
       }
     },
     "removeSplash": {
@@ -16,7 +16,7 @@
       "enable": true,
       "removeSplash": {
         "complete": true,
-        "form": "https://creator-api.cocos.com/api/form/show?sid=64af0cc22a249fc920fe3d48b9bcb783"
+        "form": "https://creator-api.cocos.com/api/form/show?sid=61fc1e00c14e22fd278f2d1609e9096d"
       }
     }
   }

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio