public static void Pather_StartPath_WarObjects(Caravan_PathFollower __instance, int destTile, CaravanArrivalAction arrivalAction, ref bool __result, bool repathImmediately = false, bool resetPauseStatus = true) { if (__result == true) { if (arrivalAction is RimWar.Planet.CaravanArrivalAction_AttackWarObject) { //Log.Message("assigning war object action: attack"); Caravan caravan = Traverse.Create(root: __instance).Field(name: "caravan").GetValue <Caravan>(); CaravanArrivalAction_AttackWarObject woAction = arrivalAction as CaravanArrivalAction_AttackWarObject; RimWar.Planet.WorldUtility.Get_WCPT().AssignCaravanTargets(caravan, woAction.wo); } else if (arrivalAction is RimWar.Planet.CaravanArrivalAction_EngageWarObject) { //Log.Message("assigning war object action: engage"); Caravan caravan = Traverse.Create(root: __instance).Field(name: "caravan").GetValue <Caravan>(); CaravanArrivalAction_EngageWarObject woAction = arrivalAction as CaravanArrivalAction_EngageWarObject; RimWar.Planet.WorldUtility.Get_WCPT().AssignCaravanTargets(caravan, woAction.wo); } else { Caravan caravan = Traverse.Create(root: __instance).Field(name: "caravan").GetValue <Caravan>(); List <CaravanTargetData> ctdList = RimWar.Planet.WorldUtility.Get_WCPT().caravanTargetData; for (int i = 0; i < ctdList.Count; i++) { if (ctdList[i].caravan == caravan) { ctdList.Remove(ctdList[i]); } } } } }
public static void Pather_StartPath_WarObjects(Caravan_PathFollower __instance, Caravan ___caravan, int destTile, CaravanArrivalAction arrivalAction, ref bool __result, bool repathImmediately = false, bool resetPauseStatus = true) { if (__result == true) { if (arrivalAction is RimWar.Planet.CaravanArrivalAction_AttackWarObject) { //Log.Message("assigning war object action: attack"); CaravanArrivalAction_AttackWarObject woAction = arrivalAction as CaravanArrivalAction_AttackWarObject; woAction.wo.interactable = true; RimWar.Planet.WorldUtility.Get_WCPT().AssignCaravanTargets(___caravan, woAction.wo); } else if (arrivalAction is RimWar.Planet.CaravanArrivalAction_EngageWarObject) { //Log.Message("assigning war object action: engage"); CaravanArrivalAction_EngageWarObject woAction = arrivalAction as CaravanArrivalAction_EngageWarObject; woAction.wo.interactable = true; RimWar.Planet.WorldUtility.Get_WCPT().AssignCaravanTargets(___caravan, woAction.wo); } else { WorldUtility.Get_WCPT().RemoveCaravanTarget(___caravan); } } }