Fixing items if sufficient skills+tools, choosing server port

This commit is contained in:
Regalis
2015-07-19 23:29:47 +03:00
parent 2dd0a60bc4
commit fb0e8ea54c
19 changed files with 357 additions and 124 deletions
@@ -57,7 +57,7 @@ namespace Subsurface.Items.Components
isActive = true;
reload = 1.0f;
bool failed = UseFailed(character);
bool failed = DoesUseFail(character);
List<Body> limbBodies = new List<Body>();
foreach (Limb l in character.AnimController.limbs)
@@ -93,6 +93,9 @@ namespace Subsurface.Items.Components
public override bool Use(float deltaTime, Character character = null)
{
if (character == null) return false;
if (!character.SecondaryKeyDown.State) return false;
if (DoesUseFail(character)) return false;
isActive = true;
+19 -4
View File
@@ -356,24 +356,39 @@ namespace Subsurface
}
public bool HasRequiredSkills(Character character)
{
Skill temp;
return HasRequiredSkills(character, out temp);
}
public bool HasRequiredSkills(Character character, out Skill insufficientSkill)
{
foreach (Skill skill in requiredSkills)
{
int characterLevel = character.GetSkillLevel(skill.Name);
if (characterLevel < skill.Level) return false;
if (characterLevel < skill.Level)
{
insufficientSkill = skill;
return false;
}
}
insufficientSkill = null;
return true;
}
protected bool UseFailed(Character character)
protected bool DoesUseFail(Character character)
{
foreach (Skill skill in requiredSkills)
{
int characterLevel = character.GetSkillLevel(skill.Name);
if (characterLevel > skill.Level) continue;
if (Rand.Int(characterLevel) - skill.Level < 0) return true;
if (Rand.Int(characterLevel) - skill.Level < 0)
{
item.ApplyStatusEffects(ActionType.OnFailure, 1.0f, character);
//Item.ApplyStatusEffects();
return true;
}
}
return false;
@@ -308,7 +308,7 @@ namespace Subsurface.Items.Components
float xOffset = (graphTimer / (float)updateGraphInterval);
GUI.DrawRectangle(spriteBatch, new Rectangle(x, y, width, height), Color.Black, true);
//GUI.DrawRectangle(spriteBatch, new Rectangle(x, y, width, height), Color.Black, true);
spriteBatch.DrawString(GUI.Font, "Temperature: " + (int)temperature + " C", new Vector2(x + 30, y + 30), Color.White);
DrawGraph(tempGraph, spriteBatch, x + 30, y + 50, 10000.0f, xOffset);