mirror of
https://github.com/simon987/Much-Assembly-Required.git
synced 2025-04-19 10:36:43 +00:00
Merge branch 'master' into vaults
# Conflicts: # Server/src/main/java/net/simon987/server/game/GameObject.java # Server/src/main/java/net/simon987/server/game/World.java # Server/src/main/java/net/simon987/server/webserver/TerrainRequestHandler.java
This commit is contained in:
commit
dc19176dc8
3
.gitignore
vendored
3
.gitignore
vendored
@ -15,3 +15,6 @@ Server/Server.iml
|
|||||||
target/*
|
target/*
|
||||||
Server/Server.iml
|
Server/Server.iml
|
||||||
Server/src/main/java/META-INF/MANIFEST.MF
|
Server/src/main/java/META-INF/MANIFEST.MF
|
||||||
|
.settings
|
||||||
|
.project
|
||||||
|
.classpath
|
@ -10,13 +10,11 @@ import org.json.simple.JSONObject;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class Cubot extends GameObject implements Updatable, ControllableUnit, Programmable {
|
public class Cubot extends GameObject implements Updatable, ControllableUnit, Programmable, Attackable {
|
||||||
|
|
||||||
private static final char MAP_INFO = 0x0080;
|
private static final char MAP_INFO = 0x0080;
|
||||||
public static final int ID = 1;
|
public static final int ID = 1;
|
||||||
|
|
||||||
public static int TYPE_ID = 2;
|
|
||||||
|
|
||||||
private int hologram = 0;
|
private int hologram = 0;
|
||||||
private String hologramString = "";
|
private String hologramString = "";
|
||||||
private HologramMode hologramMode = HologramMode.CLEARED;
|
private HologramMode hologramMode = HologramMode.CLEARED;
|
||||||
@ -27,11 +25,16 @@ public class Cubot extends GameObject implements Updatable, ControllableUnit, Pr
|
|||||||
* Hit points
|
* Hit points
|
||||||
*/
|
*/
|
||||||
private int hp;
|
private int hp;
|
||||||
|
private int shield;
|
||||||
|
private int maxShield;
|
||||||
private int heldItem;
|
private int heldItem;
|
||||||
|
|
||||||
private Action currentAction = Action.IDLE;
|
private Action currentAction = Action.IDLE;
|
||||||
private Action lastAction = Action.IDLE;
|
private Action lastAction = Action.IDLE;
|
||||||
|
|
||||||
|
private char currentStatus;
|
||||||
|
private char lastStatus;
|
||||||
|
|
||||||
private ArrayList<Integer> keyboardBuffer = new ArrayList<>();
|
private ArrayList<Integer> keyboardBuffer = new ArrayList<>();
|
||||||
|
|
||||||
private ArrayList<char[]> consoleMessagesBuffer = new ArrayList<>(CONSOLE_BUFFER_MAX_SIZE);
|
private ArrayList<char[]> consoleMessagesBuffer = new ArrayList<>(CONSOLE_BUFFER_MAX_SIZE);
|
||||||
@ -90,6 +93,10 @@ public class Cubot extends GameObject implements Updatable, ControllableUnit, Pr
|
|||||||
|
|
||||||
lastConsoleMessagesBuffer = new ArrayList<>(consoleMessagesBuffer);
|
lastConsoleMessagesBuffer = new ArrayList<>(consoleMessagesBuffer);
|
||||||
consoleMessagesBuffer.clear();
|
consoleMessagesBuffer.clear();
|
||||||
|
|
||||||
|
//And the status..
|
||||||
|
lastStatus = currentStatus;
|
||||||
|
currentStatus = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -102,6 +109,7 @@ public class Cubot extends GameObject implements Updatable, ControllableUnit, Pr
|
|||||||
json.put("direction", getDirection().ordinal());
|
json.put("direction", getDirection().ordinal());
|
||||||
json.put("heldItem", heldItem);
|
json.put("heldItem", heldItem);
|
||||||
json.put("hp", hp);
|
json.put("hp", hp);
|
||||||
|
json.put("shield", shield);
|
||||||
json.put("action", lastAction.ordinal());
|
json.put("action", lastAction.ordinal());
|
||||||
json.put("holo", hologram);
|
json.put("holo", hologram);
|
||||||
json.put("holoStr", hologramString);
|
json.put("holoStr", hologramString);
|
||||||
@ -127,6 +135,7 @@ public class Cubot extends GameObject implements Updatable, ControllableUnit, Pr
|
|||||||
dbObject.put("direction", getDirection().ordinal());
|
dbObject.put("direction", getDirection().ordinal());
|
||||||
dbObject.put("heldItem", heldItem);
|
dbObject.put("heldItem", heldItem);
|
||||||
dbObject.put("hp", hp);
|
dbObject.put("hp", hp);
|
||||||
|
dbObject.put("shield", shield);
|
||||||
dbObject.put("action", lastAction.ordinal());
|
dbObject.put("action", lastAction.ordinal());
|
||||||
dbObject.put("holo", hologram);
|
dbObject.put("holo", hologram);
|
||||||
dbObject.put("holoStr", hologramString);
|
dbObject.put("holoStr", hologramString);
|
||||||
@ -148,6 +157,8 @@ public class Cubot extends GameObject implements Updatable, ControllableUnit, Pr
|
|||||||
cubot.setX((int) obj.get("x"));
|
cubot.setX((int) obj.get("x"));
|
||||||
cubot.setY((int) obj.get("y"));
|
cubot.setY((int) obj.get("y"));
|
||||||
cubot.hp = (int) obj.get("hp");
|
cubot.hp = (int) obj.get("hp");
|
||||||
|
// cubot.shield = (int) obj.get("shield");
|
||||||
|
// cubot.maxShield = GameServer.INSTANCE.getConfig().getInt("max_shield");
|
||||||
cubot.setDirection(Direction.getDirection((int) obj.get("direction")));
|
cubot.setDirection(Direction.getDirection((int) obj.get("direction")));
|
||||||
cubot.heldItem = (int) obj.get("heldItem");
|
cubot.heldItem = (int) obj.get("heldItem");
|
||||||
cubot.energy = (int) obj.get("energy");
|
cubot.energy = (int) obj.get("energy");
|
||||||
@ -240,6 +251,41 @@ public class Cubot extends GameObject implements Updatable, ControllableUnit, Pr
|
|||||||
return maxEnergy;
|
return maxEnergy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getShield() {
|
||||||
|
return shield;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setShield(int shield) {
|
||||||
|
this.shield = shield;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean chargeShield(int qty) {
|
||||||
|
qty = Math.min(qty, maxShield - shield);
|
||||||
|
int cost = GameServer.INSTANCE.getConfig().getInt("shield_energy_cost");
|
||||||
|
int energySpent = qty * cost;
|
||||||
|
if(spendEnergy(energySpent)) {
|
||||||
|
shield += qty;
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Damages shield by qty.
|
||||||
|
*
|
||||||
|
* Return damage that broke through the shield.
|
||||||
|
*/
|
||||||
|
public int damageShield(int qty) {
|
||||||
|
int after = shield - qty;
|
||||||
|
if(after < 0) {
|
||||||
|
shield = 0;
|
||||||
|
return -after;
|
||||||
|
}
|
||||||
|
shield = after;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Memory getFloppyData() {
|
public Memory getFloppyData() {
|
||||||
|
|
||||||
@ -305,4 +351,58 @@ public class Cubot extends GameObject implements Updatable, ControllableUnit, Pr
|
|||||||
public void setHologramColor(int hologramColor) {
|
public void setHologramColor(int hologramColor) {
|
||||||
this.hologramColor = hologramColor;
|
this.hologramColor = hologramColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void addStatus(CubotStatus status) {
|
||||||
|
|
||||||
|
currentStatus |= status.val;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeStatus(CubotStatus status) {
|
||||||
|
|
||||||
|
currentStatus &= (~status.val);
|
||||||
|
}
|
||||||
|
|
||||||
|
public char getStatus() {
|
||||||
|
return lastStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setHealRate(int hp) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getHp() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setHp(int hp) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMaxHp() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setMaxHp(int hp) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void heal(int amount) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void damage(int amount) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onDeadCallback() {
|
||||||
|
return true; //always cancelled
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,59 @@
|
|||||||
|
package net.simon987.cubotplugin;
|
||||||
|
|
||||||
|
import com.mongodb.BasicDBObject;
|
||||||
|
import com.mongodb.DBObject;
|
||||||
|
import net.simon987.server.GameServer;
|
||||||
|
import net.simon987.server.assembly.CpuHardware;
|
||||||
|
import net.simon987.server.assembly.Status;
|
||||||
|
|
||||||
|
public class CubotCore extends CpuHardware {
|
||||||
|
|
||||||
|
public static final int DEFAULT_ADDRESS = 0x000E;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Hardware ID (Should be unique)
|
||||||
|
*/
|
||||||
|
public static final char HWID = 0x000E;
|
||||||
|
|
||||||
|
private static final int CORE_STATUS_POLL = 1;
|
||||||
|
private static final int CORE_HULL_POLL = 2;
|
||||||
|
|
||||||
|
private Cubot cubot;
|
||||||
|
|
||||||
|
public CubotCore(Cubot cubot) {
|
||||||
|
this.cubot = cubot;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleInterrupt(Status status) {
|
||||||
|
|
||||||
|
int a = getCpu().getRegisterSet().getRegister("A").getValue();
|
||||||
|
|
||||||
|
if (a == CORE_STATUS_POLL) {
|
||||||
|
getCpu().getRegisterSet().getRegister("B").setValue(cubot.getStatus());
|
||||||
|
} else if (a == CORE_HULL_POLL) {
|
||||||
|
getCpu().getRegisterSet().getRegister("B").setValue(cubot.getHp());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public char getId() {
|
||||||
|
return HWID;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BasicDBObject mongoSerialise() {
|
||||||
|
|
||||||
|
BasicDBObject dbObject = new BasicDBObject();
|
||||||
|
|
||||||
|
dbObject.put("hwid", (int) HWID);
|
||||||
|
dbObject.put("cubot", cubot.getObjectId());
|
||||||
|
|
||||||
|
return dbObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static CubotCore deserialize(DBObject obj) {
|
||||||
|
return new CubotCore((Cubot) GameServer.INSTANCE.getGameUniverse().getObject((long) obj.get("cubot")));
|
||||||
|
}
|
||||||
|
}
|
@ -60,6 +60,8 @@ public class CubotPlugin extends ServerPlugin implements GameObjectDeserializer,
|
|||||||
return CubotFloppyDrive.deserialize(obj);
|
return CubotFloppyDrive.deserialize(obj);
|
||||||
case CubotComPort.HWID:
|
case CubotComPort.HWID:
|
||||||
return CubotComPort.deserialize(obj);
|
return CubotComPort.deserialize(obj);
|
||||||
|
case CubotShield.HWID:
|
||||||
|
return CubotShield.deserialize(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
@ -0,0 +1,51 @@
|
|||||||
|
package net.simon987.cubotplugin;
|
||||||
|
|
||||||
|
import com.mongodb.BasicDBObject;
|
||||||
|
import com.mongodb.DBObject;
|
||||||
|
import net.simon987.server.GameServer;
|
||||||
|
import net.simon987.server.assembly.CpuHardware;
|
||||||
|
import net.simon987.server.assembly.Status;
|
||||||
|
|
||||||
|
public class CubotShield extends CpuHardware {
|
||||||
|
static final char HWID = 0x000F;
|
||||||
|
|
||||||
|
private static final int SHIELD_CHARGE = 1;
|
||||||
|
private static final int SHIELD_POLL = 2;
|
||||||
|
private Cubot cubot;
|
||||||
|
|
||||||
|
public CubotShield(Cubot cubot) {
|
||||||
|
this.cubot = cubot;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public char getId() {
|
||||||
|
return HWID;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BasicDBObject mongoSerialise() {
|
||||||
|
BasicDBObject dbObject = new BasicDBObject();
|
||||||
|
|
||||||
|
dbObject.put("hwid", HWID);
|
||||||
|
dbObject.put("cubot", cubot.getObjectId());
|
||||||
|
|
||||||
|
return dbObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleInterrupt(Status status) {
|
||||||
|
int a = getCpu().getRegisterSet().getRegister("A").getValue();
|
||||||
|
// b = amount to charge
|
||||||
|
if(a == SHIELD_CHARGE) {
|
||||||
|
int b = getCpu().getRegisterSet().getRegister("B").getValue();
|
||||||
|
cubot.chargeShield(b);
|
||||||
|
} else if (a == SHIELD_POLL) {
|
||||||
|
int shield = cubot.getShield();
|
||||||
|
getCpu().getRegisterSet().getRegister("B").setValue(shield);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static CubotShield deserialize(DBObject obj) {
|
||||||
|
return new CubotShield((Cubot) GameServer.INSTANCE.getGameUniverse().getObject((long) obj.get("cubot")));
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
package net.simon987.cubotplugin;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Status of a Cubot (Special buff or debuff)
|
||||||
|
*/
|
||||||
|
public enum CubotStatus {
|
||||||
|
|
||||||
|
DEFAULT(0),
|
||||||
|
RADIATED(1),
|
||||||
|
DAMAGED(2);
|
||||||
|
|
||||||
|
public char val;
|
||||||
|
|
||||||
|
CubotStatus(int val) {
|
||||||
|
this.val = (char) val;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -9,9 +9,9 @@ import java.net.InetSocketAddress;
|
|||||||
public class Main {
|
public class Main {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|
||||||
|
|
||||||
LogManager.initialize();
|
|
||||||
ServerConfiguration config = new ServerConfiguration("config.properties");
|
ServerConfiguration config = new ServerConfiguration("config.properties");
|
||||||
|
LogManager.initialize(config);
|
||||||
|
|
||||||
//Load
|
//Load
|
||||||
GameServer.INSTANCE.load();
|
GameServer.INSTANCE.load();
|
||||||
|
|
||||||
|
@ -99,6 +99,8 @@ public class CPU implements MongoSerialisable {
|
|||||||
instructionSet.add(new JoInstruction(this));
|
instructionSet.add(new JoInstruction(this));
|
||||||
instructionSet.add(new PushfInstruction(this));
|
instructionSet.add(new PushfInstruction(this));
|
||||||
instructionSet.add(new PopfInstruction(this));
|
instructionSet.add(new PopfInstruction(this));
|
||||||
|
instructionSet.add(new JnaInstruction(this));
|
||||||
|
instructionSet.add(new JaInstruction(this));
|
||||||
|
|
||||||
status = new Status();
|
status = new Status();
|
||||||
memory = new Memory(config.getInt("memory_size"));
|
memory = new Memory(config.getInt("memory_size"));
|
||||||
|
@ -0,0 +1,38 @@
|
|||||||
|
package net.simon987.server.assembly.instruction;
|
||||||
|
|
||||||
|
import net.simon987.server.assembly.CPU;
|
||||||
|
import net.simon987.server.assembly.Instruction;
|
||||||
|
import net.simon987.server.assembly.Status;
|
||||||
|
import net.simon987.server.assembly.Target;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Jump if above
|
||||||
|
*/
|
||||||
|
public class JaInstruction extends Instruction {
|
||||||
|
|
||||||
|
public static final int OPCODE = 46;
|
||||||
|
|
||||||
|
private CPU cpu;
|
||||||
|
|
||||||
|
public JaInstruction(CPU cpu) {
|
||||||
|
super("ja", OPCODE);
|
||||||
|
|
||||||
|
this.cpu = cpu;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Status execute(Target src, int srcIndex, Status status) {
|
||||||
|
if (!status.isCarryFlag() && !status.isZeroFlag()) {
|
||||||
|
cpu.setIp((char) src.get(srcIndex));
|
||||||
|
}
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Status execute(int src, Status status) {
|
||||||
|
if (!status.isCarryFlag() && !status.isZeroFlag()) {
|
||||||
|
cpu.setIp((char) src);
|
||||||
|
}
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
package net.simon987.server.assembly.instruction;
|
||||||
|
|
||||||
|
import net.simon987.server.assembly.CPU;
|
||||||
|
import net.simon987.server.assembly.Instruction;
|
||||||
|
import net.simon987.server.assembly.Status;
|
||||||
|
import net.simon987.server.assembly.Target;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Jump if not above
|
||||||
|
*/
|
||||||
|
public class JnaInstruction extends Instruction {
|
||||||
|
|
||||||
|
public static final int OPCODE = 47;
|
||||||
|
|
||||||
|
private CPU cpu;
|
||||||
|
|
||||||
|
public JnaInstruction(CPU cpu) {
|
||||||
|
super("jna", OPCODE);
|
||||||
|
|
||||||
|
this.cpu = cpu;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Status execute(Target src, int srcIndex, Status status) {
|
||||||
|
if (status.isCarryFlag() || status.isZeroFlag()) {
|
||||||
|
cpu.setIp((char) src.get(srcIndex));
|
||||||
|
}
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Status execute(int src, Status status) {
|
||||||
|
if (status.isCarryFlag() || status.isZeroFlag()) {
|
||||||
|
cpu.setIp((char) src);
|
||||||
|
}
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
}
|
@ -254,7 +254,7 @@ public abstract class GameObject implements JSONSerialisable, MongoSerialisable
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Called before this GameObject is removed from the world - defaults to doing nothing
|
* Called before this GameObject is removed from the world - defaults to doing nothing
|
||||||
* @return cancelled
|
* @return true if cancelled
|
||||||
*/
|
*/
|
||||||
public boolean onDeadCallback() {
|
public boolean onDeadCallback() {
|
||||||
return false;
|
return false;
|
||||||
|
@ -159,6 +159,7 @@ public class World implements MongoSerialisable {
|
|||||||
if (object.isDead()) {
|
if (object.isDead()) {
|
||||||
if (!object.onDeadCallback()) {
|
if (!object.onDeadCallback()) {
|
||||||
removeObject(object);
|
removeObject(object);
|
||||||
|
//LogManager.LOGGER.fine("Removed object " + object + " id: " + object.getObjectId());
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (object instanceof Updatable) {
|
} else if (object instanceof Updatable) {
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package net.simon987.server.logging;
|
package net.simon987.server.logging;
|
||||||
|
|
||||||
|
import net.simon987.server.ServerConfiguration;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.logging.*;
|
import java.util.logging.*;
|
||||||
|
|
||||||
@ -16,7 +18,7 @@ public class LogManager {
|
|||||||
/**
|
/**
|
||||||
* Initialises the logger
|
* Initialises the logger
|
||||||
*/
|
*/
|
||||||
public static void initialize() {
|
public static void initialize(ServerConfiguration config) {
|
||||||
LOGGER.setUseParentHandlers(false);
|
LOGGER.setUseParentHandlers(false);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -45,15 +47,18 @@ public class LogManager {
|
|||||||
handler.setLevel(Level.ALL);
|
handler.setLevel(Level.ALL);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Handler fileHandler = new FileHandler("mar.log");
|
Handler fileHandler = new FileHandler("mar-%g.log", config.getInt("log_limit"),
|
||||||
|
config.getInt("log_count"));
|
||||||
fileHandler.setLevel(Level.ALL);
|
fileHandler.setLevel(Level.ALL);
|
||||||
fileHandler.setFormatter(new GenericFormatter());
|
fileHandler.setFormatter(new GenericFormatter());
|
||||||
|
|
||||||
|
|
||||||
LOGGER.addHandler(handler);
|
LOGGER.addHandler(handler);
|
||||||
LOGGER.addHandler(errHandler);
|
LOGGER.addHandler(errHandler);
|
||||||
LOGGER.addHandler(fileHandler);
|
LOGGER.addHandler(fileHandler);
|
||||||
LOGGER.setLevel(Level.ALL);
|
LOGGER.setLevel(Level.ALL);
|
||||||
|
|
||||||
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
@ -6,8 +6,8 @@ mysql_pass=mar
|
|||||||
mysql_url=jdbc:mysql://localhost:3306/mar?useSSL=false
|
mysql_url=jdbc:mysql://localhost:3306/mar?useSSL=false
|
||||||
# File management
|
# File management
|
||||||
save_interval=5
|
save_interval=5
|
||||||
clean_interval=10
|
log_limit=2000000
|
||||||
history_size=10
|
log_count=10
|
||||||
# Web server port
|
# Web server port
|
||||||
webSocket_port=8887
|
webSocket_port=8887
|
||||||
webSocket_host=0.0.0.0
|
webSocket_host=0.0.0.0
|
||||||
@ -49,6 +49,10 @@ maxBiomassRespawnCount=6
|
|||||||
biomassEnergyValue=4000
|
biomassEnergyValue=4000
|
||||||
# Maximum energy of the battery hardware in kJ
|
# Maximum energy of the battery hardware in kJ
|
||||||
battery_max_energy=60000
|
battery_max_energy=60000
|
||||||
|
# Maximum shield power
|
||||||
|
max_shield=100
|
||||||
|
# Energy cost per unit to charge shield
|
||||||
|
shield_energy_cost=50
|
||||||
# Time for biomass respawn in ticks
|
# Time for biomass respawn in ticks
|
||||||
biomassRespawnTime=64
|
biomassRespawnTime=64
|
||||||
# Respawn timer will start when biomass count is below this number
|
# Respawn timer will start when biomass count is below this number
|
||||||
|
Loading…
x
Reference in New Issue
Block a user