123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477 |
- # stat_sklattrib
- !!******************** Warning! ********************
- !!The code in this location is both complex and very fundamental to most systems!
- !!Use EXTREME caution if modifying!
- !!Ask if understanding is required
- !!****************************************************
- !!For Users;
- !! For any Attribute or Skill, outside of "stat_sklattrib", the only things that get used are;
- !! the variables themselves, pcs_"name", for checks
- !! "name"_exp to replace straight adds (i.e. stren_exp +=1 instead of pcs_stren += 1)
- !! "name"_deg to replace losses (i.e. stren_deg -= 1 instead of pcs_stren -= 1)
- !! "name"_muta if setting higher attribute limits due to "mutations" ("name"_muta replaces the "mutagen" variables)
- !! And checking "name"_lvl if and only if it''s being used to check if an NPC/Item can still train the PC. That is also the only time there should be a gate on "name"_exp += x and should be a minimum of += rand(3,5). No other gates should be used.
- !! The others are used in the code as controllers and modifying anything except "name"_exp, "name"_deg, and "name"_muta outside of this routine can break things
- !! Attributes & Skills
- !! $att_name[x] and $skl_name[x]; an array that stores the name of each attribute variable
- !! For each attribute and skill variable, there are the following sub-variables
- !! _lvl, is the base level of an attribute/skill before adjustment
- !! _lvlst, level yesterday, used for error checking
- !! _deg is the days to attribute/skill loss and is reset on XP gain
- !! _exp is the amount of total XP gained so far for each and will replace all the gains in the rest of the code
- !! _mem is the amount of XP yesterday
- !! _muta replaces the assorted mutagen variables for attributes, this is to replace the 30 lines of code with 1
- !! _flr, this is the floor through which an attribute/skill cannot fall
- !! _xpnxt is the XP required to reach the next level
- !! Traits
- !! $traitattskl[x], this stores a list of all traits that can affect attribute or skill advancement or degradation, if a trait does not, it does not go in this array
- !! For each trait that can affect attribute or skill advancement or degradation;
- !! "trait"[y1] = 1 if affecting an attribute or = 2 if affecting a skill;
- !! "trait"[y2] = the index number in $att_name or $skl_name that corresponds to the skill/attribute to be effected;
- !! "trait"[y3] = indicates if it effects XP required to level by adjusting the base rate as a plus to the default of 60
- !! "trait"[y4] = indicates if it effects degradation rate by adjusting the base rate as a plus to the default of 60 for attributes or 90 (3/2) for skills
- !! the 'y' in the above is for traits that affect more than 1 skill or attribute, note they must be contiguous 0x, 1x, 2x, etc. there can be no gaps
- !! Note, the effects of multiple traits on a single skill or attribute stack
- !!Attribute variable list
- $att_name[0] = 'stren'
- $att_name[1] = 'agil'
- $att_name[2] = 'vital'
- $att_name[3] = 'intel'
- $att_name[4] = 'react'
- $att_name[5] = 'sprt'
- $att_name[6] = 'chrsm'
- $att_name[7] = 'prcptn'
- $att_name[8] = 'magik'
- !!Skill variable list
- !!Add new skills to the end; if removing a skill, move the rest up and then edit the Traits so that the index numbers are correct
- $skl_name[0] = 'jab'
- $skl_name[1] = 'punch'
- $skl_name[2] = 'kick'
- $skl_name[3] = 'def'
- $skl_name[4] = 'shoot'
- $skl_name[5] = 'vokal'
- $skl_name[6] = 'sewng'
- $skl_name[7] = 'instrmusic'
- $skl_name[8] = 'photoskl'
- $skl_name[9] = 'artskls'
- $skl_name[10] = 'danc'
- $skl_name[11] = 'dancero'
- $skl_name[12] = 'dancpol'
- $skl_name[13] = 'chess'
- $skl_name[14] = 'ttgmng'
- $skl_name[15] = 'humint'
- $skl_name[16] = 'persuas'
- $skl_name[17] = 'run'
- $skl_name[18] = 'vball'
- $skl_name[19] = 'icesktng'
- $skl_name[20] = 'wrstlng'
- $skl_name[21] = 'ftbll'
- $skl_name[22] = 'splcstng'
- $skl_name[23] = 'observ'
- $skl_name[24] = 'makupskl'
- $skl_name[25] = 'compskl'
- $skl_name[26] = 'comphckng'
- $skl_name[27] = 'hndiwrk'
- $skl_name[28] = 'servng'
- $skl_name[29] = 'mdlng'
- $skl_name[30] = 'medcn'
- $skl_name[31] = 'heels'
- !!Trait Section
- !!This is where Traits that will affect attribute or skill advancement or degradation have those aspects defined.
- !!Always put the trait name, variable name, and skill or attribute variable in a comment
- !!Natrual Dancer; Provides a 10% reduction in xp required to level dance skills
- nat_dancer[1] = 2 & nat_dancer[2] = 10 & nat_dancer[3] = -6 & nat_dancer[4] = 0
- nat_dancer[11] = 2 & nat_dancer[12] = 11 & nat_dancer[13] = -6 & nat_dancer[14] = 0
- nat_dancer[21] = 2 & nat_dancer[22] = 12 & nat_dancer[23] = -6 & nat_dancer[24] = 0
- !!Natrual Athlete; Provides a 10% reduction in xp required to level sports skills
- nat_athlete[1] = 2 & nat_athlete[2] = 17 & nat_athlete[3] = -6 & nat_athlete[4] = 0
- nat_athlete[11] = 2 & nat_athlete[12] = 18 & nat_athlete[13] = -6 & nat_athlete[14] = 0
- nat_athlete[21] = 2 & nat_athlete[22] = 19 & nat_athlete[23] = -6 & nat_athlete[24] = 0
- nat_athlete[31] = 2 & nat_athlete[32] = 20 & nat_athlete[33] = -6 & nat_athlete[34] = 0
- nat_athlete[41] = 2 & nat_athlete[42] = 21 & nat_athlete[43] = -6 & nat_athlete[44] = 0
- !!Scholarly; Provides a 10% reduction in xp required to level Intelligence, easier to get good notes at school, faster studying in the university
- schlrly[1] = 1 & schlrly[2] = 3 & schlrly[3] = -6 & schlrly[4] = 0
- !!Trait variable list; only traits that can affect attribute or skill advancement or degradation goes here
- $traitattskl[0] = 'nat_dancer'
- $traitattskl[1] = 'nat_athlete'
- $traitattskl[2] = 'schlrly'
- !!This is sets _lvl and _exp based on the value of pcs_"name" the first time so that _lvl and _exp do not need to set on start.
- !!Theoretically this can be eventually deleted.
- if attsklupdate = 0:
- i = 0 & x = 1
- :rstloop
- expadj = 60
- tl = 0
- :trtrstloop
- tltp = 0
- :trtrstinsdlp
- !! Note this loop is done with a flag set in the dynamic that is checked outside; this is because testing showed inconsistent results when jumping from inside the dynamic and with the whole loop in the dynamic.
- dynamic "
- if <<$traitattskl[tl]>> > 0 and <<$traitattskl[tl]>>[tltp + 1] = x and <<$traitattskl[tl]>>[tltp + 2] = i and <<$traitattskl[tl]>>[tltp + 3] ! 0: expadj += <<$traitattskl[tl]>>[tltp + 3]
- if <<$traitattskl[tl]>>[tltp + 11] ! 0: insdlpflag = 1
- "
- if insdlpflag = 1: tltp += 10 & insdlpflag = 0 & jump 'trtrstinsdlp'
- tl += 1
- if tl < arrsize ('$traitattskl'): jump 'trtrstloop'
- killvar 'tl' & killvar 'tltp' & killvar 'insdlpflag'
- if x = 1:
- $attskltmp = $att_name[i]
- else
- $attskltmp = $skl_name[i]
- end
- dynamic "
- if pcs_<<$attskltmp>> > 0 and <<$attskltmp>>_lvl = 0:
- <<$attskltmp>>_exp = (expadj * (pcs_<<$attskltmp>> - 1) * (pcs_<<$attskltmp>> - 1) / 180) + 1
- <<$attskltmp>>_lvl = pcs_<<$attskltmp>>
- <<$attskltmp>>_lvlst = <<$attskltmp>>_lvl
- end
- "
- killvar 'expadj' & killvar '$attskltmp'
- i += 1
- if (x = 1 and i < arrsize ('$att_name')) or (x = 2 and i < arrsize ('$skl_name')): jump 'rstloop'
- i = 0 & x += 1
- if x < 3: jump 'rstloop'
- killvar 'i' & killvar 'x'
- attsklupdate = 1
- end
- !!This is the section that runs when the call is from cikl
- if $ARGS[0] = 'daycall':
- !! Attribute XP with Skill XP gain
- x = 0
- :sklxploop
- y = 1
- :persklloop
- dynamic "$attnamtmp = $att_name[<<$skl_name[x]>>[y]]"
- dynamic "
- if <<$skl_name[x]>>_exp > <<$skl_name[x]>>_mem: <<$attnamtmp>>_exp += (<<$skl_name[x]>>_exp - <<$skl_name[x]>>_mem) / 5
- if <<$skl_name[x]>>[y + 1] = -1 or y >= 9: lpstopflg = 1
- "
- killvar '$attnamtmp'
- if lpstopflg = 0: y += 1 & jump 'persklloop'
- killvar 'lpstopflg'
- x += 1
- if x < arrsize ('$skl_name'): jump 'sklxploop'
- killvar 'x' & killvar 'y' & killvar '$attnamtmp'
- !! Degradation Loop
- i = 0 & x = 1
- :degloop
- degadj = 60
- if x = 2: degadj += 30
- expadj = 60
- tl = 0
- :trtdegloop
- tltp = 0
- :trtdeginsdlp
- !! Note this loop is done with a flag set in the dynamic that is checked outside; this is because testing showed inconsistent results when jumping from inside the dynamic and with the whole loop in the dynamic.
- dynamic "
- if <<$traitattskl[tl]>> > 0 and <<$traitattskl[tl]>>[tltp + 1] = x and <<$traitattskl[tl]>>[tltp + 2] = i and <<$traitattskl[tl]>>[tltp + 3] ! 0: expadj += <<$traitattskl[tl]>>[tltp + 3]
- if <<$traitattskl[tl]>> > 0 and <<$traitattskl[tl]>>[tltp + 1] = x and <<$traitattskl[tl]>>[tltp + 2] = i and <<$traitattskl[tl]>>[tltp + 4] ! 0: degadj += <<$traitattskl[tl]>>[tltp + 4]
- if <<$traitattskl[tl]>>[tltp + 11] ! 0: insdlpflag = 1
- "
- if insdlpflag = 1: tltp += 10 & insdlpflag = 0 & jump 'trtdeginsdlp'
- tl += 1
- if tl < arrsize ('$traitattskl'): jump 'trtdegloop'
- killvar 'tl' & killvar 'tltp' & killvar 'insdlpflag'
- if x = 1:
- $attskltmp = $att_name[i]
- else
- $attskltmp = $skl_name[i]
- end
- dynamic "
- if <<$attskltmp>>_lvl ! <<$attskltmp>>_lvlst: <<$attskltmp>>_lvl = <<$attskltmp>>_lvlst
- if <<$attskltmp>>_lvl < 100:
- degtmp = (102 - <<$attskltmp>>_lvl + <<$attskltmp>>_muta)
- else
- degtmp = 2 + <<$attskltmp>>_muta
- end
-
- degtmp = degadj * degtmp / 60
- if degtmp < 2: degtmp = 2
-
- if <<$attskltmp>>_exp < <<$attskltmp>>_mem: <<$attskltmp>>_exp = <<$attskltmp>>_mem
- if <<$attskltmp>>_exp = <<$attskltmp>>_mem:
- <<$attskltmp>>_deg -= 1
- else
- <<$attskltmp>>_deg = degtmp
- end
- if <<$attskltmp>>_deg <= 0 and <<$attskltmp>>_lvl > <<$attskltmp>>_flr:
- exptmp = <<$attskltmp>>_exp - (expadj * (<<$attskltmp>>_lvl - 1) * (<<$attskltmp>>_lvl - 1) / 180)
- if exptmp < 0: exptmp = 0
- <<$attskltmp>>_lvl -= 1
- <<$attskltmp>>_deg = degtmp
- <<$attskltmp>>_exp = (expadj * (<<$attskltmp>>_lvl - 1) * (<<$attskltmp>>_lvl - 1) / 180) + exptmp
- !! This will only do anything if the PC builds exp well in excess of what is needed to level
- if <<$attskltmp>>_exp > (expadj * (<<$attskltmp>>_lvl) * (<<$attskltmp>>_lvl) / 180): <<$attskltmp>>_exp -= (2 * <<$attskltmp>> - 1) / 10
- end
- <<$attskltmp>>_lvlst = <<$attskltmp>>_lvl
- <<$attskltmp>>_mem = <<$attskltmp>>_exp
- "
- killvar 'degtmp' & killvar 'exptmp'
- killvar 'degadj' & killvar 'expadj' & killvar '$attskltmp'
- i += 1
- if (x = 1 and i < arrsize ('$att_name')) or (x = 2 and i < arrsize ('$skl_name')): jump 'degloop'
- i = 0 & x += 1
- if x < 3: jump 'degloop'
- killvar 'i' & killvar 'x'
- end
- !!Advancement Loop
- i = 0 & x = 1
- :advloop
- expadj = 60
- tl = 0
- :trtadvloop
- tltp = 0
- :trtadvinsdlp
- !!Note this loop is done with a flag set in the dynamic that is checked outside; this is because testing showed inconsistent results when jumping from inside the dynamic and with the whole loop in the dynamic.
- dynamic "
- if <<$traitattskl[tl]>> > 0 and <<$traitattskl[tl]>>[tltp + 1] = x and <<$traitattskl[tl]>>[tltp + 2] = i and <<$traitattskl[tl]>>[tltp + 3] ! 0: expadj += <<$traitattskl[tl]>>[tltp + 3]
- if <<$traitattskl[tl]>>[tltp + 11] ! 0: insdlpflag = 1
- "
- if insdlpflag = 1: tltp += 10 & insdlpflag = 0 & jump 'trtadvinsdlp'
- tl += 1
- if tl < arrsize ('$traitattskl'): jump 'trtadvloop'
- killvar 'tl' & killvar 'tltp' & killvar 'insdlpflag'
- if x = 1:
- $attskltmp = $att_name[i]
- else
- $attskltmp = $skl_name[i]
- end
- dynamic "
- if <<$attskltmp>>_lvl ! <<$attskltmp>>_lvlst: <<$attskltmp>>_lvl = <<$attskltmp>>_lvlst
- if <<$attskltmp>>_exp > (expadj * <<$attskltmp>>_lvl * <<$attskltmp>>_lvl / 180): <<$attskltmp>>_lvl += 1
- <<$attskltmp>>_lvlst = <<$attskltmp>>_lvl
- <<$attskltmp>>_xpnxt = (expadj * <<$attskltmp>>_lvl * <<$attskltmp>>_lvl / 180) + 1
- if <<$attskltmp>>_lvl / 5 > <<$attskltmp>>_flr: <<$attskltmp>>_flr = <<$attskltmp>>_lvl / 5
- if <<$attskltmp>>_lvl > (100 + (<<$attskltmp>>_muta * 50)): <<$attskltmp>>_lvl = (100 + (<<$attskltmp>>_muta * 50))
- if <<$attskltmp>>_exp > (expadj * (<<$attskltmp>>_lvl + 1) * (<<$attskltmp>>_lvl + 1) / 180) - 1:
- <<$attskltmp>>_exp = (expadj * (<<$attskltmp>>_lvl + 1) * (<<$attskltmp>>_lvl + 1) / 180) - 1
- <<$attskltmp>>_mem = <<$attskltmp>>_exp
- end
- "
- killvar 'expadj' & killvar '$attskltmp'
- i += 1
- if (x = 1 and i < arrsize ('$att_name')) or (x = 2 and i < arrsize ('$skl_name')): jump 'advloop'
- i = 0 & x += 1
- if x < 3: jump 'advloop'
- killvar 'i' & killvar 'x'
- !!Attribute set section
- !!This is where an attribute pcs_"name" is set by "name"_lvl and any adjustments are added
- !!Even though most of these could be done without doing a _lvl to pcs_ convertion, doing so is future proofing
- pcs_stren = stren_lvl
- if pcs_stren < 1: pcs_stren = 1
- pcs_agil = agil_lvl
- if pcs_agil < 1: pcs_agil = 1
- pcs_vital = vital_lvl
- if pcs_vital < 1: pcs_vital = 1
- pcs_intel = intel_lvl - bimbostupidity - (5 * noorgasm)
- if pcs_intel < 1: pcs_intel = 1
- pcs_react = react_lvl
- if pcs_react < 1: pcs_react = 1
- pcs_sprt = sprt_lvl
- if pcs_sprt < 1: pcs_sprt = 1
- pcs_chrsm = chrsm_lvl
- if pcs_chrsm < 1: pcs_chrsm = 1
- pcs_prcptn = prcptn_lvl
- if pcs_prcptn < 1: pcs_prcptn = 1
- pcs_magik = magik_lvl
- if pcs_magik < 0: pcs_magik = 0
- !!Skill set Section
- !!Each skill has three lines, the first is the comment that says what the skill is, the next that sets pcs_"name", and the finial which sets "name"[1] to [x] with the attribute index of the attribute(s) ending with a -1 to show end.
- !!Jabs; Quick strikes that do not have much power
- pcs_jab = (jab_lvl + (pcs_agil * 2 + pcs_stren) / 3) / 2 - notfem
- jab[1] = 0 & jab[2] = 1 & jab[3] = -1
- !!Power Strikes; Hard strikes that are harder to land
- pcs_punch = (punch_lvl + (pcs_stren * 2 + pcs_agil) / 3) / 2 - notfem
- punch[1] = 0 & punch[2] = 1 & punch[3] = -1
- !!Kicks; Kicking, enough said
- pcs_kick = (kick_lvl + (pcs_stren * 3 + pcs_agil) / 4) / 2 - notfem
- kick[1] = 0 & kick[2] = 1 & kick[3] = -1
- !!Defence; Covers both blocking and dodging
- pcs_def = (def_lvl + (pcs_agil + pcs_stren + pcs_react) / 3) / 2 - notfem
- def[1] = 0 & def[2] = 1 & def[3] = 4 & def[4] = -1
- !!Marksmanship; Could be guns, bows, or spells
- pcs_shoot = (shoot_lvl + (pcs_agil + pcs_react) / 2) / 2
- shoot[1] = 1 & shoot[2] = 4 & shoot[3] = -1
- !!Singing; Should be self-explanatory
- pcs_vokal = (vokal_lvl + (pcs_intel + pcs_chrsm) / 2) / 2
- vokal[1] = 3 & vokal[2] = 6 & vokal[3] = -1
- !!Tailoring; Should be self-explanatory
- pcs_sewng = (sewng_lvl + (pcs_agil + pcs_intel) / 2) / 2
- sewng[1] = 1 & sewng[2] = 3 & sewng[3] = -1
- !!Instrumental Music; Skill at playing an instrument(s)
- pcs_instrmusic = (instrmusic_lvl + (2 * pcs_agil + pcs_intel) / 3) / 2
- instrmusic[1] = 1 & instrmusic[2] = 3 & instrmusic[3] = -1
- !!Photography; Should be self-explanatory
- pcs_photoskl = (photoskl_lvl + (2 * pcs_intel + pcs_react) / 3) / 2
- photoskl[1] = 3 & photoskl[2] = 4 & photoskl[3] = -1
- !!Artistic Skills; painting, drawing etc.
- pcs_artskls = (artskls_lvl + (pcs_intel + pcs_react + pcs_agil) / 3) / 2
- artskls[1] = 1 & artskls[2] = 3 & artskls[3] = 4 & artskls[4] = -1
- !!Modern Dancing; This is the basic dance skill and replaces 'dance'
- pcs_danc = (danc_lvl + (pcs_agil + pcs_react + pcs_vital) / 3) / 2 - notfem
- danc[1] = 1 & danc[2] = 2 & danc[3] = 4 & danc[4] = -1
- !!Erotic Dancing; This is used when individual eroticism is being displayed, also covers & replaces strip tease
- pcs_dancero = (dancero_lvl + (pcs_agil + pcs_chrsm + pcs_vital) / 3) / 2 - notfem + (3 * flxibt)
- dancero[1] = 1 & dancero[2] = 2 & dancero[3] = 6 & dancero[4] = -1
- !!Pole Dancing; Should be self-explanatory
- pcs_dancpol = (dancpol_lvl + (pcs_agil + pcs_stren + pcs_chrsm) / 3) / 2 - notfem + (3 * flxibt)
- dancpol[1] = 0 & dancpol[2] = 1 & dancpol[3] = 6 & dancpol[4] = -1
- !!Chess; Should be self-explanatory
- pcs_chess = (chess_lvl + pcs_intel) / 2 + (5 * logictrt)
- chess[1] = 3 & chess[2] = -1
- !!Gaming; Abstracts skills at all types of Table Top games
- pcs_ttgmng = (ttgmng_lvl + (2 * pcs_intel + pcs_react) / 3) / 2
- ttgmng[1] = 3 & ttgmng[2] = 4 & ttgmng[3] = -1
- !!People skills; basic human interaction skill set
- pcs_humint = (humint_lvl + (pcs_prcptn + pcs_chrsm + pcs_react)/3) / 2 + (5 * chrmng) - (5 * meantrt)
- humint[1] = 4 & humint[2] = 6 & humint[3] = 7 & humint[4] = -1
- !!Persuasion; Trained skill at getting people to agree with you or like you
- pcs_persuas = (persuas_lvl + (pcs_prcptn + pcs_chrsm) / 2) / 2 + (5 * chrmng) - (5 * meantrt)
- persuas[1] = 6 & persuas[2] = 7 & persuas[3] = -1
- !!Running; Should be self-explanatory
- pcs_run = (run_lvl + (2 * (pcs_agil + pcs_stren) + pcs_vital) / 5) / 2 - notfem
- run[1] = 0 & run[2] = 1 & run[3] = 2 & run[4] = -1
- !!Volleyball; Should be self-explanatory
- pcs_vball = (vball_lvl + (2 * pcs_agil + pcs_react + pcs_stren + pcs_vital) / 5) / 2 - notfem
- vball[1] = 0 & vball[2] = 1 & vball[3] = 2 & vball[4] = 4 & vball[5] = -1
- !!Ice Skating; Should be self-explanatory
- pcs_icesktng = (icesktng_lvl + (2 * pcs_agil + pcs_stren) / 3) / 2 - notfem
- icesktng[1] = 0 & icesktng[2] = 1 & icesktng[3] = -1
- !!Wrestling; Should be self-explanatory
- pcs_wrstlng = (wrstlng_lvl + (2 * pcs_stren + pcs_vital + pcs_agil) / 4) / 2 - notfem
- wrstlng[1] = 0 & wrstlng[2] = 1 & wrstlng[3] = 2 & wrstlng[4] = -1
- !!Football; Should be self-explanatory
- pcs_ftbll = (ftbll_lvl + (pcs_vital + pcs_agil + pcs_stren) / 3) / 2 - notfem
- ftbll[1] = 0 & ftbll[2] = 1 & ftbll[3] = 2 & ftbll[4] = -1
- !!Spell Casting; The ability to Successfully cast spells
- pcs_splcstng = (splcstng_lvl + (pcs_intel + pcs_react) / 2) / 2
- splcstng[1] = 3 & splcstng[2] = 4 & splcstng[3] = -1
- !!Observation; trained skill in noticing one''s surroundings and events (nothing but surface detail)
- pcs_observ = (observ_lvl + (pcs_prcptn + pcs_react + pcs_intel)/3) / 2
- observ[1] = 3 & observ[2] = 4 & observ[3] = 7 & observ[4] = -1
- !!Makeup; Skill at applying makeup, goes into the vnesh calc as makupskl/5
- pcs_makupskl = (makupskl_lvl + (pcs_intel + pcs_agil) / 2) / 2
- makupskl[1] = 1 & makupskl[2] = 3 & makupskl[3] = -1
- !!Computer Skill; Skill at using and repairing computers
- pcs_compskl = (compskl_lvl + pcs_intel) / 2 + (5 * logictrt)
- compskl[1] = 3 & compskl[2] = -1
- !!Hacking; Skill at hacking computer systems
- pcs_comphckng = (comphckng_lvl + (pcs_intel + pcs_react) / 2) / 2 + (5 * logictrt)
- comphckng[1] = 3 & comphckng[2] = 4 & comphckng[3] = -1
- !!Handy-work; Used for non-mechanic work, i.e. plumbing
- pcs_hndiwrk = (hndiwrk_lvl + (2 * pcs_agil + pcs_intel) / 3) / 2
- hndiwrk[1] = 1 & hndiwrk[2] = 3 & hndiwrk[3] = -1
- !!Serving; Covers all aspects of waitressing and bartending
- pcs_servng = (servng_lvl + (pcs_intel + pcs_vital) / 2) / 2
- servng[1] = 2 & servng[2] = 3 & servng[3] = -1
- !!Modelling; Knowing how to pose and hold poses for long periods of time
- pcs_mdlng = (mdlng_lvl + (pcs_agil + pcs_vital) / 2) / 2 - notfem
- mdlng[1] = 1 & mdlng[2] = 2 & mdlng[3] = -1
- !!Medicine; Basic medical knowledge up to the level of Nursing
- pcs_medcn = (medcn_lvl + (pcs_intel + pcs_react + pcs_prcptn) / 3) / 2
- medcn[1] = 3 & medcn[2] = 4 & medcn[3] = 7 & medcn[4] = -1
- !!Heels; Experience with walking in heels of increasing height
- !!Currently only based on the skill itself, not linked to any attributes
- pcs_heels = heels_lvl
- heels[1] = -1
- !!Skiing; Should be self-explanatory
- !!To add this skill, copy this "$skl_name[x] = 'skng'" to the end of the skils list above and replace the x with the next index number, then remove the comment and bracket marks on the next two lines and delete this line
- !!pcs_skng = (skng_lvl + (2 * pcs_agil + pcs_stren) / 3) / 2
- !!{skng[1] = 0 & skng[2] = 1 & skng[3] = -1}
- !!Larceny; picking locks, hotwire cars etc.; basic thief/stealing skills
- !!To add this skill, copy this "$skl_name[x] = 'thiefskls'" to the end of the skils list above and replace the x with the next index number, then remove the comment and bracket marks on the next two lines and delete this line
- !!pcs_thiefskls = (thiefskls_lvl + (2 * pcs_agil + pcs_react) / 3) / 2
- !!{thiefskls[1] = 1 & thiefskls[2] = 4 & thiefskls[3] = -1}
- !!Mechanic; Auto mechanic skill, can work on your own car
- !!To add this skill, copy this "$skl_name[x] = 'mchanc'" to the end of the skils list above and replace the x with the next index number, then remove the comment and bracket marks on the next two lines and delete this line
- !!pcs_mchanc = (mchanc_lvl + (2 * pcs_agil + pcs_intel) / 3) / 2
- !!{mchanc[1] = 1 & mchanc[2] = 3 & mchanc[3] = -1}
- !!Gambling; Should be self-explanatory
- !!To add this skill, copy this "$skl_name[x] = 'gmbling'" to the end of the skils list above and replace the x with the next index number, then remove the comment and bracket marks on the next two lines and delete this line
- !!pcs_gmbling = (gmbling_lvl + (2 * pcs_prcptn + pcs_intel + pcs_react) / 4) / 2
- !!{gmbling[1] = 3 & gmbling[2] = 4 & gmbling[3] = 7 & gmbling[4] = -1}
- !!Seduction; Trained art of making yourself sexually desired, by words, body language, tone etc.; should be checked with either a +hotcat or on a 300point scale with +vnesh (set elsewhere so not added here)
- !!To add this skill, copy this "$skl_name[x] = 'sdctn'" to the end of the skils list above and replace the x with the next index number, then remove the comment and bracket marks on the next two lines and delete this line
- !!pcs_sdctn = (sdctn_lvl + (pcs_prcptn + pcs_chrsm) / 2) / 2
- !!{sdctn[1] = 6 & sdctn[2] = 7 & sdctn[3] = -1}
- !!Computer Gaming; Skill at playing assorted computer and console games.
- !!To add this skill, copy this "$skl_name[x] = 'compgame'" to the end of the skils list above and replace the x with the next index number, then remove the comment and bracket marks on the next two lines and delete this line
- !!pcs_compgame = (compgame_lvl + (pcs_agil + pcs_react) / 2) / 2
- !!{compgame[1] = 1 & compgame[2] = 4 & compgame[3] = -1}
- --- stat_sklattrib ---------------------------------
|