Add Smoke and Foam chemical reaction effects. (#2913)

* Adds smoke reaction effect

* smoke tweaks

* address reviews

* Smoke fix

* Refactor smoke and add foam

* Fix stuff

* Remove thing

* Little things

* Address some comments

* Address more things

* More addressing

* License stuff

* Address refactor request

* Small things

* Add nullability

* Update Content.Server/GameObjects/EntitySystems/SolutionAreaEffectSystem.cs

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
This commit is contained in:
Radrark
2021-02-03 11:26:46 -03:00
committed by GitHub
parent 684ec60be6
commit 937e261867
30 changed files with 1123 additions and 2 deletions

View File

@@ -40,6 +40,20 @@
products:
chem.PolytrinicAcid: 3
- type: reaction
id: react.FluorosulfuricAcid
reactants:
chem.Fluorine:
amount: 1
chem.Hydrogen:
amount: 1
chem.Potassium:
amount: 1
chem.SulfuricAcid:
amount: 1
products:
chem.FluorosulfuricAcid: 4
- type: reaction
id: react.PotassiumExplosion
reactants:
@@ -57,6 +71,94 @@
scaled: true #Scaled proportionally to amount of potassium and water
maxScale: 30 #Explosion strength stops scaling at 30 potassium + 30 water
- type: reaction
id: react.Smoke
reactants:
chem.Phosphorus:
amount: 1
chem.Potassium:
amount: 1
chem.Sugar:
amount: 1
effects:
- !type:SmokeAreaReactionEffect
rangeConstant: 0
rangeMultiplier: 1.1 #Range formula: rangeConstant + rangeMultiplier*sqrt(ReactionUnits)
maxRange: 10
duration: 10
spreadDelay: 0.5
removeDelay: 0.5
diluteReagents: false
prototypeId: Smoke
sound: /Audio/Effects/smoke.ogg
- type: reaction
id: react.Foam
reactants:
chem.Fluorosurfactant:
amount: 1
chem.Water:
amount: 1
effects:
- !type:FoamAreaReactionEffect
rangeConstant: 0
rangeMultiplier: 1.1 #Range formula: rangeConstant + rangeMultiplier*sqrt(ReactionUnits)
maxRange: 10
duration: 10
spreadDelay: 1
removeDelay: 0
diluteReagents: true
reagentDilutionStart: 4 #At what range should the reagents start diluting
reagentDilutionFactor: 1
reagentMaxConcentrationFactor: 2 #The reagents will get multiplied by this number if the range turns out to be 0
prototypeId: Foam
- type: reaction
id: react.IronMetalFoam
reactants:
chem.Iron:
amount: 3
chem.FoamingAgent:
amount: 1
chem.FluorosulfuricAcid:
amount: 1
effects:
- !type:FoamAreaReactionEffect
rangeConstant: 0
rangeMultiplier: 1.1
maxRange: 10
duration: 10
spreadDelay: 1
removeDelay: 0
diluteReagents: true
reagentDilutionStart: 4
reagentDilutionFactor: 1
reagentMaxConcentrationFactor: 2
prototypeId: IronMetalFoam
- type: reaction
id: react.AluminiumMetalFoam
reactants:
chem.Aluminium:
amount: 3
chem.FoamingAgent:
amount: 1
chem.FluorosulfuricAcid:
amount: 1
effects:
- !type:FoamAreaReactionEffect
rangeConstant: 0
rangeMultiplier: 1.1
maxRange: 10
duration: 10
spreadDelay: 1
removeDelay: 0
diluteReagents: true
reagentDilutionStart: 4
reagentDilutionFactor: 1
reagentMaxConcentrationFactor: 2
prototypeId: AluminiumMetalFoam
- type: reaction
id: react.TableSalt
reactants:
@@ -100,3 +202,15 @@
amount: 1
products:
chem.Water: 2
- type: reaction
id: react.Fluorosurfactant
reactants:
chem.Carbon:
amount: 2
chem.Fluorine:
amount: 2
chem.SulfuricAcid:
amount: 1
products:
chem.Fluorosurfactant: 5