« first day (47 days earlier)      last day (3814 days later) » 

night @SimonAndréForsberg
00:23
Night Simon!
01:17
> changed client FXML and card FXML, enemy hand now drawn on screen
@Phrancis there is the new Client GUI
Pretty freaking cool!!!
[Cardshifter/Cardshifter] build #110 for commit 10c1b7f1 on branch javafx passed
 
5 hours later…
06:04
Monking
Monknight
 
1 hour later…
07:22
It's still around, kill it with fire!
 
6 hours later…
13:41
Monking
@bazola looking good!
@skiwi I've removed that in one of the commits towards develop, so it has been killed with fire.
@SimonAndréForsberg Ok good
14:35
it looks like I will be working quite a bit next week, so next week I won't have much time for this project probably
14:55
@SimonAndréForsberg Working? :o
Like what
got something interesting?
some Java programming and some Flash programming. Not quite sure what they want me to do in Flash (who actually uses that these days?)
Okay, interesting
So you'll have about as much time as I do!
perhaps
we'll see
15:03
Which is not that much unfortunately
16:21
@SimonAndréForsberg well we still have a little time before next week to try to get a playable network client going :)
What do we aim for on 2.0 0.2?
16:41
well, I am working on clickable action buttons right now, and I think simon is creating the last few messages we need to send to the client to have the full information for a game. Theoretically those two things will lead to a game that is playable over the network between two humans
i just figured out how to put a mouse click on an anchor pane, so I can definitely eliminate all the little buttons now
2
17:48
So many thigns to work on... :p
> implemented working action buttons
[Cardshifter/Cardshifter] build #111 for commit a3843cab on branch javafx passed
> slight refactor to GameClientController
[Cardshifter/Cardshifter] build #112 for commit f40b4f1f on branch javafx passed
18:08
@SimonAndréForsberg I am not sure exactly how to convert this into a card:
UseableActionMessage [id=8, action=Play, targetRequired=false, targetId=0]
UseableActionMessage [id=7, action=Play, targetRequired=false, targetId=0]
18:26
back
@bazola the id tells you which card id the action is for. (some of) the cards themselves has been sent before in a CardInfoMessage
but if it does not say what zone it is in, I would have to parse all the zones to find out
@bazola the CardInfoMessage has informed you about what zone it is in
@SimonAndréForsberg Do you see any interest in moving over our server to that Bluemix thingie? Or is there no point in doing it
yeah but now I have a UsableActionMessage, and I want to paint a card. I have the cardId, but I would need to search through the zones to get to it
@bazola Map<Integer, Zone> ? Or Map<Integer, CardNode> perhaps?
18:41
so you think it is better for the client to keep a map that contains the list of cards and zones, rather than the server sending that information?
@skiwi what server? TCG server? No. Duga? Perhaps. Overall, I don't think I will use the IBM server much, although it would be cool.
@SimonAndréForsberg Just wondering, any reason they have different treatment? ;)
@skiwi The TCG Server is not ready enough yet. It needs to be tested a lot more before running on IBM
@bazola even if the server would tell you what zone the card for the action was in, you would still have to scan that zone to determine which specific card it was for.
that is true
well I have updates partially working, but not fully working yet
I'm not sure totally what is wrong, but I will push what I have
I suggest that you play with my implementation @SimonAndréForsberg, it should reveal exactly what information the client still needs for the game to be "playable", but it is actually "playable" now, just without full visual information
I still need to inform you about when cards changes zones
@bazola cool
18:46
> implemented partially working updates, not all values persist
sounds like we should be able to get that working before next week, then
the action buttons do work, they do send a proper action to the server, and they do properly get new action buttons for target actions, so those work too
you just can't see what card the action relates to
and since the number of actions is not known before render, they overflow off of the screen as well, but that is okay because eventually they will highlight cards instead of drawing a row of action boxes
[Cardshifter/Cardshifter] build #113 for commit c88f3bb9 on branch javafx passed
@SimonAndréForsberg Ah okay
I had to close down my Travis CI tab :( That web interface is simply too bugged performance-wise
18:51
Mark the date anyone! @skiwi is closing a tab!
19:32
@SimonAndréForsberg you might have already considered this, but I have been thinking about how to render the opponents hand. Right now, you get a ZoneMessage at the start that says the number of cards in their hand. It would be "sufficient" to send a value for the opponents hand size in order to change what is rendered. But consider hearthstone, where you can actually see the opponent looking at their cards and preparing to play one
I suppose it would be possible to send the card information each turn, but it can't be in the same format as CardInfoMessage because the information needs to be obscured. So then I thought that there could be another type of message just for opponent cards. But I am not sure if that makes sense either, or if it fits into the ECS model
the server would have to send two different types of card data to each player, and have to keep track of which type of card data to send to each of them
I doubt that as of now I'll be able to code a lot in coming days/weeks
Really not feeling well in the evenings, busy during day
For some reason my body just fucks up, though that will be gone in a few days I hope
19:48
sorry you don't feel good @skiwi
Well yea, for some reason last days in evening my stomach just hurts, like there's a load of air in it or something, it's quite weird
had some issues, but was going good again last week
try taking GasX?
What's that?
gets rid of stomach based air loads lol
I don't know, if this keeps going, then I'll check
I used to have it the other way around, having issues with my stool and then ending up having stomach ache in the morning, like for 2-3 years but that's already a bunch of years ago
19:53
starting to sound like celiac disease
I doubt that, I've had some researches in hospital though a few years ago
Might also be that I need to practice sports again
Strangely enough it was all going well, until I went to Gamescom a few weeks ago and had an irregular schedule, and also started to eat more since then
So wouldn't be surprised if it has to do with eating more
20:30
@bazola I think that rendering what card the opponent is currently looking at is a hard thing to do. I might do it so that it simply sends the id of the card for the opponent, but nothing more (because you are not allowed to do it). Although I think that it is enough to send the hand size for now. (and then later inform when a card moves to the hand)
@skiwi practice/exercise should not be underestimated (says me who's not really moving too much either...)
@skiwi that could be related, yes.
I hope you avoid eating too much junk-food. especially candy
21:09
> parameters on ECSAction, for who/what decides to activate the action
> Added removeAction functionality
> Changed default size of TargetSet to min, to support very large max
> Added null checks in ComponentRetreiver and Cards.
> Added a null check in ResourceRetreiver
> Added insertTemporaryBeforeCurrent method to add a pre-game phase
> Added Mulligan functionality to game model
[Cardshifter/Cardshifter] build #114 for commit 800db58e on branch issue10 passed
It isn't implemented in JavaFX or console properly yet, which is why I haven't marked the issue as fixed
@SimonAndréForsberg I agree that rendering the movement of opponent cards during their turn is not something we need to worry about, I was just thinking about how it might be done, and what functionality we do want. I am okay with whatever you come up with. It seems like the ECS is working great for this
@bazola it could be possible to make a MousePointerMessage later on, but for now it's not really worth it. there are more important things to think about
@bazola You might want to add an error message if it was not possible to connect :)
21:33
thats a good idea
it just hangs forever and does nothing with an invalid connection
though, the thought that I previously had about that was that the client should send the server an initial message, and get an initial response, before trying to do the full connection? does that make sense?
@bazola it's kinda impossible to get a response without an existing connection. this time, I forgot to start the server before I started and logged in with the client
right now this is what happens when you click the button to connect:
		//Attempt to make a connection
		try {
			//Send a test to the server, to make sure that it is valid

			//if it is valid
			errorMessage.setText("Success!");
			this.closeWithSuccess(event);
			this.switchToMainGameWindow(ipAddressValue, portValue);
		} catch (Exception e) {
			String message = e.getMessage();
			errorMessage.setText(message);
		}
@bazola the actual connection must have been created before that though
actually the actual connection happens here in the GameClient itself:
	public void connectToGame() {
		// this is called on the object from the Game launcher before the scene is displayed
		try {
			this.socket = new Socket(this.ipAddress, this.port);
			this.out = socket.getOutputStream();
			this.in = socket.getInputStream();
			mapper.configure(JsonParser.Feature.AUTO_CLOSE_SOURCE, false);
			mapper.configure(JsonGenerator.Feature.AUTO_CLOSE_TARGET, false);
			new Thread(this::listen).start();
		} catch (Exception e) {
			e.printStackTrace();
		}

		try {
			new Thread(this::play).start();
this is the method that calls that one:
	private void switchToMainGameWindow(String ipAddress, int port) {
		try {
			FXMLLoader loader = new FXMLLoader(getClass().getResource("ClientDocument.fxml"));

			Parent root = (Parent)loader.load();

			GameClientController controller = loader.<GameClientController>getController();
			controller.acceptIPAndPort(ipAddress, port);
			controller.connectToGame();

			Scene scene = new Scene(root);

			Stage gameStage = new Stage();

			gameStage.setScene(scene);
			//stage.centerOnScreen();
			gameStage.show();
I guess I need to try to catch an exception at controller.connectToGame();
@bazola There won't be an exception in the second try-catch, and in the first one is where you should show a message to the user instead
ideally, if the connection fails, the new Scene should not be created. (You can have connectToGame return false
21:47
which try-catch is the wrong one exactly
try {
this.socket = new Socket(this.ipAddress, this.port);

^^ This is where connection exception can occur, if that happens it should be shown to the user, not just stacktrace printed
22:01
about halfway there
is this actually going to return false if there is an exception?:
		} catch (Exception e) {
			System.out.println("Connection Failed");
			return false;
		}
then i don't know why its not working
me neither because I can't see your code
oh okay
it does work, it just takes forever for it to fail the connection
> added error message on failed connection
22:09
its funny, because if you put in an ip address of 127 it fails almost instantly
but if you put in 127.0 then it takes quite a few seconds to fail
[Cardshifter/Cardshifter] build #116 for commit e273c2f6 on branch javafx passed
do you have an idea why it takes 4-5 seconds for the UsableActionMessages to be received after End Turn is sent?
is it just because of this? MappingIterator<Message> values = mapper.readValues(new JsonFactory().createParser(this.in), Message.class);
@bazola nope, that's not why.
it's because the AI has a timer now
so the AI only makes a move once every 5 seconds
@bazola This won't work as you plan it to:
this.processPlayerMessageForPlayer(message, playerStatBox, playerStatBoxMap);

...

private void processPlayerMessageForPlayer(PlayerMessage message, Pane statBox, Map playerMap) {
statBox.getChildren().clear();
Map<String, Integer> sortedMap = new TreeMap<>(message.getProperties());
playerMap = sortedMap;
you probably want to do playerMap.clear(); and playerMap.addAll(sortedMap);
also, you should use generics there
> Added logging when event is executed
> Fixed infinite loop if server is shut down
22:24
and then you might want to git pull that change to your branch ^^
@SimonAndréForsberg the problem with that is that the Map that is being passed into that function is supposed to keep a permanent record of all the Strings and Ints so that they can be referenced later with the contents of an UpdateMessage
@bazola how about only doing putAll then? That will overwrite any existing values in the map
I'm still a bit confused, maybe I am just under caffeinated at the moment :) It does correctly draw the info from the Player Messages, the problem is that when the update messages come in, it seems to be removing some values. Or, I am not properly saving them to the map when I first get the player messages
replace
playerMap = sortedMap;
with
playerMap.putAll(sortedMap);
22:47
most excellent :)
> Added ZoneChangeMessage and EntityRemoveMessage
@bazola git pull origin client-server to merge with those changes to server I just did. And then please do git push afterwards
> player and opponent stat boxes/maps now work properly
@Duga did you really fix that for opponent too there, @bazola?
yeah
22:55
ah, yes, of course
silly me
[Cardshifter/Cardshifter] build #119 for commit b9c47a5f on branch javafx passed
maybe its not the best method name and argument names
but yeah that method works on both of them, and the method that calls it decides which ones to pass in
processPlayerMessage would perhaps be enough
I still seem to be getting too many enchant targets
I hope my recent push to client-server will help you make it work to show when a card is moved
22:58
I still don't see messages reflecting that
@bazola git pull origin client-server
> pulled client-server changes
cool, i guess it didn't work because I hadn't pushed my change yet
I'm about to head out for now but I got this exception:
Sending: {"command":"login","username":"Player87"}
Sending: {"command":"startgame"}
com.cardshifter.server.outgoing.WelcomeMessage@60516968
Exception in thread "Thread-5" java.lang.UnsupportedOperationException: No such defined type: zoneChange
	at com.cardshifter.server.messages.MessageTypeIdResolver.typeFromId(MessageTypeIdResolver.java:93)
	at com.fasterxml.jackson.databind.jsontype.impl.TypeDeserializerBase._findDeserializer(TypeDeserializerBase.java:161)
	at com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer._deserializeTypedForId(AsPropertyTypeDeserializer.java:99)
[Cardshifter/Cardshifter] build #120 for commit 1920f1f0 on branch javafx passed
@bazola try do an mvn install, because it was a part in the API that was changed
23:04
of course
i was thinking maybe i need to import something for the new messages? but it doesn't know what because I am not actually calling them directly? or is that incorrect
yeah build with dependencies on the branch fixed it
ZoneChangeMessage [entity=9, sourceZone=2, destinationZone=3]
ZoneChangeMessage [entity=48, sourceZone=45, destinationZone=46]
ZoneChangeMessage [entity=49, sourceZone=45, destinationZone=46]
ZoneChangeMessage [entity=50, sourceZone=45, destinationZone=46]
ZoneChangeMessage [entity=51, sourceZone=45, destinationZone=46]
ZoneChangeMessage [entity=52, sourceZone=45, destinationZone=46]
looks good to me :)
the new cards are rendering also it looks like
they do?
oh, when you draw cards yes.
I'll fix that enchanting bug, you are correct that it probably gives too many targets
java.lang.AssertionError: expected:<1> but was:<18>
^^ had a feeling about that
well I am heading out for now, but great work man! I will dig into it tomorrow and see what all I can make it do :)
23:19
> Restricted enchanting targets - again
> Merge branch 'ecs-fx' of github.com:Cardshifter/Cardshifter into develop
> Merge branch 'issue11' of github.com:Cardshifter/Cardshifter into develop
> Merge branch 'client-server' of github.com:Cardshifter/Cardshifter into develop
> Merge branch 'javafx' of github.com:Cardshifter/Cardshifter into develop
[Cardshifter/Cardshifter] build #121 for commit 828fc066 on branch develop passed
[Cardshifter/Cardshifter] Zomis deleted branch issue11
[Cardshifter/Cardshifter] Zomis deleted branch ecs-fx
[Cardshifter/Cardshifter] build #122 for commit 828fc066 on branch javafx passed
@bazola I've merged your branch with some of the recent changes, so you should do git pull

« first day (47 days earlier)      last day (3814 days later) »