@program $lib/chargen 1 10000 d i $include $lib/rp $include $lib/alynna $include $lib/rps $include $lib/rps2 $def RESTRICTED "{147|148|149|246|247|248|920|932}" $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|Accuracy|Speed|Fertility|Infertility|Max-HP|XP|Balls}" $def FREEBIE-ARRAY FREEBIES "" "{" subst "" "}" subst "|" explode_array lvar param : display var freebies var unspent var target 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 ! str "Freebies 1.0 for " target @ unparseobj " - Starting with " freebies @ " points" cat header tellme str "Attack - Raises attack power 1 level per point - " target @ "freebies/attack" getstat dup unspent @ swap - unspent ! cat tellme str "Defense - Raises defense power 1 level per point - " target @ "freebies/defense" getstat dup unspent @ swap - unspent ! cat tellme str "Special - Raises special power 1 level per point - " target @ "freebies/special" getstat dup unspent @ swap - unspent ! cat tellme str "Special-Def - Raises special defense power 1 level per point - " target @ "freebies/special-def" getstat dup unspent @ swap - unspent ! cat tellme str "Accuracy - Raises accuracy 1 level per point - " target @ "freebies/accuracy" getstat dup unspent @ swap - unspent ! cat tellme str "Speed - Raises speed 1 level per point - " target @ "freebies/speed" getstat dup unspent @ swap - unspent ! cat tellme str "Fertility - Raises fertility 1 level per point - " target @ "freebies/fertility" getstat dup unspent @ swap - unspent ! cat tellme str "Infertility - Lowers fertility 1 level per point - " target @ "freebies/infertility" getstat dup unspent @ swap - unspent ! cat tellme str "Max-HP - Raises Max-HP one level per point - " target @ "freebies/max-hp" getstat dup unspent @ swap - unspent ! cat tellme str "XP - Gives you 50 additional XP per point - " target @ "freebies/xp" getstat dup unspent @ swap - unspent ! cat tellme str "Balls - Spend 1-4 to get 1-4 master balls - " target @ "freebies/balls" getstat dup unspent @ swap - unspent ! cat tellme str "------------------------------------------------------------------------------" cat tellme str "To spend or unspend points, +freebie = " cat tellme str "To finish spending and receive the freebies, +finish " cat tellme str "You may put up to 4 points in each section. " cat tellme str "Spend all your points, any left over when you +finish are gone. " cat tellme str "^GREEN^" unspent @ "^YELLOW^ points to spend in freebies" cat footer tellme target @ "freebies_unspent" unspent @ setstat ; : adjust var item var value var newval me @ "freebieinit" getstat toint 2 >= if "You have already finished spending your freebies." "Freebie" pretty tellme exit then param @ not if "Format: +freebie =<-4..4>" "Freebies" pretty tellme str "Available freebie choices: " FREEBIE-ARRAY array_commas cat "Freebies" pretty tellme exit then param @ "=" explode 2 = not if "Format: +freebie =<-4..4>" "Freebies" pretty tellme exit then item ! toint value ! item @ FREEBIES smatch not if str "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 str item @ capitalize " was just set to " newval @ ", " me @ "freebies_unspent" getstat " freebies left." cat "Freebies" pretty tellme ; : finish var tmp me @ "freebieinit" getstat toint 2 >= if "You have already finished spending your freebies." "Freebie" pretty tellme exit then me @ "freebies/attack" getstat dup tmp ! if me @ "s/Attack" over over getstat level tmp @ + level2xp setstat str "Attack was set to level " me @ "s/Attack" getstat level toint cat "Freebies" pretty tellme then me @ "freebies/defense" getstat dup tmp ! if me @ "s/Defense" over over getstat level tmp @ + level2xp setstat str "Defense was set to level " me @ "s/Defense" getstat level toint cat "Freebies" pretty tellme then me @ "freebies/special" getstat dup tmp ! if me @ "s/Special" over over getstat level tmp @ + level2xp setstat str "Special was set to level " me @ "s/Special" getstat level toint cat "Freebies" pretty tellme then me @ "freebies/special-def" getstat dup tmp ! if me @ "s/Special-Def" over over getstat level tmp @ + level2xp setstat str "Special defense was set to level " me @ "s/Special-Def" getstat level toint cat "Freebies" pretty tellme then me @ "freebies/accuracy" getstat dup tmp ! if me @ "s/Accuracy" over over getstat level tmp @ + level2xp setstat str "Accuracy was set to level " me @ "s/Accuracy" getstat level toint cat "Freebies" pretty tellme then me @ "freebies/speed" getstat dup tmp ! if me @ "s/Speed" over over getstat level tmp @ + level2xp setstat str "Speed was set to level " me @ "s/Speed" getstat level toint cat "Freebies" pretty tellme then me @ "freebies/fertility" getstat dup tmp ! if me @ "s/Fertility" over over getstat level tmp @ + level2xp setstat str "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 str "Fertility was set to level " me @ "s/Fertility" getstat level toint cat "Freebies" pretty tellme then me @ "freebies/max-hp" getstat dup tmp ! if me @ "s/Max-HP" over over getstat level tmp @ + level2xp setstat str "Max-HP was set to level " me @ "s/Max-HP" getstat level toint cat "Freebies" pretty tellme then me @ "freebies/xp" getstat dup tmp ! if me @ "xp" over over getstat tmp @ 50.0 * + setstat str "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 str "You were given " tmp @ " Master balls for a total of " me @ "m/Master ball" getstat toint cat "Freebies" pretty tellme then "Done." "Freebies" pretty tellme me @ "freebieinit" 2 setstat me @ "@rp/freebies/" remove_prop me @ "@rp/freebies" 0 setprop ; : reward var target param @ not if "Sintax: +reward - gives them a freebie" "Reward" pretty tellme exit else param @ resolve target ! then target @ int 0 < if me @ target ! then me @ staff? not if "^RED^Permission denied.^NORMAL^" tellme exit then target @ "freebieinit" 1 setstat target @ "freebies" over over getstat ++ setstat me @ { "You have awarded " target @ " 1 freebie!" }cat "Reward" pretty notify target @ { "You have been awarded a freebie!" }cat "Reward" pretty notify ; : main param ! me @ "freebieinit" getstat not if me @ "freebieinit" 1 setstat me @ "pokemon" getstat tostr case LEGENDARY smatch when me @ "freebies" 2 setstat end RESTRICTED smatch when me @ "freebies" 4 setstat end POWERFUL smatch when me @ "freebies" 1 setstat end default me @ "freebies" 4 setstat end endcase me @ "freebies_unspent" me @ "freebies" getstat setstat str "You have just been given " me @ "freebies" getstat " points in freebies!" cat "Freebies" pretty tellme then command @ tolower case "{+freebies}" smatch when display exit end "{+freebie}" smatch when adjust exit end "{+finish}" smatch when finish exit end "{+reward}" smatch when reward exit end endcase ; . c q