Merge branch 'master' of https://bitbucket.org/Regalis11/barotrauma into multisub

Conflicts:
	Subsurface/Source/GUI/GUI.cs
This commit is contained in:
Regalis11
2016-06-09 18:39:54 +03:00
28 changed files with 346 additions and 66 deletions
+3
View File
@@ -769,6 +769,9 @@
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<SubType>Designer</SubType> <SubType>Designer</SubType>
</Content> </Content>
<Content Include="Content\Map\structures2.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Content\Map\waypointIcons.png"> <Content Include="Content\Map\waypointIcons.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content> </Content>
@@ -1,19 +1,25 @@
Albertine Albertine
Alexia
Alfredia Alfredia
Alice
Alita Alita
Alla Alla
Alta Alta
Althea Althea
Alyce Alyce
Amee Amee
Amira
Annette Annette
Ara Ara
Arcelia Arcelia
Arie Arie
Armanda Armanda
Aryanna
Ashley
Ashly Ashly
Astrid Astrid
Avril Avril
Azul
Barbra Barbra
Beaulah Beaulah
Bell Bell
@@ -22,13 +28,17 @@ Bettyann
Beverley Beverley
Bridgett Bridgett
Candace Candace
Cara
Carie Carie
Carla Carla
Carmen
Cathleen Cathleen
Cathy
Cecille Cecille
Christiana Christiana
Christine Christine
Cinda Cinda
Claire
Cleopatra Cleopatra
Codi Codi
Corinne Corinne
@@ -46,19 +56,26 @@ Doria
Dorthy Dorthy
Eleanor Eleanor
Elinor Elinor
Eliza
Elliana
Emerald Emerald
Emilee
Erica
Erline Erline
Ethel Ethel
Eugenia Eugenia
Fanny Fanny
Fernanda Fernanda
Fiona
Glenda Glenda
Gloria
Hortensia Hortensia
Ilene Ilene
Ina Ina
Inga Inga
Iris Iris
Jacquline Jacquline
Jaida
Janee Janee
Janessa Janessa
Janie Janie
@@ -75,30 +92,37 @@ Karyn
Katerina Katerina
Katherina Katherina
Kathy Kathy
Katrina
Kellie Kellie
Kenna
Keri Keri
Kizzie Kizzie
Kristeen Kristeen
Kristie Kristie
Larissa Larissa
Larita Larita
Lauren
Laurie Laurie
Laurinda Laurinda
Lavinia Lavinia
Leanne Leanne
Leila Leila
Lelah Lelah
Lena
Leola Leola
Lily
Lindy Lindy
Liza Liza
Lola Lola
Lora Lora
Lorriane Lorriane
Lorrie Lorrie
Macey
Mafalda Mafalda
Maira Maira
Majorie Majorie
Marcy Marcy
Margaret
Margeret Margeret
Mariela Mariela
Marin Marin
@@ -110,19 +134,25 @@ Masako
Maudie Maudie
Maybell Maybell
Mechelle Mechelle
Megan
Melany Melany
Melba Melba
Michele Michele
Mikaela
Mila Mila
Miranda Miranda
Muoi Muoi
Natalia Natalia
Natashia Natashia
Nicole
Nola Nola
Noriko Noriko
Page Page
Pamela
Paula Paula
Peggie Peggie
Phoenix
Priscilla
Randi Randi
Reatha Reatha
Renata Renata
@@ -146,9 +176,13 @@ Sherita
Sherry Sherry
Shin Shin
Shirlee Shirlee
Siena
Socorro Socorro
Sophie
Stefany Stefany
Stella
Stephane Stephane
Summer
Susy Susy
Synthia Synthia
Tania Tania
@@ -169,3 +203,4 @@ Velma
Yahaira Yahaira
Zandra Zandra
Zoe Zoe
Zoey
@@ -1,17 +1,20 @@
Abe Abe
Adam Adam
Adan Adan
Ahmed
Alan Alan
Aldo Aldo
Allan Allan
Alonso Alonso
Alton Alton
Alvaro Alvaro
Alvin
Andres Andres
Anton Anton
Antony Antony
Arkadi Arkadi
Arron Arron
Arthur
Arturo Arturo
Austin Austin
Avery Avery
@@ -22,6 +25,7 @@ Ben
Bennie Bennie
Bertram Bertram
Bill Bill
Bo
Boyce Boyce
Boyd Boyd
Brady Brady
@@ -41,14 +45,15 @@ Christoper
Chuck Chuck
Claude Claude
Coleman Coleman
Cuck
Dan Dan
Darius Darius
Darrin Darrin
Darwin Darwin
David David
Delbert Delbert
Devin
Dewey Dewey
Devin
Dewitt Dewitt
Dimitry Dimitry
Dominick Dominick
@@ -61,6 +66,7 @@ Elmer
Erich Erich
Erik Erik
Ernie Ernie
Esteban
Everette Everette
Ezequiel Ezequiel
Filiberto Filiberto
@@ -70,6 +76,8 @@ Freeman
Fritz Fritz
Garrett Garrett
Gerard Gerard
Glenn
Gregor
Hal Hal
Harlan Harlan
Harris Harris
@@ -77,6 +85,7 @@ Harry
Hector Hector
Herman Herman
Hobert Hobert
Igor
Irwin Irwin
Ivan Ivan
Jackie Jackie
@@ -94,12 +103,15 @@ Jerrell
Jerrod Jerrod
Jess Jess
Joe Joe
Joel
John John
Johny
Jonathan Jonathan
Josef Josef
Joseph Joseph
Joshua Joshua
Jude Jude
Julius
Keith Keith
Kendall Kendall
Keneth Keneth
@@ -114,7 +126,9 @@ Lanny
Lee Lee
Len Len
Lenny Lenny
Leo
Lionel Lionel
Lucas
Lynn Lynn
Lynwood Lynwood
Malcom Malcom
@@ -131,6 +145,7 @@ Mauricio
Mckinley Mckinley
Mechislav Mechislav
Merrill Merrill
Messiah
Micheal Micheal
Milton Milton
Minh Minh
@@ -143,11 +158,14 @@ Mose
Murray Murray
Neal Neal
Neil Neil
Nick
Nolan Nolan
Norman Norman
Omari
Orval Orval
Oscar Oscar
Owen Owen
Pedro
Pete Pete
Peter Peter
Quincy Quincy
@@ -165,6 +183,7 @@ Rob
Roderick Roderick
Roland Roland
Romeo Romeo
Ronnie
Rosendo Rosendo
Roy Roy
Rupert Rupert
@@ -176,14 +195,17 @@ Sergei
Seth Seth
Shelby Shelby
Sidney Sidney
Simon
Son Son
Sonny Sonny
Steve Steve
Stevie Stevie
Sylvester Sylvester
Tad Tad
Tate
Terrance Terrance
Terrell Terrell
The
Timur Timur
Tod Tod
Todd Todd
@@ -193,14 +215,16 @@ Travis
Tyler Tyler
Tyson Tyson
Ulof Ulof
Virgil
Virgilio
Waldo Waldo
Walker Walker
Warner Warner
Vasili
Wilford Wilford
Will Will
Williams Williams
Willie
Willy Willy
Winston Winston
Virgil
Virgilio
Zachary Zachary
@@ -1,9 +1,15 @@
Aguilar
Aker Aker
Angles Angles
Ashley
Atterbury Atterbury
Avery
Bailey
Banks
Bartolomeo Bartolomeo
Basnett Basnett
Baumgardner Baumgardner
Beltran
Bergman Bergman
Berlin Berlin
Berner Berner
@@ -13,121 +19,207 @@ Boman
Bonham Bonham
Books Books
Box Box
Bradley
Brady
Breeki Breeki
Buckley
Burke
Bushman Bushman
Callahan Callahan
Callanan
Carey Carey
Carroll
Case
Castillo
Castro
Celina Ryder Celina Ryder
Chandler Chandler
Chaney Chaney
Chaney
Chapman Chapman
Chiu Chiu
Clements
Clothier Clothier
Cluck
Cobble Cobble
Collins
Colpitts Colpitts
Combs Combs
Connors Connors
Cork Cork
Cortese Cortese
Craig
Cuevas
Danko Danko
Day Day
Day
Delange Delange
Deloney Deloney
Deras Deras
Dews Dews
Dimauro Dimauro
Dollinger Dollinger
Donovan
Dorado Dorado
Dudley Dudley
Duplantier Duplantier
Dyer
Eastman Eastman
Elliott
Ellison
Escobar
Feinberg Feinberg
Feinman Feinman
Fesler Fesler
Fleig Fleig
Flowers Flowers
Fonte Fonte
Freeman
Frye Frye
Gadberry Gadberry
Gallagher Gallagher
Gallardo Gallardo
Gay
Gears Gears
Geist Geist
Gomez
Gonzales Gonzales
Goodin Goodin
Gordon
Gould
Graves
Graves
Green
Gregory
Gumbs Gumbs
Hajek Hajek
Hallett Hallett
Hampton
Hardy Hardy
Harp Harp
Hebert Hebert
Hedrick Hedrick
Hefner Hefner
Hernandez
Heuer Heuer
Higgins
Hillard Hillard
Hines Hines
Hinton
Hocker Hocker
Hoffman
Holter Holter
House House
Huber
Huber
Hurley
Hutchinson
Huynh
Jack Jack
James
Jones Jones
Keller Keller
Kidd
Kinney Kinney
Klein Klein
Knowles Knowles
Krall Krall
Kramer
Lane Lane
Larsen
Larsen
Lavey Lavey
Lawrence
Lawson
Lee
Leonard Leonard
Lester Lester
Linares Linares
Little
Lowe Lowe
Lozano
Lucas
Lyons
Malone Malone
Mansfield Mansfield
Marchi Marchi
Marquez
Mason Mason
Maxwell
Maynard Maynard
Maynes Maynes
Mcclure
Mcdowell
McLeroy McLeroy
McNeal McNeal
Mcneil
Mead Mead
Meals Meals
Meisner Meisner
Mell Mell
Mendel Mendel
Mendez
Meza
Molina
Monroe
Mooney
Moran
Moses
Moses
Mosley
Mulford Mulford
Mungo Mungo
Navarro Navarro
Newton Newton
Nicolosi Nicolosi
Nunez
Ordway Ordway
Ouellette Ouellette
Palmieri Palmieri
Parchman Parchman
Parker Parker
Parks Parks
Patel
Pearson
Petersen Petersen
Phillips
Phoenix Phoenix
Pickett Pickett
Planck Planck
Pollard
Pool Pool
Poole Poole
Preston
Price Price
Proctor
Quinn
Radebaugh Radebaugh
Radice Radice
Ram Ram
Ramos
Rangel
Reeves
Reynolds
Rhymer Rhymer
Riddle Riddle
Riles Riles
Rios
Rivera
Robertson Robertson
Rolfe Rolfe
Roman
Rosewood Rosewood
Rowe
Sacks Sacks
Santillan Santillan
Santistevan Santistevan
Saunders
Sawyer Sawyer
Schmitt
Serrano
Severance Severance
Sexton
Shah
Simpson
Smith Smith
Southworth Southworth
Sparks Sparks
@@ -135,6 +227,8 @@ Stalvey
Stanley Stanley
Stein Stein
Stogner Stogner
Suarez
Summers
Summitt Summitt
Sunderland Sunderland
Swanger Swanger
@@ -142,16 +236,21 @@ Swanson
Sykes Sykes
Tamashiro Tamashiro
Tate Tate
Terry
Thompkins Thompkins
Tootle Tootle
Tseng Tseng
Tyson Tyson
Ulrich Ulrich
Walls
Vaughn Vaughn
Vazquez
Veach Veach
Weaver
Velazquez Velazquez
Welden Welden
Wheeling Wheeling
Whitely Whitely
Wiley Wiley
Williams Williams
Zhang
@@ -220,7 +220,9 @@
<Sprite texture="signalcomp.png" depth="0.8" sourcerect="48,16,16,16"/> <Sprite texture="signalcomp.png" depth="0.8" sourcerect="48,16,16,16"/>
<RelayComponent canbeselected = "true"/> <RelayComponent canbeselected = "true">
<GuiFrame rect="0,0,200,160" alignment="Center" color="0.0,0.0,0.0,0.6"/>
</RelayComponent>
<fixrequirement name="Reset fuse"> <fixrequirement name="Reset fuse">
<skill name="Electrical Engineering" level="30"/> <skill name="Electrical Engineering" level="30"/>
+1 -1
View File
@@ -148,7 +148,7 @@
</ItemComponent> </ItemComponent>
<Holdable slots="Any,RightHand,LeftHand"> <Holdable slots="Any,RightHand,LeftHand">
<StatusEffect type="OnUse" target="Character" Health="2.0" duration="5.0"> <StatusEffect type="OnUse" target="Character" Health="3.0" duration="5.0">
<RequiredItem name="Medical Syringe" type="Container"/> <RequiredItem name="Medical Syringe" type="Container"/>
</StatusEffect> </StatusEffect>
</Holdable> </Holdable>
+1 -1
View File
@@ -49,7 +49,7 @@
<RequiredSkill name="Weapons" level="30"/> <RequiredSkill name="Weapons" level="30"/>
</RangedWeapon> </RangedWeapon>
<ItemContainer itempos="27,10" iteminterval="0,-8" hideitems="false"> <ItemContainer itempos="27,10" iteminterval="0,-4" hideitems="false">
<Containable name="Spear"/> <Containable name="Spear"/>
</ItemContainer> </ItemContainer>
</Item> </Item>
@@ -120,6 +120,11 @@
<PipesBackground sprite="Content/Map/testroom.png" sourcerect="381,795,192,192" depth = "1.0" <PipesBackground sprite="Content/Map/testroom.png" sourcerect="381,795,192,192" depth = "1.0"
width="64" height="64" resizehorizontal="true" resizevertical="true"/> width="64" height="64" resizehorizontal="true" resizevertical="true"/>
<SlopeForward sprite="Content/Map/structures2.png" sourcerect="0,0,224,64"
width="16" height="16" resizehorizontal="true" resizevertical="true" depth = "0.95"/>
<SlopeBack sprite="Content/Map/structures2.png" sourcerect="0,64,224,64"
width="16" height="16" resizehorizontal="true" resizevertical="true" depth = "0.95"/>
<stairsright sprite="Content/Map/testroom.png" sourcerect="100,667,256,320" <stairsright sprite="Content/Map/testroom.png" sourcerect="100,667,256,320"
width="256" height="320" depth = "0.1" stairdirection="Right"/> width="256" height="320" depth = "0.1" stairdirection="Right"/>
Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

+2 -2
View File
@@ -31,5 +31,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers // You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below: // by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("0.4.1.3")] [assembly: AssemblyVersion("0.4.1.6")]
[assembly: AssemblyFileVersion("0.4.1.3")] [assembly: AssemblyFileVersion("0.4.1.6")]
@@ -156,6 +156,13 @@ namespace Barotrauma
} }
strongestImpact = 0.0f; strongestImpact = 0.0f;
if (stunTimer > 0)
{
stunTimer -= deltaTime;
return;
}
if (character.LockHands) if (character.LockHands)
{ {
var leftHand = GetLimb(LimbType.LeftHand); var leftHand = GetLimb(LimbType.LeftHand);
@@ -185,14 +192,12 @@ namespace Barotrauma
//rightHand.pullJoint.Enabled = true; //rightHand.pullJoint.Enabled = true;
//rightHand.pullJoint.WorldAnchorB = midPos; //rightHand.pullJoint.WorldAnchorB = midPos;
} }
else
if (stunTimer > 0)
{ {
stunTimer -= deltaTime;
return;
}
if (Anim != Animation.UsingConstruction) ResetPullJoints(); if (Anim != Animation.UsingConstruction) ResetPullJoints();
}
if (SimplePhysicsEnabled) if (SimplePhysicsEnabled)
{ {
@@ -287,7 +292,7 @@ namespace Barotrauma
float slowdownFactor = (float)limbsInWater / (float)Limbs.Count(); float slowdownFactor = (float)limbsInWater / (float)Limbs.Count();
float maxSpeed = Math.Max(TargetMovement.Length() - slowdownFactor, 1.0f); float maxSpeed = Math.Max(TargetMovement.Length() - slowdownFactor, 1.0f);
if (character.SelectedCharacter!=null) maxSpeed = Math.Min(maxSpeed, 1.0f); // if (character.SelectedCharacter!=null) maxSpeed = Math.Min(maxSpeed, 1.0f);
TargetMovement = Vector2.Normalize(TargetMovement) * maxSpeed; TargetMovement = Vector2.Normalize(TargetMovement) * maxSpeed;
} }
@@ -933,10 +938,11 @@ namespace Barotrauma
{ {
pullLimb.pullJoint.Enabled = true; pullLimb.pullJoint.Enabled = true;
pullLimb.pullJoint.WorldAnchorB = targetLimb.SimPosition; pullLimb.pullJoint.WorldAnchorB = targetLimb.SimPosition;
pullLimb.pullJoint.MaxForce = 100.0f; pullLimb.pullJoint.MaxForce = 10000.0f;
targetLimb.pullJoint.Enabled = true; targetLimb.pullJoint.Enabled = true;
targetLimb.pullJoint.WorldAnchorB = pullLimb.SimPosition; targetLimb.pullJoint.WorldAnchorB = pullLimb.SimPosition;
targetLimb.pullJoint.MaxForce = 10000.0f;
} }
} }
+6 -2
View File
@@ -1031,6 +1031,12 @@ namespace Barotrauma
} }
} }
if (controlled == this)
{
Lights.LightManager.ViewTarget = this;
CharacterHUD.Update(deltaTime, this);
}
if (IsUnconscious) if (IsUnconscious)
{ {
UpdateUnconscious(deltaTime); UpdateUnconscious(deltaTime);
@@ -1039,8 +1045,6 @@ namespace Barotrauma
if (controlled == this) if (controlled == this)
{ {
Lights.LightManager.ViewTarget = this;
CharacterHUD.Update(deltaTime,this);
ControlLocalPlayer(deltaTime, cam); ControlLocalPlayer(deltaTime, cam);
} }
+5 -2
View File
@@ -82,7 +82,7 @@ namespace Barotrauma
DrawStatusIcons(spriteBatch, character); DrawStatusIcons(spriteBatch, character);
if (!character.IsUnconscious) if (!character.IsUnconscious && character.Stun <= 0.0f)
{ {
if (character.Inventory != null && !character.LockHands && if (character.Inventory != null && !character.LockHands &&
character.Stun >= -0.1f) character.Inventory.DrawOwn(spriteBatch, Vector2.Zero); character.Stun >= -0.1f) character.Inventory.DrawOwn(spriteBatch, Vector2.Zero);
@@ -193,7 +193,10 @@ namespace Barotrauma
suicideButton.OnClicked = (button, userData) => suicideButton.OnClicked = (button, userData) =>
{ {
character.Kill(character.CauseOfDeath); if (Character.Controlled != null)
{
Character.Controlled.Kill(Character.Controlled.CauseOfDeath);
}
return true; return true;
}; };
} }
+12 -12
View File
@@ -398,27 +398,27 @@ namespace Barotrauma
if (GameMain.DebugDraw) if (GameMain.DebugDraw)
{ {
spriteBatch.DrawString(Font, spriteBatch.DrawString(SmallFont,
"FPS: " + (int)GameMain.FrameCounter.AverageFramesPerSecond, "FPS: " + (int)GameMain.FrameCounter.AverageFramesPerSecond,
new Vector2(10, 10), Color.White); new Vector2(10, 10), Color.White);
spriteBatch.DrawString(Font, spriteBatch.DrawString(SmallFont,
"Physics: " + GameMain.World.UpdateTime, "Physics: " + GameMain.World.UpdateTime,
new Vector2(10, 20), Color.White);
spriteBatch.DrawString(SmallFont,
"Bodies: " + GameMain.World.BodyList.Count + " (" + GameMain.World.BodyList.FindAll(b => b.Awake && b.Enabled).Count + " awake)",
new Vector2(10, 30), Color.White); new Vector2(10, 30), Color.White);
spriteBatch.DrawString(Font, spriteBatch.DrawString(SmallFont,
"Bodies: " + GameMain.World.BodyList.Count + " (" + GameMain.World.BodyList.FindAll(b => b.Awake && b.Enabled).Count + " awake)", "Camera pos: " + GameMain.GameScreen.Cam.Position.ToPoint(),
new Vector2(10, 50), Color.White); new Vector2(10, 40), Color.White);
spriteBatch.DrawString(Font,
"Camera pos: " + GameMain.GameScreen.Cam.Position,
new Vector2(10, 70), Color.White);
if (Submarine.MainSub != null) if (Submarine.MainSub != null)
{ {
spriteBatch.DrawString(Font, spriteBatch.DrawString(SmallFont,
"Sub pos: " + Submarine.MainSub.Position, "Sub pos: " + Submarine.MainSub.Position.ToPoint(),
new Vector2(10, 90), Color.White); new Vector2(10, 50), Color.White);
} }
} }
@@ -36,6 +36,13 @@ namespace Barotrauma.Items.Components
get { return maxOutput; } get { return maxOutput; }
} }
[HasDefaultValue(10.0f, true), Editable]
public float Capacity
{
get { return capacity; }
set { capacity = Math.Max(value, 1.0f); }
}
[Editable, HasDefaultValue(0.0f, true)] [Editable, HasDefaultValue(0.0f, true)]
public float Charge public float Charge
{ {
@@ -47,13 +54,6 @@ namespace Barotrauma.Items.Components
} }
} }
[HasDefaultValue(10.0f, true), Editable]
public float Capacity
{
get { return capacity; }
set { capacity = Math.Max(value, 1.0f); }
}
[HasDefaultValue(10.0f, true), Editable] [HasDefaultValue(10.0f, true), Editable]
public float RechargeSpeed public float RechargeSpeed
{ {
@@ -67,6 +67,8 @@ namespace Barotrauma.Items.Components
Vector2 vector = ToolBox.ParseToVector2(value); Vector2 vector = ToolBox.ParseToVector2(value);
minRotation = MathHelper.ToRadians(vector.X); minRotation = MathHelper.ToRadians(vector.X);
maxRotation = MathHelper.ToRadians(vector.Y); maxRotation = MathHelper.ToRadians(vector.Y);
rotation = (minRotation + maxRotation) / 2;
} }
} }
+5 -3
View File
@@ -813,6 +813,9 @@ namespace Barotrauma
if (prefab.sprite != null) if (prefab.sprite != null)
{ {
float depth = Sprite.Depth;
depth += (ID % 255) * 0.000001f;
if (body == null) if (body == null)
{ {
if (prefab.ResizeHorizontal || prefab.ResizeVertical) if (prefab.ResizeHorizontal || prefab.ResizeVertical)
@@ -821,7 +824,7 @@ namespace Barotrauma
} }
else else
{ {
prefab.sprite.Draw(spriteBatch, new Vector2(DrawPosition.X, -DrawPosition.Y), color); prefab.sprite.Draw(spriteBatch, new Vector2(DrawPosition.X, -DrawPosition.Y), color, 0.0f, 1.0f, SpriteEffects.None, depth);
} }
} }
@@ -830,7 +833,6 @@ namespace Barotrauma
var holdable = GetComponent<Holdable>(); var holdable = GetComponent<Holdable>();
if (holdable!=null && holdable.Picker !=null) if (holdable!=null && holdable.Picker !=null)
{ {
float depth = Sprite.Depth;
if (holdable.Picker.SelectedItems[0]==this) if (holdable.Picker.SelectedItems[0]==this)
{ {
depth = holdable.Picker.AnimController.GetLimb(LimbType.RightHand).sprite.Depth + 0.000001f; depth = holdable.Picker.AnimController.GetLimb(LimbType.RightHand).sprite.Depth + 0.000001f;
@@ -844,7 +846,7 @@ namespace Barotrauma
} }
else else
{ {
body.Draw(spriteBatch, prefab.sprite, color); body.Draw(spriteBatch, prefab.sprite, color, depth);
} }
} }
} }
+2 -2
View File
@@ -40,9 +40,9 @@ namespace Barotrauma
return; return;
} }
for (int x = Math.Max(indices.X, 0); x <= Math.Min(indices.Width, entities.GetLength(0)); x++) for (int x = Math.Max(indices.X, 0); x <= Math.Min(indices.Width, entities.GetLength(0)-1); x++)
{ {
for (int y = Math.Max(indices.Y,0); y <= Math.Min(indices.Height, entities.GetLength(1)); y++) for (int y = Math.Max(indices.Y,0); y <= Math.Min(indices.Height, entities.GetLength(1)-1); y++)
{ {
entities[x, y].Add(entity); entities[x, y].Add(entity);
} }
+1 -1
View File
@@ -128,7 +128,7 @@ namespace Barotrauma
if (limb.WorldPosition == worldPosition) continue; if (limb.WorldPosition == worldPosition) continue;
c.AddDamage(limb.SimPosition, DamageType.None, c.AddDamage(limb.WorldPosition, DamageType.None,
damage / c.AnimController.Limbs.Length * distFactor, 0.0f, stun * distFactor, false); damage / c.AnimController.Limbs.Length * distFactor, 0.0f, stun * distFactor, false);
if (force > 0.0f) if (force > 0.0f)
{ {
+7 -3
View File
@@ -522,9 +522,13 @@ namespace Barotrauma
new Rectangle(drawRect.X, -drawRect.Y, rect.Width, rect.Height), new Rectangle(drawRect.X, -drawRect.Y, rect.Width, rect.Height),
Color.Red*((100.0f-OxygenPercentage)/400.0f), true); Color.Red*((100.0f-OxygenPercentage)/400.0f), true);
spriteBatch.DrawString(GUI.Font, "Pressure: " + ((int)pressure - rect.Y).ToString() + if (GameMain.DebugDraw)
" - Oxygen: " + ((int)OxygenPercentage), new Vector2(drawRect.X + 10, -drawRect.Y + 10), Color.Black); {
spriteBatch.DrawString(GUI.Font, volume + " / " + FullVolume, new Vector2(drawRect.X + 10, -drawRect.Y + 30), Color.Black); spriteBatch.DrawString(GUI.SmallFont, "Pressure: " + ((int)pressure - rect.Y).ToString() +
" - Oxygen: " + ((int)OxygenPercentage), new Vector2(drawRect.X + 5, -drawRect.Y + 5), Color.White);
spriteBatch.DrawString(GUI.SmallFont, volume + " / " + FullVolume, new Vector2(drawRect.X + 5, -drawRect.Y + 20), Color.White);
}
if ((isSelected || isHighlighted) && editing) if ((isSelected || isHighlighted) && editing)
{ {
+1 -1
View File
@@ -834,7 +834,7 @@ namespace Barotrauma.Networking
Character character = obj as Character; Character character = obj as Character;
if (character == null) return false; if (character == null) return false;
if (character != myCharacter) if (character != myCharacter && Voting.AllowVoteKick)
{ {
var client = GameMain.NetworkMember.ConnectedClients.Find(c => c.Character == character); var client = GameMain.NetworkMember.ConnectedClients.Find(c => c.Character == character);
if (client != null) if (client != null)
+3 -2
View File
@@ -1725,8 +1725,9 @@ namespace Barotrauma.Networking
Client preferredClient = null; Client preferredClient = null;
foreach (Client c in clients) foreach (Client c in clients)
{ {
int index = c.jobPreferences.FindIndex(jp => jp == job); int index = c.jobPreferences.IndexOf(job);
if (index == 0) index = 1000; if (index == -1) index = 1000;
if (preferredClient == null || index < bestPreference) if (preferredClient == null || index < bestPreference)
{ {
bestPreference = index; bestPreference = index;
@@ -93,6 +93,12 @@ namespace Barotrauma.Networking
get { return allowSpectating; } get { return allowSpectating; }
} }
public bool AllowVoteKick
{
get;
private set;
}
public float EndVoteRequiredRatio = 0.5f; public float EndVoteRequiredRatio = 0.5f;
public float KickVoteRequiredRatio = 0.5f; public float KickVoteRequiredRatio = 0.5f;
@@ -161,8 +167,7 @@ namespace Barotrauma.Networking
{ {
settingsFrame = new GUIFrame(new Rectangle(0, 0, GameMain.GraphicsWidth, GameMain.GraphicsHeight), Color.Black * 0.5f); settingsFrame = new GUIFrame(new Rectangle(0, 0, GameMain.GraphicsWidth, GameMain.GraphicsHeight), Color.Black * 0.5f);
GUIFrame innerFrame = new GUIFrame(new Rectangle(0, 0, 400, 420), null, Alignment.Center, GUI.Style, settingsFrame);
GUIFrame innerFrame = new GUIFrame(new Rectangle(0, 0, 400, 400), null, Alignment.Center, GUI.Style, settingsFrame);
innerFrame.Padding = new Vector4(20.0f, 20.0f, 20.0f, 20.0f); innerFrame.Padding = new Vector4(20.0f, 20.0f, 20.0f, 20.0f);
new GUITextBlock(new Rectangle(0, -5, 0, 20), "Server settings", GUI.Style, innerFrame, GUI.LargeFont); new GUITextBlock(new Rectangle(0, -5, 0, 20), "Server settings", GUI.Style, innerFrame, GUI.LargeFont);
@@ -175,6 +180,7 @@ namespace Barotrauma.Networking
y += 30; y += 30;
var endVoteBox = new GUITickBox(new Rectangle(0, y, 20, 20), "End round by voting", Alignment.Left, innerFrame); var endVoteBox = new GUITickBox(new Rectangle(0, y, 20, 20), "End round by voting", Alignment.Left, innerFrame);
endVoteBox.Selected = Voting.AllowEndVoting; endVoteBox.Selected = Voting.AllowEndVoting;
endVoteBox.OnSelected = (GUITickBox) => endVoteBox.OnSelected = (GUITickBox) =>
@@ -202,6 +208,33 @@ namespace Barotrauma.Networking
y += 40; y += 40;
var voteKickBox = new GUITickBox(new Rectangle(0, y, 20, 20), "Allow vote kicking", Alignment.Left, innerFrame);
voteKickBox.Selected = Voting.AllowVoteKick;
voteKickBox.OnSelected = (GUITickBox) =>
{
Voting.AllowVoteKick = !Voting.AllowVoteKick;
GameMain.Server.UpdateVoteStatus();
return true;
};
var kickVotesRequiredText = new GUITextBlock(new Rectangle(20, y + 20, 20, 20), "Votes required: 50 %", GUI.Style, innerFrame, GUI.SmallFont);
var kickVoteSlider = new GUIScrollBar(new Rectangle(150, y + 22, 100, 10), GUI.Style, 0.1f, innerFrame);
kickVoteSlider.UserData = kickVotesRequiredText;
kickVoteSlider.Step = 0.2f;
kickVoteSlider.BarScroll = (KickVoteRequiredRatio - 0.5f) * 2.0f;
kickVoteSlider.OnMoved = (GUIScrollBar scrollBar, float barScroll) =>
{
GUITextBlock voteText = scrollBar.UserData as GUITextBlock;
KickVoteRequiredRatio = barScroll / 2.0f + 0.5f;
voteText.Text = "Votes required: " + (int)MathUtils.Round(KickVoteRequiredRatio * 100.0f, 10.0f) + " %";
return true;
};
kickVoteSlider.OnMoved(kickVoteSlider, kickVoteSlider.BarScroll);
y += 40;
var randomizeLevelBox = new GUITickBox(new Rectangle(0, y, 20, 20), "Randomize level seed between rounds", Alignment.Left, innerFrame); var randomizeLevelBox = new GUITickBox(new Rectangle(0, y, 20, 20), "Randomize level seed between rounds", Alignment.Left, innerFrame);
randomizeLevelBox.Selected = randomizeSeed; randomizeLevelBox.Selected = randomizeSeed;
randomizeLevelBox.OnSelected = (GUITickBox) => randomizeLevelBox.OnSelected = (GUITickBox) =>
@@ -306,8 +306,8 @@ namespace Barotrauma.Networking
{ {
if (gameStarted && Screen.Selected == GameMain.GameScreen) if (gameStarted && Screen.Selected == GameMain.GameScreen)
{ {
//chatBox.Visible = Character.Controlled == null || !Character.Controlled.IsUnconscious; chatMsgBox.Visible = Character.Controlled == null ||
chatMsgBox.Visible = Character.Controlled == null || !Character.Controlled.IsUnconscious; (!Character.Controlled.IsUnconscious && Character.Controlled.Stun >= 0.0f);
inGameHUD.Update(deltaTime); inGameHUD.Update(deltaTime);
+5 -1
View File
@@ -354,6 +354,7 @@ namespace Barotrauma
if (IsServer && GameMain.Server != null) if (IsServer && GameMain.Server != null)
{ {
int prevSelected = subList.SelectedIndex;
UpdateSubList(Submarine.SavedSubmarines); UpdateSubList(Submarine.SavedSubmarines);
modeList.OnSelected = VotableClicked; modeList.OnSelected = VotableClicked;
@@ -378,7 +379,10 @@ namespace Barotrauma
banListButton.OnClicked = GameMain.Server.BanList.ToggleBanFrame; banListButton.OnClicked = GameMain.Server.BanList.ToggleBanFrame;
banListButton.UserData = "banListButton"; banListButton.UserData = "banListButton";
if (subList.CountChildren > 0 && subList.Selected == null) subList.Select(0); if (subList.CountChildren > 0 && subList.Selected == null)
{
subList.Select(Math.Max(0, prevSelected));
}
if (GameModePreset.list.Count > 0 && modeList.Selected == null) modeList.Select(0); if (GameModePreset.list.Count > 0 && modeList.Selected == null) modeList.Select(0);
if (myPlayerFrame.children.Find(c => c.UserData as string == "playyourself") == null) if (myPlayerFrame.children.Find(c => c.UserData as string == "playyourself") == null)
@@ -12,6 +12,8 @@ namespace Barotrauma
{ {
private bool allowSubVoting, allowModeVoting; private bool allowSubVoting, allowModeVoting;
public bool AllowVoteKick = true;
public bool AllowEndVoting = true; public bool AllowEndVoting = true;
public bool AllowSubVoting public bool AllowSubVoting
@@ -245,6 +247,7 @@ namespace Barotrauma
msg.Write((byte)voters.Count); msg.Write((byte)voters.Count);
} }
msg.Write(AllowVoteKick);
} }
public void ReadData(NetIncomingMessage msg) public void ReadData(NetIncomingMessage msg)
@@ -286,6 +289,8 @@ namespace Barotrauma
GameMain.NetworkMember.EndVoteCount = msg.ReadByte(); GameMain.NetworkMember.EndVoteCount = msg.ReadByte();
GameMain.NetworkMember.EndVoteMax = msg.ReadByte(); GameMain.NetworkMember.EndVoteMax = msg.ReadByte();
} }
AllowVoteKick = msg.ReadBoolean();
} }
} }
} }
+11 -1
View File
@@ -7,6 +7,7 @@ using FarseerPhysics.Dynamics;
using Microsoft.Xna.Framework; using Microsoft.Xna.Framework;
using Barotrauma.Sounds; using Barotrauma.Sounds;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO;
namespace Barotrauma namespace Barotrauma
{ {
@@ -249,7 +250,16 @@ namespace Barotrauma
if (currMusicVolume < 0.01f) if (currMusicVolume < 0.01f)
{ {
Sound.StopStream(); Sound.StopStream();
if (targetMusic != null) Sound.StartStream(targetMusic.file, currMusicVolume);
try
{
if (targetMusic != null) Sound.StartStream(targetMusic.file, currMusicVolume);
}
catch (FileNotFoundException e)
{
DebugConsole.ThrowError("Music clip " + targetMusic.file + " not found!");
}
currentMusic = targetMusic; currentMusic = targetMusic;
} }
} }
+38
View File
@@ -1,3 +1,41 @@
---------------------------------------------------------------------------------------------------------
v0.4.1.6
---------------------------------------------------------------------------------------------------------
- vote kicking
- fixed reverting back to the first sub on the list after each round when using manual submarine selection
- fixed lights "bleeding" through walls
- fixed crashing if the submarine contains hulls far away from the rest of the submarine
- corricodone is slightly more effective
- battery charge can be set higher than the default capacity of 2000 (assuming the capacity is set higher)
- job assignment bugfixes
- head sprites can be given tags (e.g. customhead[tag].png) which will make the game select body sprites
with a matching tag (e.g. customtorso[tag].png) for the character
- some new head sprites
- pathfinding errors (which may be caused by missing or incorrectly placed waypoints in custom subs)
don't cause the debug console to pop up
- added missing music clips to the Linux build
---------------------------------------------------------------------------------------------------------
v0.4.1.5
---------------------------------------------------------------------------------------------------------
- fixed oxygen distribution through vents not being calculated correctly
- fixed another bug that caused ''object reference not set to an instance of object'' error messages
when starting a new round
- fulgurium batteries can be put in flashlights and sonars
- more powerful oxygen generators in vanilla subs (small rooms aren't deathtraps anymore)
Linux version:
- fixed ''unable to load coelanth.png'' error messages
- fixed non-matching content packages between the Linux and Windows versions
---------------------------------------------------------------------------------------------------------
v0.4.1.4
---------------------------------------------------------------------------------------------------------
- fixed clients failing to select submarines in their "Submarines/Downloaded" folder
--------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------
v0.4.1.3 v0.4.1.3
--------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------