public static bool VehicleDamaged(InteractableVehicle vehicle, ref ushort amount, ref bool repairable) { // TODO: causes? VehicleTag vehicleTag = new VehicleTag(vehicle); if (!repairable && (vehicle.isDead || amount >= vehicle.health)) { VehicleDestroyedEventArgs explodeevt = new VehicleDestroyedEventArgs(); explodeevt.Vehicle = vehicleTag; explodeevt.Amount = new NumberTag(amount); explodeevt.Repairable = new BooleanTag(repairable); UnturnedFreneticEvents.OnVehicleDestroyed.Fire(explodeevt); amount = (ushort)explodeevt.Amount.Internal; repairable = explodeevt.Repairable.Internal; return(explodeevt.Cancelled || EntityDestroyed(vehicleTag, ref amount)); } VehicleDamagedEventArgs evt = new VehicleDamagedEventArgs(); evt.Vehicle = vehicleTag; evt.Amount = new NumberTag(amount); evt.Repairable = new BooleanTag(repairable); UnturnedFreneticEvents.OnVehicleDamaged.Fire(evt); amount = (ushort)evt.Amount.Internal; return(evt.Cancelled || EntityDamaged(vehicleTag, ref amount)); }
public override TemplateObject Handle(TagData data) { string modif = data.GetModifier(0); if (modif.StartsWith("e:")) { modif = modif.Substring("e:".Length); } VehicleTag vtag = VehicleTag.For(Utilities.StringToInt(modif)); if (vtag == null) { return(new TextTag("&{NULL}").Handle(data.Shrink())); } return(vtag.Handle(data.Shrink())); }
private static void PopulateVehicle(Vehicle item, H2vMap map, TransformComponent xform, VehicleTag vehi) { item.FriendlyName = vehi.Name; item.SetComponents(xform, PhysicsComponentFactory.CreateDynamicRigidBody(item, xform, map, vehi.Hlmt), new RenderModelComponent(item, new Model <BitmapTag> { Note = $"[{vehi.Id}] {vehi.Name}", Flags = ModelFlags.Diffuse | ModelFlags.CastsShadows | ModelFlags.ReceivesShadows, Meshes = MeshFactory.GetRenderModel(map, vehi.Hlmt) })); }