<equippedStatOffsets> list

Started by Fukara, January 09, 2017, 06:19:31 AM

Previous topic - Next topic

Fukara

Hello everyone, does anyone know where I can find the list of possible actions in <equippedStatOffsets> ???

Sorry for my english :-)

skullywag

They come from statdefs in the xml. The bits tagged "stat":

From IlSpy searching for "equippedStatOffsets" gives me this:

// Verse.ThingDef
public List<StatModifier> equippedStatOffsets;


Clicking StatModifier gives me:

using System;
using System.Xml;
using Verse;

namespace RimWorld
{
public class StatModifier
{
public StatDef stat;

public float value;

public string ToStringAsOffset
{
get
{
return this.stat.ValueToString(this.value, ToStringNumberSense.Offset);
}
}

public string ToStringAsFactor
{
get
{
return this.stat.ValueToString(this.value, ToStringNumberSense.Factor);
}
}

public void LoadDataFromXmlCustom(XmlNode xmlRoot)
{
CrossRefLoader.RegisterObjectWantsCrossRef(this, "stat", xmlRoot.Name);
this.value = (float)ParseHelper.FromString(xmlRoot.FirstChild.Value, typeof(float));
}
}
}


Simples.
Skullywag modded to death.
I'd never met an iterator I liked....until Zhentar saved me.
Why Unity5, WHY do you forsake me?

Fukara

Quote from: skullywag on January 09, 2017, 07:03:16 AM
They come from statdefs in the xml. The bits tagged "stat":

From IlSpy searching for "equippedStatOffsets" gives me this:

// Verse.ThingDef
public List<StatModifier> equippedStatOffsets;


Clicking StatModifier gives me:

using System;
using System.Xml;
using Verse;

namespace RimWorld
{
public class StatModifier
{
public StatDef stat;

public float value;

public string ToStringAsOffset
{
get
{
return this.stat.ValueToString(this.value, ToStringNumberSense.Offset);
}
}

public string ToStringAsFactor
{
get
{
return this.stat.ValueToString(this.value, ToStringNumberSense.Factor);
}
}

public void LoadDataFromXmlCustom(XmlNode xmlRoot)
{
CrossRefLoader.RegisterObjectWantsCrossRef(this, "stat", xmlRoot.Name);
this.value = (float)ParseHelper.FromString(xmlRoot.FirstChild.Value, typeof(float));
}
}
}


Simples.

Thank you, but i need this exemple of list:

<WorkSpeedGlobal>1.0</WorkSpeedGlobal>
<ConstructionSpeed>1.0</ConstructionSpeed>
<MiningSpeed>1.2</MiningSpeed>
<PlantWorkSpeed>1.2</PlantWorkSpeed>
<WorkSpeedGlobal>1.3</WorkSpeedGlobal>
<MoveSpeed>1.3</MoveSpeed>

mrofa

using System;
namespace RimWorld
{
[DefOf]
public static class StatDefOf
{
public static StatDef MaxHitPoints;
public static StatDef MarketValue;
public static StatDef SellPriceFactor;
public static StatDef Beauty;
public static StatDef Cleanliness;
public static StatDef Flammability;
public static StatDef DeteriorationRate;
public static StatDef WorkToMake;
public static StatDef WorkToBuild;
public static StatDef Mass;
public static StatDef MoveSpeed;
public static StatDef GlobalLearningFactor;
public static StatDef PsychicSensitivity;
public static StatDef ToxicSensitivity;
public static StatDef MentalBreakThreshold;
public static StatDef EatingSpeed;
public static StatDef ComfyTemperatureMin;
public static StatDef ComfyTemperatureMax;
public static StatDef Comfort;
public static StatDef MeatAmount;
public static StatDef LeatherAmount;
public static StatDef MinimumHandlingSkill;
public static StatDef WorkSpeedGlobal;
public static StatDef MeleeHitChance;
public static StatDef MiningSpeed;
public static StatDef ResearchSpeed;
public static StatDef ConstructionSpeed;
public static StatDef HealingQuality;
public static StatDef HealingSpeed;
public static StatDef GiftImpact;
public static StatDef TradePriceImprovement;
public static StatDef PlantWorkSpeed;
public static StatDef SmoothingSpeed;
public static StatDef FoodPoisonChance;
public static StatDef HarvestFailChance;
public static StatDef CarryingCapacity;
public static StatDef ConstructFailChance;
public static StatDef FixBrokenDownBuildingFailChance;
public static StatDef SocialImpact;
public static StatDef RecruitPrisonerChance;
public static StatDef TameAnimalChance;
public static StatDef TrainAnimalChance;
public static StatDef ShootingAccuracy;
public static StatDef AimingDelayFactor;
public static StatDef MeleeWeapon_DamageAmount;
public static StatDef MeleeWeapon_Cooldown;
public static StatDef SharpDamageMultiplier;
public static StatDef BluntDamageMultiplier;
public static StatDef RangedWeapon_Cooldown;
public static StatDef AccuracyTouch;
public static StatDef AccuracyShort;
public static StatDef AccuracyMedium;
public static StatDef AccuracyLong;
public static StatDef ArmorRating_Blunt;
public static StatDef ArmorRating_Sharp;
public static StatDef ArmorRating_Heat;
public static StatDef ArmorRating_Electric;
public static StatDef Insulation_Cold;
public static StatDef Insulation_Heat;
public static StatDef PersonalShieldRechargeRate;
public static StatDef PersonalShieldEnergyMax;
public static StatDef MedicalPotency;
public static StatDef ImmunityGainSpeed;
public static StatDef SurgerySuccessChance;
public static StatDef DoorOpenSpeed;
public static StatDef BedRestEffectiveness;
public static StatDef TrapMeleeDamage;
public static StatDef TrapSpringChance;
public static StatDef ResearchSpeedFactor;
public static StatDef MedicalTendQualityOffset;
public static StatDef WorkTableWorkSpeedFactor;
public static StatDef EntertainmentStrengthFactor;
}
}


This are all usable statdefs
All i do is clutter all around.

Fukara

Quote from: mrofa on January 09, 2017, 08:35:53 AM
using System;
namespace RimWorld
{
[DefOf]
public static class StatDefOf
{
public static StatDef MaxHitPoints;
public static StatDef MarketValue;
public static StatDef SellPriceFactor;
public static StatDef Beauty;
public static StatDef Cleanliness;
public static StatDef Flammability;
public static StatDef DeteriorationRate;
public static StatDef WorkToMake;
public static StatDef WorkToBuild;
public static StatDef Mass;
public static StatDef MoveSpeed;
public static StatDef GlobalLearningFactor;
public static StatDef PsychicSensitivity;
public static StatDef ToxicSensitivity;
public static StatDef MentalBreakThreshold;
public static StatDef EatingSpeed;
public static StatDef ComfyTemperatureMin;
public static StatDef ComfyTemperatureMax;
public static StatDef Comfort;
public static StatDef MeatAmount;
public static StatDef LeatherAmount;
public static StatDef MinimumHandlingSkill;
public static StatDef WorkSpeedGlobal;
public static StatDef MeleeHitChance;
public static StatDef MiningSpeed;
public static StatDef ResearchSpeed;
public static StatDef ConstructionSpeed;
public static StatDef HealingQuality;
public static StatDef HealingSpeed;
public static StatDef GiftImpact;
public static StatDef TradePriceImprovement;
public static StatDef PlantWorkSpeed;
public static StatDef SmoothingSpeed;
public static StatDef FoodPoisonChance;
public static StatDef HarvestFailChance;
public static StatDef CarryingCapacity;
public static StatDef ConstructFailChance;
public static StatDef FixBrokenDownBuildingFailChance;
public static StatDef SocialImpact;
public static StatDef RecruitPrisonerChance;
public static StatDef TameAnimalChance;
public static StatDef TrainAnimalChance;
public static StatDef ShootingAccuracy;
public static StatDef AimingDelayFactor;
public static StatDef MeleeWeapon_DamageAmount;
public static StatDef MeleeWeapon_Cooldown;
public static StatDef SharpDamageMultiplier;
public static StatDef BluntDamageMultiplier;
public static StatDef RangedWeapon_Cooldown;
public static StatDef AccuracyTouch;
public static StatDef AccuracyShort;
public static StatDef AccuracyMedium;
public static StatDef AccuracyLong;
public static StatDef ArmorRating_Blunt;
public static StatDef ArmorRating_Sharp;
public static StatDef ArmorRating_Heat;
public static StatDef ArmorRating_Electric;
public static StatDef Insulation_Cold;
public static StatDef Insulation_Heat;
public static StatDef PersonalShieldRechargeRate;
public static StatDef PersonalShieldEnergyMax;
public static StatDef MedicalPotency;
public static StatDef ImmunityGainSpeed;
public static StatDef SurgerySuccessChance;
public static StatDef DoorOpenSpeed;
public static StatDef BedRestEffectiveness;
public static StatDef TrapMeleeDamage;
public static StatDef TrapSpringChance;
public static StatDef ResearchSpeedFactor;
public static StatDef MedicalTendQualityOffset;
public static StatDef WorkTableWorkSpeedFactor;
public static StatDef EntertainmentStrengthFactor;
}
}


This are all usable statdefs


PERFECT !!!! Thank you man  ;D ;D ;D ;D ;D

elStrages

Quote from: mrofa on January 09, 2017, 08:35:53 AM
using System;
namespace RimWorld
{
[DefOf]
public static class StatDefOf
{
public static StatDef MaxHitPoints;
public static StatDef MarketValue;
public static StatDef SellPriceFactor;
public static StatDef Beauty;
public static StatDef Cleanliness;
public static StatDef Flammability;
public static StatDef DeteriorationRate;
public static StatDef WorkToMake;
public static StatDef WorkToBuild;
public static StatDef Mass;
public static StatDef MoveSpeed;
public static StatDef GlobalLearningFactor;
public static StatDef PsychicSensitivity;
public static StatDef ToxicSensitivity;
public static StatDef MentalBreakThreshold;
public static StatDef EatingSpeed;
public static StatDef ComfyTemperatureMin;
public static StatDef ComfyTemperatureMax;
public static StatDef Comfort;
public static StatDef MeatAmount;
public static StatDef LeatherAmount;
public static StatDef MinimumHandlingSkill;
public static StatDef WorkSpeedGlobal;
public static StatDef MeleeHitChance;
public static StatDef MiningSpeed;
public static StatDef ResearchSpeed;
public static StatDef ConstructionSpeed;
public static StatDef HealingQuality;
public static StatDef HealingSpeed;
public static StatDef GiftImpact;
public static StatDef TradePriceImprovement;
public static StatDef PlantWorkSpeed;
public static StatDef SmoothingSpeed;
public static StatDef FoodPoisonChance;
public static StatDef HarvestFailChance;
public static StatDef CarryingCapacity;
public static StatDef ConstructFailChance;
public static StatDef FixBrokenDownBuildingFailChance;
public static StatDef SocialImpact;
public static StatDef RecruitPrisonerChance;
public static StatDef TameAnimalChance;
public static StatDef TrainAnimalChance;
public static StatDef ShootingAccuracy;
public static StatDef AimingDelayFactor;
public static StatDef MeleeWeapon_DamageAmount;
public static StatDef MeleeWeapon_Cooldown;
public static StatDef SharpDamageMultiplier;
public static StatDef BluntDamageMultiplier;
public static StatDef RangedWeapon_Cooldown;
public static StatDef AccuracyTouch;
public static StatDef AccuracyShort;
public static StatDef AccuracyMedium;
public static StatDef AccuracyLong;
public static StatDef ArmorRating_Blunt;
public static StatDef ArmorRating_Sharp;
public static StatDef ArmorRating_Heat;
public static StatDef ArmorRating_Electric;
public static StatDef Insulation_Cold;
public static StatDef Insulation_Heat;
public static StatDef PersonalShieldRechargeRate;
public static StatDef PersonalShieldEnergyMax;
public static StatDef MedicalPotency;
public static StatDef ImmunityGainSpeed;
public static StatDef SurgerySuccessChance;
public static StatDef DoorOpenSpeed;
public static StatDef BedRestEffectiveness;
public static StatDef TrapMeleeDamage;
public static StatDef TrapSpringChance;
public static StatDef ResearchSpeedFactor;
public static StatDef MedicalTendQualityOffset;
public static StatDef WorkTableWorkSpeedFactor;
public static StatDef EntertainmentStrengthFactor;
}
}


This are all usable statdefs

Can you get an updated list of the mrofa please?

kaptain_kavern

#6
using System;
namespace RimWorld
{
[DefOf]
public static class StatDefOf
{
public static StatDef MaxHitPoints;
public static StatDef MarketValue;
public static StatDef SellPriceFactor;
public static StatDef Beauty;
public static StatDef Cleanliness;
public static StatDef Flammability;
public static StatDef DeteriorationRate;
public static StatDef WorkToMake;
public static StatDef WorkToBuild;
public static StatDef Mass;
public static StatDef MoveSpeed;
public static StatDef GlobalLearningFactor;
public static StatDef PsychicSensitivity;
public static StatDef ToxicSensitivity;
public static StatDef MentalBreakThreshold;
public static StatDef EatingSpeed;
public static StatDef ComfyTemperatureMin;
public static StatDef ComfyTemperatureMax;
public static StatDef Comfort;
public static StatDef MeatAmount;
public static StatDef LeatherAmount;
public static StatDef MinimumHandlingSkill;
public static StatDef MeleeDPS;
public static StatDef PainShockThreshold;
public static StatDef WorkSpeedGlobal;
public static StatDef MiningSpeed;
public static StatDef MiningYield;
public static StatDef ResearchSpeed;
public static StatDef ConstructionSpeed;
public static StatDef DiplomacyPower;
public static StatDef TradePriceImprovement;
public static StatDef PlantWorkSpeed;
public static StatDef SmoothingSpeed;
public static StatDef FoodPoisonChance;
public static StatDef CarryingCapacity;
public static StatDef MechanoidOperationSuccessChance;
public static StatDef PlantHarvestYield;
public static StatDef FixBrokenDownBuildingSuccessChance;
public static StatDef ConstructSuccessChance;
public static StatDef MedicalTendSpeed;
public static StatDef MedicalTendQuality;
public static StatDef MedicalSurgerySuccessChance;
public static StatDef SocialImpact;
public static StatDef RecruitPrisonerChance;
public static StatDef AnimalGatherSpeed;
public static StatDef AnimalGatherYield;
public static StatDef TameAnimalChance;
public static StatDef TrainAnimalChance;
public static StatDef ShootingAccuracy;
public static StatDef AimingDelayFactor;
public static StatDef MeleeHitChance;
public static StatDef MeleeDodgeChance;
public static StatDef Weapon_Bulk;
public static StatDef MeleeWeapon_AverageDPS;
public static StatDef MeleeWeapon_DamageMultiplier;
public static StatDef MeleeWeapon_CooldownMultiplier;
public static StatDef SharpDamageMultiplier;
public static StatDef BluntDamageMultiplier;
public static StatDef RangedWeapon_Cooldown;
public static StatDef AccuracyTouch;
public static StatDef AccuracyShort;
public static StatDef AccuracyMedium;
public static StatDef AccuracyLong;
public static StatDef ArmorRating_Blunt;
public static StatDef ArmorRating_Sharp;
public static StatDef ArmorRating_Heat;
public static StatDef ArmorRating_Electric;
public static StatDef Insulation_Cold;
public static StatDef Insulation_Heat;
public static StatDef EnergyShieldRechargeRate;
public static StatDef EnergyShieldEnergyMax;
public static StatDef SmokepopBeltRadius;
public static StatDef MedicalPotency;
public static StatDef ImmunityGainSpeed;
public static StatDef DoorOpenSpeed;
public static StatDef BedRestEffectiveness;
public static StatDef TrapMeleeDamage;
public static StatDef TrapSpringChance;
public static StatDef ResearchSpeedFactor;
public static StatDef MedicalTendQualityOffset;
public static StatDef WorkTableWorkSpeedFactor;
public static StatDef EntertainmentStrengthFactor;
public static StatDef SurgerySuccessChanceFactor;
}
}


data are taken from A18 unstable - the last one.  I haven't setup the new B18 yet.

Keep up the storm bud ;-D

elStrages


Vane

Sorry to bump an old topic but I was wondering, is there a way to add other things to traits, for example if I wanted to add the bonus from bloodlust, like not getting any bad mood effects about dead bodies and such

jamaicancastle

Yes, but it's slightly more complicated.

To have a trait modify a thought or memory, you actually want to go the other way around, into the ThoughtDef - you can set <nullifyingTraits> that prevent the thought from showing up, or <requiredTraits> that are required for it to appear.

If all you want is an inflected version of a vanilla thought (e.g. "this pawn prefers living in a barracks to a private room", instead of the vanilla behavior which is the opposite) that's all you need. If you want to create your own unique thoughts, you'll need to use C# to either invoke the thought in another piece of code (appropriate for thoughts tied to some other action, like the mood buff from Green Thumb) or write your own thoughtworker (appropriate for conditional thoughts like being in darkness for too long).

Vane

Quote from: jamaicancastle on March 25, 2018, 01:15:33 PM
Yes, but it's slightly more complicated.

To have a trait modify a thought or memory, you actually want to go the other way around, into the ThoughtDef - you can set <nullifyingTraits> that prevent the thought from showing up, or <requiredTraits> that are required for it to appear.

If all you want is an inflected version of a vanilla thought (e.g. "this pawn prefers living in a barracks to a private room", instead of the vanilla behavior which is the opposite) that's all you need. If you want to create your own unique thoughts, you'll need to use C# to either invoke the thought in another piece of code (appropriate for thoughts tied to some other action, like the mood buff from Green Thumb) or write your own thoughtworker (appropriate for conditional thoughts like being in darkness for too long).

Thanks so much for your comment! I'll be sure to do some experimenting