What's up? How are you guys? We've made it another week here at Frankie's range meat, but I am ready to retire So we're gonna do a quick vlog today. I guess not too much going on and It is Sunday afternoon my guys are actually here, so I'm not here by myself. They're working a little late today Just finishing up some stuff so I'll show you guys what's up. I'll show you guys a few products back in stock and Maybe a new thing or two will pop up that I forgot Everything is in stock on the foods website. We got the dark chocolate and white chocolate to Tommy's cookies bars We got plenty of Pemekin plain Pemekin meat granola Running a little low on the quinoa crisp, but we have all the best bars plenty of granola bars to a lot You guys have been asking me about the granola bars Yeah, we got everything guys we got the Bill Tong we got the raw honeys We got the beef sticks run a little low on jerk You might have to get some more of that all the fats are in stock Ibarico pork lard marrow oil beef tallow Maybe the labels will come for the big one this week and we'll have the big beef tallow available We got the plain sea salt the mountain salt Yeah, we did that oatmeal recipe Saturday These are the the quick oats that we have available for you guys if you want to do that We even got some vanilla extract here. I think we ran out of Vanilla powder though. This is the Colaterra the the fish sauce that we just got in new Last week as well and then back here in the back. We just have that liver detox smoothie That was in the oatmeal for you guys. This is on organ supplements calm Yeah, we sent out an email last week from organ supplements talking about the new multi mineral the new multi vitamin As well as the magnesium and zinc complex I won't talk about that too much you guys can go on the website and read more about all the products if you guys are interested We'll just look in the fridge real quick in the freezer Okay, so I feel like deja vu but as always our fresh dairy is ready to ship out We got the milk. We got the kefir. We got sheep milk and we got sheep kefir This is new this week. We used to sell sheep kefir farmer ran out, but now we have some back in stock So hopefully the sheep milk and sheep kefir products are going to continue to increase All the dairy is available guys, you know Fresh raw local homage dairy section on the website all different types of stuff from butter to cream to cheese curds to cheese Dip a lot of different stuff. This is the sauerkraut and jardiniera on the foods website And we got some ginger lemon water kefir in stock What is definitely new is we have ground veal.  You guys have no idea the ground veal is now available as well as some veal steaks and Veal ribeye steaks and veal porterhouse steaks. It's gonna be in the veal share available on the website Yeah, this is a special product I think it's gonna be $12 per pound because we paid so much for it But we got plenty of fresh ground veal This is the fresh local ground beef that we get in every week. You guys aren't too enthusiastic about this So I'm not sure if we're gonna keep doing it, but we also have the the fresh steaks available So we got some fresh porterhouse steaks and some fresh ribeye steaks These are a little smaller So instead of getting to if you buy the fresh beef share you'll get three So you guys want the fresh beef share if you place an order By Monday Tuesday Wednesday, you'll get all this shipped out fresh as well as the the fresh ground beef Just make sure to put in that you want fresh never-frozen shipping What we're doing differently is We put some parchment paper between the slices of prosciutto and we sliced it a little thinner So I try my best for you guys. This is how Kind of crazy, but this is how the prosciutto is gonna come now It's it's parchment paper between each slice so they don't stick together and we and we got it That's thin as the machine can get it. I might have to buy a new might have to buy a new Deli slicer to get it thinner, but for now it's fine That's just some scraps same thing with the Ibarric all hem so we got pieces of parchment paper between every slice so they're not stuck together and We sliced it as thin as we can get it. So if you guys email me about this, you know If you want a free sample with your next order, just let me know if you weren't happy with it But this is as good as we're gonna get it for now. I think so Ibarric all hem prosciutto San Daniel Try my best running kind of low on eggs Hopefully we get the duck eggs in a week or two because Not acceptable. I gotta bring home some of this Jardin here to try it for myself. I was trying the pickles and they're a little soft little over fermented So next batch. We're definitely gonna make sure to do a much shorter ferment trying to keep the pickles crispy I still can't figure out if if the Whether they're cut or not really matters. I think what matters is the if you Ferment them for longer than like a week and a half. Maybe they just get too soft. So here in the freezer I don't really think We have too much new stuff. We just we just did a lot of reorganizing everything We got plenty of beef bacon plenty of pat food only five dollars a pound We got whole beef belly slabs back in stock Plenty of organ grind available These are the wagyu burgers. I showed you guys these last week very affordable per pound.  We have way too many of those Lot of beef tendons and the beef tripe beef stomach is back in stock. I think we're completely sold out of chicken though So I think the chickens gonna be back the first week of April So you guys might have to wait a little while for that Main thing over here is we got plenty of lamb in for Easter So we got the bone and legs of lamb which are a little bigger and we have these really nice Cute three-pound boneless legs. I'll probably do a few videos a recipe or two on these And although we don't have chicken We do have turkey available. So if you guys want like turkey wings Nice turkey drumsticks. We got turkey thighs available and the whole turkeys I think we're running low on turkey breast, but everything else we have plenty of This is just a lot of go testicles These are these are the cheapest testicles we have on the website. They're like seven dollars a pound Running a little low on ice cream strawberry chocolate honey vanilla Yeah, that's pretty much it Few changes here and there a few new things I could show you guys the I'll show you guys a new equipment after we read the reviews Because my guys are still in there, but I think they're leaving now Kitchen equipment's not completely set up yet, but We're getting we're getting close.  I had to reduce the price so much I'd be surprised if we broke even but we're almost out of all of it. We've sold We've sold all the breasts ground up. We have some thymine ground up that's still left The soup chickens. I think there's maybe 50 or 100 left. So those should be sold out in a month or two and We still have plenty of wings which we're using for the the chickens stew chicken soup with the meat in it And we're not gonna have the soup chickens back until next year. So No, they'll be gone for a while after After we sell out. So if you guys want very affordable soup stewing chicken It's only like I think they're only like $12 each Which is ridiculous for corn and soy free chicken because anyone else online and sauna for three times the price if I serve you for the organ grind Brass fed ground beef with organs really really good blend This is the perfect blend it predominantly tastes like ground beef with a little bit of organ flavor as an aftertaste That's not something you like the aftertaste can almost entirely Mitigated by adding in some garlic and salt. I only ordered one package so I could sample it first before loading up my freezer Now I'm anxiously waiting a restock. I legitimately would eat this daily for the health benefits in natural flavor We got a five-star view for the water key for grains. This is on the foods website Frank is here in foods I ate him now. I got to order more because I had to find each cluster I don't know what you guys are talking about, but It's not really a review We got a five-star view for the pasture raised Iberico pork sausage The quality is unbelievable immediately had to order more yet's really special stuff I'm glad we're able to offer all the Iberico pork for you guys because it's I mean the local pork sure that we have is like all really high-quality stuff and it's very affordable But compared to the Iberico pork. It's like there's a reason it's Most famous pork. Oh, I was I didn't really want to read this but Someone plays like a $20 order and we cancel it because we have $100 minimum and they sent me an email Great I have to wait three days to get my money.  Yeah, honey is also really good in the in the yogurt Fire star review for the grass-fed marrow oil. This stuff is amazing way better than any tallow bought in stores This stuff is like carnivore crack right out the jar. I ate the whole thing in two days I'm gonna have to get some bulk marrow next time and have this as a treat. It's not too expensive for the caloric density Fire star review for the past race chicken eggs Frankie's awesome eggs Wow, I didn't know what to expect in the way of packaging these eggs to make them ship so well But it's the most perfect packaging of a product that's ever been delivered to me And the eggs are so clean and uniform in size as I write this review I have just finished enjoying the best ever egg salad sandwich knowing that the eggs are free of corn and soy makes them that much More delicious consider me a new customer and number one fan. I'm glad you guys like the eggs a lot Another review for the chicken eggs high quality I compared these eggs to the store-bought pasture raised eggs and there's a huge difference The shell is way firmer and comparable to duck eggs The oak is very dark almost orange and the egg white itself looks completely different the taste was rich and delicious Most people think eggs are eggs because they never had true quality eggs highly recommend you because you guys Order order consistently from us were able to offer like really really fresh eggs and the freshness of the egg Also makes a really big difference in the quality You know, it's not sitting around in a truck for two or three weeks and then in your supermarket for two or three weeks before you get them These are literally eggs from the day or two before and then we ship them out So you're getting them within a week of the eggs being laid, which is as fresh as you can get them for the most part another review for the water key for grains Back into fermenting the grains are making top-notch water key for first batch was a little slow to start But then I threw a pinch of salt and and bam no looking back You find diversifying the mineralization method periodically to be helpful for the grains working towards growing the little guys to make five gallon batches For the entire family God bless Frank. Thank you. I mean you might have to add more minerals But it depends on also like the mineral content of the water you're using Last review five star for the Gouda cheese Do Gouda this cheese tastes so good. It is so creamy some of the best Gouda I've ever had it's funny because you guys We used to sell like a lot of Gouda and then you guys just stopped buying it, which was weird Like you used to sell so much of it and then no one bought it anymore. All right, let's go show you guys real quick the the kitchen equipment So we got the big meat grinder here. We got to run a three phase line for it this is the Steam kettle we got the water hooked up and we got the gas line here, too. We got a Three gas lines here So for these burners, which are good to go kind of like jet engines. I'll have to show you guys these when we got them running So we got the gas ran we got the water line ran for the steam kettle and Then we're just going to have to run the electric for that grinder and then the electric for for this tilt skillet so hopefully in a week or two We got everything set up, but this is Operational now so everything here is set up the hoods running. We got the filters in This turns the lights and the and the fan on So you know instead of instead of using that fan for ventilation This is a much larger huge fan giant fan on the roof here And we got all the steel on the wall. It's been taking a while to get this stuff set up but it's not necessarily Like equipment we needed to make new stuff it was just to to make our current stuff efficiently because we're having too much inconsistency with Different batches and I was just I was losing so much money like they mess up if they mess up the soup once I'm out $2,000 So It's not worth it using the electric burners that aren't that efficient. Yeah, that's it for this week guys Nothing too crazy. Just a few new things a few restocks I'll be sure to put that Veal on the website for you guys if you want to try the veal out if you want to order the fresh beef We'll get the fresh beef in and Then maybe we'll have some new stuff next week. We'll see hopefully some new ice cream flavors and a few new things for you Guys to try out. Oh, I forgot to mention There's free liverwurst with every order this week, but we're almost out So everyone that placed an order like through today Sunday is gonna get a free liverwurst And then I'll try to get some more next weekend But we might give away the scrapple next week, although I know you guys don't like that as much because there's some grains in it But that should be it So if you guys go to Frank dash the font outcome You will see all of my interesting businesses Frankie syringe meat Frankie syringe foods Wi-Fi shielding Frank organ supplements Frankie's naturals all that stuff if you guys want to just take a few minutes check Everything out see if see if you need anything but See you guys for the next video I guess


Hello guys grip the grounds here welcome back to another unity anti-matter dimensions video today We are going to be working on achievements if you enjoyed this video make sure you smash a like button Subscribe to my channel if you're new and Charles notifications for future live streams and videos and also comment all your questions feedback all that good stuff below Yeah, it's another one of these videos where I've been gone for a really long time I've uploaded a grand total of four videos actually now five like five Videos yeah, six videos this month. Damn. I'm doing terrible. I feel deeply sorry guys But good news. We're very close to two thousand subscribers already. Yay, so that's good another bad news I'm losing views. It's okay. I just need a post more often I was getting at least around 1500 and now I'm back at 1000 so I need to fix that I need to get back into the game. So yeah, anyways, I've been really busy with school starting and hockey Starting as well and working very hard on my game doing a bunch of bug fixes and all that cool stuff So yeah, anyways, let's pick up the anti-matter dimensions to use again because I really missed working on this But yeah, anyways, let's get ready for the achievements. So I'm just gonna set up the UI real quick Okay, so now what I did here is that I made a new game object to put my dimsack and my dimensions inside And I anchored it to stretch so that I can Do this and it stretched just fine and I also made an achievements empty game object here as well and It's the same place Same same same and I also added the achievements button. Okay, so now I'm going to start working Let's actually take a look at the achievements. Okay, so now I'm gonna do a different achievement Kind of style rather than what I did in my idle game tutorial video So if you're here just to learn how to make achievements. This is a great tutorial for you But basically what we're gonna do is that we're gonna sign each achievements as an ID now I'm not gonna do any of the arts. I'm gonna do like the titles and stuff But I'm gonna basically I'm assigned every single achievements as an ID. Okay, and we're gonna do the same Achievement multiplier and stuff like that. Okay, so of course we're not gonna get all of them But I'd rather get some Play for eight days extremely small time multiplier and I don't know what this is So I'm just gonna like ignore some of these achievements. What I'll pull it do is the first two I think I'm gonna do the first two rows so that's That's the how many are there eight in each row. So that's 16 achievements. That should be too bad I might do just one. We'll see how this video goes but so basically we're just gonna do by a single dimension a second third fourth fifth sixth seventh and Eighth pretty easy. So yeah, I actually could do two rows since that's really easy and reach infinite anti-matter and Encounter 50 different news messages. So this one word. This is just gonna be like a null thing So I'm just gonna leave this as an empty one for now Probably just like like my own achievements Have exactly 99 eighth achievements and I also have some of the rewards too And yeah, we'll just do the rest of these. Okay, so anyways, let me just set up my interface once again for the achievements Also, just wanted to mention that I am not doing the secret achievements since it really has no in-game benefits So I'm not going to do that Okay, I'm back. So basically the one of the things you're gonna learn in this series is efficiency, right? So we're not gonna just copy and paste this one achievement, right? We're gonna create a prefab out of it to make our lives a lot easier. So we have our achievement here we can honestly just put achievement title in here and Then once we are done with that we can just drag this achievement Actually, no, no, not yet. Not yet. I forgot one more thing I'm gonna keep this button here because we don't actually I'm gonna get rid of these button this button right here Because if we don't interact with it, it's automatic, right? So We're gonna create a class. Okay And this is gonna be called achievement If I can spell it right first of all, so we're gonna create the achievement script and This will be a thing that we can assign to each now. What's really easy about this is that when we Create our ID system We can look through all of the achievements and then give them an ID and basically what we're looking for is the achievement script game components because we can do we can Look for game components inside our achievements right here. So basically we'll just look for this and whatever game object has it will add it to a list and Yeah, it's it's really cool how this works and it's much easier than just having to drag all of our text and manually and This is easily expandable too Okay, so it's very easy. So we're gonna have two scripts We're gonna have this one and we're gonna have the achievement manager now I'm gonna finish this one first because we kind of have to create our prefabs and our objects first of all And then we'll create our achievement manager So as writers opening up we can delete pretty much all of this and Yeah, we can get rid of this too Really the only thing we're gonna need in here is the image because we want to be able to change the color once it's done so we're gonna just We can just give an achievement and also we want to implement the Unity engine UI interface Okay, so now we have our public image and we also need our public image Achievements we also want our text too. This is just gonna be the title text and that's all we got to do in here Right, it's just a net. It's pretty empty Okay, so now what we can do here is that we can assign our image and our text. This is a TMP text I forgot so we actually have to Additionally import the using a TMPro and replace this text with a TMP text Okay, and now we should be able to drag this text because basically all the text we're using in this game is TMP text or text message pro Cool, so now that's we're done with that. We can drag this achievement game object into a prefab folder cool, so now we can just Simply position this however we'd like. I'm gonna do that. I'll be right back Okay, so I finished that if you guys want the exact dimensions So basically what I did is that the row is 1470 by 175 also want to anchor this at the top like that and each achievement is 150 by 150 and They are evenly spread out by I think 35, right? Let's do the math or click I think it is I think it's 35. I Hold on one second 185, okay. So yeah, they're each spread out by 185 pixels And yeah, so it looks like that so I'll show you this one and this one And you should pretty much be able to figure out from there. Anyways, let's actually start getting ready for the code And I'm just gonna leave these titles as it is because I'm just gonna make this Achievement zero to stay consistent. So I'll have to change them all now. This is gonna be our ID So we're gonna do zero based index. So There's zero index instead of one. So we start from zero and we end at seven instead of one through eight Okay, so now what we're gonna do is go to our scripts We're gonna create an empty and it's gonna be called the achievement manager Okay, and now we're gonna create a separate script called the achievement Manager Okie-dokie and I'm gonna let that create itself and So that looks a little off actually no, it might be just my eyes. Also, this green is just for our This like that. Okay, and Once it's complete for example, we'll just set it to green like this. Okay, and once they're all done we will set it to We'll set it to green and before this will be this green bar would be gray. Okay. Anyways enough talking. Let's just get started Okay, so there's two things we're gonna have to look for in order to find these achievements We need to have a game object in order to find these right? Okay, so we're gonna have actually no sign of game object. Oh, yeah, it is a game object because we are locating Inside a game object. So we're not gonna look from a row Okay, actually, I think we might have to I'm not sure but let's just try achievements for now Okay, and I might have to actually create a separate gate a separate prefab or like a separate script for this row So I'll have to search for every row look for an achievement. So we might have to do that I am not completely sure but we will we are here to experiment. So I'm gonna create a game object Okay, and this is gonna be called our achievement screen Okay, and we're gonna create a list And so so far it's empty and it's gonna be a list of achievements. Remember that achievement class we made earlier and it's gonna be called a Achievements and it's gonna be a new achievement list. Okay, and we also need to import System.collections.generic which is where lists come from All right, and that's all we need from up here for now And let's just start this in a public void start. Okay. So now what we're doing is we're gonna look through all We're gonna look for all of these right here. Okay So basically we do For each var Achievements, so I'm just gonna do ach for achievements Okay, inside achievement screen dot get components in children. Okay Now remember it says get components in children Okay, and now in here we're gonna put in our type and that is achievement like that Let's see Oh, it's the other way around oops Like that. Okay, so we're creating a for each statement. So basically we're gonna look for all of We're gonna look through all of our game objects and whichever one has an achievement A component inside one of those we're just gonna add it to our list which we do in here So to add it to our list all we gotta do is achievements dot add And then we do ach Very easy Now I'll show you guys this in a second. Actually, I'll show you this right now. Okay So you're not gonna see anything special, but you're gonna see this list right here fill up Which is really cool. So for our achievement screens. We're just gonna drag this achievements right here. Okay Save it and run it and we'll see this this list fill up. Hopefully if it works. Okay, cool. So it did So you see now we have access to all of our achievements here. Okay, so we can we basically Don't even have to assign an id right because the id is the index of these um Right here, right? So we're basically gonna go through each row And so on so here if we copy and paste this row and go under it, which we're actually gonna have to do anyways Uh Row two, I guess And so if we have these under you're gonna see how it's gonna basically go through row one first and then row two So let's save it and go to our achievement manager and observe Cool. So we have a 16 achievements. So basically it goes through row one first and then it hops down to row two So now what are the benefits of actually doing this? You don't have to drag every single text and image and I'm there are a lot achievements You can obviously see and look at all these achievements. I don't think you're gonna want to drag all of these texts over and over again And these images. I don't think they'll be very fun So this just saves you a lot of time and it allows you to expand it whenever you like you can add achievements However, you like wherever you'd like and whenever you'd like. Okay So we have the achievements. We have access to them We have to actually start like setting them, right? Okay. So what we're gonna do here is I'm gonna create a dictionary Okay, or you can create a list too. Both are fine. But actually let's create a list Okay, so we're gonna create a string list and honestly we can create an array Hmm, which one should we do? I think we're gonna do Oh, sorry, um, I think we're just gonna do a list. Okay, and this can be uh achievement names Okay And now the thing is we can pre define these and we can uh easy modify these anytime without having to interfere Okay, so let's see. We want to grab Our achievement names from here. Okay So I'm gonna do this myself, but basically I'm just gonna grab the first 16 here. Okay. I'll be right back Okay, so I finished the list of achievements and I also just wanted to mention that I added my own achievement to replace fake news Um, because I I I will probably add the news ticker at some point, but I replace it with floating anti matter. So basically Crypto clickers reference. I'm going to be doing 3.40 e 38 And a matter and you get this achievement. Okay, so that's really what this achievement is going to reward And so I'm going to split these achievements in groups of eight. So we'll just press enter right here Okay, so we know that these are the first eight and so on Okay, and Oh, yeah, I also wanted to add Um, so we're gonna have lots of rows eventually. So let's just add this row component, right? So we're gonna create a new script called a row. Okay Now I know these might be really pointless things to do You can easily just drag in a few rows and it's like no no biggie But I just want to stay consistent on how we are efficiently doing this And uh, basically this is just an image component. Okay Okay, we also need to add the unity Unity engine.ui UI Name space, okay, and now what we're going to do is we're going to create a reference not a reference, but a We're going to drag this image into here and we oh shoot. I should have done it here It's okay. It's okay Uh, let me just slide this up Okay, delete that row Okay, so we're gonna this is gonna be a prefab, okay And I'm just gonna drag this into our prefabs folder and there we go. Voila So now our row prefab is basically just a bunch of achievements So you can just drag this in now and we have another row of achievements. Very cool And we're gonna name that row two and this will be row one. Okay So now what we're going to do in our achievement manager is we're going to create another list. Okay And this will be for our rows Okay, I could should have named this row better. I should have done like achievement row or something, but it's okay So it's going to be a new list of type row called rows And it's going to be equal to a new list of type row Okay, and now in our start method, we're going to do the exact same thing So I'm just going to copy and paste this var row is equal to or var row or sorry For each var row and achievement screens gig opponents in children and we're going to do row instead. Okay And now we do achievements dot add so replace achievements with row and replace Ash with row like that. Okay, so now it's going to basically search for all of our rows And add them to our achievements Our rows list right here. Okay Cool. So now what we're going to do here is we need to find a way to Set our achievements to To complete right so instead of just having a stat So this is a mistake I made with crypto clickers or something like that Or like when you like unlock something from a milestone The thing I did wrong is that I would keep check I would set like a highest so let's say I get to e308 We right or sorry ethereum So let's say I get there The problem is that I set the highest to e308 And it's based off of that which can cause issues if that gets nan and it gets screwed So what I'm going to do here instead is I'm going to make a method where we basically set the achievement to true And we only need to check it When it's false, right? So that's how the steam achievements work. Okay So I'm going to do the exact same thing here. So let's create a method called unlock achievements Okay, and we're just going to have an int id in here. Okay And remember, we're only calling this if this is false. So really there's no need to do this Now before we continue before we carry on we need to be sure that our achievements List is up to date Now the issue with this is something that I think we're going to have a little bit of struggles with It's this right here. It's data Okay, it's creating a list in here. Okay So we need to be sure to constantly update this list. Okay So let's just add a list in here and this is just going to be an int Now we're not doing it all right because it's easier to add on to this list. Okay So this is going to be our list of achievements IDs Okay Actually No, we're going to create a dictionary instead Actually, no our system doesn't support Does it I think it does Are we doing Uh binary formatter convert to base It looks like yeah, it looks like we're stood. Oh, we're not doing json. Okay, so we can do dictionaries. Phew. We're safe Okay, so basically we're going to create a dictionary For our oh really you don't have to okay Sorry guys We're gonna we're just going to do a list for bulls because we're doing a zero index Uh system for our IDs. Anyway, so it really doesn't matter Okay And this is gonna be a new list and for now the size is 16.  Okay So we're gonna put this in our data, okay Now in our achievement manager, I'm gonna close all of this because it's really not necessary Um In our what's this right here? Oh, yeah, we can close that So in our start method, we need to Detect to see if this achievement unlocks is good enough now instead of checking to see if it's good enough We want to expand it. Okay We want to add on to it rather than replacing all of our current unlocks because that will just make people Angry when we add new achievements. Okay Also in our data, I forgot we need to do something. Okay So an issue with creating a new list right here is that it doesn't actually do it properly. Okay So we're gonna have to search up a C sharp Create new list. I'm not working. Okay, so I can't remember what the exact thing is Uh Let me let me find that real quick hold on Okay, I found it. So here's the method that we need to add to ours Our script. We also need to add system dot link dot innumerable So make sure you add that the top make sure you have all of these right here. Okay So The thing with creating a new list is that the capacity is like stuck All right, when we create a new list, it doesn't like expand. I don't know It does some weird things where it just sets the list to a size zero So to fix that we replace this new list with a private static list type t Which is a bull right here. For example, our generic type Uh, create list generic type and capacity. Okay, and I basically I don't not exactly sure how it works but basically it just creates an Uh, a new list properly. Okay, so we're going to replace this with a create list with a type bull Okay, and we're going to set the capacity to 16. Okay, and that should be safe And we can honestly probably get rid of this too And yeah, it's fine. Okay. Um, okay, so now we can just leave this as is Okay, so now let's go take our let's go fix this issue right here Um, so let's see we need to find the achievements count. So let's see if uh, our achievements dot count Is greater than or is greater than Um data dot. Oh, yeah, we need to implement our game manager. So that is, um What is it dimensions? Oh, it's game controller. Right Okay, so we're gonna add our game to the top And we're going to do game dot data dot achievement unlocks dot count So basically if this achievements count is greater than our achievement unlocks, then we need to add some more Okay, so now we do that by Creating a for loop and we need to just add in Um, some more falses. Okay. So basically we're just going to do var is equal equal to I equals zero. I is less than Um, we're going to subtract these counts together Okay, you know, I'm I'm really hoping this works. I think it should I'm kind of just experimenting here so basically We're going to add To our uh game dot data dot achievement locks and actually let's create a variable here called data equals game dot data Just so we don't have to write game dot every time Okay, and now we're just going to do data dot achievements Unlocks dot add and we just put in false. Okay. So now it's just going to fill in until we are equal. Okay And I think we could just set that to inverse and you know, let's get rid of these brackets cool Okay, so now when we unlock an achievement, we basically just need to Set this equal to false. Okay. So we do game dot data dot Achievement unlocks and we're going to set that to true Okay Oh, right You gotta do at id instead of equal to true Okay Very self-explanatory and I think I'm going to create a method where we update our achievement UI because we want to save as much Um cpus we can We're just going to create a method called updates Achievement at UI And this will be called Wow, I cannot type and this will be called whenever we unlock an achievement and when we start the game. Okay At the very end Okay, so now when we update an achievement, we need to scan through all of them And honestly, we could probably have another Like a secondary update achievement in here where we can do public void update Specific achievements UI so we could save even more Even it's not going to really matter because we're going to get achievement like very little and at a very little pace I guess a very uh Long interval so it really doesn't matter But just for the sake of it, we can just do int id here. Okay And we need to have access to our our achievements here. Okay So Now we just basically do Achievements at index id and we want to change the achievements. Okay Um, so we're going to set achievements equal to Uh So, wait, what is this? This is yeah, so we're going to set this to uh, we're going to set the color to Um, let's see I think yeah, we just need to do game.data.unlocks Right at index id Question mark and basically we're just going to differentiate between The these two colors here So our first one is this red We could just set that to that Very easy And honestly we can just do new color And this is an rgb anyways, so we can just do one zero zero. Okay So now we're setting it to this color if it's locked. Okay, so that's locked. Okay, so we need to um Do green first so new color and we're just going to do rgb Okay, so when it's unlocked we set it to green if it's not then we set it to red Okay And honestly we can run through this in a update achievement ui So we can do var i equal to zero And we want to stop at our achievements account Okay So when uh for var i is equal to zero and i is less than the achievements count We're going to add by one And in here we simply just update specific ui Okay, so now this is very easy. We don't have to update all of the achievements at once We can just do one when we unlock it, right? And we're just going to set we're just going to insert i in here Okay So the only time we won't really want to call this update achievement ui is at the very start. Okay And also we want to check for We need to do something with our names here because we haven't done absolutely anything. Okay um, so what we're going to do here Oh, yeah, we want to update specific ui here Right, and we're just going to put our id in here um, so in here now We need to set the text and now obviously I could just do that in here Let's do that because we only need to do it once so we're going to create another var i is equal to zero And if i is less than or not if And then we're going to keep doing this till i is less than As long as i is less than the count we're going to add by another i plus plus And now in here, we're going to set our achievements dot or at uh, i Yeah Dot title And we're going to set this equal to the achievement names at index i Uh, is that right? Oh, yeah, it's gotta be that text. Uh cool very easy Very easy to do it quick. Uh, man, I thought we're going to be able to convert that to for each bike is not Um, so yeah, that's a very easy way to set all of our titles only once because that's the only time we ever need to And we're honestly very close. We now just pretty much need to do the unlock achievements and this row right here. Okay So we need to do update row ui. Okay, so we have the we have the ui What about the rows? So we're going to make another method called updates row Ui and obviously i'm over complicating this by adding a ton of u Methods, but i'm really just trying to keep myself clean and trying to reduce how Like, um, how many times certain things need to be ran And also all of these can be private methods since they're only going to be accessed in this method in this class Uh, even start honestly Thanks, you know, i'm gonna leave it. I'll probably do it after data. So i'm gonna do start achievements actually Yeah, like that. Okay. So now for our rows is a little different. So we're gonna have to call this um We're going to call this an unlock achievement as well Okay, and also probably in both. Okay. So now what we're doing in uh update row ui Um Okay, so we're gonna also create another yet another method Uh, let's just copy paste this Okay, so we're going to do updates specific row ui Cool, and this will take in a int id And now what we're going to do here Is uh rows dot or at index id Now the only thing we have is an image row. So we're going to set the color equal to Um, so let's see we have two colors here So right now it's sets like this color right here. So this is the same color is that we can see in Uh anti-matter dimensions. So i'm just gonna kind of copy all these float variables over into a notepad So I hate how the the panel just keeps closing every time I alt tab It's a very irritating how you can't just like copy and paste Or even just copy and paste as like a json string, you know where you can just like format it is like this Just a listed string. I guess I don't know. Anyways, we have our float variables here Uh, just ignore me For now, we're going to set the color to what we have here And remember we have to add the f prefix since there are floats And like this and I'm going to shorten these to about Yeah, that's honestly not going to do much. So I'm just going to shorten shorten it to two decimal places Because that's really not going to make that much of an impact Okay, so now we need to differentiate between the gray and the green. So when does this occur? Well, we needed to check to see if all achievements in a row one through eight are Um Are good to go. Okay. So basically what we're going to do in here is create a temporary variable called or just a temporary uh bool Okay, and we're just going to call this temp and we're going to set it to false Now obviously we could just set this to var, but I'm just I should really start using bool like instead of var More often so you guys can actually understand what the variable is even though like, I mean, you know what? It tells it tells me what it is here. It's fine But yeah, so we're going to create a temporary bool variable here And what we do here is we're going to grab a for loop in here. So var is equal to Uh Yeah, so we're going to set i is equal to id. So what is id here? So now remember Um row zero Has indexes one through eight right and row one has indexes nine through 16 Or actually well, it's technically zero through seven and then eight through 15, right? Am I right?  So basically we need to just kind of check for this right here. Okay Now it's a little hard to kind of just convert one and two a's actually this might not be too bad So let's say i is equal to one. We want to start at eight So I think we just set i equal to um One No, that doesn't no it doesn't work like that I think we just set the set it's equal to Yeah, so we set it to id times eight. So that's the start right? That's the start Now what about the end the end is simply The end is equal to id times Eight because this is zero if it's zero. Yeah. Yeah, and then we add this by seven That sounds about right cool.  Okay, so we're gonna set the starting id times eight Okay, and we want to keep doing this until i is less than id minus Or id times eight plus seven Okay, and I don't believe we have to do any parentheses, but I'm just gonna double check Yeah, we don't have to And then we're just gonna add i by one Okay, so now we want to check to see if this achievement is good So we're gonna create um, actually no, we don't need to So a game dot data dot achievements unlocked at index i so We want to keep setting Okay, I'd say we just keep setting it's equal to whatever this is. Okay I feel like that's weird though I feel like there is a way you know what I have an idea. Well, let's get rid of this Right here and let's create an int counter, right? So we want to see if all eight of them are true, right? So what we're going to do here is that If uh, if this is true if this achievement's unlocked is true Then we're just going to add counter. Okay, and now we're going to do if counter is Greater is basically is equal then or equal to if counter is equal to eight question mark Then we're going to set the achievement row to on okay And uh, let's grab this background color here The ninth thing is that we could just do that And it looks like it's the same for all of them very nice. I like that Otherwise we're going to set the color equal to this number right here Okay, don't forget to add the f prefix Like that Okay, I'm just going to add the eight so we don't get any like fade Okay, so now let's actually move this into Uh, let's just um Yeah, let's do this we're going to create a private bull Okay, now because remember we need to eventually add this to our multiplier So I know there's a lot of stuff going on but remember this is very just convenient for us So it'll have to just like, you know, check to see if this row color is this, you know I'd rather just have a method Um row i'm just going to do is row completed Okay, and we're basically we're just going to take in another int id and we're going to do all of this here Okay, and we're basically just going to return counter Uh, if yeah, we're going to return if counter is equal to eight Simple enough, right? We're basically just moving this to a new method and instead replacing this counter equals eight If it's equal to eight and we're just going to just replace it with is row completed id Now this is a one line method The convenient thing here is that we can eventually loop through all of these is row completed uh, and then Add it or multiply it to our the this right here Okay, our row multiplier This is a lot going on. I know guys Hope you guys are hanging in there. Um, okay So now we're going to basically do the exact same thing in our private void update row ui And we basically just call this update specific row ui For rows dot count. Okay, so we're pretty much doing the exact same thing here Also, can I yeah never mind um Now we call this update row ui inside the star achievements I'm going to do it right after we call the update you achieve achievements ui Perfect. So I think we have everything done except for actually triggering the triggering the unlock achievements, right? So what I'm going to do here is we don't need this anymore. I'm just going to Make a new region down here And this is just ui related And I except for the except for one of them. That is the is row completed except for that because we're going to need that for later cool So now I can just hide the rest of the methods inside this ui related just like that and if you guys are still here Make sure you Have all of this code caught up okay and Let's start doing the Let's start doing the action Okay, so what we're going to do here is we basically just got to check through each achievement here So the first one should be very easy. It's my a single dimension for a single a single dimension, right? So I'm going to close this honestly. This is kind of actually not closing move it anyways um Okay, so what we want to do in here is we want to check to see if Now this is not going to be a very clean process. Okay. I'm going to be I'm just going to be real here This is not going to be a very clean process. We're basically just checking everything manually, right? We're going to set data equal to game.data here before we kind of not type game dots every time so if the data dots, um Dimensions so dimensions in an array. So we're going to do count So if dimensions count is greater than zero Then we simply have to unlock this achievement right here. Okay, and we set that to zero Pretty easy. Okay And we're not done here. The other thing we have to add is I only want to check this once Okay So because if we keep checking this over and over again, this unlock achievement is going to keep running this ui And it's just going to be annoying and it's going to look funky and it'll also use some cpu So the nice thing about um, oh, yeah, so what we can do here Um is add this data dot achievement unlocked at index zero So if it's false, we haven't unlocked it yet, so then we can call this now What's the issue here is that this is an array and we need to call the the At index zero. Okay, so that's pretty self-explanatory. So basically if our first dimensions It's greater than zero and we haven't unlocked this achievement yet. We're gonna unlock it. Okay Now We can for loop this we can honestly for loop through this first row. Okay Just to save up some time because honestly We're gonna be like doing one two three, you know, we can for loop only through this first row Okay, well, I'm just gonna throw it out there So far like we equal the i is equal to zero and i is less than eight Uh, and then we're basically just going to run through this if statements And replace the zero with i i and i and we're already done with the first eight achievements. Okay So now we got to go back to the second row Okay, so let's see. What is this one to infinity? We're not going to get this one, right? And also this hasn't a reward too So we can have to we're out to manage some of the boards and I don't believe any of these have rewards other than The achievement multiplier. Yeah, that's correct Okay, so the first one's infinity and that is pretty easy. You just set f data antimatter is greater than or equal then uh double dot max value and achievement Eight because remember we're doing zero index. So this is zero and this is eight and this is seven right here So if we haven't locked it then we're gonna unlock achievement number eight Okay, so now this one is the float Okay, so we're gonna replace this one with a float dot max value pretty easy And we just change the number here You can kind of see how to copy and paste this for most of them Okay, have exactly 99 eighth dimensions. Okay So copy and paste this replace the id with 10 And this is asking for eighth dimensions Right. Yeah. So this is dimensions count right here And Uh, we're gonna replace this with a seven right here And if it's greater than or equal then we can basically just greater than or equal than 99. Okay You guys see the pattern here, I hope so what I'm gonna do is I'm gonna skip along So you guys don't have to hear me talk and I'm just gonna do all the achievements and I'll come back to you after that Okay, I am back that was pretty pretty easy and I don't really have to explain. I mean, I guess I can so basically this is the actually I think I already did that one This one is uh, if antimatter dimension or antimatter is greater than 1 e 80 And that's a little achievement 11 dimension shifts is 10. That is uh, this one or dimension boost We have antimatter galaxies, which is that one Double galaxy and then buying a single first dimension When we have 1 e 51 50 of them. So how do we calculate that? So basically what we do is that we check the count for if it's greater than uh, or greater than or equal than 1 e 50 150 And We check to see if that dimension level level not count. Okay Is greater than zero because we want to buy a single dimension, right? Not 10 because that's just not going to count because this is by a single first dimension. Okay So again, also, uh, sure. I wasn't showing this so The one thing I also got to do and I got to learn is pop-ups or hover over or whatever these are called I haven't learned how to do these so i'm not going to implement these in this video Maybe I will eventually and i'm honestly going to have to I'll probably have like a boxer here or something. I don't know But i'm eventually going to have to learn how to do this because nobody's going to know what this is All right. Okay. So we have our uh, achievements done. Let's give them a shot Oh, yeah, we also want to add this start achievements into our game controller So let's go back to our game controller script. So what's wrong here? Okay, nothing Thanks for the false error Um, so yeah, let's go back here In after start we can do uh, we also need to add our achievements here public achievements achievements Okay What's wrong? Oh achievement manager got it And uh, achievements dot start achievements got it And we can honestly just do update here Okay, I think things are looking pretty good So I am expecting some bugs, but I'm also at the same time really confident Okay, so we have our game here done. Oh, right. Yeah And in our game manager, we want to drag in the achievement controller And I think we are good here. I am not sure what's going to happen with achievement names. Let's see what happens there It's supposed to auto initialize, but let's just see Okay, it doesn't so that's great. So that means using a list was completely useless So what we can do here is just take this in the start method Unbelievable You let me down unity So then at the top of the start you can just simply add Achievement names is a new list and then all your strings here Really inconvenient, but it's okay. It'll work regardless of Whether we have that or in a separate method And we're actually got to deal with it Okay, so we're saying we're already getting some errors. We have some null reference Actually, let's check this out. Let's see. What's wrong. I have a I have a Okay, so we have all of our let's see what's going on here That's going on So it seems like it's the It's got to be this. Yeah. Yeah, I see It's this right here, okay It's this data achievement lock unlocks. The reason why it's doing this is because it's still technically not initialized Which is an issue Okay It's frustrating. Okay. So now what we simply got to do Huh, this is the annoying part What we're gonna do Is try catch. Okay. Now. I can't really think of another way of doing this other than Searching see if it's null but I'd rather not do that So what we're gonna do is just set a random temporary variable that we're never going to use To data Dot achievement unlocks now this might be bad practice. I have no idea if there's a better way There is let me know in the comments below But basically we're just going to set this variable to temp and we're never going to use it, right? I don't want to print anything because that will I don't want anything to build up in the logs But we're going to set this variable to temp and it will generate an error and then we're going to catch that and what we do here is we set um our achievement unlocks like so And also you see we have this create list here what we can do here is type data with a capital Oh, wait, is this private?  We already have our first achievement done Yep, everything looks good Let's see. So 100 anti-matter is a lot. Let's just keep buying these. Oh, yeah, we got to do the navigation first Okay, so one more thing before we do this is I'm going to create a new empty object called navigation Actually, you know what? We can do this in our, uh, games management or game controller because really there isn't much in here So in here we have, uh, we need two screens So we want to We want to, uh, add we want to make these Here, let me turn that off Okay, so basically what we haven't done yet is Add our canvases to dimensions and achievements. So what to do Or how to do that is type in graph or something like that and get graphic ray caster and it'll automatically set up your canvas Just fine. Okay Just like this and these are the exact settings. So you don't touch them at all Okay, so now in our script and our game controller, we're going to add two canvases one for the dimensions canvas And the second one for our achievements canvas. Wow, I cannot type. I deeply apologize Okay, so now what we do here is create a navigation system here public void, uh, navigate And we have to have our custom string in here And the string location will be in here and in here at the top. We're just going to set them both the false Okay, so game object dot set active false. Okay, we do the exact same thing for the achievements Okay And now under that we create a switch case for our, uh, location And our first one's going to be dimensions, right? So dimensions Okay, and that's pretty self-explanatory. We set the dimension canvas to true And don't forget the break Okay, and we're going to do the exact same thing for our achievements. So make sure you replace the correct stuff Okay, it's cool. We have our navigation system done pretty easy, right? And also another thing is that some of this UI, we actually don't need to update Um, let's see. Let's go to our dimensions right here Right here So we got tons of stuff in here.  Okay. Do you see that? Well, we pretty much don't have to run all this. Okay. This is all user interface except for this dimension this right here, right? We can honestly just get rid of this move it to the top Okay I probably should move this dimension shift boost. I'm curious. What is this? All right. Okay, cool Yep Okay, so This is all user interface correct dimensions unlocked. We kind of want that at the top too Oh, yeah, and this dimension count obviously we want that at the top above all the user interface So now why did we move all that? Well, we want to move this all into a An if statements, right? So we only want to update this UI if game dot um Let's see Dimensions can this dot game object dots active self Okay, now we don't need to do this for achievements because we don't have a constantly updating UI So it's not nothing we need to worry about After that, we move all of this back to our back to this if statements Cool, beautiful Okay, that's what ours looks like Okay, and now we can finally apply our navigate methods Uh, click the plus sign on both of the buttons drag script or wherever game controller is and now for each button I'm going to add. Oh, yeah. I want to add navigate to both buttons Okay, now for the dimensions the string that we put in the parameter or the arguments is dimensions and The argument for this one is achievements. Okay We're basically just trying to identify which button we're trying or which one we're trying to toggle So back to our game controller. We need to drag our Dimensions canvas and our achievements canvas. Okay, cool. Everything should work as planned Sweets we now switch between so let's get our first uh second dimension and we have a new achievement So now let's just casually keep playing the game. Okay So let's just keep playing and actually I'm a little impatient. So I want to see what this row does, right? So one, two, three, four. Yeah, okay. I'm just making sure I've been really like procrastinating working on the achievements because I was just like, and I don't really feel like it Okay, so we have floating antimatter. That's good Cool. Alrighty, we're almost there Yeah, we're seeing we're getting a bunch of these achievements now something that we shouldn't even be getting now It's okay I just want to see this achievement in action Okay, one more And we should have a row complete Ah, we don't have a row complete. That's a bummer I think the reason why it's not working and if I save the game and close it'll work just fine. Let's see Let's see if the achievement saved in the first place Cool. Okay, so now the issues that our rows are not updating Damn So let's go to our achievement manager and let's figure this out. So let's see Um So update row ui occurs at start Okay Rows count Let's see is completed. I feel like it's something wrong with our is Completed. Okay. I feel like it's something wrong with that so our Hmm Okay, I see the issue here. It's this right here. Okay. It's the less than we want to set that to i less than or equal then unless we just want to add a plus eight here, but I'd rather just do um Less than or equal then just because it kind of like makes sense on how we're viewing it here So just change the symbol right here to a less than equal then rather than just a less than and everything should be beautiful Sexy ready to go Alrighty, I'm hyped. Let's go Also, I just want to say the next video will be infinity. Can't wait for that Yes Okay, cool. So we have this done. However, we um We still got to do this boost. Okay, so let's just let's just get that done enough with it won't take that long Okay, it's just take some passion Or discipline. Okay Um, okay, so we're gonna add tm pro to our achievement manager as well Uh, we're gonna add another tmp text called achievement boost Text and we also want to yeah, that should be fine And we're gonna add a method up here called public big double Uh achievement boost Okay And basically we're just gonna add a temporary counter again And we are going to make a for loop var i equals zero and i is less than rows dot count. Okay Cool And basically what we check here is if is row completed at index i or The argument is i also if you guys are confused with argument parameter is This is the parameter right here, right the intake whatever it's trying to take in right That's the parameter the argument is whatever we're trying to put in. So this is the argument right here This is the parameter. So just just to clarify Um, so if the row is completed that we're just going to simply add to our counter Okay, and let's actually do Uh achievements Completed okay, and then we're gonna have another big double up here public big double achievement boost and that is going to be equal to big double Uh pow 1.5 and I guess I guess each row is 1.5 times. That's my guess It's 1.5 times uh 1.5 to the power of achievements completed Cool Easy and then here we return the counter Okay, so now let's get this text here Set it in our update and actually this is one of those things that we're only going to update every frame So just for cpu purposes, we're going to do if game dot navigation Uh, where is the canvas Right here achievements canvas dot uh active self. Oh, yeah, it's game object dot active self Then we're going to set the text equal to Uh, whatever we have here and I'm just going to jot that down real quick. So current achievements multiplier On each dimension. I know I can't you can't see it one second Okay So a current achievement multiplier on each dimension And we want to add that dollar sign so we can put variables in the middle of a string And that is the boost. So let's do Uh, yeah, so boost dot psi Right here Now the reason why we do dot psi is because we are trying to do the scientific notation and we add our use our Extendables right here our extendables namespace and we can use dot psi Okay And that will be just the next right here Beautiful and also I think we just want to show one decimal. So let's just do one Right here. I think that's correct Okay, so now we actually need to use this boost too. So each dimension will have a dimension shift boost right here Okay, so this temp boost. I believe we just multiply it by the temp boost right here Oh, yeah, so that's the power of this. Yeah, cool And then we multiply this by let's see actually This dimension boost right here Uh Yeah, I think I'm just going to multiply the dimension boost by uh the achievement boost right here and you simply just do Uh Game dot achievements. I really don't feel like adding it to the script because we're only going to be using it once So do game dot achievements dot achievement boost times the rest of whatever it was in dimension boost Okay Cool. So now it should have an effect And it should show up as 1.5 times Oh, it's going to give us an old reference Hold up Okay, we got we forgot to drag this text in here this achievement mold. So drag this tmp text in here Okay And then we are going to See if that works. Yeah, there we go Now the test to see if it actually works. We can just simply change this and it'll never change, right? You can change it here, right? It'll change until we go back to 1.5 times because that's the correct boost Now we can just keep going but I really don't want to I kind of just want to end this video Because I don't want because I know you guys are probably getting bored of me talking for so long So anyways, if you enjoyed this video if you learned something new make sure you smash the like button Subscribe to my channel for new and turn all those notifications for future videos. We're so close to 2000 I also just want to say crypto grounds merch is coming soon. I'm planning on releasing it 2500 subscribers. Maybe sooner. Okay, so Keep update if you're interested for that. Also, please give smash the like button Give me all the support you can help me revive my channel every single like and comment helps This this video grow so it means the entire universe to me if you guys do that Anyways, I'll see you guys in the next one. Peace


Proudly we hail. New York City, where the American stage begins, here is another program with a cast of outstanding players. Public service time has been made available by this station for your Army and your Air Force to bring you this story, as proudly we hail the United States Army. Our story is entitled Ranger Tab. This is the story of the modern Rangers of the United States Army, the rugged, versatile officers and men who've measured up to the infantry school's most challenging tests. Our first act heard and will rise in just a moment. Right about now, a good many of you young men are thinking in terms of starting a career, getting into a promising trade or profession with no delay. Why don't you find out about the career opportunity now open to you in the United States Army? The Army school program was especially designed for ambitious young men like you. Here's how it works. Once you've been accepted, you're trained for the job and type of outfit you're best suited for. Then advancement depends directly on your job, skill and efficiency.  Become financially independent with unlimited security now and for the future by joining the United States Army. Learn about your special enlistment opportunities now at your local United States Army and United States Air Force Recruiting Station. And now your Army and your Air Force present the proudly-vehiled production Ranger Tab. Right, Galzano. There's your brook and the bridge ahead. Pull up under the trees just off the road. This bridge, Sarge. You really figure this is the one that'll tenet meant? This is it. Pull up. Well, palsy, if Sergeant Logan been blindfolded all the way from camp, he could still nail this rendezvous point in the middle of a drunken from farce. What's the big idea if you've been doubting it? Let it go, Corporal. We're here. Good 20 minutes. I had to schedule. Let's get out and stretch our legs. Yeah. Hey, Corporal.  Don't taller. You'll scare them. Oh, boy, would I give for a fish line at some bait. Galzano. Yes, Sergeant? I told you we had 20 minutes to wait here. If you want some of those fish, what's stopping you? What's stopping me? No line, no hooks, no bait. Oh, you could rig a snare, couldn't you? Where would I get a cord? Well, we just passed spruce back there. Work up some of the fine roots. You could twist yourself a cord in no time. You can make cord from spruce roots? Spruce? Indian hemp? Well, half a dozen plants you can see from this bridge. Or if you wanted to net the fish, or spear them where you could. Oh, wait a minute, Sergeant. Okay, okay. You got me on the ropes. But all I wanted to do was put down a hook with some bait on it. And when those perch latch onto it... You got paper clips in your pocket? Well, sure, I guess so. Oh, here, here. Got half a dozen of them. Thanks. Now, you just straighten out this first one. Say this way. And bend back the end. You got your hook. And if we open out the rest of them... Hey, Calzy, you're in business. That's a hook and a 12-inch leader-logans rig for you. And for paper clips. Hey, come on, let's grab some grasshoppers or find some worms. What I don't get, Sergeant, is how you learn. Hey, Calzy, did you ever see the Ranger tab over Logan's divisional patch? Ranger tab? Oh, a tech how to do with fishing. Hang on, I'll live off the country. While the Rangers can find food where crows will be lining up for K-Rations. Come on, tell them about it, Sarge. We've got time here till the tenor catches up with us. Not time enough, Calzano. Our Ranger training covers a lot more than plain survival techniques. It's an eight-week course, and from the day each candidate hits... Fort Benning, Georgia, Ranger Training Command of the Infantry School, welcomes selected volunteers drawn from the United States Infantry, Airborne, Armored and Combat Engineer units all over the world. Addressing a squad of the new class that included Sergeant Jim Logan, Tactical Officer Ben Thompson outlined the challenge of the eight weeks ahead. What? I'm Lieutenant Thompson, your tech officer for the duration of the course. Chiefly, I'll be observing and appraising the job you do during the three weeks here at Benning. The two weeks at our Florida camp and the final three weeks in the mountains. You'll be instructed by specialists. You'll operate through your own leaders. Now, most of your learning you'll get by doing. We aim to pack a great deal of it into these next eight weeks. How to eat, move, and fight effectively under all kinds of conditions. Heat, cold, tropic, mountains. But the main thing you'll learn if you make the grade is that a good man can always do a lot more than he might think he can. Now, this course is a challenge. Meet it, and you can put that Ranger tab on your shoulder. And when you do, you'll know that you're rated with the best fighting men on earth. You'll find training schedules posted in the mountains. Man! They really figure to keep us jumping around here. Look at that schedule. Three mile run, bayonet drill, hand-to-hand fighting, and then they shove in some straight exercise. So you figure they'd haul us down here for eight weeks in the sack, Sergeant? Get that organized, fellow, and I'll sign up. My name's Logan, Jim Logan. You got my sympathy, Sergeant. I'm Danny Marlowe. Are you teamed up with anybody yet for this body system they want us to follow? Logan, you've got yourself a partner if you'll put up with me. But what? I haven't had time to get the Carolina sand on my boots yet. Here I am tucking out just looking at this schedule. If you get left in orphan next week, don't say I didn't warn you. All right. We'll take it in cadence on cumulative count and by mass command. To the starting position, met! Starting position, go! The exercise, that's your command. Met! In you, cadets! Exercise! Cut, two! When surprised up close, you don't lift for a full aim. You snap off a pair of shots fast, then see if you need me more. In your crouched this way, you just jump to face the sound of the enemy and let your body do your aiming for you.  Logan, first dummy. Hey, Jeff. Yeah, Danny. Figure, we've run clear over to Tennessee yet? I'd call it going in the fourth mile. Back on that third mile, I was calling my pack 500 pounds even. Since we started up this hill, I'm going for the world's weight-toting record. You can't make it, Danny. Where my pack feels, I'm lugging all the lead in the world right now. All right, Marlowe, suppose you orient the map for us this time, huh? May I do it, Lieutenant? How'd you arrive with that? By inspection, sir. Set it on that knob over beyond the gully. Knob isn't named on the map. Are you sure how Marlowe picked it out? You mean contour lines, Lieutenant? Check. Delaney, get your compass on the knob as you'd use to get over there. I'd call it 305 degrees, sir. We had a patrol on that knob, Marlowe, and you wanted a report back in position. How would you write it in terms of this map? I'd use an overlay. Coordinates on a thrust line, if we'd set one up. Know what a thrust line is, Logan? Yes, sir. Delaney. I can't say I'm all the way straight on, Lieutenant. Which means you don't know. All right, let's get you straight on. If a report made with standard grid coordinates fell into enemy hands, they might nail our patrol in two minutes. For any given area, a commander can get extra insurance against that by picking any two points at random and calling a line drawn between them the thrust line. Now, for this area, we might call it from the head of the gun. On a night compass course, when you hit a swamp or an enemy outpost or a river that in the end is around, you've got several ways of making the detour and getting back on your asthma. One's to right angle off, counting your paces when you're past the obstacle. But a faster one, even when it's too dark for landmarks, is to try averaging the angles of departure and return. Have you got that? All right, let's try it on a double. Logan, you lead us on a 45-degree swing to the left for 10 minutes, and then get us back on the original asthma. Let's see, your first checkpoint is that split pine up ahead. We'll start off easy this morning. 50 push-ups apiece. The position? Move. Start. Push-ups. Exercise! As rangers, you men will be doing more on less than the enemy expects of you. You'll travel faster, deliver more firepower at any given spot and time if that's your assignment. When I say rangers, of course I mean you and the men of your own outfit you'll be working with on return. A ranger gets top use out of every weapon, every piece of equipment carried. On demolition, if a job calls for a half pound of explosive material, you don't sock in two pounds and you don't try to get away with two ounces. Remembering your beehive principle, you shape and pack your charge where it'll do what you want it to do. You ready there yet, Logan? All set, sir. I'll get you capping. What's your fuse set for? One minute. Check it, Marla. Stay there, Brooks. Looks all right to me, Lieutenant. Light it, Delaney. Fire in a hole. Lieutenant, aren't we starting out of here? We can get into our ditch and behind those sandbags in 15 seconds and that's walking. Lieutenant! All right, let's get over and back to some colors. But we're walking there, Marla. What's this, Lieutenant, made out of ice or something? It's a one-minute fuse, Delaney. I got it myself. Okay, but what if you make some... All right, down back to the sandbags here. Things to remember about explosive, Marla. You don't underrate them and you don't overrate them. They're a tool. Use them right and they're no trickier to handle than my facts might be. All right, Logan, let's see if your tree comes down. I shouldn't have come to Ben and Jim. They're trying to get more out of me than I got. Ah, cut it out, Danny. You weren't a good man. Your company commander never endorsed you for him. What's really getting you down? Well, snakes, for one thing. I've hated them since I was a kid and saw a man die from a rat. Look, by his face, all black and hollering... They haven't lost a range of candidates yet from snakebite, Danny. They can always start with me, can't they? Have you seen snakes since you were a kid? I'm crazy, of course not. Well, it could be like explosives. If you know enough about them, maybe they're not so tough. Look, Jim, if we were in combat and had to do something, might be I'd make as good a try as the next guy. But to keep beating your brains out walking into 98 kinds of trouble just for practice... Nothing we get into here's worse in combat, Danny. You know I had a year and a half in Korea, I ought to know. But if you have enough tough dry runs and a course like this, there's a lot less can throw you off balance later. That's how I try to get out of my knees. Wake up ten yards behind my goal post and keep you in shoveback all day long. You just watch down in Florida, Jim. If I don't wind up smack at the bottom of the thickest, blackest, most alligator-ridden muck a man ever got himself in. Man, you've been doing so well on your patrol problems. Tomorrow you're going to have a special Florida-type beach party. Picnic, short dinner, all the trim. What do you know, Jim? Oh, Simon the Greek Thompson breaking down. The only catch is that you're going to have to cover 20 miles of swamp and scrub to get to the beach. You're going to promote your own picnic on the way. You can find your food wild, run it down or pull it out of the sea with a tackle you won't provide yourself. Well, Danny, you mean we don't even get to take off? No child lines tomorrow ranges and no rations packed. You get a machete and a compass of peace and you're on your own for the day living off the country as you go. You are listening to the proudly-behaved production Ranger Tab. Let me turn in just a moment for the second act. What's your interest? Is it radio, photography, motor mechanics, metalwork? If you'd like to learn a highly skilled, well-paid trade like pharmacy, watch repairs, photography, motor mechanics, or electronics, there's no better place to learn than in the United States Army. The Army offers training in dozens of highly specialized jobs, jobs that will pay you well for the rest of your life. Many veterans have already used their Army training and experience to build profitable careers for themselves. Out of the skills, the Army taught them. You can do the same. Visit your local United States Army and United States Air Force Recruiting Station today. Talk it over and find out what's in it for you when you serve your country as an American soldier. You are listening to Crowley We Hail, and now we present the second act of Ranger Tab. In a world where the defense of freedom can call American troops anywhere, to the Arctic, to mountainous countries, to deserts, or to tropical lowlands, all soldiers have to expect the unexpected. In the rangers where stress is put on self-reliance and resourcefulness, candidates learn to find food and water and to operate with relative ease under conditions where untrained they can then might panic or starve. Some more arrowhead plants, Danny. Want to dig for the bulbs?  You don't take to the arrowhead bulbs? All right. I can get the cattail roots and the dandelion down. I'm glad to know about them if I ever get into a jam, but I'm getting hungry. Hey, we're in, Danny. You hear that? What? There's five bucks a plate back in restaurant country. Come on, we'll rig nets out of this fiber we lined up and catch ourselves a dozen of them. Hold it! Hold it! What is it? Don't move. There's a snake right behind you.  Jim, it's a car. I'll take it easy, Danny. I can chop him with a machete. Jim, don't go near him. There's bait when we hit the shore and start fishing, Danny. Thanks for tipping me off. Jim, I wouldn't have gone near him for... Oh, you handled the Ratlin class the other day, didn't you? No. No, I... I kept that opposition covered for me. Yet it's head while I just faked handling the body. Danny, you're not helping anybody when you're talking. Okay, okay. I know. I'll watch the rest unit. Should be all right. Well, I'm still giving snakes plenty elbow room. They don't have elbows, and they don't have... All right. You get better than an assist on that one. Come on. Let's get collecting our frog's legs. Jim, there could be moxins in that water. Let's just keep going. Daniel says frog's legs and frog's legs were heavy.  The ranger candidates fared better that day than they thought they would. Rabbits, turtles, berries, edible plants and wild fruit on the way. Crab, mussels and fish at the shore in plenty.  They even learned that some kinds of seaweed can be a nourishing delicacy. And in the great Smoky Mountains of northern Georgia, as the training moved into the last three weeks, men found that food, shelter and supplies can be improvised high as well as low. And for getting down sheer cliffs quickly and safely, the rangers in training learned the mountaineer's art of repelling. Now, we told you not to try going up or down a cliff unless you have to. In mountain country, you generally either be following the ridge line or a valley, not trying to keep cutting across the ridges. All right, if there's a way around a cliff, take it. If there isn't, and you have ropes, repelling can help you. Now, the trick's based on the friction of rope against your body. Okay, Marlowe, get your rope around this tree. Tying it around? No, no, no, the free end around. Then haul till your two ends are even. And you want to be sure you pick a good solid tree or rock, one that won't snag the rope when you want to haul it down after it. All right, Marlowe, back now, four or five feet from the tree, straddling your rope. Keeping it full tide? Anyway, reaching in back, if you wrap the pair of ropes around your left thigh, up across your chest, over your right shoulder, and take your free end in your left hand and back. Now, the other you take with your right and front. All right, dropping down this cliff, you take it and spurts. Facing in, feet against the rock when you make contact, paying out line with both hands. You're asking us to drop down that cliff now, Lieutenant? Go to the edge and get the feel of it. I'll lean back now. In that rig, you can't break loose unless you panic and let go of the rope. Lieutenant, I wouldn't let go of this rope. All right, Marlowe, pull back and let Logan get the feel of it. And, Delaney, rig your second rope on that other tree. I'll drop down the cliff once and climb back. Then, Ollie, you get a shot at it in turn. Man, this is fun! Come on, Jim, I'll race you to the bottom of the cliff! Each man out of the plank in turn and jump on command. Jim, that's a 30-foot drop there. They've got a grenade charge way. The grenade, the blanket's in the water, Denny. Or you can get it wet, isn't it? Marlowe out, Logan on deck. Every turn. Logan out, Ortega on deck. From the days of Rogers Rangers, Morgan's Rifleman, and a handful of unstoppable Kentuckians who followed George Rogers' clock to the capture of Kaskasky and Vincennes, through to the memorable combat exploits of modern American Army Rangers in the Sicily landings, at Anzio, Chistana de Litoria, Omaha Beach, Luzon, and in Korea, Ranger tactics have always stressed the shock value of swift traveling, highly trained units delivering an outsized punch in proportion to the numbers actually used. Today, that extra punch and those special skills are being added to all infantry units as increasing numbers of Ranger train non-comes and officers return to their outfits and not as lone wolves. The Rangers are trained for leadership and cooperation with others at all levels from battalion to six-man patrol. So, Danny Marlowe learned in Georgia after his surprise selection as first-dazed patrol leader on the important final mission to simulate destruction of the Blue Ridge power installation. Okay, guys, hit for cover. Christy Notte got on planks, Trevoli out on point. We ought to wait for that first aggressive outpost, Danny? Yeah, pass the first one. What are we doing here in those turbines we're looking for? It's pretty slick, Danny, making that first faint down below the bridge to draw off most of the aggressive patrol. Ah, it's four-leaf clover stuff, Jim. No, not lucky, Danny. You've figured it out and made it work. Big problems are still ahead. That's why I wanted to check this map again. You got our route worked out yet? I got an idea, but maybe all of you better hear it first. It'll be coming straight out of your hides if we try it. Out of our hides? How? I was thinking of taking a wide swing and hitting the dam from the northeast. The northeast? You mean going clear around the north? Right, right. The other side of the reservoir. Wait a minute, Danny. That could be out in 20 miles a tough up-and-down country to what we have to cover. Well, that's why I think it would work. The aggressors got in there looking at the same map we got. They know how tough the terrain is, and they know any attack mission. They'll be looking for the fastest way of getting there. Oh, but we're on a time schedule, Danny. We've got to get there, hit the turbines, and then get back to the base by over. I know of a schedule. I'm saying we buy those extra 20 miles out of our sleep. Keep pushing all of the day and most of tonight. And then hitting them from the side, I say it could work. How about you, Oteigan? Well, we'll cross them up. Okay with me. You, Clark? Well, we can catch up on our sleep after we blow the turbines. I'm in. Well, Christy, Danny, and Travoli said they'd take it any way we wanted to play it.  Well, let's get pushing. I've got those extra 20 miles to cover. We better keep driving all the way. Jim Logan was patrol leader the second day, and he kept the squad pushing ahead at the headlong pace they'd maintained from the start. Moving fast, but with points out and keeping security all the way. This was applying all the techniques they'd learned in the hard weeks behind them. Covered, deception, rock work, survival tricks, Matthews, river crossings, and a dozen more. And the chief truth they'd gained all through the course. When men lick their own doubts, there's almost nothing that can stop them. There was a near ambush and a chase late on the second afternoon, but the patrol was coming from the unexpected side. And after they'd swerved and pushed on through, their last miles to the dam were through the thinner defense lines they'd hoped for. Greeting and crawling the last 300 yards, their exhaustion forgotten in the excitement of the showdown, they trapped and stifled the outcry of the one aggressor sentry between them and the objective. Slipped into the designated target point and placed their simulated charge. Hey, Jim. Jim, light up and let's get out of here. No, it's not right yet, Delaney. You've got to put on something to make sure the charge will blow in against the turbines. Look, this is a fake charge. It's tough. I've got just getting fancy around here. We need packing to make the demolition sure. Jim. These sandbags help. But, Danny, you're supposed to be back with them. Well, Clark and I figured we came this far and might as well do the job up right. We've got these sandbags from that, uh, God box. They make it a number one job, Danny. Let's get them packed on, all right. Okay. All set. Oh, and just remember, guys, fast and quiet on the way up. But there's a fight round the booth at the security position. Here she goes. Fire in the hole. Let's go. Ranger-Candidate Logan. Candidate Logan, sir?  You've earned this tad and we're proud to have you wearing it. Congratulations. Thank you, sir. Ranger-Candidate Marlowe. Now, look, Sarge, maybe I shouldn't ask after hearing you tell what it takes, but... Well, how does a guy get picked for this Ranger school? Why, it deals open for anyone in the Army, Carl Zano, from PFC to Captain. If you're under 33, qualified as a sharpshooter or better, and have some other qualifications, I'll tell you about. The main thing, though, is that no one gets picked to try. Yeah, but Sarge, and if you just... No, all Rangers are volunteers, Carl Zano. If you want to try for this tab, you do the reaching yourself. And you're the one man who decides whether there's one waiting for you at Fort Benning. Here's a special message to all Army veterans. You are urged to find out about the special enlistment opportunities now available to you. You can now enlist directly for the Chemical Corps, Engineers, Infantry, Armor, Ordnance, Army Medical Service, Artillery, Quartermaster, Military Police, Signal, or Transportation Corps, any of those technical services. This is an opening made especially for you and is not available to everybody, only to those of you who have had prior Army service. Of course, you will have to pass the other qualifications, too, the age limits and mental and physical examinations. But as an Army vet, you're already acquainted with a high caliber of men who meet the test. That applies also to the paratroopers. Only you men with prior service in the Airborne are privileged to enlist directly for it now. Get full details about these opportunities today at your local United States Army and United States Air Force Recruiting Station. This has been another program on Proudly We Hail presented transcribed in cooperation with the station. Proudly We Hail is produced by the Recruiting Publicity Center for the United States Army and United States Air Force Recruiting Service. This is Kenneth Banghardt speaking and inviting you to tune in the same station next week for another interesting story on Proudly We Hail.


Gang, let me give you guys another update. I'm not going to read the chat for just just a couple of minutes, right? And it's in regards to comic books, okay? Now, as you know, and by the way, if this is a sort of update that I'm giving on a current events livestream that we're having on January 31st, 2022, and if you're watching this little segment on SensorTube, the update regarding the comic books involves a topic of discussion which we're not allowed to talk about on SensorTube, okay? So, if you want to know what my update is regarding my comic book pollist, a comic book update, because I know there's a lot of people following my work on SensorTube because of the comic books, I have a pretty important update regarding comic books, but I can't load this on to SensorTube, so the link will be in the description of this video after this livestream that we're doing right now on Twitch. And of course, you can come to Twitch and hear this livestream when we do livestreams here, right? But this update will not be available on SensorTube. The link for the update will be available on Bitshoot, Rumble, and Odyssey and will be in the description of this video. I'm going to go back to the livestream or that we're doing right now and I'm going to give this little update regarding comic books.


Almost universally, research findings show a poor vitamin B12 status among vegetarians because they're not taking vitamin B12 supplements like they should. And this results in an elevation of homocysteine levels that may explain why vegetarians were recently found to have higher rates of stroke. Of course, plant-based eating is just one of many ways to get B12 deficient. I mean, even laughing gas can do it. Even as short as two days, thanks to the recreational use of whipped cream canister gas. That's something new I learned today. Anyways, if you do eat plant-based, giving vegetarians and vegans even as little as 50 micrograms once a day of cyanocobalamin, the recommended most stable form of vitamin B12 supplement. And their homocysteine levels start up in the elevated zone and within one to two months their homocysteines normalize right down into the safe zone under 10, or just 2,000 micrograms of cyanocobalamin once a week and you get the same beautiful result. But not always. In this study, even 500 micrograms a day, either as a sublingual chewable or swallowing regular B12 supplement, didn't normalize homocysteine within a month. Now presumably if they had kept it up, their levels would have continued to fall like in the other study. But if your plant-based have been taking your B12 and your homocysteine levels are still too high, meaning above 10, is there anything else you can do? Now inadequate folate intake can also increase homocysteine, but folate comes from the same root as foliage. It's found in leaves, concentrated in greens, as well as beans. But if you're eating beans and greens, taking your B12 and your homocysteine levels is still too high. And I'd suggest trying as an experiment, taking one gram of creatine a day and getting your homocysteine levels retested in a month to see if it helped. Creatine is a compound formed naturally in the human body that is primarily involved in energy production in our muscles and brain. It's also naturally formed in the bodies of many animals we eat. And so when we eat their muscles, we also can take in some creatine through our diet. We need about 2 grams a day, so those who eat meat may get like one gram from their diet, and their body makes the rest from scratch. There are rare birth defects where you're born without the ability to make it, in which case you have to get it from your diet. But otherwise, our bodies make as much as we need to maintain normal concentrations in our muscles.  The level in vegetarian muscles is lower, but that doesn't seem to affect performance. As both vegetarians and meatians respond to creatine supplementation with similar increases in muscle power output, and if vegetarian muscle creatine was insufficient, then presumably they would have seen an even bigger boost. So basically, all that happens when you eat meat is that your body just doesn't have to make as much. What does this all have to do with homocysteine? Okay, in the process of making creatine, your body produces homocysteine as a waste product. Now, normally this isn't a problem, because your body has two ways to detoxify, using vitamin B6, or using a combination of vitamins B12 and folate. Now, B6 is found in both plant and animal foods, it's rare to be deficient, but B12 is mainly in animal foods, and so it can be too low in those eating plant-based who don't supplement or eat B12-fortified foods, and folate is concentrated in plant foods, so it can be low in those who don't regularly eat greens or beans or folic acid-fortified grains. And without that, scape valve, homocysteine levels can get too high. If however, you're eating a healthy plant-based diet and taking your B12 supplement, your homocysteine levels should be fine, but what if they're not? One might predict that if you started taking creatine supplements, the level of homocysteine might go down, since you're not going to have to be making so much of it from scratch, producing homocysteine as a byproduct. But you don't know until you put it to the test, which we'll cover next.


The way we do it is it's usually organic. Jake and I have just played Blitzball in the alley and we thought it was a one-off thing, but people liked it. But I kicked out of the alley and we were like, let's get a warehouse. Then my brain got going.  And it was a big leap when we did the Blitzball battle. It was a big leap to see if people would tune in. This one next this week is the last one of the calendar year. What can we add? What can we add slowly? And what can be big ideas for next year? We have a lot of new tech from the first Blitzball tournament. We saw some of them in floorball, new camera angles. I got plexiglass strike zone so hopefully we can see the pitch coming straight to the glass. I'm excited about that. We are continuing to use two field cameras, but we still want two cannons. I don't know, Dan, will you be able to hook those up to the master? Yeah, that was my big question.  These cameras aren't for action coverage, they're for human element. We have walls. It looks better. I think it's gonna stop. Some of the really scary moments. Don't dive into that ledge. We had a rules committee voting session where everyone voted on the rules. There's going to be more offense this Blitzball battle. The hit by pitch rule, if you go back and watch that, was actually huge in that one. That's actually kind of what blew things open. So I think we're gonna get more offense. It's tough because there's only four outs per team, but people were comparing our final scores to MLB final scores and they're like, there's no offense. And I'm like, three runs on four outs is pretty good. I'm very confident in my ability with a bat and a ball. Doesn't matter if it's Blitzball, Wiffleball, baseball. Yeah, he played in the big leagues, but that's all he talks about is the past. I feel like we stand a pretty good chance against the other competition. I played a lot of Wiffleball. I played a lot where there's no speed limit. So I think hitting will probably be my strong shoot. I brought somebody that I think can be able to hit the ball pretty well. I've got a good feel for it. I would love to get a rematch of baggage. Don't care who we're playing, I just got to help Jake remain a winner and not drag him down. I don't see ourselves having a problem. All right, we're gonna bring in the jerseys.  There's a little choreography to the games. Paxton will run up to you at times in the interview. There's a lot of that stuff going on. We're making a show. It's a show as well as it is sports. And the Techman asked us to untangle all of these. It's slowly taking me. It's slowly consuming us. The courts are fighting back. We're not persistent. We've already been at it for about eight hours. The other one fire and straight down for like replays. And then we have this one. What is that one? I know I missed it.  It's weird and it's different. More coverage the better. All right, so is this in shot? From first Blitzball, all the cameras were on their own cards, on their own batteries and their own outlets. The post-edit was incredibly tough a lot of time, a lot of media management. We still have eight cameras but they're all in a central system here. We have a replay machine of every angle. We did not have that last time. We only had one angle. I'm the replay operator. So whenever there's a close play or any reviewable action, I play it back and it gets sent over to the announcers over there. And they make the final verdict. If it's an out, they need to reverse it. We have the players miked up so we can tap into what they're saying. Right now I've got the lob mics. All the players are miked up, ready to go. Just waiting for the start of the game. More staff, more crew, more time.  I can't.  And so when I got a chance to first become the Blitzball warehouse games announcer, I said dream big man. But no, we can just plug it into the speakers. Look, lower keyboard, upper keyboard. He said he found it on the street. He was just driving by. He took a route home that he's never taken before and he just saw it on the street. It's exactly what we were looking for that we couldn't get in time for the tournament. So we were placing the keyboard. Since he found that, we're going to try that out. I found this on the sidewalk yesterday. Yeah, I did. On Tunnel Avenue. You got all these different instruments. The warehouse is pristine. This is like on par. We got Wrigley Fenway warehouse in Jersey. It's like that's the feel that I get from it. The place being nicer makes it feel more professional, which makes me feel more professional. Today I'm ready to play. I got the sweat bands on. Sweat bands. Whatever this is called. Sweat band. Eye black, proper attire. Not running shoes, but nikes. I'm ready to go, bro. Every team's going to be good. I think the big hitters like baggage and rotten. That's probably the talk to competition. So, you know, got to knock them out. One banner going up today. Another banner going up whenever the next time we play this day I'm turning.  It's a past. I'm living in here. Trevor lives back there. I'm right here. Trevor never played dog night before. Hitting's not a problem. Hitting's not a problem.  Speaking, Steve. We're doing entertainment as much as sports. I like pool play because it gives everybody a cushion, so it's still six games of no elimination than the rest of elimination. It is an ultra competitive field. We have studs from all over this great land of ours. He's worried about the wrong things. Here we go.