Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main'
Browse files Browse the repository at this point in the history
  • Loading branch information
Ontheheavens committed Nov 13, 2021
2 parents 3790bdd + e45fa03 commit 5679eb7
Showing 1 changed file with 1 addition and 136 deletions.
137 changes: 1 addition & 136 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,137 +1,2 @@
# Forge Production

This is an attempt to learn basic principles and skills of Java programming by modding Starsector.
Source of the files is "Nijigen Extend", Starsector mod by Creature:

https://fractalsoftworks.com/forum/index.php?topic=17846.0

Files and features deemed unnecessary for the reworked idea were removed. Here is original content of source:

- Utility weapons - Items that are mounted on weapon slots but don't fire - instead giving unique bonues
- Forge Ships - Hullmods that allow the production of goods from the comfort of your own ship.
- Criminal Industries - Colony buildings that bring in money directly, but can negatively impact your colony in other ways.
- Agreus-Caparice Tech Cooperative - Adds a market in Agreus (Vanilla) and Caparice (YRXP), A&C Co-op, where you can buy the gadgets offered by this mod.

Removed was everything except Forge Ship Hullmods. Furthermore, hullmod classes were partially modified, an ability class and mod plugin file were added.

Currently project includes:

- "Forge Ship" base hullmod, that allows installation of specialized hullmods.
- 4 specialized hullmods, containing logic for commodity production.
- 2 "technical" hullmods, one completely unnecessary, left from scrapped parts of a mod, and other supposedly responsible for hullmod installation conflicts.
- new ability class, created by me with a goal of collecting notification messages and toggling forge production.
- mod plugin file, created for technical need of enabling campaign ability.

Current makeup of a mod produces certain shortcomings: for example, each hullmod installed on ship produces its own notification message,
which can seriously clutter intel in late stages of the game.

Such is a state of the project at the time of the Git creation.

Development goals:

- Collect production notifications into one intel tooltip.
- Create a toggle method for all production in ability class.
- Develop Heavy Machinery breakdown mechanic with usage of Nanoforges.
- and other minor tweaks.

This is not intended to be a potentially big project with undefined development cycle.
The main goal here is to create a streamlined, refined replacement of such mods as "Supply Forging", "Fuel Siphoning", and forges of "Nijigen Extend",
with an implementation keeping to vanilla style, lore and feeling.

23.10.2021

All remaining files of source mod were removed, work started from scratch.

* * *

Architecture draft:

- Hullmod dummy (no code, as it does nothing)
[**Will probably only display info through tooltips**]

- Ability (when toggled will do something)
[**Will display info through tooltip and act as a toggle for conversion**]

- EveryFrameListener for deciding if ability is usable (check fleet status, and set ability property correctly, this property is used to determine if it is activable)
[**Done for now**]

- Further listeners that do actual conversion (TBD later).
[**Will also create a unified production message**]

25.10.2021

What do we need?

- commodity conversion

- way to toggle on/off for each conversion type

- requirement for Heavy Machinery availability

- way to control production scale

- therefore, granularity for ship amount, ship size and combat readiness (forging capacities must be bestowed by ships)

- restrictions for ship's forging capacities (can't do everything at once)

- each ship engaged in production gets combat readiness malus daily

- Salvage Gantry throughput bonuses

- Nanoforges efficiency bonuses

- tooltip information for each ship's forging capacity (in hullmod)

- tooltip information for fleet's forging capacity (in ability)

- single production report for daily forging activity (by ability OR listener)

- SFX for daily production report

OPTIONAL:

- allow forging hullmods to be installable on destroyer

- restrict forging hullmods to civilian-grade hulls

- create a whitelist of specific hulls to be eligible for forge hullmods installation

- add individual hullmod capacity/efficiency/throughput bonuses when installed on specific hulls

- add built-in hullmod bonuses

Architecture:

1. Ability class

- contains logic for conversion

Multiple abilities: individual toggles for each type.

- needs a listener to declare unified production report

- introduces much bloat

Single ability: toggle for all production, individual types are disabled through ship repairs. [GOING WITH THIS ONE]

- can contain logic for unified production report

2. Usability listener class

- restricts ability usage based on hullmod presence in fleet.
(need to have this information in ability tooltip)

3. Hullmod classes

Main hullmod for module installation restrictions and general ship stats modification.

Multiple module hullmods for each conversion type. Every conversion needs some Heavy Machinery available.

- Refinery module: refines Metal from Ore and Transplutonics from Transplutonic Ore. (Maybe split this one into two?)

- Centrifuge Module : centrifuges Fuel from Volatiles. Adds a little bit of fuel capacity.

- Manufacture Module: manufactures Supplies from Metal and Transplutonics.

- Machineworking Module: manufactures Heavy Machinery from Metal and Transplutonics.

Use hullmods to convert raw materials into commodities with ability.

0 comments on commit 5679eb7

Please sign in to comment.