Merge pull request #62 from vinfamy/Docs

Docs Update
This commit is contained in:
vinfamy 2018-07-28 16:18:42 +07:00 committed by GitHub
commit ac4847c04e
148 changed files with 2095 additions and 253 deletions

59
Docs/FAQ.txt Normal file
View file

@ -0,0 +1,59 @@
1. Dev questions
1.1. Why don't we have feature X yet?
1.2. Are you going to add feature X?
2. Gameplay questions
2.1. What do I do? Where do I go?
2.2. I don't have a place to live!
2.3. How do I find a residential building, bar, hotel, etc.?
2.4. How do I change a building's type?
3. Tech questions
3.1. I can't bring up the console!
3.2. How do I change or add to the content?
1. Dev questions
1.1. Why don't we have X yet?
Because it hasn't been made yet. Perhaps you can help out?
Creating content for LifePlay is easy to do, and because it's meant to be a moddable game, it's not just the developer who can do it. See the Docs/Modding folder to learn how.
1.2. Are you going to add X?
Quite possibly. It may take a while though. Other things need adding too!
2. Gameplay questions
2.1. What do I do? Where do I go?
The idea is that you live the life of the character you're playing. There is no one story, and no other background to the player character than what you imagine yourself. You can tweak your character's looks and stats, potentially give them relatives via the contacts menu (ctrl-P), make sure to load up content modules that fit your tastes (ctrl-M), and take it from there.
You should probably find a place to live, and get an income so you can pay for expenses. Or you could just sleep in hotels and hope money'll drop from the sky. Suit yourself ;)
2.2. I don't have a place to live!
Find a residential building during work hours, click on it, and select "arrange a viewing". This'll then give you the option to rent an apartment, or not.
2.3. How do I find a residential building, bar, hotel, etc.?
Hover the mouse over a building and ideally, an icon should show up telling you what type of building it is. Buildings with a question mark haven't been given a type yet.
You can also click on the magnifying glass icon to the left, leave the search field blank, then click on the icon so you can choose from a variety of building types to choose from. The search results will try to display them based on how far you have to walk.
2.4. How do I change a building's name or type?
Some maps have far more detailed information on buildings than others, and it's also always possible you want to insert or change a building type because you just want to. To do that, you just click on any building, and select "edit building".
Changes to a building on a map carry over to any new game you start on that same map, so perhaps you shouldn't change buildings on one game that could be your other game's character's home or job?
3. Tech Questions
3.1. I can't bring up the console!
Ordinarily you bring up the console with #
Due to different keyboard mappings throughout the world, though, the key to use may differ for you. You can change the key in Config/DefaultInput.ini, look for the line:
+ActionMappings=(ActionName="TestScenes",Key=#,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
3.2. How do I change or add to the content?
Intel on how to write or edit scenes is found in the Docs/Modding folder. It mostly deals with the scripting language at the moment, in a noob-friendly way, and focuses on adding scenes, actions, stats, character presets, sex descriptions and sex talk. These are the easiest to change: a simple text editor is all you need, and the documentation is noob-friendly.
(Not ready to say anything useful about asset creation...)

View file

@ -0,0 +1,15 @@
Divorce()
USE:
This command undoes the marriage between player and their husband/wife. It will revert their status to being boyfriend(s)/girlfriend(s) though, so you probably want to follow up with loseDating().
TYPE: Command, non-Ref
RETURNS: /
THEME: Relationships
COMPARE: getMarried, isMarried, loseDating
EXAMPLE:
Official:: "Sign here and here and here and here... Initial here and here and here... Very well, everything's in order."
Player(Disgusted):: "About damn time!"
Divorce()
loseDating()

View file

@ -0,0 +1,21 @@
Filter(Tag)
USE:
Limit a sex scene to animations that have the specified tag.
TYPE: Command, non-Ref
RETURNS: /
THEME: Sex
COMPARE: TalkNonConsensual
EXAMPLE:
"A while later in front of her place."
Player(Flirty)::"Baby, since I just took you to that fancy place and all, maybe I could... come inside?"
Girlfriend(Offended)::"Hey, what do you take me for? I don't put out just for a meal!"
Player(Shy)::"I know you don't, I mean, I didn't think you would, but... please, being around you drives me nuts! I'm about to burst!"
Girlfriend(Annoyed)::"Oh, alright then. But there's no way we're actually doing 'it' tonight! A quick shake and then I'm off to bed, and you're off to yours!"
setBackground(home)
Player.strip()
Filter(Handjob)
Sex(Player, Girlfriend)

View file

@ -1,7 +1,13 @@
losePT()
USE:
The player fires their current personal trainer.
TYPE: Command, Non-Ref
RETURNS: /
THEME: Special Characters
COMPARE: setPT
EXAMPLE:
Player(Angry):: "I've made no progress under your instructions. You're fired!"
losePT()

View file

@ -0,0 +1,17 @@
Random(float, float)
USE:
returns a random float number between the entered float parameters. Commonly used to influence the chance a condition is true based on an actor stat.
TYPE: Command, non-Ref
RETURNS: float
THEME: Math
COMPARE:
EXAMPLE:
attrBonus = Random(1,5)
Actor:attrtoplayer += attrBonus
If Random(30, 100) > attractiveness // condition is only possible if attractiveness is higher than 30, and more likely to happen the higher attractiveness is
If Random(50,300) < Actor:perversion // only possible perversions is higher than 50, but only has a 20% chance of happening

View file

@ -0,0 +1,20 @@
Sex(Actor1, Actor2, ..., ActorN)
USE:
Start a sex scene involving these actors. If the player is involved, it will also check whether the player is cheating or not and add to the affair list accordingly.
The order in which roles are given to actors for the sex scene (important for descriptions and dirtytalk) depends largely on gender and domincance. Males are given roles before transsexuals, then women. Between people of the same gender, the most dominant one (lowest submission stat) is given a role first.
However, the order of the actor parameters to the Sex() function matters somewhat in group sex: Sex(Male1, Player, Male2) will be different from Sex(Male2, Player, Male1).
TYPE: Command, non-Ref
RETURNS: /
THEME: Sex
COMPARE: SexNoAffair
EXAMPLE:
Boss(Happy):: "Baby, let's get closer!"
Sex(Boss, Player)
If Boss.isAffair() // if you are in a relationship with someone else, this will return true after sex
"I cheated on my boyfriend with my boss."
Endif

View file

@ -0,0 +1,19 @@
SexNoAffair(Actor1, Actor2, ..., ActorN)
USE:
Start a sex scene involving these actors. Even if the player is involved, it will not check whether the player is cheating or not.
The order in which roles are given to actors for the sex scene (important for descriptions and dirtytalk) depends largely on gender and domincance. Males are given roles before transsexuals, then women. Between people of the same gender, the most dominant one (lowest submission stat) is given a role first.
However, the order of the actor parameters to the Sex() function matters somewhat in group sex: SexNoAffair(Male1, Player, Male2) will be different from SexNoAffair(Male2, Player, Male1).
TYPE: Command, non-Ref
RETURNS: /
THEME: Sex
COMPARE: Sex
EXAMPLE:
Boss(Happy):: "Baby, let's get closer!"
SexNoAffair(Boss, Player)
If Boss.isAffair() // this will return false no matter what
"I cheated on my boyfriend with my boss."
Endif

View file

@ -0,0 +1,15 @@
TalkNonConsensual()
USE:
call this command before starting a sex scene to make sure that none of the regular 'dirtytalk' (ie both ppl wanting it) is played, and only non-consensual talk is played.
TYPE: Command, non-Ref
RETURNS: /
THEME: Sex
COMPARE: Filter(Aggressive)
EXAMPLE:
"Before I knew what was happening, the door slammed shut behind me..."
Filter(Aggressive)
TalkNonConsensual()
SexNoAffair(Aggressor, Player)

View file

@ -0,0 +1,20 @@
WHAT
USE:
WHAT is mostly used to enter a condition at the top of a scene, affecting its random triggering depending on what the player's doing.
However, it can also be used as a command in the rest of the scene script, returning the player's current activity.
Available actionIDs can be found in the different files contained in the "Actions" folder in modules.
TYPE: Condition, non-Ref
RETURNS: actionID (string)
THEME: Scenes, Activity
COMPARE: WHAT, WHEN
EXAMPLE:
If WHAT == socialize && WHERE == nightclub
"It shouldn't be surprising that when you talk to random strangers at a nightclub, somebody will think you're just hitting on people."
Jealous = generatePerson()
Jealous.dress()
Jealous.show()
Jealous(Angry)::"Stay away from my <Player.boyfriend_or_girlfriend>, you <Player.creep_or_skank>!"
Endif

View file

@ -0,0 +1,19 @@
WHEN
USE:
WHEN is mostly used to enter a condition at the top of a scene, affecting its random triggering depending on what time of day it is.
However, it can also be used as a command in the rest of the scene script, to return the time of day in a float.
TYPE: Command, non-Ref
RETURNS: float
THEME: Scenes, Time
COMPARE: WHAT, WHERE
EXAMPLE:
If WHEN > 21 || WHEN < 4
time = "late"
Elseif WHEN < 9
time = "early"
Endif
"My neighbour's having <Neighbour.p> stereo on, and it's so loud the bass can be heard from a block away! I've got a good mind to tell <Neighbour.o> that I'm calling the police if <Neighbour.s> ever makes such noise this <time> again!"

View file

@ -0,0 +1,20 @@
WHERE
USE:
WHERE is mostly used to enter a condition at the top of a scene, affecting its random triggering depending on the player's location.
However, it can also be used as a command in the rest of the scene script, returning the player's location.
Available locationIDs can be found in Docs/Lists/all_wheres.txt
TYPE: Condition, non-Ref
RETURNS: locationID (string)
THEME: Scenes, Location
COMPARE: isAtHome, WHAT, WHEN
EXAMPLE:
Title = "shop assistant"
If WHERE == bank
Title = "cashier"
Elseif WHERE == bar || WHERE == nightclub
Title = "bartender"
Endif
"It's my lucky day. I found myself being served by a <New_Person.handsome_or_cute> <Title>."

View file

@ -0,0 +1,13 @@
Actor.addColleague()
USE:
Add this actor to the list of colleagues. Can be found later with getSpecific(Colleague)
TYPE: Command, Reference
RETURNS: /
THEME: Job
COMPARE: removeColleague, isColleague
EXAMPLE:
John(Happy):: "Hi there, I just got hired."
John.addColleague()

View file

@ -0,0 +1,13 @@
Actor.addDatingFriend()
USE:
Add this actor to the list of your significant other's friends. Can be found later with getSpecific(Dating_Friend)
TYPE: Command, Reference
RETURNS: /
THEME: Acquaintance
COMPARE: removeDatingFriend, isDatingFriend
EXAMPLE:
John(Happy):: "Hi there, I'm your boyfriend's friend."
John.addDatingFriend()

View file

@ -0,0 +1,13 @@
Actor.addNeighbour()
USE:
Add this actor to the list of neighbours. Can be found later with getSpecific(Neighbour)
TYPE: Command, Reference
RETURNS: /
THEME: Housing
COMPARE: removeNeighbour, isNeighbour
EXAMPLE:
John(Happy):: "Hi there, I'm new here. Just moved in."
John.addNeighbour()

View file

@ -1,10 +1,20 @@
Actor.blendPreset(PresetID)
Blend this actor with a preset, usually called after generatePerson().
USE:
Blend this actor with a preset, usually called after generatePerson().
Presets are contained in a module's folder for the purpose, and can contain either body morphing or stat-related intel.
PresetID is the filename without the extension.
TYPE: Command, Reference
RETURNS: /
THEME: Actor Creation, Looks, Stats
COMPARE: generatePerson, generatePersonTemporary
EXAMPLE:
// We want a male bodybuilder
Bodybuilder = generatePerson() // just so that we get the random stats etc, but this might generate a female
Bodybuilder.blendPreset(bodybuilder) // if the above is female, then this will reset face and hair to the default male face and hair
Bodybuilder.blendPreset(bodybuilder) // if the above is female, then this will reset face and hair to the default male face and hair, so it's best to follow up with
Actor.randomizeFace()
Actor.randomizeHairs()

View file

@ -1,7 +1,13 @@
blockContact(Actor)
USE:
Remove this person from your contact list.
TYPE: Command, Non-Ref
RETURNS: /
THEME: Acquaintance
COMPARE: exchangeContact, isContactExchanged
EXAMPLE:
"This guy is a stalker. This is enough."
blockContact(John)

View file

@ -0,0 +1,13 @@
GlobalVariableName.clearGlobal()
USE:
Delete this global variable completely.
TYPE: Command, Non-Ref (but syntax is ref-like)
RETURNS: /
THEME: Variables
COMPARE: getGlobal, setGlobal
EXAMPLE:
SugarDaddy.clearGlobal()
FloatVariable = SugarDaddy.getGlobal() // will now return 0

View file

@ -0,0 +1,17 @@
Actor.closeEyes(bool)
USE:
force actor to close or open their eyes
TYPE: Command, Reference
RETURNS: /
THEME: Scenes
COMPARE:
EXAMPLE:
Masseuse::"Just lie down and relax."
Player.CloseEyes(true)
Mom(Angry)::"Hey, wake up, sleepy head! You're about to be late for work!"
Player.CloseEyes(false)

View file

@ -0,0 +1,16 @@
Float.convertToLocalCurrency()
USE
Converts a dollar value to the local currency for the home city in string format.
TYPE: Command, non-Ref (syntax is ref-like)
RETURNS: String, expressing the number in local currency
THEME: Money
COMPARE: getRent, getSalary, setRent, setSalary
EXAMPLE:
Salary = 3000
SalaryConverted = Salary.convertToLocalCurrency()
"My salary is <SalaryConverted>." // will show up as 'My salary is £ 2000.'
SalaryConverted = Salary.convertToLocalCurrency(true)

View file

@ -1,3 +1,9 @@
Actor.Delete()
Force remove this actor from current memory. Used in rare cases where SceneEnd() (which does this automatically to all actors used in the scene) isn't called.
USE:
Force remove this actor from current memory. Used in rare cases where SceneEnd() (which does this automatically to all actors used in the scene) isn't called.
TYPE: Command, Reference
RETURNS: /
THEME: Actor Removal
COMPARE: hide, makePermanent

View file

@ -1,7 +1,13 @@
Actor.dress(optional_item)
USE:
If there's nothing in the bracket, it will dress the actor fully appropriate to the current building. If a clothing piece is specified, will put that on only. Check LifePlay\Content\Heavy\Clothes for the names of the items
TYPE: Command, Reference
RETURNS: /
THEME: Clothes
COMPARE: strip
EXAMPLE:
setBackground(work)
Player.dress() // will put on a full suit with oxford shoes etc and underwear underneath

View file

@ -0,0 +1,14 @@
Actor.dressWedding()
USE:
This command puts the actor in a wedding dress or suit.
TYPE: Command, Reference
RETURNS: /
THEME: Relationships
COMPARE: getMarried, dress
EXAMPLE:
"It took quite a bit of doing, getting into that corset, but I finally was good to go, and ready to step down the aisle."
setBackground(place_of_worship)
Player.dressWedding()

View file

@ -1,7 +1,13 @@
endDate()
USE:
End the current 'date', i.e. get rid of the current companion.
TYPE: Command, Non-Ref
RETURNS: /
THEME: Companions
COMPARE: startDate
EXAMPLE:
"We already hung out for the whole afternoon. It's time to separate."
endDate()

View file

@ -1,7 +1,13 @@
exchangeContact(Actor)
USE:
Exchange numbers with this actor.
TYPE: Command, Non-Ref
RETURNS: /
THEME: Acquaintance
COMPARE: blockContact, isContactExchanged
EXAMPLE:
"We exchanged numbers and parted ways."
exchangeContact(John)

View file

@ -1,7 +1,13 @@
forgiveAffairs()
USE:
Clear all affairs commited while in this current relationship. This is done automatically when SetDating().
TYPE: Command, Non-Ref
RETURNS: /
THEME: Relationships
COMPARE: isAffair, loseDating, getSpecific(Affair)
EXAMPLE:
Dating(Crying):: "Alright, after everything we've been through, I guess I can forgive you this time ..."
forgiveAffairs()

View file

@ -1,7 +1,13 @@
generatePerson() returns Actor
generatePerson(preset1, preset2, ..., presetN) returns Actor
generatePerson()
generatePerson(preset1, preset2, ..., presetN)
Generate a new actor. If nothing inside the bracket: completely random actor. Or you can specify the presets to blend into this new actor. The actor generated using this method will be permanent right away, meaning they will remain (as a lpcharacter ready to be 'get' for a future scene) after the current scene ends.
USE:
Generate a new actor. If nothing inside the bracket: completely random actor. Or you can specify the presets to blend into this new actor. The actor generated using this method will be permanent right away, meaning they will remain after the current scene ends and are usable for some functions that only work with permanent actors.
TYPE: Command, Non-Ref
RETURNS: Actor
THEME: Actor Creation
COMPARE: generatePersonTemporary, blendPreset
EXAMPLE:
Actor = generatePerson() // OR Actor = generatePerson(easterneuropean, twenties, fitness_model)

View file

@ -0,0 +1,20 @@
generatePersonTemporary()
generatePersonTemporary(preset1, preset2, ..., presetN)
USE:
Generate a new actor. If nothing inside the bracket: completely random actor. Or you can specify the presets to blend into this new actor.
The actor generated using this method will be temporary at first (unless you call MakePermanent() on them later on), meaning they will be deleted with no traces left (not even in a lpcharacter) after the current scene ends. Useful for loops and for one-off actors like thiefs and prostitutes. Also, your adultery with a temporary actor will never be caught!
TYPE: Command, Non-Ref
RETURNS: Actor
THEME: Actor Creation
COMPARE: generatePerson, blendPreset, makePermanent
EXAMPLE:
Actor = generatePersonTemporary() // OR Actor = generatePersonTemporary(easterneuropean, twenties, fitness_model)
Actor.dress()
Actor.show(2)
exchangeContact(Actor) // this will fail because this is a temporary actor that will be lost forever after the current scene ends. You need to call MakePermanent first.

View file

@ -0,0 +1,17 @@
getCompanion()
USE:
Get the current companion. Not entirely necessary as the current companion has a special variable "CurrentCompanion" that is always available.
TYPE: Command, non-Ref
RETURNS: Actor
THEME: Companions
COMPARE: isWithCompanion
EXAMPLE:
Actor = getCompanion()
Actor.dress()
// is the same as
CurrentCompanion.dress()

View file

@ -0,0 +1,15 @@
GlobalVariable.getGlobal()
USE:
Get the float value of a global variable. If there's no global variable under such name, returns 0.
TYPE: Command, non-Ref (ref-like syntax)
RETURNS: float
THEME: Variables
COMPARE: clearGlobal, setGlobal, getID
EXAMPLE:
SugarDaddyID = SugarDaddyGV.getGlobal()
If SugarDaddy != 0
SugarDaddyActor = getSpecific(SugarDaddyID)
Endif

View file

@ -0,0 +1,20 @@
Actor.getID()
USE:
Get the ID number of this actor, which can then be saved as a global variable and then called on using getSpecific.
TYPE: Command, Reference
RETURNS: Float
THEME: Identity, Variables
COMPARE: setGlobal, getGlobal, getSpecific
EXAMPLE:
ID = Actor.getID()
SugarDaddy.setGlobal(ID)
// another scene
ID = SugarDaddy.getGlobal()
If ID != 0
Actor = getSpecific(ID)
Endif

View file

@ -0,0 +1,13 @@
getMarried()
USE:
Call this function to marry the player to their current bf/gf. This doesn't trigger a wedding scene, but flags them as being married.
TYPE: Command, non-Ref
RETURNS: /
THEME: Relationships
COMPARE: setDating, isMarried, Divorce, DressWedding, getSpecific(Dating)
EXAMPLE:
Priest::"I now pronounce you man and wife."
getMarried()

View file

@ -1,7 +1,13 @@
getPerson(optional bool) returns Actor
getPerson(optional bool)
USE:
Get a random person in your current game (i.e. could be anyone that has been created with GeneratePerson() or GeneratePersonTemporary() then MakePermanent() ). Optional bool parameters to filter for whether their contact has been exchanged to you or not.
TYPE: Command, Non-Ref
RETURNS: Actor
THEME: Actor Loading
COMPARE: getSpecific
EXAMPLE:
Actor = getPerson() // get anyone
Actor = getPerson(true) // get someone who has exchanged numbers with me

View file

@ -0,0 +1,17 @@
getRelative()
getRelative(keyword, keyword, ..., keyword)
USE:
Retrieves an actor who's related to the player.
This can be filtered down to only certain types of relatives with keywords: Sibling, StepSibling, Child, StepChild, Cousin, ParentSibling (uncles/aunts), GrandParent, Parent, StepParent
TYPE: Command, non-Ref
RETURNS: Actor
THEME: Family, Actor Loading
COMPARE: getRelativeExcept
EXAMPLE:
WHO: Actor = getRelative()
WHO: Actor = getRelative(Sibling, StepSibling, Cousin, Child, StepChild)

View file

@ -0,0 +1,13 @@
getRelativeExcept(keyword, ..., keyword)
USE:
Retrieves an actor who is related to the player, but isn't tagged by the listed keyword(s).
TYPE: Command, non-Ref
RETURNS: Actor
THEME: Family, Actor Loading
COMPARE: getRelative
EXAMPLE:
WHO: Actor = getRelativeExcept(GrandParent) // returns a relative who isn't a grandparent of the player

View file

@ -1,7 +1,13 @@
getRent() returns Float
getRent()
USE:
Get the current rent into a float variable.
TYPE: Command, Non-Ref
RETURNS: Float
THEME: Housing, Money
COMPARE: setRent, convertToLocalCurrency
EXAMPLE
Rent = getRent()
Rent *= 1.2

View file

@ -1,7 +1,13 @@
getSalary() returns Float
getSalary()
USE:
Get the current salary into a float variable.
TYPE: Command, Non-Ref
RETURNS: Float
THEME: Job, Money
COMPARE: setSalary, convertToLocalCurrency
EXAMPLE
Salary = getSalary()
Salary *= 1.2

View file

@ -0,0 +1,27 @@
getSpecific(keyword)
getSpecific(float)
getSpecific(float variable)
USE:
Get a specific person in your current game.
Available keywords are: Dating, Dating_Friend, Boss, Colleague, Neighbour, PT, ExDating, Landlord, CurrentBabyDaddy, Impregnated, Affair
Alternatively, you can input an ID number or a float variable containing it to get the actor with that ID.
TYPE: Command, Non-Ref
RETURNS: Actor
THEME: Actor Loading
COMPARE: getPerson, getID, setGlobal, getGlobal, isValid
EXAMPLE:
SO = getSpecific(Dating) // get my boyfriend / girlfriend
if SO.isValid
// I actually have a bf/gf
endif
Actor5 = getSpecific(5) // get the fifth generated actor in this current game
ID = SugarDaddy.getGlobal()
If ID != 0
SugarDaddyActor = getSpecific(ID) // get the sugar daddy via the float variable
Endif

View file

@ -1,7 +1,13 @@
Actor.hide()
USE:
Hide the actor from the player's view. Opposite to show().
TYPE: Command, Reference
RETURNS: /
THEME: Actor Removal, Scenes
COMPARE: show
EXAMPLE:
Actor.show(2)
"<Actor.name> said hi then quickly left."

View file

@ -1,7 +1,13 @@
loseDating()
USE:
Break up with current boyfriend / girlfriend. All affairs and SO's friends are cleared and become acquaintances.
TYPE: Command, Non-Ref
RETURNS: /
THEME: Relationships
COMPARE: setDating, isDating, getSpecific(Dating), getSpecific(ExDating)
EXAMPLE:
"It's over. He broke up with me!"
loseDating()

View file

@ -0,0 +1,19 @@
loseHome()
USE:
The player moves out of their current home. Set rent to 0. Landlord and neighbours become acquantainces.
If the player's SO has a home, they'll move in with them instead.
TYPE: Command, Non-Ref
RETURNS: /
THEME: Housing
COMPARE: moveHome, PlayerHasHome, DatingHasHome
EXAMPLE:
Landlord(Angry):: "That's enough. You're evicted!"
loseHome()
"I need to find a new place to live now."
Dating = getSpecific(Dating)
"I accepted <Dating.name>'s offer. It would be a good experience living together. Besides, I can save quite a bit of money on rent."
loseHome()

View file

@ -0,0 +1,16 @@
loseHomeDating()
USE:
Your SO moves out of their home, and in with you.
TYPE: Command, non-Ref
RETURNS: /
THEME: Relationships, Housing
COMPARE: loseHome, moveHome, isAtDatingHome, PlayerHasHome, DatingHasHome
EXAMPLE:
SO = getSpecific(Dating)
Player:: "Babe, why don't you just come live with me?"
SO:: "Sure, that's a great idea!"
loseHomeDating()

View file

@ -1,7 +1,13 @@
loseJob()
USE:
The player stops working at their current company. Set salary to 0. Boss and colleagues become acquantainces.
TYPE: Command, Non-Ref
RETURNS: /
THEME: Job
COMPARE: moveJobs
EXAMPLE:
Boss(Angry):: "That's enough. You're fired!"
loseJob()

View file

@ -1,6 +1,12 @@
Actor.makePermanent()
Normally following generatePersonTemporary(), this turns a temporary actor into a permanent actor that persists after the current scene ends. Does nothing if called on an already permanent actor.
USE:
This turns a temporary actor (generatePersonTemporary) into a permanent actor that persists after the current scene ends. Does nothing if called on an already permanent actor.
TYPE: Command, Reference
RETURNS: /
THEME: Actor Creation
COMPARE: generatePersonTemporary, generatePerson
EXAMPLE:
// Generate someone who is into the player's gender

View file

@ -0,0 +1,16 @@
moveHome()
USE:
Move into the current building and make it your new home. Remember to use SetLandlord() and SetRent() separately.
TYPE: Command, Non-Ref
RETURNS: /
THEME: Housing
COMPARE: loseHome, setLandlord, setRent
EXAMPLE:
"I signed the contract."
moveHome()
Rent = 1000
Landlord.setLandlord()
Rent.setRent()

View file

@ -1,10 +1,16 @@
moveJobs()
USE:
Get hired at this current building and make it our new workplace. Remember to use setBoss() and SetSalary() separately.
TYPE: Command, Non-Ref
RETURNS: /
THEME: Job
COMPARE: loseJob, setBoss, setSalary
EXAMPLE:
"I signed the contract."
moveJobs()
Salary = 2000
Interviewer.setBoss()
Salary.setRent()
Salary.setSalary()

View file

@ -1,6 +1,12 @@
moveTo(place)
Instantly move the player to this place. Currently there are only three places: Home, Home_Dating, Work
USE:
Instantly move the player (and possible companion) to this place. Currently there are only three places: Home, Home_Dating, Work
TYPE: Command, Non-Ref
RETURNS: /
THEME: Location
COMPARE: setBackground
EXAMPLE:
"Where should I go?"

View file

@ -1,7 +1,13 @@
passTime(hours_min, hours_max)
USE:
I initially intended this as a way to pass time during a scene, but it turned out too complicated due to stat depreciations. All it does now is add to the variable TimePassed, which can be useful for while loop I guess.
TYPE: Command, Non-Ref
RETURNS: /
THEME: Time
COMPARE:
EXAMPLE:
While TimePassed < 3
"The party continues ..."

View file

@ -1,7 +1,13 @@
Actor.randomizeFace()
USE:
Randomize the actor's face and skin. Commonly called after blendpreset (which might change the gender which resets the actor to the default face and hair for that gender)
TYPE: Command, Reference
RETURNS: /
THEME: Looks
COMPARE: randomizeHairs, blendPreset
EXAMPLE:
// We want a male bodybuilder
Bodybuilder = generatePerson() // just so that we get the random stats etc, but this might generate a female

View file

@ -1,7 +1,13 @@
Actor.randomizeHairs()
USE:
Randomize the actor's hair and pubic hair. Commonly called after blendpreset (which might change the gender which resets the actor to the default face and hair for that gender)
TYPE: Command, Reference
RETURNS: /
THEME: Looks
COMPARE: randomizeFace, blendPreset
EXAMPLE:
// We want a male bodybuilder
Bodybuilder = generatePerson() // just so that we get the random stats etc, but this might generate a female

View file

@ -1,7 +1,13 @@
Actor.removeColleague()
USE:
Remove this actor from the list of colleague. Will remain acquaintance at least though.
TYPE: Command, Reference
RETURNS: /
THEME: Job
Compare: addColleague, isColleague, getSpecific(Colleague)
EXAMPLE:
John(Sad):: "I'm leaving the company."
John.removeColleage()
John.removeColleague()

View file

@ -1,7 +1,13 @@
Actor.removeDatingFriend()
USE:
Remove this actor from the list of your significant other's friends. Will remain acquaintance at least though.
TYPE: Command, Reference
RETURNS: /
THEME: Acquaintance
COMPARE: addDatingFriend, isDatingFriend, getSpecific(Dating_Friend)
EXAMPLE:
John(Sad):: "Your boyfriend is an asshole. I'm no longer his friend."
John.removeDatingFriend()

View file

@ -1,7 +1,13 @@
Actor.removeNeighbour()
USE:
Remove this actor from the list of your neighbours. Will remain acquaintance at least though.
TYPE: Command, Reference
RETURNS: /
THEME: Housing
COMPARE: addNeighbour, isNeighbour, getSpecific(Neighbour)
EXAMPLE:
John(Sad):: "Goodbye, we're moving to another apartment."
John.removeNeighbour()

View file

@ -1,3 +1,9 @@
sceneEnd()
End the scene and return to map view. This will also clear all actors (except player and current companion from memory) after saving them back into their lpcharacters.
USE:
End the scene and return to map view. This will also clear all actors (except player and current companion from memory) after saving them back into their lpcharacters.
TYPE: Command, Non-Ref
RETURNS: /
THEME: Scenes
COMPARE: sceneStart, timeout, timeoutprecise

View file

@ -0,0 +1,9 @@
sceneStart()
USE:
Start the scene and open the scene UI
TYPE: Command, non-Ref
RETURNS: /
THEME: Scenes
COMPARE: sceneEnd, setBackground

View file

@ -1,7 +1,13 @@
setBackground(where)
USE:
Set the background image. Check all_where.txt for full list. This is also important for dress() which decides how to dress the actor appropriately based on the background (suits for work, sport clothes for sports_centre etc)
TYPE: Command, non-Ref
RETURNS: /
THEME: Scenes, Location
COMPARE: sceneStart, dress
EXAMPLE:
setBackground(work)
Player.dress() // player will put on professional clothes

View file

@ -1,7 +1,13 @@
Actor.setBoss()
USE:
Make this person your boss. Current boss is no longer boss and becomes acquaintance.
TYPE: Command, Reference
RETURNS: /
THEME: Job
COMPARE: isBoss, getSpecific(Boss), moveJobs
EXAMPLE:
"I signed the contract."
moveJobs()

View file

@ -0,0 +1,13 @@
Actor.setDating()
USE:
Make this person your significant other. Current SO is no longer dating you and becomes acquaintance. Also clears out all friends of previous SOs and affairs, who all become acquaintances.
TYPE: Command, Reference
RETURNS: /
THEME: Relationships
COMPARE: loseDating, isDating, getSpecific(Dating)
EXAMPLE:
"I agreed to be his girlfriend"
John.setDating()

View file

@ -1,7 +1,13 @@
GlobalVariable.setGlobal(float or floatvariable)
GlobalVariableName.setGlobal(float or floatvariable)
USE:
Set (add if it doesn't already exist) a global variable to a certain number.
TYPE: Command, non-Ref (ref-like syntax)
RETURNS: /
THEME: Variables
COMPARE: getGlobal, clearGlobal, getID
EXAMPLE:
NumberOfChildren.setGlobal(3)

View file

@ -1,7 +1,13 @@
Actor.setLandlord()
USE:
Make this person your landlord. Current landlord is no longer landlord and becomes acquaintance.
TYPE: Command, Reference
RETURNS: /
THEME: Housing
COMPARE: isLandlord, setRent, getSpecific(Landlord)
EXAMPLE:
"I signed the contract."
moveHome()

View file

@ -0,0 +1,18 @@
Actor.setLivingWithPlayer(bool)
USE:
flags or unflags an actor as living with the player
TYPE: Command, Reference
RETURNS: /
THEME: Housing
COMPARE: livesWithPlayer
EXAMPLE:
"Since I have a spare room available and could do with the extra cash, I've agreed to sub-let it to a foreign exchange student."
Student = generatePerson(twenties)
Student::"Hello! Thank you for letting me stay here!"
Student.setLivingWithPlayer(true)
Roomie(Angry)::"I've had it with living in this pig sty! You never clean up after yourself!"
Roomie.setLivingWithPlayer(false)

View file

@ -1,7 +1,13 @@
Actor.setPT()
USE:
Make this person your personal trainer. Current personal trainer is no longer PT and becomes acquaintance.
TYPE: Command, Reference
RETURNS: /
THEME: Special Characters
COMPARE: losePT
EXAMPLE:
"<John.name> agreed to train me."
John.setPT()

View file

@ -1,7 +1,13 @@
Float.setRent()
FloatVar.setRent()
USE:
Set this as your current rent.
TYPE: Command, non-Ref (ref-like syntax)
RETURNS: /
THEME: Housing, Money
COMPARE: getRent, setLandlord, moveHome
EXAMPLE:
"I signed the contract."
moveHome()

View file

@ -0,0 +1,16 @@
Floatvar.setSalary()
USE:
Set this as your current salary.
TYPE: Command, Non-Ref (ref-like syntax)
RETURNS: /
THEME: Job, Money
COMPARE: getSalary, moveJobs
EXAMPLE:
"I signed the contract."
moveJobs()
Salary = 2000
Interviewer.setBoss()
Salary.setSalary())

View file

@ -1,7 +1,13 @@
Actor.show(position_index)
USE:
Show this actor on screen. The player's default position is 0. 1 - 6 is counted from right to left of the screen.
TYPE: Command, Reference
RETURNS: /
THEME: Actor Loading, Scenes
COMPARE: hide, getSpecific, generatePerson, generatePersonTemporary, getPerson
EXAMPLE:
NewGuy = generatePerson()
NewGuy.dress()

View file

@ -1,7 +1,13 @@
Actor.startDate()
USE:
Start hanging out with this person (make them your current companion)
TYPE: Command, Reference
RETURNS: /
THEME: Companions
COMPARE: endDate, isWithCompanion
EXAMPLE:
"I decided to hang out with <John.name> today."
John.startDate()

View file

@ -1,7 +1,13 @@
Actor.strip()
USE:
Strip this actor of all clothes
TYPE: Command, Reference
RETURNS: /
THEME: Clothes
COMPARE: dress
EXAMPLE:
Player.strip()
"I'm nude now ..."

View file

@ -1,7 +1,14 @@
timeout(hours, sceneid1, sceneid2, ..., sceneidN)
USE:
Timeout these scenes for x hours so that they won't trigger again. The number of hours is adjusted by the scene frequency setting however.
Example:
TYPE: Command, non-Ref
RETURNS: /
THEME: Scenes
COMPARE: timeoutprecise, timeoutActor, timeoutActorPrecise
EXAMPLE:
"I just met someone. I don't want to meet another person for a while."
timeout(20, meet_new_person) // could be more or less than 20 hours depending on the scene frequency setting

View file

@ -0,0 +1,18 @@
timeoutActor(hours, sceneID, Actor1, ..., ActorN)
USE:
Similar to timeout, except only for one particular scene. It puts a cooldown on the scene for x hours (adjusted by the scene frequency setting), but only for one or more specified actors, who won't get selected by the WHO condition of the scene.
TYPE: Command, non-Ref
RETURNS: /
THEME: Scenes
COMPARE: timeout, timeoutPrecise, timeoutActorPrecise
EXAMPLE:
Player(Angry)::"Stop calling me so many times a day!"
Contact(Offended)::"Uh... Ok, I guess. Catch you tomorrow, maybe?"
sceneEnd()
timeoutActor(24, call_invite, Contact)

View file

@ -0,0 +1,17 @@
timeoutActorPrecise(hours, sceneID, actor1, ..., actorN)
USE:
Combination of timeoutPrecise and timeoutActor. Puts a scene on cooldown for exactly the amount of hours specified, but limited to the stated actor(s) who will not pass the scene's WHO condition.
TYPE: Command, Reference
RETURNS: /
THEME: Scenes
COMPARE: timeout, timeoutPrecise, timeoutActor
EXAMPLE:
Friend(Happy)::"Well, I'm off to Barbados for a week. Bye!"
Player(Happy)::"Have a good time!"
sceneEnd
timeoutActorPrecise(156, call_invite, Friend)

View file

@ -1,7 +1,13 @@
timeoutPrecise(hours, sceneid1, sceneid2, ..., sceneidN)
USE:
Timeout these scenes for x hours so that they won't trigger again. The number of hours is fixed and not affected by the scene frequency setting.
TYPE: Command, non-Ref
RETURNS: /
THEME: Scenes
COMPARE: timeout, timeoutActor, timeoutActorPrecise
Example:
"I just celebrated my birthday."
timeoutPrecise(8760, birthday) // it will be my birthday again exactly this time next year

View file

@ -0,0 +1,18 @@
DatingHasHome()
USE:
Checks to see if the player's significant other lives in their own apartment.
TYPE: Condition, non-Ref
RETURNS: bool
THEME: Housing, Relationships
COMPARE: PlayerHasHome, isAtHome, isAtDatingHome, loseHomeDating
EXAMPLE:
If !PlayerHasHome()
Player:: "I can't afford to rent my own apartment."
If DatingHasHome()
Player:: "Maybe I can move in with my girlfriend instead?"
Endif
Endif

View file

@ -0,0 +1,26 @@
ForcedTrigger()
USE:
Returns whether a scene was force triggered with an action that has the SCENE_ALWAYS field filled (which overrides the conditions at the top of a scene). Use it to know if the scene was consciously triggered by the player or randomly triggered.
TYPE: Condition, non-Ref
RETURNS: bool
THEME: Scenes
COMPARE: sceneStart
EXAMPLE:
The "organize_a_house_party.lpaction" file has the following field filled:
SCENE_ALWAYS: house_party
And the house_party.lpscene consults it like this:
PlayerHosting = ForcedTrigger()
sceneStart()
If PlayerHosting
"My preparations are all done. It's time to welcome the guests!"
Player(Happy):: "Come in, everyone! Don't be shy. Everything's ready."
Else
"My phone rang! It's <Host.name>. I wonder what <Host.he_or_she> is calling me for?"
...
Endif

View file

@ -0,0 +1,18 @@
PlayerHasHome()
USE:
Checks if the player lives in their own apartment.
TYPE: Condition, non-Ref
RETURNS: bool
THEME: Housing
COMPARE: DatingHasHome, isAtHome, isAtDatingHome, loseHomeDating
EXAMPLE:
If !PlayerHasHome()
Player:: "I can't afford to rent my own apartment."
If DatingHasHome()
Player:: "Maybe I can move in with my girlfriend instead?"
Endif
Endif

View file

@ -1,7 +1,13 @@
Tag(tag1, tag2, ..., tagN) returns bool
Tag(tag1, tag2, ..., tagN)
USE:
(Used for lpdesc and lptalk files) Check if the current animation contains ALL of the tags specified.
TYPE: Condition, non-Ref
RETURNS: bool
THEME: sex talk
COMPARE:
EXAMPLE:
Tag(Hugging, NonSexual, Couple)
// To check if the current animation contains ANY of the tags specified, use this instead:

View file

@ -0,0 +1,14 @@
Actor.isAffair()
USE:
Check if you have commited an affair with this actor while with your current boyfriend / girlfriend.
TYPE: Condition, Reference
RETURNS: bool
THEME: Relationships
COMPARE: forgiveAffairs, getSpecific(Affair)
EXAMPLE:
If John.isAffair()
John(Flirty):: "Oh baby, your stupid boyfriend has no idea what we've done."
Endif

View file

@ -0,0 +1,14 @@
Actor.isAsexual()
USE:
returns true if the actor doesn't have any of the gender preferences "interested in male", "interested in female", or "interested in trans".
TYPE: Condition, Reference
RETURNS: bool
THEME: Gender Preference
COMPARE: isInterestedIn
EXAMPLE
If !Actor.isAsexual() && !Actor.isInterestedIn(Player) && Player.isMale()
"<Actor.name> is probably a lesbian."
Endif

View file

@ -0,0 +1,18 @@
isAtDatingHome()
USE:
Checks if player is at significant other's home rather than their own. (The WHERE : home trigger catches both)
TYPE: Condition, non-Ref
RETURNS: bool
THEME: location, Relationships
COMPARE: isAtHome, WHERE
EXAMPLE:
SO::"Well, I have an early day tomorrow so..."
If isAtDatingHome()
Player:: "OK, I'll just grab my things and go home."
Else
Player:: "OK, I'll walk you to the door."
Endif

View file

@ -1,7 +1,13 @@
isAtHome() returns bool
isAtHome()
USE:
Check if the player is at their own home. Frequently used to separate 'WHERE: home' cases of the player being at home and being at their significant other's home.
TYPE: Condition, non-Ref
RETURNS: bool
THEME: Location
COMPARE: moveTo
EXAMPLE:
WHERE: home
....

View file

@ -1,7 +1,13 @@
Actor.isBoss() returns bool
Actor.isBoss()
USE
Check if the actor is the player's boss.
TYPE: Condition, Reference
RETURNS: bool
THEME: Job
COMPARE: setBoss, moveJobs, getSpecific(Boss)
EXAMPLE:
If John.isBoss()
John(Angry):: "You're fired!"

View file

@ -1,7 +1,13 @@
Actor.isColleague() returns bool
Actor.isColleague()
USE:
Check if the actor is one of the player's colleagues.
TYPE: Condition, Reference
RETURNS: bool
THEME: Job
COMPARE: addColleague, removeColleague, getSpecific(Colleague)
EXAMPLE:
If John.isColleague()
John(Happy):: "Hey, wanna go for lunch?"

View file

@ -1,7 +1,13 @@
Actor.isContactExchanged() returns bool
Actor.isContactExchanged()
USE:
Check if the actor has exchanged numbers with the player.
TYPE: Condition, Reference
RETURNS: bool
THEME: Acquaintance
COMPARE: blockContact, exchangeContact
EXAMPLE:
If John.isContactExchanged()
John(Happy):: "Well, you have my number. Just call me if you need anything else."

View file

@ -1,8 +1,14 @@
Actor.isDating() returns bool
Actor.isDating()
USE:
Check if the actor is in a relationship with the player.
Alternatively, if the Actor is Player then it checks whether the player is currently in a relationship at all.
TYPE: Condition, Reference
RETURNS: bool
THEME: Relationships
COMPARE: loseDating, setDating, getSpecific(Dating)
EXAMPLE:
If Player.isDating()
"I'm dating someone ..."

View file

@ -1,7 +1,13 @@
Actor.isDatingFriend() returns bool
Actor.isDatingFriend()
USE:
Check if the actor is a friend of your significant other
TYPE: Condition, Reference
RETURNS: bool
THEME: Acquaintance
COMPARE: addDatingFriend, removeDatingFriend, getSpecific(Dating_Friend)
EXAMPLE:
If John.isDatingFriend()
John(Happy):: "Nice to meet you at last, <Player.name>. <Dating.name> can't stop talking about you."

View file

@ -1,6 +1,12 @@
Actor1.isDominantSex(Actor2) returns bool
Actor1.isDominantSex(Actor2)
Check if the one actor would take a dominant role in a sexual relationship with another actor. This doesn't take into account sexual orientation. The rule is male is dominant to female, female with penis dominant to female with vagina. When it's male-male or female-female, it compares the masochist / submissive stat, the actor with lower masochist is dominant.
USE:
Check if the one actor would take a dominant role in a sexual relationship with another actor. This doesn't take into account sexual orientation. The rule is male is dominant to female, female with penis dominant to female with vagina. When it's male-male or female-female, it compares the masochist / submissive stat, the actor with lower masochist is dominant. Useful for mostly gender-related roles (opening doors, who walks who home etc)
TYPE: Condition, Reference
RETURNS: bool
THEME: Gender, Dominance
COMPARE: isMale, isSameGender
EXAMPLE:
If John.isDominantSex(Player)

View file

@ -1,5 +1,6 @@
Actor.isEquipped(Slot) returns bool
Actor.isEquipped(Slot)
USE:
Check if an actor is wearing any clothes in a certain 'slot'. Will return true even if it's an underwear hidden under other clothes. The slots are:
Outerwear
Headwear
@ -11,7 +12,12 @@ Bottom_Under
Foot
Foot_Under
TYPE: Condition, Reference
RETURNS: bool
THEME: Clothes
COMPARE: dress, strip
EXAMPLE:
If John.isEquipped(Bottom_Under)
"John is wearing a pair of boxers or something."
Endif
Endif

View file

@ -1,7 +1,13 @@
Actor1.isInterestedIn(Actor2) returns bool
Actor1.isInterestedIn(Actor2)
USE:
Check if the one actor is interested sexually in another actor's gender. Does not take into account attractiontoplayer stat, just look at Actor1's sexual orientation and Actor2's gender.
TYPE: Condition, Reference
RETURNS: bool
THEME: Gender Preference
COMPARE:
EXAMPLE:
If John.isInterestedIn(Player)
"A <John.guy_or_girl> approached me and introduced <John.himself_or_herself> as <John.name>."

View file

@ -1,7 +1,13 @@
Actor.isLandlord() returns bool
Actor.isLandlord()
USE:
Check if the actor is your landlord.
TYPE: Condition, Reference
RETURNS: bool
THEME: Housing
COMPARE: setLandlord, getSpecific(Landlord)
EXAMPLE:
If John.isLandlord()
John(Angry):: "Hey, there has been a noise complaint about you."

View file

@ -0,0 +1,14 @@
Actor.isMale()
USE:
Check if the actor is male.
TYPE: Condition, Reference
RETURNS: bool
THEME: Gender
COMPARE: isDominantSex, isSameGender, isInterestedIn
EXAMPLE:
If John.isMale()
"<John.name> is a dude!"
Endif

View file

@ -0,0 +1,17 @@
Actor.isMarried()
USE:
Returns true if the calling actor is married.
TYPE: Condition, Reference
RETURNS: bool
THEME: Relationships
COMPARE: isDating
EXAMPLE:
Parent = getRelative(Parent)
If Parent.isValid()
If !Parent.isMarried()
"Ever since my <Parent.mom_or_dad> left <Parent.o>, my <Parent.dad_or_mom> hasn't been the same."
Endif
Endif

View file

@ -0,0 +1,14 @@
isModEnabled(ModID)
USE:
Check if a mod, identified by its ID in its .lpmod file, is enabled.
TYPE: Condition, non-Ref
RETURNS: bool
THEME: Mods
COMPARE:
EXAMPLE:
If isModEnabled(vin_VanillaPorn)
"Some really silly porn plot is going to happen!"
Endif

View file

@ -1,7 +1,13 @@
Actor.isNeighbour() returns bool
Actor.isNeighbour()
USE:
Check if the actor is one of your neighbours.
TYPE: Condition, Reference
RETURNS: bool
THEME: Housing
COMPARE: addNeighbour, removeNeighbour, getSpecific(Neighbour)
EXAMPLE:
If John.isNeighbour()
John(Happy):: "Hey, I'm your neighbour. Nice to meet you!"

View file

@ -1,7 +1,13 @@
Actor.isPlayer() returns bool
Actor.isPlayer()
USE:
Check if the actor is the player.
TYPE: Condition, Reference
RETURNS: bool
THEME: Identity
COMPARE: getID, isSameAs
EXAMPLE:
If John.isPlayer()
"Should have just use the variable Player!"

View file

@ -0,0 +1,16 @@
isPlayerMarried()
USE:
checks if the player is married
TYPE: Condition, non-Ref
RETURNS: bool
THEME: Relationships
COMPARE: isMarried, isDating
EXAMPLE:
If isPlayerMarried()
Player(Crying):: "I cannot put up with this abusive marriage any longer ..."
Divorce()
loseDating()
Endif

View file

@ -0,0 +1,20 @@
Actor.isRelative()
USE:
returns true if the calling actor is a relative of the player's
TYPE: Condition, Reference
RETURNS: bool
THEME: Family
COMPARE: getRelative, getRelativeExcept
EXAMPLE:
"Should I make a pass at <Actor.name>?"
0:: "Yes"
1:: "No"
If 0
If Actor.isRelative()
Actor(Disgusted):: "Ew, sick!"
Endif
Endif

View file

@ -1,7 +1,13 @@
Actor1.isSameAs(Actor2) returns bool
Actor1.isSameAs(Actor2)
USE:
Check if the two actors are the same person
TYPE: Condition, Reference
RETURNS: bool
THEME: Identity
COMPARE: getID, isPlayer
EXAMPLE:
If John.isSameAs(Jack)
"They're the same dude!"

View file

@ -1,7 +1,13 @@
Actor1.isSameGender(Actor2) returns bool
Actor1.isSameGender(Actor2)
USE:
Check if the two actors are the same gender
TYPE: Condition, Reference
RETURNS: bool
THEME: Gender
COMPARE: isMale, isDominantSex, isInterestedIn
EXAMPLE:
If John.isSameGender(Jack)
"They're both <John.male_or_female>."

View file

@ -1,7 +1,13 @@
Actor1.isValid() returns bool
Actor.isValid()
USE:
Check if an actor variable is valid. Most commonly used after GetPerson(), GetCompanion() or GetSpecific()
TYPE: Condition, Reference
RETURNS: bool
THEME: Actor Loading
COMPARE: getPerson, getSpecific
EXAMPLE:
John = getSpecific(Colleague)
If John.isValid()

View file

@ -0,0 +1,23 @@
Actor.isVisible(slot)
USE:
Check if an actor is wearing any clothes in a certain 'slot'. Will return false if it's an underwear hidden under other clothes. The slots are:
+Outerwear
+Headwear
+Eyewear
+Top
+Top_Under
+Bottom
+Bottom_Under
+Foot
+Foot_Under
TYPE: Condition, Reference
RETURNS: Bool
THEME: Clothes
COMPARE: isEquipped, dress, strip
EXAMPLE:
If Actor.isVisible(Top_Under) && Actor.isVisible(Bottom_Under)
"I walked in on <Actor.name> wearing nothing but her underwear."
Endif

View file

@ -1,7 +1,13 @@
isWithCompanion() returns bool
isWithCompanion()
USE:
Check if the player is currently hanging out with a companion.
TYPE: Condition, non-Ref
RETURNS: bool
THEME: Companions
COMPARE: getCompanion, startDate, endDate, "CurrentCompanion" global var
EXAMPLE:
If isWithCompanion()
"I'm currently with <CurrentCompanion.name>."

Some files were not shown because too many files have changed in this diff Show more