Build 0.17.13.0
This commit is contained in:
@@ -838,7 +838,7 @@ namespace Barotrauma
|
||||
if (container == null) { return 0; }
|
||||
if (!container.Inventory.CanBePut(containableItem)) { return 0; }
|
||||
var rootContainer = container.Item.GetRootContainer();
|
||||
if (rootContainer?.GetComponent<Fabricator>() != null || rootContainer?.GetComponent<Fabricator>() != null) { return 0; }
|
||||
if (rootContainer?.GetComponent<Fabricator>() != null || rootContainer?.GetComponent<Deconstructor>() != null) { return 0; }
|
||||
if (container.ShouldBeContained(containableItem, out bool isRestrictionsDefined))
|
||||
{
|
||||
if (isRestrictionsDefined)
|
||||
|
||||
@@ -1033,7 +1033,7 @@ namespace Barotrauma
|
||||
if (Name == null || Job == null) { return 0; }
|
||||
|
||||
int salary = 0;
|
||||
foreach (Skill skill in Job.Skills)
|
||||
foreach (Skill skill in Job.GetSkills())
|
||||
{
|
||||
salary += (int)(skill.Level * skill.PriceMultiplier);
|
||||
}
|
||||
@@ -1076,10 +1076,10 @@ namespace Barotrauma
|
||||
{
|
||||
if (Job == null) { return; }
|
||||
|
||||
var skill = Job.Skills.Find(s => s.Identifier == skillIdentifier);
|
||||
var skill = Job.GetSkill(skillIdentifier);
|
||||
if (skill == null)
|
||||
{
|
||||
Job.Skills.Add(new Skill(skillIdentifier, level));
|
||||
Job.IncreaseSkillLevel(skillIdentifier, level, increasePastMax: false);
|
||||
OnSkillChanged(skillIdentifier, 0.0f, level);
|
||||
}
|
||||
else
|
||||
|
||||
+1
-1
@@ -384,7 +384,7 @@ namespace Barotrauma
|
||||
foreach (var itemPrefab in ItemPrefab.Prefabs)
|
||||
{
|
||||
float suitability = Math.Max(itemPrefab.GetTreatmentSuitability(Identifier), itemPrefab.GetTreatmentSuitability(AfflictionType));
|
||||
if (suitability > 0.0f)
|
||||
if (!MathUtils.NearlyEqual(suitability, 0.0f))
|
||||
{
|
||||
yield return new KeyValuePair<Identifier, float>(itemPrefab.Identifier, suitability);
|
||||
}
|
||||
|
||||
@@ -154,10 +154,14 @@ namespace Barotrauma
|
||||
|
||||
public void GiveItems(Character character, Submarine submarine, Rand.RandSync randSync = Rand.RandSync.Unsynced, bool createNetworkEvents = true)
|
||||
{
|
||||
if (ItemSets == null || !ItemSets.Any()) { return; }
|
||||
var spawnItems = ToolBox.SelectWeightedRandom(ItemSets.Keys.ToList(), ItemSets.Values.ToList(), randSync);
|
||||
foreach (XElement itemElement in spawnItems.GetChildElements("item"))
|
||||
if (spawnItems != null)
|
||||
{
|
||||
InitializeItem(character, itemElement, submarine, this, createNetworkEvents: createNetworkEvents);
|
||||
foreach (XElement itemElement in spawnItems.GetChildElements("item"))
|
||||
{
|
||||
InitializeItem(character, itemElement, submarine, this, createNetworkEvents: createNetworkEvents);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -17,8 +17,6 @@ namespace Barotrauma
|
||||
|
||||
public JobPrefab Prefab => prefab;
|
||||
|
||||
public List<Skill> Skills => skills.Values.ToList();
|
||||
|
||||
public int Variant;
|
||||
|
||||
public Skill PrimarySkill { get; }
|
||||
@@ -80,7 +78,12 @@ namespace Barotrauma
|
||||
var prefab = JobPrefab.Random(randSync);
|
||||
var variant = Rand.Range(0, prefab.Variants, randSync);
|
||||
return new Job(prefab, randSync, variant);
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerable<Skill> GetSkills()
|
||||
{
|
||||
return skills.Values;
|
||||
}
|
||||
|
||||
public float GetSkillLevel(Identifier skillIdentifier)
|
||||
{
|
||||
@@ -89,6 +92,22 @@ namespace Barotrauma
|
||||
return skill?.Level ?? 0.0f;
|
||||
}
|
||||
|
||||
public Skill GetSkill(Identifier skillIdentifier)
|
||||
{
|
||||
if (skillIdentifier.IsEmpty) { return null; }
|
||||
skills.TryGetValue(skillIdentifier, out Skill skill);
|
||||
return skill;
|
||||
}
|
||||
|
||||
public void OverrideSkills(Dictionary<Identifier, float> newSkills)
|
||||
{
|
||||
skills.Clear();
|
||||
foreach (var newSkill in newSkills)
|
||||
{
|
||||
skills.Add(newSkill.Key, new Skill(newSkill.Key, newSkill.Value));
|
||||
}
|
||||
}
|
||||
|
||||
public void IncreaseSkillLevel(Identifier skillIdentifier, float increase, bool increasePastMax)
|
||||
{
|
||||
if (skills.TryGetValue(skillIdentifier, out Skill skill))
|
||||
@@ -171,7 +190,7 @@ namespace Barotrauma
|
||||
character.Inventory.TryPutItem(item, null, item.AllowedSlots);
|
||||
}
|
||||
|
||||
Wearable wearable = ((List<ItemComponent>)item.Components)?.Find(c => c is Wearable) as Wearable;
|
||||
Wearable wearable = item.GetComponent<Wearable>();
|
||||
if (wearable != null)
|
||||
{
|
||||
if (Variant > 0 && Variant <= wearable.Variants)
|
||||
|
||||
+4
@@ -293,6 +293,10 @@ namespace Barotrauma
|
||||
{
|
||||
return Create<HumanSwimFastParams>(fullPath, speciesName, animationType);
|
||||
}
|
||||
if (type == typeof(HumanCrouchParams))
|
||||
{
|
||||
return Create<HumanCrouchParams>(fullPath, speciesName, animationType);
|
||||
}
|
||||
if (type == typeof(FishWalkParams))
|
||||
{
|
||||
return Create<FishWalkParams>(fullPath, speciesName, animationType);
|
||||
|
||||
+1
-1
@@ -47,7 +47,7 @@ namespace Barotrauma.Abilities
|
||||
{
|
||||
if (skillIdentifier == "random")
|
||||
{
|
||||
var skill = character.Info?.Job?.Skills?.GetRandomUnsynced();
|
||||
var skill = character.Info?.Job?.GetSkills()?.GetRandomUnsynced();
|
||||
if (skill == null) { return; }
|
||||
character.Info?.IncreaseSkillLevel(skill.Identifier, skillIncrease, gainedFromAbility: true);
|
||||
}
|
||||
|
||||
+3
-2
@@ -30,11 +30,12 @@ namespace Barotrauma.Abilities
|
||||
|
||||
if (useAll && Character.Info?.Job != null)
|
||||
{
|
||||
foreach (Skill skill in Character.Info.Job.Skills)
|
||||
var skills = Character.Info.Job.GetSkills();
|
||||
foreach (Skill skill in skills)
|
||||
{
|
||||
skillTotal += Character.GetSkillLevel(skill.Identifier);
|
||||
}
|
||||
skillTotal /= Character.Info.Job.Skills.Count;
|
||||
skillTotal /= skills.Count();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user