更新
This commit is contained in:
parent
c2d8059834
commit
384bf38b03
Binary file not shown.
BIN
excel/cha.xlsx
BIN
excel/cha.xlsx
Binary file not shown.
BIN
excel/enemy.xlsx
BIN
excel/enemy.xlsx
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
excel/item.xlsx
BIN
excel/item.xlsx
Binary file not shown.
BIN
excel/level.xlsx
BIN
excel/level.xlsx
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
[
|
||||
{"id":1,"type":1,"effectAttribute":"attack","battleValue":[1,10],"iconId":1,"nameId":201},
|
||||
{"id":2,"type":1,"effectAttribute":"hp","battleValue":[1,10],"iconId":2,"nameId":202},
|
||||
{"id":1,"type":1,"effectAttribute":"attack","battleValue":[1,15],"iconId":1,"nameId":201},
|
||||
{"id":2,"type":1,"effectAttribute":"hp","battleValue":[1,1],"iconId":2,"nameId":202},
|
||||
{"id":3,"type":1,"effectAttribute":"swordAtk","battleValue":[1,10],"iconId":3,"nameId":203},
|
||||
{"id":4,"type":2,"effectAttribute":"swordWearBase","battleValue":[1,10],"iconId":4,"nameId":204},
|
||||
{"id":5,"type":2,"effectAttribute":"swordWearSpe","battleValue":[1,10],"iconId":5,"nameId":205},
|
||||
|
@ -1,13 +1,13 @@
|
||||
[
|
||||
{"id":1,"type":1,"effectAttribute":"attack","cost":[1,10,20],"lvAdd":[100,845],"battleValueLimit":[5,20],"maxLv":null},
|
||||
{"id":2,"type":1,"effectAttribute":"hp","cost":[1,10,20],"lvAdd":[2000,845],"battleValueLimit":[5,20],"maxLv":null},
|
||||
{"id":3,"type":1,"effectAttribute":"swordAtk","cost":[1,10,20],"lvAdd":[10,20],"battleValueLimit":[5,20],"maxLv":null},
|
||||
{"id":4,"type":1,"effectAttribute":"swordWearBase","cost":[1,10,20],"lvAdd":[10,20],"battleValueLimit":[5,20],"maxLv":null},
|
||||
{"id":5,"type":1,"effectAttribute":"swordWearSpe","cost":[1,10,20],"lvAdd":[10,20],"battleValueLimit":[5,20],"maxLv":null},
|
||||
{"id":10,"type":2,"effectAttribute":"wearNumber","cost":[1,10,20],"lvAdd":[1,1],"battleValueLimit":[5,20],"maxLv":4},
|
||||
{"id":11,"type":2,"effectAttribute":"abilityNumber","cost":[1,10,20],"lvAdd":[1,1],"battleValueLimit":[5,20],"maxLv":3},
|
||||
{"id":12,"type":2,"effectAttribute":"extraAttributeNumber","cost":[1,10,20],"lvAdd":[1,1],"battleValueLimit":[5,20],"maxLv":3},
|
||||
{"id":13,"type":2,"effectAttribute":"elementNumber","cost":[1,10,20],"lvAdd":[1,1],"battleValueLimit":[5,20],"maxLv":3},
|
||||
{"id":14,"type":2,"effectAttribute":"elementDefNumber","cost":[1,10,20],"lvAdd":[1,1],"battleValueLimit":[5,20],"maxLv":3},
|
||||
{"id":15,"type":2,"effectAttribute":"gemNumber","cost":[1,10,20],"lvAdd":[1,1],"battleValueLimit":[5,20],"maxLv":3}
|
||||
{"id":1,"type":1,"effectAttribute":"attack","cost":[1,300,0],"lvAdd":[40,10985],"battleValueLimit":[5,20],"maxLv":null},
|
||||
{"id":2,"type":1,"effectAttribute":"hp","cost":[1,300,0],"lvAdd":[600,10985],"battleValueLimit":[5,20],"maxLv":null},
|
||||
{"id":3,"type":1,"effectAttribute":"swordAtk","cost":[1,300,0],"lvAdd":[10,0],"battleValueLimit":[5,20],"maxLv":null},
|
||||
{"id":4,"type":1,"effectAttribute":"swordWearBase","cost":[1,300,0],"lvAdd":[10,0],"battleValueLimit":[5,20],"maxLv":null},
|
||||
{"id":5,"type":1,"effectAttribute":"swordWearSpe","cost":[1,300,0],"lvAdd":[10,0],"battleValueLimit":[5,20],"maxLv":null},
|
||||
{"id":10,"type":2,"effectAttribute":"wearNumber","cost":[1,300,0],"lvAdd":[1,1],"battleValueLimit":[5,20],"maxLv":4},
|
||||
{"id":11,"type":2,"effectAttribute":"abilityNumber","cost":[1,300,0],"lvAdd":[1,1],"battleValueLimit":[5,20],"maxLv":3},
|
||||
{"id":12,"type":2,"effectAttribute":"extraAttributeNumber","cost":[1,300,0],"lvAdd":[1,1],"battleValueLimit":[5,20],"maxLv":3},
|
||||
{"id":13,"type":2,"effectAttribute":"elementNumber","cost":[1,300,0],"lvAdd":[1,1],"battleValueLimit":[5,20],"maxLv":3},
|
||||
{"id":14,"type":2,"effectAttribute":"elementDefNumber","cost":[1,300,0],"lvAdd":[1,1],"battleValueLimit":[5,20],"maxLv":3},
|
||||
{"id":15,"type":2,"effectAttribute":"gemNumber","cost":[1,300,0],"lvAdd":[1,1],"battleValueLimit":[5,20],"maxLv":3}
|
||||
]
|
@ -1,3 +1,3 @@
|
||||
[
|
||||
{"id":1,"name":1,"attack":100,"hp":2000,"walkSpeed":10,"atkSpeed":100}
|
||||
{"id":1,"name":1,"attack":40,"hp":600,"walkSpeed":10,"atkSpeed":100}
|
||||
]
|
@ -1,5 +1,5 @@
|
||||
[
|
||||
{"id":1,"type":1,"name":1,"attack":20,"hp":1700,"walkSpeed":8,"attackSpeed":1,"model":"Thief"},
|
||||
{"id":2,"type":1,"name":2,"attack":20,"hp":1700,"walkSpeed":8,"attackSpeed":1,"model":"Thief"},
|
||||
{"id":1,"type":1,"name":1,"attack":10,"hp":150,"walkSpeed":8,"attackSpeed":1,"model":"Thief"},
|
||||
{"id":2,"type":1,"name":2,"attack":10,"hp":150,"walkSpeed":8,"attackSpeed":1,"model":"Thief"},
|
||||
{"id":1000,"type":2,"name":1000,"attack":120,"hp":1000,"walkSpeed":4,"attackSpeed":1,"model":"Thief"}
|
||||
]
|
@ -1,18 +1,18 @@
|
||||
[
|
||||
{"id":40000,"type":1,"name":40000,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40001,"type":1,"name":40001,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40002,"type":1,"name":40002,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40003,"type":1,"name":40003,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40004,"type":1,"name":40004,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40005,"type":1,"name":40005,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40006,"type":1,"name":40006,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40007,"type":1,"name":40007,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40008,"type":1,"name":40008,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40009,"type":1,"name":40009,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40010,"type":1,"name":40010,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40011,"type":1,"name":40011,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40012,"type":1,"name":40012,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40013,"type":1,"name":40013,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40014,"type":1,"name":40014,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40015,"type":1,"name":40015,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10}
|
||||
{"id":40000,"type":1,"name":40000,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":300},
|
||||
{"id":40001,"type":1,"name":40001,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":300},
|
||||
{"id":40002,"type":1,"name":40002,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":300},
|
||||
{"id":40003,"type":1,"name":40003,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":300},
|
||||
{"id":40004,"type":1,"name":40004,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":300},
|
||||
{"id":40005,"type":1,"name":40005,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":300},
|
||||
{"id":40006,"type":1,"name":40006,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":300},
|
||||
{"id":40007,"type":1,"name":40007,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":300},
|
||||
{"id":40008,"type":1,"name":40008,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":300},
|
||||
{"id":40009,"type":1,"name":40009,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":300},
|
||||
{"id":40010,"type":1,"name":40010,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":300},
|
||||
{"id":40011,"type":1,"name":40011,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":300},
|
||||
{"id":40012,"type":1,"name":40012,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":300},
|
||||
{"id":40013,"type":1,"name":40013,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":300},
|
||||
{"id":40014,"type":1,"name":40014,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":300},
|
||||
{"id":40015,"type":1,"name":40015,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":300}
|
||||
]
|
@ -3,27 +3,50 @@
|
||||
{"id":2,"cost":[2,20]},
|
||||
{"id":3,"cost":[2,30]},
|
||||
{"id":4,"cost":[2,40]},
|
||||
{"id":5,"cost":[2,60]},
|
||||
{"id":6,"cost":[2,80]},
|
||||
{"id":7,"cost":[2,100]},
|
||||
{"id":8,"cost":[2,120]},
|
||||
{"id":9,"cost":[2,140]},
|
||||
{"id":10,"cost":[2,160]},
|
||||
{"id":11,"cost":[2,180]},
|
||||
{"id":12,"cost":[2,200]},
|
||||
{"id":13,"cost":[2,220]},
|
||||
{"id":14,"cost":[2,240]},
|
||||
{"id":15,"cost":[2,260]},
|
||||
{"id":16,"cost":[2,280]},
|
||||
{"id":17,"cost":[2,300]},
|
||||
{"id":18,"cost":[2,320]},
|
||||
{"id":19,"cost":[2,340]},
|
||||
{"id":20,"cost":[2,360]},
|
||||
{"id":21,"cost":[2,380]},
|
||||
{"id":22,"cost":[2,400]},
|
||||
{"id":23,"cost":[2,420]},
|
||||
{"id":24,"cost":[2,440]},
|
||||
{"id":25,"cost":[2,460]},
|
||||
{"id":26,"cost":[2,480]},
|
||||
{"id":27,"cost":[2,500]}
|
||||
{"id":5,"cost":[2,50]},
|
||||
{"id":6,"cost":[2,60]},
|
||||
{"id":7,"cost":[2,70]},
|
||||
{"id":8,"cost":[2,80]},
|
||||
{"id":9,"cost":[2,90]},
|
||||
{"id":10,"cost":[2,100]},
|
||||
{"id":11,"cost":[2,110]},
|
||||
{"id":12,"cost":[2,120]},
|
||||
{"id":13,"cost":[2,130]},
|
||||
{"id":14,"cost":[2,140]},
|
||||
{"id":15,"cost":[2,150]},
|
||||
{"id":16,"cost":[2,160]},
|
||||
{"id":17,"cost":[2,170]},
|
||||
{"id":18,"cost":[2,180]},
|
||||
{"id":19,"cost":[2,190]},
|
||||
{"id":20,"cost":[2,200]},
|
||||
{"id":21,"cost":[2,210]},
|
||||
{"id":22,"cost":[2,220]},
|
||||
{"id":23,"cost":[2,230]},
|
||||
{"id":24,"cost":[2,240]},
|
||||
{"id":25,"cost":[2,250]},
|
||||
{"id":26,"cost":[2,260]},
|
||||
{"id":27,"cost":[2,270]},
|
||||
{"id":28,"cost":[2,280]},
|
||||
{"id":29,"cost":[2,290]},
|
||||
{"id":30,"cost":[2,300]},
|
||||
{"id":31,"cost":[2,310]},
|
||||
{"id":32,"cost":[2,320]},
|
||||
{"id":33,"cost":[2,330]},
|
||||
{"id":34,"cost":[2,340]},
|
||||
{"id":35,"cost":[2,350]},
|
||||
{"id":36,"cost":[2,360]},
|
||||
{"id":37,"cost":[2,370]},
|
||||
{"id":38,"cost":[2,380]},
|
||||
{"id":39,"cost":[2,390]},
|
||||
{"id":40,"cost":[2,400]},
|
||||
{"id":41,"cost":[2,410]},
|
||||
{"id":42,"cost":[2,420]},
|
||||
{"id":43,"cost":[2,430]},
|
||||
{"id":44,"cost":[2,440]},
|
||||
{"id":45,"cost":[2,450]},
|
||||
{"id":46,"cost":[2,460]},
|
||||
{"id":47,"cost":[2,470]},
|
||||
{"id":48,"cost":[2,480]},
|
||||
{"id":49,"cost":[2,490]},
|
||||
{"id":50,"cost":[2,500]}
|
||||
]
|
@ -1,6 +1,6 @@
|
||||
[
|
||||
{"id":1,"type":1,"typeArgs":[],"quality":4,"iconId":1,"nameId":10001,"textId":20001,"buyPrice":[],"sellPrice":[],"use":[],"showPackage":null},
|
||||
{"id":2,"type":1,"typeArgs":[],"quality":4,"iconId":2,"nameId":10002,"textId":20002,"buyPrice":[],"sellPrice":[],"use":[],"showPackage":null},
|
||||
{"id":1,"type":1,"typeArgs":[],"quality":1,"iconId":1,"nameId":10001,"textId":20001,"buyPrice":[],"sellPrice":[],"use":[],"showPackage":null},
|
||||
{"id":2,"type":1,"typeArgs":[],"quality":2,"iconId":2,"nameId":10002,"textId":20002,"buyPrice":[],"sellPrice":[],"use":[],"showPackage":null},
|
||||
{"id":3,"type":1,"typeArgs":[],"quality":2,"iconId":3,"nameId":10003,"textId":20003,"buyPrice":[],"sellPrice":[],"use":[],"showPackage":null},
|
||||
{"id":11,"type":1,"typeArgs":[],"quality":1,"iconId":11,"nameId":10011,"textId":20011,"buyPrice":[],"sellPrice":[],"use":[],"showPackage":null},
|
||||
{"id":10000,"type":4,"typeArgs":[],"quality":1,"iconId":12,"nameId":20000,"textId":30000,"buyPrice":[11,10],"sellPrice":[11,10],"use":[],"showPackage":null},
|
||||
|
@ -1,52 +1,52 @@
|
||||
[
|
||||
{"id":1,"type":1,"timeLimit":null,"atkBonus":500,"hpBonus":500,"wave":[[10,1,1,50,1,1]],"finishRewards":[50000,1]},
|
||||
{"id":2,"type":1,"timeLimit":null,"atkBonus":520,"hpBonus":520,"wave":[[10,1,1,50,1,1]],"finishRewards":[50001,1]},
|
||||
{"id":3,"type":1,"timeLimit":null,"atkBonus":540,"hpBonus":540,"wave":[[10,1,1,50,1,1]],"finishRewards":[50002,1]},
|
||||
{"id":4,"type":1,"timeLimit":null,"atkBonus":560,"hpBonus":560,"wave":[[10,1,1,50,1,1]],"finishRewards":[50003,1]},
|
||||
{"id":5,"type":2,"timeLimit":60,"atkBonus":1050,"hpBonus":1050,"wave":[[10,1000,1]],"finishRewards":[50004,1]},
|
||||
{"id":6,"type":1,"timeLimit":null,"atkBonus":600,"hpBonus":600,"wave":[[10,1,1,50,1,1]],"finishRewards":[50005,1]},
|
||||
{"id":7,"type":1,"timeLimit":null,"atkBonus":620,"hpBonus":620,"wave":[[10,1,1,50,1,1]],"finishRewards":[50006,1]},
|
||||
{"id":8,"type":1,"timeLimit":null,"atkBonus":640,"hpBonus":640,"wave":[[10,1,1,50,1,1]],"finishRewards":[50007,1]},
|
||||
{"id":9,"type":1,"timeLimit":null,"atkBonus":660,"hpBonus":660,"wave":[[10,1,1,50,1,1]],"finishRewards":[50008,1]},
|
||||
{"id":10,"type":2,"timeLimit":60,"atkBonus":1100,"hpBonus":1100,"wave":[[10,1000,1]],"finishRewards":[50009,1]},
|
||||
{"id":11,"type":1,"timeLimit":null,"atkBonus":700,"hpBonus":700,"wave":[[10,1,1,50,1,1]],"finishRewards":[50010,1]},
|
||||
{"id":12,"type":1,"timeLimit":null,"atkBonus":720,"hpBonus":720,"wave":[[10,1,1,50,1,1]],"finishRewards":[50011,1]},
|
||||
{"id":13,"type":1,"timeLimit":null,"atkBonus":740,"hpBonus":740,"wave":[[10,1,1,50,1,1]],"finishRewards":[50012,1]},
|
||||
{"id":14,"type":1,"timeLimit":null,"atkBonus":760,"hpBonus":760,"wave":[[10,1,1,50,1,1]],"finishRewards":[50013,1]},
|
||||
{"id":15,"type":2,"timeLimit":60,"atkBonus":1150,"hpBonus":1150,"wave":[[10,1000,1]],"finishRewards":[50014,1]},
|
||||
{"id":16,"type":1,"timeLimit":null,"atkBonus":800,"hpBonus":800,"wave":[[10,1,1,50,1,1]],"finishRewards":[50015,1]},
|
||||
{"id":17,"type":1,"timeLimit":null,"atkBonus":820,"hpBonus":820,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":18,"type":1,"timeLimit":null,"atkBonus":840,"hpBonus":840,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":19,"type":1,"timeLimit":null,"atkBonus":860,"hpBonus":860,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":20,"type":2,"timeLimit":60,"atkBonus":1250,"hpBonus":1250,"wave":[[10,1000,1]],"finishRewards":[]},
|
||||
{"id":21,"type":1,"timeLimit":null,"atkBonus":900,"hpBonus":900,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":22,"type":1,"timeLimit":null,"atkBonus":920,"hpBonus":920,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":23,"type":1,"timeLimit":null,"atkBonus":940,"hpBonus":940,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":24,"type":1,"timeLimit":null,"atkBonus":960,"hpBonus":960,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":25,"type":2,"timeLimit":60,"atkBonus":1350,"hpBonus":1350,"wave":[[10,1000,1]],"finishRewards":[]},
|
||||
{"id":26,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":27,"type":1,"timeLimit":null,"atkBonus":1020,"hpBonus":1020,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":28,"type":1,"timeLimit":null,"atkBonus":1040,"hpBonus":1040,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":29,"type":1,"timeLimit":null,"atkBonus":1060,"hpBonus":1060,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":30,"type":2,"timeLimit":60,"atkBonus":1500,"hpBonus":1500,"wave":[[10,1000,1]],"finishRewards":[]},
|
||||
{"id":31,"type":1,"timeLimit":null,"atkBonus":1100,"hpBonus":1100,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":32,"type":1,"timeLimit":null,"atkBonus":1120,"hpBonus":1120,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":33,"type":1,"timeLimit":null,"atkBonus":1140,"hpBonus":1140,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":34,"type":1,"timeLimit":null,"atkBonus":1160,"hpBonus":1160,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":35,"type":2,"timeLimit":60,"atkBonus":2000,"hpBonus":2000,"wave":[[10,1000,1]],"finishRewards":[]},
|
||||
{"id":36,"type":1,"timeLimit":null,"atkBonus":1200,"hpBonus":1200,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":37,"type":1,"timeLimit":null,"atkBonus":1220,"hpBonus":1220,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":38,"type":1,"timeLimit":null,"atkBonus":1240,"hpBonus":1240,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":39,"type":1,"timeLimit":null,"atkBonus":1260,"hpBonus":1260,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":40,"type":2,"timeLimit":60,"atkBonus":2500,"hpBonus":2500,"wave":[[10,1000,1]],"finishRewards":[]},
|
||||
{"id":41,"type":1,"timeLimit":null,"atkBonus":1300,"hpBonus":1300,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":42,"type":1,"timeLimit":null,"atkBonus":1320,"hpBonus":1320,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":43,"type":1,"timeLimit":null,"atkBonus":1340,"hpBonus":1340,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":44,"type":1,"timeLimit":null,"atkBonus":1360,"hpBonus":1360,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":45,"type":2,"timeLimit":60,"atkBonus":3000,"hpBonus":3000,"wave":[[10,1000,1]],"finishRewards":[]},
|
||||
{"id":46,"type":1,"timeLimit":null,"atkBonus":1400,"hpBonus":1400,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":47,"type":1,"timeLimit":null,"atkBonus":1420,"hpBonus":1420,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":48,"type":1,"timeLimit":null,"atkBonus":1440,"hpBonus":1440,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":49,"type":1,"timeLimit":null,"atkBonus":1460,"hpBonus":1460,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":50,"type":2,"timeLimit":60,"atkBonus":3500,"hpBonus":3500,"wave":[[10,1000,1]],"finishRewards":[]}
|
||||
{"id":1,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1],[10,1,1],[10,1,1],[10,1,1]],"finishRewards":[50000,1]},
|
||||
{"id":2,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1],[10,1,1],[10,1,1],[10,1,1]],"finishRewards":[50001,1]},
|
||||
{"id":3,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[50002,1]},
|
||||
{"id":4,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[50003,1]},
|
||||
{"id":5,"type":2,"timeLimit":60,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1000,1]],"finishRewards":[50004,1]},
|
||||
{"id":6,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[50005,1]},
|
||||
{"id":7,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[50006,1]},
|
||||
{"id":8,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[50007,1]},
|
||||
{"id":9,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[50008,1]},
|
||||
{"id":10,"type":2,"timeLimit":60,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1000,1]],"finishRewards":[50009,1]},
|
||||
{"id":11,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[50010,1]},
|
||||
{"id":12,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[50011,1]},
|
||||
{"id":13,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[50012,1]},
|
||||
{"id":14,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[50013,1]},
|
||||
{"id":15,"type":2,"timeLimit":60,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1000,1]],"finishRewards":[50014,1]},
|
||||
{"id":16,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[50015,1]},
|
||||
{"id":17,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":18,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":19,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":20,"type":2,"timeLimit":60,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1000,1]],"finishRewards":[]},
|
||||
{"id":21,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":22,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":23,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":24,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":25,"type":2,"timeLimit":60,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1000,1]],"finishRewards":[]},
|
||||
{"id":26,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":27,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":28,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":29,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":30,"type":2,"timeLimit":60,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1000,1]],"finishRewards":[]},
|
||||
{"id":31,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":32,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":33,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":34,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":35,"type":2,"timeLimit":60,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1000,1]],"finishRewards":[]},
|
||||
{"id":36,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":37,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":38,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":39,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":40,"type":2,"timeLimit":60,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1000,1]],"finishRewards":[]},
|
||||
{"id":41,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":42,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":43,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":44,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":45,"type":2,"timeLimit":60,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1000,1]],"finishRewards":[]},
|
||||
{"id":46,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":47,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":48,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":49,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1],[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":50,"type":2,"timeLimit":60,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1000,1]],"finishRewards":[]}
|
||||
]
|
@ -1,7 +1,7 @@
|
||||
[
|
||||
{"id":1,"key":"quality_bonus","intValue":null,"stringValue":null,"intArray":[100,125,150,200,275,375]},
|
||||
{"id":2,"key":"level_get_bonus","intValue":null,"stringValue":null,"intArray":[5,2]},
|
||||
{"id":3,"key":"mob_died_get","intValue":null,"stringValue":null,"intArray":[2,10]},
|
||||
{"id":2,"key":"level_get_bonus","intValue":null,"stringValue":null,"intArray":[5,0]},
|
||||
{"id":3,"key":"mob_died_get","intValue":null,"stringValue":null,"intArray":[2,4]},
|
||||
{"id":4,"key":"default_weapon","intValue":null,"stringValue":"Sword","intArray":[]},
|
||||
{"id":5,"key":"quality_show","intValue":null,"stringValue":null,"intArray":[101,102,103,104,105,106,107,108]}
|
||||
]
|
@ -32,6 +32,17 @@ local QUALITY_COLOR = {
|
||||
[8] = Color3.fromRGB(255, 0, 255), -- 粉色
|
||||
}
|
||||
|
||||
local QUALITY_BG_COLOR = {
|
||||
[1] = Color3.fromRGB(255, 255, 255), -- 白色
|
||||
[2] = Color3.fromRGB(66, 209, 66), -- 绿色
|
||||
[3] = Color3.fromRGB(78, 164, 226), -- 蓝色
|
||||
[4] = Color3.fromRGB(159, 71, 221), -- 紫色
|
||||
[5] = Color3.fromRGB(223, 159, 71), -- 橙色
|
||||
[6] = Color3.fromRGB(233, 78, 78), -- 红色
|
||||
[7] = Color3.fromRGB(255, 215, 0), -- 金色
|
||||
[8] = Color3.fromRGB(236, 77, 236), -- 粉色
|
||||
}
|
||||
|
||||
-- 获取本地Json文件
|
||||
function Localization:GetLocalizationJson()
|
||||
if SystemLocaleId == "zh-CN" then
|
||||
@ -99,4 +110,14 @@ function Localization:GetColoredEquipmentQualityDesc(Quality: number): string
|
||||
return self:GetColoredTextByQuality(Quality, language)
|
||||
end
|
||||
|
||||
-- 根据quality获取装备品质描述(带颜色)
|
||||
function Localization:GetQualityBgColor(Quality: number): string
|
||||
return QUALITY_BG_COLOR[Quality]
|
||||
end
|
||||
|
||||
-- 获取黑色贴图
|
||||
function Localization:GetBlackTexture(): string
|
||||
return "rbxassetid://87376908468146"
|
||||
end
|
||||
|
||||
return Localization
|
@ -20,6 +20,7 @@ local JsonParam = require(ReplicatedStorage.Json.Param)
|
||||
--> Events
|
||||
local RE_PlayerTip = ReplicatedStorage.Events.RE_PlayerTip
|
||||
local RE_WearEquipment = ReplicatedStorage.Events.RE_WearEquipment
|
||||
local RE_RecycleEquipment = ReplicatedStorage.Events.RE_RecycleEquipment
|
||||
|
||||
--> Constants
|
||||
local STORE_NAME = "Equipment"
|
||||
@ -232,7 +233,7 @@ function EquipmentProxy:AddEquipment(Player: Player, EquipmentId: number)
|
||||
return equipmentInstance
|
||||
end
|
||||
|
||||
-- 回收装备
|
||||
-- 回收单件装备
|
||||
function EquipmentProxy:RecycleEquipment(Player: Player, EquipmentId: number)
|
||||
local pData = Utils:GetPlayerDataFolder(Player)
|
||||
if not pData then return end
|
||||
@ -242,19 +243,34 @@ function EquipmentProxy:RecycleEquipment(Player: Player, EquipmentId: number)
|
||||
|
||||
-- 根据对应功能模块进行对应回收
|
||||
local AbilityProxy = require(ServerStorage.Proxy.AbilityProxy)
|
||||
AbilityProxy:RecycleAbility(Player, EquipmentData.id)
|
||||
-- AbilityProxy:RecycleAbility(Player, EquipmentData.id)
|
||||
local GemProxy = require(ServerStorage.Proxy.GemProxy)
|
||||
GemProxy:RecycleGem(Player, EquipmentData.id)
|
||||
-- GemProxy:RecycleGem(Player, EquipmentData.id)
|
||||
|
||||
-- 回收装备返回金币
|
||||
-- TODO:处理关卡金币产出加成和词条加成
|
||||
PlayerInfoProxy:ChangeItem(Player, 1, EquipmentData.recycle)
|
||||
local rewardData = {["1"] = EquipmentData.recycle}
|
||||
PlayerInfoProxy:ChangeItemCount(Player, 1, EquipmentData.recycle)
|
||||
|
||||
ArchiveProxy.pData[Player.UserId][STORE_NAME][EquipmentId] = nil
|
||||
|
||||
ArchiveProxy.pData[Player.UserId][EquipmentId] = nil
|
||||
local EquipmentInstance = GetPlayerEquipmentFolder(Player):FindFirstChild(EquipmentId)
|
||||
if EquipmentInstance then
|
||||
EquipmentInstance:Destroy()
|
||||
end
|
||||
return rewardData
|
||||
end
|
||||
|
||||
-- 批量回收装备
|
||||
function EquipmentProxy:RecycleEquipmentList(Player: Player, EquipmentUniqueIds: table)
|
||||
local rewardData = {}
|
||||
for _, EquipmentUniqueId in EquipmentUniqueIds do
|
||||
local newRewardData = EquipmentProxy:RecycleEquipment(Player, EquipmentUniqueId)
|
||||
if newRewardData then
|
||||
Utils:TableSafeAddTableValue(rewardData, newRewardData)
|
||||
end
|
||||
end
|
||||
return rewardData
|
||||
end
|
||||
|
||||
-- 穿戴装备
|
||||
@ -381,6 +397,9 @@ RE_WearEquipment.OnServerEvent:Connect(function(Player: Player, EquipmentUniqueI
|
||||
EquipmentProxy:WearEquipment(Player, EquipmentUniqueId, SlotId)
|
||||
end
|
||||
end)
|
||||
RE_RecycleEquipment.OnServerEvent:Connect(function(Player: Player, EquipmentUniqueIds: table)
|
||||
EquipmentProxy:RecycleEquipmentList(Player, EquipmentUniqueIds)
|
||||
end)
|
||||
|
||||
|
||||
return EquipmentProxy
|
@ -325,7 +325,12 @@ function PlayerInfoProxy:GetPlayerUpgradeAttributes(Player: Player)
|
||||
for AttributeId, AttributeLv in playerInfoData.AttributesUpgrade do
|
||||
local attributeData = Utils:GetIdDataFromJson(JsonAttributesUpgrade, AttributeId)
|
||||
-- attributes[attributeData["effectAttribute"]] = attributeData["lvAdd"][1] + (AttributeLv - 1) * attributeData["lvAdd"][2]
|
||||
attributes[attributeData["effectAttribute"]] = math.floor(attributeData["lvAdd"][1] ^ (AttributeLv - 1) * attributeData["lvAdd"][2] / 10000)
|
||||
local effectAttribute = attributeData["effectAttribute"]
|
||||
if effectAttribute == "attack" or effectAttribute == "hp" then
|
||||
attributes[effectAttribute] = math.floor(attributeData["lvAdd"][1] * (AttributeLv ^ (attributeData["lvAdd"][2] / 10000)) - attributeData["lvAdd"][1])
|
||||
else
|
||||
attributes[effectAttribute] = math.floor(attributeData["lvAdd"][1] ^ (AttributeLv - 1) * attributeData["lvAdd"][2] / 10000)
|
||||
end
|
||||
end
|
||||
return attributes
|
||||
end
|
||||
|
55
src/StarterPlayerScripts/UI/Common/ItemShow.luau
Normal file
55
src/StarterPlayerScripts/UI/Common/ItemShow.luau
Normal file
@ -0,0 +1,55 @@
|
||||
local ItemShow = {}
|
||||
ItemShow.__index = ItemShow
|
||||
|
||||
local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
||||
|
||||
local Utils = require(ReplicatedStorage.Tools.Utils)
|
||||
local Localization = require(ReplicatedStorage.Tools.Localization)
|
||||
local JsonEquipment = require(ReplicatedStorage.Json.Equipment)
|
||||
local JsonItemProp = require(ReplicatedStorage.Json.ItemProp)
|
||||
|
||||
function ItemShow:Init(data: table)
|
||||
local self = {}
|
||||
self.Data = data
|
||||
self.Variables = {
|
||||
["_btnClick"] = 0,
|
||||
["_imgIcon"] = 0,
|
||||
["_imgQuality"] = 0,
|
||||
["_tmpName"] = 0,
|
||||
["_tmpCount"] = 0,
|
||||
}
|
||||
self.Connections = {}
|
||||
|
||||
setmetatable(self, ItemShow)
|
||||
return self
|
||||
end
|
||||
|
||||
function ItemShow:Refresh()
|
||||
local itemData = Utils:GetIdDataFromJson(JsonItemProp, self.Data.orgId)
|
||||
self.Variables._imgIcon.Image = Localization:GetImageData(itemData.iconId)
|
||||
self.Variables._imgQuality.BackgroundColor3 = Localization:GetQualityBgColor(itemData.quality)
|
||||
self.Variables._tmpName.Text = Localization:GetLanguageData(itemData.nameId)
|
||||
|
||||
-- 数量
|
||||
self.Variables._tmpCount.Text = self.Data.count or ""
|
||||
end
|
||||
|
||||
function ItemShow:OnInitFinish()
|
||||
-- TODO: 之后做点击详情弹窗
|
||||
-- local con = self.Variables._btnClick.MouseButton1Click:Connect(function()
|
||||
-- if self.Data == {} then
|
||||
-- else
|
||||
-- self.TopUI:ShowDetailData(self.Data.id)
|
||||
-- end
|
||||
-- end)
|
||||
-- table.insert(self.Connections, con)
|
||||
end
|
||||
|
||||
function ItemShow:Destroy()
|
||||
for k, v in pairs(self) do
|
||||
self[k] = nil
|
||||
end
|
||||
self = nil
|
||||
end
|
||||
|
||||
return ItemShow
|
@ -34,6 +34,7 @@ function ChaWindow:Init(UIManager: table, Data: table?)
|
||||
["_imgIcon"] = 0,
|
||||
["_btnClose"] = 0,
|
||||
["_btnBgClose"] = 0,
|
||||
["_btnRecycle"] = 0,
|
||||
}
|
||||
self.UIRootName = "ui_w_cha"
|
||||
self.UIParentName = UIEnums.UIParent.UIRoot
|
||||
@ -95,6 +96,20 @@ function ChaWindow:AddInstanceData(configInstance: Instance, Data: table?)
|
||||
return data[parentName][secondName], parentName
|
||||
end
|
||||
|
||||
function ChaWindow:RemoveInstanceData(configInstance: Instance, Data: table?)
|
||||
for key, data in pairs(self.Data.Wearing) do
|
||||
if data.instance == configInstance then
|
||||
return tostring(key), "Wearing"
|
||||
end
|
||||
end
|
||||
for key, data in pairs(self.Data.Package) do
|
||||
if data.instance == configInstance then
|
||||
return tostring(key), "Package"
|
||||
end
|
||||
end
|
||||
return nil
|
||||
end
|
||||
|
||||
function ChaWindow:OnOpenWindow()
|
||||
UIWindow.OnOpenWindow(self)
|
||||
|
||||
@ -135,13 +150,12 @@ function ChaWindow:OnOpenWindow()
|
||||
end)
|
||||
|
||||
local removeCon = DataFolder.ChildRemoved:Connect(function(child)
|
||||
local parentName = self:RemoveInstanceData(child, data)
|
||||
-- TODO: 这里清除逻辑不清晰,之后优化
|
||||
local key, parentName = self:RemoveInstanceData(child, self.Data)
|
||||
if parentName == "Wearing" then
|
||||
local removeIndex = self.Variables["__listWeaing"]:RemoveData(data)
|
||||
self.Data.Wearing[removeIndex] = {}
|
||||
local removeIndex = self.Variables["__listWeaing"]:RemoveData(key)
|
||||
else
|
||||
local removeIndex = self.Variables["__listWeaponPackage"]:RemoveData(data)
|
||||
self.Data.Package[removeIndex] = {}
|
||||
local removeIndex = self.Variables["__listWeaponPackage"]:RemoveData(key)
|
||||
end
|
||||
end)
|
||||
|
||||
@ -151,11 +165,15 @@ function ChaWindow:OnOpenWindow()
|
||||
local closeCon = self.Variables["_btnClose"].Activated:Connect(function()
|
||||
self.UIManager:CloseWindow(script.Name)
|
||||
end)
|
||||
local recycleCon = self.Variables["_btnRecycle"].Activated:Connect(function()
|
||||
self.UIManager:OpenWindow("RecycleWindow")
|
||||
end)
|
||||
|
||||
table.insert(self.Connections, addCon)
|
||||
table.insert(self.Connections, removeCon)
|
||||
table.insert(self.Connections, bgCloseCon)
|
||||
table.insert(self.Connections, closeCon)
|
||||
table.insert(self.Connections, recycleCon)
|
||||
|
||||
self.Variables["__listWeaponPackage"]:AddComponent(PackageShow)
|
||||
self.Variables["__listWeaing"]:AddComponent(WearingShow)
|
||||
|
@ -8,6 +8,9 @@ local Localization = require(ReplicatedStorage.Tools.Localization)
|
||||
local Signal = require(ReplicatedStorage.Tools.Signal)
|
||||
|
||||
local JsonItemProp = require(ReplicatedStorage.Json.ItemProp)
|
||||
local JsonEquipment = require(ReplicatedStorage.Json.Equipment)
|
||||
|
||||
local FolderEquipment = ReplicatedStorage:WaitForChild("Prefabs"):WaitForChild("Equipments")
|
||||
|
||||
function WeaponItem:Init(data: table)
|
||||
local self = {}
|
||||
@ -18,6 +21,7 @@ function WeaponItem:Init(data: table)
|
||||
["_tmpQuality"] = 0,
|
||||
["_btnClick"] = 0,
|
||||
["_imgSelected"] = 0,
|
||||
["_imgView"] = 0,
|
||||
}
|
||||
self.SignalConnections = {}
|
||||
self.Connections = {}
|
||||
@ -34,7 +38,27 @@ function WeaponItem:Refresh()
|
||||
local itemData = Utils:GetIdDataFromJson(JsonItemProp, self.Data.OrgId)
|
||||
self.Variables._imgIcon.Image = Localization:GetImageData(itemData.iconId)
|
||||
self.Variables._tmpName.Text = Localization:GetLanguageData(itemData.nameId)
|
||||
self.Variables._tmpQuality.Text = self.Data.Quality
|
||||
self.Variables._tmpQuality.Text = Localization:GetColoredEquipmentQualityDesc(self.Data.Quality)
|
||||
|
||||
local equipmentData = Utils:GetIdDataFromJson(JsonEquipment, self.Data.OrgId)
|
||||
-- 模型
|
||||
local part = FolderEquipment:FindFirstChild(equipmentData.modelName):Clone()
|
||||
part.Handle.Position = Vector3.new(0, 0, 0)
|
||||
part.Handle.CFrame = CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(90), 0, 0)
|
||||
part.Parent = self.Variables["_imgView"]
|
||||
self.Prefab = part
|
||||
|
||||
-- 相机
|
||||
local viewportCamera = Instance.new("Camera")
|
||||
self.Variables["_imgView"].CurrentCamera = viewportCamera
|
||||
viewportCamera.Parent = self.Variables["_imgView"]
|
||||
viewportCamera.CFrame = CFrame.new(Vector3.new(0, 0, 6), part.Handle.Position)
|
||||
self.ViewCamera = viewportCamera
|
||||
|
||||
-- 如果图鉴没有,就设置成黑色的
|
||||
if self.Data.Timestamp == 0 then
|
||||
part.Handle.Mesh.TextureId = Localization:GetBlackTexture()
|
||||
end
|
||||
end
|
||||
|
||||
function WeaponItem:OnInitFinish()
|
||||
|
@ -15,11 +15,42 @@ local Signal = require(ReplicatedStorage.Tools.Signal)
|
||||
|
||||
--> Json
|
||||
local JsonItemProp = require(ReplicatedStorage.Json.ItemProp)
|
||||
local JsonForge = require(ReplicatedStorage.Json.Forge)
|
||||
|
||||
--> Events
|
||||
local RE_Forge = ReplicatedStorage.Events.RE_Forge
|
||||
|
||||
local LocalPlayer = game.Players.LocalPlayer
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
-- 简单的递增消耗计算函数
|
||||
local function GetIncrementalCost(currentLevel: number, configData: table, costIndex: number?)
|
||||
costIndex = costIndex or 2 -- 默认使用第二个消耗值
|
||||
|
||||
-- 获取配置表的最大ID
|
||||
local maxId = Utils:GetMaxIdFromJson(configData)
|
||||
|
||||
-- 如果当前等级超过最大ID,使用最大ID的消耗配置
|
||||
local effectiveLevel = math.min(currentLevel, maxId)
|
||||
|
||||
-- 根据有效等级获取对应的消耗配置
|
||||
local levelData = Utils:GetIdDataFromJson(configData, effectiveLevel)
|
||||
if not levelData or not levelData.cost then
|
||||
warn("无法获取等级", effectiveLevel, "的消耗配置")
|
||||
return 0
|
||||
end
|
||||
|
||||
-- 确保costIndex在有效范围内
|
||||
if costIndex > #levelData.cost then
|
||||
warn("消耗索引超出范围:", costIndex, "最大索引:", #levelData.cost)
|
||||
return 0
|
||||
end
|
||||
|
||||
return levelData.cost[costIndex]
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
local CreateWindow = {}
|
||||
@ -47,6 +78,8 @@ function CreateWindow:Init(UIManager: table, Data: table?)
|
||||
["__moneyCoin"] = 0,
|
||||
}
|
||||
self.MultNumber = 1
|
||||
self.MultArray = {1, 2, 5, 10}
|
||||
self.MultIndex = 1
|
||||
self.AutoRecycle = false
|
||||
self.UIRootName = "ui_w_create"
|
||||
self.UIParentName = UIEnums.UIParent.UIRoot
|
||||
@ -69,8 +102,9 @@ function CreateWindow:ShowDetailInfo(data: table?)
|
||||
end
|
||||
|
||||
function CreateWindow:OnClickMult()
|
||||
self.MultNumber += 1
|
||||
if self.MultNumber > 10 then self.MultNumber = 1 end
|
||||
self.MultIndex += 1
|
||||
if self.MultIndex > #self.MultArray then self.MultIndex = 1 end
|
||||
self.MultNumber = self.MultArray[self.MultIndex]
|
||||
self.Variables["_btnMult"].Text = "x" .. self.MultNumber
|
||||
end
|
||||
|
||||
@ -86,6 +120,24 @@ function CreateWindow:OnClickCreate()
|
||||
end
|
||||
end
|
||||
|
||||
-- 锻造货币数量进度显示
|
||||
function CreateWindow:SetShowForgeCost(nowForgeTime : number, moneyValue: number)
|
||||
local maxForgeId = Utils:GetMaxIdFromJson(JsonForge)
|
||||
local forgeTime = math.min(nowForgeTime, maxForgeId)
|
||||
|
||||
-- 获取当前锻造次数对应的消耗(用于UI显示)
|
||||
local currentCost = GetIncrementalCost(forgeTime, JsonForge, 2)
|
||||
|
||||
-- 进度条 - 使用当前锻造次数对应的消耗显示
|
||||
self.Variables["_btnCreate"].Text = string.format("%d/%d", moneyValue, currentCost)
|
||||
if moneyValue >= currentCost then
|
||||
self.Variables["_btnCreate"].BackgroundColor3 = Color3.fromRGB(235, 245, 95)
|
||||
else
|
||||
self.Variables["_btnCreate"].BackgroundColor3 = Color3.fromRGB(139, 139, 139)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
function CreateWindow:OnOpenWindow()
|
||||
UIWindow.OnOpenWindow(self)
|
||||
|
||||
@ -150,6 +202,33 @@ function CreateWindow:OnOpenWindow()
|
||||
else
|
||||
self:ShowDetailInfo()
|
||||
end
|
||||
|
||||
|
||||
-- 货币进度条显示
|
||||
local rePlayerDataFolder = Utils:GetPlayerDataFolder(LocalPlayer)
|
||||
local playerInfoFolder = rePlayerDataFolder:WaitForChild("PlayerInfo")
|
||||
local forgeInstance = playerInfoFolder:WaitForChild("Stats"):WaitForChild("forge")
|
||||
|
||||
local itemFolder = playerInfoFolder:WaitForChild("Items")
|
||||
local hasItem = itemFolder:FindFirstChild("2")
|
||||
|
||||
-- 设置锻造货币变动链接
|
||||
local function SetForgeCostChange()
|
||||
local costChangeCon = hasItem.Changed:Connect(function(newValue)
|
||||
self:SetShowForgeCost(forgeInstance.Value, newValue)
|
||||
end)
|
||||
table.insert(self.Connections, costChangeCon)
|
||||
end
|
||||
|
||||
if hasItem then
|
||||
-- 后续变动设置
|
||||
SetForgeCostChange()
|
||||
-- 初始化设置
|
||||
self:SetShowForgeCost(forgeInstance.Value, hasItem.Value)
|
||||
else
|
||||
-- 初始化设置
|
||||
self:SetShowForgeCost(forgeInstance.Value, 0)
|
||||
end
|
||||
end
|
||||
|
||||
function CreateWindow:OnCloseWindow()
|
||||
|
@ -238,7 +238,6 @@ function MainWindow:OnOpenWindow()
|
||||
-- 初始化设置
|
||||
self:SetShowForgeBar(forgeInstance.Value, 0)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
return MainWindow
|
@ -0,0 +1,88 @@
|
||||
local RecyclePackageShow = {}
|
||||
RecyclePackageShow.__index = RecyclePackageShow
|
||||
|
||||
local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
||||
|
||||
local Utils = require(ReplicatedStorage.Tools.Utils)
|
||||
local Localization = require(ReplicatedStorage.Tools.Localization)
|
||||
local JsonEquipment = require(ReplicatedStorage.Json.Equipment)
|
||||
local JsonItemProp = require(ReplicatedStorage.Json.ItemProp)
|
||||
|
||||
local FolderEquipment = ReplicatedStorage:WaitForChild("Prefabs"):WaitForChild("Equipments")
|
||||
|
||||
function RecyclePackageShow:Init(data: table)
|
||||
local self = {}
|
||||
self.Data = data
|
||||
self.Variables = {
|
||||
["_btnClick"] = 0,
|
||||
["_imgIcon"] = 0,
|
||||
["_tmpQuality"] = 0,
|
||||
["_tmpName"] = 0,
|
||||
["_imgView"] = 0,
|
||||
["_imgSelected"] = 0,
|
||||
}
|
||||
self.Connections = {}
|
||||
|
||||
setmetatable(self, RecyclePackageShow)
|
||||
|
||||
return self
|
||||
end
|
||||
|
||||
function RecyclePackageShow:Refresh()
|
||||
local itemData = Utils:GetIdDataFromJson(JsonItemProp, self.Data.orgId)
|
||||
self.Variables._imgIcon.Image = Localization:GetImageData(itemData.iconId)
|
||||
self.Variables._imgIcon.Visible = false
|
||||
self.Variables._tmpQuality.Text = Localization:GetColoredEquipmentQualityDesc(self.Data.quality)
|
||||
self.Variables._tmpName.Text = Localization:GetLanguageData(itemData.nameId)
|
||||
|
||||
local equipmentData = Utils:GetIdDataFromJson(JsonEquipment, self.Data.orgId)
|
||||
-- 模型
|
||||
local part = FolderEquipment:FindFirstChild(equipmentData.modelName):Clone()
|
||||
part.Handle.Position = Vector3.new(0, 0, 0)
|
||||
part.Handle.CFrame = CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(90), 0, 0)
|
||||
part.Parent = self.Variables["_imgView"]
|
||||
self.Prefab = part
|
||||
|
||||
-- 相机
|
||||
local viewportCamera = Instance.new("Camera")
|
||||
self.Variables["_imgView"].CurrentCamera = viewportCamera
|
||||
viewportCamera.Parent = self.Variables["_imgView"]
|
||||
viewportCamera.CFrame = CFrame.new(Vector3.new(0, 0, 6), part.Handle.Position)
|
||||
self.ViewCamera = viewportCamera
|
||||
end
|
||||
|
||||
function RecyclePackageShow:OnInitFinish()
|
||||
local con = self.Variables._btnClick.MouseButton1Click:Connect(function()
|
||||
if self.Data == {} then
|
||||
-- TODO: 之后做提示弹窗
|
||||
else
|
||||
self.Variables._imgSelected.Visible = not self.Variables._imgSelected.Visible
|
||||
self.TopUI:SetSelectedShow(self.Data.instance, self.Variables._imgSelected.Visible)
|
||||
end
|
||||
end)
|
||||
table.insert(self.Connections, con)
|
||||
|
||||
if self.Data.instance then
|
||||
local wearingCon = self.Data.instance:GetAttributeChangedSignal("wearing"):Connect(function()
|
||||
local oldWearing = self.Data.wearing
|
||||
local newWearing = self.Data.instance:GetAttribute("wearing")
|
||||
if oldWearing ~= newWearing then
|
||||
if newWearing > 0 then
|
||||
self.TopUI:WearRefresh(self.Data)
|
||||
else
|
||||
self.TopUI:UnwearRefresh(self.Data)
|
||||
end
|
||||
end
|
||||
end)
|
||||
table.insert(self.Connections, wearingCon)
|
||||
end
|
||||
end
|
||||
|
||||
function RecyclePackageShow:Destroy()
|
||||
for k, v in pairs(self) do
|
||||
self[k] = nil
|
||||
end
|
||||
self = nil
|
||||
end
|
||||
|
||||
return RecyclePackageShow
|
121
src/StarterPlayerScripts/UI/Windows/RecycleWindow/init.luau
Normal file
121
src/StarterPlayerScripts/UI/Windows/RecycleWindow/init.luau
Normal file
@ -0,0 +1,121 @@
|
||||
--> Services
|
||||
local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
||||
|
||||
--> Dependencies
|
||||
local UIWindow = require(ReplicatedStorage.Base.UIWindow)
|
||||
local UIEnums = require(ReplicatedStorage.Base.UIEnums)
|
||||
local Tween = require(ReplicatedStorage.Modules.Tween)
|
||||
local Utils = require(ReplicatedStorage.Tools.Utils)
|
||||
|
||||
--> Components
|
||||
local RecyclePackageShow = require(script.RecyclePackageShow)
|
||||
local JsonEquipment = require(ReplicatedStorage.Json.Equipment)
|
||||
|
||||
--> Events
|
||||
local RE_RecycleEquipment = ReplicatedStorage.Events.RE_RecycleEquipment
|
||||
|
||||
--> Local
|
||||
local LocalPlayer = game:GetService("Players").LocalPlayer
|
||||
|
||||
local CommonFolder = LocalPlayer:WaitForChild("PlayerScripts"):WaitForChild("UI"):WaitForChild("Common")
|
||||
local ItemShow = require(CommonFolder:WaitForChild("ItemShow"))
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
local RecycleWindow = {}
|
||||
RecycleWindow.__index = RecycleWindow
|
||||
setmetatable(RecycleWindow, {__index = UIWindow})
|
||||
|
||||
function RecycleWindow:Init(UIManager: table, Data: table?)
|
||||
local self = UIWindow:Init(UIManager, Data)
|
||||
setmetatable(self, RecycleWindow)
|
||||
self.Variables = {
|
||||
["_goRecyclePanel"] = 0,
|
||||
["__listWeaponPackage"] = 0,
|
||||
["__listRewardPackage"] = 0,
|
||||
|
||||
["_btnRecycle"] = 0,
|
||||
["_btnBgClose"] = 0,
|
||||
["_btnClose"] = 0,
|
||||
}
|
||||
self.UIRootName = "ui_w_recycle"
|
||||
self.UIParentName = UIEnums.UIParent.UIRoot
|
||||
|
||||
return self
|
||||
end
|
||||
|
||||
-- 设置选中显示
|
||||
function RecycleWindow:SetSelectedShow(instance: Instance, isSelected: boolean)
|
||||
local equipmentData = Utils:GetIdDataFromJson(JsonEquipment, instance:GetAttribute("orgId"))
|
||||
-- 图方便,临时做的,之后优化
|
||||
if isSelected then
|
||||
self.Data.Reward[1].count = self.Data.Reward[1].count + equipmentData.recycle
|
||||
self.Data.RecycleInstance[instance] = instance
|
||||
else
|
||||
self.Data.Reward[1].count = self.Data.Reward[1].count - equipmentData.recycle
|
||||
self.Data.RecycleInstance[instance] = nil
|
||||
end
|
||||
self.Variables["__listRewardPackage"]:SetData(self.Data.Reward)
|
||||
end
|
||||
|
||||
-- 回收
|
||||
function RecycleWindow:Recycle()
|
||||
local recycleData = {}
|
||||
for _, instance in self.Data.RecycleInstance do
|
||||
table.insert(recycleData, instance:GetAttribute("id"))
|
||||
end
|
||||
if #recycleData > 0 then
|
||||
RE_RecycleEquipment:FireServer(recycleData)
|
||||
self.UIManager:CloseWindow(script.Name)
|
||||
else
|
||||
return nil
|
||||
end
|
||||
end
|
||||
|
||||
function RecycleWindow:AddInstanceData(configInstance: Instance, Data: table?)
|
||||
local data = self.Data
|
||||
if Data then data = Data end
|
||||
local attributes = configInstance:GetAttributes()
|
||||
|
||||
-- 归类是否是穿戴的装备
|
||||
local parentName, secondName = "Package", configInstance.Name
|
||||
|
||||
-- 穿戴中直接打断
|
||||
if attributes.wearing ~= 0 then return nil end
|
||||
data[parentName][secondName] = {}
|
||||
|
||||
for attributeKey, attributeValue in attributes do
|
||||
data[parentName][secondName][attributeKey] = attributeValue
|
||||
end
|
||||
data[parentName][secondName].instance = configInstance
|
||||
return data[parentName][secondName], parentName
|
||||
end
|
||||
|
||||
function RecycleWindow:OnOpenWindow()
|
||||
UIWindow.OnOpenWindow(self)
|
||||
|
||||
-- 自己进行数据处理
|
||||
local DataFolder = Utils:WaitPlayerDataFolder(LocalPlayer):FindFirstChild("Equipment")
|
||||
local data = {
|
||||
Reward = {{orgId = 1, count = 0}},
|
||||
RecycleInstance = {},
|
||||
Package = {},
|
||||
}
|
||||
for _, child in DataFolder:GetChildren() do
|
||||
self:AddInstanceData(child, data)
|
||||
end
|
||||
self.Data = data
|
||||
|
||||
self.Variables["__listWeaponPackage"]:AddComponent(RecyclePackageShow)
|
||||
self.Variables["__listWeaponPackage"]:SetData(self.Data.Package)
|
||||
-- self.Variables["__listWeaponPackage"]:SetLayoutOrder("package")
|
||||
self.Variables["__listRewardPackage"]:AddComponent(ItemShow)
|
||||
self.Variables["__listRewardPackage"]:SetData(self.Data.Reward)
|
||||
|
||||
local con = self.Variables._btnRecycle.MouseButton1Click:Connect(function()
|
||||
self:Recycle()
|
||||
end)
|
||||
table.insert(self.Connections, con)
|
||||
end
|
||||
|
||||
return RecycleWindow
|
Loading…
x
Reference in New Issue
Block a user