chummer5a / chummer

Automatically exported from code.google.com/p/chummer
10 stars 17 forks source link

Wrong Calculation of Armor Encumbrance for REA with Synaptic Booster #14

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Create new Character, ignore building rules for convenience
2. Set AGI = 5, REA = 5, Nuyen 50 points
3. Add Synaptic Booster 1
4. Add Heavy Military Armor
5. Check Common TAB, no penalty for REA but not for AGI

6. Remove Synaptic Booster
7. Check Common TAB, penalty for REA and AGI

What is the expected output? What do you see instead?
The REA attribute should receive the same penalty as AGI

What version of the product are you using? On what operating system?
Version 0.0.0.458

Please provide any additional information below.

Checking the corresponding Code in the frmCareer.cs I find that Values SHOULD 
be applied correctly:

                // Remove any Improvements from Armor Encumbrance.
                _objImprovementManager.RemoveImprovements(Improvement.ImprovementSource.ArmorEncumbrance, "Ballistic Encumbrance");
                _objImprovementManager.RemoveImprovements(Improvement.ImprovementSource.ArmorEncumbrance, "Impact Encumbrance");
                // Create the Armor Encumbrance Improvements.
                if (_objCharacter.BallisticArmorEncumbrance < 0)
                {
                    _objImprovementManager.CreateImprovement("AGI", Improvement.ImprovementSource.ArmorEncumbrance, "Ballistic Encumbrance", Improvement.ImprovementType.Attribute, "", 0, 1, 0, 0, _objCharacter.BallisticArmorEncumbrance);
                    _objImprovementManager.CreateImprovement("REA", Improvement.ImprovementSource.ArmorEncumbrance, "Ballistic Encumbrance", Improvement.ImprovementType.Attribute, "", 0, 1, 0, 0, _objCharacter.BallisticArmorEncumbrance);

                }
                if (_objCharacter.ImpactArmorEncumbrance < 0)
                {
                    _objImprovementManager.CreateImprovement("AGI", Improvement.ImprovementSource.ArmorEncumbrance, "Impact Encumbrance", Improvement.ImprovementType.Attribute, "", 0, 1, 0, 0, _objCharacter.ImpactArmorEncumbrance);
                    _objImprovementManager.CreateImprovement("REA", Improvement.ImprovementSource.ArmorEncumbrance, "Impact Encumbrance", Improvement.ImprovementType.Attribute, "", 0, 1, 0, 0, _objCharacter.ImpactArmorEncumbrance);
                }

Giving AGI and REA the same penalty!

Having a look at the definition of Synaptic Booster and for example Reaction 
Impovement (which doesn't result in this "bug" as I know so far) they have the 
same definition:

        <bioware>
            <name>Synaptic Booster</name>
            <category>Cultured</category>
            <rating>3</rating>
            <ess>Rating * 0.5</ess>
            <capacity>0</capacity>
            <avail>(Rating * 6)R</avail>
            <cost>Rating * 80000</cost>
            <bonus>
                <initiativepass>Rating</initiativepass>
                <specificattribute>
                    <name precedence="1">REA</name>
                    <val>Rating</val>
                </specificattribute>
            </bonus>
            <source>SR4</source>
            <page>347</page>
        </bioware>

                <cyberware>
            <name>Reaction Enhancers</name>
            <category>Bodyware</category>
            <rating>3</rating>
            <ess>Rating * 0.3</ess>
            <capacity>0</capacity>
            <avail>(Rating * 5)R</avail>
            <cost>Rating * 10000</cost>
            <bonus>
                <specificattribute>
                    <name precedence="1">REA</name>
                    <val>Rating</val>
                </specificattribute>
            </bonus>
            <source>SR4</source>
            <page>342</page>
        </cyberware>

So I can find nothing wrong in the sourcecode and definition of the items.

Original issue reported on code.google.com by cimba...@googlemail.com on 11 Apr 2013 at 8:54

GoogleCodeExporter commented 9 years ago
-- 5. Check Common TAB, no penalty for REA but not for AGI 
++ 5. Check Common TAB, penalty for REA but not for AGI

Original comment by cimba...@googlemail.com on 11 Apr 2013 at 8:55