Skip to content

Commit

Permalink
Karma System, time limit and karma shown on xp bar
Browse files Browse the repository at this point in the history
  • Loading branch information
ellieisjelly committed Jan 5, 2024
1 parent 5cb3095 commit cfdae07
Show file tree
Hide file tree
Showing 11 changed files with 275 additions and 47 deletions.
2 changes: 1 addition & 1 deletion src/main/java/me/ellieis/Sabotage/Sabotage.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package me.ellieis.Sabotage;

import me.ellieis.Sabotage.game.SabotageConfig;
import me.ellieis.Sabotage.game.config.SabotageConfig;
import me.ellieis.Sabotage.game.phase.SabotageWaiting;
import net.fabricmc.api.ModInitializer;

Expand Down
8 changes: 8 additions & 0 deletions src/main/java/me/ellieis/Sabotage/game/Roles.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package me.ellieis.Sabotage.game;

public enum Roles {
SABOTEUR,
DETECTIVE,
INNOCENT,
NONE
}
14 changes: 14 additions & 0 deletions src/main/java/me/ellieis/Sabotage/game/config/DetectiveConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package me.ellieis.Sabotage.game.config;

import com.mojang.serialization.Codec;
import com.mojang.serialization.codecs.RecordCodecBuilder;

public record DetectiveConfig(int innocentKarmaPenalty, int detectiveKarmaPenalty, int saboteurKarmaAward){
public static final Codec<DetectiveConfig> CODEC = RecordCodecBuilder.create(instance ->
instance.group(
Codec.INT.fieldOf("innocent_karma_penalty").forGetter(DetectiveConfig::innocentKarmaPenalty),
Codec.INT.fieldOf("detective_karma_penalty").forGetter(DetectiveConfig::detectiveKarmaPenalty),
Codec.INT.fieldOf("saboteur_karma_award").forGetter(DetectiveConfig::saboteurKarmaAward)
).apply(instance, DetectiveConfig::new)
);
}
14 changes: 14 additions & 0 deletions src/main/java/me/ellieis/Sabotage/game/config/InnocentConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package me.ellieis.Sabotage.game.config;

import com.mojang.serialization.Codec;
import com.mojang.serialization.codecs.RecordCodecBuilder;

public record InnocentConfig(int innocentKarmaPenalty, int detectiveKarmaPenalty, int saboteurKarmaAward){
public static final Codec<InnocentConfig> CODEC = RecordCodecBuilder.create(instance ->
instance.group(
Codec.INT.fieldOf("innocent_karma_penalty").forGetter(InnocentConfig::innocentKarmaPenalty),
Codec.INT.fieldOf("detective_karma_penalty").forGetter(InnocentConfig::detectiveKarmaPenalty),
Codec.INT.fieldOf("saboteur_karma_award").forGetter(InnocentConfig::saboteurKarmaAward)
).apply(instance, InnocentConfig::new)
);
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package me.ellieis.Sabotage.game;
package me.ellieis.Sabotage.game.config;

import com.mojang.serialization.Codec;
import com.mojang.serialization.codecs.RecordCodecBuilder;
Expand All @@ -10,21 +10,30 @@ public class SabotageConfig {
private final int countdownTime;
private final int gracePeriod;
private final int timeLimit;
private final InnocentConfig innocentConfig;
private final DetectiveConfig detectiveConfig;
private final SaboteurConfig saboteurConfig;
private final PlayerConfig playerConfig;
public static final Codec<SabotageConfig> CODEC = RecordCodecBuilder.create(instance -> {
return instance.group(
public static final Codec<SabotageConfig> CODEC = RecordCodecBuilder.create(instance ->
instance.group(
Identifier.CODEC.fieldOf("map").forGetter(SabotageConfig::getMap),
Codec.INT.fieldOf("countdown_time").forGetter(SabotageConfig::getCountdownTime),
Codec.INT.fieldOf("grace_period").forGetter(SabotageConfig::getGracePeriod),
Codec.INT.fieldOf("time_limit").forGetter(SabotageConfig::getTimeLimit),
InnocentConfig.CODEC.fieldOf("innocent").forGetter(SabotageConfig::getInnocentConfig),
DetectiveConfig.CODEC.fieldOf("detective").forGetter(SabotageConfig::getDetectiveConfig),
SaboteurConfig.CODEC.fieldOf("saboteur").forGetter(SabotageConfig::getSaboteurConfig),
PlayerConfig.CODEC.fieldOf("players").forGetter(SabotageConfig::getPlayerConfig)
).apply(instance, SabotageConfig::new);
});
public SabotageConfig(Identifier map, int countdownTime, int gracePeriod, int timeLimit, PlayerConfig playerConfig) {
).apply(instance, SabotageConfig::new)
);
public SabotageConfig(Identifier map, int countdownTime, int gracePeriod, int timeLimit, InnocentConfig innocentConfig, DetectiveConfig detectiveConfig, SaboteurConfig saboteurConfig, PlayerConfig playerConfig) {
this.map = map;
this.countdownTime = countdownTime;
this.gracePeriod = gracePeriod;
this.timeLimit = timeLimit;
this.innocentConfig = innocentConfig;
this.detectiveConfig = detectiveConfig;
this.saboteurConfig = saboteurConfig;
this.playerConfig = playerConfig;
}

Expand All @@ -40,6 +49,18 @@ public int getTimeLimit() {
return timeLimit;
}

public InnocentConfig getInnocentConfig() {
return this.innocentConfig;
}

public DetectiveConfig getDetectiveConfig() {
return this.detectiveConfig;
}

public SaboteurConfig getSaboteurConfig() {
return saboteurConfig;
}

public PlayerConfig getPlayerConfig() {
return this.playerConfig;
}
Expand Down
14 changes: 14 additions & 0 deletions src/main/java/me/ellieis/Sabotage/game/config/SaboteurConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package me.ellieis.Sabotage.game.config;

import com.mojang.serialization.Codec;
import com.mojang.serialization.codecs.RecordCodecBuilder;

public record SaboteurConfig(int innocentKarmaAward, int detectiveKarmaAward, int saboteurKarmaPenalty){
public static final Codec<SaboteurConfig> CODEC = RecordCodecBuilder.create(instance ->
instance.group(
Codec.INT.fieldOf("innocent_karma_award").forGetter(SaboteurConfig::innocentKarmaAward),
Codec.INT.fieldOf("detective_karma_award").forGetter(SaboteurConfig::detectiveKarmaAward),
Codec.INT.fieldOf("saboteur_karma_penalty").forGetter(SaboteurConfig::saboteurKarmaPenalty)
).apply(instance, SaboteurConfig::new)
);
}
Loading

0 comments on commit cfdae07

Please sign in to comment.