forked from Cookies_Github_mirror/AquaDX
[DIVA] Add difficulty control and reward to contest
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
package icu.samnyan.aqua.sega.diva.model.common;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* @author samnyan (privateamusement@protonmail.com)
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@AllArgsConstructor
|
||||
public class ContestProgress {
|
||||
int pvId;
|
||||
int hardness;
|
||||
int edition;
|
||||
int stars;
|
||||
int scores;
|
||||
int version;
|
||||
}
|
||||
@@ -8,6 +8,7 @@ import icu.samnyan.aqua.sega.util.URIEncoder;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.io.Serializable;
|
||||
@@ -47,14 +48,13 @@ public class Contest implements Serializable {
|
||||
|
||||
private int stars;
|
||||
|
||||
private int minComplexity;
|
||||
private int minComplexity; // Only use when Pv difficulty list is not set.
|
||||
|
||||
private int maxComplexity;
|
||||
|
||||
private int stages;
|
||||
|
||||
@Enumerated(EnumType.STRING)
|
||||
private ContestStageLimit stageLimit;
|
||||
private String stageLimit;
|
||||
|
||||
@Enumerated(EnumType.STRING)
|
||||
private ContestNormaType normaType;
|
||||
@@ -65,161 +65,90 @@ public class Contest implements Serializable {
|
||||
|
||||
private int goldBorders = 0;
|
||||
|
||||
// Pv List format: "pv_id_start:pv_id_end,pv_id_start:pv_id_end,pv_id_start:pv_id_end" more than 20 group will be ignore, put in -1 for empty end
|
||||
private String pvList;
|
||||
|
||||
// Pv difficulty list format: "pv_difficulty:min_complexity:max_complexity"
|
||||
private String pvDiffList;
|
||||
|
||||
// ContestReward format:
|
||||
// Reward Type: (-1 None, 0 VP, 1 Skin, 2 Callsign, 3 Customize)
|
||||
// Format: "rewardType:reward:string1:string2" string1 and 2 should be urlencoded and must exist. use *** aka %2A%2A%2A as placeholder
|
||||
private String bronzeContestReward;
|
||||
|
||||
private String sliverContestReward;
|
||||
|
||||
private String goldContestReward;
|
||||
|
||||
// ContestReward format: "rewardType:reward:string1:string2"
|
||||
private String contestEntryReward;
|
||||
|
||||
public String getString() {
|
||||
List<Object> list = new LinkedList<>();
|
||||
list.add(this.id);
|
||||
list.add(DivaDateTimeUtil.format(this.startTime));
|
||||
list.add(DivaDateTimeUtil.format(this.endTime));
|
||||
list.add(URIEncoder.encode(this.name));
|
||||
list.add(URIEncoder.encode(this.description));
|
||||
list.add(this.league.getValue());
|
||||
list.add(this.stars);
|
||||
list.add(this.stages);
|
||||
list.add(this.stageLimit.getValue());
|
||||
list.add(this.id); // Contest ID
|
||||
list.add(DivaDateTimeUtil.format(this.startTime)); // Start time
|
||||
list.add(DivaDateTimeUtil.format(this.endTime)); // End time
|
||||
list.add(URIEncoder.encode(this.name)); // Contest name
|
||||
list.add(URIEncoder.encode(this.description)); // Contest description
|
||||
list.add(this.league.getValue()); // Contest league
|
||||
list.add(this.stars); // Contest starts
|
||||
list.add(this.stages); // Contest stage, 1~9
|
||||
list.add(this.stageLimit); // list_lump_num ( 0 will be all stage same. > 1 will became stage max defined chart? )
|
||||
list.add(this.normaType.getValue());
|
||||
list.add(this.bronzeBorders);
|
||||
list.add(this.sliverBorders);
|
||||
list.add(this.goldBorders);
|
||||
list.add(-1);
|
||||
list.add(-2);
|
||||
list.add(this.minComplexity);
|
||||
list.add(this.maxComplexity);
|
||||
list.add(-1);
|
||||
list.add(-2);
|
||||
list.add("7fffffffffffffffffffffffffffffff");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("7fffffffffffffffffffffffffffffff");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("7fffffffffffffffffffffffffffffff");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("7fffffffffffffffffffffffffffffff");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("7fffffffffffffffffffffffffffffff");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("7fffffffffffffffffffffffffffffff");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("7fffffffffffffffffffffffffffffff");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("7fffffffffffffffffffffffffffffff");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("7fffffffffffffffffffffffffffffff");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("7fffffffffffffffffffffffffffffff");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("7fffffffffffffffffffffffffffffff");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("7fffffffffffffffffffffffffffffff");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("7fffffffffffffffffffffffffffffff");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("7fffffffffffffffffffffffffffffff");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("7fffffffffffffffffffffffffffffff");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("7fffffffffffffffffffffffffffffff");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("7fffffffffffffffffffffffffffffff");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("7fffffffffffffffffffffffffffffff");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("7fffffffffffffffffffffffffffffff");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("-2");
|
||||
list.add("7fffffffffffffffffffffffffffffff");
|
||||
for (int i = 1; i <= 20; i++) {
|
||||
// format is "pv_range_start,pv_range_end,min_complexity,max_complexity,difficulty,unknown"
|
||||
if (StringUtils.isBlank(pvList) || !pvList.contains(":")) {
|
||||
list.add(-1);
|
||||
list.add(-1);
|
||||
if (i == 1) {
|
||||
list.add(this.minComplexity);
|
||||
list.add(this.maxComplexity);
|
||||
} else {
|
||||
list.add(-2);
|
||||
list.add(-2);
|
||||
}
|
||||
list.add(-1);
|
||||
list.add(-2);
|
||||
list.add("7fffffffffffffffffffffffffffffff");
|
||||
} else {
|
||||
String[] groups = pvList.split(",");
|
||||
if (groups.length < i) {
|
||||
list.add(-1);
|
||||
list.add(-1);
|
||||
list.add(-2);
|
||||
list.add(-2);
|
||||
list.add(-1);
|
||||
list.add(-2);
|
||||
list.add("7fffffffffffffffffffffffffffffff");
|
||||
} else {
|
||||
String[] ids = groups[i - 1].split(":");
|
||||
list.add(ids[0]);
|
||||
list.add(ids[1]);
|
||||
if(StringUtils.isBlank(pvDiffList) || !pvDiffList.contains(":")) {
|
||||
list.add(this.minComplexity);
|
||||
list.add(this.maxComplexity);
|
||||
list.add(-1);
|
||||
} else {
|
||||
String[] diffList = pvDiffList.split(",");
|
||||
if(diffList.length < i) {
|
||||
list.add(this.minComplexity);
|
||||
list.add(this.maxComplexity);
|
||||
list.add(-1);
|
||||
} else {
|
||||
String[] diff = diffList[i-1].split(":");
|
||||
list.add(diff[1]);
|
||||
list.add(diff[2]);
|
||||
list.add(diff[0]);
|
||||
}
|
||||
}
|
||||
list.add(-2);
|
||||
list.add("7fffffffffffffffffffffffffffffff");
|
||||
}
|
||||
}
|
||||
}
|
||||
return list.stream().map(Object::toString).collect(Collectors.joining(","));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
package icu.samnyan.aqua.sega.diva.model.userdata;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author samnyan (privateamusement@protonmail.com)
|
||||
*/
|
||||
@Entity(name = "DivaPlayerInventory")
|
||||
@Table(name = "diva_player_inventory", uniqueConstraints = {@UniqueConstraint(columnNames = {"pd_id", "value", "type"})})
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class PlayerInventory implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private Long id;
|
||||
|
||||
@ManyToOne
|
||||
@JoinColumn(name = "pd_id")
|
||||
@JsonIgnore
|
||||
private PlayerProfile pdId;
|
||||
|
||||
private String value;
|
||||
|
||||
// Type: (1: Skin, 2: Call sign plate, 3: Call sign)
|
||||
private String type;
|
||||
}
|
||||
Reference in New Issue
Block a user