Git Product home page Git Product logo

communicationmod's People

Contributors

dependabot[bot] avatar forgottenarbiter avatar jlubars avatar kronion avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

communicationmod's Issues

External process timed out

Hello, probably its me that is bad or your instructions need to be clearer.
When i start the mod i get the error messege that it has not recieved "the signal" from external process in is shutting down.

I took three pictures. Please explain to me what im doint wrong. One picture is of my config file, one is of ingame menu and one is the error messege from "ModTheSpire".

Thanks for the help beforehand, if i get this mod working it will be usefull!

Config
ingame
modthespire

SpireConfig does not exist

The SpireConfig file that needs to be editted to point the mod at an external process doesn't seem to exist when ModTheSpire is installed from the steam workshop. At least, I can't seem to find it and the linked documentation does not seem to apply.

Supported features for an audio-only version of STS

Hello,

I am planning to write an audio-only interface for STS with the help of Communication Mod, for blind and visually impaired gamers.

I understand that at the moment, only regular games are supported. Are there plans to add other modes, e.g. Daily Run?

The complete match state, as I understand, is not yet available. Could you please describe what is currently missing?

Are there other things in general that the Communication Mod could access? For example the settings menu, achievements, patch notes, Compendium and Potion Lab, etc. I am currently trying to gauge how much of the game could be potentially available.

Since you are more familiar with game internals, do you think it would be better to create this interface as a mod, i.e. am I limited if I create this in a non-JVM language?

Thank you very much in advance.

Number of times taken damage

Blood for Blood is cheaper based on the # of times the player has taken damage. Unfortunately, the game state doesn't reveal this number (unlike game_state.cards_discarded_this_turn).

Can you expose this value?

CommunicationMod hangs if Match and Keep! choices are selected too quickly

CommunicationMod hangs if spirecomm selects choose 0 too quickly (i.e. with no-ux version of SuperFastMode). One card is chosen, and then communicationmod gets stuck while the game displays "Remaining Attempts: 4", never sending a new game state after the latest choose 0 command.

I can consistently reproduce this with

result = coordinator.play_one_game(PlayerClass.IRONCLAD, seed="2TQ7CH7RF8M2H")

when SuperFastMode 999.0.0 is set to make some actions instant + increase speed to 1000%.

It doesn't hang if I disable instant actions and play at 100% speed, and doesn't hang if I play with SuperFastMode but add a small delay to def handle_screen(self):

[...]
else:
    time.sleep(0.07)  # Add a small delay before sending the choice to communicationmod
    return ChooseAction(0)
[...]

ModVersion Info:

  • Java version (1.8.0_252)
  • Slay the Spire (07-30-2020)
  • ModTheSpire (3.16.0)

Mod list:

  • basemod (5.23.3)
  • CommunicationMod (1.0.2)
  • mintyspire (2.1.0)
  • permNeow (1)
  • superfastmode (999.0.0)

communicationmod-hangs-on-match-and-keep-SlayTheSpire.log

Screenshot 2020-10-25 at 22 31 33

state changes within the OverlayMenu don't register to CommunicationMod as a game state change

The OverlayMenu isn't officially a screen within the game, but instead a container for various elements that are shown/hidden depending on the game state. Most of the time interacting with these elements will register to CommunicationMod as a state change by virtue of changing the current screen or flipping the isScreenUp boolean in AbstractDungeon, but there are cases where this doesn't happen, particularly when having a GRID screen up. For example, when a user is selecting a card to purge in the shop, if they select a card and issue a cancel command this doesn't change the isScreenUp or screen fields in AbstractDungeon so hasDungeonStateChanged in GameStateListener will not return true. And whenever we issue a command, we flip waitingForCommand in GameStateListener to be false but it will never become true again until the user issues another command (since flipping that variable depends on the output of hasDungeonStateChanged. This is problematic for some automated clients who wait for waitingForCommand to become true again to issue another command.

CommunicationMod not available in steam workshop

Hi,

just in case you didn't know, it doesn't seem to be possible to access CommunicationMod via Steam Workshop anymore, since the new version was released. The previous version disappeared from my machine as well since it is no longer available, rendering mods which depend on CM useless. Any way you can fix this, or is this somehow steam related?

Energy bugfix is not included in the latest release

Hey, can you release a new version that includes 5c9bdc4?

The energy values currently reported in https://github.com/ForgottenArbiter/CommunicationMod/releases/tag/v0.7.0 were confusing me when trying to understand the output, and makes it more difficult to write an AI. Based on the commit description I assume the linked commit is a fix that reports the current energy instead of the "max". (Still having the max value available somewhere might also be nice, but of course much less important.)

Thanks!

Error when starting communication Mod on Ubuntu

This is the setup I start the mod with on Ubuntu 18.04:
asdasd

I am not used to mods so I might have set up something wrong.
Other mods (for instance Fruity mod) work fine.

The setup leads me to this stack trace :

Initializing mods...
 - Communication Mod
   - communicationmod.CommunicationMod
java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.evacipated.cardcrawl.modthespire.Patcher.initializeMods(Patcher.java:38)
	at com.evacipated.cardcrawl.modthespire.Loader.runMods(Loader.java:390)
	at com.evacipated.cardcrawl.modthespire.ui.ModSelectWindow.lambda$null$1(ModSelectWindow.java:265)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
	at basemod.BaseMod.subscribeIfInstance(BaseMod.java:2628)
	at basemod.BaseMod.subscribe(BaseMod.java:2648)
	at communicationmod.CommunicationMod.<init>(CommunicationMod.java:53)
	at communicationmod.CommunicationMod.initialize(CommunicationMod.java:77)
	... 8 more

Ambiguity in readme

In Setup 3. it says "Edit your newly-created SpireConfig file", took me some time to realize that the actual file is called "config.properties"

External Process Timeout delay

Hello, I am trying to sift through the documentation without an example program to guide me, and I am having issues that may just be my device. When I start the external process in-game, my computer lags for a moment. I believe that this is throwing off the timing for the communication mod as it is not getting a "Ready" signal in time. How would I get around this? Can I modify the default timeout period?
My code so far consists of:
import json import sys sys.stdout.write("Ready\n") #sys.stdout.flush() sys.stdout.write("START IRONCLAD 0 4LHFV1BZP8C8D\n") #sys.stdout.flush()

WAIT equivalent in the main menu?

Is there any way for the external process to tell Communication Mod to just do nothing in the main menu until the player starts a run? It looks like the WAIT command only works during the run itself, and if the external process doesn't send any command then it will time out.

issues when switch the game language to others

When I switch the game language to, for example, Chinese, the ModTheSpire output information shows some errors occur with sort of character problems in this mod. Some Chinese character became [???] which normally should be the card name/potion name in Chinese.
Are there any support for those none-English language?
I already tested in MacOS and Win10, only with English the mod will run all fine.

Looking forward to your reply, thx.

Can't run external process

@ForgottenArbiter I have tried running spirecomm with the mod but I'm having an issue. The mod doesn't run the main.py file at all.

The main.py runs fine on its own so I'm guessing this is a mod problem.

Here is my config file:

#Sat Apr 22 11:12:53 AST 2023
command=python C\:\\spirecomm\\main.py

I have also made another script where I tried checking if the mod opens the external process where it creates a file after sending the ready signal, that way I can know if the mod has opened it but the file never gets created, unless I manually open the script of course.

Here is the list of mods I currently have:

  1. AchievementEnabler. V1.0.0 (Enabled).
  2. BaseMod. V5.52.2 (Enabled).
  3. Say the Spire. V0.4.2 (Enabled).
  4. Communication Mod. V1.2.1 (Enabled).
  5. StSLib. V2.9.0 (Disabled).
  6. The Construct. V1.1.0 (Disabled).
  7. Together in Spire. V4.2.0 (Disabled).

I have disabled StSLib because in the Communication mod status it says that I might encounter problems running it because it has been specifically tested with a specific version, but enabling it and disabling it didn't make any difference.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.