@program #1063 1 1000 d i $include $lib/rp $include $lib/alynna $include $lib/rps $include $lib/rps2 $include $lib/pokedex $def RESTRICTED "{147|148|149|246|247|248}" $def LEGENDARY "{144|145|145|150|151|243|244|245|249|250|800|801}" $def POWERFUL "{151|251}" $def FREEBIES "{Attack|Defense|Special|Special-Def|Speed|Fertility|Infertility|Max-HP|Yen|XP|Resources|Breedmoves|Balls|MorphSpeak|Metamorph|Gendermorph|Speciesmorph}" $def FREEBIE-ARRAY FREEBIES "" "{" subst "" "}" subst "|" explode_array $def inform "Chargen" pretty tellme lvar param : display var freebies var unspent var target me @ "freebieinit" getstat not if "Before you do this, pick which pokemon you want to be." "Chargen" pretty tellme exit then param @ not if me @ target ! else param @ resolve target ! then target @ int 0 < if me @ target ! then me @ mlevel 4 <= if me @ target ! then target @ "freebies" getstatint dup freebies ! unspent ! { "Chargen 2.0 for " target @ unparseobj " - Starting with " freebies @ " points" }cat header tellme { "Max-HP - Increases HP growth 0.5/point when you level - " target @ "freebies/max-hp" getstat dup unspent @ swap - unspent ! }cat tellme { "Attack - Increases Attack power 0.5/point when you level - " target @ "freebies/attack" getstat dup unspent @ swap - unspent ! }cat tellme { "Defense - Increases Defense power 0.5/point when you level - " target @ "freebies/defense" getstat dup unspent @ swap - unspent ! }cat tellme { "Special - Increases Special power 0.5/point when you level - " target @ "freebies/special" getstat dup unspent @ swap - unspent ! }cat tellme { "Special-Def - Increases Special defense 0.5/point when you level - " target @ "freebies/special-def" getstat dup unspent @ swap - unspent ! }cat tellme { "Speed - Increases Speed 0.5/point when you level - " target @ "freebies/speed" getstat dup unspent @ swap - unspent ! }cat tellme { "Fertility - Raises fertility 1 level per point - " target @ "freebies/fertility" getstat dup unspent @ swap - unspent ! }cat tellme { "Infertility - Lowers fertility 1 level per point - " target @ "freebies/infertility" getstat dup unspent @ swap - unspent ! }cat tellme { "XP - Gives you 100 additional XP per point - " target @ "freebies/xp" getstat dup unspent @ swap - unspent ! }cat tellme me @ wild? not if { "Breedmoves - Spend 2 points for each bred move you want. - " target @ "freebies/breedmoves" getstat dup unspent @ swap - unspent ! }cat tellme { "Balls - Spend 1 point on each master ball you want - " target @ "freebies/balls" getstat dup unspent @ swap - unspent ! }cat tellme { "Yen - Gives you 5000 additional yen per point - " target @ "freebies/yen" getstat dup unspent @ swap - unspent ! }cat tellme { "Resources - Spend 1 point per 100 yen per 15 mins (need at least 2) - " target @ "freebies/resources" getstat dup unspent @ swap - unspent ! }cat tellme { "Morphspeak - Spend 1 point to get morphspeak. You also need 100xp. - " target @ "freebies/morphspeak" getstat dup unspent @ swap - unspent ! }cat tellme { "Metamorph - Spend 2 points to be a werepokemon. (mon/morph shifting) - " target @ "freebies/metamorph" getstat dup unspent @ swap - unspent ! }cat tellme { "Speciesmorph - Spend 5 points to be a shapeshifter. (Dittokin) - " target @ "freebies/speciesmorph" getstat dup unspent @ swap - unspent ! }cat tellme then { "Gendermorph - Spend 4 points to be a gendershifter or hermaphrodite. - " target @ "freebies/gendermorph" getstat dup unspent @ swap - unspent ! }cat tellme { "------------------------------------------------------------------------------" }cat tellme target @ "freebies_unspent" unspent @ setstat { "To spend or unspend points, +freebie = " }cat tellme { "To finish spending and receive the freebies, +finish " }cat tellme { "Every point you spend costs 10% growth, 10 points = 100% growth " }cat tellme { "which is average. WARNING, spending all 20 will leave you at 0% " }cat tellme { "growth, which means you will NEVER earn XP which is BAD. " }cat tellme { "Your growth is now " target @ "freebies_unspent" getstat 10.0 * "% of normal." }cat "Freebies" pretty tellme { unspent @ " points to spend in freebies" }cat footer tellme ; : adjust var item var value var newval me @ "freebieinit" getstat toint 2 >= if "You have already finished spending your freebies." "Chargen" pretty tellme exit then param @ not if "Format: +freebie =" "Freebies" pretty tellme { "Available freebie choices: " FREEBIE-ARRAY array_commas }cat "Freebies" pretty tellme exit then param @ "=" explode 2 = not if "Format: +freebie =" "Freebies" pretty tellme exit then item ! toint value ! item @ FREEBIES smatch not if { "Available freebie choices: " FREEBIE-ARRAY array_commas }cat "Freebies" pretty tellme exit then me @ "freebies/" item @ strcat getstat toint value @ + newval ! newval @ 0 < newval @ 4 > or if "Resulting amount must be 0 to 4." "Freebies" pretty tellme exit then me @ "freebies_unspent" getstat value @ - 0 < if "Not enough freebie points." "Freebies" pretty tellme exit then me @ "freebies_unspent" getstat value @ - me @ "freebies" getstat > if "Too many freebie points." "Freebies" pretty tellme exit then me @ "freebies/" item @ strcat newval @ setstat me @ "freebies_unspent" over over getstat value @ - setstat { item @ capitalize " was just set to " newval @ ", " me @ "freebies_unspent" getstat " freebies left." }cat "Freebies" pretty tellme { "Your growth is now " me @ "freebies_unspent" getstat 10.0 * "% of normal." }cat "Freebies" pretty tellme ; : finish var tmp me @ "freebieinit" getstat not if "You must, at the very least, choose which species you want to be!" "Chargen" pretty tellme exit then me @ "freebieinit" getstat toint 2 >= if "You have already finished spending your freebies." "Chargen" pretty tellme exit then me @ "c/mother" 0 setstat me @ "c/father" 0 setstat me @ "freebies/breedmoves" getstat dup tmp ! if { "Please enter the species name or number of the father pokemon: " }tell read var! pokemon pokemon @ not if "FAIL: Not specified" "Freebies" pretty tellme exit then { "pokemon/" pokemon @ "/name" }cat getdex not if { "pokemon/byname/" pokemon @ }cat getdex pokemon ! then pokemon @ not if "Couldn't find that pokemon, by name or number." "Freebies" pretty tellme exit then me @ "c/mother" { "/pokemon/" me @ iam "/name" }cat getdex setstat me @ "c/father" { "/pokemon/" pokemon @ "/name" }cat getdex setstat { "pokemon/" pokemon @ "/breedmoves" }cat getdex var! pokemoves { "Breeding moves available to you: " }tell { pokemoves @ }tell { "Please select " tmp @ 2 / " of these moves" }tell { "and enter them, seperated by colons, like this: Ember:Aerial Ace:Fire spin" }tell read var! mymoves mymoves @ ":" explode_array dup var! tmp2 array_count tmp @ 2 / = not if { "You didn't specify " tmp @ 2 / " breeding moves, aborting..." }tell exit then tmp2 @ foreach swap pop dup var! tmp3 "_" " " subst { "{" pokemoves @ "|" ":" subst "_" " " subst "}" }cat smatch not if { tmp3 @ capitalize " is not a valid breeding move for your father." }tell exit then repeat tmp2 @ foreach swap pop var! tmp3 { "Breeding attack " tmp3 @ ".." }tell me @ { "a/" tmp3 @ }cat 1 setstat repeat then me @ "c/mother" getstat not if me @ "c/mother" { "/pokemon/" me @ iam "/name" }cat getdex setstat me @ "c/father" { "/pokemon/" me @ iam "/name" }cat getdex setstat then me @ "freebies/resources" getstat dup tmp ! if me @ "s/Resources" over over getstat tmp @ 10 * + setstat { "Resources was set to " me @ "s/Resources" getstat toint }cat "Freebies" pretty tellme then me @ "freebies/max-hp" getstat dup tmp ! if me @ "c/Max-HP" tmp @ 0.5 * setstat { "Max-HP growth was set to " me @ "c/Max-HP" getstat 1 round }cat "Freebies" pretty tellme then me @ "freebies/attack" getstat dup tmp ! if me @ "c/Attack" tmp @ 0.5 * setstat { "Attack growth was set to " me @ "c/Attack" getstat 1 round }cat "Freebies" pretty tellme then me @ "freebies/defense" getstat dup tmp ! if me @ "c/Defense" tmp @ 0.5 * setstat { "Defense growth was set to " me @ "c/Defense" getstat 1 round }cat "Freebies" pretty tellme then me @ "freebies/speed" getstat dup tmp ! if me @ "c/speed" tmp @ 0.5 * setstat { "Speed growth was set to " me @ "c/Speed" getstat 1 round }cat "Freebies" pretty tellme then me @ "freebies/special" getstat dup tmp ! if me @ "c/Special" tmp @ 0.5 * setstat { "Special growth was set to " me @ "c/Special" getstat 1 round }cat "Freebies" pretty tellme then me @ "freebies/special-def" getstat dup tmp ! if me @ "c/Special-Def" tmp @ 0.5 * setstat { "Special defense growth was set to " me @ "c/Special-Def" getstat 1 round }cat "Freebies" pretty tellme then { "Preleveling before giving any more freebies (you dont get growth for freebie XP..)" }cat "Freebies" pretty tellme me @ "freebieinit" 4 setstat me @ levelhandler pop me @ "freebieinit" 1 setstat me @ "freebies/fertility" getstat dup tmp ! if me @ "s/Fertility" over over getstat level tmp @ + level2xp setstat { "Fertility was set to level " me @ "s/Fertility" getstat level toint }cat "Freebies" pretty tellme then me @ "freebies/infertility" getstat dup tmp ! if me @ "s/Fertility" over over getstat level tmp @ - level2xp setstat { "Fertility was set to level " me @ "s/Fertility" getstat level toint }cat "Freebies" pretty tellme then me @ "freebies/Yen" getstat dup tmp ! if me @ "Yen" over over getstat tmp @ 5000.0 * + setstat { "Yen was set to " me @ "Yen" getstat tofloat 2 fchop }cat "Freebies" pretty tellme then me @ "freebies/xp" getstat dup tmp ! if me @ "xp" over over getstat tmp @ 100.0 * + setstat { "XP was set to level " me @ "XP" getstat tofloat 2 fchop }cat "Freebies" pretty tellme then me @ "freebies/balls" getstat dup tmp ! if me @ "m/Master Ball" over over getstat tmp @ + setstat { "You were given " tmp @ " Master balls for a total of " me @ "m/Master ball" getstat toint }cat "Freebies" pretty tellme then me @ "freebies/morphspeak" getstat dup tmp ! if me @ "a/MorphSpeak" 100 setstat me @ xpspent pop { "Morphspeak was added to your sheet at 100xp. 100xp was spent" }cat "Freebies" pretty tellme then me @ "freebies/metamorph" getstat dup tmp ! 2 = if me @ "c/metamorph" "yes" setstat me @ xpspent pop { "You were set to be a were-pokemon." }cat "Freebies" pretty tellme then me @ "freebies/gendermorph" getstat dup tmp ! 4 = if me @ "c/gendermorph" "yes" setstat me @ xpspent pop { "You were set to be a gendermorph/hermaphrodite." }cat "Freebies" pretty tellme then me @ "freebies/speciesmorph" getstat dup tmp ! 5 = if me @ "c/speciesmorph" "yes" setstat me @ "a/Transform" 1 setstat me @ "a/Learn" 1 setstat me @ "assimilation/" me @ iam strcat 1 setstat me @ xpspent pop { "You were set to be a shapeshifter/dittokin." }cat "Freebies" pretty tellme then { "Your growth is now " me @ "freebies_unspent" getstat 10.0 * "% of normal." }cat "Freebies" pretty tellme me @ "growth" me @ "freebies_unspent" getstat 10.0 * 100.0 - setstat "Done." "Freebies" pretty tellme me @ "lastlevel" me @ "xp" getstatint level setstat me @ "freebieinit" 2 setstat ; : pokechooser var sex var species var sname var morph var freebies var speciescost me @ "freebieinit" getstat if "You would need to +reset or +init to choose a new species. Try again." inform exit then param @ not if "Please state the nature of your genetic profile." inform "+pokechooser " inform "Example: +pokechooser female vulpix pokemorph" inform exit then param @ tolower param ! param @ case "female*" smatch when "female" sex ! param @ "" "female" subst param ! end "male*" smatch when "male" sex ! param @ "" "male" subst param ! end "hermaphrodite*" smatch when "hermaphrodite" sex ! param @ "" "hermaphrodite" subst param ! end "gendershifter*" smatch when "gendershifter" sex ! param @ "" "gendershifter" subst param ! end default pop "I couldnt find a gender specified. Try again." inform exit end endcase param @ case "*wild-pokemon" smatch when "wild-pokemon" morph ! param @ "" "wild-pokemon" subst param ! end "*werepokemon" smatch when "werepokemon" morph ! param @ "" "werepokemon" subst param ! end "*pokemon" smatch when "pokemon" morph ! param @ "" "pokemon" subst param ! end "*pokemorph" smatch when "pokemorph" morph ! param @ "" "pokemorph" subst param ! end "*dittokin" smatch when "dittokin" morph ! param @ "" "dittokin" subst param ! end default pop "I couldnt find a morphology specified. Try again." inform exit end endcase param @ strip param ! param @ pokenumber species ! species @ "0" smatch if "Sorry, I could not identify what you species want to be!" inform exit then { "/pokemon/" species @ "/restricted" }cat getdex if me @ "allow-restricted" getstat not if "Sorry, but that species is restricted. Ask staff if you REALLY want it." inform exit else me @ "allow-restricted" 0 setstat then then { "/pokemon/" species @ "/name" }cat getdex sname ! sex @ "{gendershifter|hermaphrodite}" smatch if { "You selected " sex @ ", which requires gendermorph, which requires 4 freebies." }tell freebies @ 4 + freebies ! then morph @ "werepokemon" smatch if { "You selected werepokemon, which requires metamorph, which requires 2 freebies." }tell freebies @ ++ ++ freebies ! then morph @ "dittokin" smatch species @ "132" smatch or if species @ "132" smatch if { "You selected ditto, which requires speciesmorph, which requires 5 freebies." }tell else { "You selected dittokin, which requires speciesmorph, which requires 5 freebies." }tell then freebies @ 5 + freebies ! then morph @ "wild-pokemon" smatch if species @ "{132|387}" smatch not if { "You selected wild-pokemon, setting you WILD..." }tell me @ "wild" 1 setstat else { "You cannot select either Human or Ditto with WILD." }tell then then species @ pokecost 0 round speciescost ! { "The species you have chosen, " sex @ " " sname @ "(" species @ ") " morph @ "," }tell { "Costs " speciescost @ " freebies, and requires " freebies @ " points in additional supporting freebies." }tell { "From your 30 initial freebies, this costs " speciescost @ freebies @ + " freebies," }tell { "Leaving " 30 speciescost @ freebies @ + - dup var! tmp " freebies to spend," }tell { "or use for XP growth, which would be " tmp @ 10.0 * 0 round "%." }tell { "Do you want to take this form? (y/N)" }tell read "y*" smatch not if { "Aborted in a nick of time." }tell exit then { "Lock on!" }tell ( Deal with sex ) sex @ "{gendershifter|hermaphrodite}" smatch if { "Using 4 freebies in 'gendermorph'..." }tell me @ "freebies/gendermorph" 4 setstat then sex @ "gendershifter" smatch if begin { "Start as male or female? (M/F)" }tell read dup "m" smatch if pop me @ "gender" "male" setstat me @ "sex" "male" setprop break then "f" smatch if me @ "gender" "female" setstat me @ "sex" "female" setprop break then repeat then sex @ "{male|female|hermaphrodite}" smatch if me @ "gender" sex @ setstat me @ "sex" sex @ setprop then { "Gender was locked in as " me @ "gender" getstat }tell morph @ "werepokemon" smatch if { "Using 2 freebies in 'metamorph'..." }tell me @ "freebies/metamorph" 2 setstat begin { "Start as pokemon or pokemorph? (mon/morph)" }tell read dup "*mon*" smatch if pop me @ "pokemorph" 0 setstat break then "*morph*" smatch if me @ "pokemorph" 1 setstat break then repeat else morph @ "pokemon" smatch if me @ "pokemorph" 0 setstat then morph @ "pokemorph" smatch if me @ "pokemorph" 1 setstat then then { "Morphology was locked in as " me @ "pokemorph" getstat if "pokemorph" else "pokemon" then }tell morph @ "dittokin" smatch species @ "132" smatch or if { "Using 5 freebies in 'speciesmorph'..." }tell me @ "freebies/speciesmorph" 5 setstat then me @ "species" { sname @ me @ morph? if "-morph" then }cat setprop me @ "pokemon" species @ setstat { "Species locked in as " me @ "species" getprop }tell { "Stat blessing in progress..." }tell { "Mew blesses you with an initial HP of " me @ HPS 10 atlev dup me @ "s/Max-HP" rot setstat 0 round "!" }tell me @ "hp" me @ maxhp setstat { "Mew blesses you with an initial ATTack of " me @ ATT 10 atlev dup me @ "s/Attack" rot setstat 0 round "!" }tell { "Celebi blesses you with an initial DEFense of " me @ DEF 10 atlev dup me @ "s/Defense" rot setstat 0 round "!" }tell { "Celebi blesses you with an initial SPeCial of " me @ SPC 10 atlev dup me @ "s/Special" rot setstat 0 round "!" }tell { "Jirachi blesses you with an initial Special-DeF of " me @ SDF 10 atlev dup me @ "s/Special-Def" rot setstat 0 round "!" }tell { "Jirachi blesses you with an initial SPeeD of " me @ SPD 10 atlev dup me @ "s/Speed" rot setstat 0 round "!" }tell { "Spending " speciescost @ " freebies on " sname @ ", giving " 30 speciescost @ - 0 round " freebies..." }tell me @ "freebies" 30 speciescost @ - setstat { "Entering initlevel 1. Do +freebies next." }tell me @ "freebieinit" 1 setstat #21 { "wc #PokeChooser: " me @ " just chargenned a " sex @ " " sname @ "(" species @ ") " morph @ }cat force ; : main param ! command @ tolower case "{+freebies}" smatch when display exit end "{+freebie}" smatch when adjust exit end "{+finish}" smatch when finish exit end "{+pokechooser}" smatch when pokechooser exit end endcase ; . c q