Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import dialogue.InputPrompt;
- import npcchat.NPCChat;
- import npcchatinterface.NPCDialogue;
- import npcchatinterface.NPCOption;
- import random.Random;
- import random.RandomConstant;
- import random.RandomDelay;
- import script.nodescript.Node;
- public abstract class NPCChatNode extends Node {
- private NPCChat npcChat;
- private RandomConstant dialogueParseTimeLowerBound;
- private RandomConstant dialogueParseTimeRange;
- private RandomConstant dialogueKBorM;
- public NPCChatNode(String name, NPCChat npcChat) {
- super(name);
- this.npcChat = npcChat;
- this.dialogueParseTimeLowerBound = new RandomConstant("dialogueParseTimeLowerBound", 100, 1000, 60*60*1000);
- this.dialogueParseTimeRange = new RandomConstant("dialogueParseTimeRange", 500, 2000, 60*60*1000);
- this.dialogueKBorM = new RandomConstant("dialogueKBorM", 500, 2000, 12*60*60*1000);
- }
- @Override
- public int execute() {
- while(NPCChat.isOpen()){
- if(canContinue()) {
- NPCDialogue.clickContinue(dialogueKBorM.nextDouble() > 0.90);
- } else if(NPCOption.isOpen()) {
- int option;
- if((option = npcChat.getOption()) != -1){
- NPCOption.selectOption(option, dialogueKBorM.nextDouble() > 0.89);
- }else{
- System.out.println("No option found breaking out");
- return RandomDelay.NODE_TICK.get();
- }
- }else if(InputPrompt.isOpen()){
- Keyboard.sendText(npcChat.getInputPromptText());
- }
- Chrono.sleep(Random.nextInt(dialogueParseTimeLowerBound.get(), dialogueParseTimeLowerBound.get()+dialogueParseTimeRange.get()));
- }
- return RandomDelay.NODE_TICK.get();
- }
- private boolean canContinue(){
- return NPCDialogue.isOpen() && NPCDialogue.canContinue();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement