« first day (9 days earlier)      last day (204 days later) » 
00:00 - 19:0019:00 - 00:00

00:00
well a console is typically pretty small
Granted, text games aren't quite as demanding as GTA 5, but it's close
if you only updated the letters when they need to change, I'm sure it would perform fast enough
It's definitely a good idea, but something like that shouldn't be done until 1.0.0
RELOAD!
00:02
[Cardshifter/Cardshifter] 2 commits. 1 opened issue. 1 issue comment.
anyway, don't mean to butt in, just a suggestion :)
[retailcoder/Rubberduck] 13 commits. 1 opened issue. 4 closed issues. 8 issue comments.
[ShearOfDoom/Cactus] 38 commits. 4 opened issues. 5 closed issues. 21 issue comments.
[Vannevelj/VSDiagnostics] 3 commits. 2 opened issues. 1 closed issue. 1 issue comment.
Wow guys, our project is more active than RubberDuck...
i believe that originally dwarf fortress rendered the game as ascii characters, but converted to using OpenGL to gain performance
@bazola we're more like Zork
00:21
@Ethan how should we handle updating the docs?
Go through all previous commits?
Have them do something when they do a PR?
@AnnonomusPenguin Write documentation for each version. Trying to update it after each commit will get too hard to manage.
@EthanBierlein same with changelog?
Yep
@AnnonomusPenguin / @QPaysTaxes / @Quill I am now beginning the syntax refactoring process. Please do not push any commits. All files will be changed in this process, so we don't want conflicts. Thank you.
[ShearOfDoom/Cactus] Annonomus-Penguin pushed commit e284731f to gh-pages: Removed tutorials; added more docs content; moved contrib to its own section
[ShearOfDoom/Cactus] Annonomus-Penguin pushed commit 142f62c1 to gh-pages: Broken link
I just removed the "Tutorials" section as we can fit those in the docs
00:41
k
chat's gonna be down for a while tonight unfortunately.
in The 2nd Monitor, 1 min ago, by Stack Exchange
Data Explorer is back online, we're working on moving the chat data now - outage will be a bit later.
:(
@Ethan how far are you from finishing?
@EthanBierlein If I think of anything important, I'll post on Reddit. Okay?
(During the outage)
@AnnonomusPenguin I'm getting there. It's mostly just an operation of highlight, then CTRL-F, then replace.
@EthanBierlein time estimate?
I'm wondering how this will work with the outage
01:00
@AnnonomusPenguin Maybe another 30-45 minutes. There will be some error fixing if I did anything wrong though.
Which is why it might take 30-45 minutes.
Is the code a lot harder to read?
Not really.
Good!
Wait... do the imports specified in the wiki work, even when the path is only specified in the PYTHONPATH?
You have from CactusSource.XXX import YYY: will that work when I add it to PYTHONPATH and go to a completely random dir?
If you add master/CactusSource to your PYTHONPATH all you have to do is import from XXX import YYY.
@EthanBierlein So that needs to be changed in the docs, then?
01:10
Yeah, I guess.
I'm not completely sure on that though.
01:28
@Ethan why do you have trailing commas in the doc in a list?
Like:
MAIN_GAME = MainGame(
"Test Game",
"Welcome to the simple test game.",
"> ",
"Uh-oh! Wrong input!",
GAME_MAP,
True,
)
See that comma after True. Is that required?
[ShearOfDoom/Cactus] Annonomus-Penguin pushed commit 911976ab to gh-pages: Updated Docs
It's not required. Just an odd habit I have. I'm actually trying to break it though.
I see
So, don't do that?
[ShearOfDoom/Cactus] ShearOfDoom pushed commit 0ebb42c5 to master: Refactored syntax and added a new test file.
I won't
Just commited syntax refactoring, please report any issues. You can now resume normal commiting on master.
@AnnonomusPenguin ^^
01:44
Ok
Just finished everything I wanted to do with the docs
[ShearOfDoom/Cactus] Annonomus-Penguin pushed commit cfc56970 to gh-pages: More content; more updates
@AnnonomusPenguin Thanks for going through my writing and making it sounds more grammatically correct. :)
I guess I can write docs, and then you can proof-read them. xD
01:47
@EthanBierlein I'll just stick to writing docs
So, finalized new version procedure: shearofdoom.github.io/Cactus/Contrib/NewVersionProcedure
The order's important. It ensures that we don't start giving out a release before we have the docs finished
It's acting weird with formatting and nested lists... let me investigate
Fixed it
Another push to make it readable :P
[ShearOfDoom/Cactus] Annonomus-Penguin pushed commit b243caa6 to gh-pages: Ahh... indent by four spaces for nested lists
Yay!
Docs finished (for now)!
Rom nom nom.
01:52
Yummy docs?
Don't eat the docs!
I LOVE THE DELICIOUS DOCS ROM NOM CHOMP GNAW
ALL MY HARD WORK :'(
I love how all the starred comments are in bold.
Not anymore.
Wow. When I get back to my main development laptop there are going to be like 40 commits to sync with the original copy.
Hey, @AnnonomusPenguin What do you think about bazola's idea of actually using graphics for the engine rather than just text?
@AnnonomusPenguin Also, have you worked out this issue? github.com/ShearOfDoom/Cactus/issues/38
02:14
ITS TOO QUIET
02:33
HELLO IS ANYONE THERE
hey
02:57
@EthanBierlein I didn't quite get if he was saying to add graphics (photos) or to just render the text using a graphics library to allow us to use colors for our text
@EthanBierlein nope :P
I was going to do that earlier, but you were going to do the syntax soon
I'm going to go through all the code and find any place where we should lower the text
Alrighty
Back to this one:
1 min ago, by Annonomus Penguin
@EthanBierlein I didn't quite get if he was saying to add graphics (photos) or to just render the text using a graphics library to allow us to use colors for our text
I think he was talking about using OpenGL to render fonts in a graphics window, with different colors and such.
03:00
I think it's cool, but it'd require a lot of work to fully emulate a console window
Yeah. Interesting idea. Maybe once we actually have the engine mechanics worked out and implemented we could think about doing stuff like that.
573
A: Print in terminal with colors using Python?

joeldThis somewhat depends on what platform you are on. The most common way to do this is by printing ANSI escape sequences. For a simple example, here's some python code from the blender build scripts: class bcolors: HEADER = '\033[95m' OKBLUE = '\033[94m' OKGREEN = '\033[92m' WARNIN...

We can already to colors in the terminal
It just requires a special setting on Windows boxes
Which, is, the problem.
@AnnonomusPenguin Hey, there's the colorama module.
@EthanBierlein I just found that like two minutes ago :P
We can use that
One second
03:15
Lol
We can just have it as a built-in with a dictionary of stored colors or something.
brb in a sec or two
@EthanBierlein it already has that
All we need to do is call a function, although I don't know if that needs to be called in every document
@AnnonomusPenguin On it.
@EthanBierlein researching it? Or what?
What exactly are you "on"
Hopefully not a cactus
Oh, sorry. I forgot that you don't see @Duga's notifications.
I was talking about the issue that you just opened.
03:19
Oh no, the chatz are about to go ↓↓↓↓↓↓↓↓↓↓
03:30
Hello
It's back.
The wiki's still there
> MEMEbers
@Ethan see edited post body in newest issue
03:53
> Hmm.... what would those error classes do?
> Image not found
> We'd raise those errors.
> https://pypi.python.org/pypi/colorama

To make everything streamlined for the user, we should also define all of the colors ourself... somehow. Whoever can find a way to do a syntax like `Backgroud_Color.Red` please take this issue.

I don't want the user to have to deal with colorama itself because it's not as streamlined. I want *everything* the user needs to be in Cactus itself
Image not found, or "image not found"
> Oh I see.

Do you also want to do logging and/or user input?

The use for these functions would be for validation purposes mostly
> Suggestion:

1. We throw an exception that could be caught by the gamemaker
2. We create a log file somewhere with a timestamp, error message, and the list of previous command used (to replicate error)
3. We alert the user that the game reached an error **by the developer** and what they should give the dev when reporting this

Optional: we require an email to show to the user when an error occurs.

I don't like alerting the user for a catchable exception (it seems pointless to have an
> Add support for https://github.com/pwaller/pyfiglet

Like I said earlier, everything that the user needs for a good game should be cactus itself.
@Duga @Ethan this issue was done, right?
04:06
> Okay. I've already got some stuff here in issues that I'm working on, so I'm assuming you can take this.
@AnnonomusPenguin Yes
> I just thought of this right now and thought that this would be a good thing to add sometime in the future.

I'm trying to add stuff for people to do if they want to join the project (so we don't shrug our shoulders and waste help)
> Yup. I know. I think it's a good idea, I'll just let you implement it.
There [probably] will be a push for the "lower" issue by 10:30 AM CST. Maybe not.
That's my goal.
@Ethan should we add a prefix to our stuff?
Like CacMainGame?
Hmm. Sure. But just make it entirely Cactus, like CactusMapPosition.
Ok. I just think that, if we keep adding more generic stuff, like Color, it might be too confusing
04:11
Yeah.
Also: why did you name the variable class_data. Why not data?
Because class_data is more clear. data is a little unclear.
> `MainGame` → `CactusGame`
`MapPosition` → `CactusPosition`
`GameMap` → `CactusMap`

Is this okay @ShearOfDoom?
Fair enough. Just more typing :P
04:16
La programación es divertido. Actualmente, estoy trabajando en un proyecto llamado Cactus. Cactus es un motor de juego utilizado para diseñar juegos de aventuras basadas en texto, como zork.
@EthanBierlein wrong language
Please edit language settings and reboot.
Lol
Magic of crappy google translate.
> We need to validate `class_data` in all three classes:

- During `__init__`
- Every time it's changed

We need to make sure:

- Everything that's required is there
- Nothing extra is there
- All of the items are of the correct types (key and value)

The first one is easy to do, but how do we do the second one, especially when data could change mid-function? Too bad we couldn't "watch" the dictionary for any changes.

This is the reason why I wanted the `__init__` argument to be a
> Later :D
> Oh, and when renaming classes, can you rename the class instances in test.py?
> Will do
> I can do this, unless you want to.
> Test on a string, as they cannot be mutated! Test on an int, also, to be sure.

Worry: Python's pass-by-object will not allow external code to edit the dictionary. I want to be sure
> How are you going to do it every time it's changed?
> Well, I'm assuming there would be an add_position function for a CactusMap, so, before it's added, validate it.
Aaaarg. Stahp @Duga
> Note to self: do not lower other parts of an event's string (besides the command name(
> But that doesn't solve the issue.

I could externally edit the dictionary and it would be unvalidated
04:25
@EthanBierlein ignore button poking you
> Prefix class_data with an underscore. That way only add_position can modify it.
04:48
> Ok, but we still can't edit any of the other items.

So we need to prefix it with an underscore no matter what.

Do we want specific stuff like set name and get name? Or a generic set_attribute("key", value) function?
> A generic set_attribute function wouldn't be the greatest because certain values have to have certain types, and it's not appending or anything, it's completely resetting the value.
> We could have it do set(append(stuff, get())) but that's not the best.
> We also need to call evaluate choices for validation when the map changes
> Note to whoever fixes this: make sure to change the ValueError in _check_possible_choices or whatever that method is called
@AnnonomusPenguin Well, I'll look into this later. I'm going to bed.
 
4 hours later…
08:44
@EthanBierlein umm.... how do you intend that to work? Where would they type that message? Why not just go to the chat room, type their message, then leave the chat room?
 
4 hours later…
13:10
 
1 hour later…
14:31
> @Ethan do we want leading underscores for everything that the user can use safely or only what is relevant? Like, do we want a leading underscore on find_start() in GameMap?
15:21
> 1. An idea: we could validate this every time `_handle_event()` is called.
2. I still don't think that we should be storing this stuff internally in a dictionary (from readability and validation purposes)... why do you what to do this in the first place? What advantage does this offer?
> Make sure to add these global commands to the help command, at the very beginning (the same time as it says the notes about about and help), and add a game.command.XXX to the event listener
15:52
> I've noticed that most of the time, they are like this:


```python
self.map_start = self.class_data["map"].find_start()
self.map_position = self.map_start
self.last_map_position = None
# Lined up --^
```

But, sometimes they don't. When do we want them lined up?
16:11
> One place we need an exception is in the find function in CactusName; it returns -1 if not found, but this really should throw an exception
[ShearOfDoom/Cactus] Annonomus-Penguin pushed commit f0967c89 to master: Closes ShearOfDoom/Cactus#30
Merge pull request #48 from Annonomus-Penguin/6-8-15-lower-everything

Closes ShearOfDoom/Cactus#30
Hello
You have a lot of GitHub issue replies to... reply to
Oh, okay. Can you give me a list?
@EthanBierlein just go to your GitHub inbox
> Wait, where don't they? Relevant line numbers and such?
> Just in the middle of some functions. Like this:

while True:
cactus_position_data = self.class_data["map"].class_data["data"][self.cactus_position]
choices = cactus_position_data.class_data["choices"]
> Hmm, okay. Give me a little bit to fix this. Gotta boot up my laptop.
> I'm just asking what our policy is for this.
> Line up the = signs.
> Always?

What if it's like this?:

```python
something = "hi"
doSomething()
another = "haha"
```
> Then don't.
@Ethan do you want me to keep PR'ing or do you want me to start working directly on the master?
16:57
@AnnonomusPenguin You can start directly commiting. Just make an announcement in here when you're going to start doing some work.
@EthanBierlein Major work or any work?
> This would allow the user, once they set the `PYTHONPATH`, to do this:

```python
import cactus.game
import cactus.map
import cactus.position

my_game = cactus.Game(data)
```

Then, we could also do stuff like this later:

```python
import cactus.color

print(cactus.color.red + "This is red!")
```
> Can you name it to Cactus with a capital C? Thanks.
> Also, don't use map as a file name. Can you just use game_map? I don't want any possibility of name conflicts.
@AnnonomusPenguin any work really.
> Cactus has to be lowercase according to PEP 8.

This is convention:

```python
import sys
```
> And position to map_position.
> Both of those won't have conflicts because the user will use them as cactus.Map() and cactus.Position()
@EthanBierlein why?
Why do you need to know that I'm renaming a variable?
17:02
> No, I think they'd have to do cactus.position.Position(), not just cactus.Position().
> Okay, how about this.

* Rename `CactusSource` to `Cactus`, or `cactus`.
* Keep the same name for the file `game_map`.
* Keep the same name for the file `map_position`.
@AnnonomusPenguin Did you see my suggestion?
I'm replying rn
> You're right about `cactus.position.Position()`. I just tested it.

Okay:

- Rename to `cactus`
- I don't want `cactus.cactus_position.CactusPosition()`
- I don't want `cactus.cactus_map.CactusMap()`
> So, in short, we should do this.

* Rename `CactusSource` to `cactus`.
* Rename the file `cactus_position` to `position`.
* Rename the file `cactus_map` to `game_map`.
* Rename the file `cactus_game` to `game`.
Hit enter too early there :P
Let me finish that
17:18
> Wait, cactus.flowchart.Flowchart()? When was that implemented?
@Ethan ^^^
I deleted that message so the conversation isn't screwed up
> How about this?:

- Rename to `cactus` (lower C)
- Rename to `cactus.flowchart.Flowchart()` (I don't want to have to do `cactus_map`, so I think we should start calling it a flowchart, as that's what it really is)
- Rename to `cactus.position.Position()`
- Rename to `cactus.game.Game()`
- Set the `__init__.py` file to this:

```python
from game import Game
from flowchart import Flowchart
from position import Position
```

Now the user could do this:
@EthanBierlein now check it again
@Ethan issues you need to reply on: 40, 41, 45, 50.
> Alrighty. Go ahead! :)
> OK, do you have any local changes or can I wreck edit the repo right now? This'll take ~10-15 minutes to make sure everything's right
> Nope. No local changes rn.
17:31
Now beginning github.com/ShearOfDoom/Cactus/issues/50#issuecomment-110440401. Do not make any local changes unless you want it to be fed to Git as lunch.
brb, gonna go get a sandwich.
17:48
Getting close here
It works! Just let me tidy up one more thing here...
OK, we're all good
Done with #50. Resume pulling/forking/committing
Merge pull request #51 from Annonomus-Penguin/6-9-15-break-all-the-things

Closes ShearOfDoom/Cactus#50; Closes ShearOfDoom/Cactus#47
@Ethan I fixed #47 for you. I didn't realize it was already assigned and the edits screwed up the equals signs, anyway, so I had to fix them then
K, thx
Is the commit still broken, or is it okay to update my local copy?
Also, did you change the test file as well?
18:00
3 mins ago, by Annonomus Penguin
Done with #50. Resume pulling/forking/committing
@EthanBierlein y
Do you want me to take over the colorama issue? The only other "major" issue is with ASCII large text. These should be laid out similarly, so it might just be easier for me to do it. What do you think?
If you want to keep it, feel free to do so.
I can do colorama.
[ShearOfDoom/Cactus] ShearOfDoom pushed commit 46ca024f to master: Modified TEST_test1.py slightly.
Announcement: Before making any changes to your local copy, make sure you update it in case any other commits have been made.
@AnnonomusPenguin Are you doing any work on the code rn? I think I'm going to start implementation of colorama.
18:27
@Ethan No but I don't think that is a breaking change.
Are you sure you want to do it? You have a lot more important issues open now
@AnnonomusPenguin Well which one would you recommend I work on?
Exceptions, validating class data, etc.
Those are the biggest two methinks
Okay, I'm going to work on validating class data, then colorama. I still have to think of a good way to handle exceptions.
Ok. Don't forget you also have global commands
Now beginning github.com/ShearOfDoom/Cactus/issues/45. Do not make any local changes. Thank you for your cooperation. Have a nice cheese day.
18:52
@EthanBierlein uhh, wut?
Why no local change?
So that merge conflicts don't occur/
What the?
Git is smart
Are you redoing the entire codebase or what?
No, but I am editing content in every file.
Except for __init__
And the info.
Why are you editing every file?
I'm adding class data validation.
18:56
I know that, but shouldn't it just be one function that's called in __init__ and _handle_event()?
Here, let me commit it and I'll let you check it out.
Are you doing the add_position() type thing?
[ShearOfDoom/Cactus] ShearOfDoom pushed commit 4b95dfb4 to master: Added class data validation.
No, I'm not adding an add_position or an function to directly change data like that yet.
18:59
Also, changing class data should be a separate issue.
00:00 - 19:0019:00 - 00:00

« first day (9 days earlier)      last day (204 days later) »