[A17] CARNIVÀLE — now less dumb than Psychic Soothe! [alpha available]

Started by Xnope, June 24, 2017, 09:18:41 PM

Previous topic - Next topic

Xnope





POST UNDER CONSTRUCTION.
UPDATE: An alpha is ready! See attachment or GitHub page for download.


An Introduction



At its core, CARNIVÀLE adds a set of new incidents and a new faction type: roaming carnivals.

But it's more than that.

The carnival coming to town is a special event that you want desperately to happen to you. You will sit patiently waiting, sometimes for seasons, years, for it to happen to you. You want it because life on the rimworlds is dreary and dark and any thing to distract you from the harsh realities that stand between you and survival is a warmly welcomed thing; and when it does happen to you, when the carnival does come to town, it will inevitably have to move on, and you will be left counting the days until the next one.

You might fall in love with a carny, or you might make mortal enemies. You might find a rare curiosity that could save your life one day, or you might be ripped off by a particularly clever vendor. You might win a prize shooting milk bottles, or you might lose your favourite pair of shoes in a game of chance.

For some of you, the promise of return will be the only reason to carry on. Whatever the carnival brings to town, it is a much-needed respite from the day-to-day life of a rimworlder.




I made this mod because I wanted a more interesting mood booster than the vanilla psychic soothe. I wanted to add colour to RimWorld, while at the same time preserving its grimy, wild-west, space-cowboy feel. For this, I decided to base the concept and aesthetics off of the long-cancelled HBO show of the same name, 'CARNIVÀLE'. Hopefully, I will succeed in my goals, and this mod will not only mesh well with the vanilla game, but also give psychological survival more depth.





Features, Ordered by Completeness




  • Carnival factions will request to visit your colony over radio (can happen with or without a Comms Console). If you accept, they will arrive the next day. The chance of this occurrence is the same as vanilla Psychic Soothe — that is, a base chance of 1.0 and a minimum of 15 days between occurrences.


  • Upon arrival, carnies will set up their buildings some distance away from your colony. If they do not need rest afterward, they will be open to colonists between the hours of 10:00 and 22:00. They will pack up and leave from two to four days later.


  • Tents are buildings with walls and a roof that pawns can go inside of. Colonists cannot enter some kinds of tents, but others (like the 'chapiteau') are accessible for a small silver fee per colonist. (Chapiteau functionality not implemented yet).


  • While setting up, they may have to cut down a few plants in order to construct their buildings. Carnies can't take most of the products of these plants with them, so they will be hauled to a 'trash' location designated by a sign. These items are free for colonists to take.


  • While open, vendors will stand in stalls and be available to trade with. There are currently three types of vendors: food, curios, and surplus.


  • Carnies have many unique backstories and traits, often suited to their roles in the carnival.


  • While in town, most colonists and visitors will get a mood boost (+10 currently). Pessimists and Depressives will get a very minor mood boost (+1).


  • Vendors and announcers now throw randomised text motes! Things like, 'Get your lavish meals, right here!', where 'lavish meal' can be replaced by any random higher-value item within that vendor's goods.


  • The first game (High Striker) is fully textured (with jumping striker graphic included!), is able to be played, and awards prizes if the striker hits the bell. Your chance to win this game is influenced by melee skill, and the 'luckiness' statistic. Future games will touch on skills like shooting and social. Currently, all pawns except certain carnies have +1% luckiness. In the future, pawns will be initially assigned a small random luckiness stat, which would increase slightly each time they survive a deadly ailment or win carnival games.


  • In order to play games, you must first pay the entry fee by right-clicking on the entrance sign. The price per colonist ranges between 9 and 30 silver, which scales based on how big the carnival is and how many colonists you have. Vendors can be traded with without paying this fee.


  • (v0.0.6+) They defend themselves quite intelligently when threats arise. If they have enough time, they will build an additional sandbag wall or two between them and the hostiles.


  • (v0.0.8+) Shows occur randomly throughout their open hours. If a colonist has paid the entrance fee that day, they will automatically attend the show if they have no other orders. Attending the show gives a stacking mood buff based on how long the colonist stays watching the show. This buff lasts 10 days.


  • (v0.0.8+) Greatly improved cell finding. Should not be any more issues with where or how they set up. Also reduced their radius, so it's not such a hike to get to and fro.


  • For a full, but messy, list of planned features and more, visit the GitHub page.




Screenshots



Some currently working things:


The 'chapiteau', or main event tent:


Radio contact and mood boost!


Pay at the entrance sign:


Play games to win prizes:




Downloading



Remember that this mod is in its first alpha releases. I mostly need testers to tell me if they find any bugs, if they find any incompatibilities with other mods, if the event triggers too often or not often enough, if they have any suggestions, etcetera. To my knowledge, the mod is fairly stable and I've tested it against several mods and with existing saves, all without any issues so far. Note that I may have accidentally left some testing code in the mod, things like log messages and insta-winning games, but any of it should only have an effect if you are in dev mode.

So download below! It now comes packaged with XnopeCore, so you don't need two separate downloads. Also, requires HugsLib, but what doesn't nowadays?

As of v0.0.9, the only difference is it has the nuke mod setting. You MUST use this function before uninstalling.

TO UNINSTALL:

  • Go to mod settings in options and click the red X next to 'Nuke Everything'.
  • Return to the main menu and deactivate the mod.
  • Load the generated save file with the appendix '_Nuked'
  • Voila. Save from this game from then on.
  • You can also use this nuke function without deactivating the mod to fix some bugs with the mod, i.e. if they showed up and never leave. Reloading the map will regenerate new factions.

Disclaimer: While this works with pre-existing saves, I'm not responsible for messing anything up. This is not to be treated as a release. If in doubt, don't use this mod yet (especially if you have a long mods list) unless you want to give it a whirl and leave feedback. Release is nigh!

[attachment deleted by admin due to age]
My W.I.P. mods:
Carnivale: GitHub | Forum Post
XnopeCore: GitHub

PixelBitZombie

So is this a joy factor for now with prizes here and there? I mean the idea sounds amazing. Ill toss it in when I'm done testing another guys mod.
"When logic and proportion have fallen sloppy dead
And the White Knight is talking backwards
And the Red Queen's off with her head"


Xnope

Quote from: PixelBitZombie on June 25, 2017, 12:30:53 AM
So is this a joy factor for now with prizes here and there? I mean the idea sounds amazing. Ill toss it in when I'm done testing another guys mod.

Yes. The plan is that there is a constant mood boost while they are in town. After they leave, the boost stays but peters off gradually. As for joy, there will be 'performances' that pawns can watch for joy, and of course playing games boosts joy. None of this part is implemented yet, as I'm still shoring up the LordJob that controls the whole event as well as working on more textures, but it will be a definite feature when this is released.

Edit: Also, I wouldn't test this at all yet. Currently the only useful thing about carnies is the vendors. When the rest of the vital features are implemented, I will make an alpha release for testing.

Edit 2: Mood boosts are now implemented! (+10) for everyone but carnies themselves, except a mere (+1) for pessimists and depressives. Still haven't implemented the petering-off boost that I mentioned, though.
My W.I.P. mods:
Carnivale: GitHub | Forum Post
XnopeCore: GitHub


Xnope

First off, I'm better at coding than I am texturing. So I'd like your guys' opinions on something: Would the chapiteau tent (the bottom-most screenshot) look better without the tielines at each corner?

Any other textures bothering you in any way, anything need a tweak, or a complete re-do?

Bear in mind most everything is stuff-able and things like flags and the chapiteau take on the carnival faction's colour, however the amount (values) that these dynamic colours contribute to a specific building can be tweaked. I also plan on tweaking carnival factions' colour generator to give more saturated and appropriate colours (they are tricky in defs because RGBA values are given as percents, not 0-255), but that's low priority.

Also, if any good texture artists are out there and are short of projects, I'd welcome you. I'm having less time every day to work on this, and texturing is low on my priority queue but there are significantly more that do eventually need making.
My W.I.P. mods:
Carnivale: GitHub | Forum Post
XnopeCore: GitHub

faltonico

I don't see any problem with textures, (you can leave that for later if you are not comfortable with them now).
Looking forward to the finished product!

Soupy Delicious

I love this idea so much.  I realise now that there is a definite gap in Rimworld in this area.

PixelBitZombie

Quote from: Xnope on June 25, 2017, 11:26:30 PM
chapiteau tent (the bottom-most screenshot) look better without the tielines at each corner?

The tielines are perfectly fine. They add Depth to the art. I understand its difficult to do art in a isotope sorta 3dish world. I actually do art but not on the computer (technically) Made my own logo's and stuff for twitch but that's about it as far as computers go. But that looks perfectly fine. I've definitely seen worse in rimworld. The beauty of it though is people learn and get better. Still looking forward to this mod.

I do have a question though, how will this work if raiders come in with the Carni going on? Or maybe you made it so that can't happen? Maybe local animals going mad?
"When logic and proportion have fallen sloppy dead
And the White Knight is talking backwards
And the Red Queen's off with her head"


Soupy Delicious

Quote from: PixelBitZombie on July 13, 2017, 04:13:55 PM
Quote from: Xnope on June 25, 2017, 11:26:30 PM
chapiteau tent (the bottom-most screenshot) look better without the tielines at each corner?

I do have a question though, how will this work if raiders come in with the Carni going on? Or maybe you made it so that can't happen? Maybe local animals going mad?

Why, they'd drop their weapons and join in, of course!  And the mad animals would be instantly tamed by the professional carnies! >_>

And the tielines are the best part of the tent.  They look great!

Xnope

Bump! Alpha release v0.0.1 is in effect!

Read the bottom of the edited OP to see what I'm needing from testers in particular. The mod should be stable, but is lacking in features. In summary, working things are vendors, mood boosts, one game (high striker), prizes, and a payment system. See feature list for more info.

Note that if you are in dev mode, some testing code will take effect, like log messages, insta-winning games, etc. I intend to remove this later, or add in a HugsLib setting that defaults to off.

One bug that I'm aware of is that if a carnival arrives with a low enough amount of points that there aren't two vendors, games don't give prizes. This is because the default vendor is a food vendor, and prizes are selected from vendors' apparel items. It will be fixed in the next update.

Another sort-of bug is that food vendors spawn a terribly unbalanced selection of raw meats. Again, will be fixed in the next update.

Download at bottom of OP!

Edit: v.0.0.2 is now the initial working release. Ninja-fixed a problem that was preventing them from packing up sometimes. For now, the crates that are ingredients for their buildings only weigh 1kg. Making this more lore-friendly is on my to-do, but is lower in the priority queue. Should work fine every time now!
My W.I.P. mods:
Carnivale: GitHub | Forum Post
XnopeCore: GitHub

Xnope

Quote from: PixelBitZombie on July 13, 2017, 04:13:55 PM
I do have a question though, how will this work if raiders come in with the Carni going on? Or maybe you made it so that can't happen? Maybe local animals going mad?

Umm, there is some basic logic in the LordJob that makes carnies defend themselves when hostiles are near. I haven't really spent much time on it. A lot of features are planned in that area, like if you anger a carnival faction enough they will return at some point demanding justice. A bug that is currently known is that if carnies die from any hostiles of another faction, they will blame you and might even turn hostile. Yikes. I mean, this can happen in vanilla as well, if visitors get caught in cross-fire. Might look into fixing that for good ol' Tynan as well...

While testing you can try to see what happens during hostile events, in my experience they usually defend themselves (especially guards, they have guns), and usually none of them die if it's a small raid, because the raiders generally prefer to attack the colony, not the carnival.
My W.I.P. mods:
Carnivale: GitHub | Forum Post
XnopeCore: GitHub

PixelBitZombie

Quote from: Xnope on July 14, 2017, 07:53:27 PM
While testing you can try to see what happens during hostile events, in my experience they usually defend themselves (especially guards, they have guns), and usually none of them dies if it's a small raid, because the raiders generally prefer to attack the colony, not the carnival.

Wouldn't it be easier to have them pack up when a "large threat" shows up on the map? Similar to how visitors leave when climate gets too harsh. I guess you can have them fence the area off to help against threats in a way.

I imagine this probably won't be save friendly, but I'm on way to shoving it in the game. ;D
"When logic and proportion have fallen sloppy dead
And the White Knight is talking backwards
And the Red Queen's off with her head"


Xnope

Quote from: PixelBitZombie on July 14, 2017, 11:42:25 PM
Wouldn't it be easier to have them pack up when a "large threat" shows up on the map? Similar to how visitors leave when climate gets too harsh. I guess you can have them fence the area off to help against threats in a way.

I imagine this probably won't be save friendly, but I'm on way to shoving it in the game. ;D

Hey, suggestion taken :). Only problem is packing up takes a few in-game hours. I could have them flee, or flee if too many of them die while defending, but I'd have to make their buildings claimable by the player in order to maintain coherence. Currently, the event simply doesn't trigger if the map conditions are bad, i.e. bad temperatures, toxic fallout, volcanic winter, etc. I'll probably be adding in that they cannot arrive if there is already a raid in effect.

I once did consider having them fence up their boundaries, but I didn't want to mess up the players' map too much or possibly restrict access to some distant parts of their base. An easier solution would just be to temporarily halt big threats occurring while they are in town, although this limits interesting emergent interactions in my opinion. That's not what I'm about ;)

Also, I can make almost anything save-friendly, at least within the same major version of the game. If you mean not save-friendly in the case where the mod is removed mid-way through their being in town, that may be a problem I face later, but I can imagine that a clean-up option through HugsLib wouldn't be too nasty. Nearly everything pertaining to the carnival is saved in a single MapComponent, which is easily removed, and the cleanup would simply wipe every mod Thing that was ever saved. I might do some testing on this later, it's possible none of the above is necessary if you can deal with a few ineffectual errors on startup.
My W.I.P. mods:
Carnivale: GitHub | Forum Post
XnopeCore: GitHub

Xnope

Quote from: Soupy Delicious on July 13, 2017, 11:35:44 PM
Why, they'd drop their weapons and join in, of course!  And the mad animals would be instantly tamed by the professional carnies! >_>

Hmm. You've given me an idea. There is a Beastmaster backstory that some carnies have. It would be interesting if they could diffuse mad animals and instantly tame them...
My W.I.P. mods:
Carnivale: GitHub | Forum Post
XnopeCore: GitHub

Soupy Delicious

Wahaha... it is sensible, really.

Keeping a close eye on this mod