17 typename m_LastValidType;
18 string m_CurrentDamageZone =
"";
19 int m_LastValidComponentIndex = -1;
33 override void CreateConditionComponents()
41 if (player.GetBrokenLegs() ==
eBrokenLegs.BROKEN_LEGS)
44 Object targetObject = target.GetObject();
45 Object targetParent = target.GetParent();
48 if (!carDoor || !player)
57 if (targetParent != null)
60 bool isPresent = carDoor.GetInventory().GetCurrentInventoryLocation(loc);
62 if (!isPresent || loc.GetSlot() == -1)
71 int zoneHP = carDoor.GetHealthLevel(
"");
78 override void OnFinishProgressServer(ActionData action_data)
80 Object tgObject = action_data.m_Target.GetObject();
82 string damageZone = RepairCarPartActionData.Cast(action_data).m_DamageZone;
84 damageZone = m_CurrentDamageZone;
92 float zoneMax = carDoor.GetMaxHealth(
"",
"");
93 float randomValue =
Math.RandomFloatInclusive(zoneMax * 0.05, zoneMax * 0.15);
98 carDoor.SetHealth(
"",
"", (zoneMax *
GameConstants.DAMAGE_RUINED_VALUE) + randomValue);
102 carDoor.SetHealth(
"",
"", (zoneMax *
GameConstants.DAMAGE_BADLY_DAMAGED_VALUE) + randomValue);
106 carDoor.SetHealth(
"",
"", (zoneMax *
GameConstants.DAMAGE_DAMAGED_VALUE) + randomValue);
113 if (action_data.m_MainItem.HasQuantity())
115 if (action_data.m_MainItem.GetQuantity() > 1)
117 int qnt = action_data.m_MainItem.GetQuantity();
118 qnt -= action_data.m_MainItem.GetQuantityMax() * 0.25;
119 action_data.m_MainItem.SetQuantity(qnt);
122 action_data.m_MainItem.Delete();
128 override ActionData CreateActionData()
130 RepairCarPartActionData actionData =
new RepairCarPartActionData();
136 super.WriteToContext(ctx, action_data);
137 RepairCarPartActionData repairActionData;
141 repairActionData.m_DamageZone = m_CurrentDamageZone;
142 ctx.Write(repairActionData.m_DamageZone);
146 override bool ReadFromContext(
ParamsReadContext ctx, out ActionReciveData action_recive_data)
148 if (!action_recive_data)
151 super.ReadFromContext(ctx, action_recive_data);
160 reciveDataRepair.m_DamageZoneRecived = zone;
166 override void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
168 super.HandleReciveData(action_recive_data, action_data);
171 RepairCarPartActionData.Cast(action_data).m_DamageZone = reciveDataRepair.m_DamageZoneRecived;