Browse Source

解决PDC 2P协力转换错误的问题

tags/v16.1
枫谷剑仙 5 years ago
parent
commit
fbcac75fd2
1 changed files with 40 additions and 9 deletions
  1. +40
    -9
      script.js

+ 40
- 9
script.js View File

@@ -352,7 +352,19 @@ Formation.prototype.getPdcQrStr = function()
o.set(15, position);
return o;
}
let pdcTeamsStr = this.teams.map(t=>{
let outArr = [
[1,this.teams.length - 1]
];
if (this.teams.length == 2)
{
const team1 = this.teams[0];
const team2 = this.teams[1];
team1[0].push(team2[0].shift());
team1[1].push(team2[1].shift());
}

let pdcTeamsStr = this.teams.map((t,idx,arr)=>{
let teamArr = [
pdcBadgeMap.find(badge=>badge.pdf === t[2]).pdc //徽章
];
@@ -362,7 +374,7 @@ Formation.prototype.getPdcQrStr = function()
{
if (membersArr[i].id > 0 || assistArr[i].id > 0)
{
let pdcMemberArr = Array.from(genMemberMap(membersArr[i], assistArr[i], i));
let pdcMemberArr = Array.from(genMemberMap(membersArr[i], assistArr[i], (arr.length == 2 && idx == 1) ? i+1 : i)); //2人协力时,队伍2编号0是空的
pdcMemberStr = pdcMemberArr.map(item => [
item[0].toString(36).prefix(2),
item[1].toString(36).prefix(2)
@@ -371,10 +383,17 @@ Formation.prototype.getPdcQrStr = function()
}
}
return teamArr.join('}');
})
let outArr = [
[1,this.teams.length - 1]
].concat(pdcTeamsStr);
});
if (this.teams.length == 2)
{
const team1 = this.teams[0];
const team2 = this.teams[1];
team2[0].splice(0,0,team1[0].pop());
team2[1].splice(0,0,team1[1].pop());
}

outArr = outArr.concat(pdcTeamsStr);
return outArr.join(']');
}
Formation.prototype.getQrStr = function(type)
@@ -1160,13 +1179,25 @@ function readPDC(string)
function pdcFotmationToPdfFotmation(pdcFotmation)
{
const f = new Formation(pdcFotmation.teamCount, pdcFotmation.teamCount == 2 ? 5 : 6);
pdcFotmation.teams.forEach((pdcTeam,idx)=>{
const t = f.teams[idx];
if (pdcFotmation.teamCount == 2)
{
const team1 = pdcFotmation.teams[0].members;
const team2 = pdcFotmation.teams[1].members;
let team2Leader = team1.find(member=>member.get(15) == 5);
if (team2Leader)
{
team2Leader.set(15,0);
team2.splice(0,0,team2Leader);
team1.splice(team1.indexOf(team2Leader),1);
}
}
pdcFotmation.teams.forEach((pdcTeam,ti)=>{
const t = f.teams[ti];
const membersArr = t[0];
const assistArr = t[1];
//队伍徽章
t[2] = pdcTeam.badge === 0 ? 0 : pdcBadgeMap.find(badge=>badge.pdc === pdcTeam.badge).pdf;
pdcTeam.members.forEach(member=>{
pdcTeam.members.forEach((member)=>{
const m = membersArr[member.get(15) || 0];
const a = assistArr[member.get(15) || 0];
m.id = member.get(0) || 0;


Loading…
Cancel
Save