{
#A NOTE: ALWAYS END EACH LINE IN A COMMA. Apart from comment lines, like this one, that start with #.
#These first few entries are NOT OPTIONAL
"wantedId" : "bounty_buffalo",
"title" : "Buffalo Hunt",
"reward" : "15000",
#Fleet name is optional; if not provided, the mod will use the captain's name.
"fleetName" : "Buffalo Herd",
#Difficulty is optional.
"difficulty" : "Regular",
#Captain is optional
"captain" : {
#All entries here are optional; the mod will generate its own details if left blank.
"first" : "John",
"last" : "Hicks",
"rank" : "Cowboy",
"gender" : "M",
"portrait" : "graphics/portraits/portrait17.png",
#Aptitudes are optional. Aptitude Ids can be found in data/characters/skills.
"aptitudes" : {
"combat" : "5",
},
#Skills are optional. Skill Ids can be found in data/characters/skills.
"skills" : {
"missile_specialization" : "10",
"construction" : "10",
},
},
#You can specify a token (station/planet) within a system
#Or just use 'system' & 'location' and it'll pick a random token in that system
#Or not include 'location', and it'll pick a random token in a random system
"location" : {
"system" : "Opportunity",
"token" : "Opportunity Minor",
},
#The description is shown when the player views the wanted poster. To include line breaks in it, use \n.
"description" : "Hicks is one of the meanest, dirtiest, lowest-budget pirates in the sector and he's wrangling up a herd of Buffalo at Opportunity Minor. There's a 15000 credit reward for the first captain to bring him to justice.",
#The congratulation is shown when the player kills the bounty. To include line breaks in it, use \n. Optional.
"congratulation" : "Hicks won't be troubling the fine people of the sector any longer- the 15000 reward is yours.",
#This is the list of ships in the target's fleet. THERE MUST BE AT LEAST ONE.
"fleetShips" : [
#Each new ship should be enclosed in { DETAILS },
{
#MUST contain either variantId (for ship) OR wingId (for fighter wing)
"variantId" : "buffalo2_FS",
#This is the name the ship will be given. Optional.
"name" : "Bill",
#Crew rating is also optional, can be "ELITE"/"VETERAN"/"GREEN"/"REGULAR".
#If not given, the ship will have "REGULAR" crew.
"crewRating" : "ELITE",
#Whether or not the ship will be automatically salvaged after the battle. Optional. Defaults to "FALSE".
"salvage" : "TRUE",
},
{ "variantId" : "buffalo2_FS",
"name" : "Kid",
"crewRating" : "GREEN",
},
{ "variantId" : "buffalo2_FS" },
{ "variantId" : "buffalo2_FS" },
{ "variantId" : "buffalo2_FS" },
],
}
This mod is gonna get big...fast...Fast on a geological timescale, maybe.
First Bug/Human Error?Well, that's odd. setFlagship is definitely a thing- are you sure you're running 0.6.1?Spoiler76297 [Thread-6] ERROR com.fs.starfarer.combat.D - java.lang.RuntimeException: Error compiling [data.scripts.BountyModPlugin]
java.lang.RuntimeException: Error compiling [data.scripts.BountyModPlugin]
at com.fs.starfarer.loading.scripts.ScriptStore$1.run(Unknown Source)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException: Compiling unit "data/scripts/plugin/BountyFleetInteractionDialogPlugin.java"
at org.codehaus.janino.JavaSourceClassLoader.generateBytecodes(JavaSourceClassLoader.java:212)
at org.codehaus.janino.JavaSourceClassLoader.findClass(JavaSourceClassLoader.java:164)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 2 more
Caused by: org.codehaus.commons.compiler.CompileException: File data/scripts/plugin/BountyFleetInteractionDialogPlugin.java, Line 633, Column 80: A method named "setFlagship" is not declared in any enclosing class nor any supertype, nor through a static import
at org.codehaus.janino.UnitCompiler.compileError(UnitCompiler.java:9403)
at org.codehaus.janino.UnitCompiler.findIMethod(UnitCompiler.java:6829)
at org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:3553)
at org.codehaus.janino.UnitCompiler.access$63(UnitCompiler.java:3552)
at org.codehaus.janino.UnitCompiler$11.visitMethodInvocation(UnitCompiler.java:2967)
at org.codehaus.janino.Java$MethodInvocation.accept(Java.java:2831)
at org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:2993)
at org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:4017)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:2413)
at org.codehaus.janino.UnitCompiler.access$38(UnitCompiler.java:2412)
at org.codehaus.janino.UnitCompiler$8.visitMethodInvocation(UnitCompiler.java:2381)
at org.codehaus.janino.Java$MethodInvocation.accept(Java.java:2831)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:2407)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1426)
at org.codehaus.janino.UnitCompiler.access$8(UnitCompiler.java:1425)
at org.codehaus.janino.UnitCompiler$5.visitExpressionStatement(UnitCompiler.java:926)
at org.codehaus.janino.Java$ExpressionStatement.accept(Java.java:1447)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:972)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:958)
at org.codehaus.janino.UnitCompiler.access$7(UnitCompiler.java:955)
at org.codehaus.janino.UnitCompiler$5.visitBlock(UnitCompiler.java:925)
at org.codehaus.janino.Java$Block.accept(Java.java:1386)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1550)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:972)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:2083)
at org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:851)
at org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:832)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:528)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:691)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:652)
at org.codehaus.janino.UnitCompiler$3.visitAnonymousClassDeclaration(UnitCompiler.java:374)
at org.codehaus.janino.Java$AnonymousClassDeclaration.accept(Java.java:553)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:383)
at org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:3885)
at org.codehaus.janino.UnitCompiler.access$66(UnitCompiler.java:3806)
at org.codehaus.janino.UnitCompiler$11.visitNewAnonymousClassInstance(UnitCompiler.java:2975)
at org.codehaus.janino.Java$NewAnonymousClassInstance.accept(Java.java:2947)
at org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:2993)
at org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:4017)
at org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:3629)
at org.codehaus.janino.UnitCompiler.access$63(UnitCompiler.java:3552)
at org.codehaus.janino.UnitCompiler$11.visitMethodInvocation(UnitCompiler.java:2967)
at org.codehaus.janino.Java$MethodInvocation.accept(Java.java:2831)
at org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:2993)
at org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:4017)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:2413)
at org.codehaus.janino.UnitCompiler.access$38(UnitCompiler.java:2412)
at org.codehaus.janino.UnitCompiler$8.visitMethodInvocation(UnitCompiler.java:2381)
at org.codehaus.janino.Java$MethodInvocation.accept(Java.java:2831)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:2407)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1426)
at org.codehaus.janino.UnitCompiler.access$8(UnitCompiler.java:1425)
at org.codehaus.janino.UnitCompiler$5.visitExpressionStatement(UnitCompiler.java:926)
at org.codehaus.janino.Java$ExpressionStatement.accept(Java.java:1447)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:972)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:958)
at org.codehaus.janino.UnitCompiler.access$7(UnitCompiler.java:955)
at org.codehaus.janino.UnitCompiler$5.visitBlock(UnitCompiler.java:925)
at org.codehaus.janino.Java$Block.accept(Java.java:1386)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1550)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:972)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:958)
at org.codehaus.janino.UnitCompiler.access$7(UnitCompiler.java:955)
at org.codehaus.janino.UnitCompiler$5.visitBlock(UnitCompiler.java:925)
at org.codehaus.janino.Java$Block.accept(Java.java:1386)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1539)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1560)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1560)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:972)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:2083)
at org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:851)
at org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:832)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:528)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:421)
at org.codehaus.janino.UnitCompiler$3.visitPackageMemberClassDeclaration(UnitCompiler.java:376)
at org.codehaus.janino.Java$PackageMemberClassDeclaration.accept(Java.java:765)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:383)
at org.codehaus.janino.UnitCompiler.compileUnit(UnitCompiler.java:352)
at org.codehaus.janino.JavaSourceClassLoader.generateBytecodes(JavaSourceClassLoader.java:210)
... 5 more[close]
1. This is awesome. Is the source available, and can we integrate it into other mods?1. Yep, and go right ahead although it is kind of shambolic (and I forgot to comment it)- making this mod was very much a learning exercise. There's definitely better ways to have done it.
2. If yes (and yes) how generic is it? Can it build the bounties from any ol' collection of Faction data?
3. I saw a bug; in that shot of the Dialog, it offered a choice for a Regular Bounty, but no description of the Regular Bounty target, indicating there wasn't one generated. Probably needs a logic check in whatever refreshes the dialog options.
1430718 [Thread-6] ERROR com.fs.starfarer.combat.String - java.util.IllegalFormatConversionException: d != java.lang.String
java.util.IllegalFormatConversionException: d != java.lang.String
at java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:3999)
at java.util.Formatter$FormatSpecifier.printInteger(Formatter.java:2709)
at java.util.Formatter$FormatSpecifier.print(Formatter.java:2661)
at java.util.Formatter.format(Formatter.java:2433)
at java.util.Formatter.format(Formatter.java:2367)
at java.lang.String.format(String.java:2769)
at data.scripts.plugin.BountyBattleAutoresolverPlugin$FleetAutoresolveData.report$(BountyBattleAutoresolverPlugin.java:129)
at data.scripts.plugin.BountyBattleAutoresolverPlugin.resolveEngagement$(BountyBattleAutoresolverPlugin.java:243)
at data.scripts.plugin.BountyBattleAutoresolverPlugin.resolve(BountyBattleAutoresolverPlugin.java:195)
at com.fs.starfarer.campaign.CampaignEngine.autoResolveBattle(Unknown Source)
at com.fs.starfarer.campaign.BaseLocation.advance(Unknown Source)
at com.fs.starfarer.campaign.CampaignEngine.advance(Unknown Source)
at com.fs.starfarer.campaign.A.super(Unknown Source)
at com.fs.starfarer.OoOO.øÒÒ000(Unknown Source)
at com.fs.super.oOOO.Ò00000(Unknown Source)
at com.fs.starfarer.combat.String.o00000(Unknown Source)
at com.fs.starfarer.StarfarerLauncher$2.run(Unknown Source)
at java.lang.Thread.run(Thread.java:619)
Toyed a bit with the mod, it's awesome, there will be a lot of possibilities in the future with this one. Alex will probably take this mod as an example for the introduction of the quest system for Starsector.Ah, I think I get that error. It'll only trigger if report mode is on, I'd been commenting out functions that weren't Janino-friendly but seem to have missed that line.
But first, a bug.Code1430718 [Thread-6] ERROR com.fs.starfarer.combat.String - java.util.IllegalFormatConversionException: d != java.lang.String
java.util.IllegalFormatConversionException: d != java.lang.String
at java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:3999)
at java.util.Formatter$FormatSpecifier.printInteger(Formatter.java:2709)
at java.util.Formatter$FormatSpecifier.print(Formatter.java:2661)
at java.util.Formatter.format(Formatter.java:2433)
at java.util.Formatter.format(Formatter.java:2367)
at java.lang.String.format(String.java:2769)
at data.scripts.plugin.BountyBattleAutoresolverPlugin$FleetAutoresolveData.report$(BountyBattleAutoresolverPlugin.java:129)
at data.scripts.plugin.BountyBattleAutoresolverPlugin.resolveEngagement$(BountyBattleAutoresolverPlugin.java:243)
at data.scripts.plugin.BountyBattleAutoresolverPlugin.resolve(BountyBattleAutoresolverPlugin.java:195)
at com.fs.starfarer.campaign.CampaignEngine.autoResolveBattle(Unknown Source)
at com.fs.starfarer.campaign.BaseLocation.advance(Unknown Source)
at com.fs.starfarer.campaign.CampaignEngine.advance(Unknown Source)
at com.fs.starfarer.campaign.A.super(Unknown Source)
at com.fs.starfarer.OoOO.øÒÒ000(Unknown Source)
at com.fs.super.oOOO.Ò00000(Unknown Source)
at com.fs.starfarer.combat.String.o00000(Unknown Source)
at com.fs.starfarer.StarfarerLauncher$2.run(Unknown Source)
at java.lang.Thread.run(Thread.java:619)
Other than this, how big can the bounties can get? I got a 80k bounty and the target had a cruiser plus some escorts. Will there be really big bounties in the future? Like Hegemony SDF size? This could be a lot of fun.25 FP is the current maximum, as the mod's main goal is to help you bootstrap yourself up to self-imposed goals (like killing the SDF). Bigger combats are planned at some point (e.g. going after rumours of abandoned capital ships and getting ambushed by pirate fleets).
Also would be interesting to see bounties featuring ships from other modded factions. Oh, and will this eventually be implemented with Exerelin? Also perhaps Ironclad if Okim is interested? While the content is for the moment limited, it won't be long before other modders will properly integrate the bounty mod in their own. So yeah, as Valk said, that's gonna be a big fat mod very quickly.Ergh. It's certainly not ready for that- it's basically Babby's First Attempt At Java at the moment, everything is written to work rather than to be robust and extensible.
I dont mind adding JSON reading support to it if you want, so you can set up ur own Bounty Hunts with their Descriptions/Rewards. It would make it really easy for anyone to create new bounties.Thanks, but it's not really ready for that sort of thing- a lot more work needs to go into making it more coherent first.
Glad people like the idea! (Hope the execution holds up under playtesting...)Well, im not very smart, I put the file thing on my 0.6a version.This mod is gonna get big...fast...Fast on a geological timescale, maybe.First Bug/Human Error?Well, that's odd. setFlagship is definitely a thing- are you sure you're running 0.6.1?Spoiler76297 [Thread-6] ERROR com.fs.starfarer.combat.D - java.lang.RuntimeException: Error compiling [data.scripts.BountyModPlugin]
java.lang.RuntimeException: Error compiling [data.scripts.BountyModPlugin]
at com.fs.starfarer.loading.scripts.ScriptStore$1.run(Unknown Source)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException: Compiling unit "data/scripts/plugin/BountyFleetInteractionDialogPlugin.java"
at org.codehaus.janino.JavaSourceClassLoader.generateBytecodes(JavaSourceClassLoader.java:212)
at org.codehaus.janino.JavaSourceClassLoader.findClass(JavaSourceClassLoader.java:164)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 2 more
Caused by: org.codehaus.commons.compiler.CompileException: File data/scripts/plugin/BountyFleetInteractionDialogPlugin.java, Line 633, Column 80: A method named "setFlagship" is not declared in any enclosing class nor any supertype, nor through a static import
at org.codehaus.janino.UnitCompiler.compileError(UnitCompiler.java:9403)
at org.codehaus.janino.UnitCompiler.findIMethod(UnitCompiler.java:6829)
at org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:3553)
at org.codehaus.janino.UnitCompiler.access$63(UnitCompiler.java:3552)
at org.codehaus.janino.UnitCompiler$11.visitMethodInvocation(UnitCompiler.java:2967)
at org.codehaus.janino.Java$MethodInvocation.accept(Java.java:2831)
at org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:2993)
at org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:4017)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:2413)
at org.codehaus.janino.UnitCompiler.access$38(UnitCompiler.java:2412)
at org.codehaus.janino.UnitCompiler$8.visitMethodInvocation(UnitCompiler.java:2381)
at org.codehaus.janino.Java$MethodInvocation.accept(Java.java:2831)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:2407)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1426)
at org.codehaus.janino.UnitCompiler.access$8(UnitCompiler.java:1425)
at org.codehaus.janino.UnitCompiler$5.visitExpressionStatement(UnitCompiler.java:926)
at org.codehaus.janino.Java$ExpressionStatement.accept(Java.java:1447)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:972)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:958)
at org.codehaus.janino.UnitCompiler.access$7(UnitCompiler.java:955)
at org.codehaus.janino.UnitCompiler$5.visitBlock(UnitCompiler.java:925)
at org.codehaus.janino.Java$Block.accept(Java.java:1386)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1550)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:972)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:2083)
at org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:851)
at org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:832)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:528)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:691)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:652)
at org.codehaus.janino.UnitCompiler$3.visitAnonymousClassDeclaration(UnitCompiler.java:374)
at org.codehaus.janino.Java$AnonymousClassDeclaration.accept(Java.java:553)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:383)
at org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:3885)
at org.codehaus.janino.UnitCompiler.access$66(UnitCompiler.java:3806)
at org.codehaus.janino.UnitCompiler$11.visitNewAnonymousClassInstance(UnitCompiler.java:2975)
at org.codehaus.janino.Java$NewAnonymousClassInstance.accept(Java.java:2947)
at org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:2993)
at org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:4017)
at org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:3629)
at org.codehaus.janino.UnitCompiler.access$63(UnitCompiler.java:3552)
at org.codehaus.janino.UnitCompiler$11.visitMethodInvocation(UnitCompiler.java:2967)
at org.codehaus.janino.Java$MethodInvocation.accept(Java.java:2831)
at org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:2993)
at org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:4017)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:2413)
at org.codehaus.janino.UnitCompiler.access$38(UnitCompiler.java:2412)
at org.codehaus.janino.UnitCompiler$8.visitMethodInvocation(UnitCompiler.java:2381)
at org.codehaus.janino.Java$MethodInvocation.accept(Java.java:2831)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:2407)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1426)
at org.codehaus.janino.UnitCompiler.access$8(UnitCompiler.java:1425)
at org.codehaus.janino.UnitCompiler$5.visitExpressionStatement(UnitCompiler.java:926)
at org.codehaus.janino.Java$ExpressionStatement.accept(Java.java:1447)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:972)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:958)
at org.codehaus.janino.UnitCompiler.access$7(UnitCompiler.java:955)
at org.codehaus.janino.UnitCompiler$5.visitBlock(UnitCompiler.java:925)
at org.codehaus.janino.Java$Block.accept(Java.java:1386)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1550)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:972)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:958)
at org.codehaus.janino.UnitCompiler.access$7(UnitCompiler.java:955)
at org.codehaus.janino.UnitCompiler$5.visitBlock(UnitCompiler.java:925)
at org.codehaus.janino.Java$Block.accept(Java.java:1386)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1539)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1560)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1560)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:1542)
at org.codehaus.janino.UnitCompiler.access$9(UnitCompiler.java:1477)
at org.codehaus.janino.UnitCompiler$5.visitIfStatement(UnitCompiler.java:927)
at org.codehaus.janino.Java$IfStatement.accept(Java.java:1494)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:946)
at org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:972)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:2083)
at org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:851)
at org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:832)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:528)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:421)
at org.codehaus.janino.UnitCompiler$3.visitPackageMemberClassDeclaration(UnitCompiler.java:376)
at org.codehaus.janino.Java$PackageMemberClassDeclaration.accept(Java.java:765)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:383)
at org.codehaus.janino.UnitCompiler.compileUnit(UnitCompiler.java:352)
at org.codehaus.janino.JavaSourceClassLoader.generateBytecodes(JavaSourceClassLoader.java:210)
... 5 more[close]1. This is awesome. Is the source available, and can we integrate it into other mods?1. Yep, and go right ahead although it is kind of shambolic (and I forgot to comment it)- making this mod was very much a learning exercise. There's definitely better ways to have done it.
2. If yes (and yes) how generic is it? Can it build the bounties from any ol' collection of Faction data?
3. I saw a bug; in that shot of the Dialog, it offered a choice for a Regular Bounty, but no description of the Regular Bounty target, indicating there wasn't one generated. Probably needs a logic check in whatever refreshes the dialog options.
2. It's generic-ish. It does generate fleets from factions, so you could easily copy and tweak the relevant scripts. However, the autoresolve plugin code that checks if bounties died to other NPCs would require some tweaking if multiple different bounty factions could concievably fight.
One thing I want to try eventually is, after selecting a system, build the target fleet out of ships from pre-existing fleets in that system (so a bounty in Shii territory may be driving a Shii boat and so on).
3. I think you may have misinterpreted the screen- a bounty of the correct difficulty is generated when you click on the option for them. Ideally I'd generate the 3 fleets and show their compositions in the dialog, and only spawn them into the sector once the player selected them (and clear out the unselected fleets every week, say) and I'd like to write that in now I've got a better grasp of the language.
Updated to fix the crash in report mode and tweaked a few dialogs. I'm looking into trying to make it more generic under-the-hood, as that seems like it'd be useful?If you want to see one way a generic quest system is set up, take a look at the one I've had kicking around: https://github.com/Thaago/QuestExtension
Will there be the possibility of story driven quest-lines? ;DHopefully yes now- I've implemented a sort of mission framework that allows for staged mission chains.
This looks to be so incredibly awesome.
Nice job!Thanks for the offer, though I thought I'd work from scratch- to give me a bit of a better understanding of Java.
]If you want to see one way a generic quest system is set up, take a look at the one I've had kicking around: https://github.com/Thaago/QuestExtension
It has an "escort" quest built in as an example. Unfortunately I really don't have time to develop it further, so its kind of languished for a few months :'(. Someday! (If you do find it useful, feel free to copy anything you want.)
Looks awesome. Does this require a new game? And how do you think it would work with Exerelin?It doesn't require a new game, but actually the new version might not work with Exerelin out of the box- some of the Most Wanted missions are at specific planets. If you delete all the lines in data/bounty/wanteds.csv after "wantedId", it should work fine.
1349387 [Thread-5] ERROR com.fs.starfarer.combat.O0OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO - java.lang.RuntimeException: Ship hull [heron] variant [heron_Standard]: slot id [WS 001] not found for weapon [lrpdlaser]
java.lang.RuntimeException: Ship hull [heron] variant [heron_Standard]: slot id [WS 001] not found for weapon [lrpdlaser]
at com.fs.starfarer.loading.specs.oo0OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.o00000(Unknown Source)
at com.fs.starfarer.title.ooOO.L.new(Unknown Source)
at com.fs.starfarer.title.ooOO.L.o00000(Unknown Source)
at com.fs.starfarer.coreui.W.o00000(Unknown Source)
at com.fs.starfarer.ui.O00oOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.renderImpl(Unknown Source)
at com.fs.starfarer.ui.public.render(Unknown Source)
at com.fs.starfarer.ui.p.renderImpl(Unknown Source)
at com.fs.starfarer.ui.public.render(Unknown Source)
at com.fs.starfarer.ui.p.renderImpl(Unknown Source)
at com.fs.starfarer.ui.impl.StandardTooltipV2.renderImpl(Unknown Source)
at com.fs.starfarer.ui.public.render(Unknown Source)
at com.fs.starfarer.ui.p.renderImpl(Unknown Source)
at com.fs.starfarer.ui.public.render(Unknown Source)
at com.fs.starfarer.campaign.A.ØØ0000(Unknown Source)
at com.fs.starfarer.B.ØÓÒ000(Unknown Source)
at com.fs.oOOO.A.Ò00000(Unknown Source)
at com.fs.starfarer.combat.O0OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.o00000(Unknown Source)
at com.fs.starfarer.StarfarerLauncher$2.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
yes, just checked it , solved it by deleting heron from every file on valkyrian. so far only another hang up happened with no crash error. might just leave it to see if it continues? i finished the most most wanted bounty and went back to the station to collect bounty. as soon as i dock the game hanged. without saying a thing. edit: restarted the game it worked but now i have an onslaught elite battleship on my fleet i cant sell , what do i do with it ? :C 2nd edit: tried to mothball that ship, got a null crash. 3rd edit: any attempt to take that ship out of my fleet ended in either not working or a null crash. so i just went against an enemy fleet with that battleship and let it be disabled and destroyed by the enemy so i could remove it from my fleet.Hm, I came across that in testing but thought I'd fixed it. I'll take a look at it.
1953079 [Thread-5] ERROR com.fs.starfarer.combat.O0OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO - java.lang.NullPointerException
java.lang.NullPointerException
at data.scripts.plugin.MissionFleetInteractionDialogPlugin.backFromEngagement(MissionFleetInteractionDialogPlugin.java:23)
at com.fs.starfarer.campaign.A.class.for$super(Unknown Source)
at com.fs.starfarer.B.???000(Unknown Source)
at com.fs.oOOO.A.?00000(Unknown Source)
at com.fs.starfarer.combat.O0OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.o00000(Unknown Source)
at com.fs.starfarer.StarfarerLauncher$2.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
669017 [Thread-5] ERROR com.fs.starfarer.combat.O0OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO - java.lang.NullPointerException
java.lang.NullPointerException
at com.fs.starfarer.coreui.OoOO.actionPerformed(Unknown Source)
at com.fs.starfarer.ui.O00oOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.o00000(Unknown Source)
at com.fs.starfarer.ui.F.processInput(Unknown Source)
at com.fs.starfarer.ui.newsuper.super(Unknown Source)
at com.fs.starfarer.B.???000(Unknown Source)
at com.fs.oOOO.A.?00000(Unknown Source)
at com.fs.starfarer.combat.O0OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.o00000(Unknown Source)
at com.fs.starfarer.StarfarerLauncher$2.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
So I was playing with this alongside Uomoz's, and I found two errors: ...
I quite like it. Then again, I've only done one bounty so far before I had null error crashes.So I was playing with this alongside Uomoz's, and I found two errors: ...
How do you feel it plays? Does BH integrate well with UsS? (other then bugs ofc! :D)
So I was playing with this alongside Uomoz's, and I found two errors:Hm, okay- the former is because I've overlooked the fact that bounty hunters aren't labelled with their mission, whilst bounty targets are. That's an easy fix. The mothballing seems to be the same bug as before, where the Most Wanted ships you auto-salvage are still slightly attached to their old fleet and this occasionally causes problems. I think I introduced this by altering how the Salvage script works to make them show up better in the post-battle fleet displays- I'm just testing a fix for it.
This one happened when I shot down a Bounty Hunter.Code1953079 [Thread-5] ERROR com.fs.starfarer.combat.O0OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO - java.lang.NullPointerException
java.lang.NullPointerException
at data.scripts.plugin.MissionFleetInteractionDialogPlugin.backFromEngagement(MissionFleetInteractionDialogPlugin.java:23)
at com.fs.starfarer.campaign.A.class.for$super(Unknown Source)
at com.fs.starfarer.B.???000(Unknown Source)
at com.fs.oOOO.A.?00000(Unknown Source)
at com.fs.starfarer.combat.O0OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.o00000(Unknown Source)
at com.fs.starfarer.StarfarerLauncher$2.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
The second was one I tried to mothball a ship I got from a Most Wanted bounty.Code669017 [Thread-5] ERROR com.fs.starfarer.combat.O0OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO - java.lang.NullPointerException
java.lang.NullPointerException
at com.fs.starfarer.coreui.OoOO.actionPerformed(Unknown Source)
at com.fs.starfarer.ui.O00oOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.o00000(Unknown Source)
at com.fs.starfarer.ui.F.processInput(Unknown Source)
at com.fs.starfarer.ui.newsuper.super(Unknown Source)
at com.fs.starfarer.B.???000(Unknown Source)
at com.fs.oOOO.A.?00000(Unknown Source)
at com.fs.starfarer.combat.O0OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.o00000(Unknown Source)
at com.fs.starfarer.StarfarerLauncher$2.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Hm, okay- the former is because I've overlooked the fact that bounty hunters aren't labelled with their mission, whilst bounty targets are. That's an easy fix. The mothballing seems to be the same bug as before, where the Most Wanted ships you auto-salvage are still slightly attached to their old fleet and this occasionally causes problems. I think I introduced this by altering how the Salvage script works to make them show up better in the post-battle fleet displays- I'm just testing a fix for it.Alright, thanks for the response. For now I'll just pretend that missed bounties are gone for good, and that Most Wanted targets don't exist.
You don't actually have to interact with the escort origin to spawn the escort- they should set off when you get close enough (though a few seconds of waiting near the planet may be necessary) but yeah, the Escort missions should probably not start or end at a location that's hostile to the transport faction. I'll have to figure out some way of taking the stations orbiting a planet into account when figuring this out too, as Escort selects planets as well (which have no faction).Hm, okay- the former is because I've overlooked the fact that bounty hunters aren't labelled with their mission, whilst bounty targets are. That's an easy fix. The mothballing seems to be the same bug as before, where the Most Wanted ships you auto-salvage are still slightly attached to their old fleet and this occasionally causes problems. I think I introduced this by altering how the Salvage script works to make them show up better in the post-battle fleet displays- I'm just testing a fix for it.Alright, thanks for the response. For now I'll just pretend that missed bounties are gone for good, and that Most Wanted targets don't exist.
EDIT: Just took an escort mission. The problem? It's at a pirate base, and I can't interact with it.
EDIT 2: Tried another. Took an Easy mission and then realized the destination was a Pirate Base, defended by Pirate Armadas. Looks like meshing this with Uomoz's isn't exactly working for now.
Hi. Took a look at this a couple of weeks ago, before I got really wrapped up in the AI stuff.It's currently in the process of being revamped into a more generic system- the back-end is now split into Mission Handlers and Missions which are registered with the handler, and the missions have a set of default evaluations (after X time, on fleet combat, on NPC fleet combat) that lead to conclusions.
I'm interested in porting it into Vacuum, as it would certainly add a lot more things for players to do besides conquering the Sector, but it looks like the chief issue would be making it operate generically for each Station, so that the missions would be auto-generated anywhere in the game. Any thoughts on how I'd go about getting this set up more as a framework and less specifically would be appreciated :)
{
"wantedId" : "bounty_sajuukkhar",
"title" : "The Angry God ",
"fleetName" : "The Khar",
"difficulty" : "Very Dangerous",
"reward" : "750000",
"location" : {
"system" : "Corvus",
"token" : "Corvus III",
},
"captain" : {
"aptitudes" : {
"technology" : "10",
"leadership" : "10",
"combat" : "10",
},
"skills" : {
"missile_specialization" : "10",
"ordnance_expert" : "10",
"damage_control" : "10",
"target_analysis" : "10",
"evasive_action" : "10",
"helmsmanship" : "10",
"flux_modulation" : "10",
"advanced_tactics" : "10",
"command_experience" : "10",
"fleet_logistics" : "10",
"gunnery_implants" : "10",
"applied_physics" : "10",
"flux_dynamics" : "10",
"computer_systems" : "10",
"construction" : "10",
"mechanical_engineering" : "10",
"field_repairs" : "10",
"navigation" : "10",
},
},
#The description is shown when the player views the wanted poster. To include line breaks in it, use \n.
"description" : "Two months ago, the pirates somehow disabled and stole the Khar, our prized flagship and have been terrorising the Corvus System. As much as it pains us, we are offering a seven hundred and fifty thousand credit bounty to whoever destroys the Khar. We can NOT allow these pirates to dirty our name and the name of our flagship!",
#The congratulation is shown when the player kills the bounty. To include line breaks in it, use \n. Optional.
"congratulation" : "The Khar is no longer in pirate hands and our name has been cleared. Thank you and may the Goddess smile upon you.",
"fleetShips" : [
{
"variantId" : "hii_sajuukkhar_Elite",
"name" : "Khar",
"crewRating" : "ELITE",
"salvage" : "TRUE",
},
],
}
A quick note for the current version. The auto salvage works, but I'd also gotten an option to board/neutralize the ship in question. The result was a disabled ship in my fleet - this ended with me being unable to retreat from a separate battle because the disabled ship was still on the map, except it was not since there was no sprite and nothing happened. Had to quit the game at that point.