devolution

Author Topic: General Discussion  (Read 3788131 times)

0 Members and 11 Guests are viewing this topic.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: PyTFall Dev Thread: Writers needed!
« Reply #210 on: February 01, 2013, 06:32:07 AM »
This might be a good idea, at least for barmaids. Player sets several girls to work in bar and lets them self-organize it. Those who have talent to be barmaids (judging by traits and stats) work as barmaids, same for waitresses.

Possibility but I was thinking along the lines of 'Servicegirl' as being an occupation that allows to pick from a number of jobs like a waitress, bartender etc. but also allows you to allow her spending AP on other stuff than her primary task if required.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: PyTFall Dev Thread: Writers needed!
« Reply #211 on: February 03, 2013, 03:53:37 AM »
Just some thoughts about how to balance out training so we won't end up with perfect girls after a couple of month. I see two different ways (and the third way which unites this two): slavemaker, where rise of one skill often leads to reduction of one or more others; and skyrim, where training costs money with constantly rising cost, and it's quite bearable up to 50, considerably more costly up to 75, much more costly up to 90 and can't go further after 90, so player (at least in PyTFall) should use items to rise stat even more.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: PyTFall Dev Thread: Writers needed!
« Reply #212 on: February 03, 2013, 06:15:20 AM »
Just some thoughts about how to balance out training so we won't end up with perfect girls after a couple of month. I see two different ways (and the third way which unites this two): slavemaker, where rise of one skill often leads to reduction of one or more others; and skyrim, where training costs money with constantly rising cost, and it's quite bearable up to 50, considerably more costly up to 75, much more costly up to 90 and can't go further after 90, so player (at least in PyTFall) should use items to rise stat even more.

Skyrim way sounds better, SM way may be useful for 1 - 2 stats but very annoying for all. Since schools are supposed to be 'put the girl in and forget', I am not sure what the best way would be to handle that. Setting a goal for every girl that you send into school?

I didn't get far in coding in the last two days, every time I either get distracted by rl or find some small aspect of the game that needs improvement and should be taken care of before advanced logic. Also there is still no clear map in my head on stat/job/interactions dependencies so that doesn't help...


Edit:

Well, I am still working on strip job, trying to find some texts to steal from other games  ::) (If anyone knows where a good place to fish for those, let me know)

I am taking a look at WM's data right now, I though we had it bad with 5 - 7 jobs planned but damn...  WM was an ambitious project!

Code: [Select]
    JobFilterName[JOBFILTER_GENERAL] = "General";
    JobFilterDescription[JOBFILTER_GENERAL] = "These are general jobs that work individually in any building.";
    JobFilterIndex[JOBFILTER_GENERAL] = JOB_RESTING;
    JobName[JOB_RESTING] = "Free Time";
    JobDescription[JOB_RESTING] = "She will take some time off, maybe do some shopping or walk around town. If the girl is unhappy she may try to escape.";
    JobName[JOB_TRAINING] = "Practice Skills";
    JobDescription[JOB_TRAINING] = "She will train either alone or with others to improve her skills.";
    JobName[JOB_CLEANING] = "Cleaning";
    JobDescription[JOB_CLEANING] = "She will clean the building, as filth will put off some customers.";
    JobName[JOB_SECURITY] = "Security";
    JobDescription[JOB_SECURITY] = "She will patrol the building, stopping mis-deeds.";
    JobName[JOB_ADVERTISING] = "Advertising";
    JobDescription[JOB_ADVERTISING] = "She will advertise the building's features in the city.";
    JobName[JOB_MATRON] = "Matron";
    JobDescription[JOB_MATRON] = "This girl will look after the other girls. Only non-slave girls can have this position and you must pay them 300 gold per week. Also, it takes up both shifts. (max 1)";
    JobName[JOB_TORTURER] = "Torturer";
    JobDescription[JOB_TORTURER] = "She will torture the prisoners in addition to your tortures, she will also look after them to ensure they don't die. (max 1 for all brothels)";
    JobName[JOB_EXPLORECATACOMBS] = "Explore Catacombs";
    JobDescription[JOB_EXPLORECATACOMBS] = "She will explore the catacombs looking for treasure and capturing monsters and monster girls. Needless to say, this is a dangerous job.";
    JobName[JOB_BEASTCAPTURE] = "Beast Capture";
    JobDescription[JOB_BEASTCAPTURE] = "She will go out into the wilds to capture beasts. (max 2)";
    JobName[JOB_BEASTCARER] = "Beast Carer";
    JobDescription[JOB_BEASTCARER] = "She will look after the needs of the beasts in your possession. (max 1)";

    JobFilterName[JOBFILTER_BROTHEL] = "Brothel";
    JobFilterDescription[JOBFILTER_BROTHEL] = "These are jobs for running a brothel in the current building.";
    JobFilterIndex[JOBFILTER_BROTHEL] = JOB_WHOREBROTHEL;
    JobName[JOB_WHOREBROTHEL] = "Whore in Brothel";
    JobDescription[JOB_WHOREBROTHEL] = "She will whore herself to customers within the building's walls. This is safer but a little less profitable.";
    JobName[JOB_WHORESTREETS] = "Whore on Streets";
    JobDescription[JOB_WHORESTREETS] = "She will whore herself on the streets. It is more dangerous than whoring inside but more profitable.";
    JobName[JOB_BROTHELSTRIPPER] = "Stripper in Brothel";
    JobDescription[JOB_BROTHELSTRIPPER] = "She will strip for the customers.";
    JobName[JOB_MASSEUSE] = "Masseuse in Brothel";
    JobDescription[JOB_MASSEUSE] = "She will give massages to the customers.";

    JobFilterName[JOBFILTER_GAMBHALL] = "Gambling Hall";
    JobFilterDescription[JOBFILTER_GAMBHALL] = "These are jobs for running a gambling hall in the current building.";
    JobFilterIndex[JOBFILTER_GAMBHALL] = JOB_CUSTOMERSERVICE;
    JobName[JOB_CUSTOMERSERVICE] = "Customer Service";
    JobDescription[JOB_CUSTOMERSERVICE] = "She will look after customer needs.";
    JobName[JOB_WHOREGAMBHALL] = "Whore for Gamblers";
    JobDescription[JOB_WHOREGAMBHALL] = "She will give her sexual favors to the customers.";
    JobName[JOB_DEALER] = "Game Dealer";
    JobDescription[JOB_DEALER] = "She will manage a game in the gambling hall. (requires 3)";
    JobName[JOB_ENTERTAINMENT] = "Entertainer";
    JobDescription[JOB_ENTERTAINMENT] = "She will provide entertainment to the customers.";
    JobName[JOB_XXXENTERTAINMENT] = "XXX Entertainer";
    JobDescription[JOB_XXXENTERTAINMENT] = "She will provide sexual entertainment to the customers.";

    JobFilterName[JOBFILTER_BAR] = "Bar";
    JobFilterDescription[JOBFILTER_BAR] = "These are jobs for running a bar.";
    JobFilterIndex[JOBFILTER_BAR] = JOB_BARMAID;
    JobName[JOB_BARMAID] = "Barmaid";
    JobDescription[JOB_BARMAID] = "She will staff the bar and serve drinks.";
    JobName[JOB_WAITRESS] = "Waitress";
    JobDescription[JOB_WAITRESS] = "She will bring drinks and food to customers at the tables.";
    JobName[JOB_STRIPPER] = "Stripper in Bar";
    JobDescription[JOB_STRIPPER] = "She will strip on the tables and stage for the customers.";
    JobName[JOB_WHOREBAR] = "Whore in Bar";
    JobDescription[JOB_WHOREBAR] = "She will provide sex to the customers.";
    JobName[JOB_SINGER] = "Singer";
    JobDescription[JOB_SINGER] = "She will sing for the customers.";

    JobFilterName[JOBFILTER_MOVIESTUDIO] = "Movie Studio";
    JobFilterDescription[JOBFILTER_MOVIESTUDIO] = "These are jobs for running a movie studio.";
    JobFilterIndex[JOBFILTER_MOVIESTUDIO] = JOB_FILMBEAST;
    JobName[JOB_FILMBEAST] = "Film Bestiality";
    JobDescription[JOB_FILMBEAST] = "She will film bestiality scenes.";
    JobName[JOB_FILMSEX] = "Film Sex";
    JobDescription[JOB_FILMSEX] = "She will film normal sex scenes.";
    JobName[JOB_FILMANAL] = "Film Anal";
    JobDescription[JOB_FILMANAL] = "She will film anal scenes.";
    JobName[JOB_FILMLESBIAN] = "Film Lesbian";
    JobDescription[JOB_FILMLESBIAN] = "She will do a lesbian scene.";
    JobName[JOB_FILMBONDAGE] = "Film Bondage";
    JobDescription[JOB_FILMBONDAGE] = "She will perform in bondage scenes.";
    JobName[JOB_FLUFFER] = "Fluffer";
    JobDescription[JOB_FLUFFER] = "She will keep the porn stars and animals aroused.";
    JobName[JOB_CAMERAMAGE] = "Camera Mage";
    JobDescription[JOB_CAMERAMAGE] = "She will film the scenes. (requires 1) (max 1)";
    JobName[JOB_CRYSTALPURIFIER] = "Crystal Purifier";
    JobDescription[JOB_CRYSTALPURIFIER] = "She will clean up the filmed scenes. (requires 1)";

    JobFilterName[JOBFILTER_COMMUNITYCENTRE] = "Community Centre";
    JobFilterDescription[JOBFILTER_COMMUNITYCENTRE] = "These are jobs for running a community centre.";
    JobFilterIndex[JOBFILTER_COMMUNITYCENTRE] = JOB_COLLECTDONATIONS;
    JobName[JOB_COLLECTDONATIONS] = "Collect Donations";
    JobDescription[JOB_COLLECTDONATIONS] = "She will collect money to help the poor.";
    JobName[JOB_FEEDPOOR] = "Feed Poor";
    JobDescription[JOB_FEEDPOOR] = "She will work in a soup kitchen.";
    JobName[JOB_MAKEITEMS] = "Make Crafts";
    JobDescription[JOB_MAKEITEMS] = "She will craft cheap handmade items.";
    JobName[JOB_SELLITEMS] = "Sell Crafts";
    JobDescription[JOB_SELLITEMS] = "She will go out and sell previously crafted items.";
    JobName[JOB_COMUNITYSERVICE] = "Community Service";
    JobDescription[JOB_COMUNITYSERVICE] = "She will go around town and help out where she can.";

    JobFilterName[JOBFILTER_DRUGLAB] = "Drug Lab";
    JobFilterDescription[JOBFILTER_DRUGLAB] = "These are jobs for running a movie studio.";
    JobFilterIndex[JOBFILTER_DRUGLAB] = JOB_VIRASPLANTFUCKER;
    JobName[JOB_VIRASPLANTFUCKER] = "Fuck Viras Plants";
    JobDescription[JOB_VIRASPLANTFUCKER] = "She will allow Viras plants to inseminate her, creating Vira Blood.";
    JobName[JOB_SHROUDGROWER] = "Grow Shroud Mushrooms";
    JobDescription[JOB_SHROUDGROWER] = "She will grow Shroud Mushrooms, which require a lot of care and may explode.";
    JobName[JOB_FAIRYDUSTER] = "Fairy Duster";
    JobDescription[JOB_FAIRYDUSTER] = "She will capture fairies and grind them into a fine powder known as Fairy Dust.";
    JobName[JOB_DRUGDEALER] = "Drug Dealer";
    JobDescription[JOB_DRUGDEALER] = "She will go out and sell your drugs on the streets.";

    JobFilterName[JOBFILTER_ALCHEMISTLAB] = "Alchemist Lab";
    JobFilterDescription[JOBFILTER_ALCHEMISTLAB] = "These are jobs for running an alchemist lab.";
    JobFilterIndex[JOBFILTER_ALCHEMISTLAB] = JOB_FINDREGENTS;
    JobName[JOB_FINDREGENTS] = "Find Reagents";
    JobDescription[JOB_FINDREGENTS] = "She will go out and look for promising potion ingredients.";
    JobName[JOB_BREWPOTIONS] = "Brew Potions";
    JobDescription[JOB_BREWPOTIONS] = "She will brew a random potion using available ingredients.";
    JobName[JOB_POTIONTESTER] = "Guinea Pig";
    JobDescription[JOB_POTIONTESTER] = "She will test out random potions. Who knows what might happen? (requires 1)";

    JobFilterName[JOBFILTER_ARENA] = "Arena";
    JobFilterDescription[JOBFILTER_ARENA] = "These are jobs for running an arena.";
    JobFilterIndex[JOBFILTER_ARENA] = JOB_FIGHTBEASTS;
    JobName[JOB_FIGHTBEASTS] = "Fight Beasts";
    JobDescription[JOB_FIGHTBEASTS] = "She will fight to the death against beasts you own. Dangerous.";
    JobName[JOB_WRESTLE] = "Wrestle";
    JobDescription[JOB_WRESTLE] = "She will take part in a wrestling match. Not dangerous.";
    JobName[JOB_FIGHTTODEATH] = "Cage Match";
    JobDescription[JOB_FIGHTTODEATH] = "She will fight to the death against other girls. Dangerous.";
    JobName[JOB_FIGHTVOLUNTEERS] = "Fight Volunteers";
    JobDescription[JOB_FIGHTVOLUNTEERS] = "She will fight against customer volunteers for gold prizes. Not dangerous.";
    JobName[JOB_COLLECTBETS] = "Collect Bets";
    JobDescription[JOB_COLLECTBETS] = "She will collect bets from the customers. (requires 1)";

    JobFilterName[JOBFILTER_TRAININGCENTRE] = "Training Centre";
    JobFilterDescription[JOBFILTER_TRAININGCENTRE] = "These are jobs for running a training centre.";
    JobFilterIndex[JOBFILTER_TRAININGCENTRE] = JOB_TEACHBDSM;
    JobName[JOB_TEACHBDSM] = "Teach BDSM";
    JobDescription[JOB_TEACHBDSM] = "She will teach other girls in BDSM skills.";
    JobName[JOB_TEACHSEX] = "Teach Sex";
    JobDescription[JOB_TEACHSEX] = "She will teach other girls the ins and outs of regular sex.";
    JobName[JOB_TEACHBEAST] = "Teach Bestiality";
    JobDescription[JOB_TEACHBEAST] = "She will teach other girls how to safely fuck beasts.";
    JobName[JOB_TEACHMAGIC] = "Teach Magic";
    JobDescription[JOB_TEACHMAGIC] = "She will teach other girls how to wield magic.";
    JobName[JOB_TEACHCOMBAT] = "Teach Combat";
    JobDescription[JOB_TEACHCOMBAT] = "She will teach other girls how to fight.";
    JobName[JOB_DAYCARE] = "Daycare";
    JobDescription[JOB_DAYCARE] = "She will look after local children. (non-sexual)";
    JobName[JOB_SCHOOLING] = "Schooling";
    JobDescription[JOB_SCHOOLING] = "She will teach the local children. (non-sexual)";
    JobName[JOB_TEACHDANCING] = "Teach Dancing";
    JobDescription[JOB_TEACHDANCING] = "She will teach other girls dancing and social skills.";
    JobName[JOB_TEACHSERVICE] = "Teach Service";
    JobDescription[JOB_TEACHSERVICE] = "She will teach other girls a variety of service skills.";
    JobName[JOB_TRAIN] = "Student";
    JobDescription[JOB_TRAIN] = "She will learn from all of the other girls who are teaching here.";

    JobFilterName[JOBFILTER_CLINIC] = "Medical Clinic";
    JobFilterDescription[JOBFILTER_CLINIC] = "These are jobs for running a medical clinic.";
    JobFilterIndex[JOBFILTER_CLINIC] = JOB_DOCTOR;
    JobName[JOB_DOCTOR] = "Doctor";
    JobDescription[JOB_DOCTOR] = "She will become a doctor. Doctors earn extra cash from treating locals. (requires 1)";
    JobName[JOB_GETABORT] = "Get Abortion";
    JobDescription[JOB_GETABORT] = "She will get an abortion, removing pregnancy and/or insemination.(takes 2 days)";
    JobName[JOB_PHYSICALSURGERY] = "Cosmetic Surgery";
    JobDescription[JOB_PHYSICALSURGERY] = "She will undergo magical surgery to \"enhance\" her appearance. (takes 5 days)";
    JobName[JOB_HEALING] = "Healing";
    JobDescription[JOB_HEALING] = "She will have her wounds attended. This takes 1 day for each wound trait.";
    JobName[JOB_REPAIRSHOP] = "Repair Shop";
    JobDescription[JOB_REPAIRSHOP] = "Construct girls will be quickly repaired here.";

Edit2:

Phew, done with coding for tonight, stripper job is half-done (maybe even more, like 60%), small code fixes+addons everywhere to make it all work...
« Last Edit: February 03, 2013, 03:40:45 PM by Xela »
Like what we're doing?

Offline dorkosaurus

  • Newbie
  • *
  • Posts: 11
Re: PyTFall Dev Thread: Writers needed!
« Reply #213 on: February 03, 2013, 04:21:41 PM »
Well, I am still working on strip job, trying to find some texts to steal from other games  ::) (If anyone knows where a good place to fish for those, let me know)



Could you perhaps make a pastebin of sections you need writing for?  I think it'd be easier for any random person to just look at it and contribute and post their writing here in another pastebin and you could just copy and paste what you like.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: PyTFall Dev Thread: Writers needed!
« Reply #214 on: February 03, 2013, 04:55:27 PM »
Could you perhaps make a pastebin of sections you need writing for?  I think it'd be easier for any random person to just look at it and contribute and post their writing here in another pastebin and you could just copy and paste what you like.

LoL

I am making stuff up as I go so I cannot predict what writing is needed, for stripjob I need something like this for example:

1)
Code: [Select]
                txt = txt + '%d clients came to see %s strip and dance in the club! It is a very impressive feat for one girl to attract so many! \n '%(clients, chr.name)
            elif int(self.getClients(ilists, brtls, char)*0.6) <= clients <= int(self.getClients(ilists, brtls, char)*0.9):
                txt = txt + '%d clients came to see %s strip and dance in the club! This is a very respectable amount of fans for one girls to have! \n '%(clients, chr.name)
            elif int(self.getClients(ilists, brtls, char)*0.3) <= clients <= int(self.getClients(ilists, brtls, char)*0.6):
                txt = txt + '%d clients came to see %s strip and dance in the club! Not bad concidering the size of brothel and all. \n'%(clients, chr.name)
            elif int(self.getClients(ilists, brtls, char)*0.1) <= clients <= int(self.getClients(ilists, brtls, char)*0.3):
                txt = txt + "%d clients came to see %s strip, not the most impressive amount but everyone had to start somewhere. \n"%(clients, chr.name)
            else:
                txt = txt + "Just a couple of clients came to check your girl out, very poor result indeed. "

Basically there is an amount of clients that can come to brothel every day for various needs. Maximum of 90% of those clients might also wish to see any specific girl doing striptease, exact amount depends on her fame. A number of texts are needed to replace mine (basically first things that pop into my head so I don't have to stop writing the code while thinking about texts).

2)

Code: [Select]
            if chr.status == 'Slave':
                if chr.occupation == 'Prostitute':
                    client = self.create_customer()
                    if chr.rank < ilists.clientCastes.index(client.caste) - 2:
                   
                        txt = txt + "Half of costumers have left quickly after realising that this girl (Rank: %d) was some low ranked slave whore. \n"%(chr.rank)
                        brrepmod = random.randint(10,15) + ilists.clientCastes.index(client.caste)
                        txt = txt + "Brothel reputation took a hit of %d points \n"%brrepmod       
               
                if chr.occupation in ['Stripper', 'Prostitute']:
                    if chr.strip > 120 and chr.charisma > 120:
                        tippayout = int(clients * chr.refinement*0.1 * chr.charisma*0.1 + clients*chr.strip*0.2)
                        txt = txt + "Your girl gave a performance worthy of kings and queens as the whole hall was cheering for her. She recieved %d of tips and you get to keep 100% of that, her being a slave. \n"%tippayout
                        hero.add_money(tippayout)
                    elif 100 <= chr.strip <= 120 and 100 <= chr.charisma <= 120:
                        tippayout = int(clients * chr.refinement*0.05 * chr.charisma*0.1 + clients*chr.strip*0.15)
                        txt = txt + "Your girl lost all of her clothing peace by peace as she stripdanced on the floor, the whole hall was cheering for her. She recieved %d of tips and you get to keep 100% of that, her being a slave. \n"%tippayout
                        hero.add_money(tippayout)
                    elif 60 <= chr.strip <= 100 and 60 <= chr.charisma <= 100:
                        tippayout = int(clients * chr.refinement*0.05 * chr.charisma*0.05 + clients*chr.strip*0.1)
                        txt = txt + "Your girl lost all of her clothing peace by peace as she stripdanced on the floor, the whole hall was cheering for her. Overall it was a more than decent performance. She recieved %d of tips and you get to keep 100% of that, her being a slave. \n"%tippayout
                        hero.add_money(tippayout)
                    elif 30 <= chr.strip <= 60 and 30 <= chr.charisma <= 60:
                        tippayout = int(clients * chr.refinement*0.05 * chr.charisma*0.03 + clients*chr.strip*0.05)
                        txt = txt + "Your girl lost all of her clothing peace by peace as she stripdanced on the floor, some mildly drunk clients cheered for her. Overall it was a decent performance. She recieved %d of tips and you get to keep 100% of that, her being a slave. \n"%tippayout
                        hero.add_money(tippayout)
                    elif 0 <= chr.strip <= 30 and 0 <= chr.charisma <= 30:
                        tippayout = int(clients * chr.refinement*0.01 * chr.charisma*0.01 + clients*chr.strip*0.03)
                        txt = txt + "Your girl tripped several times while trying to undress herself as she 'stripdanced' on the floor, only a couple of fans of %s kept quite while a couple of cursewords and calls for a different stripper could be clearly heard. Overall it was a decent performance. She recieved %d of tips and you get to keep 100% of that, her being a slave. \n"%(tippayout, random.choice(chr.traits))
                        hero.add_money(tippayout)
                    elif chr.strip < 30 and chr.charisma > 30:
                        tippayout = int(clients * chr.refinement*0.02 * chr.charisma*0.03 + clients*chr.strip*0.05)
                        txt = txt + "Your girl tripped several times while trying to undress herself as she 'stripdanced' on the floor, only a couple of fans of %s kept cheering her on, noone really complained because even if her strip skill was inadequite, she was pretty enough to arouse most men and women in the club. Overall it was a decent performance. She recieved %d of tips and you get to keep 100% of that, her being a slave. \n"%(tippayout, random.choice(chr.traits))
                        hero.add_money(tippayout)
                    elif chr.strip > 30 and chr.charisma < 30:
                        tippayout = int(clients * chr.refinement*0.02 * chr.charisma*0.02 + clients*chr.strip*0.03)
                        txt = txt + "Your girl tripped several times while trying to undress herself as she 'stripdanced' on the floor, only a couple of fans of %s kept cheering her on, noone really complained because even if her strip skill was inadequite, she was pretty enough to arouse most men and women in the club. Overall it was a decent performance. She recieved %d of tips and you get to keep 100% of that, her being a slave. \n"%(tippayout, random.choice(chr.traits))
                        hero.add_money(tippayout)
                    else:
                        txt = txt + 'Dev Note: >>>I missed something!<<< Charisma = %d, Strip = %d \n'%(chr.charisma, chr.strip)
                       
                    # Mod relevant stats:
                    modchr = random.choice([0,0,0,1])
                    if modchr > 0:
                        chr.mod('charisma', 1)
                        txt = txt + "Your girl charisma increased as she learned a new trick on how to make herself pretty before the show \n"
                    if dice(35):
                        chr.mod('strip', 1)
                        txt = txt + "Striptease skill is up by point! "

If girl is a slave having a whore as occupation, her rank is checked vs a random costumer's caste, if to far below, half of costumers will leave. Text is needed to reflect that.

Than if she is a stripper/whore and a slave, a number of texts are needed to reflect her performance, based on charisma and strip skill for now.

Basically if she was stunningly pretty and skillfull at striptease: 1 text, pretty and ok at striptease: another text and so on. As many options as possible. Also hooks for her being just pretty but sucking at striptease or the opposite, awesome stripper but not the best looker and so on.

About the same thing for Stippers that are free, you do not get to keep all of tips, there will be a bar in girl's profile screen just like in WM, that will determine what you get if free girl's working for you, but texts from Slave part can be reused here I suppose...

Also any amount of text for interactions in city or private interaction in girl's profile based on traits (List of traits will be released with next preAlpha, but most of the general WM traits can be used), occupations(Warrior, Whore, Stripper, Service Girl etc.) and status (Slave, Free, Worker, Peasant, Noble etc.) can be written. Pretty much any decent writing in good English will be added to the game, there is any amount of hooks/forks since a slavegirl will give different answers from noble and whore from warrior and let's say noble courtesan with large boobs will give different answer from a dimwitted peasant service girl... options are limitless, I will write most basic once (borrowing stuff from Simbro 1x every now and again) if noone gets around to it but I will put in any writing on that front done by writers).
« Last Edit: February 03, 2013, 05:00:17 PM by Xela »
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: PyTFall Dev Thread: Writers needed!
« Reply #215 on: February 03, 2013, 05:39:39 PM »
Repair Shop, Community Centre, Training Centre with a lot of options, wow. Pretty nice ideas.
I hope eventually PyTFall will have them.

My colloquial English lacks practice, so I doubt I can write a decent text for any interactions. I guess I can try to write texts for non-interaction events, like Rest or Heal jobs, for different traits and occupations.
« Last Edit: February 03, 2013, 05:41:40 PM by DarkTl »

Offline Armegetton

  • Jr. Member
  • **
  • Posts: 85
  • . . . . .
Re: PyTFall Dev Thread: Writers needed!
« Reply #216 on: February 03, 2013, 06:13:17 PM »
I'm just wondering, is it possible to separate those nest if statements into single stat groups and concatenate the strings together after words?

I know this is just a very poorly written pseudo code, but bare with me.

Code: [Select]
if stripskill >= 120:

   text1 = "Best result!"
   tip1 = clients*chr.strip*best_strip_rate

elif stripskill >= 100:

   text1 = "Great result."
   tip1 = clients*chr.strip*great_strip_rate

elif stripskill >= 60:

   text1 = "Good result."
   tip1 = clients*chr.strip*good_strip_rate


elif stripskill >= 30:

   text1 = "Fair result."
   tip1 = clients*chr.strip*fair_strip_rate


else:

   text1 = "Yur grl sux."
   tip1 = clients*chr.strip*bad_strip_rate



if charisma >= 120:

   text2 = "Best result!"
   tip2 = int(clients*charisma*best_charisma_rate)

elif charisma >= 100:

   text2 = "Great result."
   tip2 = clients*charisma*great_charisma_rate

elif charisma >= 60:

   text2 = "Good result."
   tip2 = clients*charisma*good_charisma_rate

elif charisma >= 30:

   text2 = "Fair result."
   tip2 = clients*charisma*fair_charisma_rate

else:

   text2 = "Yur grl sux."
   tip2 = clients*charisma*bad_charisma_rate


#Then a spot for traits that may effect things (or not)

text3 = ""
tip3 = 0

if trait == 'Big Boobs':

   text3 = text3 + "  Her big boobs bounced with every step she took."
   tip3 = tip3 + big_boob_bonus

if trait == 'Mesmerizing Eyes':

   text3 = text3 + "  The eyes of her viewers couldn't stray from her dance."
   tip3 = tip3 + mez_eye_bonus


final_tip = tip1 + tip2 + tip3
final_text = text1 + text2 + text3 + "\nYou made " + final_tip + " from her dancing.\n(Stripskill " + tip1 +
    ", Charisma " + tip2 + ", Trait Bonus " + tip3 + ")\n You get to keep XX% of her earnings."

My reasoning behind this is thus, you could easily add traits, change tip rates, and adjust the text in the strings without having to change every single line when/if something changes. In other words, it would be much easier to manage.
This could be the end ...

Offline dorkosaurus

  • Newbie
  • *
  • Posts: 11
Re: PyTFall Dev Thread: Writers needed!
« Reply #217 on: February 03, 2013, 06:24:31 PM »
LoL

I am making stuff up as I go so I cannot predict what writing is needed, for stripjob I need something like this for example:

[snip]

If girl is a slave having a whore as occupation, her rank is checked vs a random costumer's caste, if to far below, half of costumers will leave. Text is needed to reflect that.

Than if she is a stripper/whore and a slave, a number of texts are needed to reflect her performance, based on charisma and strip skill for now.

Basically if she was stunningly pretty and skillfull at striptease: 1 text, pretty and ok at striptease: another text and so on. As many options as possible. Also hooks for her being just pretty but sucking at striptease or the opposite, awesome stripper but not the best looker and so on.

About the same thing for Stippers that are free, you do not get to keep all of tips, there will be a bar in girl's profile screen just like in WM, that will determine what you get if free girl's working for you, but texts from Slave part can be reused here I suppose...

Also any amount of text for interactions in city or private interaction in girl's profile based on traits (List of traits will be released with next preAlpha, but most of the general WM traits can be used), occupations(Warrior, Whore, Stripper, Service Girl etc.) and status (Slave, Free, Worker, Peasant, Noble etc.) can be written. Pretty much any decent writing in good English will be added to the game, there is any amount of hooks/forks since a slavegirl will give different answers from noble and whore from warrior and let's say noble courtesan with large boobs will give different answer from a dimwitted peasant service girl... options are limitless, I will write most basic once (borrowing stuff from Simbro 1x every now and again) if noone gets around to it but I will put in any writing on that front done by writers).

why not just put in a ton of place holders for the specific things, pastebin it all, and then people can pastebin back in the specific placeholder.  This way you can continue to write up the code and just fill in the placeholders when you get around to it.

something like (placeholder:good strip tease act).    then someone could do "(placeholder:good strip tease act): <stripper> performed an exotic dance for her customers.  Everyone loved the act and she left the whole room wanting more. "  Then write up a bunch of alternates following the same format or whatever and then pastebin it all.   You can then just copy and paste the content you want.  Not everyone is competent with python, so i feel that this method would be the best to minimize the amount of errors that could occur.

either way its hard to come up with a good coherent script without a blueprint to go off of.  Give us a blueprint and several placeholders with general descriptions of what you want.  If you just ask us to write up random things, then stitching it all together might make the result somewhat confusing.

Offline Armegetton

  • Jr. Member
  • **
  • Posts: 85
  • . . . . .
Re: PyTFall Dev Thread: Writers needed!
« Reply #218 on: February 03, 2013, 06:30:15 PM »
why not just put in a ton of place holders for the specific things, pastebin it all, and then people can pastebin back in the specific placeholder.  This way you can continue to write up the code and just fill in the placeholders when you get around to it.

something like (placeholder:good strip tease act).    then someone could do "(placeholder:good strip tease act): <stripper> performed an exotic dance for her customers.  Everyone loved the act and she left the whole room wanting more. "  Then write up a bunch of alternates following the same format or whatever and then pastebin it all.   You can then just copy and paste the content you want.  Not everyone is competent with python, so i feel that this method would be the best to minimize the amount of errors that could occur.

either way its hard to come up with a good coherent script without a blueprint to go off of.  Give us a blueprint and several placeholders with general descriptions of what you want.  If you just ask us to write up random things, then stitching it all together might make the result somewhat confusing.

^ What this guy said. Which is actually strangely similar to my previous post.

@dorkosaurus - I think the issue right now is we aren't sure what we want as of yet.
This could be the end ...

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: PyTFall Dev Thread: Writers needed!
« Reply #219 on: February 03, 2013, 06:36:12 PM »
I'm just wondering, is it possible to separate those nest if statements into single stat groups and concatenate the strings together after words?

I know this is just a very poorly written pseudo code, but bare with me.

Code: [Select]
if stripskill >= 120:

   text1 = "Best result!"
   tip1 = clients*chr.strip*best_strip_rate

elif stripskill >= 100:

   text1 = "Great result."
   tip1 = clients*chr.strip*great_strip_rate

elif stripskill >= 60:

   text1 = "Good result."
   tip1 = clients*chr.strip*good_strip_rate


elif stripskill >= 30:

   text1 = "Fair result."
   tip1 = clients*chr.strip*fair_strip_rate


else:

   text1 = "Yur grl sux."
   tip1 = clients*chr.strip*bad_strip_rate



if charisma >= 120:

   text2 = "Best result!"
   tip2 = int(clients*charisma*best_charisma_rate)

elif charisma >= 100:

   text2 = "Great result."
   tip2 = clients*charisma*great_charisma_rate

elif charisma >= 60:

   text2 = "Good result."
   tip2 = clients*charisma*good_charisma_rate

elif charisma >= 30:

   text2 = "Fair result."
   tip2 = clients*charisma*fair_charisma_rate

else:

   text2 = "Yur grl sux."
   tip2 = clients*charisma*bad_charisma_rate


#Then a spot for traits that may effect things (or not)

text3 = ""
tip3 = 0

if trait == 'Big Boobs':

   text3 = text3 + "  Her big boobs bounced with every step she took."
   tip3 = tip3 + big_boob_bonus

if trait == 'Mesmerizing Eyes':

   text3 = text3 + "  The eyes of her viewers couldn't stray from her dance."
   tip3 = tip3 + mez_eye_bonus


final_tip = tip1 + tip2 + tip3
final_text = text1 + text2 + text3 + "\nYou made " + final_tip + " from her dancing.\n(Stripskill " + tip1 +
    ", Charisma " + tip2 + ", Trait Bonus " + tip3 + ")\n You get to keep XX% of her earnings."

My reasoning behind this is thus, you could easily add traits, change tip rates, and adjust the text in the strings without having to change every single line when/if something changes. In other words, it would be much easier to manage.

That's a possibility but that would require even more texts, one for charisma and one for strip each? :D Also, there is no reason why traits cannot be added in the same way to current script. All things considered: this is prolly a better way. I'll take another look at it tomorrow but this will yield a better results even if more texts are required, thanks. I'll recode stripjob tomorrow and use this for rest of jobs as well.
Like what we're doing?

Offline Armegetton

  • Jr. Member
  • **
  • Posts: 85
  • . . . . .
Re: PyTFall Dev Thread: Writers needed!
« Reply #220 on: February 03, 2013, 06:44:29 PM »
Just trying to make things easier for you in the long run. ;)
This could be the end ...

Offline dorkosaurus

  • Newbie
  • *
  • Posts: 11
Re: PyTFall Dev Thread: Writers needed!
« Reply #221 on: February 03, 2013, 06:44:54 PM »
^ What this guy said. Which is actually strangely similar to my previous post.

@dorkosaurus - I think the issue right now is we aren't sure what we want as of yet.

well when you guys figure out what you want make it known and give some clear instructions.  I'm sure there are people out there that would like to help but are totally lost in all this technical jargon.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: PyTFall Dev Thread: Writers needed!
« Reply #222 on: February 03, 2013, 06:55:34 PM »
why not just put in a ton of place holders for the specific things, pastebin it all, and then people can pastebin back in the specific placeholder.  This way you can continue to write up the code and just fill in the placeholders when you get around to it.

something like (placeholder:good strip tease act).    then someone could do "(placeholder:good strip tease act): <stripper> performed an exotic dance for her customers.  Everyone loved the act and she left the whole room wanting more. "  Then write up a bunch of alternates following the same format or whatever and then pastebin it all.   You can then just copy and paste the content you want.  Not everyone is competent with python, so i feel that this method would be the best to minimize the amount of errors that could occur.

either way its hard to come up with a good coherent script without a blueprint to go off of.  Give us a blueprint and several placeholders with general descriptions of what you want.  If you just ask us to write up random things, then stitching it all together might make the result somewhat confusing.

Fair enough, I'll leave texts to the most basic form from now on and make a pastebin. There weren't any people to make pastebins for actually, so I never even considered it.

I am taking a break from serious coding for two - three days but I'll try to find time to separate conditions per stat tomorrow. The plan is to finish strip job for all types of characters this week (with contract bar for free girls to share tips between girl/player and a relay to whore/bar jobs) and start on bar/service where the main income from club is supposed to come from.

Going to get some sleep to get an early jump tomorrow.
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: PyTFall Dev Thread: Writers needed!
« Reply #223 on: February 03, 2013, 07:03:45 PM »
well when you guys figure out what you want make it known and give some clear instructions.  I'm sure there are people out there that would like to help but are totally lost in all this technical jargon.

Yeah, this was does present a very real challenge thou. If girl is pretty but has 0 skills, there will be one line of text praising her and another burring her underground for sucking (I would REALLY like to avoid generic crap like 'Her charisma was high, they really liked her' + 'Her skills in stripping leave a lot to be desired'). After traits are added, text could end up looking really confusing. It is cleaner and offers better CODE readability but I am still not 100% convinced it the way to go, because artistic (real) writing with two stat dependencies seems almost impossible to me if approached solely per stat (especially if we offer several texts randomly chosen for each if/elif condition same as for whore job)... but it's getting really late so I cannot think straight right now.
« Last Edit: February 03, 2013, 07:06:16 PM by Xela »
Like what we're doing?

Offline Armegetton

  • Jr. Member
  • **
  • Posts: 85
  • . . . . .
Re: PyTFall Dev Thread: Writers needed!
« Reply #224 on: February 03, 2013, 07:48:48 PM »
Ok, let's assume there are multiple major stats that affect an event. one is 1 and the other 98. We should give the event a 'final score' of sorts, which would determine the ending part of the text.

And since the tips are varied, it should even out properly.

But you're right, we wouldn't want:

Quote
'Her charisma was high, they really liked her' + 'Her skills in stripping leave a lot to be desired')

So, we'll try and want to get it something like:

'Her charisma was high' + ', but ' + 'her skills in stripping were poor' + ', so all in all it was a decent performance.'

I think it best to try and keep it as simple as possible.
This could be the end ...