wcmille / GVAS2

GVA Season 2 MES
1 stars 1 forks source link

Radar "heats" up your beacon sig. #134

Open wcmille opened 11 months ago

highlyunavailable commented 10 months ago

I've figured out a way to make beacon blocks have an additional bonus to sig apply from any mod. Oh boy!

Use the UpgradeValues dict to hold data on this. Bonus: I get notified when it changes!

wcmille commented 10 months ago

That'd be pretty cool. Kami has a large grid Radar model that we could probably use. I don't know if it would be fun or tedious if this had a cone of effect instead of a sphere.

highlyunavailable commented 10 months ago

image

So I've added these 3 upgrade values to the beacon. AdditionalVisibility is effectively "artificial speed" so on your radar you'd have a component that kept track of how long it's been on.

You'll need to do the bookkeeping there, saving how much total got added, and also adding let's say 0.1 every 100 ticks the radar is on, and then take sum that back off once the radar is off, which will cause the natural "speed cooldown" to kick in.

If you set AdditionalVisibility >= 1.0, it will force max range beacon signature until you reduce it below 1.0. It actually adds with your speed, so even if you're stopped you can add AdditionalVisibility to force the sig to grow, and if it's <1.0 you'll hit full sig faster when you start moving. It could even be set negative for some reason, and <= -1.0 would mean always at minimum signature unless affected by jumping.

I added the other two in case you want to tweak other parts of the beacon signature as well. SignatureMultiplier stacks multiplicatively with all other modifiers. CooldownMultiplier increases how long it takes to "cool down" from 100% signature. If the config says 60 sec, and CooldownMultiplier is 2.0, it'll take 120 sec (if the CooldownMultiplier remains 2.0 the entire time - if you change it back to 1.0 during the middle of the cooldown, it'll start dropping the signature faster).

To set them, set the UpgradeValues dict entry on the block itself:

            beaconBlock.UpgradeValues["AdditionalVisibility"] = 0f;
            beaconBlock.UpgradeValues["SignatureMultiplier"] = 1f;
            beaconBlock.UpgradeValues["CooldownMultiplier"] = 1f;