Visiting the inn : the only thing is that it won't be the only scripted thingie around . So I *could*, but I don't know how detailed each thing will be. You're on the right track on what it's going to be like though ^^.
Random events : I'll see what can be done with a "spreading out" algorithm. I had that thought once... will have to apply it now ^^;. But I should at least make sure we don't get *too many* random events. Randomness will do the rest.
Reward/Punishment : Magical Boutique becomes My Little Slave :3 j/k. I could add a way to give money bonuses. You could do it whenever you want (well, once a day at least) and it would boost the morale proportionally to the amount of money, but I'd add a "used to getting money" factor so that constantly giving money makes the character greedy and asking for more and more. OR.... or I only allow this once a month to avoid abuses and spare myself another balance algorithm :3.
But ok, that's not *exactly* what you're referring to ^^;... I just haven't planned "bad actions" from workers but yea... if their morale is low, there could be a bigger and bigger chance that instead of just not working much, they will just stop working. This reminds me of Princess Maker 2 . But see, there's no reason to punish since it's because *you* couldn't raise their morale enough .
What do the others think about this ? Are there other examples where it could be useful to reward/punish ?
dizzcity : First, Ren'Py scripting will be used, obviously. The only thing you'll really need are object references and what you can get/set when it comes to values.
Simple example of what one would need to do to add a new worker to the data without overriding anything :
Code: Select all
init:
image loktar = "fb_loktar.png"
label initcharamore:
python:
charapool['newguy'] = Perso("Loktar", "loktar", "f_loktar.jpg", "loktar.png", salaryfact=0.9, desc="Loktar is a tough warrior from mountains of the North. He should make a good guard.")
charapool['newguy'].addAbleTasks(Guard(60, xpfactor=5, xpcurve=1.4, xpreward=3))
The declared image is the Full Body picture. Then, you add a new character to the "charapool", with the "newguy" keyword (all this syntax is from Python btw). In "Perso(...)", you give details about the character : name, full body image name, face image file, status image file, salary factor (here, 90% of a normal salary), and description.
Then you tell the game he is able to guard stuff, with an aptitude of 60. He'll gain his first level after 5xp (xpfactor), will earn 3 levels from it (xpreward), and how much will be needed for the next level will follow a curve of power 1.4 (xpcurve).
Of course, all this would be documented in a better way but I hope you see the point .
Then what's left to do is add the event where the guy joins the team... unless you want him available from the start. But let's go with the event example :
Code: Select all
label loktarjoins:
"Loktar joined us today !"
staff.append(charapool['newguy'])
return
And last thing... tell the game *when* this will happen. That's something I haven't implemented yet. But I think I'll try to have a list of all the possible events... events being objects with a "triggered()" function that returns wether or not the event should play. So you would do all the tests you want in there and return True or False. If it's True, then it will fetch the label name it has to play and jump to it.
Sounds good ?
EDIT :
Wanted to add a little bit about quests and how I planned them so far (customization not included). My idea is to have multiple "paths", non-exclusive, that lead to endings (usually one, sometimes two). All these story paths would progress through missions/quests, depending on wether you succeed or fail. Failing means not going further down that path.
Let's make up an example :
- The King of Squirrels Path -
1st scene condition : Framboise gathered 10 times in the Forest of Sympathy. Framboise reports that she has seen more and more squirrels in the forest lately. It seemed strange to her.
2nd scene condition : after this, sending Lemi (the one who talks to animals) in the forest (making up this character for this example too :p). Lemi learns from the squirrels that they're going to be out of hazelnuts soon since the trees have become ill lately.
3rd scene, next Saturday : while walking in town, you hear confirmations about a lack of hazelnuts in the forest and trees looking rather weak.
4th scene, few days later : the head of the squirrels actually comes to your shop and explains to Lemi that the situation is desperate! If nothing is done within the two coming weeks, the trees are going to die and the squirrels won't have anywhere to live because there are no hazelnut forest nearby! You can agree to help them or not.
During the 2 weeks, you can search for information in libraries. The idea is that you'd end up getting a recipe for a tree-healing potion (there could probably be more story to it but eh... I'm tired ^^;...). You'd then make a hundred of these potions to heal enough of the trees.
Possible outcomes :
- You refused the quest or couldn't make it in time : The nut trees end up dying and the squirrel society leaves the forest, never to be heard of again. Did they survive and find a new haven ? No one knows. Lemi is very saddened by this outcome and stays depressed for a month. Framboise is touched and loses morale a single time.
- You accepted and succeeded : the trees are saved, so are the squirrels. Lemi is glad everything ends well and will be cheerful for quite some time, while Framboise, happy that you helped animals, gets a morale boost. Also, the trees seem to actually be even better than before : the rarity of hazelnuts in the forest is cut in half!
5th scene, at least 2 months later and when your reputation reaches an arbitrary value : the squirrels are now in peril because of wild beasts that have appeared lately. You can help them by making a repulsive potion against these beasts.
If you do, happiness ensues. If not, the beasts end up dominating the forest and you'll have to protect your gatherers with guards from now on. On the other hand, your hunters (animal parts gatherers) will be able to get these beasts fur... which might be useful for other potions.
But let's say you helped the squirrels again : this time, your actions unlocked the Squirrel ending. Assuming it's the first one you unlock, you will find a new "Endings" button on the main menu, with a "Squirrels" item in it. By clicking on it, you declare wanting to end your game (your current carreer) by taking this path. Basically, you feel the squirrels are your best friends and you want to live in the forest you protected. Wai~ you nature lover
Notes on the *real* thing :
There probably won't be *just* two quests before you unlock an ending.
Most of the time, I'll try to have a first ending halfway through, that isn't *so* rewarding but still nice. You can ignore this ending and go on with the game, hoping to unlock the *best* ending of that path. Note that the halfway ending won't be available once you start with the next quests down that path.
I'll try to make good and bad things happen wether you accept or not. Sometimes, though, I think I'll be forced to just lower the reputation if you refuse because that's the logical consequence :/. The good point will always be that you won't be stressed for the next few weeks :p (*you*, not your character).
The idea behind unlocked endings :
I don't want the ending system to be annoying. I don't want to force people to play a hundred times to get everything. So instead of throwing an ending to your head, I notify you that you *could* now choose to retire or go another way. Maybe you end up falling in love with the miss who sells you ingredient and go to live with her... or maybe you end up living as a wandering healer. I don't know ... There's lots of freedom there ^^.
Note : once an ending is unlocked, it might not stay forever ! Very true for halfway ending. Sometimes true for endings based on relationships (if you end up fighting more than being lovey lovey, you might lose that ending with the lady). But see, it's nothing big, just save, watch the ending, and reload to go on with your game. Unless you feel it's a good conclusion and you'd rather start again. It's up to *you*.