66 {
68
69 string damageZone = RepairMotorbikePartActionData.Cast(action_data).m_DamageZone;
70 if (!
g_Game.IsMultiplayer())
72
73 if (tgObject)
74 {
75 MotorbikePart motorbikePart = MotorbikePart.Cast(tgObject);
76 if (motorbikePart)
77 {
78 int newDmgLevel = Math.Clamp(motorbikePart.GetHealthLevel(damageZone) - 1, GameConstants.STATE_WORN, GameConstants.STATE_RUINED);
79 float zoneMax = motorbikePart.GetMaxHealth("", "");
80 float randomValue = Math.RandomFloatInclusive(zoneMax * 0.05, zoneMax * 0.15);
81
82 switch (newDmgLevel)
83 {
84 case GameConstants.STATE_BADLY_DAMAGED:
85 motorbikePart.SetHealth("", "", (zoneMax * GameConstants.DAMAGE_RUINED_VALUE) + randomValue);
86 break;
87
88 case GameConstants.STATE_DAMAGED:
89 motorbikePart.SetHealth("", "", (zoneMax * GameConstants.DAMAGE_BADLY_DAMAGED_VALUE) + randomValue);
90 break;
91
92 case GameConstants.STATE_WORN:
93 motorbikePart.SetHealth("", "", (zoneMax * GameConstants.DAMAGE_DAMAGED_VALUE) + randomValue);
94 break;
95
96 default:
97 break;
98 }
99
101 {
103 {
104 int qnt = action_data.
m_MainItem.GetQuantity();
105 qnt -= action_data.
m_MainItem.GetQuantityMax() * 0.25;
107 }
108 else
110 }
111 }
112 }
113 }
ref ActionTarget m_Target
string m_CurrentDamageZone
override bool SetQuantity(float value, bool destroy_config=true, bool destroy_forced=false, bool allow_client=false, bool clamp_to_stack_max=true)