@SainnQ
Most limits of API can be overcomed by reflections, every limitation can be overcomed by ASM\unsafe\natives, but amount of required skill and time to develop and maintain such code make it impossible for fanmade mods.
Nice sample: amount of money per victory is
fleetpoints of enemy * 130 * random(1,2)THIS IS HARDCODED, you cant change this value without java.unsafe or custom natives.
Amount of time and skill required make such modification makes it impossible to appear.
@Uomoz
"baseFriendlyShipRepairChance":5,
"baseEnemyShipRepairChance":5,
looks like exactly what i looking for, i checked ingame and notice increase of boardable enemy hulls with enemyrepair set to 100.
currently i checking code for actual implementation of boardable calculation made by endine, will report results later.
runtime alteration of this will be included into next version of rcUtil (along with advanced debug stuff and 100% reverse compatability), you already can add placeholder call for set_EnemyRepair(int Chance), if you have other suggestions about methods your want just PM me.
About the overcrowding, there's the Abandoned Facility for that very reason.
since factory produce up to 3 wings\frigates it will fill up few pages.
with 1 hull per type overcrowding process will slowdown.
with improved speed nobody will ever notice sideeffects of this change.
For debugging, here is automated debug script preview, that allow you to get anything you want from game state to log without surrounding every invocation with trycatch:
Thread.setDefaultUncaughtExceptionHandler(new EndOfTheLine());
package ru.rawcode.rcUtil;
import java.lang.Thread.UncaughtExceptionHandler;
public class EndOfTheLine implements UncaughtExceptionHandler{
public static void Trace2log(Throwable e, String exception) {
exception = "\n\t\tMessage: " + exception + "\n\t\t";
exception = exception + e.toString() + "\n\t\t";
StackTraceElement[] stack = e.getStackTrace();
for (StackTraceElement s : stack) {
if (s == stack[0]) {
exception = exception + s + "\n\t";
continue;
}
if (s == stack[1]) {
exception = exception + "Error Source: " + s + "\n\t\t";
continue;
}
if (s == stack[stack.length - 1]) {
exception = exception + s;
continue;
}
exception = exception + s + "\n\t\t";
}
//LOG.info(exception);
System.out.println(exception);
}
public void uncaughtException(Thread t, Throwable e) {
System.out.println("Here your can output whatever you want");
System.out.println("You can dump variables, player choises");
System.out.println("Or anything else, but game already dead, you cant reanimate if from here");
System.out.println("its");
Trace2log(e,"EndOfTheLine");
}
}
It will support both, field references and callback script.
I will ask you about variables and game params you want to monitor, i will embedded it into rcUtil.