Made scriptmanager able to exclude certain files, wrote some new example replacements.

This commit is contained in:
Ceikry 2020-03-09 20:03:54 -05:00
parent 63b2c6b19d
commit 86ee5d5a6a
3 changed files with 119 additions and 0 deletions

View file

@ -96,6 +96,10 @@ public final class ScriptManager {
if (file.getName().equals(".DS_Store")) {
continue;
}
//Files to EXCLUDE from loading
if (file.getName().equals("simon_templeton.asc") || file.getName().equals("ardougne_baker.asc") || file.getName().equals("anna_isaakson.asc")){
continue;
}
if (file.isDirectory()) {
load(file);
continue;

View file

@ -0,0 +1,56 @@
package plugin.dialogue;
import org.crandor.game.content.dialogue.DialoguePlugin;
import org.crandor.game.node.entity.player.Player;
import org.crandor.plugin.InitializablePlugin;
/**
* Replacement for the Anna Isaakson .asc file
* @author ceik
*/
@InitializablePlugin
public class AnnaIsaakson extends DialoguePlugin {
public AnnaIsaakson(){
/**
* Empty on purpose
*/
}
public AnnaIsaakson(Player player){super(player);}
@Override
public DialoguePlugin newInstance(Player player){return new AnnaIsaakson(player);}
@Override
public boolean open(Object... args) {
npc("Hello visitor, how are you?");
stage = 1;
return true;
}
@Override
public final boolean handle(int interfaceId, int buttonId){
switch(stage){
case 1:
player("Better than expected. Its a lot...nicer...here than I was", "expecting. Everyone seems pretty happy.");
stage = 2;
break;
case 2:
npc("Of course, the Burgher is strong and wise, and looks", "after us well");
stage = 3;
break;
case 3:
player("I think some of those Jatizso citizens have got", "the wrong idea about this place.");
stage = 10;
break;
case 10:
end();
break;
}
return true;
}
@Override
public int[] getIds() {
return new int[] { 5512 };
}
}

View file

@ -0,0 +1,59 @@
package plugin.dialogue;
import org.crandor.game.content.dialogue.DialoguePlugin;
import org.crandor.game.node.entity.npc.NPC;
import org.crandor.game.node.entity.player.Player;
import org.crandor.plugin.InitializablePlugin;
/**
* Replacement for ArdougneBaker.asc
* @author ceik
*/
@InitializablePlugin
public class ArdougneBaker extends DialoguePlugin {
public ArdougneBaker(){
/**
* Empty on purpose
*/
}
public ArdougneBaker(Player player){super(player);}
@Override
public DialoguePlugin newInstance(Player player){return new ArdougneBaker(player);}
@Override
public boolean open(Object... args) {
npc = (NPC)args[0];
npc("Good day, monsieur. Would you like ze nice", "freshly-baked bread? Or perhaps a nice piece of cake?");
stage = 1;
return true;
}
@Override
public final boolean handle(int interfaceId, int buttonId){
switch(stage){
case 1:
interpreter.sendOptions("Choose an option.", "Let's see what you have.", "No thank you.");
stage = 2;
break;
case 2:
switch(buttonId){
case 1:
end();
npc.openShop(player);
stage = 20;
break;
case 2:
end();
break;
}
break;
}
return true;
}
@Override
public int[] getIds() {
return new int[] { 571 };
}
}