« first day (364 days earlier)      last day (3496 days later) » 

00:00
RELOAD!
[Cardshifter/HTML-Client] 1 commit. 37 additions. 22 deletions.
[rubberduck-vba/Rubberduck] 1 opened issue. 5 issue comments.
 
1 hour later…
01:16
"If you copy and paste, you're doing it wrong. Every time you hit Ctrl+C, a kitten dies. No no no." #CleanCode http://codereview.stackexchange.com/a/315/41243
 
4 hours later…
04:48
Confirmed: next release, Rubberduck has a 日本語 translation! Long live @github!
 
6 hours later…
11:11
hey
I was wondering for our own Cardshifter mods, what direction do we want to go with the effects?
We can have them easy and easily readable, similar to HearthStone, it does close down the design space though
Or have them more like MtGo, which makes cards more difficult to understand, but also way more awesome
@Phrancis @others ping ^^
It would also be cool to make legendary minions, without them being really overpowered, but still cool, if that makes sense
Another thought is that when I was playign Yu-Gi-Oh I had limited resources (money, cards) and had to make the best of my deck, also wasn't checking best decks online... With HearthStone it's way different as you can realistically get any card you want
I'm interested how we should take on that problem
Say with YGO (and also Pokémon before that I guess, lol) if you would get a Legendary card it would be the only one you'd have and you could make your whole deck around it, because you were not going to buy another one for €50
I remember in YGO having a water deck solely because I had a bunch of rares that were good and it was the only meaningful thing I could make and would surprise opponents at times
 
3 hours later…
14:08
Monking
@skiwi I like the idea of legendaries and such, and we do have an option to set a per-card limit of how many of it you can have in your deck... there could also be the option of a legendary being summoned from a pretty low probability
Say probability(0.10){onEndOfTurn{summon 1 of "A legendary card" to "you" zone "Hand"}}
But, as far as having "brick & mortar TCG" where legendaries are rare, in the sense that there are few of them or they are expensive... Do you have any idea how that could be translated to an online/virtual TCG?
There would be the possibility of doing something akin to HS' single player campaign, at some point in the future, and adding rewards for completing certain tasks
We could make them quite rare (however I believe in HS they are also quite rare already)
The consideration, as usual, is the whales vs skilled players argument again
You don't want to make legendaries overpowered, but they should still be good
Players with loads of money (assuming you could buy cards) will always get loads of legendaries
What I'm mostly curious, is how we could translate "rarity" into the kind of game we're making
Maybe let legendaries be stat-wise worse than other regular cards, but give them better effects?
The way we are set up right now though, there wouldn't be anything barring a player from having one of every legendary available
Have to run a quick errand, will read up when I get back though
14:25
Maybe if we open up our design space we can also have more interesting decks than HS
I think it's something we should try to make a decision on rather sooner than later
I think perhaps you ought to open an issue about it with all the details/questions, so it's all in one place for everyone to see and pitch in ideas :)
Perhaps... not feeling much like it right now though
14:42
OK please do this weekend, if you can
Have you had a look at the Hindu cardset by chance?
I've used a lot of random/probability effects in that. I just had the thought that perhaps we could have a Legendaries cardset, where the basic cards would be relatively inoffensive (e.g., a no attack card with pretty high defense or whatever) as summoners, and set probabilities for them to summon a legendary card while in play
So you could have, say, one of each of any of the summon cards you choose, but each one would be a gamble, as you may or may not get the resulting legendary
card("Summoner") { maxInDeck 1; health 6; attack 0; noAttack(); onEndOfTurn { withProbability(0.15) { summon 1 of "A Legendary" to "you" zone "Hand" } } }
Or zone "Battlefield"
What about counters?
That after 6 turns it turns into a Legendary?
Or perhaps more awesome, minions that simply grow every turn
Perhaps you can make it conditional (only grow if a blue creature is on the field)
You could have permanent cards that upgrade cards at the end of turn (so they could upgrade twice)
Conditionals (ifs etc.) are not implemented yet, but I could see that
Might be cool to experiment with that, say (something extreme) a card can have 8 stages
Maybe legendaries could have even more stages
So if you can manage to keep them alive, they can grow
Cards that grow is something that can be done, to an extent at least (stats, but not effects)
Not effects?
14:53
card("Growing card") { health 1; attack 1; onStartOfTurn { change ATTACK, HEALTH by 1 on { thisCard() } }
I more meant literally replacing the card with another one
The lame version would be: "Robot Mk I", "Robot Mk II", etc.... until "Robot Mk X"
Ah. That could also be done, although we would have to "chain" a bunch of cards
but there could be cooler cardnames of course ;)
Right
Though if we stay with robots the "Mark" version-system can actually make sense
Not sure how attack/health would transfer though
Say you have a 4/6 minion that currently has 2/2 and it gorws to a 6/8, does it then get +2/+2 to a 4/4?
14:56
card("Robot Mk I") { attack 1; health 1; /* some minor effect */ onStartOfTurn { summon 1 of "Robot Mk II" to "you" zone "Battlefield" } on StartOfTurn { set HEALTH to 0 on { thisCard() } }
^^ This is how we could "chain" cards
Would be even cooler if we could add support in Groovy to literally upgrade a card (to not have to write so much code :D)
What do you mean by "upgrade"? (example?)
Upgrade is the thing that happens every turn
Not sure how many games already use a similar system though
I'm not so worried about how much code it takes, but rather how easily it would read on cards themselves... which gives me an idea
Interested to hear ^^
15:09
> There are possibilities to make really interesting effects right now, but in some cases the way the DSL is translated to plain English is clunky, or not very user-friendly.

Take for example a card such as this:

card("Robot Mk I") {
attack 1; health 1;
onStartOfTurn { summon 1 of "Robot Mk II" to "you" zone "Battlefield" }
oStartOfTurn { set HEALTH to 0 on { thisCard() }
/* and continue chaining until Robot Mk V etc. */
}

It would be much more
@skiwi ^^
Related idea... What about replacing thisCard() with self?
Your issue/idea seems to missing something though...
customDefinition "Upgrades from Mk I to Mk V on each new turn"
How do you define that one there? ^^
@skiwi I think thisCard() is less ambiguous. self could imply that it may be the player rather than the card
But you're inside the card() definition ;)
No, we're inside the filters ;p
15:15
It seems that thisCard() is a bit clunky
Right now we have damage 1 on { thisCard() } and damage 1 on "owner"
Hm okay, then it could be a bit confusing yes
If we made it damage 1 on { self() } it could become a bit ambiguous, when it comes to plain English card definitions. Since most players aren't going to look at the code, they would have no way to know that those brackets are there
Is it worth to think about a new mod that would include those upgradable cards?
^^ Yes, or, we could just try it in one of the existing mods. Seems Cyborg Chronicles would be a good fit for that
The plan English description would just read "Damage 1 on self"
Instead of "Damage 1 on this card" and "Damage 1 on owner"
15:20
How much are the current mods locked down?
Not much at all
Cyborg Chronicles in fact I'd like to see new cards added, as there are not that many compared to Mythos
Compare about 25-30 to around 100
Because apart from minions, we'd need to think about spells, mana, counterspells and more
Not sure what concept we could add to it
Well, CC has spells enabled, as well as Enchantments / Upgrades, but there are not very many
Plenty of room to grow ^ as you can see
Enchantments... indeed, that's a good one
Permanent cards could also make stuff interesting
Permanent, as in, they can be destroyed by other cards, but not by attacking them
15:34
BB shortly, real life calls
15:46
@skiwi This is Phrancis, on Jay's PC
16:06
i think that one thing that could set cardshifter apart from the competition is to intentionally have all of the cards unlocked at the start so that any player can build any deck that they want. if we are going to have the game always be free, that could make sense
^^ Good thought
card("Upgrado Mk I") {
    creature "Mech"
    flavor "Upgrades itself on each new turn up to Mk V."
    attack 1
    health 3
    sickness 0
    manaCost 3
    scrap 1
    onStartOfTurn { summon 1 of "Upgrado Mk II" to "you" zone "Battlefield" }
    onStartOfTurn { set HEALTH to 0 on { thisCard() }
}
// tokens for Upgrado
card("Upgrado Mk II") {
    creature "Mech"
    flavor "Upgrades itself on each new turn up to Mk V."
    token()
    attack 2
    health 4
    sickness 0
    scrap 2
    onStartOfTurn { summon 1 of "Upgrado Mk III" to "you" zone "Battlefield" }
@skiwi ^^ thoughts? (didn't add any special card effect yet, but you get the idea)
(yes, the name is horrible, this is just for trying out)
16:24
Update mechs.groovy

Added self-upgrading card Upgrado Mk I through Mk 5
[Cardshifter/Cardshifter] build for commit 7e961234 on mods: The Travis CI build failed
BUILD FAILURE!
16:41
Shit
@bazola I don't think I can agree on that, the deckbuilding and improving your deck over time part seems to be an integral concept in TCG's
If everyone is going to play the top decks then it isn't much fun
We don't per se need to rely on money as a blocker to achieving a full set though
Extreme concept: What about cards that "decay" over time?
One way would be that cards you receive are only available for a week
A totally other way would be that you can use them for 10 matches, perhaps only decrease the counter if the actual card ingame goes to the graveyard
but everyone is going to play the top decks anyway @skiwi
@Jay1148 Would that actually work ingame already?
Maybe, that's what I'm trying to find out
I do think the buffs/debuffs on the card should carry over
And if it's silenced (or equivalent), then of course you get no upgrade
16:44
there are still lots of decks i can't make in hearthstone because even though i have spent a bit of money i still don't have the legendaries and epics that would make those decks work
@bazola When you think about MtG (or any other game more complex than HS) then I have the feeling that you are tryign to create a top deck with cards you have available, not from all possible cards
Though perhaps my view is distorted as I didn't participate in any tournaments when I was playing YGO
but thats just it, isn't it? even if you have limited cards you are still going to always play the best decks that you can
Update mechs.groovy

Disabled special effects on Upgrado cards to narrow down the problem
but if we were charging money for the game obviously i wouldnt want to give all the cards away :)
I don't have a way to build locally ATM so I have to rely on Travis. Jay doesn't have an IDE or Gradle installed
16:48
@bazola That's true, but that if you have all the cards then all players would be playing the same top decks over and over again, that's the bit that bugs me
if there are not dozens of equal strength top decks then you have failed to balance the cards well anyway
3
The only way it could work out if are all cards would be perfectly balanced
i don't think you need anything close to perfection
Well, the good thing with the DSL we have is that it's really easy to balance cards on the fly
Another thing you should consider is goals of people playing the game, if all cards are available then that goal isn't there anymore
16:51
that part is true
[Cardshifter/Cardshifter] build for commit 2032116a on mods: The Travis CI build failed
BUILD FAILURE!
i don't find myself needing to win gold to want to play hearthstone though, the fun for me is in making crazy deck ideas and winning games
I'm sure at some point later in development we will get to that point where there are incentives and such, but we're not quite there yet
so maybe a leaderboard is enough motivation for many players to want to keep playing?
^ Agreed
16:52
Stuff like that should be interesting yes
Once we have a fairly attractive GUI (even if just the browser-based one) perhaps we can start thinking about actually having some user accounts, and such
@Duga Just missing some closing brackets, easy fix
Update mechs.groovy

Add missing closing brackets
ah, the wonderful world of shaders..
ERROR: 0:39: '/' does not operate on 'float' and 'int'
@Duga Be my friend please
[Cardshifter/Cardshifter] build for commit cf2656ba on mods: The Travis CI build passed
17:06
YAY
Update mechs.groovy

Enabled Upgrado effects again
This is the only one that I'm not completely sure will work... afterPlay { change SCRAP by 2 on "you" }
It should work, in theory
Heh, the theory part is always cool
[Cardshifter/Cardshifter] build for commit 2c113eb9 on mods: The Travis CI build passed
Good!
17:29
ERROR: 0:42: '>' does not operate on 'float' and 'int' thanks a lot C!
now this is a weird shader
it just makes models below the middle of the screen have zero color, and above have maximum.. not what i intended :)
this one makes it look like the buildings are lit up by some kind of explosion
@bazola That's pretty neat, I'm sure you could do something looking a bit better if the contrast between light and shade wasn't so stark
also if i had some kind of clue what i was doing, rather than just trying random crap and seeing what happens :)
@bazola Unintended?
yeah lol
Grumble grumble...
17:44
you could use an effect like that to simulate shutting and opening your eyes though
lol
The sound is a bit loud at the end ;)
this one is almost useful, makes things darker the closer they are to the ground
@Jay1148 make sure to set the environment variable for java?
@bazola Java was not installed at all. I think it will work now
There we go
thats a new one
[2015-08-01 13:58:16,343]  INFO Log4jAdapter [    Conn-0] (     Log4jAdapter.jav
a: 16) - Send to Jay1148: ServerErrorMessage [message=java.lang.RuntimeException
: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed
:
C:\Cardshifter\cardshifter-0.6.1-SNAPSHOT-20150729-0036\mods\Cyborg-Chronicles\m
echs.groovy: 1: unexpected char: 0xBB @ line 1, column 2.
   card('Spareparts') {
    ^

1 error
]
17:59
Seems like it inserted some random character when editing
card('Spareparts') {
    creature 'Mech'
    flavor 'Cobbled together from whatever was lying around at the time.'
    attack 0
    health 1
    manaCost 0
    scrap 3
    noAttack()
    sickness 0 // rush
}
Hm
There was an extra line break, which I removed in the local file, but still got an error. WTF
Time for some troubleshooting
Holy lol
Doesn't seem like a good card to run though vs Fireball
Doesn't Java convert regular code characters to random weird characters when running it (e.g., changing it to Bytecode?)
That card may really only exist to nerf Mages in Arena
@Jay1148 Nope, check the character set the file is saved on and what OS you are on
OK. I'll restore that file to the file from the last snapshot and see if the error still happens, should help narrow it down
Guess I'll try adding just the new code now and see if it bogs down
And, error happened again
18:09
Maybe use another editor, like Notepad++
I used regular notepad
I'm thinking it might be a syntax error in the DSL... maybe. Kind of curious why it would compile fine but get an error at runtime
I'm pretty sure the error is in the file itself
It seems to get the error at runtime because only then you're trying to load the mod itself
Ahhh found a clue
I did a copy+paste of the working snapshot text into the one I'm trying to load (instead of copying the file itself), and it broke the same way
So... think an error related to this PC rather than the code itself?
I think so, yes
Not exactly sure what's causing it though
Most likely something is being converted when you actually save the file
18:29
A-hah!
^^ Hex comparison of the orig file vs. copy+paste version
So it is really there... but why
Actually, it's not while copy+pasting, it's when saving the file in notepad
I'm asking around next door
19:00
It's working, mostly. I did run into some kind of error after a few turns (I had two of Upgrado I, played one first turn, 1 next turn (so I had a II and a I), after a few turns, a new II magically appeared, or rather one of the originals probably failed to destroy itself, perhaps a conflict between the two cards
Send to Jay1148: CardInfo: 84 in zone 50 - {SCRAP=4, TAUNT=1, flavor=U
pgrades itself on each new turn up to Mk V., MAX_HEALTH=6, SICKNESS=0, effect=Gi
ve creatures of type Mech owned by you on Battlefield 1 ATTACK and HEALTH

Summon 1 Upgrado Mk V to your Battlefield
 at start of your turn
Set HEALTH to 0 on this card

 at start of your turn, name=Upgrado Mk IV, ATTACK=4, creatureType=Mech, HEALTH=
6, ATTACK_AVAILABLE=1}
[2015-08-01 14:55:10,203] ERROR   AISystem [ai-thread-1] (         AISystem.java
I think entity #43 is the AI, not sure why it would fail to end turn at that particular time (I don't even think it was its turn)
[2015-08-01 14:55:07,931]  INFO   AISystem [    Conn-0] (         AISystem.java:
 46) - AI entities [Entity #43]
Ah, looks like the bug happened while summoning Mk IV. Runtime error, the preceding Mk III did not get destroyed
Found it, I think.
// Mk III HEALTH CONFLICT MUST HAPPEN BETWEEN...
card("Upgrado Mk III") {
    creature "Mech"
    flavor "Upgrades itself on each new turn up to Mk V."
    token()
    attack 3
    health 5
    sickness 0
    scrap 3
    afterPlay { change SCRAP by 2 on "you" }
    onStartOfTurn { summon 1 of "Upgrado Mk IV" to "you" zone "Battlefield" }
    // ... THIS EFFECT:
    onStartOfTurn { set HEALTH to 0 on { thisCard() } }
}
card("Upgrado Mk IV") {
    creature "Mech"
    flavor "Upgrades itself on each new turn up to Mk V."
@skiwi ^^ what do you think? (see my code comments)
19:30
I'm not thinking much right now
Yep, that was the issue.
19:54
Monking.
Update mechs.groovy

Disabled effects on Upgrado Mk IV & Mk V that were causing runtime exceptions. Need further troubleshooting, looks like a conflict on the first card's HEALTH resource when the second card is being summon due to whilePresent{} effects.
Hey @SirPython (this is Phrancis)
@Jay1148 Hello "Phrancis"!
What happened to Phrancis?
Been playing around with a game concept of "self-upgrading" cards, it works and is pretty cool, see this: github.com/Cardshifter/Cardshifter/blob/mods/extra-resources/…
Phrancis' wife has kidnapped his MacBook while he was at a friend's house (she needed it for a video presentation)
[Cardshifter/Cardshifter] build for commit 285daf5e on mods: The Travis CI build passed
20:01
It's not really pretty in code form, but in game it is almost transparent (save for some potentially conflicting effects)
And typing chat on phone sucks
 
4 hours later…
23:45
Mat's Mug vs. Simon André Forsberg: 313 diff. Year: +1203. Quarter: -301. Month: -23. Week: +124. Day: -23.
200_success vs. janos: 15795 diff. Year: -3805. Quarter: -884. Month: -70. Week: -581. Day: -70.
200_success vs. rolfl: 3001 diff. Year: +2255. Quarter: +2589. Month: +10. Week: +314. Day: +10.
Loki Astari vs. Simon André Forsberg: 2885 diff. Year: -2891. Quarter: -1295. Month: +5. Week: -30. Day: +5.

« first day (364 days earlier)      last day (3496 days later) »