#okay *actual* last note. i'm totally hanging this in my room when its done
Explore tagged Tumblr posts
spotlightstudios · 9 days ago
Text
My professor: Okay, you guys should take about 4-6 weeks on this project ideally. Take your time, don't rush things, I want to see work that you put effort into.
Me(4 hours later): Well. You see.
Tumblr media
(I'm nowhere near done. But. Unfortunately I have some sort of wiring done wrong in my brain. So the instruction to 'block out' my plan requires me to basically finish it so I know wtf I was doing last time and won't give up after I leave it alone for several (2) days. Yes this is going to be Apollo. Yes I did keep smacking his pecs and internally giggling.)
11 notes · View notes
beautifulterriblequeen · 3 years ago
Text
B2:S - Chapter 5
Much of this series will be about the differences and additions in the novel version, and how they contribute to my understanding of story canon. But there will be character appreciation, the odd theory and headcanon, and suchlike as well.
Here be lots of Viren deets, Best Boy Soren deets, some writing/continuity stuff, worldbuilding appreciation and half of a theory, Detective Rayla, Moon Temple geeking, Claudium and dark magic, and more!
Spoilers for Book Two: Sky below.
(I know for darn sure that I wrote up a post for chapter 4, but I can't find it anywhere so I guess Tumblr ate it and I'll have to redo it at some point, but today is not that day)
Viren, my evil dude, my bad guy, coming in clutch with the worldbuilding and backstory again! If you want to know decades of information, you gotta talk to Viren. Or read his scenes, at least. Here, he seems to not sleep much when he has a big problem to analyze his way through. Solutions trump pretty much everything else in this guy's life, and he's had a really hard week with a lot of new and complicated problems. Of course he's getting sleep-deprived trying to find his way through them all.
Harrow put so much trust in Viren when he made him High Mage! He just threw himself extra hard at that Lady Justice blindfold, didn't he? Didn't really want to see what Viren was doing in his magic study, so he left Viren to his devices. And Viren has a lot of devices.
Also, this is fascinating: Viren made the secret passage to his "less official study" in Katolis Castle! And he was inspired to do so by the way his own mentor kept the Puzzle House. What else could a Puzzle House be, except a place with secret passages? Yay! secret headcanon that "the Puzzle House" is just "Katolis Castle" from Kid Viren's perspective tho
So either Viren built all of those passageways, or at least the ones to his dungeon. Which means he has to have, or know where to get, a stash of those glowing blue Moonshadow crystals. Hmmm.
I can't wait to learn more about Kpp'Ar and young Viren, btw. From this description of Viren and all his literal secret ways, it feels like another parallel between Viren and Runaan, with the whole "secretive paths, members only, insider knowledge" type stuff. Only the really cool members of this cult club get to know the secrets, and guess what, kid, you're cool now but you can never tell anyone, okay? Our secret.
Yeahhh, that'll never backfire in any way for either of them.
Kpp'Ar calling puzzles and secrets "man-made magic," though. Yes sir, knowledge is indeed power.
This chapter mentions Runaan by name, from Viren's perspective. Generally that would imply that Viren knows his name, even though assassins do not share their names, and Runaan didn't seem to give his to Viren in the first book. However, there was a scene in book one where the last paragraph switched perspective from Viren to Runaan - a technique that's very common in visual media like movies and shows and gives you that "ohoho they left the room and didn't notice this, but you do!" vibe. Using Runaan's name there in book one, where Viren couldn't see it but readers could, helps them keep track of the assassin's story arc while maintaining Viren's racism.
So in book two, in which Runaan has no onscreen scenes (alas), using his name in a scene that calls back to the events in book one helps us remember what happened in that dungeon cell. It would be a bit muddier to recall the specifics if Viren kept thinking about Runaan as "Elf." So I'm cool with the perspective nudge because it serves a narrative purpose: clarity. But I'm also enjoying the angst of considering that, somehow, Viren learned Runaan's name either during or after the coining spell. Mwa ha ha haaa. (Obligatory "Keep my pretty name outta your mouth" goes here)
Okay, back to Viren's scheming! He took the mirror because it was human-sized in a dragon lair. He knew it didn't really fit there, and that made it interesting, so he stole it. But he realized it was really powerful when Runaan wouldn't tell him squat about it - the assassin's instinct to protect Xadian secrets from human hands meant that Viren was holding a very powerful Xadian secret. And that just made him want it all the more. Ah, Runaan, if only your relationship with lying was, like, the exact opposite of what it is. Nyx could've spun Viren a believable tale in 2 minutes flat.
Also of interest: Viren considers his cursed coins to be a final fate. He expects Runaan to remain in his coin forever. With the Chekhov's coins still extant in the storyline, we can assume that they'll come up again eventually, but Viren has no current plans to do anything with his elf money except carry it around.
It's worth noting that Viren admits that he got impatient when he trapped Runaan in the coin. Runaan's first fate in Katolis was supposed to be death at Soren's hands, but Claudia "saved" him from that. His next fate was to become spell components, but Viren's frustration with his stubbornness "saved" him from that fate, too. So now he's in a coin, where no one can chop him up at all. Yay? No, boo!
We get one last line about Runaan before Viren shifts gears: he makes a point of noting for us that Runaan's shackles are still locked shut. However much of Runaan made it into that coin - body, soul, hair care products - he was magicked there, pulled right out of his restraints.
The creepy black liquid that Viren pours right into his eyes is the last of a powerful potion he got from Kpp'Ar, and its recipe is ancient! Humans used it back in the age of Elarion to see through the illusions of the world. And we get a delightfully creepy bit of description about the preparation of this serum, which makes it abundantly clear that it's a Moon magic-based concoction, harvested from eyeless vipers on a moonless night, with the threat of irrevocable madness ("madness" by whose definition, though) if it's done wrong-
Hang on. Hold up. This is a Plato's Cave reference. OH MY GOD.
No no I'm fine, this is brilliant. Sorry, sorry, I couldn't figure why there was so much description for a potion prep that Viren didn't even have to perform himself. But now I get it. I see the light. HA. I should make a separate post for this, it's amazing.
Anyway, for reference, the humans who used this serum were called the Oracles of Ophidia, and Ophidia is a taxonomy group that includes all modern snakes. Can you say "creepy ancient snake rites"? I can! Woo!
Viren activates the serum with a spell, but apparently he's never done it before. He's not sure if it's supposed to be hot and bubbly, and he worries that it's been tainted by moonlight.
Oh, I do hope so.
The magic potion hurts, a lot. Viren will do just about anything, to himself or anyone, to do what he believes is necessary. He just risked madness and blindness to find out what this mirror does! Viren. Can you just. Take a nap or something. Have a Snickers.
This chapter gives us a fun clue that I don't remember from the show: when Viren's vision clears and he can see, his reflection has white pupils and the room reflected in the mirror has inverted colors. You know where else has inverted colors?
Tumblr media
You know who else got white pupils for a hot second?
Tumblr media
Okay, now it makes sense! Viren and Lujanne were both seeing into the realm beyond life and death. Him with his moon magic potion, and her with her moon powers on a full moon night at the Moon Nexus. Which is Very Interesting! Is it a direct hint about Aaravos's location, or just a separate cool detail? Orrr, does it look like a direct hint because Aaravos is actually trapped in the world beyond life and death, but it's actually separate and we'll see something about white pupils again later on?
Viren really does have self-esteem issues, we all picked up on it with his rant at his reflection. He throws a fit when he catches himself wondering if he's actually worthless. In the book version of his tantrum, he shoves the mirror and hurls a candelabra instead of flipping a table. He didn't need to shove the mirror to set the fire, but it's in here. Foreshadowing that perhaps, if push comes to shove, Viren will choose himself over Aaravos? Giving Aaravos time to peek through and see that the coast is clear?
Soren, my boyyyyy. He has a rough night at the Moon Nexus because two sides of him are fighting with each other. He struggles to understand Callum's friendship with Rayla, and he also fantasizes about chopping off Rayla's head. One of these is a pretty ordinary thing to do. The other is Soren's internalization of what he needs to do to gain his father's approval. If he brought his dad a chopped off elf head every week, he'd probably feel a lot more confident because Viren would praise him a lot more.
Okay, okay, omg, is it just me, or does the "Moonshadow Madness" story, as it's told in the book, seem like Soren just doesn't know what a monsterfucker is? He thinks an elf bite puts humans under a spell. But vampires are sexy, and some people want them to do more to them than just bite them. A passionate kiss under the moonlight could look very bitey, especially if one of the participants has horns and you're already culturally trained to hate them. No yeah, I'm already headcanoning an actual human-elf kiss that got misunderstood by an observer long ago.
it's Lujanne isn't it, we all know, because what is a love spell but a sweet soft illusion, I mean how else does she get supplies for her Caldera, I ask you, and also Corvus was totally sent to investigate once and he told Soren at camp what he saw
And then back to magefam angst: Soren pretending that his sister's nose-tapping is stupid, even though he actually thinks it's cool, just because their dad thinks it's stupid. Viren, istg. Let your kids like harmless things. It's so cute that Soren taps his nose back at her, though! Like they have their own sibling code. I hope we get to see the nose tap again, especially now that they've chosen different sides. It could mean so much, that they're not too far apart yet.
Rayla knows what buttery pancakes smell like. I love this. Do Moonshadow elves have butter and pancakes, does Rayla eat a stack of eight giant pancakes in the morning? Orrrr it is just illusion food? I don't care, let Rayla have pancakes! Everyone loves pancakes. Pancakes will save the world. this message brought to you by the fact that I can't eat pancakes rn, send help
I love that Rayla is both sus of the pancakes and hungry, and that combines into a very motivated "I will get to the bottom of this" attitude. She kind of goes into Poirot Mode when she inserts herself into Soren and Ellis's conversation about Ava, explaining about the wolf's illusion leg and segueing into her claim that the pancakes taste sus. Claudia confirms she used dark magic, and Rayla is furious. It's different than the show's version in that it puts Rayla in detective mode, as the only Moonshadow elf in the scene, and boy does she take that role seriously. Also, she doesn't actually swallow the dark magic pancake bite. It ends up on the ground just like Lujanne's grubs from that earlier meal. These poor kids are so nutrient-starved. You guys gotta eat!!
Rayla's determination and prejudices and the fact that she super knows Harrow is dead all dovetail to make her try repeatedly to persuade Callum that Soren and Claudia are Not To Be Trusted. It's nice that the book keeps taking the time to point out that Rayla is Well Intentioned But Flawed, just like Callum and pretty much every other character in the show. No one is Right All The Time, no one Knows More Than Everyone Else.
Callum loving the sound of Claudia's unique voice is so wholesome. When you like someone, it only makes sense that you like all the things about them that they can't change - like the sound of Claudia's voice. Her choices with dark magic, not so much!
Claudia seems to have the same concerns Soren does about Callum's relationship with Rayla, but she comes out and asks him. The inherent possession implied in "your elf" is interesting, though. Elves are not people to Claudia. They're enemies who can be disassembled for the magic inside them. So maybe more like robots than living beings, if she knew what a robot was. Maybe she heard Soren's "Moonshadow Madness" story and realized he totally missed the kissing implications - but she didn't, and now she's genuinely worried that Rayla could kiss Callum under a full moon and enchant him to do her will. Good thing it's only a half moon, then!
Okay, Callum nervously making a puppet hand and then not knowing what to do with his hands and freaking out about itching and moving and pointy elbows is such a ND mood. The sudden stress of knowing that someone else is noticing your existence and maybe you're Not Existing Right, amirite? Ugh, poor Callum.
The Moon Temple! Omg it's so pretty in the description! Made to be beautiful and useful, full of knowledge but also allowing light and life inside (butterflies and vines). Lujanne, when can I move in, please? Also, it's all the more angsty because Lujanne is the only one who gets to see this beautiful place, but it has lots of chairs and shelves and tables, and it was meant to be used by lots of people. :(((
Claudia knows some of the runes on the walls. She isn't in a hurry to copy the rest of them down or anything, either. Her spellwriting is very precise, and she's a skilled mage. Her father would have made sure she was aware of the dangers of drawing sloppy runes, as much as he made her aware of the dangers of doing dark magic wrong. And the whole point of dark magic is that it's easier to learn than primal magic. Claudia supports her dad and their shared knowledge and life path. She's not gonna go nuts over an elf library she can't translate.
Side note: Between Claudia knowing some Moon runes and Viren building a secret passageway and a dungeon and lighting it with the same blue crystals that Lujanne and Ethari use for light--and Claudia exclaiming that she loves ruins--I wonder once more if there are really Moonshadow ruins somewhere in Katolis, which Viren has found and looted. Father-daughter relic hunting trip, maybe while Soren is away at camp? Omgsh that would be so wild!
Callum out here having a Viren moment with his "I feel powerless unless I've got magic that lets me help" vibes. God. I love their complicated mirroring. One of the hard differences between them is that Callum is very sure dark magic is bad because you have to kill stuff and take its power to cast spells, and he doesn't want to be a person who kills and takes like that. The line he walks to be nice to Claudia on their tour of the Cursed Caldera because he likes her, while telling her that he doesn't want to do her magic, like, ever, is so fine that it might as well be a shifting shadow on the ground. It's a very fitting conversation to be having during the half moon, with its tricks and little white lies.
Callum being out of the castle and his comfort zone, having to deal with the fact that the Claudia he loves is not quite the Claudia who's chasing him down across the kingdom, but of the two of them, he's the only one with a problem with this.
They say that if you really want to get to know someone, you should spend time with them outside their comfort zone - in heavy traffic, with a small baby, taking care of a new pet, trying a new skill, following unfamiliar directions, etc. While the castle is familiar territory for them both, Callum's never really found his comfort zone yet, while Claudia is pretty comfortable with her growing skill set. The creepy part starts to kick in when Callum begins to realize that Claudia's comfort zone encompasses a whole bunch of stuff that seems like it should make her uncomfortable... but it doesn't. But that'll be for a future chapter!
26 notes · View notes
unoriginaltoast · 7 years ago
Note
Hey for your new bingo how about Peter and Ned for the "I'm fine: Narrator they were not fine" prompt. Maybe with Peter coming down with the flu or something and trying to convince Ned that no he's totally fine to hang out then go on patrol afterwards no really. Or something.
I am absolutely not against doing prompts more than once, especially for multiple fandoms and especially for my fav prompts! So thank you anon and I hope you like this story :)
Peter slumps against the bathroom wall as sweat forms on his warm brow. He places a shaky, clammy hand on his cheek and tries to steady his breathing. Peter has been up since four that morning thinking he was going to throw up, but nothing came. Now, he just rests on the cool tile because it’s much more comfortable than his too-warm bed.
May is on a business trip until Monday and Peter just needs to make it through one more day of school. Then, he can relax that weekend, after his patrols, of course. Mutant spider-kids don’t get sick days, especially since crime in New York City never takes a break. 
He uses all of his strength to pull himself off the floor and steadies himself against the wall. He feels like the floor is about to come over and swallow him up, but he tries to shake the thought from his mind. He just needs to focus on getting out the door and then on surviving school.
It takes some time, but Peter manages to throw on some clothes and get his backpack together. He’s out the door with a few minutes to spare and makes it to the bus stop right on time. The fresh air even makes him feel a little better, he thinks. Maybe that was all he needed after all. 
It was not, in fact, ‘all he needed,’ as he begins to feel worse and worse as the bus snakes its way through the New York City streets. Finally, after what feels like an eternity of bumping and jostling, it pulls up in front of the grand stone steps of Peter’s school. He gratefully gets out, takes a deep breath, and walks inside.
He’s not a foot away from his locker before Ned spots him and comes bounding over with news of all the exciting things that happened to him in the 18 hours they had been apart. His best friend is about to open his mouth to talk about the latest thing he found on Youtube when he stops and takes another look at Peter.
“Hey, man, you okay?” he asks, the excitement draining from his face. It’s replaced by a particular brand of worry, the kind that only comes from being friends with a superhero.
“I’m fine,” Peter dismisses him shortly as he attempts his locker combination. He pulls the door open and deposits his books.
“You don’t look so fine,” Ned presses. “Did you have a big fight last night? Oh! Did you get that robber on Eleventh Street? Or the arsonist that set those fires down on Forty-second? What about the–”
“No, Ned,” Peter replies. “I went home. I studied. I went to bed.”
“What about,” Ned starts and then drops his voice into a whisper, “Spider-Man?”
“Spider-Man needs to study or else Spider-Man has to go to summer school.”
Ned almost laughs at this, but stops himself as his laughter turns into an amused puff of air escaping from his nose. “You’re smart as hell, Peter,” he tells him. “There’s no way you’re going to summer school.”
“Yeah, Math and Science are alright, but tell that to the D I got on my last English paper.” Peter frowns, trying to push the memory of getting that report back out of his mind. He opens his mouth to say more, but his breath catches in his throat and he dissolves into a fit of harsh coughing. Ned swiftly places a hand on his back and it’s only then that the boy can feel the heat radiating off of Peter.
“Dude, you’re burning up,” Ned reports as Peter finishes his coughing with a dry heave.
“I’m fine,” he says again.
“You should go home.”
“I’m fine,” Peter replies more forcefully this time and with a pointed glare at Ned. His friend puts his hands up in surrender and backs off and Peter immediately feels guilty for snapping at him. “Sorry. Long night.”
“It’s cool, man,” Ned says carefully and grabs his backpack. “Well, then come on. I guess we gotta go or we’re gonna be late.” He’s not entirely sure if Peter should be going to class, but he also knows he’s not going to convince him otherwise. Peter just nods, grabs the books he needs and closes his locker before following Ned through the halls.
***
Peter manages to make it through the day. Barely, but he makes it. By three that afternoon, he’s absolutely wiped out and finds himself craving the gently caress of his twin-sized bed. Ned is still a constant at his side. A few times, Peter almost took a dive straight onto the tile floor, but Ned managed to catch him in time. He doesn’t believe for a hot second that Peter is actually okay, but he doesn’t know how to argue with his best friend.
“You should go home and go to bed,” Ned says. “Take the night off. New York can survive without Spider-Man for a day.” It’s those words that bring Peter back to reality as they walk outside the school. He can’t go home and go to bed. He has to make up for lost patrolling time the night before.
“I’m fine,” Peter replies. “In fact, I’m so fine that I need to run home and get my suit! I have a long night ahead of me.” 
Ned frowns, noting the paleness on Peter’s face aside from two red flashes on either cheek.  “I don’t think that’s a good idea, man.”
“I don’t really have a choice.”
“Of course you do!”
“No. I don’t.”
“Peter–”
“Jesus, Ned would you just leave it?” Peter shouts, attracting attention from students surrounding him. They spare a quick glance at the two and then move on, but Ned is stunned by his friend’s outburst.
“Dude,” he starts, but Peter waves his words off.
“I’m sorry. Look, I’m not 100% today, but I have to go out there because if I don’t, who will? That’s responsibility. That’s my responsibility.” Ned doesn’t look convinced, so Peter adds, “Do you want to come with me?”
That brightens Ned’s face and he breaks into a wide, excited smile. “Wait me? On patrol? With you? You never let me come!”
“Yeah, well consider it an apology tour. Come on, I gotta get the suit.”
***
It takes Peter some time to change into the suit between panting for air and dry heaving, but he makes Ned wait in the living room, so his friend doesn’t notice. Then, the two are out on patrol. Ned has a police scanner on his phone and is reporting disturbances to Peter who judges whether or not he needs to go in and assist. 
A little before eight that evening, Peter stops a mugging in an alley a few blocks from his high school. He manages to keep the victim safe while running the criminal in circles. Just as he’s about the tie the man up with his webs, he feels a sharp pain in his stomach. He glances down and sees the handle of a knife sticking right out of his abdomen. Under normal circumstances, Peter would just take the knife out, tie up the criminal, and let his healing factor do the work, but the fever he is sporting makes him panic. He slings a web wildly, manages to catch the edge of a balcony, and is slung through the air. He lands on the other side of the alley, giving the mugger a chance to escape.
“Peter!” Ned’s voice rings through the built-in speakers. “What happened?” But Peter can’t find the words to respond. He’s too busy fumbling with the handle of the knife and trying to breathe. Ned calls his name again, but Peter barely hears it. The edges of his vision become spotty and he faintly hears Karen say something and then the sound of a phone ringing lulled him into darkness.
***
Peter feels warm. Not the intense heat he felt before, but comfortably warm. He wants to stay here in this state forever, but he soon becomes aware of an incessant beeping that pulls him from the comfort. As his senses come back to him, he feels the prick of something on the top of his hand, smells a particularly sharp sanitized scent, and hears the beeping of a few other machines. He knows immediately where he is and that knowledge makes him want to stay asleep forever.
“Alright, kid. I know you’re awake,” a not particularly angry, but not very friendly voice says. Peter slowly pries his eyes open and blinks the blurriness away. He glances up and finds himself looking at Tony Stark, who looks tired yet agitated with his arms crossed over his chest.
“A one-hundred and three-degree fever and Mister Genius thought he could go to school?” the man asks with one eyebrow raised. “And then go on patrol?”
“I was fine!” Peter insisted.
“Try again.”
“I thought I was fine.” This earns him a pointed look and Peter sighs heavily. “Okay, I’m sorry.”
“You’re damn right you’re sorry. What the hell were you thinking? You should have been at home in bed with your unnecessarily hot aunt taking care of you.”
Peter makes a face at the idea of his aunt being hot and then says, “But I need to go on patrols every night. Crime doesn’t stop just because I’m sick.”
“And if you push yourself too hard you’re not going to be around for the rest of the days that there’s crime in New York,” Tony responds. Peter slumps back further against the pillows, knowing his mentor is right. “Thankfully your friend Ted was there.”
“Ned?” Peter asks, sitting back up. “Where is he?” For the briefest of moments, Tony’s expression softens as he steps aside. As he does so, Peter notices Ned sitting in the chair behind Tony, slumped over as he snores. 
“Kid wouldn’t let me leave without him,” Tony said. “And I normally wouldn’t let anyone over here but he was so damn insistent that I couldn’t just take you and go.” Peter nods slowly as he stares at his sleeping best friend. “You owe him.”
“I know,” Peter replies.
“Good, you’re not as stupid as you act.” Tony takes a step back and moves towards the door. “Get some sleep, you’re with me the rest of the weekend. Red can stay too.”
“Ned,” Peter corrects. “And thanks.”
“Oh, you won’t be thanking me after I’m done with you this weekend. Just wait until tomorrow when your fever’s down. My lab needs a cleaning.” And with that, Tony disappears. 
Peter slumps further into the pillows and looks over at Ned. With a friend like him, Peter knows he’ll always be just fine.
23 notes · View notes
view-from-a-warm-place · 8 years ago
Text
025 // Distractions III: External Random Item Drop Generator
So you may be wondering what happened to last week's post, and the answer is that I never wrote it because I was too busy trying to finish this side project I have been working on. And I finished it!
I think I might have offered to explain it a while ago, so I will do that now, since I have very little new art to offer at the moment (it is probably not why you are here but please bear with me).
Tumblr media
This one is a bit long and is all about code..
For the last few weeks, I have been working on an external random item dropper for a couple of friends who want to start their own thing, and doing that required me to either construct an entire user interface arrangement in Pygame (which I have done twice already and have my own modules for but am not really super-de-duper into) or to learn at least enough Tkinter to make something I am not totally ashamed of (which is a lot of learning because I know-- which is to say, knew-- almost exactly nothing about Tkinter, not counting some stuff with Listboxes.
I opted for the latter and, in truth, it was pretty easy to learn. It was a bit frustrating at times because there are problems with Tkinter's 'widgets' (graphic interface objects) that can occur and lock up the software in a way that Tkinter considers normal and not an error and why would it tell you about it? For instance, if you try to use a "grid" arrangement in the same Frame (an object Tkinter uses to create layers of widget organization) as a "pack" arrangement, it will "Tkinter will happily spend the rest of your lifetime trying to negotiate a solution that both managers are happy with," or how replacing Variable objects with new ones that have the same name sometimes causes the whole affair to silently stop working and leave you clicking a button to no effect, wondering what is going on and why.
Problems which I overcame! Quickly and with some difficulty! Most of my time was spent on the interface, actually, since it was the part I knew the least about. The design was pretty easy (or it was easy in the extent that I produced an interface experience that I, personally, found satisfying, and which failed to produce a/any complaint(s) from the people for whom I made it) but the actual construction took a lot of learning when it came to displaying and updating the right variables in the right places and when. There are many values shared between user input boxes (Tk.Entry), where the user enters various bits of data, lists (Tk.Listbox), which have selectable entries and a lot of straight-forward appearance parameters, labels (Tk.Label), which display values either as static text or from various types of Variable, and, of course, the item data sheet that the user provides (read using ConfigParser from an simple external text document I can tell you how to make, and internally, as a chaotic dictionary of lists and Variables and strings and numbers). Incidentally, I ended up extending (adding my own functions and attributes to) a few of Tkinter's basic classes, and this part of the project was actually one of the most interesting. A great many parts of the original module have been deliberately constructed in a way that simplifies that kind of extension, and while I had to go outside of that on an occasion or two, it was absolutely a worthwhile lesson!
The Variables were the most perplexing part, because Tkinter is the least forthright about them and because they are more flexible than they let on. These variables can be equipped with callback functions that allow them to alter their contents, or the contents of other widgets, or do some other crazy third thing, whenever they are altered, or even just whenever something looks at their values. That part was easy and extremely useful once I got the hang of it! They can also be given specific names by which other functions and widgets may identify them, and while I found this quite useful as well, its lack of stability was somewhat less endearing since Tkinter will not tolerate two variables with the same name (a legitimate and preventable issue!) and will not necessarily tell you when this has happened or where (I am less okay with this).
Another interesting thing about Tkinter is that it offers multiple obvious ways of accomplishing the same thing, which is a bit of a problem for "The Zen of Python," a sort of mantra that a lot of people in the community take quite seriously. As an example, you may almost always alter the configuration of a widget in at least two ways: - Use Widget.config(some_attr = value) and change one or several attributes at once using arguments, or - Setting them using attribute names as keys, like so: Widget['some_attr'] = value. - There are other ways too but none spring to mind.
Also, widgets can be stored in attributes, but you can also call them up using their names: a widget created in the line
myObject.my_widj = Label(master=tk_root, text='Yo, babe(l), I am a Label!', name='lbl_annoyinglabel')
..can be accessed directly either by way of some object attribute reference:
myObject.my_widj.config(text = "Hey, id'jit, I'm a widget!")
..which is absolutely normal in Python, or by calling it by name from its master object:
tk_root.nametowidget('lbl_annoyinglabel')['text'] = 'Please stop talking.'.
Naturally, you would probably want to use the first method as often as possible, because it involves fewer operations and would probably be easier to maintain. But the second way, more elaborate though it may be, lets you save on assigning attributes by tracking widgets using Tcl's internal structure. (n.b.: I cannot say I have ever found myself running out of room for attributes in a namespace but I am also a complete amateur as a programmer so please bear with me. <3 )
Interestingly, actual structure of the input sheets was the next-most time-consuming part. Trying to find a data format that would be easily comprehensible by anyone who picked it up (probably only going to be two people, plus myself, if even that many) and which also met with ConfigParser's profoundly elusive approval was a somewhat complex task. It turned out to be exactly as hard as I thought it would be, at least, and there were no surprises here. You can see a blank template of the input sheet here!
The actual drop generator code-- the element which takes the user-supplied data and returns a random selection of items from it, according to their initial and supplemental parameters; the single element that the entire program is built to support-- only took an hour to complete, actually. I did it last and by then, all of the parameters and variables and their names and locations had become obvious, and since it was a pretty plain function to start with, it was done quickly. It was interesting to note how much more effort it was to pack this simple function up into a pretty interface than it took to build the core element itself. I suppose we see this everywhere: a car is just self-propelled chairs; a human is just a gangly, leaky chariot for a suite of genitalia; this software is just 'arbitrary decisions' packed in a pretty box. A very pretty box that I will no doubt look back on in two years and wonder what I was thinking, I hope!~ <3
Anyway I completed it and delivered it and it is my first free-standing piece of software that some other person might actually use for their purposes, and that is a sense of accomplishment I have not felt since the WSDOT departmental library people told me they wanted to include my undergraduate thesis in their stacks.
As an aside, I had considered making a companion tool to go with the drop generator that simplified drop sheet creation. It would not be over-hard to make: all it is liable to be is another Listbox with a text entry field attached, a button or two to add and remove entries, a few other configurables, and a ConfigParser set up to save it all out, but I feel as though the drop sheet format-- sensitive as it is to typographical problems and formatting issues-- is probably easy enough to use. Also there are two people using it and I am in touch with one of them almost every day. Still, food for future thought!
Anyway, back to my game, now! It has been a long time and I am ready to face it again with fresh eyes and fewer .. days.. to live.. I guess! Hm..
See you next time! :y
3 notes · View notes