-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
introducing resource materials and customizable techpoint and cbill costs #66
Comments
So let me see if I understand this right.
I am not so sure this is the way to go about solving the cost issue. It is like hunting a fly with an AC20, with significant lore implications (which we are already stretching but not much more than Tabletop does). Yang is good, but can he really make an XL engine with only a small engineering team? But you are on to something with requiring parts, and I think the answer to the cost problem lies once again in the rules of TableTop, for they really did think of everything. According to Strategic Operations, customization (or "refit") is classified according to its difficulty. Class A - Replacement of a weapon with another of the same category with the same or less slots, including its ammunition. (Medium Laser --> Medium Pulse Laser, AC10 --> LB10X, etc.) In order to perform a refit, you need a Refit Kit for every change that matches its refit level. Each refit level requires more time and is more difficult for the technicians than the last (it includes a roll), and most importantly, requires different facilities. Refit Classes A and B are Field Refits and can be performed pretty much anywhere. What can we take from this that can be translated to Battletech?
So what happens? Much like what you proposed, when performing any operation in the MechLab, it checks if a repair kit is required, what class, and if one is available. If it is, the repair kit is consumed, if none are available an error is produced. So we have the cost. Optionally, you could also implement restrictions on availability, namely where refits can be performed. Yang may be god's own gift to MechWarriors, but the base game never allowed for extensive structure/engine changes. Field Refits, he could do anywhere. It adheres to TT better and it doesn't seem to require any more coding on your part than your XL Shielding proposal. |
excellent summary, I learned a lot, I have 2 questions/issues though:
the problem with the rule books is that they never assume buying stuff before installing, its always about directly installing stuff in a specific mech right? so all the parameters for the cost calculations are known beforehand, which doesnt work for our game without allowing autobuying of even rare items on installation.
yes he is.. he can build mechs from destroyed salvage parts, he can also build engines left and right out of thin air. no seriously, we just have to assume we are a flying manufacturing plant anyway. that doesn't mean we shouldn't reuse ideas that are already in the core rulebooks. and if we can avoid Yangs superpowers why not? I still like your idea of different refit kits having planetary requirements though, that could be part of a feature were we tone down yangs superpowers. |
I am going to address both issues with two possible, simpler solutions:
OR
Field Kit (Light/Medium) In both cases, taking an XL from a Light and placing it in an Assault can cost much more than transplanting it into another light. It doesn't require you to gather any extra materials, so you can do it if you can afford the cost, but that cost will be heavy. I think I see your point though. Without any other system in place, you could take the XL part from a lower cost XL 100 engine and transplant it into a 400 for no additional cost. It is late, so I will have to think more on this tomorrow. Can an engine 'remember' what fusion core it was installed with last? I don't recall if they remember their internal sink type. If they can, then you can just require X refit kits for every +/-5 change in rating from the old to the new. |
please think about it, but this ticket is not a priority, don't put too much energy into it
the game always removes components before adding them (and in between you can cancel work order). to avoid race conditions you have to always calculate from 0. just as a interim recap of this ticket, we have 2 contending mechanism
ok lets remove refit kits and materials again. those can be patched on later. a small mech requires 1 XL Engine CT that would remove the whole issue of implementing other resources that are not shown and have to be tracked separately. its still not as fine grained as my materials suggetions, and it looses the coolness of refit kits from the core rules. also kinda weird that you suddenly have to do it for some items and not for others. (you dont have to add 2 ML to get 1 on an assault mech) I'm not a fan of this new idea, as edge cases of mechs (light assaults, heavy heavies) are suddenly overly good or bad. |
I don't think that's necessarily a bad thing. Cbills are not abundant, and indeed, their availability for upgrades usually follows the player's progression through the weight classes. When you are using only lights, even getting the refit kits to replace their weapons might be a cost worth considering, and you wouldn't even think of changing their engine type, and realistically you wouldn't have the connections to get the necessary kits to fit an XL engine. By the time you have a full assault lance, you can afford to put an XL on your heavies or know a guy who knows a guy in the Lyran military who can hook you up with the refit kit to put it on a mech. As a side-note, the similar problem with endosteel (taking endosteel from a light and throwing it to an assault) can be handled much more elegantly: do it like how MechWarrior Online does it. Once you add endosteel to a mech, you can't take it out and put it on another, and it is destroyed if you ever decide to change to standard structure. Armor can persist because it is reusable, but keep an internal store of each armor type so stripping a light mech of its measly few tons of ferro isn't enough to fill up an assault. Now there's even a reason to use ferro over endo, because it is more flexible! Balance! |
work order cost customizations are good enough for now, this resource thing is for the future |
this is a lot of work and requires work order manipulation that is hard to maintain. have to wait for someone to provide a more extensive work order framework |
ok, giving up on this, while still doable, it won't bring much to the game in comparison to other features |
I found the solution which is still hard to implement, but finally makes sense.
summary
you want to build an xl engine into a 100 ton mech and an engine rating of 300?
well that costs you 20 tons of xl shielding materials when building it. you dont have any left, well dragndrop won't allow it then.. (or cant save/accept the mech)
go to the store and buy 10x 1'000 kg of xl shielding materials.
right now we already have 2 resources:
I would just implement a mechanic to add custom resources:
The framework discussed will also allow to adjust techpoint and cbill cost per item, that allows more precise control what item costs what.
Features
resource representation and suspension of disbelief
2 variants on how to represent resources:
to solve issue with suspension of disbelief:
require different type of refit kits for different actions, like repair kit to repair the endo-steel frame that was damaged, or conversion kit to move that std engine to xl. why even have kits? 1. its in lore 2. someone can't just reconstruct a mechs frame just using materials, there must be something else, helps with suspension of disbelief.
A refit kit is bascially just a fourth resource only required on certain transitions and the resource is consumed on use.
container components (stuff that contains resources):
transitions
all use cases / transitions:
buy: ? (use defaults for now)
sell: ? (use defaults for now)
salvage: ? (use defaults for now)
scrap: ScrapComponent, ScrapActiveMech, ScrapInactiveMech
install: ComponentInstall
repair: ComponentRepair
uninstall: ComponentInstall->None
cancel: CancelWorkOrder, RefundWorkOrder, GetCBillCostForIncompleteTasks
strip: StripMech
armor: MechArmorModify
structure: MechRepair
for each transition check the following:
some resources should have very asymmetric cost/gain ratios at various transitions
special handling
armor
armor changes have to be handled seperatly, e.g.
if previous armor type != current armor type {
-> get previous armor and armor tonnage and calculate costs
-> reduce existing armor tonnage = 0 for next calculation
}
-> get armor tonnage difference to existing armor and calculate modifyarmor costs based on that
engine
engine handling is also different, as several parts should act as one (gyro is also part of engine!):
implementation details
adjust workorders on mechlab confirm.
wait for after pruning, as pruning removes all previous workorders that would be overwritten
using custom components, a component would need to conform to IResourceProvider or IResourceConsumer.
all variables have to be precalculated before being applied. dict = getvarsforalgorithm(mechdef)
Resource def semantics (will be json in the end):
Example XL Engine
80% of EngineTonnage is shielding, rest is core or other requipment
Example Ferros-Fibrous
Example Endo-Steel
Example Endo-Steel #2
Example Gyro
Example Heavy Jump Jet
Example MASC
The text was updated successfully, but these errors were encountered: