Advertisement
Gleefre

Stein profs

Oct 2nd, 2023 (edited)
340
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 18.23 KB | None | 0 0
  1. ;;;; Copyright 2023 Gleefre
  2. ;;;; File profs.lisp
  3.  
  4. #|
  5. To use:
  6.  
  7. Install sbcl:
  8. On ubuntu
  9. $ sudo apt install sbcl
  10.  
  11. For other systems find out for yourself or download from sbcl's site:
  12. https://www.sbcl.org/platform-table.html
  13.  
  14. Load the program:
  15. sbcl --load profs.lisp
  16.  
  17. A prompt * will be given.
  18.  
  19. Enter (init <prof> :exp <current-exp> :lvl <current-lvl>)
  20. For example:
  21.  
  22. * (init 'armorsmith :exp 10 :lvl 3)
  23. DONE
  24. *
  25.  
  26. If you (will) have exp bonus scroll activated add :exp-bonus T
  27.  
  28. * (init 'leatherworking :exp 10 :lvl 3 :exp-bonus T)
  29. DONE
  30. *
  31.  
  32. Then use (50-greed <target-level> <rep-base>) function:
  33.  
  34. * (init 'armorsmith :exp 10 :lvl 3)
  35. DONE
  36. * (50-greed 12 10)
  37. (:TORN-STRAP 96 :BATTLETORN-BOOTS 4 :HELMET-OF-SACRIFICE 5 :LEGGUARDS-OF-COMRADES 5 :CRY-OF-BLIGHT 5 :SHOULDERS-OF-VALIANCE 6 :GUARD-CHESTPLATE 5 :TIN-PLATE 20 :STRAP 10 :COPPER-PLATE 94)
  38. (:COPPER-INGOT 94 :TORN-HIDE 96 :SIMPLE-BOLT 398 :AGATE 10 :MALACHITE 5 :TIGERSEYE 11 :TIN-PLATE -20 :TIN-INGOT 20 :STRAP -10 :HIDE 10)
  39.  
  40. Then type (quit) to quit.
  41.  
  42. To repeat calculations you need not to quit, but you need to call (init ...) again:
  43.  
  44. * (init 'leatherworking :exp 10 :lvl 3 :exp-bonus T)
  45. DONE
  46. * (50-greed 12 50)
  47. (:DIRTY-YARN 70 :RUGGED-LEATHER-TREADS 4 :CAP-OF-SUFFERINGS 3 :LOYAL-PANTS-OF-THORNS 4 :REINFORCED-BOOTS 4 :EMBROIDED-SPAULDERS 5 :DEFILED-SCALED-ROBES 4 :LEATHER 50 :YARN 50 :TORN-LEATHER 78)
  48. (:TORN-HIDE 78 :DIRTY-FIBER 70 :SIMPLE-RIVET 318 :BEECH-BARK 8 :BEECHNUT 8 :EURHINUS-RESIN 4 :LEATHER -50 :HIDE 50 :YARN -50 :FIBER 50)
  49.  
  50. The <rep-base> parameter means how much of 2 materials you need for the prof you will craft in batch.
  51. Good value is 50, but you may want to adjust it if you will craft much more mats / less mats.
  52.  
  53. Good Luck!
  54.  
  55. |#
  56.  
  57. (defun init-params (&key (exp 0) (lvl 1) exp-bonus)
  58.   (defparameter *levels* (list 0    100  222  350  485  626  774  930  1094 1266
  59.                                1446 1635 1834 2043 2262 2492 2734 2988 3255 3535
  60.                                3829 4138 4462 4802 5159 5534 5928 6342 6776 7232))
  61.   (defparameter *cur-exp* exp)
  62.   (defparameter *cur-lvl* lvl)
  63.   (defparameter *resources* ())
  64.   (defparameter *resources-types* ())
  65.   (defparameter *exp-bonus* (if exp-bonus 5/4 1))
  66.   (defparameter *recipes-applied* ())
  67.   (defparameter *reps* ())
  68.   (defparameter *base-reps* ()))
  69.  
  70. (defun defrep (lvl exp name &rest resources)
  71.   (let ((recipe `(:level ,lvl :exp ,exp :name ,name ,@resources)))
  72.     ;; store resources types
  73.     (loop for tp = resources then (cddr tp)
  74.           until (null tp)
  75.           do (pushnew (car tp) *resources-types*))
  76.     ;; add recipe to "base recipes" if needed
  77.     (when (member name *resources-types*)
  78.       (push recipe *base-reps*))
  79.     (setf *reps* (append *reps* (list recipe)))))
  80.  
  81. (defun sort-reps ()
  82.   (setf *reps* (sort (copy-tree *reps*) #'<
  83.                      :key (lambda (x) (getf x :level)))))
  84.  
  85. (defun base-repp (recipe)
  86.   (member (getf recipe :name) *base-reps*
  87.           :key (lambda (x) (getf x :name))))
  88.  
  89. (defun init-enchanter ()
  90.   ;; level 1-10
  91.   (defrep 1 20  :beech-rod         :beech-rod -1                                      :beech-plank    1)
  92.   (defrep 2 30  :vogria-powder                  :vogria-powder -1                     :dried-vogria   1)
  93.   (defrep 4 120 :sunshine          :beech-rod 3 :vogria-powder 1 :simple-sandpaper 8  :beech-bark     1)
  94.   (defrep 5 140 :impaler           :beech-rod 1 :vogria-powder 1 :simple-sandpaper 10 :beech-leaf     1)
  95.   (defrep 6 160 :staff-of-oblivion :beech-rod 3 :vogria-powder 3 :simple-sandpaper 12 :beech-bark     1)
  96.   (defrep 7 180 :vile-scalpel      :beech-rod 2 :vogria-powder 4 :simple-sandpaper 14 :vogria-bloom   1)
  97.   (defrep 8 200 :hopes-reach       :beech-rod 3 :vogria-powder 5 :simple-sandpaper 16 :vogria-essence 1)
  98.   (defrep 9 220 :marrowstrike      :beech-rod 4 :bogria-powder 4 :simple-sandpaper 18 :vogria-bloom   1)
  99.   ;; level 10-20
  100.   (defrep 10 140 :alder-rod        :alder-rod -1                                :alder-plank     1)
  101.   (defrep 11 150 :irruvil-powder                :irruvil-powder -1              :dried-irruvil   1)
  102.   (defrep 13 380 :conclusion       :alder-rod 2 :irruvil-powder 2 :sandpaper 6  :irruvil-essence 1)
  103.   (defrep 14 400 :souldrinker      :alder-rod 3 :irruvil-powder 1 :sandpaper 8  :alder-bark      1)
  104.   (defrep 15 420 :spur             :alder-rod 2 :irruvil-powder 4 :sandpaper 10 :irruvil-root    1)
  105.   (defrep 16 440 :vengeful-striker :alder-rod 3 :irruvil-powder 3 :sandpaper 12 :alder-bark      1)
  106.   (defrep 17 460 :dark-intent      :alder-rod 4 :irruvil-powder 2 :sandpaper 14 :irruvil-root    1)
  107.   (defrep 18 480 :blackheart       :alder-rod 3 :irruvil-powder 5 :sandpaper 16 :alder-bark      1)
  108.   ;; level 20-30
  109.   (defrep 20 320 :spruce-rod         :spruce-rod -1                                         :spruce-plank   1)
  110.   (defrep 21 330 :lavekawa-powder                  :lavekawa-powder -1                      :dried-lavekawa 1)
  111.   (defrep 23 700 :twitch             :spruce-rod 3 :lavekawa-powder 1 :quality-sandpaper 6  :spruce-cones   1)
  112.   (defrep 24 720 :clemence           :spruce-rod 2 :lavekawa-powder 4 :quality-sandpaper 8  :spruce-resin   1)
  113.   (defrep 25 740 :warp-pole          :spruce-rod 3 :lavekawa-powder 3 :quality-sandpaper 10 :spruce-cones   1)
  114.   (defrep 26 760 :firesoul-war-staff :spruce-rod 4 :lavekawa-powder 4 :quality-sandpaper 12 :spruce-resin   1)
  115.   (defrep 27 780 :gaze-of-corruption :spruce-rod 4 :lavekawa-powder 4 :quality-sandpaper 14 :spruce-cones   1)
  116.   (defrep 28 800 :sunshard           :spruce-rod 5 :lavekawa-powder 3 :quality-sandpaper 16 :spruce-bark    1))
  117.  
  118. (defun init-weaponsmith ()
  119.   ;; level 1-10
  120.   (defrep 1 20  :copper-bar   :copper-bar -1                                      :copper-ingot 1)
  121.   (defrep 2 30  :beech-handle               :beech-handle -1                      :beech-plank  1)
  122.   (defrep 4 120 :betrayer     :copper-bar 1 :beech-handle 3 :simple-grindstone 8  :tigerseye    1)
  123.   (defrep 5 140 :malice       :copper-bar 3 :beech-handle 1 :simple-grindstone 10 :malachite    1)
  124.   (defrep 6 160 :oathkeeper   :copper-bar 3 :beech-handle 3 :simple-grindstone 12 :beech-leaf   1)
  125.   (defrep 7 180 :silence      :copper-bar 4 :beech-handle 2 :simple-grindstone 14 :agate        1)
  126.   (defrep 8 200 :smite        :copper-bar 5 :beech-handle 3 :simple-grindstone 16 :malachite    1)
  127.   (defrep 9 220 :greataxe     :copper-bar 4 :beech-handle 4 :simple-grindstone 18 :beech-leaf   1)
  128.   ;; level 10-20
  129.   (defrep 10 140 :tin-bar       :tin-bar -1                               :tin-ingot   1)
  130.   (defrep 11 150 :alder-handle             :alder-handle -1               :alder-plank 1)
  131.   (defrep 13 380 :gladius       :tin-bar 2 :alder-handle 2 :grindstone 6  :jasper      1)
  132.   (defrep 14 400 :shadowrazor   :tin-bar 2 :alder-handle 4 :grindstone 8  :quartz      1)
  133.   (defrep 15 420 :despair       :tin-bar 3 :alder-handle 3 :grindstone 10 :alder-cones 1)
  134.   (defrep 16 440 :putrid-carver :tin-bar 4 :alder-handle 2 :grindstone 12 :alder-resin 1)
  135.   (defrep 17 460 :phobia        :tin-bar 3 :alder-handle 5 :grindstone 14 :obsidian    1)
  136.   (defrep 18 480 :anduril       :tin-bar 5 :alder-handle 3 :grindstone 16 :obsidian    1)
  137.   ;; level 20-30
  138.   (defrep 20 320 :iron-bar            :iron-bar -1                                        :iron-ingot   1)
  139.   (defrep 21 330 :spruce-handle                   :spruce-handle -1                       :spruce-plank 1)
  140.   (defrep 23 700 :furious-etcher      :iron-bar 3 :spruce-handle 1 :quality-grindstone 6  :ruby         1)
  141.   (defrep 24 720 :warbringer          :iron-bar 2 :spruce-handle 4 :quality-grindstone 8  :spruce-cones 1)
  142.   (defrep 25 740 :stormguard-claymore :iron-bar 3 :spruce-handle 3 :quality-grindstone 10 :spruce-cones 1)
  143.   (defrep 26 760 :pride-of-ancient    :iron-bar 4 :spruce-handle 4 :quality-grindstone 12 :lapis        1)
  144.   (defrep 27 780 :barrage             :iron-bar 5 :spruce-handle 3 :quality-grindstone 14 :lapis        1)
  145.   (defrep 28 800 :remorseful-broadaxe :iron-bar 5 :spruce-handle 3 :quality-grindstone 16 :spruce-cones 1))
  146.  
  147. (defun init-tailor ()
  148.   ;; level 1-10
  149.   (defrep 1 20  :dirty-cloth           :dirty-cloth -1                                  :dirty-fiber  1)
  150.   (defrep 2 30  :vogria-paste                         :vogria-paste -1                  :dried-vogria 1)
  151.   (defrep 4 120 :fiery-headguard       :dirty-cloth 2 :vogria-paste 2 :simple-button 8                 )
  152.   (defrep 5 140 :legguards-of-the-sun  :dirty-cloth 2 :vogria-paste 4 :simple-button 10 :vogria-root  1)
  153.   (defrep 6 160 :touch-of-cursed-might :dirty-cloth 3 :vogria-paste 3 :simple-button 12 :red-blossom  1)
  154.   (defrep 7 180 :boots-of-flames       :dirty-cloth 4 :vogria-paste 2 :simple-button 14 :red-blossom  1)
  155.   (defrep 8 200 :helmet-of-stars       :dirty-cloth 3 :vogria-paste 5 :simple-button 16 :vogria-root  1)
  156.   (defrep 9 220 :scaled-shoulderguards :dirty-cloth 5 :vogria-paste 3 :simple-button 18 :red-blossom  1)
  157.   ;; level 10-20
  158.   (defrep 10 140 :cloth                     :cloth -1                            :fiber           1)
  159.   (defrep 11 150 :irruvil-paste                      :irruvil-paste -1           :dried-irruvil   1)
  160.   (defrep 13 380 :ruby-infused-visage       :cloth 2 :irruvil-paste 2 :button 6                    )
  161.   (defrep 14 400 :shoulderguards-of-freedom :cloth 3 :irruvil-paste 1 :button 8                    )
  162.   (defrep 15 420 :leggings-of-the-phoenix   :cloth 2 :irruvil-paste 4 :button 10 :irruvil-essence 1)
  163.   (defrep 16 440 :stranglers-of-fire        :cloth 4 :irruvil-paste 2 :button 12 :irruvil-essence 1)
  164.   (defrep 17 460 :holy-world-walkers        :cloth 4 :irruvil-paste 2 :button 14 :irruvil-essence 1)
  165.   (defrep 18 480 :coif-of-hellish-whispers  :cloth 3 :irruvil-paste 5 :button 16 :irruvil-bloom   1)
  166.   ;; level 20-30
  167.   (defrep 20 320 :quality-cloth             :quality-cloth -1                                 :quality-fiber    1)
  168.   (defrep 21 330 :lavekawa-paste                             :lavekawa-paste -1               :dried-lavekawa   1)
  169.   (defrep 23 700 :quilted-facemask          :quality-cloth 2 :lavekawa-paste 2 :big-button 6                     )
  170.   (defrep 24 720 :incinerated-shoulders     :quality-cloth 3 :lavekawa-paste 1 :big-button 8                     )
  171.   (defrep 25 740 :legguards-of-fire         :quality-cloth 2 :lavekawa-paste 4 :big-button 10 :lavekawa-essence 1)
  172.   (defrep 26 760 :fall-of-broken-bones      :quality-cloth 3 :lavekawa-paste 3 :big-button 12 :lavekawa-bloom   1)
  173.   (defrep 27 780 :voice-of-the-champion     :quality-cloth 4 :lavekawa-paste 2 :big-button 14 :lavekawa-bloom   1)
  174.   (defrep 28 800 :thunder-hide-mask         :quality-cloth 3 :lavekawa-paste 5 :big-button 16 :lavekawa-essence 1))
  175.  
  176. (defun init-armorsmith ()
  177.   ;; level 1-10
  178.   (defrep 1 20  :copper-plate          :copper-plate -1                              :copper-ingot 1)
  179.   (defrep 2 30  :torn-strap                            :torn-strap -1                :torn-hide    1)
  180.   (defrep 4 120 :battletorn-boots      :copper-plate 1 :torn-strap 3 :simple-bolt 8                 )
  181.   (defrep 5 140 :helmet-of-sacrifice   :copper-plate 2 :torn-strap 2 :simple-bolt 10 :agate        1)
  182.   (defrep 6 160 :legguards-of-comrades :copper-plate 2 :torn-strap 4 :simple-bolt 12 :malachite    1)
  183.   (defrep 7 180 :cry-of-blight         :copper-plate 4 :torn-strap 2 :simple-bolt 14 :tigerseye    1)
  184.   (defrep 8 200 :shoulders-of-valiance :copper-plate 5 :torn-strap 4 :simple-bolt 16 :tigerseye    1)
  185.   (defrep 9 220 :guard-chestplate      :copper-plate 4 :torn-strap 4 :simple-bolt 18 :agate        1)
  186.   ;; level 10-20
  187.   (defrep 10 140 :tin-plate                    :tin-plate -1                  :tin-ingot 1)
  188.   (defrep 11 150 :strap                                     :strap -1         :hide      1)
  189.   (defrep 13 380 :bronzed-greaves              :tin-plate 1 :strap 3 :bolt 4              )
  190.   (defrep 14 400 :leggings-of-infinite-fortune :tin-plate 2 :strap 4 :bolt 8              )
  191.   (defrep 15 420 :obsidian-chestplate          :tin-plate 3 :strap 3 :bolt 10 :quartz    1)
  192.   (defrep 16 440 :silk-gloves                  :tin-plate 4 :strap 2 :bolt 12 :jasper    1)
  193.   (defrep 17 460 :headguard-of-holy-wars       :tin-plate 3 :strap 5 :bolt 14 :quartz    1)
  194.   (defrep 18 480 :shoulders-of-fortune         :tin-plate 4 :strap 4 :bolt 16 :jasper    1)
  195.   ;; level 20-30
  196.   (defrep 20 320 :iron-plate               :iron-plate -1                              :iron-ingot      1)
  197.   (defrep 21 330 :strong-strap                           :strong-strap -1              :strong-hide     1)
  198.   (defrep 23 700 :wortheim-helmet          :iron-plate 2 :strong-strap 2 :iron-bolt 6                    )
  199.   (defrep 24 720 :britches-of-silent-power :iron-plate 2 :strong-strap 4 :iron-bolt 8                    )
  200.   (defrep 25 740 :blessing-of-fortitude    :iron-plate 3 :strong-strap 3 :iron-bolt 10 :amethyst        1)
  201.   (defrep 26 760 :feral-gloves             :iron-plate 4 :strong-strap 2 :iron-bolt 12 :ruby            1)
  202.   (defrep 27 780 :death-of-eternal-glory   :iron-plate 3 :strong-strap 5 :iron-bolt 14 :amethyst        1)
  203.   (defrep 28 800 :iron-shoulderplates      :iron-plate 4 :strong-strap 4 :iron-bolt 16 :ruby            1))
  204.  
  205. (defun init-leatherworking ()
  206.   ;; level 1-10
  207.   (defrep 1 20  :torn-leather          :torn-leather -1                               :torn-hide      1)
  208.   (defrep 2 30  :dirty-yarn                            :dirty-yarn -1                 :dirty-fiber    1)
  209.   (defrep 4 120 :rugged-leather-treads :torn-leather 1 :dirty-yarn 3 :simple-rivet 8                   )
  210.   (defrep 5 140 :cap-of-sufferings     :torn-leather 3 :dirty-yarn 1 :simple-rivet 10 :beech-bark     1)
  211.   (defrep 6 160 :loyal-pants-of-thorns :torn-leather 2 :dirty-yarn 4 :simple-rivet 12 :beechnut       1)
  212.   (defrep 7 180 :reinforced-boots      :torn-leather 4 :dirty-yarn 2 :simple-rivet 14 :beechnut       1)
  213.   (defrep 8 200 :embroided-spaulders   :torn-leather 5 :dirty-yarn 3 :simple-rivet 16 :beech-bark     1)
  214.   (defrep 9 220 :defiled-scaled-robes  :torn-leather 4 :dirty-yarn 4 :simple-rivet 18 :eurhinus-resin 1)
  215.   ;; level 10-20
  216.   (defrep 10 140 :leather                     :leather -1                  :hide        1)
  217.   (defrep 11 150 :yarn                                   :yarn -1          :fiber       1)
  218.   (defrep 13 380 :rugged-facemask-of-warlords :leather 2 :yarn 2 :rivet 6                )
  219.   (defrep 14 400 :promise-of-horrors          :leather 2 :yarn 4 :rivet 8                )
  220.   (defrep 15 420 :chestpiece-of-the-forsaken  :leather 3 :yarn 3 :rivet 10 :wisdom-bark 1)
  221.   (defrep 16 440 :blood-hide-grasps           :leather 4 :yarn 2 :rivet 12 :alder-resin 1)
  222.   (defrep 17 460 :heirloom-of-the-forest      :leather 3 :yarn 5 :rivet 14 :alder-cones 1)
  223.   (defrep 18 480 :protector-of-guardians      :leather 5 :yarn 3 :rivet 16 :alder-cones 1)
  224.   ;; level 20-30
  225.   (defrep 20 320 :strong-leather           :strong-leather -1                              :strong-hide     1)
  226.   (defrep 21 330 :strong-yarn                                :strong-yarn -1               :quality-fiber   1)
  227.   (defrep 23 700 :pact-of-silence          :strong-leather 2 :strong-yarn 2 :iron-rivet 6                    )
  228.   (defrep 24 720 :legguards-of-vengeance   :strong-leather 2 :strong-yarn 4 :iron-rivet 8                    )
  229.   (defrep 25 740 :bone-chestplate          :strong-leather 3 :strong-yarn 3 :iron-rivet 10 :spruce-bark     1)
  230.   (defrep 26 760 :promise-of-ruins         :strong-leather 4 :strong-yarn 2 :iron-rivet 12 :spruce-resin    1)
  231.   (defrep 27 780 :headguard-of-stealth     :strong-leather 3 :strong-yarn 5 :iron-rivet 14 :spruce-bark     1)
  232.   (defrep 28 800 :tribute-of-the-gladiator :strong-leather 4 :strong-yarn 4 :iron-rivet 16 :spruce-resin    1))
  233.  
  234. (defun init (prof &rest args)
  235.   (apply #'init-params args)
  236.   (case prof
  237.     (enchanter (init-enchanter))
  238.     (weaponsmith (init-weaponsmith))
  239.     (tailor (init-tailor))
  240.     (armorsmith (init-armorsmith))
  241.     (leatherworking (init-leatherworking))
  242.     (t (error "unknown prof")))
  243.   (sort-reps)
  244.   'done)
  245.  
  246. (defun craft-recipe-base (recipe)
  247.   ;; error if level is too low to craft recipe.
  248.   (when (< *cur-lvl* (getf recipe :level))
  249.     (error "ERROR: Crafting recipe [~a][~a], prof level [~a] is too low."
  250.            (getf recipe :name) (getf recipe :level) *cur-lvl*))
  251.   ;; take resources required
  252.   (loop for res in *resources-types*
  253.         do (decf (getf *resources* res 0)
  254.                  (getf recipe res 0)))
  255.   ;; apply exp change
  256.   (let* ((mul (max 0 (/ (+ (getf recipe :level) 4 (- *cur-lvl*)) 4))) ; get less exp when level is higher
  257.          (gained-exp (ceiling (* mul *exp-bonus* (getf recipe :exp))))) ; also get bonus exp from scroll
  258.     (incf *cur-exp* gained-exp)
  259.     (loop while (and (< *cur-lvl* 30)
  260.                      (>= *cur-exp* (nth *cur-lvl* *levels*)))
  261.           do (decf *cur-exp* (nth *cur-lvl* *levels*))
  262.           do (incf *cur-lvl*)))
  263.   ;; add recipe to 'done' recipes
  264.   (incf (getf *recipes-applied* (getf recipe :name) 0)))
  265.  
  266. (defun craft-recipe (recipe &optional (times 1))
  267.   (loop repeat times do (craft-recipe-base recipe)))
  268.  
  269. (defun highest-rep ()
  270.   ;; works only if *reps* is sorted!
  271.   (loop for (prev-rep next-rep) on *reps*
  272.         if (or (null next-rep) (< *cur-lvl* (getf next-rep :level)))
  273.         do (return (values prev-rep next-rep))))
  274.  
  275. (defun present ()
  276.   (values (loop for tp = (reverse *recipes-applied*) then (cddr tp) until (null tp)
  277.                 for (num rep) = tp
  278.                 collect rep collect num)
  279.           (loop for tp = *resources* then (cddr tp) until (null tp)
  280.                 for (res num) = tp
  281.                 unless (zerop num)
  282.                 collect res and collect (- num))))
  283.  
  284. (defun clear-base ()
  285.   (loop for recipe in *base-reps*
  286.         do (craft-recipe recipe (- (getf *resources* (getf recipe :name) 0)))))
  287.  
  288. (defun greed (&optional (target-lvl 30))
  289.   (loop while (< *cur-lvl* target-lvl)
  290.         for rep = (highest-rep)
  291.         do (craft-recipe rep))
  292.   (clear-base)
  293.   (present))
  294.  
  295. (defun 50-greed (&optional (target-lvl 30) (repeat-base 50))
  296.   (loop while (< *cur-lvl* target-lvl)
  297.         for (rep next-rep) = (multiple-value-list (highest-rep))
  298.         if (and (base-repp rep) (base-repp next-rep))
  299.           do (craft-recipe rep repeat-base)
  300.              (when (>= *cur-lvl* (getf next-rep :level))
  301.                (craft-recipe next-rep repeat-base))
  302.         else do (craft-recipe rep))
  303.   (clear-base)
  304.   (present))
  305.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement