Skip to content

Full Lich Crafting Script - Ready for Beta-Testing#7309

Open
MikeLC-hub wants to merge 2 commits intoelanthia-online:mainfrom
MikeLC-hub:patch-20
Open

Full Lich Crafting Script - Ready for Beta-Testing#7309
MikeLC-hub wants to merge 2 commits intoelanthia-online:mainfrom
MikeLC-hub:patch-20

Conversation

@MikeLC-hub
Copy link
Copy Markdown
Contributor

@MikeLC-hub MikeLC-hub commented Mar 1, 2026

Crafting Script to run off only a "recipe_name". Handles the determination and collection of the needed Crafting Components, then assembles the required script arguments for the other lich discipline crafting scripts, and then passes on and executes said discipline crafting scripts.

The option to perform enhancements has not yet been integrated, but the script should support all known recipes from all known disciplines, assuming they can be made with storebought or on_hand materials.


Important

Introduces a Lich crafting script to automate crafting projects using a recipe name, managing components, materials, and inventory, with support for querying crafting databases.

  • Behavior:
    • Adds Crafting.lic script to automate crafting projects using a recipe_name.
    • Supports all known recipes and disciplines with storebought or on-hand materials.
    • Does not support enhancements yet.
  • Components:
    • Introduces CraftingComponent, CraftingMaterial, and CraftingInventory classes for managing crafting components and materials.
    • Implements BaseRecipe, BaseDiscipline, BaseStock, and BaseRecipePart classes for handling recipe and discipline data.
  • Methods:
    • Adds CraftingMethod module with subclasses for different crafting types: ForgingProduct, OutfittingProduct, EngineeringProduct, AlchemyProduct, and EnchantingProduct.
    • Implements CraftingProject class to manage crafting projects, including planning, preparing, and crafting.
  • Utilities:
    • Provides CraftingLibrary for querying crafting databases.
    • Includes LichCrafting class to parse arguments and execute commands like PROJECT, PLAN, PREPARE, and LIST.

This description was created by Ellipsis for 7d85b88. You can customize this summary. It will automatically update as commits are pushed.

Crafting Script to run off only a "recipe_name". Handles the determination and collective of the needed Crafting Components, then assembles the need script arguments for the other lich discipline crafting scripts, and passes on and executes said discipline crafting scripts.

The option to perform enhancements have not yet been integrated, but the script should support all known recipes from all known disciplines, assuming they can be made with storebought or on_hand materials.
Copy link
Copy Markdown
Contributor

@ellipsis-dev ellipsis-dev Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important

Looks good to me! 👍

Reviewed everything up to 7d85b88 in 14 seconds. Click for details.
  • Reviewed 2314 lines of code in 1 files
  • Skipped 0 files when reviewing.
  • Skipped posting 0 draft comments. View those below.
  • Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.

Workflow ID: wflow_0zBI6ffygxhv6mYp

You can customize Ellipsis by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.

@MikeLC-hub
Copy link
Copy Markdown
Contributor Author

MikeLC-hub commented Mar 1, 2026

Screenshots for your perusal...

crafting script screenshot 1 crafting script screenshot 2 crafting script screenshot 3 crafting script screenshot 4 crafting script screenshot 5 crafting script screenshot 6 crafting script screenshot 7 crafting script screenshot 8

@urbaj-dr
Copy link
Copy Markdown
Contributor

urbaj-dr commented Mar 1, 2026

I think it's a great idea. Seems potentially very helpful with one-off non-training crafting tasks. Two minor issues I encountered:

  1. I couldn't get knitted items to work, because it wants to find "wool cloth" (or "yarn cloth")
  2. I'd prefer it if it would craft in designated crafting rooms (outfitting_room, engineering_room, alchemy_room, enchanting_room)

  1.1 Notes - Added a filter to tighten material determination, which fixed the knitting issue.
            - Renamed file to crafting_project.lic
            - Full execution command is now, for example ;crafting_project PRODUCE "a knit hat"
            - Added a filter for default yarn to correctly pull the 'yarn' stock, not the 'wool'
            - Cleaned up the help notes a little in LichCraftingProject
@MikeLC-hub
Copy link
Copy Markdown
Contributor Author

I think it's a great idea. Seems potentially very helpful with one-off non-training crafting tasks. Two minor issues I encountered:

  1. I couldn't get knitted items to work, because it wants to find "wool cloth" (or "yarn cloth")
  2. I'd prefer it if it would craft in designated crafting rooms (outfitting_room, engineering_room, alchemy_room, enchanting_room)

Okay, so I fixed the knitted items issue in this new version 1.1. And I like the idea of moving to the designated crafting rooms, so I'll implement that in the next set of updates.

@AndervolMD
Copy link
Copy Markdown

tried ;crafting_project produce "a simple wood burin" balsa

didn't work. got hung up at the engineering depot trying to order 14 when there are only 13 items that can be ordered. log included below.

;crafting_project produce "a simple wood burin" balsa
--- Lich: crafting_project active.
CraftingProject Initializing: a simple wood burin with balsa
[crafting_project]>rummage /C lumber in my gearbag
You rummage through a worn and patched gearbag with thickly padded shoulder straps looking for something similar to "lumber" but there is nothing in there like that.

[crafting_project]>rummage /C sigil-scroll in my gearbag
You rummage through a worn and patched gearbag with thickly padded shoulder straps looking for something similar to "sigil-scroll" and see an exquisite induction sigil-scroll formed with thin lines, an exquisite induction sigil-scroll formed with thin lines, an exquisite induction sigil-scroll formed with thin lines, an exquisite induction sigil-scroll formed with thin lines, an exquisite induction sigil-scroll formed with thin lines, an exquisite induction sigil-scroll formed with thin lines, an exquisite induction sigil-scroll formed with thin lines, an exquisite induction sigil-scroll formed with thin lines, an exquisite induction sigil-scroll formed with thin lines, an exquisite induction sigil-scroll formed with thin lines and a flawless rarefaction sigil-scroll formed with thin lines.

[crafting_project]>rummage /C glue in my gearbag
You rummage through a worn and patched gearbag with thickly padded shoulder straps looking for something similar to "glue" but there is nothing in there like that.

[crafting_project]>rummage /C stain in my gearbag
You rummage through a worn and patched gearbag with thickly padded shoulder straps looking for something similar to "stain" but there is nothing in there like that.

*** Crafting Project Report #1: Planning Stage ***
________________________________________________________________________________

  Crafting Town:  [ Crossing ]
  EngineeringProduct: {  shape, ["hold", 6, "a simple wood burin", "balsa", "burin"]  }
  ________________________________________________________________________________

  Recipe Name:  [ a simple wood burin ]
  Crafting Type:  [ Engineering - Book of Shaping, Chapter 6 ]
  Material Base:  [ 4 units of wood material, balsa ]
  Craft Product:  [ burin ]
  ________________________________________________________________________________

  Crafting Inventory >>  
        Craft Bag:  [ gearbag ]
        Crafting Material:
        >[MISSING]
              {base_key: [ wood crafting material ], name: balsa lumber, volume: 4 }
                  - required:  { quantity:1, volume:4 }
                  - on_hand: { quantity:0, volume:0 }
                  - cost: 562 copper
              material_components:
              >[MISSING]
                          {base_key: balsa, name: balsa lumber, order_id: 11, room: 8864, volume: 10, value: 562 copper }
                              - required:  { quantity:1, volume:10 }
                              - on_hand: { quantity:0, volume:0 }
                              - cost: 562 copper
        Discipline Components:
        >[MISSING]
              {base_key: clarification sigil-scroll, name: clarification sigil-scroll, order_id: 14, room: 8864, volume: 1, value: 1375 copper }
                  - required:  { quantity:1, volume:1 }
                  - on_hand: { quantity:0, volume:0 }
                  - cost: 1375 copper
        >[MISSING]
              {base_key: glue, name: glue, order_id: 13, room: 8865, volume: 1, value: 437 copper }
                  - required:  { quantity:1, volume:1 }
                  - on_hand: { quantity:0, volume:0 }
                  - cost: 437 copper
        >[MISSING]
              {base_key: stain, name: stain, order_id: 14, room: 8865, volume: 1, value: 375 copper }
                  - required:  { quantity:1, volume:1 }
                  - on_hand: { quantity:0, volume:0 }
                  - cost: 375 copper
  ________________________________________________________________________________

Project Ready? false
[crafting_project]>wealth kronars
5 platinum, 7 silver, 2 bronze, and 1 copper Kronars (50,721 copper Kronars).

--- Lich: go2 active.
[go2: input: 8867]
[go2: ETA: 0:00:02 (14 rooms to move through)]
[go2]>out
You shamble out.
[The Crossing, Town Green North] (10028)
A small path of bent grass leads to a narrow stretch of cobblestones between the grass and the privet hedge that stands before Milgrym the Weaponsmith's. The town's main source of serviceable arms has a solid reputation. You also see a public listings board and the town green pond.
Obvious paths: north, east, southeast, south, southwest, west.
Room Number: 788
Room Exits: go pond, go weaponsmith

[go2]>south
You shamble south.
[The Crossing, Town Green South] (10029)
A gap in the stand of lunat trees leads south into Lunat Shade Road. In that general direction lie Berolt's Dry Goods, the Town Hall, the Temple, the Provincial Bank and other key structures.
Also here: Vaprack.
Obvious paths: north, northeast, east, south, west, northwest.
Room Number: 792
Room Exits: go wintery portal

[go2]>south
Vaprack runs north.

You shamble south.
[The Crossing, Lunat Shade Road] (10020)
Majestic lunat trees line this byway, donated by the town's prosperous traders, a reminder of how their Guild delights in improving the quality of life for beings all over Elanthia. One such wealthy merchant, though not as ostentatious as most, is Berolt, the dry goods dealer. His venerable general store here outfits adventurers with all the basic necessities. The row of trees on the north side of the street also serves to shade the south half of Town Green.
Obvious paths: north, east, south.
Room Number: 753
Room Exits: go shop

[go2]>south
You shamble south.
[The Crossing, Alamhif Trace] (10019)
Proudly located to the south you see the translucent dome of the Temple flanked by its three guard towers, while the Town Green and the Town Hall can be seen off toward the north and northeast. You also see the Carousel square.
Obvious paths: north, southeast, west.
Room Number: 733
Room Exits: go carousel square

[go2]>southeast

You shamble southeast.
[The Crossing, Hodierna Way] (10015)
The hustle of crowds making their way between the secular and religious centers of town that converge here carries you along with its momentum. The granite and marble facade of the First Provincial Bank catches your eye, standing before you as solid as its name. You also see a big orange sign with a picture of a smiling Dwarf and a large parchment.
Obvious paths: east, southwest, northwest.
Room Number: 732
Room Exits: go bank

[go2]>southwest
You shamble southwest.
[The Crossing, Immortals' Approach] (10016)
This stretch of road is wide and paved. Cherry trees border the exterior Temple grounds. Flames flicker from the tops of the towers of the Main Temple. Fragile walkways soar high above the orb. You also see Timekeeper Raerethrew, Forest Warden Hengwild, a high granite wall surrounding the temple grounds, the locked almsbox and the Longbow Bridge.
Obvious paths: northeast, northwest.
Room Number: 741
Room Exits: go bridge, go gate

[go2]>go bridge
[The Crossing, Chieftain Walk] (10114)
This busy threeway is a vital link. The Longbow Bridge feeds into it from the northeast, and the warehouse and dock district which stand to the south and west bustle with activity. The commercial district to the northwest, and the pleasant and populous beach resort are to the southeast, just at the mouth of the River Oxenwaithe, where it empties into the Segoltha.
Obvious paths: north, southeast, southwest.
Room Number: 928
Room Exits: go bridge

[go2]>north
You shamble north.
[The Crossing, 3 Retainers' Crescent] (10113)
The Longbow Bridge is due east, south is the Shipyard and The Strand. To the west are the commercial institutions that are the centers of trade and finance. You also see a sloping side street.
Obvious paths: north, south, west.
Room Number: 927
Room Exits: go side street

[go2]>north
You shamble north.
[The Crossing, 3 Retainers' Crescent] (10112)
There seems to be great confusion along this narrow stretch of road, as folk of all races and professions pass by and overflow the curbs. You also see a tottering old warehouse.
Obvious paths: south, west.
Room Number: 926
Room Exits: go warehouse

[go2]>west
You run west.
[The Crossing, 3 Retainers' Crescent] (10111)
Here the way connects major arteries leading to the commercial heart of the Crossing, the water transport hub, and Longbow Bridge.
Obvious paths: east, northwest.
Room Number: 925

[go2]>northwest
You run northwest.
[The Crossing, Gold Barque Quay] (10110)
Several swank-looking private boats, gondolas and a few sleek, flat-bottomed river boats are tied up here.
Obvious paths: southeast, south, west.
Room Number: 910

[go2]>west
You run west.
[The Crossing, Bank Street] (10109)
The Moneylender's commands a breathtaking view of the River Oxenwaithe and the Traders' Guild to the west. Directly across the river is a curious dwelling with a glass gazebo atop it. You also see the Zoluren Alchemy Society Building and a well-used road leading to the Engineering Society Depot.
Obvious paths: east, west.
Room Number: 909
Room Exits: go society building, go well-used road

[go2]>go well-used road
[Crossing Engineering Society, Depot] (44102)
This open supply depot contains a hallway to the north leading to crafting workshops and a well-used road meandering out to the east. You also see a steel crate, a large sign and a sturdy wooden door.
Obvious paths: north, west.
Room Number: 8864
Room Exits: go well-used road, go wooden door

[go2]>north
You run north.
[Crossing Engineering Society, Hallway] (44107)
Before you stands a long hallway lined with doors leading to solitary crafting workshops. You also see a prestige board, a maple door, an oak door and a birch door.
Obvious exits: south.
Room Number: 8867
Room Exits: go maple door, go oak door, go birch door

[go2: travel time: 0:00:03.103]
--- Lich: go2 has exited.
[crafting_project]>wealth kronars
5 platinum, 7 silver, 2 bronze, and 1 copper Kronars (50,721 copper Kronars).

--- Lich: go2 active.
[go2: input: 8864]
[go2: ETA: 0:00:00 (1 rooms to move through)]
[go2]>south
You run south.
[Crossing Engineering Society, Depot] (44102)
This open supply depot contains a hallway to the north leading to crafting workshops and a well-used road meandering out to the east. You also see a steel crate, a large sign and a sturdy wooden door.
Obvious paths: north, west.
Room Number: 8864
Room Exits: go well-used road, go wooden door

[go2: travel time: 0:00:00.113]
--- Lich: go2 has exited.
[crafting_project]>order 11
The attendant says, "You can purchase 10 pieces of balsa lumber for 562 Kronars. Just order it again and we'll see it done!"

[crafting_project]>order 11
The attendant takes some coins from you and hands you 10 pieces of balsa lumber.

[crafting_project]>put my balsa lumber in my gearbag

You put your lumber in your patched gearbag.

[crafting_project]>rummage /C lumber in my gearbag

You rummage through a worn and patched gearbag with thickly padded shoulder straps looking for something similar to "lumber" and see some balsa lumber.

[crafting_project]>count first balsa lumber in my gearbag
You count out 10 pieces of lumber remaining.

[crafting_project]>wealth kronars
5 platinum, 1 silver, 5 bronze, and 9 copper Kronars (50,159 copper Kronars).

[crafting_project]>order 14
The attendant replies, "I am sorry, but we only have 13 items for sale here. Did you mean another?"

DRC: No match was found after 15 seconds for command 'order 14'
DRC: Messages seen: 7
DRC: > Embrace of the Vela'Tohr (26%)
DRC: > Perseverance of Peri'el (2 roisaen)
DRC: > Regenerate (Indefinite)
DRC: > Embrace of the Vela'Tohr (26%)
DRC: > Perseverance of Peri'el (2 roisaen)
DRC: > Regenerate (Indefinite)
DRC: > The attendant replies, "I am sorry, but we only have 13 items for sale here. Did you mean another?"
DRC: Checked against: [/Just order it again/i, /you don't have enough coins/i]
[crafting_project]>order 14
The attendant replies, "I am sorry, but we only have 13 items for sale here. Did you mean another?"

You feel fully attuned to the mana streams again.

DRC: No match was found after 15 seconds for command 'order 14'
DRC: Messages seen: 5
DRC: > Embrace of the Vela'Tohr (26%)
DRC: > Perseverance of Peri'el (2 roisaen)
DRC: > Regenerate (Indefinite)
DRC: > You feel fully attuned to the mana streams again.
DRC: > The attendant replies, "I am sorry, but we only have 13 items for sale here. Did you mean another?"
DRC: Checked against: [/takes some coins from you/i]
[crafting_project]>wealth kronars
5 platinum, 1 silver, 5 bronze, and 9 copper Kronars (50,159 copper Kronars).

--- Lich: go2 active.
[go2: input: 8865]
[go2: ETA: 0:00:00 (1 rooms to move through)]
[go2]>west
You shamble west.
[Crossing Engineering Society, Crafting Supplies] (44100)
A sliver of light shines through a pair of windows and illuminates a variety of crafting supplies for sale here. You also see Engineering Society Mistress Talia Volmogen, an elegantly carved mistwood door leading outside and a large sign.
Obvious exits: north, east, west.
Room Number: 8865
Room Exits: go door

[go2: travel time: 0:00:00.215]
--- Lich: go2 has exited.
[crafting_project]>order 13
The attendant says, "You can purchase some wood glue for 437 Kronars. Just order it again and we'll see it done!"

[crafting_project]>order 13
The attendant takes some coins from you and hands you some wood glue.

[crafting_project]>put my wood glue in my gearbag
You put your glue in your patched gearbag.

[crafting_project]>wealth kronars
4 platinum, 9 gold, 7 silver, 2 bronze, and 2 copper Kronars (49,722 copper Kronars).

[crafting_project]>order 14
The attendant says, "You can purchase some wood stain for 375 Kronars. Just order it again and we'll see it done!"

[crafting_project]>order 14
The attendant takes some coins from you and hands you some wood stain.

[crafting_project]>put my wood stain in my gearbag

You put your stain in your patched gearbag.

[crafting_project]>rummage /C sigil-scroll in my gearbag
You rummage through a worn and patched gearbag with thickly padded shoulder straps looking for something similar to "sigil-scroll" and see an exquisite induction sigil-scroll formed with thin lines, an exquisite induction sigil-scroll formed with thin lines, an exquisite induction sigil-scroll formed with thin lines, an exquisite induction sigil-scroll formed with thin lines, an exquisite induction sigil-scroll formed with thin lines, an exquisite induction sigil-scroll formed with thin lines, an exquisite induction sigil-scroll formed with thin lines, an exquisite induction sigil-scroll formed with thin lines, an exquisite induction sigil-scroll formed with thin lines, an exquisite induction sigil-scroll formed with thin lines and a flawless rarefaction sigil-scroll formed with thin lines.

[crafting_project]>rummage /C glue in my gearbag
You rummage through a worn and patched gearbag with thickly padded shoulder straps looking for something similar to "glue" and see some wood glue.

[crafting_project]>rummage /C stain in my gearbag
You rummage through a worn and patched gearbag with thickly padded shoulder straps looking for something similar to "stain" and see some wood stain.

@crafting_inventory.resolve_all! unsuccessful...

*** Crafting Project Report #2: Preparation Stage ***
________________________________________________________________________________

  Crafting Town:  [ Crossing ]
  EngineeringProduct: {  shape, ["hold", 6, "a simple wood burin", "balsa", "burin"]  }
  ________________________________________________________________________________

  Recipe Name:  [ a simple wood burin ]
  Crafting Type:  [ Engineering - Book of Shaping, Chapter 6 ]
  Material Base:  [ 4 units of wood material, balsa ]
  Craft Product:  [ burin ]
  ________________________________________________________________________________

  Crafting Inventory >>  
        Craft Bag:  [ gearbag ]
        Crafting Material:
        >[READY]
              {base_key: [ wood crafting material ], name: balsa lumber, volume: 4 }
                  - required:  { quantity:1, volume:4 }
                  - on_hand: { quantity:1, volume:10 }
                  - cost: 0 copper
              material_components:
              >[READY]
                          {base_key: [ balsa lumber on hand in gearbag ] , name: balsa lumber, volume: 10 }
                              - required:  { quantity:1, volume:10 }
                              - on_hand: { quantity:1, volume:10 }
                              - cost: 0 copper
        Discipline Components:
        >[MISSING]
              {base_key: clarification sigil-scroll, name: clarification sigil-scroll, order_id: 14, room: 8864, volume: 1, value: 1375 copper }
                  - required:  { quantity:1, volume:1 }
                  - on_hand: { quantity:0, volume:0 }
                  - cost: 1375 copper
        >[READY]
              {base_key: glue, name: glue, order_id: 13, room: 8865, volume: 1, value: 437 copper }
                  - required:  { quantity:1, volume:1 }
                  - on_hand: { quantity:1, volume:1 }
                  - cost: 0 copper
        >[READY]
              {base_key: stain, name: stain, order_id: 14, room: 8865, volume: 1, value: 375 copper }
                  - required:  { quantity:1, volume:1 }
                  - on_hand: { quantity:1, volume:1 }
                  - cost: 0 copper
  ________________________________________________________________________________

Project Ready? false
Project Ready? false
*** Crafting Project Report #3: Production Stage ***
________________________________________________________________________________

  Crafting Town:  [ Crossing ]
  EngineeringProduct: {  shape, ["hold", 6, "a simple wood burin", "balsa", "burin"]  }
  ________________________________________________________________________________

  Recipe Name:  [ a simple wood burin ]
  Crafting Type:  [ Engineering - Book of Shaping, Chapter 6 ]
  Material Base:  [ 4 units of wood material, balsa ]
  Craft Product:  [ burin ]
  ________________________________________________________________________________

  Crafting Inventory >>  
        Craft Bag:  [ gearbag ]
        Crafting Material:
        >[READY]
              {base_key: [ wood crafting material ], name: balsa lumber, volume: 4 }
                  - required:  { quantity:1, volume:4 }
                  - on_hand: { quantity:1, volume:10 }
                  - cost: 0 copper
              material_components:
              >[READY]
                          {base_key: [ balsa lumber on hand in gearbag ] , name: balsa lumber, volume: 10 }
                              - required:  { quantity:1, volume:10 }
                              - on_hand: { quantity:1, volume:10 }
                              - cost: 0 copper
        Discipline Components:
        >[MISSING]
              {base_key: clarification sigil-scroll, name: clarification sigil-scroll, order_id: 14, room: 8864, volume: 1, value: 1375 copper }
                  - required:  { quantity:1, volume:1 }
                  - on_hand: { quantity:0, volume:0 }
                  - cost: 1375 copper
        >[READY]
              {base_key: glue, name: glue, order_id: 13, room: 8865, volume: 1, value: 437 copper }
                  - required:  { quantity:1, volume:1 }
                  - on_hand: { quantity:1, volume:1 }
                  - cost: 0 copper
        >[READY]
              {base_key: stain, name: stain, order_id: 14, room: 8865, volume: 1, value: 375 copper }
                  - required:  { quantity:1, volume:1 }
                  - on_hand: { quantity:1, volume:1 }
                  - cost: 0 copper
  ________________________________________________________________________________

...Done.
--- Lich: crafting_project has exited.

Copy link
Copy Markdown
Collaborator

@MahtraDR MahtraDR left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review: Several bugs need fixing before this can merge

Thanks for the ambitious script -- the concept of automating full crafting projects from a recipe name is great. However, there are several runtime bugs that need to be addressed:

1. Missing .lic extension (blocks loading)

The file is committed as crafting_project but Lich requires the .lic extension to load scripts. The internal comments say it was "renamed to crafting_project.lic" but the actual filename in the commit doesn't have the extension.

2. @disipline_components typo (line ~1757, runtime crash)

@disipline_components.each { |disc_comp| disc_comp.resolve! } if @discipline_components.any? && ...

The guard checks @discipline_components (correct spelling) so it passes, but the iterator uses @disipline_components (misspelled, nil) -- this will crash with NoMethodError.

3. Assignment instead of comparison in 5 predicate methods

These methods all use = (assignment) instead of == (comparison):

  • is_basic_info? -- info_hash[:info_type] = 'basic'
  • is_stock_info? -- info_hash[:info_type] = 'base_stock'
  • is_part_info? -- info_hash[:info_type] = 'base_part'
  • is_crafting_material_info? -- info_hash[:info_type] = 'crafting_material'
  • is_material_component_info? -- info_hash[:info_type] = 'material_component'

These silently mutate the info hash and always return truthy. Three of these (is_basic_info?, is_crafting_material_info?, is_material_component_info?) are actively called; the other two appear to be dead code.

4. Assignment in ForgingProduct.set_config conditional

DRCC.find_anvil(@@hometown) if @script_name = LICH_SCRIPTS[0]

This assigns 'forge' to @script_name instead of comparing. It accidentally "works" because the assignment result is truthy, but it masks the intended logic.

5. Mixed indentation

The file mixes tabs and spaces throughout. The rest of dr-scripts uses spaces consistently.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants